tedious 16.5.0 → 16.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/lib/metadata-parser.js +361 -241
  2. package/lib/metadata-parser.js.map +1 -1
  3. package/lib/token/colmetadata-token-parser.js +103 -74
  4. package/lib/token/colmetadata-token-parser.js.map +1 -1
  5. package/lib/token/done-token-parser.js +52 -40
  6. package/lib/token/done-token-parser.js.map +1 -1
  7. package/lib/token/env-change-token-parser.js +110 -81
  8. package/lib/token/env-change-token-parser.js.map +1 -1
  9. package/lib/token/feature-ext-ack-parser.js +30 -22
  10. package/lib/token/feature-ext-ack-parser.js.map +1 -1
  11. package/lib/token/fedauth-info-parser.js +47 -30
  12. package/lib/token/fedauth-info-parser.js.map +1 -1
  13. package/lib/token/helpers.js +205 -0
  14. package/lib/token/helpers.js.map +1 -0
  15. package/lib/token/infoerror-token-parser.js +69 -36
  16. package/lib/token/infoerror-token-parser.js.map +1 -1
  17. package/lib/token/loginack-token-parser.js +59 -31
  18. package/lib/token/loginack-token-parser.js.map +1 -1
  19. package/lib/token/nbcrow-token-parser.js +60 -23
  20. package/lib/token/nbcrow-token-parser.js.map +1 -1
  21. package/lib/token/order-token-parser.js +22 -20
  22. package/lib/token/order-token-parser.js.map +1 -1
  23. package/lib/token/returnstatus-token-parser.js +9 -5
  24. package/lib/token/returnstatus-token-parser.js.map +1 -1
  25. package/lib/token/returnvalue-token-parser.js +79 -22
  26. package/lib/token/returnvalue-token-parser.js.map +1 -1
  27. package/lib/token/row-token-parser.js +50 -20
  28. package/lib/token/row-token-parser.js.map +1 -1
  29. package/lib/token/sspi-token-parser.js +14 -5
  30. package/lib/token/sspi-token-parser.js.map +1 -1
  31. package/lib/token/stream-parser.js +292 -324
  32. package/lib/token/stream-parser.js.map +1 -1
  33. package/lib/token/token.js +1 -1
  34. package/lib/token/token.js.map +1 -1
  35. package/lib/value-parser.js +655 -438
  36. package/lib/value-parser.js.map +1 -1
  37. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"stream-parser.js","names":["_token","require","_colmetadataTokenParser","_interopRequireDefault","_doneTokenParser","_envChangeTokenParser","_infoerrorTokenParser","_fedauthInfoParser","_featureExtAckParser","_loginackTokenParser","_orderTokenParser","_returnstatusTokenParser","_returnvalueTokenParser","_rowTokenParser","_nbcrowTokenParser","_sspiTokenParser","obj","__esModule","default","tokenParsers","TYPE","DONE","doneParser","DONEINPROC","doneInProcParser","DONEPROC","doneProcParser","ENVCHANGE","envChangeParser","ERROR","errorParser","FEDAUTHINFO","fedAuthInfoParser","FEATUREEXTACK","featureExtAckParser","INFO","infoParser","LOGINACK","loginAckParser","ORDER","orderParser","RETURNSTATUS","returnStatusParser","RETURNVALUE","returnValueParser","SSPI","sspiParser","StreamBuffer","constructor","iterable","iterator","Symbol","asyncIterator","call","buffer","Buffer","alloc","position","waitForChunk","result","next","done","Error","length","value","concat","slice","Parser","parseTokens","debug","options","colMetadata","token","onDoneParsing","t","streamBuffer","parser","err","suspended","ColMetadataToken","columns","type","readUInt8","COLMETADATA","colMetadataParser","ROW","rowParser","NBCROW","nbcRowParser","undefined","suspend","awaitData","callback","readInt8","data","readInt16LE","readInt16BE","readUInt16LE","readUInt16BE","readInt32LE","readInt32BE","readUInt32LE","readUInt32BE","readBigInt64LE","readInt64LE","Math","pow","readInt64BE","readBigUInt64LE","readUInt64LE","readUInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","readUInt24LE","low","high","readUInt40LE","readUNumeric64LE","readUNumeric96LE","dword1","dword2","dword3","readUNumeric128LE","dword4","readBuffer","readBVarChar","toString","readUsVarChar","readBVarByte","readUsVarByte","_default","exports","module"],"sources":["../../src/token/stream-parser.ts"],"sourcesContent":["import Debug from '../debug';\nimport { type InternalConnectionOptions } from '../connection';\n\nimport { TYPE, Token, ColMetadataToken } from './token';\n\nimport colMetadataParser, { type ColumnMetadata } from './colmetadata-token-parser';\nimport { doneParser, doneInProcParser, doneProcParser } from './done-token-parser';\nimport envChangeParser from './env-change-token-parser';\nimport { errorParser, infoParser } from './infoerror-token-parser';\nimport fedAuthInfoParser from './fedauth-info-parser';\nimport featureExtAckParser from './feature-ext-ack-parser';\nimport loginAckParser from './loginack-token-parser';\nimport orderParser from './order-token-parser';\nimport returnStatusParser from './returnstatus-token-parser';\nimport returnValueParser from './returnvalue-token-parser';\nimport rowParser from './row-token-parser';\nimport nbcRowParser from './nbcrow-token-parser';\nimport sspiParser from './sspi-token-parser';\n\nconst tokenParsers = {\n [TYPE.DONE]: doneParser,\n [TYPE.DONEINPROC]: doneInProcParser,\n [TYPE.DONEPROC]: doneProcParser,\n [TYPE.ENVCHANGE]: envChangeParser,\n [TYPE.ERROR]: errorParser,\n [TYPE.FEDAUTHINFO]: fedAuthInfoParser,\n [TYPE.FEATUREEXTACK]: featureExtAckParser,\n [TYPE.INFO]: infoParser,\n [TYPE.LOGINACK]: loginAckParser,\n [TYPE.ORDER]: orderParser,\n [TYPE.RETURNSTATUS]: returnStatusParser,\n [TYPE.RETURNVALUE]: returnValueParser,\n [TYPE.SSPI]: sspiParser\n};\n\nexport type ParserOptions = Pick<InternalConnectionOptions, 'useUTC' | 'lowerCaseGuids' | 'tdsVersion' | 'useColumnNames' | 'columnNameReplacer' | 'camelCaseColumns'>;\n\nclass StreamBuffer {\n declare iterator: AsyncIterator<Buffer, any, undefined> | Iterator<Buffer, any, undefined>;\n declare buffer: Buffer;\n declare position: number;\n\n constructor(iterable: AsyncIterable<Buffer> | Iterable<Buffer>) {\n this.iterator = ((iterable as AsyncIterable<Buffer>)[Symbol.asyncIterator] || (iterable as Iterable<Buffer>)[Symbol.iterator]).call(iterable);\n\n this.buffer = Buffer.alloc(0);\n this.position = 0;\n }\n\n async waitForChunk() {\n const result = await this.iterator.next();\n if (result.done) {\n throw new Error('unexpected end of data');\n }\n\n if (this.position === this.buffer.length) {\n this.buffer = result.value;\n } else {\n this.buffer = Buffer.concat([this.buffer.slice(this.position), result.value]);\n }\n this.position = 0;\n }\n}\n\nclass Parser {\n declare debug: Debug;\n declare colMetadata: ColumnMetadata[];\n declare options: ParserOptions;\n\n declare suspended: boolean;\n declare next: (() => void) | undefined;\n declare streamBuffer: StreamBuffer;\n\n static async *parseTokens(iterable: AsyncIterable<Buffer> | Iterable<Buffer>, debug: Debug, options: ParserOptions, colMetadata: ColumnMetadata[] = []) {\n let token: Token | undefined;\n const onDoneParsing = (t: Token | undefined) => { token = t; };\n\n const streamBuffer = new StreamBuffer(iterable);\n\n const parser = new Parser(streamBuffer, debug, options);\n parser.colMetadata = colMetadata;\n\n while (true) {\n try {\n await streamBuffer.waitForChunk();\n } catch (err: unknown) {\n if (streamBuffer.position === streamBuffer.buffer.length) {\n return;\n }\n\n throw err;\n }\n\n if (parser.suspended) {\n // Unsuspend and continue from where ever we left off.\n parser.suspended = false;\n const next = parser.next!;\n\n next();\n\n // Check if a new token was parsed after unsuspension.\n if (!parser.suspended && token) {\n if (token instanceof ColMetadataToken) {\n parser.colMetadata = token.columns;\n }\n\n yield token;\n }\n }\n\n while (!parser.suspended && parser.position + 1 <= parser.buffer.length) {\n const type = parser.buffer.readUInt8(parser.position);\n\n parser.position += 1;\n\n if (type === TYPE.COLMETADATA) {\n const token = await colMetadataParser(parser);\n parser.colMetadata = token.columns;\n yield token;\n } else if (type === TYPE.ROW) {\n yield rowParser(parser);\n } else if (type === TYPE.NBCROW) {\n yield nbcRowParser(parser);\n } else if (tokenParsers[type]) {\n tokenParsers[type](parser, parser.options, onDoneParsing);\n\n // Check if a new token was parsed after unsuspension.\n if (!parser.suspended && token) {\n if (token instanceof ColMetadataToken) {\n parser.colMetadata = token.columns;\n }\n yield token;\n }\n } else {\n throw new Error('Unknown type: ' + type);\n }\n }\n }\n }\n\n constructor(streamBuffer: StreamBuffer, debug: Debug, options: ParserOptions) {\n this.debug = debug;\n this.colMetadata = [];\n this.options = options;\n\n this.streamBuffer = streamBuffer;\n this.suspended = false;\n this.next = undefined;\n }\n\n get buffer() {\n return this.streamBuffer.buffer;\n }\n\n get position() {\n return this.streamBuffer.position;\n }\n\n set position(value) {\n this.streamBuffer.position = value;\n }\n\n suspend(next: () => void) {\n this.suspended = true;\n this.next = next;\n }\n\n awaitData(length: number, callback: () => void) {\n if (this.position + length <= this.buffer.length) {\n callback();\n } else {\n this.suspend(() => {\n this.awaitData(length, callback);\n });\n }\n }\n\n readInt8(callback: (data: number) => void) {\n this.awaitData(1, () => {\n const data = this.buffer.readInt8(this.position);\n this.position += 1;\n callback(data);\n });\n }\n\n readUInt8(callback: (data: number) => void) {\n this.awaitData(1, () => {\n const data = this.buffer.readUInt8(this.position);\n this.position += 1;\n callback(data);\n });\n }\n\n readInt16LE(callback: (data: number) => void) {\n this.awaitData(2, () => {\n const data = this.buffer.readInt16LE(this.position);\n this.position += 2;\n callback(data);\n });\n }\n\n readInt16BE(callback: (data: number) => void) {\n this.awaitData(2, () => {\n const data = this.buffer.readInt16BE(this.position);\n this.position += 2;\n callback(data);\n });\n }\n\n readUInt16LE(callback: (data: number) => void) {\n this.awaitData(2, () => {\n const data = this.buffer.readUInt16LE(this.position);\n this.position += 2;\n callback(data);\n });\n }\n\n readUInt16BE(callback: (data: number) => void) {\n this.awaitData(2, () => {\n const data = this.buffer.readUInt16BE(this.position);\n this.position += 2;\n callback(data);\n });\n }\n\n readInt32LE(callback: (data: number) => void) {\n this.awaitData(4, () => {\n const data = this.buffer.readInt32LE(this.position);\n this.position += 4;\n callback(data);\n });\n }\n\n readInt32BE(callback: (data: number) => void) {\n this.awaitData(4, () => {\n const data = this.buffer.readInt32BE(this.position);\n this.position += 4;\n callback(data);\n });\n }\n\n readUInt32LE(callback: (data: number) => void) {\n this.awaitData(4, () => {\n const data = this.buffer.readUInt32LE(this.position);\n this.position += 4;\n callback(data);\n });\n }\n\n readUInt32BE(callback: (data: number) => void) {\n this.awaitData(4, () => {\n const data = this.buffer.readUInt32BE(this.position);\n this.position += 4;\n callback(data);\n });\n }\n\n readBigInt64LE(callback: (data: bigint) => void) {\n this.awaitData(8, () => {\n const data = this.buffer.readBigInt64LE(this.position);\n this.position += 8;\n callback(data);\n });\n }\n\n readInt64LE(callback: (data: number) => void) {\n this.awaitData(8, () => {\n const data = Math.pow(2, 32) * this.buffer.readInt32LE(this.position + 4) + ((this.buffer[this.position + 4] & 0x80) === 0x80 ? 1 : -1) * this.buffer.readUInt32LE(this.position);\n this.position += 8;\n callback(data);\n });\n }\n\n readInt64BE(callback: (data: number) => void) {\n this.awaitData(8, () => {\n const data = Math.pow(2, 32) * this.buffer.readInt32BE(this.position) + ((this.buffer[this.position] & 0x80) === 0x80 ? 1 : -1) * this.buffer.readUInt32BE(this.position + 4);\n this.position += 8;\n callback(data);\n });\n }\n\n readBigUInt64LE(callback: (data: bigint) => void) {\n this.awaitData(8, () => {\n const data = this.buffer.readBigUInt64LE(this.position);\n this.position += 8;\n callback(data);\n });\n }\n\n readUInt64LE(callback: (data: number) => void) {\n this.awaitData(8, () => {\n const data = Math.pow(2, 32) * this.buffer.readUInt32LE(this.position + 4) + this.buffer.readUInt32LE(this.position);\n this.position += 8;\n callback(data);\n });\n }\n\n readUInt64BE(callback: (data: number) => void) {\n this.awaitData(8, () => {\n const data = Math.pow(2, 32) * this.buffer.readUInt32BE(this.position) + this.buffer.readUInt32BE(this.position + 4);\n this.position += 8;\n callback(data);\n });\n }\n\n readFloatLE(callback: (data: number) => void) {\n this.awaitData(4, () => {\n const data = this.buffer.readFloatLE(this.position);\n this.position += 4;\n callback(data);\n });\n }\n\n readFloatBE(callback: (data: number) => void) {\n this.awaitData(4, () => {\n const data = this.buffer.readFloatBE(this.position);\n this.position += 4;\n callback(data);\n });\n }\n\n readDoubleLE(callback: (data: number) => void) {\n this.awaitData(8, () => {\n const data = this.buffer.readDoubleLE(this.position);\n this.position += 8;\n callback(data);\n });\n }\n\n readDoubleBE(callback: (data: number) => void) {\n this.awaitData(8, () => {\n const data = this.buffer.readDoubleBE(this.position);\n this.position += 8;\n callback(data);\n });\n }\n\n readUInt24LE(callback: (data: number) => void) {\n this.awaitData(3, () => {\n const low = this.buffer.readUInt16LE(this.position);\n const high = this.buffer.readUInt8(this.position + 2);\n\n this.position += 3;\n\n callback(low | (high << 16));\n });\n }\n\n readUInt40LE(callback: (data: number) => void) {\n this.awaitData(5, () => {\n const low = this.buffer.readUInt32LE(this.position);\n const high = this.buffer.readUInt8(this.position + 4);\n\n this.position += 5;\n\n callback((0x100000000 * high) + low);\n });\n }\n\n readUNumeric64LE(callback: (data: number) => void) {\n this.awaitData(8, () => {\n const low = this.buffer.readUInt32LE(this.position);\n const high = this.buffer.readUInt32LE(this.position + 4);\n\n this.position += 8;\n\n callback((0x100000000 * high) + low);\n });\n }\n\n readUNumeric96LE(callback: (data: number) => void) {\n this.awaitData(12, () => {\n const dword1 = this.buffer.readUInt32LE(this.position);\n const dword2 = this.buffer.readUInt32LE(this.position + 4);\n const dword3 = this.buffer.readUInt32LE(this.position + 8);\n\n this.position += 12;\n\n callback(dword1 + (0x100000000 * dword2) + (0x100000000 * 0x100000000 * dword3));\n });\n }\n\n readUNumeric128LE(callback: (data: number) => void) {\n this.awaitData(16, () => {\n const dword1 = this.buffer.readUInt32LE(this.position);\n const dword2 = this.buffer.readUInt32LE(this.position + 4);\n const dword3 = this.buffer.readUInt32LE(this.position + 8);\n const dword4 = this.buffer.readUInt32LE(this.position + 12);\n\n this.position += 16;\n\n callback(dword1 + (0x100000000 * dword2) + (0x100000000 * 0x100000000 * dword3) + (0x100000000 * 0x100000000 * 0x100000000 * dword4));\n });\n }\n\n // Variable length data\n\n readBuffer(length: number, callback: (data: Buffer) => void) {\n this.awaitData(length, () => {\n const data = this.buffer.slice(this.position, this.position + length);\n this.position += length;\n callback(data);\n });\n }\n\n // Read a Unicode String (BVARCHAR)\n readBVarChar(callback: (data: string) => void) {\n this.readUInt8((length) => {\n this.readBuffer(length * 2, (data) => {\n callback(data.toString('ucs2'));\n });\n });\n }\n\n // Read a Unicode String (USVARCHAR)\n readUsVarChar(callback: (data: string) => void) {\n this.readUInt16LE((length) => {\n this.readBuffer(length * 2, (data) => {\n callback(data.toString('ucs2'));\n });\n });\n }\n\n // Read binary data (BVARBYTE)\n readBVarByte(callback: (data: Buffer) => void) {\n this.readUInt8((length) => {\n this.readBuffer(length, callback);\n });\n }\n\n // Read binary data (USVARBYTE)\n readUsVarByte(callback: (data: Buffer) => void) {\n this.readUInt16LE((length) => {\n this.readBuffer(length, callback);\n });\n }\n}\n\nexport default Parser;\nmodule.exports = Parser;\n"],"mappings":"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"}
1
+ {"version":3,"file":"stream-parser.js","names":["_token","require","_colmetadataTokenParser","_interopRequireDefault","_doneTokenParser","_envChangeTokenParser","_infoerrorTokenParser","_fedauthInfoParser","_featureExtAckParser","_loginackTokenParser","_orderTokenParser","_returnstatusTokenParser","_returnvalueTokenParser","_rowTokenParser","_nbcrowTokenParser","_sspiTokenParser","_helpers","obj","__esModule","default","Parser","debug","colMetadata","options","iterator","buffer","position","parseTokens","iterable","parser","waitForChunk","err","length","type","readUInt8","token","readToken","undefined","TYPE","DONE","readDoneToken","DONEPROC","readDoneProcToken","DONEINPROC","readDoneInProcToken","ERROR","readErrorToken","INFO","readInfoToken","ENVCHANGE","readEnvChangeToken","LOGINACK","readLoginAckToken","RETURNSTATUS","readReturnStatusToken","ORDER","readOrderToken","FEDAUTHINFO","readFedAuthInfoToken","SSPI","readSSPIToken","COLMETADATA","readColMetadataToken","RETURNVALUE","readReturnValueToken","ROW","readRowToken","NBCROW","readNbcRowToken","FEATUREEXTACK","readFeatureExtAckToken","Error","result","featureExtAckParser","NotEnoughDataError","then","offset","value","nbcRowParser","returnValueParser","colMetadataParser","columns","sspiParser","fedAuthInfoParser","orderParser","returnStatusParser","loginAckParser","envChangeParser","rowParser","infoParser","errorParser","doneInProcParser","doneProcParser","doneParser","constructor","Symbol","asyncIterator","call","Buffer","alloc","next","done","concat","slice","_default","exports","module"],"sources":["../../src/token/stream-parser.ts"],"sourcesContent":["import Debug from '../debug';\nimport { type InternalConnectionOptions } from '../connection';\n\nimport { TYPE, ColMetadataToken, DoneProcToken, DoneToken, DoneInProcToken, ErrorMessageToken, InfoMessageToken, RowToken, type EnvChangeToken, LoginAckToken, ReturnStatusToken, OrderToken, FedAuthInfoToken, SSPIToken, ReturnValueToken, NBCRowToken, FeatureExtAckToken, Token } from './token';\n\nimport colMetadataParser, { type ColumnMetadata } from './colmetadata-token-parser';\nimport { doneParser, doneInProcParser, doneProcParser } from './done-token-parser';\nimport envChangeParser from './env-change-token-parser';\nimport { errorParser, infoParser } from './infoerror-token-parser';\nimport fedAuthInfoParser from './fedauth-info-parser';\nimport featureExtAckParser from './feature-ext-ack-parser';\nimport loginAckParser from './loginack-token-parser';\nimport orderParser from './order-token-parser';\nimport returnStatusParser from './returnstatus-token-parser';\nimport returnValueParser from './returnvalue-token-parser';\nimport rowParser from './row-token-parser';\nimport nbcRowParser from './nbcrow-token-parser';\nimport sspiParser from './sspi-token-parser';\nimport { NotEnoughDataError } from './helpers';\n\nexport type ParserOptions = Pick<InternalConnectionOptions, 'useUTC' | 'lowerCaseGuids' | 'tdsVersion' | 'useColumnNames' | 'columnNameReplacer' | 'camelCaseColumns'>;\n\nclass Parser {\n debug: Debug;\n colMetadata: ColumnMetadata[];\n options: ParserOptions;\n\n iterator: AsyncIterator<Buffer, any, undefined> | Iterator<Buffer, any, undefined>;\n buffer: Buffer;\n position: number;\n\n static async *parseTokens(iterable: AsyncIterable<Buffer> | Iterable<Buffer>, debug: Debug, options: ParserOptions, colMetadata: ColumnMetadata[] = []) {\n const parser = new Parser(iterable, debug, options);\n parser.colMetadata = colMetadata;\n\n while (true) {\n try {\n await parser.waitForChunk();\n } catch (err: unknown) {\n if (parser.position === parser.buffer.length) {\n return;\n }\n\n throw err;\n }\n\n while (parser.buffer.length >= parser.position + 1) {\n const type = parser.buffer.readUInt8(parser.position);\n parser.position += 1;\n\n const token = parser.readToken(type);\n if (token !== undefined) {\n yield token;\n }\n }\n }\n }\n\n readToken(type: number): Token | undefined | Promise<Token | undefined> {\n switch (type) {\n case TYPE.DONE: {\n return this.readDoneToken();\n }\n\n case TYPE.DONEPROC: {\n return this.readDoneProcToken();\n }\n\n case TYPE.DONEINPROC: {\n return this.readDoneInProcToken();\n }\n\n case TYPE.ERROR: {\n return this.readErrorToken();\n }\n\n case TYPE.INFO: {\n return this.readInfoToken();\n }\n\n case TYPE.ENVCHANGE: {\n return this.readEnvChangeToken();\n }\n\n case TYPE.LOGINACK: {\n return this.readLoginAckToken();\n }\n\n case TYPE.RETURNSTATUS: {\n return this.readReturnStatusToken();\n }\n\n case TYPE.ORDER: {\n return this.readOrderToken();\n }\n\n case TYPE.FEDAUTHINFO: {\n return this.readFedAuthInfoToken();\n }\n\n case TYPE.SSPI: {\n return this.readSSPIToken();\n }\n\n case TYPE.COLMETADATA: {\n return this.readColMetadataToken();\n }\n\n case TYPE.RETURNVALUE: {\n return this.readReturnValueToken();\n }\n\n case TYPE.ROW: {\n return this.readRowToken();\n }\n\n case TYPE.NBCROW: {\n return this.readNbcRowToken();\n }\n\n case TYPE.FEATUREEXTACK: {\n return this.readFeatureExtAckToken();\n }\n\n default: {\n throw new Error('Unknown type: ' + type);\n }\n }\n }\n\n readFeatureExtAckToken(): FeatureExtAckToken | Promise<FeatureExtAckToken> {\n let result;\n\n try {\n result = featureExtAckParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readFeatureExtAckToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n async readNbcRowToken(): Promise<NBCRowToken> {\n return await nbcRowParser(this);\n }\n\n async readReturnValueToken(): Promise<ReturnValueToken> {\n return await returnValueParser(this);\n }\n\n async readColMetadataToken(): Promise<ColMetadataToken> {\n const token = await colMetadataParser(this);\n this.colMetadata = token.columns;\n return token;\n }\n\n readSSPIToken(): SSPIToken | Promise<SSPIToken> {\n let result;\n\n try {\n result = sspiParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readSSPIToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readFedAuthInfoToken(): FedAuthInfoToken | Promise<FedAuthInfoToken> {\n let result;\n\n try {\n result = fedAuthInfoParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readFedAuthInfoToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readOrderToken(): OrderToken | Promise<OrderToken> {\n let result;\n\n try {\n result = orderParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readOrderToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readReturnStatusToken(): ReturnStatusToken | Promise<ReturnStatusToken> {\n let result;\n\n try {\n result = returnStatusParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readReturnStatusToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readLoginAckToken(): LoginAckToken | Promise<LoginAckToken> {\n let result;\n\n try {\n result = loginAckParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readLoginAckToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readEnvChangeToken(): EnvChangeToken | undefined | Promise<EnvChangeToken | undefined> {\n let result;\n\n try {\n result = envChangeParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readEnvChangeToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readRowToken(): RowToken | Promise<RowToken> {\n return rowParser(this);\n }\n\n readInfoToken(): InfoMessageToken | Promise<InfoMessageToken> {\n let result;\n\n try {\n result = infoParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readInfoToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readErrorToken(): ErrorMessageToken | Promise<ErrorMessageToken> {\n let result;\n\n try {\n result = errorParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readErrorToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readDoneInProcToken(): DoneInProcToken | Promise<DoneInProcToken> {\n let result;\n\n try {\n result = doneInProcParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readDoneInProcToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readDoneProcToken(): DoneProcToken | Promise<DoneProcToken> {\n let result;\n\n try {\n result = doneProcParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readDoneProcToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n readDoneToken(): DoneToken | Promise<DoneToken> {\n let result;\n\n try {\n result = doneParser(this.buffer, this.position, this.options);\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n return this.waitForChunk().then(() => {\n return this.readDoneToken();\n });\n }\n\n throw err;\n }\n\n this.position = result.offset;\n return result.value;\n }\n\n constructor(iterable: AsyncIterable<Buffer> | Iterable<Buffer>, debug: Debug, options: ParserOptions) {\n this.debug = debug;\n this.colMetadata = [];\n this.options = options;\n\n this.iterator = ((iterable as AsyncIterable<Buffer>)[Symbol.asyncIterator] || (iterable as Iterable<Buffer>)[Symbol.iterator]).call(iterable);\n\n this.buffer = Buffer.alloc(0);\n this.position = 0;\n }\n\n async waitForChunk() {\n const result = await this.iterator.next();\n if (result.done) {\n throw new Error('unexpected end of data');\n }\n\n if (this.position === this.buffer.length) {\n this.buffer = result.value;\n } else {\n this.buffer = Buffer.concat([this.buffer.slice(this.position), result.value]);\n }\n\n this.position = 0;\n }\n}\n\nexport default Parser;\nmodule.exports = Parser;\n"],"mappings":"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"}
@@ -326,4 +326,4 @@ class SSPIToken extends Token {
326
326
  }
327
327
  }
328
328
  exports.SSPIToken = SSPIToken;
329
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUWVBFIiwiQUxUTUVUQURBVEEiLCJBTFRST1ciLCJDT0xNRVRBREFUQSIsIkNPTElORk8iLCJET05FIiwiRE9ORVBST0MiLCJET05FSU5QUk9DIiwiRU5WQ0hBTkdFIiwiRVJST1IiLCJGRUFUVVJFRVhUQUNLIiwiRkVEQVVUSElORk8iLCJJTkZPIiwiTE9HSU5BQ0siLCJOQkNST1ciLCJPRkZTRVQiLCJPUkRFUiIsIlJFVFVSTlNUQVRVUyIsIlJFVFVSTlZBTFVFIiwiUk9XIiwiU1NQSSIsIlRBQk5BTUUiLCJleHBvcnRzIiwiVG9rZW4iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJoYW5kbGVyTmFtZSIsIkNvbE1ldGFkYXRhVG9rZW4iLCJjb2x1bW5zIiwiRG9uZVRva2VuIiwibW9yZSIsInNxbEVycm9yIiwiYXR0ZW50aW9uIiwic2VydmVyRXJyb3IiLCJyb3dDb3VudCIsImN1ckNtZCIsIkRvbmVJblByb2NUb2tlbiIsIkRvbmVQcm9jVG9rZW4iLCJEYXRhYmFzZUVudkNoYW5nZVRva2VuIiwibmV3VmFsdWUiLCJvbGRWYWx1ZSIsInR5cGUiLCJMYW5ndWFnZUVudkNoYW5nZVRva2VuIiwiQ2hhcnNldEVudkNoYW5nZVRva2VuIiwiUGFja2V0U2l6ZUVudkNoYW5nZVRva2VuIiwiQmVnaW5UcmFuc2FjdGlvbkVudkNoYW5nZVRva2VuIiwiQ29tbWl0VHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbiIsIlJvbGxiYWNrVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbiIsIkRhdGFiYXNlTWlycm9yaW5nUGFydG5lckVudkNoYW5nZVRva2VuIiwiUmVzZXRDb25uZWN0aW9uRW52Q2hhbmdlVG9rZW4iLCJDb2xsYXRpb25DaGFuZ2VUb2tlbiIsIlJvdXRpbmdFbnZDaGFuZ2VUb2tlbiIsIkZlYXR1cmVFeHRBY2tUb2tlbiIsImZlZEF1dGgiLCJ1dGY4U3VwcG9ydCIsIkZlZEF1dGhJbmZvVG9rZW4iLCJzcG4iLCJzdHN1cmwiLCJJbmZvTWVzc2FnZVRva2VuIiwibnVtYmVyIiwic3RhdGUiLCJjbGFzcyIsImNsYXp6IiwibWVzc2FnZSIsInNlcnZlck5hbWUiLCJwcm9jTmFtZSIsImxpbmVOdW1iZXIiLCJFcnJvck1lc3NhZ2VUb2tlbiIsIkxvZ2luQWNrVG9rZW4iLCJpbnRlcmZhY2UiLCJpbnRlcmZhemUiLCJ0ZHNWZXJzaW9uIiwicHJvZ05hbWUiLCJwcm9nVmVyc2lvbiIsIk5CQ1Jvd1Rva2VuIiwiT3JkZXJUb2tlbiIsIm9yZGVyQ29sdW1ucyIsIlJldHVyblN0YXR1c1Rva2VuIiwidmFsdWUiLCJSZXR1cm5WYWx1ZVRva2VuIiwicGFyYW1PcmRpbmFsIiwicGFyYW1OYW1lIiwibWV0YWRhdGEiLCJSb3dUb2tlbiIsIlNTUElUb2tlbiIsIm50bG1wYWNrZXQiLCJudGxtcGFja2V0QnVmZmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL3Rva2VuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxhdGlvbiB9IGZyb20gJy4uL2NvbGxhdGlvbic7XG5pbXBvcnQgeyB0eXBlIE1ldGFkYXRhIH0gZnJvbSAnLi4vbWV0YWRhdGEtcGFyc2VyJztcbmltcG9ydCB7IHR5cGUgQ29sdW1uTWV0YWRhdGEgfSBmcm9tICcuL2NvbG1ldGFkYXRhLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgeyBUb2tlbkhhbmRsZXIgfSBmcm9tICcuL2hhbmRsZXInO1xuXG5leHBvcnQgY29uc3QgVFlQRSA9IHtcbiAgQUxUTUVUQURBVEE6IDB4ODgsXG4gIEFMVFJPVzogMHhEMyxcbiAgQ09MTUVUQURBVEE6IDB4ODEsXG4gIENPTElORk86IDB4QTUsXG4gIERPTkU6IDB4RkQsXG4gIERPTkVQUk9DOiAweEZFLFxuICBET05FSU5QUk9DOiAweEZGLFxuICBFTlZDSEFOR0U6IDB4RTMsXG4gIEVSUk9SOiAweEFBLFxuICBGRUFUVVJFRVhUQUNLOiAweEFFLFxuICBGRURBVVRISU5GTzogMHhFRSxcbiAgSU5GTzogMHhBQixcbiAgTE9HSU5BQ0s6IDB4QUQsXG4gIE5CQ1JPVzogMHhEMixcbiAgT0ZGU0VUOiAweDc4LFxuICBPUkRFUjogMHhBOSxcbiAgUkVUVVJOU1RBVFVTOiAweDc5LFxuICBSRVRVUk5WQUxVRTogMHhBQyxcbiAgUk9XOiAweEQxLFxuICBTU1BJOiAweEVELFxuICBUQUJOQU1FOiAweEE0XG59O1xuXG50eXBlIEhhbmRsZXJOYW1lID0ga2V5b2YgVG9rZW5IYW5kbGVyO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6IHN0cmluZztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZToga2V5b2YgVG9rZW5IYW5kbGVyO1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgaGFuZGxlck5hbWU6IEhhbmRsZXJOYW1lKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmhhbmRsZXJOYW1lID0gaGFuZGxlck5hbWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbE1ldGFkYXRhVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0NPTE1FVEFEQVRBJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uQ29sTWV0YWRhdGEnO1xuXG4gIGRlY2xhcmUgY29sdW1uczogQ29sdW1uTWV0YWRhdGFbXTtcblxuICBjb25zdHJ1Y3Rvcihjb2x1bW5zOiBDb2x1bW5NZXRhZGF0YVtdKSB7XG4gICAgc3VwZXIoJ0NPTE1FVEFEQVRBJywgJ29uQ29sTWV0YWRhdGEnKTtcblxuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERvbmVUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRE9ORSc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkRvbmUnO1xuXG4gIGRlY2xhcmUgbW9yZTogYm9vbGVhbjtcbiAgZGVjbGFyZSBzcWxFcnJvcjogYm9vbGVhbjtcbiAgZGVjbGFyZSBhdHRlbnRpb246IGJvb2xlYW47XG4gIGRlY2xhcmUgc2VydmVyRXJyb3I6IGJvb2xlYW47XG4gIGRlY2xhcmUgcm93Q291bnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSBjdXJDbWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IG1vcmUsIHNxbEVycm9yLCBhdHRlbnRpb24sIHNlcnZlckVycm9yLCByb3dDb3VudCwgY3VyQ21kIH06IHsgbW9yZTogYm9vbGVhbiwgc3FsRXJyb3I6IGJvb2xlYW4sIGF0dGVudGlvbjogYm9vbGVhbiwgc2VydmVyRXJyb3I6IGJvb2xlYW4sIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIGN1ckNtZDogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRE9ORScsICdvbkRvbmUnKTtcblxuICAgIHRoaXMubW9yZSA9IG1vcmU7XG4gICAgdGhpcy5zcWxFcnJvciA9IHNxbEVycm9yO1xuICAgIHRoaXMuYXR0ZW50aW9uID0gYXR0ZW50aW9uO1xuICAgIHRoaXMuc2VydmVyRXJyb3IgPSBzZXJ2ZXJFcnJvcjtcbiAgICB0aGlzLnJvd0NvdW50ID0gcm93Q291bnQ7XG4gICAgdGhpcy5jdXJDbWQgPSBjdXJDbWQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERvbmVJblByb2NUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRE9ORUlOUFJPQyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkRvbmVJblByb2MnO1xuXG4gIGRlY2xhcmUgbW9yZTogYm9vbGVhbjtcbiAgZGVjbGFyZSBzcWxFcnJvcjogYm9vbGVhbjtcbiAgZGVjbGFyZSBhdHRlbnRpb246IGJvb2xlYW47XG4gIGRlY2xhcmUgc2VydmVyRXJyb3I6IGJvb2xlYW47XG4gIGRlY2xhcmUgcm93Q291bnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSBjdXJDbWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IG1vcmUsIHNxbEVycm9yLCBhdHRlbnRpb24sIHNlcnZlckVycm9yLCByb3dDb3VudCwgY3VyQ21kIH06IHsgbW9yZTogYm9vbGVhbiwgc3FsRXJyb3I6IGJvb2xlYW4sIGF0dGVudGlvbjogYm9vbGVhbiwgc2VydmVyRXJyb3I6IGJvb2xlYW4sIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIGN1ckNtZDogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRE9ORUlOUFJPQycsICdvbkRvbmVJblByb2MnKTtcblxuICAgIHRoaXMubW9yZSA9IG1vcmU7XG4gICAgdGhpcy5zcWxFcnJvciA9IHNxbEVycm9yO1xuICAgIHRoaXMuYXR0ZW50aW9uID0gYXR0ZW50aW9uO1xuICAgIHRoaXMuc2VydmVyRXJyb3IgPSBzZXJ2ZXJFcnJvcjtcbiAgICB0aGlzLnJvd0NvdW50ID0gcm93Q291bnQ7XG4gICAgdGhpcy5jdXJDbWQgPSBjdXJDbWQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERvbmVQcm9jVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0RPTkVQUk9DJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRG9uZVByb2MnO1xuXG4gIGRlY2xhcmUgbW9yZTogYm9vbGVhbjtcbiAgZGVjbGFyZSBzcWxFcnJvcjogYm9vbGVhbjtcbiAgZGVjbGFyZSBhdHRlbnRpb246IGJvb2xlYW47XG4gIGRlY2xhcmUgc2VydmVyRXJyb3I6IGJvb2xlYW47XG4gIGRlY2xhcmUgcm93Q291bnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSBjdXJDbWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IG1vcmUsIHNxbEVycm9yLCBhdHRlbnRpb24sIHNlcnZlckVycm9yLCByb3dDb3VudCwgY3VyQ21kIH06IHsgbW9yZTogYm9vbGVhbiwgc3FsRXJyb3I6IGJvb2xlYW4sIGF0dGVudGlvbjogYm9vbGVhbiwgc2VydmVyRXJyb3I6IGJvb2xlYW4sIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIGN1ckNtZDogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRE9ORVBST0MnLCAnb25Eb25lUHJvYycpO1xuXG4gICAgdGhpcy5tb3JlID0gbW9yZTtcbiAgICB0aGlzLnNxbEVycm9yID0gc3FsRXJyb3I7XG4gICAgdGhpcy5hdHRlbnRpb24gPSBhdHRlbnRpb247XG4gICAgdGhpcy5zZXJ2ZXJFcnJvciA9IHNlcnZlckVycm9yO1xuICAgIHRoaXMucm93Q291bnQgPSByb3dDb3VudDtcbiAgICB0aGlzLmN1ckNtZCA9IGN1ckNtZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YWJhc2VFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRGF0YWJhc2VDaGFuZ2UnO1xuXG4gIGRlY2xhcmUgdHlwZTogJ0RBVEFCQVNFJztcbiAgZGVjbGFyZSBuZXdWYWx1ZTogc3RyaW5nO1xuICBkZWNsYXJlIG9sZFZhbHVlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobmV3VmFsdWU6IHN0cmluZywgb2xkVmFsdWU6IHN0cmluZykge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25EYXRhYmFzZUNoYW5nZScpO1xuXG4gICAgdGhpcy50eXBlID0gJ0RBVEFCQVNFJztcbiAgICB0aGlzLm5ld1ZhbHVlID0gbmV3VmFsdWU7XG4gICAgdGhpcy5vbGRWYWx1ZSA9IG9sZFZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMYW5ndWFnZUVudkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25MYW5ndWFnZUNoYW5nZSc7XG5cbiAgZGVjbGFyZSB0eXBlOiAnTEFOR1VBR0UnO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiBzdHJpbmc7XG4gIGRlY2xhcmUgb2xkVmFsdWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogc3RyaW5nLCBvbGRWYWx1ZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvbkxhbmd1YWdlQ2hhbmdlJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnTEFOR1VBR0UnO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENoYXJzZXRFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uQ2hhcnNldENoYW5nZSc7XG5cbiAgZGVjbGFyZSB0eXBlOiAnQ0hBUlNFVCc7XG4gIGRlY2xhcmUgbmV3VmFsdWU6IHN0cmluZztcbiAgZGVjbGFyZSBvbGRWYWx1ZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG5ld1ZhbHVlOiBzdHJpbmcsIG9sZFZhbHVlOiBzdHJpbmcpIHtcbiAgICBzdXBlcignRU5WQ0hBTkdFJywgJ29uQ2hhcnNldENoYW5nZScpO1xuXG4gICAgdGhpcy50eXBlID0gJ0NIQVJTRVQnO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBhY2tldFNpemVFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUGFja2V0U2l6ZUNoYW5nZSc7XG5cbiAgZGVjbGFyZSB0eXBlOiAnUEFDS0VUX1NJWkUnO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiBudW1iZXI7XG4gIGRlY2xhcmUgb2xkVmFsdWU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogbnVtYmVyLCBvbGRWYWx1ZTogbnVtYmVyKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvblBhY2tldFNpemVDaGFuZ2UnKTtcblxuICAgIHRoaXMudHlwZSA9ICdQQUNLRVRfU0laRSc7XG4gICAgdGhpcy5uZXdWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMub2xkVmFsdWUgPSBvbGRWYWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmVnaW5UcmFuc2FjdGlvbkVudkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25CZWdpblRyYW5zYWN0aW9uJztcblxuICBkZWNsYXJlIHR5cGU6ICdCRUdJTl9UWE4nO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiBCdWZmZXI7XG4gIGRlY2xhcmUgb2xkVmFsdWU6IEJ1ZmZlcjtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogQnVmZmVyLCBvbGRWYWx1ZTogQnVmZmVyKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvbkJlZ2luVHJhbnNhY3Rpb24nKTtcblxuICAgIHRoaXMudHlwZSA9ICdCRUdJTl9UWE4nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbW1pdFRyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0VOVkNIQU5HRSc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkNvbW1pdFRyYW5zYWN0aW9uJztcblxuICBkZWNsYXJlIHR5cGU6ICdDT01NSVRfVFhOJztcbiAgZGVjbGFyZSBuZXdWYWx1ZTogQnVmZmVyO1xuICBkZWNsYXJlIG9sZFZhbHVlOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3IobmV3VmFsdWU6IEJ1ZmZlciwgb2xkVmFsdWU6IEJ1ZmZlcikge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25Db21taXRUcmFuc2FjdGlvbicpO1xuXG4gICAgdGhpcy50eXBlID0gJ0NPTU1JVF9UWE4nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvbGxiYWNrVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUm9sbGJhY2tUcmFuc2FjdGlvbic7XG5cbiAgZGVjbGFyZSB0eXBlOiAnUk9MTEJBQ0tfVFhOJztcbiAgZGVjbGFyZSBvbGRWYWx1ZTogQnVmZmVyO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3IobmV3VmFsdWU6IEJ1ZmZlciwgb2xkVmFsdWU6IEJ1ZmZlcikge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25Sb2xsYmFja1RyYW5zYWN0aW9uJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnUk9MTEJBQ0tfVFhOJztcbiAgICB0aGlzLm5ld1ZhbHVlID0gbmV3VmFsdWU7XG4gICAgdGhpcy5vbGRWYWx1ZSA9IG9sZFZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhYmFzZU1pcnJvcmluZ1BhcnRuZXJFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRGF0YWJhc2VNaXJyb3JpbmdQYXJ0bmVyJztcblxuICBkZWNsYXJlIHR5cGU6ICdEQVRBQkFTRV9NSVJST1JJTkdfUEFSVE5FUic7XG4gIGRlY2xhcmUgb2xkVmFsdWU6IHN0cmluZztcbiAgZGVjbGFyZSBuZXdWYWx1ZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG5ld1ZhbHVlOiBzdHJpbmcsIG9sZFZhbHVlOiBzdHJpbmcpIHtcbiAgICBzdXBlcignRU5WQ0hBTkdFJywgJ29uRGF0YWJhc2VNaXJyb3JpbmdQYXJ0bmVyJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnREFUQUJBU0VfTUlSUk9SSU5HX1BBUlRORVInO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlc2V0Q29ubmVjdGlvbkVudkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25SZXNldENvbm5lY3Rpb24nO1xuXG4gIGRlY2xhcmUgdHlwZTogJ1JFU0VUX0NPTk5FQ1RJT04nO1xuICBkZWNsYXJlIG9sZFZhbHVlOiBCdWZmZXI7XG4gIGRlY2xhcmUgbmV3VmFsdWU6IEJ1ZmZlcjtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogQnVmZmVyLCBvbGRWYWx1ZTogQnVmZmVyKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvblJlc2V0Q29ubmVjdGlvbicpO1xuXG4gICAgdGhpcy50eXBlID0gJ1JFU0VUX0NPTk5FQ1RJT04nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbGxhdGlvbkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25TcWxDb2xsYXRpb25DaGFuZ2UnO1xuXG4gIGRlY2xhcmUgdHlwZTogJ1NRTF9DT0xMQVRJT04nO1xuICBkZWNsYXJlIG9sZFZhbHVlOiBDb2xsYXRpb24gfCB1bmRlZmluZWQ7XG4gIGRlY2xhcmUgbmV3VmFsdWU6IENvbGxhdGlvbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogQ29sbGF0aW9uIHwgdW5kZWZpbmVkLCBvbGRWYWx1ZTogQ29sbGF0aW9uIHwgdW5kZWZpbmVkKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvblNxbENvbGxhdGlvbkNoYW5nZScpO1xuXG4gICAgdGhpcy50eXBlID0gJ1NRTF9DT0xMQVRJT04nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvdXRpbmdFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUm91dGluZ0NoYW5nZSc7XG5cbiAgZGVjbGFyZSB0eXBlOiAnUk9VVElOR19DSEFOR0UnO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiB7IHByb3RvY29sOiBudW1iZXIsIHBvcnQ6IG51bWJlciwgc2VydmVyOiBzdHJpbmcgfTtcbiAgZGVjbGFyZSBvbGRWYWx1ZTogQnVmZmVyO1xuXG4gIGNvbnN0cnVjdG9yKG5ld1ZhbHVlOiB7IHByb3RvY29sOiBudW1iZXIsIHBvcnQ6IG51bWJlciwgc2VydmVyOiBzdHJpbmcgfSwgb2xkVmFsdWU6IEJ1ZmZlcikge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25Sb3V0aW5nQ2hhbmdlJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnUk9VVElOR19DSEFOR0UnO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZlYXR1cmVFeHRBY2tUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRkVBVFVSRUVYVEFDSyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkZlYXR1cmVFeHRBY2snO1xuXG4gIGRlY2xhcmUgZmVkQXV0aDogQnVmZmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBWYWx1ZSBvZiBVVEY4X1NVUFBPUlQgYWNrbm93bGVkZ2VtZW50LlxuICAgKlxuICAgKiB1bmRlZmluZWQgd2hlbiBVVEY4X1NVUFBPUlQgbm90IGluY2x1ZGVkIGluIHRva2VuLiAqL1xuICBkZWNsYXJlIHV0ZjhTdXBwb3J0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKGZlZEF1dGg6IEJ1ZmZlciB8IHVuZGVmaW5lZCwgdXRmOFN1cHBvcnQ6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBzdXBlcignRkVBVFVSRUVYVEFDSycsICdvbkZlYXR1cmVFeHRBY2snKTtcblxuICAgIHRoaXMuZmVkQXV0aCA9IGZlZEF1dGg7XG4gICAgdGhpcy51dGY4U3VwcG9ydCA9IHV0ZjhTdXBwb3J0O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGZWRBdXRoSW5mb1Rva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdGRURBVVRISU5GTyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkZlZEF1dGhJbmZvJztcblxuICBkZWNsYXJlIHNwbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBkZWNsYXJlIHN0c3VybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHNwbjogc3RyaW5nIHwgdW5kZWZpbmVkLCBzdHN1cmw6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHN1cGVyKCdGRURBVVRISU5GTycsICdvbkZlZEF1dGhJbmZvJyk7XG5cbiAgICB0aGlzLnNwbiA9IHNwbjtcbiAgICB0aGlzLnN0c3VybCA9IHN0c3VybDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW5mb01lc3NhZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnSU5GTyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkluZm9NZXNzYWdlJztcblxuICBkZWNsYXJlIG51bWJlcjogbnVtYmVyO1xuICBkZWNsYXJlIHN0YXRlOiBudW1iZXI7XG4gIGRlY2xhcmUgY2xhc3M6IG51bWJlcjtcbiAgZGVjbGFyZSBtZXNzYWdlOiBzdHJpbmc7XG4gIGRlY2xhcmUgc2VydmVyTmFtZTogc3RyaW5nO1xuICBkZWNsYXJlIHByb2NOYW1lOiBzdHJpbmc7XG4gIGRlY2xhcmUgbGluZU51bWJlcjogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHsgbnVtYmVyLCBzdGF0ZSwgY2xhc3M6IGNsYXp6LCBtZXNzYWdlLCBzZXJ2ZXJOYW1lLCBwcm9jTmFtZSwgbGluZU51bWJlciB9OiB7IG51bWJlcjogbnVtYmVyLCBzdGF0ZTogbnVtYmVyLCBjbGFzczogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcsIHNlcnZlck5hbWU6IHN0cmluZywgcHJvY05hbWU6IHN0cmluZywgbGluZU51bWJlcjogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignSU5GTycsICdvbkluZm9NZXNzYWdlJyk7XG5cbiAgICB0aGlzLm51bWJlciA9IG51bWJlcjtcbiAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5jbGFzcyA9IGNsYXp6O1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgdGhpcy5zZXJ2ZXJOYW1lID0gc2VydmVyTmFtZTtcbiAgICB0aGlzLnByb2NOYW1lID0gcHJvY05hbWU7XG4gICAgdGhpcy5saW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXJyb3JNZXNzYWdlVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0VSUk9SJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRXJyb3JNZXNzYWdlJztcblxuICBkZWNsYXJlIG51bWJlcjogbnVtYmVyO1xuICBkZWNsYXJlIHN0YXRlOiBudW1iZXI7XG4gIGRlY2xhcmUgY2xhc3M6IG51bWJlcjtcbiAgZGVjbGFyZSBtZXNzYWdlOiBzdHJpbmc7XG4gIGRlY2xhcmUgc2VydmVyTmFtZTogc3RyaW5nO1xuICBkZWNsYXJlIHByb2NOYW1lOiBzdHJpbmc7XG4gIGRlY2xhcmUgbGluZU51bWJlcjogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHsgbnVtYmVyLCBzdGF0ZSwgY2xhc3M6IGNsYXp6LCBtZXNzYWdlLCBzZXJ2ZXJOYW1lLCBwcm9jTmFtZSwgbGluZU51bWJlciB9OiB7IG51bWJlcjogbnVtYmVyLCBzdGF0ZTogbnVtYmVyLCBjbGFzczogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcsIHNlcnZlck5hbWU6IHN0cmluZywgcHJvY05hbWU6IHN0cmluZywgbGluZU51bWJlcjogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRVJST1InLCAnb25FcnJvck1lc3NhZ2UnKTtcblxuICAgIHRoaXMubnVtYmVyID0gbnVtYmVyO1xuICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICB0aGlzLmNsYXNzID0gY2xheno7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICB0aGlzLnNlcnZlck5hbWUgPSBzZXJ2ZXJOYW1lO1xuICAgIHRoaXMucHJvY05hbWUgPSBwcm9jTmFtZTtcbiAgICB0aGlzLmxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2dpbkFja1Rva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdMT0dJTkFDSyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkxvZ2luQWNrJztcblxuICBkZWNsYXJlIGludGVyZmFjZTogc3RyaW5nO1xuICBkZWNsYXJlIHRkc1ZlcnNpb246IHN0cmluZztcbiAgZGVjbGFyZSBwcm9nTmFtZTogc3RyaW5nO1xuICBkZWNsYXJlIHByb2dWZXJzaW9uOiB7IG1ham9yOiBudW1iZXIsIG1pbm9yOiBudW1iZXIsIGJ1aWxkTnVtSGk6IG51bWJlciwgYnVpbGROdW1Mb3c6IG51bWJlciB9O1xuXG4gIGNvbnN0cnVjdG9yKHsgaW50ZXJmYWNlOiBpbnRlcmZhemUsIHRkc1ZlcnNpb24sIHByb2dOYW1lLCBwcm9nVmVyc2lvbiB9OiB7IGludGVyZmFjZTogTG9naW5BY2tUb2tlblsnaW50ZXJmYWNlJ10sIHRkc1ZlcnNpb246IExvZ2luQWNrVG9rZW5bJ3Rkc1ZlcnNpb24nXSwgcHJvZ05hbWU6IExvZ2luQWNrVG9rZW5bJ3Byb2dOYW1lJ10sIHByb2dWZXJzaW9uOiBMb2dpbkFja1Rva2VuWydwcm9nVmVyc2lvbiddIH0pIHtcbiAgICBzdXBlcignTE9HSU5BQ0snLCAnb25Mb2dpbkFjaycpO1xuXG4gICAgdGhpcy5pbnRlcmZhY2UgPSBpbnRlcmZhemU7XG4gICAgdGhpcy50ZHNWZXJzaW9uID0gdGRzVmVyc2lvbjtcbiAgICB0aGlzLnByb2dOYW1lID0gcHJvZ05hbWU7XG4gICAgdGhpcy5wcm9nVmVyc2lvbiA9IHByb2dWZXJzaW9uO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOQkNSb3dUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnTkJDUk9XJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUm93JztcblxuICBkZWNsYXJlIGNvbHVtbnM6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihjb2x1bW5zOiBhbnkpIHtcbiAgICBzdXBlcignTkJDUk9XJywgJ29uUm93Jyk7XG5cbiAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPcmRlclRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdPUkRFUic7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbk9yZGVyJztcblxuICBkZWNsYXJlIG9yZGVyQ29sdW1uczogbnVtYmVyW107XG5cbiAgY29uc3RydWN0b3Iob3JkZXJDb2x1bW5zOiBudW1iZXJbXSkge1xuICAgIHN1cGVyKCdPUkRFUicsICdvbk9yZGVyJyk7XG5cbiAgICB0aGlzLm9yZGVyQ29sdW1ucyA9IG9yZGVyQ29sdW1ucztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmV0dXJuU3RhdHVzVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ1JFVFVSTlNUQVRVUyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvblJldHVyblN0YXR1cyc7XG5cbiAgZGVjbGFyZSB2YWx1ZTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHZhbHVlOiBudW1iZXIpIHtcbiAgICBzdXBlcignUkVUVVJOU1RBVFVTJywgJ29uUmV0dXJuU3RhdHVzJyk7XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJldHVyblZhbHVlVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ1JFVFVSTlZBTFVFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUmV0dXJuVmFsdWUnO1xuXG4gIGRlY2xhcmUgcGFyYW1PcmRpbmFsOiBudW1iZXI7XG4gIGRlY2xhcmUgcGFyYW1OYW1lOiBzdHJpbmc7XG4gIGRlY2xhcmUgbWV0YWRhdGE6IE1ldGFkYXRhO1xuICBkZWNsYXJlIHZhbHVlOiB1bmtub3duO1xuXG4gIGNvbnN0cnVjdG9yKHsgcGFyYW1PcmRpbmFsLCBwYXJhbU5hbWUsIG1ldGFkYXRhLCB2YWx1ZSB9OiB7IHBhcmFtT3JkaW5hbDogbnVtYmVyLCBwYXJhbU5hbWU6IHN0cmluZywgbWV0YWRhdGE6IE1ldGFkYXRhLCB2YWx1ZTogdW5rbm93biB9KSB7XG4gICAgc3VwZXIoJ1JFVFVSTlZBTFVFJywgJ29uUmV0dXJuVmFsdWUnKTtcblxuICAgIHRoaXMucGFyYW1PcmRpbmFsID0gcGFyYW1PcmRpbmFsO1xuICAgIHRoaXMucGFyYW1OYW1lID0gcGFyYW1OYW1lO1xuICAgIHRoaXMubWV0YWRhdGEgPSBtZXRhZGF0YTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvd1Rva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdST1cnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25Sb3cnO1xuXG4gIGRlY2xhcmUgY29sdW1uczogYW55O1xuXG4gIGNvbnN0cnVjdG9yKGNvbHVtbnM6IGFueSkge1xuICAgIHN1cGVyKCdST1cnLCAnb25Sb3cnKTtcblxuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNTUElUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnU1NQSUNIQUxMRU5HRSc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvblNTUEknO1xuXG4gIGRlY2xhcmUgbnRsbXBhY2tldDogYW55O1xuICBkZWNsYXJlIG50bG1wYWNrZXRCdWZmZXI6IEJ1ZmZlcjtcblxuICBjb25zdHJ1Y3RvcihudGxtcGFja2V0OiBhbnksIG50bG1wYWNrZXRCdWZmZXI6IEJ1ZmZlcikge1xuICAgIHN1cGVyKCdTU1BJQ0hBTExFTkdFJywgJ29uU1NQSScpO1xuXG4gICAgdGhpcy5udGxtcGFja2V0ID0gbnRsbXBhY2tldDtcbiAgICB0aGlzLm50bG1wYWNrZXRCdWZmZXIgPSBudGxtcGFja2V0QnVmZmVyO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUtPLE1BQU1BLElBQUksR0FBRztFQUNsQkMsV0FBVyxFQUFFLElBQUk7RUFDakJDLE1BQU0sRUFBRSxJQUFJO0VBQ1pDLFdBQVcsRUFBRSxJQUFJO0VBQ2pCQyxPQUFPLEVBQUUsSUFBSTtFQUNiQyxJQUFJLEVBQUUsSUFBSTtFQUNWQyxRQUFRLEVBQUUsSUFBSTtFQUNkQyxVQUFVLEVBQUUsSUFBSTtFQUNoQkMsU0FBUyxFQUFFLElBQUk7RUFDZkMsS0FBSyxFQUFFLElBQUk7RUFDWEMsYUFBYSxFQUFFLElBQUk7RUFDbkJDLFdBQVcsRUFBRSxJQUFJO0VBQ2pCQyxJQUFJLEVBQUUsSUFBSTtFQUNWQyxRQUFRLEVBQUUsSUFBSTtFQUNkQyxNQUFNLEVBQUUsSUFBSTtFQUNaQyxNQUFNLEVBQUUsSUFBSTtFQUNaQyxLQUFLLEVBQUUsSUFBSTtFQUNYQyxZQUFZLEVBQUUsSUFBSTtFQUNsQkMsV0FBVyxFQUFFLElBQUk7RUFDakJDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLE9BQU8s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
329
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUWVBFIiwiQUxUTUVUQURBVEEiLCJBTFRST1ciLCJDT0xNRVRBREFUQSIsIkNPTElORk8iLCJET05FIiwiRE9ORVBST0MiLCJET05FSU5QUk9DIiwiRU5WQ0hBTkdFIiwiRVJST1IiLCJGRUFUVVJFRVhUQUNLIiwiRkVEQVVUSElORk8iLCJJTkZPIiwiTE9HSU5BQ0siLCJOQkNST1ciLCJPRkZTRVQiLCJPUkRFUiIsIlJFVFVSTlNUQVRVUyIsIlJFVFVSTlZBTFVFIiwiUk9XIiwiU1NQSSIsIlRBQk5BTUUiLCJleHBvcnRzIiwiVG9rZW4iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJoYW5kbGVyTmFtZSIsIkNvbE1ldGFkYXRhVG9rZW4iLCJjb2x1bW5zIiwiRG9uZVRva2VuIiwibW9yZSIsInNxbEVycm9yIiwiYXR0ZW50aW9uIiwic2VydmVyRXJyb3IiLCJyb3dDb3VudCIsImN1ckNtZCIsIkRvbmVJblByb2NUb2tlbiIsIkRvbmVQcm9jVG9rZW4iLCJEYXRhYmFzZUVudkNoYW5nZVRva2VuIiwibmV3VmFsdWUiLCJvbGRWYWx1ZSIsInR5cGUiLCJMYW5ndWFnZUVudkNoYW5nZVRva2VuIiwiQ2hhcnNldEVudkNoYW5nZVRva2VuIiwiUGFja2V0U2l6ZUVudkNoYW5nZVRva2VuIiwiQmVnaW5UcmFuc2FjdGlvbkVudkNoYW5nZVRva2VuIiwiQ29tbWl0VHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbiIsIlJvbGxiYWNrVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbiIsIkRhdGFiYXNlTWlycm9yaW5nUGFydG5lckVudkNoYW5nZVRva2VuIiwiUmVzZXRDb25uZWN0aW9uRW52Q2hhbmdlVG9rZW4iLCJDb2xsYXRpb25DaGFuZ2VUb2tlbiIsIlJvdXRpbmdFbnZDaGFuZ2VUb2tlbiIsIkZlYXR1cmVFeHRBY2tUb2tlbiIsImZlZEF1dGgiLCJ1dGY4U3VwcG9ydCIsIkZlZEF1dGhJbmZvVG9rZW4iLCJzcG4iLCJzdHN1cmwiLCJJbmZvTWVzc2FnZVRva2VuIiwibnVtYmVyIiwic3RhdGUiLCJjbGFzcyIsImNsYXp6IiwibWVzc2FnZSIsInNlcnZlck5hbWUiLCJwcm9jTmFtZSIsImxpbmVOdW1iZXIiLCJFcnJvck1lc3NhZ2VUb2tlbiIsIkxvZ2luQWNrVG9rZW4iLCJpbnRlcmZhY2UiLCJpbnRlcmZhemUiLCJ0ZHNWZXJzaW9uIiwicHJvZ05hbWUiLCJwcm9nVmVyc2lvbiIsIk5CQ1Jvd1Rva2VuIiwiT3JkZXJUb2tlbiIsIm9yZGVyQ29sdW1ucyIsIlJldHVyblN0YXR1c1Rva2VuIiwidmFsdWUiLCJSZXR1cm5WYWx1ZVRva2VuIiwicGFyYW1PcmRpbmFsIiwicGFyYW1OYW1lIiwibWV0YWRhdGEiLCJSb3dUb2tlbiIsIlNTUElUb2tlbiIsIm50bG1wYWNrZXQiLCJudGxtcGFja2V0QnVmZmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL3Rva2VuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxhdGlvbiB9IGZyb20gJy4uL2NvbGxhdGlvbic7XG5pbXBvcnQgeyB0eXBlIE1ldGFkYXRhIH0gZnJvbSAnLi4vbWV0YWRhdGEtcGFyc2VyJztcbmltcG9ydCB7IHR5cGUgQ29sdW1uTWV0YWRhdGEgfSBmcm9tICcuL2NvbG1ldGFkYXRhLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgeyBUb2tlbkhhbmRsZXIgfSBmcm9tICcuL2hhbmRsZXInO1xuXG5leHBvcnQgY29uc3QgVFlQRSA9IHtcbiAgQUxUTUVUQURBVEE6IDB4ODgsXG4gIEFMVFJPVzogMHhEMyxcbiAgQ09MTUVUQURBVEE6IDB4ODEsXG4gIENPTElORk86IDB4QTUsXG4gIERPTkU6IDB4RkQsXG4gIERPTkVQUk9DOiAweEZFLFxuICBET05FSU5QUk9DOiAweEZGLFxuICBFTlZDSEFOR0U6IDB4RTMsXG4gIEVSUk9SOiAweEFBLFxuICBGRUFUVVJFRVhUQUNLOiAweEFFLFxuICBGRURBVVRISU5GTzogMHhFRSxcbiAgSU5GTzogMHhBQixcbiAgTE9HSU5BQ0s6IDB4QUQsXG4gIE5CQ1JPVzogMHhEMixcbiAgT0ZGU0VUOiAweDc4LFxuICBPUkRFUjogMHhBOSxcbiAgUkVUVVJOU1RBVFVTOiAweDc5LFxuICBSRVRVUk5WQUxVRTogMHhBQyxcbiAgUk9XOiAweEQxLFxuICBTU1BJOiAweEVELFxuICBUQUJOQU1FOiAweEE0XG59O1xuXG50eXBlIEhhbmRsZXJOYW1lID0ga2V5b2YgVG9rZW5IYW5kbGVyO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6IHN0cmluZztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZToga2V5b2YgVG9rZW5IYW5kbGVyO1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgaGFuZGxlck5hbWU6IEhhbmRsZXJOYW1lKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmhhbmRsZXJOYW1lID0gaGFuZGxlck5hbWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbE1ldGFkYXRhVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0NPTE1FVEFEQVRBJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uQ29sTWV0YWRhdGEnO1xuXG4gIGRlY2xhcmUgY29sdW1uczogQ29sdW1uTWV0YWRhdGFbXTtcblxuICBjb25zdHJ1Y3Rvcihjb2x1bW5zOiBDb2x1bW5NZXRhZGF0YVtdKSB7XG4gICAgc3VwZXIoJ0NPTE1FVEFEQVRBJywgJ29uQ29sTWV0YWRhdGEnKTtcblxuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERvbmVUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRE9ORSc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkRvbmUnO1xuXG4gIGRlY2xhcmUgbW9yZTogYm9vbGVhbjtcbiAgZGVjbGFyZSBzcWxFcnJvcjogYm9vbGVhbjtcbiAgZGVjbGFyZSBhdHRlbnRpb246IGJvb2xlYW47XG4gIGRlY2xhcmUgc2VydmVyRXJyb3I6IGJvb2xlYW47XG4gIGRlY2xhcmUgcm93Q291bnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSBjdXJDbWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IG1vcmUsIHNxbEVycm9yLCBhdHRlbnRpb24sIHNlcnZlckVycm9yLCByb3dDb3VudCwgY3VyQ21kIH06IHsgbW9yZTogYm9vbGVhbiwgc3FsRXJyb3I6IGJvb2xlYW4sIGF0dGVudGlvbjogYm9vbGVhbiwgc2VydmVyRXJyb3I6IGJvb2xlYW4sIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIGN1ckNtZDogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRE9ORScsICdvbkRvbmUnKTtcblxuICAgIHRoaXMubW9yZSA9IG1vcmU7XG4gICAgdGhpcy5zcWxFcnJvciA9IHNxbEVycm9yO1xuICAgIHRoaXMuYXR0ZW50aW9uID0gYXR0ZW50aW9uO1xuICAgIHRoaXMuc2VydmVyRXJyb3IgPSBzZXJ2ZXJFcnJvcjtcbiAgICB0aGlzLnJvd0NvdW50ID0gcm93Q291bnQ7XG4gICAgdGhpcy5jdXJDbWQgPSBjdXJDbWQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERvbmVJblByb2NUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRE9ORUlOUFJPQyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkRvbmVJblByb2MnO1xuXG4gIGRlY2xhcmUgbW9yZTogYm9vbGVhbjtcbiAgZGVjbGFyZSBzcWxFcnJvcjogYm9vbGVhbjtcbiAgZGVjbGFyZSBhdHRlbnRpb246IGJvb2xlYW47XG4gIGRlY2xhcmUgc2VydmVyRXJyb3I6IGJvb2xlYW47XG4gIGRlY2xhcmUgcm93Q291bnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSBjdXJDbWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IG1vcmUsIHNxbEVycm9yLCBhdHRlbnRpb24sIHNlcnZlckVycm9yLCByb3dDb3VudCwgY3VyQ21kIH06IHsgbW9yZTogYm9vbGVhbiwgc3FsRXJyb3I6IGJvb2xlYW4sIGF0dGVudGlvbjogYm9vbGVhbiwgc2VydmVyRXJyb3I6IGJvb2xlYW4sIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIGN1ckNtZDogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRE9ORUlOUFJPQycsICdvbkRvbmVJblByb2MnKTtcblxuICAgIHRoaXMubW9yZSA9IG1vcmU7XG4gICAgdGhpcy5zcWxFcnJvciA9IHNxbEVycm9yO1xuICAgIHRoaXMuYXR0ZW50aW9uID0gYXR0ZW50aW9uO1xuICAgIHRoaXMuc2VydmVyRXJyb3IgPSBzZXJ2ZXJFcnJvcjtcbiAgICB0aGlzLnJvd0NvdW50ID0gcm93Q291bnQ7XG4gICAgdGhpcy5jdXJDbWQgPSBjdXJDbWQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERvbmVQcm9jVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0RPTkVQUk9DJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRG9uZVByb2MnO1xuXG4gIGRlY2xhcmUgbW9yZTogYm9vbGVhbjtcbiAgZGVjbGFyZSBzcWxFcnJvcjogYm9vbGVhbjtcbiAgZGVjbGFyZSBhdHRlbnRpb246IGJvb2xlYW47XG4gIGRlY2xhcmUgc2VydmVyRXJyb3I6IGJvb2xlYW47XG4gIGRlY2xhcmUgcm93Q291bnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSBjdXJDbWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IG1vcmUsIHNxbEVycm9yLCBhdHRlbnRpb24sIHNlcnZlckVycm9yLCByb3dDb3VudCwgY3VyQ21kIH06IHsgbW9yZTogYm9vbGVhbiwgc3FsRXJyb3I6IGJvb2xlYW4sIGF0dGVudGlvbjogYm9vbGVhbiwgc2VydmVyRXJyb3I6IGJvb2xlYW4sIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIGN1ckNtZDogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRE9ORVBST0MnLCAnb25Eb25lUHJvYycpO1xuXG4gICAgdGhpcy5tb3JlID0gbW9yZTtcbiAgICB0aGlzLnNxbEVycm9yID0gc3FsRXJyb3I7XG4gICAgdGhpcy5hdHRlbnRpb24gPSBhdHRlbnRpb247XG4gICAgdGhpcy5zZXJ2ZXJFcnJvciA9IHNlcnZlckVycm9yO1xuICAgIHRoaXMucm93Q291bnQgPSByb3dDb3VudDtcbiAgICB0aGlzLmN1ckNtZCA9IGN1ckNtZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YWJhc2VFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRGF0YWJhc2VDaGFuZ2UnO1xuXG4gIGRlY2xhcmUgdHlwZTogJ0RBVEFCQVNFJztcbiAgZGVjbGFyZSBuZXdWYWx1ZTogc3RyaW5nO1xuICBkZWNsYXJlIG9sZFZhbHVlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobmV3VmFsdWU6IHN0cmluZywgb2xkVmFsdWU6IHN0cmluZykge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25EYXRhYmFzZUNoYW5nZScpO1xuXG4gICAgdGhpcy50eXBlID0gJ0RBVEFCQVNFJztcbiAgICB0aGlzLm5ld1ZhbHVlID0gbmV3VmFsdWU7XG4gICAgdGhpcy5vbGRWYWx1ZSA9IG9sZFZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMYW5ndWFnZUVudkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25MYW5ndWFnZUNoYW5nZSc7XG5cbiAgZGVjbGFyZSB0eXBlOiAnTEFOR1VBR0UnO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiBzdHJpbmc7XG4gIGRlY2xhcmUgb2xkVmFsdWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogc3RyaW5nLCBvbGRWYWx1ZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvbkxhbmd1YWdlQ2hhbmdlJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnTEFOR1VBR0UnO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENoYXJzZXRFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uQ2hhcnNldENoYW5nZSc7XG5cbiAgZGVjbGFyZSB0eXBlOiAnQ0hBUlNFVCc7XG4gIGRlY2xhcmUgbmV3VmFsdWU6IHN0cmluZztcbiAgZGVjbGFyZSBvbGRWYWx1ZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG5ld1ZhbHVlOiBzdHJpbmcsIG9sZFZhbHVlOiBzdHJpbmcpIHtcbiAgICBzdXBlcignRU5WQ0hBTkdFJywgJ29uQ2hhcnNldENoYW5nZScpO1xuXG4gICAgdGhpcy50eXBlID0gJ0NIQVJTRVQnO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBhY2tldFNpemVFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUGFja2V0U2l6ZUNoYW5nZSc7XG5cbiAgZGVjbGFyZSB0eXBlOiAnUEFDS0VUX1NJWkUnO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiBudW1iZXI7XG4gIGRlY2xhcmUgb2xkVmFsdWU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogbnVtYmVyLCBvbGRWYWx1ZTogbnVtYmVyKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvblBhY2tldFNpemVDaGFuZ2UnKTtcblxuICAgIHRoaXMudHlwZSA9ICdQQUNLRVRfU0laRSc7XG4gICAgdGhpcy5uZXdWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMub2xkVmFsdWUgPSBvbGRWYWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmVnaW5UcmFuc2FjdGlvbkVudkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25CZWdpblRyYW5zYWN0aW9uJztcblxuICBkZWNsYXJlIHR5cGU6ICdCRUdJTl9UWE4nO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiBCdWZmZXI7XG4gIGRlY2xhcmUgb2xkVmFsdWU6IEJ1ZmZlcjtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogQnVmZmVyLCBvbGRWYWx1ZTogQnVmZmVyKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvbkJlZ2luVHJhbnNhY3Rpb24nKTtcblxuICAgIHRoaXMudHlwZSA9ICdCRUdJTl9UWE4nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbW1pdFRyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0VOVkNIQU5HRSc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkNvbW1pdFRyYW5zYWN0aW9uJztcblxuICBkZWNsYXJlIHR5cGU6ICdDT01NSVRfVFhOJztcbiAgZGVjbGFyZSBuZXdWYWx1ZTogQnVmZmVyO1xuICBkZWNsYXJlIG9sZFZhbHVlOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3IobmV3VmFsdWU6IEJ1ZmZlciwgb2xkVmFsdWU6IEJ1ZmZlcikge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25Db21taXRUcmFuc2FjdGlvbicpO1xuXG4gICAgdGhpcy50eXBlID0gJ0NPTU1JVF9UWE4nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvbGxiYWNrVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUm9sbGJhY2tUcmFuc2FjdGlvbic7XG5cbiAgZGVjbGFyZSB0eXBlOiAnUk9MTEJBQ0tfVFhOJztcbiAgZGVjbGFyZSBvbGRWYWx1ZTogQnVmZmVyO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3IobmV3VmFsdWU6IEJ1ZmZlciwgb2xkVmFsdWU6IEJ1ZmZlcikge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25Sb2xsYmFja1RyYW5zYWN0aW9uJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnUk9MTEJBQ0tfVFhOJztcbiAgICB0aGlzLm5ld1ZhbHVlID0gbmV3VmFsdWU7XG4gICAgdGhpcy5vbGRWYWx1ZSA9IG9sZFZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhYmFzZU1pcnJvcmluZ1BhcnRuZXJFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRGF0YWJhc2VNaXJyb3JpbmdQYXJ0bmVyJztcblxuICBkZWNsYXJlIHR5cGU6ICdEQVRBQkFTRV9NSVJST1JJTkdfUEFSVE5FUic7XG4gIGRlY2xhcmUgb2xkVmFsdWU6IHN0cmluZztcbiAgZGVjbGFyZSBuZXdWYWx1ZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG5ld1ZhbHVlOiBzdHJpbmcsIG9sZFZhbHVlOiBzdHJpbmcpIHtcbiAgICBzdXBlcignRU5WQ0hBTkdFJywgJ29uRGF0YWJhc2VNaXJyb3JpbmdQYXJ0bmVyJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnREFUQUJBU0VfTUlSUk9SSU5HX1BBUlRORVInO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlc2V0Q29ubmVjdGlvbkVudkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25SZXNldENvbm5lY3Rpb24nO1xuXG4gIGRlY2xhcmUgdHlwZTogJ1JFU0VUX0NPTk5FQ1RJT04nO1xuICBkZWNsYXJlIG9sZFZhbHVlOiBCdWZmZXI7XG4gIGRlY2xhcmUgbmV3VmFsdWU6IEJ1ZmZlcjtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogQnVmZmVyLCBvbGRWYWx1ZTogQnVmZmVyKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvblJlc2V0Q29ubmVjdGlvbicpO1xuXG4gICAgdGhpcy50eXBlID0gJ1JFU0VUX0NPTk5FQ1RJT04nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgRW52Q2hhbmdlVG9rZW4gPVxuICBEYXRhYmFzZUVudkNoYW5nZVRva2VuIHxcbiAgTGFuZ3VhZ2VFbnZDaGFuZ2VUb2tlbiB8XG4gIENoYXJzZXRFbnZDaGFuZ2VUb2tlbiB8XG4gIFBhY2tldFNpemVFbnZDaGFuZ2VUb2tlbiB8XG4gIEJlZ2luVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbiB8XG4gIENvbW1pdFRyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4gfFxuICBSb2xsYmFja1RyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4gfFxuICBEYXRhYmFzZU1pcnJvcmluZ1BhcnRuZXJFbnZDaGFuZ2VUb2tlbiB8XG4gIFJlc2V0Q29ubmVjdGlvbkVudkNoYW5nZVRva2VuIHxcbiAgUm91dGluZ0VudkNoYW5nZVRva2VuIHxcbiAgQ29sbGF0aW9uQ2hhbmdlVG9rZW47XG5cbmV4cG9ydCBjbGFzcyBDb2xsYXRpb25DaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uU3FsQ29sbGF0aW9uQ2hhbmdlJztcblxuICBkZWNsYXJlIHR5cGU6ICdTUUxfQ09MTEFUSU9OJztcbiAgZGVjbGFyZSBvbGRWYWx1ZTogQ29sbGF0aW9uIHwgdW5kZWZpbmVkO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiBDb2xsYXRpb24gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IobmV3VmFsdWU6IENvbGxhdGlvbiB8IHVuZGVmaW5lZCwgb2xkVmFsdWU6IENvbGxhdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25TcWxDb2xsYXRpb25DaGFuZ2UnKTtcblxuICAgIHRoaXMudHlwZSA9ICdTUUxfQ09MTEFUSU9OJztcbiAgICB0aGlzLm5ld1ZhbHVlID0gbmV3VmFsdWU7XG4gICAgdGhpcy5vbGRWYWx1ZSA9IG9sZFZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSb3V0aW5nRW52Q2hhbmdlVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0VOVkNIQU5HRSc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvblJvdXRpbmdDaGFuZ2UnO1xuXG4gIGRlY2xhcmUgdHlwZTogJ1JPVVRJTkdfQ0hBTkdFJztcbiAgZGVjbGFyZSBuZXdWYWx1ZTogeyBwcm90b2NvbDogbnVtYmVyLCBwb3J0OiBudW1iZXIsIHNlcnZlcjogc3RyaW5nIH07XG4gIGRlY2xhcmUgb2xkVmFsdWU6IEJ1ZmZlcjtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogeyBwcm90b2NvbDogbnVtYmVyLCBwb3J0OiBudW1iZXIsIHNlcnZlcjogc3RyaW5nIH0sIG9sZFZhbHVlOiBCdWZmZXIpIHtcbiAgICBzdXBlcignRU5WQ0hBTkdFJywgJ29uUm91dGluZ0NoYW5nZScpO1xuXG4gICAgdGhpcy50eXBlID0gJ1JPVVRJTkdfQ0hBTkdFJztcbiAgICB0aGlzLm5ld1ZhbHVlID0gbmV3VmFsdWU7XG4gICAgdGhpcy5vbGRWYWx1ZSA9IG9sZFZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGZWF0dXJlRXh0QWNrVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0ZFQVRVUkVFWFRBQ0snO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25GZWF0dXJlRXh0QWNrJztcblxuICBkZWNsYXJlIGZlZEF1dGg6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcblxuICAvKiogVmFsdWUgb2YgVVRGOF9TVVBQT1JUIGFja25vd2xlZGdlbWVudC5cbiAgICpcbiAgICogdW5kZWZpbmVkIHdoZW4gVVRGOF9TVVBQT1JUIG5vdCBpbmNsdWRlZCBpbiB0b2tlbi4gKi9cbiAgZGVjbGFyZSB1dGY4U3VwcG9ydDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihmZWRBdXRoOiBCdWZmZXIgfCB1bmRlZmluZWQsIHV0ZjhTdXBwb3J0OiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgc3VwZXIoJ0ZFQVRVUkVFWFRBQ0snLCAnb25GZWF0dXJlRXh0QWNrJyk7XG5cbiAgICB0aGlzLmZlZEF1dGggPSBmZWRBdXRoO1xuICAgIHRoaXMudXRmOFN1cHBvcnQgPSB1dGY4U3VwcG9ydDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmVkQXV0aEluZm9Ub2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRkVEQVVUSElORk8nO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25GZWRBdXRoSW5mbyc7XG5cbiAgZGVjbGFyZSBzcG46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSBzdHN1cmw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihzcG46IHN0cmluZyB8IHVuZGVmaW5lZCwgc3RzdXJsOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBzdXBlcignRkVEQVVUSElORk8nLCAnb25GZWRBdXRoSW5mbycpO1xuXG4gICAgdGhpcy5zcG4gPSBzcG47XG4gICAgdGhpcy5zdHN1cmwgPSBzdHN1cmw7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluZm9NZXNzYWdlVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0lORk8nO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25JbmZvTWVzc2FnZSc7XG5cbiAgZGVjbGFyZSBudW1iZXI6IG51bWJlcjtcbiAgZGVjbGFyZSBzdGF0ZTogbnVtYmVyO1xuICBkZWNsYXJlIGNsYXNzOiBudW1iZXI7XG4gIGRlY2xhcmUgbWVzc2FnZTogc3RyaW5nO1xuICBkZWNsYXJlIHNlcnZlck5hbWU6IHN0cmluZztcbiAgZGVjbGFyZSBwcm9jTmFtZTogc3RyaW5nO1xuICBkZWNsYXJlIGxpbmVOdW1iZXI6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IG51bWJlciwgc3RhdGUsIGNsYXNzOiBjbGF6eiwgbWVzc2FnZSwgc2VydmVyTmFtZSwgcHJvY05hbWUsIGxpbmVOdW1iZXIgfTogeyBudW1iZXI6IG51bWJlciwgc3RhdGU6IG51bWJlciwgY2xhc3M6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nLCBzZXJ2ZXJOYW1lOiBzdHJpbmcsIHByb2NOYW1lOiBzdHJpbmcsIGxpbmVOdW1iZXI6IG51bWJlciB9KSB7XG4gICAgc3VwZXIoJ0lORk8nLCAnb25JbmZvTWVzc2FnZScpO1xuXG4gICAgdGhpcy5udW1iZXIgPSBudW1iZXI7XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICAgIHRoaXMuY2xhc3MgPSBjbGF6ejtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIHRoaXMuc2VydmVyTmFtZSA9IHNlcnZlck5hbWU7XG4gICAgdGhpcy5wcm9jTmFtZSA9IHByb2NOYW1lO1xuICAgIHRoaXMubGluZU51bWJlciA9IGxpbmVOdW1iZXI7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVycm9yTWVzc2FnZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFUlJPUic7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkVycm9yTWVzc2FnZSc7XG5cbiAgZGVjbGFyZSBudW1iZXI6IG51bWJlcjtcbiAgZGVjbGFyZSBzdGF0ZTogbnVtYmVyO1xuICBkZWNsYXJlIGNsYXNzOiBudW1iZXI7XG4gIGRlY2xhcmUgbWVzc2FnZTogc3RyaW5nO1xuICBkZWNsYXJlIHNlcnZlck5hbWU6IHN0cmluZztcbiAgZGVjbGFyZSBwcm9jTmFtZTogc3RyaW5nO1xuICBkZWNsYXJlIGxpbmVOdW1iZXI6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IG51bWJlciwgc3RhdGUsIGNsYXNzOiBjbGF6eiwgbWVzc2FnZSwgc2VydmVyTmFtZSwgcHJvY05hbWUsIGxpbmVOdW1iZXIgfTogeyBudW1iZXI6IG51bWJlciwgc3RhdGU6IG51bWJlciwgY2xhc3M6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nLCBzZXJ2ZXJOYW1lOiBzdHJpbmcsIHByb2NOYW1lOiBzdHJpbmcsIGxpbmVOdW1iZXI6IG51bWJlciB9KSB7XG4gICAgc3VwZXIoJ0VSUk9SJywgJ29uRXJyb3JNZXNzYWdlJyk7XG5cbiAgICB0aGlzLm51bWJlciA9IG51bWJlcjtcbiAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5jbGFzcyA9IGNsYXp6O1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgdGhpcy5zZXJ2ZXJOYW1lID0gc2VydmVyTmFtZTtcbiAgICB0aGlzLnByb2NOYW1lID0gcHJvY05hbWU7XG4gICAgdGhpcy5saW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTG9naW5BY2tUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnTE9HSU5BQ0snO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25Mb2dpbkFjayc7XG5cbiAgZGVjbGFyZSBpbnRlcmZhY2U6IHN0cmluZztcbiAgZGVjbGFyZSB0ZHNWZXJzaW9uOiBzdHJpbmc7XG4gIGRlY2xhcmUgcHJvZ05hbWU6IHN0cmluZztcbiAgZGVjbGFyZSBwcm9nVmVyc2lvbjogeyBtYWpvcjogbnVtYmVyLCBtaW5vcjogbnVtYmVyLCBidWlsZE51bUhpOiBudW1iZXIsIGJ1aWxkTnVtTG93OiBudW1iZXIgfTtcblxuICBjb25zdHJ1Y3Rvcih7IGludGVyZmFjZTogaW50ZXJmYXplLCB0ZHNWZXJzaW9uLCBwcm9nTmFtZSwgcHJvZ1ZlcnNpb24gfTogeyBpbnRlcmZhY2U6IExvZ2luQWNrVG9rZW5bJ2ludGVyZmFjZSddLCB0ZHNWZXJzaW9uOiBMb2dpbkFja1Rva2VuWyd0ZHNWZXJzaW9uJ10sIHByb2dOYW1lOiBMb2dpbkFja1Rva2VuWydwcm9nTmFtZSddLCBwcm9nVmVyc2lvbjogTG9naW5BY2tUb2tlblsncHJvZ1ZlcnNpb24nXSB9KSB7XG4gICAgc3VwZXIoJ0xPR0lOQUNLJywgJ29uTG9naW5BY2snKTtcblxuICAgIHRoaXMuaW50ZXJmYWNlID0gaW50ZXJmYXplO1xuICAgIHRoaXMudGRzVmVyc2lvbiA9IHRkc1ZlcnNpb247XG4gICAgdGhpcy5wcm9nTmFtZSA9IHByb2dOYW1lO1xuICAgIHRoaXMucHJvZ1ZlcnNpb24gPSBwcm9nVmVyc2lvbjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTkJDUm93VG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ05CQ1JPVyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvblJvdyc7XG5cbiAgZGVjbGFyZSBjb2x1bW5zOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoY29sdW1uczogYW55KSB7XG4gICAgc3VwZXIoJ05CQ1JPVycsICdvblJvdycpO1xuXG4gICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3JkZXJUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnT1JERVInO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25PcmRlcic7XG5cbiAgZGVjbGFyZSBvcmRlckNvbHVtbnM6IG51bWJlcltdO1xuXG4gIGNvbnN0cnVjdG9yKG9yZGVyQ29sdW1uczogbnVtYmVyW10pIHtcbiAgICBzdXBlcignT1JERVInLCAnb25PcmRlcicpO1xuXG4gICAgdGhpcy5vcmRlckNvbHVtbnMgPSBvcmRlckNvbHVtbnM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJldHVyblN0YXR1c1Rva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdSRVRVUk5TVEFUVVMnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25SZXR1cm5TdGF0dXMnO1xuXG4gIGRlY2xhcmUgdmFsdWU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih2YWx1ZTogbnVtYmVyKSB7XG4gICAgc3VwZXIoJ1JFVFVSTlNUQVRVUycsICdvblJldHVyblN0YXR1cycpO1xuXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXR1cm5WYWx1ZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdSRVRVUk5WQUxVRSc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvblJldHVyblZhbHVlJztcblxuICBkZWNsYXJlIHBhcmFtT3JkaW5hbDogbnVtYmVyO1xuICBkZWNsYXJlIHBhcmFtTmFtZTogc3RyaW5nO1xuICBkZWNsYXJlIG1ldGFkYXRhOiBNZXRhZGF0YTtcbiAgZGVjbGFyZSB2YWx1ZTogdW5rbm93bjtcblxuICBjb25zdHJ1Y3Rvcih7IHBhcmFtT3JkaW5hbCwgcGFyYW1OYW1lLCBtZXRhZGF0YSwgdmFsdWUgfTogeyBwYXJhbU9yZGluYWw6IG51bWJlciwgcGFyYW1OYW1lOiBzdHJpbmcsIG1ldGFkYXRhOiBNZXRhZGF0YSwgdmFsdWU6IHVua25vd24gfSkge1xuICAgIHN1cGVyKCdSRVRVUk5WQUxVRScsICdvblJldHVyblZhbHVlJyk7XG5cbiAgICB0aGlzLnBhcmFtT3JkaW5hbCA9IHBhcmFtT3JkaW5hbDtcbiAgICB0aGlzLnBhcmFtTmFtZSA9IHBhcmFtTmFtZTtcbiAgICB0aGlzLm1ldGFkYXRhID0gbWV0YWRhdGE7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSb3dUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnUk9XJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUm93JztcblxuICBkZWNsYXJlIGNvbHVtbnM6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihjb2x1bW5zOiBhbnkpIHtcbiAgICBzdXBlcignUk9XJywgJ29uUm93Jyk7XG5cbiAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTU1BJVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ1NTUElDSEFMTEVOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25TU1BJJztcblxuICBkZWNsYXJlIG50bG1wYWNrZXQ6IGFueTtcbiAgZGVjbGFyZSBudGxtcGFja2V0QnVmZmVyOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3IobnRsbXBhY2tldDogYW55LCBudGxtcGFja2V0QnVmZmVyOiBCdWZmZXIpIHtcbiAgICBzdXBlcignU1NQSUNIQUxMRU5HRScsICdvblNTUEknKTtcblxuICAgIHRoaXMubnRsbXBhY2tldCA9IG50bG1wYWNrZXQ7XG4gICAgdGhpcy5udGxtcGFja2V0QnVmZmVyID0gbnRsbXBhY2tldEJ1ZmZlcjtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFLTyxNQUFNQSxJQUFJLEdBQUc7RUFDbEJDLFdBQVcsRUFBRSxJQUFJO0VBQ2pCQyxNQUFNLEVBQUUsSUFBSTtFQUNaQyxX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
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","names":["TYPE","ALTMETADATA","ALTROW","COLMETADATA","COLINFO","DONE","DONEPROC","DONEINPROC","ENVCHANGE","ERROR","FEATUREEXTACK","FEDAUTHINFO","INFO","LOGINACK","NBCROW","OFFSET","ORDER","RETURNSTATUS","RETURNVALUE","ROW","SSPI","TABNAME","exports","Token","constructor","name","handlerName","ColMetadataToken","columns","DoneToken","more","sqlError","attention","serverError","rowCount","curCmd","DoneInProcToken","DoneProcToken","DatabaseEnvChangeToken","newValue","oldValue","type","LanguageEnvChangeToken","CharsetEnvChangeToken","PacketSizeEnvChangeToken","BeginTransactionEnvChangeToken","CommitTransactionEnvChangeToken","RollbackTransactionEnvChangeToken","DatabaseMirroringPartnerEnvChangeToken","ResetConnectionEnvChangeToken","CollationChangeToken","RoutingEnvChangeToken","FeatureExtAckToken","fedAuth","utf8Support","FedAuthInfoToken","spn","stsurl","InfoMessageToken","number","state","class","clazz","message","serverName","procName","lineNumber","ErrorMessageToken","LoginAckToken","interface","interfaze","tdsVersion","progName","progVersion","NBCRowToken","OrderToken","orderColumns","ReturnStatusToken","value","ReturnValueToken","paramOrdinal","paramName","metadata","RowToken","SSPIToken","ntlmpacket","ntlmpacketBuffer"],"sources":["../../src/token/token.ts"],"sourcesContent":["import { Collation } from '../collation';\nimport { type Metadata } from '../metadata-parser';\nimport { type ColumnMetadata } from './colmetadata-token-parser';\nimport { TokenHandler } from './handler';\n\nexport const TYPE = {\n ALTMETADATA: 0x88,\n ALTROW: 0xD3,\n COLMETADATA: 0x81,\n COLINFO: 0xA5,\n DONE: 0xFD,\n DONEPROC: 0xFE,\n DONEINPROC: 0xFF,\n ENVCHANGE: 0xE3,\n ERROR: 0xAA,\n FEATUREEXTACK: 0xAE,\n FEDAUTHINFO: 0xEE,\n INFO: 0xAB,\n LOGINACK: 0xAD,\n NBCROW: 0xD2,\n OFFSET: 0x78,\n ORDER: 0xA9,\n RETURNSTATUS: 0x79,\n RETURNVALUE: 0xAC,\n ROW: 0xD1,\n SSPI: 0xED,\n TABNAME: 0xA4\n};\n\ntype HandlerName = keyof TokenHandler;\n\nexport abstract class Token {\n declare name: string;\n declare handlerName: keyof TokenHandler;\n\n constructor(name: string, handlerName: HandlerName) {\n this.name = name;\n this.handlerName = handlerName;\n }\n}\n\nexport class ColMetadataToken extends Token {\n declare name: 'COLMETADATA';\n declare handlerName: 'onColMetadata';\n\n declare columns: ColumnMetadata[];\n\n constructor(columns: ColumnMetadata[]) {\n super('COLMETADATA', 'onColMetadata');\n\n this.columns = columns;\n }\n}\n\nexport class DoneToken extends Token {\n declare name: 'DONE';\n declare handlerName: 'onDone';\n\n declare more: boolean;\n declare sqlError: boolean;\n declare attention: boolean;\n declare serverError: boolean;\n declare rowCount: number | undefined;\n declare curCmd: number;\n\n constructor({ more, sqlError, attention, serverError, rowCount, curCmd }: { more: boolean, sqlError: boolean, attention: boolean, serverError: boolean, rowCount: number | undefined, curCmd: number }) {\n super('DONE', 'onDone');\n\n this.more = more;\n this.sqlError = sqlError;\n this.attention = attention;\n this.serverError = serverError;\n this.rowCount = rowCount;\n this.curCmd = curCmd;\n }\n}\n\nexport class DoneInProcToken extends Token {\n declare name: 'DONEINPROC';\n declare handlerName: 'onDoneInProc';\n\n declare more: boolean;\n declare sqlError: boolean;\n declare attention: boolean;\n declare serverError: boolean;\n declare rowCount: number | undefined;\n declare curCmd: number;\n\n constructor({ more, sqlError, attention, serverError, rowCount, curCmd }: { more: boolean, sqlError: boolean, attention: boolean, serverError: boolean, rowCount: number | undefined, curCmd: number }) {\n super('DONEINPROC', 'onDoneInProc');\n\n this.more = more;\n this.sqlError = sqlError;\n this.attention = attention;\n this.serverError = serverError;\n this.rowCount = rowCount;\n this.curCmd = curCmd;\n }\n}\n\nexport class DoneProcToken extends Token {\n declare name: 'DONEPROC';\n declare handlerName: 'onDoneProc';\n\n declare more: boolean;\n declare sqlError: boolean;\n declare attention: boolean;\n declare serverError: boolean;\n declare rowCount: number | undefined;\n declare curCmd: number;\n\n constructor({ more, sqlError, attention, serverError, rowCount, curCmd }: { more: boolean, sqlError: boolean, attention: boolean, serverError: boolean, rowCount: number | undefined, curCmd: number }) {\n super('DONEPROC', 'onDoneProc');\n\n this.more = more;\n this.sqlError = sqlError;\n this.attention = attention;\n this.serverError = serverError;\n this.rowCount = rowCount;\n this.curCmd = curCmd;\n }\n}\n\nexport class DatabaseEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onDatabaseChange';\n\n declare type: 'DATABASE';\n declare newValue: string;\n declare oldValue: string;\n\n constructor(newValue: string, oldValue: string) {\n super('ENVCHANGE', 'onDatabaseChange');\n\n this.type = 'DATABASE';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class LanguageEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onLanguageChange';\n\n declare type: 'LANGUAGE';\n declare newValue: string;\n declare oldValue: string;\n\n constructor(newValue: string, oldValue: string) {\n super('ENVCHANGE', 'onLanguageChange');\n\n this.type = 'LANGUAGE';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class CharsetEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onCharsetChange';\n\n declare type: 'CHARSET';\n declare newValue: string;\n declare oldValue: string;\n\n constructor(newValue: string, oldValue: string) {\n super('ENVCHANGE', 'onCharsetChange');\n\n this.type = 'CHARSET';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class PacketSizeEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onPacketSizeChange';\n\n declare type: 'PACKET_SIZE';\n declare newValue: number;\n declare oldValue: number;\n\n constructor(newValue: number, oldValue: number) {\n super('ENVCHANGE', 'onPacketSizeChange');\n\n this.type = 'PACKET_SIZE';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class BeginTransactionEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onBeginTransaction';\n\n declare type: 'BEGIN_TXN';\n declare newValue: Buffer;\n declare oldValue: Buffer;\n\n constructor(newValue: Buffer, oldValue: Buffer) {\n super('ENVCHANGE', 'onBeginTransaction');\n\n this.type = 'BEGIN_TXN';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class CommitTransactionEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onCommitTransaction';\n\n declare type: 'COMMIT_TXN';\n declare newValue: Buffer;\n declare oldValue: Buffer;\n\n constructor(newValue: Buffer, oldValue: Buffer) {\n super('ENVCHANGE', 'onCommitTransaction');\n\n this.type = 'COMMIT_TXN';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class RollbackTransactionEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onRollbackTransaction';\n\n declare type: 'ROLLBACK_TXN';\n declare oldValue: Buffer;\n declare newValue: Buffer;\n\n constructor(newValue: Buffer, oldValue: Buffer) {\n super('ENVCHANGE', 'onRollbackTransaction');\n\n this.type = 'ROLLBACK_TXN';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class DatabaseMirroringPartnerEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onDatabaseMirroringPartner';\n\n declare type: 'DATABASE_MIRRORING_PARTNER';\n declare oldValue: string;\n declare newValue: string;\n\n constructor(newValue: string, oldValue: string) {\n super('ENVCHANGE', 'onDatabaseMirroringPartner');\n\n this.type = 'DATABASE_MIRRORING_PARTNER';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class ResetConnectionEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onResetConnection';\n\n declare type: 'RESET_CONNECTION';\n declare oldValue: Buffer;\n declare newValue: Buffer;\n\n constructor(newValue: Buffer, oldValue: Buffer) {\n super('ENVCHANGE', 'onResetConnection');\n\n this.type = 'RESET_CONNECTION';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class CollationChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onSqlCollationChange';\n\n declare type: 'SQL_COLLATION';\n declare oldValue: Collation | undefined;\n declare newValue: Collation | undefined;\n\n constructor(newValue: Collation | undefined, oldValue: Collation | undefined) {\n super('ENVCHANGE', 'onSqlCollationChange');\n\n this.type = 'SQL_COLLATION';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class RoutingEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onRoutingChange';\n\n declare type: 'ROUTING_CHANGE';\n declare newValue: { protocol: number, port: number, server: string };\n declare oldValue: Buffer;\n\n constructor(newValue: { protocol: number, port: number, server: string }, oldValue: Buffer) {\n super('ENVCHANGE', 'onRoutingChange');\n\n this.type = 'ROUTING_CHANGE';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class FeatureExtAckToken extends Token {\n declare name: 'FEATUREEXTACK';\n declare handlerName: 'onFeatureExtAck';\n\n declare fedAuth: Buffer | undefined;\n\n /** Value of UTF8_SUPPORT acknowledgement.\n *\n * undefined when UTF8_SUPPORT not included in token. */\n declare utf8Support: boolean | undefined;\n\n constructor(fedAuth: Buffer | undefined, utf8Support: boolean | undefined) {\n super('FEATUREEXTACK', 'onFeatureExtAck');\n\n this.fedAuth = fedAuth;\n this.utf8Support = utf8Support;\n }\n}\n\nexport class FedAuthInfoToken extends Token {\n declare name: 'FEDAUTHINFO';\n declare handlerName: 'onFedAuthInfo';\n\n declare spn: string | undefined;\n declare stsurl: string | undefined;\n\n constructor(spn: string | undefined, stsurl: string | undefined) {\n super('FEDAUTHINFO', 'onFedAuthInfo');\n\n this.spn = spn;\n this.stsurl = stsurl;\n }\n}\n\nexport class InfoMessageToken extends Token {\n declare name: 'INFO';\n declare handlerName: 'onInfoMessage';\n\n declare number: number;\n declare state: number;\n declare class: number;\n declare message: string;\n declare serverName: string;\n declare procName: string;\n declare lineNumber: number;\n\n constructor({ number, state, class: clazz, message, serverName, procName, lineNumber }: { number: number, state: number, class: number, message: string, serverName: string, procName: string, lineNumber: number }) {\n super('INFO', 'onInfoMessage');\n\n this.number = number;\n this.state = state;\n this.class = clazz;\n this.message = message;\n this.serverName = serverName;\n this.procName = procName;\n this.lineNumber = lineNumber;\n }\n}\n\nexport class ErrorMessageToken extends Token {\n declare name: 'ERROR';\n declare handlerName: 'onErrorMessage';\n\n declare number: number;\n declare state: number;\n declare class: number;\n declare message: string;\n declare serverName: string;\n declare procName: string;\n declare lineNumber: number;\n\n constructor({ number, state, class: clazz, message, serverName, procName, lineNumber }: { number: number, state: number, class: number, message: string, serverName: string, procName: string, lineNumber: number }) {\n super('ERROR', 'onErrorMessage');\n\n this.number = number;\n this.state = state;\n this.class = clazz;\n this.message = message;\n this.serverName = serverName;\n this.procName = procName;\n this.lineNumber = lineNumber;\n }\n}\n\nexport class LoginAckToken extends Token {\n declare name: 'LOGINACK';\n declare handlerName: 'onLoginAck';\n\n declare interface: string;\n declare tdsVersion: string;\n declare progName: string;\n declare progVersion: { major: number, minor: number, buildNumHi: number, buildNumLow: number };\n\n constructor({ interface: interfaze, tdsVersion, progName, progVersion }: { interface: LoginAckToken['interface'], tdsVersion: LoginAckToken['tdsVersion'], progName: LoginAckToken['progName'], progVersion: LoginAckToken['progVersion'] }) {\n super('LOGINACK', 'onLoginAck');\n\n this.interface = interfaze;\n this.tdsVersion = tdsVersion;\n this.progName = progName;\n this.progVersion = progVersion;\n }\n}\n\nexport class NBCRowToken extends Token {\n declare name: 'NBCROW';\n declare handlerName: 'onRow';\n\n declare columns: any;\n\n constructor(columns: any) {\n super('NBCROW', 'onRow');\n\n this.columns = columns;\n }\n}\n\nexport class OrderToken extends Token {\n declare name: 'ORDER';\n declare handlerName: 'onOrder';\n\n declare orderColumns: number[];\n\n constructor(orderColumns: number[]) {\n super('ORDER', 'onOrder');\n\n this.orderColumns = orderColumns;\n }\n}\n\nexport class ReturnStatusToken extends Token {\n declare name: 'RETURNSTATUS';\n declare handlerName: 'onReturnStatus';\n\n declare value: number;\n\n constructor(value: number) {\n super('RETURNSTATUS', 'onReturnStatus');\n\n this.value = value;\n }\n}\n\nexport class ReturnValueToken extends Token {\n declare name: 'RETURNVALUE';\n declare handlerName: 'onReturnValue';\n\n declare paramOrdinal: number;\n declare paramName: string;\n declare metadata: Metadata;\n declare value: unknown;\n\n constructor({ paramOrdinal, paramName, metadata, value }: { paramOrdinal: number, paramName: string, metadata: Metadata, value: unknown }) {\n super('RETURNVALUE', 'onReturnValue');\n\n this.paramOrdinal = paramOrdinal;\n this.paramName = paramName;\n this.metadata = metadata;\n this.value = value;\n }\n}\n\nexport class RowToken extends Token {\n declare name: 'ROW';\n declare handlerName: 'onRow';\n\n declare columns: any;\n\n constructor(columns: any) {\n super('ROW', 'onRow');\n\n this.columns = columns;\n }\n}\n\nexport class SSPIToken extends Token {\n declare name: 'SSPICHALLENGE';\n declare handlerName: 'onSSPI';\n\n declare ntlmpacket: any;\n declare ntlmpacketBuffer: Buffer;\n\n constructor(ntlmpacket: any, ntlmpacketBuffer: Buffer) {\n super('SSPICHALLENGE', 'onSSPI');\n\n this.ntlmpacket = ntlmpacket;\n this.ntlmpacketBuffer = ntlmpacketBuffer;\n }\n}\n"],"mappings":";;;;;;AAKO,MAAMA,IAAI,GAAG;EAClBC,WAAW,EAAE,IAAI;EACjBC,MAAM,EAAE,IAAI;EACZC,WAAW,EAAE,IAAI;EACjBC,OAAO,EAAE,IAAI;EACbC,IAAI,EAAE,IAAI;EACVC,QAAQ,EAAE,IAAI;EACdC,UAAU,EAAE,IAAI;EAChBC,SAAS,EAAE,IAAI;EACfC,KAAK,EAAE,IAAI;EACXC,aAAa,EAAE,IAAI;EACnBC,WAAW,EAAE,IAAI;EACjBC,IAAI,EAAE,IAAI;EACVC,QAAQ,EAAE,IAAI;EACdC,MAAM,EAAE,IAAI;EACZC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE,IAAI;EACXC,YAAY,EAAE,IAAI;EAClBC,WAAW,EAAE,IAAI;EACjBC,GAAG,EAAE,IAAI;EACTC,IAAI,EAAE,IAAI;EACVC,OAAO,EAAE;AACX,CAAC;AAACC,OAAA,CAAAtB,IAAA,GAAAA,IAAA;AAIK,MAAeuB,KAAK,CAAC;EAI1BC,WAAWA,CAACC,IAAY,EAAEC,WAAwB,EAAE;IAClD,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,WAAW,GAAGA,WAAW;EAChC;AACF;AAACJ,OAAA,CAAAC,KAAA,GAAAA,KAAA;AAEM,MAAMI,gBAAgB,SAASJ,KAAK,CAAC;EAM1CC,WAAWA,CAACI,OAAyB,EAAE;IACrC,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC;IAErC,IAAI,CAACA,OAAO,GAAGA,OAAO;EACxB;AACF;AAACN,OAAA,CAAAK,gBAAA,GAAAA,gBAAA;AAEM,MAAME,SAAS,SAASN,KAAK,CAAC;EAWnCC,WAAWA,CAAC;IAAEM,IAAI;IAAEC,QAAQ;IAAEC,SAAS;IAAEC,WAAW;IAAEC,QAAQ;IAAEC;EAAqI,CAAC,EAAE;IACtM,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;IAEvB,IAAI,CAACL,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,MAAM,GAAGA,MAAM;EACtB;AACF;AAACb,OAAA,CAAAO,SAAA,GAAAA,SAAA;AAEM,MAAMO,eAAe,SAASb,KAAK,CAAC;EAWzCC,WAAWA,CAAC;IAAEM,IAAI;IAAEC,QAAQ;IAAEC,SAAS;IAAEC,WAAW;IAAEC,QAAQ;IAAEC;EAAqI,CAAC,EAAE;IACtM,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC;IAEnC,IAAI,CAACL,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,MAAM,GAAGA,MAAM;EACtB;AACF;AAACb,OAAA,CAAAc,eAAA,GAAAA,eAAA;AAEM,MAAMC,aAAa,SAASd,KAAK,CAAC;EAWvCC,WAAWA,CAAC;IAAEM,IAAI;IAAEC,QAAQ;IAAEC,SAAS;IAAEC,WAAW;IAAEC,QAAQ;IAAEC;EAAqI,CAAC,EAAE;IACtM,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC;IAE/B,IAAI,CAACL,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,MAAM,GAAGA,MAAM;EACtB;AACF;AAACb,OAAA,CAAAe,aAAA,GAAAA,aAAA;AAEM,MAAMC,sBAAsB,SAASf,KAAK,CAAC;EAQhDC,WAAWA,CAACe,QAAgB,EAAEC,QAAgB,EAAE;IAC9C,KAAK,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAEtC,IAAI,CAACC,IAAI,GAAG,UAAU;IACtB,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAAClB,OAAA,CAAAgB,sBAAA,GAAAA,sBAAA;AAEM,MAAMI,sBAAsB,SAASnB,KAAK,CAAC;EAQhDC,WAAWA,CAACe,QAAgB,EAAEC,QAAgB,EAAE;IAC9C,KAAK,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAEtC,IAAI,CAACC,IAAI,GAAG,UAAU;IACtB,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAAClB,OAAA,CAAAoB,sBAAA,GAAAA,sBAAA;AAEM,MAAMC,qBAAqB,SAASpB,KAAK,CAAC;EAQ/CC,WAAWA,CAACe,QAAgB,EAAEC,QAAgB,EAAE;IAC9C,KAAK,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAErC,IAAI,CAACC,IAAI,GAAG,SAAS;IACrB,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAAClB,OAAA,CAAAqB,qBAAA,GAAAA,qBAAA;AAEM,MAAMC,wBAAwB,SAASrB,KAAK,CAAC;EAQlDC,WAAWA,CAACe,QAAgB,EAAEC,QAAgB,EAAE;IAC9C,KAAK,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAExC,IAAI,CAACC,IAAI,GAAG,aAAa;IACzB,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAAClB,OAAA,CAAAsB,wBAAA,GAAAA,wBAAA;AAEM,MAAMC,8BAA8B,SAAStB,KAAK,CAAC;EAQxDC,WAAWA,CAACe,QAAgB,EAAEC,QAAgB,EAAE;IAC9C,KAAK,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAExC,IAAI,CAACC,IAAI,GAAG,WAAW;IACvB,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAAClB,OAAA,CAAAuB,8BAAA,GAAAA,8BAAA;AAEM,MAAMC,+BAA+B,SAASvB,KAAK,CAAC;EAQzDC,WAAWA,CAACe,QAAgB,EAAEC,QAAgB,EAAE;IAC9C,KAAK,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAEzC,IAAI,CAACC,IAAI,GAAG,YAAY;IACxB,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAAClB,OAAA,CAAAwB,+BAAA,GAAAA,+BAAA;AAEM,MAAMC,iCAAiC,SAASxB,KAAK,CAAC;EAQ3DC,WAAWA,CAACe,QAAgB,EAAEC,QAAgB,EAAE;IAC9C,KAAK,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAE3C,IAAI,CAACC,IAAI,GAAG,cAAc;IAC1B,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAAClB,OAAA,CAAAyB,iCAAA,GAAAA,iCAAA;AAEM,MAAMC,sCAAsC,SAASzB,KAAK,CAAC;EAQhEC,WAAWA,CAACe,QAAgB,EAAEC,QAAgB,EAAE;IAC9C,KAAK,CAAC,WAAW,EAAE,4BAA4B,CAAC;IAEhD,IAAI,CAACC,IAAI,GAAG,4BAA4B;IACxC,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAAClB,OAAA,CAAA0B,sCAAA,GAAAA,sCAAA;AAEM,MAAMC,6BAA6B,SAAS1B,KAAK,CAAC;EAQvDC,WAAWA,CAACe,QAAgB,EAAEC,QAAgB,EAAE;IAC9C,KAAK,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAEvC,IAAI,CAACC,IAAI,GAAG,kBAAkB;IAC9B,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAAClB,OAAA,CAAA2B,6BAAA,GAAAA,6BAAA;AAEM,MAAMC,oBAAoB,SAAS3B,KAAK,CAAC;EAQ9CC,WAAWA,CAACe,QAA+B,EAAEC,QAA+B,EAAE;IAC5E,KAAK,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAE1C,IAAI,CAACC,IAAI,GAAG,eAAe;IAC3B,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAAClB,OAAA,CAAA4B,oBAAA,GAAAA,oBAAA;AAEM,MAAMC,qBAAqB,SAAS5B,KAAK,CAAC;EAQ/CC,WAAWA,CAACe,QAA4D,EAAEC,QAAgB,EAAE;IAC1F,KAAK,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAErC,IAAI,CAACC,IAAI,GAAG,gBAAgB;IAC5B,IAAI,CAACF,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAAClB,OAAA,CAAA6B,qBAAA,GAAAA,qBAAA;AAEM,MAAMC,kBAAkB,SAAS7B,KAAK,CAAC;EAM5C;AACF;AACA;;EAGEC,WAAWA,CAAC6B,OAA2B,EAAEC,WAAgC,EAAE;IACzE,KAAK,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAEzC,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,WAAW,GAAGA,WAAW;EAChC;AACF;AAAChC,OAAA,CAAA8B,kBAAA,GAAAA,kBAAA;AAEM,MAAMG,gBAAgB,SAAShC,KAAK,CAAC;EAO1CC,WAAWA,CAACgC,GAAuB,EAAEC,MAA0B,EAAE;IAC/D,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC;IAErC,IAAI,CAACD,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,MAAM,GAAGA,MAAM;EACtB;AACF;AAACnC,OAAA,CAAAiC,gBAAA,GAAAA,gBAAA;AAEM,MAAMG,gBAAgB,SAASnC,KAAK,CAAC;EAY1CC,WAAWA,CAAC;IAAEmC,MAAM;IAAEC,KAAK;IAAEC,KAAK,EAAEC,KAAK;IAAEC,OAAO;IAAEC,UAAU;IAAEC,QAAQ;IAAEC;EAAwI,CAAC,EAAE;IACnN,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC;IAE9B,IAAI,CAACP,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,KAAK,GAAGC,KAAK;IAClB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,UAAU,GAAGA,UAAU;EAC9B;AACF;AAAC5C,OAAA,CAAAoC,gBAAA,GAAAA,gBAAA;AAEM,MAAMS,iBAAiB,SAAS5C,KAAK,CAAC;EAY3CC,WAAWA,CAAC;IAAEmC,MAAM;IAAEC,KAAK;IAAEC,KAAK,EAAEC,KAAK;IAAEC,OAAO;IAAEC,UAAU;IAAEC,QAAQ;IAAEC;EAAwI,CAAC,EAAE;IACnN,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAEhC,IAAI,CAACP,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,KAAK,GAAGC,KAAK;IAClB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,UAAU,GAAGA,UAAU;EAC9B;AACF;AAAC5C,OAAA,CAAA6C,iBAAA,GAAAA,iBAAA;AAEM,MAAMC,aAAa,SAAS7C,KAAK,CAAC;EASvCC,WAAWA,CAAC;IAAE6C,SAAS,EAAEC,SAAS;IAAEC,UAAU;IAAEC,QAAQ;IAAEC;EAAgL,CAAC,EAAE;IAC3O,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC;IAE/B,IAAI,CAACJ,SAAS,GAAGC,SAAS;IAC1B,IAAI,CAACC,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,WAAW,GAAGA,WAAW;EAChC;AACF;AAACnD,OAAA,CAAA8C,aAAA,GAAAA,aAAA;AAEM,MAAMM,WAAW,SAASnD,KAAK,CAAC;EAMrCC,WAAWA,CAACI,OAAY,EAAE;IACxB,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;IAExB,IAAI,CAACA,OAAO,GAAGA,OAAO;EACxB;AACF;AAACN,OAAA,CAAAoD,WAAA,GAAAA,WAAA;AAEM,MAAMC,UAAU,SAASpD,KAAK,CAAC;EAMpCC,WAAWA,CAACoD,YAAsB,EAAE;IAClC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC;IAEzB,IAAI,CAACA,YAAY,GAAGA,YAAY;EAClC;AACF;AAACtD,OAAA,CAAAqD,UAAA,GAAAA,UAAA;AAEM,MAAME,iBAAiB,SAAStD,KAAK,CAAC;EAM3CC,WAAWA,CAACsD,KAAa,EAAE;IACzB,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC;IAEvC,IAAI,CAACA,KAAK,GAAGA,KAAK;EACpB;AACF;AAACxD,OAAA,CAAAuD,iBAAA,GAAAA,iBAAA;AAEM,MAAME,gBAAgB,SAASxD,KAAK,CAAC;EAS1CC,WAAWA,CAAC;IAAEwD,YAAY;IAAEC,SAAS;IAAEC,QAAQ;IAAEJ;EAAuF,CAAC,EAAE;IACzI,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC;IAErC,IAAI,CAACE,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACJ,KAAK,GAAGA,KAAK;EACpB;AACF;AAACxD,OAAA,CAAAyD,gBAAA,GAAAA,gBAAA;AAEM,MAAMI,QAAQ,SAAS5D,KAAK,CAAC;EAMlCC,WAAWA,CAACI,OAAY,EAAE;IACxB,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;IAErB,IAAI,CAACA,OAAO,GAAGA,OAAO;EACxB;AACF;AAACN,OAAA,CAAA6D,QAAA,GAAAA,QAAA;AAEM,MAAMC,SAAS,SAAS7D,KAAK,CAAC;EAOnCC,WAAWA,CAAC6D,UAAe,EAAEC,gBAAwB,EAAE;IACrD,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC;IAEhC,IAAI,CAACD,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,gBAAgB,GAAGA,gBAAgB;EAC1C;AACF;AAAChE,OAAA,CAAA8D,SAAA,GAAAA,SAAA"}
1
+ {"version":3,"file":"token.js","names":["TYPE","ALTMETADATA","ALTROW","COLMETADATA","COLINFO","DONE","DONEPROC","DONEINPROC","ENVCHANGE","ERROR","FEATUREEXTACK","FEDAUTHINFO","INFO","LOGINACK","NBCROW","OFFSET","ORDER","RETURNSTATUS","RETURNVALUE","ROW","SSPI","TABNAME","exports","Token","constructor","name","handlerName","ColMetadataToken","columns","DoneToken","more","sqlError","attention","serverError","rowCount","curCmd","DoneInProcToken","DoneProcToken","DatabaseEnvChangeToken","newValue","oldValue","type","LanguageEnvChangeToken","CharsetEnvChangeToken","PacketSizeEnvChangeToken","BeginTransactionEnvChangeToken","CommitTransactionEnvChangeToken","RollbackTransactionEnvChangeToken","DatabaseMirroringPartnerEnvChangeToken","ResetConnectionEnvChangeToken","CollationChangeToken","RoutingEnvChangeToken","FeatureExtAckToken","fedAuth","utf8Support","FedAuthInfoToken","spn","stsurl","InfoMessageToken","number","state","class","clazz","message","serverName","procName","lineNumber","ErrorMessageToken","LoginAckToken","interface","interfaze","tdsVersion","progName","progVersion","NBCRowToken","OrderToken","orderColumns","ReturnStatusToken","value","ReturnValueToken","paramOrdinal","paramName","metadata","RowToken","SSPIToken","ntlmpacket","ntlmpacketBuffer"],"sources":["../../src/token/token.ts"],"sourcesContent":["import { Collation } from '../collation';\nimport { type Metadata } from '../metadata-parser';\nimport { type ColumnMetadata } from './colmetadata-token-parser';\nimport { TokenHandler } from './handler';\n\nexport const TYPE = {\n ALTMETADATA: 0x88,\n ALTROW: 0xD3,\n COLMETADATA: 0x81,\n COLINFO: 0xA5,\n DONE: 0xFD,\n DONEPROC: 0xFE,\n DONEINPROC: 0xFF,\n ENVCHANGE: 0xE3,\n ERROR: 0xAA,\n FEATUREEXTACK: 0xAE,\n FEDAUTHINFO: 0xEE,\n INFO: 0xAB,\n LOGINACK: 0xAD,\n NBCROW: 0xD2,\n OFFSET: 0x78,\n ORDER: 0xA9,\n RETURNSTATUS: 0x79,\n RETURNVALUE: 0xAC,\n ROW: 0xD1,\n SSPI: 0xED,\n TABNAME: 0xA4\n};\n\ntype HandlerName = keyof TokenHandler;\n\nexport abstract class Token {\n declare name: string;\n declare handlerName: keyof TokenHandler;\n\n constructor(name: string, handlerName: HandlerName) {\n this.name = name;\n this.handlerName = handlerName;\n }\n}\n\nexport class ColMetadataToken extends Token {\n declare name: 'COLMETADATA';\n declare handlerName: 'onColMetadata';\n\n declare columns: ColumnMetadata[];\n\n constructor(columns: ColumnMetadata[]) {\n super('COLMETADATA', 'onColMetadata');\n\n this.columns = columns;\n }\n}\n\nexport class DoneToken extends Token {\n declare name: 'DONE';\n declare handlerName: 'onDone';\n\n declare more: boolean;\n declare sqlError: boolean;\n declare attention: boolean;\n declare serverError: boolean;\n declare rowCount: number | undefined;\n declare curCmd: number;\n\n constructor({ more, sqlError, attention, serverError, rowCount, curCmd }: { more: boolean, sqlError: boolean, attention: boolean, serverError: boolean, rowCount: number | undefined, curCmd: number }) {\n super('DONE', 'onDone');\n\n this.more = more;\n this.sqlError = sqlError;\n this.attention = attention;\n this.serverError = serverError;\n this.rowCount = rowCount;\n this.curCmd = curCmd;\n }\n}\n\nexport class DoneInProcToken extends Token {\n declare name: 'DONEINPROC';\n declare handlerName: 'onDoneInProc';\n\n declare more: boolean;\n declare sqlError: boolean;\n declare attention: boolean;\n declare serverError: boolean;\n declare rowCount: number | undefined;\n declare curCmd: number;\n\n constructor({ more, sqlError, attention, serverError, rowCount, curCmd }: { more: boolean, sqlError: boolean, attention: boolean, serverError: boolean, rowCount: number | undefined, curCmd: number }) {\n super('DONEINPROC', 'onDoneInProc');\n\n this.more = more;\n this.sqlError = sqlError;\n this.attention = attention;\n this.serverError = serverError;\n this.rowCount = rowCount;\n this.curCmd = curCmd;\n }\n}\n\nexport class DoneProcToken extends Token {\n declare name: 'DONEPROC';\n declare handlerName: 'onDoneProc';\n\n declare more: boolean;\n declare sqlError: boolean;\n declare attention: boolean;\n declare serverError: boolean;\n declare rowCount: number | undefined;\n declare curCmd: number;\n\n constructor({ more, sqlError, attention, serverError, rowCount, curCmd }: { more: boolean, sqlError: boolean, attention: boolean, serverError: boolean, rowCount: number | undefined, curCmd: number }) {\n super('DONEPROC', 'onDoneProc');\n\n this.more = more;\n this.sqlError = sqlError;\n this.attention = attention;\n this.serverError = serverError;\n this.rowCount = rowCount;\n this.curCmd = curCmd;\n }\n}\n\nexport class DatabaseEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onDatabaseChange';\n\n declare type: 'DATABASE';\n declare newValue: string;\n declare oldValue: string;\n\n constructor(newValue: string, oldValue: string) {\n super('ENVCHANGE', 'onDatabaseChange');\n\n this.type = 'DATABASE';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class LanguageEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onLanguageChange';\n\n declare type: 'LANGUAGE';\n declare newValue: string;\n declare oldValue: string;\n\n constructor(newValue: string, oldValue: string) {\n super('ENVCHANGE', 'onLanguageChange');\n\n this.type = 'LANGUAGE';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class CharsetEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onCharsetChange';\n\n declare type: 'CHARSET';\n declare newValue: string;\n declare oldValue: string;\n\n constructor(newValue: string, oldValue: string) {\n super('ENVCHANGE', 'onCharsetChange');\n\n this.type = 'CHARSET';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class PacketSizeEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onPacketSizeChange';\n\n declare type: 'PACKET_SIZE';\n declare newValue: number;\n declare oldValue: number;\n\n constructor(newValue: number, oldValue: number) {\n super('ENVCHANGE', 'onPacketSizeChange');\n\n this.type = 'PACKET_SIZE';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class BeginTransactionEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onBeginTransaction';\n\n declare type: 'BEGIN_TXN';\n declare newValue: Buffer;\n declare oldValue: Buffer;\n\n constructor(newValue: Buffer, oldValue: Buffer) {\n super('ENVCHANGE', 'onBeginTransaction');\n\n this.type = 'BEGIN_TXN';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class CommitTransactionEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onCommitTransaction';\n\n declare type: 'COMMIT_TXN';\n declare newValue: Buffer;\n declare oldValue: Buffer;\n\n constructor(newValue: Buffer, oldValue: Buffer) {\n super('ENVCHANGE', 'onCommitTransaction');\n\n this.type = 'COMMIT_TXN';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class RollbackTransactionEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onRollbackTransaction';\n\n declare type: 'ROLLBACK_TXN';\n declare oldValue: Buffer;\n declare newValue: Buffer;\n\n constructor(newValue: Buffer, oldValue: Buffer) {\n super('ENVCHANGE', 'onRollbackTransaction');\n\n this.type = 'ROLLBACK_TXN';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class DatabaseMirroringPartnerEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onDatabaseMirroringPartner';\n\n declare type: 'DATABASE_MIRRORING_PARTNER';\n declare oldValue: string;\n declare newValue: string;\n\n constructor(newValue: string, oldValue: string) {\n super('ENVCHANGE', 'onDatabaseMirroringPartner');\n\n this.type = 'DATABASE_MIRRORING_PARTNER';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class ResetConnectionEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onResetConnection';\n\n declare type: 'RESET_CONNECTION';\n declare oldValue: Buffer;\n declare newValue: Buffer;\n\n constructor(newValue: Buffer, oldValue: Buffer) {\n super('ENVCHANGE', 'onResetConnection');\n\n this.type = 'RESET_CONNECTION';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport type EnvChangeToken =\n DatabaseEnvChangeToken |\n LanguageEnvChangeToken |\n CharsetEnvChangeToken |\n PacketSizeEnvChangeToken |\n BeginTransactionEnvChangeToken |\n CommitTransactionEnvChangeToken |\n RollbackTransactionEnvChangeToken |\n DatabaseMirroringPartnerEnvChangeToken |\n ResetConnectionEnvChangeToken |\n RoutingEnvChangeToken |\n CollationChangeToken;\n\nexport class CollationChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onSqlCollationChange';\n\n declare type: 'SQL_COLLATION';\n declare oldValue: Collation | undefined;\n declare newValue: Collation | undefined;\n\n constructor(newValue: Collation | undefined, oldValue: Collation | undefined) {\n super('ENVCHANGE', 'onSqlCollationChange');\n\n this.type = 'SQL_COLLATION';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class RoutingEnvChangeToken extends Token {\n declare name: 'ENVCHANGE';\n declare handlerName: 'onRoutingChange';\n\n declare type: 'ROUTING_CHANGE';\n declare newValue: { protocol: number, port: number, server: string };\n declare oldValue: Buffer;\n\n constructor(newValue: { protocol: number, port: number, server: string }, oldValue: Buffer) {\n super('ENVCHANGE', 'onRoutingChange');\n\n this.type = 'ROUTING_CHANGE';\n this.newValue = newValue;\n this.oldValue = oldValue;\n }\n}\n\nexport class FeatureExtAckToken extends Token {\n declare name: 'FEATUREEXTACK';\n declare handlerName: 'onFeatureExtAck';\n\n declare fedAuth: Buffer | undefined;\n\n /** Value of UTF8_SUPPORT acknowledgement.\n *\n * undefined when UTF8_SUPPORT not included in token. */\n declare utf8Support: boolean | undefined;\n\n constructor(fedAuth: Buffer | undefined, utf8Support: boolean | undefined) {\n super('FEATUREEXTACK', 'onFeatureExtAck');\n\n this.fedAuth = fedAuth;\n this.utf8Support = utf8Support;\n }\n}\n\nexport class FedAuthInfoToken extends Token {\n declare name: 'FEDAUTHINFO';\n declare handlerName: 'onFedAuthInfo';\n\n declare spn: string | undefined;\n declare stsurl: string | undefined;\n\n constructor(spn: string | undefined, stsurl: string | undefined) {\n super('FEDAUTHINFO', 'onFedAuthInfo');\n\n this.spn = spn;\n this.stsurl = stsurl;\n }\n}\n\nexport class InfoMessageToken extends Token {\n declare name: 'INFO';\n declare handlerName: 'onInfoMessage';\n\n declare number: number;\n declare state: number;\n declare class: number;\n declare message: string;\n declare serverName: string;\n declare procName: string;\n declare lineNumber: number;\n\n constructor({ number, state, class: clazz, message, serverName, procName, lineNumber }: { number: number, state: number, class: number, message: string, serverName: string, procName: string, lineNumber: number }) {\n super('INFO', 'onInfoMessage');\n\n this.number = number;\n this.state = state;\n this.class = clazz;\n this.message = message;\n this.serverName = serverName;\n this.procName = procName;\n this.lineNumber = lineNumber;\n }\n}\n\nexport class ErrorMessageToken extends Token {\n declare name: 'ERROR';\n declare handlerName: 'onErrorMessage';\n\n declare number: number;\n declare state: number;\n declare class: number;\n declare message: string;\n declare serverName: string;\n declare procName: string;\n declare lineNumber: number;\n\n constructor({ number, state, class: clazz, message, serverName, procName, lineNumber }: { number: number, state: number, class: number, message: string, serverName: string, procName: string, lineNumber: number }) {\n super('ERROR', 'onErrorMessage');\n\n this.number = number;\n this.state = state;\n this.class = clazz;\n this.message = message;\n this.serverName = serverName;\n this.procName = procName;\n this.lineNumber = lineNumber;\n }\n}\n\nexport class LoginAckToken extends Token {\n declare name: 'LOGINACK';\n declare handlerName: 'onLoginAck';\n\n declare interface: string;\n declare tdsVersion: string;\n declare progName: string;\n declare progVersion: { major: number, minor: number, buildNumHi: number, buildNumLow: number };\n\n constructor({ interface: interfaze, tdsVersion, progName, progVersion }: { interface: LoginAckToken['interface'], tdsVersion: LoginAckToken['tdsVersion'], progName: LoginAckToken['progName'], progVersion: LoginAckToken['progVersion'] }) {\n super('LOGINACK', 'onLoginAck');\n\n this.interface = interfaze;\n this.tdsVersion = tdsVersion;\n this.progName = progName;\n this.progVersion = progVersion;\n }\n}\n\nexport class NBCRowToken extends Token {\n declare name: 'NBCROW';\n declare handlerName: 'onRow';\n\n declare columns: any;\n\n constructor(columns: any) {\n super('NBCROW', 'onRow');\n\n this.columns = columns;\n }\n}\n\nexport class OrderToken extends Token {\n declare name: 'ORDER';\n declare handlerName: 'onOrder';\n\n declare orderColumns: number[];\n\n constructor(orderColumns: number[]) {\n super('ORDER', 'onOrder');\n\n this.orderColumns = orderColumns;\n }\n}\n\nexport class ReturnStatusToken extends Token {\n declare name: 'RETURNSTATUS';\n declare handlerName: 'onReturnStatus';\n\n declare value: number;\n\n constructor(value: number) {\n super('RETURNSTATUS', 'onReturnStatus');\n\n this.value = value;\n }\n}\n\nexport class ReturnValueToken extends Token {\n declare name: 'RETURNVALUE';\n declare handlerName: 'onReturnValue';\n\n declare paramOrdinal: number;\n declare paramName: string;\n declare metadata: Metadata;\n declare value: unknown;\n\n constructor({ paramOrdinal, paramName, metadata, value }: { paramOrdinal: number, paramName: string, metadata: Metadata, value: unknown }) {\n super('RETURNVALUE', 'onReturnValue');\n\n this.paramOrdinal = paramOrdinal;\n this.paramName = paramName;\n this.metadata = metadata;\n this.value = value;\n }\n}\n\nexport class RowToken extends Token {\n declare name: 'ROW';\n declare handlerName: 'onRow';\n\n declare columns: any;\n\n constructor(columns: any) {\n super('ROW', 'onRow');\n\n this.columns = columns;\n }\n}\n\nexport class SSPIToken extends Token {\n declare name: 'SSPICHALLENGE';\n declare handlerName: 'onSSPI';\n\n declare ntlmpacket: any;\n declare ntlmpacketBuffer: Buffer;\n\n constructor(ntlmpacket: any, ntlmpacketBuffer: Buffer) {\n super('SSPICHALLENGE', 'onSSPI');\n\n this.ntlmpacket = ntlmpacket;\n this.ntlmpacketBuffer = ntlmpacketBuffer;\n }\n}\n"],"mappings":"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"}