botframework-webchat 4.15.0 → 4.15.2-main.20220413.be12d69
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/FullComposer.d.ts.map +1 -1
- package/lib/FullComposer.js +3 -3
- package/lib/FullReactWebChat.js +2 -2
- package/lib/adaptiveCards/Attachment/AdaptiveCardAttachment.d.ts +1 -1
- package/lib/adaptiveCards/Attachment/AdaptiveCardAttachment.d.ts.map +1 -1
- package/lib/adaptiveCards/Attachment/AdaptiveCardAttachment.js +3 -1
- package/lib/adaptiveCards/Attachment/AdaptiveCardBuilder.d.ts +1 -1
- package/lib/adaptiveCards/Attachment/AdaptiveCardBuilder.d.ts.map +1 -1
- package/lib/adaptiveCards/Attachment/AdaptiveCardBuilder.js +1 -1
- package/lib/adaptiveCards/Attachment/AdaptiveCardContent.js +2 -2
- package/lib/adaptiveCards/Attachment/AdaptiveCardRenderer.d.ts +1 -1
- package/lib/adaptiveCards/Attachment/AdaptiveCardRenderer.d.ts.map +1 -1
- package/lib/adaptiveCards/Attachment/AdaptiveCardRenderer.js +1 -1
- package/lib/adaptiveCards/Attachment/AnimationCardContent.d.ts +1 -1
- package/lib/adaptiveCards/Attachment/AnimationCardContent.d.ts.map +1 -1
- package/lib/adaptiveCards/Attachment/AnimationCardContent.js +3 -1
- package/lib/adaptiveCards/Attachment/AudioCardContent.d.ts +1 -1
- package/lib/adaptiveCards/Attachment/AudioCardContent.d.ts.map +1 -1
- package/lib/adaptiveCards/Attachment/AudioCardContent.js +3 -1
- package/lib/adaptiveCards/Attachment/HeroCardContent.d.ts +1 -1
- package/lib/adaptiveCards/Attachment/HeroCardContent.d.ts.map +1 -1
- package/lib/adaptiveCards/Attachment/HeroCardContent.js +4 -2
- package/lib/adaptiveCards/Attachment/OAuthCardContent.d.ts +1 -1
- package/lib/adaptiveCards/Attachment/OAuthCardContent.d.ts.map +1 -1
- package/lib/adaptiveCards/Attachment/OAuthCardContent.js +3 -1
- package/lib/adaptiveCards/Attachment/ReceiptCardContent.d.ts +1 -1
- package/lib/adaptiveCards/Attachment/ReceiptCardContent.d.ts.map +1 -1
- package/lib/adaptiveCards/Attachment/ReceiptCardContent.js +3 -1
- package/lib/adaptiveCards/Attachment/SignInCardContent.d.ts +1 -1
- package/lib/adaptiveCards/Attachment/SignInCardContent.d.ts.map +1 -1
- package/lib/adaptiveCards/Attachment/SignInCardContent.js +1 -1
- package/lib/adaptiveCards/Attachment/ThumbnailCardContent.d.ts +1 -1
- package/lib/adaptiveCards/Attachment/ThumbnailCardContent.d.ts.map +1 -1
- package/lib/adaptiveCards/Attachment/ThumbnailCardContent.js +3 -1
- package/lib/adaptiveCards/Attachment/VideoCardContent.d.ts +1 -1
- package/lib/adaptiveCards/Attachment/VideoCardContent.d.ts.map +1 -1
- package/lib/adaptiveCards/Attachment/VideoCardContent.js +5 -3
- package/lib/adaptiveCards/Styles/adaptiveCardHostConfig.js +2 -2
- package/lib/adaptiveCards/Styles/createAdaptiveCardsStyleSet.js +2 -2
- package/lib/adaptiveCards/normalizeStyleOptions.js +2 -2
- package/lib/addVersion.js +2 -2
- package/lib/createDirectLineSpeechAdapters.d.ts +1 -1
- package/lib/createDirectLineSpeechAdapters.d.ts.map +1 -1
- package/lib/createDirectLineSpeechAdapters.js +1 -1
- package/lib/createFullStyleSet.d.ts +1 -1
- package/lib/createFullStyleSet.js +2 -2
- package/lib/fullBundleDefaultStyleOptions.js +2 -2
- package/lib/index-es5.js +2 -2
- package/lib/index-minimal.js +2 -2
- package/lib/index.d.ts +20 -8
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/speech/bytesPerSample.d.ts.map +1 -1
- package/lib/speech/bytesPerSample.js +3 -1
- package/lib/speech/createMicrophoneAudioConfigAndAudioContext.d.ts.map +1 -1
- package/lib/speech/createMicrophoneAudioConfigAndAudioContext.js +3 -1
- package/lib/speech/getUserMedia.d.ts.map +1 -1
- package/lib/speech/getUserMedia.js +5 -2
- package/package.json +38 -31
- package/src/FullComposer.tsx +2 -0
- package/src/adaptiveCards/Attachment/AdaptiveCardAttachment.tsx +3 -1
- package/src/adaptiveCards/Attachment/AdaptiveCardBuilder.ts +2 -1
- package/src/adaptiveCards/Attachment/AdaptiveCardRenderer.tsx +1 -1
- package/src/adaptiveCards/Attachment/AnimationCardContent.tsx +3 -1
- package/src/adaptiveCards/Attachment/AudioCardContent.tsx +3 -1
- package/src/adaptiveCards/Attachment/HeroCardContent.tsx +4 -2
- package/src/adaptiveCards/Attachment/OAuthCardContent.tsx +3 -1
- package/src/adaptiveCards/Attachment/ReceiptCardContent.tsx +28 -48
- package/src/adaptiveCards/Attachment/SignInCardContent.tsx +1 -1
- package/src/adaptiveCards/Attachment/ThumbnailCardContent.tsx +3 -1
- package/src/adaptiveCards/Attachment/VideoCardContent.tsx +5 -3
- package/src/createDirectLineSpeechAdapters.ts +1 -1
- package/src/speech/bytesPerSample.ts +2 -0
- package/src/speech/createMicrophoneAudioConfigAndAudioContext.ts +2 -0
- package/src/speech/getUserMedia.ts +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullComposer.d.ts","sourceRoot":"","sources":["../src/FullComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAsB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAIpE,aAAK,iBAAiB,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAE5D,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"FullComposer.d.ts","sourceRoot":"","sources":["../src/FullComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAsB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAIpE,aAAK,iBAAiB,GAAG,aAAa,GAAG,kBAAkB,CAAC;AAE5D,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAUvC,CAAC;AAgBF,eAAe,YAAY,CAAC;AAE5B,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
|
package/lib/FullComposer.js
CHANGED
|
@@ -19,9 +19,9 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
19
19
|
|
|
20
20
|
var _AddFullBundle = _interopRequireDefault(require("./AddFullBundle"));
|
|
21
21
|
|
|
22
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
22
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
23
23
|
|
|
24
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
24
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
25
25
|
|
|
26
26
|
var Composer = _botframeworkWebchatComponent.Components.Composer;
|
|
27
27
|
|
|
@@ -43,4 +43,4 @@ FullComposer.propTypes = _objectSpread(_objectSpread({}, Composer.propTypes), {}
|
|
|
43
43
|
});
|
|
44
44
|
var _default = FullComposer;
|
|
45
45
|
exports.default = _default;
|
|
46
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9GdWxsQ29tcG9zZXIudHN4Il0sIm5hbWVzIjpbIkNvbXBvc2VyIiwiQ29tcG9uZW50cyIsIkZ1bGxDb21wb3NlciIsInByb3BzIiwiZXh0cmFQcm9wcyIsImNoaWxkcmVuIiwiZGVmYXVsdFByb3BzIiwiYWRhcHRpdmVDYXJkc0hvc3RDb25maWciLCJ1bmRlZmluZWQiLCJhZGFwdGl2ZUNhcmRzUGFja2FnZSIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImFueSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7QUFFQSxJQUFRQSxRQUFSLEdBQXFCQyx3Q0FBckIsQ0FBUUQsUUFBUjs7QUFJQSxJQUFNRSxZQUFtQyxHQUFHLFNBQXRDQSxZQUFzQyxDQUFBQyxLQUFLO0FBQUEsc0JBQy9DLDZCQUFDLHNCQUFELEVBQW1CQSxLQUFuQixFQUNHLFVBQUFDLFVBQVU7QUFBQSx3QkFDVCw2QkFBQyxRQUFELDZCQUFjRCxLQUFkLEVBQXlCQyxVQUF6QixHQUdHRCxLQUFLLENBQUNFLFFBSFQsQ0FEUztBQUFBLEdBRGIsQ0FEK0M7QUFBQSxDQUFqRDs7QUFZQUgsWUFBWSxDQUFDSSxZQUFiLG1DQUNLTixRQUFRLENBQUNNLFlBRGQ7QUFFRUMsRUFBQUEsdUJBQXVCLEVBQUVDLFNBRjNCO0FBR0VDLEVBQUFBLG9CQUFvQixFQUFFRCxTQUh4QjtBQUlFSCxFQUFBQSxRQUFRLEVBQUVHO0FBSlo7QUFPQU4sWUFBWSxDQUFDUSxTQUFiLG1DQUNLVixRQUFRLENBQUNVLFNBRGQ7QUFFRUgsRUFBQUEsdUJBQXVCLEVBQUVJLG1CQUFVQyxHQUZyQztBQUdFSCxFQUFBQSxvQkFBb0IsRUFBRUUsbUJBQVVDLEdBSGxDO0FBSUVQLEVBQUFBLFFBQVEsRUFBRU0sbUJBQVVDO0FBSnRCO2VBT2VWLFkiLCJzb3VyY2VSb290IjoiYnVuZGxlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvc2VyUHJvcHMgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1hcGknO1xuaW1wb3J0IHsgQ29tcG9uZW50cyB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWNvbXBvbmVudCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IEZDIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgQWRkRnVsbEJ1bmRsZSwgeyBBZGRGdWxsQnVuZGxlUHJvcHMgfSBmcm9tICcuL0FkZEZ1bGxCdW5kbGUnO1xuXG5jb25zdCB7IENvbXBvc2VyIH0gPSBDb21wb25lbnRzO1xuXG50eXBlIEZ1bGxDb21wb3NlclByb3BzID0gQ29tcG9zZXJQcm9wcyAmIEFkZEZ1bGxCdW5kbGVQcm9wcztcblxuY29uc3QgRnVsbENvbXBvc2VyOiBGQzxGdWxsQ29tcG9zZXJQcm9wcz4gPSBwcm9wcyA9PiAoXG4gIDxBZGRGdWxsQnVuZGxlIHsuLi5wcm9wc30+XG4gICAge2V4dHJhUHJvcHMgPT4gKFxuICAgICAgPENvbXBvc2VyIHsuLi5wcm9wc30gey4uLmV4dHJhUHJvcHN9PlxuICAgICAgICB7LyogV2UgbmVlZCB0byBzcHJlYWQsIHRodXMsIHdlIGNhbm5vdCB3ZSBkZXN0cnVjdHVyaW5nIGFzc2lnbm1lbnQuICovfVxuICAgICAgICB7LyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L2Rlc3RydWN0dXJpbmctYXNzaWdubWVudCAqL31cbiAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgPC9Db21wb3Nlcj5cbiAgICApfVxuICA8L0FkZEZ1bGxCdW5kbGU+XG4pO1xuXG5GdWxsQ29tcG9zZXIuZGVmYXVsdFByb3BzID0ge1xuICAuLi5Db21wb3Nlci5kZWZhdWx0UHJvcHMsXG4gIGFkYXB0aXZlQ2FyZHNIb3N0Q29uZmlnOiB1bmRlZmluZWQsXG4gIGFkYXB0aXZlQ2FyZHNQYWNrYWdlOiB1bmRlZmluZWQsXG4gIGNoaWxkcmVuOiB1bmRlZmluZWRcbn07XG5cbkZ1bGxDb21wb3Nlci5wcm9wVHlwZXMgPSB7XG4gIC4uLkNvbXBvc2VyLnByb3BUeXBlcyxcbiAgYWRhcHRpdmVDYXJkc0hvc3RDb25maWc6IFByb3BUeXBlcy5hbnksXG4gIGFkYXB0aXZlQ2FyZHNQYWNrYWdlOiBQcm9wVHlwZXMuYW55LFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRnVsbENvbXBvc2VyO1xuXG5leHBvcnQgdHlwZSB7IEZ1bGxDb21wb3NlclByb3BzIH07XG4iXX0=
|
package/lib/FullReactWebChat.js
CHANGED
|
@@ -19,9 +19,9 @@ var _botframeworkWebchatComponent = _interopRequireDefault(require("botframework
|
|
|
19
19
|
|
|
20
20
|
var _AddFullBundle = _interopRequireDefault(require("./AddFullBundle"));
|
|
21
21
|
|
|
22
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
22
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
23
23
|
|
|
24
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
24
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
25
25
|
|
|
26
26
|
// Add additional props to <WebChat>, so it support additional features
|
|
27
27
|
var FullReactWebChat = function FullReactWebChat(props) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DirectLineAttachment } from 'botframework-webchat-core';
|
|
2
1
|
import { FC } from 'react';
|
|
2
|
+
import type { DirectLineAttachment } from 'botframework-webchat-core';
|
|
3
3
|
declare type AdaptiveCardAttachmentProps = {
|
|
4
4
|
attachment: DirectLineAttachment;
|
|
5
5
|
disabled?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdaptiveCardAttachment.d.ts","sourceRoot":"","sources":["../../../src/adaptiveCards/Attachment/AdaptiveCardAttachment.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AdaptiveCardAttachment.d.ts","sourceRoot":"","sources":["../../../src/adaptiveCards/Attachment/AdaptiveCardAttachment.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAItE,aAAK,2BAA2B,GAAG;IACjC,UAAU,EAAE,oBAAoB,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,sBAAsB,EAAE,EAAE,CAAC,2BAA2B,CAE3D,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -28,9 +28,11 @@ AdaptiveCardAttachment.defaultProps = {
|
|
|
28
28
|
disabled: undefined
|
|
29
29
|
};
|
|
30
30
|
AdaptiveCardAttachment.propTypes = {
|
|
31
|
+
// PropTypes cannot fully capture TypeScript types.
|
|
32
|
+
// @ts-ignore
|
|
31
33
|
attachment: _propTypes.default.shape({
|
|
32
34
|
content: _propTypes.default.any.isRequired
|
|
33
35
|
}).isRequired,
|
|
34
36
|
disabled: _propTypes.default.bool
|
|
35
37
|
};
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkQXR0YWNobWVudC50c3giXSwibmFtZXMiOlsiQWRhcHRpdmVDYXJkQXR0YWNobWVudCIsImNvbnRlbnQiLCJhdHRhY2htZW50IiwiZGlzYWJsZWQiLCJkZWZhdWx0UHJvcHMiLCJ1bmRlZmluZWQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzaGFwZSIsImFueSIsImlzUmVxdWlyZWQiLCJib29sIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFHQTs7QUFPQSxJQUFNQSxzQkFBdUQsR0FBRyxTQUExREEsc0JBQTBEO0FBQUEsTUFBaUJDLE9BQWpCLFFBQUdDLFVBQUgsQ0FBaUJELE9BQWpCO0FBQUEsTUFBNEJFLFFBQTVCLFFBQTRCQSxRQUE1QjtBQUFBLHNCQUM5RCw2QkFBQyw0QkFBRDtBQUFxQixJQUFBLE9BQU8sRUFBRUYsT0FBOUI7QUFBdUMsSUFBQSxRQUFRLEVBQUVFO0FBQWpELElBRDhEO0FBQUEsQ0FBaEU7O2VBSWVILHNCOztBQUVmQSxzQkFBc0IsQ0FBQ0ksWUFBdkIsR0FBc0M7QUFDcENELEVBQUFBLFFBQVEsRUFBRUU7QUFEMEIsQ0FBdEM7QUFJQUwsc0JBQXNCLENBQUNNLFNBQXZCLEdBQW1DO0FBQ2pDO0FBQ0E7QUFDQUosRUFBQUEsVUFBVSxFQUFFSyxtQkFBVUMsS0FBVixDQUFnQjtBQUMxQlAsSUFBQUEsT0FBTyxFQUFFTSxtQkFBVUUsR0FBVixDQUFjQztBQURHLEdBQWhCLEVBRVRBLFVBTDhCO0FBTWpDUCxFQUFBQSxRQUFRLEVBQUVJLG1CQUFVSTtBQU5hLENBQW5DIiwic291cmNlUm9vdCI6ImJ1bmRsZTovLy8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IEZDIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBEaXJlY3RMaW5lQXR0YWNobWVudCB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWNvcmUnO1xuXG5pbXBvcnQgQWRhcHRpdmVDYXJkQ29udGVudCBmcm9tICcuL0FkYXB0aXZlQ2FyZENvbnRlbnQnO1xuXG50eXBlIEFkYXB0aXZlQ2FyZEF0dGFjaG1lbnRQcm9wcyA9IHtcbiAgYXR0YWNobWVudDogRGlyZWN0TGluZUF0dGFjaG1lbnQ7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IEFkYXB0aXZlQ2FyZEF0dGFjaG1lbnQ6IEZDPEFkYXB0aXZlQ2FyZEF0dGFjaG1lbnRQcm9wcz4gPSAoeyBhdHRhY2htZW50OiB7IGNvbnRlbnQgfSwgZGlzYWJsZWQgfSkgPT4gKFxuICA8QWRhcHRpdmVDYXJkQ29udGVudCBjb250ZW50PXtjb250ZW50fSBkaXNhYmxlZD17ZGlzYWJsZWR9IC8+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBBZGFwdGl2ZUNhcmRBdHRhY2htZW50O1xuXG5BZGFwdGl2ZUNhcmRBdHRhY2htZW50LmRlZmF1bHRQcm9wcyA9IHtcbiAgZGlzYWJsZWQ6IHVuZGVmaW5lZFxufTtcblxuQWRhcHRpdmVDYXJkQXR0YWNobWVudC5wcm9wVHlwZXMgPSB7XG4gIC8vIFByb3BUeXBlcyBjYW5ub3QgZnVsbHkgY2FwdHVyZSBUeXBlU2NyaXB0IHR5cGVzLlxuICAvLyBAdHMtaWdub3JlXG4gIGF0dGFjaG1lbnQ6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgY29udGVudDogUHJvcFR5cGVzLmFueS5pc1JlcXVpcmVkXG4gIH0pLmlzUmVxdWlyZWQsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbFxufTtcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AdaptiveCard, CardElement, Column, Container, TextBlock } from 'adaptivecards';
|
|
2
|
-
import { DirectLineCardAction } from 'botframework-webchat-core';
|
|
2
|
+
import type { DirectLineCardAction } from 'botframework-webchat-core';
|
|
3
3
|
import AdaptiveCardsPackage from '../../types/AdaptiveCardsPackage';
|
|
4
4
|
import AdaptiveCardsStyleOptions from '../AdaptiveCardsStyleOptions';
|
|
5
5
|
export interface BotFrameworkCardAction {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdaptiveCardBuilder.d.ts","sourceRoot":"","sources":["../../../src/adaptiveCards/Attachment/AdaptiveCardBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,MAAM,EAEN,SAAS,EAOT,SAAS,EAIV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"AdaptiveCardBuilder.d.ts","sourceRoot":"","sources":["../../../src/adaptiveCards/Attachment/AdaptiveCardBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,MAAM,EAEN,SAAS,EAOT,SAAS,EAIV,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AACpE,OAAO,yBAAyB,MAAM,8BAA8B,CAAC;AAErE,MAAM,WAAW,sBAAsB;IACrC,0BAA0B,EAAE,IAAI,CAAC;IACjC,UAAU,EAAE,oBAAoB,CAAC;CAClC;AA8BD,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACtC,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,yBAAyB,CAAC;gBAGtC,aAAa,EAAE,oBAAoB,EACnC,YAAY,EAAE,yBAAyB,EACvC,SAAS,GAAE,KAAK,GAAG,KAAK,GAAG,MAAc;IAU3C,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,SAA0B,EAAE,YAAY,CAAC,EAAE,oBAAoB;IAiBxG,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,SAAS,GAAE,SAA0B;IAI3E,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,GAAE,SAA0B;IAkB9F,UAAU,CAAC,WAAW,EAAE,oBAAoB,EAAE,EAAE,oBAAoB,CAAC,EAAE,OAAO;IAO9E,gBAAgB,CAAC,OAAO,EAAE,cAAc;IAaxC,SAAS,CAAC,OAAO,EAAE,cAAc;IAKjC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,MAAM;CAYnG;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -146,4 +146,4 @@ var AdaptiveCardBuilder = /*#__PURE__*/function () {
|
|
|
146
146
|
}();
|
|
147
147
|
|
|
148
148
|
exports.default = AdaptiveCardBuilder;
|
|
149
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkQnVpbGRlci50cyJdLCJuYW1lcyI6WyJhZGRDYXJkQWN0aW9uIiwiY2FyZEFjdGlvbiIsImluY2x1ZGVzT0F1dGhCdXR0b25zIiwidHlwZSIsImFjdGlvbiIsIlN1Ym1pdEFjdGlvbiIsImRhdGEiLCJfX2lzQm90RnJhbWV3b3JrQ2FyZEFjdGlvbiIsInRpdGxlIiwiT3BlblVybEFjdGlvbiIsInVybCIsInZhbHVlIiwiQWRhcHRpdmVDYXJkQnVpbGRlciIsImFkYXB0aXZlQ2FyZHMiLCJzdHlsZU9wdGlvbnMiLCJkaXJlY3Rpb24iLCJjYXJkIiwiQWRhcHRpdmVDYXJkIiwiY29udGFpbmVyIiwiQ29udGFpbmVyIiwicnRsIiwiYWRkSXRlbSIsInNpemVzIiwic2VsZWN0QWN0aW9uIiwiY29sdW1uU2V0IiwiQ29sdW1uU2V0IiwibWFwIiwic2l6ZSIsImNvbHVtbiIsIkNvbHVtbiIsIndpZHRoIiwiU2l6ZUFuZFVuaXQiLCJTaXplVW5pdCIsIldlaWdodCIsImFkZENvbHVtbiIsImNhcmRFbGVtZW50cyIsImZvckVhY2giLCJjYXJkRWxlbWVudCIsInRleHQiLCJ0ZW1wbGF0ZSIsInRleHRibG9jayIsIlRleHRCbG9jayIsInByb3AiLCJjYXJkQWN0aW9ucyIsImFkZEFjdGlvbiIsImNvbnRlbnQiLCJyaWNoQ2FyZFdyYXBUaXRsZSIsImFkZFRleHRCbG9jayIsImNvbG9yIiwiVGV4dENvbG9yIiwiRGVmYXVsdCIsIlRleHRTaXplIiwiTWVkaXVtIiwic3R5bGUiLCJ3ZWlnaHQiLCJUZXh0V2VpZ2h0IiwiQm9sZGVyIiwid3JhcCIsInN1YnRpdGxlIiwiaXNTdWJ0bGUiLCJhZGRDb21tb25IZWFkZXJzIiwiYWRkQnV0dG9ucyIsImJ1dHRvbnMiLCJhbHRUZXh0IiwiaW1hZ2UiLCJJbWFnZSIsIlNpemUiLCJTdHJldGNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFrQkE7O0FBU0EsU0FBU0EsYUFBVCxDQUF1QkMsVUFBdkIsRUFBeURDLG9CQUF6RCxFQUF5RjtBQUN2RixNQUFRQyxJQUFSLEdBQWlCRixVQUFqQixDQUFRRSxJQUFSO0FBQ0EsTUFBSUMsTUFBSjs7QUFFQSxNQUNFRCxJQUFJLEtBQUssUUFBVCxJQUNBQSxJQUFJLEtBQUssYUFEVCxJQUVBQSxJQUFJLEtBQUssVUFGVCxJQUdDQSxJQUFJLEtBQUssUUFBVCxJQUFxQkQsb0JBSnhCLEVBS0U7QUFDQUUsSUFBQUEsTUFBTSxHQUFHLElBQUlDLDJCQUFKLEVBQVQ7QUFFQUQsSUFBQUEsTUFBTSxDQUFDRSxJQUFQLEdBQWM7QUFDWkMsTUFBQUEsMEJBQTBCLEVBQUUsSUFEaEI7QUFFWk4sTUFBQUEsVUFBVSxFQUFWQTtBQUZZLEtBQWQ7QUFLQUcsSUFBQUEsTUFBTSxDQUFDSSxLQUFQLEdBQWdCUCxVQUFELENBQWtDTyxLQUFqRDtBQUNELEdBZEQsTUFjTztBQUNMSixJQUFBQSxNQUFNLEdBQUcsSUFBSUssNEJBQUosRUFBVDtBQUVBTCxJQUFBQSxNQUFNLENBQUNJLEtBQVAsR0FBZ0JQLFVBQUQsQ0FBa0NPLEtBQWpEO0FBQ0FKLElBQUFBLE1BQU0sQ0FBQ00sR0FBUCxHQUFhVCxVQUFVLENBQUNFLElBQVgsS0FBb0IsTUFBcEIsaUJBQW9DRixVQUFVLENBQUNVLEtBQS9DLElBQXlEVixVQUFVLENBQUNVLEtBQWpGO0FBQ0Q7O0FBRUQsU0FBT1AsTUFBUDtBQUNEOztJQUVvQlEsbUI7QUFLbkIsK0JBQ0VDLGFBREYsRUFFRUMsWUFGRixFQUlFO0FBQUEsUUFEQUMsU0FDQSx1RUFEb0MsS0FDcEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBLFNBQUtDLElBQUwsR0FBWSxJQUFJSCxhQUFhLENBQUNJLFlBQWxCLEVBQVo7QUFDQSxTQUFLQyxTQUFMLEdBQWlCLElBQUlDLHdCQUFKLEVBQWpCO0FBQ0EsU0FBS0QsU0FBTCxDQUFlRSxHQUFmLEdBQXFCTCxTQUFTLEtBQUssS0FBbkM7QUFDQSxTQUFLRCxZQUFMLEdBQW9CQSxZQUFwQjtBQUVBLFNBQUtFLElBQUwsQ0FBVUssT0FBVixDQUFrQixLQUFLSCxTQUF2QjtBQUNEOzs7O1dBRUQsc0JBQWFJLEtBQWIsRUFBMEc7QUFBQSxVQUE1RUosU0FBNEUsdUVBQXJELEtBQUtBLFNBQWdEO0FBQUEsVUFBckNLLFlBQXFDO0FBQ3hHLFVBQU1DLFNBQVMsR0FBRyxJQUFJQyx3QkFBSixFQUFsQjtBQUVBRCxNQUFBQSxTQUFTLENBQUNELFlBQVYsR0FBeUJBLFlBQVksSUFBSXZCLGFBQWEsQ0FBQ3VCLFlBQUQsQ0FBdEQ7QUFDQUwsTUFBQUEsU0FBUyxDQUFDRyxPQUFWLENBQWtCRyxTQUFsQjtBQUVBLGFBQU9GLEtBQUssQ0FBQ0ksR0FBTixDQUFVLFVBQUFDLElBQUksRUFBSTtBQUN2QixZQUFNQyxNQUFNLEdBQUcsSUFBSUMscUJBQUosRUFBZjtBQUVBRCxRQUFBQSxNQUFNLENBQUNFLEtBQVAsR0FBZSxJQUFJQywwQkFBSixDQUFnQkosSUFBaEIsRUFBc0JLLHdCQUFTQyxNQUEvQixDQUFmO0FBRUFULFFBQUFBLFNBQVMsQ0FBQ1UsU0FBVixDQUFvQk4sTUFBcEI7QUFFQSxlQUFPQSxNQUFQO0FBQ0QsT0FSTSxDQUFQO0FBU0Q7OztXQUVELGtCQUFTTyxZQUFULEVBQTZFO0FBQUEsVUFBdkNqQixTQUF1Qyx1RUFBaEIsS0FBS0EsU0FBVztBQUMzRWlCLE1BQUFBLFlBQVksQ0FBQ0MsT0FBYixDQUFxQixVQUFBQyxXQUFXO0FBQUEsZUFBSW5CLFNBQVMsQ0FBQ0csT0FBVixDQUFrQmdCLFdBQWxCLENBQUo7QUFBQSxPQUFoQztBQUNEOzs7V0FFRCxzQkFBYUMsSUFBYixFQUEyQkMsUUFBM0IsRUFBZ0c7QUFBQSxVQUF2Q3JCLFNBQXVDLHVFQUFoQixLQUFLQSxTQUFXOztBQUM5RixVQUFJLE9BQU9vQixJQUFQLEtBQWdCLFdBQXBCLEVBQWlDO0FBQy9CLFlBQU1FLFNBQVMsR0FBRyxJQUFJQyx3QkFBSixFQUFsQjs7QUFFQSxhQUFLLElBQU1DLElBQVgsSUFBbUJILFFBQW5CLEVBQTZCO0FBQzNCLGNBQUksQ0FBQyxzREFBd0JHLElBQXhCLENBQUwsRUFBb0M7QUFDbEM7QUFDQTtBQUNBRixZQUFBQSxTQUFTLENBQUNFLElBQUQsQ0FBVCxHQUFrQkgsUUFBUSxDQUFDRyxJQUFELENBQTFCO0FBQ0Q7QUFDRjs7QUFFREYsUUFBQUEsU0FBUyxDQUFDRixJQUFWLEdBQWlCQSxJQUFqQjtBQUVBcEIsUUFBQUEsU0FBUyxDQUFDRyxPQUFWLENBQWtCbUIsU0FBbEI7QUFDRDtBQUNGOzs7V0FFRCxvQkFBV0csV0FBWCxFQUFnRHpDLG9CQUFoRCxFQUFnRjtBQUFBOztBQUM5RXlDLE1BQUFBLFdBQVcsSUFDVEEsV0FBVyxDQUFDUCxPQUFaLENBQW9CLFVBQUFuQyxVQUFVLEVBQUk7QUFDaEMsUUFBQSxLQUFJLENBQUNlLElBQUwsQ0FBVTRCLFNBQVYsQ0FBb0I1QyxhQUFhLENBQUNDLFVBQUQsRUFBYUMsb0JBQWIsQ0FBakM7QUFDRCxPQUZELENBREY7QUFJRDs7O1dBRUQsMEJBQWlCMkMsT0FBakIsRUFBMEM7QUFDeEMsVUFBUUMsaUJBQVIsR0FBOEIsS0FBS2hDLFlBQW5DLENBQVFnQyxpQkFBUjtBQUNBLFdBQUtDLFlBQUwsQ0FBa0JGLE9BQU8sQ0FBQ3JDLEtBQTFCLEVBQWlDO0FBQy9Cd0MsUUFBQUEsS0FBSyxFQUFFQyx5QkFBVUMsT0FEYztBQUUvQnZCLFFBQUFBLElBQUksRUFBRXdCLHdCQUFTQyxNQUZnQjtBQUcvQkMsUUFBQUEsS0FBSyxFQUFFLFNBSHdCO0FBSS9CQyxRQUFBQSxNQUFNLEVBQUVDLDBCQUFXQyxNQUpZO0FBSy9CQyxRQUFBQSxJQUFJLEVBQUVYO0FBTHlCLE9BQWpDO0FBT0EsV0FBS0MsWUFBTCxDQUFrQkYsT0FBTyxDQUFDYSxRQUExQixFQUFvQztBQUFFVixRQUFBQSxLQUFLLEVBQUVDLHlCQUFVQyxPQUFuQjtBQUE0QlMsUUFBQUEsUUFBUSxFQUFFLElBQXRDO0FBQTRDRixRQUFBQSxJQUFJLEVBQUVYO0FBQWxELE9BQXBDO0FBQ0EsV0FBS0MsWUFBTCxDQUFrQkYsT0FBTyxDQUFDUCxJQUExQixFQUFnQztBQUFFVSxRQUFBQSxLQUFLLEVBQUVDLHlCQUFVQyxPQUFuQjtBQUE0Qk8sUUFBQUEsSUFBSSxFQUFFO0FBQWxDLE9BQWhDO0FBQ0Q7OztXQUVELG1CQUFVWixPQUFWLEVBQW1DO0FBQ2pDLFdBQUtlLGdCQUFMLENBQXNCZixPQUF0QjtBQUNBLFdBQUtnQixVQUFMLENBQWdCaEIsT0FBTyxDQUFDaUIsT0FBeEI7QUFDRDs7O1dBRUQsa0JBQVNwRCxHQUFULEVBQXNCUSxTQUF0QixFQUE2Q0ssWUFBN0MsRUFBa0Z3QyxPQUFsRixFQUFvRztBQUNsRzdDLE1BQUFBLFNBQVMsR0FBR0EsU0FBUyxJQUFJLEtBQUtBLFNBQTlCO0FBRUEsVUFBTThDLEtBQUssR0FBRyxJQUFJQyxvQkFBSixFQUFkO0FBRUFELE1BQUFBLEtBQUssQ0FBQ0QsT0FBTixHQUFnQkEsT0FBaEI7QUFDQUMsTUFBQUEsS0FBSyxDQUFDdEQsR0FBTixHQUFZQSxHQUFaO0FBQ0FzRCxNQUFBQSxLQUFLLENBQUN6QyxZQUFOLEdBQXFCQSxZQUFZLElBQUl2QixhQUFhLENBQUN1QixZQUFELENBQWxEO0FBQ0F5QyxNQUFBQSxLQUFLLENBQUNyQyxJQUFOLEdBQWF1QyxvQkFBS0MsT0FBbEI7QUFFQWpELE1BQUFBLFNBQVMsQ0FBQ0csT0FBVixDQUFrQjJDLEtBQWxCO0FBQ0QiLCJzb3VyY2VSb290IjoiYnVuZGxlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFkYXB0aXZlQ2FyZCxcbiAgQ2FyZEVsZW1lbnQsXG4gIENvbHVtbixcbiAgQ29sdW1uU2V0LFxuICBDb250YWluZXIsXG4gIEltYWdlLFxuICBPcGVuVXJsQWN0aW9uLFxuICBTaXplLFxuICBTaXplQW5kVW5pdCxcbiAgU2l6ZVVuaXQsXG4gIFN1Ym1pdEFjdGlvbixcbiAgVGV4dEJsb2NrLFxuICBUZXh0Q29sb3IsXG4gIFRleHRTaXplLFxuICBUZXh0V2VpZ2h0XG59IGZyb20gJ2FkYXB0aXZlY2FyZHMnO1xuXG5pbXBvcnQgeyBEaXJlY3RMaW5lQ2FyZEFjdGlvbiwgaXNGb3JiaWRkZW5Qcm9wZXJ0eU5hbWUgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcbmltcG9ydCBBZGFwdGl2ZUNhcmRzUGFja2FnZSBmcm9tICcuLi8uLi90eXBlcy9BZGFwdGl2ZUNhcmRzUGFja2FnZSc7XG5pbXBvcnQgQWRhcHRpdmVDYXJkc1N0eWxlT3B0aW9ucyBmcm9tICcuLi9BZGFwdGl2ZUNhcmRzU3R5bGVPcHRpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBCb3RGcmFtZXdvcmtDYXJkQWN0aW9uIHtcbiAgX19pc0JvdEZyYW1ld29ya0NhcmRBY3Rpb246IHRydWU7XG4gIGNhcmRBY3Rpb246IERpcmVjdExpbmVDYXJkQWN0aW9uO1xufVxuXG5mdW5jdGlvbiBhZGRDYXJkQWN0aW9uKGNhcmRBY3Rpb246IERpcmVjdExpbmVDYXJkQWN0aW9uLCBpbmNsdWRlc09BdXRoQnV0dG9ucz86IGJvb2xlYW4pIHtcbiAgY29uc3QgeyB0eXBlIH0gPSBjYXJkQWN0aW9uO1xuICBsZXQgYWN0aW9uO1xuXG4gIGlmIChcbiAgICB0eXBlID09PSAnaW1CYWNrJyB8fFxuICAgIHR5cGUgPT09ICdtZXNzYWdlQmFjaycgfHxcbiAgICB0eXBlID09PSAncG9zdEJhY2snIHx8XG4gICAgKHR5cGUgPT09ICdzaWduaW4nICYmIGluY2x1ZGVzT0F1dGhCdXR0b25zKVxuICApIHtcbiAgICBhY3Rpb24gPSBuZXcgU3VibWl0QWN0aW9uKCk7XG5cbiAgICBhY3Rpb24uZGF0YSA9IHtcbiAgICAgIF9faXNCb3RGcmFtZXdvcmtDYXJkQWN0aW9uOiB0cnVlLFxuICAgICAgY2FyZEFjdGlvblxuICAgIH07XG5cbiAgICBhY3Rpb24udGl0bGUgPSAoY2FyZEFjdGlvbiBhcyB7IHRpdGxlOiBzdHJpbmcgfSkudGl0bGU7XG4gIH0gZWxzZSB7XG4gICAgYWN0aW9uID0gbmV3IE9wZW5VcmxBY3Rpb24oKTtcblxuICAgIGFjdGlvbi50aXRsZSA9IChjYXJkQWN0aW9uIGFzIHsgdGl0bGU6IHN0cmluZyB9KS50aXRsZTtcbiAgICBhY3Rpb24udXJsID0gY2FyZEFjdGlvbi50eXBlID09PSAnY2FsbCcgPyBgdGVsOiR7Y2FyZEFjdGlvbi52YWx1ZX1gIDogY2FyZEFjdGlvbi52YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBhY3Rpb247XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFkYXB0aXZlQ2FyZEJ1aWxkZXIge1xuICBjYXJkOiBBZGFwdGl2ZUNhcmQ7XG4gIGNvbnRhaW5lcjogQ29udGFpbmVyO1xuICBzdHlsZU9wdGlvbnM6IEFkYXB0aXZlQ2FyZHNTdHlsZU9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYWRhcHRpdmVDYXJkczogQWRhcHRpdmVDYXJkc1BhY2thZ2UsXG4gICAgc3R5bGVPcHRpb25zOiBBZGFwdGl2ZUNhcmRzU3R5bGVPcHRpb25zLFxuICAgIGRpcmVjdGlvbjogJ2x0cicgfCAncnRsJyB8ICdhdXRvJyA9ICdsdHInXG4gICkge1xuICAgIHRoaXMuY2FyZCA9IG5ldyBhZGFwdGl2ZUNhcmRzLkFkYXB0aXZlQ2FyZCgpO1xuICAgIHRoaXMuY29udGFpbmVyID0gbmV3IENvbnRhaW5lcigpO1xuICAgIHRoaXMuY29udGFpbmVyLnJ0bCA9IGRpcmVjdGlvbiA9PT0gJ3J0bCc7XG4gICAgdGhpcy5zdHlsZU9wdGlvbnMgPSBzdHlsZU9wdGlvbnM7XG5cbiAgICB0aGlzLmNhcmQuYWRkSXRlbSh0aGlzLmNvbnRhaW5lcik7XG4gIH1cblxuICBhZGRDb2x1bW5TZXQoc2l6ZXM6IG51bWJlcltdLCBjb250YWluZXI6IENvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyLCBzZWxlY3RBY3Rpb24/OiBEaXJlY3RMaW5lQ2FyZEFjdGlvbikge1xuICAgIGNvbnN0IGNvbHVtblNldCA9IG5ldyBDb2x1bW5TZXQoKTtcblxuICAgIGNvbHVtblNldC5zZWxlY3RBY3Rpb24gPSBzZWxlY3RBY3Rpb24gJiYgYWRkQ2FyZEFjdGlvbihzZWxlY3RBY3Rpb24pO1xuICAgIGNvbnRhaW5lci5hZGRJdGVtKGNvbHVtblNldCk7XG5cbiAgICByZXR1cm4gc2l6ZXMubWFwKHNpemUgPT4ge1xuICAgICAgY29uc3QgY29sdW1uID0gbmV3IENvbHVtbigpO1xuXG4gICAgICBjb2x1bW4ud2lkdGggPSBuZXcgU2l6ZUFuZFVuaXQoc2l6ZSwgU2l6ZVVuaXQuV2VpZ2h0KTtcblxuICAgICAgY29sdW1uU2V0LmFkZENvbHVtbihjb2x1bW4pO1xuXG4gICAgICByZXR1cm4gY29sdW1uO1xuICAgIH0pO1xuICB9XG5cbiAgYWRkSXRlbXMoY2FyZEVsZW1lbnRzOiBDYXJkRWxlbWVudFtdLCBjb250YWluZXI6IENvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyKSB7XG4gICAgY2FyZEVsZW1lbnRzLmZvckVhY2goY2FyZEVsZW1lbnQgPT4gY29udGFpbmVyLmFkZEl0ZW0oY2FyZEVsZW1lbnQpKTtcbiAgfVxuXG4gIGFkZFRleHRCbG9jayh0ZXh0OiBzdHJpbmcsIHRlbXBsYXRlOiBQYXJ0aWFsPFRleHRCbG9jaz4sIGNvbnRhaW5lcjogQ29udGFpbmVyID0gdGhpcy5jb250YWluZXIpIHtcbiAgICBpZiAodHlwZW9mIHRleHQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zdCB0ZXh0YmxvY2sgPSBuZXcgVGV4dEJsb2NrKCk7XG5cbiAgICAgIGZvciAoY29uc3QgcHJvcCBpbiB0ZW1wbGF0ZSkge1xuICAgICAgICBpZiAoIWlzRm9yYmlkZGVuUHJvcGVydHlOYW1lKHByb3ApKSB7XG4gICAgICAgICAgLy8gTWl0aWdhdGVkIHRocm91Z2ggZGVueWxpc3RpbmcuXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uXG4gICAgICAgICAgdGV4dGJsb2NrW3Byb3BdID0gdGVtcGxhdGVbcHJvcF07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGV4dGJsb2NrLnRleHQgPSB0ZXh0O1xuXG4gICAgICBjb250YWluZXIuYWRkSXRlbSh0ZXh0YmxvY2spO1xuICAgIH1cbiAgfVxuXG4gIGFkZEJ1dHRvbnMoY2FyZEFjdGlvbnM6IERpcmVjdExpbmVDYXJkQWN0aW9uW10sIGluY2x1ZGVzT0F1dGhCdXR0b25zPzogYm9vbGVhbikge1xuICAgIGNhcmRBY3Rpb25zICYmXG4gICAgICBjYXJkQWN0aW9ucy5mb3JFYWNoKGNhcmRBY3Rpb24gPT4ge1xuICAgICAgICB0aGlzLmNhcmQuYWRkQWN0aW9uKGFkZENhcmRBY3Rpb24oY2FyZEFjdGlvbiwgaW5jbHVkZXNPQXV0aEJ1dHRvbnMpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgYWRkQ29tbW9uSGVhZGVycyhjb250ZW50OiBJQ29tbW9uQ29udGVudCkge1xuICAgIGNvbnN0IHsgcmljaENhcmRXcmFwVGl0bGUgfSA9IHRoaXMuc3R5bGVPcHRpb25zO1xuICAgIHRoaXMuYWRkVGV4dEJsb2NrKGNvbnRlbnQudGl0bGUsIHtcbiAgICAgIGNvbG9yOiBUZXh0Q29sb3IuRGVmYXVsdCxcbiAgICAgIHNpemU6IFRleHRTaXplLk1lZGl1bSxcbiAgICAgIHN0eWxlOiAnaGVhZGluZycsXG4gICAgICB3ZWlnaHQ6IFRleHRXZWlnaHQuQm9sZGVyLFxuICAgICAgd3JhcDogcmljaENhcmRXcmFwVGl0bGVcbiAgICB9KTtcbiAgICB0aGlzLmFkZFRleHRCbG9jayhjb250ZW50LnN1YnRpdGxlLCB7IGNvbG9yOiBUZXh0Q29sb3IuRGVmYXVsdCwgaXNTdWJ0bGU6IHRydWUsIHdyYXA6IHJpY2hDYXJkV3JhcFRpdGxlIH0pO1xuICAgIHRoaXMuYWRkVGV4dEJsb2NrKGNvbnRlbnQudGV4dCwgeyBjb2xvcjogVGV4dENvbG9yLkRlZmF1bHQsIHdyYXA6IHRydWUgfSk7XG4gIH1cblxuICBhZGRDb21tb24oY29udGVudDogSUNvbW1vbkNvbnRlbnQpIHtcbiAgICB0aGlzLmFkZENvbW1vbkhlYWRlcnMoY29udGVudCk7XG4gICAgdGhpcy5hZGRCdXR0b25zKGNvbnRlbnQuYnV0dG9ucyk7XG4gIH1cblxuICBhZGRJbWFnZSh1cmw6IHN0cmluZywgY29udGFpbmVyPzogQ29udGFpbmVyLCBzZWxlY3RBY3Rpb24/OiBEaXJlY3RMaW5lQ2FyZEFjdGlvbiwgYWx0VGV4dD86IHN0cmluZykge1xuICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lciB8fCB0aGlzLmNvbnRhaW5lcjtcblxuICAgIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XG5cbiAgICBpbWFnZS5hbHRUZXh0ID0gYWx0VGV4dDtcbiAgICBpbWFnZS51cmwgPSB1cmw7XG4gICAgaW1hZ2Uuc2VsZWN0QWN0aW9uID0gc2VsZWN0QWN0aW9uICYmIGFkZENhcmRBY3Rpb24oc2VsZWN0QWN0aW9uKTtcbiAgICBpbWFnZS5zaXplID0gU2l6ZS5TdHJldGNoO1xuXG4gICAgY29udGFpbmVyLmFkZEl0ZW0oaW1hZ2UpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbW1vbkNvbnRlbnQge1xuICBidXR0b25zPzogRGlyZWN0TGluZUNhcmRBY3Rpb25bXTtcbiAgc3VidGl0bGU/OiBzdHJpbmc7XG4gIHRleHQ/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xufVxuIl19
|
|
149
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkQnVpbGRlci50cyJdLCJuYW1lcyI6WyJhZGRDYXJkQWN0aW9uIiwiY2FyZEFjdGlvbiIsImluY2x1ZGVzT0F1dGhCdXR0b25zIiwidHlwZSIsImFjdGlvbiIsIlN1Ym1pdEFjdGlvbiIsImRhdGEiLCJfX2lzQm90RnJhbWV3b3JrQ2FyZEFjdGlvbiIsInRpdGxlIiwiT3BlblVybEFjdGlvbiIsInVybCIsInZhbHVlIiwiQWRhcHRpdmVDYXJkQnVpbGRlciIsImFkYXB0aXZlQ2FyZHMiLCJzdHlsZU9wdGlvbnMiLCJkaXJlY3Rpb24iLCJjYXJkIiwiQWRhcHRpdmVDYXJkIiwiY29udGFpbmVyIiwiQ29udGFpbmVyIiwicnRsIiwiYWRkSXRlbSIsInNpemVzIiwic2VsZWN0QWN0aW9uIiwiY29sdW1uU2V0IiwiQ29sdW1uU2V0IiwibWFwIiwic2l6ZSIsImNvbHVtbiIsIkNvbHVtbiIsIndpZHRoIiwiU2l6ZUFuZFVuaXQiLCJTaXplVW5pdCIsIldlaWdodCIsImFkZENvbHVtbiIsImNhcmRFbGVtZW50cyIsImZvckVhY2giLCJjYXJkRWxlbWVudCIsInRleHQiLCJ0ZW1wbGF0ZSIsInRleHRibG9jayIsIlRleHRCbG9jayIsInByb3AiLCJjYXJkQWN0aW9ucyIsImFkZEFjdGlvbiIsImNvbnRlbnQiLCJyaWNoQ2FyZFdyYXBUaXRsZSIsImFkZFRleHRCbG9jayIsImNvbG9yIiwiVGV4dENvbG9yIiwiRGVmYXVsdCIsIlRleHRTaXplIiwiTWVkaXVtIiwic3R5bGUiLCJ3ZWlnaHQiLCJUZXh0V2VpZ2h0IiwiQm9sZGVyIiwid3JhcCIsInN1YnRpdGxlIiwiaXNTdWJ0bGUiLCJhZGRDb21tb25IZWFkZXJzIiwiYWRkQnV0dG9ucyIsImJ1dHRvbnMiLCJhbHRUZXh0IiwiaW1hZ2UiLCJJbWFnZSIsIlNpemUiLCJTdHJldGNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFpQkE7O0FBV0EsU0FBU0EsYUFBVCxDQUF1QkMsVUFBdkIsRUFBeURDLG9CQUF6RCxFQUF5RjtBQUN2RixNQUFRQyxJQUFSLEdBQWlCRixVQUFqQixDQUFRRSxJQUFSO0FBQ0EsTUFBSUMsTUFBSjs7QUFFQSxNQUNFRCxJQUFJLEtBQUssUUFBVCxJQUNBQSxJQUFJLEtBQUssYUFEVCxJQUVBQSxJQUFJLEtBQUssVUFGVCxJQUdDQSxJQUFJLEtBQUssUUFBVCxJQUFxQkQsb0JBSnhCLEVBS0U7QUFDQUUsSUFBQUEsTUFBTSxHQUFHLElBQUlDLDJCQUFKLEVBQVQ7QUFFQUQsSUFBQUEsTUFBTSxDQUFDRSxJQUFQLEdBQWM7QUFDWkMsTUFBQUEsMEJBQTBCLEVBQUUsSUFEaEI7QUFFWk4sTUFBQUEsVUFBVSxFQUFWQTtBQUZZLEtBQWQ7QUFLQUcsSUFBQUEsTUFBTSxDQUFDSSxLQUFQLEdBQWdCUCxVQUFELENBQWtDTyxLQUFqRDtBQUNELEdBZEQsTUFjTztBQUNMSixJQUFBQSxNQUFNLEdBQUcsSUFBSUssNEJBQUosRUFBVDtBQUVBTCxJQUFBQSxNQUFNLENBQUNJLEtBQVAsR0FBZ0JQLFVBQUQsQ0FBa0NPLEtBQWpEO0FBQ0FKLElBQUFBLE1BQU0sQ0FBQ00sR0FBUCxHQUFhVCxVQUFVLENBQUNFLElBQVgsS0FBb0IsTUFBcEIsaUJBQW9DRixVQUFVLENBQUNVLEtBQS9DLElBQXlEVixVQUFVLENBQUNVLEtBQWpGO0FBQ0Q7O0FBRUQsU0FBT1AsTUFBUDtBQUNEOztJQUVvQlEsbUI7QUFLbkIsK0JBQ0VDLGFBREYsRUFFRUMsWUFGRixFQUlFO0FBQUEsUUFEQUMsU0FDQSx1RUFEb0MsS0FDcEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBLFNBQUtDLElBQUwsR0FBWSxJQUFJSCxhQUFhLENBQUNJLFlBQWxCLEVBQVo7QUFDQSxTQUFLQyxTQUFMLEdBQWlCLElBQUlDLHdCQUFKLEVBQWpCO0FBQ0EsU0FBS0QsU0FBTCxDQUFlRSxHQUFmLEdBQXFCTCxTQUFTLEtBQUssS0FBbkM7QUFDQSxTQUFLRCxZQUFMLEdBQW9CQSxZQUFwQjtBQUVBLFNBQUtFLElBQUwsQ0FBVUssT0FBVixDQUFrQixLQUFLSCxTQUF2QjtBQUNEOzs7O1dBRUQsc0JBQWFJLEtBQWIsRUFBMEc7QUFBQSxVQUE1RUosU0FBNEUsdUVBQXJELEtBQUtBLFNBQWdEO0FBQUEsVUFBckNLLFlBQXFDO0FBQ3hHLFVBQU1DLFNBQVMsR0FBRyxJQUFJQyx3QkFBSixFQUFsQjtBQUVBRCxNQUFBQSxTQUFTLENBQUNELFlBQVYsR0FBeUJBLFlBQVksSUFBSXZCLGFBQWEsQ0FBQ3VCLFlBQUQsQ0FBdEQ7QUFDQUwsTUFBQUEsU0FBUyxDQUFDRyxPQUFWLENBQWtCRyxTQUFsQjtBQUVBLGFBQU9GLEtBQUssQ0FBQ0ksR0FBTixDQUFVLFVBQUFDLElBQUksRUFBSTtBQUN2QixZQUFNQyxNQUFNLEdBQUcsSUFBSUMscUJBQUosRUFBZjtBQUVBRCxRQUFBQSxNQUFNLENBQUNFLEtBQVAsR0FBZSxJQUFJQywwQkFBSixDQUFnQkosSUFBaEIsRUFBc0JLLHdCQUFTQyxNQUEvQixDQUFmO0FBRUFULFFBQUFBLFNBQVMsQ0FBQ1UsU0FBVixDQUFvQk4sTUFBcEI7QUFFQSxlQUFPQSxNQUFQO0FBQ0QsT0FSTSxDQUFQO0FBU0Q7OztXQUVELGtCQUFTTyxZQUFULEVBQTZFO0FBQUEsVUFBdkNqQixTQUF1Qyx1RUFBaEIsS0FBS0EsU0FBVztBQUMzRWlCLE1BQUFBLFlBQVksQ0FBQ0MsT0FBYixDQUFxQixVQUFBQyxXQUFXO0FBQUEsZUFBSW5CLFNBQVMsQ0FBQ0csT0FBVixDQUFrQmdCLFdBQWxCLENBQUo7QUFBQSxPQUFoQztBQUNEOzs7V0FFRCxzQkFBYUMsSUFBYixFQUEyQkMsUUFBM0IsRUFBZ0c7QUFBQSxVQUF2Q3JCLFNBQXVDLHVFQUFoQixLQUFLQSxTQUFXOztBQUM5RixVQUFJLE9BQU9vQixJQUFQLEtBQWdCLFdBQXBCLEVBQWlDO0FBQy9CLFlBQU1FLFNBQVMsR0FBRyxJQUFJQyx3QkFBSixFQUFsQjs7QUFFQSxhQUFLLElBQU1DLElBQVgsSUFBbUJILFFBQW5CLEVBQTZCO0FBQzNCLGNBQUksQ0FBQyxzREFBd0JHLElBQXhCLENBQUwsRUFBb0M7QUFDbEM7QUFDQTtBQUNBRixZQUFBQSxTQUFTLENBQUNFLElBQUQsQ0FBVCxHQUFrQkgsUUFBUSxDQUFDRyxJQUFELENBQTFCO0FBQ0Q7QUFDRjs7QUFFREYsUUFBQUEsU0FBUyxDQUFDRixJQUFWLEdBQWlCQSxJQUFqQjtBQUVBcEIsUUFBQUEsU0FBUyxDQUFDRyxPQUFWLENBQWtCbUIsU0FBbEI7QUFDRDtBQUNGOzs7V0FFRCxvQkFBV0csV0FBWCxFQUFnRHpDLG9CQUFoRCxFQUFnRjtBQUFBOztBQUM5RXlDLE1BQUFBLFdBQVcsSUFDVEEsV0FBVyxDQUFDUCxPQUFaLENBQW9CLFVBQUFuQyxVQUFVLEVBQUk7QUFDaEMsUUFBQSxLQUFJLENBQUNlLElBQUwsQ0FBVTRCLFNBQVYsQ0FBb0I1QyxhQUFhLENBQUNDLFVBQUQsRUFBYUMsb0JBQWIsQ0FBakM7QUFDRCxPQUZELENBREY7QUFJRDs7O1dBRUQsMEJBQWlCMkMsT0FBakIsRUFBMEM7QUFDeEMsVUFBUUMsaUJBQVIsR0FBOEIsS0FBS2hDLFlBQW5DLENBQVFnQyxpQkFBUjtBQUNBLFdBQUtDLFlBQUwsQ0FBa0JGLE9BQU8sQ0FBQ3JDLEtBQTFCLEVBQWlDO0FBQy9Cd0MsUUFBQUEsS0FBSyxFQUFFQyx5QkFBVUMsT0FEYztBQUUvQnZCLFFBQUFBLElBQUksRUFBRXdCLHdCQUFTQyxNQUZnQjtBQUcvQkMsUUFBQUEsS0FBSyxFQUFFLFNBSHdCO0FBSS9CQyxRQUFBQSxNQUFNLEVBQUVDLDBCQUFXQyxNQUpZO0FBSy9CQyxRQUFBQSxJQUFJLEVBQUVYO0FBTHlCLE9BQWpDO0FBT0EsV0FBS0MsWUFBTCxDQUFrQkYsT0FBTyxDQUFDYSxRQUExQixFQUFvQztBQUFFVixRQUFBQSxLQUFLLEVBQUVDLHlCQUFVQyxPQUFuQjtBQUE0QlMsUUFBQUEsUUFBUSxFQUFFLElBQXRDO0FBQTRDRixRQUFBQSxJQUFJLEVBQUVYO0FBQWxELE9BQXBDO0FBQ0EsV0FBS0MsWUFBTCxDQUFrQkYsT0FBTyxDQUFDUCxJQUExQixFQUFnQztBQUFFVSxRQUFBQSxLQUFLLEVBQUVDLHlCQUFVQyxPQUFuQjtBQUE0Qk8sUUFBQUEsSUFBSSxFQUFFO0FBQWxDLE9BQWhDO0FBQ0Q7OztXQUVELG1CQUFVWixPQUFWLEVBQW1DO0FBQ2pDLFdBQUtlLGdCQUFMLENBQXNCZixPQUF0QjtBQUNBLFdBQUtnQixVQUFMLENBQWdCaEIsT0FBTyxDQUFDaUIsT0FBeEI7QUFDRDs7O1dBRUQsa0JBQVNwRCxHQUFULEVBQXNCUSxTQUF0QixFQUE2Q0ssWUFBN0MsRUFBa0Z3QyxPQUFsRixFQUFvRztBQUNsRzdDLE1BQUFBLFNBQVMsR0FBR0EsU0FBUyxJQUFJLEtBQUtBLFNBQTlCO0FBRUEsVUFBTThDLEtBQUssR0FBRyxJQUFJQyxvQkFBSixFQUFkO0FBRUFELE1BQUFBLEtBQUssQ0FBQ0QsT0FBTixHQUFnQkEsT0FBaEI7QUFDQUMsTUFBQUEsS0FBSyxDQUFDdEQsR0FBTixHQUFZQSxHQUFaO0FBQ0FzRCxNQUFBQSxLQUFLLENBQUN6QyxZQUFOLEdBQXFCQSxZQUFZLElBQUl2QixhQUFhLENBQUN1QixZQUFELENBQWxEO0FBQ0F5QyxNQUFBQSxLQUFLLENBQUNyQyxJQUFOLEdBQWF1QyxvQkFBS0MsT0FBbEI7QUFFQWpELE1BQUFBLFNBQVMsQ0FBQ0csT0FBVixDQUFrQjJDLEtBQWxCO0FBQ0QiLCJzb3VyY2VSb290IjoiYnVuZGxlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFkYXB0aXZlQ2FyZCxcbiAgQ2FyZEVsZW1lbnQsXG4gIENvbHVtbixcbiAgQ29sdW1uU2V0LFxuICBDb250YWluZXIsXG4gIEltYWdlLFxuICBPcGVuVXJsQWN0aW9uLFxuICBTaXplLFxuICBTaXplQW5kVW5pdCxcbiAgU2l6ZVVuaXQsXG4gIFN1Ym1pdEFjdGlvbixcbiAgVGV4dEJsb2NrLFxuICBUZXh0Q29sb3IsXG4gIFRleHRTaXplLFxuICBUZXh0V2VpZ2h0XG59IGZyb20gJ2FkYXB0aXZlY2FyZHMnO1xuaW1wb3J0IHsgaXNGb3JiaWRkZW5Qcm9wZXJ0eU5hbWUgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcbmltcG9ydCB0eXBlIHsgRGlyZWN0TGluZUNhcmRBY3Rpb24gfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcblxuaW1wb3J0IEFkYXB0aXZlQ2FyZHNQYWNrYWdlIGZyb20gJy4uLy4uL3R5cGVzL0FkYXB0aXZlQ2FyZHNQYWNrYWdlJztcbmltcG9ydCBBZGFwdGl2ZUNhcmRzU3R5bGVPcHRpb25zIGZyb20gJy4uL0FkYXB0aXZlQ2FyZHNTdHlsZU9wdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJvdEZyYW1ld29ya0NhcmRBY3Rpb24ge1xuICBfX2lzQm90RnJhbWV3b3JrQ2FyZEFjdGlvbjogdHJ1ZTtcbiAgY2FyZEFjdGlvbjogRGlyZWN0TGluZUNhcmRBY3Rpb247XG59XG5cbmZ1bmN0aW9uIGFkZENhcmRBY3Rpb24oY2FyZEFjdGlvbjogRGlyZWN0TGluZUNhcmRBY3Rpb24sIGluY2x1ZGVzT0F1dGhCdXR0b25zPzogYm9vbGVhbikge1xuICBjb25zdCB7IHR5cGUgfSA9IGNhcmRBY3Rpb247XG4gIGxldCBhY3Rpb247XG5cbiAgaWYgKFxuICAgIHR5cGUgPT09ICdpbUJhY2snIHx8XG4gICAgdHlwZSA9PT0gJ21lc3NhZ2VCYWNrJyB8fFxuICAgIHR5cGUgPT09ICdwb3N0QmFjaycgfHxcbiAgICAodHlwZSA9PT0gJ3NpZ25pbicgJiYgaW5jbHVkZXNPQXV0aEJ1dHRvbnMpXG4gICkge1xuICAgIGFjdGlvbiA9IG5ldyBTdWJtaXRBY3Rpb24oKTtcblxuICAgIGFjdGlvbi5kYXRhID0ge1xuICAgICAgX19pc0JvdEZyYW1ld29ya0NhcmRBY3Rpb246IHRydWUsXG4gICAgICBjYXJkQWN0aW9uXG4gICAgfTtcblxuICAgIGFjdGlvbi50aXRsZSA9IChjYXJkQWN0aW9uIGFzIHsgdGl0bGU6IHN0cmluZyB9KS50aXRsZTtcbiAgfSBlbHNlIHtcbiAgICBhY3Rpb24gPSBuZXcgT3BlblVybEFjdGlvbigpO1xuXG4gICAgYWN0aW9uLnRpdGxlID0gKGNhcmRBY3Rpb24gYXMgeyB0aXRsZTogc3RyaW5nIH0pLnRpdGxlO1xuICAgIGFjdGlvbi51cmwgPSBjYXJkQWN0aW9uLnR5cGUgPT09ICdjYWxsJyA/IGB0ZWw6JHtjYXJkQWN0aW9uLnZhbHVlfWAgOiBjYXJkQWN0aW9uLnZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIGFjdGlvbjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWRhcHRpdmVDYXJkQnVpbGRlciB7XG4gIGNhcmQ6IEFkYXB0aXZlQ2FyZDtcbiAgY29udGFpbmVyOiBDb250YWluZXI7XG4gIHN0eWxlT3B0aW9uczogQWRhcHRpdmVDYXJkc1N0eWxlT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhZGFwdGl2ZUNhcmRzOiBBZGFwdGl2ZUNhcmRzUGFja2FnZSxcbiAgICBzdHlsZU9wdGlvbnM6IEFkYXB0aXZlQ2FyZHNTdHlsZU9wdGlvbnMsXG4gICAgZGlyZWN0aW9uOiAnbHRyJyB8ICdydGwnIHwgJ2F1dG8nID0gJ2x0cidcbiAgKSB7XG4gICAgdGhpcy5jYXJkID0gbmV3IGFkYXB0aXZlQ2FyZHMuQWRhcHRpdmVDYXJkKCk7XG4gICAgdGhpcy5jb250YWluZXIgPSBuZXcgQ29udGFpbmVyKCk7XG4gICAgdGhpcy5jb250YWluZXIucnRsID0gZGlyZWN0aW9uID09PSAncnRsJztcbiAgICB0aGlzLnN0eWxlT3B0aW9ucyA9IHN0eWxlT3B0aW9ucztcblxuICAgIHRoaXMuY2FyZC5hZGRJdGVtKHRoaXMuY29udGFpbmVyKTtcbiAgfVxuXG4gIGFkZENvbHVtblNldChzaXplczogbnVtYmVyW10sIGNvbnRhaW5lcjogQ29udGFpbmVyID0gdGhpcy5jb250YWluZXIsIHNlbGVjdEFjdGlvbj86IERpcmVjdExpbmVDYXJkQWN0aW9uKSB7XG4gICAgY29uc3QgY29sdW1uU2V0ID0gbmV3IENvbHVtblNldCgpO1xuXG4gICAgY29sdW1uU2V0LnNlbGVjdEFjdGlvbiA9IHNlbGVjdEFjdGlvbiAmJiBhZGRDYXJkQWN0aW9uKHNlbGVjdEFjdGlvbik7XG4gICAgY29udGFpbmVyLmFkZEl0ZW0oY29sdW1uU2V0KTtcblxuICAgIHJldHVybiBzaXplcy5tYXAoc2l6ZSA9PiB7XG4gICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQ29sdW1uKCk7XG5cbiAgICAgIGNvbHVtbi53aWR0aCA9IG5ldyBTaXplQW5kVW5pdChzaXplLCBTaXplVW5pdC5XZWlnaHQpO1xuXG4gICAgICBjb2x1bW5TZXQuYWRkQ29sdW1uKGNvbHVtbik7XG5cbiAgICAgIHJldHVybiBjb2x1bW47XG4gICAgfSk7XG4gIH1cblxuICBhZGRJdGVtcyhjYXJkRWxlbWVudHM6IENhcmRFbGVtZW50W10sIGNvbnRhaW5lcjogQ29udGFpbmVyID0gdGhpcy5jb250YWluZXIpIHtcbiAgICBjYXJkRWxlbWVudHMuZm9yRWFjaChjYXJkRWxlbWVudCA9PiBjb250YWluZXIuYWRkSXRlbShjYXJkRWxlbWVudCkpO1xuICB9XG5cbiAgYWRkVGV4dEJsb2NrKHRleHQ6IHN0cmluZywgdGVtcGxhdGU6IFBhcnRpYWw8VGV4dEJsb2NrPiwgY29udGFpbmVyOiBDb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcikge1xuICAgIGlmICh0eXBlb2YgdGV4dCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IHRleHRibG9jayA9IG5ldyBUZXh0QmxvY2soKTtcblxuICAgICAgZm9yIChjb25zdCBwcm9wIGluIHRlbXBsYXRlKSB7XG4gICAgICAgIGlmICghaXNGb3JiaWRkZW5Qcm9wZXJ0eU5hbWUocHJvcCkpIHtcbiAgICAgICAgICAvLyBNaXRpZ2F0ZWQgdGhyb3VnaCBkZW55bGlzdGluZy5cbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICAgICAgICB0ZXh0YmxvY2tbcHJvcF0gPSB0ZW1wbGF0ZVtwcm9wXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0ZXh0YmxvY2sudGV4dCA9IHRleHQ7XG5cbiAgICAgIGNvbnRhaW5lci5hZGRJdGVtKHRleHRibG9jayk7XG4gICAgfVxuICB9XG5cbiAgYWRkQnV0dG9ucyhjYXJkQWN0aW9uczogRGlyZWN0TGluZUNhcmRBY3Rpb25bXSwgaW5jbHVkZXNPQXV0aEJ1dHRvbnM/OiBib29sZWFuKSB7XG4gICAgY2FyZEFjdGlvbnMgJiZcbiAgICAgIGNhcmRBY3Rpb25zLmZvckVhY2goY2FyZEFjdGlvbiA9PiB7XG4gICAgICAgIHRoaXMuY2FyZC5hZGRBY3Rpb24oYWRkQ2FyZEFjdGlvbihjYXJkQWN0aW9uLCBpbmNsdWRlc09BdXRoQnV0dG9ucykpO1xuICAgICAgfSk7XG4gIH1cblxuICBhZGRDb21tb25IZWFkZXJzKGNvbnRlbnQ6IElDb21tb25Db250ZW50KSB7XG4gICAgY29uc3QgeyByaWNoQ2FyZFdyYXBUaXRsZSB9ID0gdGhpcy5zdHlsZU9wdGlvbnM7XG4gICAgdGhpcy5hZGRUZXh0QmxvY2soY29udGVudC50aXRsZSwge1xuICAgICAgY29sb3I6IFRleHRDb2xvci5EZWZhdWx0LFxuICAgICAgc2l6ZTogVGV4dFNpemUuTWVkaXVtLFxuICAgICAgc3R5bGU6ICdoZWFkaW5nJyxcbiAgICAgIHdlaWdodDogVGV4dFdlaWdodC5Cb2xkZXIsXG4gICAgICB3cmFwOiByaWNoQ2FyZFdyYXBUaXRsZVxuICAgIH0pO1xuICAgIHRoaXMuYWRkVGV4dEJsb2NrKGNvbnRlbnQuc3VidGl0bGUsIHsgY29sb3I6IFRleHRDb2xvci5EZWZhdWx0LCBpc1N1YnRsZTogdHJ1ZSwgd3JhcDogcmljaENhcmRXcmFwVGl0bGUgfSk7XG4gICAgdGhpcy5hZGRUZXh0QmxvY2soY29udGVudC50ZXh0LCB7IGNvbG9yOiBUZXh0Q29sb3IuRGVmYXVsdCwgd3JhcDogdHJ1ZSB9KTtcbiAgfVxuXG4gIGFkZENvbW1vbihjb250ZW50OiBJQ29tbW9uQ29udGVudCkge1xuICAgIHRoaXMuYWRkQ29tbW9uSGVhZGVycyhjb250ZW50KTtcbiAgICB0aGlzLmFkZEJ1dHRvbnMoY29udGVudC5idXR0b25zKTtcbiAgfVxuXG4gIGFkZEltYWdlKHVybDogc3RyaW5nLCBjb250YWluZXI/OiBDb250YWluZXIsIHNlbGVjdEFjdGlvbj86IERpcmVjdExpbmVDYXJkQWN0aW9uLCBhbHRUZXh0Pzogc3RyaW5nKSB7XG4gICAgY29udGFpbmVyID0gY29udGFpbmVyIHx8IHRoaXMuY29udGFpbmVyO1xuXG4gICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcblxuICAgIGltYWdlLmFsdFRleHQgPSBhbHRUZXh0O1xuICAgIGltYWdlLnVybCA9IHVybDtcbiAgICBpbWFnZS5zZWxlY3RBY3Rpb24gPSBzZWxlY3RBY3Rpb24gJiYgYWRkQ2FyZEFjdGlvbihzZWxlY3RBY3Rpb24pO1xuICAgIGltYWdlLnNpemUgPSBTaXplLlN0cmV0Y2g7XG5cbiAgICBjb250YWluZXIuYWRkSXRlbShpbWFnZSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29tbW9uQ29udGVudCB7XG4gIGJ1dHRvbnM/OiBEaXJlY3RMaW5lQ2FyZEFjdGlvbltdO1xuICBzdWJ0aXRsZT86IHN0cmluZztcbiAgdGV4dD86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -25,9 +25,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
25
25
|
|
|
26
26
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
27
|
|
|
28
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
28
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
29
29
|
|
|
30
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
31
31
|
|
|
32
32
|
function stripSubmitAction(card) {
|
|
33
33
|
if (!card.actions) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AdaptiveCard } from 'adaptivecards';
|
|
2
|
-
import { DirectLineCardAction } from 'botframework-webchat-core';
|
|
3
2
|
import { VFC } from 'react';
|
|
3
|
+
import type { DirectLineCardAction } from 'botframework-webchat-core';
|
|
4
4
|
declare type AdaptiveCardRendererProps = {
|
|
5
5
|
actionPerformedClassName?: string;
|
|
6
6
|
adaptiveCard: AdaptiveCard;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdaptiveCardRenderer.d.ts","sourceRoot":"","sources":["../../../src/adaptiveCards/Attachment/AdaptiveCardRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,YAAY,EAIb,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"AdaptiveCardRenderer.d.ts","sourceRoot":"","sources":["../../../src/adaptiveCards/Attachment/AdaptiveCardRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,YAAY,EAIb,MAAM,eAAe,CAAC;AAIvB,OAAc,EAQZ,GAAG,EACJ,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AA0ctE,aAAK,yBAAyB,GAAG;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,oBAAoB,CAAC;CAClC,CAAC;AAEF,QAAA,MAAM,oBAAoB,EAAE,GAAG,CAAC,yBAAyB,CAiQxD,CAAC;AAuBF,eAAe,oBAAoB,CAAC"}
|
|
@@ -731,4 +731,4 @@ AdaptiveCardRenderer.propTypes = {
|
|
|
731
731
|
};
|
|
732
732
|
var _default = AdaptiveCardRenderer;
|
|
733
733
|
exports.default = _default;
|
|
734
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkUmVuZGVyZXIudHN4Il0sIm5hbWVzIjpbIkVycm9yQm94IiwiQ29tcG9uZW50cyIsInVzZURpc2FibGVkIiwiaG9va3MiLCJ1c2VMb2NhbGl6ZXIiLCJ1c2VQZXJmb3JtQ2FyZEFjdGlvbiIsInVzZVJlbmRlck1hcmtkb3duQXNIVE1MIiwidXNlU2Nyb2xsVG9FbmQiLCJ1c2VTdHlsZVNldCIsIm5vZGVfZW52IiwiYnVuY2hVbmRvcyIsImZucyIsImZvckVhY2giLCJmbiIsImFkZENsYXNzIiwiZWxlbWVudCIsImNsYXNzTmFtZSIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwiYWRkIiwiYWRkUGVyc2lzdGVudENsYXNzV2l0aFVuZG8iLCJvYnNlcnZlciIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJvYnNlcnZlIiwiYXR0cmlidXRlcyIsImF0dHJpYnV0ZUZpbHRlciIsImNsYXNzTmFtZXMiLCJTZXQiLCJzcGxpdCIsImRlbGV0ZSIsIkFycmF5IiwiZnJvbSIsImpvaW4iLCJkaXNjb25uZWN0IiwiaXNQbGFpbk9iamVjdCIsIm9iaiIsIk9iamVjdCIsImdldFByb3RvdHlwZU9mIiwicHJvdG90eXBlIiwic2V0QXR0cmlidXRlV2l0aFVuZG8iLCJxdWFsaWZpZWROYW1lIiwibmV4dFZhbHVlIiwidmFsdWUiLCJnZXRBdHRyaWJ1dGUiLCJzZXRBdHRyaWJ1dGUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJkaXNhYmxlZEhhbmRsZXIiLCJldmVudCIsInByZXZlbnREZWZhdWx0Iiwic3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uIiwic3RvcFByb3BhZ2F0aW9uIiwiYWRkRXZlbnRMaXN0ZW5lck9uY2VXaXRoVW5kbyIsIm5hbWUiLCJoYW5kbGVyIiwiZGV0YWNoIiwiZGV0YWNoaW5nSGFuZGxlciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhZGRFdmVudExpc3RlbmVyIiwib25jZSIsImFkZEV2ZW50TGlzdGVuZXJXaXRoVW5kbyIsImRpc2FibGVFbGVtZW50V2l0aFVuZG8iLCJ1bmRvU3RhY2siLCJpc0FjdGl2ZSIsImRvY3VtZW50IiwiYWN0aXZlRWxlbWVudCIsInRhZyIsIm5vZGVOYW1lIiwidG9Mb3dlckNhc2UiLCJwdXNoIiwibWFwIiwiY2FsbCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJvcHRpb24iLCJkaXNhYmxlSW5wdXRFbGVtZW50c1dpdGhVbmRvIiwib2JzZXJ2ZVN1YnRyZWUiLCJtdXRhdGlvbnMiLCJhZGRlZE5vZGVzIiwiYWRkZWROb2RlIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImhhc0F0dHJpYnV0ZSIsInNldE9yUmVtb3ZlQXR0cmlidXRlIiwic2V0T3JSZW1vdmVBdHRyaWJ1dGVXaXRoVW5kbyIsInByZXZWYWx1ZSIsImZpbmRBbmNlc3RvciIsInByZWRpY2F0ZSIsImN1cnJlbnQiLCJwYXJlbnRFbGVtZW50IiwiaW5kaWNhdGVBY3Rpb25TZWxlY3Rpb25XaXRoVW5kbyIsInNlbGVjdGVkQWN0aW9uRWxlbWVudHMiLCJhY3Rpb25QZXJmb3JtZWRDbGFzc05hbWUiLCJsZW5ndGgiLCJzb21lIiwiYWN0aW9uRWxlbWVudCIsImNvbnNvbGUiLCJ3YXJuIiwiYWN0aW9uU2V0RWxlbWVudHMiLCJzZWxlY3RlZEFjdGlvbkVsZW1lbnQiLCJhY3Rpb25TZXRFbGVtZW50IiwiYW5jZXN0b3IiLCJpbmNsdWRlcyIsImZpeEFjY2Vzc2liaWxpdHlJc3N1ZXNXaXRoVW5kbyIsImFjdGlvbkJ1dHRvbiIsInVuZG8iLCJnZXRGb2N1c2FibGVFbGVtZW50cyIsImZpbHRlciIsInRhYkluZGV4IiwicmVzdG9yZUFjdGl2ZUVsZW1lbnRJbmRleCIsImFjdGl2ZUVsZW1lbnRJbmRleCIsImZvY3VzIiwic2F2ZUFjdGl2ZUVsZW1lbnRJbmRleCIsImluZGV4T2YiLCJyZXN0b3JlSW5wdXRWYWx1ZXMiLCJpbnB1dFZhbHVlcyIsImlucHV0cyIsImlucHV0IiwiaW5kZXgiLCJ0YWdOYW1lIiwidHlwZSIsImNoZWNrZWQiLCJzYXZlSW5wdXRWYWx1ZXMiLCJBZGFwdGl2ZUNhcmRSZW5kZXJlciIsImFkYXB0aXZlQ2FyZCIsImRpc2FibGVkRnJvbVByb3BzIiwiZGlzYWJsZWQiLCJ0YXBBY3Rpb24iLCJhZGFwdGl2ZUNhcmRSZW5kZXJlclN0eWxlU2V0IiwiYWRhcHRpdmVDYXJkUmVuZGVyZXIiLCJHbG9iYWxTZXR0aW5ncyIsIkhvc3RDb25maWciLCJhY3Rpb25zUGVyZm9ybWVkIiwic2V0QWN0aW9uc1BlcmZvcm1lZCIsImFkYXB0aXZlQ2FyZHNIb3N0Q29uZmlnIiwiZGlzYWJsZWRGcm9tQ29tcG9zZXIiLCJlcnJvcnMiLCJzZXRFcnJvcnMiLCJsYXN0UmVuZGVyIiwic2V0TGFzdFJlbmRlciIsImFjdGl2ZUVsZW1lbnRJbmRleFJlZiIsImFkYXB0aXZlQ2FyZEVsZW1lbnRSZWYiLCJjb250ZW50UmVmIiwiaW5wdXRWYWx1ZXNSZWYiLCJsb2NhbGl6ZSIsInBlcmZvcm1DYXJkQWN0aW9uIiwicmVuZGVyTWFya2Rvd25Bc0hUTUwiLCJzY3JvbGxUb0VuZCIsImhhbmRsZUNsaWNrQW5kS2V5UHJlc3MiLCJrZXkiLCJ0YXJnZXQiLCJhZGFwdGl2ZUNhcmRSb290IiwicXVlcnlTZWxlY3RvciIsImhhbmRsZUNsaWNrQW5kS2V5UHJlc3NGb3JUYXBBY3Rpb24iLCJ1bmRlZmluZWQiLCJhZGRBY3Rpb25zUGVyZm9ybWVkIiwiYWN0aW9uIiwiaGFuZGxlRXhlY3V0ZUFjdGlvbiIsImFjdGlvblR5cGVOYW1lIiwiZ2V0SnNvblR5cGVOYW1lIiwiaW1hZ2UiLCJpY29uVXJsIiwidGl0bGUiLCJ1cmwiLCJkYXRhIiwiX19pc0JvdEZyYW1ld29ya0NhcmRBY3Rpb24iLCJjYXJkQWN0aW9uIiwiZXJyb3IiLCJjb25zdHJ1Y3RvciIsInRleHQiLCJyZXN1bHQiLCJvdXRwdXRIdG1sIiwiZGlkUHJvY2VzcyIsImhvc3RDb25maWciLCJzZXRUYWJJbmRleEF0Q2FyZFJvb3QiLCJ2YWxpZGF0ZVByb3BlcnRpZXMiLCJ2YWxpZGF0aW9uRXZlbnRzIiwicmVkdWNlIiwiaXRlbXMiLCJtZXNzYWdlIiwiRXJyb3IiLCJyZW5kZXIiLCJhcHBlbmRDaGlsZCIsIkRhdGUiLCJub3ciLCJyZW1vdmVDaGlsZCIsIm9uRXhlY3V0ZUFjdGlvbiIsInJlbmRlcmVkRWxlbWVudCIsImRlZmF1bHRQcm9wcyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImFueSIsImlzUmVxdWlyZWQiLCJib29sIiwic2hhcGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQVNBOztBQUVBOztBQUNBOztBQUNBOztBQVlBOztBQUNBOzs7Ozs7QUExQkE7QUE0QkEsSUFBUUEsUUFBUixHQUFxQkMsd0NBQXJCLENBQVFELFFBQVI7QUFDQSxJQUFRRSxXQUFSLEdBQWtIQyxtQ0FBbEgsQ0FBUUQsV0FBUjtBQUFBLElBQXFCRSxZQUFyQixHQUFrSEQsbUNBQWxILENBQXFCQyxZQUFyQjtBQUFBLElBQW1DQyxvQkFBbkMsR0FBa0hGLG1DQUFsSCxDQUFtQ0Usb0JBQW5DO0FBQUEsSUFBeURDLHVCQUF6RCxHQUFrSEgsbUNBQWxILENBQXlERyx1QkFBekQ7QUFBQSxJQUFrRkMsY0FBbEYsR0FBa0hKLG1DQUFsSCxDQUFrRkksY0FBbEY7QUFBQSxJQUFrR0MsV0FBbEcsR0FBa0hMLG1DQUFsSCxDQUFrR0ssV0FBbEc7QUFFQSxJQUFNQyxRQUFRLEdBQUcseUJBQWpCOztBQUlBLFNBQVNDLFVBQVQsR0FBMEQ7QUFBQSxvQ0FBbkNDLEdBQW1DO0FBQW5DQSxJQUFBQSxHQUFtQztBQUFBOztBQUN4RCxTQUFPO0FBQUEsV0FBTUEsR0FBRyxDQUFDQyxPQUFKLENBQVksVUFBQUMsRUFBRTtBQUFBLGFBQUlBLEVBQUosYUFBSUEsRUFBSix1QkFBSUEsRUFBRSxFQUFOO0FBQUEsS0FBZCxDQUFOO0FBQUEsR0FBUDtBQUNEO0FBRUQ7QUFDQTtBQUNBOzs7QUFDQSxTQUFTQyxRQUFULENBQWtCQyxPQUFsQixFQUF3Q0MsU0FBeEMsRUFBNkU7QUFD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WUFBWSxFQUFFa0UsbUJBQVVFLEdBQVYsQ0FBY0MsVUFGRztBQUcvQm5FLEVBQUFBLFFBQVEsRUFBRWdFLG1CQUFVSSxJQUhXO0FBSy9CO0FBQ0E7QUFDQW5FLEVBQUFBLFNBQVMsRUFBRStELG1CQUFVSyxLQUFWLENBQWdCO0FBQ3pCbkMsSUFBQUEsS0FBSyxFQUFFOEIsbUJBQVVDLE1BRFE7QUFFekI3QixJQUFBQSxLQUFLLEVBQUU0QixtQkFBVUMsTUFGUTtBQUd6QnZFLElBQUFBLElBQUksRUFBRXNFLG1CQUFVQyxNQUFWLENBQWlCRSxVQUhFO0FBSXpCckosSUFBQUEsS0FBSyxFQUFFa0osbUJBQVVDO0FBSlEsR0FBaEI7QUFQb0IsQ0FBakM7ZUFlZXBFLG9CIiwic291cmNlUm9vdCI6ImJ1bmRsZTovLy8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tbWFnaWMtbnVtYmVyczogW1wiZXJyb3JcIiwgeyBcImlnbm9yZVwiOiBbLTEsIDAsIDJdIH1dICovXG5cbmltcG9ydCB7XG4gIEFjdGlvbiBhcyBBZGFwdGl2ZUNhcmRBY3Rpb24sXG4gIEFkYXB0aXZlQ2FyZCxcbiAgSU1hcmtkb3duUHJvY2Vzc2luZ1Jlc3VsdCxcbiAgT3BlblVybEFjdGlvbixcbiAgU3VibWl0QWN0aW9uXG59IGZyb20gJ2FkYXB0aXZlY2FyZHMnO1xuaW1wb3J0IHsgQ29tcG9uZW50cywgZ2V0VGFiSW5kZXgsIGhvb2tzIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtY29tcG9uZW50JztcbmltcG9ydCB7IERpcmVjdExpbmVDYXJkQWN0aW9uIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtY29yZSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHtcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG4gIFZGQ1xufSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IEJvdEZyYW1ld29ya0NhcmRBY3Rpb24gfSBmcm9tICcuL0FkYXB0aXZlQ2FyZEJ1aWxkZXInO1xuaW1wb3J0IHVzZUFkYXB0aXZlQ2FyZHNIb3N0Q29uZmlnIGZyb20gJy4uL2hvb2tzL3VzZUFkYXB0aXZlQ2FyZHNIb3N0Q29uZmlnJztcbmltcG9ydCB1c2VBZGFwdGl2ZUNhcmRzUGFja2FnZSBmcm9tICcuLi9ob29rcy91c2VBZGFwdGl2ZUNhcmRzUGFja2FnZSc7XG5cbmNvbnN0IHsgRXJyb3JCb3ggfSA9IENvbXBvbmVudHM7XG5jb25zdCB7IHVzZURpc2FibGVkLCB1c2VMb2NhbGl6ZXIsIHVzZVBlcmZvcm1DYXJkQWN0aW9uLCB1c2VSZW5kZXJNYXJrZG93bkFzSFRNTCwgdXNlU2Nyb2xsVG9FbmQsIHVzZVN0eWxlU2V0IH0gPSBob29rcztcblxuY29uc3Qgbm9kZV9lbnYgPSBwcm9jZXNzLmVudi5ub2RlX2VudiB8fCBwcm9jZXNzLmVudi5OT0RFX0VOVjtcblxudHlwZSBVbmRvRnVuY3Rpb24gPSAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG5cbmZ1bmN0aW9uIGJ1bmNoVW5kb3MoLi4uZm5zOiBVbmRvRnVuY3Rpb25bXSk6IFVuZG9GdW5jdGlvbiB7XG4gIHJldHVybiAoKSA9PiBmbnMuZm9yRWFjaChmbiA9PiBmbj8uKCkpO1xufVxuXG4vKipcbiAqIEFkZHMgYSBjbGFzcyB0byB0aGUgYEhUTUxFbGVtZW50YC4gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGNsYXNzIGlzIGFkZGVkLCBvdGhlcndpc2UsIGB1bmRlZmluZWRgLlxuICovXG5mdW5jdGlvbiBhZGRDbGFzcyhlbGVtZW50OiBIVE1MRWxlbWVudCwgY2xhc3NOYW1lOiBzdHJpbmcpOiB0cnVlIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgeyBjbGFzc0xpc3QgfSA9IGVsZW1lbnQ7XG5cbiAgaWYgKCFjbGFzc0xpc3QuY29udGFpbnMoY2xhc3NOYW1lKSkge1xuICAgIGNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8qKlxuICogQWRkcyBhIGNsYXNzIHRvIHRoZSBgSFRNTEVsZW1lbnRgIGFuZCByZS1hZGQgb24gbXV0YXRpb25zLlxuICpcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gQSBmdW5jdGlvbiwgd2hlbiBjYWxsZWQsIHdpbGwgcmVzdG9yZSB0byBwcmV2aW91cyBzdGF0ZS5cbiAqL1xuZnVuY3Rpb24gYWRkUGVyc2lzdGVudENsYXNzV2l0aFVuZG8oZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQsIGNsYXNzTmFtZTogc3RyaW5nKTogVW5kb0Z1bmN0aW9uIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGFkZENsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSkpIHtcbiAgICAvLyBBZnRlciB3ZSBhZGQgdGhlIGNsYXNzLCBrZWVwIG9ic2VydmluZyB0aGUgZWxlbWVudCB0byBtYWtlIHN1cmUgdGhlIGNsYXNzIGlzIG5vdCByZW1vdmVkLlxuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4gYWRkQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKSk7XG5cbiAgICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQsIHsgYXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJ10gfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3QgY2xhc3NOYW1lcyA9IG5ldyBTZXQoZWxlbWVudC5jbGFzc05hbWUuc3BsaXQoJyAnKSk7XG5cbiAgICAgIGNsYXNzTmFtZXMuZGVsZXRlKGNsYXNzTmFtZSk7XG5cbiAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gQXJyYXkuZnJvbShjbGFzc05hbWVzKS5qb2luKCcgJyk7XG4gICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgYHRydWVgLCBpZiB0aGUgb2JqZWN0IGlzIGEgcGxhaW4gb2JqZWN0IGFuZCBub3QgYSBjbGFzcywgb3RoZXJ3aXNlLCBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0KG9iaikge1xuICByZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaikgPT09IE9iamVjdC5wcm90b3R5cGU7XG59XG5cbi8qKlxuICogU2V0cyBhbiBhdHRyaWJ1dGUuXG4gKlxuICogQHJldHVybnMge2Z1bmN0aW9ufSBBIGZ1bmN0aW9uLCB3aGVuIGNhbGxlZCwgd2lsbCByZXN0b3JlIHRvIHByZXZpb3VzIHN0YXRlLlxuICovXG5mdW5jdGlvbiBzZXRBdHRyaWJ1dGVXaXRoVW5kbyhcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQsXG4gIHF1YWxpZmllZE5hbWU6IHN0cmluZyxcbiAgbmV4dFZhbHVlOiBzdHJpbmdcbik6IFVuZG9GdW5jdGlvbiB7XG4gIGlmICghZWxlbWVudCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHZhbHVlID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUocXVhbGlmaWVkTmFtZSk7XG5cbiAgaWYgKHZhbHVlICE9PSBuZXh0VmFsdWUpIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShxdWFsaWZpZWROYW1lLCBuZXh0VmFsdWUpO1xuXG4gICAgcmV0dXJuICgpID0+ICh2YWx1ZSA/IGVsZW1lbnQuc2V0QXR0cmlidXRlKHF1YWxpZmllZE5hbWUsIHZhbHVlKSA6IGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKHF1YWxpZmllZE5hbWUpKTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIGV2ZW50IGhhbmRsZXIgZm9yIGRpc2FibGluZyBldmVudCBidWJibGluZyBhbmQgcHJvcGFnYXRpb24uXG4gKi9cbmNvbnN0IGRpc2FibGVkSGFuZGxlciA9IChldmVudDogRXZlbnQpID0+IHtcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xufTtcblxuLyoqXG4gKiBMaXN0ZW5zIHRvIGV2ZW50IG9uY2UuIFJldHVybnMgYSBmdW5jdGlvbiwgd2hlbiBjYWxsZWQsIHdpbGwgc3RvcCBsaXN0ZW5pbmcuXG4gKi9cbmZ1bmN0aW9uIGFkZEV2ZW50TGlzdGVuZXJPbmNlV2l0aFVuZG8oXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkLFxuICBuYW1lOiBzdHJpbmcsXG4gIGhhbmRsZXI6IEV2ZW50TGlzdGVuZXJcbik6IFVuZG9GdW5jdGlvbiB7XG4gIGlmICghZWxlbWVudCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3QgKi9cbiAgbGV0IGRldGFjaDogKCkgPT4gdm9pZDtcbiAgY29uc3QgZGV0YWNoaW5nSGFuZGxlciA9IGV2ZW50ID0+IHtcbiAgICB0cnkge1xuICAgICAgaGFuZGxlcihldmVudCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIC8vIElFMTEgZG9lcyBub3Qgc3VwcG9ydCB7IG9uY2U6IHRydWUgfSwgc28gd2UgbmVlZCB0byBkZXRhY2ggbWFudWFsbHkuXG4gICAgICBkZXRhY2goKTtcbiAgICB9XG4gIH07XG5cbiAgZGV0YWNoID0gKCkgPT4gZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIGRldGFjaGluZ0hhbmRsZXIpO1xuXG4gIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBkZXRhY2hpbmdIYW5kbGVyLCB7IG9uY2U6IHRydWUgfSk7XG5cbiAgcmV0dXJuIGRldGFjaDtcbn1cblxuLyoqXG4gKiBMaXN0ZW5zIHRvIGV2ZW50LiBSZXR1cm5zIGEgZnVuY3Rpb24sIHdoZW4gY2FsbGVkLCB3aWxsIHN0b3AgbGlzdGVuaW5nLlxuICovXG5mdW5jdGlvbiBhZGRFdmVudExpc3RlbmVyV2l0aFVuZG8oXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkLFxuICBuYW1lOiBzdHJpbmcsXG4gIGhhbmRsZXI6IEV2ZW50TGlzdGVuZXJcbik6IFVuZG9GdW5jdGlvbiB7XG4gIGlmICghZWxlbWVudCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBoYW5kbGVyKTtcblxuICByZXR1cm4gKCkgPT4gZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIGhhbmRsZXIpO1xufVxuXG4vKipcbiAqIERpc2FibGVzIGFuIGVsZW1lbnQgd2l0aCB1bmRvIGZ1bmN0aW9uLlxuICpcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gQSBmdW5jdGlvbiwgd2hlbiBjYWxsZWQsIHdpbGwgcmVzdG9yZSB0byBwcmV2aW91cyBzdGF0ZS5cbiAqL1xuZnVuY3Rpb24gZGlzYWJsZUVsZW1lbnRXaXRoVW5kbyhlbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCk6IFVuZG9GdW5jdGlvbiB7XG4gIGlmICghZWxlbWVudCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHVuZG9TdGFjazogVW5kb0Z1bmN0aW9uW10gPSBbXTtcbiAgY29uc3QgaXNBY3RpdmUgPSBlbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICBjb25zdCB0YWcgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlZmF1bHQtY2FzZSAqL1xuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgJ2J1dHRvbic6XG4gICAgY2FzZSAnaW5wdXQnOlxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgdW5kb1N0YWNrLnB1c2goc2V0QXR0cmlidXRlV2l0aFVuZG8oZWxlbWVudCwgJ2FyaWEtZGlzYWJsZWQnLCAndHJ1ZScpKTtcblxuICAgICAgaWYgKGlzQWN0aXZlKSB7XG4gICAgICAgIHVuZG9TdGFjay5wdXNoKFxuICAgICAgICAgIGFkZEV2ZW50TGlzdGVuZXJPbmNlV2l0aFVuZG8oZWxlbWVudCwgJ2JsdXInLCAoKSA9PlxuICAgICAgICAgICAgdW5kb1N0YWNrLnB1c2goc2V0QXR0cmlidXRlV2l0aFVuZG8oZWxlbWVudCwgJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJykpXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdW5kb1N0YWNrLnB1c2goc2V0QXR0cmlidXRlV2l0aFVuZG8oZWxlbWVudCwgJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJykpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGFnID09PSAnaW5wdXQnIHx8IHRhZyA9PT0gJ3RleHRhcmVhJykge1xuICAgICAgICB1bmRvU3RhY2sucHVzaChhZGRFdmVudExpc3RlbmVyV2l0aFVuZG8oZWxlbWVudCwgJ2NsaWNrJywgZGlzYWJsZWRIYW5kbGVyKSk7XG4gICAgICAgIHVuZG9TdGFjay5wdXNoKHNldEF0dHJpYnV0ZVdpdGhVbmRvKGVsZW1lbnQsICdyZWFkb25seScsICdyZWFkb25seScpKTtcbiAgICAgIH0gZWxzZSBpZiAodGFnID09PSAnc2VsZWN0Jykge1xuICAgICAgICB1bmRvU3RhY2sucHVzaChcbiAgICAgICAgICAuLi5bXS5tYXAuY2FsbChlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ29wdGlvbicpLCBvcHRpb24gPT5cbiAgICAgICAgICAgIHNldEF0dHJpYnV0ZVdpdGhVbmRvKG9wdGlvbiwgJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJylcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGJ1bmNoVW5kb3MoLi4udW5kb1N0YWNrKTtcbn1cblxuLyoqXG4gKiBEaXNhYmxlcyBhbGwgaW5wdXR0YWJsZSBkZXNjZW5kYW50cy5cbiAqXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50IHwgdW5kZWZpbmVkfSBlbGVtZW50IENvbnRhaW5lciBlbGVtZW50IHRvIHN0YXJ0IGxvb2tpbmcgZm9yIGlucHV0dGFibGUgZGVzY2VuZGFudHMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG9ic2VydmVTdWJ0cmVlIGB0cnVlYCB0byBhcHBsaWVzIHRvIGFsbCBmdXR1cmUgaW5wdXR0YWJsZSBkZXNjZW5kYW50cywgb3RoZXJ3aXNlLCBgZmFsc2VgLlxuICpcbiAqIEByZXR1cm5zIHtmdW5jdGlvbn0gQSBmdW5jdGlvbiwgd2hlbiBjYWxsZWQsIHdpbGwgcmVzdG9yZSB0byBwcmV2aW91cyBzdGF0ZS5cbiAqL1xuZnVuY3Rpb24gZGlzYWJsZUlucHV0RWxlbWVudHNXaXRoVW5kbyhlbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCwgb2JzZXJ2ZVN1YnRyZWUgPSB0cnVlKTogVW5kb0Z1bmN0aW9uIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgdW5kb1N0YWNrOiAoKCkgPT4gdm9pZClbXSA9IFtdLm1hcC5jYWxsKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYScpLCBlbGVtZW50ID0+XG4gICAgZGlzYWJsZUVsZW1lbnRXaXRoVW5kbyhlbGVtZW50KVxuICApO1xuXG4gIGNvbnN0IHRhZyA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAvLyBPbmx5IHNldCB0YWJpbmRleD1cIi0xXCIgb24gZm9jdXNhYmxlIGVsZW1lbnQuIE90aGVyd2lzZSwgd2Ugd2lsbCBtYWtlIDxkaXY+IGZvY3VzYWJsZSBieSBtb3VzZS5cbiAgKHRhZyA9PT0gJ2EnIHx8IHRhZyA9PT0gJ2J1dHRvbicgfHwgdGFnID09PSAnaW5wdXQnIHx8IHRhZyA9PT0gJ3NlbGVjdCcgfHwgdGFnID09PSAndGV4dGFyZWEnKSAmJlxuICAgIHVuZG9TdGFjay5wdXNoKHNldEF0dHJpYnV0ZVdpdGhVbmRvKGVsZW1lbnQsICd0YWJpbmRleCcsICctMScpKTtcblxuICBpZiAob2JzZXJ2ZVN1YnRyZWUpIHtcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKG11dGF0aW9ucyA9PlxuICAgICAgbXV0YXRpb25zLmZvckVhY2goKHsgYWRkZWROb2RlcyB9KSA9PlxuICAgICAgICB1bmRvU3RhY2sucHVzaCguLi5bXS5tYXAuY2FsbChhZGRlZE5vZGVzLCBhZGRlZE5vZGUgPT4gZGlzYWJsZUlucHV0RWxlbWVudHNXaXRoVW5kbyhhZGRlZE5vZGUsIGZhbHNlKSkpXG4gICAgICApXG4gICAgKTtcblxuICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG5cbiAgICB1bmRvU3RhY2sucHVzaCgoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCkpO1xuICB9XG5cbiAgcmV0dXJuIGJ1bmNoVW5kb3MoLi4udW5kb1N0YWNrKTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSB2YWx1ZSBvZiBhbiBhdHRyaWJ1dGUgZnJvbSBhbiBlbGVtZW50LlxuICpcbiAqIEByZXR1cm5zIHtmYWxzZSB8IHN0cmluZ30gVGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuIGBmYWxzZWAgaWYgdGhlIGF0dHJpYnV0ZSB3YXMgbm90IHNldC5cbiAqL1xuZnVuY3Rpb24gZ2V0QXR0cmlidXRlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBxdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBmYWxzZSB8IHN0cmluZyB7XG4gIHJldHVybiAhIWVsZW1lbnQgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUocXVhbGlmaWVkTmFtZSkgJiYgKGVsZW1lbnQuZ2V0QXR0cmlidXRlKHF1YWxpZmllZE5hbWUpIHx8ICcnKTtcbn1cblxuLyoqXG4gKiBTZXRzIG9yIHJlbW92ZXMgYW4gYXR0cmlidXRlIGZyb20gYW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50IC0gVGhlIGVsZW1lbnQgdG8gc2V0IG9yIHJlbW92ZSBhdHRyaWJ1dGUgZnJvbS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBxdWFsaWZpZWROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZS5cbiAqIEBwYXJhbSB7ZmFsc2UgfCBzdHJpbmd9IHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuIFdoZW4gcGFzc2luZyBgZmFsc2VgLCByZW1vdmUgdGhlIGF0dHJpYnV0ZS5cbiAqL1xuZnVuY3Rpb24gc2V0T3JSZW1vdmVBdHRyaWJ1dGUoZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQsIHF1YWxpZmllZE5hbWU6IHN0cmluZywgdmFsdWU6IGZhbHNlIHwgc3RyaW5nKTogdm9pZCB7XG4gIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHtcbiAgICBlbGVtZW50Py5yZW1vdmVBdHRyaWJ1dGUocXVhbGlmaWVkTmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgZWxlbWVudD8uc2V0QXR0cmlidXRlKHF1YWxpZmllZE5hbWUsIHZhbHVlKTtcbiAgfVxufVxuXG4vKipcbiAqIFNldHMgb3IgcmVtb3ZlcyBhbiBhdHRyaWJ1dGUgZnJvbSBhbiBlbGVtZW50IHdpdGggYW4gdW5kbyBmdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50IC0gVGhlIGVsZW1lbnQgdG8gc2V0IG9yIHJlbW92ZSBhdHRyaWJ1dGUgZnJvbS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBxdWFsaWZpZWROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZS5cbiAqIEBwYXJhbSB7ZmFsc2UgfCBzdHJpbmd9IHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuIFdoZW4gcGFzc2luZyBgZmFsc2VgLCByZW1vdmUgdGhlIGF0dHJpYnV0ZS5cbiAqXG4gKiBAcmV0dXJucyB7KCkgPT4gdm9pZH0gVGhlIHVuZG8gZnVuY3Rpb24sIHdoZW4gY2FsbGVkLCB3aWxsIHVuZG8gYWxsIG1hbmlwdWxhdGlvbnMgYnkgcmVzdG9yaW5nIHZhbHVlcyByZWNvcmRlZCBhdCB0aGUgdGltZSBvZiB0aGUgZnVuY3Rpb24gY2FsbC5cbiAqL1xuZnVuY3Rpb24gc2V0T3JSZW1vdmVBdHRyaWJ1dGVXaXRoVW5kbyhcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQsXG4gIHF1YWxpZmllZE5hbWU6IHN0cmluZyxcbiAgdmFsdWU6IGZhbHNlIHwgc3RyaW5nXG4pOiBVbmRvRnVuY3Rpb24ge1xuICBpZiAoIWVsZW1lbnQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwcmV2VmFsdWUgPSBnZXRBdHRyaWJ1dGUoZWxlbWVudCwgcXVhbGlmaWVkTmFtZSk7XG5cbiAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUoZWxlbWVudCwgcXVhbGlmaWVkTmFtZSwgdmFsdWUpO1xuXG4gIHJldHVybiAoKSA9PiBzZXRPclJlbW92ZUF0dHJpYnV0ZShlbGVtZW50LCBxdWFsaWZpZWROYW1lLCBwcmV2VmFsdWUpO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBmaXJzdCBhbmNlc3RvciB0aGF0IGZ1bGZpbGwgdGhlIHByZWRpY2F0ZS5cbiAqXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50IC0gVGhlIHN0YXJ0aW5nIGVsZW1lbnQuIFRoaXMgZWxlbWVudCB3aWxsIG5vdCBiZSBjaGVja2VkIGFnYWluc3QgdGhlIHByZWRpY2F0ZS5cbiAqIEBwYXJhbSB7KGFuY2VzdG9yOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbn0gcHJlZGljYXRlIC0gVGhlIHByZWRpY2F0ZSB0byBmdWxmaWxsLlxuICpcbiAqIEByZXR1cm5zIHtIVE1MRWxlbWVudCB8IHVuZGVmaW5lZH0gVGhlIGZpcnN0IGFuY2VzdG9yIHRoYXQgZnVsZmlsbCB0aGUgcHJlZGljYXRlLCBvdGhlcndpc2UsIGB1bmRlZmluZWRgLlxuICovXG5mdW5jdGlvbiBmaW5kQW5jZXN0b3IoZWxlbWVudDogSFRNTEVsZW1lbnQsIHByZWRpY2F0ZTogKGFuY2VzdG9yOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbik6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgbGV0IGN1cnJlbnQgPSBlbGVtZW50O1xuXG4gIHdoaWxlICgoY3VycmVudCA9IGN1cnJlbnQucGFyZW50RWxlbWVudCkpIHtcbiAgICBpZiAocHJlZGljYXRlLmNhbGwoZWxlbWVudCwgY3VycmVudCkpIHtcbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEluZGljYXRlcyB0aGUgYWN0aW9uIHNlbGVjdGVkIGJ5IHBlcmZvcm1pbmcgYSBzZXJpZXMgb2YgbWFuaXB1bGF0aW9ucywgd2l0aCB1bmRvOlxuICpcbiAqIC0gQWNjZXNzaWJpbGl0eTogc2V0IGBhcmlhLXByZXNzZWRgIHRvIGB0cnVlYFxuICogLSBBcHBsaWVzIGBzdHlsZU9wdGlvbnMuYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lYFxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnRbXX0gc2VsZWN0ZWRBY3Rpb25FbGVtZW50cyAtIEFuIGFycmF5IG9mIGVsZW1lbnRzIHRoYXQgYXJlIHJlcHJlc2VudGluZyB0aGUgYWN0aW9uIGFuZCBpcyBzZWxlY3RlZC5cbiAqIEBwYXJhbSB7c3RyaW5nP30gYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGNsYXNzIHRvIGFwcGx5IHRvIGFsbCBlbGVtZW50cy5cbiAqXG4gKiBAcmV0dXJucyB7KCkgPT4gdm9pZH0gVGhlIHVuZG8gZnVuY3Rpb24sIHdoZW4gY2FsbGVkLCB3aWxsIHVuZG8gYWxsIG1hbmlwdWxhdGlvbnMgYnkgcmVzdG9yaW5nIHZhbHVlcyByZWNvcmRlZCBhdCB0aGUgdGltZSBvZiB0aGUgZnVuY3Rpb24gY2FsbC5cbiAqL1xuZnVuY3Rpb24gaW5kaWNhdGVBY3Rpb25TZWxlY3Rpb25XaXRoVW5kbyhcbiAgc2VsZWN0ZWRBY3Rpb25FbGVtZW50czogSFRNTEVsZW1lbnRbXSB8IHVuZGVmaW5lZCxcbiAgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lPzogc3RyaW5nXG4pOiBVbmRvRnVuY3Rpb24ge1xuICBpZiAoIXNlbGVjdGVkQWN0aW9uRWxlbWVudHM/Lmxlbmd0aCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIFZlcmlmeSBhbGwgaW5wdXQgZWxlbWVudHMgYXJlIFwiYWMtcHVzaEJ1dHRvblwiLCBjb3VsZCBiZWxvbmdzIHRvIEFjdGlvblNldCBvciBcImNhcmQgYWN0aW9uc1wiLlxuICBpZiAoc2VsZWN0ZWRBY3Rpb25FbGVtZW50cy5zb21lKGFjdGlvbkVsZW1lbnQgPT4gIWFjdGlvbkVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdhYy1wdXNoQnV0dG9uJykpKSB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgJ2JvdGZyYW1ld29yay13ZWJjaGF0OiBDYW5ub3QgbWFyayBzZWxlY3RlZCBhY3Rpb24gaW4gdGhlIGNhcmQsIHNvbWUgZWxlbWVudHMgYXJlIG5vdCBhbiBcImFjLXB1c2hCdXR0b25cIi4nXG4gICAgKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIEEgZGlzdGluY3Qgc2V0IG9mIGFjdGlvbiBzZXQgY29udGFpbmVycyB3aGljaCBoYXMgc2VsZWN0aW9ucywgZXhjbHVkaW5nIGNvbnRhaW5lcnMgd2l0aG91dCBhY3Rpb25zLlxuICAvLyBNdWx0aXBsZSBzdWJtaXNzaW9uIGluIGFuIEFkYXB0aXZlIENhcmQgaXMgc3RpbGwgYSB2YWd1ZSBhcmVhIGFuZCBUQkQuXG4gIC8vIFdlIG1pZ2h0IHdhbnQgdG8gZGlzYWJsZSB0aGUgd2hvbGUgY2FyZCwganVzdCBidXR0b25zIGluIHNhbWUgY29udGFpbmVyLCBvciBkbyBub3RoaW5nICh0b2RheSkuXG4gIGNvbnN0IGFjdGlvblNldEVsZW1lbnRzID0gbmV3IFNldDxIVE1MRWxlbWVudD4oKTtcblxuICBzZWxlY3RlZEFjdGlvbkVsZW1lbnRzLmZvckVhY2goc2VsZWN0ZWRBY3Rpb25FbGVtZW50ID0+IHtcbiAgICBjb25zdCBhY3Rpb25TZXRFbGVtZW50ID0gZmluZEFuY2VzdG9yKFxuICAgICAgc2VsZWN0ZWRBY3Rpb25FbGVtZW50LFxuICAgICAgYW5jZXN0b3IgPT4gYW5jZXN0b3IuZ2V0QXR0cmlidXRlKCdyb2xlJykgPT09ICdtZW51YmFyJ1xuICAgICk7XG5cbiAgICBhY3Rpb25TZXRFbGVtZW50ICYmIGFjdGlvblNldEVsZW1lbnRzLmFkZChhY3Rpb25TZXRFbGVtZW50KTtcbiAgfSk7XG5cbiAgY29uc3QgdW5kb1N0YWNrOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xuXG4gIGFjdGlvblNldEVsZW1lbnRzLmZvckVhY2goYWN0aW9uU2V0RWxlbWVudCA9PiB7XG4gICAgLy8gUmVtb3ZlIFwicm9sZVwiIGZyb20gZXZlcnkgXCJhYy1hY3Rpb25TZXRcIiBjb250YWluZXIuXG4gICAgdW5kb1N0YWNrLnB1c2goc2V0T3JSZW1vdmVBdHRyaWJ1dGVXaXRoVW5kbyhhY3Rpb25TZXRFbGVtZW50LCAncm9sZScsIGZhbHNlKSk7XG5cbiAgICAvLyBNb2RpZnkgXCJyb2xlXCIgb2YgZXZlcnkgYWN0aW9ucyBpbiB0aGUgY29udGFpbmVyLlxuICAgIEFycmF5LmZyb20oYWN0aW9uU2V0RWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYWMtcHVzaEJ1dHRvbicpIGFzIE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+KS5mb3JFYWNoKFxuICAgICAgYWN0aW9uRWxlbWVudCA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZEFjdGlvbkVsZW1lbnRzLmluY2x1ZGVzKGFjdGlvbkVsZW1lbnQpKSB7XG4gICAgICAgICAgLy8gQWRkIFwiYXJpYS1wcmVzc2VkXCIgYW5kIHNldCBcInJvbGVcIiBhdHRyaWJ1dGUgdG8gXCJidXR0b25cIiAod2hpY2ggaXMgcmVxdWlyZWQgYnkgXCJhcmlhLXByZXNzZWRcIikuXG4gICAgICAgICAgdW5kb1N0YWNrLnB1c2goc2V0T3JSZW1vdmVBdHRyaWJ1dGVXaXRoVW5kbyhhY3Rpb25FbGVtZW50LCAnYXJpYS1wcmVzc2VkJywgJ3RydWUnKSk7XG4gICAgICAgICAgdW5kb1N0YWNrLnB1c2goc2V0T3JSZW1vdmVBdHRyaWJ1dGVXaXRoVW5kbyhhY3Rpb25FbGVtZW50LCAncm9sZScsICdidXR0b24nKSk7XG5cbiAgICAgICAgICAvLyBIaWdobGlnaHQgYWN0aW9ucyBieSBhcHBseWluZyBgc3R5bGVPcHRpb25zLmFjdGlvblBlcmZvcm1lZENsYXNzTmFtZWAuXG4gICAgICAgICAgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lICYmXG4gICAgICAgICAgICB1bmRvU3RhY2sucHVzaChhZGRQZXJzaXN0ZW50Q2xhc3NXaXRoVW5kbyhhY3Rpb25FbGVtZW50LCBhY3Rpb25QZXJmb3JtZWRDbGFzc05hbWUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBXZSByZW1vdmVkIFwicm9sZT1tZW51YmFyXCIgZnJvbSB0aGUgY29udGFpbmVyLCB3ZSBtdXN0IHJlbW92ZSBcInJvbGU9bWVudWl0ZW1cIiBmcm9tIHVuc2VsZWN0ZWQgYWN0aW9ucy5cbiAgICAgICAgICB1bmRvU3RhY2sucHVzaChzZXRPclJlbW92ZUF0dHJpYnV0ZVdpdGhVbmRvKGFjdGlvbkVsZW1lbnQsICdyb2xlJywgZmFsc2UpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gIH0pO1xuXG4gIHJldHVybiBidW5jaFVuZG9zKC4uLnVuZG9TdGFjayk7XG59XG5cbi8qKlxuICogRml4ZXMgYWNjZXNzaWJpbGl0eSBpc3N1ZXMgZnJvbSBBZGFwdGl2ZSBDYXJkLCB3aXRoIHVuZG8uXG4gKlxuICogQHJldHVybnMgeygpID0+IHZvaWR9IFRoZSB1bmRvIGZ1bmN0aW9uLCB3aGVuIGNhbGxlZCwgd2lsbCB1bmRvIGFsbCBtYW5pcHVsYXRpb25zIGJ5IHJlc3RvcmluZyB2YWx1ZXMgcmVjb3JkZWQgYXQgdGhlIHRpbWUgb2YgdGhlIGZ1bmN0aW9uIGNhbGwuXG4gKi9cbmZ1bmN0aW9uIGZpeEFjY2Vzc2liaWxpdHlJc3N1ZXNXaXRoVW5kbyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IFVuZG9GdW5jdGlvbiB7XG4gIGlmICghZWxlbWVudCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIFRoZXNlIGhhY2tzIHNob3VsZCBiZSBkb25lIGluIEFkYXB0aXZlIENhcmRzIGxpYnJhcnkgaW5zdGVhZC5cbiAgLy8gUmVsYXRlZCB0byAjMzk0OTogQWxsIGFjdGlvbiBidXR0b25zIGluc2lkZSByb2xlPVwibWVudWJhclwiIHNob3VsZCBiZSByb2xlPVwibWVudWl0ZW1cIi5cbiAgY29uc3QgdW5kb1N0YWNrOiBVbmRvRnVuY3Rpb25bXSA9IEFycmF5LmZyb20oXG4gICAgZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYWMtYWN0aW9uU2V0W3JvbGU9XCJtZW51YmFyXCJdIFtyb2xlPVwiYnV0dG9uXCJdJykgYXMgTm9kZUxpc3RPZjxIVE1MRWxlbWVudD5cbiAgKS5tYXAoYWN0aW9uQnV0dG9uID0+IHNldEF0dHJpYnV0ZVdpdGhVbmRvKGFjdGlvbkJ1dHRvbiwgJ3JvbGUnLCAnbWVudWl0ZW0nKSk7XG5cbiAgcmV0dXJuICgpID0+IHVuZG9TdGFjay5mb3JFYWNoKHVuZG8gPT4gdW5kbz8uKCkpO1xufVxuXG5mdW5jdGlvbiBnZXRGb2N1c2FibGVFbGVtZW50cyhlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICByZXR1cm4gW10uZmlsdGVyLmNhbGwoXG4gICAgZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgW1xuICAgICAgICAnYScsXG4gICAgICAgICdib2R5JyxcbiAgICAgICAgJ2J1dHRvbicsXG4gICAgICAgICdmcmFtZScsXG4gICAgICAgICdpZnJhbWUnLFxuICAgICAgICAnaW1nJyxcbiAgICAgICAgJ2lucHV0JyxcbiAgICAgICAgJ2lzaW5kZXgnLFxuICAgICAgICAnb2JqZWN0JyxcbiAgICAgICAgJ3NlbGVjdCcsXG4gICAgICAgICd0ZXh0YXJlYScsXG4gICAgICAgICdbdGFiaW5kZXhdJ1xuICAgICAgXS5qb2luKCcsICcpXG4gICAgKSBhcyBOb2RlTGlzdE9mPEhUTUxFbGVtZW50PixcbiAgICBlbGVtZW50ID0+IHtcbiAgICAgIGNvbnN0IHRhYkluZGV4ID0gZ2V0VGFiSW5kZXgoZWxlbWVudCk7XG5cbiAgICAgIHJldHVybiB0eXBlb2YgdGFiSW5kZXggPT09ICdudW1iZXInICYmIHRhYkluZGV4ID49IDA7XG4gICAgfVxuICApO1xufVxuXG5mdW5jdGlvbiByZXN0b3JlQWN0aXZlRWxlbWVudEluZGV4KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBhY3RpdmVFbGVtZW50SW5kZXg6IG51bWJlcikge1xuICBnZXRGb2N1c2FibGVFbGVtZW50cyhlbGVtZW50KVsrYWN0aXZlRWxlbWVudEluZGV4XT8uZm9jdXMoKTtcbn1cblxuZnVuY3Rpb24gc2F2ZUFjdGl2ZUVsZW1lbnRJbmRleChlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICByZXR1cm4gZ2V0Rm9jdXNhYmxlRWxlbWVudHMoZWxlbWVudCkuaW5kZXhPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gcmVzdG9yZUlucHV0VmFsdWVzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBpbnB1dFZhbHVlczogKGJvb2xlYW4gfCBzdHJpbmcpW10pIHtcbiAgY29uc3QgaW5wdXRzID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYScpIGFzIE5vZGVMaXN0T2Y8XG4gICAgSFRNTElucHV0RWxlbWVudCB8IEhUTUxTZWxlY3RFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudFxuICA+O1xuXG4gIFtdLmZvckVhY2guY2FsbChpbnB1dHMsIChpbnB1dDogSFRNTElucHV0RWxlbWVudCB8IEhUTUxTZWxlY3RFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gaW5wdXRWYWx1ZXNbK2luZGV4XTtcblxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zdCB7IHRhZ05hbWUsIHR5cGUgfSA9IGlucHV0O1xuXG4gICAgICBpZiAodGFnTmFtZSA9PT0gJ0lOUFVUJyAmJiAodHlwZSA9PT0gJ2NoZWNrYm94JyB8fCB0eXBlID09PSAncmFkaW8nKSkge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAoaW5wdXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzYXZlSW5wdXRWYWx1ZXMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiAoYm9vbGVhbiB8IHN0cmluZylbXSB7XG4gIGNvbnN0IGlucHV0cyA9IGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEnKSBhcyBOb2RlTGlzdE9mPFxuICAgIEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MU2VsZWN0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnRcbiAgPjtcblxuICByZXR1cm4gW10ubWFwLmNhbGwoaW5wdXRzLCAoaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MU2VsZWN0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQpID0+IHtcbiAgICBjb25zdCB7IHR5cGUgfSA9IGlucHV0O1xuXG4gICAgaWYgKGlucHV0LnRhZ05hbWUgPT09ICdJTlBVVCcgJiYgKHR5cGUgPT09ICdjaGVja2JveCcgfHwgdHlwZSA9PT0gJ3JhZGlvJykpIHtcbiAgICAgIHJldHVybiAoaW5wdXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5wdXQudmFsdWU7XG4gIH0pO1xufVxuXG50eXBlIEFkYXB0aXZlQ2FyZFJlbmRlcmVyUHJvcHMgPSB7XG4gIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZT86IHN0cmluZztcbiAgYWRhcHRpdmVDYXJkOiBBZGFwdGl2ZUNhcmQ7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgdGFwQWN0aW9uPzogRGlyZWN0TGluZUNhcmRBY3Rpb247XG59O1xuXG5jb25zdCBBZGFwdGl2ZUNhcmRSZW5kZXJlcjogVkZDPEFkYXB0aXZlQ2FyZFJlbmRlcmVyUHJvcHM+ID0gKHtcbiAgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lLFxuICBhZGFwdGl2ZUNhcmQsXG4gIGRpc2FibGVkOiBkaXNhYmxlZEZyb21Qcm9wcyxcbiAgdGFwQWN0aW9uXG59KSA9PiB7XG4gIGNvbnN0IFt7IGFkYXB0aXZlQ2FyZFJlbmRlcmVyOiBhZGFwdGl2ZUNhcmRSZW5kZXJlclN0eWxlU2V0IH1dID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgW3sgR2xvYmFsU2V0dGluZ3MsIEhvc3RDb25maWcgfV0gPSB1c2VBZGFwdGl2ZUNhcmRzUGFja2FnZSgpO1xuICBjb25zdCBbYWN0aW9uc1BlcmZvcm1lZCwgc2V0QWN0aW9uc1BlcmZvcm1lZF0gPSB1c2VTdGF0ZTxBZGFwdGl2ZUNhcmRBY3Rpb25bXT4oW10pO1xuICBjb25zdCBbYWRhcHRpdmVDYXJkc0hvc3RDb25maWddID0gdXNlQWRhcHRpdmVDYXJkc0hvc3RDb25maWcoKTtcbiAgY29uc3QgW2Rpc2FibGVkRnJvbUNvbXBvc2VyXSA9IHVzZURpc2FibGVkKCk7XG4gIGNvbnN0IFtlcnJvcnMsIHNldEVycm9yc10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFtsYXN0UmVuZGVyLCBzZXRMYXN0UmVuZGVyXSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBhY3RpdmVFbGVtZW50SW5kZXhSZWYgPSB1c2VSZWYoLTEpO1xuICBjb25zdCBhZGFwdGl2ZUNhcmRFbGVtZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50PigpO1xuICBjb25zdCBjb250ZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuICBjb25zdCBpbnB1dFZhbHVlc1JlZiA9IHVzZVJlZjwoYm9vbGVhbiB8IHN0cmluZylbXT4oW10pO1xuICBjb25zdCBsb2NhbGl6ZSA9IHVzZUxvY2FsaXplcigpO1xuICBjb25zdCBwZXJmb3JtQ2FyZEFjdGlvbiA9IHVzZVBlcmZvcm1DYXJkQWN0aW9uKCk7XG4gIGNvbnN0IHJlbmRlck1hcmtkb3duQXNIVE1MID0gdXNlUmVuZGVyTWFya2Rvd25Bc0hUTUwoKTtcbiAgY29uc3Qgc2Nyb2xsVG9FbmQgPSB1c2VTY3JvbGxUb0VuZCgpO1xuXG4gIGNvbnN0IGRpc2FibGVkID0gZGlzYWJsZWRGcm9tQ29tcG9zZXIgfHwgZGlzYWJsZWRGcm9tUHJvcHM7XG5cbiAgLy8gVE9ETzogW1AyXSAjMzE5OSBXZSBzaG91bGQgY29uc2lkZXIgdXNpbmcgYGFkYXB0aXZlQ2FyZC5zZWxlY3RBY3Rpb25gIGluc3RlYWQuXG4gIC8vIFRoZSBudWxsIGNoZWNrIGZvciBcInRhcEFjdGlvblwiIGlzIGluIFwiaGFuZGxlQ2xpY2tBbmRLZXlQcmVzc0ZvclRhcEFjdGlvblwiLlxuICBjb25zdCBoYW5kbGVDbGlja0FuZEtleVByZXNzID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgY29uc3QgeyBrZXksIHR5cGUgfSA9IGV2ZW50IGFzIEtleWJvYXJkRXZlbnQ7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgICAgIC8vIFNvbWUgaXRlbXMsIGUuZy4gdGFwcGFibGUgdGV4dCwgY2Fubm90IGJlIGRpc2FibGVkIHRocnUgRE9NIGF0dHJpYnV0ZXNcbiAgICAgIGNvbnN0IHsgY3VycmVudCB9ID0gY29udGVudFJlZjtcbiAgICAgIGNvbnN0IGFkYXB0aXZlQ2FyZFJvb3QgPSBjdXJyZW50LnF1ZXJ5U2VsZWN0b3IoJy5hYy1hZGFwdGl2ZUNhcmRbdGFiaW5kZXg9XCIwXCJdJyk7XG5cbiAgICAgIGlmICghYWRhcHRpdmVDYXJkUm9vdCkge1xuICAgICAgICByZXR1cm4gY29uc29sZS53YXJuKFxuICAgICAgICAgICdib3RmcmFtZXdvcmstd2ViY2hhdDogTm8gQWRhcHRpdmUgQ2FyZCByb290IGNvbnRhaW5lciBjYW4gYmUgZm91bmQ7IHRoZSBjYXJkIGlzIHByb2JhYmx5IG9uIGFuIHVuc3VwcG9ydGVkIEFkYXB0aXZlIENhcmQgdmVyc2lvbi4nXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIEZvciBcImtleXByZXNzXCIgZXZlbnQsIHdlIG9ubHkgbGlzdGVuIHRvIEVOVEVSIGFuZCBTUEFDRUJBUiBrZXkuXG4gICAgICBpZiAodHlwZSA9PT0gJ2tleXByZXNzJykge1xuICAgICAgICBpZiAoa2V5ICE9PSAnRW50ZXInICYmIGtleSAhPT0gJyAnKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cblxuICAgICAgLy8gV2Ugd2lsbCBjYWxsIHBlcmZvcm1DYXJkQWN0aW9uIGlmIGVpdGhlcjpcbiAgICAgIC8vIDEuIFdlIGFyZSBvbiB0aGUgdGFyZ2V0LCBvclxuICAgICAgLy8gMi4gVGhlIGV2ZW50LWRpc3BhdGNoaW5nIGVsZW1lbnQgaXMgbm90IGludGVyYWN0aXZlXG4gICAgICBpZiAodGFyZ2V0ICE9PSBhZGFwdGl2ZUNhcmRSb290KSB7XG4gICAgICAgIGNvbnN0IHRhYkluZGV4ID0gZ2V0VGFiSW5kZXgodGFyZ2V0KTtcblxuICAgICAgICAvLyBJZiB0aGUgdXNlciBpcyBjbGlja2luZyBvbiBzb21ldGhpbmcgdGhhdCBpcyBhbHJlYWR5IGNsaWNrYWJsZSwgZG8gbm90IGFsbG93IHRoZW0gdG8gY2xpY2sgdGhlIGNhcmQuXG4gICAgICAgIC8vIEUuZy4gYSBoZXJvIGNhcmQgY2FuIGJlIHRhcHBhYmxlLCBhbmQgaW1hZ2UgYW5kIGJ1dHRvbnMgaW5zaWRlIHRoZSBoZXJvIGNhcmQgY2FuIGFsc28gYmUgdGFwcGFibGUuXG4gICAgICAgIGlmICh0eXBlb2YgdGFiSW5kZXggPT09ICdudW1iZXInICYmIHRhYkluZGV4ID49IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcGVyZm9ybUNhcmRBY3Rpb24odGFwQWN0aW9uKTtcbiAgICAgIHNjcm9sbFRvRW5kKCk7XG4gICAgfSxcbiAgICBbY29udGVudFJlZiwgcGVyZm9ybUNhcmRBY3Rpb24sIHNjcm9sbFRvRW5kLCB0YXBBY3Rpb25dXG4gICk7XG5cbiAgLy8gT25seSBsaXN0ZW4gdG8gZXZlbnQgaWYgaXQgaXMgbm90IGRpc2FibGVkIGFuZCBoYXZlIFwidGFwQWN0aW9uXCIgcHJvcC5cbiAgY29uc3QgaGFuZGxlQ2xpY2tBbmRLZXlQcmVzc0ZvclRhcEFjdGlvbiA9ICFkaXNhYmxlZCAmJiB0YXBBY3Rpb24gPyBoYW5kbGVDbGlja0FuZEtleVByZXNzIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGFkZEFjdGlvbnNQZXJmb3JtZWQgPSB1c2VDYWxsYmFjayhcbiAgICAoYWN0aW9uOiBBZGFwdGl2ZUNhcmRBY3Rpb24pOiB2b2lkID0+XG4gICAgICAhfmFjdGlvbnNQZXJmb3JtZWQuaW5kZXhPZihhY3Rpb24pICYmIHNldEFjdGlvbnNQZXJmb3JtZWQoWy4uLmFjdGlvbnNQZXJmb3JtZWQsIGFjdGlvbl0pLFxuICAgIFthY3Rpb25zUGVyZm9ybWVkLCBzZXRBY3Rpb25zUGVyZm9ybWVkXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUV4ZWN1dGVBY3Rpb24gPSB1c2VDYWxsYmFjayhcbiAgICAoYWN0aW9uOiBBZGFwdGl2ZUNhcmRBY3Rpb24pOiB2b2lkID0+IHtcbiAgICAgIC8vIFNvbWUgaXRlbXMsIGUuZy4gdGFwcGFibGUgaW1hZ2UsIGNhbm5vdCBiZSBkaXNhYmxlZCB0aHJ1IERPTSBhdHRyaWJ1dGVzXG4gICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBhZGRBY3Rpb25zUGVyZm9ybWVkKGFjdGlvbik7XG5cbiAgICAgIGNvbnN0IGFjdGlvblR5cGVOYW1lID0gYWN0aW9uLmdldEpzb25UeXBlTmFtZSgpO1xuICAgICAgY29uc3QgeyBpY29uVXJsOiBpbWFnZSwgdGl0bGUgfSA9IGFjdGlvbjtcblxuICAgICAgLy8gV2UgY2Fubm90IHVzZSBcImluc3RhbmNlb2ZcIiBjaGVjayBoZXJlLCBiZWNhdXNlIHdlYiBkZXZzIG1heSBicmluZyB0aGVpciBvd24gdmVyc2lvbiBvZiBBZGFwdGl2ZSBDYXJkcyBwYWNrYWdlLlxuICAgICAgLy8gV2UgbmVlZCB0byBjaGVjayB1c2luZyBcImdldEpzb25UeXBlTmFtZSgpXCIgaW5zdGVhZC5cbiAgICAgIGlmIChhY3Rpb25UeXBlTmFtZSA9PT0gJ0FjdGlvbi5PcGVuVXJsJykge1xuICAgICAgICBjb25zdCB7IHVybDogdmFsdWUgfSA9IGFjdGlvbiBhcyBPcGVuVXJsQWN0aW9uO1xuXG4gICAgICAgIHBlcmZvcm1DYXJkQWN0aW9uKHtcbiAgICAgICAgICBpbWFnZSxcbiAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICB0eXBlOiAnb3BlblVybCcsXG4gICAgICAgICAgdmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKGFjdGlvblR5cGVOYW1lID09PSAnQWN0aW9uLlN1Ym1pdCcpIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBhY3Rpb24gYXMgU3VibWl0QWN0aW9uIGFzIHtcbiAgICAgICAgICBkYXRhOiBzdHJpbmcgfCBCb3RGcmFtZXdvcmtDYXJkQWN0aW9uO1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBwZXJmb3JtQ2FyZEFjdGlvbih7XG4gICAgICAgICAgICAgIGltYWdlLFxuICAgICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgICAgdHlwZTogJ2ltQmFjaycsXG4gICAgICAgICAgICAgIHZhbHVlOiBkYXRhXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGRhdGEuX19pc0JvdEZyYW1ld29ya0NhcmRBY3Rpb24pIHtcbiAgICAgICAgICAgIHBlcmZvcm1DYXJkQWN0aW9uKGRhdGEuY2FyZEFjdGlvbik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBlcmZvcm1DYXJkQWN0aW9uKHtcbiAgICAgICAgICAgICAgaW1hZ2UsXG4gICAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgICB0eXBlOiAncG9zdEJhY2snLFxuICAgICAgICAgICAgICB2YWx1ZTogZGF0YVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2Nyb2xsVG9FbmQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFdlYiBDaGF0OiByZWNlaXZlZCB1bmtub3duIGFjdGlvbiBmcm9tIEFkYXB0aXZlIENhcmRzYCk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYWN0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFthZGRBY3Rpb25zUGVyZm9ybWVkLCBkaXNhYmxlZCwgcGVyZm9ybUNhcmRBY3Rpb24sIHNjcm9sbFRvRW5kXVxuICApO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50IH0gPSBjb250ZW50UmVmO1xuXG4gICAgaWYgKCFjdXJyZW50IHx8ICFhZGFwdGl2ZUNhcmQpIHtcbiAgICAgIGFjdGl2ZUVsZW1lbnRJbmRleFJlZi5jdXJyZW50ID0gLTE7XG4gICAgICBpbnB1dFZhbHVlc1JlZi5jdXJyZW50ID0gW107XG4gICAgfVxuXG4gICAgLy8gQ3VycmVudGx5LCB0aGUgb25seSB3YXkgdG8gc2V0IHRoZSBNYXJrZG93biBlbmdpbmUgaXMgdG8gc2V0IGl0IHRocnUgc3RhdGljIG1lbWJlciBvZiBBZGFwdGl2ZUNhcmQgY2xhc3NcblxuICAgIC8vIFRPRE86IFtQM10gQ2hlY2tzIGlmIHdlIGNvdWxkIG1ha2UgdGhlIFwicmVuZGVyTWFya2Rvd25Bc0hUTUxcIiBwZXIgY2FyZFxuICAgIC8vICAgICAgIFRoaXMgY291bGQgYmUgbGltaXRhdGlvbnMgZnJvbSBBZGFwdGl2ZSBDYXJkcyBwYWNrYWdlIChub3Qgc3VwcG9ydGVkIGFzIG9mIDEuMi41KVxuICAgIC8vICAgICAgIEJlY2F1c2UgdGhlcmUgY291bGQgYmUgdGltaW5nIGRpZmZlcmVuY2UgYmV0d2VlbiAucGFyc2UgYW5kIC5yZW5kZXIsIHdlIGNvdWxkIGJlIHVzaW5nIHdyb25nIE1hcmtkb3duIGVuZ2luZVxuXG4gICAgLy8gXCJvblByb2Nlc3NNYXJrZG93blwiIGlzIGEgc3RhdGljIGZ1bmN0aW9uIGJ1dCB3ZSBhcmUgdHJ5aW5nIHRvIHNjb3BlIGl0IHRvIHRoZSBjdXJyZW50IG9iamVjdCBpbnN0ZWFkLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkb3Qtbm90YXRpb25cbiAgICBhZGFwdGl2ZUNhcmQuY29uc3RydWN0b3JbJ29uUHJvY2Vzc01hcmtkb3duJ10gPSAodGV4dDogc3RyaW5nLCByZXN1bHQ6IElNYXJrZG93blByb2Nlc3NpbmdSZXN1bHQpID0+IHtcbiAgICAgIGlmIChyZW5kZXJNYXJrZG93bkFzSFRNTCkge1xuICAgICAgICByZXN1bHQub3V0cHV0SHRtbCA9IHJlbmRlck1hcmtkb3duQXNIVE1MKHRleHQpO1xuICAgICAgICByZXN1bHQuZGlkUHJvY2VzcyA9IHRydWU7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmIChhZGFwdGl2ZUNhcmRzSG9zdENvbmZpZykge1xuICAgICAgYWRhcHRpdmVDYXJkLmhvc3RDb25maWcgPSBpc1BsYWluT2JqZWN0KGFkYXB0aXZlQ2FyZHNIb3N0Q29uZmlnKVxuICAgICAgICA/IG5ldyBIb3N0Q29uZmlnKGFkYXB0aXZlQ2FyZHNIb3N0Q29uZmlnKVxuICAgICAgICA6IGFkYXB0aXZlQ2FyZHNIb3N0Q29uZmlnO1xuICAgIH1cblxuICAgIC8vIEZvciBhY2Nlc3NpYmlsaXR5IGlzc3VlICMxMzQwLCBgdGFiaW5kZXg9XCIwXCJgIG11c3Qgbm90IGJlIHNldCBmb3IgdGhlIHJvb3QgY29udGFpbmVyIGlmIGl0IGlzIG5vdCBpbnRlcmFjdGl2ZS5cbiAgICBHbG9iYWxTZXR0aW5ncy5zZXRUYWJJbmRleEF0Q2FyZFJvb3QgPSAhIXRhcEFjdGlvbjtcblxuICAgIGNvbnN0IHsgdmFsaWRhdGlvbkV2ZW50cyB9ID0gYWRhcHRpdmVDYXJkLnZhbGlkYXRlUHJvcGVydGllcygpO1xuXG4gICAgaWYgKHZhbGlkYXRpb25FdmVudHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gc2V0RXJyb3JzKHZhbGlkYXRpb25FdmVudHMucmVkdWNlKChpdGVtcywgeyBtZXNzYWdlIH0pID0+IFsuLi5pdGVtcywgbmV3IEVycm9yKG1lc3NhZ2UpXSwgW10pKTtcbiAgICB9XG5cbiAgICBsZXQgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICB0cnkge1xuICAgICAgZWxlbWVudCA9IGFkYXB0aXZlQ2FyZC5yZW5kZXIoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIHNldEVycm9ycyhbZXJyb3JdKTtcbiAgICB9XG5cbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBzZXRFcnJvcnMoW25ldyBFcnJvcignQWRhcHRpdmUgQ2FyZCByZW5kZXJlZCBhcyBlbXB0eSBlbGVtZW50JyldKTtcbiAgICB9XG5cbiAgICAvLyBDbGVhciBlcnJvcnMgb24gbmV4dCByZW5kZXJcbiAgICBzZXRFcnJvcnMoW10pO1xuXG4gICAgcmVzdG9yZUlucHV0VmFsdWVzKGVsZW1lbnQsIGlucHV0VmFsdWVzUmVmLmN1cnJlbnQpO1xuXG4gICAgY3VycmVudC5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICBhZGFwdGl2ZUNhcmRFbGVtZW50UmVmLmN1cnJlbnQgPSBlbGVtZW50O1xuXG4gICAgLy8gRm9jdXMgY2FuIG9ubHkgYmUgcmVzdG9yZWQgYWZ0ZXIgdGhlIERPTSBpcyBhdHRhY2hlZC5cbiAgICByZXN0b3JlQWN0aXZlRWxlbWVudEluZGV4KGVsZW1lbnQsIGFjdGl2ZUVsZW1lbnRJbmRleFJlZi5jdXJyZW50KTtcblxuICAgIHNldExhc3RSZW5kZXIoRGF0ZS5ub3coKSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgYWN0aXZlRWxlbWVudEluZGV4UmVmLmN1cnJlbnQgPSBzYXZlQWN0aXZlRWxlbWVudEluZGV4KGVsZW1lbnQpO1xuICAgICAgaW5wdXRWYWx1ZXNSZWYuY3VycmVudCA9IHNhdmVJbnB1dFZhbHVlcyhlbGVtZW50KTtcblxuICAgICAgY3VycmVudC5yZW1vdmVDaGlsZChhZGFwdGl2ZUNhcmRFbGVtZW50UmVmLmN1cnJlbnQpO1xuXG4gICAgICBhZGFwdGl2ZUNhcmRFbGVtZW50UmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgfTtcbiAgfSwgW1xuICAgIGFkYXB0aXZlQ2FyZCxcbiAgICBhZGFwdGl2ZUNhcmRzSG9zdENvbmZpZyxcbiAgICBjb250ZW50UmVmLFxuICAgIEdsb2JhbFNldHRpbmdzLFxuICAgIEhvc3RDb25maWcsXG4gICAgcmVuZGVyTWFya2Rvd25Bc0hUTUwsXG4gICAgc2V0RXJyb3JzLFxuICAgIHRhcEFjdGlvblxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFNldCBvbkV4ZWN1dGVBY3Rpb24gd2l0aG91dCBjYXVzaW5nIHVubmVjZXNzYXJ5IHJlLXJlbmRlci5cbiAgICBhZGFwdGl2ZUNhcmQub25FeGVjdXRlQWN0aW9uID0gZGlzYWJsZWQgPyB1bmRlZmluZWQgOiBoYW5kbGVFeGVjdXRlQWN0aW9uO1xuICB9LCBbYWRhcHRpdmVDYXJkLCBkaXNhYmxlZCwgaGFuZGxlRXhlY3V0ZUFjdGlvbl0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiBmaXhBY2Nlc3NpYmlsaXR5SXNzdWVzV2l0aFVuZG8oYWRhcHRpdmVDYXJkRWxlbWVudFJlZi5jdXJyZW50KSwgW2FkYXB0aXZlQ2FyZEVsZW1lbnRSZWYsIGxhc3RSZW5kZXJdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIElmIHRoZSBBZGFwdGl2ZSBDYXJkIGdldCByZS1yZW5kZXJlZCwgcmUtZGlzYWJsZSBlbGVtZW50cyBhcyBuZWVkZWQuXG4gICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gZGlzYWJsZUlucHV0RWxlbWVudHNXaXRoVW5kbyhhZGFwdGl2ZUNhcmRFbGVtZW50UmVmLmN1cnJlbnQpO1xuICAgIH1cbiAgfSwgW2FkYXB0aXZlQ2FyZEVsZW1lbnRSZWYsIGRpc2FibGVkLCBsYXN0UmVuZGVyXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBJZiB0aGUgQWRhcHRpdmUgQ2FyZCBjaGFuZ2VkLCByZXNldCBhbGwgYWN0aW9ucyBwZXJmb3JtZWQuXG4gICAgc2V0QWN0aW9uc1BlcmZvcm1lZChbXSk7XG4gIH0sIFthZGFwdGl2ZUNhcmRdKTtcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIGluZGljYXRlQWN0aW9uU2VsZWN0aW9uV2l0aFVuZG8oXG4gICAgICAgIC8vIEFjdGlvbnMgdGhhdCBkbyBub3QgaGF2ZSBcInJlbmRlcmVkRWxlbWVudFwiIG1lYW5zIGl0IGlzIHRoZSBBZGFwdGl2ZSBDYXJkIGl0c2VsZiwgc3VjaCBhcyBcInNlbGVjdEFjdGlvblwiIChBQykgb3IgXCJ0YXBBY3Rpb25cIiAocmljaCBjYXJkcykuXG4gICAgICAgIC8vIFdlIGRvIG5vdCBuZWVkIHRvIG1hcmsgdGhlIHdob2xlIGNhcmQgYXMgcGVyZm9ybWVkLlxuICAgICAgICBhY3Rpb25zUGVyZm9ybWVkLm1hcCgoeyByZW5kZXJlZEVsZW1lbnQgfSkgPT4gcmVuZGVyZWRFbGVtZW50KS5maWx0ZXIocmVuZGVyZWRFbGVtZW50ID0+IHJlbmRlcmVkRWxlbWVudCksXG4gICAgICAgIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZVxuICAgICAgKSxcbiAgICBbYWN0aW9uc1BlcmZvcm1lZCwgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lLCBsYXN0UmVuZGVyXVxuICApO1xuXG4gIHJldHVybiBlcnJvcnMubGVuZ3RoID8gKFxuICAgIG5vZGVfZW52ID09PSAnZGV2ZWxvcG1lbnQnICYmIDxFcnJvckJveCBlcnJvcj17ZXJyb3JzWzBdfSB0eXBlPXtsb2NhbGl6ZSgnQURBUFRJVkVfQ0FSRF9FUlJPUl9CT1hfVElUTEVfUkVOREVSJyl9IC8+XG4gICkgOiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGFkYXB0aXZlQ2FyZFJlbmRlcmVyU3R5bGVTZXQgKyAnJywgJ3dlYmNoYXRfX2FkYXB0aXZlLWNhcmQtcmVuZGVyZXInKX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrQW5kS2V5UHJlc3NGb3JUYXBBY3Rpb24gYXMgdW5rbm93biBhcyBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD59XG4gICAgICBvbktleVByZXNzPXtoYW5kbGVDbGlja0FuZEtleVByZXNzRm9yVGFwQWN0aW9uIGFzIHVua25vd24gYXMgS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+fVxuICAgICAgcmVmPXtjb250ZW50UmVmfVxuICAgIC8+XG4gICk7XG59O1xuXG5BZGFwdGl2ZUNhcmRSZW5kZXJlci5kZWZhdWx0UHJvcHMgPSB7XG4gIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZTogJycsXG4gIGRpc2FibGVkOiB1bmRlZmluZWQsXG4gIHRhcEFjdGlvbjogdW5kZWZpbmVkXG59O1xuXG5BZGFwdGl2ZUNhcmRSZW5kZXJlci5wcm9wVHlwZXMgPSB7XG4gIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgYWRhcHRpdmVDYXJkOiBQcm9wVHlwZXMuYW55LmlzUmVxdWlyZWQsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvLyBUeXBlU2NyaXB0IGNsYXNzIGlzIG5vdCBtYXBwYWJsZSB0byBQcm9wVHlwZXMuZnVuY1xuICAvLyBAdHMtaWdub3JlXG4gIHRhcEFjdGlvbjogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBpbWFnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmdcbiAgfSlcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEFkYXB0aXZlQ2FyZFJlbmRlcmVyO1xuIl19
|
|
734
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQWRhcHRpdmVDYXJkUmVuZGVyZXIudHN4Il0sIm5hbWVzIjpbIkVycm9yQm94IiwiQ29tcG9uZW50cyIsInVzZURpc2FibGVkIiwiaG9va3MiLCJ1c2VMb2NhbGl6ZXIiLCJ1c2VQZXJmb3JtQ2FyZEFjdGlvbiIsInVzZVJlbmRlck1hcmtkb3duQXNIVE1MIiwidXNlU2Nyb2xsVG9FbmQiLCJ1c2VTdHlsZVNldCIsIm5vZGVfZW52IiwiYnVuY2hVbmRvcyIsImZucyIsImZvckVhY2giLCJmbiIsImFkZENsYXNzIiwiZWxlbWVudCIsImNsYXNzTmFtZSIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwiYWRkIiwiYWRkUGVyc2lzdGVudENsYXNzV2l0aFVuZG8iLCJvYnNlcnZlciIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJvYnNlcnZlIiwiYXR0cmlidXRlcyIsImF0dHJpYnV0ZUZpbHRlciIsImNsYXNzTmFtZXMiLCJTZXQiLCJzcGxpdCIsImRlbGV0ZSIsIkFycmF5IiwiZnJvbSIsImpvaW4iLCJkaXNjb25uZWN0IiwiaXNQbGFpbk9iamVjdCIsIm9iaiIsIk9iamVjdCIsImdldFByb3RvdHlwZU9mIiwicHJvdG90eXBlIiwic2V0QXR0cmlidXRlV2l0aFVuZG8iLCJxdWFsaWZpZWROYW1lIiwibmV4dFZhbHVlIiwidmFsdWUiLCJnZXRBdHRyaWJ1dGUiLCJzZXRBdHRyaWJ1dGUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJkaXNhYmxlZEhhbmRsZXIiLCJldmVudCIsInByZXZlbnREZWZhdWx0Iiwic3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uIiwic3RvcFByb3BhZ2F0aW9uIiwiYWRkRXZlbnRMaXN0ZW5lck9uY2VXaXRoVW5kbyIsIm5hbWUiLCJoYW5kbGVyIiwiZGV0YWNoIiwiZGV0YWNoaW5nSGFuZGxlciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhZGRFdmVudExpc3RlbmVyIiwib25jZSIsImFkZEV2ZW50TGlzdGVuZXJXaXRoVW5kbyIsImRpc2FibGVFbGVtZW50V2l0aFVuZG8iLCJ1bmRvU3RhY2siLCJpc0FjdGl2ZSIsImRvY3VtZW50IiwiYWN0aXZlRWxlbWVudCIsInRhZyIsIm5vZGVOYW1lIiwidG9Mb3dlckNhc2UiLCJwdXNoIiwibWFwIiwiY2FsbCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJvcHRpb24iLCJkaXNhYmxlSW5wdXRFbGVtZW50c1dpdGhVbmRvIiwib2JzZXJ2ZVN1YnRyZWUiLCJtdXRhdGlvbnMiLCJhZGRlZE5vZGVzIiwiYWRkZWROb2RlIiwiY2hpbGRMaXN0Iiwic3VidHJlZSIsImhhc0F0dHJpYnV0ZSIsInNldE9yUmVtb3ZlQXR0cmlidXRlIiwic2V0T3JSZW1vdmVBdHRyaWJ1dGVXaXRoVW5kbyIsInByZXZWYWx1ZSIsImZpbmRBbmNlc3RvciIsInByZWRpY2F0ZSIsImN1cnJlbnQiLCJwYXJlbnRFbGVtZW50IiwiaW5kaWNhdGVBY3Rpb25TZWxlY3Rpb25XaXRoVW5kbyIsInNlbGVjdGVkQWN0aW9uRWxlbWVudHMiLCJhY3Rpb25QZXJmb3JtZWRDbGFzc05hbWUiLCJsZW5ndGgiLCJzb21lIiwiYWN0aW9uRWxlbWVudCIsImNvbnNvbGUiLCJ3YXJuIiwiYWN0aW9uU2V0RWxlbWVudHMiLCJzZWxlY3RlZEFjdGlvbkVsZW1lbnQiLCJhY3Rpb25TZXRFbGVtZW50IiwiYW5jZXN0b3IiLCJpbmNsdWRlcyIsImZpeEFjY2Vzc2liaWxpdHlJc3N1ZXNXaXRoVW5kbyIsImFjdGlvbkJ1dHRvbiIsInVuZG8iLCJnZXRGb2N1c2FibGVFbGVtZW50cyIsImZpbHRlciIsInRhYkluZGV4IiwicmVzdG9yZUFjdGl2ZUVsZW1lbnRJbmRleCIsImFjdGl2ZUVsZW1lbnRJbmRleCIsImZvY3VzIiwic2F2ZUFjdGl2ZUVsZW1lbnRJbmRleCIsImluZGV4T2YiLCJyZXN0b3JlSW5wdXRWYWx1ZXMiLCJpbnB1dFZhbHVlcyIsImlucHV0cyIsImlucHV0IiwiaW5kZXgiLCJ0YWdOYW1lIiwidHlwZSIsImNoZWNrZWQiLCJzYXZlSW5wdXRWYWx1ZXMiLCJBZGFwdGl2ZUNhcmRSZW5kZXJlciIsImFkYXB0aXZlQ2FyZCIsImRpc2FibGVkRnJvbVByb3BzIiwiZGlzYWJsZWQiLCJ0YXBBY3Rpb24iLCJhZGFwdGl2ZUNhcmRSZW5kZXJlclN0eWxlU2V0IiwiYWRhcHRpdmVDYXJkUmVuZGVyZXIiLCJHbG9iYWxTZXR0aW5ncyIsIkhvc3RDb25maWciLCJhY3Rpb25zUGVyZm9ybWVkIiwic2V0QWN0aW9uc1BlcmZvcm1lZCIsImFkYXB0aXZlQ2FyZHNIb3N0Q29uZmlnIiwiZGlzYWJsZWRGcm9tQ29tcG9zZXIiLCJlcnJvcnMiLCJzZXRFcnJvcnMiLCJsYXN0UmVuZGVyIiwic2V0TGFzdFJlbmRlciIsImFjdGl2ZUVsZW1lbnRJbmRleFJlZiIsImFkYXB0aXZlQ2FyZEVsZW1lbnRSZWYiLCJjb250ZW50UmVmIiwiaW5wdXRWYWx1ZXNSZWYiLCJsb2NhbGl6ZSIsInBlcmZvcm1DYXJkQWN0aW9uIiwicmVuZGVyTWFya2Rvd25Bc0hUTUwiLCJzY3JvbGxUb0VuZCIsImhhbmRsZUNsaWNrQW5kS2V5UHJlc3MiLCJrZXkiLCJ0YXJnZXQiLCJhZGFwdGl2ZUNhcmRSb290IiwicXVlcnlTZWxlY3RvciIsImhhbmRsZUNsaWNrQW5kS2V5UHJlc3NGb3JUYXBBY3Rpb24iLCJ1bmRlZmluZWQiLCJhZGRBY3Rpb25zUGVyZm9ybWVkIiwiYWN0aW9uIiwiaGFuZGxlRXhlY3V0ZUFjdGlvbiIsImFjdGlvblR5cGVOYW1lIiwiZ2V0SnNvblR5cGVOYW1lIiwiaW1hZ2UiLCJpY29uVXJsIiwidGl0bGUiLCJ1cmwiLCJkYXRhIiwiX19pc0JvdEZyYW1ld29ya0NhcmRBY3Rpb24iLCJjYXJkQWN0aW9uIiwiZXJyb3IiLCJjb25zdHJ1Y3RvciIsInRleHQiLCJyZXN1bHQiLCJvdXRwdXRIdG1sIiwiZGlkUHJvY2VzcyIsImhvc3RDb25maWciLCJzZXRUYWJJbmRleEF0Q2FyZFJvb3QiLCJ2YWxpZGF0ZVByb3BlcnRpZXMiLCJ2YWxpZGF0aW9uRXZlbnRzIiwicmVkdWNlIiwiaXRlbXMiLCJtZXNzYWdlIiwiRXJyb3IiLCJyZW5kZXIiLCJhcHBlbmRDaGlsZCIsIkRhdGUiLCJub3ciLCJyZW1vdmVDaGlsZCIsIm9uRXhlY3V0ZUFjdGlvbiIsInJlbmRlcmVkRWxlbWVudCIsImRlZmF1bHRQcm9wcyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsImFueSIsImlzUmVxdWlyZWQiLCJib29sIiwic2hhcGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQVNBOztBQUNBOztBQUNBOztBQUNBOztBQWFBOztBQUNBOzs7Ozs7QUExQkE7QUE0QkEsSUFBUUEsUUFBUixHQUFxQkMsd0NBQXJCLENBQVFELFFBQVI7QUFDQSxJQUFRRSxXQUFSLEdBQWtIQyxtQ0FBbEgsQ0FBUUQsV0FBUjtBQUFBLElBQXFCRSxZQUFyQixHQUFrSEQsbUNBQWxILENBQXFCQyxZQUFyQjtBQUFBLElBQW1DQyxvQkFBbkMsR0FBa0hGLG1DQUFsSCxDQUFtQ0Usb0JBQW5DO0FBQUEsSUFBeURDLHVCQUF6RCxHQUFrSEgsbUNBQWxILENBQXlERyx1QkFBekQ7QUFBQSxJQUFrRkMsY0FBbEYsR0FBa0hKLG1DQUFsSCxDQUFrRkksY0FBbEY7QUFBQSxJQUFrR0MsV0FBbEcsR0FBa0hMLG1DQUFsSCxDQUFrR0ssV0FBbEc7QUFFQSxJQUFNQyxRQUFRLEdBQUcseUJBQWpCOztBQUlBLFNBQVNDLFVBQVQsR0FBMEQ7QUFBQSxvQ0FBbkNDLEdBQW1DO0FBQW5DQSxJQUFBQSxHQUFtQztBQUFBOztBQUN4RCxTQUFPO0FBQUEsV0FBTUEsR0FBRyxDQUFDQyxPQUFKLENBQVksVUFBQUMsRUFBRTtBQUFBLGFBQUlBLEVBQUosYUFBSUEsRUFBSix1QkFBSUEsRUFBRSxFQUFOO0FBQUEsS0FBZCxDQUFOO0FBQUEsR0FBUDtBQUNEO0FBRUQ7QUFDQTtBQUNBOzs7QUFDQSxTQUFTQyxRQUFULENBQWtCQyxPQUFsQixFQUF3Q0MsU0FBeEMsRUFBNkU7QUFD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WUFBWSxFQUFFa0UsbUJBQVVFLEdBQVYsQ0FBY0MsVUFGRztBQUcvQm5FLEVBQUFBLFFBQVEsRUFBRWdFLG1CQUFVSSxJQUhXO0FBSy9CO0FBQ0E7QUFDQW5FLEVBQUFBLFNBQVMsRUFBRStELG1CQUFVSyxLQUFWLENBQWdCO0FBQ3pCbkMsSUFBQUEsS0FBSyxFQUFFOEIsbUJBQVVDLE1BRFE7QUFFekI3QixJQUFBQSxLQUFLLEVBQUU0QixtQkFBVUMsTUFGUTtBQUd6QnZFLElBQUFBLElBQUksRUFBRXNFLG1CQUFVQyxNQUFWLENBQWlCRSxVQUhFO0FBSXpCckosSUFBQUEsS0FBSyxFQUFFa0osbUJBQVVDO0FBSlEsR0FBaEI7QUFQb0IsQ0FBakM7ZUFlZXBFLG9CIiwic291cmNlUm9vdCI6ImJ1bmRsZTovLy8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tbWFnaWMtbnVtYmVyczogW1wiZXJyb3JcIiwgeyBcImlnbm9yZVwiOiBbLTEsIDAsIDJdIH1dICovXG5cbmltcG9ydCB7XG4gIEFjdGlvbiBhcyBBZGFwdGl2ZUNhcmRBY3Rpb24sXG4gIEFkYXB0aXZlQ2FyZCxcbiAgSU1hcmtkb3duUHJvY2Vzc2luZ1Jlc3VsdCxcbiAgT3BlblVybEFjdGlvbixcbiAgU3VibWl0QWN0aW9uXG59IGZyb20gJ2FkYXB0aXZlY2FyZHMnO1xuaW1wb3J0IHsgQ29tcG9uZW50cywgZ2V0VGFiSW5kZXgsIGhvb2tzIH0gZnJvbSAnYm90ZnJhbWV3b3JrLXdlYmNoYXQtY29tcG9uZW50JztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwge1xuICBLZXlib2FyZEV2ZW50SGFuZGxlcixcbiAgTW91c2VFdmVudEhhbmRsZXIsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbiAgVkZDXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRGlyZWN0TGluZUNhcmRBY3Rpb24gfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcblxuaW1wb3J0IHsgQm90RnJhbWV3b3JrQ2FyZEFjdGlvbiB9IGZyb20gJy4vQWRhcHRpdmVDYXJkQnVpbGRlcic7XG5pbXBvcnQgdXNlQWRhcHRpdmVDYXJkc0hvc3RDb25maWcgZnJvbSAnLi4vaG9va3MvdXNlQWRhcHRpdmVDYXJkc0hvc3RDb25maWcnO1xuaW1wb3J0IHVzZUFkYXB0aXZlQ2FyZHNQYWNrYWdlIGZyb20gJy4uL2hvb2tzL3VzZUFkYXB0aXZlQ2FyZHNQYWNrYWdlJztcblxuY29uc3QgeyBFcnJvckJveCB9ID0gQ29tcG9uZW50cztcbmNvbnN0IHsgdXNlRGlzYWJsZWQsIHVzZUxvY2FsaXplciwgdXNlUGVyZm9ybUNhcmRBY3Rpb24sIHVzZVJlbmRlck1hcmtkb3duQXNIVE1MLCB1c2VTY3JvbGxUb0VuZCwgdXNlU3R5bGVTZXQgfSA9IGhvb2tzO1xuXG5jb25zdCBub2RlX2VudiA9IHByb2Nlc3MuZW52Lm5vZGVfZW52IHx8IHByb2Nlc3MuZW52Lk5PREVfRU5WO1xuXG50eXBlIFVuZG9GdW5jdGlvbiA9ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcblxuZnVuY3Rpb24gYnVuY2hVbmRvcyguLi5mbnM6IFVuZG9GdW5jdGlvbltdKTogVW5kb0Z1bmN0aW9uIHtcbiAgcmV0dXJuICgpID0+IGZucy5mb3JFYWNoKGZuID0+IGZuPy4oKSk7XG59XG5cbi8qKlxuICogQWRkcyBhIGNsYXNzIHRvIHRoZSBgSFRNTEVsZW1lbnRgLiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgY2xhc3MgaXMgYWRkZWQsIG90aGVyd2lzZSwgYHVuZGVmaW5lZGAuXG4gKi9cbmZ1bmN0aW9uIGFkZENsYXNzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjbGFzc05hbWU6IHN0cmluZyk6IHRydWUgfCB1bmRlZmluZWQge1xuICBjb25zdCB7IGNsYXNzTGlzdCB9ID0gZWxlbWVudDtcblxuICBpZiAoIWNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKSB7XG4gICAgY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuLyoqXG4gKiBBZGRzIGEgY2xhc3MgdG8gdGhlIGBIVE1MRWxlbWVudGAgYW5kIHJlLWFkZCBvbiBtdXRhdGlvbnMuXG4gKlxuICogQHJldHVybnMge2Z1bmN0aW9ufSBBIGZ1bmN0aW9uLCB3aGVuIGNhbGxlZCwgd2lsbCByZXN0b3JlIHRvIHByZXZpb3VzIHN0YXRlLlxuICovXG5mdW5jdGlvbiBhZGRQZXJzaXN0ZW50Q2xhc3NXaXRoVW5kbyhlbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCwgY2xhc3NOYW1lOiBzdHJpbmcpOiBVbmRvRnVuY3Rpb24ge1xuICBpZiAoIWVsZW1lbnQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoYWRkQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKSkge1xuICAgIC8vIEFmdGVyIHdlIGFkZCB0aGUgY2xhc3MsIGtlZXAgb2JzZXJ2aW5nIHRoZSBlbGVtZW50IHRvIG1ha2Ugc3VyZSB0aGUgY2xhc3MgaXMgbm90IHJlbW92ZWQuXG4gICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiBhZGRDbGFzcyhlbGVtZW50LCBjbGFzc05hbWUpKTtcblxuICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCwgeyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnXSB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb25zdCBjbGFzc05hbWVzID0gbmV3IFNldChlbGVtZW50LmNsYXNzTmFtZS5zcGxpdCgnICcpKTtcblxuICAgICAgY2xhc3NOYW1lcy5kZWxldGUoY2xhc3NOYW1lKTtcblxuICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSBBcnJheS5mcm9tKGNsYXNzTmFtZXMpLmpvaW4oJyAnKTtcbiAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyBgdHJ1ZWAsIGlmIHRoZSBvYmplY3QgaXMgYSBwbGFpbiBvYmplY3QgYW5kIG5vdCBhIGNsYXNzLCBvdGhlcndpc2UsIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG4gIHJldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKSA9PT0gT2JqZWN0LnByb3RvdHlwZTtcbn1cblxuLyoqXG4gKiBTZXRzIGFuIGF0dHJpYnV0ZS5cbiAqXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb259IEEgZnVuY3Rpb24sIHdoZW4gY2FsbGVkLCB3aWxsIHJlc3RvcmUgdG8gcHJldmlvdXMgc3RhdGUuXG4gKi9cbmZ1bmN0aW9uIHNldEF0dHJpYnV0ZVdpdGhVbmRvKFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCxcbiAgcXVhbGlmaWVkTmFtZTogc3RyaW5nLFxuICBuZXh0VmFsdWU6IHN0cmluZ1xuKTogVW5kb0Z1bmN0aW9uIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgdmFsdWUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShxdWFsaWZpZWROYW1lKTtcblxuICBpZiAodmFsdWUgIT09IG5leHRWYWx1ZSkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKHF1YWxpZmllZE5hbWUsIG5leHRWYWx1ZSk7XG5cbiAgICByZXR1cm4gKCkgPT4gKHZhbHVlID8gZWxlbWVudC5zZXRBdHRyaWJ1dGUocXVhbGlmaWVkTmFtZSwgdmFsdWUpIDogZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUocXVhbGlmaWVkTmFtZSkpO1xuICB9XG59XG5cbi8qKlxuICogQW4gZXZlbnQgaGFuZGxlciBmb3IgZGlzYWJsaW5nIGV2ZW50IGJ1YmJsaW5nIGFuZCBwcm9wYWdhdGlvbi5cbiAqL1xuY29uc3QgZGlzYWJsZWRIYW5kbGVyID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG59O1xuXG4vKipcbiAqIExpc3RlbnMgdG8gZXZlbnQgb25jZS4gUmV0dXJucyBhIGZ1bmN0aW9uLCB3aGVuIGNhbGxlZCwgd2lsbCBzdG9wIGxpc3RlbmluZy5cbiAqL1xuZnVuY3Rpb24gYWRkRXZlbnRMaXN0ZW5lck9uY2VXaXRoVW5kbyhcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQsXG4gIG5hbWU6IHN0cmluZyxcbiAgaGFuZGxlcjogRXZlbnRMaXN0ZW5lclxuKTogVW5kb0Z1bmN0aW9uIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdCAqL1xuICBsZXQgZGV0YWNoOiAoKSA9PiB2b2lkO1xuICBjb25zdCBkZXRhY2hpbmdIYW5kbGVyID0gZXZlbnQgPT4ge1xuICAgIHRyeSB7XG4gICAgICBoYW5kbGVyKGV2ZW50KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gSUUxMSBkb2VzIG5vdCBzdXBwb3J0IHsgb25jZTogdHJ1ZSB9LCBzbyB3ZSBuZWVkIHRvIGRldGFjaCBtYW51YWxseS5cbiAgICAgIGRldGFjaCgpO1xuICAgIH1cbiAgfTtcblxuICBkZXRhY2ggPSAoKSA9PiBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgZGV0YWNoaW5nSGFuZGxlcik7XG5cbiAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGRldGFjaGluZ0hhbmRsZXIsIHsgb25jZTogdHJ1ZSB9KTtcblxuICByZXR1cm4gZGV0YWNoO1xufVxuXG4vKipcbiAqIExpc3RlbnMgdG8gZXZlbnQuIFJldHVybnMgYSBmdW5jdGlvbiwgd2hlbiBjYWxsZWQsIHdpbGwgc3RvcCBsaXN0ZW5pbmcuXG4gKi9cbmZ1bmN0aW9uIGFkZEV2ZW50TGlzdGVuZXJXaXRoVW5kbyhcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQsXG4gIG5hbWU6IHN0cmluZyxcbiAgaGFuZGxlcjogRXZlbnRMaXN0ZW5lclxuKTogVW5kb0Z1bmN0aW9uIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGhhbmRsZXIpO1xuXG4gIHJldHVybiAoKSA9PiBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgaGFuZGxlcik7XG59XG5cbi8qKlxuICogRGlzYWJsZXMgYW4gZWxlbWVudCB3aXRoIHVuZG8gZnVuY3Rpb24uXG4gKlxuICogQHJldHVybnMge2Z1bmN0aW9ufSBBIGZ1bmN0aW9uLCB3aGVuIGNhbGxlZCwgd2lsbCByZXN0b3JlIHRvIHByZXZpb3VzIHN0YXRlLlxuICovXG5mdW5jdGlvbiBkaXNhYmxlRWxlbWVudFdpdGhVbmRvKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkKTogVW5kb0Z1bmN0aW9uIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgdW5kb1N0YWNrOiBVbmRvRnVuY3Rpb25bXSA9IFtdO1xuICBjb25zdCBpc0FjdGl2ZSA9IGVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gIGNvbnN0IHRhZyA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVmYXVsdC1jYXNlICovXG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSAnYnV0dG9uJzpcbiAgICBjYXNlICdpbnB1dCc6XG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICB1bmRvU3RhY2sucHVzaChzZXRBdHRyaWJ1dGVXaXRoVW5kbyhlbGVtZW50LCAnYXJpYS1kaXNhYmxlZCcsICd0cnVlJykpO1xuXG4gICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgdW5kb1N0YWNrLnB1c2goXG4gICAgICAgICAgYWRkRXZlbnRMaXN0ZW5lck9uY2VXaXRoVW5kbyhlbGVtZW50LCAnYmx1cicsICgpID0+XG4gICAgICAgICAgICB1bmRvU3RhY2sucHVzaChzZXRBdHRyaWJ1dGVXaXRoVW5kbyhlbGVtZW50LCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKSlcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1bmRvU3RhY2sucHVzaChzZXRBdHRyaWJ1dGVXaXRoVW5kbyhlbGVtZW50LCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0YWcgPT09ICdpbnB1dCcgfHwgdGFnID09PSAndGV4dGFyZWEnKSB7XG4gICAgICAgIHVuZG9TdGFjay5wdXNoKGFkZEV2ZW50TGlzdGVuZXJXaXRoVW5kbyhlbGVtZW50LCAnY2xpY2snLCBkaXNhYmxlZEhhbmRsZXIpKTtcbiAgICAgICAgdW5kb1N0YWNrLnB1c2goc2V0QXR0cmlidXRlV2l0aFVuZG8oZWxlbWVudCwgJ3JlYWRvbmx5JywgJ3JlYWRvbmx5JykpO1xuICAgICAgfSBlbHNlIGlmICh0YWcgPT09ICdzZWxlY3QnKSB7XG4gICAgICAgIHVuZG9TdGFjay5wdXNoKFxuICAgICAgICAgIC4uLltdLm1hcC5jYWxsKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnb3B0aW9uJyksIG9wdGlvbiA9PlxuICAgICAgICAgICAgc2V0QXR0cmlidXRlV2l0aFVuZG8ob3B0aW9uLCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gYnVuY2hVbmRvcyguLi51bmRvU3RhY2spO1xufVxuXG4vKipcbiAqIERpc2FibGVzIGFsbCBpbnB1dHRhYmxlIGRlc2NlbmRhbnRzLlxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnQgfCB1bmRlZmluZWR9IGVsZW1lbnQgQ29udGFpbmVyIGVsZW1lbnQgdG8gc3RhcnQgbG9va2luZyBmb3IgaW5wdXR0YWJsZSBkZXNjZW5kYW50cy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gb2JzZXJ2ZVN1YnRyZWUgYHRydWVgIHRvIGFwcGxpZXMgdG8gYWxsIGZ1dHVyZSBpbnB1dHRhYmxlIGRlc2NlbmRhbnRzLCBvdGhlcndpc2UsIGBmYWxzZWAuXG4gKlxuICogQHJldHVybnMge2Z1bmN0aW9ufSBBIGZ1bmN0aW9uLCB3aGVuIGNhbGxlZCwgd2lsbCByZXN0b3JlIHRvIHByZXZpb3VzIHN0YXRlLlxuICovXG5mdW5jdGlvbiBkaXNhYmxlSW5wdXRFbGVtZW50c1dpdGhVbmRvKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkLCBvYnNlcnZlU3VidHJlZSA9IHRydWUpOiBVbmRvRnVuY3Rpb24ge1xuICBpZiAoIWVsZW1lbnQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB1bmRvU3RhY2s6ICgoKSA9PiB2b2lkKVtdID0gW10ubWFwLmNhbGwoZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b24sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhJyksIGVsZW1lbnQgPT5cbiAgICBkaXNhYmxlRWxlbWVudFdpdGhVbmRvKGVsZW1lbnQpXG4gICk7XG5cbiAgY29uc3QgdGFnID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gIC8vIE9ubHkgc2V0IHRhYmluZGV4PVwiLTFcIiBvbiBmb2N1c2FibGUgZWxlbWVudC4gT3RoZXJ3aXNlLCB3ZSB3aWxsIG1ha2UgPGRpdj4gZm9jdXNhYmxlIGJ5IG1vdXNlLlxuICAodGFnID09PSAnYScgfHwgdGFnID09PSAnYnV0dG9uJyB8fCB0YWcgPT09ICdpbnB1dCcgfHwgdGFnID09PSAnc2VsZWN0JyB8fCB0YWcgPT09ICd0ZXh0YXJlYScpICYmXG4gICAgdW5kb1N0YWNrLnB1c2goc2V0QXR0cmlidXRlV2l0aFVuZG8oZWxlbWVudCwgJ3RhYmluZGV4JywgJy0xJykpO1xuXG4gIGlmIChvYnNlcnZlU3VidHJlZSkge1xuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIobXV0YXRpb25zID0+XG4gICAgICBtdXRhdGlvbnMuZm9yRWFjaCgoeyBhZGRlZE5vZGVzIH0pID0+XG4gICAgICAgIHVuZG9TdGFjay5wdXNoKC4uLltdLm1hcC5jYWxsKGFkZGVkTm9kZXMsIGFkZGVkTm9kZSA9PiBkaXNhYmxlSW5wdXRFbGVtZW50c1dpdGhVbmRvKGFkZGVkTm9kZSwgZmFsc2UpKSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTtcblxuICAgIHVuZG9TdGFjay5wdXNoKCgpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKSk7XG4gIH1cblxuICByZXR1cm4gYnVuY2hVbmRvcyguLi51bmRvU3RhY2spO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBmcm9tIGFuIGVsZW1lbnQuXG4gKlxuICogQHJldHVybnMge2ZhbHNlIHwgc3RyaW5nfSBUaGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4gYGZhbHNlYCBpZiB0aGUgYXR0cmlidXRlIHdhcyBub3Qgc2V0LlxuICovXG5mdW5jdGlvbiBnZXRBdHRyaWJ1dGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIHF1YWxpZmllZE5hbWU6IHN0cmluZyk6IGZhbHNlIHwgc3RyaW5nIHtcbiAgcmV0dXJuICEhZWxlbWVudCAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShxdWFsaWZpZWROYW1lKSAmJiAoZWxlbWVudC5nZXRBdHRyaWJ1dGUocXVhbGlmaWVkTmFtZSkgfHwgJycpO1xufVxuXG4vKipcbiAqIFNldHMgb3IgcmVtb3ZlcyBhbiBhdHRyaWJ1dGUgZnJvbSBhbiBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnQgLSBUaGUgZWxlbWVudCB0byBzZXQgb3IgcmVtb3ZlIGF0dHJpYnV0ZSBmcm9tLlxuICogQHBhcmFtIHtzdHJpbmd9IHF1YWxpZmllZE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICogQHBhcmFtIHtmYWxzZSB8IHN0cmluZ30gdmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4gV2hlbiBwYXNzaW5nIGBmYWxzZWAsIHJlbW92ZSB0aGUgYXR0cmlidXRlLlxuICovXG5mdW5jdGlvbiBzZXRPclJlbW92ZUF0dHJpYnV0ZShlbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCwgcXVhbGlmaWVkTmFtZTogc3RyaW5nLCB2YWx1ZTogZmFsc2UgfCBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKHZhbHVlID09PSBmYWxzZSkge1xuICAgIGVsZW1lbnQ/LnJlbW92ZUF0dHJpYnV0ZShxdWFsaWZpZWROYW1lKTtcbiAgfSBlbHNlIHtcbiAgICBlbGVtZW50Py5zZXRBdHRyaWJ1dGUocXVhbGlmaWVkTmFtZSwgdmFsdWUpO1xuICB9XG59XG5cbi8qKlxuICogU2V0cyBvciByZW1vdmVzIGFuIGF0dHJpYnV0ZSBmcm9tIGFuIGVsZW1lbnQgd2l0aCBhbiB1bmRvIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnQgLSBUaGUgZWxlbWVudCB0byBzZXQgb3IgcmVtb3ZlIGF0dHJpYnV0ZSBmcm9tLlxuICogQHBhcmFtIHtzdHJpbmd9IHF1YWxpZmllZE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICogQHBhcmFtIHtmYWxzZSB8IHN0cmluZ30gdmFsdWUgLSBUaGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4gV2hlbiBwYXNzaW5nIGBmYWxzZWAsIHJlbW92ZSB0aGUgYXR0cmlidXRlLlxuICpcbiAqIEByZXR1cm5zIHsoKSA9PiB2b2lkfSBUaGUgdW5kbyBmdW5jdGlvbiwgd2hlbiBjYWxsZWQsIHdpbGwgdW5kbyBhbGwgbWFuaXB1bGF0aW9ucyBieSByZXN0b3JpbmcgdmFsdWVzIHJlY29yZGVkIGF0IHRoZSB0aW1lIG9mIHRoZSBmdW5jdGlvbiBjYWxsLlxuICovXG5mdW5jdGlvbiBzZXRPclJlbW92ZUF0dHJpYnV0ZVdpdGhVbmRvKFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCxcbiAgcXVhbGlmaWVkTmFtZTogc3RyaW5nLFxuICB2YWx1ZTogZmFsc2UgfCBzdHJpbmdcbik6IFVuZG9GdW5jdGlvbiB7XG4gIGlmICghZWxlbWVudCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHByZXZWYWx1ZSA9IGdldEF0dHJpYnV0ZShlbGVtZW50LCBxdWFsaWZpZWROYW1lKTtcblxuICBzZXRPclJlbW92ZUF0dHJpYnV0ZShlbGVtZW50LCBxdWFsaWZpZWROYW1lLCB2YWx1ZSk7XG5cbiAgcmV0dXJuICgpID0+IHNldE9yUmVtb3ZlQXR0cmlidXRlKGVsZW1lbnQsIHF1YWxpZmllZE5hbWUsIHByZXZWYWx1ZSk7XG59XG5cbi8qKlxuICogRmluZHMgdGhlIGZpcnN0IGFuY2VzdG9yIHRoYXQgZnVsZmlsbCB0aGUgcHJlZGljYXRlLlxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnQgLSBUaGUgc3RhcnRpbmcgZWxlbWVudC4gVGhpcyBlbGVtZW50IHdpbGwgbm90IGJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgcHJlZGljYXRlLlxuICogQHBhcmFtIHsoYW5jZXN0b3I6IEhUTUxFbGVtZW50KSA9PiBib29sZWFufSBwcmVkaWNhdGUgLSBUaGUgcHJlZGljYXRlIHRvIGZ1bGZpbGwuXG4gKlxuICogQHJldHVybnMge0hUTUxFbGVtZW50IHwgdW5kZWZpbmVkfSBUaGUgZmlyc3QgYW5jZXN0b3IgdGhhdCBmdWxmaWxsIHRoZSBwcmVkaWNhdGUsIG90aGVyd2lzZSwgYHVuZGVmaW5lZGAuXG4gKi9cbmZ1bmN0aW9uIGZpbmRBbmNlc3RvcihlbGVtZW50OiBIVE1MRWxlbWVudCwgcHJlZGljYXRlOiAoYW5jZXN0b3I6IEhUTUxFbGVtZW50KSA9PiBib29sZWFuKTogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQge1xuICBsZXQgY3VycmVudCA9IGVsZW1lbnQ7XG5cbiAgd2hpbGUgKChjdXJyZW50ID0gY3VycmVudC5wYXJlbnRFbGVtZW50KSkge1xuICAgIGlmIChwcmVkaWNhdGUuY2FsbChlbGVtZW50LCBjdXJyZW50KSkge1xuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogSW5kaWNhdGVzIHRoZSBhY3Rpb24gc2VsZWN0ZWQgYnkgcGVyZm9ybWluZyBhIHNlcmllcyBvZiBtYW5pcHVsYXRpb25zLCB3aXRoIHVuZG86XG4gKlxuICogLSBBY2Nlc3NpYmlsaXR5OiBzZXQgYGFyaWEtcHJlc3NlZGAgdG8gYHRydWVgXG4gKiAtIEFwcGxpZXMgYHN0eWxlT3B0aW9ucy5hY3Rpb25QZXJmb3JtZWRDbGFzc05hbWVgXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudFtdfSBzZWxlY3RlZEFjdGlvbkVsZW1lbnRzIC0gQW4gYXJyYXkgb2YgZWxlbWVudHMgdGhhdCBhcmUgcmVwcmVzZW50aW5nIHRoZSBhY3Rpb24gYW5kIGlzIHNlbGVjdGVkLlxuICogQHBhcmFtIHtzdHJpbmc/fSBhY3Rpb25QZXJmb3JtZWRDbGFzc05hbWUgLSBUaGUgbmFtZSBvZiB0aGUgY2xhc3MgdG8gYXBwbHkgdG8gYWxsIGVsZW1lbnRzLlxuICpcbiAqIEByZXR1cm5zIHsoKSA9PiB2b2lkfSBUaGUgdW5kbyBmdW5jdGlvbiwgd2hlbiBjYWxsZWQsIHdpbGwgdW5kbyBhbGwgbWFuaXB1bGF0aW9ucyBieSByZXN0b3JpbmcgdmFsdWVzIHJlY29yZGVkIGF0IHRoZSB0aW1lIG9mIHRoZSBmdW5jdGlvbiBjYWxsLlxuICovXG5mdW5jdGlvbiBpbmRpY2F0ZUFjdGlvblNlbGVjdGlvbldpdGhVbmRvKFxuICBzZWxlY3RlZEFjdGlvbkVsZW1lbnRzOiBIVE1MRWxlbWVudFtdIHwgdW5kZWZpbmVkLFxuICBhY3Rpb25QZXJmb3JtZWRDbGFzc05hbWU/OiBzdHJpbmdcbik6IFVuZG9GdW5jdGlvbiB7XG4gIGlmICghc2VsZWN0ZWRBY3Rpb25FbGVtZW50cz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gVmVyaWZ5IGFsbCBpbnB1dCBlbGVtZW50cyBhcmUgXCJhYy1wdXNoQnV0dG9uXCIsIGNvdWxkIGJlbG9uZ3MgdG8gQWN0aW9uU2V0IG9yIFwiY2FyZCBhY3Rpb25zXCIuXG4gIGlmIChzZWxlY3RlZEFjdGlvbkVsZW1lbnRzLnNvbWUoYWN0aW9uRWxlbWVudCA9PiAhYWN0aW9uRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2FjLXB1c2hCdXR0b24nKSkpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICAnYm90ZnJhbWV3b3JrLXdlYmNoYXQ6IENhbm5vdCBtYXJrIHNlbGVjdGVkIGFjdGlvbiBpbiB0aGUgY2FyZCwgc29tZSBlbGVtZW50cyBhcmUgbm90IGFuIFwiYWMtcHVzaEJ1dHRvblwiLidcbiAgICApO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gQSBkaXN0aW5jdCBzZXQgb2YgYWN0aW9uIHNldCBjb250YWluZXJzIHdoaWNoIGhhcyBzZWxlY3Rpb25zLCBleGNsdWRpbmcgY29udGFpbmVycyB3aXRob3V0IGFjdGlvbnMuXG4gIC8vIE11bHRpcGxlIHN1Ym1pc3Npb24gaW4gYW4gQWRhcHRpdmUgQ2FyZCBpcyBzdGlsbCBhIHZhZ3VlIGFyZWEgYW5kIFRCRC5cbiAgLy8gV2UgbWlnaHQgd2FudCB0byBkaXNhYmxlIHRoZSB3aG9sZSBjYXJkLCBqdXN0IGJ1dHRvbnMgaW4gc2FtZSBjb250YWluZXIsIG9yIGRvIG5vdGhpbmcgKHRvZGF5KS5cbiAgY29uc3QgYWN0aW9uU2V0RWxlbWVudHMgPSBuZXcgU2V0PEhUTUxFbGVtZW50PigpO1xuXG4gIHNlbGVjdGVkQWN0aW9uRWxlbWVudHMuZm9yRWFjaChzZWxlY3RlZEFjdGlvbkVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGFjdGlvblNldEVsZW1lbnQgPSBmaW5kQW5jZXN0b3IoXG4gICAgICBzZWxlY3RlZEFjdGlvbkVsZW1lbnQsXG4gICAgICBhbmNlc3RvciA9PiBhbmNlc3Rvci5nZXRBdHRyaWJ1dGUoJ3JvbGUnKSA9PT0gJ21lbnViYXInXG4gICAgKTtcblxuICAgIGFjdGlvblNldEVsZW1lbnQgJiYgYWN0aW9uU2V0RWxlbWVudHMuYWRkKGFjdGlvblNldEVsZW1lbnQpO1xuICB9KTtcblxuICBjb25zdCB1bmRvU3RhY2s6ICgoKSA9PiB2b2lkKVtdID0gW107XG5cbiAgYWN0aW9uU2V0RWxlbWVudHMuZm9yRWFjaChhY3Rpb25TZXRFbGVtZW50ID0+IHtcbiAgICAvLyBSZW1vdmUgXCJyb2xlXCIgZnJvbSBldmVyeSBcImFjLWFjdGlvblNldFwiIGNvbnRhaW5lci5cbiAgICB1bmRvU3RhY2sucHVzaChzZXRPclJlbW92ZUF0dHJpYnV0ZVdpdGhVbmRvKGFjdGlvblNldEVsZW1lbnQsICdyb2xlJywgZmFsc2UpKTtcblxuICAgIC8vIE1vZGlmeSBcInJvbGVcIiBvZiBldmVyeSBhY3Rpb25zIGluIHRoZSBjb250YWluZXIuXG4gICAgQXJyYXkuZnJvbShhY3Rpb25TZXRFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5hYy1wdXNoQnV0dG9uJykgYXMgTm9kZUxpc3RPZjxIVE1MRWxlbWVudD4pLmZvckVhY2goXG4gICAgICBhY3Rpb25FbGVtZW50ID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkQWN0aW9uRWxlbWVudHMuaW5jbHVkZXMoYWN0aW9uRWxlbWVudCkpIHtcbiAgICAgICAgICAvLyBBZGQgXCJhcmlhLXByZXNzZWRcIiBhbmQgc2V0IFwicm9sZVwiIGF0dHJpYnV0ZSB0byBcImJ1dHRvblwiICh3aGljaCBpcyByZXF1aXJlZCBieSBcImFyaWEtcHJlc3NlZFwiKS5cbiAgICAgICAgICB1bmRvU3RhY2sucHVzaChzZXRPclJlbW92ZUF0dHJpYnV0ZVdpdGhVbmRvKGFjdGlvbkVsZW1lbnQsICdhcmlhLXByZXNzZWQnLCAndHJ1ZScpKTtcbiAgICAgICAgICB1bmRvU3RhY2sucHVzaChzZXRPclJlbW92ZUF0dHJpYnV0ZVdpdGhVbmRvKGFjdGlvbkVsZW1lbnQsICdyb2xlJywgJ2J1dHRvbicpKTtcblxuICAgICAgICAgIC8vIEhpZ2hsaWdodCBhY3Rpb25zIGJ5IGFwcGx5aW5nIGBzdHlsZU9wdGlvbnMuYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lYC5cbiAgICAgICAgICBhY3Rpb25QZXJmb3JtZWRDbGFzc05hbWUgJiZcbiAgICAgICAgICAgIHVuZG9TdGFjay5wdXNoKGFkZFBlcnNpc3RlbnRDbGFzc1dpdGhVbmRvKGFjdGlvbkVsZW1lbnQsIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFdlIHJlbW92ZWQgXCJyb2xlPW1lbnViYXJcIiBmcm9tIHRoZSBjb250YWluZXIsIHdlIG11c3QgcmVtb3ZlIFwicm9sZT1tZW51aXRlbVwiIGZyb20gdW5zZWxlY3RlZCBhY3Rpb25zLlxuICAgICAgICAgIHVuZG9TdGFjay5wdXNoKHNldE9yUmVtb3ZlQXR0cmlidXRlV2l0aFVuZG8oYWN0aW9uRWxlbWVudCwgJ3JvbGUnLCBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGJ1bmNoVW5kb3MoLi4udW5kb1N0YWNrKTtcbn1cblxuLyoqXG4gKiBGaXhlcyBhY2Nlc3NpYmlsaXR5IGlzc3VlcyBmcm9tIEFkYXB0aXZlIENhcmQsIHdpdGggdW5kby5cbiAqXG4gKiBAcmV0dXJucyB7KCkgPT4gdm9pZH0gVGhlIHVuZG8gZnVuY3Rpb24sIHdoZW4gY2FsbGVkLCB3aWxsIHVuZG8gYWxsIG1hbmlwdWxhdGlvbnMgYnkgcmVzdG9yaW5nIHZhbHVlcyByZWNvcmRlZCBhdCB0aGUgdGltZSBvZiB0aGUgZnVuY3Rpb24gY2FsbC5cbiAqL1xuZnVuY3Rpb24gZml4QWNjZXNzaWJpbGl0eUlzc3Vlc1dpdGhVbmRvKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogVW5kb0Z1bmN0aW9uIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gVGhlc2UgaGFja3Mgc2hvdWxkIGJlIGRvbmUgaW4gQWRhcHRpdmUgQ2FyZHMgbGlicmFyeSBpbnN0ZWFkLlxuICAvLyBSZWxhdGVkIHRvICMzOTQ5OiBBbGwgYWN0aW9uIGJ1dHRvbnMgaW5zaWRlIHJvbGU9XCJtZW51YmFyXCIgc2hvdWxkIGJlIHJvbGU9XCJtZW51aXRlbVwiLlxuICBjb25zdCB1bmRvU3RhY2s6IFVuZG9GdW5jdGlvbltdID0gQXJyYXkuZnJvbShcbiAgICBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5hYy1hY3Rpb25TZXRbcm9sZT1cIm1lbnViYXJcIl0gW3JvbGU9XCJidXR0b25cIl0nKSBhcyBOb2RlTGlzdE9mPEhUTUxFbGVtZW50PlxuICApLm1hcChhY3Rpb25CdXR0b24gPT4gc2V0QXR0cmlidXRlV2l0aFVuZG8oYWN0aW9uQnV0dG9uLCAncm9sZScsICdtZW51aXRlbScpKTtcblxuICByZXR1cm4gKCkgPT4gdW5kb1N0YWNrLmZvckVhY2godW5kbyA9PiB1bmRvPy4oKSk7XG59XG5cbmZ1bmN0aW9uIGdldEZvY3VzYWJsZUVsZW1lbnRzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gIHJldHVybiBbXS5maWx0ZXIuY2FsbChcbiAgICBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICBbXG4gICAgICAgICdhJyxcbiAgICAgICAgJ2JvZHknLFxuICAgICAgICAnYnV0dG9uJyxcbiAgICAgICAgJ2ZyYW1lJyxcbiAgICAgICAgJ2lmcmFtZScsXG4gICAgICAgICdpbWcnLFxuICAgICAgICAnaW5wdXQnLFxuICAgICAgICAnaXNpbmRleCcsXG4gICAgICAgICdvYmplY3QnLFxuICAgICAgICAnc2VsZWN0JyxcbiAgICAgICAgJ3RleHRhcmVhJyxcbiAgICAgICAgJ1t0YWJpbmRleF0nXG4gICAgICBdLmpvaW4oJywgJylcbiAgICApIGFzIE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+LFxuICAgIGVsZW1lbnQgPT4ge1xuICAgICAgY29uc3QgdGFiSW5kZXggPSBnZXRUYWJJbmRleChlbGVtZW50KTtcblxuICAgICAgcmV0dXJuIHR5cGVvZiB0YWJJbmRleCA9PT0gJ251bWJlcicgJiYgdGFiSW5kZXggPj0gMDtcbiAgICB9XG4gICk7XG59XG5cbmZ1bmN0aW9uIHJlc3RvcmVBY3RpdmVFbGVtZW50SW5kZXgoZWxlbWVudDogSFRNTEVsZW1lbnQsIGFjdGl2ZUVsZW1lbnRJbmRleDogbnVtYmVyKSB7XG4gIGdldEZvY3VzYWJsZUVsZW1lbnRzKGVsZW1lbnQpWythY3RpdmVFbGVtZW50SW5kZXhdPy5mb2N1cygpO1xufVxuXG5mdW5jdGlvbiBzYXZlQWN0aXZlRWxlbWVudEluZGV4KGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gIHJldHVybiBnZXRGb2N1c2FibGVFbGVtZW50cyhlbGVtZW50KS5pbmRleE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiByZXN0b3JlSW5wdXRWYWx1ZXMoZWxlbWVudDogSFRNTEVsZW1lbnQsIGlucHV0VmFsdWVzOiAoYm9vbGVhbiB8IHN0cmluZylbXSkge1xuICBjb25zdCBpbnB1dHMgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0LCBzZWxlY3QsIHRleHRhcmVhJykgYXMgTm9kZUxpc3RPZjxcbiAgICBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNlbGVjdEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50XG4gID47XG5cbiAgW10uZm9yRWFjaC5jYWxsKGlucHV0cywgKGlucHV0OiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFNlbGVjdEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBpbnB1dFZhbHVlc1sraW5kZXhdO1xuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IHsgdGFnTmFtZSwgdHlwZSB9ID0gaW5wdXQ7XG5cbiAgICAgIGlmICh0YWdOYW1lID09PSAnSU5QVVQnICYmICh0eXBlID09PSAnY2hlY2tib3gnIHx8IHR5cGUgPT09ICdyYWRpbycpKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgICAgIChpbnB1dCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNhdmVJbnB1dFZhbHVlcyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IChib29sZWFuIHwgc3RyaW5nKVtdIHtcbiAgY29uc3QgaW5wdXRzID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYScpIGFzIE5vZGVMaXN0T2Y8XG4gICAgSFRNTElucHV0RWxlbWVudCB8IEhUTUxTZWxlY3RFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudFxuICA+O1xuXG4gIHJldHVybiBbXS5tYXAuY2FsbChpbnB1dHMsIChpbnB1dDogSFRNTElucHV0RWxlbWVudCB8IEhUTUxTZWxlY3RFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHsgdHlwZSB9ID0gaW5wdXQ7XG5cbiAgICBpZiAoaW5wdXQudGFnTmFtZSA9PT0gJ0lOUFVUJyAmJiAodHlwZSA9PT0gJ2NoZWNrYm94JyB8fCB0eXBlID09PSAncmFkaW8nKSkge1xuICAgICAgcmV0dXJuIChpbnB1dCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICAgIH1cblxuICAgIHJldHVybiBpbnB1dC52YWx1ZTtcbiAgfSk7XG59XG5cbnR5cGUgQWRhcHRpdmVDYXJkUmVuZGVyZXJQcm9wcyA9IHtcbiAgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lPzogc3RyaW5nO1xuICBhZGFwdGl2ZUNhcmQ6IEFkYXB0aXZlQ2FyZDtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICB0YXBBY3Rpb24/OiBEaXJlY3RMaW5lQ2FyZEFjdGlvbjtcbn07XG5cbmNvbnN0IEFkYXB0aXZlQ2FyZFJlbmRlcmVyOiBWRkM8QWRhcHRpdmVDYXJkUmVuZGVyZXJQcm9wcz4gPSAoe1xuICBhY3Rpb25QZXJmb3JtZWRDbGFzc05hbWUsXG4gIGFkYXB0aXZlQ2FyZCxcbiAgZGlzYWJsZWQ6IGRpc2FibGVkRnJvbVByb3BzLFxuICB0YXBBY3Rpb25cbn0pID0+IHtcbiAgY29uc3QgW3sgYWRhcHRpdmVDYXJkUmVuZGVyZXI6IGFkYXB0aXZlQ2FyZFJlbmRlcmVyU3R5bGVTZXQgfV0gPSB1c2VTdHlsZVNldCgpO1xuICBjb25zdCBbeyBHbG9iYWxTZXR0aW5ncywgSG9zdENvbmZpZyB9XSA9IHVzZUFkYXB0aXZlQ2FyZHNQYWNrYWdlKCk7XG4gIGNvbnN0IFthY3Rpb25zUGVyZm9ybWVkLCBzZXRBY3Rpb25zUGVyZm9ybWVkXSA9IHVzZVN0YXRlPEFkYXB0aXZlQ2FyZEFjdGlvbltdPihbXSk7XG4gIGNvbnN0IFthZGFwdGl2ZUNhcmRzSG9zdENvbmZpZ10gPSB1c2VBZGFwdGl2ZUNhcmRzSG9zdENvbmZpZygpO1xuICBjb25zdCBbZGlzYWJsZWRGcm9tQ29tcG9zZXJdID0gdXNlRGlzYWJsZWQoKTtcbiAgY29uc3QgW2Vycm9ycywgc2V0RXJyb3JzXSA9IHVzZVN0YXRlKFtdKTtcbiAgY29uc3QgW2xhc3RSZW5kZXIsIHNldExhc3RSZW5kZXJdID0gdXNlU3RhdGUoMCk7XG4gIGNvbnN0IGFjdGl2ZUVsZW1lbnRJbmRleFJlZiA9IHVzZVJlZigtMSk7XG4gIGNvbnN0IGFkYXB0aXZlQ2FyZEVsZW1lbnRSZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQ+KCk7XG4gIGNvbnN0IGNvbnRlbnRSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG4gIGNvbnN0IGlucHV0VmFsdWVzUmVmID0gdXNlUmVmPChib29sZWFuIHwgc3RyaW5nKVtdPihbXSk7XG4gIGNvbnN0IGxvY2FsaXplID0gdXNlTG9jYWxpemVyKCk7XG4gIGNvbnN0IHBlcmZvcm1DYXJkQWN0aW9uID0gdXNlUGVyZm9ybUNhcmRBY3Rpb24oKTtcbiAgY29uc3QgcmVuZGVyTWFya2Rvd25Bc0hUTUwgPSB1c2VSZW5kZXJNYXJrZG93bkFzSFRNTCgpO1xuICBjb25zdCBzY3JvbGxUb0VuZCA9IHVzZVNjcm9sbFRvRW5kKCk7XG5cbiAgY29uc3QgZGlzYWJsZWQgPSBkaXNhYmxlZEZyb21Db21wb3NlciB8fCBkaXNhYmxlZEZyb21Qcm9wcztcblxuICAvLyBUT0RPOiBbUDJdICMzMTk5IFdlIHNob3VsZCBjb25zaWRlciB1c2luZyBgYWRhcHRpdmVDYXJkLnNlbGVjdEFjdGlvbmAgaW5zdGVhZC5cbiAgLy8gVGhlIG51bGwgY2hlY2sgZm9yIFwidGFwQWN0aW9uXCIgaXMgaW4gXCJoYW5kbGVDbGlja0FuZEtleVByZXNzRm9yVGFwQWN0aW9uXCIuXG4gIGNvbnN0IGhhbmRsZUNsaWNrQW5kS2V5UHJlc3MgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQgfCBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBjb25zdCB7IGtleSwgdHlwZSB9ID0gZXZlbnQgYXMgS2V5Ym9hcmRFdmVudDtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcblxuICAgICAgLy8gU29tZSBpdGVtcywgZS5nLiB0YXBwYWJsZSB0ZXh0LCBjYW5ub3QgYmUgZGlzYWJsZWQgdGhydSBET00gYXR0cmlidXRlc1xuICAgICAgY29uc3QgeyBjdXJyZW50IH0gPSBjb250ZW50UmVmO1xuICAgICAgY29uc3QgYWRhcHRpdmVDYXJkUm9vdCA9IGN1cnJlbnQucXVlcnlTZWxlY3RvcignLmFjLWFkYXB0aXZlQ2FyZFt0YWJpbmRleD1cIjBcIl0nKTtcblxuICAgICAgaWYgKCFhZGFwdGl2ZUNhcmRSb290KSB7XG4gICAgICAgIHJldHVybiBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ2JvdGZyYW1ld29yay13ZWJjaGF0OiBObyBBZGFwdGl2ZSBDYXJkIHJvb3QgY29udGFpbmVyIGNhbiBiZSBmb3VuZDsgdGhlIGNhcmQgaXMgcHJvYmFibHkgb24gYW4gdW5zdXBwb3J0ZWQgQWRhcHRpdmUgQ2FyZCB2ZXJzaW9uLidcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gRm9yIFwia2V5cHJlc3NcIiBldmVudCwgd2Ugb25seSBsaXN0ZW4gdG8gRU5URVIgYW5kIFNQQUNFQkFSIGtleS5cbiAgICAgIGlmICh0eXBlID09PSAna2V5cHJlc3MnKSB7XG4gICAgICAgIGlmIChrZXkgIT09ICdFbnRlcicgJiYga2V5ICE9PSAnICcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBXZSB3aWxsIGNhbGwgcGVyZm9ybUNhcmRBY3Rpb24gaWYgZWl0aGVyOlxuICAgICAgLy8gMS4gV2UgYXJlIG9uIHRoZSB0YXJnZXQsIG9yXG4gICAgICAvLyAyLiBUaGUgZXZlbnQtZGlzcGF0Y2hpbmcgZWxlbWVudCBpcyBub3QgaW50ZXJhY3RpdmVcbiAgICAgIGlmICh0YXJnZXQgIT09IGFkYXB0aXZlQ2FyZFJvb3QpIHtcbiAgICAgICAgY29uc3QgdGFiSW5kZXggPSBnZXRUYWJJbmRleCh0YXJnZXQpO1xuXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIGlzIGNsaWNraW5nIG9uIHNvbWV0aGluZyB0aGF0IGlzIGFscmVhZHkgY2xpY2thYmxlLCBkbyBub3QgYWxsb3cgdGhlbSB0byBjbGljayB0aGUgY2FyZC5cbiAgICAgICAgLy8gRS5nLiBhIGhlcm8gY2FyZCBjYW4gYmUgdGFwcGFibGUsIGFuZCBpbWFnZSBhbmQgYnV0dG9ucyBpbnNpZGUgdGhlIGhlcm8gY2FyZCBjYW4gYWxzbyBiZSB0YXBwYWJsZS5cbiAgICAgICAgaWYgKHR5cGVvZiB0YWJJbmRleCA9PT0gJ251bWJlcicgJiYgdGFiSW5kZXggPj0gMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwZXJmb3JtQ2FyZEFjdGlvbih0YXBBY3Rpb24pO1xuICAgICAgc2Nyb2xsVG9FbmQoKTtcbiAgICB9LFxuICAgIFtjb250ZW50UmVmLCBwZXJmb3JtQ2FyZEFjdGlvbiwgc2Nyb2xsVG9FbmQsIHRhcEFjdGlvbl1cbiAgKTtcblxuICAvLyBPbmx5IGxpc3RlbiB0byBldmVudCBpZiBpdCBpcyBub3QgZGlzYWJsZWQgYW5kIGhhdmUgXCJ0YXBBY3Rpb25cIiBwcm9wLlxuICBjb25zdCBoYW5kbGVDbGlja0FuZEtleVByZXNzRm9yVGFwQWN0aW9uID0gIWRpc2FibGVkICYmIHRhcEFjdGlvbiA/IGhhbmRsZUNsaWNrQW5kS2V5UHJlc3MgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgYWRkQWN0aW9uc1BlcmZvcm1lZCA9IHVzZUNhbGxiYWNrKFxuICAgIChhY3Rpb246IEFkYXB0aXZlQ2FyZEFjdGlvbik6IHZvaWQgPT5cbiAgICAgICF+YWN0aW9uc1BlcmZvcm1lZC5pbmRleE9mKGFjdGlvbikgJiYgc2V0QWN0aW9uc1BlcmZvcm1lZChbLi4uYWN0aW9uc1BlcmZvcm1lZCwgYWN0aW9uXSksXG4gICAgW2FjdGlvbnNQZXJmb3JtZWQsIHNldEFjdGlvbnNQZXJmb3JtZWRdXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlRXhlY3V0ZUFjdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChhY3Rpb246IEFkYXB0aXZlQ2FyZEFjdGlvbik6IHZvaWQgPT4ge1xuICAgICAgLy8gU29tZSBpdGVtcywgZS5nLiB0YXBwYWJsZSBpbWFnZSwgY2Fubm90IGJlIGRpc2FibGVkIHRocnUgRE9NIGF0dHJpYnV0ZXNcbiAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGFkZEFjdGlvbnNQZXJmb3JtZWQoYWN0aW9uKTtcblxuICAgICAgY29uc3QgYWN0aW9uVHlwZU5hbWUgPSBhY3Rpb24uZ2V0SnNvblR5cGVOYW1lKCk7XG4gICAgICBjb25zdCB7IGljb25Vcmw6IGltYWdlLCB0aXRsZSB9ID0gYWN0aW9uO1xuXG4gICAgICAvLyBXZSBjYW5ub3QgdXNlIFwiaW5zdGFuY2VvZlwiIGNoZWNrIGhlcmUsIGJlY2F1c2Ugd2ViIGRldnMgbWF5IGJyaW5nIHRoZWlyIG93biB2ZXJzaW9uIG9mIEFkYXB0aXZlIENhcmRzIHBhY2thZ2UuXG4gICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIHVzaW5nIFwiZ2V0SnNvblR5cGVOYW1lKClcIiBpbnN0ZWFkLlxuICAgICAgaWYgKGFjdGlvblR5cGVOYW1lID09PSAnQWN0aW9uLk9wZW5VcmwnKSB7XG4gICAgICAgIGNvbnN0IHsgdXJsOiB2YWx1ZSB9ID0gYWN0aW9uIGFzIE9wZW5VcmxBY3Rpb247XG5cbiAgICAgICAgcGVyZm9ybUNhcmRBY3Rpb24oe1xuICAgICAgICAgIGltYWdlLFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgIHR5cGU6ICdvcGVuVXJsJyxcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoYWN0aW9uVHlwZU5hbWUgPT09ICdBY3Rpb24uU3VibWl0Jykge1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGFjdGlvbiBhcyBTdWJtaXRBY3Rpb24gYXMge1xuICAgICAgICAgIGRhdGE6IHN0cmluZyB8IEJvdEZyYW1ld29ya0NhcmRBY3Rpb247XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHBlcmZvcm1DYXJkQWN0aW9uKHtcbiAgICAgICAgICAgICAgaW1hZ2UsXG4gICAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgICB0eXBlOiAnaW1CYWNrJyxcbiAgICAgICAgICAgICAgdmFsdWU6IGRhdGFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5fX2lzQm90RnJhbWV3b3JrQ2FyZEFjdGlvbikge1xuICAgICAgICAgICAgcGVyZm9ybUNhcmRBY3Rpb24oZGF0YS5jYXJkQWN0aW9uKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGVyZm9ybUNhcmRBY3Rpb24oe1xuICAgICAgICAgICAgICBpbWFnZSxcbiAgICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICAgIHR5cGU6ICdwb3N0QmFjaycsXG4gICAgICAgICAgICAgIHZhbHVlOiBkYXRhXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzY3JvbGxUb0VuZCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgV2ViIENoYXQ6IHJlY2VpdmVkIHVua25vd24gYWN0aW9uIGZyb20gQWRhcHRpdmUgQ2FyZHNgKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihhY3Rpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2FkZEFjdGlvbnNQZXJmb3JtZWQsIGRpc2FibGVkLCBwZXJmb3JtQ2FyZEFjdGlvbiwgc2Nyb2xsVG9FbmRdXG4gICk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB7IGN1cnJlbnQgfSA9IGNvbnRlbnRSZWY7XG5cbiAgICBpZiAoIWN1cnJlbnQgfHwgIWFkYXB0aXZlQ2FyZCkge1xuICAgICAgYWN0aXZlRWxlbWVudEluZGV4UmVmLmN1cnJlbnQgPSAtMTtcbiAgICAgIGlucHV0VmFsdWVzUmVmLmN1cnJlbnQgPSBbXTtcbiAgICB9XG5cbiAgICAvLyBDdXJyZW50bHksIHRoZSBvbmx5IHdheSB0byBzZXQgdGhlIE1hcmtkb3duIGVuZ2luZSBpcyB0byBzZXQgaXQgdGhydSBzdGF0aWMgbWVtYmVyIG9mIEFkYXB0aXZlQ2FyZCBjbGFzc1xuXG4gICAgLy8gVE9ETzogW1AzXSBDaGVja3MgaWYgd2UgY291bGQgbWFrZSB0aGUgXCJyZW5kZXJNYXJrZG93bkFzSFRNTFwiIHBlciBjYXJkXG4gICAgLy8gICAgICAgVGhpcyBjb3VsZCBiZSBsaW1pdGF0aW9ucyBmcm9tIEFkYXB0aXZlIENhcmRzIHBhY2thZ2UgKG5vdCBzdXBwb3J0ZWQgYXMgb2YgMS4yLjUpXG4gICAgLy8gICAgICAgQmVjYXVzZSB0aGVyZSBjb3VsZCBiZSB0aW1pbmcgZGlmZmVyZW5jZSBiZXR3ZWVuIC5wYXJzZSBhbmQgLnJlbmRlciwgd2UgY291bGQgYmUgdXNpbmcgd3JvbmcgTWFya2Rvd24gZW5naW5lXG5cbiAgICAvLyBcIm9uUHJvY2Vzc01hcmtkb3duXCIgaXMgYSBzdGF0aWMgZnVuY3Rpb24gYnV0IHdlIGFyZSB0cnlpbmcgdG8gc2NvcGUgaXQgdG8gdGhlIGN1cnJlbnQgb2JqZWN0IGluc3RlYWQuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRvdC1ub3RhdGlvblxuICAgIGFkYXB0aXZlQ2FyZC5jb25zdHJ1Y3Rvclsnb25Qcm9jZXNzTWFya2Rvd24nXSA9ICh0ZXh0OiBzdHJpbmcsIHJlc3VsdDogSU1hcmtkb3duUHJvY2Vzc2luZ1Jlc3VsdCkgPT4ge1xuICAgICAgaWYgKHJlbmRlck1hcmtkb3duQXNIVE1MKSB7XG4gICAgICAgIHJlc3VsdC5vdXRwdXRIdG1sID0gcmVuZGVyTWFya2Rvd25Bc0hUTUwodGV4dCk7XG4gICAgICAgIHJlc3VsdC5kaWRQcm9jZXNzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKGFkYXB0aXZlQ2FyZHNIb3N0Q29uZmlnKSB7XG4gICAgICBhZGFwdGl2ZUNhcmQuaG9zdENvbmZpZyA9IGlzUGxhaW5PYmplY3QoYWRhcHRpdmVDYXJkc0hvc3RDb25maWcpXG4gICAgICAgID8gbmV3IEhvc3RDb25maWcoYWRhcHRpdmVDYXJkc0hvc3RDb25maWcpXG4gICAgICAgIDogYWRhcHRpdmVDYXJkc0hvc3RDb25maWc7XG4gICAgfVxuXG4gICAgLy8gRm9yIGFjY2Vzc2liaWxpdHkgaXNzdWUgIzEzNDAsIGB0YWJpbmRleD1cIjBcImAgbXVzdCBub3QgYmUgc2V0IGZvciB0aGUgcm9vdCBjb250YWluZXIgaWYgaXQgaXMgbm90IGludGVyYWN0aXZlLlxuICAgIEdsb2JhbFNldHRpbmdzLnNldFRhYkluZGV4QXRDYXJkUm9vdCA9ICEhdGFwQWN0aW9uO1xuXG4gICAgY29uc3QgeyB2YWxpZGF0aW9uRXZlbnRzIH0gPSBhZGFwdGl2ZUNhcmQudmFsaWRhdGVQcm9wZXJ0aWVzKCk7XG5cbiAgICBpZiAodmFsaWRhdGlvbkV2ZW50cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBzZXRFcnJvcnModmFsaWRhdGlvbkV2ZW50cy5yZWR1Y2UoKGl0ZW1zLCB7IG1lc3NhZ2UgfSkgPT4gWy4uLml0ZW1zLCBuZXcgRXJyb3IobWVzc2FnZSldLCBbXSkpO1xuICAgIH1cblxuICAgIGxldCBlbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIHRyeSB7XG4gICAgICBlbGVtZW50ID0gYWRhcHRpdmVDYXJkLnJlbmRlcigpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gc2V0RXJyb3JzKFtlcnJvcl0pO1xuICAgIH1cblxuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgcmV0dXJuIHNldEVycm9ycyhbbmV3IEVycm9yKCdBZGFwdGl2ZSBDYXJkIHJlbmRlcmVkIGFzIGVtcHR5IGVsZW1lbnQnKV0pO1xuICAgIH1cblxuICAgIC8vIENsZWFyIGVycm9ycyBvbiBuZXh0IHJlbmRlclxuICAgIHNldEVycm9ycyhbXSk7XG5cbiAgICByZXN0b3JlSW5wdXRWYWx1ZXMoZWxlbWVudCwgaW5wdXRWYWx1ZXNSZWYuY3VycmVudCk7XG5cbiAgICBjdXJyZW50LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgIGFkYXB0aXZlQ2FyZEVsZW1lbnRSZWYuY3VycmVudCA9IGVsZW1lbnQ7XG5cbiAgICAvLyBGb2N1cyBjYW4gb25seSBiZSByZXN0b3JlZCBhZnRlciB0aGUgRE9NIGlzIGF0dGFjaGVkLlxuICAgIHJlc3RvcmVBY3RpdmVFbGVtZW50SW5kZXgoZWxlbWVudCwgYWN0aXZlRWxlbWVudEluZGV4UmVmLmN1cnJlbnQpO1xuXG4gICAgc2V0TGFzdFJlbmRlcihEYXRlLm5vdygpKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBhY3RpdmVFbGVtZW50SW5kZXhSZWYuY3VycmVudCA9IHNhdmVBY3RpdmVFbGVtZW50SW5kZXgoZWxlbWVudCk7XG4gICAgICBpbnB1dFZhbHVlc1JlZi5jdXJyZW50ID0gc2F2ZUlucHV0VmFsdWVzKGVsZW1lbnQpO1xuXG4gICAgICBjdXJyZW50LnJlbW92ZUNoaWxkKGFkYXB0aXZlQ2FyZEVsZW1lbnRSZWYuY3VycmVudCk7XG5cbiAgICAgIGFkYXB0aXZlQ2FyZEVsZW1lbnRSZWYuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICB9O1xuICB9LCBbXG4gICAgYWRhcHRpdmVDYXJkLFxuICAgIGFkYXB0aXZlQ2FyZHNIb3N0Q29uZmlnLFxuICAgIGNvbnRlbnRSZWYsXG4gICAgR2xvYmFsU2V0dGluZ3MsXG4gICAgSG9zdENvbmZpZyxcbiAgICByZW5kZXJNYXJrZG93bkFzSFRNTCxcbiAgICBzZXRFcnJvcnMsXG4gICAgdGFwQWN0aW9uXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gU2V0IG9uRXhlY3V0ZUFjdGlvbiB3aXRob3V0IGNhdXNpbmcgdW5uZWNlc3NhcnkgcmUtcmVuZGVyLlxuICAgIGFkYXB0aXZlQ2FyZC5vbkV4ZWN1dGVBY3Rpb24gPSBkaXNhYmxlZCA/IHVuZGVmaW5lZCA6IGhhbmRsZUV4ZWN1dGVBY3Rpb247XG4gIH0sIFthZGFwdGl2ZUNhcmQsIGRpc2FibGVkLCBoYW5kbGVFeGVjdXRlQWN0aW9uXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IGZpeEFjY2Vzc2liaWxpdHlJc3N1ZXNXaXRoVW5kbyhhZGFwdGl2ZUNhcmRFbGVtZW50UmVmLmN1cnJlbnQpLCBbYWRhcHRpdmVDYXJkRWxlbWVudFJlZiwgbGFzdFJlbmRlcl0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gSWYgdGhlIEFkYXB0aXZlIENhcmQgZ2V0IHJlLXJlbmRlcmVkLCByZS1kaXNhYmxlIGVsZW1lbnRzIGFzIG5lZWRlZC5cbiAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBkaXNhYmxlSW5wdXRFbGVtZW50c1dpdGhVbmRvKGFkYXB0aXZlQ2FyZEVsZW1lbnRSZWYuY3VycmVudCk7XG4gICAgfVxuICB9LCBbYWRhcHRpdmVDYXJkRWxlbWVudFJlZiwgZGlzYWJsZWQsIGxhc3RSZW5kZXJdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIElmIHRoZSBBZGFwdGl2ZSBDYXJkIGNoYW5nZWQsIHJlc2V0IGFsbCBhY3Rpb25zIHBlcmZvcm1lZC5cbiAgICBzZXRBY3Rpb25zUGVyZm9ybWVkKFtdKTtcbiAgfSwgW2FkYXB0aXZlQ2FyZF0pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgaW5kaWNhdGVBY3Rpb25TZWxlY3Rpb25XaXRoVW5kbyhcbiAgICAgICAgLy8gQWN0aW9ucyB0aGF0IGRvIG5vdCBoYXZlIFwicmVuZGVyZWRFbGVtZW50XCIgbWVhbnMgaXQgaXMgdGhlIEFkYXB0aXZlIENhcmQgaXRzZWxmLCBzdWNoIGFzIFwic2VsZWN0QWN0aW9uXCIgKEFDKSBvciBcInRhcEFjdGlvblwiIChyaWNoIGNhcmRzKS5cbiAgICAgICAgLy8gV2UgZG8gbm90IG5lZWQgdG8gbWFyayB0aGUgd2hvbGUgY2FyZCBhcyBwZXJmb3JtZWQuXG4gICAgICAgIGFjdGlvbnNQZXJmb3JtZWQubWFwKCh7IHJlbmRlcmVkRWxlbWVudCB9KSA9PiByZW5kZXJlZEVsZW1lbnQpLmZpbHRlcihyZW5kZXJlZEVsZW1lbnQgPT4gcmVuZGVyZWRFbGVtZW50KSxcbiAgICAgICAgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lXG4gICAgICApLFxuICAgIFthY3Rpb25zUGVyZm9ybWVkLCBhY3Rpb25QZXJmb3JtZWRDbGFzc05hbWUsIGxhc3RSZW5kZXJdXG4gICk7XG5cbiAgcmV0dXJuIGVycm9ycy5sZW5ndGggPyAoXG4gICAgbm9kZV9lbnYgPT09ICdkZXZlbG9wbWVudCcgJiYgPEVycm9yQm94IGVycm9yPXtlcnJvcnNbMF19IHR5cGU9e2xvY2FsaXplKCdBREFQVElWRV9DQVJEX0VSUk9SX0JPWF9USVRMRV9SRU5ERVInKX0gLz5cbiAgKSA6IChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoYWRhcHRpdmVDYXJkUmVuZGVyZXJTdHlsZVNldCArICcnLCAnd2ViY2hhdF9fYWRhcHRpdmUtY2FyZC1yZW5kZXJlcicpfVxuICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2tBbmRLZXlQcmVzc0ZvclRhcEFjdGlvbiBhcyB1bmtub3duIGFzIE1vdXNlRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50Pn1cbiAgICAgIG9uS2V5UHJlc3M9e2hhbmRsZUNsaWNrQW5kS2V5UHJlc3NGb3JUYXBBY3Rpb24gYXMgdW5rbm93biBhcyBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD59XG4gICAgICByZWY9e2NvbnRlbnRSZWZ9XG4gICAgLz5cbiAgKTtcbn07XG5cbkFkYXB0aXZlQ2FyZFJlbmRlcmVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lOiAnJyxcbiAgZGlzYWJsZWQ6IHVuZGVmaW5lZCxcbiAgdGFwQWN0aW9uOiB1bmRlZmluZWRcbn07XG5cbkFkYXB0aXZlQ2FyZFJlbmRlcmVyLnByb3BUeXBlcyA9IHtcbiAgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhZGFwdGl2ZUNhcmQ6IFByb3BUeXBlcy5hbnkuaXNSZXF1aXJlZCxcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuXG4gIC8vIFR5cGVTY3JpcHQgY2xhc3MgaXMgbm90IG1hcHBhYmxlIHRvIFByb3BUeXBlcy5mdW5jXG4gIC8vIEB0cy1pZ25vcmVcbiAgdGFwQWN0aW9uOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGltYWdlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZ1xuICB9KVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQWRhcHRpdmVDYXJkUmVuZGVyZXI7XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DirectLineAnimationCard } from 'botframework-webchat-core';
|
|
2
1
|
import { FC } from 'react';
|
|
2
|
+
import type { DirectLineAnimationCard } from 'botframework-webchat-core';
|
|
3
3
|
declare type AnimationCardContentProps = {
|
|
4
4
|
actionPerformedClassName?: string;
|
|
5
5
|
content: DirectLineAnimationCard;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimationCardContent.d.ts","sourceRoot":"","sources":["../../../src/adaptiveCards/Attachment/AnimationCardContent.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AnimationCardContent.d.ts","sourceRoot":"","sources":["../../../src/adaptiveCards/Attachment/AnimationCardContent.tsx"],"names":[],"mappings":"AAIA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAOzE,aAAK,yBAAyB,GAAG;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,OAAO,EAAE,uBAAuB,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,oBAAoB,EAAE,EAAE,CAAC,yBAAyB,CAgBvD,CAAC;AAsBF,eAAe,oBAAoB,CAAC"}
|
|
@@ -63,6 +63,8 @@ AnimationCardContent.defaultProps = {
|
|
|
63
63
|
};
|
|
64
64
|
AnimationCardContent.propTypes = {
|
|
65
65
|
actionPerformedClassName: _propTypes.default.string,
|
|
66
|
+
// PropTypes cannot fully capture TypeScript types.
|
|
67
|
+
// @ts-ignore
|
|
66
68
|
content: _propTypes.default.shape({
|
|
67
69
|
media: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
68
70
|
profile: _propTypes.default.string,
|
|
@@ -73,4 +75,4 @@ AnimationCardContent.propTypes = {
|
|
|
73
75
|
};
|
|
74
76
|
var _default = AnimationCardContent;
|
|
75
77
|
exports.default = _default;
|
|
76
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGl2ZUNhcmRzL0F0dGFjaG1lbnQvQW5pbWF0aW9uQ2FyZENvbnRlbnQudHN4Il0sIm5hbWVzIjpbIkltYWdlQ29udGVudCIsIkNvbXBvbmVudHMiLCJWaWRlb0NvbnRlbnQiLCJ1c2VTdHlsZVNldCIsImhvb2tzIiwiQW5pbWF0aW9uQ2FyZENvbnRlbnQiLCJhY3Rpb25QZXJmb3JtZWRDbGFzc05hbWUiLCJjb250ZW50IiwiZGlzYWJsZWQiLCJtZWRpYSIsImFuaW1hdGlvbkNhcmRBdHRhY2htZW50U3R5bGVTZXQiLCJhbmltYXRpb25DYXJkQXR0YWNobWVudCIsIm1hcCIsImluZGV4IiwicHJvZmlsZSIsInVybCIsInRlc3QiLCJkZWZhdWx0UHJvcHMiLCJ1bmRlZmluZWQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJzaGFwZSIsImFycmF5T2YiLCJpc1JlcXVpcmVkIiwiYm9vbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFHQTs7QUFQQTtBQVNBLElBQVFBLFlBQVIsR0FBdUNDLHdDQUF2QyxDQUFRRCxZQUFSO0FBQUEsSUFBc0JFLFlBQXRCLEdBQXVDRCx3Q0FBdkMsQ0FBc0JDLFlBQXRCO0FBQ0EsSUFBUUMsV0FBUixHQUF3QkMsbUNBQXhCLENBQVFELFdBQVI7O0FBUUEsSUFBTUUsb0JBQW1ELEdBQUcsU0FBdERBLG9CQUFzRCxPQUFxRDtBQUFBLE1BQWxEQyx3QkFBa0QsUUFBbERBLHdCQUFrRDtBQUFBLE1BQXhCQyxPQUF3QixRQUF4QkEsT0FBd0I7QUFBQSxNQUFmQyxRQUFlLFFBQWZBLFFBQWU7QUFDL0csdUJBQXVCRCxPQUF2QixDQUFRRSxLQUFSO0FBQUEsTUFBUUEsS0FBUiwrQkFBZ0IsRUFBaEI7O0FBQ0EscUJBQXVFTixXQUFXLEVBQWxGO0FBQUE7QUFBQSxNQUFrQ08sK0JBQWxDLG9CQUFTQyx1QkFBVDs7QUFFQSxzQkFDRTtBQUFLLElBQUEsU0FBUyxFQUFFRDtBQUFoQixrQkFDRTtBQUFJLElBQUEsU0FBUyxFQUFDO0FBQWQsS0FDR0QsS0FBSyxDQUFDRyxHQUFOLENBQVUsaUJBQXdCQyxLQUF4QjtBQUFBLDhCQUFHQyxPQUFIO0FBQUEsUUFBR0EsT0FBSCw4QkFBYSxFQUFiO0FBQUEsUUFBaUJDLEdBQWpCLFNBQWlCQSxHQUFqQjtBQUFBLHdCQUNUO0FBQUksTUFBQSxHQUFHLEVBQUVGO0FBQVQsT0FDRyxVQUFXRyxJQUFYLENBQWdCRCxHQUFoQixpQkFBdUIsNkJBQUMsWUFBRDtBQUFjLE1BQUEsR0FBRyxFQUFFRCxPQUFuQjtBQUE0QixNQUFBLEdBQUcsRUFBRUM7QUFBakMsTUFBdkIsZ0JBQWtFLDZCQUFDLFlBQUQ7QUFBYyxNQUFBLEdBQUcsRUFBRUQsT0FBbkI7QUFBNEIsTUFBQSxHQUFHLEVBQUVDO0FBQWpDLE1BRHJFLENBRFM7QUFBQSxHQUFWLENBREgsQ0FERixlQVFFLDZCQUFDLG1CQUFEO0FBQVksSUFBQSx3QkFBd0IsRUFBRVQsd0JBQXRDO0FBQWdFLElBQUEsT0FBTyxFQUFFQyxPQUF6RTtBQUFrRixJQUFBLFFBQVEsRUFBRUM7QUFBNUYsSUFSRixDQURGO0FBWUQsQ0FoQkQ7O0FBa0JBSCxvQkFBb0IsQ0FBQ1ksWUFBckIsR0FBb0M7QUFDbENYLEVBQUFBLHdCQUF3QixFQUFFLEVBRFE7QUFFbENFLEVBQUFBLFFBQVEsRUFBRVU7QUFGd0IsQ0FBcEM7QUFLQWIsb0JBQW9CLENBQUNjLFNBQXJCLEdBQWlDO0FBQy9CYixFQUFBQSx3QkFBd0IsRUFBRWMsbUJBQVVDLE1BREw7QUFFL0I7QUFDQTtBQUNBZCxFQUFBQSxPQUFPLEVBQUVhLG1CQUFVRSxLQUFWLENBQWdCO0FBQ3ZCYixJQUFBQSxLQUFLLEVBQUVXLG1CQUFVRyxPQUFWLENBQ0xILG1CQUFVRSxLQUFWLENBQWdCO0FBQ2RSLE1BQUFBLE9BQU8sRUFBRU0sbUJBQVVDLE1BREw7QUFFZE4sTUFBQUEsR0FBRyxFQUFFSyxtQkFBVUMsTUFBVixDQUFpQkc7QUFGUixLQUFoQixDQURLLEVBS0xBO0FBTnFCLEdBQWhCLEVBT05BLFVBWDRCO0FBWS9CaEIsRUFBQUEsUUFBUSxFQUFFWSxtQkFBVUs7QUFaVyxDQUFqQztlQWVlcEIsb0IiLCJzb3VyY2VSb290IjoiYnVuZGxlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCByZWFjdC9uby1hcnJheS1pbmRleC1rZXk6IFwib2ZmXCIgKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50cywgaG9va3MgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb21wb25lbnQnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyBGQyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRGlyZWN0TGluZUFuaW1hdGlvbkNhcmQgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1jb3JlJztcblxuaW1wb3J0IENvbW1vbkNhcmQgZnJvbSAnLi9Db21tb25DYXJkJztcblxuY29uc3QgeyBJbWFnZUNvbnRlbnQsIFZpZGVvQ29udGVudCB9ID0gQ29tcG9uZW50cztcbmNvbnN0IHsgdXNlU3R5bGVTZXQgfSA9IGhvb2tzO1xuXG50eXBlIEFuaW1hdGlvbkNhcmRDb250ZW50UHJvcHMgPSB7XG4gIGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZT86IHN0cmluZztcbiAgY29udGVudDogRGlyZWN0TGluZUFuaW1hdGlvbkNhcmQ7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IEFuaW1hdGlvbkNhcmRDb250ZW50OiBGQzxBbmltYXRpb25DYXJkQ29udGVudFByb3BzPiA9ICh7IGFjdGlvblBlcmZvcm1lZENsYXNzTmFtZSwgY29udGVudCwgZGlzYWJsZWQgfSkgPT4ge1xuICBjb25zdCB7IG1lZGlhID0gW10gfSA9IGNvbnRlbnQ7XG4gIGNvbnN0IFt7IGFuaW1hdGlvbkNhcmRBdHRhY2htZW50OiBhbmltYXRpb25DYXJkQXR0YWNobWVudFN0eWxlU2V0IH1dID0gdXNlU3R5bGVTZXQoKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXthbmltYXRpb25DYXJkQXR0YWNobWVudFN0eWxlU2V0fT5cbiAgICAgIDx1bCBjbGFzc05hbWU9XCJtZWRpYS1saXN0XCI+XG4gICAgICAgIHttZWRpYS5tYXAoKHsgcHJvZmlsZSA9ICcnLCB1cmwgfSwgaW5kZXgpID0+IChcbiAgICAgICAgICA8bGkga2V5PXtpbmRleH0+XG4gICAgICAgICAgICB7L1xcLmdpZiQvaXUudGVzdCh1cmwpID8gPEltYWdlQ29udGVudCBhbHQ9e3Byb2ZpbGV9IHNyYz17dXJsfSAvPiA6IDxWaWRlb0NvbnRlbnQgYWx0PXtwcm9maWxlfSBzcmM9e3VybH0gLz59XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgKSl9XG4gICAgICA8L3VsPlxuICAgICAgPENvbW1vbkNhcmQgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lPXthY3Rpb25QZXJmb3JtZWRDbGFzc05hbWV9IGNvbnRlbnQ9e2NvbnRlbnR9IGRpc2FibGVkPXtkaXNhYmxlZH0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbkFuaW1hdGlvbkNhcmRDb250ZW50LmRlZmF1bHRQcm9wcyA9IHtcbiAgYWN0aW9uUGVyZm9ybWVkQ2xhc3NOYW1lOiAnJyxcbiAgZGlzYWJsZWQ6IHVuZGVmaW5lZFxufTtcblxuQW5pbWF0aW9uQ2FyZENvbnRlbnQucHJvcFR5cGVzID0ge1xuICBhY3Rpb25QZXJmb3JtZWRDbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8vIFByb3BUeXBlcyBjYW5ub3QgZnVsbHkgY2FwdHVyZSBUeXBlU2NyaXB0IHR5cGVzLlxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnRlbnQ6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgbWVkaWE6IFByb3BUeXBlcy5hcnJheU9mKFxuICAgICAgUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgICAgcHJvZmlsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgdXJsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWRcbiAgICAgIH0pXG4gICAgKS5pc1JlcXVpcmVkXG4gIH0pLmlzUmVxdWlyZWQsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQW5pbWF0aW9uQ2FyZENvbnRlbnQ7XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DirectLineAudioCard } from 'botframework-webchat-core';
|
|
2
1
|
import { FC } from 'react';
|
|
2
|
+
import type { DirectLineAudioCard } from 'botframework-webchat-core';
|
|
3
3
|
declare type AudioCardContentProps = {
|
|
4
4
|
actionPerformedClassName?: string;
|
|
5
5
|
content: DirectLineAudioCard;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioCardContent.d.ts","sourceRoot":"","sources":["../../../src/adaptiveCards/Attachment/AudioCardContent.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AudioCardContent.d.ts","sourceRoot":"","sources":["../../../src/adaptiveCards/Attachment/AudioCardContent.tsx"],"names":[],"mappings":"AAIA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAOrE,aAAK,qBAAqB,GAAG;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,QAAA,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAgB/C,CAAC;AA0BF,eAAe,gBAAgB,CAAC"}
|