tedious 16.4.1 → 16.5.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 (77) hide show
  1. package/benchmarks/bulk-load/iterable.js +1 -1
  2. package/benchmarks/common.js +2 -4
  3. package/benchmarks/package-lock.json +21173 -0
  4. package/benchmarks/package.json +11 -0
  5. package/benchmarks/query/call-tvp.js +1 -1
  6. package/benchmarks/query/insert-varbinary.js +1 -1
  7. package/benchmarks/query/select-many-rows.js +1 -1
  8. package/benchmarks/query/select-nvarchar.js +1 -1
  9. package/benchmarks/query/select-varbinary.js +1 -1
  10. package/benchmarks/request/rpcrequest-payload-tvp.js +2 -2
  11. package/benchmarks/request/rpcrequest-payload-varbinary.js +2 -2
  12. package/benchmarks/token-parser/colmetadata-token.js +4 -2
  13. package/benchmarks/token-parser/done-token.js +5 -2
  14. package/benchmarks/token-parser/simple-tokens.js +8 -2
  15. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +1 -8
  16. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js.map +1 -1
  17. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +1 -8
  18. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js.map +1 -1
  19. package/lib/always-encrypted/cek-entry.js +1 -7
  20. package/lib/always-encrypted/cek-entry.js.map +1 -1
  21. package/lib/always-encrypted/keystore-provider-azure-key-vault.js +1 -8
  22. package/lib/always-encrypted/keystore-provider-azure-key-vault.js.map +1 -1
  23. package/lib/always-encrypted/symmetric-key.js +1 -2
  24. package/lib/always-encrypted/symmetric-key.js.map +1 -1
  25. package/lib/bulk-load-payload.js +1 -3
  26. package/lib/bulk-load-payload.js.map +1 -1
  27. package/lib/bulk-load.js +15 -23
  28. package/lib/bulk-load.js.map +1 -1
  29. package/lib/collation.js +1 -7
  30. package/lib/collation.js.map +1 -1
  31. package/lib/connection.js +22 -28
  32. package/lib/connection.js.map +1 -1
  33. package/lib/debug.js +1 -4
  34. package/lib/debug.js.map +1 -1
  35. package/lib/errors/abort-error.js +1 -2
  36. package/lib/errors/abort-error.js.map +1 -1
  37. package/lib/errors/timeout-error.js +1 -2
  38. package/lib/errors/timeout-error.js.map +1 -1
  39. package/lib/errors.js +1 -10
  40. package/lib/errors.js.map +1 -1
  41. package/lib/incoming-message-stream.js +1 -4
  42. package/lib/incoming-message-stream.js.map +1 -1
  43. package/lib/login7-payload.js +1 -23
  44. package/lib/login7-payload.js.map +1 -1
  45. package/lib/message-io.js +1 -8
  46. package/lib/message-io.js.map +1 -1
  47. package/lib/message.js +1 -4
  48. package/lib/message.js.map +1 -1
  49. package/lib/ntlm-payload.js +1 -2
  50. package/lib/ntlm-payload.js.map +1 -1
  51. package/lib/outgoing-message-stream.js +1 -5
  52. package/lib/outgoing-message-stream.js.map +1 -1
  53. package/lib/packet.js +1 -2
  54. package/lib/packet.js.map +1 -1
  55. package/lib/prelogin-payload.js +1 -11
  56. package/lib/prelogin-payload.js.map +1 -1
  57. package/lib/request.js +13 -19
  58. package/lib/request.js.map +1 -1
  59. package/lib/rpcrequest-payload.js +1 -6
  60. package/lib/rpcrequest-payload.js.map +1 -1
  61. package/lib/sqlbatch-payload.js +1 -4
  62. package/lib/sqlbatch-payload.js.map +1 -1
  63. package/lib/token/handler.js +3 -13
  64. package/lib/token/handler.js.map +1 -1
  65. package/lib/token/stream-parser.js +1 -10
  66. package/lib/token/stream-parser.js.map +1 -1
  67. package/lib/token/token-stream-parser.js +1 -4
  68. package/lib/token/token-stream-parser.js.map +1 -1
  69. package/lib/token/token.js +2 -88
  70. package/lib/token/token.js.map +1 -1
  71. package/lib/tracking-buffer/writable-tracking-buffer.js +1 -7
  72. package/lib/tracking-buffer/writable-tracking-buffer.js.map +1 -1
  73. package/lib/transaction.js +1 -4
  74. package/lib/transaction.js.map +1 -1
  75. package/package.json +1 -1
  76. package/benchmarks/bulk-load/stream.js +0 -62
  77. package/benchmarks/bulk-load/sync.js +0 -59
@@ -29,8 +29,6 @@ const TYPE = {
29
29
  };
30
30
  exports.TYPE = TYPE;
31
31
  class Token {
32
- name;
33
- handlerName;
34
32
  constructor(name, handlerName) {
35
33
  this.name = name;
36
34
  this.handlerName = handlerName;
@@ -38,7 +36,6 @@ class Token {
38
36
  }
39
37
  exports.Token = Token;
40
38
  class ColMetadataToken extends Token {
41
- columns;
42
39
  constructor(columns) {
43
40
  super('COLMETADATA', 'onColMetadata');
44
41
  this.columns = columns;
@@ -46,12 +43,6 @@ class ColMetadataToken extends Token {
46
43
  }
47
44
  exports.ColMetadataToken = ColMetadataToken;
48
45
  class DoneToken extends Token {
49
- more;
50
- sqlError;
51
- attention;
52
- serverError;
53
- rowCount;
54
- curCmd;
55
46
  constructor({
56
47
  more,
57
48
  sqlError,
@@ -71,12 +62,6 @@ class DoneToken extends Token {
71
62
  }
72
63
  exports.DoneToken = DoneToken;
73
64
  class DoneInProcToken extends Token {
74
- more;
75
- sqlError;
76
- attention;
77
- serverError;
78
- rowCount;
79
- curCmd;
80
65
  constructor({
81
66
  more,
82
67
  sqlError,
@@ -96,12 +81,6 @@ class DoneInProcToken extends Token {
96
81
  }
97
82
  exports.DoneInProcToken = DoneInProcToken;
98
83
  class DoneProcToken extends Token {
99
- more;
100
- sqlError;
101
- attention;
102
- serverError;
103
- rowCount;
104
- curCmd;
105
84
  constructor({
106
85
  more,
107
86
  sqlError,
@@ -121,9 +100,6 @@ class DoneProcToken extends Token {
121
100
  }
122
101
  exports.DoneProcToken = DoneProcToken;
123
102
  class DatabaseEnvChangeToken extends Token {
124
- type;
125
- newValue;
126
- oldValue;
127
103
  constructor(newValue, oldValue) {
128
104
  super('ENVCHANGE', 'onDatabaseChange');
129
105
  this.type = 'DATABASE';
@@ -133,9 +109,6 @@ class DatabaseEnvChangeToken extends Token {
133
109
  }
134
110
  exports.DatabaseEnvChangeToken = DatabaseEnvChangeToken;
135
111
  class LanguageEnvChangeToken extends Token {
136
- type;
137
- newValue;
138
- oldValue;
139
112
  constructor(newValue, oldValue) {
140
113
  super('ENVCHANGE', 'onLanguageChange');
141
114
  this.type = 'LANGUAGE';
@@ -145,9 +118,6 @@ class LanguageEnvChangeToken extends Token {
145
118
  }
146
119
  exports.LanguageEnvChangeToken = LanguageEnvChangeToken;
147
120
  class CharsetEnvChangeToken extends Token {
148
- type;
149
- newValue;
150
- oldValue;
151
121
  constructor(newValue, oldValue) {
152
122
  super('ENVCHANGE', 'onCharsetChange');
153
123
  this.type = 'CHARSET';
@@ -157,9 +127,6 @@ class CharsetEnvChangeToken extends Token {
157
127
  }
158
128
  exports.CharsetEnvChangeToken = CharsetEnvChangeToken;
159
129
  class PacketSizeEnvChangeToken extends Token {
160
- type;
161
- newValue;
162
- oldValue;
163
130
  constructor(newValue, oldValue) {
164
131
  super('ENVCHANGE', 'onPacketSizeChange');
165
132
  this.type = 'PACKET_SIZE';
@@ -169,9 +136,6 @@ class PacketSizeEnvChangeToken extends Token {
169
136
  }
170
137
  exports.PacketSizeEnvChangeToken = PacketSizeEnvChangeToken;
171
138
  class BeginTransactionEnvChangeToken extends Token {
172
- type;
173
- newValue;
174
- oldValue;
175
139
  constructor(newValue, oldValue) {
176
140
  super('ENVCHANGE', 'onBeginTransaction');
177
141
  this.type = 'BEGIN_TXN';
@@ -181,9 +145,6 @@ class BeginTransactionEnvChangeToken extends Token {
181
145
  }
182
146
  exports.BeginTransactionEnvChangeToken = BeginTransactionEnvChangeToken;
183
147
  class CommitTransactionEnvChangeToken extends Token {
184
- type;
185
- newValue;
186
- oldValue;
187
148
  constructor(newValue, oldValue) {
188
149
  super('ENVCHANGE', 'onCommitTransaction');
189
150
  this.type = 'COMMIT_TXN';
@@ -193,9 +154,6 @@ class CommitTransactionEnvChangeToken extends Token {
193
154
  }
194
155
  exports.CommitTransactionEnvChangeToken = CommitTransactionEnvChangeToken;
195
156
  class RollbackTransactionEnvChangeToken extends Token {
196
- type;
197
- oldValue;
198
- newValue;
199
157
  constructor(newValue, oldValue) {
200
158
  super('ENVCHANGE', 'onRollbackTransaction');
201
159
  this.type = 'ROLLBACK_TXN';
@@ -205,9 +163,6 @@ class RollbackTransactionEnvChangeToken extends Token {
205
163
  }
206
164
  exports.RollbackTransactionEnvChangeToken = RollbackTransactionEnvChangeToken;
207
165
  class DatabaseMirroringPartnerEnvChangeToken extends Token {
208
- type;
209
- oldValue;
210
- newValue;
211
166
  constructor(newValue, oldValue) {
212
167
  super('ENVCHANGE', 'onDatabaseMirroringPartner');
213
168
  this.type = 'DATABASE_MIRRORING_PARTNER';
@@ -217,9 +172,6 @@ class DatabaseMirroringPartnerEnvChangeToken extends Token {
217
172
  }
218
173
  exports.DatabaseMirroringPartnerEnvChangeToken = DatabaseMirroringPartnerEnvChangeToken;
219
174
  class ResetConnectionEnvChangeToken extends Token {
220
- type;
221
- oldValue;
222
- newValue;
223
175
  constructor(newValue, oldValue) {
224
176
  super('ENVCHANGE', 'onResetConnection');
225
177
  this.type = 'RESET_CONNECTION';
@@ -229,9 +181,6 @@ class ResetConnectionEnvChangeToken extends Token {
229
181
  }
230
182
  exports.ResetConnectionEnvChangeToken = ResetConnectionEnvChangeToken;
231
183
  class CollationChangeToken extends Token {
232
- type;
233
- oldValue;
234
- newValue;
235
184
  constructor(newValue, oldValue) {
236
185
  super('ENVCHANGE', 'onSqlCollationChange');
237
186
  this.type = 'SQL_COLLATION';
@@ -241,9 +190,6 @@ class CollationChangeToken extends Token {
241
190
  }
242
191
  exports.CollationChangeToken = CollationChangeToken;
243
192
  class RoutingEnvChangeToken extends Token {
244
- type;
245
- newValue;
246
- oldValue;
247
193
  constructor(newValue, oldValue) {
248
194
  super('ENVCHANGE', 'onRoutingChange');
249
195
  this.type = 'ROUTING_CHANGE';
@@ -253,12 +199,10 @@ class RoutingEnvChangeToken extends Token {
253
199
  }
254
200
  exports.RoutingEnvChangeToken = RoutingEnvChangeToken;
255
201
  class FeatureExtAckToken extends Token {
256
- fedAuth;
257
-
258
202
  /** Value of UTF8_SUPPORT acknowledgement.
259
203
  *
260
204
  * undefined when UTF8_SUPPORT not included in token. */
261
- utf8Support;
205
+
262
206
  constructor(fedAuth, utf8Support) {
263
207
  super('FEATUREEXTACK', 'onFeatureExtAck');
264
208
  this.fedAuth = fedAuth;
@@ -267,8 +211,6 @@ class FeatureExtAckToken extends Token {
267
211
  }
268
212
  exports.FeatureExtAckToken = FeatureExtAckToken;
269
213
  class FedAuthInfoToken extends Token {
270
- spn;
271
- stsurl;
272
214
  constructor(spn, stsurl) {
273
215
  super('FEDAUTHINFO', 'onFedAuthInfo');
274
216
  this.spn = spn;
@@ -277,13 +219,6 @@ class FedAuthInfoToken extends Token {
277
219
  }
278
220
  exports.FedAuthInfoToken = FedAuthInfoToken;
279
221
  class InfoMessageToken extends Token {
280
- number;
281
- state;
282
- class;
283
- message;
284
- serverName;
285
- procName;
286
- lineNumber;
287
222
  constructor({
288
223
  number,
289
224
  state,
@@ -305,13 +240,6 @@ class InfoMessageToken extends Token {
305
240
  }
306
241
  exports.InfoMessageToken = InfoMessageToken;
307
242
  class ErrorMessageToken extends Token {
308
- number;
309
- state;
310
- class;
311
- message;
312
- serverName;
313
- procName;
314
- lineNumber;
315
243
  constructor({
316
244
  number,
317
245
  state,
@@ -333,10 +261,6 @@ class ErrorMessageToken extends Token {
333
261
  }
334
262
  exports.ErrorMessageToken = ErrorMessageToken;
335
263
  class LoginAckToken extends Token {
336
- interface;
337
- tdsVersion;
338
- progName;
339
- progVersion;
340
264
  constructor({
341
265
  interface: interfaze,
342
266
  tdsVersion,
@@ -352,7 +276,6 @@ class LoginAckToken extends Token {
352
276
  }
353
277
  exports.LoginAckToken = LoginAckToken;
354
278
  class NBCRowToken extends Token {
355
- columns;
356
279
  constructor(columns) {
357
280
  super('NBCROW', 'onRow');
358
281
  this.columns = columns;
@@ -360,7 +283,6 @@ class NBCRowToken extends Token {
360
283
  }
361
284
  exports.NBCRowToken = NBCRowToken;
362
285
  class OrderToken extends Token {
363
- orderColumns;
364
286
  constructor(orderColumns) {
365
287
  super('ORDER', 'onOrder');
366
288
  this.orderColumns = orderColumns;
@@ -368,7 +290,6 @@ class OrderToken extends Token {
368
290
  }
369
291
  exports.OrderToken = OrderToken;
370
292
  class ReturnStatusToken extends Token {
371
- value;
372
293
  constructor(value) {
373
294
  super('RETURNSTATUS', 'onReturnStatus');
374
295
  this.value = value;
@@ -376,10 +297,6 @@ class ReturnStatusToken extends Token {
376
297
  }
377
298
  exports.ReturnStatusToken = ReturnStatusToken;
378
299
  class ReturnValueToken extends Token {
379
- paramOrdinal;
380
- paramName;
381
- metadata;
382
- value;
383
300
  constructor({
384
301
  paramOrdinal,
385
302
  paramName,
@@ -395,7 +312,6 @@ class ReturnValueToken extends Token {
395
312
  }
396
313
  exports.ReturnValueToken = ReturnValueToken;
397
314
  class RowToken extends Token {
398
- columns;
399
315
  constructor(columns) {
400
316
  super('ROW', 'onRow');
401
317
  this.columns = columns;
@@ -403,8 +319,6 @@ class RowToken extends Token {
403
319
  }
404
320
  exports.RowToken = RowToken;
405
321
  class SSPIToken extends Token {
406
- ntlmpacket;
407
- ntlmpacketBuffer;
408
322
  constructor(ntlmpacket, ntlmpacketBuffer) {
409
323
  super('SSPICHALLENGE', 'onSSPI');
410
324
  this.ntlmpacket = ntlmpacket;
@@ -412,4 +326,4 @@ class SSPIToken extends Token {
412
326
  }
413
327
  }
414
328
  exports.SSPIToken = SSPIToken;
415
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUWVBFIiwiQUxUTUVUQURBVEEiLCJBTFRST1ciLCJDT0xNRVRBREFUQSIsIkNPTElORk8iLCJET05FIiwiRE9ORVBST0MiLCJET05FSU5QUk9DIiwiRU5WQ0hBTkdFIiwiRVJST1IiLCJGRUFUVVJFRVhUQUNLIiwiRkVEQVVUSElORk8iLCJJTkZPIiwiTE9HSU5BQ0siLCJOQkNST1ciLCJPRkZTRVQiLCJPUkRFUiIsIlJFVFVSTlNUQVRVUyIsIlJFVFVSTlZBTFVFIiwiUk9XIiwiU1NQSSIsIlRBQk5BTUUiLCJleHBvcnRzIiwiVG9rZW4iLCJuYW1lIiwiaGFuZGxlck5hbWUiLCJjb25zdHJ1Y3RvciIsIkNvbE1ldGFkYXRhVG9rZW4iLCJjb2x1bW5zIiwiRG9uZVRva2VuIiwibW9yZSIsInNxbEVycm9yIiwiYXR0ZW50aW9uIiwic2VydmVyRXJyb3IiLCJyb3dDb3VudCIsImN1ckNtZCIsIkRvbmVJblByb2NUb2tlbiIsIkRvbmVQcm9jVG9rZW4iLCJEYXRhYmFzZUVudkNoYW5nZVRva2VuIiwidHlwZSIsIm5ld1ZhbHVlIiwib2xkVmFsdWUiLCJMYW5ndWFnZUVudkNoYW5nZVRva2VuIiwiQ2hhcnNldEVudkNoYW5nZVRva2VuIiwiUGFja2V0U2l6ZUVudkNoYW5nZVRva2VuIiwiQmVnaW5UcmFuc2FjdGlvbkVudkNoYW5nZVRva2VuIiwiQ29tbWl0VHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbiIsIlJvbGxiYWNrVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbiIsIkRhdGFiYXNlTWlycm9yaW5nUGFydG5lckVudkNoYW5nZVRva2VuIiwiUmVzZXRDb25uZWN0aW9uRW52Q2hhbmdlVG9rZW4iLCJDb2xsYXRpb25DaGFuZ2VUb2tlbiIsIlJvdXRpbmdFbnZDaGFuZ2VUb2tlbiIsIkZlYXR1cmVFeHRBY2tUb2tlbiIsImZlZEF1dGgiLCJ1dGY4U3VwcG9ydCIsIkZlZEF1dGhJbmZvVG9rZW4iLCJzcG4iLCJzdHN1cmwiLCJJbmZvTWVzc2FnZVRva2VuIiwibnVtYmVyIiwic3RhdGUiLCJjbGFzcyIsIm1lc3NhZ2UiLCJzZXJ2ZXJOYW1lIiwicHJvY05hbWUiLCJsaW5lTnVtYmVyIiwiY2xhenoiLCJFcnJvck1lc3NhZ2VUb2tlbiIsIkxvZ2luQWNrVG9rZW4iLCJpbnRlcmZhY2UiLCJ0ZHNWZXJzaW9uIiwicHJvZ05hbWUiLCJwcm9nVmVyc2lvbiIsImludGVyZmF6ZSIsIk5CQ1Jvd1Rva2VuIiwiT3JkZXJUb2tlbiIsIm9yZGVyQ29sdW1ucyIsIlJldHVyblN0YXR1c1Rva2VuIiwidmFsdWUiLCJSZXR1cm5WYWx1ZVRva2VuIiwicGFyYW1PcmRpbmFsIiwicGFyYW1OYW1lIiwibWV0YWRhdGEiLCJSb3dUb2tlbiIsIlNTUElUb2tlbiIsIm50bG1wYWNrZXQiLCJudGxtcGFja2V0QnVmZmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL3Rva2VuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxhdGlvbiB9IGZyb20gJy4uL2NvbGxhdGlvbic7XG5pbXBvcnQgeyB0eXBlIE1ldGFkYXRhIH0gZnJvbSAnLi4vbWV0YWRhdGEtcGFyc2VyJztcbmltcG9ydCB7IHR5cGUgQ29sdW1uTWV0YWRhdGEgfSBmcm9tICcuL2NvbG1ldGFkYXRhLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgeyBUb2tlbkhhbmRsZXIgfSBmcm9tICcuL2hhbmRsZXInO1xuXG5leHBvcnQgY29uc3QgVFlQRSA9IHtcbiAgQUxUTUVUQURBVEE6IDB4ODgsXG4gIEFMVFJPVzogMHhEMyxcbiAgQ09MTUVUQURBVEE6IDB4ODEsXG4gIENPTElORk86IDB4QTUsXG4gIERPTkU6IDB4RkQsXG4gIERPTkVQUk9DOiAweEZFLFxuICBET05FSU5QUk9DOiAweEZGLFxuICBFTlZDSEFOR0U6IDB4RTMsXG4gIEVSUk9SOiAweEFBLFxuICBGRUFUVVJFRVhUQUNLOiAweEFFLFxuICBGRURBVVRISU5GTzogMHhFRSxcbiAgSU5GTzogMHhBQixcbiAgTE9HSU5BQ0s6IDB4QUQsXG4gIE5CQ1JPVzogMHhEMixcbiAgT0ZGU0VUOiAweDc4LFxuICBPUkRFUjogMHhBOSxcbiAgUkVUVVJOU1RBVFVTOiAweDc5LFxuICBSRVRVUk5WQUxVRTogMHhBQyxcbiAgUk9XOiAweEQxLFxuICBTU1BJOiAweEVELFxuICBUQUJOQU1FOiAweEE0XG59O1xuXG50eXBlIEhhbmRsZXJOYW1lID0ga2V5b2YgVG9rZW5IYW5kbGVyO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVG9rZW4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGhhbmRsZXJOYW1lOiBrZXlvZiBUb2tlbkhhbmRsZXI7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBoYW5kbGVyTmFtZTogSGFuZGxlck5hbWUpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuaGFuZGxlck5hbWUgPSBoYW5kbGVyTmFtZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29sTWV0YWRhdGFUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnQ09MTUVUQURBVEEnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25Db2xNZXRhZGF0YSc7XG5cbiAgY29sdW1uczogQ29sdW1uTWV0YWRhdGFbXTtcblxuICBjb25zdHJ1Y3Rvcihjb2x1bW5zOiBDb2x1bW5NZXRhZGF0YVtdKSB7XG4gICAgc3VwZXIoJ0NPTE1FVEFEQVRBJywgJ29uQ29sTWV0YWRhdGEnKTtcblxuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERvbmVUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRE9ORSc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkRvbmUnO1xuXG4gIG1vcmU6IGJvb2xlYW47XG4gIHNxbEVycm9yOiBib29sZWFuO1xuICBhdHRlbnRpb246IGJvb2xlYW47XG4gIHNlcnZlckVycm9yOiBib29sZWFuO1xuICByb3dDb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBjdXJDbWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IG1vcmUsIHNxbEVycm9yLCBhdHRlbnRpb24sIHNlcnZlckVycm9yLCByb3dDb3VudCwgY3VyQ21kIH06IHsgbW9yZTogYm9vbGVhbiwgc3FsRXJyb3I6IGJvb2xlYW4sIGF0dGVudGlvbjogYm9vbGVhbiwgc2VydmVyRXJyb3I6IGJvb2xlYW4sIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIGN1ckNtZDogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRE9ORScsICdvbkRvbmUnKTtcblxuICAgIHRoaXMubW9yZSA9IG1vcmU7XG4gICAgdGhpcy5zcWxFcnJvciA9IHNxbEVycm9yO1xuICAgIHRoaXMuYXR0ZW50aW9uID0gYXR0ZW50aW9uO1xuICAgIHRoaXMuc2VydmVyRXJyb3IgPSBzZXJ2ZXJFcnJvcjtcbiAgICB0aGlzLnJvd0NvdW50ID0gcm93Q291bnQ7XG4gICAgdGhpcy5jdXJDbWQgPSBjdXJDbWQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERvbmVJblByb2NUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRE9ORUlOUFJPQyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkRvbmVJblByb2MnO1xuXG4gIG1vcmU6IGJvb2xlYW47XG4gIHNxbEVycm9yOiBib29sZWFuO1xuICBhdHRlbnRpb246IGJvb2xlYW47XG4gIHNlcnZlckVycm9yOiBib29sZWFuO1xuICByb3dDb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBjdXJDbWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IG1vcmUsIHNxbEVycm9yLCBhdHRlbnRpb24sIHNlcnZlckVycm9yLCByb3dDb3VudCwgY3VyQ21kIH06IHsgbW9yZTogYm9vbGVhbiwgc3FsRXJyb3I6IGJvb2xlYW4sIGF0dGVudGlvbjogYm9vbGVhbiwgc2VydmVyRXJyb3I6IGJvb2xlYW4sIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIGN1ckNtZDogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRE9ORUlOUFJPQycsICdvbkRvbmVJblByb2MnKTtcblxuICAgIHRoaXMubW9yZSA9IG1vcmU7XG4gICAgdGhpcy5zcWxFcnJvciA9IHNxbEVycm9yO1xuICAgIHRoaXMuYXR0ZW50aW9uID0gYXR0ZW50aW9uO1xuICAgIHRoaXMuc2VydmVyRXJyb3IgPSBzZXJ2ZXJFcnJvcjtcbiAgICB0aGlzLnJvd0NvdW50ID0gcm93Q291bnQ7XG4gICAgdGhpcy5jdXJDbWQgPSBjdXJDbWQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERvbmVQcm9jVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0RPTkVQUk9DJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRG9uZVByb2MnO1xuXG4gIG1vcmU6IGJvb2xlYW47XG4gIHNxbEVycm9yOiBib29sZWFuO1xuICBhdHRlbnRpb246IGJvb2xlYW47XG4gIHNlcnZlckVycm9yOiBib29sZWFuO1xuICByb3dDb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBjdXJDbWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IG1vcmUsIHNxbEVycm9yLCBhdHRlbnRpb24sIHNlcnZlckVycm9yLCByb3dDb3VudCwgY3VyQ21kIH06IHsgbW9yZTogYm9vbGVhbiwgc3FsRXJyb3I6IGJvb2xlYW4sIGF0dGVudGlvbjogYm9vbGVhbiwgc2VydmVyRXJyb3I6IGJvb2xlYW4sIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIGN1ckNtZDogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRE9ORVBST0MnLCAnb25Eb25lUHJvYycpO1xuXG4gICAgdGhpcy5tb3JlID0gbW9yZTtcbiAgICB0aGlzLnNxbEVycm9yID0gc3FsRXJyb3I7XG4gICAgdGhpcy5hdHRlbnRpb24gPSBhdHRlbnRpb247XG4gICAgdGhpcy5zZXJ2ZXJFcnJvciA9IHNlcnZlckVycm9yO1xuICAgIHRoaXMucm93Q291bnQgPSByb3dDb3VudDtcbiAgICB0aGlzLmN1ckNtZCA9IGN1ckNtZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YWJhc2VFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRGF0YWJhc2VDaGFuZ2UnO1xuXG4gIHR5cGU6ICdEQVRBQkFTRSc7XG4gIG5ld1ZhbHVlOiBzdHJpbmc7XG4gIG9sZFZhbHVlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobmV3VmFsdWU6IHN0cmluZywgb2xkVmFsdWU6IHN0cmluZykge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25EYXRhYmFzZUNoYW5nZScpO1xuXG4gICAgdGhpcy50eXBlID0gJ0RBVEFCQVNFJztcbiAgICB0aGlzLm5ld1ZhbHVlID0gbmV3VmFsdWU7XG4gICAgdGhpcy5vbGRWYWx1ZSA9IG9sZFZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMYW5ndWFnZUVudkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25MYW5ndWFnZUNoYW5nZSc7XG5cbiAgdHlwZTogJ0xBTkdVQUdFJztcbiAgbmV3VmFsdWU6IHN0cmluZztcbiAgb2xkVmFsdWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogc3RyaW5nLCBvbGRWYWx1ZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvbkxhbmd1YWdlQ2hhbmdlJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnTEFOR1VBR0UnO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENoYXJzZXRFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uQ2hhcnNldENoYW5nZSc7XG5cbiAgdHlwZTogJ0NIQVJTRVQnO1xuICBuZXdWYWx1ZTogc3RyaW5nO1xuICBvbGRWYWx1ZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG5ld1ZhbHVlOiBzdHJpbmcsIG9sZFZhbHVlOiBzdHJpbmcpIHtcbiAgICBzdXBlcignRU5WQ0hBTkdFJywgJ29uQ2hhcnNldENoYW5nZScpO1xuXG4gICAgdGhpcy50eXBlID0gJ0NIQVJTRVQnO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBhY2tldFNpemVFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUGFja2V0U2l6ZUNoYW5nZSc7XG5cbiAgdHlwZTogJ1BBQ0tFVF9TSVpFJztcbiAgbmV3VmFsdWU6IG51bWJlcjtcbiAgb2xkVmFsdWU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogbnVtYmVyLCBvbGRWYWx1ZTogbnVtYmVyKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvblBhY2tldFNpemVDaGFuZ2UnKTtcblxuICAgIHRoaXMudHlwZSA9ICdQQUNLRVRfU0laRSc7XG4gICAgdGhpcy5uZXdWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMub2xkVmFsdWUgPSBvbGRWYWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmVnaW5UcmFuc2FjdGlvbkVudkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25CZWdpblRyYW5zYWN0aW9uJztcblxuICB0eXBlOiAnQkVHSU5fVFhOJztcbiAgbmV3VmFsdWU6IEJ1ZmZlcjtcbiAgb2xkVmFsdWU6IEJ1ZmZlcjtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogQnVmZmVyLCBvbGRWYWx1ZTogQnVmZmVyKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvbkJlZ2luVHJhbnNhY3Rpb24nKTtcblxuICAgIHRoaXMudHlwZSA9ICdCRUdJTl9UWE4nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbW1pdFRyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0VOVkNIQU5HRSc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkNvbW1pdFRyYW5zYWN0aW9uJztcblxuICB0eXBlOiAnQ09NTUlUX1RYTic7XG4gIG5ld1ZhbHVlOiBCdWZmZXI7XG4gIG9sZFZhbHVlOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3IobmV3VmFsdWU6IEJ1ZmZlciwgb2xkVmFsdWU6IEJ1ZmZlcikge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25Db21taXRUcmFuc2FjdGlvbicpO1xuXG4gICAgdGhpcy50eXBlID0gJ0NPTU1JVF9UWE4nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvbGxiYWNrVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUm9sbGJhY2tUcmFuc2FjdGlvbic7XG5cbiAgdHlwZTogJ1JPTExCQUNLX1RYTic7XG4gIG9sZFZhbHVlOiBCdWZmZXI7XG4gIG5ld1ZhbHVlOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3IobmV3VmFsdWU6IEJ1ZmZlciwgb2xkVmFsdWU6IEJ1ZmZlcikge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25Sb2xsYmFja1RyYW5zYWN0aW9uJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnUk9MTEJBQ0tfVFhOJztcbiAgICB0aGlzLm5ld1ZhbHVlID0gbmV3VmFsdWU7XG4gICAgdGhpcy5vbGRWYWx1ZSA9IG9sZFZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhYmFzZU1pcnJvcmluZ1BhcnRuZXJFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRGF0YWJhc2VNaXJyb3JpbmdQYXJ0bmVyJztcblxuICB0eXBlOiAnREFUQUJBU0VfTUlSUk9SSU5HX1BBUlRORVInO1xuICBvbGRWYWx1ZTogc3RyaW5nO1xuICBuZXdWYWx1ZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG5ld1ZhbHVlOiBzdHJpbmcsIG9sZFZhbHVlOiBzdHJpbmcpIHtcbiAgICBzdXBlcignRU5WQ0hBTkdFJywgJ29uRGF0YWJhc2VNaXJyb3JpbmdQYXJ0bmVyJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnREFUQUJBU0VfTUlSUk9SSU5HX1BBUlRORVInO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlc2V0Q29ubmVjdGlvbkVudkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25SZXNldENvbm5lY3Rpb24nO1xuXG4gIHR5cGU6ICdSRVNFVF9DT05ORUNUSU9OJztcbiAgb2xkVmFsdWU6IEJ1ZmZlcjtcbiAgbmV3VmFsdWU6IEJ1ZmZlcjtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogQnVmZmVyLCBvbGRWYWx1ZTogQnVmZmVyKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvblJlc2V0Q29ubmVjdGlvbicpO1xuXG4gICAgdGhpcy50eXBlID0gJ1JFU0VUX0NPTk5FQ1RJT04nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbGxhdGlvbkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25TcWxDb2xsYXRpb25DaGFuZ2UnO1xuXG4gIHR5cGU6ICdTUUxfQ09MTEFUSU9OJztcbiAgb2xkVmFsdWU6IENvbGxhdGlvbiB8IHVuZGVmaW5lZDtcbiAgbmV3VmFsdWU6IENvbGxhdGlvbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogQ29sbGF0aW9uIHwgdW5kZWZpbmVkLCBvbGRWYWx1ZTogQ29sbGF0aW9uIHwgdW5kZWZpbmVkKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvblNxbENvbGxhdGlvbkNoYW5nZScpO1xuXG4gICAgdGhpcy50eXBlID0gJ1NRTF9DT0xMQVRJT04nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvdXRpbmdFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUm91dGluZ0NoYW5nZSc7XG5cbiAgdHlwZTogJ1JPVVRJTkdfQ0hBTkdFJztcbiAgbmV3VmFsdWU6IHsgcHJvdG9jb2w6IG51bWJlciwgcG9ydDogbnVtYmVyLCBzZXJ2ZXI6IHN0cmluZyB9O1xuICBvbGRWYWx1ZTogQnVmZmVyO1xuXG4gIGNvbnN0cnVjdG9yKG5ld1ZhbHVlOiB7IHByb3RvY29sOiBudW1iZXIsIHBvcnQ6IG51bWJlciwgc2VydmVyOiBzdHJpbmcgfSwgb2xkVmFsdWU6IEJ1ZmZlcikge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25Sb3V0aW5nQ2hhbmdlJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnUk9VVElOR19DSEFOR0UnO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZlYXR1cmVFeHRBY2tUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRkVBVFVSRUVYVEFDSyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkZlYXR1cmVFeHRBY2snO1xuXG4gIGZlZEF1dGg6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcblxuICAvKiogVmFsdWUgb2YgVVRGOF9TVVBQT1JUIGFja25vd2xlZGdlbWVudC5cbiAgICpcbiAgICogdW5kZWZpbmVkIHdoZW4gVVRGOF9TVVBQT1JUIG5vdCBpbmNsdWRlZCBpbiB0b2tlbi4gKi9cbiAgdXRmOFN1cHBvcnQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoZmVkQXV0aDogQnVmZmVyIHwgdW5kZWZpbmVkLCB1dGY4U3VwcG9ydDogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHN1cGVyKCdGRUFUVVJFRVhUQUNLJywgJ29uRmVhdHVyZUV4dEFjaycpO1xuXG4gICAgdGhpcy5mZWRBdXRoID0gZmVkQXV0aDtcbiAgICB0aGlzLnV0ZjhTdXBwb3J0ID0gdXRmOFN1cHBvcnQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZlZEF1dGhJbmZvVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0ZFREFVVEhJTkZPJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRmVkQXV0aEluZm8nO1xuXG4gIHNwbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBzdHN1cmw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihzcG46IHN0cmluZyB8IHVuZGVmaW5lZCwgc3RzdXJsOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBzdXBlcignRkVEQVVUSElORk8nLCAnb25GZWRBdXRoSW5mbycpO1xuXG4gICAgdGhpcy5zcG4gPSBzcG47XG4gICAgdGhpcy5zdHN1cmwgPSBzdHN1cmw7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluZm9NZXNzYWdlVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0lORk8nO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25JbmZvTWVzc2FnZSc7XG5cbiAgbnVtYmVyOiBudW1iZXI7XG4gIHN0YXRlOiBudW1iZXI7XG4gIGNsYXNzOiBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgc2VydmVyTmFtZTogc3RyaW5nO1xuICBwcm9jTmFtZTogc3RyaW5nO1xuICBsaW5lTnVtYmVyOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoeyBudW1iZXIsIHN0YXRlLCBjbGFzczogY2xhenosIG1lc3NhZ2UsIHNlcnZlck5hbWUsIHByb2NOYW1lLCBsaW5lTnVtYmVyIH06IHsgbnVtYmVyOiBudW1iZXIsIHN0YXRlOiBudW1iZXIsIGNsYXNzOiBudW1iZXIsIG1lc3NhZ2U6IHN0cmluZywgc2VydmVyTmFtZTogc3RyaW5nLCBwcm9jTmFtZTogc3RyaW5nLCBsaW5lTnVtYmVyOiBudW1iZXIgfSkge1xuICAgIHN1cGVyKCdJTkZPJywgJ29uSW5mb01lc3NhZ2UnKTtcblxuICAgIHRoaXMubnVtYmVyID0gbnVtYmVyO1xuICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICB0aGlzLmNsYXNzID0gY2xheno7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICB0aGlzLnNlcnZlck5hbWUgPSBzZXJ2ZXJOYW1lO1xuICAgIHRoaXMucHJvY05hbWUgPSBwcm9jTmFtZTtcbiAgICB0aGlzLmxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvck1lc3NhZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRVJST1InO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25FcnJvck1lc3NhZ2UnO1xuXG4gIG51bWJlcjogbnVtYmVyO1xuICBzdGF0ZTogbnVtYmVyO1xuICBjbGFzczogbnVtYmVyO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHNlcnZlck5hbWU6IHN0cmluZztcbiAgcHJvY05hbWU6IHN0cmluZztcbiAgbGluZU51bWJlcjogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHsgbnVtYmVyLCBzdGF0ZSwgY2xhc3M6IGNsYXp6LCBtZXNzYWdlLCBzZXJ2ZXJOYW1lLCBwcm9jTmFtZSwgbGluZU51bWJlciB9OiB7IG51bWJlcjogbnVtYmVyLCBzdGF0ZTogbnVtYmVyLCBjbGFzczogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcsIHNlcnZlck5hbWU6IHN0cmluZywgcHJvY05hbWU6IHN0cmluZywgbGluZU51bWJlcjogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRVJST1InLCAnb25FcnJvck1lc3NhZ2UnKTtcblxuICAgIHRoaXMubnVtYmVyID0gbnVtYmVyO1xuICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICB0aGlzLmNsYXNzID0gY2xheno7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICB0aGlzLnNlcnZlck5hbWUgPSBzZXJ2ZXJOYW1lO1xuICAgIHRoaXMucHJvY05hbWUgPSBwcm9jTmFtZTtcbiAgICB0aGlzLmxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2dpbkFja1Rva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdMT0dJTkFDSyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkxvZ2luQWNrJztcblxuICBpbnRlcmZhY2U6IHN0cmluZztcbiAgdGRzVmVyc2lvbjogc3RyaW5nO1xuICBwcm9nTmFtZTogc3RyaW5nO1xuICBwcm9nVmVyc2lvbjogeyBtYWpvcjogbnVtYmVyLCBtaW5vcjogbnVtYmVyLCBidWlsZE51bUhpOiBudW1iZXIsIGJ1aWxkTnVtTG93OiBudW1iZXIgfTtcblxuICBjb25zdHJ1Y3Rvcih7IGludGVyZmFjZTogaW50ZXJmYXplLCB0ZHNWZXJzaW9uLCBwcm9nTmFtZSwgcHJvZ1ZlcnNpb24gfTogeyBpbnRlcmZhY2U6IExvZ2luQWNrVG9rZW5bJ2ludGVyZmFjZSddLCB0ZHNWZXJzaW9uOiBMb2dpbkFja1Rva2VuWyd0ZHNWZXJzaW9uJ10sIHByb2dOYW1lOiBMb2dpbkFja1Rva2VuWydwcm9nTmFtZSddLCBwcm9nVmVyc2lvbjogTG9naW5BY2tUb2tlblsncHJvZ1ZlcnNpb24nXSB9KSB7XG4gICAgc3VwZXIoJ0xPR0lOQUNLJywgJ29uTG9naW5BY2snKTtcblxuICAgIHRoaXMuaW50ZXJmYWNlID0gaW50ZXJmYXplO1xuICAgIHRoaXMudGRzVmVyc2lvbiA9IHRkc1ZlcnNpb247XG4gICAgdGhpcy5wcm9nTmFtZSA9IHByb2dOYW1lO1xuICAgIHRoaXMucHJvZ1ZlcnNpb24gPSBwcm9nVmVyc2lvbjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgTkJDUm93VG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ05CQ1JPVyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvblJvdyc7XG5cbiAgY29sdW1uczogYW55O1xuXG4gIGNvbnN0cnVjdG9yKGNvbHVtbnM6IGFueSkge1xuICAgIHN1cGVyKCdOQkNST1cnLCAnb25Sb3cnKTtcblxuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9yZGVyVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ09SREVSJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uT3JkZXInO1xuXG4gIG9yZGVyQ29sdW1uczogbnVtYmVyW107XG5cbiAgY29uc3RydWN0b3Iob3JkZXJDb2x1bW5zOiBudW1iZXJbXSkge1xuICAgIHN1cGVyKCdPUkRFUicsICdvbk9yZGVyJyk7XG5cbiAgICB0aGlzLm9yZGVyQ29sdW1ucyA9IG9yZGVyQ29sdW1ucztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmV0dXJuU3RhdHVzVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ1JFVFVSTlNUQVRVUyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvblJldHVyblN0YXR1cyc7XG5cbiAgdmFsdWU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih2YWx1ZTogbnVtYmVyKSB7XG4gICAgc3VwZXIoJ1JFVFVSTlNUQVRVUycsICdvblJldHVyblN0YXR1cycpO1xuXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXR1cm5WYWx1ZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdSRVRVUk5WQUxVRSc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvblJldHVyblZhbHVlJztcblxuICBwYXJhbU9yZGluYWw6IG51bWJlcjtcbiAgcGFyYW1OYW1lOiBzdHJpbmc7XG4gIG1ldGFkYXRhOiBNZXRhZGF0YTtcbiAgdmFsdWU6IHVua25vd247XG5cbiAgY29uc3RydWN0b3IoeyBwYXJhbU9yZGluYWwsIHBhcmFtTmFtZSwgbWV0YWRhdGEsIHZhbHVlIH06IHsgcGFyYW1PcmRpbmFsOiBudW1iZXIsIHBhcmFtTmFtZTogc3RyaW5nLCBtZXRhZGF0YTogTWV0YWRhdGEsIHZhbHVlOiB1bmtub3duIH0pIHtcbiAgICBzdXBlcignUkVUVVJOVkFMVUUnLCAnb25SZXR1cm5WYWx1ZScpO1xuXG4gICAgdGhpcy5wYXJhbU9yZGluYWwgPSBwYXJhbU9yZGluYWw7XG4gICAgdGhpcy5wYXJhbU5hbWUgPSBwYXJhbU5hbWU7XG4gICAgdGhpcy5tZXRhZGF0YSA9IG1ldGFkYXRhO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUm93VG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ1JPVyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvblJvdyc7XG5cbiAgY29sdW1uczogYW55O1xuXG4gIGNvbnN0cnVjdG9yKGNvbHVtbnM6IGFueSkge1xuICAgIHN1cGVyKCdST1cnLCAnb25Sb3cnKTtcblxuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNTUElUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnU1NQSUNIQUxMRU5HRSc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvblNTUEknO1xuXG4gIG50bG1wYWNrZXQ6IGFueTtcbiAgbnRsbXBhY2tldEJ1ZmZlcjogQnVmZmVyO1xuXG4gIGNvbnN0cnVjdG9yKG50bG1wYWNrZXQ6IGFueSwgbnRsbXBhY2tldEJ1ZmZlcjogQnVmZmVyKSB7XG4gICAgc3VwZXIoJ1NTUElDSEFMTEVOR0UnLCAnb25TU1BJJyk7XG5cbiAgICB0aGlzLm50bG1wYWNrZXQgPSBudGxtcGFja2V0O1xuICAgIHRoaXMubnRsbXBhY2tldEJ1ZmZlciA9IG50bG1wYWNrZXRCdWZmZXI7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS08sTUFBTUEsSUFBSSxHQUFHO0VBQ2xCQyxXQUFXLEVBQUUsSUFBSTtFQUNqQkMsTUFBTSxFQUFFLElBQUk7RUFDWkMsV0FBVyxFQUFFLElBQUk7RUFDakJDLE9BQU8sRUFBRSxJQUFJO0VBQ2JDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLFFBQVEsRUFBRSxJQUFJO0VBQ2RDLFVBQVUsRUFBRSxJQUFJO0VBQ2hCQyxTQUFTLEVBQUUsSUFBSTtFQUNmQyxLQUFLLEVBQUUsSUFBSTtFQUNYQyxhQUFhLEVBQUUsSUFBSTtFQUNuQkMsV0FBVyxF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
329
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUWVBFIiwiQUxUTUVUQURBVEEiLCJBTFRST1ciLCJDT0xNRVRBREFUQSIsIkNPTElORk8iLCJET05FIiwiRE9ORVBST0MiLCJET05FSU5QUk9DIiwiRU5WQ0hBTkdFIiwiRVJST1IiLCJGRUFUVVJFRVhUQUNLIiwiRkVEQVVUSElORk8iLCJJTkZPIiwiTE9HSU5BQ0siLCJOQkNST1ciLCJPRkZTRVQiLCJPUkRFUiIsIlJFVFVSTlNUQVRVUyIsIlJFVFVSTlZBTFVFIiwiUk9XIiwiU1NQSSIsIlRBQk5BTUUiLCJleHBvcnRzIiwiVG9rZW4iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJoYW5kbGVyTmFtZSIsIkNvbE1ldGFkYXRhVG9rZW4iLCJjb2x1bW5zIiwiRG9uZVRva2VuIiwibW9yZSIsInNxbEVycm9yIiwiYXR0ZW50aW9uIiwic2VydmVyRXJyb3IiLCJyb3dDb3VudCIsImN1ckNtZCIsIkRvbmVJblByb2NUb2tlbiIsIkRvbmVQcm9jVG9rZW4iLCJEYXRhYmFzZUVudkNoYW5nZVRva2VuIiwibmV3VmFsdWUiLCJvbGRWYWx1ZSIsInR5cGUiLCJMYW5ndWFnZUVudkNoYW5nZVRva2VuIiwiQ2hhcnNldEVudkNoYW5nZVRva2VuIiwiUGFja2V0U2l6ZUVudkNoYW5nZVRva2VuIiwiQmVnaW5UcmFuc2FjdGlvbkVudkNoYW5nZVRva2VuIiwiQ29tbWl0VHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbiIsIlJvbGxiYWNrVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbiIsIkRhdGFiYXNlTWlycm9yaW5nUGFydG5lckVudkNoYW5nZVRva2VuIiwiUmVzZXRDb25uZWN0aW9uRW52Q2hhbmdlVG9rZW4iLCJDb2xsYXRpb25DaGFuZ2VUb2tlbiIsIlJvdXRpbmdFbnZDaGFuZ2VUb2tlbiIsIkZlYXR1cmVFeHRBY2tUb2tlbiIsImZlZEF1dGgiLCJ1dGY4U3VwcG9ydCIsIkZlZEF1dGhJbmZvVG9rZW4iLCJzcG4iLCJzdHN1cmwiLCJJbmZvTWVzc2FnZVRva2VuIiwibnVtYmVyIiwic3RhdGUiLCJjbGFzcyIsImNsYXp6IiwibWVzc2FnZSIsInNlcnZlck5hbWUiLCJwcm9jTmFtZSIsImxpbmVOdW1iZXIiLCJFcnJvck1lc3NhZ2VUb2tlbiIsIkxvZ2luQWNrVG9rZW4iLCJpbnRlcmZhY2UiLCJpbnRlcmZhemUiLCJ0ZHNWZXJzaW9uIiwicHJvZ05hbWUiLCJwcm9nVmVyc2lvbiIsIk5CQ1Jvd1Rva2VuIiwiT3JkZXJUb2tlbiIsIm9yZGVyQ29sdW1ucyIsIlJldHVyblN0YXR1c1Rva2VuIiwidmFsdWUiLCJSZXR1cm5WYWx1ZVRva2VuIiwicGFyYW1PcmRpbmFsIiwicGFyYW1OYW1lIiwibWV0YWRhdGEiLCJSb3dUb2tlbiIsIlNTUElUb2tlbiIsIm50bG1wYWNrZXQiLCJudGxtcGFja2V0QnVmZmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL3Rva2VuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxhdGlvbiB9IGZyb20gJy4uL2NvbGxhdGlvbic7XG5pbXBvcnQgeyB0eXBlIE1ldGFkYXRhIH0gZnJvbSAnLi4vbWV0YWRhdGEtcGFyc2VyJztcbmltcG9ydCB7IHR5cGUgQ29sdW1uTWV0YWRhdGEgfSBmcm9tICcuL2NvbG1ldGFkYXRhLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgeyBUb2tlbkhhbmRsZXIgfSBmcm9tICcuL2hhbmRsZXInO1xuXG5leHBvcnQgY29uc3QgVFlQRSA9IHtcbiAgQUxUTUVUQURBVEE6IDB4ODgsXG4gIEFMVFJPVzogMHhEMyxcbiAgQ09MTUVUQURBVEE6IDB4ODEsXG4gIENPTElORk86IDB4QTUsXG4gIERPTkU6IDB4RkQsXG4gIERPTkVQUk9DOiAweEZFLFxuICBET05FSU5QUk9DOiAweEZGLFxuICBFTlZDSEFOR0U6IDB4RTMsXG4gIEVSUk9SOiAweEFBLFxuICBGRUFUVVJFRVhUQUNLOiAweEFFLFxuICBGRURBVVRISU5GTzogMHhFRSxcbiAgSU5GTzogMHhBQixcbiAgTE9HSU5BQ0s6IDB4QUQsXG4gIE5CQ1JPVzogMHhEMixcbiAgT0ZGU0VUOiAweDc4LFxuICBPUkRFUjogMHhBOSxcbiAgUkVUVVJOU1RBVFVTOiAweDc5LFxuICBSRVRVUk5WQUxVRTogMHhBQyxcbiAgUk9XOiAweEQxLFxuICBTU1BJOiAweEVELFxuICBUQUJOQU1FOiAweEE0XG59O1xuXG50eXBlIEhhbmRsZXJOYW1lID0ga2V5b2YgVG9rZW5IYW5kbGVyO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6IHN0cmluZztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZToga2V5b2YgVG9rZW5IYW5kbGVyO1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgaGFuZGxlck5hbWU6IEhhbmRsZXJOYW1lKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmhhbmRsZXJOYW1lID0gaGFuZGxlck5hbWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbE1ldGFkYXRhVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0NPTE1FVEFEQVRBJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uQ29sTWV0YWRhdGEnO1xuXG4gIGRlY2xhcmUgY29sdW1uczogQ29sdW1uTWV0YWRhdGFbXTtcblxuICBjb25zdHJ1Y3Rvcihjb2x1bW5zOiBDb2x1bW5NZXRhZGF0YVtdKSB7XG4gICAgc3VwZXIoJ0NPTE1FVEFEQVRBJywgJ29uQ29sTWV0YWRhdGEnKTtcblxuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERvbmVUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRE9ORSc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkRvbmUnO1xuXG4gIGRlY2xhcmUgbW9yZTogYm9vbGVhbjtcbiAgZGVjbGFyZSBzcWxFcnJvcjogYm9vbGVhbjtcbiAgZGVjbGFyZSBhdHRlbnRpb246IGJvb2xlYW47XG4gIGRlY2xhcmUgc2VydmVyRXJyb3I6IGJvb2xlYW47XG4gIGRlY2xhcmUgcm93Q291bnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSBjdXJDbWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IG1vcmUsIHNxbEVycm9yLCBhdHRlbnRpb24sIHNlcnZlckVycm9yLCByb3dDb3VudCwgY3VyQ21kIH06IHsgbW9yZTogYm9vbGVhbiwgc3FsRXJyb3I6IGJvb2xlYW4sIGF0dGVudGlvbjogYm9vbGVhbiwgc2VydmVyRXJyb3I6IGJvb2xlYW4sIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIGN1ckNtZDogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRE9ORScsICdvbkRvbmUnKTtcblxuICAgIHRoaXMubW9yZSA9IG1vcmU7XG4gICAgdGhpcy5zcWxFcnJvciA9IHNxbEVycm9yO1xuICAgIHRoaXMuYXR0ZW50aW9uID0gYXR0ZW50aW9uO1xuICAgIHRoaXMuc2VydmVyRXJyb3IgPSBzZXJ2ZXJFcnJvcjtcbiAgICB0aGlzLnJvd0NvdW50ID0gcm93Q291bnQ7XG4gICAgdGhpcy5jdXJDbWQgPSBjdXJDbWQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERvbmVJblByb2NUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRE9ORUlOUFJPQyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkRvbmVJblByb2MnO1xuXG4gIGRlY2xhcmUgbW9yZTogYm9vbGVhbjtcbiAgZGVjbGFyZSBzcWxFcnJvcjogYm9vbGVhbjtcbiAgZGVjbGFyZSBhdHRlbnRpb246IGJvb2xlYW47XG4gIGRlY2xhcmUgc2VydmVyRXJyb3I6IGJvb2xlYW47XG4gIGRlY2xhcmUgcm93Q291bnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSBjdXJDbWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IG1vcmUsIHNxbEVycm9yLCBhdHRlbnRpb24sIHNlcnZlckVycm9yLCByb3dDb3VudCwgY3VyQ21kIH06IHsgbW9yZTogYm9vbGVhbiwgc3FsRXJyb3I6IGJvb2xlYW4sIGF0dGVudGlvbjogYm9vbGVhbiwgc2VydmVyRXJyb3I6IGJvb2xlYW4sIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIGN1ckNtZDogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRE9ORUlOUFJPQycsICdvbkRvbmVJblByb2MnKTtcblxuICAgIHRoaXMubW9yZSA9IG1vcmU7XG4gICAgdGhpcy5zcWxFcnJvciA9IHNxbEVycm9yO1xuICAgIHRoaXMuYXR0ZW50aW9uID0gYXR0ZW50aW9uO1xuICAgIHRoaXMuc2VydmVyRXJyb3IgPSBzZXJ2ZXJFcnJvcjtcbiAgICB0aGlzLnJvd0NvdW50ID0gcm93Q291bnQ7XG4gICAgdGhpcy5jdXJDbWQgPSBjdXJDbWQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERvbmVQcm9jVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0RPTkVQUk9DJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRG9uZVByb2MnO1xuXG4gIGRlY2xhcmUgbW9yZTogYm9vbGVhbjtcbiAgZGVjbGFyZSBzcWxFcnJvcjogYm9vbGVhbjtcbiAgZGVjbGFyZSBhdHRlbnRpb246IGJvb2xlYW47XG4gIGRlY2xhcmUgc2VydmVyRXJyb3I6IGJvb2xlYW47XG4gIGRlY2xhcmUgcm93Q291bnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgZGVjbGFyZSBjdXJDbWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IG1vcmUsIHNxbEVycm9yLCBhdHRlbnRpb24sIHNlcnZlckVycm9yLCByb3dDb3VudCwgY3VyQ21kIH06IHsgbW9yZTogYm9vbGVhbiwgc3FsRXJyb3I6IGJvb2xlYW4sIGF0dGVudGlvbjogYm9vbGVhbiwgc2VydmVyRXJyb3I6IGJvb2xlYW4sIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQsIGN1ckNtZDogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRE9ORVBST0MnLCAnb25Eb25lUHJvYycpO1xuXG4gICAgdGhpcy5tb3JlID0gbW9yZTtcbiAgICB0aGlzLnNxbEVycm9yID0gc3FsRXJyb3I7XG4gICAgdGhpcy5hdHRlbnRpb24gPSBhdHRlbnRpb247XG4gICAgdGhpcy5zZXJ2ZXJFcnJvciA9IHNlcnZlckVycm9yO1xuICAgIHRoaXMucm93Q291bnQgPSByb3dDb3VudDtcbiAgICB0aGlzLmN1ckNtZCA9IGN1ckNtZDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YWJhc2VFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRGF0YWJhc2VDaGFuZ2UnO1xuXG4gIGRlY2xhcmUgdHlwZTogJ0RBVEFCQVNFJztcbiAgZGVjbGFyZSBuZXdWYWx1ZTogc3RyaW5nO1xuICBkZWNsYXJlIG9sZFZhbHVlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobmV3VmFsdWU6IHN0cmluZywgb2xkVmFsdWU6IHN0cmluZykge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25EYXRhYmFzZUNoYW5nZScpO1xuXG4gICAgdGhpcy50eXBlID0gJ0RBVEFCQVNFJztcbiAgICB0aGlzLm5ld1ZhbHVlID0gbmV3VmFsdWU7XG4gICAgdGhpcy5vbGRWYWx1ZSA9IG9sZFZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMYW5ndWFnZUVudkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25MYW5ndWFnZUNoYW5nZSc7XG5cbiAgZGVjbGFyZSB0eXBlOiAnTEFOR1VBR0UnO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiBzdHJpbmc7XG4gIGRlY2xhcmUgb2xkVmFsdWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogc3RyaW5nLCBvbGRWYWx1ZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvbkxhbmd1YWdlQ2hhbmdlJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnTEFOR1VBR0UnO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENoYXJzZXRFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uQ2hhcnNldENoYW5nZSc7XG5cbiAgZGVjbGFyZSB0eXBlOiAnQ0hBUlNFVCc7XG4gIGRlY2xhcmUgbmV3VmFsdWU6IHN0cmluZztcbiAgZGVjbGFyZSBvbGRWYWx1ZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG5ld1ZhbHVlOiBzdHJpbmcsIG9sZFZhbHVlOiBzdHJpbmcpIHtcbiAgICBzdXBlcignRU5WQ0hBTkdFJywgJ29uQ2hhcnNldENoYW5nZScpO1xuXG4gICAgdGhpcy50eXBlID0gJ0NIQVJTRVQnO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBhY2tldFNpemVFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUGFja2V0U2l6ZUNoYW5nZSc7XG5cbiAgZGVjbGFyZSB0eXBlOiAnUEFDS0VUX1NJWkUnO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiBudW1iZXI7XG4gIGRlY2xhcmUgb2xkVmFsdWU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogbnVtYmVyLCBvbGRWYWx1ZTogbnVtYmVyKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvblBhY2tldFNpemVDaGFuZ2UnKTtcblxuICAgIHRoaXMudHlwZSA9ICdQQUNLRVRfU0laRSc7XG4gICAgdGhpcy5uZXdWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMub2xkVmFsdWUgPSBvbGRWYWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmVnaW5UcmFuc2FjdGlvbkVudkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25CZWdpblRyYW5zYWN0aW9uJztcblxuICBkZWNsYXJlIHR5cGU6ICdCRUdJTl9UWE4nO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiBCdWZmZXI7XG4gIGRlY2xhcmUgb2xkVmFsdWU6IEJ1ZmZlcjtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogQnVmZmVyLCBvbGRWYWx1ZTogQnVmZmVyKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvbkJlZ2luVHJhbnNhY3Rpb24nKTtcblxuICAgIHRoaXMudHlwZSA9ICdCRUdJTl9UWE4nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbW1pdFRyYW5zYWN0aW9uRW52Q2hhbmdlVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0VOVkNIQU5HRSc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkNvbW1pdFRyYW5zYWN0aW9uJztcblxuICBkZWNsYXJlIHR5cGU6ICdDT01NSVRfVFhOJztcbiAgZGVjbGFyZSBuZXdWYWx1ZTogQnVmZmVyO1xuICBkZWNsYXJlIG9sZFZhbHVlOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3IobmV3VmFsdWU6IEJ1ZmZlciwgb2xkVmFsdWU6IEJ1ZmZlcikge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25Db21taXRUcmFuc2FjdGlvbicpO1xuXG4gICAgdGhpcy50eXBlID0gJ0NPTU1JVF9UWE4nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvbGxiYWNrVHJhbnNhY3Rpb25FbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUm9sbGJhY2tUcmFuc2FjdGlvbic7XG5cbiAgZGVjbGFyZSB0eXBlOiAnUk9MTEJBQ0tfVFhOJztcbiAgZGVjbGFyZSBvbGRWYWx1ZTogQnVmZmVyO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3IobmV3VmFsdWU6IEJ1ZmZlciwgb2xkVmFsdWU6IEJ1ZmZlcikge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25Sb2xsYmFja1RyYW5zYWN0aW9uJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnUk9MTEJBQ0tfVFhOJztcbiAgICB0aGlzLm5ld1ZhbHVlID0gbmV3VmFsdWU7XG4gICAgdGhpcy5vbGRWYWx1ZSA9IG9sZFZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhYmFzZU1pcnJvcmluZ1BhcnRuZXJFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRGF0YWJhc2VNaXJyb3JpbmdQYXJ0bmVyJztcblxuICBkZWNsYXJlIHR5cGU6ICdEQVRBQkFTRV9NSVJST1JJTkdfUEFSVE5FUic7XG4gIGRlY2xhcmUgb2xkVmFsdWU6IHN0cmluZztcbiAgZGVjbGFyZSBuZXdWYWx1ZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG5ld1ZhbHVlOiBzdHJpbmcsIG9sZFZhbHVlOiBzdHJpbmcpIHtcbiAgICBzdXBlcignRU5WQ0hBTkdFJywgJ29uRGF0YWJhc2VNaXJyb3JpbmdQYXJ0bmVyJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnREFUQUJBU0VfTUlSUk9SSU5HX1BBUlRORVInO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlc2V0Q29ubmVjdGlvbkVudkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25SZXNldENvbm5lY3Rpb24nO1xuXG4gIGRlY2xhcmUgdHlwZTogJ1JFU0VUX0NPTk5FQ1RJT04nO1xuICBkZWNsYXJlIG9sZFZhbHVlOiBCdWZmZXI7XG4gIGRlY2xhcmUgbmV3VmFsdWU6IEJ1ZmZlcjtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogQnVmZmVyLCBvbGRWYWx1ZTogQnVmZmVyKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvblJlc2V0Q29ubmVjdGlvbicpO1xuXG4gICAgdGhpcy50eXBlID0gJ1JFU0VUX0NPTk5FQ1RJT04nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbGxhdGlvbkNoYW5nZVRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdFTlZDSEFOR0UnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25TcWxDb2xsYXRpb25DaGFuZ2UnO1xuXG4gIGRlY2xhcmUgdHlwZTogJ1NRTF9DT0xMQVRJT04nO1xuICBkZWNsYXJlIG9sZFZhbHVlOiBDb2xsYXRpb24gfCB1bmRlZmluZWQ7XG4gIGRlY2xhcmUgbmV3VmFsdWU6IENvbGxhdGlvbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihuZXdWYWx1ZTogQ29sbGF0aW9uIHwgdW5kZWZpbmVkLCBvbGRWYWx1ZTogQ29sbGF0aW9uIHwgdW5kZWZpbmVkKSB7XG4gICAgc3VwZXIoJ0VOVkNIQU5HRScsICdvblNxbENvbGxhdGlvbkNoYW5nZScpO1xuXG4gICAgdGhpcy50eXBlID0gJ1NRTF9DT0xMQVRJT04nO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvdXRpbmdFbnZDaGFuZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRU5WQ0hBTkdFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUm91dGluZ0NoYW5nZSc7XG5cbiAgZGVjbGFyZSB0eXBlOiAnUk9VVElOR19DSEFOR0UnO1xuICBkZWNsYXJlIG5ld1ZhbHVlOiB7IHByb3RvY29sOiBudW1iZXIsIHBvcnQ6IG51bWJlciwgc2VydmVyOiBzdHJpbmcgfTtcbiAgZGVjbGFyZSBvbGRWYWx1ZTogQnVmZmVyO1xuXG4gIGNvbnN0cnVjdG9yKG5ld1ZhbHVlOiB7IHByb3RvY29sOiBudW1iZXIsIHBvcnQ6IG51bWJlciwgc2VydmVyOiBzdHJpbmcgfSwgb2xkVmFsdWU6IEJ1ZmZlcikge1xuICAgIHN1cGVyKCdFTlZDSEFOR0UnLCAnb25Sb3V0aW5nQ2hhbmdlJyk7XG5cbiAgICB0aGlzLnR5cGUgPSAnUk9VVElOR19DSEFOR0UnO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZlYXR1cmVFeHRBY2tUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnRkVBVFVSRUVYVEFDSyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkZlYXR1cmVFeHRBY2snO1xuXG4gIGRlY2xhcmUgZmVkQXV0aDogQnVmZmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBWYWx1ZSBvZiBVVEY4X1NVUFBPUlQgYWNrbm93bGVkZ2VtZW50LlxuICAgKlxuICAgKiB1bmRlZmluZWQgd2hlbiBVVEY4X1NVUFBPUlQgbm90IGluY2x1ZGVkIGluIHRva2VuLiAqL1xuICBkZWNsYXJlIHV0ZjhTdXBwb3J0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKGZlZEF1dGg6IEJ1ZmZlciB8IHVuZGVmaW5lZCwgdXRmOFN1cHBvcnQ6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBzdXBlcignRkVBVFVSRUVYVEFDSycsICdvbkZlYXR1cmVFeHRBY2snKTtcblxuICAgIHRoaXMuZmVkQXV0aCA9IGZlZEF1dGg7XG4gICAgdGhpcy51dGY4U3VwcG9ydCA9IHV0ZjhTdXBwb3J0O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGZWRBdXRoSW5mb1Rva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdGRURBVVRISU5GTyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkZlZEF1dGhJbmZvJztcblxuICBkZWNsYXJlIHNwbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBkZWNsYXJlIHN0c3VybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHNwbjogc3RyaW5nIHwgdW5kZWZpbmVkLCBzdHN1cmw6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHN1cGVyKCdGRURBVVRISU5GTycsICdvbkZlZEF1dGhJbmZvJyk7XG5cbiAgICB0aGlzLnNwbiA9IHNwbjtcbiAgICB0aGlzLnN0c3VybCA9IHN0c3VybDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW5mb01lc3NhZ2VUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnSU5GTyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkluZm9NZXNzYWdlJztcblxuICBkZWNsYXJlIG51bWJlcjogbnVtYmVyO1xuICBkZWNsYXJlIHN0YXRlOiBudW1iZXI7XG4gIGRlY2xhcmUgY2xhc3M6IG51bWJlcjtcbiAgZGVjbGFyZSBtZXNzYWdlOiBzdHJpbmc7XG4gIGRlY2xhcmUgc2VydmVyTmFtZTogc3RyaW5nO1xuICBkZWNsYXJlIHByb2NOYW1lOiBzdHJpbmc7XG4gIGRlY2xhcmUgbGluZU51bWJlcjogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHsgbnVtYmVyLCBzdGF0ZSwgY2xhc3M6IGNsYXp6LCBtZXNzYWdlLCBzZXJ2ZXJOYW1lLCBwcm9jTmFtZSwgbGluZU51bWJlciB9OiB7IG51bWJlcjogbnVtYmVyLCBzdGF0ZTogbnVtYmVyLCBjbGFzczogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcsIHNlcnZlck5hbWU6IHN0cmluZywgcHJvY05hbWU6IHN0cmluZywgbGluZU51bWJlcjogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignSU5GTycsICdvbkluZm9NZXNzYWdlJyk7XG5cbiAgICB0aGlzLm51bWJlciA9IG51bWJlcjtcbiAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5jbGFzcyA9IGNsYXp6O1xuICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgdGhpcy5zZXJ2ZXJOYW1lID0gc2VydmVyTmFtZTtcbiAgICB0aGlzLnByb2NOYW1lID0gcHJvY05hbWU7XG4gICAgdGhpcy5saW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXJyb3JNZXNzYWdlVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ0VSUk9SJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uRXJyb3JNZXNzYWdlJztcblxuICBkZWNsYXJlIG51bWJlcjogbnVtYmVyO1xuICBkZWNsYXJlIHN0YXRlOiBudW1iZXI7XG4gIGRlY2xhcmUgY2xhc3M6IG51bWJlcjtcbiAgZGVjbGFyZSBtZXNzYWdlOiBzdHJpbmc7XG4gIGRlY2xhcmUgc2VydmVyTmFtZTogc3RyaW5nO1xuICBkZWNsYXJlIHByb2NOYW1lOiBzdHJpbmc7XG4gIGRlY2xhcmUgbGluZU51bWJlcjogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHsgbnVtYmVyLCBzdGF0ZSwgY2xhc3M6IGNsYXp6LCBtZXNzYWdlLCBzZXJ2ZXJOYW1lLCBwcm9jTmFtZSwgbGluZU51bWJlciB9OiB7IG51bWJlcjogbnVtYmVyLCBzdGF0ZTogbnVtYmVyLCBjbGFzczogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcsIHNlcnZlck5hbWU6IHN0cmluZywgcHJvY05hbWU6IHN0cmluZywgbGluZU51bWJlcjogbnVtYmVyIH0pIHtcbiAgICBzdXBlcignRVJST1InLCAnb25FcnJvck1lc3NhZ2UnKTtcblxuICAgIHRoaXMubnVtYmVyID0gbnVtYmVyO1xuICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICB0aGlzLmNsYXNzID0gY2xheno7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICB0aGlzLnNlcnZlck5hbWUgPSBzZXJ2ZXJOYW1lO1xuICAgIHRoaXMucHJvY05hbWUgPSBwcm9jTmFtZTtcbiAgICB0aGlzLmxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2dpbkFja1Rva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdMT0dJTkFDSyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbkxvZ2luQWNrJztcblxuICBkZWNsYXJlIGludGVyZmFjZTogc3RyaW5nO1xuICBkZWNsYXJlIHRkc1ZlcnNpb246IHN0cmluZztcbiAgZGVjbGFyZSBwcm9nTmFtZTogc3RyaW5nO1xuICBkZWNsYXJlIHByb2dWZXJzaW9uOiB7IG1ham9yOiBudW1iZXIsIG1pbm9yOiBudW1iZXIsIGJ1aWxkTnVtSGk6IG51bWJlciwgYnVpbGROdW1Mb3c6IG51bWJlciB9O1xuXG4gIGNvbnN0cnVjdG9yKHsgaW50ZXJmYWNlOiBpbnRlcmZhemUsIHRkc1ZlcnNpb24sIHByb2dOYW1lLCBwcm9nVmVyc2lvbiB9OiB7IGludGVyZmFjZTogTG9naW5BY2tUb2tlblsnaW50ZXJmYWNlJ10sIHRkc1ZlcnNpb246IExvZ2luQWNrVG9rZW5bJ3Rkc1ZlcnNpb24nXSwgcHJvZ05hbWU6IExvZ2luQWNrVG9rZW5bJ3Byb2dOYW1lJ10sIHByb2dWZXJzaW9uOiBMb2dpbkFja1Rva2VuWydwcm9nVmVyc2lvbiddIH0pIHtcbiAgICBzdXBlcignTE9HSU5BQ0snLCAnb25Mb2dpbkFjaycpO1xuXG4gICAgdGhpcy5pbnRlcmZhY2UgPSBpbnRlcmZhemU7XG4gICAgdGhpcy50ZHNWZXJzaW9uID0gdGRzVmVyc2lvbjtcbiAgICB0aGlzLnByb2dOYW1lID0gcHJvZ05hbWU7XG4gICAgdGhpcy5wcm9nVmVyc2lvbiA9IHByb2dWZXJzaW9uO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOQkNSb3dUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnTkJDUk9XJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUm93JztcblxuICBkZWNsYXJlIGNvbHVtbnM6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihjb2x1bW5zOiBhbnkpIHtcbiAgICBzdXBlcignTkJDUk9XJywgJ29uUm93Jyk7XG5cbiAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPcmRlclRva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdPUkRFUic7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvbk9yZGVyJztcblxuICBkZWNsYXJlIG9yZGVyQ29sdW1uczogbnVtYmVyW107XG5cbiAgY29uc3RydWN0b3Iob3JkZXJDb2x1bW5zOiBudW1iZXJbXSkge1xuICAgIHN1cGVyKCdPUkRFUicsICdvbk9yZGVyJyk7XG5cbiAgICB0aGlzLm9yZGVyQ29sdW1ucyA9IG9yZGVyQ29sdW1ucztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmV0dXJuU3RhdHVzVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ1JFVFVSTlNUQVRVUyc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvblJldHVyblN0YXR1cyc7XG5cbiAgZGVjbGFyZSB2YWx1ZTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHZhbHVlOiBudW1iZXIpIHtcbiAgICBzdXBlcignUkVUVVJOU1RBVFVTJywgJ29uUmV0dXJuU3RhdHVzJyk7XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJldHVyblZhbHVlVG9rZW4gZXh0ZW5kcyBUb2tlbiB7XG4gIGRlY2xhcmUgbmFtZTogJ1JFVFVSTlZBTFVFJztcbiAgZGVjbGFyZSBoYW5kbGVyTmFtZTogJ29uUmV0dXJuVmFsdWUnO1xuXG4gIGRlY2xhcmUgcGFyYW1PcmRpbmFsOiBudW1iZXI7XG4gIGRlY2xhcmUgcGFyYW1OYW1lOiBzdHJpbmc7XG4gIGRlY2xhcmUgbWV0YWRhdGE6IE1ldGFkYXRhO1xuICBkZWNsYXJlIHZhbHVlOiB1bmtub3duO1xuXG4gIGNvbnN0cnVjdG9yKHsgcGFyYW1PcmRpbmFsLCBwYXJhbU5hbWUsIG1ldGFkYXRhLCB2YWx1ZSB9OiB7IHBhcmFtT3JkaW5hbDogbnVtYmVyLCBwYXJhbU5hbWU6IHN0cmluZywgbWV0YWRhdGE6IE1ldGFkYXRhLCB2YWx1ZTogdW5rbm93biB9KSB7XG4gICAgc3VwZXIoJ1JFVFVSTlZBTFVFJywgJ29uUmV0dXJuVmFsdWUnKTtcblxuICAgIHRoaXMucGFyYW1PcmRpbmFsID0gcGFyYW1PcmRpbmFsO1xuICAgIHRoaXMucGFyYW1OYW1lID0gcGFyYW1OYW1lO1xuICAgIHRoaXMubWV0YWRhdGEgPSBtZXRhZGF0YTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvd1Rva2VuIGV4dGVuZHMgVG9rZW4ge1xuICBkZWNsYXJlIG5hbWU6ICdST1cnO1xuICBkZWNsYXJlIGhhbmRsZXJOYW1lOiAnb25Sb3cnO1xuXG4gIGRlY2xhcmUgY29sdW1uczogYW55O1xuXG4gIGNvbnN0cnVjdG9yKGNvbHVtbnM6IGFueSkge1xuICAgIHN1cGVyKCdST1cnLCAnb25Sb3cnKTtcblxuICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNTUElUb2tlbiBleHRlbmRzIFRva2VuIHtcbiAgZGVjbGFyZSBuYW1lOiAnU1NQSUNIQUxMRU5HRSc7XG4gIGRlY2xhcmUgaGFuZGxlck5hbWU6ICdvblNTUEknO1xuXG4gIGRlY2xhcmUgbnRsbXBhY2tldDogYW55O1xuICBkZWNsYXJlIG50bG1wYWNrZXRCdWZmZXI6IEJ1ZmZlcjtcblxuICBjb25zdHJ1Y3RvcihudGxtcGFja2V0OiBhbnksIG50bG1wYWNrZXRCdWZmZXI6IEJ1ZmZlcikge1xuICAgIHN1cGVyKCdTU1BJQ0hBTExFTkdFJywgJ29uU1NQSScpO1xuXG4gICAgdGhpcy5udGxtcGFja2V0ID0gbnRsbXBhY2tldDtcbiAgICB0aGlzLm50bG1wYWNrZXRCdWZmZXIgPSBudGxtcGFja2V0QnVmZmVyO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUtPLE1BQU1BLElBQUksR0FBRztFQUNsQkMsV0FBVyxFQUFFLElBQUk7RUFDakJDLE1BQU0sRUFBRSxJQUFJO0VBQ1pDLFdBQVcsRUFBRSxJQUFJO0VBQ2pCQyxPQUFPLEVBQUUsSUFBSTtFQUNiQyxJQUFJLEVBQUUsSUFBSTtFQUNWQyxRQUFRLEVBQUUsSUFBSTtFQUNkQyxVQUFVLEVBQUUsSUFBSTtFQUNoQkMsU0FBUyxFQUFFLElBQUk7RUFDZkMsS0FBSyxFQUFFLElBQUk7RUFDWEMsYUFBYSxFQUFFLElBQUk7RUFDbkJDLFdBQVcsRUFBRSxJQUFJO0VBQ2pCQyxJQUFJLEVBQUUsSUFBSTtFQUNWQyxRQUFRLEVBQUUsSUFBSTtFQUNkQyxNQUFNLEVBQUUsSUFBSTtFQUNaQyxNQUFNLEVBQUUsSUFBSTtFQUNaQyxLQUFLLEVBQUUsSUFBSTtFQUNYQyxZQUFZLEVBQUUsSUFBSTtFQUNsQkMsV0FBVyxFQUFFLElBQUk7RUFDakJDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLE9BQU8s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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","name","handlerName","constructor","ColMetadataToken","columns","DoneToken","more","sqlError","attention","serverError","rowCount","curCmd","DoneInProcToken","DoneProcToken","DatabaseEnvChangeToken","type","newValue","oldValue","LanguageEnvChangeToken","CharsetEnvChangeToken","PacketSizeEnvChangeToken","BeginTransactionEnvChangeToken","CommitTransactionEnvChangeToken","RollbackTransactionEnvChangeToken","DatabaseMirroringPartnerEnvChangeToken","ResetConnectionEnvChangeToken","CollationChangeToken","RoutingEnvChangeToken","FeatureExtAckToken","fedAuth","utf8Support","FedAuthInfoToken","spn","stsurl","InfoMessageToken","number","state","class","message","serverName","procName","lineNumber","clazz","ErrorMessageToken","LoginAckToken","interface","tdsVersion","progName","progVersion","interfaze","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 name: string;\n 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 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 more: boolean;\n sqlError: boolean;\n attention: boolean;\n serverError: boolean;\n rowCount: number | undefined;\n 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 more: boolean;\n sqlError: boolean;\n attention: boolean;\n serverError: boolean;\n rowCount: number | undefined;\n 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 more: boolean;\n sqlError: boolean;\n attention: boolean;\n serverError: boolean;\n rowCount: number | undefined;\n 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 type: 'DATABASE';\n newValue: string;\n 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 type: 'LANGUAGE';\n newValue: string;\n 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 type: 'CHARSET';\n newValue: string;\n 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 type: 'PACKET_SIZE';\n newValue: number;\n 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 type: 'BEGIN_TXN';\n newValue: Buffer;\n 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 type: 'COMMIT_TXN';\n newValue: Buffer;\n 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 type: 'ROLLBACK_TXN';\n oldValue: Buffer;\n 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 type: 'DATABASE_MIRRORING_PARTNER';\n oldValue: string;\n 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 type: 'RESET_CONNECTION';\n oldValue: Buffer;\n 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 type: 'SQL_COLLATION';\n oldValue: Collation | undefined;\n 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 type: 'ROUTING_CHANGE';\n newValue: { protocol: number, port: number, server: string };\n 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 fedAuth: Buffer | undefined;\n\n /** Value of UTF8_SUPPORT acknowledgement.\n *\n * undefined when UTF8_SUPPORT not included in token. */\n 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 spn: string | undefined;\n 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 number: number;\n state: number;\n class: number;\n message: string;\n serverName: string;\n procName: string;\n 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 number: number;\n state: number;\n class: number;\n message: string;\n serverName: string;\n procName: string;\n 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 interface: string;\n tdsVersion: string;\n progName: string;\n 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 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 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 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 paramOrdinal: number;\n paramName: string;\n metadata: Metadata;\n 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 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 ntlmpacket: any;\n 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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"}
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":"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"}