Socket
Socket
Sign inDemoInstall

@aws-sdk/middleware-stack

Package Overview
Dependencies
Maintainers
5
Versions
120
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-sdk/middleware-stack - npm Package Compare versions

Comparing version 1.0.0-gamma.2 to 1.0.0-gamma.3

11

CHANGELOG.md

@@ -6,2 +6,13 @@ # Change Log

# [1.0.0-gamma.3](https://github.com/aws/aws-sdk-js-v3/compare/@aws-sdk/middleware-stack@1.0.0-gamma.2...@aws-sdk/middleware-stack@1.0.0-gamma.3) (2020-07-13)
### Features
* add code linting and prettify ([#1350](https://github.com/aws/aws-sdk-js-v3/issues/1350)) ([47770fa](https://github.com/aws/aws-sdk-js-v3/commit/47770fa493c3405f193069cd18319882529ff484))
# [1.0.0-gamma.2](https://github.com/aws/aws-sdk-js-v3/compare/@aws-sdk/middleware-stack@0.1.0-preview.3...@aws-sdk/middleware-stack@1.0.0-gamma.2) (2020-07-08)

@@ -8,0 +19,0 @@

2

dist/cjs/MiddlewareStack.d.ts

@@ -1,2 +0,2 @@

import { InitializeHandlerOptions, BuildHandlerOptions, FinalizeRequestHandlerOptions, MiddlewareType, SerializeMiddleware, FinalizeRequestMiddleware, HandlerExecutionContext, InitializeMiddleware, MiddlewareStack as IMiddlewareStack, SerializeHandlerOptions, DeserializeMiddleware, DeserializeHandlerOptions, DeserializeHandler, Pluggable, BuildMiddleware, Handler, AbsoluteLocation, RelativeLocation } from "@aws-sdk/types";
import { AbsoluteLocation, BuildHandlerOptions, BuildMiddleware, DeserializeHandler, DeserializeHandlerOptions, DeserializeMiddleware, FinalizeRequestHandlerOptions, FinalizeRequestMiddleware, Handler, HandlerExecutionContext, InitializeHandlerOptions, InitializeMiddleware, MiddlewareStack as IMiddlewareStack, MiddlewareType, Pluggable, RelativeLocation, SerializeHandlerOptions, SerializeMiddleware } from "@aws-sdk/types";
export interface MiddlewareStack<Input extends object, Output extends object> extends IMiddlewareStack<Input, Output> {

@@ -3,0 +3,0 @@ }

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MiddlewareStack = void 0;
var tslib_1 = require("tslib");

@@ -18,3 +19,3 @@ var MiddlewareStack = /** @class */ (function () {

priority: priority,
middleware: middleware
middleware: middleware,
};

@@ -37,3 +38,3 @@ if (name) {

next: relation === "before" ? toMiddleware : undefined,
prev: relation === "after" ? toMiddleware : undefined
prev: relation === "after" ? toMiddleware : undefined,
};

@@ -53,4 +54,3 @@ if (name) {

return stepWeights[b.step] - stepWeights[a.step] ||
priorityWeights[b.priority || "normal"] -
priorityWeights[a.priority || "normal"];
priorityWeights[b.priority || "normal"] - priorityWeights[a.priority || "normal"];
});

@@ -92,4 +92,3 @@ };

for (var i = this.absoluteEntries.length - 1; i >= 0; i--) {
if (this.absoluteEntries[i].name &&
this.absoluteEntries[i].name === toRemove) {
if (this.absoluteEntries[i].name && this.absoluteEntries[i].name === toRemove) {
this.absoluteEntries.splice(i, 1);

@@ -101,4 +100,3 @@ delete this.entriesNameMap[toRemove];

for (var i = this.relativeEntries.length - 1; i >= 0; i--) {
if (this.relativeEntries[i].name &&
this.relativeEntries[i].name === toRemove) {
if (this.relativeEntries[i].name && this.relativeEntries[i].name === toRemove) {
this.relativeEntries.splice(i, 1);

@@ -193,4 +191,3 @@ delete this.entriesNameMap[toRemove];

if (prev) {
if (absoluteMiddlewareNamesMap[prev] &&
absoluteMiddlewareNamesMap[prev].step === resolvedCurr.step) {
if (absoluteMiddlewareNamesMap[prev] && absoluteMiddlewareNamesMap[prev].step === resolvedCurr.step) {
if (!anchors[prev])

@@ -203,4 +200,3 @@ anchors[prev] = {};

}
else if (relativeMiddlewareNamesMap[prev] &&
relativeMiddlewareNamesMap[prev].step === resolvedCurr.step) {
else if (relativeMiddlewareNamesMap[prev] && relativeMiddlewareNamesMap[prev].step === resolvedCurr.step) {
var resolvedPrev = relativeMiddlewareNamesMap[prev];

@@ -217,4 +213,3 @@ if (resolvedPrev.next === resolvedCurr)

else if (next) {
if (absoluteMiddlewareNamesMap[next] &&
absoluteMiddlewareNamesMap[next].step === resolvedCurr.step) {
if (absoluteMiddlewareNamesMap[next] && absoluteMiddlewareNamesMap[next].step === resolvedCurr.step) {
if (!anchors[next])

@@ -227,4 +222,3 @@ anchors[next] = {};

}
else if (relativeMiddlewareNamesMap[next] &&
relativeMiddlewareNamesMap[next].step === resolvedCurr.step) {
else if (relativeMiddlewareNamesMap[next] && relativeMiddlewareNamesMap[next].step === resolvedCurr.step) {
var resolvedNext = relativeMiddlewareNamesMap[next];

@@ -298,5 +292,3 @@ if (resolvedNext.prev === resolvedCurr)

var defaultAnchorValue = { prev: undefined, next: undefined };
var _c = entry.name
? anchors[entry.name] || defaultAnchorValue
: defaultAnchorValue, prev = _c.prev, next = _c.next;
var _c = entry.name ? anchors[entry.name] || defaultAnchorValue : defaultAnchorValue, prev = _c.prev, next = _c.next;
var relativeEntry = prev;

@@ -358,3 +350,3 @@ //reverse relative entry linked list and add to ordered handler list

finalizeRequest: 2,
deserialize: 1
deserialize: 1,
};

@@ -364,4 +356,4 @@ var priorityWeights = {

normal: 2,
low: 1
low: 1,
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlkZGxld2FyZVN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL01pZGRsZXdhcmVTdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQ0E7SUFBQTtRQUNtQixvQkFBZSxHQUEwQyxFQUFFLENBQUM7UUFDNUQsb0JBQWUsR0FFNUIsRUFBRSxDQUFDO1FBQ0MsbUJBQWMsR0FJbEIsRUFBRSxDQUFDO0lBeVlULENBQUM7SUE5V0MsNkJBQUcsR0FBSCxVQUNFLFVBQXlDLEVBQ3pDLE9BQStDO1FBQS9DLHdCQUFBLEVBQUEsWUFBK0M7UUFFdkMsSUFBQSxtQkFBSSxFQUFFLGlCQUFtQixFQUFuQix3Q0FBbUIsRUFBRSxtQkFBSSxFQUFFLHFCQUFtQixFQUFuQix3Q0FBbUIsQ0FBYTtRQUN6RSxJQUFNLEtBQUssR0FBbUM7WUFDNUMsSUFBSSxNQUFBO1lBQ0osSUFBSSxNQUFBO1lBQ0osSUFBSSxNQUFBO1lBQ0osUUFBUSxVQUFBO1lBQ1IsVUFBVSxZQUFBO1NBQ1gsQ0FBQztRQUNGLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDbkUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBK0IsSUFBSSxNQUFHLENBQUMsQ0FBQzthQUN6RDtZQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQTJCRCx1Q0FBYSxHQUFiLFVBQ0UsVUFBeUMsRUFDekMsT0FBeUQ7UUFFakQsSUFBQSxpQkFBbUIsRUFBbkIsd0NBQW1CLEVBQUUsbUJBQUksRUFBRSxtQkFBSSxFQUFFLDJCQUFRLEVBQUUsbUNBQVksQ0FBYTtRQUM1RSxJQUFNLEtB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QXlCLElBQUEsS0FBQSxpQkFBQSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBOUMsSUFBTSxVQUFVLFdBQUE7Z0JBQ25CLE9BQU8sR0FBRyxVQUFVLENBQ2xCLE9BQXFDLEVBQ3JDLE9BQU8sQ0FDRCxDQUFDO2FBQ1Y7Ozs7Ozs7OztRQUVELE9BQU8sT0FBeUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0gsc0JBQUM7QUFBRCxDQUFDLEFBbFpELElBa1pDO0FBbFpZLDBDQUFlO0FBb1o1QixJQUFNLFdBQVcsR0FBOEI7SUFDN0MsVUFBVSxFQUFFLENBQUM7SUFDYixTQUFTLEVBQUUsQ0FBQztJQUNaLEtBQUssRUFBRSxDQUFDO0lBQ1IsZUFBZSxFQUFFLENBQUM7SUFDbEIsV0FBVyxFQUFFLENBQUM7Q0FDZixDQUFDO0FBRUYsSUFBTSxlQUFlLEdBQWtDO0lBQ3JELElBQUksRUFBRSxDQUFDO0lBQ1AsTUFBTSxFQUFFLENBQUM7SUFDVCxHQUFHLEVBQUUsQ0FBQztDQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbml0aWFsaXplSGFuZGxlck9wdGlvbnMsXG4gIEJ1aWxkSGFuZGxlck9wdGlvbnMsXG4gIEZpbmFsaXplUmVxdWVzdEhhbmRsZXJPcHRpb25zLFxuICBNaWRkbGV3YXJlVHlwZSxcbiAgU2VyaWFsaXplTWlkZGxld2FyZSxcbiAgRmluYWxpemVSZXF1ZXN0TWlkZGxld2FyZSxcbiAgSGFuZGxlckV4ZWN1dGlvbkNvbnRleHQsXG4gIEhhbmRsZXJPcHRpb25zLFxuICBJbml0aWFsaXplTWlkZGxld2FyZSxcbiAgTWlkZGxld2FyZVN0YWNrIGFzIElNaWRkbGV3YXJlU3RhY2ssXG4gIFNlcmlhbGl6ZUhhbmRsZXJPcHRpb25zLFxuICBTdGVwLFxuICBEZXNlcmlhbGl6ZU1pZGRsZXdhcmUsXG4gIERlc2VyaWFsaXplSGFuZGxlck9wdGlvbnMsXG4gIERlc2VyaWFsaXplSGFuZGxlcixcbiAgUGx1Z2dhYmxlLFxuICBCdWlsZE1pZGRsZXdhcmUsXG4gIEhhbmRsZXIsXG4gIFByaW9yaXR5LFxuICBBYnNvbHV0ZUxvY2F0aW9uLFxuICBSZWxhdGl2ZUxvY2F0aW9uXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHtcbiAgTWlkZGxld2FyZUVudHJ5LFxuICBSZWxhdGl2ZU1pZGRsZXdhcmVFbnRyeSxcbiAgTm9ybWFsaXplZFJlbGF0aXZlRW50cnksXG4gIE5hbWVkTWlkZGxld2FyZUVudHJpZXNNYXAsXG4gIE5hbWVkUmVsYXRpdmVFbnRyaWVzTWFwLFxuICBSZWxhdGl2ZU1pZGRsZXdhcmVBbmNob3IsXG4gIE5vcm1hbGl6aW5nRW50cnlSZXN1bHRcbn0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBNaWRkbGV3YXJlU3RhY2s8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCBleHRlbmRzIG9iamVjdD5cbiAgZXh0ZW5kcyBJTWlkZGxld2FyZVN0YWNrPElucHV0LCBPdXRwdXQ+IHt9XG5cbmV4cG9ydCBjbGFzcyBNaWRkbGV3YXJlU3RhY2s8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCBleHRlbmRzIG9iamVjdD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGFic29sdXRlRW50cmllczogQXJyYXk8TWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+PiA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlbGF0aXZlRW50cmllczogQXJyYXk8XG4gICAgUmVsYXRpdmVNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD5cbiAgPiA9IFtdO1xuICBwcml2YXRlIGVudHJpZXNOYW1lTWFwOiB7XG4gICAgW21pZGRsZXdhcmVOYW1lOiBzdHJpbmddOlxuICAgICAgfCBNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD5cbiAgICAgIHwgUmVsYXRpdmVNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD47XG4gIH0gPSB7fTtcblxuICBhZGQoXG4gICAgbWlkZGxld2FyZTogSW5pdGlhbGl6ZU1pZGRsZXdhcmU8SW5wdXQsIE91dHB1dD4sXG4gICAgb3B0aW9ucz86IEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyAmIEFic29sdXRlTG9jYXRpb25cbiAgKTogdm9pZDtcblxuICBhZGQoXG4gICAgbWlkZGxld2FyZTogU2VyaWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PixcbiAgICBvcHRpb25zOiBTZXJpYWxpemVIYW5kbGVyT3B0aW9ucyAmIEFic29sdXRlTG9jYXRpb25cbiAgKTogdm9pZDtcblxuICBhZGQoXG4gICAgbWlkZGxld2FyZTogQnVpbGRNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+LFxuICAgIG9wdGlvbnM6IEJ1aWxkSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uXG4gICk6IHZvaWQ7XG5cbiAgYWRkKFxuICAgIG1pZGRsZXdhcmU6IEZpbmFsaXplUmVxdWVzdE1pZGRsZXdhcmU8SW5wdXQsIE91dHB1dD4sXG4gICAgb3B0aW9uczogRmluYWxpemVSZXF1ZXN0SGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uXG4gICk6IHZvaWQ7XG5cbiAgYWRkKFxuICAgIG1pZGRsZXdhcmU6IERlc2VyaWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PixcbiAgICBvcHRpb25zOiBEZXNlcmlhbGl6ZUhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvblxuICApOiB2b2lkO1xuXG4gIGFkZChcbiAgICBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0PixcbiAgICBvcHRpb25zOiBIYW5kbGVyT3B0aW9ucyAmIEFic29sdXRlTG9jYXRpb24gPSB7fVxuICApOiB2b2lkIHtcbiAgICBjb25zdCB7IG5hbWUsIHN0ZXAgPSBcImluaXRpYWxpemVcIiwgdGFncywgcHJpb3JpdHkgPSBcIm5vcm1hbFwiIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGVudHJ5OiBNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4gPSB7XG4gICAgICBuYW1lLFxuICAgICAgc3RlcCxcbiAgICAgIHRhZ3MsXG4gICAgICBwcmlvcml0eSxcbiAgICAgIG1pZGRsZXdhcmVcbiAgICB9O1xuICAgIGlmIChuYW1lKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuZW50cmllc05hbWVNYXAsIG5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRHVwbGljYXRlZCBtaWRkbGV3YXJlIG5hbWUgJyR7bmFtZX0nYCk7XG4gICAgICB9XG4gICAgICB0aGlzLmVudHJpZXNOYW1lTWFwW25hbWVdID0gZW50cnk7XG4gICAgfVxuICAgIHRoaXMuYWJzb2x1dGVFbnRyaWVzLnB1c2goZW50cnkpO1xuICB9XG5cbiAgYWRkUmVsYXRpdmVUbyhcbiAgICBtaWRkbGV3YXJlOiBJbml0aWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PixcbiAgICBvcHRpb25zOiBJbml0aWFsaXplSGFuZGxlck9wdGlvbnMgJiBSZWxhdGl2ZUxvY2F0aW9uPElucHV0LCBPdXRwdXQ+XG4gICk6IHZvaWQ7XG5cbiAgYWRkUmVsYXRpdmVUbyhcbiAgICBtaWRkbGV3YXJlOiBTZXJpYWxpemVNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+LFxuICAgIG9wdGlvbnM6IFNlcmlhbGl6ZUhhbmRsZXJPcHRpb25zICYgUmVsYXRpdmVMb2NhdGlvbjxJbnB1dCwgT3V0cHV0PlxuICApOiB2b2lkO1xuXG4gIGFkZFJlbGF0aXZlVG8oXG4gICAgbWlkZGxld2FyZTogQnVpbGRNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+LFxuICAgIG9wdGlvbnM6IEJ1aWxkSGFuZGxlck9wdGlvbnMgJiBSZWxhdGl2ZUxvY2F0aW9uPElucHV0LCBPdXRwdXQ+XG4gICk6IHZvaWQ7XG5cbiAgYWRkUmVsYXRpdmVUbyhcbiAgICBtaWRkbGV3YXJlOiBGaW5hbGl6ZVJlcXVlc3RNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+LFxuICAgIG9wdGlvbnM6IEZpbmFsaXplUmVxdWVzdEhhbmRsZXJPcHRpb25zICYgUmVsYXRpdmVMb2NhdGlvbjxJbnB1dCwgT3V0cHV0PlxuICApOiB2b2lkO1xuXG4gIGFkZFJlbGF0aXZlVG8oXG4gICAgbWlkZGxld2FyZTogRGVzZXJpYWxpemVNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+LFxuICAgIG9wdGlvbnM6IERlc2VyaWFsaXplSGFuZGxlck9wdGlvbnMgJiBSZWxhdGl2ZUxvY2F0aW9uPElucHV0LCBPdXRwdXQ+XG4gICk6IHZvaWQ7XG5cbiAgYWRkUmVsYXRpdmVUbyhcbiAgICBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0PixcbiAgICBvcHRpb25zOiBIYW5kbGVyT3B0aW9ucyAmIFJlbGF0aXZlTG9jYXRpb248SW5wdXQsIE91dHB1dD5cbiAgKTogdm9pZCB7XG4gICAgY29uc3QgeyBzdGVwID0gXCJpbml0aWFsaXplXCIsIG5hbWUsIHRhZ3MsIHJlbGF0aW9uLCB0b01pZGRsZXdhcmUgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgZW50cnk6IFJlbGF0aXZlTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+ID0ge1xuICAgICAgbWlkZGxld2FyZSxcbiAgICAgIHN0ZXAsXG4gICAgICBuYW1lLFxuICAgICAgdGFncyxcbiAgICAgIG5leHQ6IHJlbGF0aW9uID09PSBcImJlZm9yZVwiID8gdG9NaWRkbGV3YXJlIDogdW5kZWZpbmVkLFxuICAgICAgcHJldjogcmVsYXRpb24gPT09IFwiYWZ0ZXJcIiA/IHRvTWlkZGxld2FyZSA6IHVuZGVmaW5lZFxuICAgIH07XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5lbnRyaWVzTmFtZU1hcCwgbmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGVkIG1pZGRsZXdhcmUgbmFtZSAnJHtuYW1lfSdgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZW50cmllc05hbWVNYXBbbmFtZV0gPSBlbnRyeTtcbiAgICB9XG4gICAgdGhpcy5yZWxhdGl2ZUVudHJpZXMucHVzaChlbnRyeSk7XG4gIH1cblxuICBwcml2YXRlIHNvcnQoXG4gICAgZW50cmllczogQXJyYXk8XG4gICAgICBNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4gfCBOb3JtYWxpemVkUmVsYXRpdmVFbnRyeTxJbnB1dCwgT3V0cHV0PlxuICAgID5cbiAgKTogQXJyYXk8XG4gICAgTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+IHwgTm9ybWFsaXplZFJlbGF0aXZlRW50cnk8SW5wdXQsIE91dHB1dD5cbiAgPiB7XG4gICAgLy9yZXZlcnNlIGJlZm9yZSBzb3J0aW5nIHNvIHRoYXQgbWlkZGxld2FyZSBvZiBzYW1lIHN0ZXAgd2lsbCBleGVjdXRlIGluXG4gICAgLy90aGUgb3JkZXIgb2YgYmVpbmcgYWRkZWRcbiAgICByZXR1cm4gZW50cmllcy5zb3J0KFxuICAgICAgKGEsIGIpID0+XG4gICAgICAgIHN0ZXBXZWlnaHRzW2Iuc3RlcF0gLSBzdGVwV2VpZ2h0c1thLnN0ZXBdIHx8XG4gICAgICAgIHByaW9yaXR5V2VpZ2h0c1tiLnByaW9yaXR5IHx8IFwibm9ybWFsXCJdIC1cbiAgICAgICAgICBwcmlvcml0eVdlaWdodHNbYS5wcmlvcml0eSB8fCBcIm5vcm1hbFwiXVxuICAgICk7XG4gIH1cblxuICBjbG9uZSgpOiBJTWlkZGxld2FyZVN0YWNrPElucHV0LCBPdXRwdXQ+IHtcbiAgICBjb25zdCBjbG9uZSA9IG5ldyBNaWRkbGV3YXJlU3RhY2s8SW5wdXQsIE91dHB1dD4oKTtcbiAgICBjbG9uZS5hYnNvbHV0ZUVudHJpZXMucHVzaCguLi50aGlzLmFic29sdXRlRW50cmllcyk7XG4gICAgY2xvbmUucmVsYXRpdmVFbnRyaWVzLnB1c2goLi4udGhpcy5yZWxhdGl2ZUVudHJpZXMpO1xuICAgIGNsb25lLmVudHJpZXNOYW1lTWFwID0geyAuLi50aGlzLmVudHJpZXNOYW1lTWFwIH07XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG5cbiAgY29uY2F0PElucHV0VHlwZSBleHRlbmRzIElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgT3V0cHV0PihcbiAgICBmcm9tOiBJTWlkZGxld2FyZVN0YWNrPElucHV0VHlwZSwgT3V0cHV0VHlwZT5cbiAgKTogTWlkZGxld2FyZVN0YWNrPElucHV0VHlwZSwgT3V0cHV0VHlwZT4ge1xuICAgIGNvbnN0IGNsb25lID0gbmV3IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+KCk7XG4gICAgY2xvbmUuZW50cmllc05hbWVNYXAgPSB7IC4uLih0aGlzLmVudHJpZXNOYW1lTWFwIGFzIGFueSkgfTtcbiAgICAvLyBJTWlkZGxld2FyZVN0YWNrIGludGVyZmFjZSBkb2Vzbid0IGNvbnRhaW4gcHJpdmF0ZSBtZW1iZXJzIHZhcmlhYmxlc1xuICAgIC8vIGxpa2UgYGVudHJpZXNOYW1lTWFwYCwgYnV0IGluIGZhY3QgdGhlIGZ1bmN0aW9uIGV4cGVjdHMgYE1pZGRsZXdhcmVTdGFja2BcbiAgICAvLyBjbGFzcyBpbnN0YW5jZS4gU28gaGVyZSB3ZSBjYXN0IGl0LlxuICAgIGNvbnN0IF9mcm9tID0gZnJvbSBhcyBNaWRkbGV3YXJlU3RhY2s8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPjtcbiAgICBmb3IgKGNvbnN0IG5hbWUgaW4gX2Zyb20uZW50cmllc05hbWVNYXApIHtcbiAgICAgIGlmIChjbG9uZS5lbnRyaWVzTmFtZU1hcFtuYW1lXSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZWQgbWlkZGxld2FyZSBuYW1lICcke25hbWV9J2ApO1xuICAgICAgfVxuICAgICAgY2xvbmUuZW50cmllc05hbWVNYXBbbmFtZV0gPSBfZnJvbS5lbnRyaWVzTmFtZU1hcFtuYW1lXTtcbiAgICB9XG4gICAgY2xvbmUuYWJzb2x1dGVFbnRyaWVzLnB1c2goXG4gICAgICAuLi4odGhpcy5hYnNvbHV0ZUVudHJpZXMgYXMgYW55KSxcbiAgICAgIC4uLl9mcm9tLmFic29sdXRlRW50cmllc1xuICAgICk7XG4gICAgY2xvbmUucmVsYXRpdmVFbnRyaWVzLnB1c2goXG4gICAgICAuLi4odGhpcy5yZWxhdGl2ZUVudHJpZXMgYXMgYW55KSxcbiAgICAgIC4uLl9mcm9tLnJlbGF0aXZlRW50cmllc1xuICAgICk7XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG5cbiAgcmVtb3ZlKHRvUmVtb3ZlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0PiB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgdG9SZW1vdmUgPT09IFwic3RyaW5nXCIpIHJldHVybiB0aGlzLnJlbW92ZUJ5TmFtZSh0b1JlbW92ZSk7XG4gICAgZWxzZSByZXR1cm4gdGhpcy5yZW1vdmVCeVJlZmVyZW5jZSh0b1JlbW92ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUJ5TmFtZSh0b1JlbW92ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaSA9IHRoaXMuYWJzb2x1dGVFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuYWJzb2x1dGVFbnRyaWVzW2ldLm5hbWUgJiZcbiAgICAgICAgdGhpcy5hYnNvbHV0ZUVudHJpZXNbaV0ubmFtZSA9PT0gdG9SZW1vdmVcbiAgICAgICkge1xuICAgICAgICB0aGlzLmFic29sdXRlRW50cmllcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmVudHJpZXNOYW1lTWFwW3RvUmVtb3ZlXTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSB0aGlzLnJlbGF0aXZlRW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnJlbGF0aXZlRW50cmllc1tpXS5uYW1lICYmXG4gICAgICAgIHRoaXMucmVsYXRpdmVFbnRyaWVzW2ldLm5hbWUgPT09IHRvUmVtb3ZlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5yZWxhdGl2ZUVudHJpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICBkZWxldGUgdGhpcy5lbnRyaWVzTmFtZU1hcFt0b1JlbW92ZV07XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUJ5UmVmZXJlbmNlKHRvUmVtb3ZlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGkgPSB0aGlzLmFic29sdXRlRW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKHRoaXMuYWJzb2x1dGVFbnRyaWVzW2ldLm1pZGRsZXdhcmUgPT09IHRvUmVtb3ZlKSB7XG4gICAgICAgIGNvbnN0IHsgbmFtZSB9ID0gdGhpcy5hYnNvbHV0ZUVudHJpZXNbaV07XG4gICAgICAgIGlmIChuYW1lKSBkZWxldGUgdGhpcy5lbnRyaWVzTmFtZU1hcFtuYW1lXTtcbiAgICAgICAgdGhpcy5hYnNvbHV0ZUVudHJpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IHRoaXMucmVsYXRpdmVFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAodGhpcy5yZWxhdGl2ZUVudHJpZXNbaV0ubWlkZGxld2FyZSA9PT0gdG9SZW1vdmUpIHtcbiAgICAgICAgY29uc3QgeyBuYW1lIH0gPSB0aGlzLnJlbGF0aXZlRW50cmllc1tpXTtcbiAgICAgICAgaWYgKG5hbWUpIGRlbGV0ZSB0aGlzLmVudHJpZXNOYW1lTWFwW25hbWVdO1xuICAgICAgICB0aGlzLnJlbGF0aXZlRW50cmllcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZW1vdmVCeVRhZyh0b1JlbW92ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IHJlbW92ZWQgPSBmYWxzZTtcbiAgICBmb3IgKGxldCBpID0gdGhpcy5hYnNvbHV0ZUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IHsgdGFncywgbmFtZSB9ID0gdGhpcy5hYnNvbHV0ZUVudHJpZXNbaV07XG4gICAgICBpZiAodGFncyAmJiB0YWdzLmluZGV4T2YodG9SZW1vdmUpID4gLTEpIHtcbiAgICAgICAgdGhpcy5hYnNvbHV0ZUVudHJpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICBpZiAobmFtZSkgZGVsZXRlIHRoaXMuZW50cmllc05hbWVNYXBbbmFtZV07XG4gICAgICAgIHJlbW92ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGxldCBpID0gdGhpcy5yZWxhdGl2ZUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IHsgdGFncywgbmFtZSB9ID0gdGhpcy5yZWxhdGl2ZUVudHJpZXNbaV07XG4gICAgICBpZiAodGFncyAmJiB0YWdzLmluZGV4T2YodG9SZW1vdmUpID4gLTEpIHtcbiAgICAgICAgdGhpcy5yZWxhdGl2ZUVudHJpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICBpZiAobmFtZSkgZGVsZXRlIHRoaXMuZW50cmllc05hbWVNYXBbbmFtZV07XG4gICAgICAgIHJlbW92ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVtb3ZlZDtcbiAgfVxuXG4gIHVzZShwbHVnaW46IFBsdWdnYWJsZTxJbnB1dCwgT3V0cHV0Pikge1xuICAgIHBsdWdpbi5hcHBseVRvU3RhY2sodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSByZWxhdGl2ZSBtaWRkbGV3YXJlIGVudHJpZXMgdG8gbXVsdGlwbGUgZG91YmxlIGxpbmtlZCBsaXN0c1xuICAgKiBkZXBpY3RpbmcgdGhlIHJlbGF0aXZlIGxvY2F0aW9uIG9mIG1pZGRsZXdhcmUuIE9ubHkgbWlkZGxld2FyZSB0aGF0IGhhdmVcbiAgICogZGlyZWN0IG9yIHRyYW5zaXRpdmUgcmVsYXRpb24gd2lsbCBmb3JtIGEgbGlua2VkIGxpc3QuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gbm9ybWFsaXplcyByZWxhdGl2ZSBtaWRkbGV3YXJlIGludG8gMiBjYXRlZ29yaWVzIG9mIGxpbmtlZFxuICAgKiBsaXN0cy4gKDEpIGxpbmtlZCBsaXN0IHRoYXQgaGF2ZSBhYnNvbHV0ZS1sb2NhdGVkIG1pZGRsZXdhcmUgb24gb25lIGVuZC5cbiAgICogVGhlc2UgbWlkZGxld2FyZSB3aWxsIGJlIHJlc29sdmVkIGFjY29yZGluZ2x5IGJlZm9yZSBvciBhZnRlciB0aGUgYWJzb2x1dGUtXG4gICAqIGxvY2F0ZWQgbWlkZGxld2FyZS4gKDIpIExpbmtlZCBsaXN0IHRoYXQgaGF2ZSBubyBhYnNvbHV0ZS1sb2NhdGVkIG1pZGRsZXdhcmVcbiAgICogb24gYW55IGVuZC4gVGhleSB3aWxsIGJlIHJlc29sdmVkIHRvIGNvcnJlc3BvbmRpbmcgc3RlcCB3aXRoIG5vcm1hbCBwcmlvcml0eVxuICAgKlxuICAgKiBUaGUgMiB0eXBlcyBvZiBsaW5rZWQgbGlzdCB3aWxsIHJldHVybiBhcyBhIHR1cGxlXG4gICAqL1xuICBwcml2YXRlIG5vcm1hbGl6ZVJlbGF0aXZlRW50cmllcygpOiBOb3JtYWxpemluZ0VudHJ5UmVzdWx0PElucHV0LCBPdXRwdXQ+IHtcbiAgICBjb25zdCBhYnNvbHV0ZU1pZGRsZXdhcmVOYW1lc01hcCA9IHRoaXMuYWJzb2x1dGVFbnRyaWVzXG4gICAgICAuZmlsdGVyKGVudHJ5ID0+IGVudHJ5Lm5hbWUpXG4gICAgICAucmVkdWNlKChhY2N1bXVsYXRvciwgZW50cnkpID0+IHtcbiAgICAgICAgYWNjdW11bGF0b3JbZW50cnkubmFtZSFdID0gZW50cnk7XG4gICAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICAgIH0sIHt9IGFzIE5hbWVkTWlkZGxld2FyZUVudHJpZXNNYXA8SW5wdXQsIE91dHB1dD4pO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB0aGlzLnJlbGF0aXZlRW50cmllcy5tYXAoXG4gICAgICBlbnRyeSA9PlxuICAgICAgICAoe1xuICAgICAgICAgIC4uLmVudHJ5LFxuICAgICAgICAgIHByaW9yaXR5OiBudWxsLFxuICAgICAgICAgIG5leHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICBwcmV2OiB1bmRlZmluZWRcbiAgICAgICAgfSBhcyBOb3JtYWxpemVkUmVsYXRpdmVFbnRyeTxJbnB1dCwgT3V0cHV0PilcbiAgICApO1xuICAgIGNvbnN0IHJlbGF0aXZlTWlkZGxld2FyZU5hbWVzTWFwID0gbm9ybWFsaXplZFxuICAgICAgLmZpbHRlcihlbnRyeSA9PiBlbnRyeS5uYW1lKVxuICAgICAgLnJlZHVjZSgoYWNjdW11bGF0b3IsIGVudHJ5KSA9PiB7XG4gICAgICAgIGFjY3VtdWxhdG9yW2VudHJ5Lm5hbWUhXSA9IGVudHJ5O1xuICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgICB9LCB7fSBhcyBOYW1lZFJlbGF0aXZlRW50cmllc01hcDxJbnB1dCwgT3V0cHV0Pik7XG5cbiAgICBjb25zdCBhbmNob3JzOiBSZWxhdGl2ZU1pZGRsZXdhcmVBbmNob3I8SW5wdXQsIE91dHB1dD4gPSB7fTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucmVsYXRpdmVFbnRyaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB7IHByZXYsIG5leHQgfSA9IHRoaXMucmVsYXRpdmVFbnRyaWVzW2ldO1xuICAgICAgY29uc3QgcmVzb2x2ZWRDdXJyID0gbm9ybWFsaXplZFtpXTtcbiAgICAgIC8vZWl0aGVyIHByZXYgb3IgbmV4dCBpcyBzZXRcbiAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBhYnNvbHV0ZU1pZGRsZXdhcmVOYW1lc01hcFtwcmV2XSAmJlxuICAgICAgICAgIGFic29sdXRlTWlkZGxld2FyZU5hbWVzTWFwW3ByZXZdLnN0ZXAgPT09IHJlc29sdmVkQ3Vyci5zdGVwXG4gICAgICAgICkge1xuICAgICAgICAgIGlmICghYW5jaG9yc1twcmV2XSkgYW5jaG9yc1twcmV2XSA9IHt9O1xuICAgICAgICAgIHJlc29sdmVkQ3Vyci5uZXh0ID0gYW5jaG9yc1twcmV2XS5uZXh0O1xuICAgICAgICAgIGlmIChhbmNob3JzW3ByZXZdLm5leHQpIGFuY2hvcnNbcHJldl0ubmV4dCEucHJldiA9IHJlc29sdmVkQ3VycjtcbiAgICAgICAgICBhbmNob3JzW3ByZXZdLm5leHQgPSByZXNvbHZlZEN1cnI7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgcmVsYXRpdmVNaWRkbGV3YXJlTmFtZXNNYXBbcHJldl0gJiZcbiAgICAgICAgICByZWxhdGl2ZU1pZGRsZXdhcmVOYW1lc01hcFtwcmV2XS5zdGVwID09PSByZXNvbHZlZEN1cnIuc3RlcFxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCByZXNvbHZlZFByZXYgPSByZWxhdGl2ZU1pZGRsZXdhcmVOYW1lc01hcFtwcmV2XTtcbiAgICAgICAgICBpZiAocmVzb2x2ZWRQcmV2Lm5leHQgPT09IHJlc29sdmVkQ3VycikgY29udGludWU7XG4gICAgICAgICAgcmVzb2x2ZWRDdXJyLm5leHQgPSByZXNvbHZlZFByZXYubmV4dDtcbiAgICAgICAgICByZXNvbHZlZFByZXYubmV4dCA9IHJlc29sdmVkQ3VycjtcbiAgICAgICAgICBpZiAocmVzb2x2ZWRDdXJyLm5leHQpIHJlc29sdmVkQ3Vyci5uZXh0LnByZXYgPSByZXNvbHZlZEN1cnI7XG4gICAgICAgICAgcmVzb2x2ZWRDdXJyLnByZXYgPSByZXNvbHZlZFByZXY7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobmV4dCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgYWJzb2x1dGVNaWRkbGV3YXJlTmFtZXNNYXBbbmV4dF0gJiZcbiAgICAgICAgICBhYnNvbHV0ZU1pZGRsZXdhcmVOYW1lc01hcFtuZXh0XS5zdGVwID09PSByZXNvbHZlZEN1cnIuc3RlcFxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoIWFuY2hvcnNbbmV4dF0pIGFuY2hvcnNbbmV4dF0gPSB7fTtcbiAgICAgICAgICByZXNvbHZlZEN1cnIucHJldiA9IGFuY2hvcnNbbmV4dF0ucHJldjtcbiAgICAgICAgICBpZiAoYW5jaG9yc1tuZXh0XS5wcmV2KSBhbmNob3JzW25leHRdLnByZXYhLm5leHQgPSByZXNvbHZlZEN1cnI7XG4gICAgICAgICAgYW5jaG9yc1tuZXh0XS5wcmV2ID0gcmVzb2x2ZWRDdXJyO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIHJlbGF0aXZlTWlkZGxld2FyZU5hbWVzTWFwW25leHRdICYmXG4gICAgICAgICAgcmVsYXRpdmVNaWRkbGV3YXJlTmFtZXNNYXBbbmV4dF0uc3RlcCA9PT0gcmVzb2x2ZWRDdXJyLnN0ZXBcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZWROZXh0ID0gcmVsYXRpdmVNaWRkbGV3YXJlTmFtZXNNYXBbbmV4dF07XG4gICAgICAgICAgaWYgKHJlc29sdmVkTmV4dC5wcmV2ID09PSByZXNvbHZlZEN1cnIpIGNvbnRpbnVlO1xuICAgICAgICAgIHJlc29sdmVkQ3Vyci5wcmV2ID0gcmVzb2x2ZWROZXh0LnByZXY7XG4gICAgICAgICAgcmVzb2x2ZWROZXh0LnByZXYgPSByZXNvbHZlZEN1cnI7XG4gICAgICAgICAgaWYgKHJlc29sdmVkQ3Vyci5wcmV2KSByZXNvbHZlZEN1cnIucHJldi5uZXh0ID0gcmVzb2x2ZWRDdXJyO1xuICAgICAgICAgIHJlc29sdmVkQ3Vyci5uZXh0ID0gcmVzb2x2ZWROZXh0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGdldCB0aGUgaGVhZCBvZiB0aGUgcmVsYXRpdmUgbWlkZGxld2FyZSBsaW5rZWQgbGlzdCB0aGF0IGhhdmVcbiAgICAvLyBubyB0cmFuc2l0aXZlIHJlbGF0aW9uIHRvIGFic29sdXRlIG1pZGRsZXdhcmUuXG4gICAgY29uc3Qgb3JwaGFuZWRSZWxhdGl2ZUVudHJpZXM6IEFycmF5PE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5PFxuICAgICAgSW5wdXQsXG4gICAgICBPdXRwdXRcbiAgICA+PiA9IFtdO1xuICAgIGNvbnN0IHZpc2l0ZWQ6IFdlYWtTZXQ8Tm9ybWFsaXplZFJlbGF0aXZlRW50cnk8XG4gICAgICBJbnB1dCxcbiAgICAgIE91dHB1dFxuICAgID4+ID0gbmV3IFdlYWtTZXQoKTtcbiAgICBmb3IgKGNvbnN0IGFuY2hvck5hbWUgb2YgT2JqZWN0LmtleXMoYW5jaG9ycykpIHtcbiAgICAgIGxldCB7IHByZXYsIG5leHQgfSA9IGFuY2hvcnNbYW5jaG9yTmFtZV07XG4gICAgICB3aGlsZSAocHJldikge1xuICAgICAgICB2aXNpdGVkLmFkZChwcmV2KTtcbiAgICAgICAgcHJldiA9IHByZXYucHJldjtcbiAgICAgIH1cbiAgICAgIHdoaWxlIChuZXh0KSB7XG4gICAgICAgIHZpc2l0ZWQuYWRkKG5leHQpO1xuICAgICAgICBuZXh0ID0gbmV4dC5uZXh0O1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vcm1hbGl6ZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBlbnRyeTogTm9ybWFsaXplZFJlbGF0aXZlRW50cnk8SW5wdXQsIE91dHB1dD4gfCB1bmRlZmluZWQgPVxuICAgICAgICBub3JtYWxpemVkW2ldO1xuICAgICAgaWYgKHZpc2l0ZWQuaGFzKGVudHJ5KSkgY29udGludWU7XG4gICAgICBpZiAoIWVudHJ5LnByZXYpIG9ycGhhbmVkUmVsYXRpdmVFbnRyaWVzLnB1c2goZW50cnkpO1xuICAgICAgd2hpbGUgKGVudHJ5ICYmICF2aXNpdGVkLmhhcyhlbnRyeSkpIHtcbiAgICAgICAgdmlzaXRlZC5hZGQoZW50cnkpO1xuICAgICAgICBlbnRyeSA9IGVudHJ5Lm5leHQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbb3JwaGFuZWRSZWxhdGl2ZUVudHJpZXMsIGFuY2hvcnNdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIGZpbmFsIGxpc3Qgb2YgbWlkZGxld2FyZSBpbiB0aGUgb3JkZXIgb2YgYmVpbmcgZXhlY3V0ZWQgaW4gdGhlIHJlc29sdmVkIGhhbmRsZXIuXG4gICAqIElmIHJlbGF0aXZlIGVudHJpZXMgbGlzdCBpcyBub3QgZW1wdHksIHRob3NlIGVudHJpZXMgd2lsbCBiZSBhZGRlZCB0byBmaW5hbCBtaWRkbGV3YXJlXG4gICAqIGxpc3Qgd2l0aCBydWxlcyBiZWxvdzpcbiAgICogMS4gaWYgYHRvTWlkZGxld2FyZWAgZXhpc3RzIGluIHRoZSBzcGVjaWZpYyBgc3RlcGAsIHRoZSBtaWRkbGV3YXJlIHdpbGwgYmUgaW5zZXJ0ZWQgYmVmb3JlXG4gICAqICAgICBvciBhZnRlciB0aGUgc3BlY2lmaWVkIGB0b01pZGRsZXdhcmVgXG4gICAqIDIuIGlmIGB0b01pZGRsZXdhcmVgIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIHNwZWNpZmljIGBzdGVwYCwgdGhlIG1pZGRsZXdhcmUgd2lsbCBiZSBhcHBlbmRlZFxuICAgKiAgICAgdG8gc3BlY2lmaWMgYHN0ZXBgIHdpdGggcHJpb3JpdHkgb2YgYG5vcm1hbGBcbiAgICovXG4gIHByaXZhdGUgZ2V0TWlkZGxld2FyZUxpc3QoKTogQXJyYXk8TWlkZGxld2FyZVR5cGU8SW5wdXQsIE91dHB1dD4+IHtcbiAgICBsZXQgbWlkZGxld2FyZUxpc3Q6IEFycmF5PE1pZGRsZXdhcmVUeXBlPElucHV0LCBPdXRwdXQ+PiA9IFtdO1xuICAgIGNvbnN0IFtvcnBoYW5lZFJlbGF0aXZlRW50cmllcywgYW5jaG9yc10gPSB0aGlzLm5vcm1hbGl6ZVJlbGF0aXZlRW50cmllcygpO1xuICAgIGxldCBlbnRyeUxpc3QgPSBbLi4udGhpcy5hYnNvbHV0ZUVudHJpZXMsIC4uLm9ycGhhbmVkUmVsYXRpdmVFbnRyaWVzXTtcbiAgICBlbnRyeUxpc3QgPSB0aGlzLnNvcnQoZW50cnlMaXN0KTtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJ5TGlzdCkge1xuICAgICAgY29uc3QgZGVmYXVsdEFuY2hvclZhbHVlID0geyBwcmV2OiB1bmRlZmluZWQsIG5leHQ6IHVuZGVmaW5lZCB9O1xuICAgICAgY29uc3QgeyBwcmV2LCBuZXh0IH0gPSBlbnRyeS5uYW1lXG4gICAgICAgID8gYW5jaG9yc1tlbnRyeS5uYW1lXSB8fCBkZWZhdWx0QW5jaG9yVmFsdWVcbiAgICAgICAgOiBkZWZhdWx0QW5jaG9yVmFsdWU7XG4gICAgICBsZXQgcmVsYXRpdmVFbnRyeSA9IHByZXY7XG4gICAgICAvL3JldmVyc2UgcmVsYXRpdmUgZW50cnkgbGlua2VkIGxpc3QgYW5kIGFkZCB0byBvcmRlcmVkIGhhbmRsZXIgbGlzdFxuICAgICAgd2hpbGUgKHJlbGF0aXZlRW50cnk/LnByZXYpIHtcbiAgICAgICAgcmVsYXRpdmVFbnRyeSA9IHJlbGF0aXZlRW50cnkucHJldjtcbiAgICAgIH1cbiAgICAgIHdoaWxlIChyZWxhdGl2ZUVudHJ5KSB7XG4gICAgICAgIG1pZGRsZXdhcmVMaXN0LnB1c2gocmVsYXRpdmVFbnRyeS5taWRkbGV3YXJlKTtcbiAgICAgICAgcmVsYXRpdmVFbnRyeSA9IHJlbGF0aXZlRW50cnkubmV4dDtcbiAgICAgIH1cbiAgICAgIG1pZGRsZXdhcmVMaXN0LnB1c2goZW50cnkubWlkZGxld2FyZSk7XG4gICAgICBsZXQgb3JwaGFuZWRFbnRyeSA9IGVudHJ5IGFzIGFueTtcbiAgICAgIHdoaWxlICgob3JwaGFuZWRFbnRyeSBhcyBhbnkpLm5leHQpIHtcbiAgICAgICAgbWlkZGxld2FyZUxpc3QucHVzaCgob3JwaGFuZWRFbnRyeSBhcyBhbnkpLm5leHQubWlkZGxld2FyZSk7XG4gICAgICAgIG9ycGhhbmVkRW50cnkgPSAob3JwaGFuZWRFbnRyeSBhcyBhbnkpLm5leHQ7XG4gICAgICB9XG4gICAgICByZWxhdGl2ZUVudHJ5ID0gbmV4dDtcbiAgICAgIHdoaWxlIChyZWxhdGl2ZUVudHJ5KSB7XG4gICAgICAgIG1pZGRsZXdhcmVMaXN0LnB1c2gocmVsYXRpdmVFbnRyeS5taWRkbGV3YXJlKTtcbiAgICAgICAgcmVsYXRpdmVFbnRyeSA9IHJlbGF0aXZlRW50cnkubmV4dDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1pZGRsZXdhcmVMaXN0LnJldmVyc2UoKTtcbiAgfVxuXG4gIHJlc29sdmU8SW5wdXRUeXBlIGV4dGVuZHMgSW5wdXQsIE91dHB1dFR5cGUgZXh0ZW5kcyBPdXRwdXQ+KFxuICAgIGhhbmRsZXI6IERlc2VyaWFsaXplSGFuZGxlcjxJbnB1dFR5cGUsIE91dHB1dFR5cGU+LFxuICAgIGNvbnRleHQ6IEhhbmRsZXJFeGVjdXRpb25Db250ZXh0XG4gICk6IEhhbmRsZXI8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPiB7XG4gICAgZm9yIChjb25zdCBtaWRkbGV3YXJlIG9mIHRoaXMuZ2V0TWlkZGxld2FyZUxpc3QoKSkge1xuICAgICAgaGFuZGxlciA9IG1pZGRsZXdhcmUoXG4gICAgICAgIGhhbmRsZXIgYXMgSGFuZGxlcjxJbnB1dCwgT3V0cHV0VHlwZT4sXG4gICAgICAgIGNvbnRleHRcbiAgICAgICkgYXMgYW55O1xuICAgIH1cblxuICAgIHJldHVybiBoYW5kbGVyIGFzIEhhbmRsZXI8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPjtcbiAgfVxufVxuXG5jb25zdCBzdGVwV2VpZ2h0czogeyBba2V5IGluIFN0ZXBdOiBudW1iZXIgfSA9IHtcbiAgaW5pdGlhbGl6ZTogNSxcbiAgc2VyaWFsaXplOiA0LFxuICBidWlsZDogMyxcbiAgZmluYWxpemVSZXF1ZXN0OiAyLFxuICBkZXNlcmlhbGl6ZTogMVxufTtcblxuY29uc3QgcHJpb3JpdHlXZWlnaHRzOiB7IFtrZXkgaW4gUHJpb3JpdHldOiBudW1iZXIgfSA9IHtcbiAgaGlnaDogMyxcbiAgbm9ybWFsOiAyLFxuICBsb3c6IDFcbn07XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlkZGxld2FyZVN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL01pZGRsZXdhcmVTdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBb0NBO0lBQUE7UUFDbUIsb0JBQWUsR0FBMEMsRUFBRSxDQUFDO1FBQzVELG9CQUFlLEdBQWtELEVBQUUsQ0FBQztRQUM3RSxtQkFBYyxHQUVsQixFQUFFLENBQUM7SUFpVlQsQ0FBQztJQWxVQyw2QkFBRyxHQUFILFVBQUksVUFBeUMsRUFBRSxPQUErQztRQUEvQyx3QkFBQSxFQUFBLFlBQStDO1FBQ3BGLElBQUEsSUFBSSxHQUFxRCxPQUFPLEtBQTVELEVBQUUsS0FBbUQsT0FBTyxLQUF2QyxFQUFuQixJQUFJLG1CQUFHLFlBQVksS0FBQSxFQUFFLElBQUksR0FBMEIsT0FBTyxLQUFqQyxFQUFFLEtBQXdCLE9BQU8sU0FBWixFQUFuQixRQUFRLG1CQUFHLFFBQVEsS0FBQSxDQUFhO1FBQ3pFLElBQU0sS0FBSyxHQUFtQztZQUM1QyxJQUFJLE1BQUE7WUFDSixJQUFJLE1BQUE7WUFDSixJQUFJLE1BQUE7WUFDSixRQUFRLFVBQUE7WUFDUixVQUFVLFlBQUE7U0FDWCxDQUFDO1FBQ0YsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNuRSxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUErQixJQUFJLE1BQUcsQ0FBQyxDQUFDO2FBQ3pEO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBMkJELHVDQUFhLEdBQWIsVUFDRSxVQUF5QyxFQUN6QyxPQUF5RDtRQUVqRCxJQUFBLEtB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QUFrQztJQUNyRCxJQUFJLEVBQUUsQ0FBQztJQUNQLE1BQU0sRUFBRSxDQUFDO0lBQ1QsR0FBRyxFQUFFLENBQUM7Q0FDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzb2x1dGVMb2NhdGlvbixcbiAgQnVpbGRIYW5kbGVyT3B0aW9ucyxcbiAgQnVpbGRNaWRkbGV3YXJlLFxuICBEZXNlcmlhbGl6ZUhhbmRsZXIsXG4gIERlc2VyaWFsaXplSGFuZGxlck9wdGlvbnMsXG4gIERlc2VyaWFsaXplTWlkZGxld2FyZSxcbiAgRmluYWxpemVSZXF1ZXN0SGFuZGxlck9wdGlvbnMsXG4gIEZpbmFsaXplUmVxdWVzdE1pZGRsZXdhcmUsXG4gIEhhbmRsZXIsXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBIYW5kbGVyT3B0aW9ucyxcbiAgSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zLFxuICBJbml0aWFsaXplTWlkZGxld2FyZSxcbiAgTWlkZGxld2FyZVN0YWNrIGFzIElNaWRkbGV3YXJlU3RhY2ssXG4gIE1pZGRsZXdhcmVUeXBlLFxuICBQbHVnZ2FibGUsXG4gIFByaW9yaXR5LFxuICBSZWxhdGl2ZUxvY2F0aW9uLFxuICBTZXJpYWxpemVIYW5kbGVyT3B0aW9ucyxcbiAgU2VyaWFsaXplTWlkZGxld2FyZSxcbiAgU3RlcCxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmltcG9ydCB7XG4gIE1pZGRsZXdhcmVFbnRyeSxcbiAgTmFtZWRNaWRkbGV3YXJlRW50cmllc01hcCxcbiAgTmFtZWRSZWxhdGl2ZUVudHJpZXNNYXAsXG4gIE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5LFxuICBOb3JtYWxpemluZ0VudHJ5UmVzdWx0LFxuICBSZWxhdGl2ZU1pZGRsZXdhcmVBbmNob3IsXG4gIFJlbGF0aXZlTWlkZGxld2FyZUVudHJ5LFxufSBmcm9tIFwiLi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1pZGRsZXdhcmVTdGFjazxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0PiBleHRlbmRzIElNaWRkbGV3YXJlU3RhY2s8SW5wdXQsIE91dHB1dD4ge31cblxuZXhwb3J0IGNsYXNzIE1pZGRsZXdhcmVTdGFjazxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0PiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWJzb2x1dGVFbnRyaWVzOiBBcnJheTxNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4+ID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVsYXRpdmVFbnRyaWVzOiBBcnJheTxSZWxhdGl2ZU1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0Pj4gPSBbXTtcbiAgcHJpdmF0ZSBlbnRyaWVzTmFtZU1hcDoge1xuICAgIFttaWRkbGV3YXJlTmFtZTogc3RyaW5nXTogTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+IHwgUmVsYXRpdmVNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD47XG4gIH0gPSB7fTtcblxuICBhZGQobWlkZGxld2FyZTogSW5pdGlhbGl6ZU1pZGRsZXdhcmU8SW5wdXQsIE91dHB1dD4sIG9wdGlvbnM/OiBJbml0aWFsaXplSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uKTogdm9pZDtcblxuICBhZGQobWlkZGxld2FyZTogU2VyaWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0Piwgb3B0aW9uczogU2VyaWFsaXplSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uKTogdm9pZDtcblxuICBhZGQobWlkZGxld2FyZTogQnVpbGRNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+LCBvcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvbik6IHZvaWQ7XG5cbiAgYWRkKFxuICAgIG1pZGRsZXdhcmU6IEZpbmFsaXplUmVxdWVzdE1pZGRsZXdhcmU8SW5wdXQsIE91dHB1dD4sXG4gICAgb3B0aW9uczogRmluYWxpemVSZXF1ZXN0SGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uXG4gICk6IHZvaWQ7XG5cbiAgYWRkKG1pZGRsZXdhcmU6IERlc2VyaWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0Piwgb3B0aW9uczogRGVzZXJpYWxpemVIYW5kbGVyT3B0aW9ucyAmIEFic29sdXRlTG9jYXRpb24pOiB2b2lkO1xuXG4gIGFkZChtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Piwgb3B0aW9uczogSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uID0ge30pOiB2b2lkIHtcbiAgICBjb25zdCB7IG5hbWUsIHN0ZXAgPSBcImluaXRpYWxpemVcIiwgdGFncywgcHJpb3JpdHkgPSBcIm5vcm1hbFwiIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGVudHJ5OiBNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4gPSB7XG4gICAgICBuYW1lLFxuICAgICAgc3RlcCxcbiAgICAgIHRhZ3MsXG4gICAgICBwcmlvcml0eSxcbiAgICAgIG1pZGRsZXdhcmUsXG4gICAgfTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmVudHJpZXNOYW1lTWFwLCBuYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZWQgbWlkZGxld2FyZSBuYW1lICcke25hbWV9J2ApO1xuICAgICAgfVxuICAgICAgdGhpcy5lbnRyaWVzTmFtZU1hcFtuYW1lXSA9IGVudHJ5O1xuICAgIH1cbiAgICB0aGlzLmFic29sdXRlRW50cmllcy5wdXNoKGVudHJ5KTtcbiAgfVxuXG4gIGFkZFJlbGF0aXZlVG8oXG4gICAgbWlkZGxld2FyZTogSW5pdGlhbGl6ZU1pZGRsZXdhcmU8SW5wdXQsIE91dHB1dD4sXG4gICAgb3B0aW9uczogSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zICYgUmVsYXRpdmVMb2NhdGlvbjxJbnB1dCwgT3V0cHV0PlxuICApOiB2b2lkO1xuXG4gIGFkZFJlbGF0aXZlVG8oXG4gICAgbWlkZGxld2FyZTogU2VyaWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PixcbiAgICBvcHRpb25zOiBTZXJpYWxpemVIYW5kbGVyT3B0aW9ucyAmIFJlbGF0aXZlTG9jYXRpb248SW5wdXQsIE91dHB1dD5cbiAgKTogdm9pZDtcblxuICBhZGRSZWxhdGl2ZVRvKFxuICAgIG1pZGRsZXdhcmU6IEJ1aWxkTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PixcbiAgICBvcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zICYgUmVsYXRpdmVMb2NhdGlvbjxJbnB1dCwgT3V0cHV0PlxuICApOiB2b2lkO1xuXG4gIGFkZFJlbGF0aXZlVG8oXG4gICAgbWlkZGxld2FyZTogRmluYWxpemVSZXF1ZXN0TWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PixcbiAgICBvcHRpb25zOiBGaW5hbGl6ZVJlcXVlc3RIYW5kbGVyT3B0aW9ucyAmIFJlbGF0aXZlTG9jYXRpb248SW5wdXQsIE91dHB1dD5cbiAgKTogdm9pZDtcblxuICBhZGRSZWxhdGl2ZVRvKFxuICAgIG1pZGRsZXdhcmU6IERlc2VyaWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PixcbiAgICBvcHRpb25zOiBEZXNlcmlhbGl6ZUhhbmRsZXJPcHRpb25zICYgUmVsYXRpdmVMb2NhdGlvbjxJbnB1dCwgT3V0cHV0PlxuICApOiB2b2lkO1xuXG4gIGFkZFJlbGF0aXZlVG8oXG4gICAgbWlkZGxld2FyZTogTWlkZGxld2FyZVR5cGU8SW5wdXQsIE91dHB1dD4sXG4gICAgb3B0aW9uczogSGFuZGxlck9wdGlvbnMgJiBSZWxhdGl2ZUxvY2F0aW9uPElucHV0LCBPdXRwdXQ+XG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHsgc3RlcCA9IFwiaW5pdGlhbGl6ZVwiLCBuYW1lLCB0YWdzLCByZWxhdGlvbiwgdG9NaWRkbGV3YXJlIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGVudHJ5OiBSZWxhdGl2ZU1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PiA9IHtcbiAgICAgIG1pZGRsZXdhcmUsXG4gICAgICBzdGVwLFxuICAgICAgbmFtZSxcbiAgICAgIHRhZ3MsXG4gICAgICBuZXh0OiByZWxhdGlvbiA9PT0gXCJiZWZvcmVcIiA/IHRvTWlkZGxld2FyZSA6IHVuZGVmaW5lZCxcbiAgICAgIHByZXY6IHJlbGF0aW9uID09PSBcImFmdGVyXCIgPyB0b01pZGRsZXdhcmUgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmVudHJpZXNOYW1lTWFwLCBuYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZWQgbWlkZGxld2FyZSBuYW1lICcke25hbWV9J2ApO1xuICAgICAgfVxuICAgICAgdGhpcy5lbnRyaWVzTmFtZU1hcFtuYW1lXSA9IGVudHJ5O1xuICAgIH1cbiAgICB0aGlzLnJlbGF0aXZlRW50cmllcy5wdXNoKGVudHJ5KTtcbiAgfVxuXG4gIHByaXZhdGUgc29ydChcbiAgICBlbnRyaWVzOiBBcnJheTxNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4gfCBOb3JtYWxpemVkUmVsYXRpdmVFbnRyeTxJbnB1dCwgT3V0cHV0Pj5cbiAgKTogQXJyYXk8TWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+IHwgTm9ybWFsaXplZFJlbGF0aXZlRW50cnk8SW5wdXQsIE91dHB1dD4+IHtcbiAgICAvL3JldmVyc2UgYmVmb3JlIHNvcnRpbmcgc28gdGhhdCBtaWRkbGV3YXJlIG9mIHNhbWUgc3RlcCB3aWxsIGV4ZWN1dGUgaW5cbiAgICAvL3RoZSBvcmRlciBvZiBiZWluZyBhZGRlZFxuICAgIHJldHVybiBlbnRyaWVzLnNvcnQoXG4gICAgICAoYSwgYikgPT5cbiAgICAgICAgc3RlcFdlaWdodHNbYi5zdGVwXSAtIHN0ZXBXZWlnaHRzW2Euc3RlcF0gfHxcbiAgICAgICAgcHJpb3JpdHlXZWlnaHRzW2IucHJpb3JpdHkgfHwgXCJub3JtYWxcIl0gLSBwcmlvcml0eVdlaWdodHNbYS5wcmlvcml0eSB8fCBcIm5vcm1hbFwiXVxuICAgICk7XG4gIH1cblxuICBjbG9uZSgpOiBJTWlkZGxld2FyZVN0YWNrPElucHV0LCBPdXRwdXQ+IHtcbiAgICBjb25zdCBjbG9uZSA9IG5ldyBNaWRkbGV3YXJlU3RhY2s8SW5wdXQsIE91dHB1dD4oKTtcbiAgICBjbG9uZS5hYnNvbHV0ZUVudHJpZXMucHVzaCguLi50aGlzLmFic29sdXRlRW50cmllcyk7XG4gICAgY2xvbmUucmVsYXRpdmVFbnRyaWVzLnB1c2goLi4udGhpcy5yZWxhdGl2ZUVudHJpZXMpO1xuICAgIGNsb25lLmVudHJpZXNOYW1lTWFwID0geyAuLi50aGlzLmVudHJpZXNOYW1lTWFwIH07XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG5cbiAgY29uY2F0PElucHV0VHlwZSBleHRlbmRzIElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgT3V0cHV0PihcbiAgICBmcm9tOiBJTWlkZGxld2FyZVN0YWNrPElucHV0VHlwZSwgT3V0cHV0VHlwZT5cbiAgKTogTWlkZGxld2FyZVN0YWNrPElucHV0VHlwZSwgT3V0cHV0VHlwZT4ge1xuICAgIGNvbnN0IGNsb25lID0gbmV3IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+KCk7XG4gICAgY2xvbmUuZW50cmllc05hbWVNYXAgPSB7IC4uLih0aGlzLmVudHJpZXNOYW1lTWFwIGFzIGFueSkgfTtcbiAgICAvLyBJTWlkZGxld2FyZVN0YWNrIGludGVyZmFjZSBkb2Vzbid0IGNvbnRhaW4gcHJpdmF0ZSBtZW1iZXJzIHZhcmlhYmxlc1xuICAgIC8vIGxpa2UgYGVudHJpZXNOYW1lTWFwYCwgYnV0IGluIGZhY3QgdGhlIGZ1bmN0aW9uIGV4cGVjdHMgYE1pZGRsZXdhcmVTdGFja2BcbiAgICAvLyBjbGFzcyBpbnN0YW5jZS4gU28gaGVyZSB3ZSBjYXN0IGl0LlxuICAgIGNvbnN0IF9mcm9tID0gZnJvbSBhcyBNaWRkbGV3YXJlU3RhY2s8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPjtcbiAgICBmb3IgKGNvbnN0IG5hbWUgaW4gX2Zyb20uZW50cmllc05hbWVNYXApIHtcbiAgICAgIGlmIChjbG9uZS5lbnRyaWVzTmFtZU1hcFtuYW1lXSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZWQgbWlkZGxld2FyZSBuYW1lICcke25hbWV9J2ApO1xuICAgICAgfVxuICAgICAgY2xvbmUuZW50cmllc05hbWVNYXBbbmFtZV0gPSBfZnJvbS5lbnRyaWVzTmFtZU1hcFtuYW1lXTtcbiAgICB9XG4gICAgY2xvbmUuYWJzb2x1dGVFbnRyaWVzLnB1c2goLi4uKHRoaXMuYWJzb2x1dGVFbnRyaWVzIGFzIGFueSksIC4uLl9mcm9tLmFic29sdXRlRW50cmllcyk7XG4gICAgY2xvbmUucmVsYXRpdmVFbnRyaWVzLnB1c2goLi4uKHRoaXMucmVsYXRpdmVFbnRyaWVzIGFzIGFueSksIC4uLl9mcm9tLnJlbGF0aXZlRW50cmllcyk7XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG5cbiAgcmVtb3ZlKHRvUmVtb3ZlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0PiB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgdG9SZW1vdmUgPT09IFwic3RyaW5nXCIpIHJldHVybiB0aGlzLnJlbW92ZUJ5TmFtZSh0b1JlbW92ZSk7XG4gICAgZWxzZSByZXR1cm4gdGhpcy5yZW1vdmVCeVJlZmVyZW5jZSh0b1JlbW92ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUJ5TmFtZSh0b1JlbW92ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaSA9IHRoaXMuYWJzb2x1dGVFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAodGhpcy5hYnNvbHV0ZUVudHJpZXNbaV0ubmFtZSAmJiB0aGlzLmFic29sdXRlRW50cmllc1tpXS5uYW1lID09PSB0b1JlbW92ZSkge1xuICAgICAgICB0aGlzLmFic29sdXRlRW50cmllcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmVudHJpZXNOYW1lTWFwW3RvUmVtb3ZlXTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSB0aGlzLnJlbGF0aXZlRW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKHRoaXMucmVsYXRpdmVFbnRyaWVzW2ldLm5hbWUgJiYgdGhpcy5yZWxhdGl2ZUVudHJpZXNbaV0ubmFtZSA9PT0gdG9SZW1vdmUpIHtcbiAgICAgICAgdGhpcy5yZWxhdGl2ZUVudHJpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICBkZWxldGUgdGhpcy5lbnRyaWVzTmFtZU1hcFt0b1JlbW92ZV07XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUJ5UmVmZXJlbmNlKHRvUmVtb3ZlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGkgPSB0aGlzLmFic29sdXRlRW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKHRoaXMuYWJzb2x1dGVFbnRyaWVzW2ldLm1pZGRsZXdhcmUgPT09IHRvUmVtb3ZlKSB7XG4gICAgICAgIGNvbnN0IHsgbmFtZSB9ID0gdGhpcy5hYnNvbHV0ZUVudHJpZXNbaV07XG4gICAgICAgIGlmIChuYW1lKSBkZWxldGUgdGhpcy5lbnRyaWVzTmFtZU1hcFtuYW1lXTtcbiAgICAgICAgdGhpcy5hYnNvbHV0ZUVudHJpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IHRoaXMucmVsYXRpdmVFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAodGhpcy5yZWxhdGl2ZUVudHJpZXNbaV0ubWlkZGxld2FyZSA9PT0gdG9SZW1vdmUpIHtcbiAgICAgICAgY29uc3QgeyBuYW1lIH0gPSB0aGlzLnJlbGF0aXZlRW50cmllc1tpXTtcbiAgICAgICAgaWYgKG5hbWUpIGRlbGV0ZSB0aGlzLmVudHJpZXNOYW1lTWFwW25hbWVdO1xuICAgICAgICB0aGlzLnJlbGF0aXZlRW50cmllcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZW1vdmVCeVRhZyh0b1JlbW92ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IHJlbW92ZWQgPSBmYWxzZTtcbiAgICBmb3IgKGxldCBpID0gdGhpcy5hYnNvbHV0ZUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IHsgdGFncywgbmFtZSB9ID0gdGhpcy5hYnNvbHV0ZUVudHJpZXNbaV07XG4gICAgICBpZiAodGFncyAmJiB0YWdzLmluZGV4T2YodG9SZW1vdmUpID4gLTEpIHtcbiAgICAgICAgdGhpcy5hYnNvbHV0ZUVudHJpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICBpZiAobmFtZSkgZGVsZXRlIHRoaXMuZW50cmllc05hbWVNYXBbbmFtZV07XG4gICAgICAgIHJlbW92ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGxldCBpID0gdGhpcy5yZWxhdGl2ZUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IHsgdGFncywgbmFtZSB9ID0gdGhpcy5yZWxhdGl2ZUVudHJpZXNbaV07XG4gICAgICBpZiAodGFncyAmJiB0YWdzLmluZGV4T2YodG9SZW1vdmUpID4gLTEpIHtcbiAgICAgICAgdGhpcy5yZWxhdGl2ZUVudHJpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICBpZiAobmFtZSkgZGVsZXRlIHRoaXMuZW50cmllc05hbWVNYXBbbmFtZV07XG4gICAgICAgIHJlbW92ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVtb3ZlZDtcbiAgfVxuXG4gIHVzZShwbHVnaW46IFBsdWdnYWJsZTxJbnB1dCwgT3V0cHV0Pikge1xuICAgIHBsdWdpbi5hcHBseVRvU3RhY2sodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSByZWxhdGl2ZSBtaWRkbGV3YXJlIGVudHJpZXMgdG8gbXVsdGlwbGUgZG91YmxlIGxpbmtlZCBsaXN0c1xuICAgKiBkZXBpY3RpbmcgdGhlIHJlbGF0aXZlIGxvY2F0aW9uIG9mIG1pZGRsZXdhcmUuIE9ubHkgbWlkZGxld2FyZSB0aGF0IGhhdmVcbiAgICogZGlyZWN0IG9yIHRyYW5zaXRpdmUgcmVsYXRpb24gd2lsbCBmb3JtIGEgbGlua2VkIGxpc3QuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gbm9ybWFsaXplcyByZWxhdGl2ZSBtaWRkbGV3YXJlIGludG8gMiBjYXRlZ29yaWVzIG9mIGxpbmtlZFxuICAgKiBsaXN0cy4gKDEpIGxpbmtlZCBsaXN0IHRoYXQgaGF2ZSBhYnNvbHV0ZS1sb2NhdGVkIG1pZGRsZXdhcmUgb24gb25lIGVuZC5cbiAgICogVGhlc2UgbWlkZGxld2FyZSB3aWxsIGJlIHJlc29sdmVkIGFjY29yZGluZ2x5IGJlZm9yZSBvciBhZnRlciB0aGUgYWJzb2x1dGUtXG4gICAqIGxvY2F0ZWQgbWlkZGxld2FyZS4gKDIpIExpbmtlZCBsaXN0IHRoYXQgaGF2ZSBubyBhYnNvbHV0ZS1sb2NhdGVkIG1pZGRsZXdhcmVcbiAgICogb24gYW55IGVuZC4gVGhleSB3aWxsIGJlIHJlc29sdmVkIHRvIGNvcnJlc3BvbmRpbmcgc3RlcCB3aXRoIG5vcm1hbCBwcmlvcml0eVxuICAgKlxuICAgKiBUaGUgMiB0eXBlcyBvZiBsaW5rZWQgbGlzdCB3aWxsIHJldHVybiBhcyBhIHR1cGxlXG4gICAqL1xuICBwcml2YXRlIG5vcm1hbGl6ZVJlbGF0aXZlRW50cmllcygpOiBOb3JtYWxpemluZ0VudHJ5UmVzdWx0PElucHV0LCBPdXRwdXQ+IHtcbiAgICBjb25zdCBhYnNvbHV0ZU1pZGRsZXdhcmVOYW1lc01hcCA9IHRoaXMuYWJzb2x1dGVFbnRyaWVzXG4gICAgICAuZmlsdGVyKChlbnRyeSkgPT4gZW50cnkubmFtZSlcbiAgICAgIC5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBlbnRyeSkgPT4ge1xuICAgICAgICBhY2N1bXVsYXRvcltlbnRyeS5uYW1lIV0gPSBlbnRyeTtcbiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgfSwge30gYXMgTmFtZWRNaWRkbGV3YXJlRW50cmllc01hcDxJbnB1dCwgT3V0cHV0Pik7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IHRoaXMucmVsYXRpdmVFbnRyaWVzLm1hcChcbiAgICAgIChlbnRyeSkgPT5cbiAgICAgICAgKHtcbiAgICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgICBwcmlvcml0eTogbnVsbCxcbiAgICAgICAgICBuZXh0OiB1bmRlZmluZWQsXG4gICAgICAgICAgcHJldjogdW5kZWZpbmVkLFxuICAgICAgICB9IGFzIE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5PElucHV0LCBPdXRwdXQ+KVxuICAgICk7XG4gICAgY29uc3QgcmVsYXRpdmVNaWRkbGV3YXJlTmFtZXNNYXAgPSBub3JtYWxpemVkXG4gICAgICAuZmlsdGVyKChlbnRyeSkgPT4gZW50cnkubmFtZSlcbiAgICAgIC5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBlbnRyeSkgPT4ge1xuICAgICAgICBhY2N1bXVsYXRvcltlbnRyeS5uYW1lIV0gPSBlbnRyeTtcbiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgfSwge30gYXMgTmFtZWRSZWxhdGl2ZUVudHJpZXNNYXA8SW5wdXQsIE91dHB1dD4pO1xuXG4gICAgY29uc3QgYW5jaG9yczogUmVsYXRpdmVNaWRkbGV3YXJlQW5jaG9yPElucHV0LCBPdXRwdXQ+ID0ge307XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJlbGF0aXZlRW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgeyBwcmV2LCBuZXh0IH0gPSB0aGlzLnJlbGF0aXZlRW50cmllc1tpXTtcbiAgICAgIGNvbnN0IHJlc29sdmVkQ3VyciA9IG5vcm1hbGl6ZWRbaV07XG4gICAgICAvL2VpdGhlciBwcmV2IG9yIG5leHQgaXMgc2V0XG4gICAgICBpZiAocHJldikge1xuICAgICAgICBpZiAoYWJzb2x1dGVNaWRkbGV3YXJlTmFtZXNNYXBbcHJldl0gJiYgYWJzb2x1dGVNaWRkbGV3YXJlTmFtZXNNYXBbcHJldl0uc3RlcCA9PT0gcmVzb2x2ZWRDdXJyLnN0ZXApIHtcbiAgICAgICAgICBpZiAoIWFuY2hvcnNbcHJldl0pIGFuY2hvcnNbcHJldl0gPSB7fTtcbiAgICAgICAgICByZXNvbHZlZEN1cnIubmV4dCA9IGFuY2hvcnNbcHJldl0ubmV4dDtcbiAgICAgICAgICBpZiAoYW5jaG9yc1twcmV2XS5uZXh0KSBhbmNob3JzW3ByZXZdLm5leHQhLnByZXYgPSByZXNvbHZlZEN1cnI7XG4gICAgICAgICAgYW5jaG9yc1twcmV2XS5uZXh0ID0gcmVzb2x2ZWRDdXJyO1xuICAgICAgICB9IGVsc2UgaWYgKHJlbGF0aXZlTWlkZGxld2FyZU5hbWVzTWFwW3ByZXZdICYmIHJlbGF0aXZlTWlkZGxld2FyZU5hbWVzTWFwW3ByZXZdLnN0ZXAgPT09IHJlc29sdmVkQ3Vyci5zdGVwKSB7XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZWRQcmV2ID0gcmVsYXRpdmVNaWRkbGV3YXJlTmFtZXNNYXBbcHJldl07XG4gICAgICAgICAgaWYgKHJlc29sdmVkUHJldi5uZXh0ID09PSByZXNvbHZlZEN1cnIpIGNvbnRpbnVlO1xuICAgICAgICAgIHJlc29sdmVkQ3Vyci5uZXh0ID0gcmVzb2x2ZWRQcmV2Lm5leHQ7XG4gICAgICAgICAgcmVzb2x2ZWRQcmV2Lm5leHQgPSByZXNvbHZlZEN1cnI7XG4gICAgICAgICAgaWYgKHJlc29sdmVkQ3Vyci5uZXh0KSByZXNvbHZlZEN1cnIubmV4dC5wcmV2ID0gcmVzb2x2ZWRDdXJyO1xuICAgICAgICAgIHJlc29sdmVkQ3Vyci5wcmV2ID0gcmVzb2x2ZWRQcmV2O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKG5leHQpIHtcbiAgICAgICAgaWYgKGFic29sdXRlTWlkZGxld2FyZU5hbWVzTWFwW25leHRdICYmIGFic29sdXRlTWlkZGxld2FyZU5hbWVzTWFwW25leHRdLnN0ZXAgPT09IHJlc29sdmVkQ3Vyci5zdGVwKSB7XG4gICAgICAgICAgaWYgKCFhbmNob3JzW25leHRdKSBhbmNob3JzW25leHRdID0ge307XG4gICAgICAgICAgcmVzb2x2ZWRDdXJyLnByZXYgPSBhbmNob3JzW25leHRdLnByZXY7XG4gICAgICAgICAgaWYgKGFuY2hvcnNbbmV4dF0ucHJldikgYW5jaG9yc1tuZXh0XS5wcmV2IS5uZXh0ID0gcmVzb2x2ZWRDdXJyO1xuICAgICAgICAgIGFuY2hvcnNbbmV4dF0ucHJldiA9IHJlc29sdmVkQ3VycjtcbiAgICAgICAgfSBlbHNlIGlmIChyZWxhdGl2ZU1pZGRsZXdhcmVOYW1lc01hcFtuZXh0XSAmJiByZWxhdGl2ZU1pZGRsZXdhcmVOYW1lc01hcFtuZXh0XS5zdGVwID09PSByZXNvbHZlZEN1cnIuc3RlcCkge1xuICAgICAgICAgIGNvbnN0IHJlc29sdmVkTmV4dCA9IHJlbGF0aXZlTWlkZGxld2FyZU5hbWVzTWFwW25leHRdO1xuICAgICAgICAgIGlmIChyZXNvbHZlZE5leHQucHJldiA9PT0gcmVzb2x2ZWRDdXJyKSBjb250aW51ZTtcbiAgICAgICAgICByZXNvbHZlZEN1cnIucHJldiA9IHJlc29sdmVkTmV4dC5wcmV2O1xuICAgICAgICAgIHJlc29sdmVkTmV4dC5wcmV2ID0gcmVzb2x2ZWRDdXJyO1xuICAgICAgICAgIGlmIChyZXNvbHZlZEN1cnIucHJldikgcmVzb2x2ZWRDdXJyLnByZXYubmV4dCA9IHJlc29sdmVkQ3VycjtcbiAgICAgICAgICByZXNvbHZlZEN1cnIubmV4dCA9IHJlc29sdmVkTmV4dDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBnZXQgdGhlIGhlYWQgb2YgdGhlIHJlbGF0aXZlIG1pZGRsZXdhcmUgbGlua2VkIGxpc3QgdGhhdCBoYXZlXG4gICAgLy8gbm8gdHJhbnNpdGl2ZSByZWxhdGlvbiB0byBhYnNvbHV0ZSBtaWRkbGV3YXJlLlxuICAgIGNvbnN0IG9ycGhhbmVkUmVsYXRpdmVFbnRyaWVzOiBBcnJheTxOb3JtYWxpemVkUmVsYXRpdmVFbnRyeTxJbnB1dCwgT3V0cHV0Pj4gPSBbXTtcbiAgICBjb25zdCB2aXNpdGVkOiBXZWFrU2V0PE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5PElucHV0LCBPdXRwdXQ+PiA9IG5ldyBXZWFrU2V0KCk7XG4gICAgZm9yIChjb25zdCBhbmNob3JOYW1lIG9mIE9iamVjdC5rZXlzKGFuY2hvcnMpKSB7XG4gICAgICBsZXQgeyBwcmV2LCBuZXh0IH0gPSBhbmNob3JzW2FuY2hvck5hbWVdO1xuICAgICAgd2hpbGUgKHByZXYpIHtcbiAgICAgICAgdmlzaXRlZC5hZGQocHJldik7XG4gICAgICAgIHByZXYgPSBwcmV2LnByZXY7XG4gICAgICB9XG4gICAgICB3aGlsZSAobmV4dCkge1xuICAgICAgICB2aXNpdGVkLmFkZChuZXh0KTtcbiAgICAgICAgbmV4dCA9IG5leHQubmV4dDtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub3JtYWxpemVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgZW50cnk6IE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5PElucHV0LCBPdXRwdXQ+IHwgdW5kZWZpbmVkID0gbm9ybWFsaXplZFtpXTtcbiAgICAgIGlmICh2aXNpdGVkLmhhcyhlbnRyeSkpIGNvbnRpbnVlO1xuICAgICAgaWYgKCFlbnRyeS5wcmV2KSBvcnBoYW5lZFJlbGF0aXZlRW50cmllcy5wdXNoKGVudHJ5KTtcbiAgICAgIHdoaWxlIChlbnRyeSAmJiAhdmlzaXRlZC5oYXMoZW50cnkpKSB7XG4gICAgICAgIHZpc2l0ZWQuYWRkKGVudHJ5KTtcbiAgICAgICAgZW50cnkgPSBlbnRyeS5uZXh0O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW29ycGhhbmVkUmVsYXRpdmVFbnRyaWVzLCBhbmNob3JzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBmaW5hbCBsaXN0IG9mIG1pZGRsZXdhcmUgaW4gdGhlIG9yZGVyIG9mIGJlaW5nIGV4ZWN1dGVkIGluIHRoZSByZXNvbHZlZCBoYW5kbGVyLlxuICAgKiBJZiByZWxhdGl2ZSBlbnRyaWVzIGxpc3QgaXMgbm90IGVtcHR5LCB0aG9zZSBlbnRyaWVzIHdpbGwgYmUgYWRkZWQgdG8gZmluYWwgbWlkZGxld2FyZVxuICAgKiBsaXN0IHdpdGggcnVsZXMgYmVsb3c6XG4gICAqIDEuIGlmIGB0b01pZGRsZXdhcmVgIGV4aXN0cyBpbiB0aGUgc3BlY2lmaWMgYHN0ZXBgLCB0aGUgbWlkZGxld2FyZSB3aWxsIGJlIGluc2VydGVkIGJlZm9yZVxuICAgKiAgICAgb3IgYWZ0ZXIgdGhlIHNwZWNpZmllZCBgdG9NaWRkbGV3YXJlYFxuICAgKiAyLiBpZiBgdG9NaWRkbGV3YXJlYCBkb2Vzbid0IGV4aXN0IGluIHRoZSBzcGVjaWZpYyBgc3RlcGAsIHRoZSBtaWRkbGV3YXJlIHdpbGwgYmUgYXBwZW5kZWRcbiAgICogICAgIHRvIHNwZWNpZmljIGBzdGVwYCB3aXRoIHByaW9yaXR5IG9mIGBub3JtYWxgXG4gICAqL1xuICBwcml2YXRlIGdldE1pZGRsZXdhcmVMaXN0KCk6IEFycmF5PE1pZGRsZXdhcmVUeXBlPElucHV0LCBPdXRwdXQ+PiB7XG4gICAgY29uc3QgbWlkZGxld2FyZUxpc3Q6IEFycmF5PE1pZGRsZXdhcmVUeXBlPElucHV0LCBPdXRwdXQ+PiA9IFtdO1xuICAgIGNvbnN0IFtvcnBoYW5lZFJlbGF0aXZlRW50cmllcywgYW5jaG9yc10gPSB0aGlzLm5vcm1hbGl6ZVJlbGF0aXZlRW50cmllcygpO1xuICAgIGxldCBlbnRyeUxpc3QgPSBbLi4udGhpcy5hYnNvbHV0ZUVudHJpZXMsIC4uLm9ycGhhbmVkUmVsYXRpdmVFbnRyaWVzXTtcbiAgICBlbnRyeUxpc3QgPSB0aGlzLnNvcnQoZW50cnlMaXN0KTtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJ5TGlzdCkge1xuICAgICAgY29uc3QgZGVmYXVsdEFuY2hvclZhbHVlID0geyBwcmV2OiB1bmRlZmluZWQsIG5leHQ6IHVuZGVmaW5lZCB9O1xuICAgICAgY29uc3QgeyBwcmV2LCBuZXh0IH0gPSBlbnRyeS5uYW1lID8gYW5jaG9yc1tlbnRyeS5uYW1lXSB8fCBkZWZhdWx0QW5jaG9yVmFsdWUgOiBkZWZhdWx0QW5jaG9yVmFsdWU7XG4gICAgICBsZXQgcmVsYXRpdmVFbnRyeSA9IHByZXY7XG4gICAgICAvL3JldmVyc2UgcmVsYXRpdmUgZW50cnkgbGlua2VkIGxpc3QgYW5kIGFkZCB0byBvcmRlcmVkIGhhbmRsZXIgbGlzdFxuICAgICAgd2hpbGUgKHJlbGF0aXZlRW50cnk/LnByZXYpIHtcbiAgICAgICAgcmVsYXRpdmVFbnRyeSA9IHJlbGF0aXZlRW50cnkucHJldjtcbiAgICAgIH1cbiAgICAgIHdoaWxlIChyZWxhdGl2ZUVudHJ5KSB7XG4gICAgICAgIG1pZGRsZXdhcmVMaXN0LnB1c2gocmVsYXRpdmVFbnRyeS5taWRkbGV3YXJlKTtcbiAgICAgICAgcmVsYXRpdmVFbnRyeSA9IHJlbGF0aXZlRW50cnkubmV4dDtcbiAgICAgIH1cbiAgICAgIG1pZGRsZXdhcmVMaXN0LnB1c2goZW50cnkubWlkZGxld2FyZSk7XG4gICAgICBsZXQgb3JwaGFuZWRFbnRyeSA9IGVudHJ5IGFzIGFueTtcbiAgICAgIHdoaWxlICgob3JwaGFuZWRFbnRyeSBhcyBhbnkpLm5leHQpIHtcbiAgICAgICAgbWlkZGxld2FyZUxpc3QucHVzaCgob3JwaGFuZWRFbnRyeSBhcyBhbnkpLm5leHQubWlkZGxld2FyZSk7XG4gICAgICAgIG9ycGhhbmVkRW50cnkgPSAob3JwaGFuZWRFbnRyeSBhcyBhbnkpLm5leHQ7XG4gICAgICB9XG4gICAgICByZWxhdGl2ZUVudHJ5ID0gbmV4dDtcbiAgICAgIHdoaWxlIChyZWxhdGl2ZUVudHJ5KSB7XG4gICAgICAgIG1pZGRsZXdhcmVMaXN0LnB1c2gocmVsYXRpdmVFbnRyeS5taWRkbGV3YXJlKTtcbiAgICAgICAgcmVsYXRpdmVFbnRyeSA9IHJlbGF0aXZlRW50cnkubmV4dDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1pZGRsZXdhcmVMaXN0LnJldmVyc2UoKTtcbiAgfVxuXG4gIHJlc29sdmU8SW5wdXRUeXBlIGV4dGVuZHMgSW5wdXQsIE91dHB1dFR5cGUgZXh0ZW5kcyBPdXRwdXQ+KFxuICAgIGhhbmRsZXI6IERlc2VyaWFsaXplSGFuZGxlcjxJbnB1dFR5cGUsIE91dHB1dFR5cGU+LFxuICAgIGNvbnRleHQ6IEhhbmRsZXJFeGVjdXRpb25Db250ZXh0XG4gICk6IEhhbmRsZXI8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPiB7XG4gICAgZm9yIChjb25zdCBtaWRkbGV3YXJlIG9mIHRoaXMuZ2V0TWlkZGxld2FyZUxpc3QoKSkge1xuICAgICAgaGFuZGxlciA9IG1pZGRsZXdhcmUoaGFuZGxlciBhcyBIYW5kbGVyPElucHV0LCBPdXRwdXRUeXBlPiwgY29udGV4dCkgYXMgYW55O1xuICAgIH1cblxuICAgIHJldHVybiBoYW5kbGVyIGFzIEhhbmRsZXI8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPjtcbiAgfVxufVxuXG5jb25zdCBzdGVwV2VpZ2h0czogeyBba2V5IGluIFN0ZXBdOiBudW1iZXIgfSA9IHtcbiAgaW5pdGlhbGl6ZTogNSxcbiAgc2VyaWFsaXplOiA0LFxuICBidWlsZDogMyxcbiAgZmluYWxpemVSZXF1ZXN0OiAyLFxuICBkZXNlcmlhbGl6ZTogMSxcbn07XG5cbmNvbnN0IHByaW9yaXR5V2VpZ2h0czogeyBba2V5IGluIFByaW9yaXR5XTogbnVtYmVyIH0gPSB7XG4gIGhpZ2g6IDMsXG4gIG5vcm1hbDogMixcbiAgbG93OiAxLFxufTtcbiJdfQ==

@@ -1,2 +0,2 @@

import { HandlerOptions, Step, MiddlewareType, Priority } from "@aws-sdk/types";
import { HandlerOptions, MiddlewareType, Priority, Step } from "@aws-sdk/types";
export interface MiddlewareEntry<Input extends object, Output extends object> extends HandlerOptions {

@@ -3,0 +3,0 @@ step: Step;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhbmRsZXJPcHRpb25zLCBTdGVwLCBNaWRkbGV3YXJlVHlwZSwgUHJpb3JpdHkgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmV4cG9ydCBpbnRlcmZhY2UgTWlkZGxld2FyZUVudHJ5PElucHV0IGV4dGVuZHMgb2JqZWN0LCBPdXRwdXQgZXh0ZW5kcyBvYmplY3Q+XG4gIGV4dGVuZHMgSGFuZGxlck9wdGlvbnMge1xuICBzdGVwOiBTdGVwO1xuICBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0PjtcbiAgcHJpb3JpdHk6IFByaW9yaXR5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbGF0aXZlTWlkZGxld2FyZUVudHJ5PFxuICBJbnB1dCBleHRlbmRzIG9iamVjdCxcbiAgT3V0cHV0IGV4dGVuZHMgb2JqZWN0XG4+IGV4dGVuZHMgSGFuZGxlck9wdGlvbnMge1xuICBzdGVwOiBTdGVwO1xuICBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0PjtcbiAgbmV4dD86IHN0cmluZztcbiAgcHJldj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3JtYWxpemVkUmVsYXRpdmVFbnRyeTxcbiAgSW5wdXQgZXh0ZW5kcyBvYmplY3QsXG4gIE91dHB1dCBleHRlbmRzIG9iamVjdFxuPiBleHRlbmRzIEhhbmRsZXJPcHRpb25zIHtcbiAgc3RlcDogU3RlcDtcbiAgbWlkZGxld2FyZTogTWlkZGxld2FyZVR5cGU8SW5wdXQsIE91dHB1dD47XG4gIG5leHQ/OiBOb3JtYWxpemVkUmVsYXRpdmVFbnRyeTxJbnB1dCwgT3V0cHV0PjtcbiAgcHJldj86IE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5PElucHV0LCBPdXRwdXQ+O1xuICBwcmlvcml0eTogbnVsbDtcbn1cblxuZXhwb3J0IHR5cGUgTmFtZWRNaWRkbGV3YXJlRW50cmllc01hcDxcbiAgSW5wdXQgZXh0ZW5kcyBvYmplY3QsXG4gIE91dHB1dCBleHRlbmRzIG9iamVjdFxuPiA9IHtcbiAgW2tleTogc3RyaW5nXTogTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+O1xufTtcblxuZXhwb3J0IHR5cGUgTmFtZWRSZWxhdGl2ZUVudHJpZXNNYXA8XG4gIElucHV0IGV4dGVuZHMgb2JqZWN0LFxuICBPdXRwdXQgZXh0ZW5kcyBvYmplY3Rcbj4gPSB7XG4gIFtrZXk6IHN0cmluZ106IE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5PElucHV0LCBPdXRwdXQ+O1xufTtcblxuZXhwb3J0IHR5cGUgUmVsYXRpdmVNaWRkbGV3YXJlQW5jaG9yPFxuICBJbnB1dCBleHRlbmRzIG9iamVjdCxcbiAgT3V0cHV0IGV4dGVuZHMgb2JqZWN0XG4+ID0ge1xuICBbbmFtZTogc3RyaW5nXToge1xuICAgIHByZXY/OiBOb3JtYWxpemVkUmVsYXRpdmVFbnRyeTxJbnB1dCwgT3V0cHV0PjtcbiAgICBuZXh0PzogTm9ybWFsaXplZFJlbGF0aXZlRW50cnk8SW5wdXQsIE91dHB1dD47XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemluZ0VudHJ5UmVzdWx0PFxuICBJbnB1dCBleHRlbmRzIG9iamVjdCxcbiAgT3V0cHV0IGV4dGVuZHMgb2JqZWN0XG4+ID0gW1xuICBBcnJheTxOb3JtYWxpemVkUmVsYXRpdmVFbnRyeTxJbnB1dCwgT3V0cHV0Pj4sXG4gIFJlbGF0aXZlTWlkZGxld2FyZUFuY2hvcjxJbnB1dCwgT3V0cHV0PlxuXTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhbmRsZXJPcHRpb25zLCBNaWRkbGV3YXJlVHlwZSwgUHJpb3JpdHksU3RlcCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuZXhwb3J0IGludGVyZmFjZSBNaWRkbGV3YXJlRW50cnk8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBIYW5kbGVyT3B0aW9ucyB7XG4gIHN0ZXA6IFN0ZXA7XG4gIG1pZGRsZXdhcmU6IE1pZGRsZXdhcmVUeXBlPElucHV0LCBPdXRwdXQ+O1xuICBwcmlvcml0eTogUHJpb3JpdHk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVsYXRpdmVNaWRkbGV3YXJlRW50cnk8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBIYW5kbGVyT3B0aW9ucyB7XG4gIHN0ZXA6IFN0ZXA7XG4gIG1pZGRsZXdhcmU6IE1pZGRsZXdhcmVUeXBlPElucHV0LCBPdXRwdXQ+O1xuICBuZXh0Pzogc3RyaW5nO1xuICBwcmV2Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5PElucHV0IGV4dGVuZHMgb2JqZWN0LCBPdXRwdXQgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgSGFuZGxlck9wdGlvbnMge1xuICBzdGVwOiBTdGVwO1xuICBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0PjtcbiAgbmV4dD86IE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5PElucHV0LCBPdXRwdXQ+O1xuICBwcmV2PzogTm9ybWFsaXplZFJlbGF0aXZlRW50cnk8SW5wdXQsIE91dHB1dD47XG4gIHByaW9yaXR5OiBudWxsO1xufVxuXG5leHBvcnQgdHlwZSBOYW1lZE1pZGRsZXdhcmVFbnRyaWVzTWFwPElucHV0IGV4dGVuZHMgb2JqZWN0LCBPdXRwdXQgZXh0ZW5kcyBvYmplY3Q+ID0ge1xuICBba2V5OiBzdHJpbmddOiBNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD47XG59O1xuXG5leHBvcnQgdHlwZSBOYW1lZFJlbGF0aXZlRW50cmllc01hcDxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0PiA9IHtcbiAgW2tleTogc3RyaW5nXTogTm9ybWFsaXplZFJlbGF0aXZlRW50cnk8SW5wdXQsIE91dHB1dD47XG59O1xuXG5leHBvcnQgdHlwZSBSZWxhdGl2ZU1pZGRsZXdhcmVBbmNob3I8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCBleHRlbmRzIG9iamVjdD4gPSB7XG4gIFtuYW1lOiBzdHJpbmddOiB7XG4gICAgcHJldj86IE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5PElucHV0LCBPdXRwdXQ+O1xuICAgIG5leHQ/OiBOb3JtYWxpemVkUmVsYXRpdmVFbnRyeTxJbnB1dCwgT3V0cHV0PjtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIE5vcm1hbGl6aW5nRW50cnlSZXN1bHQ8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCBleHRlbmRzIG9iamVjdD4gPSBbXG4gIEFycmF5PE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5PElucHV0LCBPdXRwdXQ+PixcbiAgUmVsYXRpdmVNaWRkbGV3YXJlQW5jaG9yPElucHV0LCBPdXRwdXQ+XG5dO1xuIl19
{
"name": "@aws-sdk/middleware-stack",
"version": "1.0.0-gamma.2",
"version": "1.0.0-gamma.3",
"description": "Provides a means for composing multiple middleware functions into a single handler",

@@ -22,3 +22,3 @@ "scripts": {

"dependencies": {
"@aws-sdk/types": "1.0.0-gamma.2",
"@aws-sdk/types": "1.0.0-gamma.3",
"tslib": "^1.8.0"

@@ -29,4 +29,4 @@ },

"jest": "^26.1.0",
"typescript": "~3.8.3"
"typescript": "~3.9.3"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc