tedious 14.5.0 → 14.7.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.
- package/lib/all-headers.js +1 -1
- package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +2 -2
- package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +2 -2
- package/lib/always-encrypted/cek-entry.js +1 -1
- package/lib/always-encrypted/get-parameter-encryption-metadata.js +1 -1
- package/lib/always-encrypted/key-crypto.js +2 -2
- package/lib/always-encrypted/keystore-provider-azure-key-vault.js +2 -2
- package/lib/always-encrypted/symmetric-key-cache.js +1 -1
- package/lib/always-encrypted/symmetric-key.js +1 -1
- package/lib/always-encrypted/types.js +2 -2
- package/lib/always-encrypted/utils.js +1 -1
- package/lib/bulk-load-payload.js +1 -1
- package/lib/bulk-load.js +1 -1
- package/lib/collation.js +2 -2
- package/lib/connection.js +310 -260
- package/lib/connector.js +2 -2
- package/lib/data-type.js +1 -1
- package/lib/data-types/bigint.js +1 -1
- package/lib/data-types/binary.js +1 -1
- package/lib/data-types/bit.js +1 -1
- package/lib/data-types/bitn.js +1 -1
- package/lib/data-types/char.js +1 -1
- package/lib/data-types/date.js +1 -1
- package/lib/data-types/datetime.js +1 -1
- package/lib/data-types/datetime2.js +1 -1
- package/lib/data-types/datetimen.js +1 -1
- package/lib/data-types/datetimeoffset.js +1 -1
- package/lib/data-types/decimal.js +1 -1
- package/lib/data-types/decimaln.js +1 -1
- package/lib/data-types/float.js +1 -1
- package/lib/data-types/floatn.js +1 -1
- package/lib/data-types/image.js +1 -1
- package/lib/data-types/int.js +1 -1
- package/lib/data-types/intn.js +1 -1
- package/lib/data-types/money.js +1 -1
- package/lib/data-types/moneyn.js +1 -1
- package/lib/data-types/nchar.js +1 -1
- package/lib/data-types/ntext.js +1 -1
- package/lib/data-types/null.js +1 -1
- package/lib/data-types/numeric.js +1 -1
- package/lib/data-types/numericn.js +1 -1
- package/lib/data-types/nvarchar.js +1 -1
- package/lib/data-types/real.js +1 -1
- package/lib/data-types/smalldatetime.js +1 -1
- package/lib/data-types/smallint.js +1 -1
- package/lib/data-types/smallmoney.js +1 -1
- package/lib/data-types/sql-variant.js +1 -1
- package/lib/data-types/text.js +1 -1
- package/lib/data-types/time.js +1 -1
- package/lib/data-types/tinyint.js +1 -1
- package/lib/data-types/tvp.js +1 -1
- package/lib/data-types/udt.js +1 -1
- package/lib/data-types/uniqueidentifier.js +1 -1
- package/lib/data-types/varbinary.js +1 -1
- package/lib/data-types/varchar.js +1 -1
- package/lib/data-types/xml.js +1 -1
- package/lib/debug.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/guid-parser.js +2 -2
- package/lib/incoming-message-stream.js +1 -1
- package/lib/instance-lookup.js +1 -1
- package/lib/library.js +1 -1
- package/lib/login7-payload.js +1 -1
- package/lib/message-io.js +1 -1
- package/lib/message.js +1 -1
- package/lib/metadata-parser.js +2 -2
- package/lib/ntlm-payload.js +4 -2
- package/lib/ntlm.js +1 -1
- package/lib/outgoing-message-stream.js +1 -1
- package/lib/packet.js +2 -2
- package/lib/prelogin-payload.js +1 -1
- package/lib/request.js +1 -1
- package/lib/rpcrequest-payload.js +1 -1
- package/lib/sender.js +1 -1
- package/lib/special-stored-procedure.js +1 -1
- package/lib/sqlbatch-payload.js +1 -1
- package/lib/tds-versions.js +1 -1
- package/lib/tedious.js +14 -14
- package/lib/token/colmetadata-token-parser.js +1 -1
- package/lib/token/done-token-parser.js +2 -2
- package/lib/token/env-change-token-parser.js +1 -1
- package/lib/token/feature-ext-ack-parser.js +1 -1
- package/lib/token/fedauth-info-parser.js +1 -1
- package/lib/token/handler.js +2 -2
- package/lib/token/infoerror-token-parser.js +2 -2
- package/lib/token/loginack-token-parser.js +1 -1
- package/lib/token/nbcrow-token-parser.js +1 -1
- package/lib/token/order-token-parser.js +1 -1
- package/lib/token/returnstatus-token-parser.js +1 -1
- package/lib/token/returnvalue-token-parser.js +1 -1
- package/lib/token/row-token-parser.js +1 -1
- package/lib/token/sspi-token-parser.js +1 -1
- package/lib/token/stream-parser.js +1 -1
- package/lib/token/token-stream-parser.js +1 -1
- package/lib/token/token.js +2 -2
- package/lib/tracking-buffer/writable-tracking-buffer.js +1 -1
- package/lib/transaction.js +3 -2
- package/lib/transient-error-lookup.js +1 -1
- package/lib/value-parser.js +1 -1
- package/package.json +32 -31
- package/tsconfig.json +1 -0
- package/types/js-md4.d.ts +7 -0
package/lib/bulk-load.js
CHANGED
|
@@ -592,4 +592,4 @@ class BulkLoad extends _events.EventEmitter {
|
|
|
592
592
|
var _default = BulkLoad;
|
|
593
593
|
exports.default = _default;
|
|
594
594
|
module.exports = BulkLoad;
|
|
595
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idWxrLWxvYWQudHMiXSwibmFtZXMiOlsiRkxBR1MiLCJudWxsYWJsZSIsImNhc2VTZW4iLCJ1cGRhdGVhYmxlUmVhZFdyaXRlIiwidXBkYXRlYWJsZVVua25vd24iLCJpZGVudGl0eSIsImNvbXB1dGVkIiwiZml4ZWRMZW5DTFJUeXBlIiwic3BhcnNlQ29sdW1uU2V0IiwiaGlkZGVuIiwia2V5IiwibnVsbGFibGVVbmtub3duIiwiRE9ORV9TVEFUVVMiLCJGSU5BTCIsIk1PUkUiLCJFUlJPUiIsIklOWEFDVCIsIkNPVU5UIiwiQVRUTiIsIlNSVkVSUk9SIiwicm93VG9rZW5CdWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiVE9LRU5fVFlQRSIsIlJPVyIsInRleHRQb2ludGVyQW5kVGltZXN0YW1wQnVmZmVyIiwidGV4dFBvaW50ZXJOdWxsQnVmZmVyIiwiUm93VHJhbnNmb3JtIiwiVHJhbnNmb3JtIiwiY29uc3RydWN0b3IiLCJidWxrTG9hZCIsIndyaXRhYmxlT2JqZWN0TW9kZSIsImNvbHVtbk1ldGFkYXRhV3JpdHRlbiIsIm1haW5PcHRpb25zIiwiY29sdW1ucyIsIm9wdGlvbnMiLCJfdHJhbnNmb3JtIiwicm93IiwiX2VuY29kaW5nIiwiY2FsbGJhY2siLCJwdXNoIiwiZ2V0Q29sTWV0YURhdGEiLCJpIiwibGVuZ3RoIiwiYyIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5Iiwib2JqTmFtZSIsImZpcnN0Um93V3JpdHRlbiIsInR5cGUiLCJ2YWxpZGF0ZSIsImNvbGxhdGlvbiIsImVycm9yIiwicGFyYW1ldGVyIiwic2NhbGUiLCJwcmVjaXNpb24iLCJuYW1lIiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJjaHVuayIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsInByb2Nlc3MiLCJuZXh0VGljayIsIl9mbHVzaCIsImNyZWF0ZURvbmVUb2tlbiIsIkJ1bGtMb2FkIiwiRXZlbnRFbWl0dGVyIiwidGFibGUiLCJjb25uZWN0aW9uT3B0aW9ucyIsImNoZWNrQ29uc3RyYWludHMiLCJmaXJlVHJpZ2dlcnMiLCJrZWVwTnVsbHMiLCJsb2NrVGFibGUiLCJvcmRlciIsIlR5cGVFcnJvciIsImNvbHVtbiIsImRpcmVjdGlvbiIsIk9iamVjdCIsImVudHJpZXMiLCJjYW5jZWxlZCIsImV4ZWN1dGlvblN0YXJ0ZWQiLCJzdHJlYW1pbmdNb2RlIiwidGltZW91dCIsImNvbHVtbnNCeU5hbWUiLCJyb3dUb1BhY2tldFRyYW5zZm9ybSIsImJ1bGtPcHRpb25zIiwiY29ubmVjdGlvbiIsInJvd3MiLCJyc3QiLCJyb3dDb3VudCIsInVuZGVmaW5lZCIsImFkZENvbHVtbiIsIm91dHB1dCIsIkVycm9yIiwiaWQiLCJyZXNvbHZlTGVuZ3RoIiwicmVzb2x2ZVByZWNpc2lvbiIsInJlc29sdmVTY2FsZSIsImdldE9wdGlvbnNTcWwiLCJhZGRPcHRpb25zIiwib3JkZXJDb2x1bW5zIiwiam9pbiIsImdldEJ1bGtJbnNlcnRTcWwiLCJzcWwiLCJsZW4iLCJkZWNsYXJhdGlvbiIsImdldFRhYmxlQ3JlYXRpb25TcWwiLCJ0QnVmIiwiV3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIndyaXRlVUludDgiLCJDT0xNRVRBREFUQSIsIndyaXRlVUludDE2TEUiLCJqIiwidGRzVmVyc2lvbiIsIndyaXRlVUludDMyTEUiLCJmbGFncyIsIndyaXRlQnVmZmVyIiwiZ2VuZXJhdGVUeXBlSW5mbyIsImhhc1RhYmxlTmFtZSIsIndyaXRlVXNWYXJjaGFyIiwid3JpdGVCVmFyY2hhciIsImRhdGEiLCJzZXRUaW1lb3V0IiwiRE9ORSIsInN0YXR1cyIsImNhbmNlbCIsImVtaXQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0E7O0FBQ0E7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxLQUFLLEdBQUc7QUFDWkMsRUFBQUEsUUFBUSxFQUFFLEtBQUssQ0FESDtBQUVaQyxFQUFBQSxPQUFPLEVBQUUsS0FBSyxDQUZGO0FBR1pD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O0FBQ0Y7QUFDQTs7O0FBQ0VJLEVBQUFBLE1BQU0sR0FBRztBQUNQLFFBQUksS0FBSzlDLFFBQVQsRUFBbUI7QUFDakI7QUFDRDs7QUFFRCxTQUFLQSxRQUFMLEdBQWdCLElBQWhCO0FBQ0EsU0FBSytDLElBQUwsQ0FBVSxRQUFWO0FBQ0Q7O0FBMVdpQzs7ZUE2V3JCN0QsUTs7QUFDZjhELE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQi9ELFFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCBXcml0YWJsZVRyYWNraW5nQnVmZmVyIGZyb20gJy4vdHJhY2tpbmctYnVmZmVyL3dyaXRhYmxlLXRyYWNraW5nLWJ1ZmZlcic7XG5pbXBvcnQgQ29ubmVjdGlvbiwgeyBJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zIH0gZnJvbSAnLi9jb25uZWN0aW9uJztcblxuaW1wb3J0IHsgVHJhbnNmb3JtIH0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCB7IFRZUEUgYXMgVE9LRU5fVFlQRSB9IGZyb20gJy4vdG9rZW4vdG9rZW4nO1xuXG5pbXBvcnQgeyBEYXRhVHlwZSwgUGFyYW1ldGVyIH0gZnJvbSAnLi9kYXRhLXR5cGUnO1xuaW1wb3J0IHsgQ29sbGF0aW9uIH0gZnJvbSAnLi9jb2xsYXRpb24nO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IEZMQUdTID0ge1xuICBudWxsYWJsZTogMSA8PCAwLFxuICBjYXNlU2VuOiAxIDw8IDEsXG4gIHVwZGF0ZWFibGVSZWFkV3JpdGU6IDEgPDwgMixcbiAgdXBkYXRlYWJsZVVua25vd246IDEgPDwgMyxcbiAgaWRlbnRpdHk6IDEgPDwgNCxcbiAgY29tcHV0ZWQ6IDEgPDwgNSwgLy8gaW50cm9kdWNlZCBpbiBURFMgNy4yXG4gIGZpeGVkTGVuQ0xSVHlwZTogMSA8PCA4LCAvLyBpbnRyb2R1Y2VkIGluIFREUyA3LjJcbiAgc3BhcnNlQ29sdW1uU2V0OiAxIDw8IDEwLCAvLyBpbnRyb2R1Y2VkIGluIFREUyA3LjMuQlxuICBoaWRkZW46IDEgPDwgMTMsIC8vIGludHJvZHVjZWQgaW4gVERTIDcuMlxuICBrZXk6IDEgPDwgMTQsIC8vIGludHJvZHVjZWQgaW4gVERTIDcuMlxuICBudWxsYWJsZVVua25vd246IDEgPDwgMTUgLy8gaW50cm9kdWNlZCBpbiBURFMgNy4yXG59O1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IERPTkVfU1RBVFVTID0ge1xuICBGSU5BTDogMHgwMCxcbiAgTU9SRTogMHgxLFxuICBFUlJPUjogMHgyLFxuICBJTlhBQ1Q6IDB4NCxcbiAgQ09VTlQ6IDB4MTAsXG4gIEFUVE46IDB4MjAsXG4gIFNSVkVSUk9SOiAweDEwMFxufTtcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5pbnRlcmZhY2UgSW50ZXJuYWxPcHRpb25zIHtcbiAgY2hlY2tDb25zdHJhaW50czogYm9vbGVhbjtcbiAgZmlyZVRyaWdnZXJzOiBib29sZWFuO1xuICBrZWVwTnVsbHM6IGJvb2xlYW47XG4gIGxvY2tUYWJsZTogYm9vbGVhbjtcbiAgb3JkZXI6IHsgW2NvbHVtbk5hbWU6IHN0cmluZ106ICdBU0MnIHwgJ0RFU0MnIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBIb25vcnMgY29uc3RyYWludHMgZHVyaW5nIGJ1bGsgbG9hZCwgdXNpbmcgVC1TUUxcbiAgICogW0NIRUNLX0NPTlNUUkFJTlRTXShodHRwczovL3RlY2huZXQubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L21zMTg2MjQ3KHY9c3FsLjEwNSkuYXNweCkuXG4gICAqIChkZWZhdWx0OiBgZmFsc2VgKVxuICAgKi9cbiAgY2hlY2tDb25zdHJhaW50cz86IEludGVybmFsT3B0aW9uc1snY2hlY2tDb25zdHJhaW50cyddIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBIb25vcnMgaW5zZXJ0IHRyaWdnZXJzIGR1cmluZyBidWxrIGxvYWQsIHVzaW5nIHRoZSBULVNRTCBbRklSRV9UUklHR0VSU10oaHR0cHM6Ly90ZWNobmV0Lm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczE4NzY0MCh2PXNxbC4xMDUpLmFzcHgpLiAoZGVmYXVsdDogYGZhbHNlYClcbiAgICovXG4gIGZpcmVUcmlnZ2Vycz86IEludGVybmFsT3B0aW9uc1snZmlyZVRyaWdnZXJzJ10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEhvbm9ycyBudWxsIHZhbHVlIHBhc3NlZCwgaWdub3JlcyB0aGUgZGVmYXVsdCB2YWx1ZXMgc2V0IG9uIHRhYmxlLCB1c2luZyBULVNRTCBbS0VFUF9OVUxMU10oaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczE4Nzg4Nyh2PXNxbC4xMjApLmFzcHgpLiAoZGVmYXVsdDogYGZhbHNlYClcbiAgICovXG4gIGtlZXBOdWxscz86IEludGVybmFsT3B0aW9uc1sna2VlcE51bGxzJ10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFBsYWNlcyBhIGJ1bGsgdXBkYXRlKEJVKSBsb2NrIG9uIHRhYmxlIHdoaWxlIHBlcmZvcm1pbmcgYnVsayBsb2FkLCB1c2luZyBULVNRTCBbVEFCTE9DS10oaHR0cHM6Ly90ZWNobmV0Lm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczE4MDg3Nih2PXNxbC4xMDUpLmFzcHgpLiAoZGVmYXVsdDogYGZhbHNlYClcbiAgICovXG4gIGxvY2tUYWJsZT86IEludGVybmFsT3B0aW9uc1snbG9ja1RhYmxlJ10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgb3JkZXJpbmcgb2YgdGhlIGRhdGEgdG8gcG9zc2libHkgaW5jcmVhc2UgYnVsayBpbnNlcnQgcGVyZm9ybWFuY2UsIHVzaW5nIFQtU1FMIFtPUkRFUl0oaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvcHJldmlvdXMtdmVyc2lvbnMvc3FsL3NxbC1zZXJ2ZXItMjAwOC1yMi9tczE3NzQ2OCh2PXNxbC4xMDUpKS4gKGRlZmF1bHQ6IGB7fWApXG4gICAqL1xuICBvcmRlcj86IEludGVybmFsT3B0aW9uc1snb3JkZXInXSB8IHVuZGVmaW5lZDtcbn1cblxuXG5leHBvcnQgdHlwZSBDYWxsYmFjayA9XG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGFmdGVyIHRoZSBbW0J1bGtMb2FkXV0gZmluaXNoZXMgZXhlY3V0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gcm93Q291bnQgdGhlIG51bWJlciBvZiByb3dzIGluc2VydGVkXG4gICAqL1xuICAoZXJyOiBFcnJvciB8IHVuZGVmaW5lZCB8IG51bGwsIHJvd0NvdW50PzogbnVtYmVyKSA9PiB2b2lkO1xuXG5pbnRlcmZhY2UgQ29sdW1uIGV4dGVuZHMgUGFyYW1ldGVyIHtcbiAgb2JqTmFtZTogc3RyaW5nO1xuICBjb2xsYXRpb246IENvbGxhdGlvbiB8IHVuZGVmaW5lZDtcbn1cblxuaW50ZXJmYWNlIENvbHVtbk9wdGlvbnMge1xuICBvdXRwdXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGb3IgVmFyQ2hhciwgTlZhckNoYXIsIFZhckJpbmFyeS4gVXNlIGxlbmd0aCBhcyBgSW5maW5pdHlgIGZvciBWYXJDaGFyKG1heCksIE5WYXJDaGFyKG1heCkgYW5kIFZhckJpbmFyeShtYXgpLlxuICAgKi9cbiAgbGVuZ3RoPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBGb3IgTnVtZXJpYywgRGVjaW1hbC5cbiAgICovXG4gIHByZWNpc2lvbj86IG51bWJlcjtcblxuICAvKipcbiAgICogRm9yIE51bWVyaWMsIERlY2ltYWwsIFRpbWUsIERhdGVUaW1lMiwgRGF0ZVRpbWVPZmZzZXQuXG4gICAqL1xuICBzY2FsZT86IG51bWJlcjtcblxuICAvKipcbiAgICogSWYgdGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgZm91bmQgb24gYHJvd09iamAgYXJndW1lbnRzIHBhc3NlZCB0byBbW2FkZFJvd11dLCB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIHByb3BlcnR5IG5hbWUuXG4gICAqL1xuICBvYmpOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29sdW1uIGFjY2VwdHMgTlVMTCB2YWx1ZXMuXG4gICAqL1xuICBudWxsYWJsZT86IGJvb2xlYW47XG59XG5cbmNvbnN0IHJvd1Rva2VuQnVmZmVyID0gQnVmZmVyLmZyb20oWyBUT0tFTl9UWVBFLlJPVyBdKTtcbmNvbnN0IHRleHRQb2ludGVyQW5kVGltZXN0YW1wQnVmZmVyID0gQnVmZmVyLmZyb20oW1xuICAvLyBUZXh0UG9pbnRlciBsZW5ndGhcbiAgMHgxMCxcblxuICAvLyBUZXh0UG9pbnRlclxuICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLFxuXG4gIC8vIFRpbWVzdGFtcFxuICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwXG5dKTtcbmNvbnN0IHRleHRQb2ludGVyTnVsbEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKFsweDAwXSk7XG5cbi8vIEEgdHJhbnNmb3JtIHRoYXQgY29udmVydHMgcm93cyB0byBwYWNrZXRzLlxuY2xhc3MgUm93VHJhbnNmb3JtIGV4dGVuZHMgVHJhbnNmb3JtIHtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb2x1bW5NZXRhZGF0YVdyaXR0ZW46IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgYnVsa0xvYWQ6IEJ1bGtMb2FkO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIG1haW5PcHRpb25zOiBCdWxrTG9hZFsnb3B0aW9ucyddO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNvbHVtbnM6IEJ1bGtMb2FkWydjb2x1bW5zJ107XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihidWxrTG9hZDogQnVsa0xvYWQpIHtcbiAgICBzdXBlcih7IHdyaXRhYmxlT2JqZWN0TW9kZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMuYnVsa0xvYWQgPSBidWxrTG9hZDtcbiAgICB0aGlzLm1haW5PcHRpb25zID0gYnVsa0xvYWQub3B0aW9ucztcbiAgICB0aGlzLmNvbHVtbnMgPSBidWxrTG9hZC5jb2x1bW5zO1xuXG4gICAgdGhpcy5jb2x1bW5NZXRhZGF0YVdyaXR0ZW4gPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3RyYW5zZm9ybShyb3c6IEFycmF5PHVua25vd24+IHwgeyBbY29sTmFtZTogc3RyaW5nXTogdW5rbm93biB9LCBfZW5jb2Rpbmc6IHN0cmluZywgY2FsbGJhY2s6IChlcnJvcj86IEVycm9yKSA9PiB2b2lkKSB7XG4gICAgaWYgKCF0aGlzLmNvbHVtbk1ldGFkYXRhV3JpdHRlbikge1xuICAgICAgdGhpcy5wdXNoKHRoaXMuYnVsa0xvYWQuZ2V0Q29sTWV0YURhdGEoKSk7XG4gICAgICB0aGlzLmNvbHVtbk1ldGFkYXRhV3JpdHRlbiA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5wdXNoKHJvd1Rva2VuQnVmZmVyKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb2x1bW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjID0gdGhpcy5jb2x1bW5zW2ldO1xuICAgICAgbGV0IHZhbHVlID0gQXJyYXkuaXNBcnJheShyb3cpID8gcm93W2ldIDogcm93W2Mub2JqTmFtZV07XG5cbiAgICAgIGlmICghdGhpcy5idWxrTG9hZC5maXJzdFJvd1dyaXR0ZW4pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2YWx1ZSA9IGMudHlwZS52YWxpZGF0ZSh2YWx1ZSwgYy5jb2xsYXRpb24pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBwYXJhbWV0ZXIgPSB7XG4gICAgICAgIGxlbmd0aDogYy5sZW5ndGgsXG4gICAgICAgIHNjYWxlOiBjLnNjYWxlLFxuICAgICAgICBwcmVjaXNpb246IGMucHJlY2lzaW9uLFxuICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgIH07XG5cbiAgICAgIGlmIChjLnR5cGUubmFtZSA9PT0gJ1RleHQnIHx8IGMudHlwZS5uYW1lID09PSAnSW1hZ2UnIHx8IGMudHlwZS5uYW1lID09PSAnTlRleHQnKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5wdXNoKHRleHRQb2ludGVyTnVsbEJ1ZmZlcik7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnB1c2godGV4dFBvaW50ZXJBbmRUaW1lc3RhbXBCdWZmZXIpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnB1c2goYy50eXBlLmdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlciwgdGhpcy5tYWluT3B0aW9ucykpO1xuICAgICAgZm9yIChjb25zdCBjaHVuayBvZiBjLnR5cGUuZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhKHBhcmFtZXRlciwgdGhpcy5tYWluT3B0aW9ucykpIHtcbiAgICAgICAgdGhpcy5wdXNoKGNodW5rKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9jZXNzLm5leHRUaWNrKGNhbGxiYWNrKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX2ZsdXNoKGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5wdXNoKHRoaXMuYnVsa0xvYWQuY3JlYXRlRG9uZVRva2VuKCkpO1xuXG4gICAgcHJvY2Vzcy5uZXh0VGljayhjYWxsYmFjayk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIEJ1bGtMb2FkIGluc3RhbmNlIGlzIHVzZWQgdG8gcGVyZm9ybSBhIGJ1bGsgaW5zZXJ0LlxuICpcbiAqIFVzZSBbW0Nvbm5lY3Rpb24ubmV3QnVsa0xvYWRdXSB0byBjcmVhdGUgYSBuZXcgaW5zdGFuY2UsIGFuZCBbW0Nvbm5lY3Rpb24uZXhlY0J1bGtMb2FkXV0gdG8gZXhlY3V0ZSBpdC5cbiAqXG4gKiBFeGFtcGxlIG9mIEJ1bGtMb2FkIFVzYWdlczpcbiAqXG4gKiBgYGBqc1xuICogLy8gb3B0aW9uYWwgQnVsa0xvYWQgb3B0aW9uc1xuICogY29uc3Qgb3B0aW9ucyA9IHsga2VlcE51bGxzOiB0cnVlIH07XG4gKlxuICogLy8gaW5zdGFudGlhdGUgLSBwcm92aWRlIHRoZSB0YWJsZSB3aGVyZSB5b3UnbGwgYmUgaW5zZXJ0aW5nIHRvLCBvcHRpb25zIGFuZCBhIGNhbGxiYWNrXG4gKiBjb25zdCBidWxrTG9hZCA9IGNvbm5lY3Rpb24ubmV3QnVsa0xvYWQoJ015VGFibGUnLCBvcHRpb25zLCAoZXJyb3IsIHJvd0NvdW50KSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKCdpbnNlcnRlZCAlZCByb3dzJywgcm93Q291bnQpO1xuICogfSk7XG4gKlxuICogLy8gc2V0dXAgeW91ciBjb2x1bW5zIC0gYWx3YXlzIGluZGljYXRlIHdoZXRoZXIgdGhlIGNvbHVtbiBpcyBudWxsYWJsZVxuICogYnVsa0xvYWQuYWRkQ29sdW1uKCdteUludCcsIFRZUEVTLkludCwgeyBudWxsYWJsZTogZmFsc2UgfSk7XG4gKiBidWxrTG9hZC5hZGRDb2x1bW4oJ215U3RyaW5nJywgVFlQRVMuTlZhckNoYXIsIHsgbGVuZ3RoOiA1MCwgbnVsbGFibGU6IHRydWUgfSk7XG4gKlxuICogLy8gZXhlY3V0ZVxuICogY29ubmVjdGlvbi5leGVjQnVsa0xvYWQoYnVsa0xvYWQsIFtcbiAqICAgeyBteUludDogNywgbXlTdHJpbmc6ICdoZWxsbycgfSxcbiAqICAgeyBteUludDogMjMsIG15U3RyaW5nOiAnd29ybGQnIH1cbiAqIF0pO1xuICogYGBgXG4gKi9cbmNsYXNzIEJ1bGtMb2FkIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBlcnJvcjogRXJyb3IgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY2FuY2VsZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgZXhlY3V0aW9uU3RhcnRlZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBzdHJlYW1pbmdNb2RlOiBib29sZWFuO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHRhYmxlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgdGltZW91dDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgb3B0aW9uczogSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucztcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjYWxsYmFjazogQ2FsbGJhY2s7XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb2x1bW5zOiBBcnJheTxDb2x1bW4+O1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNvbHVtbnNCeU5hbWU6IHsgW25hbWU6IHN0cmluZ106IENvbHVtbiB9O1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgZmlyc3RSb3dXcml0dGVuOiBib29sZWFuO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHJvd1RvUGFja2V0VHJhbnNmb3JtOiBSb3dUcmFuc2Zvcm07XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBidWxrT3B0aW9uczogSW50ZXJuYWxPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29ubmVjdGlvbjogQ29ubmVjdGlvbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICByb3dzOiBBcnJheTxhbnk+IHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHJzdDogQXJyYXk8YW55PiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICByb3dDb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIGNvbGxhdGlvbjogQ29sbGF0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29uc3RydWN0b3IodGFibGU6IHN0cmluZywgY29sbGF0aW9uOiBDb2xsYXRpb24gfCB1bmRlZmluZWQsIGNvbm5lY3Rpb25PcHRpb25zOiBJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zLCB7XG4gICAgY2hlY2tDb25zdHJhaW50cyA9IGZhbHNlLFxuICAgIGZpcmVUcmlnZ2VycyA9IGZhbHNlLFxuICAgIGtlZXBOdWxscyA9IGZhbHNlLFxuICAgIGxvY2tUYWJsZSA9IGZhbHNlLFxuICAgIG9yZGVyID0ge30sXG4gIH06IE9wdGlvbnMsIGNhbGxiYWNrOiBDYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2YgY2hlY2tDb25zdHJhaW50cyAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJvcHRpb25zLmNoZWNrQ29uc3RyYWludHNcIiBwcm9wZXJ0eSBtdXN0IGJlIG9mIHR5cGUgYm9vbGVhbi4nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGZpcmVUcmlnZ2VycyAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJvcHRpb25zLmZpcmVUcmlnZ2Vyc1wiIHByb3BlcnR5IG11c3QgYmUgb2YgdHlwZSBib29sZWFuLicpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Yga2VlcE51bGxzICE9PSAnYm9vbGVhbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcIm9wdGlvbnMua2VlcE51bGxzXCIgcHJvcGVydHkgbXVzdCBiZSBvZiB0eXBlIGJvb2xlYW4uJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBsb2NrVGFibGUgIT09ICdib29sZWFuJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwib3B0aW9ucy5sb2NrVGFibGVcIiBwcm9wZXJ0eSBtdXN0IGJlIG9mIHR5cGUgYm9vbGVhbi4nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9yZGVyICE9PSAnb2JqZWN0JyB8fCBvcmRlciA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwib3B0aW9ucy5vcmRlclwiIHByb3BlcnR5IG11c3QgYmUgb2YgdHlwZSBvYmplY3QuJyk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbY29sdW1uLCBkaXJlY3Rpb25dIG9mIE9iamVjdC5lbnRyaWVzKG9yZGVyKSkge1xuICAgICAgaWYgKGRpcmVjdGlvbiAhPT0gJ0FTQycgJiYgZGlyZWN0aW9uICE9PSAnREVTQycpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIHZhbHVlIG9mIHRoZSBcIicgKyBjb2x1bW4gKyAnXCIga2V5IGluIHRoZSBcIm9wdGlvbnMub3JkZXJcIiBvYmplY3QgbXVzdCBiZSBlaXRoZXIgXCJBU0NcIiBvciBcIkRFU0NcIi4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5lcnJvciA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmNhbmNlbGVkID0gZmFsc2U7XG4gICAgdGhpcy5leGVjdXRpb25TdGFydGVkID0gZmFsc2U7XG5cbiAgICB0aGlzLmNvbGxhdGlvbiA9IGNvbGxhdGlvbjtcblxuICAgIHRoaXMudGFibGUgPSB0YWJsZTtcbiAgICB0aGlzLm9wdGlvbnMgPSBjb25uZWN0aW9uT3B0aW9ucztcbiAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgdGhpcy5jb2x1bW5zID0gW107XG4gICAgdGhpcy5jb2x1bW5zQnlOYW1lID0ge307XG4gICAgdGhpcy5maXJzdFJvd1dyaXR0ZW4gPSBmYWxzZTtcbiAgICB0aGlzLnN0cmVhbWluZ01vZGUgPSBmYWxzZTtcblxuICAgIHRoaXMucm93VG9QYWNrZXRUcmFuc2Zvcm0gPSBuZXcgUm93VHJhbnNmb3JtKHRoaXMpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG5cbiAgICB0aGlzLmJ1bGtPcHRpb25zID0geyBjaGVja0NvbnN0cmFpbnRzLCBmaXJlVHJpZ2dlcnMsIGtlZXBOdWxscywgbG9ja1RhYmxlLCBvcmRlciB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjb2x1bW4gdG8gdGhlIGJ1bGsgbG9hZC5cbiAgICpcbiAgICogVGhlIGNvbHVtbiBkZWZpbml0aW9ucyBzaG91bGQgbWF0Y2ggdGhlIHRhYmxlIHlvdSBhcmUgdHJ5aW5nIHRvIGluc2VydCBpbnRvLlxuICAgKiBBdHRlbXB0aW5nIHRvIGNhbGwgYWRkQ29sdW1uIGFmdGVyIHRoZSBmaXJzdCByb3cgaGFzIGJlZW4gYWRkZWQgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24uXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGJ1bGtMb2FkLmFkZENvbHVtbignTXlJbnRDb2x1bW4nLCBUWVBFUy5JbnQsIHsgbnVsbGFibGU6IGZhbHNlIH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbi5cbiAgICogQHBhcmFtIHR5cGUgT25lIG9mIHRoZSBzdXBwb3J0ZWQgYGRhdGEgdHlwZXNgLlxuICAgKiBAcGFyYW0gX19uYW1lZFBhcmFtZXRlcnMgQWRkaXRpb25hbCBjb2x1bW4gdHlwZSBpbmZvcm1hdGlvbi4gQXQgYSBtaW5pbXVtLCBgbnVsbGFibGVgIG11c3QgYmUgc2V0IHRvIHRydWUgb3IgZmFsc2UuXG4gICAqIEBwYXJhbSBsZW5ndGggRm9yIFZhckNoYXIsIE5WYXJDaGFyLCBWYXJCaW5hcnkuIFVzZSBsZW5ndGggYXMgYEluZmluaXR5YCBmb3IgVmFyQ2hhcihtYXgpLCBOVmFyQ2hhcihtYXgpIGFuZCBWYXJCaW5hcnkobWF4KS5cbiAgICogQHBhcmFtIG51bGxhYmxlIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjb2x1bW4gYWNjZXB0cyBOVUxMIHZhbHVlcy5cbiAgICogQHBhcmFtIG9iak5hbWUgSWYgdGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgZm91bmQgb24gYHJvd09iamAgYXJndW1lbnRzIHBhc3NlZCB0byBbW2FkZFJvd11dIG9yIFtbQ29ubmVjdGlvbi5leGVjQnVsa0xvYWRdXSwgdGhlbiB5b3UgY2FuIHVzZSB0aGlzIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBwcm9wZXJ0eSBuYW1lLlxuICAgKiBAcGFyYW0gcHJlY2lzaW9uIEZvciBOdW1lcmljLCBEZWNpbWFsLlxuICAgKiBAcGFyYW0gc2NhbGUgRm9yIE51bWVyaWMsIERlY2ltYWwsIFRpbWUsIERhdGVUaW1lMiwgRGF0ZVRpbWVPZmZzZXQuXG4gICovXG4gIGFkZENvbHVtbihuYW1lOiBzdHJpbmcsIHR5cGU6IERhdGFUeXBlLCB7IG91dHB1dCA9IGZhbHNlLCBsZW5ndGgsIHByZWNpc2lvbiwgc2NhbGUsIG9iak5hbWUgPSBuYW1lLCBudWxsYWJsZSA9IHRydWUgfTogQ29sdW1uT3B0aW9ucykge1xuICAgIGlmICh0aGlzLmZpcnN0Um93V3JpdHRlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb2x1bW5zIGNhbm5vdCBiZSBhZGRlZCB0byBidWxrIGluc2VydCBhZnRlciB0aGUgZmlyc3Qgcm93IGhhcyBiZWVuIHdyaXR0ZW4uJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmV4ZWN1dGlvblN0YXJ0ZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29sdW1ucyBjYW5ub3QgYmUgYWRkZWQgdG8gYnVsayBpbnNlcnQgYWZ0ZXIgZXhlY3V0aW9uIGhhcyBzdGFydGVkLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbHVtbjogQ29sdW1uID0ge1xuICAgICAgdHlwZTogdHlwZSxcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICB2YWx1ZTogbnVsbCxcbiAgICAgIG91dHB1dDogb3V0cHV0LFxuICAgICAgbGVuZ3RoOiBsZW5ndGgsXG4gICAgICBwcmVjaXNpb246IHByZWNpc2lvbixcbiAgICAgIHNjYWxlOiBzY2FsZSxcbiAgICAgIG9iak5hbWU6IG9iak5hbWUsXG4gICAgICBudWxsYWJsZTogbnVsbGFibGUsXG4gICAgICBjb2xsYXRpb246IHRoaXMuY29sbGF0aW9uXG4gICAgfTtcblxuICAgIGlmICgodHlwZS5pZCAmIDB4MzApID09PSAweDIwKSB7XG4gICAgICBpZiAoY29sdW1uLmxlbmd0aCA9PSBudWxsICYmIHR5cGUucmVzb2x2ZUxlbmd0aCkge1xuICAgICAgICBjb2x1bW4ubGVuZ3RoID0gdHlwZS5yZXNvbHZlTGVuZ3RoKGNvbHVtbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGUucmVzb2x2ZVByZWNpc2lvbiAmJiBjb2x1bW4ucHJlY2lzaW9uID09IG51bGwpIHtcbiAgICAgIGNvbHVtbi5wcmVjaXNpb24gPSB0eXBlLnJlc29sdmVQcmVjaXNpb24oY29sdW1uKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZS5yZXNvbHZlU2NhbGUgJiYgY29sdW1uLnNjYWxlID09IG51bGwpIHtcbiAgICAgIGNvbHVtbi5zY2FsZSA9IHR5cGUucmVzb2x2ZVNjYWxlKGNvbHVtbik7XG4gICAgfVxuXG4gICAgdGhpcy5jb2x1bW5zLnB1c2goY29sdW1uKTtcblxuICAgIHRoaXMuY29sdW1uc0J5TmFtZVtuYW1lXSA9IGNvbHVtbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgZ2V0T3B0aW9uc1NxbCgpIHtcbiAgICBjb25zdCBhZGRPcHRpb25zID0gW107XG5cbiAgICBpZiAodGhpcy5idWxrT3B0aW9ucy5jaGVja0NvbnN0cmFpbnRzKSB7XG4gICAgICBhZGRPcHRpb25zLnB1c2goJ0NIRUNLX0NPTlNUUkFJTlRTJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYnVsa09wdGlvbnMuZmlyZVRyaWdnZXJzKSB7XG4gICAgICBhZGRPcHRpb25zLnB1c2goJ0ZJUkVfVFJJR0dFUlMnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5idWxrT3B0aW9ucy5rZWVwTnVsbHMpIHtcbiAgICAgIGFkZE9wdGlvbnMucHVzaCgnS0VFUF9OVUxMUycpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJ1bGtPcHRpb25zLmxvY2tUYWJsZSkge1xuICAgICAgYWRkT3B0aW9ucy5wdXNoKCdUQUJMT0NLJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYnVsa09wdGlvbnMub3JkZXIpIHtcbiAgICAgIGNvbnN0IG9yZGVyQ29sdW1ucyA9IFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IFtjb2x1bW4sIGRpcmVjdGlvbl0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5idWxrT3B0aW9ucy5vcmRlcikpIHtcbiAgICAgICAgb3JkZXJDb2x1bW5zLnB1c2goYCR7Y29sdW1ufSAke2RpcmVjdGlvbn1gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9yZGVyQ29sdW1ucy5sZW5ndGgpIHtcbiAgICAgICAgYWRkT3B0aW9ucy5wdXNoKGBPUkRFUiAoJHtvcmRlckNvbHVtbnMuam9pbignLCAnKX0pYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGFkZE9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGAgV0lUSCAoJHthZGRPcHRpb25zLmpvaW4oJywnKX0pYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgZ2V0QnVsa0luc2VydFNxbCgpIHtcbiAgICBsZXQgc3FsID0gJ2luc2VydCBidWxrICcgKyB0aGlzLnRhYmxlICsgJygnO1xuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB0aGlzLmNvbHVtbnMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IGMgPSB0aGlzLmNvbHVtbnNbaV07XG4gICAgICBpZiAoaSAhPT0gMCkge1xuICAgICAgICBzcWwgKz0gJywgJztcbiAgICAgIH1cbiAgICAgIHNxbCArPSAnWycgKyBjLm5hbWUgKyAnXSAnICsgKGMudHlwZS5kZWNsYXJhdGlvbihjKSk7XG4gICAgfVxuICAgIHNxbCArPSAnKSc7XG5cbiAgICBzcWwgKz0gdGhpcy5nZXRPcHRpb25zU3FsKCk7XG4gICAgcmV0dXJuIHNxbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIHNpbXBseSBhIGhlbHBlciB1dGlsaXR5IGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYSBgQ1JFQVRFIFRBQkxFIFNRTGAgc3RhdGVtZW50IGJhc2VkIG9uIHRoZSBjb2x1bW5zIGFkZGVkIHRvIHRoZSBidWxrTG9hZCBvYmplY3QuXG4gICAqIFRoaXMgbWF5IGJlIHBhcnRpY3VsYXJseSBoYW5keSB3aGVuIHlvdSB3YW50IHRvIGluc2VydCBpbnRvIGEgdGVtcG9yYXJ5IHRhYmxlIChhIHRhYmxlIHdoaWNoIHN0YXJ0cyB3aXRoIGAjYCkuXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIHZhciBzcWwgPSBidWxrTG9hZC5nZXRUYWJsZUNyZWF0aW9uU3FsKCk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBBIHNpZGUgbm90ZSBvbiBidWxrIGluc2VydGluZyBpbnRvIHRlbXBvcmFyeSB0YWJsZXM6IGlmIHlvdSB3YW50IHRvIGFjY2VzcyBhIGxvY2FsIHRlbXBvcmFyeSB0YWJsZSBhZnRlciBleGVjdXRpbmcgdGhlIGJ1bGsgbG9hZCxcbiAgICogeW91J2xsIG5lZWQgdG8gdXNlIHRoZSBzYW1lIGNvbm5lY3Rpb24gYW5kIGV4ZWN1dGUgeW91ciByZXF1ZXN0cyB1c2luZyBbW0Nvbm5lY3Rpb24uZXhlY1NxbEJhdGNoXV0gaW5zdGVhZCBvZiBbW0Nvbm5lY3Rpb24uZXhlY1NxbF1dXG4gICAqL1xuICBnZXRUYWJsZUNyZWF0aW9uU3FsKCkge1xuICAgIGxldCBzcWwgPSAnQ1JFQVRFIFRBQkxFICcgKyB0aGlzLnRhYmxlICsgJyhcXG4nO1xuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB0aGlzLmNvbHVtbnMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IGMgPSB0aGlzLmNvbHVtbnNbaV07XG4gICAgICBpZiAoaSAhPT0gMCkge1xuICAgICAgICBzcWwgKz0gJyxcXG4nO1xuICAgICAgfVxuICAgICAgc3FsICs9ICdbJyArIGMubmFtZSArICddICcgKyAoYy50eXBlLmRlY2xhcmF0aW9uKGMpKTtcbiAgICAgIGlmIChjLm51bGxhYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc3FsICs9ICcgJyArIChjLm51bGxhYmxlID8gJ05VTEwnIDogJ05PVCBOVUxMJyk7XG4gICAgICB9XG4gICAgfVxuICAgIHNxbCArPSAnXFxuKSc7XG4gICAgcmV0dXJuIHNxbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgZ2V0Q29sTWV0YURhdGEoKSB7XG4gICAgY29uc3QgdEJ1ZiA9IG5ldyBXcml0YWJsZVRyYWNraW5nQnVmZmVyKDEwMCwgbnVsbCwgdHJ1ZSk7XG4gICAgLy8gVG9rZW5UeXBlXG4gICAgdEJ1Zi53cml0ZVVJbnQ4KFRPS0VOX1RZUEUuQ09MTUVUQURBVEEpO1xuICAgIC8vIENvdW50XG4gICAgdEJ1Zi53cml0ZVVJbnQxNkxFKHRoaXMuY29sdW1ucy5sZW5ndGgpO1xuXG4gICAgZm9yIChsZXQgaiA9IDAsIGxlbiA9IHRoaXMuY29sdW1ucy5sZW5ndGg7IGogPCBsZW47IGorKykge1xuICAgICAgY29uc3QgYyA9IHRoaXMuY29sdW1uc1tqXTtcbiAgICAgIC8vIFVzZXJUeXBlXG4gICAgICBpZiAodGhpcy5vcHRpb25zLnRkc1ZlcnNpb24gPCAnN18yJykge1xuICAgICAgICB0QnVmLndyaXRlVUludDE2TEUoMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0QnVmLndyaXRlVUludDMyTEUoMCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEZsYWdzXG4gICAgICBsZXQgZmxhZ3MgPSBGTEFHUy51cGRhdGVhYmxlUmVhZFdyaXRlO1xuICAgICAgaWYgKGMubnVsbGFibGUpIHtcbiAgICAgICAgZmxhZ3MgfD0gRkxBR1MubnVsbGFibGU7XG4gICAgICB9IGVsc2UgaWYgKGMubnVsbGFibGUgPT09IHVuZGVmaW5lZCAmJiB0aGlzLm9wdGlvbnMudGRzVmVyc2lvbiA+PSAnN18yJykge1xuICAgICAgICBmbGFncyB8PSBGTEFHUy5udWxsYWJsZVVua25vd247XG4gICAgICB9XG4gICAgICB0QnVmLndyaXRlVUludDE2TEUoZmxhZ3MpO1xuXG4gICAgICAvLyBUWVBFX0lORk9cbiAgICAgIHRCdWYud3JpdGVCdWZmZXIoYy50eXBlLmdlbmVyYXRlVHlwZUluZm8oYywgdGhpcy5vcHRpb25zKSk7XG5cbiAgICAgIC8vIFRhYmxlTmFtZVxuICAgICAgaWYgKGMudHlwZS5oYXNUYWJsZU5hbWUpIHtcbiAgICAgICAgdEJ1Zi53cml0ZVVzVmFyY2hhcih0aGlzLnRhYmxlLCAndWNzMicpO1xuICAgICAgfVxuXG4gICAgICAvLyBDb2xOYW1lXG4gICAgICB0QnVmLndyaXRlQlZhcmNoYXIoYy5uYW1lLCAndWNzMicpO1xuICAgIH1cbiAgICByZXR1cm4gdEJ1Zi5kYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYSB0aW1lb3V0IGZvciB0aGlzIGJ1bGsgbG9hZC5cbiAgICpcbiAgICogYGBganNcbiAgICogYnVsa0xvYWQuc2V0VGltZW91dCh0aW1lb3V0KTtcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSB0aW1lb3V0IFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGJlZm9yZSB0aGUgYnVsayBsb2FkIGlzIGNvbnNpZGVyZWQgZmFpbGVkLCBvciAwIGZvciBubyB0aW1lb3V0LlxuICAgKiAgIFdoZW4gbm8gdGltZW91dCBpcyBzZXQgZm9yIHRoZSBidWxrIGxvYWQsIHRoZSBbW0Nvbm5lY3Rpb25PcHRpb25zLnJlcXVlc3RUaW1lb3V0XV0gb2YgdGhlIENvbm5lY3Rpb24gaXMgdXNlZC5cbiAgICovXG4gIHNldFRpbWVvdXQodGltZW91dD86IG51bWJlcikge1xuICAgIHRoaXMudGltZW91dCA9IHRpbWVvdXQ7XG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNyZWF0ZURvbmVUb2tlbigpIHtcbiAgICAvLyBJdCBtaWdodCBiZSBuaWNlIHRvIG1ha2UgRG9uZVRva2VuIGEgY2xhc3MgaWYgYW55dGhpbmcgbmVlZHMgdG8gY3JlYXRlIHRoZW0sIGJ1dCBmb3Igbm93LCBqdXN0IGRvIGl0IGhlcmVcbiAgICBjb25zdCB0QnVmID0gbmV3IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIodGhpcy5vcHRpb25zLnRkc1ZlcnNpb24gPCAnN18yJyA/IDkgOiAxMyk7XG4gICAgdEJ1Zi53cml0ZVVJbnQ4KFRPS0VOX1RZUEUuRE9ORSk7XG4gICAgY29uc3Qgc3RhdHVzID0gRE9ORV9TVEFUVVMuRklOQUw7XG4gICAgdEJ1Zi53cml0ZVVJbnQxNkxFKHN0YXR1cyk7XG4gICAgdEJ1Zi53cml0ZVVJbnQxNkxFKDApOyAvLyBDdXJDbWQgKFREUyBpZ25vcmVzIHRoaXMpXG4gICAgdEJ1Zi53cml0ZVVJbnQzMkxFKDApOyAvLyByb3cgY291bnQgLSBkb2Vzbid0IHJlYWxseSBtYXR0ZXJcbiAgICBpZiAodGhpcy5vcHRpb25zLnRkc1ZlcnNpb24gPj0gJzdfMicpIHtcbiAgICAgIHRCdWYud3JpdGVVSW50MzJMRSgwKTsgLy8gcm93IGNvdW50IGlzIDY0IGJpdHMgaW4gPj0gVERTIDcuMlxuICAgIH1cbiAgICByZXR1cm4gdEJ1Zi5kYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjYW5jZWwoKSB7XG4gICAgaWYgKHRoaXMuY2FuY2VsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNhbmNlbGVkID0gdHJ1ZTtcbiAgICB0aGlzLmVtaXQoJ2NhbmNlbCcpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJ1bGtMb2FkO1xubW9kdWxlLmV4cG9ydHMgPSBCdWxrTG9hZDtcbiJdfQ==
|
|
595
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGTEFHUyIsIm51bGxhYmxlIiwiY2FzZVNlbiIsInVwZGF0ZWFibGVSZWFkV3JpdGUiLCJ1cGRhdGVhYmxlVW5rbm93biIsImlkZW50aXR5IiwiY29tcHV0ZWQiLCJmaXhlZExlbkNMUlR5cGUiLCJzcGFyc2VDb2x1bW5TZXQiLCJoaWRkZW4iLCJrZXkiLCJudWxsYWJsZVVua25vd24iLCJET05FX1NUQVRVUyIsIkZJTkFMIiwiTU9SRSIsIkVSUk9SIiwiSU5YQUNUIiwiQ09VTlQiLCJBVFROIiwiU1JWRVJST1IiLCJyb3dUb2tlbkJ1ZmZlciIsIkJ1ZmZlciIsImZyb20iLCJUT0tFTl9UWVBFIiwiUk9XIiwidGV4dFBvaW50ZXJBbmRUaW1lc3RhbXBCdWZmZXIiLCJ0ZXh0UG9pbnRlck51bGxCdWZmZXIiLCJSb3dUcmFuc2Zvcm0iLCJUcmFuc2Zvcm0iLCJjb25zdHJ1Y3RvciIsImJ1bGtMb2FkIiwid3JpdGFibGVPYmplY3RNb2RlIiwiY29sdW1uTWV0YWRhdGFXcml0dGVuIiwibWFpbk9wdGlvbnMiLCJjb2x1bW5zIiwib3B0aW9ucyIsIl90cmFuc2Zvcm0iLCJyb3ciLCJfZW5jb2RpbmciLCJjYWxsYmFjayIsInB1c2giLCJnZXRDb2xNZXRhRGF0YSIsImkiLCJsZW5ndGgiLCJjIiwidmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJvYmpOYW1lIiwiZmlyc3RSb3dXcml0dGVuIiwidHlwZSIsInZhbGlkYXRlIiwiY29sbGF0aW9uIiwiZXJyb3IiLCJwYXJhbWV0ZXIiLCJzY2FsZSIsInByZWNpc2lvbiIsIm5hbWUiLCJnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aCIsImNodW5rIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwicHJvY2VzcyIsIm5leHRUaWNrIiwiX2ZsdXNoIiwiY3JlYXRlRG9uZVRva2VuIiwiQnVsa0xvYWQiLCJFdmVudEVtaXR0ZXIiLCJ0YWJsZSIsImNvbm5lY3Rpb25PcHRpb25zIiwiY2hlY2tDb25zdHJhaW50cyIsImZpcmVUcmlnZ2VycyIsImtlZXBOdWxscyIsImxvY2tUYWJsZSIsIm9yZGVyIiwiVHlwZUVycm9yIiwiY29sdW1uIiwiZGlyZWN0aW9uIiwiT2JqZWN0IiwiZW50cmllcyIsImNhbmNlbGVkIiwiZXhlY3V0aW9uU3RhcnRlZCIsInN0cmVhbWluZ01vZGUiLCJ0aW1lb3V0IiwiY29sdW1uc0J5TmFtZSIsInJvd1RvUGFja2V0VHJhbnNmb3JtIiwiYnVsa09wdGlvbnMiLCJjb25uZWN0aW9uIiwicm93cyIsInJzdCIsInJvd0NvdW50IiwidW5kZWZpbmVkIiwiYWRkQ29sdW1uIiwib3V0cHV0IiwiRXJyb3IiLCJpZCIsInJlc29sdmVMZW5ndGgiLCJyZXNvbHZlUHJlY2lzaW9uIiwicmVzb2x2ZVNjYWxlIiwiZ2V0T3B0aW9uc1NxbCIsImFkZE9wdGlvbnMiLCJvcmRlckNvbHVtbnMiLCJqb2luIiwiZ2V0QnVsa0luc2VydFNxbCIsInNxbCIsImxlbiIsImRlY2xhcmF0aW9uIiwiZ2V0VGFibGVDcmVhdGlvblNxbCIsInRCdWYiLCJXcml0YWJsZVRyYWNraW5nQnVmZmVyIiwid3JpdGVVSW50OCIsIkNPTE1FVEFEQVRBIiwid3JpdGVVSW50MTZMRSIsImoiLCJ0ZHNWZXJzaW9uIiwid3JpdGVVSW50MzJMRSIsImZsYWdzIiwid3JpdGVCdWZmZXIiLCJnZW5lcmF0ZVR5cGVJbmZvIiwiaGFzVGFibGVOYW1lIiwid3JpdGVVc1ZhcmNoYXIiLCJ3cml0ZUJWYXJjaGFyIiwiZGF0YSIsInNldFRpbWVvdXQiLCJET05FIiwic3RhdHVzIiwiY2FuY2VsIiwiZW1pdCIsIm1vZHVsZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi9zcmMvYnVsay1sb2FkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5pbXBvcnQgV3JpdGFibGVUcmFja2luZ0J1ZmZlciBmcm9tICcuL3RyYWNraW5nLWJ1ZmZlci93cml0YWJsZS10cmFja2luZy1idWZmZXInO1xuaW1wb3J0IENvbm5lY3Rpb24sIHsgSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4vY29ubmVjdGlvbic7XG5cbmltcG9ydCB7IFRyYW5zZm9ybSB9IGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQgeyBUWVBFIGFzIFRPS0VOX1RZUEUgfSBmcm9tICcuL3Rva2VuL3Rva2VuJztcblxuaW1wb3J0IHsgRGF0YVR5cGUsIFBhcmFtZXRlciB9IGZyb20gJy4vZGF0YS10eXBlJztcbmltcG9ydCB7IENvbGxhdGlvbiB9IGZyb20gJy4vY29sbGF0aW9uJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBGTEFHUyA9IHtcbiAgbnVsbGFibGU6IDEgPDwgMCxcbiAgY2FzZVNlbjogMSA8PCAxLFxuICB1cGRhdGVhYmxlUmVhZFdyaXRlOiAxIDw8IDIsXG4gIHVwZGF0ZWFibGVVbmtub3duOiAxIDw8IDMsXG4gIGlkZW50aXR5OiAxIDw8IDQsXG4gIGNvbXB1dGVkOiAxIDw8IDUsIC8vIGludHJvZHVjZWQgaW4gVERTIDcuMlxuICBmaXhlZExlbkNMUlR5cGU6IDEgPDwgOCwgLy8gaW50cm9kdWNlZCBpbiBURFMgNy4yXG4gIHNwYXJzZUNvbHVtblNldDogMSA8PCAxMCwgLy8gaW50cm9kdWNlZCBpbiBURFMgNy4zLkJcbiAgaGlkZGVuOiAxIDw8IDEzLCAvLyBpbnRyb2R1Y2VkIGluIFREUyA3LjJcbiAga2V5OiAxIDw8IDE0LCAvLyBpbnRyb2R1Y2VkIGluIFREUyA3LjJcbiAgbnVsbGFibGVVbmtub3duOiAxIDw8IDE1IC8vIGludHJvZHVjZWQgaW4gVERTIDcuMlxufTtcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBET05FX1NUQVRVUyA9IHtcbiAgRklOQUw6IDB4MDAsXG4gIE1PUkU6IDB4MSxcbiAgRVJST1I6IDB4MixcbiAgSU5YQUNUOiAweDQsXG4gIENPVU5UOiAweDEwLFxuICBBVFROOiAweDIwLFxuICBTUlZFUlJPUjogMHgxMDBcbn07XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuaW50ZXJmYWNlIEludGVybmFsT3B0aW9ucyB7XG4gIGNoZWNrQ29uc3RyYWludHM6IGJvb2xlYW47XG4gIGZpcmVUcmlnZ2VyczogYm9vbGVhbjtcbiAga2VlcE51bGxzOiBib29sZWFuO1xuICBsb2NrVGFibGU6IGJvb2xlYW47XG4gIG9yZGVyOiB7IFtjb2x1bW5OYW1lOiBzdHJpbmddOiAnQVNDJyB8ICdERVNDJyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMge1xuICAvKipcbiAgICogSG9ub3JzIGNvbnN0cmFpbnRzIGR1cmluZyBidWxrIGxvYWQsIHVzaW5nIFQtU1FMXG4gICAqIFtDSEVDS19DT05TVFJBSU5UU10oaHR0cHM6Ly90ZWNobmV0Lm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczE4NjI0Nyh2PXNxbC4xMDUpLmFzcHgpLlxuICAgKiAoZGVmYXVsdDogYGZhbHNlYClcbiAgICovXG4gIGNoZWNrQ29uc3RyYWludHM/OiBJbnRlcm5hbE9wdGlvbnNbJ2NoZWNrQ29uc3RyYWludHMnXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSG9ub3JzIGluc2VydCB0cmlnZ2VycyBkdXJpbmcgYnVsayBsb2FkLCB1c2luZyB0aGUgVC1TUUwgW0ZJUkVfVFJJR0dFUlNdKGh0dHBzOi8vdGVjaG5ldC5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXMxODc2NDAodj1zcWwuMTA1KS5hc3B4KS4gKGRlZmF1bHQ6IGBmYWxzZWApXG4gICAqL1xuICBmaXJlVHJpZ2dlcnM/OiBJbnRlcm5hbE9wdGlvbnNbJ2ZpcmVUcmlnZ2VycyddIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBIb25vcnMgbnVsbCB2YWx1ZSBwYXNzZWQsIGlnbm9yZXMgdGhlIGRlZmF1bHQgdmFsdWVzIHNldCBvbiB0YWJsZSwgdXNpbmcgVC1TUUwgW0tFRVBfTlVMTFNdKGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXMxODc4ODcodj1zcWwuMTIwKS5hc3B4KS4gKGRlZmF1bHQ6IGBmYWxzZWApXG4gICAqL1xuICBrZWVwTnVsbHM/OiBJbnRlcm5hbE9wdGlvbnNbJ2tlZXBOdWxscyddIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBQbGFjZXMgYSBidWxrIHVwZGF0ZShCVSkgbG9jayBvbiB0YWJsZSB3aGlsZSBwZXJmb3JtaW5nIGJ1bGsgbG9hZCwgdXNpbmcgVC1TUUwgW1RBQkxPQ0tdKGh0dHBzOi8vdGVjaG5ldC5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXMxODA4NzYodj1zcWwuMTA1KS5hc3B4KS4gKGRlZmF1bHQ6IGBmYWxzZWApXG4gICAqL1xuICBsb2NrVGFibGU/OiBJbnRlcm5hbE9wdGlvbnNbJ2xvY2tUYWJsZSddIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG9yZGVyaW5nIG9mIHRoZSBkYXRhIHRvIHBvc3NpYmx5IGluY3JlYXNlIGJ1bGsgaW5zZXJ0IHBlcmZvcm1hbmNlLCB1c2luZyBULVNRTCBbT1JERVJdKGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL3ByZXZpb3VzLXZlcnNpb25zL3NxbC9zcWwtc2VydmVyLTIwMDgtcjIvbXMxNzc0Njgodj1zcWwuMTA1KSkuIChkZWZhdWx0OiBge31gKVxuICAgKi9cbiAgb3JkZXI/OiBJbnRlcm5hbE9wdGlvbnNbJ29yZGVyJ10gfCB1bmRlZmluZWQ7XG59XG5cblxuZXhwb3J0IHR5cGUgQ2FsbGJhY2sgPVxuICAvKipcbiAgICogQSBmdW5jdGlvbiB3aGljaCB3aWxsIGJlIGNhbGxlZCBhZnRlciB0aGUgW1tCdWxrTG9hZF1dIGZpbmlzaGVzIGV4ZWN1dGluZy5cbiAgICpcbiAgICogQHBhcmFtIHJvd0NvdW50IHRoZSBudW1iZXIgb2Ygcm93cyBpbnNlcnRlZFxuICAgKi9cbiAgKGVycjogRXJyb3IgfCB1bmRlZmluZWQgfCBudWxsLCByb3dDb3VudD86IG51bWJlcikgPT4gdm9pZDtcblxuaW50ZXJmYWNlIENvbHVtbiBleHRlbmRzIFBhcmFtZXRlciB7XG4gIG9iak5hbWU6IHN0cmluZztcbiAgY29sbGF0aW9uOiBDb2xsYXRpb24gfCB1bmRlZmluZWQ7XG59XG5cbmludGVyZmFjZSBDb2x1bW5PcHRpb25zIHtcbiAgb3V0cHV0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRm9yIFZhckNoYXIsIE5WYXJDaGFyLCBWYXJCaW5hcnkuIFVzZSBsZW5ndGggYXMgYEluZmluaXR5YCBmb3IgVmFyQ2hhcihtYXgpLCBOVmFyQ2hhcihtYXgpIGFuZCBWYXJCaW5hcnkobWF4KS5cbiAgICovXG4gIGxlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogRm9yIE51bWVyaWMsIERlY2ltYWwuXG4gICAqL1xuICBwcmVjaXNpb24/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEZvciBOdW1lcmljLCBEZWNpbWFsLCBUaW1lLCBEYXRlVGltZTIsIERhdGVUaW1lT2Zmc2V0LlxuICAgKi9cbiAgc2NhbGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIElmIHRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gaXMgZGlmZmVyZW50IGZyb20gdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGZvdW5kIG9uIGByb3dPYmpgIGFyZ3VtZW50cyBwYXNzZWQgdG8gW1thZGRSb3ddXSwgdGhlbiB5b3UgY2FuIHVzZSB0aGlzIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBwcm9wZXJ0eSBuYW1lLlxuICAgKi9cbiAgb2JqTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbHVtbiBhY2NlcHRzIE5VTEwgdmFsdWVzLlxuICAgKi9cbiAgbnVsbGFibGU/OiBib29sZWFuO1xufVxuXG5jb25zdCByb3dUb2tlbkJ1ZmZlciA9IEJ1ZmZlci5mcm9tKFsgVE9LRU5fVFlQRS5ST1cgXSk7XG5jb25zdCB0ZXh0UG9pbnRlckFuZFRpbWVzdGFtcEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKFtcbiAgLy8gVGV4dFBvaW50ZXIgbGVuZ3RoXG4gIDB4MTAsXG5cbiAgLy8gVGV4dFBvaW50ZXJcbiAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCxcblxuICAvLyBUaW1lc3RhbXBcbiAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMFxuXSk7XG5jb25zdCB0ZXh0UG9pbnRlck51bGxCdWZmZXIgPSBCdWZmZXIuZnJvbShbMHgwMF0pO1xuXG4vLyBBIHRyYW5zZm9ybSB0aGF0IGNvbnZlcnRzIHJvd3MgdG8gcGFja2V0cy5cbmNsYXNzIFJvd1RyYW5zZm9ybSBleHRlbmRzIFRyYW5zZm9ybSB7XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29sdW1uTWV0YWRhdGFXcml0dGVuOiBib29sZWFuO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGJ1bGtMb2FkOiBCdWxrTG9hZDtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBtYWluT3B0aW9uczogQnVsa0xvYWRbJ29wdGlvbnMnXTtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb2x1bW5zOiBCdWxrTG9hZFsnY29sdW1ucyddO1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29uc3RydWN0b3IoYnVsa0xvYWQ6IEJ1bGtMb2FkKSB7XG4gICAgc3VwZXIoeyB3cml0YWJsZU9iamVjdE1vZGU6IHRydWUgfSk7XG5cbiAgICB0aGlzLmJ1bGtMb2FkID0gYnVsa0xvYWQ7XG4gICAgdGhpcy5tYWluT3B0aW9ucyA9IGJ1bGtMb2FkLm9wdGlvbnM7XG4gICAgdGhpcy5jb2x1bW5zID0gYnVsa0xvYWQuY29sdW1ucztcblxuICAgIHRoaXMuY29sdW1uTWV0YWRhdGFXcml0dGVuID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIF90cmFuc2Zvcm0ocm93OiBBcnJheTx1bmtub3duPiB8IHsgW2NvbE5hbWU6IHN0cmluZ106IHVua25vd24gfSwgX2VuY29kaW5nOiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyb3I/OiBFcnJvcikgPT4gdm9pZCkge1xuICAgIGlmICghdGhpcy5jb2x1bW5NZXRhZGF0YVdyaXR0ZW4pIHtcbiAgICAgIHRoaXMucHVzaCh0aGlzLmJ1bGtMb2FkLmdldENvbE1ldGFEYXRhKCkpO1xuICAgICAgdGhpcy5jb2x1bW5NZXRhZGF0YVdyaXR0ZW4gPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMucHVzaChyb3dUb2tlbkJ1ZmZlcik7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29sdW1ucy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgYyA9IHRoaXMuY29sdW1uc1tpXTtcbiAgICAgIGxldCB2YWx1ZSA9IEFycmF5LmlzQXJyYXkocm93KSA/IHJvd1tpXSA6IHJvd1tjLm9iak5hbWVdO1xuXG4gICAgICBpZiAoIXRoaXMuYnVsa0xvYWQuZmlyc3RSb3dXcml0dGVuKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFsdWUgPSBjLnR5cGUudmFsaWRhdGUodmFsdWUsIGMuY29sbGF0aW9uKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcGFyYW1ldGVyID0ge1xuICAgICAgICBsZW5ndGg6IGMubGVuZ3RoLFxuICAgICAgICBzY2FsZTogYy5zY2FsZSxcbiAgICAgICAgcHJlY2lzaW9uOiBjLnByZWNpc2lvbixcbiAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICB9O1xuXG4gICAgICBpZiAoYy50eXBlLm5hbWUgPT09ICdUZXh0JyB8fCBjLnR5cGUubmFtZSA9PT0gJ0ltYWdlJyB8fCBjLnR5cGUubmFtZSA9PT0gJ05UZXh0Jykge1xuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMucHVzaCh0ZXh0UG9pbnRlck51bGxCdWZmZXIpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wdXNoKHRleHRQb2ludGVyQW5kVGltZXN0YW1wQnVmZmVyKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5wdXNoKGMudHlwZS5nZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIHRoaXMubWFpbk9wdGlvbnMpKTtcbiAgICAgIGZvciAoY29uc3QgY2h1bmsgb2YgYy50eXBlLmdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXIsIHRoaXMubWFpbk9wdGlvbnMpKSB7XG4gICAgICAgIHRoaXMucHVzaChjaHVuayk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvY2Vzcy5uZXh0VGljayhjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIF9mbHVzaChjYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMucHVzaCh0aGlzLmJ1bGtMb2FkLmNyZWF0ZURvbmVUb2tlbigpKTtcblxuICAgIHByb2Nlc3MubmV4dFRpY2soY2FsbGJhY2spO1xuICB9XG59XG5cbi8qKlxuICogQSBCdWxrTG9hZCBpbnN0YW5jZSBpcyB1c2VkIHRvIHBlcmZvcm0gYSBidWxrIGluc2VydC5cbiAqXG4gKiBVc2UgW1tDb25uZWN0aW9uLm5ld0J1bGtMb2FkXV0gdG8gY3JlYXRlIGEgbmV3IGluc3RhbmNlLCBhbmQgW1tDb25uZWN0aW9uLmV4ZWNCdWxrTG9hZF1dIHRvIGV4ZWN1dGUgaXQuXG4gKlxuICogRXhhbXBsZSBvZiBCdWxrTG9hZCBVc2FnZXM6XG4gKlxuICogYGBganNcbiAqIC8vIG9wdGlvbmFsIEJ1bGtMb2FkIG9wdGlvbnNcbiAqIGNvbnN0IG9wdGlvbnMgPSB7IGtlZXBOdWxsczogdHJ1ZSB9O1xuICpcbiAqIC8vIGluc3RhbnRpYXRlIC0gcHJvdmlkZSB0aGUgdGFibGUgd2hlcmUgeW91J2xsIGJlIGluc2VydGluZyB0bywgb3B0aW9ucyBhbmQgYSBjYWxsYmFja1xuICogY29uc3QgYnVsa0xvYWQgPSBjb25uZWN0aW9uLm5ld0J1bGtMb2FkKCdNeVRhYmxlJywgb3B0aW9ucywgKGVycm9yLCByb3dDb3VudCkgPT4ge1xuICogICBjb25zb2xlLmxvZygnaW5zZXJ0ZWQgJWQgcm93cycsIHJvd0NvdW50KTtcbiAqIH0pO1xuICpcbiAqIC8vIHNldHVwIHlvdXIgY29sdW1ucyAtIGFsd2F5cyBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBjb2x1bW4gaXMgbnVsbGFibGVcbiAqIGJ1bGtMb2FkLmFkZENvbHVtbignbXlJbnQnLCBUWVBFUy5JbnQsIHsgbnVsbGFibGU6IGZhbHNlIH0pO1xuICogYnVsa0xvYWQuYWRkQ29sdW1uKCdteVN0cmluZycsIFRZUEVTLk5WYXJDaGFyLCB7IGxlbmd0aDogNTAsIG51bGxhYmxlOiB0cnVlIH0pO1xuICpcbiAqIC8vIGV4ZWN1dGVcbiAqIGNvbm5lY3Rpb24uZXhlY0J1bGtMb2FkKGJ1bGtMb2FkLCBbXG4gKiAgIHsgbXlJbnQ6IDcsIG15U3RyaW5nOiAnaGVsbG8nIH0sXG4gKiAgIHsgbXlJbnQ6IDIzLCBteVN0cmluZzogJ3dvcmxkJyB9XG4gKiBdKTtcbiAqIGBgYFxuICovXG5jbGFzcyBCdWxrTG9hZCBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgZXJyb3I6IEVycm9yIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNhbmNlbGVkOiBib29sZWFuO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGV4ZWN1dGlvblN0YXJ0ZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgc3RyZWFtaW5nTW9kZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICB0YWJsZTogc3RyaW5nO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHRpbWVvdXQ6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIG9wdGlvbnM6IEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnM7XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY2FsbGJhY2s6IENhbGxiYWNrO1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29sdW1uczogQXJyYXk8Q29sdW1uPjtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb2x1bW5zQnlOYW1lOiB7IFtuYW1lOiBzdHJpbmddOiBDb2x1bW4gfTtcblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGZpcnN0Um93V3JpdHRlbjogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICByb3dUb1BhY2tldFRyYW5zZm9ybTogUm93VHJhbnNmb3JtO1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgYnVsa09wdGlvbnM6IEludGVybmFsT3B0aW9ucztcblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNvbm5lY3Rpb246IENvbm5lY3Rpb24gfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcm93czogQXJyYXk8YW55PiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICByc3Q6IEFycmF5PGFueT4gfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcm93Q291bnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBjb2xsYXRpb246IENvbGxhdGlvbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKHRhYmxlOiBzdHJpbmcsIGNvbGxhdGlvbjogQ29sbGF0aW9uIHwgdW5kZWZpbmVkLCBjb25uZWN0aW9uT3B0aW9uczogSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucywge1xuICAgIGNoZWNrQ29uc3RyYWludHMgPSBmYWxzZSxcbiAgICBmaXJlVHJpZ2dlcnMgPSBmYWxzZSxcbiAgICBrZWVwTnVsbHMgPSBmYWxzZSxcbiAgICBsb2NrVGFibGUgPSBmYWxzZSxcbiAgICBvcmRlciA9IHt9LFxuICB9OiBPcHRpb25zLCBjYWxsYmFjazogQ2FsbGJhY2spIHtcbiAgICBpZiAodHlwZW9mIGNoZWNrQ29uc3RyYWludHMgIT09ICdib29sZWFuJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwib3B0aW9ucy5jaGVja0NvbnN0cmFpbnRzXCIgcHJvcGVydHkgbXVzdCBiZSBvZiB0eXBlIGJvb2xlYW4uJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBmaXJlVHJpZ2dlcnMgIT09ICdib29sZWFuJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwib3B0aW9ucy5maXJlVHJpZ2dlcnNcIiBwcm9wZXJ0eSBtdXN0IGJlIG9mIHR5cGUgYm9vbGVhbi4nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGtlZXBOdWxscyAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJvcHRpb25zLmtlZXBOdWxsc1wiIHByb3BlcnR5IG11c3QgYmUgb2YgdHlwZSBib29sZWFuLicpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbG9ja1RhYmxlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcIm9wdGlvbnMubG9ja1RhYmxlXCIgcHJvcGVydHkgbXVzdCBiZSBvZiB0eXBlIGJvb2xlYW4uJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvcmRlciAhPT0gJ29iamVjdCcgfHwgb3JkZXIgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcIm9wdGlvbnMub3JkZXJcIiBwcm9wZXJ0eSBtdXN0IGJlIG9mIHR5cGUgb2JqZWN0LicpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2NvbHVtbiwgZGlyZWN0aW9uXSBvZiBPYmplY3QuZW50cmllcyhvcmRlcikpIHtcbiAgICAgIGlmIChkaXJlY3Rpb24gIT09ICdBU0MnICYmIGRpcmVjdGlvbiAhPT0gJ0RFU0MnKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSB2YWx1ZSBvZiB0aGUgXCInICsgY29sdW1uICsgJ1wiIGtleSBpbiB0aGUgXCJvcHRpb25zLm9yZGVyXCIgb2JqZWN0IG11c3QgYmUgZWl0aGVyIFwiQVNDXCIgb3IgXCJERVNDXCIuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuZXJyb3IgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5jYW5jZWxlZCA9IGZhbHNlO1xuICAgIHRoaXMuZXhlY3V0aW9uU3RhcnRlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5jb2xsYXRpb24gPSBjb2xsYXRpb247XG5cbiAgICB0aGlzLnRhYmxlID0gdGFibGU7XG4gICAgdGhpcy5vcHRpb25zID0gY29ubmVjdGlvbk9wdGlvbnM7XG4gICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIHRoaXMuY29sdW1ucyA9IFtdO1xuICAgIHRoaXMuY29sdW1uc0J5TmFtZSA9IHt9O1xuICAgIHRoaXMuZmlyc3RSb3dXcml0dGVuID0gZmFsc2U7XG4gICAgdGhpcy5zdHJlYW1pbmdNb2RlID0gZmFsc2U7XG5cbiAgICB0aGlzLnJvd1RvUGFja2V0VHJhbnNmb3JtID0gbmV3IFJvd1RyYW5zZm9ybSh0aGlzKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuXG4gICAgdGhpcy5idWxrT3B0aW9ucyA9IHsgY2hlY2tDb25zdHJhaW50cywgZmlyZVRyaWdnZXJzLCBrZWVwTnVsbHMsIGxvY2tUYWJsZSwgb3JkZXIgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY29sdW1uIHRvIHRoZSBidWxrIGxvYWQuXG4gICAqXG4gICAqIFRoZSBjb2x1bW4gZGVmaW5pdGlvbnMgc2hvdWxkIG1hdGNoIHRoZSB0YWJsZSB5b3UgYXJlIHRyeWluZyB0byBpbnNlcnQgaW50by5cbiAgICogQXR0ZW1wdGluZyB0byBjYWxsIGFkZENvbHVtbiBhZnRlciB0aGUgZmlyc3Qgcm93IGhhcyBiZWVuIGFkZGVkIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uLlxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBidWxrTG9hZC5hZGRDb2x1bW4oJ015SW50Q29sdW1uJywgVFlQRVMuSW50LCB7IG51bGxhYmxlOiBmYWxzZSB9KTtcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4uXG4gICAqIEBwYXJhbSB0eXBlIE9uZSBvZiB0aGUgc3VwcG9ydGVkIGBkYXRhIHR5cGVzYC5cbiAgICogQHBhcmFtIF9fbmFtZWRQYXJhbWV0ZXJzIEFkZGl0aW9uYWwgY29sdW1uIHR5cGUgaW5mb3JtYXRpb24uIEF0IGEgbWluaW11bSwgYG51bGxhYmxlYCBtdXN0IGJlIHNldCB0byB0cnVlIG9yIGZhbHNlLlxuICAgKiBAcGFyYW0gbGVuZ3RoIEZvciBWYXJDaGFyLCBOVmFyQ2hhciwgVmFyQmluYXJ5LiBVc2UgbGVuZ3RoIGFzIGBJbmZpbml0eWAgZm9yIFZhckNoYXIobWF4KSwgTlZhckNoYXIobWF4KSBhbmQgVmFyQmluYXJ5KG1heCkuXG4gICAqIEBwYXJhbSBudWxsYWJsZSBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29sdW1uIGFjY2VwdHMgTlVMTCB2YWx1ZXMuXG4gICAqIEBwYXJhbSBvYmpOYW1lIElmIHRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gaXMgZGlmZmVyZW50IGZyb20gdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGZvdW5kIG9uIGByb3dPYmpgIGFyZ3VtZW50cyBwYXNzZWQgdG8gW1thZGRSb3ddXSBvciBbW0Nvbm5lY3Rpb24uZXhlY0J1bGtMb2FkXV0sIHRoZW4geW91IGNhbiB1c2UgdGhpcyBvcHRpb24gdG8gc3BlY2lmeSB0aGUgcHJvcGVydHkgbmFtZS5cbiAgICogQHBhcmFtIHByZWNpc2lvbiBGb3IgTnVtZXJpYywgRGVjaW1hbC5cbiAgICogQHBhcmFtIHNjYWxlIEZvciBOdW1lcmljLCBEZWNpbWFsLCBUaW1lLCBEYXRlVGltZTIsIERhdGVUaW1lT2Zmc2V0LlxuICAqL1xuICBhZGRDb2x1bW4obmFtZTogc3RyaW5nLCB0eXBlOiBEYXRhVHlwZSwgeyBvdXRwdXQgPSBmYWxzZSwgbGVuZ3RoLCBwcmVjaXNpb24sIHNjYWxlLCBvYmpOYW1lID0gbmFtZSwgbnVsbGFibGUgPSB0cnVlIH06IENvbHVtbk9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy5maXJzdFJvd1dyaXR0ZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29sdW1ucyBjYW5ub3QgYmUgYWRkZWQgdG8gYnVsayBpbnNlcnQgYWZ0ZXIgdGhlIGZpcnN0IHJvdyBoYXMgYmVlbiB3cml0dGVuLicpO1xuICAgIH1cbiAgICBpZiAodGhpcy5leGVjdXRpb25TdGFydGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbHVtbnMgY2Fubm90IGJlIGFkZGVkIHRvIGJ1bGsgaW5zZXJ0IGFmdGVyIGV4ZWN1dGlvbiBoYXMgc3RhcnRlZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb2x1bW46IENvbHVtbiA9IHtcbiAgICAgIHR5cGU6IHR5cGUsXG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgdmFsdWU6IG51bGwsXG4gICAgICBvdXRwdXQ6IG91dHB1dCxcbiAgICAgIGxlbmd0aDogbGVuZ3RoLFxuICAgICAgcHJlY2lzaW9uOiBwcmVjaXNpb24sXG4gICAgICBzY2FsZTogc2NhbGUsXG4gICAgICBvYmpOYW1lOiBvYmpOYW1lLFxuICAgICAgbnVsbGFibGU6IG51bGxhYmxlLFxuICAgICAgY29sbGF0aW9uOiB0aGlzLmNvbGxhdGlvblxuICAgIH07XG5cbiAgICBpZiAoKHR5cGUuaWQgJiAweDMwKSA9PT0gMHgyMCkge1xuICAgICAgaWYgKGNvbHVtbi5sZW5ndGggPT0gbnVsbCAmJiB0eXBlLnJlc29sdmVMZW5ndGgpIHtcbiAgICAgICAgY29sdW1uLmxlbmd0aCA9IHR5cGUucmVzb2x2ZUxlbmd0aChjb2x1bW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlLnJlc29sdmVQcmVjaXNpb24gJiYgY29sdW1uLnByZWNpc2lvbiA9PSBudWxsKSB7XG4gICAgICBjb2x1bW4ucHJlY2lzaW9uID0gdHlwZS5yZXNvbHZlUHJlY2lzaW9uKGNvbHVtbik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUucmVzb2x2ZVNjYWxlICYmIGNvbHVtbi5zY2FsZSA9PSBudWxsKSB7XG4gICAgICBjb2x1bW4uc2NhbGUgPSB0eXBlLnJlc29sdmVTY2FsZShjb2x1bW4pO1xuICAgIH1cblxuICAgIHRoaXMuY29sdW1ucy5wdXNoKGNvbHVtbik7XG5cbiAgICB0aGlzLmNvbHVtbnNCeU5hbWVbbmFtZV0gPSBjb2x1bW47XG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGdldE9wdGlvbnNTcWwoKSB7XG4gICAgY29uc3QgYWRkT3B0aW9ucyA9IFtdO1xuXG4gICAgaWYgKHRoaXMuYnVsa09wdGlvbnMuY2hlY2tDb25zdHJhaW50cykge1xuICAgICAgYWRkT3B0aW9ucy5wdXNoKCdDSEVDS19DT05TVFJBSU5UUycpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJ1bGtPcHRpb25zLmZpcmVUcmlnZ2Vycykge1xuICAgICAgYWRkT3B0aW9ucy5wdXNoKCdGSVJFX1RSSUdHRVJTJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYnVsa09wdGlvbnMua2VlcE51bGxzKSB7XG4gICAgICBhZGRPcHRpb25zLnB1c2goJ0tFRVBfTlVMTFMnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5idWxrT3B0aW9ucy5sb2NrVGFibGUpIHtcbiAgICAgIGFkZE9wdGlvbnMucHVzaCgnVEFCTE9DSycpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJ1bGtPcHRpb25zLm9yZGVyKSB7XG4gICAgICBjb25zdCBvcmRlckNvbHVtbnMgPSBbXTtcblxuICAgICAgZm9yIChjb25zdCBbY29sdW1uLCBkaXJlY3Rpb25dIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuYnVsa09wdGlvbnMub3JkZXIpKSB7XG4gICAgICAgIG9yZGVyQ29sdW1ucy5wdXNoKGAke2NvbHVtbn0gJHtkaXJlY3Rpb259YCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcmRlckNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICAgIGFkZE9wdGlvbnMucHVzaChgT1JERVIgKCR7b3JkZXJDb2x1bW5zLmpvaW4oJywgJyl9KWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhZGRPcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBgIFdJVEggKCR7YWRkT3B0aW9ucy5qb2luKCcsJyl9KWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGdldEJ1bGtJbnNlcnRTcWwoKSB7XG4gICAgbGV0IHNxbCA9ICdpbnNlcnQgYnVsayAnICsgdGhpcy50YWJsZSArICcoJztcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdGhpcy5jb2x1bW5zLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjb25zdCBjID0gdGhpcy5jb2x1bW5zW2ldO1xuICAgICAgaWYgKGkgIT09IDApIHtcbiAgICAgICAgc3FsICs9ICcsICc7XG4gICAgICB9XG4gICAgICBzcWwgKz0gJ1snICsgYy5uYW1lICsgJ10gJyArIChjLnR5cGUuZGVjbGFyYXRpb24oYykpO1xuICAgIH1cbiAgICBzcWwgKz0gJyknO1xuXG4gICAgc3FsICs9IHRoaXMuZ2V0T3B0aW9uc1NxbCgpO1xuICAgIHJldHVybiBzcWw7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBpcyBzaW1wbHkgYSBoZWxwZXIgdXRpbGl0eSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGEgYENSRUFURSBUQUJMRSBTUUxgIHN0YXRlbWVudCBiYXNlZCBvbiB0aGUgY29sdW1ucyBhZGRlZCB0byB0aGUgYnVsa0xvYWQgb2JqZWN0LlxuICAgKiBUaGlzIG1heSBiZSBwYXJ0aWN1bGFybHkgaGFuZHkgd2hlbiB5b3Ugd2FudCB0byBpbnNlcnQgaW50byBhIHRlbXBvcmFyeSB0YWJsZSAoYSB0YWJsZSB3aGljaCBzdGFydHMgd2l0aCBgI2ApLlxuICAgKlxuICAgKiBgYGBqc1xuICAgKiB2YXIgc3FsID0gYnVsa0xvYWQuZ2V0VGFibGVDcmVhdGlvblNxbCgpO1xuICAgKiBgYGBcbiAgICpcbiAgICogQSBzaWRlIG5vdGUgb24gYnVsayBpbnNlcnRpbmcgaW50byB0ZW1wb3JhcnkgdGFibGVzOiBpZiB5b3Ugd2FudCB0byBhY2Nlc3MgYSBsb2NhbCB0ZW1wb3JhcnkgdGFibGUgYWZ0ZXIgZXhlY3V0aW5nIHRoZSBidWxrIGxvYWQsXG4gICAqIHlvdSdsbCBuZWVkIHRvIHVzZSB0aGUgc2FtZSBjb25uZWN0aW9uIGFuZCBleGVjdXRlIHlvdXIgcmVxdWVzdHMgdXNpbmcgW1tDb25uZWN0aW9uLmV4ZWNTcWxCYXRjaF1dIGluc3RlYWQgb2YgW1tDb25uZWN0aW9uLmV4ZWNTcWxdXVxuICAgKi9cbiAgZ2V0VGFibGVDcmVhdGlvblNxbCgpIHtcbiAgICBsZXQgc3FsID0gJ0NSRUFURSBUQUJMRSAnICsgdGhpcy50YWJsZSArICcoXFxuJztcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdGhpcy5jb2x1bW5zLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjb25zdCBjID0gdGhpcy5jb2x1bW5zW2ldO1xuICAgICAgaWYgKGkgIT09IDApIHtcbiAgICAgICAgc3FsICs9ICcsXFxuJztcbiAgICAgIH1cbiAgICAgIHNxbCArPSAnWycgKyBjLm5hbWUgKyAnXSAnICsgKGMudHlwZS5kZWNsYXJhdGlvbihjKSk7XG4gICAgICBpZiAoYy5udWxsYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNxbCArPSAnICcgKyAoYy5udWxsYWJsZSA/ICdOVUxMJyA6ICdOT1QgTlVMTCcpO1xuICAgICAgfVxuICAgIH1cbiAgICBzcWwgKz0gJ1xcbiknO1xuICAgIHJldHVybiBzcWw7XG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGdldENvbE1ldGFEYXRhKCkge1xuICAgIGNvbnN0IHRCdWYgPSBuZXcgV3JpdGFibGVUcmFja2luZ0J1ZmZlcigxMDAsIG51bGwsIHRydWUpO1xuICAgIC8vIFRva2VuVHlwZVxuICAgIHRCdWYud3JpdGVVSW50OChUT0tFTl9UWVBFLkNPTE1FVEFEQVRBKTtcbiAgICAvLyBDb3VudFxuICAgIHRCdWYud3JpdGVVSW50MTZMRSh0aGlzLmNvbHVtbnMubGVuZ3RoKTtcblxuICAgIGZvciAobGV0IGogPSAwLCBsZW4gPSB0aGlzLmNvbHVtbnMubGVuZ3RoOyBqIDwgbGVuOyBqKyspIHtcbiAgICAgIGNvbnN0IGMgPSB0aGlzLmNvbHVtbnNbal07XG4gICAgICAvLyBVc2VyVHlwZVxuICAgICAgaWYgKHRoaXMub3B0aW9ucy50ZHNWZXJzaW9uIDwgJzdfMicpIHtcbiAgICAgICAgdEJ1Zi53cml0ZVVJbnQxNkxFKDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdEJ1Zi53cml0ZVVJbnQzMkxFKDApO1xuICAgICAgfVxuXG4gICAgICAvLyBGbGFnc1xuICAgICAgbGV0IGZsYWdzID0gRkxBR1MudXBkYXRlYWJsZVJlYWRXcml0ZTtcbiAgICAgIGlmIChjLm51bGxhYmxlKSB7XG4gICAgICAgIGZsYWdzIHw9IEZMQUdTLm51bGxhYmxlO1xuICAgICAgfSBlbHNlIGlmIChjLm51bGxhYmxlID09PSB1bmRlZmluZWQgJiYgdGhpcy5vcHRpb25zLnRkc1ZlcnNpb24gPj0gJzdfMicpIHtcbiAgICAgICAgZmxhZ3MgfD0gRkxBR1MubnVsbGFibGVVbmtub3duO1xuICAgICAgfVxuICAgICAgdEJ1Zi53cml0ZVVJbnQxNkxFKGZsYWdzKTtcblxuICAgICAgLy8gVFlQRV9JTkZPXG4gICAgICB0QnVmLndyaXRlQnVmZmVyKGMudHlwZS5nZW5lcmF0ZVR5cGVJbmZvKGMsIHRoaXMub3B0aW9ucykpO1xuXG4gICAgICAvLyBUYWJsZU5hbWVcbiAgICAgIGlmIChjLnR5cGUuaGFzVGFibGVOYW1lKSB7XG4gICAgICAgIHRCdWYud3JpdGVVc1ZhcmNoYXIodGhpcy50YWJsZSwgJ3VjczInKTtcbiAgICAgIH1cblxuICAgICAgLy8gQ29sTmFtZVxuICAgICAgdEJ1Zi53cml0ZUJWYXJjaGFyKGMubmFtZSwgJ3VjczInKTtcbiAgICB9XG4gICAgcmV0dXJuIHRCdWYuZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGEgdGltZW91dCBmb3IgdGhpcyBidWxrIGxvYWQuXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGJ1bGtMb2FkLnNldFRpbWVvdXQodGltZW91dCk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gdGltZW91dCBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIGJ1bGsgbG9hZCBpcyBjb25zaWRlcmVkIGZhaWxlZCwgb3IgMCBmb3Igbm8gdGltZW91dC5cbiAgICogICBXaGVuIG5vIHRpbWVvdXQgaXMgc2V0IGZvciB0aGUgYnVsayBsb2FkLCB0aGUgW1tDb25uZWN0aW9uT3B0aW9ucy5yZXF1ZXN0VGltZW91dF1dIG9mIHRoZSBDb25uZWN0aW9uIGlzIHVzZWQuXG4gICAqL1xuICBzZXRUaW1lb3V0KHRpbWVvdXQ/OiBudW1iZXIpIHtcbiAgICB0aGlzLnRpbWVvdXQgPSB0aW1lb3V0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjcmVhdGVEb25lVG9rZW4oKSB7XG4gICAgLy8gSXQgbWlnaHQgYmUgbmljZSB0byBtYWtlIERvbmVUb2tlbiBhIGNsYXNzIGlmIGFueXRoaW5nIG5lZWRzIHRvIGNyZWF0ZSB0aGVtLCBidXQgZm9yIG5vdywganVzdCBkbyBpdCBoZXJlXG4gICAgY29uc3QgdEJ1ZiA9IG5ldyBXcml0YWJsZVRyYWNraW5nQnVmZmVyKHRoaXMub3B0aW9ucy50ZHNWZXJzaW9uIDwgJzdfMicgPyA5IDogMTMpO1xuICAgIHRCdWYud3JpdGVVSW50OChUT0tFTl9UWVBFLkRPTkUpO1xuICAgIGNvbnN0IHN0YXR1cyA9IERPTkVfU1RBVFVTLkZJTkFMO1xuICAgIHRCdWYud3JpdGVVSW50MTZMRShzdGF0dXMpO1xuICAgIHRCdWYud3JpdGVVSW50MTZMRSgwKTsgLy8gQ3VyQ21kIChURFMgaWdub3JlcyB0aGlzKVxuICAgIHRCdWYud3JpdGVVSW50MzJMRSgwKTsgLy8gcm93IGNvdW50IC0gZG9lc24ndCByZWFsbHkgbWF0dGVyXG4gICAgaWYgKHRoaXMub3B0aW9ucy50ZHNWZXJzaW9uID49ICc3XzInKSB7XG4gICAgICB0QnVmLndyaXRlVUludDMyTEUoMCk7IC8vIHJvdyBjb3VudCBpcyA2NCBiaXRzIGluID49IFREUyA3LjJcbiAgICB9XG4gICAgcmV0dXJuIHRCdWYuZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY2FuY2VsKCkge1xuICAgIGlmICh0aGlzLmNhbmNlbGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jYW5jZWxlZCA9IHRydWU7XG4gICAgdGhpcy5lbWl0KCdjYW5jZWwnKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCdWxrTG9hZDtcbm1vZHVsZS5leHBvcnRzID0gQnVsa0xvYWQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFHQTs7QUFDQTs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBLE1BQU1BLEtBQUssR0FBRztFQUNaQyxRQUFRLEVBQUUsS0FBSyxDQURIO0VBRVpDLE9BQU8sRUFBRSxLQUFLLENBRkY7RUFHWkMsbUJBQW1CLEVBQUUsS0FBSyxDQUhkO0VBSVpDLGlC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
|
package/lib/collation.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.codepageBySortId = exports.codepageByLanguageId = exports.Flags = exports.Collation = void 0;
|
|
7
7
|
// http://technet.microsoft.com/en-us/library/aa176553(v=sql.80).aspx
|
|
8
8
|
const codepageByLanguageId = {
|
|
9
9
|
// Arabic_*
|
|
@@ -362,4 +362,4 @@ class Collation {
|
|
|
362
362
|
}
|
|
363
363
|
|
|
364
364
|
exports.Collation = Collation;
|
|
365
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsYXRpb24udHMiXSwibmFtZXMiOlsiY29kZXBhZ2VCeUxhbmd1YWdlSWQiLCJjb2RlcGFnZUJ5U29ydElkIiwiRmxhZ3MiLCJJR05PUkVfQ0FTRSIsIklHTk9SRV9BQ0NFTlQiLCJJR05PUkVfS0FOQSIsIklHTk9SRV9XSURUSCIsIkJJTkFSWSIsIkJJTkFSWTIiLCJVVEY4IiwiQ29sbGF0aW9uIiwiZnJvbUJ1ZmZlciIsImJ1ZmZlciIsIm9mZnNldCIsImxjaWQiLCJmbGFncyIsInZlcnNpb24iLCJzb3J0SWQiLCJjb25zdHJ1Y3RvciIsImNvZGVwYWdlIiwidW5kZWZpbmVkIiwibGFuZ3VhZ2VJZCIsInRvQnVmZmVyIiwiQnVmZmVyIiwiYWxsb2MiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBO0FBQ08sTUFBTUEsb0JBQWlELEdBQUc7QUFDL0Q7QUFDQSxHQUFDLE1BQUQsR0FBVSxRQUZxRDtBQUkvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUMsTUFBRCxHQUFVLE9BUnFEO0FBVS9EO0FBQ0EsR0FBQyxNQUFELEdBQVUsUUFYcUQ7QUFhL0Q7QUFDQTtBQUNBLEdBQUMsTUFBRCxHQUFVLFFBZnFEO0FBaUIvRDtBQUNBLEdBQUMsTUFBRCxHQUFVLFFBbEJxRDtBQW9CL0Q7QUFDQSxHQUFDLE1BQUQsR0FBVSxRQXJCcUQ7QUF1Qi9EO0FBQ0EsR0FBQyxNQUFELEdBQVUsUUF4QnFEO0FBMEIvRDtBQUNBLEdBQUMsTUFBRCxHQUFVLFFBM0JxRDtBQTZCL0Q7QUFDQSxHQUFDLE1BQUQsR0FBVSxRQTlCcUQ7QUFnQy9EO0FBQ0EsR0FBQyxNQUFELEdBQVUsUUFqQ3FEO0FBbUMvRDtBQUNBO0FBQ0EsR0FBQyxNQUFELEdBQVUsUUFyQ3FEO0FBdUMvRDtBQUNBLEdBQUMsTUFBRCxHQUFVLFFBeENxRDtBQTBDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFDLE1BQUQsR0FBVSxPQTlDcUQ7QUFnRC9EO0FBQ0E7QUFDQSxHQUFDLE1BQUQsR0FBVSxP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aUIsS0FBS0ssTUFBTCxHQUFjLElBQS9CO0FBRUEsV0FBTyxLQUFLTCxNQUFaO0FBQ0Q7O0FBMURvQiIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgRW5jb2RpbmcgPSAndXRmLTgnIHwgJ0NQNDM3JyB8ICdDUDg1MCcgfCAnQ1A4NzQnIHwgJ0NQOTMyJyB8ICdDUDkzNicgfCAnQ1A5NDknIHwgJ0NQOTUwJyB8ICdDUDEyNTAnIHwgJ0NQMTI1MScgfCAnQ1AxMjUyJyB8ICdDUDEyNTMnIHwgJ0NQMTI1NCcgfCAnQ1AxMjU1JyB8ICdDUDEyNTYnIHwgJ0NQMTI1NycgfCAnQ1AxMjU4JztcblxuLy8gaHR0cDovL3RlY2huZXQubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2FhMTc2NTUzKHY9c3FsLjgwKS5hc3B4XG5leHBvcnQgY29uc3QgY29kZXBhZ2VCeUxhbmd1YWdlSWQ6IHsgW2tleTogbnVtYmVyXTogRW5jb2RpbmcgfSA9IHtcbiAgLy8gQXJhYmljXypcbiAgWzB4MDQwMV06ICdDUDEyNTYnLFxuXG4gIC8vIENoaW5lc2VfVGFpd2FuX1N0cm9rZV8qXG4gIC8vIENoaW5lc2VfVHJhZGl0aW9uYWxfU3Ryb2tlX0NvdW50XypcbiAgLy8gQ2hpbmVzZV9UYWl3YW5fQm9wb21vZm9fKlxuICAvLyBDaGluZXNlX1RyYWRpdGlvbmFsX0JvcG9tb2ZvXypcbiAgWzB4MDQwNF06ICdDUDk1MCcsXG5cbiAgLy8gQ3plY2hfKlxuICBbMHgwNDA1XTogJ0NQMTI1MCcsXG5cbiAgLy8gRGFuaXNoX0dyZWVubGFuZGljXypcbiAgLy8gRGFuaXNoX05vcndlZ2lhbl8qXG4gIFsweDA0MDZdOiAnQ1AxMjUyJyxcblxuICAvLyBHcmVla18qXG4gIFsweDA0MDhdOiAnQ1AxMjUzJyxcblxuICAvLyBMYXRpbjFfR2VuZXJhbF8qXG4gIFsweDA0MDldOiAnQ1AxMjUyJyxcblxuICAvLyBUcmFkaXRpb25hbF9TcGFuaXNoXypcbiAgWzB4MDQwQV06ICdDUDEyNTInLFxuXG4gIC8vIEZpbm5pc2hfU3dlZGlzaF8qXG4gIFsweDA0MEJdOiAnQ1AxMjUyJyxcblxuICAvLyBGcmVuY2hfKlxuICBbMHgwNDBDXTogJ0NQMTI1MicsXG5cbiAgLy8gSGVicmV3XypcbiAgWzB4MDQwRF06ICdDUDEyNTUnLFxuXG4gIC8vIEh1bmdhcmlhbl8qXG4gIC8vIEh1bmdhcmlhbl9UZWNobmljYWxfKlxuICBbMHgwNDBFXTogJ0NQMTI1MCcsXG5cbiAgLy8gSWNlbGFuZGljXypcbiAgWzB4MDQwRl06ICdDUDEyNTInLFxuXG4gIC8vIEphcGFuZXNlXypcbiAgLy8gSmFwYW5lc2VfWEpJU18qXG4gIC8vIEphcGFuZXNlX1VuaWNvZGVfKlxuICAvLyBKYXBhbmVzZV9CdXNodV9LYWt1c3VfKlxuICBbMHgwNDExXTogJ0NQOTMyJyxcblxuICAvLyBLb3JlYW5fKlxuICAvLyBLb3JlYW5fV2Fuc3VuZ18qXG4gIFsweDA0MTJdOiAnQ1A5NDknLFxuXG4gIC8vIE5vcndlZ2lhbl8qXG4gIFsweDA0MTRdOiAnQ1AxMjUyJyxcblxuICAvLyBQb2xpc2hfKlxuICBbMHgwNDE1XTogJ0NQMTI1MCcsXG5cbiAgLy8gUm9tYW5zaF8qXG4gIFsweDA0MTddOiAnQ1AxMjUyJyxcblxuICAvLyBSb21hbmlhbl8qXG4gIFsweDA0MThdOiAnQ1AxMjUwJyxcblxuICAvLyBDeXJpbGxpY18qXG4gIFsweDA0MTldOiAnQ1AxMjUxJyxcblxuICAvLyBDcm9hdGlhbl8qXG4gIFsweDA0MUFdOiAnQ1AxMjUwJyxcblxuICAvLyBTbG92YWtfKlxuICBbMHgwNDFCXTogJ0NQMTI1MCcsXG5cbiAgLy8gQWxiYW5pYW5fKlxuICBbMHgwNDFDXTogJ0NQMTI1MCcsXG5cbiAgLy8gVGhhaV8qXG4gIFsweDA0MUVdOiAnQ1A4NzQnLFxuXG4gIC8vIFR1cmtpc2hfKlxuICBbMHgwNDFGXTogJ0NQMTI1NCcsXG5cbiAgLy8gVXJkdV8qXG4gIFsweDA0MjBdOiAnQ1AxMjU2JyxcblxuICAvLyBVa3JhaW5pYW5fKlxuICBbMHgwNDIyXTogJ0NQMTI1MScsXG5cbiAgLy8gU2xvdmVuaWFuXypcbiAgWzB4MDQyNF06ICdDUDEyNTAnLFxuXG4gIC8vIEVzdG9uaWFuXypcbiAgWzB4MDQyNV06ICdDUDEyNTcnLFxuXG4gIC8vIExhdHZpYW5fKlxuICBbMHgwNDI2XTogJ0NQMTI1NycsXG5cbiAgLy8gTGl0aHVhbmlhbl8qXG4gIFsweDA0MjddOiAnQ1AxMjU3JyxcblxuICAvLyBQZXJzaWFuXypcbiAgWzB4MDQyOV06ICdDUDEyNTYnLFxuXG4gIC8vIFZpZXRuYW1lc2VfKlxuICBbMHgwNDJBXTogJ0NQMTI1OCcsXG5cbiAgLy8gQXplcmlfTGF0aW5fKlxuICBbMHgwNDJDXTogJ0NQMTI1NCcsXG5cbiAgLy8gVXBwZXJfU29yYmlhbl8qXG4gIFsweDA0MkVdOiAnQ1AxMjUyJyxcblxuICAvLyBNYWNlZG9uaWFuX0ZZUk9NXypcbiAgWzB4MDQyRl06ICdDUDEyNTEnLFxuXG4gIC8vIFNhbWlfTm9yd2F5XypcbiAgWzB4MDQzQl06ICdDUDEyNTInLFxuXG4gIC8vIEthemFraF8qXG4gIFsweDA0M0ZdOiAnQ1AxMjUxJyxcblxuICAvLyBUdXJrbWVuXypcbiAgWzB4MDQ0Ml06ICdDUDEyNTAnLFxuXG4gIC8vIFV6YmVrX0xhdGluXypcbiAgWzB4MDQ0M106ICdDUDEyNTQnLFxuXG4gIC8vIFRhdGFyXypcbiAgWzB4MDQ0NF06ICdDUDEyNTEnLFxuXG4gIC8vIFdlbHNoXypcbiAgWzB4MDQ1Ml06ICdDUDEyNTInLFxuXG4gIC8vIEZyaXNpYW5fKlxuICBbMHgwNDYyXTogJ0NQMTI1MicsXG5cbiAgLy8gQmFzaGtpcl8qXG4gIFsweDA0NkRdOiAnQ1AxMjUxJyxcblxuICAvLyBNYXB1ZHVuZ2FuXypcbiAgWzB4MDQ3QV06ICdDUDEyNTInLFxuXG4gIC8vIE1vaGF3a18qXG4gIFsweDA0N0NdOiAnQ1AxMjUyJyxcblxuICAvLyBCcmV0b25fKlxuICBbMHgwNDdFXTogJ0NQMTI1MicsXG5cbiAgLy8gVWlnaHVyXypcbiAgWzB4MDQ4MF06ICdDUDEyNTYnLFxuXG4gIC8vIENvcnNpY2FuXypcbiAgWzB4MDQ4M106ICdDUDEyNTInLFxuXG4gIC8vIFlha3V0XypcbiAgWzB4MDQ4NV06ICdDUDEyNTEnLFxuXG4gIC8vIERhcmlfKlxuICBbMHgwNDhDXTogJ0NQMTI1NicsXG5cbiAgLy8gQ2hpbmVzZV9QUkNfKlxuICAvLyBDaGluZXNlX1NpbXBsaWZpZWRfUGlueWluXypcbiAgLy8gQ2hpbmVzZV9QUkNfU3Ryb2tlXypcbiAgLy8gQ2hpbmVzZV9TaW1wbGlmaWVkX1N0cm9rZV9PcmRlcl8qXG4gIFsweDA4MDRdOiAnQ1A5MzYnLFxuXG4gIC8vIFNlcmJpYW5fTGF0aW5fKlxuICBbMHgwODFBXTogJ0NQMTI1MCcsXG5cbiAgLy8gQXplcmlfQ3lyaWxsaWNfKlxuICBbMHgwODJDXTogJ0NQMTI1MScsXG5cbiAgLy8gU2FtaV9Td2VkZW5fRmlubGFuZF8qXG4gIFsweDA4M0JdOiAnQ1AxMjUyJyxcblxuICAvLyBUYW1hemlnaHRfKlxuICBbMHgwODVGXTogJ0NQMTI1MicsXG5cbiAgLy8gQ2hpbmVzZV9Ib25nX0tvbmdfU3Ryb2tlXypcbiAgWzB4MEMwNF06ICdDUDk1MCcsXG5cbiAgLy8gTW9kZXJuX1NwYW5pc2hfKlxuICBbMHgwQzBBXTogJ0NQMTI1MicsXG5cbiAgLy8gU2VyYmlhbl9DeXJpbGxpY18qXG4gIFsweDBDMUFdOiAnQ1AxMjUxJyxcblxuICAvLyBDaGluZXNlX1RyYWRpdGlvbmFsX1Bpbnlpbl8qXG4gIC8vIENoaW5lc2VfVHJhZGl0aW9uYWxfU3Ryb2tlX09yZGVyXypcbiAgWzB4MTQwNF06ICdDUDk1MCcsXG5cbiAgLy8gQm9zbmlhbl9MYXRpbl8qXG4gIFsweDE0MUFdOiAnQ1AxMjUwJyxcblxuICAvLyBCb3NuaWFuX0N5cmlsbGljXypcbiAgWzB4MjAxQV06ICdDUDEyNTEnLFxuXG4gIC8vIEdlcm1hblxuICAvLyBHZXJtYW5fUGhvbmVCb29rXypcbiAgWzB4MDQwN106ICdDUDEyNTInLFxuXG4gIC8vIEdlb3JnaWFuX01vZGVybl9Tb3J0XypcbiAgWzB4MDQzN106ICdDUDEyNTInXG59O1xuXG5leHBvcnQgY29uc3QgY29kZXBhZ2VCeVNvcnRJZDogeyBba2V5OiBudW1iZXJdOiBFbmNvZGluZyB9ID0ge1xuICBbMzBdOiAnQ1A0MzcnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1A0MzdfQklOXG4gIFszMV06ICdDUDQzNycsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDQzN19DU19BU1xuICBbMzJdOiAnQ1A0MzcnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1A0MzdfQ0lfQVNcbiAgWzMzXTogJ0NQNDM3JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX1ByZWZfQ1A0MzdfQ0lfQVNcbiAgWzM0XTogJ0NQNDM3JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQNDM3X0NJX0FJXG4gIFs0MF06ICdDUDg1MCcsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDg1MF9CSU5cbiAgWzQxXTogJ0NQODUwJywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQODUwX0NTX0FTXG4gIFs0Ml06ICdDUDg1MCcsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDg1MF9DSV9BU1xuICBbNDNdOiAnQ1A4NTAnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfUHJlZl9DUDg1MF9DSV9BU1xuICBbNDRdOiAnQ1A4NTAnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1A4NTBfQ0lfQUlcbiAgWzQ5XTogJ0NQODUwJywgLy8gU1FMXzF4Q29tcGF0X0NQODUwX0NJX0FTXG4gIFs1MV06ICdDUDEyNTInLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ3AxX0NTX0FTX0tJX1dJXG4gIFs1Ml06ICdDUDEyNTInLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ3AxX0NJX0FTX0tJX1dJXG4gIFs1M106ICdDUDEyNTInLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfUHJlZl9DcDFfQ0lfQVNfS0lfV0lcbiAgWzU0XTogJ0NQMTI1MicsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DcDFfQ0lfQUlfS0lfV0lcbiAgWzU1XTogJ0NQODUwJywgLy8gU1FMX0FsdERpY3Rpb25fQ1A4NTBfQ1NfQVNcbiAgWzU2XTogJ0NQODUwJywgLy8gU1FMX0FsdERpY3Rpb25fUHJlZl9DUDg1MF9DSV9BU1xuICBbNTddOiAnQ1A4NTAnLCAvLyBTUUxfQWx0RGljdGlvbl9DUDg1MF9DSV9BSVxuICBbNThdOiAnQ1A4NTAnLCAvLyBTUUxfU2NhbmRpbmF2aWFuX1ByZWZfQ1A4NTBfQ0lfQVNcbiAgWzU5XTogJ0NQODUwJywgLy8gU1FMX1NjYW5kaW5hdmlhbl9DUDg1MF9DU19BU1xuICBbNjBdOiAnQ1A4NTAnLCAvLyBTUUxfU2NhbmRpbmF2aWFuX0NQODUwX0NJX0FTXG4gIFs2MV06ICdDUDg1MCcsIC8vIFNRTF9BbHREaWN0aW9uX0NQODUwX0NJX0FTXG4gIFs4MF06ICdDUDEyNTAnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfMTI1MF9CSU5cbiAgWzgxXTogJ0NQMTI1MCcsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTBfQ1NfQVNcbiAgWzgyXTogJ0NQMTI1MCcsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DcDEyNTBfQ0lfQVNfS0lfV0lcbiAgWzgzXTogJ0NQMTI1MCcsIC8vIFNRTF9DemVjaF9DcDEyNTBfQ1NfQVNfS0lfV0lcbiAgWzg0XTogJ0NQMTI1MCcsIC8vIFNRTF9DemVjaF9DcDEyNTBfQ0lfQVNfS0lfV0lcbiAgWzg1XTogJ0NQMTI1MCcsIC8vIFNRTF9IdW5nYXJpYW5fQ3AxMjUwX0NTX0FTX0tJX1dJXG4gIFs4Nl06ICdDUDEyNTAnLCAvLyBTUUxfSHVuZ2FyaWFuX0NwMTI1MF9DSV9BU19LSV9XSVxuICBbODddOiAnQ1AxMjUwJywgLy8gU1FMX1BvbGlzaF9DcDEyNTBfQ1NfQVNfS0lfV0lcbiAgWzg4XTogJ0NQMTI1MCcsIC8vIFNRTF9Qb2xpc2hfQ3AxMjUwX0NJX0FTX0tJX1dJXG4gIFs4OV06ICdDUDEyNTAnLCAvLyBTUUxfUm9tYW5pYW5fQ3AxMjUwX0NTX0FTX0tJX1dJXG4gIFs5MF06ICdDUDEyNTAnLCAvLyBTUUxfUm9tYW5pYW5fQ3AxMjUwX0NJX0FTX0tJX1dJXG4gIFs5MV06ICdDUDEyNTAnLCAvLyBTUUxfQ3JvYXRpYW5fQ3AxMjUwX0NTX0FTX0tJX1dJXG4gIFs5Ml06ICdDUDEyNTAnLCAvLyBTUUxfQ3JvYXRpYW5fQ3AxMjUwX0NJX0FTX0tJX1dJXG4gIFs5M106ICdDUDEyNTAnLCAvLyBTUUxfU2xvdmFrX0NwMTI1MF9DU19BU19LSV9XSVxuICBbOTRdOiAnQ1AxMjUwJywgLy8gU1FMX1Nsb3Zha19DcDEyNTBfQ0lfQVNfS0lfV0lcbiAgWzk1XTogJ0NQMTI1MCcsIC8vIFNRTF9TbG92ZW5pYW5fQ3AxMjUwX0NTX0FTX0tJX1dJXG4gIFs5Nl06ICdDUDEyNTAnLCAvLyBTUUxfU2xvdmVuaWFuX0NwMTI1MF9DSV9BU19LSV9XSVxuICBbMTA0XTogJ0NQMTI1MScsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF8xMjUxX0JJTlxuICBbMTA1XTogJ0NQMTI1MScsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTFfQ1NfQVNcbiAgWzEwNl06ICdDUDEyNTEnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1AxMjUxX0NJX0FTXG4gIFsxMDddOiAnQ1AxMjUxJywgLy8gU1FMX1VrcmFpbmlhbl9DcDEyNTFfQ1NfQVNfS0lfV0lcbiAgWzEwOF06ICdDUDEyNTEnLCAvLyBTUUxfVWtyYWluaWFuX0NwMTI1MV9DSV9BU19LSV9XSVxuICBbMTEyXTogJ0NQMTI1MycsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF8xMjUzX0JJTlxuICBbMTEzXTogJ0NQMTI1MycsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTNfQ1NfQVNcbiAgWzExNF06ICdDUDEyNTMnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1AxMjUzX0NJX0FTXG4gIFsxMjBdOiAnQ1AxMjUzJywgLy8gU1FMX01peERpY3Rpb25fQ1AxMjUzX0NTX0FTXG4gIFsxMjFdOiAnQ1AxMjUzJywgLy8gU1FMX0FsdERpY3Rpb25fQ1AxMjUzX0NTX0FTXG4gIFsxMjJdOiAnQ1AxMjUzJywgLy8gU1FMX0FsdERpY3Rpb24yX0NQMTI1M19DU19BU1xuICBbMTI0XTogJ0NQMTI1MycsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTNfQ0lfQUlcbiAgWzEyOF06ICdDUDEyNTQnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfMTI1NF9CSU5cbiAgWzEyOV06ICdDUDEyNTQnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ3AxMjU0X0NTX0FTX0tJX1dJXG4gIFsxMzBdOiAnQ1AxMjU0JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NwMTI1NF9DSV9BU19LSV9XSVxuICBbMTM2XTogJ0NQMTI1NScsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF8xMjU1X0JJTlxuICBbMTM3XTogJ0NQMTI1NScsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTVfQ1NfQVNcbiAgWzEzOF06ICdDUDEyNTUnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1AxMjU1X0NJX0FTXG4gIFsxNDRdOiAnQ1AxMjU2JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsXzEyNTZfQklOXG4gIFsxNDVdOiAnQ1AxMjU2JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQMTI1Nl9DU19BU1xuICBbMTQ2XTogJ0NQMTI1NicsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTZfQ0lfQVNcbiAgWzE1Ml06ICdDUDEyNTcnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfMTI1N19CSU5cbiAgWzE1M106ICdDUDEyNTcnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1AxMjU3X0NTX0FTXG4gIFsxNTRdOiAnQ1AxMjU3JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQMTI1N19DSV9BU1xuICBbMTU1XTogJ0NQMTI1NycsIC8vIFNRTF9Fc3Rvbmlhbl9DcDEyNTdfQ1NfQVNfS0lfV0lcbiAgWzE1Nl06ICdDUDEyNTcnLCAvLyBTUUxfRXN0b25pYW5fQ3AxMjU3X0NJX0FTX0tJX1dJXG4gIFsxNTddOiAnQ1AxMjU3JywgLy8gU1FMX0xhdHZpYW5fQ3AxMjU3X0NTX0FTX0tJX1dJXG4gIFsxNThdOiAnQ1AxMjU3JywgLy8gU1FMX0xhdHZpYW5fQ3AxMjU3X0NJX0FTX0tJX1dJXG4gIFsxNTldOiAnQ1AxMjU3JywgLy8gU1FMX0xpdGh1YW5pYW5fQ3AxMjU3X0NTX0FTX0tJX1dJXG4gIFsxNjBdOiAnQ1AxMjU3JywgLy8gU1FMX0xpdGh1YW5pYW5fQ3AxMjU3X0NJX0FTX0tJX1dJXG4gIFsxODNdOiAnQ1AxMjUyJywgLy8gU1FMX0RhbmlzaF9QcmVmX0NwMV9DSV9BU19LSV9XSVxuICBbMTg0XTogJ0NQMTI1MicsIC8vIFNRTF9Td2VkaXNoUGhvbmVfUHJlZl9DcDFfQ0lfQVNfS0lfV0lcbiAgWzE4NV06ICdDUDEyNTInLCAvLyBTUUxfU3dlZGlzaFN0ZF9QcmVmX0NwMV9DSV9BU19LSV9XSVxuICBbMTg2XTogJ0NQMTI1MicgLy8gU1FMX0ljZWxhbmRpY19QcmVmX0NwMV9DSV9BU19LSV9XSVxufTtcblxuZXhwb3J0IGNvbnN0IEZsYWdzID0ge1xuICBJR05PUkVfQ0FTRTogMSA8PCAwLFxuICBJR05PUkVfQUNDRU5UOiAxIDw8IDEsXG4gIElHTk9SRV9LQU5BOiAxIDw8IDIsXG4gIElHTk9SRV9XSURUSDogMSA8PCAzLFxuICBCSU5BUlk6IDEgPDwgNCxcbiAgQklOQVJZMjogMSA8PCA1LFxuICBVVEY4OiAxIDw8IDYsXG59O1xuXG5leHBvcnQgY2xhc3MgQ29sbGF0aW9uIHtcbiAgcmVhZG9ubHkgbGNpZDogbnVtYmVyO1xuICByZWFkb25seSBmbGFnczogbnVtYmVyO1xuICByZWFkb25seSB2ZXJzaW9uOiBudW1iZXI7XG4gIHJlYWRvbmx5IHNvcnRJZDogbnVtYmVyO1xuICByZWFkb25seSBjb2RlcGFnZTogRW5jb2RpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBidWZmZXI6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcblxuICBzdGF0aWMgZnJvbUJ1ZmZlcihidWZmZXI6IEJ1ZmZlciwgb2Zmc2V0ID0gMCkge1xuICAgIGxldCBsY2lkID0gKGJ1ZmZlcltvZmZzZXQgKyAyXSAmIDB4MEYpIDw8IDE2O1xuICAgIGxjaWQgfD0gYnVmZmVyW29mZnNldCArIDFdIDw8IDg7XG4gICAgbGNpZCB8PSBidWZmZXJbb2Zmc2V0ICsgMF07XG5cbiAgICBsZXQgZmxhZ3MgPSAoYnVmZmVyW29mZnNldCArIDNdICYgMHgwRikgPDwgNDtcbiAgICBmbGFncyB8PSAoYnVmZmVyW29mZnNldCArIDJdICYgMHhGMCkgPj4+IDQ7XG5cbiAgICBjb25zdCB2ZXJzaW9uID0gKGJ1ZmZlcltvZmZzZXQgKyAzXSAmIDB4RjApID4+PiA0O1xuXG4gICAgY29uc3Qgc29ydElkID0gYnVmZmVyW29mZnNldCArIDRdO1xuXG4gICAgcmV0dXJuIG5ldyB0aGlzKGxjaWQsIGZsYWdzLCB2ZXJzaW9uLCBzb3J0SWQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IobGNpZDogbnVtYmVyLCBmbGFnczogbnVtYmVyLCB2ZXJzaW9uOiBudW1iZXIsIHNvcnRJZDogbnVtYmVyKSB7XG4gICAgdGhpcy5idWZmZXIgPSB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLmxjaWQgPSBsY2lkO1xuICAgIHRoaXMuZmxhZ3MgPSBmbGFncztcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIHRoaXMuc29ydElkID0gc29ydElkO1xuXG4gICAgaWYgKHRoaXMuZmxhZ3MgJiBGbGFncy5VVEY4KSB7XG4gICAgICB0aGlzLmNvZGVwYWdlID0gJ3V0Zi04JztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc29ydElkKSB7XG4gICAgICB0aGlzLmNvZGVwYWdlID0gY29kZXBhZ2VCeVNvcnRJZFt0aGlzLnNvcnRJZF07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSBsYXN0IDE2IGJpdHMgb2YgdGhlIExDSUQgYXJlIHRoZSBsYW5ndWFnZSBpZC5cbiAgICAgIC8vIFRoZSBmaXJzdCA0IGJpdHMgZGVmaW5lIGFkZGl0aW9uYWwgc29ydCBvcmRlcnMuXG4gICAgICBjb25zdCBsYW5ndWFnZUlkID0gdGhpcy5sY2lkICYgMHhGRkZGO1xuICAgICAgdGhpcy5jb2RlcGFnZSA9IGNvZGVwYWdlQnlMYW5ndWFnZUlkW2xhbmd1YWdlSWRdO1xuICAgIH1cbiAgfVxuXG4gIHRvQnVmZmVyKCk6IEJ1ZmZlciB7XG4gICAgaWYgKHRoaXMuYnVmZmVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5idWZmZXI7XG4gICAgfVxuXG4gICAgdGhpcy5idWZmZXIgPSBCdWZmZXIuYWxsb2MoNSk7XG5cbiAgICB0aGlzLmJ1ZmZlclswXSA9IHRoaXMubGNpZCAmIDB4RkY7XG4gICAgdGhpcy5idWZmZXJbMV0gPSAodGhpcy5sY2lkID4+PiA4KSAmIDB4RkY7XG4gICAgdGhpcy5idWZmZXJbMl0gPSAoKHRoaXMubGNpZCA+Pj4gMTYpICYgMHgwRikgfCAoKHRoaXMuZmxhZ3MgJiAweDBGKSA8PCA0KTtcbiAgICB0aGlzLmJ1ZmZlclszXSA9ICgodGhpcy5mbGFncyAmIDB4RjApID4+PiA0KSB8ICgodGhpcy52ZXJzaW9uICYgMHgwRikgPDwgNCk7XG4gICAgdGhpcy5idWZmZXJbNF0gPSB0aGlzLnNvcnRJZCAmIDB4RkY7XG5cbiAgICByZXR1cm4gdGhpcy5idWZmZXI7XG4gIH1cbn1cbiJdfQ==
|
|
365
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb2RlcGFnZUJ5TGFuZ3VhZ2VJZCIsImNvZGVwYWdlQnlTb3J0SWQiLCJGbGFncyIsIklHTk9SRV9DQVNFIiwiSUdOT1JFX0FDQ0VOVCIsIklHTk9SRV9LQU5BIiwiSUdOT1JFX1dJRFRIIiwiQklOQVJZIiwiQklOQVJZMiIsIlVURjgiLCJDb2xsYXRpb24iLCJmcm9tQnVmZmVyIiwiYnVmZmVyIiwib2Zmc2V0IiwibGNpZCIsImZsYWdzIiwidmVyc2lvbiIsInNvcnRJZCIsImNvbnN0cnVjdG9yIiwiY29kZXBhZ2UiLCJ1bmRlZmluZWQiLCJsYW5ndWFnZUlkIiwidG9CdWZmZXIiLCJCdWZmZXIiLCJhbGxvYyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsidHlwZSBFbmNvZGluZyA9ICd1dGYtOCcgfCAnQ1A0MzcnIHwgJ0NQODUwJyB8ICdDUDg3NCcgfCAnQ1A5MzInIHwgJ0NQOTM2JyB8ICdDUDk0OScgfCAnQ1A5NTAnIHwgJ0NQMTI1MCcgfCAnQ1AxMjUxJyB8ICdDUDEyNTInIHwgJ0NQMTI1MycgfCAnQ1AxMjU0JyB8ICdDUDEyNTUnIHwgJ0NQMTI1NicgfCAnQ1AxMjU3JyB8ICdDUDEyNTgnO1xuXG4vLyBodHRwOi8vdGVjaG5ldC5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvYWExNzY1NTModj1zcWwuODApLmFzcHhcbmV4cG9ydCBjb25zdCBjb2RlcGFnZUJ5TGFuZ3VhZ2VJZDogeyBba2V5OiBudW1iZXJdOiBFbmNvZGluZyB9ID0ge1xuICAvLyBBcmFiaWNfKlxuICBbMHgwNDAxXTogJ0NQMTI1NicsXG5cbiAgLy8gQ2hpbmVzZV9UYWl3YW5fU3Ryb2tlXypcbiAgLy8gQ2hpbmVzZV9UcmFkaXRpb25hbF9TdHJva2VfQ291bnRfKlxuICAvLyBDaGluZXNlX1RhaXdhbl9Cb3BvbW9mb18qXG4gIC8vIENoaW5lc2VfVHJhZGl0aW9uYWxfQm9wb21vZm9fKlxuICBbMHgwNDA0XTogJ0NQOTUwJyxcblxuICAvLyBDemVjaF8qXG4gIFsweDA0MDVdOiAnQ1AxMjUwJyxcblxuICAvLyBEYW5pc2hfR3JlZW5sYW5kaWNfKlxuICAvLyBEYW5pc2hfTm9yd2VnaWFuXypcbiAgWzB4MDQwNl06ICdDUDEyNTInLFxuXG4gIC8vIEdyZWVrXypcbiAgWzB4MDQwOF06ICdDUDEyNTMnLFxuXG4gIC8vIExhdGluMV9HZW5lcmFsXypcbiAgWzB4MDQwOV06ICdDUDEyNTInLFxuXG4gIC8vIFRyYWRpdGlvbmFsX1NwYW5pc2hfKlxuICBbMHgwNDBBXTogJ0NQMTI1MicsXG5cbiAgLy8gRmlubmlzaF9Td2VkaXNoXypcbiAgWzB4MDQwQl06ICdDUDEyNTInLFxuXG4gIC8vIEZyZW5jaF8qXG4gIFsweDA0MENdOiAnQ1AxMjUyJyxcblxuICAvLyBIZWJyZXdfKlxuICBbMHgwNDBEXTogJ0NQMTI1NScsXG5cbiAgLy8gSHVuZ2FyaWFuXypcbiAgLy8gSHVuZ2FyaWFuX1RlY2huaWNhbF8qXG4gIFsweDA0MEVdOiAnQ1AxMjUwJyxcblxuICAvLyBJY2VsYW5kaWNfKlxuICBbMHgwNDBGXTogJ0NQMTI1MicsXG5cbiAgLy8gSmFwYW5lc2VfKlxuICAvLyBKYXBhbmVzZV9YSklTXypcbiAgLy8gSmFwYW5lc2VfVW5pY29kZV8qXG4gIC8vIEphcGFuZXNlX0J1c2h1X0tha3VzdV8qXG4gIFsweDA0MTFdOiAnQ1A5MzInLFxuXG4gIC8vIEtvcmVhbl8qXG4gIC8vIEtvcmVhbl9XYW5zdW5nXypcbiAgWzB4MDQxMl06ICdDUDk0OScsXG5cbiAgLy8gTm9yd2VnaWFuXypcbiAgWzB4MDQxNF06ICdDUDEyNTInLFxuXG4gIC8vIFBvbGlzaF8qXG4gIFsweDA0MTVdOiAnQ1AxMjUwJyxcblxuICAvLyBSb21hbnNoXypcbiAgWzB4MDQxN106ICdDUDEyNTInLFxuXG4gIC8vIFJvbWFuaWFuXypcbiAgWzB4MDQxOF06ICdDUDEyNTAnLFxuXG4gIC8vIEN5cmlsbGljXypcbiAgWzB4MDQxOV06ICdDUDEyNTEnLFxuXG4gIC8vIENyb2F0aWFuXypcbiAgWzB4MDQxQV06ICdDUDEyNTAnLFxuXG4gIC8vIFNsb3Zha18qXG4gIFsweDA0MUJdOiAnQ1AxMjUwJyxcblxuICAvLyBBbGJhbmlhbl8qXG4gIFsweDA0MUNdOiAnQ1AxMjUwJyxcblxuICAvLyBUaGFpXypcbiAgWzB4MDQxRV06ICdDUDg3NCcsXG5cbiAgLy8gVHVya2lzaF8qXG4gIFsweDA0MUZdOiAnQ1AxMjU0JyxcblxuICAvLyBVcmR1XypcbiAgWzB4MDQyMF06ICdDUDEyNTYnLFxuXG4gIC8vIFVrcmFpbmlhbl8qXG4gIFsweDA0MjJdOiAnQ1AxMjUxJyxcblxuICAvLyBTbG92ZW5pYW5fKlxuICBbMHgwNDI0XTogJ0NQMTI1MCcsXG5cbiAgLy8gRXN0b25pYW5fKlxuICBbMHgwNDI1XTogJ0NQMTI1NycsXG5cbiAgLy8gTGF0dmlhbl8qXG4gIFsweDA0MjZdOiAnQ1AxMjU3JyxcblxuICAvLyBMaXRodWFuaWFuXypcbiAgWzB4MDQyN106ICdDUDEyNTcnLFxuXG4gIC8vIFBlcnNpYW5fKlxuICBbMHgwNDI5XTogJ0NQMTI1NicsXG5cbiAgLy8gVmlldG5hbWVzZV8qXG4gIFsweDA0MkFdOiAnQ1AxMjU4JyxcblxuICAvLyBBemVyaV9MYXRpbl8qXG4gIFsweDA0MkNdOiAnQ1AxMjU0JyxcblxuICAvLyBVcHBlcl9Tb3JiaWFuXypcbiAgWzB4MDQyRV06ICdDUDEyNTInLFxuXG4gIC8vIE1hY2Vkb25pYW5fRllST01fKlxuICBbMHgwNDJGXTogJ0NQMTI1MScsXG5cbiAgLy8gU2FtaV9Ob3J3YXlfKlxuICBbMHgwNDNCXTogJ0NQMTI1MicsXG5cbiAgLy8gS2F6YWtoXypcbiAgWzB4MDQzRl06ICdDUDEyNTEnLFxuXG4gIC8vIFR1cmttZW5fKlxuICBbMHgwNDQyXTogJ0NQMTI1MCcsXG5cbiAgLy8gVXpiZWtfTGF0aW5fKlxuICBbMHgwNDQzXTogJ0NQMTI1NCcsXG5cbiAgLy8gVGF0YXJfKlxuICBbMHgwNDQ0XTogJ0NQMTI1MScsXG5cbiAgLy8gV2Vsc2hfKlxuICBbMHgwNDUyXTogJ0NQMTI1MicsXG5cbiAgLy8gRnJpc2lhbl8qXG4gIFsweDA0NjJdOiAnQ1AxMjUyJyxcblxuICAvLyBCYXNoa2lyXypcbiAgWzB4MDQ2RF06ICdDUDEyNTEnLFxuXG4gIC8vIE1hcHVkdW5nYW5fKlxuICBbMHgwNDdBXTogJ0NQMTI1MicsXG5cbiAgLy8gTW9oYXdrXypcbiAgWzB4MDQ3Q106ICdDUDEyNTInLFxuXG4gIC8vIEJyZXRvbl8qXG4gIFsweDA0N0VdOiAnQ1AxMjUyJyxcblxuICAvLyBVaWdodXJfKlxuICBbMHgwNDgwXTogJ0NQMTI1NicsXG5cbiAgLy8gQ29yc2ljYW5fKlxuICBbMHgwNDgzXTogJ0NQMTI1MicsXG5cbiAgLy8gWWFrdXRfKlxuICBbMHgwNDg1XTogJ0NQMTI1MScsXG5cbiAgLy8gRGFyaV8qXG4gIFsweDA0OENdOiAnQ1AxMjU2JyxcblxuICAvLyBDaGluZXNlX1BSQ18qXG4gIC8vIENoaW5lc2VfU2ltcGxpZmllZF9QaW55aW5fKlxuICAvLyBDaGluZXNlX1BSQ19TdHJva2VfKlxuICAvLyBDaGluZXNlX1NpbXBsaWZpZWRfU3Ryb2tlX09yZGVyXypcbiAgWzB4MDgwNF06ICdDUDkzNicsXG5cbiAgLy8gU2VyYmlhbl9MYXRpbl8qXG4gIFsweDA4MUFdOiAnQ1AxMjUwJyxcblxuICAvLyBBemVyaV9DeXJpbGxpY18qXG4gIFsweDA4MkNdOiAnQ1AxMjUxJyxcblxuICAvLyBTYW1pX1N3ZWRlbl9GaW5sYW5kXypcbiAgWzB4MDgzQl06ICdDUDEyNTInLFxuXG4gIC8vIFRhbWF6aWdodF8qXG4gIFsweDA4NUZdOiAnQ1AxMjUyJyxcblxuICAvLyBDaGluZXNlX0hvbmdfS29uZ19TdHJva2VfKlxuICBbMHgwQzA0XTogJ0NQOTUwJyxcblxuICAvLyBNb2Rlcm5fU3BhbmlzaF8qXG4gIFsweDBDMEFdOiAnQ1AxMjUyJyxcblxuICAvLyBTZXJiaWFuX0N5cmlsbGljXypcbiAgWzB4MEMxQV06ICdDUDEyNTEnLFxuXG4gIC8vIENoaW5lc2VfVHJhZGl0aW9uYWxfUGlueWluXypcbiAgLy8gQ2hpbmVzZV9UcmFkaXRpb25hbF9TdHJva2VfT3JkZXJfKlxuICBbMHgxNDA0XTogJ0NQOTUwJyxcblxuICAvLyBCb3NuaWFuX0xhdGluXypcbiAgWzB4MTQxQV06ICdDUDEyNTAnLFxuXG4gIC8vIEJvc25pYW5fQ3lyaWxsaWNfKlxuICBbMHgyMDFBXTogJ0NQMTI1MScsXG5cbiAgLy8gR2VybWFuXG4gIC8vIEdlcm1hbl9QaG9uZUJvb2tfKlxuICBbMHgwNDA3XTogJ0NQMTI1MicsXG5cbiAgLy8gR2VvcmdpYW5fTW9kZXJuX1NvcnRfKlxuICBbMHgwNDM3XTogJ0NQMTI1Midcbn07XG5cbmV4cG9ydCBjb25zdCBjb2RlcGFnZUJ5U29ydElkOiB7IFtrZXk6IG51bWJlcl06IEVuY29kaW5nIH0gPSB7XG4gIFszMF06ICdDUDQzNycsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDQzN19CSU5cbiAgWzMxXTogJ0NQNDM3JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQNDM3X0NTX0FTXG4gIFszMl06ICdDUDQzNycsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDQzN19DSV9BU1xuICBbMzNdOiAnQ1A0MzcnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfUHJlZl9DUDQzN19DSV9BU1xuICBbMzRdOiAnQ1A0MzcnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1A0MzdfQ0lfQUlcbiAgWzQwXTogJ0NQODUwJywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQODUwX0JJTlxuICBbNDFdOiAnQ1A4NTAnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1A4NTBfQ1NfQVNcbiAgWzQyXTogJ0NQODUwJywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQODUwX0NJX0FTXG4gIFs0M106ICdDUDg1MCcsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9QcmVmX0NQODUwX0NJX0FTXG4gIFs0NF06ICdDUDg1MCcsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDg1MF9DSV9BSVxuICBbNDldOiAnQ1A4NTAnLCAvLyBTUUxfMXhDb21wYXRfQ1A4NTBfQ0lfQVNcbiAgWzUxXTogJ0NQMTI1MicsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DcDFfQ1NfQVNfS0lfV0lcbiAgWzUyXTogJ0NQMTI1MicsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DcDFfQ0lfQVNfS0lfV0lcbiAgWzUzXTogJ0NQMTI1MicsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9QcmVmX0NwMV9DSV9BU19LSV9XSVxuICBbNTRdOiAnQ1AxMjUyJywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NwMV9DSV9BSV9LSV9XSVxuICBbNTVdOiAnQ1A4NTAnLCAvLyBTUUxfQWx0RGljdGlvbl9DUDg1MF9DU19BU1xuICBbNTZdOiAnQ1A4NTAnLCAvLyBTUUxfQWx0RGljdGlvbl9QcmVmX0NQODUwX0NJX0FTXG4gIFs1N106ICdDUDg1MCcsIC8vIFNRTF9BbHREaWN0aW9uX0NQODUwX0NJX0FJXG4gIFs1OF06ICdDUDg1MCcsIC8vIFNRTF9TY2FuZGluYXZpYW5fUHJlZl9DUDg1MF9DSV9BU1xuICBbNTldOiAnQ1A4NTAnLCAvLyBTUUxfU2NhbmRpbmF2aWFuX0NQODUwX0NTX0FTXG4gIFs2MF06ICdDUDg1MCcsIC8vIFNRTF9TY2FuZGluYXZpYW5fQ1A4NTBfQ0lfQVNcbiAgWzYxXTogJ0NQODUwJywgLy8gU1FMX0FsdERpY3Rpb25fQ1A4NTBfQ0lfQVNcbiAgWzgwXTogJ0NQMTI1MCcsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF8xMjUwX0JJTlxuICBbODFdOiAnQ1AxMjUwJywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQMTI1MF9DU19BU1xuICBbODJdOiAnQ1AxMjUwJywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NwMTI1MF9DSV9BU19LSV9XSVxuICBbODNdOiAnQ1AxMjUwJywgLy8gU1FMX0N6ZWNoX0NwMTI1MF9DU19BU19LSV9XSVxuICBbODRdOiAnQ1AxMjUwJywgLy8gU1FMX0N6ZWNoX0NwMTI1MF9DSV9BU19LSV9XSVxuICBbODVdOiAnQ1AxMjUwJywgLy8gU1FMX0h1bmdhcmlhbl9DcDEyNTBfQ1NfQVNfS0lfV0lcbiAgWzg2XTogJ0NQMTI1MCcsIC8vIFNRTF9IdW5nYXJpYW5fQ3AxMjUwX0NJX0FTX0tJX1dJXG4gIFs4N106ICdDUDEyNTAnLCAvLyBTUUxfUG9saXNoX0NwMTI1MF9DU19BU19LSV9XSVxuICBbODhdOiAnQ1AxMjUwJywgLy8gU1FMX1BvbGlzaF9DcDEyNTBfQ0lfQVNfS0lfV0lcbiAgWzg5XTogJ0NQMTI1MCcsIC8vIFNRTF9Sb21hbmlhbl9DcDEyNTBfQ1NfQVNfS0lfV0lcbiAgWzkwXTogJ0NQMTI1MCcsIC8vIFNRTF9Sb21hbmlhbl9DcDEyNTBfQ0lfQVNfS0lfV0lcbiAgWzkxXTogJ0NQMTI1MCcsIC8vIFNRTF9Dcm9hdGlhbl9DcDEyNTBfQ1NfQVNfS0lfV0lcbiAgWzkyXTogJ0NQMTI1MCcsIC8vIFNRTF9Dcm9hdGlhbl9DcDEyNTBfQ0lfQVNfS0lfV0lcbiAgWzkzXTogJ0NQMTI1MCcsIC8vIFNRTF9TbG92YWtfQ3AxMjUwX0NTX0FTX0tJX1dJXG4gIFs5NF06ICdDUDEyNTAnLCAvLyBTUUxfU2xvdmFrX0NwMTI1MF9DSV9BU19LSV9XSVxuICBbOTVdOiAnQ1AxMjUwJywgLy8gU1FMX1Nsb3Zlbmlhbl9DcDEyNTBfQ1NfQVNfS0lfV0lcbiAgWzk2XTogJ0NQMTI1MCcsIC8vIFNRTF9TbG92ZW5pYW5fQ3AxMjUwX0NJX0FTX0tJX1dJXG4gIFsxMDRdOiAnQ1AxMjUxJywgLy8gU1FMX0xhdGluMV9HZW5lcmFsXzEyNTFfQklOXG4gIFsxMDVdOiAnQ1AxMjUxJywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQMTI1MV9DU19BU1xuICBbMTA2XTogJ0NQMTI1MScsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTFfQ0lfQVNcbiAgWzEwN106ICdDUDEyNTEnLCAvLyBTUUxfVWtyYWluaWFuX0NwMTI1MV9DU19BU19LSV9XSVxuICBbMTA4XTogJ0NQMTI1MScsIC8vIFNRTF9Va3JhaW5pYW5fQ3AxMjUxX0NJX0FTX0tJX1dJXG4gIFsxMTJdOiAnQ1AxMjUzJywgLy8gU1FMX0xhdGluMV9HZW5lcmFsXzEyNTNfQklOXG4gIFsxMTNdOiAnQ1AxMjUzJywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQMTI1M19DU19BU1xuICBbMTE0XTogJ0NQMTI1MycsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTNfQ0lfQVNcbiAgWzEyMF06ICdDUDEyNTMnLCAvLyBTUUxfTWl4RGljdGlvbl9DUDEyNTNfQ1NfQVNcbiAgWzEyMV06ICdDUDEyNTMnLCAvLyBTUUxfQWx0RGljdGlvbl9DUDEyNTNfQ1NfQVNcbiAgWzEyMl06ICdDUDEyNTMnLCAvLyBTUUxfQWx0RGljdGlvbjJfQ1AxMjUzX0NTX0FTXG4gIFsxMjRdOiAnQ1AxMjUzJywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQMTI1M19DSV9BSVxuICBbMTI4XTogJ0NQMTI1NCcsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF8xMjU0X0JJTlxuICBbMTI5XTogJ0NQMTI1NCcsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DcDEyNTRfQ1NfQVNfS0lfV0lcbiAgWzEzMF06ICdDUDEyNTQnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ3AxMjU0X0NJX0FTX0tJX1dJXG4gIFsxMzZdOiAnQ1AxMjU1JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsXzEyNTVfQklOXG4gIFsxMzddOiAnQ1AxMjU1JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQMTI1NV9DU19BU1xuICBbMTM4XTogJ0NQMTI1NScsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTVfQ0lfQVNcbiAgWzE0NF06ICdDUDEyNTYnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfMTI1Nl9CSU5cbiAgWzE0NV06ICdDUDEyNTYnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1AxMjU2X0NTX0FTXG4gIFsxNDZdOiAnQ1AxMjU2JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQMTI1Nl9DSV9BU1xuICBbMTUyXTogJ0NQMTI1NycsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF8xMjU3X0JJTlxuICBbMTUzXTogJ0NQMTI1NycsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTdfQ1NfQVNcbiAgWzE1NF06ICdDUDEyNTcnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1AxMjU3X0NJX0FTXG4gIFsxNTVdOiAnQ1AxMjU3JywgLy8gU1FMX0VzdG9uaWFuX0NwMTI1N19DU19BU19LSV9XSVxuICBbMTU2XTogJ0NQMTI1NycsIC8vIFNRTF9Fc3Rvbmlhbl9DcDEyNTdfQ0lfQVNfS0lfV0lcbiAgWzE1N106ICdDUDEyNTcnLCAvLyBTUUxfTGF0dmlhbl9DcDEyNTdfQ1NfQVNfS0lfV0lcbiAgWzE1OF06ICdDUDEyNTcnLCAvLyBTUUxfTGF0dmlhbl9DcDEyNTdfQ0lfQVNfS0lfV0lcbiAgWzE1OV06ICdDUDEyNTcnLCAvLyBTUUxfTGl0aHVhbmlhbl9DcDEyNTdfQ1NfQVNfS0lfV0lcbiAgWzE2MF06ICdDUDEyNTcnLCAvLyBTUUxfTGl0aHVhbmlhbl9DcDEyNTdfQ0lfQVNfS0lfV0lcbiAgWzE4M106ICdDUDEyNTInLCAvLyBTUUxfRGFuaXNoX1ByZWZfQ3AxX0NJX0FTX0tJX1dJXG4gIFsxODRdOiAnQ1AxMjUyJywgLy8gU1FMX1N3ZWRpc2hQaG9uZV9QcmVmX0NwMV9DSV9BU19LSV9XSVxuICBbMTg1XTogJ0NQMTI1MicsIC8vIFNRTF9Td2VkaXNoU3RkX1ByZWZfQ3AxX0NJX0FTX0tJX1dJXG4gIFsxODZdOiAnQ1AxMjUyJyAvLyBTUUxfSWNlbGFuZGljX1ByZWZfQ3AxX0NJX0FTX0tJX1dJXG59O1xuXG5leHBvcnQgY29uc3QgRmxhZ3MgPSB7XG4gIElHTk9SRV9DQVNFOiAxIDw8IDAsXG4gIElHTk9SRV9BQ0NFTlQ6IDEgPDwgMSxcbiAgSUdOT1JFX0tBTkE6IDEgPDwgMixcbiAgSUdOT1JFX1dJRFRIOiAxIDw8IDMsXG4gIEJJTkFSWTogMSA8PCA0LFxuICBCSU5BUlkyOiAxIDw8IDUsXG4gIFVURjg6IDEgPDwgNixcbn07XG5cbmV4cG9ydCBjbGFzcyBDb2xsYXRpb24ge1xuICByZWFkb25seSBsY2lkOiBudW1iZXI7XG4gIHJlYWRvbmx5IGZsYWdzOiBudW1iZXI7XG4gIHJlYWRvbmx5IHZlcnNpb246IG51bWJlcjtcbiAgcmVhZG9ubHkgc29ydElkOiBudW1iZXI7XG4gIHJlYWRvbmx5IGNvZGVwYWdlOiBFbmNvZGluZyB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGJ1ZmZlcjogQnVmZmVyIHwgdW5kZWZpbmVkO1xuXG4gIHN0YXRpYyBmcm9tQnVmZmVyKGJ1ZmZlcjogQnVmZmVyLCBvZmZzZXQgPSAwKSB7XG4gICAgbGV0IGxjaWQgPSAoYnVmZmVyW29mZnNldCArIDJdICYgMHgwRikgPDwgMTY7XG4gICAgbGNpZCB8PSBidWZmZXJbb2Zmc2V0ICsgMV0gPDwgODtcbiAgICBsY2lkIHw9IGJ1ZmZlcltvZmZzZXQgKyAwXTtcblxuICAgIGxldCBmbGFncyA9IChidWZmZXJbb2Zmc2V0ICsgM10gJiAweDBGKSA8PCA0O1xuICAgIGZsYWdzIHw9IChidWZmZXJbb2Zmc2V0ICsgMl0gJiAweEYwKSA+Pj4gNDtcblxuICAgIGNvbnN0IHZlcnNpb24gPSAoYnVmZmVyW29mZnNldCArIDNdICYgMHhGMCkgPj4+IDQ7XG5cbiAgICBjb25zdCBzb3J0SWQgPSBidWZmZXJbb2Zmc2V0ICsgNF07XG5cbiAgICByZXR1cm4gbmV3IHRoaXMobGNpZCwgZmxhZ3MsIHZlcnNpb24sIHNvcnRJZCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihsY2lkOiBudW1iZXIsIGZsYWdzOiBudW1iZXIsIHZlcnNpb246IG51bWJlciwgc29ydElkOiBudW1iZXIpIHtcbiAgICB0aGlzLmJ1ZmZlciA9IHVuZGVmaW5lZDtcblxuICAgIHRoaXMubGNpZCA9IGxjaWQ7XG4gICAgdGhpcy5mbGFncyA9IGZsYWdzO1xuICAgIHRoaXMudmVyc2lvbiA9IHZlcnNpb247XG4gICAgdGhpcy5zb3J0SWQgPSBzb3J0SWQ7XG5cbiAgICBpZiAodGhpcy5mbGFncyAmIEZsYWdzLlVURjgpIHtcbiAgICAgIHRoaXMuY29kZXBhZ2UgPSAndXRmLTgnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zb3J0SWQpIHtcbiAgICAgIHRoaXMuY29kZXBhZ2UgPSBjb2RlcGFnZUJ5U29ydElkW3RoaXMuc29ydElkXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlIGxhc3QgMTYgYml0cyBvZiB0aGUgTENJRCBhcmUgdGhlIGxhbmd1YWdlIGlkLlxuICAgICAgLy8gVGhlIGZpcnN0IDQgYml0cyBkZWZpbmUgYWRkaXRpb25hbCBzb3J0IG9yZGVycy5cbiAgICAgIGNvbnN0IGxhbmd1YWdlSWQgPSB0aGlzLmxjaWQgJiAweEZGRkY7XG4gICAgICB0aGlzLmNvZGVwYWdlID0gY29kZXBhZ2VCeUxhbmd1YWdlSWRbbGFuZ3VhZ2VJZF07XG4gICAgfVxuICB9XG5cbiAgdG9CdWZmZXIoKTogQnVmZmVyIHtcbiAgICBpZiAodGhpcy5idWZmZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmJ1ZmZlcjtcbiAgICB9XG5cbiAgICB0aGlzLmJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg1KTtcblxuICAgIHRoaXMuYnVmZmVyWzBdID0gdGhpcy5sY2lkICYgMHhGRjtcbiAgICB0aGlzLmJ1ZmZlclsxXSA9ICh0aGlzLmxjaWQgPj4+IDgpICYgMHhGRjtcbiAgICB0aGlzLmJ1ZmZlclsyXSA9ICgodGhpcy5sY2lkID4+PiAxNikgJiAweDBGKSB8ICgodGhpcy5mbGFncyAmIDB4MEYpIDw8IDQpO1xuICAgIHRoaXMuYnVmZmVyWzNdID0gKCh0aGlzLmZsYWdzICYgMHhGMCkgPj4+IDQpIHwgKCh0aGlzLnZlcnNpb24gJiAweDBGKSA8PCA0KTtcbiAgICB0aGlzLmJ1ZmZlcls0XSA9IHRoaXMuc29ydElkICYgMHhGRjtcblxuICAgIHJldHVybiB0aGlzLmJ1ZmZlcjtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQTtBQUNPLE1BQU1BLG9CQUFpRCxHQUFHO0VBQy9EO0VBQ0EsQ0FBQyxNQUFELEdBQVUsUUFGcUQ7RUFJL0Q7RUFDQTtF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
|