Socket
Socket
Sign inDemoInstall

@blueprintjs/table

Package Overview
Dependencies
39
Maintainers
1
Versions
257
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.1 to 1.1.0

dist/interactions/dragEvents.d.ts

1

dist/cell/cell.d.ts

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

/// <reference types="react" />
import * as React from "react";

@@ -3,0 +2,0 @@ import { IIntentProps, IProps } from "@blueprintjs/core";

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -40,2 +42,2 @@ "use strict";

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jZWxsL2NlbGwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRzs7Ozs7Ozs7Ozs7OztBQUVILElBQVksVUFBVSxXQUFNLFlBQVksQ0FBQyxDQUFBO0FBQ3pDLElBQVksVUFBVSxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFDcEQsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUFFL0IscUJBQThDLG1CQUFtQixDQUFDLENBQUE7QUFlckQseUJBQWlCLEdBQUcsVUFBQyxTQUFpQixFQUFFLFlBQW9CLElBQUssT0FBQSxvQkFBQyxJQUFJLE9BQUcsRUFBUixDQUFRLENBQUM7QUFHdkY7SUFBMEIsd0JBQStCO0lBQXpEO1FBQTBCLDhCQUErQjtJQU96RCxDQUFDO0lBTlUscUJBQU0sR0FBYjtRQUNJLElBQUEsZUFBZ0QsRUFBeEMsZ0JBQUssRUFBRSxvQkFBTyxFQUFFLHdCQUFTLENBQWdCO1FBQ2pELElBQU0sT0FBTyxHQUFHLENBQUMscUJBQUMsR0FBRyxJQUFDLFNBQVMsRUFBQyx5QkFBeUIsR0FBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVMsQ0FBTSxDQUFDLENBQUM7UUFDdkYsSUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsY0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0YsTUFBTSxDQUFDLENBQUMscUJBQUMsR0FBRyxJQUFDLFNBQVMsRUFBRSxPQUFRLEVBQUMsS0FBSyxFQUFFLEtBQU0sRUFBQyxLQUFLLEVBQUUsT0FBUSxHQUFFLE9BQVEsQ0FBTSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQVBMO1FBQUMsVUFBVTtZQUFBO0lBUVgsV0FBQztBQUFELENBUEEsQUFPQyxDQVB5QixLQUFLLENBQUMsU0FBUyxHQU94QztBQVBZLFlBQUksT0FPaEIsQ0FBQSIsImZpbGUiOiJjZWxsL2NlbGwuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAtIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbmltcG9ydCAqIGFzIGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCAqIGFzIFB1cmVSZW5kZXIgZnJvbSBcInB1cmUtcmVuZGVyLWRlY29yYXRvclwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IENsYXNzZXMsIElJbnRlbnRQcm9wcywgSVByb3BzIH0gZnJvbSBcIkBibHVlcHJpbnRqcy9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNlbGxQcm9wcyBleHRlbmRzIElJbnRlbnRQcm9wcywgSVByb3BzIHtcbiAgICBrZXk/OiBzdHJpbmc7XG5cbiAgICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG5cbiAgICAvKipcbiAgICAgKiBBbiBvcHRpb25hbCBuYXRpdmUgdG9vbHRpcCB0aGF0IGlzIGRpc3BsYXllZCBvbiBob3ZlclxuICAgICAqL1xuICAgIHRvb2x0aXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIElDZWxsUmVuZGVyZXIgPSAocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcikgPT4gUmVhY3QuUmVhY3RFbGVtZW50PElDZWxsUHJvcHM+O1xuXG5leHBvcnQgY29uc3QgZW1wdHlDZWxsUmVuZGVyZXIgPSAoX3Jvd0luZGV4OiBudW1iZXIsIF9jb2x1bW5JbmRleDogbnVtYmVyKSA9PiA8Q2VsbCAvPjtcblxuQFB1cmVSZW5kZXJcbmV4cG9ydCBjbGFzcyBDZWxsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElDZWxsUHJvcHMsIHt9PiB7XG4gICAgcHVibGljIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBzdHlsZSwgdG9vbHRpcCwgY2xhc3NOYW1lIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCBjb250ZW50ID0gKDxkaXYgY2xhc3NOYW1lPVwiYnAtdGFibGUtdHJ1bmNhdGVkLXRleHRcIj57dGhpcy5wcm9wcy5jaGlsZHJlbn08L2Rpdj4pO1xuICAgICAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NOYW1lcyhcImJwLXRhYmxlLWNlbGxcIiwgY2xhc3NOYW1lLCBDbGFzc2VzLmludGVudENsYXNzKHRoaXMucHJvcHMuaW50ZW50KSk7XG4gICAgICAgIHJldHVybiAoPGRpdiBjbGFzc05hbWU9e2NsYXNzZXN9IHN0eWxlPXtzdHlsZX0gdGl0bGU9e3Rvb2x0aXB9Pntjb250ZW50fTwvZGl2Pik7XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jZWxsL2NlbGwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHOzs7Ozs7Ozs7Ozs7O0FBRUgsSUFBWSxVQUFVLFdBQU0sWUFBWSxDQUFDLENBQUE7QUFDekMsSUFBWSxVQUFVLFdBQU0sdUJBQXVCLENBQUMsQ0FBQTtBQUNwRCxJQUFZLEtBQUssV0FBTSxPQUFPLENBQUMsQ0FBQTtBQUUvQixxQkFBOEMsbUJBQW1CLENBQUMsQ0FBQTtBQWVyRCx5QkFBaUIsR0FBRyxVQUFDLFNBQWlCLEVBQUUsWUFBb0IsSUFBSyxPQUFBLG9CQUFDLElBQUksT0FBRyxFQUFSLENBQVEsQ0FBQztBQUd2RjtJQUEwQix3QkFBK0I7SUFBekQ7UUFBMEIsOEJBQStCO0lBT3pELENBQUM7SUFOVSxxQkFBTSxHQUFiO1FBQ0ksSUFBQSxlQUFnRCxFQUF4QyxnQkFBSyxFQUFFLG9CQUFPLEVBQUUsd0JBQVMsQ0FBZ0I7UUFDakQsSUFBTSxPQUFPLEdBQUcsQ0FBQyxxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFDLHlCQUF5QixHQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUyxDQUFNLENBQUMsQ0FBQztRQUN2RixJQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxjQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMvRixNQUFNLENBQUMsQ0FBQyxxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFFLE9BQVEsRUFBQyxLQUFLLEVBQUUsS0FBTSxFQUFDLEtBQUssRUFBRSxPQUFRLEdBQUUsT0FBUSxDQUFNLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBUEw7UUFBQyxVQUFVO1lBQUE7SUFRWCxXQUFDO0FBQUQsQ0FQQSxBQU9DLENBUHlCLEtBQUssQ0FBQyxTQUFTLEdBT3hDO0FBUFksWUFBSSxPQU9oQixDQUFBIiwiZmlsZSI6ImNlbGwvY2VsbC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQlNELTMgTGljZW5zZSBhcyBtb2RpZmllZCAodGhlIOKAnExpY2Vuc2XigJ0pOyB5b3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBsaWNlbnNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvUEFURU5UU1xuICovXG5cbmltcG9ydCAqIGFzIGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCAqIGFzIFB1cmVSZW5kZXIgZnJvbSBcInB1cmUtcmVuZGVyLWRlY29yYXRvclwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IENsYXNzZXMsIElJbnRlbnRQcm9wcywgSVByb3BzIH0gZnJvbSBcIkBibHVlcHJpbnRqcy9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNlbGxQcm9wcyBleHRlbmRzIElJbnRlbnRQcm9wcywgSVByb3BzIHtcbiAgICBrZXk/OiBzdHJpbmc7XG5cbiAgICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG5cbiAgICAvKipcbiAgICAgKiBBbiBvcHRpb25hbCBuYXRpdmUgdG9vbHRpcCB0aGF0IGlzIGRpc3BsYXllZCBvbiBob3ZlclxuICAgICAqL1xuICAgIHRvb2x0aXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIElDZWxsUmVuZGVyZXIgPSAocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcikgPT4gUmVhY3QuUmVhY3RFbGVtZW50PElDZWxsUHJvcHM+O1xuXG5leHBvcnQgY29uc3QgZW1wdHlDZWxsUmVuZGVyZXIgPSAoX3Jvd0luZGV4OiBudW1iZXIsIF9jb2x1bW5JbmRleDogbnVtYmVyKSA9PiA8Q2VsbCAvPjtcblxuQFB1cmVSZW5kZXJcbmV4cG9ydCBjbGFzcyBDZWxsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElDZWxsUHJvcHMsIHt9PiB7XG4gICAgcHVibGljIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBzdHlsZSwgdG9vbHRpcCwgY2xhc3NOYW1lIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCBjb250ZW50ID0gKDxkaXYgY2xhc3NOYW1lPVwiYnAtdGFibGUtdHJ1bmNhdGVkLXRleHRcIj57dGhpcy5wcm9wcy5jaGlsZHJlbn08L2Rpdj4pO1xuICAgICAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NOYW1lcyhcImJwLXRhYmxlLWNlbGxcIiwgY2xhc3NOYW1lLCBDbGFzc2VzLmludGVudENsYXNzKHRoaXMucHJvcHMuaW50ZW50KSk7XG4gICAgICAgIHJldHVybiAoPGRpdiBjbGFzc05hbWU9e2NsYXNzZXN9IHN0eWxlPXtzdHlsZX0gdGl0bGU9e3Rvb2x0aXB9Pntjb250ZW50fTwvZGl2Pik7XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

@@ -1,4 +0,3 @@

/// <reference types="react" />
import * as React from "react";
import { ICellProps } from "./cell";
import * as React from "react";
export interface IEditableCellProps extends ICellProps {

@@ -5,0 +4,0 @@ /**

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -11,6 +13,6 @@ "use strict";

};
var draggable_1 = require("../interactions/draggable");
var core_1 = require("@blueprintjs/core");
var classNames = require("classnames");
var React = require("react");
var draggable_1 = require("../interactions/draggable");
var EditableCell = (function (_super) {

@@ -46,2 +48,2 @@ __extends(EditableCell, _super);

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jZWxsL2VkaXRhYmxlQ2VsbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7OztHQUdHOzs7Ozs7O0FBRUgsMEJBQTBCLDJCQUEyQixDQUFDLENBQUE7QUFFdEQscUJBQXNDLG1CQUFtQixDQUFDLENBQUE7QUFDMUQsSUFBWSxVQUFVLFdBQU0sWUFBWSxDQUFDLENBQUE7QUFDekMsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUE4Qi9CO0lBQWtDLGdDQUF1QztJQUF6RTtRQUFBLGlCQTBDQztRQTFDaUMsOEJBQXVDO1FBNEI3RCxrQkFBYSxHQUFHLFVBQUMsR0FBZ0I7WUFDckMsS0FBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFDM0IsQ0FBQyxDQUFBO1FBRU8sMEJBQXFCLEdBQUcsVUFBQyxNQUFrQjtZQUMvQyxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLE1BQU0sQ0FBQztZQUNYLENBQUM7WUFFRCxJQUFNLFNBQVMsR0FBSSxLQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBaUIsQ0FBQztZQUN2RixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0wsQ0FBQyxDQUFBO0lBQ0wsQ0FBQztJQXZDVSw2QkFBTSxHQUFiO1FBQ0ksSUFBQSxlQUE4RixFQUF0Rix3QkFBUyxFQUFFLGdCQUFLLEVBQUUsa0JBQU0sRUFBRSxzQkFBUSxFQUFFLHNCQUFRLEVBQUUsd0JBQVMsRUFBRSxnQkFBSyxFQUFFLG9CQUFPLENBQWdCO1FBQy9GLE1BQU0sQ0FBQyxDQUNILHFCQUFDLEdBQUcsSUFDQSxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVMsRUFBRSxjQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQWUsQ0FBRSxFQUMvRSxLQUFLLEVBQUUsS0FBTSxFQUNiLEtBQUssRUFBRSxPQUFRLEVBQ2YsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFjO1lBRXhCLG9CQUFDLHFCQUFTLEdBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxxQkFBc0I7Z0JBQ2pELG9CQUFDLG1CQUFZLEdBQ1QsU0FBUyxFQUFFLHdCQUF5QixFQUNwQyxZQUFZLEVBQUUsS0FBTSxFQUNwQixNQUFNLEVBQUUsTUFBTyxFQUNmLFFBQVEsRUFBRSxRQUFTLEVBQ25CLFFBQVEsRUFBRSxRQUFTLEVBQ25CLFNBQVMsRUFBRSxTQUFVLEVBQ3JCLFdBQVcsRUFBQyxFQUFFLEVBQ2QsZ0JBQWdCLEVBQUUsSUFBSyxFQUN6QjthQUNNO1NBQ1YsQ0FDVCxDQUFDO0lBQ04sQ0FBQztJQWdCTCxtQkFBQztBQUFELENBMUNBLEFBMENDLENBMUNpQyxLQUFLLENBQUMsU0FBUyxHQTBDaEQ7QUExQ1ksb0JBQVksZUEwQ3hCLENBQUEiLCJmaWxlIjoiY2VsbC9lZGl0YWJsZUNlbGwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIC0gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKi9cblxuaW1wb3J0IHsgRHJhZ2dhYmxlIH0gZnJvbSBcIi4uL2ludGVyYWN0aW9ucy9kcmFnZ2FibGVcIjtcbmltcG9ydCB7IElDZWxsUHJvcHMgfSBmcm9tIFwiLi9jZWxsXCI7XG5pbXBvcnQgeyBDbGFzc2VzLCBFZGl0YWJsZVRleHQgfSBmcm9tIFwiQGJsdWVwcmludGpzL2NvcmVcIjtcbmltcG9ydCAqIGFzIGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElFZGl0YWJsZUNlbGxQcm9wcyBleHRlbmRzIElDZWxsUHJvcHMge1xuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBkaXNwbGF5ZWQgaW4gdGhlIHRleHQgYm94LiBCZSBzdXJlIHRvIHVwZGF0ZSB0aGlzIHZhbHVlIHdoZW5cbiAgICAgKiByZW5kZXJpbmcgdGhpcyBjb21wb25lbnQgYWZ0ZXIgYSBjb25maXJtZWQgY2hhbmdlLlxuICAgICAqL1xuICAgIHZhbHVlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQSBsaXN0ZW5lciB0aGF0IGlzIHRyaWdnZXJlZCBpZiB0aGUgdXNlciBjYW5jZWxzIHRoZSBlZGl0LiBUaGlzIGlzXG4gICAgICogaW1wb3J0YW50IHRvIGxpc3RlbiB0byBpZiB5b3UgYXJlIGRvaW5nIGFueXRoaW5nIHdpdGggb25DaGFuZ2UgZXZlbnRzLFxuICAgICAqIHNpbmNlIHlvdSdsbCBsaWtlbHkgd2FudCB0byByZXZlcnQgd2hhdGV2ZXIgY2hhbmdlcyB5b3UgbWFkZS5cbiAgICAgKi9cbiAgICBvbkNhbmNlbD86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQSBsaXN0ZW5lciB0aGF0IGlzIHRyaWdnZXJlZCBhcyBzb29uIGFzIHRoZSBlZGl0YWJsZSBuYW1lIGlzIG1vZGlmaWVkLlxuICAgICAqIFRoaXMgY2FuIGJlIGR1ZSwgZm9yIGV4YW1wbGUsIHRvIGtleWJvYXJkIGlucHV0IG9yIHRoZSBjbGlwYm9hcmQuXG4gICAgICovXG4gICAgb25DaGFuZ2U/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEEgbGlzdGVuZXIgdGhhdCBpcyB0cmlnZ2VyZWQgb25jZSB0aGUgZWRpdGluZyBpcyBjb25maXJtZWQuIFRoaXMgaXNcbiAgICAgKiB1c3VhbGx5IGR1ZSB0byB0aGUgPGtiZCBjbGFzcz1cInB0LWtleVwiPnJldHVybjwva2JkPiAob3JcbiAgICAgKiA8a2JkIGNsYXNzPVwicHQta2V5XCI+ZW50ZXI8L2tiZD4pIGtleSBwcmVzcy5cbiAgICAgKi9cbiAgICBvbkNvbmZpcm0/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNsYXNzIEVkaXRhYmxlQ2VsbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJRWRpdGFibGVDZWxsUHJvcHMsIHt9PiB7XG4gICAgcHJpdmF0ZSBjZWxsRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IGNsYXNzTmFtZSwgdmFsdWUsIGludGVudCwgb25DYW5jZWwsIG9uQ2hhbmdlLCBvbkNvbmZpcm0sIHN0eWxlLCB0b29sdGlwIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc05hbWUsIENsYXNzZXMuaW50ZW50Q2xhc3MoaW50ZW50KSwgXCJicC10YWJsZS1jZWxsXCIpfVxuICAgICAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgICAgICB0aXRsZT17dG9vbHRpcH1cbiAgICAgICAgICAgICAgICByZWY9e3RoaXMuaGFuZGxlQ2VsbFJlZn1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8RHJhZ2dhYmxlIG9uRG91YmxlQ2xpY2s9e3RoaXMuaGFuZGxlQ2VsbERvdWJsZUNsaWNrfT5cbiAgICAgICAgICAgICAgICAgICAgPEVkaXRhYmxlVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcImJwLXRhYmxlLWVkaXRhYmxlLW5hbWVcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlbnQ9e2ludGVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPXtvbkNhbmNlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ29uZmlybT17b25Db25maXJtfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0QWxsT25Gb2N1cz17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0RyYWdnYWJsZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ2VsbFJlZiA9IChyZWY6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgIHRoaXMuY2VsbEVsZW1lbnQgPSByZWY7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVDZWxsRG91YmxlQ2xpY2sgPSAoX2V2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNlbGxFbGVtZW50ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvY3VzYWJsZSA9ICh0aGlzLmNlbGxFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucHQtZWRpdGFibGUtdGV4dFwiKSBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgIGlmIChmb2N1c2FibGUuZm9jdXMgIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9jdXNhYmxlLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jZWxsL2VkaXRhYmxlQ2VsbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7Ozs7O0dBS0c7Ozs7Ozs7QUFFSCxxQkFBc0MsbUJBQW1CLENBQUMsQ0FBQTtBQUMxRCxJQUFZLFVBQVUsV0FBTSxZQUFZLENBQUMsQ0FBQTtBQUN6QyxJQUFZLEtBQUssV0FBTSxPQUFPLENBQUMsQ0FBQTtBQUMvQiwwQkFBMEIsMkJBQTJCLENBQUMsQ0FBQTtBQStCdEQ7SUFBa0MsZ0NBQXVDO0lBQXpFO1FBQUEsaUJBMENDO1FBMUNpQyw4QkFBdUM7UUE0QjdELGtCQUFhLEdBQUcsVUFBQyxHQUFnQjtZQUNyQyxLQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUMzQixDQUFDLENBQUE7UUFFTywwQkFBcUIsR0FBRyxVQUFDLE1BQWtCO1lBQy9DLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxDQUFDO1lBQ1gsQ0FBQztZQUVELElBQU0sU0FBUyxHQUFJLEtBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFpQixDQUFDO1lBQ3ZGLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDMUIsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RCLENBQUM7UUFDTCxDQUFDLENBQUE7SUFDTCxDQUFDO0lBdkNVLDZCQUFNLEdBQWI7UUFDSSxJQUFBLGVBQThGLEVBQXRGLHdCQUFTLEVBQUUsZ0JBQUssRUFBRSxrQkFBTSxFQUFFLHNCQUFRLEVBQUUsc0JBQVEsRUFBRSx3QkFBUyxFQUFFLGdCQUFLLEVBQUUsb0JBQU8sQ0FBZ0I7UUFDL0YsTUFBTSxDQUFDLENBQ0gscUJBQUMsR0FBRyxJQUNBLFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUyxFQUFFLGNBQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsZUFBZSxDQUFFLEVBQy9FLEtBQUssRUFBRSxLQUFNLEVBQ2IsS0FBSyxFQUFFLE9BQVEsRUFDZixHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWM7WUFFeEIsb0JBQUMscUJBQVMsR0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLHFCQUFzQjtnQkFDakQsb0JBQUMsbUJBQVksR0FDVCxTQUFTLEVBQUUsd0JBQXlCLEVBQ3BDLFlBQVksRUFBRSxLQUFNLEVBQ3BCLE1BQU0sRUFBRSxNQUFPLEVBQ2YsUUFBUSxFQUFFLFFBQVMsRUFDbkIsUUFBUSxFQUFFLFFBQVMsRUFDbkIsU0FBUyxFQUFFLFNBQVUsRUFDckIsV0FBVyxFQUFDLEVBQUUsRUFDZCxnQkFBZ0IsRUFBRSxJQUFLLEVBQ3pCO2FBQ007U0FDVixDQUNULENBQUM7SUFDTixDQUFDO0lBZ0JMLG1CQUFDO0FBQUQsQ0ExQ0EsQUEwQ0MsQ0ExQ2lDLEtBQUssQ0FBQyxTQUFTLEdBMENoRDtBQTFDWSxvQkFBWSxlQTBDeEIsQ0FBQSIsImZpbGUiOiJjZWxsL2VkaXRhYmxlQ2VsbC5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMyBMaWNlbnNlIGFzIG1vZGlmaWVkICh0aGUg4oCcTGljZW5zZeKAnSk7IHlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIGxpY2Vuc2UgYXQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKiBhbmQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9QQVRFTlRTXG4gKi9cblxuaW1wb3J0IHsgQ2xhc3NlcywgRWRpdGFibGVUZXh0IH0gZnJvbSBcIkBibHVlcHJpbnRqcy9jb3JlXCI7XG5pbXBvcnQgKiBhcyBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IERyYWdnYWJsZSB9IGZyb20gXCIuLi9pbnRlcmFjdGlvbnMvZHJhZ2dhYmxlXCI7XG5pbXBvcnQgeyBJQ2VsbFByb3BzIH0gZnJvbSBcIi4vY2VsbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElFZGl0YWJsZUNlbGxQcm9wcyBleHRlbmRzIElDZWxsUHJvcHMge1xuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBkaXNwbGF5ZWQgaW4gdGhlIHRleHQgYm94LiBCZSBzdXJlIHRvIHVwZGF0ZSB0aGlzIHZhbHVlIHdoZW5cbiAgICAgKiByZW5kZXJpbmcgdGhpcyBjb21wb25lbnQgYWZ0ZXIgYSBjb25maXJtZWQgY2hhbmdlLlxuICAgICAqL1xuICAgIHZhbHVlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQSBsaXN0ZW5lciB0aGF0IGlzIHRyaWdnZXJlZCBpZiB0aGUgdXNlciBjYW5jZWxzIHRoZSBlZGl0LiBUaGlzIGlzXG4gICAgICogaW1wb3J0YW50IHRvIGxpc3RlbiB0byBpZiB5b3UgYXJlIGRvaW5nIGFueXRoaW5nIHdpdGggb25DaGFuZ2UgZXZlbnRzLFxuICAgICAqIHNpbmNlIHlvdSdsbCBsaWtlbHkgd2FudCB0byByZXZlcnQgd2hhdGV2ZXIgY2hhbmdlcyB5b3UgbWFkZS5cbiAgICAgKi9cbiAgICBvbkNhbmNlbD86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQSBsaXN0ZW5lciB0aGF0IGlzIHRyaWdnZXJlZCBhcyBzb29uIGFzIHRoZSBlZGl0YWJsZSBuYW1lIGlzIG1vZGlmaWVkLlxuICAgICAqIFRoaXMgY2FuIGJlIGR1ZSwgZm9yIGV4YW1wbGUsIHRvIGtleWJvYXJkIGlucHV0IG9yIHRoZSBjbGlwYm9hcmQuXG4gICAgICovXG4gICAgb25DaGFuZ2U/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEEgbGlzdGVuZXIgdGhhdCBpcyB0cmlnZ2VyZWQgb25jZSB0aGUgZWRpdGluZyBpcyBjb25maXJtZWQuIFRoaXMgaXNcbiAgICAgKiB1c3VhbGx5IGR1ZSB0byB0aGUgPGtiZCBjbGFzcz1cInB0LWtleVwiPnJldHVybjwva2JkPiAob3JcbiAgICAgKiA8a2JkIGNsYXNzPVwicHQta2V5XCI+ZW50ZXI8L2tiZD4pIGtleSBwcmVzcy5cbiAgICAgKi9cbiAgICBvbkNvbmZpcm0/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNsYXNzIEVkaXRhYmxlQ2VsbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJRWRpdGFibGVDZWxsUHJvcHMsIHt9PiB7XG4gICAgcHJpdmF0ZSBjZWxsRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IGNsYXNzTmFtZSwgdmFsdWUsIGludGVudCwgb25DYW5jZWwsIG9uQ2hhbmdlLCBvbkNvbmZpcm0sIHN0eWxlLCB0b29sdGlwIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc05hbWUsIENsYXNzZXMuaW50ZW50Q2xhc3MoaW50ZW50KSwgXCJicC10YWJsZS1jZWxsXCIpfVxuICAgICAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgICAgICB0aXRsZT17dG9vbHRpcH1cbiAgICAgICAgICAgICAgICByZWY9e3RoaXMuaGFuZGxlQ2VsbFJlZn1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8RHJhZ2dhYmxlIG9uRG91YmxlQ2xpY2s9e3RoaXMuaGFuZGxlQ2VsbERvdWJsZUNsaWNrfT5cbiAgICAgICAgICAgICAgICAgICAgPEVkaXRhYmxlVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcImJwLXRhYmxlLWVkaXRhYmxlLW5hbWVcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlbnQ9e2ludGVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPXtvbkNhbmNlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ29uZmlybT17b25Db25maXJtfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0QWxsT25Gb2N1cz17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0RyYWdnYWJsZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ2VsbFJlZiA9IChyZWY6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgIHRoaXMuY2VsbEVsZW1lbnQgPSByZWY7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVDZWxsRG91YmxlQ2xpY2sgPSAoX2V2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNlbGxFbGVtZW50ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvY3VzYWJsZSA9ICh0aGlzLmNlbGxFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucHQtZWRpdGFibGUtdGV4dFwiKSBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgIGlmIChmb2N1c2FibGUuZm9jdXMgIT0gbnVsbCkge1xuICAgICAgICAgICAgZm9jdXNhYmxlLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=

@@ -1,8 +0,3 @@

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
*/
import * as React from "react";
import { ITruncatedFormatProps } from "./truncatedFormat";
import * as React from "react";
export interface IJSONFormatProps extends ITruncatedFormatProps {

@@ -9,0 +4,0 @@ children?: any;

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -25,6 +27,6 @@ "use strict";

};
var truncatedFormat_1 = require("./truncatedFormat");
var classNames = require("classnames");
var PureRender = require("pure-render-decorator");
var React = require("react");
var truncatedFormat_1 = require("./truncatedFormat");
var JSONFormat = (function (_super) {

@@ -60,2 +62,2 @@ __extends(JSONFormat, _super);

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jZWxsL2Zvcm1hdHMvanNvbkZvcm1hdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxnQ0FBdUQsbUJBQW1CLENBQUMsQ0FBQTtBQUMzRSxJQUFZLFVBQVUsV0FBTSxZQUFZLENBQUMsQ0FBQTtBQUN6QyxJQUFZLFVBQVUsV0FBTSx1QkFBdUIsQ0FBQyxDQUFBO0FBQ3BELElBQVksS0FBSyxXQUFNLE9BQU8sQ0FBQyxDQUFBO0FBc0IvQjtJQUFnQyw4QkFBcUM7SUFBckU7UUFBZ0MsOEJBQXFDO0lBbUJyRSxDQUFDO0lBYlUsMkJBQU0sR0FBYjtRQUNJLElBQUEsZUFBK0QsRUFBdkQsc0JBQVEsRUFBRSw0Q0FBbUIsRUFBRSx3QkFBUyxDQUFnQjtRQUNoRSxJQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDakQsZUFBZSxFQUFFLFFBQVEsS0FBSyxTQUFTLElBQUksUUFBUSxLQUFLLElBQUk7U0FDN0QsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQixJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDdEQsWUFBWSxHQUFHLFFBQVEsQ0FBQztRQUM1QixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixZQUFZLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxNQUFNLENBQUMsb0JBQUMsaUNBQWUsZUFBSyxJQUFJLENBQUMsS0FBSyxHQUFFLFNBQVMsRUFBRSxTQUFVLElBQUUsWUFBYSxDQUFrQixDQUFDO0lBQ25HLENBQUM7SUFqQmEsdUJBQVksR0FBcUI7UUFDM0MsbUJBQW1CLEVBQUUsSUFBSTtRQUN6QixTQUFTLEVBQUUsVUFBQyxHQUFRLElBQUssT0FBQSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUE5QixDQUE4QjtLQUMxRCxDQUFDO0lBTE47UUFBQyxVQUFVO2tCQUFBO0lBb0JYLGlCQUFDO0FBQUQsQ0FuQkEsQUFtQkMsQ0FuQitCLEtBQUssQ0FBQyxTQUFTLEdBbUI5QztBQW5CWSxrQkFBVSxhQW1CdEIsQ0FBQSIsImZpbGUiOiJjZWxsL2Zvcm1hdHMvanNvbkZvcm1hdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIC0gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKi9cblxuaW1wb3J0IHsgSVRydW5jYXRlZEZvcm1hdFByb3BzLCBUcnVuY2F0ZWRGb3JtYXQgfSBmcm9tIFwiLi90cnVuY2F0ZWRGb3JtYXRcIjtcbmltcG9ydCAqIGFzIGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCAqIGFzIFB1cmVSZW5kZXIgZnJvbSBcInB1cmUtcmVuZGVyLWRlY29yYXRvclwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgaW50ZXJmYWNlIElKU09ORm9ybWF0UHJvcHMgZXh0ZW5kcyBJVHJ1bmNhdGVkRm9ybWF0UHJvcHMge1xuICAgIGNoaWxkcmVuPzogYW55O1xuXG4gICAgLyoqXG4gICAgICogQnkgZGVmYXVsdCB3ZSBvbWl0IHN0cmluZ2lmeWluZyBuYXRpdmUgamF2YXNjcmlwdCBzdHJpbmdzIHNpbmNlXG4gICAgICogYEpTT04uc3RyaW5naWZ5YCBhd2t3YXJkbHkgYWRkcyBkb3VibGUtcXVvdGVzIHRvIHRoZSBkaXNwbGF5IHZhbHVlLlxuICAgICAqIFRoaXMgYmVoYXZpb3IgY2FuIGJlIHR1cm5lZCBvZmYgYnkgc2V0dGluZyB0aGlzIGJvb2xlYW4gdG8gZmFsc2UuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIG9taXRRdW90ZXNPblN0cmluZ3M/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxseSBzcGVjaWZ5IHRoZSBzdHJpbmdpZnkgbWV0aG9kLiBEZWZhdWx0IGlzIGBKU09OLnN0cmluZ2lmeWBcbiAgICAgKiB3aXRoIDIgc3BhY2UgaW5kZW50YXRpb24uXG4gICAgICovXG4gICAgc3RyaW5naWZ5PzogKG9iajogYW55KSA9PiBzdHJpbmc7XG59XG5cbkBQdXJlUmVuZGVyXG5leHBvcnQgY2xhc3MgSlNPTkZvcm1hdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJSlNPTkZvcm1hdFByb3BzLCB7fT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmYXVsdFByb3BzOiBJSlNPTkZvcm1hdFByb3BzID0ge1xuICAgICAgICBvbWl0UXVvdGVzT25TdHJpbmdzOiB0cnVlLFxuICAgICAgICBzdHJpbmdpZnk6IChvYmo6IGFueSkgPT4gKEpTT04uc3RyaW5naWZ5KG9iaiwgbnVsbCwgMikpLFxuICAgIH07XG5cbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IGNoaWxkcmVuLCBvbWl0UXVvdGVzT25TdHJpbmdzLCBzdHJpbmdpZnkgfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGNsYXNzTmFtZXModGhpcy5wcm9wcy5jbGFzc05hbWUsIHtcbiAgICAgICAgICBcImJwLXRhYmxlLW51bGxcIjogY2hpbGRyZW4gPT09IHVuZGVmaW5lZCB8fCBjaGlsZHJlbiA9PT0gbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBkaXNwbGF5VmFsdWUgPSBcIlwiO1xuICAgICAgICBpZiAob21pdFF1b3Rlc09uU3RyaW5ncyAmJiB0eXBlb2YgY2hpbGRyZW4gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9IGNoaWxkcmVuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gc3RyaW5naWZ5KGNoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gPFRydW5jYXRlZEZvcm1hdCB7Li4udGhpcy5wcm9wc30gY2xhc3NOYW1lPXtjbGFzc05hbWV9PntkaXNwbGF5VmFsdWV9PC9UcnVuY2F0ZWRGb3JtYXQ+O1xuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jZWxsL2Zvcm1hdHMvanNvbkZvcm1hdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILElBQVksVUFBVSxXQUFNLFlBQVksQ0FBQyxDQUFBO0FBQ3pDLElBQVksVUFBVSxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFDcEQsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUFDL0IsZ0NBQXVELG1CQUFtQixDQUFDLENBQUE7QUFzQjNFO0lBQWdDLDhCQUFxQztJQUFyRTtRQUFnQyw4QkFBcUM7SUFtQnJFLENBQUM7SUFiVSwyQkFBTSxHQUFiO1FBQ0ksSUFBQSxlQUErRCxFQUF2RCxzQkFBUSxFQUFFLDRDQUFtQixFQUFFLHdCQUFTLENBQWdCO1FBQ2hFLElBQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUNqRCxlQUFlLEVBQUUsUUFBUSxLQUFLLFNBQVMsSUFBSSxRQUFRLEtBQUssSUFBSTtTQUM3RCxDQUFDLENBQUM7UUFDSCxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdEIsRUFBRSxDQUFDLENBQUMsbUJBQW1CLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN0RCxZQUFZLEdBQUcsUUFBUSxDQUFDO1FBQzVCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLFlBQVksR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELE1BQU0sQ0FBQyxvQkFBQyxpQ0FBZSxlQUFLLElBQUksQ0FBQyxLQUFLLEdBQUUsU0FBUyxFQUFFLFNBQVUsSUFBRSxZQUFhLENBQWtCLENBQUM7SUFDbkcsQ0FBQztJQWpCYSx1QkFBWSxHQUFxQjtRQUMzQyxtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLFNBQVMsRUFBRSxVQUFDLEdBQVEsSUFBSyxPQUFBLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQTlCLENBQThCO0tBQzFELENBQUM7SUFMTjtRQUFDLFVBQVU7a0JBQUE7SUFvQlgsaUJBQUM7QUFBRCxDQW5CQSxBQW1CQyxDQW5CK0IsS0FBSyxDQUFDLFNBQVMsR0FtQjlDO0FBbkJZLGtCQUFVLGFBbUJ0QixDQUFBIiwiZmlsZSI6ImNlbGwvZm9ybWF0cy9qc29uRm9ybWF0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMyBMaWNlbnNlIGFzIG1vZGlmaWVkICh0aGUg4oCcTGljZW5zZeKAnSk7IHlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIGxpY2Vuc2UgYXQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKiBhbmQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9QQVRFTlRTXG4gKi9cblxuaW1wb3J0ICogYXMgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0ICogYXMgUHVyZVJlbmRlciBmcm9tIFwicHVyZS1yZW5kZXItZGVjb3JhdG9yXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IElUcnVuY2F0ZWRGb3JtYXRQcm9wcywgVHJ1bmNhdGVkRm9ybWF0IH0gZnJvbSBcIi4vdHJ1bmNhdGVkRm9ybWF0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgaW50ZXJmYWNlIElKU09ORm9ybWF0UHJvcHMgZXh0ZW5kcyBJVHJ1bmNhdGVkRm9ybWF0UHJvcHMge1xuICAgIGNoaWxkcmVuPzogYW55O1xuXG4gICAgLyoqXG4gICAgICogQnkgZGVmYXVsdCB3ZSBvbWl0IHN0cmluZ2lmeWluZyBuYXRpdmUgamF2YXNjcmlwdCBzdHJpbmdzIHNpbmNlXG4gICAgICogYEpTT04uc3RyaW5naWZ5YCBhd2t3YXJkbHkgYWRkcyBkb3VibGUtcXVvdGVzIHRvIHRoZSBkaXNwbGF5IHZhbHVlLlxuICAgICAqIFRoaXMgYmVoYXZpb3IgY2FuIGJlIHR1cm5lZCBvZmYgYnkgc2V0dGluZyB0aGlzIGJvb2xlYW4gdG8gZmFsc2UuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIG9taXRRdW90ZXNPblN0cmluZ3M/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxseSBzcGVjaWZ5IHRoZSBzdHJpbmdpZnkgbWV0aG9kLiBEZWZhdWx0IGlzIGBKU09OLnN0cmluZ2lmeWBcbiAgICAgKiB3aXRoIDIgc3BhY2UgaW5kZW50YXRpb24uXG4gICAgICovXG4gICAgc3RyaW5naWZ5PzogKG9iajogYW55KSA9PiBzdHJpbmc7XG59XG5cbkBQdXJlUmVuZGVyXG5leHBvcnQgY2xhc3MgSlNPTkZvcm1hdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJSlNPTkZvcm1hdFByb3BzLCB7fT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmYXVsdFByb3BzOiBJSlNPTkZvcm1hdFByb3BzID0ge1xuICAgICAgICBvbWl0UXVvdGVzT25TdHJpbmdzOiB0cnVlLFxuICAgICAgICBzdHJpbmdpZnk6IChvYmo6IGFueSkgPT4gKEpTT04uc3RyaW5naWZ5KG9iaiwgbnVsbCwgMikpLFxuICAgIH07XG5cbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IGNoaWxkcmVuLCBvbWl0UXVvdGVzT25TdHJpbmdzLCBzdHJpbmdpZnkgfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGNsYXNzTmFtZXModGhpcy5wcm9wcy5jbGFzc05hbWUsIHtcbiAgICAgICAgICBcImJwLXRhYmxlLW51bGxcIjogY2hpbGRyZW4gPT09IHVuZGVmaW5lZCB8fCBjaGlsZHJlbiA9PT0gbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBkaXNwbGF5VmFsdWUgPSBcIlwiO1xuICAgICAgICBpZiAob21pdFF1b3Rlc09uU3RyaW5ncyAmJiB0eXBlb2YgY2hpbGRyZW4gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9IGNoaWxkcmVuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gc3RyaW5naWZ5KGNoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gPFRydW5jYXRlZEZvcm1hdCB7Li4udGhpcy5wcm9wc30gY2xhc3NOYW1lPXtjbGFzc05hbWV9PntkaXNwbGF5VmFsdWV9PC9UcnVuY2F0ZWRGb3JtYXQ+O1xuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==

@@ -1,5 +0,6 @@

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -6,0 +7,0 @@ import { IProps } from "@blueprintjs/core";

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -62,2 +64,2 @@ "use strict";

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jZWxsL2Zvcm1hdHMvdHJ1bmNhdGVkRm9ybWF0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7Ozs7Ozs7Ozs7Ozs7QUFFSCxxQkFBMEMsbUJBQW1CLENBQUMsQ0FBQTtBQUM5RCxJQUFZLFVBQVUsV0FBTSxZQUFZLENBQUMsQ0FBQTtBQUN6QyxJQUFZLFVBQVUsV0FBTSx1QkFBdUIsQ0FBQyxDQUFBO0FBQ3BELElBQVksS0FBSyxXQUFNLE9BQU8sQ0FBQyxDQUFBO0FBMkIvQjtJQUFxQyxtQ0FBMEM7SUFBL0U7UUFBcUMsOEJBQTBDO0lBMEMvRSxDQUFDO0lBbkNVLGdDQUFNLEdBQWI7UUFDSSxJQUFBLGVBQStFLEVBQXZFLHNCQUFRLEVBQUUsOEJBQVksRUFBRSxrQ0FBYyxFQUFFLHNDQUFnQixDQUFnQjtRQUNoRixJQUFNLE9BQU8sR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQzlCLEVBQUUsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ3hELElBQU0sY0FBYyxHQUFHLFVBQVUsQ0FDN0IsNEJBQTRCLEVBQzVCLFlBQVksR0FBRyxpQ0FBaUMsR0FBRyxvQ0FBb0MsQ0FDMUYsQ0FBQztZQUNGLElBQU0sY0FBYyxHQUFHLHFCQUFDLEdBQUcsSUFBQyxTQUFTLEVBQUUsY0FBZSxHQUFFLFFBQVMsQ0FBTSxDQUFDO1lBQ3hFLElBQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1lBQ2hGLElBQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO1lBQzFFLElBQU0sV0FBVyxHQUFHLENBQUM7b0JBQ2pCLFVBQVUsRUFBRSxVQUFVO29CQUN0QixHQUFHLEVBQUUsSUFBSTtvQkFDVCxFQUFFLEVBQUUsUUFBUTtpQkFDZixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsQ0FDSCxxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFFLFNBQVU7Z0JBQ3RCLHFCQUFDLEdBQUcsSUFBQyxTQUFTLEVBQUMsMEJBQTBCLEdBQUUsU0FBVSxDQUFNO2dCQUMzRCxvQkFBQyxjQUFPLEdBQ0osU0FBUyxFQUFDLG1DQUFtQyxFQUM3QyxXQUFXLEVBQUUsV0FBWSxFQUN6QixPQUFPLEVBQUUsY0FBZSxFQUN4QixRQUFRLEVBQUUsZUFBUSxDQUFDLE1BQU8sRUFDMUIsd0JBQXdCLEVBQUUsSUFBSztvQkFFL0IscUJBQUMsSUFBSSxJQUFDLFNBQVMsRUFBQywrQkFBK0IsRUFBRTtpQkFDM0MsQ0FDUixDQUNULENBQUM7UUFDTixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixJQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUseUJBQXlCLENBQUMsQ0FBQztZQUM5RSxNQUFNLENBQUMscUJBQUMsR0FBRyxJQUFDLFNBQVMsRUFBRSxTQUFVLEdBQUUsT0FBUSxDQUFNLENBQUM7UUFDdEQsQ0FBQztJQUNMLENBQUM7SUF4Q2EsNEJBQVksR0FBMEI7UUFDaEQsWUFBWSxFQUFFLElBQUk7UUFDbEIsY0FBYyxFQUFFLEVBQUU7UUFDbEIsZ0JBQWdCLEVBQUUsS0FBSztLQUMxQixDQUFDO0lBTk47UUFBQyxVQUFVO3VCQUFBO0lBMkNYLHNCQUFDO0FBQUQsQ0ExQ0EsQUEwQ0MsQ0ExQ29DLEtBQUssQ0FBQyxTQUFTLEdBMENuRDtBQTFDWSx1QkFBZSxrQkEwQzNCLENBQUEiLCJmaWxlIjoiY2VsbC9mb3JtYXRzL3RydW5jYXRlZEZvcm1hdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIC0gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKi9cblxuaW1wb3J0IHsgSVByb3BzLCBQb3BvdmVyLCBQb3NpdGlvbiB9IGZyb20gXCJAYmx1ZXByaW50anMvY29yZVwiO1xuaW1wb3J0ICogYXMgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0ICogYXMgUHVyZVJlbmRlciBmcm9tIFwicHVyZS1yZW5kZXItZGVjb3JhdG9yXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJVHJ1bmNhdGVkRm9ybWF0UHJvcHMgZXh0ZW5kcyBJUHJvcHMge1xuICAgIGNoaWxkcmVuPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgcG9wb3ZlciBjb250ZW50IHN0eWxlIHRvIGB3aGl0ZS1zcGFjZTogcHJlYCBpZiBgdHJ1ZWAgb3JcbiAgICAgKiBgd2hpdGUtc3BhY2U6IG5vcm1hbGAgaWYgYGZhbHNlYC5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHJlZm9ybWF0dGVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIE51bWJlciBvZiBjaGFyYWN0ZXJzIHRoYXQgYXJlIGRpc3BsYXllZCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkIGFuZCBhcHBlbmRlZCB3aXRoXG4gICAgICogdGhlIGB0cnVuY2F0aW9uU3VmZml4YCBwcm9wLiBBIHZhbHVlIG9mIDAgd2lsbCBkaXNhYmxlIHRydW5jYXRpb24uXG4gICAgICogQGRlZmF1bHQgODBcbiAgICAgKi9cbiAgICB0cnVuY2F0ZUxlbmd0aD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzdHJpbmcgdGhhdCBpcyBhcHBlbmRlZCB0byB0aGUgZGlzcGxheSBzdHJpbmcgaWYgaXQgaXMgdHJ1bmNhdGVkLlxuICAgICAqIEBkZWZhdWx0IFwiLi4uXCJcbiAgICAgKi9cbiAgICB0cnVuY2F0aW9uU3VmZml4Pzogc3RyaW5nO1xufVxuXG5AUHVyZVJlbmRlclxuZXhwb3J0IGNsYXNzIFRydW5jYXRlZEZvcm1hdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJVHJ1bmNhdGVkRm9ybWF0UHJvcHMsIHt9PiB7XG4gICAgcHVibGljIHN0YXRpYyBkZWZhdWx0UHJvcHM6IElUcnVuY2F0ZWRGb3JtYXRQcm9wcyA9IHtcbiAgICAgICAgcHJlZm9ybWF0dGVkOiB0cnVlLFxuICAgICAgICB0cnVuY2F0ZUxlbmd0aDogODAsXG4gICAgICAgIHRydW5jYXRpb25TdWZmaXg6IFwiLi4uXCIsXG4gICAgfTtcblxuICAgIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHByZWZvcm1hdHRlZCwgdHJ1bmNhdGVMZW5ndGgsIHRydW5jYXRpb25TdWZmaXggfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBcIlwiICsgY2hpbGRyZW47XG4gICAgICAgIGlmICh0cnVuY2F0ZUxlbmd0aCA+IDAgJiYgY29udGVudC5sZW5ndGggPiB0cnVuY2F0ZUxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgcG9wb3ZlckNsYXNzZXMgPSBjbGFzc05hbWVzKFxuICAgICAgICAgICAgICAgIFwiYnAtdGFibGUtdHJ1bmNhdGVkLXBvcG92ZXJcIixcbiAgICAgICAgICAgICAgICBwcmVmb3JtYXR0ZWQgPyBcImJwLXRhYmxlLXBvcG92ZXItd2hpdGVzcGFjZS1wcmVcIiA6IFwiYnAtdGFibGUtcG9wb3Zlci13aGl0ZXNwYWNlLW5vcm1hbFwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgcG9wb3ZlckNvbnRlbnQgPSA8ZGl2IGNsYXNzTmFtZT17cG9wb3ZlckNsYXNzZXN9PntjaGlsZHJlbn08L2Rpdj47XG4gICAgICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBjbGFzc05hbWVzKHRoaXMucHJvcHMuY2xhc3NOYW1lLCBcImJwLXRhYmxlLXRydW5jYXRlZC1mb3JtYXRcIik7XG4gICAgICAgICAgICBjb25zdCB0cnVuY2F0ZWQgPSBjb250ZW50LnN1YnN0cmluZygwLCB0cnVuY2F0ZUxlbmd0aCkgKyB0cnVuY2F0aW9uU3VmZml4O1xuICAgICAgICAgICAgY29uc3QgY29uc3RyYWludHMgPSBbe1xuICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQ6IFwidG9nZXRoZXJcIixcbiAgICAgICAgICAgICAgICBwaW46IHRydWUsXG4gICAgICAgICAgICAgICAgdG86IFwid2luZG93XCIsXG4gICAgICAgICAgICB9XTtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnAtdGFibGUtdHJ1bmNhdGVkLXZhbHVlXCI+e3RydW5jYXRlZH08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPFBvcG92ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJwLXRhYmxlLXRydW5jYXRlZC1wb3BvdmVyLXRhcmdldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdHJhaW50cz17Y29uc3RyYWludHN9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50PXtwb3BvdmVyQ29udGVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uPXtQb3NpdGlvbi5CT1RUT019XG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VTbWFydEFycm93UG9zaXRpb25pbmc9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInB0LWljb24tc3RhbmRhcmQgcHQtaWNvbi1tb3JlXCIvPlxuICAgICAgICAgICAgICAgICAgICA8L1BvcG92ZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gY2xhc3NOYW1lcyh0aGlzLnByb3BzLmNsYXNzTmFtZSwgXCJicC10YWJsZS10cnVuY2F0ZWQtdGV4dFwiKTtcbiAgICAgICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT57Y29udGVudH08L2Rpdj47XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jZWxsL2Zvcm1hdHMvdHJ1bmNhdGVkRm9ybWF0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRzs7Ozs7Ozs7Ozs7OztBQUVILHFCQUEwQyxtQkFBbUIsQ0FBQyxDQUFBO0FBQzlELElBQVksVUFBVSxXQUFNLFlBQVksQ0FBQyxDQUFBO0FBQ3pDLElBQVksVUFBVSxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFDcEQsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUEyQi9CO0lBQXFDLG1DQUEwQztJQUEvRTtRQUFxQyw4QkFBMEM7SUEwQy9FLENBQUM7SUFuQ1UsZ0NBQU0sR0FBYjtRQUNJLElBQUEsZUFBK0UsRUFBdkUsc0JBQVEsRUFBRSw4QkFBWSxFQUFFLGtDQUFjLEVBQUUsc0NBQWdCLENBQWdCO1FBQ2hGLElBQU0sT0FBTyxHQUFHLEVBQUUsR0FBRyxRQUFRLENBQUM7UUFDOUIsRUFBRSxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsSUFBTSxjQUFjLEdBQUcsVUFBVSxDQUM3Qiw0QkFBNEIsRUFDNUIsWUFBWSxHQUFHLGlDQUFpQyxHQUFHLG9DQUFvQyxDQUMxRixDQUFDO1lBQ0YsSUFBTSxjQUFjLEdBQUcscUJBQUMsR0FBRyxJQUFDLFNBQVMsRUFBRSxjQUFlLEdBQUUsUUFBUyxDQUFNLENBQUM7WUFDeEUsSUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLDJCQUEyQixDQUFDLENBQUM7WUFDaEYsSUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7WUFDMUUsSUFBTSxXQUFXLEdBQUcsQ0FBQztvQkFDakIsVUFBVSxFQUFFLFVBQVU7b0JBQ3RCLEdBQUcsRUFBRSxJQUFJO29CQUNULEVBQUUsRUFBRSxRQUFRO2lCQUNmLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQyxDQUNILHFCQUFDLEdBQUcsSUFBQyxTQUFTLEVBQUUsU0FBVTtnQkFDdEIscUJBQUMsR0FBRyxJQUFDLFNBQVMsRUFBQywwQkFBMEIsR0FBRSxTQUFVLENBQU07Z0JBQzNELG9CQUFDLGNBQU8sR0FDSixTQUFTLEVBQUMsbUNBQW1DLEVBQzdDLFdBQVcsRUFBRSxXQUFZLEVBQ3pCLE9BQU8sRUFBRSxjQUFlLEVBQ3hCLFFBQVEsRUFBRSxlQUFRLENBQUMsTUFBTyxFQUMxQix3QkFBd0IsRUFBRSxJQUFLO29CQUUvQixxQkFBQyxJQUFJLElBQUMsU0FBUyxFQUFDLCtCQUErQixFQUFFO2lCQUMzQyxDQUNSLENBQ1QsQ0FBQztRQUNOLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1lBQzlFLE1BQU0sQ0FBQyxxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFFLFNBQVUsR0FBRSxPQUFRLENBQU0sQ0FBQztRQUN0RCxDQUFDO0lBQ0wsQ0FBQztJQXhDYSw0QkFBWSxHQUEwQjtRQUNoRCxZQUFZLEVBQUUsSUFBSTtRQUNsQixjQUFjLEVBQUUsRUFBRTtRQUNsQixnQkFBZ0IsRUFBRSxLQUFLO0tBQzFCLENBQUM7SUFOTjtRQUFDLFVBQVU7dUJBQUE7SUEyQ1gsc0JBQUM7QUFBRCxDQTFDQSxBQTBDQyxDQTFDb0MsS0FBSyxDQUFDLFNBQVMsR0EwQ25EO0FBMUNZLHVCQUFlLGtCQTBDM0IsQ0FBQSIsImZpbGUiOiJjZWxsL2Zvcm1hdHMvdHJ1bmNhdGVkRm9ybWF0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMyBMaWNlbnNlIGFzIG1vZGlmaWVkICh0aGUg4oCcTGljZW5zZeKAnSk7IHlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIGxpY2Vuc2UgYXQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKiBhbmQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9QQVRFTlRTXG4gKi9cblxuaW1wb3J0IHsgSVByb3BzLCBQb3BvdmVyLCBQb3NpdGlvbiB9IGZyb20gXCJAYmx1ZXByaW50anMvY29yZVwiO1xuaW1wb3J0ICogYXMgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0ICogYXMgUHVyZVJlbmRlciBmcm9tIFwicHVyZS1yZW5kZXItZGVjb3JhdG9yXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJVHJ1bmNhdGVkRm9ybWF0UHJvcHMgZXh0ZW5kcyBJUHJvcHMge1xuICAgIGNoaWxkcmVuPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgcG9wb3ZlciBjb250ZW50IHN0eWxlIHRvIGB3aGl0ZS1zcGFjZTogcHJlYCBpZiBgdHJ1ZWAgb3JcbiAgICAgKiBgd2hpdGUtc3BhY2U6IG5vcm1hbGAgaWYgYGZhbHNlYC5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHJlZm9ybWF0dGVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIE51bWJlciBvZiBjaGFyYWN0ZXJzIHRoYXQgYXJlIGRpc3BsYXllZCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkIGFuZCBhcHBlbmRlZCB3aXRoXG4gICAgICogdGhlIGB0cnVuY2F0aW9uU3VmZml4YCBwcm9wLiBBIHZhbHVlIG9mIDAgd2lsbCBkaXNhYmxlIHRydW5jYXRpb24uXG4gICAgICogQGRlZmF1bHQgODBcbiAgICAgKi9cbiAgICB0cnVuY2F0ZUxlbmd0aD86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBzdHJpbmcgdGhhdCBpcyBhcHBlbmRlZCB0byB0aGUgZGlzcGxheSBzdHJpbmcgaWYgaXQgaXMgdHJ1bmNhdGVkLlxuICAgICAqIEBkZWZhdWx0IFwiLi4uXCJcbiAgICAgKi9cbiAgICB0cnVuY2F0aW9uU3VmZml4Pzogc3RyaW5nO1xufVxuXG5AUHVyZVJlbmRlclxuZXhwb3J0IGNsYXNzIFRydW5jYXRlZEZvcm1hdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJVHJ1bmNhdGVkRm9ybWF0UHJvcHMsIHt9PiB7XG4gICAgcHVibGljIHN0YXRpYyBkZWZhdWx0UHJvcHM6IElUcnVuY2F0ZWRGb3JtYXRQcm9wcyA9IHtcbiAgICAgICAgcHJlZm9ybWF0dGVkOiB0cnVlLFxuICAgICAgICB0cnVuY2F0ZUxlbmd0aDogODAsXG4gICAgICAgIHRydW5jYXRpb25TdWZmaXg6IFwiLi4uXCIsXG4gICAgfTtcblxuICAgIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHByZWZvcm1hdHRlZCwgdHJ1bmNhdGVMZW5ndGgsIHRydW5jYXRpb25TdWZmaXggfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBcIlwiICsgY2hpbGRyZW47XG4gICAgICAgIGlmICh0cnVuY2F0ZUxlbmd0aCA+IDAgJiYgY29udGVudC5sZW5ndGggPiB0cnVuY2F0ZUxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgcG9wb3ZlckNsYXNzZXMgPSBjbGFzc05hbWVzKFxuICAgICAgICAgICAgICAgIFwiYnAtdGFibGUtdHJ1bmNhdGVkLXBvcG92ZXJcIixcbiAgICAgICAgICAgICAgICBwcmVmb3JtYXR0ZWQgPyBcImJwLXRhYmxlLXBvcG92ZXItd2hpdGVzcGFjZS1wcmVcIiA6IFwiYnAtdGFibGUtcG9wb3Zlci13aGl0ZXNwYWNlLW5vcm1hbFwiLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IHBvcG92ZXJDb250ZW50ID0gPGRpdiBjbGFzc05hbWU9e3BvcG92ZXJDbGFzc2VzfT57Y2hpbGRyZW59PC9kaXY+O1xuICAgICAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gY2xhc3NOYW1lcyh0aGlzLnByb3BzLmNsYXNzTmFtZSwgXCJicC10YWJsZS10cnVuY2F0ZWQtZm9ybWF0XCIpO1xuICAgICAgICAgICAgY29uc3QgdHJ1bmNhdGVkID0gY29udGVudC5zdWJzdHJpbmcoMCwgdHJ1bmNhdGVMZW5ndGgpICsgdHJ1bmNhdGlvblN1ZmZpeDtcbiAgICAgICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gW3tcbiAgICAgICAgICAgICAgICBhdHRhY2htZW50OiBcInRvZ2V0aGVyXCIsXG4gICAgICAgICAgICAgICAgcGluOiB0cnVlLFxuICAgICAgICAgICAgICAgIHRvOiBcIndpbmRvd1wiLFxuICAgICAgICAgICAgfV07XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJwLXRhYmxlLXRydW5jYXRlZC12YWx1ZVwiPnt0cnVuY2F0ZWR9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxQb3BvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJicC10YWJsZS10cnVuY2F0ZWQtcG9wb3Zlci10YXJnZXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludHM9e2NvbnN0cmFpbnRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudD17cG9wb3ZlckNvbnRlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj17UG9zaXRpb24uQk9UVE9NfVxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlU21hcnRBcnJvd1Bvc2l0aW9uaW5nPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJwdC1pY29uLXN0YW5kYXJkIHB0LWljb24tbW9yZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGNsYXNzTmFtZXModGhpcy5wcm9wcy5jbGFzc05hbWUsIFwiYnAtdGFibGUtdHJ1bmNhdGVkLXRleHRcIik7XG4gICAgICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZX0+e2NvbnRlbnR9PC9kaXY+O1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

@@ -1,10 +0,11 @@

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/
import { IProps } from "@blueprintjs/core";
import * as React from "react";
import { ICellRenderer } from "./cell/cell";
import { IColumnHeaderRenderer, IColumnNameProps } from "./headers/columnHeaderCell";
import { IProps } from "@blueprintjs/core";
import * as React from "react";
export interface IColumnProps extends IColumnNameProps, IProps {

@@ -11,0 +12,0 @@ /**

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -11,4 +13,4 @@ "use strict";

};
var React = require("react");
var cell_1 = require("./cell/cell");
var React = require("react");
var Column = (function (_super) {

@@ -26,2 +28,2 @@ __extends(Column, _super);

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2x1bW4udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRzs7Ozs7OztBQUVILHFCQUFpRCxhQUFhLENBQUMsQ0FBQTtBQUcvRCxJQUFZLEtBQUssV0FBTSxPQUFPLENBQUMsQ0FBQTtBQXlCL0I7SUFBNEIsMEJBQWlDO0lBQTdEO1FBQTRCLDhCQUFpQztJQUk3RCxDQUFDO0lBSGlCLG1CQUFZLEdBQUc7UUFDekIsVUFBVSxFQUFFLHdCQUFpQjtLQUNoQyxDQUFDO0lBQ04sYUFBQztBQUFELENBSkEsQUFJQyxDQUoyQixLQUFLLENBQUMsU0FBUyxHQUkxQztBQUpZLGNBQU0sU0FJbEIsQ0FBQSIsImZpbGUiOiJjb2x1bW4uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAtIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbmltcG9ydCB7IElDZWxsUmVuZGVyZXIsIGVtcHR5Q2VsbFJlbmRlcmVyIH0gZnJvbSBcIi4vY2VsbC9jZWxsXCI7XG5pbXBvcnQgeyBJQ29sdW1uSGVhZGVyUmVuZGVyZXIsIElDb2x1bW5OYW1lUHJvcHMgfSBmcm9tIFwiLi9oZWFkZXJzL2NvbHVtbkhlYWRlckNlbGxcIjtcbmltcG9ydCB7IElQcm9wcyB9IGZyb20gXCJAYmx1ZXByaW50anMvY29yZVwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtblByb3BzIGV4dGVuZHMgSUNvbHVtbk5hbWVQcm9wcywgSVByb3BzIHtcbiAgICAvKipcbiAgICAgKiBBIHVuaXF1ZSBJRCwgc2ltaWxhciB0byBSZWFjdCdzIGBrZXlgLiBUaGlzIGlzIHVzZWQsIGZvciBleGFtcGxlLCB0b1xuICAgICAqIG1haW50YWluIHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBiZXR3ZWVuIHJlLW9yZGVyaW5nIGFuZCByZW5kZXJpbmcuIElmIG5vXG4gICAgICogSURzIGFyZSBwcm92aWRlZCwgd2lkdGhzIHdpbGwgYmUgcGVyc2lzdGVkIGFjcm9zcyByZW5kZXJzIHVzaW5nIGFcbiAgICAgKiBjb2x1bW4ncyBpbmRleCBvbmx5LiBDb2x1bW5zIHdpZHRocyBjYW4gYWxzbyBiZSBwZXJzaXN0ZWQgb3V0c2lkZSB0aGVcbiAgICAgKiBgVGFibGVgIGNvbXBvbmVudCwgdGhlbiBwYXNzZWQgaW4gd2l0aCB0aGUgYGNvbHVtbldpZHRoc2AgcHJvcC5cbiAgICAgKi9cbiAgICBpZD86IHN0cmluZyB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEFuIGluc3RhbmNlIG9mIGBJQ2VsbFJlbmRlcmVyYCwgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgcm93IGFuZCBjb2x1bW5cbiAgICAgKiBpbmRleCwgYW5kIHJldHVybnMgYSBgQ2VsbGAgUmVhY3QgZWxlbWVudFxuICAgICAqL1xuICAgIHJlbmRlckNlbGw/OiBJQ2VsbFJlbmRlcmVyO1xuXG4gICAgLyoqXG4gICAgICogQW4gaW5zdGFuY2Ugb2YgYElDb2x1bW5IZWFkZXJSZW5kZXJlcmAsIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIGNvbHVtblxuICAgICAqIGluZGV4IGFuZCByZXR1cm5zIGEgYENvbHVtbkhlYWRlckNlbGxgIFJlYWN0IGVsZW1lbnRcbiAgICAgKi9cbiAgICByZW5kZXJDb2x1bW5IZWFkZXI/OiBJQ29sdW1uSGVhZGVyUmVuZGVyZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SUNvbHVtblByb3BzLCB7fT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICByZW5kZXJDZWxsOiBlbXB0eUNlbGxSZW5kZXJlcixcbiAgICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2x1bW4udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHOzs7Ozs7O0FBR0gsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUFDL0IscUJBQWlELGFBQWEsQ0FBQyxDQUFBO0FBMEIvRDtJQUE0QiwwQkFBaUM7SUFBN0Q7UUFBNEIsOEJBQWlDO0lBSTdELENBQUM7SUFIaUIsbUJBQVksR0FBRztRQUN6QixVQUFVLEVBQUUsd0JBQWlCO0tBQ2hDLENBQUM7SUFDTixhQUFDO0FBQUQsQ0FKQSxBQUlDLENBSjJCLEtBQUssQ0FBQyxTQUFTLEdBSTFDO0FBSlksY0FBTSxTQUlsQixDQUFBIiwiZmlsZSI6ImNvbHVtbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQlNELTMgTGljZW5zZSBhcyBtb2RpZmllZCAodGhlIOKAnExpY2Vuc2XigJ0pOyB5b3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBsaWNlbnNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvUEFURU5UU1xuICovXG5cbmltcG9ydCB7IElQcm9wcyB9IGZyb20gXCJAYmx1ZXByaW50anMvY29yZVwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBlbXB0eUNlbGxSZW5kZXJlciwgSUNlbGxSZW5kZXJlciB9IGZyb20gXCIuL2NlbGwvY2VsbFwiO1xuaW1wb3J0IHsgSUNvbHVtbkhlYWRlclJlbmRlcmVyLCBJQ29sdW1uTmFtZVByb3BzIH0gZnJvbSBcIi4vaGVhZGVycy9jb2x1bW5IZWFkZXJDZWxsXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtblByb3BzIGV4dGVuZHMgSUNvbHVtbk5hbWVQcm9wcywgSVByb3BzIHtcbiAgICAvKipcbiAgICAgKiBBIHVuaXF1ZSBJRCwgc2ltaWxhciB0byBSZWFjdCdzIGBrZXlgLiBUaGlzIGlzIHVzZWQsIGZvciBleGFtcGxlLCB0b1xuICAgICAqIG1haW50YWluIHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBiZXR3ZWVuIHJlLW9yZGVyaW5nIGFuZCByZW5kZXJpbmcuIElmIG5vXG4gICAgICogSURzIGFyZSBwcm92aWRlZCwgd2lkdGhzIHdpbGwgYmUgcGVyc2lzdGVkIGFjcm9zcyByZW5kZXJzIHVzaW5nIGFcbiAgICAgKiBjb2x1bW4ncyBpbmRleCBvbmx5LiBDb2x1bW5zIHdpZHRocyBjYW4gYWxzbyBiZSBwZXJzaXN0ZWQgb3V0c2lkZSB0aGVcbiAgICAgKiBgVGFibGVgIGNvbXBvbmVudCwgdGhlbiBwYXNzZWQgaW4gd2l0aCB0aGUgYGNvbHVtbldpZHRoc2AgcHJvcC5cbiAgICAgKi9cbiAgICBpZD86IHN0cmluZyB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEFuIGluc3RhbmNlIG9mIGBJQ2VsbFJlbmRlcmVyYCwgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgcm93IGFuZCBjb2x1bW5cbiAgICAgKiBpbmRleCwgYW5kIHJldHVybnMgYSBgQ2VsbGAgUmVhY3QgZWxlbWVudFxuICAgICAqL1xuICAgIHJlbmRlckNlbGw/OiBJQ2VsbFJlbmRlcmVyO1xuXG4gICAgLyoqXG4gICAgICogQW4gaW5zdGFuY2Ugb2YgYElDb2x1bW5IZWFkZXJSZW5kZXJlcmAsIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIGNvbHVtblxuICAgICAqIGluZGV4IGFuZCByZXR1cm5zIGEgYENvbHVtbkhlYWRlckNlbGxgIFJlYWN0IGVsZW1lbnRcbiAgICAgKi9cbiAgICByZW5kZXJDb2x1bW5IZWFkZXI/OiBJQ29sdW1uSGVhZGVyUmVuZGVyZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SUNvbHVtblByb3BzLCB7fT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICByZW5kZXJDZWxsOiBlbXB0eUNlbGxSZW5kZXJlcixcbiAgICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -5,0 +7,0 @@ export declare const Clipboard: {

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -113,2 +115,2 @@ "use strict";

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24vY2xpcGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRzs7QUFFSCwwQkFBMEI7QUFFYixpQkFBUyxHQUFHO0lBQ3JCOzs7T0FHRztJQUNILHFCQUFxQixZQUFDLElBQWlCO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsU0FBUyxZQUFDLEtBQWlCO1FBQ3ZCLElBQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsaUJBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxHQUFHLENBQUMsQ0FBYyxVQUFLLEVBQUwsZUFBSyxFQUFMLG1CQUFLLEVBQUwsSUFBSyxDQUFDO1lBQW5CLElBQU0sR0FBRyxjQUFBO1lBQ1YsSUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDM0QsR0FBRyxDQUFDLENBQWUsVUFBRyxFQUFILFdBQUcsRUFBSCxpQkFBRyxFQUFILElBQUcsQ0FBQztnQkFBbEIsSUFBTSxJQUFJLFlBQUE7Z0JBQ1gsSUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3hELEVBQUUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3pCO1NBQ0o7UUFFRCxJQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQUMsR0FBRyxJQUFLLE9BQUEsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBZCxDQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsTUFBTSxDQUFDLGlCQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLFlBQUMsS0FBYTtRQUNwQixJQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELGlCQUFTLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsTUFBTSxDQUFDLGlCQUFTLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUJHO0lBQ0gsV0FBVyxZQUFDLElBQWlCLEVBQUUsU0FBa0I7UUFDN0MsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBUyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvQixNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCx3RUFBd0U7UUFDeEUsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDO1lBQ0QsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTlDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNwQix5QkFBeUI7Z0JBQ3pCLHlGQUF5RjtnQkFDekYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxVQUFDLENBQVU7b0JBQ3JDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDbkIsSUFBTSxhQUFhLEdBQUksQ0FBUyxDQUFDLGFBQWEsSUFBSyxNQUFjLENBQUMsYUFBYSxDQUFDO29CQUNoRixFQUFFLENBQUMsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDeEIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3dCQUNuRCxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDbkQsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7WUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxDQUFFO1FBQUEsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNYLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakIsQ0FBQztnQkFBUyxDQUFDO1lBQ1AsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxlQUFlO1FBQ1gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLElBQUksUUFBUSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVGLENBQUM7Q0FDSixDQUFDIiwiZmlsZSI6ImNvbW1vbi9jbGlwYm9hcmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAtIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5cbmV4cG9ydCBjb25zdCBDbGlwYm9hcmQgPSB7XG4gICAgLyoqXG4gICAgICogT3ZlcnJpZGVzIHRoZSBpbmhlcml0ZWQgQ1NTIG9mIHRoZSBlbGVtZW50IHRvIG1ha2Ugc3VyZSBpdCBpc1xuICAgICAqIHNlbGVjdGFibGUuIFRoaXMgbWV0aG9kIGFsc28gbWFrZXMgdGhlIGVsZW1lbnQgcHNldWRvLWludmlzaWJsZS5cbiAgICAgKi9cbiAgICBhcHBseVNlbGVjdGFibGVTdHlsZXMoZWxlbTogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgZWxlbS5zdHlsZS5vdmVyZmxvdyA9IFwiaGlkZGVuXCI7XG4gICAgICAgIGVsZW0uc3R5bGUuaGVpZ2h0ID0gXCIwcHhcIjtcbiAgICAgICAgZWxlbS5zdHlsZS5zZXRQcm9wZXJ0eShcIi13ZWJraXQtdXNlci1zZWxlY3RcIiwgXCJhbGxcIik7XG4gICAgICAgIGVsZW0uc3R5bGUuc2V0UHJvcGVydHkoXCItbW96LXVzZXItc2VsZWN0XCIsIFwiYWxsXCIpO1xuICAgICAgICBlbGVtLnN0eWxlLnNldFByb3BlcnR5KFwiLW1zLXVzZXItc2VsZWN0XCIsIFwiYWxsXCIpO1xuICAgICAgICBlbGVtLnN0eWxlLnNldFByb3BlcnR5KFwidXNlci1zZWxlY3RcIiwgXCJhbGxcIik7XG4gICAgICAgIHJldHVybiBlbGVtO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgdGFibGUgY2VsbHMgdG8gdGhlIGNsaXBib2FyZC4gVGhlIHBhcmFtZXRlciBpcyBhIHJvdy1tYWpvclxuICAgICAqIDItZGltZW5zaW9uYWwgYEFycmF5YCBvZiBzdHJpbmdzIGFuZCBjYW4gY29udGFpbiBudWxscy4gV2UgYXNzdW1lIGFsbFxuICAgICAqIHJvd3MgYXJlIHRoZSBzYW1lIGxlbmd0aC4gSWYgbm90LCB0aGUgY2VsbHMgd2lsbCBzdGlsbCBiZSBjb3BpZWQsIGJ1dFxuICAgICAqIHRoZSBjb2x1bW5zIG1heSBub3QgYWxpZ24uIFJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGVcbiAgICAgKiBjb3B5IHN1Y2NlZWRlZC5cbiAgICAgKlxuICAgICAqIFNlZSBgQ2xpcGJvYXJkLmNvcHlgXG4gICAgICovXG4gICAgY29weUNlbGxzKGNlbGxzOiBzdHJpbmdbXVtdKSB7XG4gICAgICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRhYmxlXCIpO1xuICAgICAgICBDbGlwYm9hcmQuYXBwbHlTZWxlY3RhYmxlU3R5bGVzKHRhYmxlKTtcbiAgICAgICAgZm9yIChjb25zdCByb3cgb2YgY2VsbHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRyID0gdGFibGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRyXCIpKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2VsbCBvZiByb3cpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZCA9IHRyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZFwiKSk7XG4gICAgICAgICAgICAgICAgdGQudGV4dENvbnRlbnQgPSBjZWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdHN2ID0gY2VsbHMubWFwKChyb3cpID0+IHJvdy5qb2luKFwiXFx0XCIpKS5qb2luKFwiXFxuXCIpO1xuICAgICAgICByZXR1cm4gQ2xpcGJvYXJkLmNvcHlFbGVtZW50KHRhYmxlLCB0c3YpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgdGhlIHRleHQgdG8gdGhlIGNsaXBib2FyZC4gUmV0dXJucyBhIGJvb2xlYW5cbiAgICAgKiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGNvcHkgc3VjY2VlZGVkLlxuICAgICAqXG4gICAgICogU2VlIGBDbGlwYm9hcmQuY29weWBcbiAgICAgKi9cbiAgICBjb3B5U3RyaW5nKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZXh0YXJlYVwiKTtcbiAgICAgICAgQ2xpcGJvYXJkLmFwcGx5U2VsZWN0YWJsZVN0eWxlcyh0ZXh0KTtcbiAgICAgICAgdGV4dC52YWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgIHJldHVybiBDbGlwYm9hcmQuY29weUVsZW1lbnQodGV4dCwgdmFsdWUpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgdGhlIGVsZW1lbnQgYW5kIGl0cyBjaGlsZHJlbiB0byB0aGUgY2xpcGJvYXJkLiBSZXR1cm5zIGEgYm9vbGVhblxuICAgICAqIGluZGljYXRpbmcgd2hldGhlciB0aGUgY29weSBzdWNjZWVkZWQuXG4gICAgICpcbiAgICAgKiBJZiBhIHBsYWludGV4dCBhcmd1bWVudCBpcyBzdXBwbGllZCwgd2UgYWRkIGJvdGggdGhlIHRleHQvaHRtbCBhbmRcbiAgICAgKiB0ZXh0L3BsYWluIG1pbWUgdHlwZXMgdG8gdGhlIGNsaXBib2FyZC4gVGhpcyBwcmVzZXJ2ZXMgdGhlIGJ1aWx0IGluXG4gICAgICogc2VtYW50aWNzIG9mIGNvcHlpbmcgZWxlbWVudHMgdG8gdGhlIGNsaXBib2FyZCB3aGlsZSBhbGxvd2luZyBjdXN0b21cbiAgICAgKiBwbGFpbnRleHQgb3V0cHV0IGZvciBwcm9ncmFtcyB0aGF0IGNhbid0IGNvcGUgd2l0aCBIVE1MIGRhdGEgaW4gdGhlXG4gICAgICogY2xpcGJvYXJkLlxuICAgICAqXG4gICAgICogVmVyaWZpZWQgb24gRmlyZWZveCA0NywgQ2hyb21lIDUxLlxuICAgICAqXG4gICAgICogTm90ZTogU29tZXRpbWVzIHRoZSBjb3B5IGRvZXMgbm90IHN1Y2NlZWQuIFByZXN1bWFibHksIGluIG9yZGVyIHRvXG4gICAgICogcHJldmVudCBtZW1vcnkgaXNzdWVzLCBicm93c2VycyB3aWxsIGxpbWl0IHRoZSB0b3RhbCBhbW91bnQgb2YgZGF0YSB5b3VcbiAgICAgKiBjYW4gY29weSB0byB0aGUgY2xpcGJvYXJkLiBCYXNlZCBvbiBhZCBob2MgdGVzdGluZywgd2UgZm91bmQgYW5cbiAgICAgKiBpbmNvbnNpc3RlbnQgbGltaXQgYXQgYWJvdXQgMzAwS0Igb3IgNDAsMDAwIGNlbGxzLiBEZXBlbmRpbmcgb24gdGhlIG9uXG4gICAgICogdGhlIGNvbnRlbnQgb2YgY2VsbHMsIHlvdXIgbGltaXRzIG1heSB2YXJ5LlxuICAgICAqL1xuICAgIGNvcHlFbGVtZW50KGVsZW06IEhUTUxFbGVtZW50LCBwbGFpbnRleHQ/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCFDbGlwYm9hcmQuaXNDb3B5U3VwcG9ydGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG11c3QgYmUgZG9jdW1lbnQuYm9keSBpbnN0ZWFkIG9mIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCBmb3IgZmlyZWZveFxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW0pO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGVsZW0pO1xuXG4gICAgICAgICAgICBpZiAocGxhaW50ZXh0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyBhZGQgcGxhaW50ZXh0IGZhbGxiYWNrXG4gICAgICAgICAgICAgICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMzIxMTAxOC9jb3B5LXRvLWNsaXBib2FyZC13aXRoLWpxdWVyeS1qcy1pbi1jaHJvbWVcbiAgICAgICAgICAgICAgICBlbGVtLmFkZEV2ZW50TGlzdGVuZXIoXCJjb3B5XCIsIChlOiBVSUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xpcGJvYXJkRGF0YSA9IChlIGFzIGFueSkuY2xpcGJvYXJkRGF0YSB8fCAod2luZG93IGFzIGFueSkuY2xpcGJvYXJkRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNsaXBib2FyZERhdGEgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xpcGJvYXJkRGF0YS5zZXREYXRhKFwidGV4dC9odG1sXCIsIGVsZW0ub3V0ZXJIVE1MKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBib2FyZERhdGEuc2V0RGF0YShcInRleHQvcGxhaW5cIiwgcGxhaW50ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjb3B5XCIpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBjdXJyZW50IGJyb3dzZXIgbm9taW5hbGx5XG4gICAgICogc3VwcG9ydHMgdGhlIGBjb3B5YCBvcGVyYXRpb24gdXNpbmcgdGhlIGBleGVjQ29tbWFuZGAgQVBJLlxuICAgICAqL1xuICAgIGlzQ29weVN1cHBvcnRlZCgpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCAhPSBudWxsICYmIGRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZChcImNvcHlcIik7XG4gICAgfSxcbn07XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24vY2xpcGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHOztBQUVILDBCQUEwQjtBQUViLGlCQUFTLEdBQUc7SUFDckI7OztPQUdHO0lBQ0gscUJBQXFCLFlBQUMsSUFBaUI7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0MsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxTQUFTLFlBQUMsS0FBaUI7UUFDdkIsSUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxpQkFBUyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLEdBQUcsQ0FBQyxDQUFjLFVBQUssRUFBTCxlQUFLLEVBQUwsbUJBQUssRUFBTCxJQUFLLENBQUM7WUFBbkIsSUFBTSxHQUFHLGNBQUE7WUFDVixJQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMzRCxHQUFHLENBQUMsQ0FBZSxVQUFHLEVBQUgsV0FBRyxFQUFILGlCQUFHLEVBQUgsSUFBRyxDQUFDO2dCQUFsQixJQUFNLElBQUksWUFBQTtnQkFDWCxJQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDeEQsRUFBRSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDekI7U0FDSjtRQUVELElBQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBQyxHQUFHLElBQUssT0FBQSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFkLENBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxNQUFNLENBQUMsaUJBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsWUFBQyxLQUFhO1FBQ3BCLElBQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsaUJBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixNQUFNLENBQUMsaUJBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQkc7SUFDSCxXQUFXLFlBQUMsSUFBaUIsRUFBRSxTQUFrQjtRQUM3QyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFTLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELHdFQUF3RTtRQUN4RSxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUM7WUFDRCxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFOUMsRUFBRSxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLHlCQUF5QjtnQkFDekIseUZBQXlGO2dCQUN6RixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFVBQUMsQ0FBVTtvQkFDckMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUNuQixJQUFNLGFBQWEsR0FBSSxDQUFTLENBQUMsYUFBYSxJQUFLLE1BQWMsQ0FBQyxhQUFhLENBQUM7b0JBQ2hGLEVBQUUsQ0FBQyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUN4QixhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7d0JBQ25ELGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUNuRCxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztZQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLENBQUU7UUFBQSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ1gsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQixDQUFDO2dCQUFTLENBQUM7WUFDUCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWU7UUFDWCxNQUFNLENBQUMsUUFBUSxDQUFDLHFCQUFxQixJQUFJLElBQUksSUFBSSxRQUFRLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUYsQ0FBQztDQUNKLENBQUMiLCJmaWxlIjoiY29tbW9uL2NsaXBib2FyZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQlNELTMgTGljZW5zZSBhcyBtb2RpZmllZCAodGhlIOKAnExpY2Vuc2XigJ0pOyB5b3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBsaWNlbnNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvUEFURU5UU1xuICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5cbmV4cG9ydCBjb25zdCBDbGlwYm9hcmQgPSB7XG4gICAgLyoqXG4gICAgICogT3ZlcnJpZGVzIHRoZSBpbmhlcml0ZWQgQ1NTIG9mIHRoZSBlbGVtZW50IHRvIG1ha2Ugc3VyZSBpdCBpc1xuICAgICAqIHNlbGVjdGFibGUuIFRoaXMgbWV0aG9kIGFsc28gbWFrZXMgdGhlIGVsZW1lbnQgcHNldWRvLWludmlzaWJsZS5cbiAgICAgKi9cbiAgICBhcHBseVNlbGVjdGFibGVTdHlsZXMoZWxlbTogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgZWxlbS5zdHlsZS5vdmVyZmxvdyA9IFwiaGlkZGVuXCI7XG4gICAgICAgIGVsZW0uc3R5bGUuaGVpZ2h0ID0gXCIwcHhcIjtcbiAgICAgICAgZWxlbS5zdHlsZS5zZXRQcm9wZXJ0eShcIi13ZWJraXQtdXNlci1zZWxlY3RcIiwgXCJhbGxcIik7XG4gICAgICAgIGVsZW0uc3R5bGUuc2V0UHJvcGVydHkoXCItbW96LXVzZXItc2VsZWN0XCIsIFwiYWxsXCIpO1xuICAgICAgICBlbGVtLnN0eWxlLnNldFByb3BlcnR5KFwiLW1zLXVzZXItc2VsZWN0XCIsIFwiYWxsXCIpO1xuICAgICAgICBlbGVtLnN0eWxlLnNldFByb3BlcnR5KFwidXNlci1zZWxlY3RcIiwgXCJhbGxcIik7XG4gICAgICAgIHJldHVybiBlbGVtO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgdGFibGUgY2VsbHMgdG8gdGhlIGNsaXBib2FyZC4gVGhlIHBhcmFtZXRlciBpcyBhIHJvdy1tYWpvclxuICAgICAqIDItZGltZW5zaW9uYWwgYEFycmF5YCBvZiBzdHJpbmdzIGFuZCBjYW4gY29udGFpbiBudWxscy4gV2UgYXNzdW1lIGFsbFxuICAgICAqIHJvd3MgYXJlIHRoZSBzYW1lIGxlbmd0aC4gSWYgbm90LCB0aGUgY2VsbHMgd2lsbCBzdGlsbCBiZSBjb3BpZWQsIGJ1dFxuICAgICAqIHRoZSBjb2x1bW5zIG1heSBub3QgYWxpZ24uIFJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGVcbiAgICAgKiBjb3B5IHN1Y2NlZWRlZC5cbiAgICAgKlxuICAgICAqIFNlZSBgQ2xpcGJvYXJkLmNvcHlgXG4gICAgICovXG4gICAgY29weUNlbGxzKGNlbGxzOiBzdHJpbmdbXVtdKSB7XG4gICAgICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRhYmxlXCIpO1xuICAgICAgICBDbGlwYm9hcmQuYXBwbHlTZWxlY3RhYmxlU3R5bGVzKHRhYmxlKTtcbiAgICAgICAgZm9yIChjb25zdCByb3cgb2YgY2VsbHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRyID0gdGFibGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRyXCIpKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2VsbCBvZiByb3cpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZCA9IHRyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZFwiKSk7XG4gICAgICAgICAgICAgICAgdGQudGV4dENvbnRlbnQgPSBjZWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdHN2ID0gY2VsbHMubWFwKChyb3cpID0+IHJvdy5qb2luKFwiXFx0XCIpKS5qb2luKFwiXFxuXCIpO1xuICAgICAgICByZXR1cm4gQ2xpcGJvYXJkLmNvcHlFbGVtZW50KHRhYmxlLCB0c3YpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgdGhlIHRleHQgdG8gdGhlIGNsaXBib2FyZC4gUmV0dXJucyBhIGJvb2xlYW5cbiAgICAgKiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGNvcHkgc3VjY2VlZGVkLlxuICAgICAqXG4gICAgICogU2VlIGBDbGlwYm9hcmQuY29weWBcbiAgICAgKi9cbiAgICBjb3B5U3RyaW5nKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZXh0YXJlYVwiKTtcbiAgICAgICAgQ2xpcGJvYXJkLmFwcGx5U2VsZWN0YWJsZVN0eWxlcyh0ZXh0KTtcbiAgICAgICAgdGV4dC52YWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgIHJldHVybiBDbGlwYm9hcmQuY29weUVsZW1lbnQodGV4dCwgdmFsdWUpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBDb3BpZXMgdGhlIGVsZW1lbnQgYW5kIGl0cyBjaGlsZHJlbiB0byB0aGUgY2xpcGJvYXJkLiBSZXR1cm5zIGEgYm9vbGVhblxuICAgICAqIGluZGljYXRpbmcgd2hldGhlciB0aGUgY29weSBzdWNjZWVkZWQuXG4gICAgICpcbiAgICAgKiBJZiBhIHBsYWludGV4dCBhcmd1bWVudCBpcyBzdXBwbGllZCwgd2UgYWRkIGJvdGggdGhlIHRleHQvaHRtbCBhbmRcbiAgICAgKiB0ZXh0L3BsYWluIG1pbWUgdHlwZXMgdG8gdGhlIGNsaXBib2FyZC4gVGhpcyBwcmVzZXJ2ZXMgdGhlIGJ1aWx0IGluXG4gICAgICogc2VtYW50aWNzIG9mIGNvcHlpbmcgZWxlbWVudHMgdG8gdGhlIGNsaXBib2FyZCB3aGlsZSBhbGxvd2luZyBjdXN0b21cbiAgICAgKiBwbGFpbnRleHQgb3V0cHV0IGZvciBwcm9ncmFtcyB0aGF0IGNhbid0IGNvcGUgd2l0aCBIVE1MIGRhdGEgaW4gdGhlXG4gICAgICogY2xpcGJvYXJkLlxuICAgICAqXG4gICAgICogVmVyaWZpZWQgb24gRmlyZWZveCA0NywgQ2hyb21lIDUxLlxuICAgICAqXG4gICAgICogTm90ZTogU29tZXRpbWVzIHRoZSBjb3B5IGRvZXMgbm90IHN1Y2NlZWQuIFByZXN1bWFibHksIGluIG9yZGVyIHRvXG4gICAgICogcHJldmVudCBtZW1vcnkgaXNzdWVzLCBicm93c2VycyB3aWxsIGxpbWl0IHRoZSB0b3RhbCBhbW91bnQgb2YgZGF0YSB5b3VcbiAgICAgKiBjYW4gY29weSB0byB0aGUgY2xpcGJvYXJkLiBCYXNlZCBvbiBhZCBob2MgdGVzdGluZywgd2UgZm91bmQgYW5cbiAgICAgKiBpbmNvbnNpc3RlbnQgbGltaXQgYXQgYWJvdXQgMzAwS0Igb3IgNDAsMDAwIGNlbGxzLiBEZXBlbmRpbmcgb24gdGhlIG9uXG4gICAgICogdGhlIGNvbnRlbnQgb2YgY2VsbHMsIHlvdXIgbGltaXRzIG1heSB2YXJ5LlxuICAgICAqL1xuICAgIGNvcHlFbGVtZW50KGVsZW06IEhUTUxFbGVtZW50LCBwbGFpbnRleHQ/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCFDbGlwYm9hcmQuaXNDb3B5U3VwcG9ydGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG11c3QgYmUgZG9jdW1lbnQuYm9keSBpbnN0ZWFkIG9mIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCBmb3IgZmlyZWZveFxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW0pO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGVsZW0pO1xuXG4gICAgICAgICAgICBpZiAocGxhaW50ZXh0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyBhZGQgcGxhaW50ZXh0IGZhbGxiYWNrXG4gICAgICAgICAgICAgICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMzIxMTAxOC9jb3B5LXRvLWNsaXBib2FyZC13aXRoLWpxdWVyeS1qcy1pbi1jaHJvbWVcbiAgICAgICAgICAgICAgICBlbGVtLmFkZEV2ZW50TGlzdGVuZXIoXCJjb3B5XCIsIChlOiBVSUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xpcGJvYXJkRGF0YSA9IChlIGFzIGFueSkuY2xpcGJvYXJkRGF0YSB8fCAod2luZG93IGFzIGFueSkuY2xpcGJvYXJkRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNsaXBib2FyZERhdGEgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xpcGJvYXJkRGF0YS5zZXREYXRhKFwidGV4dC9odG1sXCIsIGVsZW0ub3V0ZXJIVE1MKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBib2FyZERhdGEuc2V0RGF0YShcInRleHQvcGxhaW5cIiwgcGxhaW50ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjb3B5XCIpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbSk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBjdXJyZW50IGJyb3dzZXIgbm9taW5hbGx5XG4gICAgICogc3VwcG9ydHMgdGhlIGBjb3B5YCBvcGVyYXRpb24gdXNpbmcgdGhlIGBleGVjQ29tbWFuZGAgQVBJLlxuICAgICAqL1xuICAgIGlzQ29weVN1cHBvcnRlZCgpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCAhPSBudWxsICYmIGRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZChcImNvcHlcIik7XG4gICAgfSxcbn07XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -5,0 +7,0 @@ import { IRegion } from "../regions";

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -327,2 +329,2 @@ "use strict";

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24vZ3JpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7O0FBRUgsd0JBQW9ELFlBQVksQ0FBQyxDQUFBO0FBQ2pFLHFCQUFxQixRQUFRLENBQUMsQ0FBQTtBQUM5QixzQkFBc0IsU0FBUyxDQUFDLENBQUE7QUFnQmhDLElBQU0sbUJBQW1CLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ3JELElBQU0sc0JBQXNCLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQzNELElBQU0sOEJBQThCLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBQzNGLElBQU0sWUFBWSxHQUFhLEVBQUUsQ0FBQztBQUVsQzs7R0FFRztBQUNIO0lBaUJJOzs7Ozs7O09BT0c7SUFDSCxjQUNJLFVBQW9CLEVBQ3BCLFlBQXNCLEVBQ3RCLEtBQTBCLEVBQzFCLFdBQXVDLEVBQ3ZDLFVBQXFDO1FBOUI3QyxpQkFxWEM7UUF6Vk8scUJBQTBCLEdBQTFCLFFBQVEsSUFBSSxDQUFDLGFBQWE7UUFDMUIsMkJBQXVDLEdBQXZDLGNBQWMsSUFBSSxDQUFDLG9CQUFvQjtRQUN2QywwQkFBcUMsR0FBckMsYUFBYSxJQUFJLENBQUMsbUJBQW1CO1FBK1NsQyx5QkFBb0IsR0FBRyxVQUFDLEtBQWE7WUFDeEMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixNQUFNLENBQUMsS0FBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hHLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixNQUFNLENBQUMsS0FBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lB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RyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxNQUFNLENBQUMsRUFBQyxZQUFLLEVBQUUsUUFBRyxFQUFDLENBQUM7SUFDeEIsQ0FBQztJQW5YYSxrQkFBYSxHQUFHLENBQUMsQ0FBQztJQUNsQix3QkFBbUIsR0FBRyxFQUFFLENBQUM7SUFDekIscUJBQWdCLEdBQUcsR0FBRyxDQUFDO0lBQ3ZCLHlCQUFvQixHQUFHLEVBQUUsQ0FBQztJQUMxQix3QkFBbUIsR0FBRyxHQUFHLENBQUM7SUFnWDVDLFdBQUM7QUFBRCxDQXJYQSxBQXFYQyxJQUFBO0FBclhZLFlBQUksT0FxWGhCLENBQUEiLCJmaWxlIjoiY29tbW9uL2dyaWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAtIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbmltcG9ydCB7IElSZWdpb24sIFJlZ2lvbkNhcmRpbmFsaXR5LCBSZWdpb25zIH0gZnJvbSBcIi4uL3JlZ2lvbnNcIjtcbmltcG9ydCB7IFJlY3QgfSBmcm9tIFwiLi9yZWN0XCI7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCB0eXBlIElDZWxsTWFwcGVyPFQ+ID0gKHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpID0+IFQ7XG5leHBvcnQgdHlwZSBJUm93TWFwcGVyPFQ+ID0gKHJvd0luZGV4OiBudW1iZXIpID0+IFQ7XG5leHBvcnQgdHlwZSBJQ29sdW1uTWFwcGVyPFQ+ID0gKGNvbHVtbkluZGV4OiBudW1iZXIpID0+IFQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJvd0luZGljZXMge1xuICAgIHJvd0luZGV4U3RhcnQ6IG51bWJlcjtcbiAgICByb3dJbmRleEVuZDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW5JbmRpY2VzIHtcbiAgICBjb2x1bW5JbmRleFN0YXJ0OiBudW1iZXI7XG4gICAgY29sdW1uSW5kZXhFbmQ6IG51bWJlcjtcbn1cblxuY29uc3QgRVhUUkVNQV9MQVNUX0lOX1JPVyA9IFtcImJwLXRhYmxlLWxhc3QtaW4tcm93XCJdO1xuY29uc3QgRVhUUkVNQV9MQVNUX0lOX0NPTFVNTiA9IFtcImJwLXRhYmxlLWxhc3QtaW4tY29sdW1uXCJdO1xuY29uc3QgRVhUUkVNQV9MQVNUX0lOX1JPV19BTkRfQ09MVU1OID0gW1wiYnAtdGFibGUtbGFzdC1pbi1jb2x1bW5cIiwgXCJicC10YWJsZS1sYXN0LWluLXJvd1wiXTtcbmNvbnN0IEVYVFJFTUFfTk9ORTogc3RyaW5nW10gPSBbXTtcblxuLyoqXG4gKiBUaGlzIGNsYXNzIG1hbmFnZXMgdGhlIHNpemVzIG9mIGdyaWQgY2VsbHMgdXNpbmcgYXJyYXlzIG9mIGluZGl2aWR1YWwgcm93L2NvbHVtbiBzaXplcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyaWQge1xuICAgIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9CTEVFRCA9IDM7XG4gICAgcHVibGljIHN0YXRpYyBERUZBVUxUX01BWF9DT0xVTU5TID0gNTA7XG4gICAgcHVibGljIHN0YXRpYyBERUZBVUxUX01BWF9ST1dTID0gMjAwO1xuICAgIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9HSE9TVF9IRUlHSFQgPSAyMDtcbiAgICBwdWJsaWMgc3RhdGljIERFRkFVTFRfR0hPU1RfV0lEVEggPSAxNTA7XG5cbiAgICBwdWJsaWMgbnVtQ29sczogbnVtYmVyO1xuICAgIHB1YmxpYyBudW1Sb3dzOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBibGVlZDogbnVtYmVyO1xuICAgIHByaXZhdGUgY29sdW1uV2lkdGhzOiBudW1iZXJbXTtcbiAgICBwcml2YXRlIHJvd0hlaWdodHM6IG51bWJlcltdO1xuICAgIHByaXZhdGUgY3VtdWxhdGl2ZUNvbHVtbldpZHRoczogbnVtYmVyW107XG4gICAgcHJpdmF0ZSBjdW11bGF0aXZlUm93SGVpZ2h0czogbnVtYmVyW107XG4gICAgcHJpdmF0ZSBnaG9zdEhlaWdodDogbnVtYmVyO1xuICAgIHByaXZhdGUgZ2hvc3RXaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBjb25zdHJ1Y3RvciBhY2N1bXVsYXRlcyB0aGUgaGVpZ2h0cyBhbmQgd2lkdGhzIGluIGBPKG4pYCwgc2F2aW5nXG4gICAgICogdGltZSBpbiBsYXRlciBjYWxjdWxhdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYmxlZWQgLSBUaGUgbnVtYmVyIG9mIHJvd3MvY29scyB0aGF0IHdlIGV4cGFuZCBiZXlvbmQgdGhlXG4gICAgICogICAgIHZpZXdwb3J0IChvbiBhbGwgc2lkZXMpLiBUaGlzIGhlbHBzIGF2b2lkIGRpc3BsYXlpbmcgYW4gZW1wdHlcbiAgICAgKiAgICAgdmlld3BvcnQgd2hlbiB0aGUgdXNlciBzY3JvbGxzIHF1aWNrbHkuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICByb3dIZWlnaHRzOiBudW1iZXJbXSxcbiAgICAgICAgY29sdW1uV2lkdGhzOiBudW1iZXJbXSxcbiAgICAgICAgYmxlZWQgPSBHcmlkLkRFRkFVTFRfQkxFRUQsXG4gICAgICAgIGdob3N0SGVpZ2h0ID0gR3JpZC5ERUZBVUxUX0dIT1NUX0hFSUdIVCxcbiAgICAgICAgZ2hvc3RXaWR0aCA9IEdyaWQuREVGQVVMVF9HSE9TVF9XSURUSFxuICAgICkge1xuICAgICAgICB0aGlzLmNvbHVtbldpZHRocyA9IGNvbHVtbldpZHRocztcbiAgICAgICAgdGhpcy5yb3dIZWlnaHRzID0gcm93SGVpZ2h0cztcbiAgICAgICAgdGhpcy5jdW11bGF0aXZlQ29sdW1uV2lkdGhzID0gVXRpbHMuYWNjdW11bGF0ZShjb2x1bW5XaWR0aHMpO1xuICAgICAgICB0aGlzLmN1bXVsYXRpdmVSb3dIZWlnaHRzID0gVXRpbHMuYWNjdW11bGF0ZShyb3dIZWlnaHRzKTtcbiAgICAgICAgdGhpcy5udW1Db2xzID0gY29sdW1uV2lkdGhzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5udW1Sb3dzID0gcm93SGVpZ2h0cy5sZW5ndGg7XG4gICAgICAgIHRoaXMuYmxlZWQgPSBibGVlZDtcbiAgICAgICAgdGhpcy5naG9zdEhlaWdodCA9IGdob3N0SGVpZ2h0O1xuICAgICAgICB0aGlzLmdob3N0V2lkdGggPSBnaG9zdFdpZHRoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGBSZWN0YCBib3VuZHMgb2YgYSBjZWxsIGluIHNjcm9sbHBhbmUgY2xpZW50IHNwYWNlLlxuICAgICAqXG4gICAgICogU2Nyb2xscGFuZSBjbGllbnQgY29vcmRpbmF0ZSBzcGFjZSB1c2VzIHRoZSBvcmlnaW4gb2YgdGhlIHNjcm9sbHBhbmVcbiAgICAgKiBjbGllbnQgKHRoZSBpbnNpZGUgcGFydCB0aGF0IHlvdSdyZSBtb3ZpbmcgYXJvdW5kKS5cbiAgICAgKlxuICAgICAqIEZvciBleGFtcGxlLCBsZXQncyBzYXkgeW91J3JlIHNjcm9sbGluZyBhcm91bmQgYSBibG9jayBvZiAxMDAwIHggMTAwMFxuICAgICAqIGNlbGxzLiBSZWdhcmRsZXNzIHdoZXJlIHlvdSd2ZSBzY3JvbGxlZCwgdGhlIGZpcnN0IGNlbGwgaXMgYWx3YXlzIGF0XG4gICAgICogMCwwIGluIHNjcm9sbHBhbmUgY2xpZW50IHNwYWNlLiB0aGUgY2VsbCB0byB0aGUgcmlnaHQgb2YgaXQgaXMgYWx3YXlzXG4gICAgICogYXQsIGUuZy4sIDEwMCwwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDZWxsUmVjdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IHRoaXMucm93SGVpZ2h0c1tyb3dJbmRleF07XG4gICAgICAgIGNvbnN0IHRvcCA9IHRoaXMuY3VtdWxhdGl2ZVJvd0hlaWdodHNbcm93SW5kZXhdIC0gaGVpZ2h0O1xuICAgICAgICBjb25zdCB3aWR0aCA9IHRoaXMuY29sdW1uV2lkdGhzW2NvbHVtbkluZGV4XTtcbiAgICAgICAgY29uc3QgbGVmdCA9IHRoaXMuY3VtdWxhdGl2ZUNvbHVtbldpZHRoc1tjb2x1bW5JbmRleF0gLSB3aWR0aDtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWN0KGxlZnQsIHRvcCwgd2lkdGgsIGhlaWdodCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYFJlY3RgIGJvdW5kcyBvZiBhIGNlbGwgaW4gc2Nyb2xscGFuZSBjbGllbnQgc3BhY2UuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgY2VsbCBpcyBiZXlvbmQgdGhlIGJvdW5kcyBvZiB0aGUgdXNlci1kZWZpbmVkIHRhYmxlIGNlbGxzLCBpdCBpc1xuICAgICAqIGNvbnNpZGVyZWQgYSBcImdob3N0XCIgY2VsbC4gSWYgYSB3aWR0aC9oZWlnaHQgaXMgbm90IGRlZmluZWQgZm9yIHRoYXRcbiAgICAgKiByb3cvY29sdW1uLCB3ZSB1c2UgdGhlIGRlZmF1bHQgd2lkdGgvaGVpZ2h0LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRHaG9zdENlbGxSZWN0KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgbGV0IGxlZnQgPSAwO1xuICAgICAgICBsZXQgdG9wID0gMDtcbiAgICAgICAgbGV0IHdpZHRoID0gMDtcbiAgICAgICAgbGV0IGhlaWdodCA9IDA7XG4gICAgICAgIGlmIChyb3dJbmRleCA+PSB0aGlzLnJvd0hlaWdodHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBoZWlnaHQgPSB0aGlzLmdob3N0SGVpZ2h0O1xuICAgICAgICAgICAgdG9wID0gdGhpcy5nZXRIZWlnaHQoKSArIHRoaXMuZ2hvc3RIZWlnaHQgKiAocm93SW5kZXggLSB0aGlzLm51bVJvd3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaGVpZ2h0ID0gdGhpcy5yb3dIZWlnaHRzW3Jvd0luZGV4XTtcbiAgICAgICAgICAgIHRvcCA9IHRoaXMuY3VtdWxhdGl2ZVJvd0hlaWdodHNbcm93SW5kZXhdIC0gaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbHVtbkluZGV4ID49IHRoaXMuY29sdW1uV2lkdGhzLmxlbmd0aCkge1xuICAgICAgICAgICAgd2lkdGggPSB0aGlzLmdob3N0V2lkdGg7XG4gICAgICAgICAgICBsZWZ0ID0gdGhpcy5nZXRXaWR0aCgpICsgdGhpcy5naG9zdFdpZHRoICogKGNvbHVtbkluZGV4IC0gdGhpcy5udW1Db2xzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHdpZHRoID0gdGhpcy5jb2x1bW5XaWR0aHNbY29sdW1uSW5kZXhdO1xuICAgICAgICAgICAgbGVmdCA9IHRoaXMuY3VtdWxhdGl2ZUNvbHVtbldpZHRoc1tjb2x1bW5JbmRleF0gLSB3aWR0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IFJlY3QobGVmdCwgdG9wLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBgUmVjdGAgd2l0aCB0aGUgYmFzZSBjb29yZGluYXRlIGFuZCBoZWlnaHQgb2YgdGhlIHNwZWNpZmllZCByb3cuXG4gICAgICovXG4gICAgcHVibGljIGdldFJvd1JlY3Qocm93SW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLnJvd0hlaWdodHNbcm93SW5kZXhdO1xuICAgICAgICBjb25zdCB0b3AgPSB0aGlzLmN1bXVsYXRpdmVSb3dIZWlnaHRzW3Jvd0luZGV4XSAtIGhlaWdodDtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWN0KDAsIHRvcCwgdGhpcy5nZXRXaWR0aCgpLCBoZWlnaHQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGBSZWN0YCB3aXRoIHRoZSBiYXNlIGNvb3JkaW5hdGUgYW5kIHdpZHRoIG9mIHRoZSBzcGVjaWZpZWQgY29sdW1uLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb2x1bW5SZWN0KGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLmNvbHVtbldpZHRoc1tjb2x1bW5JbmRleF07XG4gICAgICAgIGNvbnN0IGxlZnQgPSB0aGlzLmN1bXVsYXRpdmVDb2x1bW5XaWR0aHNbY29sdW1uSW5kZXhdIC0gd2lkdGg7XG4gICAgICAgIHJldHVybiBuZXcgUmVjdChsZWZ0LCAwLCB3aWR0aCwgdGhpcy5nZXRIZWlnaHQoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdG90YWwgd2lkdGggb2YgdGhlIGVudGlyZSBncmlkXG4gICAgICovXG4gICAgcHVibGljIGdldFdpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdW11bGF0aXZlQ29sdW1uV2lkdGhzW3RoaXMubnVtQ29scyAtIDFdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHRvdGFsIHdpZHRoIG9mIHRoZSBlbnRpcmUgZ3JpZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRIZWlnaHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1bXVsYXRpdmVSb3dIZWlnaHRzW3RoaXMubnVtUm93cyAtIDFdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGBSZWN0YCBib3VuZHMgb2YgZW50aXJlIGdyaWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UmVjdCgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWN0KDAsIDAsIHRoaXMuZ2V0V2lkdGgoKSwgdGhpcy5nZXRIZWlnaHQoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFwcyBlYWNoIGNlbGwgdGhhdCBpbnRlcnNlY3RzIHdpdGggdGhlIGdpdmVuIGBSZWN0YCBhcmd1bWVudC4gVGhlXG4gICAgICogaW5kaWNlcyBvZiBpdGVyYXRpb24gYXJlIGV4dGVuZGVkIGluIGJvdGggZGlyZWN0aW9ucyBieSB0aGUgaW50ZWdlclxuICAgICAqIGBibGVlZGAgY2xhc3MgcHJvcGVydHksIHRoZW4gYXJlIGNsYW1wZWQgYmV0d2VlbiAwIGFuZCB0aGUgbnVtYmVyIG9mXG4gICAgICogcm93cy9jb2x1bW5zLlxuICAgICAqXG4gICAgICogVXNlcyBhIGJpbmFyeSBzZWFyY2ggZm9yIGVhY2ggb2YgdGhlIDQgZWRnZXMgb2YgdGhlIGJvdW5kcywgcmVzdWx0aW5nXG4gICAgICogaW4gYSBydW50aW1lIG9mIGBPKGxvZyhyb3dzKSArIGxvZyhjb2xzKSlgIHBsdXMgdGhlIGBPKGlyb3dzICogaWNvbHMpYFxuICAgICAqIGl0ZXJhdGlvbiBvZiBpbnRlcnNlY3RpbmcgY2VsbHMuXG4gICAgICovXG4gICAgcHVibGljIG1hcENlbGxzSW5SZWN0PFQ+KHJlY3Q6IFJlY3QsIGNhbGxiYWNrOiBJQ2VsbE1hcHBlcjxUPik6IFRbXSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdHM6IFRbXSA9IFtdO1xuICAgICAgICBpZiAocmVjdCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtyb3dJbmRleFN0YXJ0LCByb3dJbmRleEVuZH0gPSB0aGlzLmdldFJvd0luZGljZXNJblJlY3QocmVjdCk7XG4gICAgICAgIGNvbnN0IHtjb2x1bW5JbmRleFN0YXJ0LCBjb2x1bW5JbmRleEVuZH0gPSB0aGlzLmdldENvbHVtbkluZGljZXNJblJlY3QocmVjdCk7XG4gICAgICAgIGZvciAobGV0IHJvd0luZGV4ID0gcm93SW5kZXhTdGFydDsgcm93SW5kZXggPD0gcm93SW5kZXhFbmQ7IHJvd0luZGV4KyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGNvbHVtbkluZGV4ID0gY29sdW1uSW5kZXhTdGFydDsgY29sdW1uSW5kZXggPD0gY29sdW1uSW5kZXhFbmQ7IGNvbHVtbkluZGV4KyspIHtcbiAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goY2FsbGJhY2socm93SW5kZXgsIGNvbHVtbkluZGV4KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFwcyBlYWNoIHJvdyB0aGF0IGludGVyc2VjdHMgd2l0aCB0aGUgZ2l2ZW4gYFJlY3RgIGFyZ3VtZW50LlxuICAgICAqXG4gICAgICogU2VlIEdyaWQubWFwQ2VsbHNJblJlY3QgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgKi9cbiAgICBwdWJsaWMgbWFwUm93c0luUmVjdDxUPihyZWN0OiBSZWN0LCBjYWxsYmFjazogSVJvd01hcHBlcjxUPik6IFRbXSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdHM6IFRbXSA9IFtdO1xuICAgICAgICBpZiAocmVjdCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtyb3dJbmRleFN0YXJ0LCByb3dJbmRleEVuZH0gPSB0aGlzLmdldFJvd0luZGljZXNJblJlY3QocmVjdCk7XG4gICAgICAgIGZvciAobGV0IHJvd0luZGV4ID0gcm93SW5kZXhTdGFydDsgcm93SW5kZXggPD0gcm93SW5kZXhFbmQ7IHJvd0luZGV4KyspIHtcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaChjYWxsYmFjayhyb3dJbmRleCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1hcHMgZWFjaCBjb2x1bW4gdGhhdCBpbnRlcnNlY3RzIHdpdGggdGhlIGdpdmVuIGBSZWN0YCBhcmd1bWVudC5cbiAgICAgKlxuICAgICAqIFNlZSBHcmlkLm1hcENlbGxzSW5SZWN0IGZvciBtb3JlIGRldGFpbHMuXG4gICAgICovXG4gICAgcHVibGljIG1hcENvbHVtbnNJblJlY3Q8VD4ocmVjdDogUmVjdCwgY2FsbGJhY2s6IElDb2x1bW5NYXBwZXI8VD4pOiBUW10ge1xuICAgICAgICBjb25zdCByZXN1bHRzOiBUW10gPSBbXTtcbiAgICAgICAgaWYgKHJlY3QgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7Y29sdW1uSW5kZXhTdGFydCwgY29sdW1uSW5kZXhFbmR9ID0gdGhpcy5nZXRDb2x1bW5JbmRpY2VzSW5SZWN0KHJlY3QpO1xuICAgICAgICBmb3IgKGxldCBjb2x1bW5JbmRleCA9IGNvbHVtbkluZGV4U3RhcnQ7IGNvbHVtbkluZGV4IDw9IGNvbHVtbkluZGV4RW5kOyBjb2x1bW5JbmRleCsrKSB7XG4gICAgICAgICAgICByZXN1bHRzLnB1c2goY2FsbGJhY2soY29sdW1uSW5kZXgpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBzdGFydCBhbmQgZW5kIGluZGljZXMgb2Ygcm93cyB0aGF0IGludGVyc2VjdCB3aXRoIHRoZSBnaXZlblxuICAgICAqIGBSZWN0YCBhcmd1bWVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Um93SW5kaWNlc0luUmVjdChcbiAgICAgICAgcmVjdDogUmVjdCxcbiAgICAgICAgaW5jbHVkZUdob3N0Q2VsbHMgPSBmYWxzZSxcbiAgICAgICAgbGltaXQgPSBHcmlkLkRFRkFVTFRfTUFYX1JPV1NcbiAgICApOiBJUm93SW5kaWNlcyB7XG5cbiAgICAgICAgaWYgKHJlY3QgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHtyb3dJbmRleEVuZDogMCwgcm93SW5kZXhTdGFydDogMH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZWFyY2hFbmQgPSBpbmNsdWRlR2hvc3RDZWxscyA/IE1hdGgubWF4KHRoaXMubnVtUm93cywgR3JpZC5ERUZBVUxUX01BWF9ST1dTKSA6IHRoaXMubnVtUm93cztcbiAgICAgICAgbGV0IHtzdGFydCwgZW5kfSA9IHRoaXMuZ2V0SW5kaWNlc0luSW50ZXJ2YWwoXG4gICAgICAgICAgICByZWN0LnRvcCxcbiAgICAgICAgICAgIHJlY3QudG9wICsgcmVjdC5oZWlnaHQsXG4gICAgICAgICAgICBzZWFyY2hFbmQsXG4gICAgICAgICAgICAhaW5jbHVkZUdob3N0Q2VsbHMsXG4gICAgICAgICAgICB0aGlzLmdldEN1bXVsYXRpdmVIZWlnaHRBdFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChsaW1pdCA+IDAgJiYgZW5kIC0gc3RhcnQgPiBsaW1pdCkge1xuICAgICAgICAgICAgZW5kID0gc3RhcnQgKyBsaW1pdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByb3dJbmRleEVuZDogZW5kLFxuICAgICAgICAgICAgcm93SW5kZXhTdGFydDogc3RhcnQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgc3RhcnQgYW5kIGVuZCBpbmRpY2VzIG9mIGNvbHVtbnMgdGhhdCBpbnRlcnNlY3Qgd2l0aCB0aGVcbiAgICAgKiBnaXZlbiBgUmVjdGAgYXJndW1lbnQuXG4gICAgICovXG4gICAgcHVibGljIGdldENvbHVtbkluZGljZXNJblJlY3QoXG4gICAgICAgIHJlY3Q6IFJlY3QsXG4gICAgICAgIGluY2x1ZGVHaG9zdENlbGxzID0gZmFsc2UsXG4gICAgICAgIGxpbWl0ID0gR3JpZC5ERUZBVUxUX01BWF9DT0xVTU5TXG4gICAgKTogSUNvbHVtbkluZGljZXMge1xuXG4gICAgICAgIGlmIChyZWN0ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB7Y29sdW1uSW5kZXhFbmQ6IDAsIGNvbHVtbkluZGV4U3RhcnQ6IDB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VhcmNoRW5kID0gaW5jbHVkZUdob3N0Q2VsbHMgPyBNYXRoLm1heCh0aGlzLm51bUNvbHMsIEdyaWQuREVGQVVMVF9NQVhfQ09MVU1OUykgOiB0aGlzLm51bUNvbHM7XG4gICAgICAgIGxldCB7c3RhcnQsIGVuZH0gPSB0aGlzLmdldEluZGljZXNJbkludGVydmFsKFxuICAgICAgICAgICAgcmVjdC5sZWZ0LFxuICAgICAgICAgICAgcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCxcbiAgICAgICAgICAgIHNlYXJjaEVuZCxcbiAgICAgICAgICAgICFpbmNsdWRlR2hvc3RDZWxscyxcbiAgICAgICAgICAgIHRoaXMuZ2V0Q3VtdWxhdGl2ZVdpZHRoQXRcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAobGltaXQgPiAwICYmIGVuZCAtIHN0YXJ0ID4gbGltaXQpIHtcbiAgICAgICAgICAgIGVuZCA9IHN0YXJ0ICsgbGltaXQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29sdW1uSW5kZXhFbmQ6IGVuZCxcbiAgICAgICAgICAgIGNvbHVtbkluZGV4U3RhcnQ6IHN0YXJ0LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0dob3N0SW5kZXgocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gKHJvd0luZGV4ID49IHRoaXMubnVtUm93cyB8fCBjb2x1bW5JbmRleCA+PSB0aGlzLm51bUNvbHMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFeHRyZW1hQ2xhc3Nlcyhyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyLCByb3dFbmQ6IG51bWJlciwgY29sdW1uRW5kOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHJvd0luZGV4ID09PSByb3dFbmQgJiYgY29sdW1uSW5kZXggPT09IGNvbHVtbkVuZCkge1xuICAgICAgICAgICAgcmV0dXJuIEVYVFJFTUFfTEFTVF9JTl9ST1dfQU5EX0NPTFVNTjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm93SW5kZXggPT09IHJvd0VuZCkge1xuICAgICAgICAgICAgcmV0dXJuIEVYVFJFTUFfTEFTVF9JTl9DT0xVTU47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbHVtbkluZGV4ID09PSBjb2x1bW5FbmQpIHtcbiAgICAgICAgICAgIHJldHVybiBFWFRSRU1BX0xBU1RfSU5fUk9XO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBFWFRSRU1BX05PTkU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJlZ2lvblN0eWxlKHJlZ2lvbjogSVJlZ2lvbikge1xuICAgICAgICBjb25zdCBjYXJkaW5hbGl0eSA9IFJlZ2lvbnMuZ2V0UmVnaW9uQ2FyZGluYWxpdHkocmVnaW9uKTtcbiAgICAgICAgc3dpdGNoIChjYXJkaW5hbGl0eSkge1xuICAgICAgICAgICAgY2FzZSBSZWdpb25DYXJkaW5hbGl0eS5DRUxMUzoge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxSZWN0MCA9IHRoaXMuZ2V0Q2VsbFJlY3QocmVnaW9uLnJvd3NbMF0sIHJlZ2lvbi5jb2xzWzBdKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsUmVjdDEgPSB0aGlzLmdldENlbGxSZWN0KHJlZ2lvbi5yb3dzWzFdLCByZWdpb24uY29sc1sxXSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2V0TGVmdCA9IHJlZ2lvbi5jb2xzWzBdID09PSAwID8gMCA6IDE7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2V0VG9wID0gcmVnaW9uLnJvd3NbMF0gPT09IDAgPyAwIDogMTtcbiAgICAgICAgICAgICAgICBjb25zdCByZWN0ID0gY2VsbFJlY3QwLnVuaW9uKGNlbGxSZWN0MSk7XG4gICAgICAgICAgICAgICAgcmVjdC5oZWlnaHQgKz0gb2Zmc2V0VG9wO1xuICAgICAgICAgICAgICAgIHJlY3QubGVmdCAtPSBvZmZzZXRMZWZ0O1xuICAgICAgICAgICAgICAgIHJlY3Qud2lkdGggKz0gb2Zmc2V0TGVmdDtcbiAgICAgICAgICAgICAgICByZWN0LnRvcCAtPSBvZmZzZXRUb3A7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocmVjdC5zdHlsZSgpLCB7IGRpc3BsYXk6IFwiYmxvY2tcIiB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX0NPTFVNTlM6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsUmVjdDAgPSB0aGlzLmdldENlbGxSZWN0KDAsIHJlZ2lvbi5jb2xzWzBdKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsUmVjdDEgPSB0aGlzLmdldENlbGxSZWN0KDAsIHJlZ2lvbi5jb2xzWzFdKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZWN0ID0gY2VsbFJlY3QwLnVuaW9uKGNlbGxSZWN0MSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2V0TGVmdCA9IHJlZ2lvbi5jb2xzWzBdID09PSAwID8gMCA6IDE7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IHJlY3QubGVmdCAtIG9mZnNldExlZnQsXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlY3Qud2lkdGggKyBvZmZzZXRMZWZ0LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX1JPV1M6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsUmVjdDAgPSB0aGlzLmdldENlbGxSZWN0KHJlZ2lvbi5yb3dzWzBdLCAwKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsUmVjdDEgPSB0aGlzLmdldENlbGxSZWN0KHJlZ2lvbi5yb3dzWzFdLCAwKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZWN0ID0gY2VsbFJlY3QwLnVuaW9uKGNlbGxSZWN0MSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2V0VG9wID0gcmVnaW9uLnJvd3NbMF0gPT09IDAgPyAwIDogMTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVjdC5oZWlnaHQgKyBvZmZzZXRUb3AsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICAgICAgICAgICAgICB0b3A6IHJlY3QudG9wIC0gb2Zmc2V0VG9wLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNhc2UgUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9UQUJMRTpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IDAsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBkZWZhdWx0OiByZXR1cm4geyBkaXNwbGF5OiBcIm5vbmVcIiB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEN1bXVsYXRpdmVXaWR0aEF0ID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ID49IHRoaXMubnVtQ29scykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VtdWxhdGl2ZUNvbHVtbldpZHRoc1t0aGlzLm51bUNvbHMgLSAxXSArIHRoaXMuZ2hvc3RXaWR0aCAqIChpbmRleCAtIHRoaXMubnVtQ29scyArIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VtdWxhdGl2ZUNvbHVtbldpZHRoc1tpbmRleF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VtdWxhdGl2ZUhlaWdodEF0ID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ID49IHRoaXMubnVtUm93cykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VtdWxhdGl2ZVJvd0hlaWdodHNbdGhpcy5udW1Sb3dzIC0gMV0gKyB0aGlzLmdob3N0SGVpZ2h0ICogKGluZGV4IC0gdGhpcy5udW1Sb3dzICsgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdW11bGF0aXZlUm93SGVpZ2h0c1tpbmRleF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEluZGljZXNJbkludGVydmFsKFxuICAgICAgICBtaW46IG51bWJlcixcbiAgICAgICAgbWF4OiBudW1iZXIsXG4gICAgICAgIGNvdW50OiBudW1iZXIsXG4gICAgICAgIHVzZUVuZEJsZWVkOiBib29sZWFuLFxuICAgICAgICBsb29rdXA6IChpbmRleDogbnVtYmVyKSA9PiBudW1iZXJcbiAgICApIHtcbiAgICAgICAgbGV0IHN0YXJ0ID0gVXRpbHMuYmluYXJ5U2VhcmNoKG1pbiwgY291bnQgLSAxLCBsb29rdXApO1xuICAgICAgICBsZXQgZW5kID0gVXRpbHMuYmluYXJ5U2VhcmNoKG1heCwgY291bnQgLSAxLCBsb29rdXApO1xuXG4gICAgICAgIC8vIGNvcnJlY3QgZXhhY3QgcGl4ZWwgYWxpZ25tZW50XG4gICAgICAgIGlmIChzdGFydCA+PSAwICYmIG1pbiA9PT0gbG9va3VwKHN0YXJ0KSkge1xuICAgICAgICAgICAgc3RhcnQgKz0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFwcGx5IGJvdW5kZWQgYmxlZWRzXG4gICAgICAgIHN0YXJ0ID0gTWF0aC5tYXgoMCwgc3RhcnQgLSB0aGlzLmJsZWVkKTtcbiAgICAgICAgaWYgKHVzZUVuZEJsZWVkKSB7XG4gICAgICAgICAgICBlbmQgPSBNYXRoLm1pbihjb3VudCAtIDEsIGVuZCArIHRoaXMuYmxlZWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW5kID0gTWF0aC5taW4oY291bnQgLSAxLCBlbmQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7c3RhcnQsIGVuZH07XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24vZ3JpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRzs7QUFFSCx3QkFBb0QsWUFBWSxDQUFDLENBQUE7QUFDakUscUJBQXFCLFFBQVEsQ0FBQyxDQUFBO0FBQzlCLHNCQUFzQixTQUFTLENBQUMsQ0FBQTtBQWdCaEMsSUFBTSxtQkFBbUIsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDckQsSUFBTSxzQkFBc0IsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFDM0QsSUFBTSw4QkFBOEIsR0FBRyxDQUFDLHlCQUF5QixFQUFFLHNCQUFzQixDQUFDLENBQUM7QUFDM0YsSUFBTSxZQUFZLEdBQWEsRUFBRSxDQUFDO0FBRWxDOztHQUVHO0FBQ0g7SUFpQkk7Ozs7Ozs7T0FPRztJQUNILGNBQ0ksVUFBb0IsRUFDcEIsWUFBc0IsRUFDdEIsS0FBMEIsRUFDMUIsV0FBdUMsRUFDdkMsVUFBcUM7UUE5QjdDLGlCQXFYQztRQXpWTyxxQkFBMEIsR0FBMUIsUUFBUSxJQUFJLENBQUMsYUFBYTtRQUMxQiwyQkFBdUMsR0FBdkMsY0FBYyxJQUFJLENBQUMsb0JBQW9CO1FBQ3ZDLDBCQUFxQyxHQUFyQyxhQUFhLElBQUksQ0FBQyxtQkFBbUI7UUErU2xDLHlCQUFvQixHQUFHLFVBQUMsS0FBYTtZQUN4QyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLE1BQU0sQ0FBQyxLQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDeEcsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxLQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUMsQ0FBQztRQUNMLENBQUMsQ0FBQTtRQUVNLDBCQUFxQixHQUFHLFVBQUMsS0FBYTtZQUN6QyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLE1BQU0sQ0FBQyxLQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdkcsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxLQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUMsQ0FBQztRQUNMLENBQUMsQ0FBQTtRQTNURyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsc0JBQXNCLEdBQUcsYUFBSyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsYUFBSyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksMEJBQVcsR0FBbEIsVUFBbUIsUUFBZ0IsRUFBRSxXQUFtQjtRQUNwRCxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLElBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDekQsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQzlELE1BQU0sQ0FBQyxJQUFJLFdBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksK0JBQWdCLEdBQXZCLFVBQXdCLFFBQWdCLEVBQUUsV0FBbUI7UUFDekQsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1osSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsRUFBRSxDQUFDLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNyQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUMxQixHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25DLEdBQUcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3ZELENBQUM7UUFFRCxFQUFFLENBQUMsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ3hCLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkMsSUFBSSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDNUQsQ0FBQztRQUNELE1BQU0sQ0FBQyxJQUFJLFdBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSx5QkFBVSxHQUFqQixVQUFrQixRQUFnQjtRQUM5QixJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLElBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDekQsTUFBTSxDQUFDLElBQUksV0FBSSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNJLDRCQUFhLEdBQXBCLFVBQXFCLFdBQW1CO1FBQ3BDLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0MsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUM5RCxNQUFNLENBQUMsSUFBSSxXQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksdUJBQVEsR0FBZjtRQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSx3QkFBUyxHQUFoQjtRQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxzQkFBTyxHQUFkO1FBQ0ksTUFBTSxDQUFDLElBQUksV0FBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSw2QkFBYyxHQUFyQixVQUF5QixJQUFVLEVBQUUsUUFBd0I7UUFDekQsSUFBTSxPQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2YsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNuQixDQUFDO1FBRUQsSUFBQSxtQ0FBbUUsRUFBNUQsZ0NBQWEsRUFBRSw0QkFBVyxDQUFtQztRQUNwRSxJQUFBLHNDQUE0RSxFQUFyRSxzQ0FBZ0IsRUFBRSxrQ0FBYyxDQUFzQztRQUM3RSxHQUFHLENBQUMsQ0FBQyxJQUFJLFFBQVEsR0FBRyxhQUFhLEVBQUUsUUFBUSxJQUFJLFdBQVcsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3JFLEdBQUcsQ0FBQyxDQUFDLElBQUksV0FBVyxHQUFHLGdCQUFnQixFQUFFLFdBQVcsSUFBSSxjQUFjLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQztnQkFDcEYsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDbEQsQ0FBQztRQUNMLENBQUM7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksNEJBQWEsR0FBcEIsVUFBd0IsSUFBVSxFQUFFLFFBQXVCO1FBQ3ZELElBQU0sT0FBTyxHQUFRLEVBQUUsQ0FBQztRQUN4QixFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNmLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDbkIsQ0FBQztRQUVELElBQUEsbUNBQW1FLEVBQTVELGdDQUFhLEVBQUUsNEJBQVcsQ0FBbUM7UUFDcEUsR0FBRyxDQUFDLENBQUMsSUFBSSxRQUFRLEdBQUcsYUFBYSxFQUFFLFFBQVEsSUFBSSxXQUFXLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNyRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksK0JBQWdCLEdBQXZCLFVBQTJCLElBQVUsRUFBRSxRQUEwQjtRQUM3RCxJQUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7UUFDeEIsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDZixNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFBLHNDQUE0RSxFQUFyRSxzQ0FBZ0IsRUFBRSxrQ0FBYyxDQUFzQztRQUM3RSxHQUFHLENBQUMsQ0FBQyxJQUFJLFdBQVcsR0FBRyxnQkFBZ0IsRUFBRSxXQUFXLElBQUksY0FBYyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDcEYsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0NBQW1CLEdBQTFCLFVBQ0ksSUFBVSxFQUNWLGlCQUF5QixFQUN6QixLQUE2QjtRQUQ3QixpQ0FBeUIsR0FBekIseUJBQXlCO1FBQ3pCLHFCQUE2QixHQUE3QixRQUFRLElBQUksQ0FBQyxnQkFBZ0I7UUFHN0IsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDZixNQUFNLENBQUMsRUFBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLEVBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsSUFBTSxTQUFTLEdBQUcsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDbkcsSUFBQSwySEFNQyxFQU5JLGdCQUFLLEVBQUUsWUFBRyxDQU1iO1FBRUYsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbkMsR0FBRyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQztRQUVELE1BQU0sQ0FBQztZQUNILFdBQVcsRUFBRSxHQUFHO1lBQ2hCLGFBQWEsRUFBRSxLQUFLO1NBQ3ZCLENBQUM7SUFDTixDQUFDO0lBRUQ7OztPQUdHO0lBQ0kscUNBQXNCLEdBQTdCLFVBQ0ksSUFBVSxFQUNWLGlCQUF5QixFQUN6QixLQUFnQztRQURoQyxpQ0FBeUIsR0FBekIseUJBQXlCO1FBQ3pCLHFCQUFnQyxHQUFoQyxRQUFRLElBQUksQ0FBQyxtQkFBbUI7UUFHaEMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDZixNQUFNLENBQUMsRUFBQyxjQUFjLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsRUFBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxJQUFNLFNBQVMsR0FBRyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN0RyxJQUFBLDJIQU1DLEVBTkksZ0JBQUssRUFBRSxZQUFHLENBTWI7UUFFRixFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuQyxHQUFHLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN4QixDQUFDO1FBRUQsTUFBTSxDQUFDO1lBQ0gsY0FBYyxFQUFFLEdBQUc7WUFDbkIsZ0JBQWdCLEVBQUUsS0FBSztTQUMxQixDQUFDO0lBQ04sQ0FBQztJQUVNLDJCQUFZLEdBQW5CLFVBQW9CLFFBQWdCLEVBQUUsV0FBbUI7UUFDckQsTUFBTSxDQUFDLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU0sZ0NBQWlCLEdBQXhCLFVBQXlCLFFBQWdCLEVBQUUsV0FBbUIsRUFBRSxNQUFjLEVBQUUsU0FBaUI7UUFDN0YsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLE1BQU0sSUFBSSxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNuRCxNQUFNLENBQUMsOEJBQThCLENBQUM7UUFDMUMsQ0FBQztRQUNELEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsRUFBRSxDQUFDLENBQUMsV0FBVyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1FBQy9CLENBQUM7UUFDRCxNQUFNLENBQUMsWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFTSw2QkFBYyxHQUFyQixVQUFzQixNQUFlO1FBQ2pDLElBQU0sV0FBVyxHQUFHLGlCQUFPLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekQsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNsQixLQUFLLDJCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMzQixJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuRSxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuRSxJQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRCxJQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQyxJQUFNLElBQUksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLElBQUksVUFBVSxDQUFDO2dCQUN6QixJQUFJLENBQUMsR0FBRyxJQUFJLFNBQVMsQ0FBQztnQkFDdEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDN0QsQ0FBQztZQUVELEtBQUssMkJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2xDLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEQsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0RCxJQUFNLElBQUksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN4QyxJQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRCxNQUFNLENBQUM7b0JBQ0gsTUFBTSxFQUFFLENBQUM7b0JBQ1QsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVU7b0JBQzVCLEdBQUcsRUFBRSxDQUFDO29CQUNOLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVU7aUJBQ2pDLENBQUM7WUFDSixDQUFDO1lBRUgsS0FBSywyQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDL0IsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN0RCxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELElBQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3hDLElBQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sQ0FBQztvQkFDSCxPQUFPLEVBQUUsT0FBTztvQkFDaEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUztvQkFDL0IsSUFBSSxFQUFFLENBQUM7b0JBQ1AsS0FBSyxFQUFFLENBQUM7b0JBQ1IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUztpQkFDNUIsQ0FBQztZQUNOLENBQUM7WUFFRCxLQUFLLDJCQUFpQixDQUFDLFVBQVU7Z0JBQzdCLE1BQU0sQ0FBQztvQkFDSCxNQUFNLEVBQUUsQ0FBQztvQkFDVCxPQUFPLEVBQUUsT0FBTztvQkFDaEIsSUFBSSxFQUFFLENBQUM7b0JBQ1AsS0FBSyxFQUFFLENBQUM7b0JBQ1IsR0FBRyxFQUFFLENBQUM7aUJBQ1QsQ0FBQztZQUVOLFNBQVMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO0lBa0JPLG1DQUFvQixHQUE1QixVQUNJLEdBQVcsRUFDWCxHQUFXLEVBQ1gsS0FBYSxFQUNiLFdBQW9CLEVBQ3BCLE1BQWlDO1FBRWpDLElBQUksS0FBSyxHQUFHLGFBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdkQsSUFBSSxHQUFHLEdBQUcsYUFBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVyRCxnQ0FBZ0M7UUFDaEMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUVELHVCQUF1QjtRQUN2QixLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2QsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE1BQU0sQ0FBQyxFQUFDLFlBQUssRUFBRSxRQUFHLEVBQUMsQ0FBQztJQUN4QixDQUFDO0lBblhhLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLHdCQUFtQixHQUFHLEVBQUUsQ0FBQztJQUN6QixxQkFBZ0IsR0FBRyxHQUFHLENBQUM7SUFDdkIseUJBQW9CLEdBQUcsRUFBRSxDQUFDO0lBQzFCLHdCQUFtQixHQUFHLEdBQUcsQ0FBQztJQWdYNUMsV0FBQztBQUFELENBclhBLEFBcVhDLElBQUE7QUFyWFksWUFBSSxPQXFYaEIsQ0FBQSIsImZpbGUiOiJjb21tb24vZ3JpZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQlNELTMgTGljZW5zZSBhcyBtb2RpZmllZCAodGhlIOKAnExpY2Vuc2XigJ0pOyB5b3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBsaWNlbnNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvUEFURU5UU1xuICovXG5cbmltcG9ydCB7IElSZWdpb24sIFJlZ2lvbkNhcmRpbmFsaXR5LCBSZWdpb25zIH0gZnJvbSBcIi4uL3JlZ2lvbnNcIjtcbmltcG9ydCB7IFJlY3QgfSBmcm9tIFwiLi9yZWN0XCI7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCB0eXBlIElDZWxsTWFwcGVyPFQ+ID0gKHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpID0+IFQ7XG5leHBvcnQgdHlwZSBJUm93TWFwcGVyPFQ+ID0gKHJvd0luZGV4OiBudW1iZXIpID0+IFQ7XG5leHBvcnQgdHlwZSBJQ29sdW1uTWFwcGVyPFQ+ID0gKGNvbHVtbkluZGV4OiBudW1iZXIpID0+IFQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJvd0luZGljZXMge1xuICAgIHJvd0luZGV4U3RhcnQ6IG51bWJlcjtcbiAgICByb3dJbmRleEVuZDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW5JbmRpY2VzIHtcbiAgICBjb2x1bW5JbmRleFN0YXJ0OiBudW1iZXI7XG4gICAgY29sdW1uSW5kZXhFbmQ6IG51bWJlcjtcbn1cblxuY29uc3QgRVhUUkVNQV9MQVNUX0lOX1JPVyA9IFtcImJwLXRhYmxlLWxhc3QtaW4tcm93XCJdO1xuY29uc3QgRVhUUkVNQV9MQVNUX0lOX0NPTFVNTiA9IFtcImJwLXRhYmxlLWxhc3QtaW4tY29sdW1uXCJdO1xuY29uc3QgRVhUUkVNQV9MQVNUX0lOX1JPV19BTkRfQ09MVU1OID0gW1wiYnAtdGFibGUtbGFzdC1pbi1jb2x1bW5cIiwgXCJicC10YWJsZS1sYXN0LWluLXJvd1wiXTtcbmNvbnN0IEVYVFJFTUFfTk9ORTogc3RyaW5nW10gPSBbXTtcblxuLyoqXG4gKiBUaGlzIGNsYXNzIG1hbmFnZXMgdGhlIHNpemVzIG9mIGdyaWQgY2VsbHMgdXNpbmcgYXJyYXlzIG9mIGluZGl2aWR1YWwgcm93L2NvbHVtbiBzaXplcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyaWQge1xuICAgIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9CTEVFRCA9IDM7XG4gICAgcHVibGljIHN0YXRpYyBERUZBVUxUX01BWF9DT0xVTU5TID0gNTA7XG4gICAgcHVibGljIHN0YXRpYyBERUZBVUxUX01BWF9ST1dTID0gMjAwO1xuICAgIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9HSE9TVF9IRUlHSFQgPSAyMDtcbiAgICBwdWJsaWMgc3RhdGljIERFRkFVTFRfR0hPU1RfV0lEVEggPSAxNTA7XG5cbiAgICBwdWJsaWMgbnVtQ29sczogbnVtYmVyO1xuICAgIHB1YmxpYyBudW1Sb3dzOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBibGVlZDogbnVtYmVyO1xuICAgIHByaXZhdGUgY29sdW1uV2lkdGhzOiBudW1iZXJbXTtcbiAgICBwcml2YXRlIHJvd0hlaWdodHM6IG51bWJlcltdO1xuICAgIHByaXZhdGUgY3VtdWxhdGl2ZUNvbHVtbldpZHRoczogbnVtYmVyW107XG4gICAgcHJpdmF0ZSBjdW11bGF0aXZlUm93SGVpZ2h0czogbnVtYmVyW107XG4gICAgcHJpdmF0ZSBnaG9zdEhlaWdodDogbnVtYmVyO1xuICAgIHByaXZhdGUgZ2hvc3RXaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBjb25zdHJ1Y3RvciBhY2N1bXVsYXRlcyB0aGUgaGVpZ2h0cyBhbmQgd2lkdGhzIGluIGBPKG4pYCwgc2F2aW5nXG4gICAgICogdGltZSBpbiBsYXRlciBjYWxjdWxhdGlvbnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYmxlZWQgLSBUaGUgbnVtYmVyIG9mIHJvd3MvY29scyB0aGF0IHdlIGV4cGFuZCBiZXlvbmQgdGhlXG4gICAgICogICAgIHZpZXdwb3J0IChvbiBhbGwgc2lkZXMpLiBUaGlzIGhlbHBzIGF2b2lkIGRpc3BsYXlpbmcgYW4gZW1wdHlcbiAgICAgKiAgICAgdmlld3BvcnQgd2hlbiB0aGUgdXNlciBzY3JvbGxzIHF1aWNrbHkuXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICByb3dIZWlnaHRzOiBudW1iZXJbXSxcbiAgICAgICAgY29sdW1uV2lkdGhzOiBudW1iZXJbXSxcbiAgICAgICAgYmxlZWQgPSBHcmlkLkRFRkFVTFRfQkxFRUQsXG4gICAgICAgIGdob3N0SGVpZ2h0ID0gR3JpZC5ERUZBVUxUX0dIT1NUX0hFSUdIVCxcbiAgICAgICAgZ2hvc3RXaWR0aCA9IEdyaWQuREVGQVVMVF9HSE9TVF9XSURUSCxcbiAgICApIHtcbiAgICAgICAgdGhpcy5jb2x1bW5XaWR0aHMgPSBjb2x1bW5XaWR0aHM7XG4gICAgICAgIHRoaXMucm93SGVpZ2h0cyA9IHJvd0hlaWdodHM7XG4gICAgICAgIHRoaXMuY3VtdWxhdGl2ZUNvbHVtbldpZHRocyA9IFV0aWxzLmFjY3VtdWxhdGUoY29sdW1uV2lkdGhzKTtcbiAgICAgICAgdGhpcy5jdW11bGF0aXZlUm93SGVpZ2h0cyA9IFV0aWxzLmFjY3VtdWxhdGUocm93SGVpZ2h0cyk7XG4gICAgICAgIHRoaXMubnVtQ29scyA9IGNvbHVtbldpZHRocy5sZW5ndGg7XG4gICAgICAgIHRoaXMubnVtUm93cyA9IHJvd0hlaWdodHMubGVuZ3RoO1xuICAgICAgICB0aGlzLmJsZWVkID0gYmxlZWQ7XG4gICAgICAgIHRoaXMuZ2hvc3RIZWlnaHQgPSBnaG9zdEhlaWdodDtcbiAgICAgICAgdGhpcy5naG9zdFdpZHRoID0gZ2hvc3RXaWR0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBgUmVjdGAgYm91bmRzIG9mIGEgY2VsbCBpbiBzY3JvbGxwYW5lIGNsaWVudCBzcGFjZS5cbiAgICAgKlxuICAgICAqIFNjcm9sbHBhbmUgY2xpZW50IGNvb3JkaW5hdGUgc3BhY2UgdXNlcyB0aGUgb3JpZ2luIG9mIHRoZSBzY3JvbGxwYW5lXG4gICAgICogY2xpZW50ICh0aGUgaW5zaWRlIHBhcnQgdGhhdCB5b3UncmUgbW92aW5nIGFyb3VuZCkuXG4gICAgICpcbiAgICAgKiBGb3IgZXhhbXBsZSwgbGV0J3Mgc2F5IHlvdSdyZSBzY3JvbGxpbmcgYXJvdW5kIGEgYmxvY2sgb2YgMTAwMCB4IDEwMDBcbiAgICAgKiBjZWxscy4gUmVnYXJkbGVzcyB3aGVyZSB5b3UndmUgc2Nyb2xsZWQsIHRoZSBmaXJzdCBjZWxsIGlzIGFsd2F5cyBhdFxuICAgICAqIDAsMCBpbiBzY3JvbGxwYW5lIGNsaWVudCBzcGFjZS4gdGhlIGNlbGwgdG8gdGhlIHJpZ2h0IG9mIGl0IGlzIGFsd2F5c1xuICAgICAqIGF0LCBlLmcuLCAxMDAsMC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2VsbFJlY3Qocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLnJvd0hlaWdodHNbcm93SW5kZXhdO1xuICAgICAgICBjb25zdCB0b3AgPSB0aGlzLmN1bXVsYXRpdmVSb3dIZWlnaHRzW3Jvd0luZGV4XSAtIGhlaWdodDtcbiAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLmNvbHVtbldpZHRoc1tjb2x1bW5JbmRleF07XG4gICAgICAgIGNvbnN0IGxlZnQgPSB0aGlzLmN1bXVsYXRpdmVDb2x1bW5XaWR0aHNbY29sdW1uSW5kZXhdIC0gd2lkdGg7XG4gICAgICAgIHJldHVybiBuZXcgUmVjdChsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGBSZWN0YCBib3VuZHMgb2YgYSBjZWxsIGluIHNjcm9sbHBhbmUgY2xpZW50IHNwYWNlLlxuICAgICAqXG4gICAgICogSWYgdGhlIGNlbGwgaXMgYmV5b25kIHRoZSBib3VuZHMgb2YgdGhlIHVzZXItZGVmaW5lZCB0YWJsZSBjZWxscywgaXQgaXNcbiAgICAgKiBjb25zaWRlcmVkIGEgXCJnaG9zdFwiIGNlbGwuIElmIGEgd2lkdGgvaGVpZ2h0IGlzIG5vdCBkZWZpbmVkIGZvciB0aGF0XG4gICAgICogcm93L2NvbHVtbiwgd2UgdXNlIHRoZSBkZWZhdWx0IHdpZHRoL2hlaWdodC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0R2hvc3RDZWxsUmVjdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGxldCBsZWZ0ID0gMDtcbiAgICAgICAgbGV0IHRvcCA9IDA7XG4gICAgICAgIGxldCB3aWR0aCA9IDA7XG4gICAgICAgIGxldCBoZWlnaHQgPSAwO1xuICAgICAgICBpZiAocm93SW5kZXggPj0gdGhpcy5yb3dIZWlnaHRzLmxlbmd0aCkge1xuICAgICAgICAgICAgaGVpZ2h0ID0gdGhpcy5naG9zdEhlaWdodDtcbiAgICAgICAgICAgIHRvcCA9IHRoaXMuZ2V0SGVpZ2h0KCkgKyB0aGlzLmdob3N0SGVpZ2h0ICogKHJvd0luZGV4IC0gdGhpcy5udW1Sb3dzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhlaWdodCA9IHRoaXMucm93SGVpZ2h0c1tyb3dJbmRleF07XG4gICAgICAgICAgICB0b3AgPSB0aGlzLmN1bXVsYXRpdmVSb3dIZWlnaHRzW3Jvd0luZGV4XSAtIGhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2x1bW5JbmRleCA+PSB0aGlzLmNvbHVtbldpZHRocy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHdpZHRoID0gdGhpcy5naG9zdFdpZHRoO1xuICAgICAgICAgICAgbGVmdCA9IHRoaXMuZ2V0V2lkdGgoKSArIHRoaXMuZ2hvc3RXaWR0aCAqIChjb2x1bW5JbmRleCAtIHRoaXMubnVtQ29scyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aWR0aCA9IHRoaXMuY29sdW1uV2lkdGhzW2NvbHVtbkluZGV4XTtcbiAgICAgICAgICAgIGxlZnQgPSB0aGlzLmN1bXVsYXRpdmVDb2x1bW5XaWR0aHNbY29sdW1uSW5kZXhdIC0gd2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBSZWN0KGxlZnQsIHRvcCwgd2lkdGgsIGhlaWdodCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYFJlY3RgIHdpdGggdGhlIGJhc2UgY29vcmRpbmF0ZSBhbmQgaGVpZ2h0IG9mIHRoZSBzcGVjaWZpZWQgcm93LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSb3dSZWN0KHJvd0luZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5yb3dIZWlnaHRzW3Jvd0luZGV4XTtcbiAgICAgICAgY29uc3QgdG9wID0gdGhpcy5jdW11bGF0aXZlUm93SGVpZ2h0c1tyb3dJbmRleF0gLSBoZWlnaHQ7XG4gICAgICAgIHJldHVybiBuZXcgUmVjdCgwLCB0b3AsIHRoaXMuZ2V0V2lkdGgoKSwgaGVpZ2h0KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBgUmVjdGAgd2l0aCB0aGUgYmFzZSBjb29yZGluYXRlIGFuZCB3aWR0aCBvZiB0aGUgc3BlY2lmaWVkIGNvbHVtbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29sdW1uUmVjdChjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy5jb2x1bW5XaWR0aHNbY29sdW1uSW5kZXhdO1xuICAgICAgICBjb25zdCBsZWZ0ID0gdGhpcy5jdW11bGF0aXZlQ29sdW1uV2lkdGhzW2NvbHVtbkluZGV4XSAtIHdpZHRoO1xuICAgICAgICByZXR1cm4gbmV3IFJlY3QobGVmdCwgMCwgd2lkdGgsIHRoaXMuZ2V0SGVpZ2h0KCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHRvdGFsIHdpZHRoIG9mIHRoZSBlbnRpcmUgZ3JpZFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRXaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VtdWxhdGl2ZUNvbHVtbldpZHRoc1t0aGlzLm51bUNvbHMgLSAxXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSB0b3RhbCB3aWR0aCBvZiB0aGUgZW50aXJlIGdyaWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SGVpZ2h0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdW11bGF0aXZlUm93SGVpZ2h0c1t0aGlzLm51bVJvd3MgLSAxXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBgUmVjdGAgYm91bmRzIG9mIGVudGlyZSBncmlkXG4gICAgICovXG4gICAgcHVibGljIGdldFJlY3QoKSB7XG4gICAgICAgIHJldHVybiBuZXcgUmVjdCgwLCAwLCB0aGlzLmdldFdpZHRoKCksIHRoaXMuZ2V0SGVpZ2h0KCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1hcHMgZWFjaCBjZWxsIHRoYXQgaW50ZXJzZWN0cyB3aXRoIHRoZSBnaXZlbiBgUmVjdGAgYXJndW1lbnQuIFRoZVxuICAgICAqIGluZGljZXMgb2YgaXRlcmF0aW9uIGFyZSBleHRlbmRlZCBpbiBib3RoIGRpcmVjdGlvbnMgYnkgdGhlIGludGVnZXJcbiAgICAgKiBgYmxlZWRgIGNsYXNzIHByb3BlcnR5LCB0aGVuIGFyZSBjbGFtcGVkIGJldHdlZW4gMCBhbmQgdGhlIG51bWJlciBvZlxuICAgICAqIHJvd3MvY29sdW1ucy5cbiAgICAgKlxuICAgICAqIFVzZXMgYSBiaW5hcnkgc2VhcmNoIGZvciBlYWNoIG9mIHRoZSA0IGVkZ2VzIG9mIHRoZSBib3VuZHMsIHJlc3VsdGluZ1xuICAgICAqIGluIGEgcnVudGltZSBvZiBgTyhsb2cocm93cykgKyBsb2coY29scykpYCBwbHVzIHRoZSBgTyhpcm93cyAqIGljb2xzKWBcbiAgICAgKiBpdGVyYXRpb24gb2YgaW50ZXJzZWN0aW5nIGNlbGxzLlxuICAgICAqL1xuICAgIHB1YmxpYyBtYXBDZWxsc0luUmVjdDxUPihyZWN0OiBSZWN0LCBjYWxsYmFjazogSUNlbGxNYXBwZXI8VD4pOiBUW10ge1xuICAgICAgICBjb25zdCByZXN1bHRzOiBUW10gPSBbXTtcbiAgICAgICAgaWYgKHJlY3QgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7cm93SW5kZXhTdGFydCwgcm93SW5kZXhFbmR9ID0gdGhpcy5nZXRSb3dJbmRpY2VzSW5SZWN0KHJlY3QpO1xuICAgICAgICBjb25zdCB7Y29sdW1uSW5kZXhTdGFydCwgY29sdW1uSW5kZXhFbmR9ID0gdGhpcy5nZXRDb2x1bW5JbmRpY2VzSW5SZWN0KHJlY3QpO1xuICAgICAgICBmb3IgKGxldCByb3dJbmRleCA9IHJvd0luZGV4U3RhcnQ7IHJvd0luZGV4IDw9IHJvd0luZGV4RW5kOyByb3dJbmRleCsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBjb2x1bW5JbmRleCA9IGNvbHVtbkluZGV4U3RhcnQ7IGNvbHVtbkluZGV4IDw9IGNvbHVtbkluZGV4RW5kOyBjb2x1bW5JbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKGNhbGxiYWNrKHJvd0luZGV4LCBjb2x1bW5JbmRleCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1hcHMgZWFjaCByb3cgdGhhdCBpbnRlcnNlY3RzIHdpdGggdGhlIGdpdmVuIGBSZWN0YCBhcmd1bWVudC5cbiAgICAgKlxuICAgICAqIFNlZSBHcmlkLm1hcENlbGxzSW5SZWN0IGZvciBtb3JlIGRldGFpbHMuXG4gICAgICovXG4gICAgcHVibGljIG1hcFJvd3NJblJlY3Q8VD4ocmVjdDogUmVjdCwgY2FsbGJhY2s6IElSb3dNYXBwZXI8VD4pOiBUW10ge1xuICAgICAgICBjb25zdCByZXN1bHRzOiBUW10gPSBbXTtcbiAgICAgICAgaWYgKHJlY3QgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7cm93SW5kZXhTdGFydCwgcm93SW5kZXhFbmR9ID0gdGhpcy5nZXRSb3dJbmRpY2VzSW5SZWN0KHJlY3QpO1xuICAgICAgICBmb3IgKGxldCByb3dJbmRleCA9IHJvd0luZGV4U3RhcnQ7IHJvd0luZGV4IDw9IHJvd0luZGV4RW5kOyByb3dJbmRleCsrKSB7XG4gICAgICAgICAgICByZXN1bHRzLnB1c2goY2FsbGJhY2socm93SW5kZXgpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYXBzIGVhY2ggY29sdW1uIHRoYXQgaW50ZXJzZWN0cyB3aXRoIHRoZSBnaXZlbiBgUmVjdGAgYXJndW1lbnQuXG4gICAgICpcbiAgICAgKiBTZWUgR3JpZC5tYXBDZWxsc0luUmVjdCBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqL1xuICAgIHB1YmxpYyBtYXBDb2x1bW5zSW5SZWN0PFQ+KHJlY3Q6IFJlY3QsIGNhbGxiYWNrOiBJQ29sdW1uTWFwcGVyPFQ+KTogVFtdIHtcbiAgICAgICAgY29uc3QgcmVzdWx0czogVFtdID0gW107XG4gICAgICAgIGlmIChyZWN0ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge2NvbHVtbkluZGV4U3RhcnQsIGNvbHVtbkluZGV4RW5kfSA9IHRoaXMuZ2V0Q29sdW1uSW5kaWNlc0luUmVjdChyZWN0KTtcbiAgICAgICAgZm9yIChsZXQgY29sdW1uSW5kZXggPSBjb2x1bW5JbmRleFN0YXJ0OyBjb2x1bW5JbmRleCA8PSBjb2x1bW5JbmRleEVuZDsgY29sdW1uSW5kZXgrKykge1xuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKGNhbGxiYWNrKGNvbHVtbkluZGV4KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgc3RhcnQgYW5kIGVuZCBpbmRpY2VzIG9mIHJvd3MgdGhhdCBpbnRlcnNlY3Qgd2l0aCB0aGUgZ2l2ZW5cbiAgICAgKiBgUmVjdGAgYXJndW1lbnQuXG4gICAgICovXG4gICAgcHVibGljIGdldFJvd0luZGljZXNJblJlY3QoXG4gICAgICAgIHJlY3Q6IFJlY3QsXG4gICAgICAgIGluY2x1ZGVHaG9zdENlbGxzID0gZmFsc2UsXG4gICAgICAgIGxpbWl0ID0gR3JpZC5ERUZBVUxUX01BWF9ST1dTLFxuICAgICk6IElSb3dJbmRpY2VzIHtcblxuICAgICAgICBpZiAocmVjdCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4ge3Jvd0luZGV4RW5kOiAwLCByb3dJbmRleFN0YXJ0OiAwfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlYXJjaEVuZCA9IGluY2x1ZGVHaG9zdENlbGxzID8gTWF0aC5tYXgodGhpcy5udW1Sb3dzLCBHcmlkLkRFRkFVTFRfTUFYX1JPV1MpIDogdGhpcy5udW1Sb3dzO1xuICAgICAgICBsZXQge3N0YXJ0LCBlbmR9ID0gdGhpcy5nZXRJbmRpY2VzSW5JbnRlcnZhbChcbiAgICAgICAgICAgIHJlY3QudG9wLFxuICAgICAgICAgICAgcmVjdC50b3AgKyByZWN0LmhlaWdodCxcbiAgICAgICAgICAgIHNlYXJjaEVuZCxcbiAgICAgICAgICAgICFpbmNsdWRlR2hvc3RDZWxscyxcbiAgICAgICAgICAgIHRoaXMuZ2V0Q3VtdWxhdGl2ZUhlaWdodEF0LFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChsaW1pdCA+IDAgJiYgZW5kIC0gc3RhcnQgPiBsaW1pdCkge1xuICAgICAgICAgICAgZW5kID0gc3RhcnQgKyBsaW1pdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByb3dJbmRleEVuZDogZW5kLFxuICAgICAgICAgICAgcm93SW5kZXhTdGFydDogc3RhcnQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgc3RhcnQgYW5kIGVuZCBpbmRpY2VzIG9mIGNvbHVtbnMgdGhhdCBpbnRlcnNlY3Qgd2l0aCB0aGVcbiAgICAgKiBnaXZlbiBgUmVjdGAgYXJndW1lbnQuXG4gICAgICovXG4gICAgcHVibGljIGdldENvbHVtbkluZGljZXNJblJlY3QoXG4gICAgICAgIHJlY3Q6IFJlY3QsXG4gICAgICAgIGluY2x1ZGVHaG9zdENlbGxzID0gZmFsc2UsXG4gICAgICAgIGxpbWl0ID0gR3JpZC5ERUZBVUxUX01BWF9DT0xVTU5TLFxuICAgICk6IElDb2x1bW5JbmRpY2VzIHtcblxuICAgICAgICBpZiAocmVjdCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4ge2NvbHVtbkluZGV4RW5kOiAwLCBjb2x1bW5JbmRleFN0YXJ0OiAwfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlYXJjaEVuZCA9IGluY2x1ZGVHaG9zdENlbGxzID8gTWF0aC5tYXgodGhpcy5udW1Db2xzLCBHcmlkLkRFRkFVTFRfTUFYX0NPTFVNTlMpIDogdGhpcy5udW1Db2xzO1xuICAgICAgICBsZXQge3N0YXJ0LCBlbmR9ID0gdGhpcy5nZXRJbmRpY2VzSW5JbnRlcnZhbChcbiAgICAgICAgICAgIHJlY3QubGVmdCxcbiAgICAgICAgICAgIHJlY3QubGVmdCArIHJlY3Qud2lkdGgsXG4gICAgICAgICAgICBzZWFyY2hFbmQsXG4gICAgICAgICAgICAhaW5jbHVkZUdob3N0Q2VsbHMsXG4gICAgICAgICAgICB0aGlzLmdldEN1bXVsYXRpdmVXaWR0aEF0LFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChsaW1pdCA+IDAgJiYgZW5kIC0gc3RhcnQgPiBsaW1pdCkge1xuICAgICAgICAgICAgZW5kID0gc3RhcnQgKyBsaW1pdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2x1bW5JbmRleEVuZDogZW5kLFxuICAgICAgICAgICAgY29sdW1uSW5kZXhTdGFydDogc3RhcnQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGlzR2hvc3RJbmRleChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiAocm93SW5kZXggPj0gdGhpcy5udW1Sb3dzIHx8IGNvbHVtbkluZGV4ID49IHRoaXMubnVtQ29scyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEV4dHJlbWFDbGFzc2VzKHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIsIHJvd0VuZDogbnVtYmVyLCBjb2x1bW5FbmQ6IG51bWJlcikge1xuICAgICAgICBpZiAocm93SW5kZXggPT09IHJvd0VuZCAmJiBjb2x1bW5JbmRleCA9PT0gY29sdW1uRW5kKSB7XG4gICAgICAgICAgICByZXR1cm4gRVhUUkVNQV9MQVNUX0lOX1JPV19BTkRfQ09MVU1OO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyb3dJbmRleCA9PT0gcm93RW5kKSB7XG4gICAgICAgICAgICByZXR1cm4gRVhUUkVNQV9MQVNUX0lOX0NPTFVNTjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29sdW1uSW5kZXggPT09IGNvbHVtbkVuZCkge1xuICAgICAgICAgICAgcmV0dXJuIEVYVFJFTUFfTEFTVF9JTl9ST1c7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEVYVFJFTUFfTk9ORTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmVnaW9uU3R5bGUocmVnaW9uOiBJUmVnaW9uKSB7XG4gICAgICAgIGNvbnN0IGNhcmRpbmFsaXR5ID0gUmVnaW9ucy5nZXRSZWdpb25DYXJkaW5hbGl0eShyZWdpb24pO1xuICAgICAgICBzd2l0Y2ggKGNhcmRpbmFsaXR5KSB7XG4gICAgICAgICAgICBjYXNlIFJlZ2lvbkNhcmRpbmFsaXR5LkNFTExTOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VsbFJlY3QwID0gdGhpcy5nZXRDZWxsUmVjdChyZWdpb24ucm93c1swXSwgcmVnaW9uLmNvbHNbMF0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxSZWN0MSA9IHRoaXMuZ2V0Q2VsbFJlY3QocmVnaW9uLnJvd3NbMV0sIHJlZ2lvbi5jb2xzWzFdKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRMZWZ0ID0gcmVnaW9uLmNvbHNbMF0gPT09IDAgPyAwIDogMTtcbiAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRUb3AgPSByZWdpb24ucm93c1swXSA9PT0gMCA/IDAgOiAxO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBjZWxsUmVjdDAudW5pb24oY2VsbFJlY3QxKTtcbiAgICAgICAgICAgICAgICByZWN0LmhlaWdodCArPSBvZmZzZXRUb3A7XG4gICAgICAgICAgICAgICAgcmVjdC5sZWZ0IC09IG9mZnNldExlZnQ7XG4gICAgICAgICAgICAgICAgcmVjdC53aWR0aCArPSBvZmZzZXRMZWZ0O1xuICAgICAgICAgICAgICAgIHJlY3QudG9wIC09IG9mZnNldFRvcDtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihyZWN0LnN0eWxlKCksIHsgZGlzcGxheTogXCJibG9ja1wiIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXNlIFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfQ09MVU1OUzoge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxSZWN0MCA9IHRoaXMuZ2V0Q2VsbFJlY3QoMCwgcmVnaW9uLmNvbHNbMF0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxSZWN0MSA9IHRoaXMuZ2V0Q2VsbFJlY3QoMCwgcmVnaW9uLmNvbHNbMV0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBjZWxsUmVjdDAudW5pb24oY2VsbFJlY3QxKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRMZWZ0ID0gcmVnaW9uLmNvbHNbMF0gPT09IDAgPyAwIDogMTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IDAsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogcmVjdC5sZWZ0IC0gb2Zmc2V0TGVmdCxcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVjdC53aWR0aCArIG9mZnNldExlZnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXNlIFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfUk9XUzoge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxSZWN0MCA9IHRoaXMuZ2V0Q2VsbFJlY3QocmVnaW9uLnJvd3NbMF0sIDApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxSZWN0MSA9IHRoaXMuZ2V0Q2VsbFJlY3QocmVnaW9uLnJvd3NbMV0sIDApO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSBjZWxsUmVjdDAudW5pb24oY2VsbFJlY3QxKTtcbiAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRUb3AgPSByZWdpb24ucm93c1swXSA9PT0gMCA/IDAgOiAxO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZWN0LmhlaWdodCArIG9mZnNldFRvcCxcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIHRvcDogcmVjdC50b3AgLSBvZmZzZXRUb3AsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX1RBQkxFOlxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXCJibG9ja1wiLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgICAgICAgICByaWdodDogMCxcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiB7IGRpc3BsYXk6IFwibm9uZVwiIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VtdWxhdGl2ZVdpZHRoQXQgPSAoaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAoaW5kZXggPj0gdGhpcy5udW1Db2xzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdW11bGF0aXZlQ29sdW1uV2lkdGhzW3RoaXMubnVtQ29scyAtIDFdICsgdGhpcy5naG9zdFdpZHRoICogKGluZGV4IC0gdGhpcy5udW1Db2xzICsgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdW11bGF0aXZlQ29sdW1uV2lkdGhzW2luZGV4XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDdW11bGF0aXZlSGVpZ2h0QXQgPSAoaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAoaW5kZXggPj0gdGhpcy5udW1Sb3dzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdW11bGF0aXZlUm93SGVpZ2h0c1t0aGlzLm51bVJvd3MgLSAxXSArIHRoaXMuZ2hvc3RIZWlnaHQgKiAoaW5kZXggLSB0aGlzLm51bVJvd3MgKyAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmN1bXVsYXRpdmVSb3dIZWlnaHRzW2luZGV4XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SW5kaWNlc0luSW50ZXJ2YWwoXG4gICAgICAgIG1pbjogbnVtYmVyLFxuICAgICAgICBtYXg6IG51bWJlcixcbiAgICAgICAgY291bnQ6IG51bWJlcixcbiAgICAgICAgdXNlRW5kQmxlZWQ6IGJvb2xlYW4sXG4gICAgICAgIGxvb2t1cDogKGluZGV4OiBudW1iZXIpID0+IG51bWJlcixcbiAgICApIHtcbiAgICAgICAgbGV0IHN0YXJ0ID0gVXRpbHMuYmluYXJ5U2VhcmNoKG1pbiwgY291bnQgLSAxLCBsb29rdXApO1xuICAgICAgICBsZXQgZW5kID0gVXRpbHMuYmluYXJ5U2VhcmNoKG1heCwgY291bnQgLSAxLCBsb29rdXApO1xuXG4gICAgICAgIC8vIGNvcnJlY3QgZXhhY3QgcGl4ZWwgYWxpZ25tZW50XG4gICAgICAgIGlmIChzdGFydCA+PSAwICYmIG1pbiA9PT0gbG9va3VwKHN0YXJ0KSkge1xuICAgICAgICAgICAgc3RhcnQgKz0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFwcGx5IGJvdW5kZWQgYmxlZWRzXG4gICAgICAgIHN0YXJ0ID0gTWF0aC5tYXgoMCwgc3RhcnQgLSB0aGlzLmJsZWVkKTtcbiAgICAgICAgaWYgKHVzZUVuZEJsZWVkKSB7XG4gICAgICAgICAgICBlbmQgPSBNYXRoLm1pbihjb3VudCAtIDEsIGVuZCArIHRoaXMuYmxlZWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW5kID0gTWF0aC5taW4oY291bnQgLSAxLCBlbmQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7c3RhcnQsIGVuZH07XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -5,0 +7,0 @@ export { Clipboard } from "./clipboard";

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -17,2 +19,2 @@ "use strict";

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHOztBQUVILDBCQUEwQixhQUFhLENBQUM7QUFBL0IsMENBQStCO0FBQ3hDLHFCQUFxQixRQUFRLENBQUM7QUFBckIsMkJBQXFCO0FBQzlCLHFCQUE4QixRQUFRLENBQUM7QUFBOUIsMkJBQThCO0FBQ3ZDLDBCQUEwQixhQUFhLENBQUM7QUFBL0IsMENBQStCO0FBQ3hDLHNCQUFzQixTQUFTLENBQUM7QUFBdkIsOEJBQXVCIiwiZmlsZSI6ImNvbW1vbi9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIC0gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKi9cblxuZXhwb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSBcIi4vY2xpcGJvYXJkXCI7XG5leHBvcnQgeyBHcmlkIH0gZnJvbSBcIi4vZ3JpZFwiO1xuZXhwb3J0IHsgUmVjdCwgQW55UmVjdCB9IGZyb20gXCIuL3JlY3RcIjtcbmV4cG9ydCB7IFJvdW5kU2l6ZSB9IGZyb20gXCIuL3JvdW5kU2l6ZVwiO1xuZXhwb3J0IHsgVXRpbHMgfSBmcm9tIFwiLi91dGlsc1wiO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7O0FBRUgsMEJBQTBCLGFBQWEsQ0FBQztBQUEvQiwwQ0FBK0I7QUFDeEMscUJBQXFCLFFBQVEsQ0FBQztBQUFyQiwyQkFBcUI7QUFDOUIscUJBQThCLFFBQVEsQ0FBQztBQUE5QiwyQkFBOEI7QUFDdkMsMEJBQTBCLGFBQWEsQ0FBQztBQUEvQiwwQ0FBK0I7QUFDeEMsc0JBQXNCLFNBQVMsQ0FBQztBQUF2Qiw4QkFBdUIiLCJmaWxlIjoiY29tbW9uL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMyBMaWNlbnNlIGFzIG1vZGlmaWVkICh0aGUg4oCcTGljZW5zZeKAnSk7IHlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIGxpY2Vuc2UgYXQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKiBhbmQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9QQVRFTlRTXG4gKi9cblxuZXhwb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSBcIi4vY2xpcGJvYXJkXCI7XG5leHBvcnQgeyBHcmlkIH0gZnJvbSBcIi4vZ3JpZFwiO1xuZXhwb3J0IHsgUmVjdCwgQW55UmVjdCB9IGZyb20gXCIuL3JlY3RcIjtcbmV4cG9ydCB7IFJvdW5kU2l6ZSB9IGZyb20gXCIuL3JvdW5kU2l6ZVwiO1xuZXhwb3J0IHsgVXRpbHMgfSBmcm9tIFwiLi91dGlsc1wiO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

@@ -1,5 +0,6 @@

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -6,0 +7,0 @@ import * as React from "react";

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/
"use strict";
// HACKHACK: workaround for https://github.com/palantir/tslint/issues/1768
// tslint:disable adjacent-overload-signatures
/**

@@ -91,2 +95,2 @@ * A simple object for storing the client bounds of HTMLElements. Since

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24vcmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7O0FBTUg7Ozs7R0FJRztBQUNIO0lBNERJLGNBQ1csSUFBWSxFQUNaLEdBQVcsRUFDWCxLQUFhLEVBQ2IsTUFBYztRQUhkLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFdBQU0sR0FBTixNQUFNLENBQVE7SUFFekIsQ0FBQztJQS9ERDs7T0FFRztJQUNXLFVBQUssR0FBbkIsVUFBb0IsUUFBaUIsRUFBRSxRQUFpQjtRQUNwRCxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEMsSUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVFLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNFLElBQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDNUIsSUFBTSxL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c291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgLSBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqL1xuXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IHR5cGUgQW55UmVjdCA9IFJlY3QgfCBDbGllbnRSZWN0O1xuXG4vKipcbiAqIEEgc2ltcGxlIG9iamVjdCBmb3Igc3RvcmluZyB0aGUgY2xpZW50IGJvdW5kcyBvZiBIVE1MRWxlbWVudHMuIFNpbmNlXG4gKiBDbGllbnRSZWN0cyBhcmUgaW1tdXRhYmxlLCB0aGlzIG9iamVjdCBlbmFibGVzIGVkaXRpbmcgYW5kIHNvbWUgc2ltcGxlXG4gKiBtYW5pcHVsYXRpb24gbWV0aG9kcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlY3Qge1xuICAgIHB1YmxpYyBzdGF0aWMgT1JJR0lOID0gbmV3IFJlY3QoMCwgMCwgMCwgMCk7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBzbWFsbGVzdCBSZWN0IHRoYXQgZW50aXJlbHkgY29udGFpbnMgdGhlIHN1cHBsaWVkIHJlY3RzXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyB1bmlvbihhbnlSZWN0MDogQW55UmVjdCwgYW55UmVjdDE6IEFueVJlY3QpIHtcbiAgICAgICAgY29uc3QgcmVjdDAgPSBSZWN0LndyYXAoYW55UmVjdDApO1xuICAgICAgICBjb25zdCByZWN0MSA9IFJlY3Qud3JhcChhbnlSZWN0MSk7XG5cbiAgICAgICAgY29uc3QgdG9wID0gTWF0aC5taW4ocmVjdDAudG9wLCByZWN0MS50b3ApO1xuICAgICAgICBjb25zdCBsZWZ0ID0gTWF0aC5taW4ocmVjdDAubGVmdCwgcmVjdDEubGVmdCk7XG4gICAgICAgIGNvbnN0IGJvdHRvbSA9IE1hdGgubWF4KHJlY3QwLnRvcCArIHJlY3QwLmhlaWdodCwgcmVjdDEudG9wICsgcmVjdDEuaGVpZ2h0KTtcbiAgICAgICAgY29uc3QgcmlnaHQgPSBNYXRoLm1heChyZWN0MC5sZWZ0ICsgcmVjdDAud2lkdGgsIHJlY3QxLmxlZnQgKyByZWN0MS53aWR0aCk7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IGJvdHRvbSAtIHRvcDtcbiAgICAgICAgY29uc3Qgd2lkdGggPSByaWdodCAtIGxlZnQ7XG4gICAgICAgIHJldHVybiBuZXcgUmVjdChsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBuZXcgUmVjdCB0aGF0IHN1YnRyYWN0cyB0aGUgb3JpZ2luIG9mIHRoZSBzZWNvbmQgYXJndW1lbnRcbiAgICAgKiBmcm9tIHRoZSBmaXJzdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHN1YnRyYWN0T3JpZ2luKGFueVJlY3QwOiBBbnlSZWN0LCBhbnlSZWN0MTogQW55UmVjdCkge1xuICAgICAgICBjb25zdCByZWN0MCA9IFJlY3Qud3JhcChhbnlSZWN0MCk7XG4gICAgICAgIGNvbnN0IHJlY3QxID0gUmVjdC53cmFwKGFueVJlY3QxKTtcblxuICAgICAgICByZXR1cm4gbmV3IFJlY3QoXG4gICAgICAgICAgICByZWN0MC5sZWZ0IC0gcmVjdDEubGVmdCxcbiAgICAgICAgICAgIHJlY3QwLnRvcCAtIHJlY3QxLnRvcCxcbiAgICAgICAgICAgIHJlY3QwLndpZHRoLFxuICAgICAgICAgICAgcmVjdDAuaGVpZ2h0XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgQ1NTIHByb3BlcnRpZXMgcmVwcmVzZW50aW5nIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvZlxuICAgICAqIHRoaXMgUmVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHN0eWxlKHJlY3Q6IEFueVJlY3QpOiBSZWFjdC5DU1NQcm9wZXJ0aWVzIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlaWdodDogYCR7cmVjdC5oZWlnaHR9cHhgLFxuICAgICAgICAgICAgbGVmdDogYCR7cmVjdC5sZWZ0fXB4YCxcbiAgICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICB0b3A6IGAke3JlY3QudG9wfXB4YCxcbiAgICAgICAgICAgIHdpZHRoOiBgJHtyZWN0LndpZHRofXB4YCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHaXZlbiBhIENsaWVudFJlY3Qgb3IgUmVjdCBvYmplY3QsIHJldHVybnMgYSBSZWN0IG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHdyYXAocmVjdDogQW55UmVjdCk6IFJlY3Qge1xuICAgICAgICBpZiAocmVjdCBpbnN0YW5jZW9mIFJlY3QpIHtcbiAgICAgICAgICAgIHJldHVybiByZWN0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWN0KHJlY3QubGVmdCwgcmVjdC50b3AsIHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGxlZnQ6IG51bWJlcixcbiAgICAgICAgcHVibGljIHRvcDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgd2lkdGg6IG51bWJlcixcbiAgICAgICAgcHVibGljIGhlaWdodDogbnVtYmVyXG4gICAgKSB7XG4gICAgfVxuXG4gICAgcHVibGljIHN1YnRyYWN0T3JpZ2luKGFueVJlY3Q6IEFueVJlY3QpIHtcbiAgICAgICAgcmV0dXJuIFJlY3Quc3VidHJhY3RPcmlnaW4odGhpcywgYW55UmVjdCk7XG4gICAgfVxuXG4gICAgcHVibGljIHVuaW9uKGFueVJlY3Q6IEFueVJlY3QpIHtcbiAgICAgICAgcmV0dXJuIFJlY3QudW5pb24odGhpcywgYW55UmVjdCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0eWxlKCkge1xuICAgICAgICByZXR1cm4gUmVjdC5zdHlsZSh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2l6ZVN0eWxlKCk6IFJlYWN0LkNTU1Byb3BlcnRpZXMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVpZ2h0OiBgJHt0aGlzLmhlaWdodH1weGAsXG4gICAgICAgICAgICB3aWR0aDogYCR7dGhpcy53aWR0aH1weGAsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnRhaW5zWChjbGllbnRYOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIGNsaWVudFggPj0gdGhpcy5sZWZ0ICYmIGNsaWVudFggPD0gdGhpcy5sZWZ0ICsgdGhpcy53aWR0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29udGFpbnNZKGNsaWVudFk6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gY2xpZW50WSA+PSB0aGlzLnRvcCAmJiBjbGllbnRZIDw9IHRoaXMudG9wICsgdGhpcy5oZWlnaHQ7XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24vcmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRzs7QUFNSCwwRUFBMEU7QUFDMUUsOENBQThDO0FBRTlDOzs7O0dBSUc7QUFDSDtJQTRESSxjQUNXLElBQVksRUFDWixHQUFXLEVBQ1gsS0FBYSxFQUNiLE1BQWM7UUFIZCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRXpCLENBQUM7SUEvREQ7O09BRUc7SUFDVyxVQUFLLEdBQW5CLFVBQW9CLFFBQWlCLEVBQUUsUUFBaUI7UUFDcEQsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWxDLElBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1RSxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFNLE1BQU0sR0FBRyxNQUFN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QSIsImZpbGUiOiJjb21tb24vcmVjdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQlNELTMgTGljZW5zZSBhcyBtb2RpZmllZCAodGhlIOKAnExpY2Vuc2XigJ0pOyB5b3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBsaWNlbnNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvUEFURU5UU1xuICovXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgdHlwZSBBbnlSZWN0ID0gUmVjdCB8IENsaWVudFJlY3Q7XG5cbi8vIEhBQ0tIQUNLOiB3b3JrYXJvdW5kIGZvciBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvdHNsaW50L2lzc3Vlcy8xNzY4XG4vLyB0c2xpbnQ6ZGlzYWJsZSBhZGphY2VudC1vdmVybG9hZC1zaWduYXR1cmVzXG5cbi8qKlxuICogQSBzaW1wbGUgb2JqZWN0IGZvciBzdG9yaW5nIHRoZSBjbGllbnQgYm91bmRzIG9mIEhUTUxFbGVtZW50cy4gU2luY2VcbiAqIENsaWVudFJlY3RzIGFyZSBpbW11dGFibGUsIHRoaXMgb2JqZWN0IGVuYWJsZXMgZWRpdGluZyBhbmQgc29tZSBzaW1wbGVcbiAqIG1hbmlwdWxhdGlvbiBtZXRob2RzLlxuICovXG5leHBvcnQgY2xhc3MgUmVjdCB7XG4gICAgcHVibGljIHN0YXRpYyBPUklHSU4gPSBuZXcgUmVjdCgwLCAwLCAwLCAwKTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHNtYWxsZXN0IFJlY3QgdGhhdCBlbnRpcmVseSBjb250YWlucyB0aGUgc3VwcGxpZWQgcmVjdHNcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHVuaW9uKGFueVJlY3QwOiBBbnlSZWN0LCBhbnlSZWN0MTogQW55UmVjdCkge1xuICAgICAgICBjb25zdCByZWN0MCA9IFJlY3Qud3JhcChhbnlSZWN0MCk7XG4gICAgICAgIGNvbnN0IHJlY3QxID0gUmVjdC53cmFwKGFueVJlY3QxKTtcblxuICAgICAgICBjb25zdCB0b3AgPSBNYXRoLm1pbihyZWN0MC50b3AsIHJlY3QxLnRvcCk7XG4gICAgICAgIGNvbnN0IGxlZnQgPSBNYXRoLm1pbihyZWN0MC5sZWZ0LCByZWN0MS5sZWZ0KTtcbiAgICAgICAgY29uc3QgYm90dG9tID0gTWF0aC5tYXgocmVjdDAudG9wICsgcmVjdDAuaGVpZ2h0LCByZWN0MS50b3AgKyByZWN0MS5oZWlnaHQpO1xuICAgICAgICBjb25zdCByaWdodCA9IE1hdGgubWF4KHJlY3QwLmxlZnQgKyByZWN0MC53aWR0aCwgcmVjdDEubGVmdCArIHJlY3QxLndpZHRoKTtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gYm90dG9tIC0gdG9wO1xuICAgICAgICBjb25zdCB3aWR0aCA9IHJpZ2h0IC0gbGVmdDtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWN0KGxlZnQsIHRvcCwgd2lkdGgsIGhlaWdodCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIG5ldyBSZWN0IHRoYXQgc3VidHJhY3RzIHRoZSBvcmlnaW4gb2YgdGhlIHNlY29uZCBhcmd1bWVudFxuICAgICAqIGZyb20gdGhlIGZpcnN0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc3VidHJhY3RPcmlnaW4oYW55UmVjdDA6IEFueVJlY3QsIGFueVJlY3QxOiBBbnlSZWN0KSB7XG4gICAgICAgIGNvbnN0IHJlY3QwID0gUmVjdC53cmFwKGFueVJlY3QwKTtcbiAgICAgICAgY29uc3QgcmVjdDEgPSBSZWN0LndyYXAoYW55UmVjdDEpO1xuXG4gICAgICAgIHJldHVybiBuZXcgUmVjdChcbiAgICAgICAgICAgIHJlY3QwLmxlZnQgLSByZWN0MS5sZWZ0LFxuICAgICAgICAgICAgcmVjdDAudG9wIC0gcmVjdDEudG9wLFxuICAgICAgICAgICAgcmVjdDAud2lkdGgsXG4gICAgICAgICAgICByZWN0MC5oZWlnaHQsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgQ1NTIHByb3BlcnRpZXMgcmVwcmVzZW50aW5nIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvZlxuICAgICAqIHRoaXMgUmVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHN0eWxlKHJlY3Q6IEFueVJlY3QpOiBSZWFjdC5DU1NQcm9wZXJ0aWVzIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlaWdodDogYCR7cmVjdC5oZWlnaHR9cHhgLFxuICAgICAgICAgICAgbGVmdDogYCR7cmVjdC5sZWZ0fXB4YCxcbiAgICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICB0b3A6IGAke3JlY3QudG9wfXB4YCxcbiAgICAgICAgICAgIHdpZHRoOiBgJHtyZWN0LndpZHRofXB4YCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHaXZlbiBhIENsaWVudFJlY3Qgb3IgUmVjdCBvYmplY3QsIHJldHVybnMgYSBSZWN0IG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHdyYXAocmVjdDogQW55UmVjdCk6IFJlY3Qge1xuICAgICAgICBpZiAocmVjdCBpbnN0YW5jZW9mIFJlY3QpIHtcbiAgICAgICAgICAgIHJldHVybiByZWN0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWN0KHJlY3QubGVmdCwgcmVjdC50b3AsIHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGxlZnQ6IG51bWJlcixcbiAgICAgICAgcHVibGljIHRvcDogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgd2lkdGg6IG51bWJlcixcbiAgICAgICAgcHVibGljIGhlaWdodDogbnVtYmVyLFxuICAgICkge1xuICAgIH1cblxuICAgIHB1YmxpYyBzdWJ0cmFjdE9yaWdpbihhbnlSZWN0OiBBbnlSZWN0KSB7XG4gICAgICAgIHJldHVybiBSZWN0LnN1YnRyYWN0T3JpZ2luKHRoaXMsIGFueVJlY3QpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bmlvbihhbnlSZWN0OiBBbnlSZWN0KSB7XG4gICAgICAgIHJldHVybiBSZWN0LnVuaW9uKHRoaXMsIGFueVJlY3QpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIFJlY3Quc3R5bGUodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNpemVTdHlsZSgpOiBSZWFjdC5DU1NQcm9wZXJ0aWVzIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlaWdodDogYCR7dGhpcy5oZWlnaHR9cHhgLFxuICAgICAgICAgICAgd2lkdGg6IGAke3RoaXMud2lkdGh9cHhgLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250YWluc1goY2xpZW50WDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBjbGllbnRYID49IHRoaXMubGVmdCAmJiBjbGllbnRYIDw9IHRoaXMubGVmdCArIHRoaXMud2lkdGg7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnRhaW5zWShjbGllbnRZOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIGNsaWVudFkgPj0gdGhpcy50b3AgJiYgY2xpZW50WSA8PSB0aGlzLnRvcCArIHRoaXMuaGVpZ2h0O1xuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==

@@ -1,5 +0,6 @@

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -6,0 +7,0 @@ import * as React from "react";

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -52,2 +54,2 @@ "use strict";

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24vcm91bmRTaXplLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7Ozs7Ozs7QUFFSCxJQUFZLEtBQUssV0FBTSxPQUFPLENBQUMsQ0FBQTtBQUUvQjs7Ozs7R0FLRztBQUNIO0lBQStCLDZCQUF1QjtJQUF0RDtRQUFBLGlCQXNDQztRQXRDOEIsOEJBQXVCO1FBb0MxQyxtQkFBYyxHQUFHLFVBQUMsR0FBZ0IsSUFBSyxPQUFBLEtBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxFQUExQixDQUEwQixDQUFDO1FBQ2xFLG9CQUFlLEdBQUcsVUFBQyxHQUFnQixJQUFLLE9BQUEsS0FBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsRUFBM0IsQ0FBMkIsQ0FBQztJQUNoRixDQUFDO0lBbENVLDBCQUFNLEdBQWI7UUFDSSxNQUFNLENBQUMsQ0FDSCxxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFDLHlCQUF5QixFQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsZUFBZ0I7WUFDL0QscUJBQUMsR0FBRyxJQUFDLFNBQVMsRUFBQyxvQkFBb0IsRUFBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGNBQWUsR0FDeEQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUUsQ0FDeEM7U0FDSixDQUNULENBQUM7SUFDTixDQUFDO0lBRU0scUNBQWlCLEdBQXhCO1FBQ0ksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxzQ0FBa0IsR0FBekI7UUFDSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLG1DQUFlLEdBQXZCO1FBQ0ksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDaEUsTUFBTSxDQUFDO1FBQ1gsQ0FBQztRQUVELDRDQUE0QztRQUM1QyxJQUFNLEtBQUssR0FBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLE9BQUksQ0FBQztRQUNsRSxJQUFNLE1BQU0sR0FBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLE9BQUksQ0FBQztRQUVwRSw0REFBNEQ7UUFDNUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNoRCxDQUFDO0lBSUwsZ0JBQUM7QUFBRCxDQXRDQSxBQXNDQyxDQXRDOEIsS0FBSyxDQUFDLFNBQVMsR0FzQzdDO0FBdENZLGlCQUFTLFlBc0NyQixDQUFBIiwiZmlsZSI6ImNvbW1vbi9yb3VuZFNpemUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAtIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG4vKipcbiAqIEEgUmVhY3QgY29tcG9uZW50IHRoYXQgbWVhc3VyZXMgYW5kIHJvdW5kcyB0aGUgc2l6ZSBvZiBpdHMgb25seSBjaGlsZC4gVGhpc1xuICogaXMgbmVjZXNzYXJ5IGR1ZSB0byBhIENocm9tZSBidWcgdGhhdCBwcmV2ZW50cyBzY3JvbGxpbmcgd2hlbiB0aGUgc2l6ZSBpc1xuICogY2hhbmdlZCB0byBhIGZyYWN0aW9uYWwgdmFsdWUuIFNlZSB0aGlzIEpTRmlkZGxlIGZvciBhIHJlcHJvIG9mIHRoZSBpc3N1ZTpcbiAqIGh0dHBzOi8vanNmaWRkbGUubmV0LzJybXo3cDFkLzUvXG4gKi9cbmV4cG9ydCBjbGFzcyBSb3VuZFNpemUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8e30sIHt9PiB7XG4gICAgcHJpdmF0ZSBpbnRlcm5hbEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgY29udGFpbmVyRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJicC10YWJsZS1yb3VuZGVkLWxheW91dFwiIHJlZj17dGhpcy5zZXRDb250YWluZXJSZWZ9PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnAtdGFibGUtbm8tbGF5b3V0XCIgcmVmPXt0aGlzLnNldEludGVybmFsUmVmfT5cbiAgICAgICAgICAgICAgICAgICAge1JlYWN0LkNoaWxkcmVuLm9ubHkodGhpcy5wcm9wcy5jaGlsZHJlbil9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMuY29weVJvdW5kZWRTaXplKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5jb3B5Um91bmRlZFNpemUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvcHlSb3VuZGVkU2l6ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJuYWxFbGVtZW50ID09IG51bGwgfHwgdGhpcy5jb250YWluZXJFbGVtZW50ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG1lYXN1cmUgdGhlIHNpemUgb2YgdGhlIGludGVybmFsIGNoaWxkcmVuXG4gICAgICAgIGNvbnN0IHdpZHRoID0gYCR7TWF0aC5yb3VuZCh0aGlzLmludGVybmFsRWxlbWVudC5jbGllbnRXaWR0aCl9cHhgO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBgJHtNYXRoLnJvdW5kKHRoaXMuaW50ZXJuYWxFbGVtZW50LmNsaWVudEhlaWdodCl9cHhgO1xuXG4gICAgICAgIC8vIHNldCB0aGUgc2l6ZSBvZiB0aGUgY29udGFpbmVyIGVsZW1lbnQgd2l0aCByb3VuZGVkIHZhbHVlc1xuICAgICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aDtcbiAgICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50LnN0eWxlLmhlaWdodCA9IGhlaWdodDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEludGVybmFsUmVmID0gKHJlZjogSFRNTEVsZW1lbnQpID0+IHRoaXMuaW50ZXJuYWxFbGVtZW50ID0gcmVmO1xuICAgIHByaXZhdGUgc2V0Q29udGFpbmVyUmVmID0gKHJlZjogSFRNTEVsZW1lbnQpID0+IHRoaXMuY29udGFpbmVyRWxlbWVudCA9IHJlZjtcbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24vcm91bmRTaXplLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRzs7Ozs7OztBQUVILElBQVksS0FBSyxXQUFNLE9BQU8sQ0FBQyxDQUFBO0FBRS9COzs7OztHQUtHO0FBQ0g7SUFBK0IsNkJBQXVCO0lBQXREO1FBQUEsaUJBc0NDO1FBdEM4Qiw4QkFBdUI7UUFvQzFDLG1CQUFjLEdBQUcsVUFBQyxHQUFnQixJQUFLLE9BQUEsS0FBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLEVBQTFCLENBQTBCLENBQUM7UUFDbEUsb0JBQWUsR0FBRyxVQUFDLEdBQWdCLElBQUssT0FBQSxLQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxFQUEzQixDQUEyQixDQUFDO0lBQ2hGLENBQUM7SUFsQ1UsMEJBQU0sR0FBYjtRQUNJLE1BQU0sQ0FBQyxDQUNILHFCQUFDLEdBQUcsSUFBQyxTQUFTLEVBQUMseUJBQXlCLEVBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFnQjtZQUMvRCxxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFDLG9CQUFvQixFQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsY0FBZSxHQUN4RCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBRSxDQUN4QztTQUNKLENBQ1QsQ0FBQztJQUNOLENBQUM7SUFFTSxxQ0FBaUIsR0FBeEI7UUFDSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLHNDQUFrQixHQUF6QjtRQUNJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sbUNBQWUsR0FBdkI7UUFDSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNoRSxNQUFNLENBQUM7UUFDWCxDQUFDO1FBRUQsNENBQTRDO1FBQzVDLElBQU0sS0FBSyxHQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsT0FBSSxDQUFDO1FBQ2xFLElBQU0sTUFBTSxHQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsT0FBSSxDQUFDO1FBRXBFLDREQUE0RDtRQUM1RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDMUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ2hELENBQUM7SUFJTCxnQkFBQztBQUFELENBdENBLEFBc0NDLENBdEM4QixLQUFLLENBQUMsU0FBUyxHQXNDN0M7QUF0Q1ksaUJBQVMsWUFzQ3JCLENBQUEiLCJmaWxlIjoiY29tbW9uL3JvdW5kU2l6ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQlNELTMgTGljZW5zZSBhcyBtb2RpZmllZCAodGhlIOKAnExpY2Vuc2XigJ0pOyB5b3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBsaWNlbnNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvUEFURU5UU1xuICovXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG4vKipcbiAqIEEgUmVhY3QgY29tcG9uZW50IHRoYXQgbWVhc3VyZXMgYW5kIHJvdW5kcyB0aGUgc2l6ZSBvZiBpdHMgb25seSBjaGlsZC4gVGhpc1xuICogaXMgbmVjZXNzYXJ5IGR1ZSB0byBhIENocm9tZSBidWcgdGhhdCBwcmV2ZW50cyBzY3JvbGxpbmcgd2hlbiB0aGUgc2l6ZSBpc1xuICogY2hhbmdlZCB0byBhIGZyYWN0aW9uYWwgdmFsdWUuIFNlZSB0aGlzIEpTRmlkZGxlIGZvciBhIHJlcHJvIG9mIHRoZSBpc3N1ZTpcbiAqIGh0dHBzOi8vanNmaWRkbGUubmV0LzJybXo3cDFkLzUvXG4gKi9cbmV4cG9ydCBjbGFzcyBSb3VuZFNpemUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8e30sIHt9PiB7XG4gICAgcHJpdmF0ZSBpbnRlcm5hbEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgY29udGFpbmVyRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJicC10YWJsZS1yb3VuZGVkLWxheW91dFwiIHJlZj17dGhpcy5zZXRDb250YWluZXJSZWZ9PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnAtdGFibGUtbm8tbGF5b3V0XCIgcmVmPXt0aGlzLnNldEludGVybmFsUmVmfT5cbiAgICAgICAgICAgICAgICAgICAge1JlYWN0LkNoaWxkcmVuLm9ubHkodGhpcy5wcm9wcy5jaGlsZHJlbil9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMuY29weVJvdW5kZWRTaXplKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5jb3B5Um91bmRlZFNpemUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvcHlSb3VuZGVkU2l6ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJuYWxFbGVtZW50ID09IG51bGwgfHwgdGhpcy5jb250YWluZXJFbGVtZW50ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG1lYXN1cmUgdGhlIHNpemUgb2YgdGhlIGludGVybmFsIGNoaWxkcmVuXG4gICAgICAgIGNvbnN0IHdpZHRoID0gYCR7TWF0aC5yb3VuZCh0aGlzLmludGVybmFsRWxlbWVudC5jbGllbnRXaWR0aCl9cHhgO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBgJHtNYXRoLnJvdW5kKHRoaXMuaW50ZXJuYWxFbGVtZW50LmNsaWVudEhlaWdodCl9cHhgO1xuXG4gICAgICAgIC8vIHNldCB0aGUgc2l6ZSBvZiB0aGUgY29udGFpbmVyIGVsZW1lbnQgd2l0aCByb3VuZGVkIHZhbHVlc1xuICAgICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aDtcbiAgICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50LnN0eWxlLmhlaWdodCA9IGhlaWdodDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEludGVybmFsUmVmID0gKHJlZjogSFRNTEVsZW1lbnQpID0+IHRoaXMuaW50ZXJuYWxFbGVtZW50ID0gcmVmO1xuICAgIHByaXZhdGUgc2V0Q29udGFpbmVyUmVmID0gKHJlZjogSFRNTEVsZW1lbnQpID0+IHRoaXMuY29udGFpbmVyRWxlbWVudCA9IHJlZjtcbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==

@@ -1,6 +0,6 @@

/// <reference types="react" />
/// <reference types="dom4" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -7,0 +7,0 @@ import { IProps } from "@blueprintjs/core";

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -9,3 +11,3 @@ "use strict";

;
/* tslint:enable:interface-name */
// tslint:enable
/**

@@ -53,4 +55,5 @@ * Since Firefox doesn't provide a computed "font" property, we manually

var sum = 0;
for (var i = 0; i < numbers.length; i++) {
sum += numbers[i];
for (var _i = 0, numbers_1 = numbers; _i < numbers_1.length; _i++) {
var num = numbers_1[_i];
sum += num;
result.push(sum);

@@ -184,2 +187,2 @@ }

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24vdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHOztBQUdILElBQVksVUFBVSxXQUFNLFlBQVksQ0FBQyxDQUFBO0FBQ3pDLElBQVksS0FBSyxXQUFNLE9BQU8sQ0FBQyxDQUFBO0FBWTBCLENBQUM7QUFDMUQsa0NBQWtDO0FBRWxDOzs7R0FHRztBQUNILElBQU0sbUJBQW1CLEdBQUc7SUFDeEIsWUFBWTtJQUNaLGNBQWM7SUFDZCxhQUFhO0lBQ2IsV0FBVztJQUNYLGFBQWE7Q0FDaEIsQ0FBQztBQUVXLGFBQUssR0FBRztJQUNqQjs7OztPQUlHO0lBQ0gsYUFBYSxZQUFtQixJQUEyQjtRQUFFLHlCQUFnQzthQUFoQyxXQUFnQyxDQUFoQyxzQkFBZ0MsQ0FBaEMsSUFBZ0M7WUFBaEMsd0NBQWdDOztRQUN6RixJQUFNLE9BQU8sR0FBRyxVQUFVLGdCQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxTQUFLLGVBQWUsRUFBQyxDQUFDO1FBQ3JFLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFDLFNBQVMsRUFBRyxPQUFPLEVBQVcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLFlBQUksQ0FBUyxFQUFFLFFBQTBCO1FBQzFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxLQUFVLEVBQUUsS0FBYSxJQUFLLE9BQUEsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFmLENBQWUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxVQUFVLFlBQUMsT0FBaUI7UUFDeEIsSUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxH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IENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAtIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbmltcG9ydCB7IElQcm9wcyB9IGZyb20gXCJAYmx1ZXByaW50anMvY29yZVwiO1xuaW1wb3J0ICogYXMgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbi8qKlxuICogUmUtZGVjbGFyZSBtYXRjaGluZyB0eXBlcyBmcm9tIHRoZSBjbGFzc25hbWVzIGxpYnJhcnk7XG4gKi9cbmV4cG9ydCB0eXBlIENsYXNzVmFsdWUgPSBzdHJpbmcgfCBudW1iZXIgfCBDbGFzc0RpY3Rpb25hcnkgfCBDbGFzc0FycmF5O1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTppbnRlcmZhY2UtbmFtZSAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGFzc0RpY3Rpb25hcnkge1xuICAgIFtpZDogc3RyaW5nXTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGFzc0FycmF5IGV4dGVuZHMgQXJyYXk8Q2xhc3NWYWx1ZT4geyB9O1xuLyogdHNsaW50OmVuYWJsZTppbnRlcmZhY2UtbmFtZSAqL1xuXG4vKipcbiAqIFNpbmNlIEZpcmVmb3ggZG9lc24ndCBwcm92aWRlIGEgY29tcHV0ZWQgXCJmb250XCIgcHJvcGVydHksIHdlIG1hbnVhbGx5XG4gKiBjb25zdHJ1Y3QgaXQgdXNpbmcgdGhlIG9yZGVyZWQgcHJvcGVydGllcyB0aGF0IGNhbiBiZSBzcGVjaWZlZCBpbiBDU1MuXG4gKi9cbmNvbnN0IENTU19GT05UX1BST1BFUlRJRVMgPSBbXG4gICAgXCJmb250LXN0eWxlXCIsXG4gICAgXCJmb250LXZhcmlhbnRcIixcbiAgICBcImZvbnQtd2VpZ2h0XCIsXG4gICAgXCJmb250LXNpemVcIixcbiAgICBcImZvbnQtZmFtaWx5XCIsXG5dO1xuXG5leHBvcnQgY29uc3QgVXRpbHMgPSB7XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGNsb25lIG9mIHRoZSBSZWFjdEVsZW1lbnQgd2l0aCBhIGNsYXNzTmFtZSB0aGF0IGluY2x1ZGVzIHRoZVxuICAgICAqIGVsZW1lbnQncyBvcmlnaW5hbCBjbGFzc05hbWUgYW5kIGFueSBvdGhlciBjbGFzc2VzIHBhc3NlZCBpbiB3aXRoIHZhcmlhZGljXG4gICAgICogYXJndW1lbnRzIG1hdGNoaW5nIHRoZSBgY2xhc3NOYW1lc2AgYXBpLlxuICAgICAqL1xuICAgIGFzc2lnbkNsYXNzZXM8UCBleHRlbmRzIElQcm9wcz4oZWxlbTogUmVhY3QuUmVhY3RFbGVtZW50PFA+LCAuLi5leHRlbmRlZENsYXNzZXM6IENsYXNzVmFsdWVbXSkge1xuICAgICAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NOYW1lcyhlbGVtLnByb3BzLmNsYXNzTmFtZSwgLi4uZXh0ZW5kZWRDbGFzc2VzKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChlbGVtLCB7Y2xhc3NOYW1lIDogY2xhc3Nlc30gYXMgSVByb3BzKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyB0aGUgY2FsbGJhY2sgYG5gIHRpbWVzLCBjb2xsZWN0aW5nIHRoZSByZXN1bHRzIGluIGFuIGFycmF5LCB3aGljaFxuICAgICAqIGlzIHRoZSByZXR1cm4gdmFsdWUuIFNpbWlsYXIgdG8gXy50aW1lc1xuICAgICAqL1xuICAgIHRpbWVzPFQ+KG46IG51bWJlciwgY2FsbGJhY2s6IChpOiBudW1iZXIpID0+IFQpOiBUW10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuYXBwbHkobnVsbCwgQXJyYXkobikpLm1hcCgoX25vbmU6IGFueSwgaW5kZXg6IG51bWJlcikgPT4gY2FsbGJhY2soaW5kZXgpKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVGFrZXMgYW4gYXJyYXkgb2YgbnVtYmVycywgcmV0dXJucyBhbiBhcnJheSBvZiBudW1iZXJzIG9mIHRoZSBzYW1lIGxlbmd0aCBpbiB3aGljaCBlYWNoXG4gICAgICogdmFsdWUgaXMgdGhlIHN1bSBvZiBjdXJyZW50IGFuZCBwcmV2aW91cyB2YWx1ZXMgaW4gdGhlIGlucHV0IGFycmF5LlxuICAgICAqXG4gICAgICogRXhhbXBsZSBpbnB1dDogIFsxMCwgMjAsIDUwXVxuICAgICAqICAgICAgICAgb3V0cHV0OiBbMTAsIDMwLCA4MF1cbiAgICAgKi9cbiAgICBhY2N1bXVsYXRlKG51bWJlcnM6IG51bWJlcltdKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogbnVtYmVyW10gPSBbXTtcbiAgICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtYmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgc3VtICs9IG51bWJlcnNbaV07XG4gICAgICAgICAgICByZXN1bHQucHVzaChzdW0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJhZGl0aW9uYWwgc3ByZWFkc2hlZXQtc3R5bGUgY29sdW1uIG5hbWVzXG4gICAgICogZS5nLiAoQSwgQiwgLi4uLCBaLCBBQSwgQUIsIC4uLiwgWlosIEFBQSwgQUFCLCAuLi4pLlxuICAgICAqXG4gICAgICogTm90ZSB0aGF0IHRoaXMgaXNuJ3QgdGVjaG5pY2FsbHkgbWF0aGVtYXRpY2FsbHkgZXF1aXZhbGVudCB0byBiYXNlIDI2IHNpbmNlXG4gICAgICogdGhlcmUgaXMgbm8gemVybyBlbGVtZW50LlxuICAgICAqL1xuICAgIHRvQmFzZTI2QWxwaGEobnVtOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IHN0ciA9IFwiXCI7XG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBsZXQgbGV0dGVyID0gbnVtICUgMjY7XG4gICAgICAgICAgICBzdHIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDY1ICsgbGV0dGVyKSArIHN0cjtcbiAgICAgICAgICAgIG51bSA9IG51bSAtIGxldHRlcjtcbiAgICAgICAgICAgIGlmIChudW0gPD0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBudW0gPSAobnVtIC8gMjYpIC0gMTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyB0aGUgYmluYXJ5IHNlYXJjaCBhbGdvcml0aG0gdG8gZmluZCB0aGUgaW5kZXggb2YgdGhlIGB2YWx1ZWBcbiAgICAgKiBwYXJhbWV0ZXIgaW4gYSBzb3J0ZWQgbGlzdCBvZiBudW1iZXJzLiBJZiBgdmFsdWVgIGlzIG5vdCBpbiB0aGUgbGlzdCwgdGhlXG4gICAgICogaW5kZXggd2hlcmUgYHZhbHVlYCBjYW4gYmUgaW5zZXJ0ZWQgdG8gbWFpbnRhaW4gdGhlIHNvcnQgaXMgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBVbmxpa2UgYSB0eXBpY2FsIGJpbmFyeSBzZWFyY2ggaW1wbGVtZW50YXRpb24sIHdlIHVzZSBhIGBsb29rdXBgXG4gICAgICogY2FsbGJhY2sgdG8gYWNjZXNzIHRoZSBzb3J0ZWQgbGlzdCBvZiBudW1iZXJzIGluc3RlYWQgb2YgYW4gYXJyYXkuIFRoaXNcbiAgICAgKiBhdm9pZHMgYWRkaXRpb25hbCBzdG9yYWdlIG92ZXJoZWFkLlxuICAgICAqXG4gICAgICogV2UgdXNlIHRoaXMgdG8sIGZvciBleGFtcGxlLCBmaW5kIHRoZSBpbmRleCBvZiBhIHJvdy9jb2wgZ2l2ZW4gaXRzIGNsaWVudFxuICAgICAqIGNvb3JkaW5hdGUuXG4gICAgICpcbiAgICAgKiBBZGFwdGVkIGZyb20gbG9kYXNoIGh0dHBzOi8vZ2l0aHViLmNvbS9sb2Rhc2gvbG9kYXNoL2Jsb2IvNC4xMS4yL2xvZGFzaC5qcyNMMzU3OVxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIC0gdGhlIHF1ZXJ5IHZhbHVlXG4gICAgICogQHBhcmFtIGhpZ2ggLSB0aGUgbGVuZ3RoIG9mIHRoZSBzb3J0ZWQgbGlzdCBvZiBudW1iZXJzXG4gICAgICogQHBhcmFtIGxvb2t1cCAtIHJldHVybnMgdGhlIG51bWJlciBmcm9tIHRoZSBsaXN0IGF0IHRoZSBzdXBwbGllZCBpbmRleFxuICAgICAqL1xuICAgIGJpbmFyeVNlYXJjaCh2YWx1ZTogbnVtYmVyLCBoaWdoOiBudW1iZXIsIGxvb2t1cDogKGluZGV4OiBudW1iZXIpID0+IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGxldCBsb3cgPSAwO1xuICAgICAgICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgICAgICAgICAgY29uc3QgbWlkID0gTWF0aC5mbG9vcigobG93ICsgaGlnaCkgLyAyLjApO1xuICAgICAgICAgICAgY29uc3QgY29tcHV0ZWQgPSBsb29rdXAobWlkKTtcbiAgICAgICAgICAgIGlmIChjb21wdXRlZCA8IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbG93ID0gbWlkICsgMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaGlnaCA9IG1pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGlnaDtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGNvcHkgb2YgdGhlIGFycmF5IHRoYXQgd2lsbCBoYXZlIGEgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCBwYXJhbWV0ZXIuXG4gICAgICogSWYgdGhlIGFycmF5IGlzIHRvbyBsb25nLCBpdCB3aWxsIGJlIHRydW5jYXRlZC4gSWYgaXQgaXMgdG9vIHNob3J0LCBpdCB3aWxsIGJlXG4gICAgICogZmlsbGVkIHdpdGggdGhlIHN1cHBsZWlkIGBmaWxsVmFsdWVgIGFyZ3VtZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIGFycmF5IC0gdGhlIGBBcnJheWAgdG8gY29weSBhbmQgYWRqdXN0XG4gICAgICogQHBhcmFtIGxlbmd0aCAtIHRoZSB0YXJnZXQgbGVuZ3RoIG9mIHRoZSBhcnJheVxuICAgICAqIEBwYXJhbSBmaWxsVmFsdWUgLSB0aGUgdmFsdWUgdG8gYWRkIHRvIHRoZSBhcnJheSBpZiBpdCBpcyB0b28gc2hvcnRcbiAgICAgKi9cbiAgICBhcnJheU9mTGVuZ3RoPFQ+KGFycmF5OiBUW10sIGxlbmd0aDogbnVtYmVyLCBmaWxsVmFsdWU6IFQpOiBUW10ge1xuICAgICAgICBpZiAoYXJyYXkubGVuZ3RoID4gbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyYXkuc2xpY2UoMCwgbGVuZ3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFycmF5ID0gYXJyYXkuc2xpY2UoKTtcbiAgICAgICAgd2hpbGUgKGFycmF5Lmxlbmd0aCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgYXJyYXkucHVzaChmaWxsVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVGFrZXMgaW4gb25lIGZ1bGwgYXJyYXkgb2YgdmFsdWVzIGFuZCBvbmUgc3BhcnNlIGFycmF5IG9mIHRoZSBzYW1lXG4gICAgICogbGVuZ3RoIGFuZCB0eXBlLiBSZXR1cm5zIGEgY29weSBvZiB0aGUgYGRlZmF1bHRzYCBhcnJheSwgd2hlcmUgZWFjaFxuICAgICAqIHZhbHVlIGlzIHJlcGxhY2VkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgbm9uLW51bGwgdmFsdWUgYXQgdGhlIHNhbWVcbiAgICAgKiBpbmRleCBpbiBgc3BhcnNlT3ZlcnJpZGVzYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkZWZhdWx0cyAtIHRoZSBmdWxsIGFycmF5IG9mIGRlZmF1bHQgdmFsdWVzXG4gICAgICogQHBhcmFtIHNwYXJzZU92ZXJyaWRlcyAtIHRoZSBzcGFyc2UgYXJyYXkgb2Ygb3ZlcnJpZGUgdmFsdWVzXG4gICAgICovXG4gICAgYXNzaWduU3BhcnNlVmFsdWVzPFQ+KGRlZmF1bHRzOiBUW10sIHNwYXJzZU92ZXJyaWRlczogVFtdKSB7XG4gICAgICAgIGlmIChzcGFyc2VPdmVycmlkZXMgPT0gbnVsbCB8fCBkZWZhdWx0cy5sZW5ndGggIT09IHNwYXJzZU92ZXJyaWRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0cztcbiAgICAgICAgfVxuXG4gICAgICAgIGRlZmF1bHRzID0gZGVmYXVsdHMuc2xpY2UoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZWZhdWx0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgb3ZlcnJpZGUgPSBzcGFyc2VPdmVycmlkZXNbaV07XG4gICAgICAgICAgICBpZiAob3ZlcnJpZGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGRlZmF1bHRzW2ldID0gb3ZlcnJpZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlZmF1bHRzO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBNZWFzdXJlcyB0aGUgYm91bmRzIG9mIHN1cHBsaWVkIGVsZW1lbnQncyB0ZXh0Q29udGVudC5cbiAgICAgKlxuICAgICAqIFdlIHVzZSB0aGUgY29tcHV0ZWQgZm9udCBmcm9tIHRoZSBzdXBwbGllZCBlbGVtZW50IGFuZCBhIG5vbi1ET00gY2FudmFzXG4gICAgICogY29udGV4dCB0byBtZWFzdXJlIHRoZSB0ZXh0LlxuICAgICAqXG4gICAgICogUmV0dXJucyBhIGBUZXh0TWV0cmljc2Agb2JqZWN0LlxuICAgICAqL1xuICAgIG1lYXN1cmVFbGVtZW50VGV4dENvbnRlbnQoZWxlbWVudDogRWxlbWVudCkge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKS5nZXRDb250ZXh0KFwiMmRcIik7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKTtcbiAgICAgICAgY29udGV4dC5mb250ID0gQ1NTX0ZPTlRfUFJPUEVSVElFUy5tYXAoKHByb3ApID0+IHN0eWxlLmdldFByb3BlcnR5VmFsdWUocHJvcCkpLmpvaW4oXCIgXCIpO1xuICAgICAgICByZXR1cm4gY29udGV4dC5tZWFzdXJlVGV4dChlbGVtZW50LnRleHRDb250ZW50KTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogR2l2ZW4gYSBudW1iZXIsIHJldHVybnMgYSB2YWx1ZSB0aGF0IGlzIGNsYW1wZWQgd2l0aGluIGFcbiAgICAgKiBtaW5pbXVtL21heGltdW0gYm91bmRlZCByYW5nZS4gVGhlIG1pbmltdW0gYW5kIG1heGltdW0gYXJlIG9wdGlvbmFsLiBJZlxuICAgICAqIGVpdGhlciBpcyBtaXNzaW5nLCB0aGF0IGV4dHJlbWEgbGltaXQgaXMgbm90IGFwcGxpZWQuXG4gICAgICpcbiAgICAgKiBBc3N1bWVzIG1heCA+PSBtaW4uXG4gICAgICovXG4gICAgY2xhbXAodmFsdWU6IG51bWJlciwgbWluPzogbnVtYmVyLCBtYXg/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKG1pbiAhPSBudWxsICYmIHZhbHVlIDwgbWluKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IG1pbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF4ICE9IG51bGwgJiYgdmFsdWUgPiBtYXgpIHtcbiAgICAgICAgICAgIHZhbHVlID0gbWF4O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9LFxufTtcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24vdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7O0FBR0gsSUFBWSxVQUFVLFdBQU0sWUFBWSxDQUFDLENBQUE7QUFDekMsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUFZMEIsQ0FBQztBQUMxRCxnQkFBZ0I7QUFFaEI7OztHQUdHO0FBQ0gsSUFBTSxtQkFBbUIsR0FBRztJQUN4QixZQUFZO0lBQ1osY0FBYztJQUNkLGFBQWE7SUFDYixXQUFXO0lBQ1gsYUFBYTtDQUNoQixDQUFDO0FBRVcsYUFBSyxHQUFHO0lBQ2pCOzs7O09BSUc7SUFDSCxhQUFhLFlBQW1CLElBQTJCO1FBQUUseUJBQWdDO2FBQWhDLFdBQWdDLENBQWhDLHNCQUFnQyxDQUFoQyxJQUFnQztZQUFoQyx3Q0FBZ0M7O1FBQ3pGLElBQU0sT0FBTyxHQUFHLFVBQVUsZ0JBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLFNBQUssZUFBZSxFQUFDLENBQUM7UUFDckUsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUMsU0FBUyxFQUFHLE9BQU8sRUFBVyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssWUFBSSxDQUFTLEVBQUUsUUFBMEI7UUFDMUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFDLEtBQVUsRUFBRSxLQUFhLElBQUssT0FBQSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQWYsQ0FBZSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsWUFBQyxPQUFpQjtRQUN4QixJQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFDNUIsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1osR0FBRyxDQUFDLENBQWMsVUFBTyxFQUFQ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Q0FBQztnQkFDbkIsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQztZQUMzQixDQUFDO1FBQ0wsQ0FBQztRQUNELE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCx5QkFBeUIsWUFBQyxPQUFnQjtRQUN0QyxJQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRSxJQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBQyxJQUFJLElBQUssT0FBQSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQTVCLENBQTRCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLFlBQUMsS0FBYSxFQUFFLEdBQVksRUFBRSxHQUFZO1FBQzNDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDN0IsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNoQixDQUFDO1FBQ0QsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3QixLQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ2hCLENBQUM7UUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSixDQUFDIiwiZmlsZSI6ImNvbW1vbi91dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQlNELTMgTGljZW5zZSBhcyBtb2RpZmllZCAodGhlIOKAnExpY2Vuc2XigJ0pOyB5b3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBsaWNlbnNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvUEFURU5UU1xuICovXG5cbmltcG9ydCB7IElQcm9wcyB9IGZyb20gXCJAYmx1ZXByaW50anMvY29yZVwiO1xuaW1wb3J0ICogYXMgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbi8qKlxuICogUmUtZGVjbGFyZSBtYXRjaGluZyB0eXBlcyBmcm9tIHRoZSBjbGFzc25hbWVzIGxpYnJhcnk7XG4gKi9cbmV4cG9ydCB0eXBlIENsYXNzVmFsdWUgPSBzdHJpbmcgfCBudW1iZXIgfCBDbGFzc0RpY3Rpb25hcnkgfCBDbGFzc0FycmF5O1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZSBpbnRlcmZhY2UtbmFtZVxuZXhwb3J0IGludGVyZmFjZSBDbGFzc0RpY3Rpb25hcnkge1xuICAgIFtpZDogc3RyaW5nXTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGFzc0FycmF5IGV4dGVuZHMgQXJyYXk8Q2xhc3NWYWx1ZT4geyB9O1xuLy8gdHNsaW50OmVuYWJsZVxuXG4vKipcbiAqIFNpbmNlIEZpcmVmb3ggZG9lc24ndCBwcm92aWRlIGEgY29tcHV0ZWQgXCJmb250XCIgcHJvcGVydHksIHdlIG1hbnVhbGx5XG4gKiBjb25zdHJ1Y3QgaXQgdXNpbmcgdGhlIG9yZGVyZWQgcHJvcGVydGllcyB0aGF0IGNhbiBiZSBzcGVjaWZlZCBpbiBDU1MuXG4gKi9cbmNvbnN0IENTU19GT05UX1BST1BFUlRJRVMgPSBbXG4gICAgXCJmb250LXN0eWxlXCIsXG4gICAgXCJmb250LXZhcmlhbnRcIixcbiAgICBcImZvbnQtd2VpZ2h0XCIsXG4gICAgXCJmb250LXNpemVcIixcbiAgICBcImZvbnQtZmFtaWx5XCIsXG5dO1xuXG5leHBvcnQgY29uc3QgVXRpbHMgPSB7XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGNsb25lIG9mIHRoZSBSZWFjdEVsZW1lbnQgd2l0aCBhIGNsYXNzTmFtZSB0aGF0IGluY2x1ZGVzIHRoZVxuICAgICAqIGVsZW1lbnQncyBvcmlnaW5hbCBjbGFzc05hbWUgYW5kIGFueSBvdGhlciBjbGFzc2VzIHBhc3NlZCBpbiB3aXRoIHZhcmlhZGljXG4gICAgICogYXJndW1lbnRzIG1hdGNoaW5nIHRoZSBgY2xhc3NOYW1lc2AgYXBpLlxuICAgICAqL1xuICAgIGFzc2lnbkNsYXNzZXM8UCBleHRlbmRzIElQcm9wcz4oZWxlbTogUmVhY3QuUmVhY3RFbGVtZW50PFA+LCAuLi5leHRlbmRlZENsYXNzZXM6IENsYXNzVmFsdWVbXSkge1xuICAgICAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NOYW1lcyhlbGVtLnByb3BzLmNsYXNzTmFtZSwgLi4uZXh0ZW5kZWRDbGFzc2VzKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChlbGVtLCB7Y2xhc3NOYW1lIDogY2xhc3Nlc30gYXMgSVByb3BzKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyB0aGUgY2FsbGJhY2sgYG5gIHRpbWVzLCBjb2xsZWN0aW5nIHRoZSByZXN1bHRzIGluIGFuIGFycmF5LCB3aGljaFxuICAgICAqIGlzIHRoZSByZXR1cm4gdmFsdWUuIFNpbWlsYXIgdG8gXy50aW1lc1xuICAgICAqL1xuICAgIHRpbWVzPFQ+KG46IG51bWJlciwgY2FsbGJhY2s6IChpOiBudW1iZXIpID0+IFQpOiBUW10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuYXBwbHkobnVsbCwgQXJyYXkobikpLm1hcCgoX25vbmU6IGFueSwgaW5kZXg6IG51bWJlcikgPT4gY2FsbGJhY2soaW5kZXgpKTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVGFrZXMgYW4gYXJyYXkgb2YgbnVtYmVycywgcmV0dXJucyBhbiBhcnJheSBvZiBudW1iZXJzIG9mIHRoZSBzYW1lIGxlbmd0aCBpbiB3aGljaCBlYWNoXG4gICAgICogdmFsdWUgaXMgdGhlIHN1bSBvZiBjdXJyZW50IGFuZCBwcmV2aW91cyB2YWx1ZXMgaW4gdGhlIGlucHV0IGFycmF5LlxuICAgICAqXG4gICAgICogRXhhbXBsZSBpbnB1dDogIFsxMCwgMjAsIDUwXVxuICAgICAqICAgICAgICAgb3V0cHV0OiBbMTAsIDMwLCA4MF1cbiAgICAgKi9cbiAgICBhY2N1bXVsYXRlKG51bWJlcnM6IG51bWJlcltdKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogbnVtYmVyW10gPSBbXTtcbiAgICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgbnVtIG9mIG51bWJlcnMpIHtcbiAgICAgICAgICAgIHN1bSArPSBudW07XG4gICAgICAgICAgICByZXN1bHQucHVzaChzdW0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJhZGl0aW9uYWwgc3ByZWFkc2hlZXQtc3R5bGUgY29sdW1uIG5hbWVzXG4gICAgICogZS5nLiAoQSwgQiwgLi4uLCBaLCBBQSwgQUIsIC4uLiwgWlosIEFBQSwgQUFCLCAuLi4pLlxuICAgICAqXG4gICAgICogTm90ZSB0aGF0IHRoaXMgaXNuJ3QgdGVjaG5pY2FsbHkgbWF0aGVtYXRpY2FsbHkgZXF1aXZhbGVudCB0byBiYXNlIDI2IHNpbmNlXG4gICAgICogdGhlcmUgaXMgbm8gemVybyBlbGVtZW50LlxuICAgICAqL1xuICAgIHRvQmFzZTI2QWxwaGEobnVtOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IHN0ciA9IFwiXCI7XG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBsZXQgbGV0dGVyID0gbnVtICUgMjY7XG4gICAgICAgICAgICBzdHIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDY1ICsgbGV0dGVyKSArIHN0cjtcbiAgICAgICAgICAgIG51bSA9IG51bSAtIGxldHRlcjtcbiAgICAgICAgICAgIGlmIChudW0gPD0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBudW0gPSAobnVtIC8gMjYpIC0gMTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyB0aGUgYmluYXJ5IHNlYXJjaCBhbGdvcml0aG0gdG8gZmluZCB0aGUgaW5kZXggb2YgdGhlIGB2YWx1ZWBcbiAgICAgKiBwYXJhbWV0ZXIgaW4gYSBzb3J0ZWQgbGlzdCBvZiBudW1iZXJzLiBJZiBgdmFsdWVgIGlzIG5vdCBpbiB0aGUgbGlzdCwgdGhlXG4gICAgICogaW5kZXggd2hlcmUgYHZhbHVlYCBjYW4gYmUgaW5zZXJ0ZWQgdG8gbWFpbnRhaW4gdGhlIHNvcnQgaXMgcmV0dXJuZWQuXG4gICAgICpcbiAgICAgKiBVbmxpa2UgYSB0eXBpY2FsIGJpbmFyeSBzZWFyY2ggaW1wbGVtZW50YXRpb24sIHdlIHVzZSBhIGBsb29rdXBgXG4gICAgICogY2FsbGJhY2sgdG8gYWNjZXNzIHRoZSBzb3J0ZWQgbGlzdCBvZiBudW1iZXJzIGluc3RlYWQgb2YgYW4gYXJyYXkuIFRoaXNcbiAgICAgKiBhdm9pZHMgYWRkaXRpb25hbCBzdG9yYWdlIG92ZXJoZWFkLlxuICAgICAqXG4gICAgICogV2UgdXNlIHRoaXMgdG8sIGZvciBleGFtcGxlLCBmaW5kIHRoZSBpbmRleCBvZiBhIHJvdy9jb2wgZ2l2ZW4gaXRzIGNsaWVudFxuICAgICAqIGNvb3JkaW5hdGUuXG4gICAgICpcbiAgICAgKiBBZGFwdGVkIGZyb20gbG9kYXNoIGh0dHBzOi8vZ2l0aHViLmNvbS9sb2Rhc2gvbG9kYXNoL2Jsb2IvNC4xMS4yL2xvZGFzaC5qcyNMMzU3OVxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIC0gdGhlIHF1ZXJ5IHZhbHVlXG4gICAgICogQHBhcmFtIGhpZ2ggLSB0aGUgbGVuZ3RoIG9mIHRoZSBzb3J0ZWQgbGlzdCBvZiBudW1iZXJzXG4gICAgICogQHBhcmFtIGxvb2t1cCAtIHJldHVybnMgdGhlIG51bWJlciBmcm9tIHRoZSBsaXN0IGF0IHRoZSBzdXBwbGllZCBpbmRleFxuICAgICAqL1xuICAgIGJpbmFyeVNlYXJjaCh2YWx1ZTogbnVtYmVyLCBoaWdoOiBudW1iZXIsIGxvb2t1cDogKGluZGV4OiBudW1iZXIpID0+IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGxldCBsb3cgPSAwO1xuICAgICAgICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgICAgICAgICAgY29uc3QgbWlkID0gTWF0aC5mbG9vcigobG93ICsgaGlnaCkgLyAyLjApO1xuICAgICAgICAgICAgY29uc3QgY29tcHV0ZWQgPSBsb29rdXAobWlkKTtcbiAgICAgICAgICAgIGlmIChjb21wdXRlZCA8IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbG93ID0gbWlkICsgMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaGlnaCA9IG1pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGlnaDtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGNvcHkgb2YgdGhlIGFycmF5IHRoYXQgd2lsbCBoYXZlIGEgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCBwYXJhbWV0ZXIuXG4gICAgICogSWYgdGhlIGFycmF5IGlzIHRvbyBsb25nLCBpdCB3aWxsIGJlIHRydW5jYXRlZC4gSWYgaXQgaXMgdG9vIHNob3J0LCBpdCB3aWxsIGJlXG4gICAgICogZmlsbGVkIHdpdGggdGhlIHN1cHBsZWlkIGBmaWxsVmFsdWVgIGFyZ3VtZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIGFycmF5IC0gdGhlIGBBcnJheWAgdG8gY29weSBhbmQgYWRqdXN0XG4gICAgICogQHBhcmFtIGxlbmd0aCAtIHRoZSB0YXJnZXQgbGVuZ3RoIG9mIHRoZSBhcnJheVxuICAgICAqIEBwYXJhbSBmaWxsVmFsdWUgLSB0aGUgdmFsdWUgdG8gYWRkIHRvIHRoZSBhcnJheSBpZiBpdCBpcyB0b28gc2hvcnRcbiAgICAgKi9cbiAgICBhcnJheU9mTGVuZ3RoPFQ+KGFycmF5OiBUW10sIGxlbmd0aDogbnVtYmVyLCBmaWxsVmFsdWU6IFQpOiBUW10ge1xuICAgICAgICBpZiAoYXJyYXkubGVuZ3RoID4gbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyYXkuc2xpY2UoMCwgbGVuZ3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFycmF5ID0gYXJyYXkuc2xpY2UoKTtcbiAgICAgICAgd2hpbGUgKGFycmF5Lmxlbmd0aCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgYXJyYXkucHVzaChmaWxsVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVGFrZXMgaW4gb25lIGZ1bGwgYXJyYXkgb2YgdmFsdWVzIGFuZCBvbmUgc3BhcnNlIGFycmF5IG9mIHRoZSBzYW1lXG4gICAgICogbGVuZ3RoIGFuZCB0eXBlLiBSZXR1cm5zIGEgY29weSBvZiB0aGUgYGRlZmF1bHRzYCBhcnJheSwgd2hlcmUgZWFjaFxuICAgICAqIHZhbHVlIGlzIHJlcGxhY2VkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgbm9uLW51bGwgdmFsdWUgYXQgdGhlIHNhbWVcbiAgICAgKiBpbmRleCBpbiBgc3BhcnNlT3ZlcnJpZGVzYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkZWZhdWx0cyAtIHRoZSBmdWxsIGFycmF5IG9mIGRlZmF1bHQgdmFsdWVzXG4gICAgICogQHBhcmFtIHNwYXJzZU92ZXJyaWRlcyAtIHRoZSBzcGFyc2UgYXJyYXkgb2Ygb3ZlcnJpZGUgdmFsdWVzXG4gICAgICovXG4gICAgYXNzaWduU3BhcnNlVmFsdWVzPFQ+KGRlZmF1bHRzOiBUW10sIHNwYXJzZU92ZXJyaWRlczogVFtdKSB7XG4gICAgICAgIGlmIChzcGFyc2VPdmVycmlkZXMgPT0gbnVsbCB8fCBkZWZhdWx0cy5sZW5ndGggIT09IHNwYXJzZU92ZXJyaWRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0cztcbiAgICAgICAgfVxuXG4gICAgICAgIGRlZmF1bHRzID0gZGVmYXVsdHMuc2xpY2UoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZWZhdWx0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgb3ZlcnJpZGUgPSBzcGFyc2VPdmVycmlkZXNbaV07XG4gICAgICAgICAgICBpZiAob3ZlcnJpZGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGRlZmF1bHRzW2ldID0gb3ZlcnJpZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlZmF1bHRzO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBNZWFzdXJlcyB0aGUgYm91bmRzIG9mIHN1cHBsaWVkIGVsZW1lbnQncyB0ZXh0Q29udGVudC5cbiAgICAgKlxuICAgICAqIFdlIHVzZSB0aGUgY29tcHV0ZWQgZm9udCBmcm9tIHRoZSBzdXBwbGllZCBlbGVtZW50IGFuZCBhIG5vbi1ET00gY2FudmFzXG4gICAgICogY29udGV4dCB0byBtZWFzdXJlIHRoZSB0ZXh0LlxuICAgICAqXG4gICAgICogUmV0dXJucyBhIGBUZXh0TWV0cmljc2Agb2JqZWN0LlxuICAgICAqL1xuICAgIG1lYXN1cmVFbGVtZW50VGV4dENvbnRlbnQoZWxlbWVudDogRWxlbWVudCkge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKS5nZXRDb250ZXh0KFwiMmRcIik7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKTtcbiAgICAgICAgY29udGV4dC5mb250ID0gQ1NTX0ZPTlRfUFJPUEVSVElFUy5tYXAoKHByb3ApID0+IHN0eWxlLmdldFByb3BlcnR5VmFsdWUocHJvcCkpLmpvaW4oXCIgXCIpO1xuICAgICAgICByZXR1cm4gY29udGV4dC5tZWFzdXJlVGV4dChlbGVtZW50LnRleHRDb250ZW50KTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogR2l2ZW4gYSBudW1iZXIsIHJldHVybnMgYSB2YWx1ZSB0aGF0IGlzIGNsYW1wZWQgd2l0aGluIGFcbiAgICAgKiBtaW5pbXVtL21heGltdW0gYm91bmRlZCByYW5nZS4gVGhlIG1pbmltdW0gYW5kIG1heGltdW0gYXJlIG9wdGlvbmFsLiBJZlxuICAgICAqIGVpdGhlciBpcyBtaXNzaW5nLCB0aGF0IGV4dHJlbWEgbGltaXQgaXMgbm90IGFwcGxpZWQuXG4gICAgICpcbiAgICAgKiBBc3N1bWVzIG1heCA+PSBtaW4uXG4gICAgICovXG4gICAgY2xhbXAodmFsdWU6IG51bWJlciwgbWluPzogbnVtYmVyLCBtYXg/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKG1pbiAhPSBudWxsICYmIHZhbHVlIDwgbWluKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IG1pbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF4ICE9IG51bGwgJiYgdmFsdWUgPiBtYXgpIHtcbiAgICAgICAgICAgIHZhbHVlID0gbWF4O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9LFxufTtcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==

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

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
*/
import * as React from "react";
import { Grid, IColumnIndices } from "../common/grid";

@@ -13,3 +9,2 @@ import { Rect } from "../common/index";

import { IColumnHeaderRenderer } from "./columnHeaderCell";
import * as React from "react";
export interface IColumnWidths {

@@ -16,0 +11,0 @@ minColumnWidth?: number;

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -17,2 +19,5 @@ "use strict";

};
var classNames = require("classnames");
var PureRender = require("pure-render-decorator");
var React = require("react");
var index_1 = require("../common/index");

@@ -24,5 +29,2 @@ var resizable_1 = require("../interactions/resizable");

var columnHeaderCell_1 = require("./columnHeaderCell");
var classNames = require("classnames");
var PureRender = require("pure-render-decorator");
var React = require("react");
var ColumnHeader = (function (_super) {

@@ -113,2 +115,2 @@ __extends(ColumnHeader, _super);

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWFkZXJzL2NvbHVtbkhlYWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7O0FBR0gsc0JBQTRCLGlCQUFpQixDQUFDLENBQUE7QUFFOUMsMEJBQWtELDJCQUEyQixDQUFDLENBQUE7QUFDOUUsNkJBQTZDLDhCQUE4QixDQUFDLENBQUE7QUFDNUUsMkJBQWlELDRCQUE0QixDQUFDLENBQUE7QUFFOUUsd0JBQXdCLFlBQVksQ0FBQyxDQUFBO0FBQ3JDLGlDQUFnRixvQkFBb0IsQ0FBQyxDQUFBO0FBQ3JHLElBQVksVUFBVSxXQUFNLFlBQVksQ0FBQyxDQUFBO0FBQ3pDLElBQVksVUFBVSxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFDcEQsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUFzRC9CO0lBQWtDLGdDQUF1QztJQUF6RTtRQUFBLGlCQThIQztRQTlIaUMsOEJBQXVDO1FBK0I3RCxvQkFBZSxHQUFHLFVBQUMsV0FBbUIsRUFBRSxjQUF3QjtZQUM1RCwyQkFBSSxDQUFnQjtZQUM1QixJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ25ELElBQU0sS0FBSyxHQUFHO2dCQUNWLFNBQVMsRUFBSyxJQUFJLENBQUMsS0FBSyxPQUFJO2dCQUM1QixLQUFLLEVBQUssSUFBSSxDQUFDLEtBQUssT0FBSTthQUMzQixDQUFDO1lBQ0YsTUFBTSxDQUFDLENBQ0gsb0JBQUMsbUNBQWdCLEdBQ2IsR0FBRyxFQUFFLGtCQUFnQixXQUFjLEVBQ25DLFNBQVMsRUFBRSxVQUFVLENBQUMsY0FBYyxDQUFFLEVBQ3RDLEtBQUssRUFBRSxLQUFNLEVBQ2YsQ0FBQyxDQUFDO1FBQ1osQ0FBQyxDQUFBO1FBRU8sZUFBVSxHQUFHLFVBQUMsV0FBbUIsRUFBRSxjQUF3QjtZQUMvRCxJQUFBLGdCQVljLEVBWFYsa0RBQXNCLEVBQ3RCLDhCQUFZ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QUMxQyxFQUFFLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN2QixLQUFLLENBQUMsU0FBUyxHQUFHLGtCQUFlLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLElBQUksZUFBVyxDQUFDO1FBQzlHLENBQUM7UUFFRCxJQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsMkJBQTJCLEVBQUU7WUFDdEUsb0JBQW9CLEVBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUM7U0FDMUQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLHFCQUFDLEdBQUcsSUFBQyxLQUFLLEVBQUUsS0FBTSxFQUFDLFNBQVMsRUFBRSxPQUFRLEdBQUUsS0FBTSxDQUFNLENBQUM7SUFDaEUsQ0FBQztJQTVCYSx5QkFBWSxHQUFHO1FBQ3pCLFdBQVcsRUFBRSxJQUFJO0tBQ3BCLENBQUM7SUFKTjtRQUFDLFVBQVU7b0JBQUE7SUErSFgsbUJBQUM7QUFBRCxDQTlIQSxBQThIQyxDQTlIaUMsS0FBSyxDQUFDLFNBQVMsR0E4SGhEO0FBOUhZLG9CQUFZLGVBOEh4QixDQUFBIiwiZmlsZSI6ImhlYWRlcnMvY29sdW1uSGVhZGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgLSBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBHcmlkLCBJQ29sdW1uSW5kaWNlcyB9IGZyb20gXCIuLi9jb21tb24vZ3JpZFwiO1xuaW1wb3J0IHsgUmVjdCwgVXRpbHMgfSBmcm9tIFwiLi4vY29tbW9uL2luZGV4XCI7XG5pbXBvcnQgeyBJQ29vcmRpbmF0ZURhdGEgfSBmcm9tIFwiLi4vaW50ZXJhY3Rpb25zL2RyYWdnYWJsZVwiO1xuaW1wb3J0IHsgSUluZGV4ZWRSZXNpemVDYWxsYmFjaywgUmVzaXphYmxlIH0gZnJvbSBcIi4uL2ludGVyYWN0aW9ucy9yZXNpemFibGVcIjtcbmltcG9ydCB7IElMb2NrYWJsZUxheW91dCwgT3JpZW50YXRpb24gfSBmcm9tIFwiLi4vaW50ZXJhY3Rpb25zL3Jlc2l6ZUhhbmRsZVwiO1xuaW1wb3J0IHsgRHJhZ1NlbGVjdGFibGUsIElTZWxlY3RhYmxlUHJvcHMgfSBmcm9tIFwiLi4vaW50ZXJhY3Rpb25zL3NlbGVjdGFibGVcIjtcbmltcG9ydCB7IElMb2NhdG9yIH0gZnJvbSBcIi4uL2xvY2F0b3JcIjtcbmltcG9ydCB7IFJlZ2lvbnMgfSBmcm9tIFwiLi4vcmVnaW9uc1wiO1xuaW1wb3J0IHsgQ29sdW1uSGVhZGVyQ2VsbCwgSUNvbHVtbkhlYWRlckNlbGxQcm9wcywgSUNvbHVtbkhlYWRlclJlbmRlcmVyIH0gZnJvbSBcIi4vY29sdW1uSGVhZGVyQ2VsbFwiO1xuaW1wb3J0ICogYXMgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0ICogYXMgUHVyZVJlbmRlciBmcm9tIFwicHVyZS1yZW5kZXItZGVjb3JhdG9yXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uV2lkdGhzIHtcbiAgICBtaW5Db2x1bW5XaWR0aD86IG51bWJlcjtcbiAgICBtYXhDb2x1bW5XaWR0aD86IG51bWJlcjtcbiAgICBkZWZhdWx0Q29sdW1uV2lkdGg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtbkhlYWRlclByb3BzIGV4dGVuZHMgSVNlbGVjdGFibGVQcm9wcywgSUNvbHVtbkluZGljZXMsIElDb2x1bW5XaWR0aHMsIElMb2NrYWJsZUxheW91dCB7XG4gICAgLyoqXG4gICAgICogQSBJQ29sdW1uSGVhZGVyUmVuZGVyZXIgdGhhdCwgZm9yIGVhY2ggYDxDb2x1bW4+YCwgd2lsbCBkZWxlZ2F0ZSB0bzpcbiAgICAgKiAxLiBUaGUgYHJlbmRlckNvbHVtbkhlYWRlcmAgbWV0aG9kIGZyb20gdGhlIGA8Q29sdW1uPmBcbiAgICAgKiAyLiBBIGA8Q29sdW1uSGVhZGVyQ2VsbD5gIHVzaW5nIHRoZSBgbmFtZWAgcHJvcCBmcm9tIHRoZSBgPENvbHVtbj5gXG4gICAgICogMy4gQSBgPENvbHVtbkhlYWRlckNlbGw+YCB3aXRoIGEgYG5hbWVgIGdlbmVyYXRlZCBmcm9tIGBVdGlscy50b0Jhc2UyNkFscGhhYFxuICAgICAqL1xuICAgIGNlbGxSZW5kZXJlcjogSUNvbHVtbkhlYWRlclJlbmRlcmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGdyaWQgY29tcHV0ZXMgc2l6ZXMgb2YgY2VsbHMsIHJvd3MsIG9yIGNvbHVtbnMgZnJvbSB0aGVcbiAgICAgKiBjb25maWd1cmFibGUgYGNvbHVtbldpZHRoc2AgYW5kIGByb3dIZWlnaHRzYC5cbiAgICAgKi9cbiAgICBncmlkOiBHcmlkO1xuXG4gICAgLyoqXG4gICAgICogTG9jYXRlcyB0aGUgcm93L2NvbHVtbi9jZWxsIGdpdmVuIGEgbW91c2UgZXZlbnQuXG4gICAgICovXG4gICAgbG9jYXRvcjogSUxvY2F0b3I7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYFJlY3RgIGJvdW5kcyBvZiB0aGUgdmlzaWJsZSB2aWV3cG9ydCB3aXRoIHJlc3BlY3QgdG8gaXRzIHBhcmVudFxuICAgICAqIHNjcm9sbGFibGUgcGFuZS5cbiAgICAgKi9cbiAgICB2aWV3cG9ydFJlY3Q6IFJlY3Q7XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGVzL2Rpc2FibGVzIHRoZSByZXNpemUgaW50ZXJhY3Rpb24uXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGlzUmVzaXphYmxlPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEEgY2FsbGJhY2sgaW52b2tlZCB3aGVuIHVzZXIgaXMgZG9uZSByZXNpemluZyB0aGUgY29sdW1uXG4gICAgICovXG4gICAgb25Db2x1bW5XaWR0aENoYW5nZWQ6IElJbmRleGVkUmVzaXplQ2FsbGJhY2s7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGNhbGxiYWNrIGlzIGNhbGxlZCB3aGlsZSB0aGUgdXNlciBpcyByZXNpemluZyBhIGNvbHVtbi4gVGhlIGd1aWRlc1xuICAgICAqIGFycmF5IGNvbnRhaW5zIHBpeGVsIG9mZnNldHMgZm9yIHdoZXJlIHRvIGRpc3BsYXkgdGhlIHJlc2l6ZSBndWlkZXMgaW5cbiAgICAgKiB0aGUgdGFibGUgYm9keSdzIG92ZXJsYXkgbGF5ZXIuXG4gICAgICovXG4gICAgb25SZXNpemVHdWlkZTogKGd1aWRlczogbnVtYmVyW10pID0+IHZvaWQ7XG59XG5cbkBQdXJlUmVuZGVyXG5leHBvcnQgY2xhc3MgQ29sdW1uSGVhZGVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElDb2x1bW5IZWFkZXJQcm9wcywge30+IHtcbiAgICBwdWJsaWMgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgaXNSZXNpemFibGU6IHRydWUsXG4gICAgfTtcblxuICAgIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgZ3JpZCwgdmlld3BvcnRSZWN0LCBjb2x1bW5JbmRleFN0YXJ0LCBjb2x1bW5JbmRleEVuZCB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3QgY2VsbHM6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+W10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgY29sdW1uSW5kZXggPSBjb2x1bW5JbmRleFN0YXJ0OyBjb2x1bW5JbmRleCA8PSBjb2x1bW5JbmRleEVuZDsgY29sdW1uSW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgZXh0cmVtYUNsYXNzZXMgPSBncmlkLmdldEV4dHJlbWFDbGFzc2VzKDAsIGNvbHVtbkluZGV4LCAxLCBjb2x1bW5JbmRleEVuZCk7XG4gICAgICAgICAgICBjb25zdCByZW5kZXJlciA9IGdyaWQuaXNHaG9zdEluZGV4KC0xLCBjb2x1bW5JbmRleCkgPyB0aGlzLnJlbmRlckdob3N0Q2VsbCA6IHRoaXMucmVuZGVyQ2VsbDtcbiAgICAgICAgICAgIGNlbGxzLnB1c2gocmVuZGVyZXIoY29sdW1uSW5kZXgsIGV4dHJlbWFDbGFzc2VzKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhbHdheXMgc2V0IHdpZHRoIHNvIHRoYXQgdGhlIGxheW91dCBjYW4gcHVzaCBvdXQgdGhlIGVsZW1lbnQgdW5sZXNzIGl0IG92ZXJmbG93cy5cbiAgICAgICAgY29uc3Qgc3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gICAgICAgICAgICB3aWR0aDogYCR7Z3JpZC5nZXRSZWN0KCkud2lkdGh9cHhgLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHVzZSBDU1MgdHJhbnNsYXRpb24gdG8gb2Zmc2V0IHRoZSBjZWxsc1xuICAgICAgICBpZiAodmlld3BvcnRSZWN0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgke2dyaWQuZ2V0Q29sdW1uUmVjdChjb2x1bW5JbmRleFN0YXJ0KS5sZWZ0IC0gdmlld3BvcnRSZWN0LmxlZnR9cHgsIDAsIDApYDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc05hbWVzKFwiYnAtdGFibGUtdGhlYWRcIiwgXCJicC10YWJsZS1jb2x1bW4taGVhZGVyLXRyXCIsIHtcbiAgICAgICAgICAgIFwiYnAtdGFibGUtZHJhZ2dhYmxlXCIgOiAodGhpcy5wcm9wcy5vblNlbGVjdGlvbiAhPSBudWxsKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIDxkaXYgc3R5bGU9e3N0eWxlfSBjbGFzc05hbWU9e2NsYXNzZXN9PntjZWxsc308L2Rpdj47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJHaG9zdENlbGwgPSAoY29sdW1uSW5kZXg6IG51bWJlciwgZXh0cmVtYUNsYXNzZXM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZ3JpZCB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3QgcmVjdCA9IGdyaWQuZ2V0R2hvc3RDZWxsUmVjdCgwLCBjb2x1bW5JbmRleCk7XG4gICAgICAgIGNvbnN0IHN0eWxlID0ge1xuICAgICAgICAgICAgZmxleEJhc2lzOiBgJHtyZWN0LndpZHRofXB4YCxcbiAgICAgICAgICAgIHdpZHRoOiBgJHtyZWN0LndpZHRofXB4YCxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxDb2x1bW5IZWFkZXJDZWxsXG4gICAgICAgICAgICAgICAga2V5PXtgYnAtdGFibGUtY29sLSR7Y29sdW1uSW5kZXh9YH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoZXh0cmVtYUNsYXNzZXMpfVxuICAgICAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgIC8+KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckNlbGwgPSAoY29sdW1uSW5kZXg6IG51bWJlciwgZXh0cmVtYUNsYXNzZXM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24sXG4gICAgICAgICAgICBjZWxsUmVuZGVyZXIsXG4gICAgICAgICAgICBncmlkLFxuICAgICAgICAgICAgaXNSZXNpemFibGUsXG4gICAgICAgICAgICBtYXhDb2x1bW5XaWR0aCxcbiAgICAgICAgICAgIG1pbkNvbHVtbldpZHRoLFxuICAgICAgICAgICAgb25Db2x1bW5XaWR0aENoYW5nZWQsXG4gICAgICAgICAgICBvbkxheW91dExvY2ssXG4gICAgICAgICAgICBvblJlc2l6ZUd1aWRlLFxuICAgICAgICAgICAgb25TZWxlY3Rpb24sXG4gICAgICAgICAgICBzZWxlY3RlZFJlZ2lvbnMsXG4gICAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIGNvbnN0IHJlY3QgPSBncmlkLmdldENvbHVtblJlY3QoY29sdW1uSW5kZXgpO1xuICAgICAgICBjb25zdCBoYW5kbGVTaXplQ2hhbmdlZCA9IChzaXplOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIG9uUmVzaXplR3VpZGUoW3JlY3QubGVmdCArIHNpemUgKyAxXSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgaGFuZGxlUmVzaXplRW5kID0gKHNpemU6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgb25SZXNpemVHdWlkZShudWxsKTtcbiAgICAgICAgICAgIG9uQ29sdW1uV2lkdGhDaGFuZ2VkKGNvbHVtbkluZGV4LCBzaXplKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBoYW5kbGVEb3VibGVDbGljayA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy5wcm9wcy5sb2NhdG9yLmdldFdpZGVzdFZpc2libGVDZWxsSW5Db2x1bW4oY29sdW1uSW5kZXgpO1xuICAgICAgICAgICAgY29uc3QgY2xhbXBlZFdpZHRoID0gVXRpbHMuY2xhbXAod2lkdGgsIG1pbkNvbHVtbldpZHRoLCBtYXhDb2x1bW5XaWR0aCk7XG4gICAgICAgICAgICBvblJlc2l6ZUd1aWRlKG51bGwpO1xuICAgICAgICAgICAgb25Db2x1bW5XaWR0aENoYW5nZWQoY29sdW1uSW5kZXgsIGNsYW1wZWRXaWR0aCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgY2VsbCA9IGNlbGxSZW5kZXJlcihjb2x1bW5JbmRleCk7XG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGNsYXNzTmFtZXMoY2VsbC5wcm9wcy5jbGFzc05hbWUsIGV4dHJlbWFDbGFzc2VzLCB7XG4gICAgICAgICAgICBcImJwLXRhYmxlLWRyYWdnYWJsZVwiOiAob25TZWxlY3Rpb24gIT0gbnVsbCksXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBpc0NvbHVtblNlbGVjdGVkID0gUmVnaW9ucy5oYXNGdWxsQ29sdW1uKHNlbGVjdGVkUmVnaW9ucywgY29sdW1uSW5kZXgpO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8RHJhZ1NlbGVjdGFibGVcbiAgICAgICAgICAgICAgICBhbGxvd011bHRpcGxlU2VsZWN0aW9uPXthbGxvd011bHRpcGxlU2VsZWN0aW9ufVxuICAgICAgICAgICAgICAgIGtleT17YGJwLXRhYmxlLWNvbC0ke2NvbHVtbkluZGV4fWB9XG4gICAgICAgICAgICAgICAgbG9jYXRlQ2xpY2s9e3RoaXMubG9jYXRlQ2xpY2t9XG4gICAgICAgICAgICAgICAgbG9jYXRlRHJhZz17dGhpcy5sb2NhdGVEcmFnfVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0aW9uPXtvblNlbGVjdGlvbn1cbiAgICAgICAgICAgICAgICBzZWxlY3RlZFJlZ2lvbnM9e3NlbGVjdGVkUmVnaW9uc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UmVzaXphYmxlXG4gICAgICAgICAgICAgICAgICAgIGlzUmVzaXphYmxlPXtpc1Jlc2l6YWJsZX1cbiAgICAgICAgICAgICAgICAgICAgbWF4U2l6ZT17bWF4Q29sdW1uV2lkdGh9XG4gICAgICAgICAgICAgICAgICAgIG1pblNpemU9e21pbkNvbHVtbldpZHRofVxuICAgICAgICAgICAgICAgICAgICBvbkRvdWJsZUNsaWNrPXtoYW5kbGVEb3VibGVDbGlja31cbiAgICAgICAgICAgICAgICAgICAgb25MYXlvdXRMb2NrPXtvbkxheW91dExvY2t9XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzaXplRW5kPXtoYW5kbGVSZXNpemVFbmR9XG4gICAgICAgICAgICAgICAgICAgIG9uU2l6ZUNoYW5nZWQ9e2hhbmRsZVNpemVDaGFuZ2VkfVxuICAgICAgICAgICAgICAgICAgICBvcmllbnRhdGlvbj17T3JpZW50YXRpb24uVkVSVElDQUx9XG4gICAgICAgICAgICAgICAgICAgIHNpemU9e3JlY3Qud2lkdGh9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7UmVhY3QuY2xvbmVFbGVtZW50KGNlbGwsIHsgY2xhc3NOYW1lLCBpc0NvbHVtblNlbGVjdGVkIH0gYXMgSUNvbHVtbkhlYWRlckNlbGxQcm9wcyl9XG4gICAgICAgICAgICAgICAgPC9SZXNpemFibGU+XG4gICAgICAgICAgICA8L0RyYWdTZWxlY3RhYmxlPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9jYXRlQ2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgLy8gQWJvcnQgc2VsZWN0aW9uIHVubGVzcyB0aGUgbW91c2UgYWN0dWFsbHkgaGl0IGEgdGFibGUgaGVhZGVyLiBUaGlzIGFsbG93c1xuICAgICAgICAvLyB1c2VycyB0byBzdXBwbHkgaW50ZXJhY3RpdmUgY29tcG9uZW50cyBpbiB0aGVpciByZW5kZXJIZWFkZXIgbWV0aG9kcy5cbiAgICAgICAgaWYgKCFDb2x1bW5IZWFkZXJDZWxsLmlzSGVhZGVyTW91c2VUYXJnZXQoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb2wgPSB0aGlzLnByb3BzLmxvY2F0b3IuY29udmVydFBvaW50VG9Db2x1bW4oZXZlbnQuY2xpZW50WCk7XG4gICAgICAgIHJldHVybiBSZWdpb25zLmNvbHVtbihjb2wpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9jYXRlRHJhZyA9IChfZXZlbnQ6IE1vdXNlRXZlbnQsIGNvb3JkczogSUNvb3JkaW5hdGVEYXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbFN0YXJ0ID0gdGhpcy5wcm9wcy5sb2NhdG9yLmNvbnZlcnRQb2ludFRvQ29sdW1uKGNvb3Jkcy5hY3RpdmF0aW9uWzBdKTtcbiAgICAgICAgY29uc3QgY29sRW5kID0gdGhpcy5wcm9wcy5sb2NhdG9yLmNvbnZlcnRQb2ludFRvQ29sdW1uKGNvb3Jkcy5jdXJyZW50WzBdKTtcbiAgICAgICAgcmV0dXJuIFJlZ2lvbnMuY29sdW1uKGNvbFN0YXJ0LCBjb2xFbmQpO1xuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWFkZXJzL2NvbHVtbkhlYWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7Ozs7Ozs7Ozs7Ozs7QUFFSCxJQUFZLFVBQVUsV0FBTSxZQUFZLENBQUMsQ0FBQTtBQUN6QyxJQUFZLFVBQVUsV0FBTSx1QkFBdUIsQ0FBQyxDQUFBO0FBQ3BELElBQVksS0FBSyxXQUFNLE9BQU8sQ0FBQyxDQUFBO0FBRS9CLHNCQUE0QixpQkFBaUIsQ0FBQyxDQUFBO0FBRTlDLDBCQUFrRCwyQkFBMkIsQ0FBQyxDQUFBO0FBQzlFLDZCQUE2Qyw4QkFBOEIsQ0FBQyxDQUFBO0FBQzVFLDJCQUFpRCw0QkFBNEIsQ0FBQyxDQUFBO0FBRTlFLHdCQUF3QixZQUFZLENBQUMsQ0FBQTtBQUNyQyxpQ0FBZ0Ysb0JBQW9CLENBQUMsQ0FBQTtBQXNEckc7SUFBa0MsZ0NBQXVDO0lBQXpFO1FBQUEsaUJBOEhDO1FBOUhpQyw4QkFBdUM7UUErQjdELG9CQUFlLEdBQUcsVUFBQyxXQUFtQixFQUFFLGNBQXdCO1lBQzVELDJCQUFJLENBQWdCO1lBQzVCLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDbkQsSUFBTSxLQUFLLEdBQUc7Z0JBQ1YsU0FBUyxFQUFLLElBQUksQ0FBQyxLQUFLLE9BQUk7Z0JBQzVCLEtBQUssRUFBSyxJQUFJLENBQUMsS0FBSyxPQUFJO2FBQzNCLENBQUM7WUFDRixNQUFNLENBQUMsQ0FDSCxvQkFBQyxtQ0FBZ0IsR0FDYixHQUFHLEVBQUUsa0JBQWdCLFdBQWMsRUFDbkMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxjQUFjLENBQUUsRUFDdEMsS0FBSyxFQUFFLEtBQU0sRUFDZixDQUFDLENBQUM7UUFDWixDQUFDLENBQUE7UUFFTyxlQUFVLEdBQUcsVUFBQyxXQUFtQixFQUFFLGNBQXdCO1lBQy9ELElBQUEsZ0JBWWMsRUFYVixrREFBc0IsRUFDdEIsOEJB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O1FBQzFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxTQUFTLEdBQUcsa0JBQWUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxlQUFXLENBQUM7UUFDOUcsQ0FBQztRQUVELElBQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSwyQkFBMkIsRUFBRTtZQUN0RSxvQkFBb0IsRUFBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztTQUMxRCxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMscUJBQUMsR0FBRyxJQUFDLEtBQUssRUFBRSxLQUFNLEVBQUMsU0FBUyxFQUFFLE9BQVEsR0FBRSxLQUFNLENBQU0sQ0FBQztJQUNoRSxDQUFDO0lBNUJhLHlCQUFZLEdBQUc7UUFDekIsV0FBVyxFQUFFLElBQUk7S0FDcEIsQ0FBQztJQUpOO1FBQUMsVUFBVTtvQkFBQTtJQStIWCxtQkFBQztBQUFELENBOUhBLEFBOEhDLENBOUhpQyxLQUFLLENBQUMsU0FBUyxHQThIaEQ7QUE5SFksb0JBQVksZUE4SHhCLENBQUEiLCJmaWxlIjoiaGVhZGVycy9jb2x1bW5IZWFkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEJTRC0zIExpY2Vuc2UgYXMgbW9kaWZpZWQgKHRoZSDigJxMaWNlbnNl4oCdKTsgeW91IG1heSBvYnRhaW4gYSBjb3B5XG4gKiBvZiB0aGUgbGljZW5zZSBhdCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqIGFuZCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL1BBVEVOVFNcbiAqL1xuXG5pbXBvcnQgKiBhcyBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCI7XG5pbXBvcnQgKiBhcyBQdXJlUmVuZGVyIGZyb20gXCJwdXJlLXJlbmRlci1kZWNvcmF0b3JcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgR3JpZCwgSUNvbHVtbkluZGljZXMgfSBmcm9tIFwiLi4vY29tbW9uL2dyaWRcIjtcbmltcG9ydCB7IFJlY3QsIFV0aWxzIH0gZnJvbSBcIi4uL2NvbW1vbi9pbmRleFwiO1xuaW1wb3J0IHsgSUNvb3JkaW5hdGVEYXRhIH0gZnJvbSBcIi4uL2ludGVyYWN0aW9ucy9kcmFnZ2FibGVcIjtcbmltcG9ydCB7IElJbmRleGVkUmVzaXplQ2FsbGJhY2ssIFJlc2l6YWJsZSB9IGZyb20gXCIuLi9pbnRlcmFjdGlvbnMvcmVzaXphYmxlXCI7XG5pbXBvcnQgeyBJTG9ja2FibGVMYXlvdXQsIE9yaWVudGF0aW9uIH0gZnJvbSBcIi4uL2ludGVyYWN0aW9ucy9yZXNpemVIYW5kbGVcIjtcbmltcG9ydCB7IERyYWdTZWxlY3RhYmxlLCBJU2VsZWN0YWJsZVByb3BzIH0gZnJvbSBcIi4uL2ludGVyYWN0aW9ucy9zZWxlY3RhYmxlXCI7XG5pbXBvcnQgeyBJTG9jYXRvciB9IGZyb20gXCIuLi9sb2NhdG9yXCI7XG5pbXBvcnQgeyBSZWdpb25zIH0gZnJvbSBcIi4uL3JlZ2lvbnNcIjtcbmltcG9ydCB7IENvbHVtbkhlYWRlckNlbGwsIElDb2x1bW5IZWFkZXJDZWxsUHJvcHMsIElDb2x1bW5IZWFkZXJSZW5kZXJlciB9IGZyb20gXCIuL2NvbHVtbkhlYWRlckNlbGxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uV2lkdGhzIHtcbiAgICBtaW5Db2x1bW5XaWR0aD86IG51bWJlcjtcbiAgICBtYXhDb2x1bW5XaWR0aD86IG51bWJlcjtcbiAgICBkZWZhdWx0Q29sdW1uV2lkdGg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtbkhlYWRlclByb3BzIGV4dGVuZHMgSVNlbGVjdGFibGVQcm9wcywgSUNvbHVtbkluZGljZXMsIElDb2x1bW5XaWR0aHMsIElMb2NrYWJsZUxheW91dCB7XG4gICAgLyoqXG4gICAgICogQSBJQ29sdW1uSGVhZGVyUmVuZGVyZXIgdGhhdCwgZm9yIGVhY2ggYDxDb2x1bW4+YCwgd2lsbCBkZWxlZ2F0ZSB0bzpcbiAgICAgKiAxLiBUaGUgYHJlbmRlckNvbHVtbkhlYWRlcmAgbWV0aG9kIGZyb20gdGhlIGA8Q29sdW1uPmBcbiAgICAgKiAyLiBBIGA8Q29sdW1uSGVhZGVyQ2VsbD5gIHVzaW5nIHRoZSBgbmFtZWAgcHJvcCBmcm9tIHRoZSBgPENvbHVtbj5gXG4gICAgICogMy4gQSBgPENvbHVtbkhlYWRlckNlbGw+YCB3aXRoIGEgYG5hbWVgIGdlbmVyYXRlZCBmcm9tIGBVdGlscy50b0Jhc2UyNkFscGhhYFxuICAgICAqL1xuICAgIGNlbGxSZW5kZXJlcjogSUNvbHVtbkhlYWRlclJlbmRlcmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGdyaWQgY29tcHV0ZXMgc2l6ZXMgb2YgY2VsbHMsIHJvd3MsIG9yIGNvbHVtbnMgZnJvbSB0aGVcbiAgICAgKiBjb25maWd1cmFibGUgYGNvbHVtbldpZHRoc2AgYW5kIGByb3dIZWlnaHRzYC5cbiAgICAgKi9cbiAgICBncmlkOiBHcmlkO1xuXG4gICAgLyoqXG4gICAgICogTG9jYXRlcyB0aGUgcm93L2NvbHVtbi9jZWxsIGdpdmVuIGEgbW91c2UgZXZlbnQuXG4gICAgICovXG4gICAgbG9jYXRvcjogSUxvY2F0b3I7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYFJlY3RgIGJvdW5kcyBvZiB0aGUgdmlzaWJsZSB2aWV3cG9ydCB3aXRoIHJlc3BlY3QgdG8gaXRzIHBhcmVudFxuICAgICAqIHNjcm9sbGFibGUgcGFuZS5cbiAgICAgKi9cbiAgICB2aWV3cG9ydFJlY3Q6IFJlY3Q7XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGVzL2Rpc2FibGVzIHRoZSByZXNpemUgaW50ZXJhY3Rpb24uXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGlzUmVzaXphYmxlPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEEgY2FsbGJhY2sgaW52b2tlZCB3aGVuIHVzZXIgaXMgZG9uZSByZXNpemluZyB0aGUgY29sdW1uXG4gICAgICovXG4gICAgb25Db2x1bW5XaWR0aENoYW5nZWQ6IElJbmRleGVkUmVzaXplQ2FsbGJhY2s7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGNhbGxiYWNrIGlzIGNhbGxlZCB3aGlsZSB0aGUgdXNlciBpcyByZXNpemluZyBhIGNvbHVtbi4gVGhlIGd1aWRlc1xuICAgICAqIGFycmF5IGNvbnRhaW5zIHBpeGVsIG9mZnNldHMgZm9yIHdoZXJlIHRvIGRpc3BsYXkgdGhlIHJlc2l6ZSBndWlkZXMgaW5cbiAgICAgKiB0aGUgdGFibGUgYm9keSdzIG92ZXJsYXkgbGF5ZXIuXG4gICAgICovXG4gICAgb25SZXNpemVHdWlkZTogKGd1aWRlczogbnVtYmVyW10pID0+IHZvaWQ7XG59XG5cbkBQdXJlUmVuZGVyXG5leHBvcnQgY2xhc3MgQ29sdW1uSGVhZGVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElDb2x1bW5IZWFkZXJQcm9wcywge30+IHtcbiAgICBwdWJsaWMgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgaXNSZXNpemFibGU6IHRydWUsXG4gICAgfTtcblxuICAgIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgZ3JpZCwgdmlld3BvcnRSZWN0LCBjb2x1bW5JbmRleFN0YXJ0LCBjb2x1bW5JbmRleEVuZCB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3QgY2VsbHM6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PiA9IFtdO1xuICAgICAgICBmb3IgKGxldCBjb2x1bW5JbmRleCA9IGNvbHVtbkluZGV4U3RhcnQ7IGNvbHVtbkluZGV4IDw9IGNvbHVtbkluZGV4RW5kOyBjb2x1bW5JbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCBleHRyZW1hQ2xhc3NlcyA9IGdyaWQuZ2V0RXh0cmVtYUNsYXNzZXMoMCwgY29sdW1uSW5kZXgsIDEsIGNvbHVtbkluZGV4RW5kKTtcbiAgICAgICAgICAgIGNvbnN0IHJlbmRlcmVyID0gZ3JpZC5pc0dob3N0SW5kZXgoLTEsIGNvbHVtbkluZGV4KSA/IHRoaXMucmVuZGVyR2hvc3RDZWxsIDogdGhpcy5yZW5kZXJDZWxsO1xuICAgICAgICAgICAgY2VsbHMucHVzaChyZW5kZXJlcihjb2x1bW5JbmRleCwgZXh0cmVtYUNsYXNzZXMpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFsd2F5cyBzZXQgd2lkdGggc28gdGhhdCB0aGUgbGF5b3V0IGNhbiBwdXNoIG91dCB0aGUgZWxlbWVudCB1bmxlc3MgaXQgb3ZlcmZsb3dzLlxuICAgICAgICBjb25zdCBzdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgICAgICAgICAgIHdpZHRoOiBgJHtncmlkLmdldFJlY3QoKS53aWR0aH1weGAsXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gdXNlIENTUyB0cmFuc2xhdGlvbiB0byBvZmZzZXQgdGhlIGNlbGxzXG4gICAgICAgIGlmICh2aWV3cG9ydFJlY3QgIT0gbnVsbCkge1xuICAgICAgICAgICAgc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7Z3JpZC5nZXRDb2x1bW5SZWN0KGNvbHVtbkluZGV4U3RhcnQpLmxlZnQgLSB2aWV3cG9ydFJlY3QubGVmdH1weCwgMCwgMClgO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzTmFtZXMoXCJicC10YWJsZS10aGVhZFwiLCBcImJwLXRhYmxlLWNvbHVtbi1oZWFkZXItdHJcIiwge1xuICAgICAgICAgICAgXCJicC10YWJsZS1kcmFnZ2FibGVcIiA6ICh0aGlzLnByb3BzLm9uU2VsZWN0aW9uICE9IG51bGwpLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gPGRpdiBzdHlsZT17c3R5bGV9IGNsYXNzTmFtZT17Y2xhc3Nlc30+e2NlbGxzfTwvZGl2PjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckdob3N0Q2VsbCA9IChjb2x1bW5JbmRleDogbnVtYmVyLCBleHRyZW1hQ2xhc3Nlczogc3RyaW5nW10pID0+IHtcbiAgICAgICAgY29uc3QgeyBncmlkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCByZWN0ID0gZ3JpZC5nZXRHaG9zdENlbGxSZWN0KDAsIGNvbHVtbkluZGV4KTtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB7XG4gICAgICAgICAgICBmbGV4QmFzaXM6IGAke3JlY3Qud2lkdGh9cHhgLFxuICAgICAgICAgICAgd2lkdGg6IGAke3JlY3Qud2lkdGh9cHhgLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPENvbHVtbkhlYWRlckNlbGxcbiAgICAgICAgICAgICAgICBrZXk9e2BicC10YWJsZS1jb2wtJHtjb2x1bW5JbmRleH1gfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhleHRyZW1hQ2xhc3Nlcyl9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgLz4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyQ2VsbCA9IChjb2x1bW5JbmRleDogbnVtYmVyLCBleHRyZW1hQ2xhc3Nlczogc3RyaW5nW10pID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbixcbiAgICAgICAgICAgIGNlbGxSZW5kZXJlcixcbiAgICAgICAgICAgIGdyaWQsXG4gICAgICAgICAgICBpc1Jlc2l6YWJsZSxcbiAgICAgICAgICAgIG1heENvbHVtbldpZHRoLFxuICAgICAgICAgICAgbWluQ29sdW1uV2lkdGgsXG4gICAgICAgICAgICBvbkNvbHVtbldpZHRoQ2hhbmdlZCxcbiAgICAgICAgICAgIG9uTGF5b3V0TG9jayxcbiAgICAgICAgICAgIG9uUmVzaXplR3VpZGUsXG4gICAgICAgICAgICBvblNlbGVjdGlvbixcbiAgICAgICAgICAgIHNlbGVjdGVkUmVnaW9ucyxcbiAgICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3QgcmVjdCA9IGdyaWQuZ2V0Q29sdW1uUmVjdChjb2x1bW5JbmRleCk7XG4gICAgICAgIGNvbnN0IGhhbmRsZVNpemVDaGFuZ2VkID0gKHNpemU6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgb25SZXNpemVHdWlkZShbcmVjdC5sZWZ0ICsgc2l6ZSArIDFdKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBoYW5kbGVSZXNpemVFbmQgPSAoc2l6ZTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBvblJlc2l6ZUd1aWRlKG51bGwpO1xuICAgICAgICAgICAgb25Db2x1bW5XaWR0aENoYW5nZWQoY29sdW1uSW5kZXgsIHNpemUpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGhhbmRsZURvdWJsZUNsaWNrID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLnByb3BzLmxvY2F0b3IuZ2V0V2lkZXN0VmlzaWJsZUNlbGxJbkNvbHVtbihjb2x1bW5JbmRleCk7XG4gICAgICAgICAgICBjb25zdCBjbGFtcGVkV2lkdGggPSBVdGlscy5jbGFtcCh3aWR0aCwgbWluQ29sdW1uV2lkdGgsIG1heENvbHVtbldpZHRoKTtcbiAgICAgICAgICAgIG9uUmVzaXplR3VpZGUobnVsbCk7XG4gICAgICAgICAgICBvbkNvbHVtbldpZHRoQ2hhbmdlZChjb2x1bW5JbmRleCwgY2xhbXBlZFdpZHRoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBjZWxsID0gY2VsbFJlbmRlcmVyKGNvbHVtbkluZGV4KTtcbiAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gY2xhc3NOYW1lcyhjZWxsLnByb3BzLmNsYXNzTmFtZSwgZXh0cmVtYUNsYXNzZXMsIHtcbiAgICAgICAgICAgIFwiYnAtdGFibGUtZHJhZ2dhYmxlXCI6IChvblNlbGVjdGlvbiAhPSBudWxsKSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGlzQ29sdW1uU2VsZWN0ZWQgPSBSZWdpb25zLmhhc0Z1bGxDb2x1bW4oc2VsZWN0ZWRSZWdpb25zLCBjb2x1bW5JbmRleCk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxEcmFnU2VsZWN0YWJsZVxuICAgICAgICAgICAgICAgIGFsbG93TXVsdGlwbGVTZWxlY3Rpb249e2FsbG93TXVsdGlwbGVTZWxlY3Rpb259XG4gICAgICAgICAgICAgICAga2V5PXtgYnAtdGFibGUtY29sLSR7Y29sdW1uSW5kZXh9YH1cbiAgICAgICAgICAgICAgICBsb2NhdGVDbGljaz17dGhpcy5sb2NhdGVDbGlja31cbiAgICAgICAgICAgICAgICBsb2NhdGVEcmFnPXt0aGlzLmxvY2F0ZURyYWd9XG4gICAgICAgICAgICAgICAgb25TZWxlY3Rpb249e29uU2VsZWN0aW9ufVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkUmVnaW9ucz17c2VsZWN0ZWRSZWdpb25zfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxSZXNpemFibGVcbiAgICAgICAgICAgICAgICAgICAgaXNSZXNpemFibGU9e2lzUmVzaXphYmxlfVxuICAgICAgICAgICAgICAgICAgICBtYXhTaXplPXttYXhDb2x1bW5XaWR0aH1cbiAgICAgICAgICAgICAgICAgICAgbWluU2l6ZT17bWluQ29sdW1uV2lkdGh9XG4gICAgICAgICAgICAgICAgICAgIG9uRG91YmxlQ2xpY2s9e2hhbmRsZURvdWJsZUNsaWNrfVxuICAgICAgICAgICAgICAgICAgICBvbkxheW91dExvY2s9e29uTGF5b3V0TG9ja31cbiAgICAgICAgICAgICAgICAgICAgb25SZXNpemVFbmQ9e2hhbmRsZVJlc2l6ZUVuZH1cbiAgICAgICAgICAgICAgICAgICAgb25TaXplQ2hhbmdlZD17aGFuZGxlU2l6ZUNoYW5nZWR9XG4gICAgICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uPXtPcmllbnRhdGlvbi5WRVJUSUNBTH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT17cmVjdC53aWR0aH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtSZWFjdC5jbG9uZUVsZW1lbnQoY2VsbCwgeyBjbGFzc05hbWUsIGlzQ29sdW1uU2VsZWN0ZWQgfSBhcyBJQ29sdW1uSGVhZGVyQ2VsbFByb3BzKX1cbiAgICAgICAgICAgICAgICA8L1Jlc2l6YWJsZT5cbiAgICAgICAgICAgIDwvRHJhZ1NlbGVjdGFibGU+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2NhdGVDbGljayA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAvLyBBYm9ydCBzZWxlY3Rpb24gdW5sZXNzIHRoZSBtb3VzZSBhY3R1YWxseSBoaXQgYSB0YWJsZSBoZWFkZXIuIFRoaXMgYWxsb3dzXG4gICAgICAgIC8vIHVzZXJzIHRvIHN1cHBseSBpbnRlcmFjdGl2ZSBjb21wb25lbnRzIGluIHRoZWlyIHJlbmRlckhlYWRlciBtZXRob2RzLlxuICAgICAgICBpZiAoIUNvbHVtbkhlYWRlckNlbGwuaXNIZWFkZXJNb3VzZVRhcmdldChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbCA9IHRoaXMucHJvcHMubG9jYXRvci5jb252ZXJ0UG9pbnRUb0NvbHVtbihldmVudC5jbGllbnRYKTtcbiAgICAgICAgcmV0dXJuIFJlZ2lvbnMuY29sdW1uKGNvbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2NhdGVEcmFnID0gKF9ldmVudDogTW91c2VFdmVudCwgY29vcmRzOiBJQ29vcmRpbmF0ZURhdGEpID0+IHtcbiAgICAgICAgY29uc3QgY29sU3RhcnQgPSB0aGlzLnByb3BzLmxvY2F0b3IuY29udmVydFBvaW50VG9Db2x1bW4oY29vcmRzLmFjdGl2YXRpb25bMF0pO1xuICAgICAgICBjb25zdCBjb2xFbmQgPSB0aGlzLnByb3BzLmxvY2F0b3IuY29udmVydFBvaW50VG9Db2x1bW4oY29vcmRzLmN1cnJlbnRbMF0pO1xuICAgICAgICByZXR1cm4gUmVnaW9ucy5jb2x1bW4oY29sU3RhcnQsIGNvbEVuZCk7XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

@@ -1,9 +0,10 @@

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/
import { ResizeHandle } from "../interactions/resizeHandle";
import { IProps } from "@blueprintjs/core";
import * as React from "react";
import { ResizeHandle } from "../interactions/resizeHandle";
export interface IColumnHeaderRenderer {

@@ -52,3 +53,3 @@ (columnIndex: number): React.ReactElement<IColumnHeaderCellProps>;

/**
* An element, like a `<Menu>`, hat is displayed by clicking the button
* An element, like a `<Menu>`, that is displayed by clicking the button
* to the right of the header name, or by right-clicking anywhere in the

@@ -77,5 +78,3 @@ * header.

}
export declare class HorizontalCellDivider extends React.Component<{}, {}> {
render(): JSX.Element;
}
export declare function HorizontalCellDivider(): JSX.Element;
export declare class ColumnHeaderCell extends React.Component<IColumnHeaderCellProps, IColumnHeaderState> {

@@ -82,0 +81,0 @@ static defaultProps: IColumnHeaderCellProps;

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -25,12 +27,5 @@ "use strict";

var HEADER_INTERACTION_BAR_CLASSNAME = "bp-table-interaction-bar";
var HorizontalCellDivider = (function (_super) {
__extends(HorizontalCellDivider, _super);
function HorizontalCellDivider() {
_super.apply(this, arguments);
}
HorizontalCellDivider.prototype.render = function () {
return React.createElement("div", {className: "bp-table-horizontal-cell-divider"});
};
return HorizontalCellDivider;
}(React.Component));
function HorizontalCellDivider() {
return React.createElement("div", {className: "bp-table-horizontal-cell-divider"});
}
exports.HorizontalCellDivider = HorizontalCellDivider;

@@ -126,2 +121,2 @@ var ColumnHeaderCell = (function (_super) {

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWFkZXJzL2NvbHVtbkhlYWRlckNlbGwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRzs7Ozs7Ozs7Ozs7OztBQUdILHFCQUFzRSxtQkFBbUIsQ0FBQyxDQUFBO0FBQzFGLElBQVksVUFBVSxXQUFNLFlBQVksQ0FBQyxDQUFBO0FBQ3pDLElBQVksS0FBSyxXQUFNLE9BQU8sQ0FBQyxDQUFBO0FBZ0YvQixJQUFNLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDO0FBQzNDLElBQU0sNEJBQTRCLEdBQUcsc0JBQXNCLENBQUM7QUFDNUQsSUFBTSx3QkFBd0IsR0FBRyx5QkFBeUIsQ0FBQztBQUMzRCxJQUFNLGlDQUFpQyxHQUFHLDJCQUEyQixDQUFDO0FBQ3RFLElBQU0sZ0NBQWdDLEdBQUcsMEJBQTBCLENBQUM7QUFFcEU7SUFBMkMseUNBQXVCO0lBQWxFO1FBQTJDLDhCQUF1QjtJQUlsRSxDQUFDO0lBSFUsc0NBQU0sR0FBYjtRQUNJLE1BQU0sQ0FBQyxxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFDLGtDQUFrQyxFQUFHLENBQUM7SUFDaEUsQ0FBQztJQUNMLDRCQUFDO0FBQUQsQ0FKQSxBQUlDLENBSjBDLEtBQUssQ0FBQyxTQUFTLEdBSXpEO0FBSlksNkJBQXFCLHdCQUlqQyxDQUFBO0FBR0Q7SUFBc0Msb0NBQTJEO0lBQWpHO1FBQUEsaUJBZ0hDO1FBaEhxQyw4QkFBMkQ7UUFxQnRGLFVBQUssR0FBRztZQUNYLFFBQVEsRUFBRSxLQUFLO1NBQ2xCLENBQUM7UUFzRk0saUNBQTRCLEdBQUcsVUFBQyxRQUFpQixJQUFLLE9BQUE7WUFDMUQsS0FBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLGtCQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsRUFGNkQsQ0FFN0QsQ0FBQztJQUNOLENBQUM7SUF6R0c7Ozs7OztPQU1HO0lBQ1csb0NBQW1CLEdBQWpDLFVBQWtDLE1BQW1CO1FBQ2pELE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FB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LENBQUMsU0FBUyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxJQUFNLG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxjQUFPLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDN0YsSUFBTSxXQUFXLEdBQUcsQ0FBQztnQkFDakIsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLEdBQUcsRUFBRSxJQUFJO2dCQUNULEVBQUUsRUFBRSxRQUFRO2FBQ2YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLENBQ0gsb0JBQUMsY0FBTyxHQUNKLFdBQVcsRUFBRSxXQUFZLEVBQ3pCLE9BQU8sRUFBRSxJQUFLLEVBQ2QsUUFBUSxFQUFFLGVBQVEsQ0FBQyxNQUFPLEVBQzFCLFNBQVMsRUFBQyxrQkFBa0IsRUFDNUIsY0FBYyxFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUUsRUFDeEQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBRSxFQUMzRCx3QkFBd0IsRUFBRSxJQUFLO1lBRS9CLHFCQUFDLElBQUksSUFBQyxTQUFTLEVBQUUsb0JBQXFCLEVBQUU7U0FDbEMsQ0FDYixDQUFDO0lBQ04sQ0FBQztJQTFHYSw2QkFBWSxHQUEyQjtRQUNqRCxRQUFRLEVBQUUsS0FBSztRQUNmLFlBQVksRUFBRSxNQUFNO1FBQ3BCLGlCQUFpQixFQUFFLEtBQUs7S0FDM0IsQ0FBQztJQU5OO1FBQUMsd0JBQWlCO3dCQUFBO0lBaUhsQix1QkFBQztBQUFELENBaEhBLEFBZ0hDLENBaEhxQyxLQUFLLENBQUMsU0FBUyxHQWdIcEQ7QUFoSFksd0JBQWdCLG1CQWdINUIsQ0FBQSIsImZpbGUiOiJoZWFkZXJzL2NvbHVtbkhlYWRlckNlbGwuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAtIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbmltcG9ydCB7IFJlc2l6ZUhhbmRsZSB9IGZyb20gXCIuLi9pbnRlcmFjdGlvbnMvcmVzaXplSGFuZGxlXCI7XG5pbXBvcnQgeyBDbGFzc2VzLCBDb250ZXh0TWVudVRhcmdldCwgSVByb3BzLCBQb3BvdmVyLCBQb3NpdGlvbiB9IGZyb20gXCJAYmx1ZXByaW50anMvY29yZVwiO1xuaW1wb3J0ICogYXMgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtbkhlYWRlclJlbmRlcmVyIHtcbiAgICAoY29sdW1uSW5kZXg6IG51bWJlcik6IFJlYWN0LlJlYWN0RWxlbWVudDxJQ29sdW1uSGVhZGVyQ2VsbFByb3BzPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uTmFtZVByb3BzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBkaXNwbGF5ZWQgaW4gdGhlIGhlYWRlciBvZiB0aGUgY29sdW1uLlxuICAgICAqL1xuICAgIG5hbWU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBBIGNhbGxiYWNrIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG5hbWUgcmVuZGVyaW5nIGJlaGF2aW9yLiBUaGUgZGVmYXVsdFxuICAgICAqIGJlaGF2aW9yIGlzIHRvIHNpbXBseSB1c2UgdGhlIGBDb2x1bW5IZWFkZXJDZWxsYHMgbmFtZSBwcm9wLlxuICAgICAqXG4gICAgICogVGhpcyByZW5kZXIgY2FsbGJhY2sgY2FuIGJlIHVzZWQsIGZvciBleGFtcGxlLCB0byBwcm92aWRlIGFcbiAgICAgKiBgRWRpdGFibGVOYW1lYCBjb21wb25lbnQgZm9yIGVkaXRpbmcgY29sdW1uIG5hbWVzLlxuICAgICAqXG4gICAgICogSWYgeW91IGRlZmluZSB0aGlzIGNhbGxiYWNrLCB3ZSByZWNvbW1lbmQgeW91IGFsc28gc2V0XG4gICAgICogYHVzZUludGVyYWN0aW9uQmFyYCB0byB0cnVlLCB0byBhdm9pZCBpc3N1ZXMgd2l0aCBtZW51cyBvciBzZWxlY3Rpb24uXG4gICAgICovXG4gICAgcmVuZGVyTmFtZT86IChuYW1lOiBzdHJpbmcpID0+IFJlYWN0LlJlYWN0RWxlbWVudDxJUHJvcHM+O1xuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgYWRkcyBhbiBpbnRlcmFjdGlvbiBiYXIgb24gdG9wIG9mIHRoZSBjb2x1bW4gaGVhZGVyIGNlbGwgYW5kXG4gICAgICogbW92ZXMgdGhlIG1lbnUgYW5kIHNlbGVjdGlvbiBpbnRlcmFjdGlvbnMgdG8gaXQuXG4gICAgICpcbiAgICAgKiBUaGlzIGFsbG93cyB5b3UgdG8gb3ZlcnJpZGUgdGhlIHJlbmRlcmluZyBvZiBjb2x1bW4gbmFtZSB3aXRob3V0IHdvcnJ5XG4gICAgICogb2YgY2xvYmJlcmluZyB0aGUgbWVudSBvciBvdGhlciBpbnRlcmFjdGlvbnMuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHVzZUludGVyYWN0aW9uQmFyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uSGVhZGVyQ2VsbFByb3BzIGV4dGVuZHMgSUNvbHVtbk5hbWVQcm9wcywgSVByb3BzIHtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB3aWxsIGFwcGx5IHRoZSBhY3RpdmUgY2xhc3MgdG8gdGhlIGhlYWRlciB0byBpbmRpY2F0ZSBpdCBpc1xuICAgICAqIHBhcnQgb2YgYW4gZXh0ZXJuYWwgb3BlcmF0aW9uLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBpc0FjdGl2ZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgaWYgdGhlIGZ1bGwgY29sdW1uIGlzIHBhcnQgb2YgYSBzZWxlY3Rpb24uXG4gICAgICovXG4gICAgaXNDb2x1bW5TZWxlY3RlZD86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBBbiBlbGVtZW50LCBsaWtlIGEgYDxNZW51PmAsIGhhdCBpcyBkaXNwbGF5ZWQgYnkgY2xpY2tpbmcgdGhlIGJ1dHRvblxuICAgICAqIHRvIHRoZSByaWdodCBvZiB0aGUgaGVhZGVyIG5hbWUsIG9yIGJ5IHJpZ2h0LWNsaWNraW5nIGFueXdoZXJlIGluIHRoZVxuICAgICAqIGhlYWRlci5cbiAgICAgKi9cbiAgICBtZW51PzogSlNYLkVsZW1lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWNvbiBuYW1lIGZvciB0aGUgaGVhZGVyJ3MgbWVudSBidXR0b24uXG4gICAgICogQGRlZmF1bHQgJ21vcmUnXG4gICAgICovXG4gICAgbWVudUljb25OYW1lPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQ1NTIHN0eWxlcyBmb3IgdGhlIHRvcCBsZXZlbCBlbGVtZW50XG4gICAgICovXG4gICAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuXG4gICAgLyoqXG4gICAgICogQSBgUmVzaXplSGFuZGxlYCBSZWFjdCBjb21wb25lbnQgdGhhdCBhbGxvd3MgdXNlcnMgdG8gZHJhZy1yZXNpemUgdGhlXG4gICAgICogaGVhZGVyLiBJZiB5b3UgYXJlIHdyYXBwaW5nIHlvdXIgYENvbHVtbkhlYWRlckNlbGxgIGluIHlvdXIgb3duXG4gICAgICogY29tcG9uZW50LCB5b3UnbGwgbmVlZCB0byBwYXNzIHRoaXMgdGhyb3VnaCBmb3IgcmVzaXppbmcgdG8gd29yay5cbiAgICAgKi9cbiAgICByZXNpemVIYW5kbGU/OiBSZXNpemVIYW5kbGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtbkhlYWRlclN0YXRlIHtcbiAgICBpc0FjdGl2ZTogYm9vbGVhbjtcbn1cblxuY29uc3QgSEVBREVSX0NMQVNTTkFNRSA9IFwiYnAtdGFibGUtaGVhZGVyXCI7XG5jb25zdCBIRUFERVJfQ09MVU1OX05BTUVfQ0xBU1NOQU1FID0gXCJicC10YWJsZS1jb2x1bW4tbmFtZVwiO1xuY29uc3QgSEVBREVSX0NPTlRFTlRfQ0xBU1NOQU1FID0gXCJicC10YWJsZS1oZWFkZXItY29udGVudFwiO1xuY29uc3QgSEVBREVSX0NPTFVNTl9OQU1FX1RFWFRfQ0xBU1NOQU1FID0gXCJicC10YWJsZS1jb2x1bW4tbmFtZS10ZXh0XCI7XG5jb25zdCBIRUFERVJfSU5URVJBQ1RJT05fQkFSX0NMQVNTTkFNRSA9IFwiYnAtdGFibGUtaW50ZXJhY3Rpb24tYmFyXCI7XG5cbmV4cG9ydCBjbGFzcyBIb3Jpem9udGFsQ2VsbERpdmlkZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8e30sIHt9PiB7XG4gICAgcHVibGljIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwiYnAtdGFibGUtaG9yaXpvbnRhbC1jZWxsLWRpdmlkZXJcIiAvPjtcbiAgICB9XG59XG5cbkBDb250ZXh0TWVudVRhcmdldFxuZXhwb3J0IGNsYXNzIENvbHVtbkhlYWRlckNlbGwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SUNvbHVtbkhlYWRlckNlbGxQcm9wcywgSUNvbHVtbkhlYWRlclN0YXRlPiB7XG4gICAgcHVibGljIHN0YXRpYyBkZWZhdWx0UHJvcHM6IElDb2x1bW5IZWFkZXJDZWxsUHJvcHMgPSB7XG4gICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcbiAgICAgICAgbWVudUljb25OYW1lOiBcIm1vcmVcIixcbiAgICAgICAgdXNlSW50ZXJhY3Rpb25CYXI6IGZhbHNlLFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBkZXRlcm1pbmVzIGlmIGEgTW91c2VFdmVudCB3YXMgdHJpZ2dlcmVkIG9uIGEgdGFyZ2V0IHRoYXRcbiAgICAgKiBzaG91bGQgYmUgdXNlZCBhcyB0aGUgaGVhZGVyIGNsaWNrL2RyYWcgdGFyZ2V0LiBUaGlzIGVuYWJsZXMgdXNlcnMgb2ZcbiAgICAgKiB0aGlzIGNvbXBvbmVudCB0byByZW5kZXIgZnVsbCBpbnRlcmFjdGl2ZSBjb21wb25lbnRzIGluIHRoZWlyIGhlYWRlclxuICAgICAqIGNlbGxzIHdpdGhvdXQgd29ycnkgb2Ygc2VsZWN0aW9uIG9yIHJlc2l6ZSBvcGVyYXRpb25zIGZyb20gY2FwdHVyaW5nXG4gICAgICogdGhlaXIgbW91c2UgZXZlbnRzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaXNIZWFkZXJNb3VzZVRhcmdldCh0YXJnZXQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKEhFQURFUl9DTEFTU05BTUUpXG4gICAgICAgICAgICB8fCB0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKEhFQURFUl9DT0xVTU5fTkFNRV9DTEFTU05BTUUpXG4gICAgICAgICAgICB8fCB0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKEhFQURFUl9JTlRFUkFDVElPTl9CQVJfQ0xBU1NOQU1FKVxuICAgICAgICAgICAgfHwgdGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucyhIRUFERVJfQ09OVEVOVF9DTEFTU05BTUUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0ZSA9IHtcbiAgICAgICAgaXNBY3RpdmU6IGZhbHNlLFxuICAgIH07XG5cbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IGNsYXNzTmFtZSwgaXNBY3RpdmUsIGlzQ29sdW1uU2VsZWN0ZWQsIHJlc2l6ZUhhbmRsZSwgc3R5bGUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzTmFtZXMoSEVBREVSX0NMQVNTTkFNRSwge1xuICAgICAgICAgICAgXCJicC10YWJsZS1oZWFkZXItYWN0aXZlXCI6IGlzQWN0aXZlIHx8IHRoaXMuc3RhdGUuaXNBY3RpdmUsXG4gICAgICAgICAgICBcImJwLXRhYmxlLWhlYWRlci1zZWxlY3RlZFwiOiBpc0NvbHVtblNlbGVjdGVkLFxuICAgICAgICB9LCBjbGFzc05hbWUpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXN9IHN0eWxlPXtzdHlsZX0+XG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVyTmFtZSgpfVxuICAgICAgICAgICAgICAgIHt0aGlzLm1heWJlUmVuZGVyQ29udGVudCgpfVxuICAgICAgICAgICAgICAgIHtyZXNpemVIYW5kbGV9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVuZGVyQ29udGV4dE1lbnUoX2V2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50Pikge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5tZW51O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyTmFtZSgpIHtcbiAgICAgICAgY29uc3QgeyB1c2VJbnRlcmFjdGlvbkJhciwgbmFtZSwgcmVuZGVyTmFtZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3QgZHJvcGRvd25NZW51ID0gdGhpcy5tYXliZVJlbmRlckRyb3Bkb3duTWVudSgpO1xuICAgICAgICBjb25zdCBkZWZhdWx0TmFtZSA9ICg8ZGl2IGNsYXNzTmFtZT1cImJwLXRhYmxlLXRydW5jYXRlZC10ZXh0XCI+e25hbWV9PC9kaXY+KTtcbiAgICAgICAgY29uc3QgbmFtZUNvbXBvbmVudCA9IChyZW5kZXJOYW1lID09IG51bGwpID8gZGVmYXVsdE5hbWUgOiByZW5kZXJOYW1lKG5hbWUpO1xuICAgICAgICBpZiAodXNlSW50ZXJhY3Rpb25CYXIpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e0hFQURFUl9DT0xVTU5fTkFNRV9DTEFTU05BTUV9IHRpdGxlPXtuYW1lfT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e0hFQURFUl9JTlRFUkFDVElPTl9CQVJfQ0xBU1NOQU1FfT57ZHJvcGRvd25NZW51fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbENlbGxEaXZpZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtIRUFERVJfQ09MVU1OX05BTUVfVEVYVF9DTEFTU05BTUV9PntuYW1lQ29tcG9uZW50fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e0hFQURFUl9DT0xVTU5fTkFNRV9DTEFTU05BTUV9IHRpdGxlPXtuYW1lfT5cbiAgICAgICAgICAgICAgICAgICAge2Ryb3Bkb3duTWVudX1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e0hFQURFUl9DT0xVTU5fTkFNRV9URVhUX0NMQVNTTkFNRX0+e25hbWVDb21wb25lbnR9PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYXliZVJlbmRlckNvbnRlbnQoKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmNoaWxkcmVuID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtIRUFERVJfQ09OVEVOVF9DTEFTU05BTUV9PlxuICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYXliZVJlbmRlckRyb3Bkb3duTWVudSgpIHtcbiAgICAgICAgY29uc3QgeyBtZW51LCBtZW51SWNvbk5hbWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgaWYgKG1lbnUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBvcG92ZXJUYXJnZXRDbGFzc2VzID0gY2xhc3NOYW1lcyhcInB0LWljb24tc3RhbmRhcmRcIiwgQ2xhc3Nlcy5pY29uQ2xhc3MobWVudUljb25OYW1lKSk7XG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gW3tcbiAgICAgICAgICAgIGF0dGFjaG1lbnQ6IFwidG9nZXRoZXJcIixcbiAgICAgICAgICAgIHBpbjogdHJ1ZSxcbiAgICAgICAgICAgIHRvOiBcIndpbmRvd1wiLFxuICAgICAgICB9XTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFBvcG92ZXJcbiAgICAgICAgICAgICAgICBjb25zdHJhaW50cz17Y29uc3RyYWludHN9XG4gICAgICAgICAgICAgICAgY29udGVudD17bWVudX1cbiAgICAgICAgICAgICAgICBwb3NpdGlvbj17UG9zaXRpb24uQk9UVE9NfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJwLXRhYmxlLXRoLW1lbnVcIlxuICAgICAgICAgICAgICAgIHBvcG92ZXJEaWRPcGVuPXt0aGlzLmdldFBvcG92ZXJTdGF0ZUNoYW5nZUhhbmRsZXIodHJ1ZSl9XG4gICAgICAgICAgICAgICAgcG9wb3ZlcldpbGxDbG9zZT17dGhpcy5nZXRQb3BvdmVyU3RhdGVDaGFuZ2VIYW5kbGVyKGZhbHNlKX1cbiAgICAgICAgICAgICAgICB1c2VTbWFydEFycm93UG9zaXRpb25pbmc9e3RydWV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtwb3BvdmVyVGFyZ2V0Q2xhc3Nlc30vPlxuICAgICAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9wb3ZlclN0YXRlQ2hhbmdlSGFuZGxlciA9IChpc0FjdGl2ZTogYm9vbGVhbikgPT4gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNBY3RpdmUgfSk7XG4gICAgfTtcbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWFkZXJzL2NvbHVtbkhlYWRlckNlbGwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHOzs7Ozs7Ozs7Ozs7O0FBRUgscUJBQXNFLG1CQUFtQixDQUFDLENBQUE7QUFDMUYsSUFBWSxVQUFVLFdBQU0sWUFBWSxDQUFDLENBQUE7QUFDekMsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUFpRi9CLElBQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUM7QUFDM0MsSUFBTSw0QkFBNEIsR0FBRyxzQkFBc0IsQ0FBQztBQUM1RCxJQUFNLHdCQUF3QixHQUFHLHlCQUF5QixDQUFDO0FBQzNELElBQU0saUNBQWlDLEdBQUcsMkJBQTJCLENBQUM7QUFDdEUsSUFBTSxnQ0FBZ0MsR0FBRywwQkFBMEIsQ0FBQztBQUVwRTtJQUNJLE1BQU0sQ0FBQyxxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFDLGtDQUFrQyxFQUFHLENBQUM7QUFDaEUsQ0FBQztBQUZlLDZCQUFxQix3QkFFcEMsQ0FBQTtBQUdEO0lBQXNDLG9DQUEyRDtJQUFqRztRQUFBLGlCQWdIQztRQWhIcUMsOEJBQTJEO1FBcUJ0RixVQUFLLEdBQUc7WUFDWCxRQUFRLEVBQUUsS0FBSztTQUNsQixDQUFDO1FBc0ZNLGlDQUE0QixHQUFHLFVBQUMsUUFBaUIsSUFBSyxPQUFBO1lBQzFELEtBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxrQkFBUSxFQUFFLENBQUMsQ0FBQztRQUNoQyxDQUFDLEVBRjZELENBRTdELENBQUE7SUFDTCxDQUFDO0lBekdHOzs7Ozs7T0FNRztJQUNXLG9DQUFtQixHQUFqQyxVQUFrQyxNQUFtQjtRQUNqRCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7ZUFDM0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsNEJBQTRCLENBQUM7ZUFDdkQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENB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O1FBQzdGLElBQU0sV0FBVyxHQUFHLENBQUM7Z0JBQ2pCLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixHQUFHLEVBQUUsSUFBSTtnQkFDVCxFQUFFLEVBQUUsUUFBUTthQUNmLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxDQUNILG9CQUFDLGNBQU8sR0FDSixXQUFXLEVBQUUsV0FBWSxFQUN6QixPQUFPLEVBQUUsSUFBSyxFQUNkLFFBQVEsRUFBRSxlQUFRLENBQUMsTUFBTyxFQUMxQixTQUFTLEVBQUMsa0JBQWtCLEVBQzVCLGNBQWMsRUFBRSxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFFLEVBQ3hELGdCQUFnQixFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLENBQUUsRUFDM0Qsd0JBQXdCLEVBQUUsSUFBSztZQUUvQixxQkFBQyxJQUFJLElBQUMsU0FBUyxFQUFFLG9CQUFxQixFQUFFO1NBQ2xDLENBQ2IsQ0FBQztJQUNOLENBQUM7SUExR2EsNkJBQVksR0FBMkI7UUFDakQsUUFBUSxFQUFFLEtBQUs7UUFDZixZQUFZLEVBQUUsTUFBTTtRQUNwQixpQkFBaUIsRUFBRSxLQUFLO0tBQzNCLENBQUM7SUFOTjtRQUFDLHdCQUFpQjt3QkFBQTtJQWlIbEIsdUJBQUM7QUFBRCxDQWhIQSxBQWdIQyxDQWhIcUMsS0FBSyxDQUFDLFNBQVMsR0FnSHBEO0FBaEhZLHdCQUFnQixtQkFnSDVCLENBQUEiLCJmaWxlIjoiaGVhZGVycy9jb2x1bW5IZWFkZXJDZWxsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMyBMaWNlbnNlIGFzIG1vZGlmaWVkICh0aGUg4oCcTGljZW5zZeKAnSk7IHlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIGxpY2Vuc2UgYXQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKiBhbmQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9QQVRFTlRTXG4gKi9cblxuaW1wb3J0IHsgQ2xhc3NlcywgQ29udGV4dE1lbnVUYXJnZXQsIElQcm9wcywgUG9wb3ZlciwgUG9zaXRpb24gfSBmcm9tIFwiQGJsdWVwcmludGpzL2NvcmVcIjtcbmltcG9ydCAqIGFzIGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgUmVzaXplSGFuZGxlIH0gZnJvbSBcIi4uL2ludGVyYWN0aW9ucy9yZXNpemVIYW5kbGVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJQ29sdW1uSGVhZGVyUmVuZGVyZXIge1xuICAgIChjb2x1bW5JbmRleDogbnVtYmVyKTogUmVhY3QuUmVhY3RFbGVtZW50PElDb2x1bW5IZWFkZXJDZWxsUHJvcHM+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW5OYW1lUHJvcHMge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyIG9mIHRoZSBjb2x1bW4uXG4gICAgICovXG4gICAgbmFtZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEEgY2FsbGJhY2sgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbmFtZSByZW5kZXJpbmcgYmVoYXZpb3IuIFRoZSBkZWZhdWx0XG4gICAgICogYmVoYXZpb3IgaXMgdG8gc2ltcGx5IHVzZSB0aGUgYENvbHVtbkhlYWRlckNlbGxgcyBuYW1lIHByb3AuXG4gICAgICpcbiAgICAgKiBUaGlzIHJlbmRlciBjYWxsYmFjayBjYW4gYmUgdXNlZCwgZm9yIGV4YW1wbGUsIHRvIHByb3ZpZGUgYVxuICAgICAqIGBFZGl0YWJsZU5hbWVgIGNvbXBvbmVudCBmb3IgZWRpdGluZyBjb2x1bW4gbmFtZXMuXG4gICAgICpcbiAgICAgKiBJZiB5b3UgZGVmaW5lIHRoaXMgY2FsbGJhY2ssIHdlIHJlY29tbWVuZCB5b3UgYWxzbyBzZXRcbiAgICAgKiBgdXNlSW50ZXJhY3Rpb25CYXJgIHRvIHRydWUsIHRvIGF2b2lkIGlzc3VlcyB3aXRoIG1lbnVzIG9yIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICByZW5kZXJOYW1lPzogKG5hbWU6IHN0cmluZykgPT4gUmVhY3QuUmVhY3RFbGVtZW50PElQcm9wcz47XG5cbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBhZGRzIGFuIGludGVyYWN0aW9uIGJhciBvbiB0b3Agb2YgdGhlIGNvbHVtbiBoZWFkZXIgY2VsbCBhbmRcbiAgICAgKiBtb3ZlcyB0aGUgbWVudSBhbmQgc2VsZWN0aW9uIGludGVyYWN0aW9ucyB0byBpdC5cbiAgICAgKlxuICAgICAqIFRoaXMgYWxsb3dzIHlvdSB0byBvdmVycmlkZSB0aGUgcmVuZGVyaW5nIG9mIGNvbHVtbiBuYW1lIHdpdGhvdXQgd29ycnlcbiAgICAgKiBvZiBjbG9iYmVyaW5nIHRoZSBtZW51IG9yIG90aGVyIGludGVyYWN0aW9ucy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgdXNlSW50ZXJhY3Rpb25CYXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2x1bW5IZWFkZXJDZWxsUHJvcHMgZXh0ZW5kcyBJQ29sdW1uTmFtZVByb3BzLCBJUHJvcHMge1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHdpbGwgYXBwbHkgdGhlIGFjdGl2ZSBjbGFzcyB0byB0aGUgaGVhZGVyIHRvIGluZGljYXRlIGl0IGlzXG4gICAgICogcGFydCBvZiBhbiBleHRlcm5hbCBvcGVyYXRpb24uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIGlzQWN0aXZlPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFNwZWNpZmllcyBpZiB0aGUgZnVsbCBjb2x1bW4gaXMgcGFydCBvZiBhIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICBpc0NvbHVtblNlbGVjdGVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEFuIGVsZW1lbnQsIGxpa2UgYSBgPE1lbnU+YCwgdGhhdCBpcyBkaXNwbGF5ZWQgYnkgY2xpY2tpbmcgdGhlIGJ1dHRvblxuICAgICAqIHRvIHRoZSByaWdodCBvZiB0aGUgaGVhZGVyIG5hbWUsIG9yIGJ5IHJpZ2h0LWNsaWNraW5nIGFueXdoZXJlIGluIHRoZVxuICAgICAqIGhlYWRlci5cbiAgICAgKi9cbiAgICBtZW51PzogSlNYLkVsZW1lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaWNvbiBuYW1lIGZvciB0aGUgaGVhZGVyJ3MgbWVudSBidXR0b24uXG4gICAgICogQGRlZmF1bHQgJ21vcmUnXG4gICAgICovXG4gICAgbWVudUljb25OYW1lPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQ1NTIHN0eWxlcyBmb3IgdGhlIHRvcCBsZXZlbCBlbGVtZW50XG4gICAgICovXG4gICAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuXG4gICAgLyoqXG4gICAgICogQSBgUmVzaXplSGFuZGxlYCBSZWFjdCBjb21wb25lbnQgdGhhdCBhbGxvd3MgdXNlcnMgdG8gZHJhZy1yZXNpemUgdGhlXG4gICAgICogaGVhZGVyLiBJZiB5b3UgYXJlIHdyYXBwaW5nIHlvdXIgYENvbHVtbkhlYWRlckNlbGxgIGluIHlvdXIgb3duXG4gICAgICogY29tcG9uZW50LCB5b3UnbGwgbmVlZCB0byBwYXNzIHRoaXMgdGhyb3VnaCBmb3IgcmVzaXppbmcgdG8gd29yay5cbiAgICAgKi9cbiAgICByZXNpemVIYW5kbGU/OiBSZXNpemVIYW5kbGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbHVtbkhlYWRlclN0YXRlIHtcbiAgICBpc0FjdGl2ZTogYm9vbGVhbjtcbn1cblxuY29uc3QgSEVBREVSX0NMQVNTTkFNRSA9IFwiYnAtdGFibGUtaGVhZGVyXCI7XG5jb25zdCBIRUFERVJfQ09MVU1OX05BTUVfQ0xBU1NOQU1FID0gXCJicC10YWJsZS1jb2x1bW4tbmFtZVwiO1xuY29uc3QgSEVBREVSX0NPTlRFTlRfQ0xBU1NOQU1FID0gXCJicC10YWJsZS1oZWFkZXItY29udGVudFwiO1xuY29uc3QgSEVBREVSX0NPTFVNTl9OQU1FX1RFWFRfQ0xBU1NOQU1FID0gXCJicC10YWJsZS1jb2x1bW4tbmFtZS10ZXh0XCI7XG5jb25zdCBIRUFERVJfSU5URVJBQ1RJT05fQkFSX0NMQVNTTkFNRSA9IFwiYnAtdGFibGUtaW50ZXJhY3Rpb24tYmFyXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBIb3Jpem9udGFsQ2VsbERpdmlkZXIoKTogSlNYLkVsZW1lbnQge1xuICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cImJwLXRhYmxlLWhvcml6b250YWwtY2VsbC1kaXZpZGVyXCIgLz47XG59XG5cbkBDb250ZXh0TWVudVRhcmdldFxuZXhwb3J0IGNsYXNzIENvbHVtbkhlYWRlckNlbGwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SUNvbHVtbkhlYWRlckNlbGxQcm9wcywgSUNvbHVtbkhlYWRlclN0YXRlPiB7XG4gICAgcHVibGljIHN0YXRpYyBkZWZhdWx0UHJvcHM6IElDb2x1bW5IZWFkZXJDZWxsUHJvcHMgPSB7XG4gICAgICAgIGlzQWN0aXZlOiBmYWxzZSxcbiAgICAgICAgbWVudUljb25OYW1lOiBcIm1vcmVcIixcbiAgICAgICAgdXNlSW50ZXJhY3Rpb25CYXI6IGZhbHNlLFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBkZXRlcm1pbmVzIGlmIGEgTW91c2VFdmVudCB3YXMgdHJpZ2dlcmVkIG9uIGEgdGFyZ2V0IHRoYXRcbiAgICAgKiBzaG91bGQgYmUgdXNlZCBhcyB0aGUgaGVhZGVyIGNsaWNrL2RyYWcgdGFyZ2V0LiBUaGlzIGVuYWJsZXMgdXNlcnMgb2ZcbiAgICAgKiB0aGlzIGNvbXBvbmVudCB0byByZW5kZXIgZnVsbCBpbnRlcmFjdGl2ZSBjb21wb25lbnRzIGluIHRoZWlyIGhlYWRlclxuICAgICAqIGNlbGxzIHdpdGhvdXQgd29ycnkgb2Ygc2VsZWN0aW9uIG9yIHJlc2l6ZSBvcGVyYXRpb25zIGZyb20gY2FwdHVyaW5nXG4gICAgICogdGhlaXIgbW91c2UgZXZlbnRzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaXNIZWFkZXJNb3VzZVRhcmdldCh0YXJnZXQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKEhFQURFUl9DTEFTU05BTUUpXG4gICAgICAgICAgICB8fCB0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKEhFQURFUl9DT0xVTU5fTkFNRV9DTEFTU05BTUUpXG4gICAgICAgICAgICB8fCB0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKEhFQURFUl9JTlRFUkFDVElPTl9CQVJfQ0xBU1NOQU1FKVxuICAgICAgICAgICAgfHwgdGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucyhIRUFERVJfQ09OVEVOVF9DTEFTU05BTUUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0ZSA9IHtcbiAgICAgICAgaXNBY3RpdmU6IGZhbHNlLFxuICAgIH07XG5cbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IGNsYXNzTmFtZSwgaXNBY3RpdmUsIGlzQ29sdW1uU2VsZWN0ZWQsIHJlc2l6ZUhhbmRsZSwgc3R5bGUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzTmFtZXMoSEVBREVSX0NMQVNTTkFNRSwge1xuICAgICAgICAgICAgXCJicC10YWJsZS1oZWFkZXItYWN0aXZlXCI6IGlzQWN0aXZlIHx8IHRoaXMuc3RhdGUuaXNBY3RpdmUsXG4gICAgICAgICAgICBcImJwLXRhYmxlLWhlYWRlci1zZWxlY3RlZFwiOiBpc0NvbHVtblNlbGVjdGVkLFxuICAgICAgICB9LCBjbGFzc05hbWUpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXN9IHN0eWxlPXtzdHlsZX0+XG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVyTmFtZSgpfVxuICAgICAgICAgICAgICAgIHt0aGlzLm1heWJlUmVuZGVyQ29udGVudCgpfVxuICAgICAgICAgICAgICAgIHtyZXNpemVIYW5kbGV9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVuZGVyQ29udGV4dE1lbnUoX2V2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50Pikge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5tZW51O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyTmFtZSgpIHtcbiAgICAgICAgY29uc3QgeyB1c2VJbnRlcmFjdGlvbkJhciwgbmFtZSwgcmVuZGVyTmFtZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3QgZHJvcGRvd25NZW51ID0gdGhpcy5tYXliZVJlbmRlckRyb3Bkb3duTWVudSgpO1xuICAgICAgICBjb25zdCBkZWZhdWx0TmFtZSA9ICg8ZGl2IGNsYXNzTmFtZT1cImJwLXRhYmxlLXRydW5jYXRlZC10ZXh0XCI+e25hbWV9PC9kaXY+KTtcbiAgICAgICAgY29uc3QgbmFtZUNvbXBvbmVudCA9IChyZW5kZXJOYW1lID09IG51bGwpID8gZGVmYXVsdE5hbWUgOiByZW5kZXJOYW1lKG5hbWUpO1xuICAgICAgICBpZiAodXNlSW50ZXJhY3Rpb25CYXIpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e0hFQURFUl9DT0xVTU5fTkFNRV9DTEFTU05BTUV9IHRpdGxlPXtuYW1lfT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e0hFQURFUl9JTlRFUkFDVElPTl9CQVJfQ0xBU1NOQU1FfT57ZHJvcGRvd25NZW51fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8SG9yaXpvbnRhbENlbGxEaXZpZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtIRUFERVJfQ09MVU1OX05BTUVfVEVYVF9DTEFTU05BTUV9PntuYW1lQ29tcG9uZW50fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e0hFQURFUl9DT0xVTU5fTkFNRV9DTEFTU05BTUV9IHRpdGxlPXtuYW1lfT5cbiAgICAgICAgICAgICAgICAgICAge2Ryb3Bkb3duTWVudX1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e0hFQURFUl9DT0xVTU5fTkFNRV9URVhUX0NMQVNTTkFNRX0+e25hbWVDb21wb25lbnR9PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYXliZVJlbmRlckNvbnRlbnQoKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLmNoaWxkcmVuID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtIRUFERVJfQ09OVEVOVF9DTEFTU05BTUV9PlxuICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYXliZVJlbmRlckRyb3Bkb3duTWVudSgpIHtcbiAgICAgICAgY29uc3QgeyBtZW51LCBtZW51SWNvbk5hbWUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgaWYgKG1lbnUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBvcG92ZXJUYXJnZXRDbGFzc2VzID0gY2xhc3NOYW1lcyhcInB0LWljb24tc3RhbmRhcmRcIiwgQ2xhc3Nlcy5pY29uQ2xhc3MobWVudUljb25OYW1lKSk7XG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gW3tcbiAgICAgICAgICAgIGF0dGFjaG1lbnQ6IFwidG9nZXRoZXJcIixcbiAgICAgICAgICAgIHBpbjogdHJ1ZSxcbiAgICAgICAgICAgIHRvOiBcIndpbmRvd1wiLFxuICAgICAgICB9XTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFBvcG92ZXJcbiAgICAgICAgICAgICAgICBjb25zdHJhaW50cz17Y29uc3RyYWludHN9XG4gICAgICAgICAgICAgICAgY29udGVudD17bWVudX1cbiAgICAgICAgICAgICAgICBwb3NpdGlvbj17UG9zaXRpb24uQk9UVE9NfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJwLXRhYmxlLXRoLW1lbnVcIlxuICAgICAgICAgICAgICAgIHBvcG92ZXJEaWRPcGVuPXt0aGlzLmdldFBvcG92ZXJTdGF0ZUNoYW5nZUhhbmRsZXIodHJ1ZSl9XG4gICAgICAgICAgICAgICAgcG9wb3ZlcldpbGxDbG9zZT17dGhpcy5nZXRQb3BvdmVyU3RhdGVDaGFuZ2VIYW5kbGVyKGZhbHNlKX1cbiAgICAgICAgICAgICAgICB1c2VTbWFydEFycm93UG9zaXRpb25pbmc9e3RydWV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtwb3BvdmVyVGFyZ2V0Q2xhc3Nlc30vPlxuICAgICAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9wb3ZlclN0YXRlQ2hhbmdlSGFuZGxlciA9IChpc0FjdGl2ZTogYm9vbGVhbikgPT4gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNBY3RpdmUgfSk7XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

@@ -1,5 +0,6 @@

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -6,0 +7,0 @@ import { IIntentProps, IProps } from "@blueprintjs/core";

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -27,2 +29,2 @@ "use strict";

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWFkZXJzL2VkaXRhYmxlTmFtZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHOzs7Ozs7O0FBRUgscUJBQW1ELG1CQUFtQixDQUFDLENBQUE7QUFDdkUsSUFBWSxVQUFVLFdBQU0sWUFBWSxDQUFDLENBQUE7QUFDekMsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUE4Qi9CO0lBQWtDLGdDQUF1QztJQUF6RTtRQUFrQyw4QkFBdUM7SUFnQnpFLENBQUM7SUFmVSw2QkFBTSxHQUFiO1FBQ0ksSUFBQSxlQUE2RSxFQUFyRSx3QkFBUyxFQUFFLGtCQUFNLEVBQUUsY0FBSSxFQUFFLHNCQUFRLEVBQUUsc0JBQVEsRUFBRSx3QkFBUyxDQUFnQjtRQUM5RSxNQUFNLENBQUMsQ0FDSCxvQkFBQyxtQkFBWSxHQUNULFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUyxFQUFFLHdCQUF3QixDQUFFLEVBQzNELFlBQVksRUFBRSxJQUFLLEVBQ25CLE1BQU0sRUFBRSxNQUFPLEVBQ2YsUUFBUSxFQUFFLFFBQVMsRUFDbkIsUUFBUSxFQUFFLFFBQVMsRUFDbkIsU0FBUyxFQUFFLFNBQVUsRUFDckIsV0FBVyxFQUFDLEVBQUUsRUFDZCxnQkFBZ0IsRUFBRSxJQUFLLEVBQ3pCLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFDTCxtQkFBQztBQUFELENBaEJBLEFBZ0JDLENBaEJpQyxLQUFLLENBQUMsU0FBUyxHQWdCaEQ7QUFoQlksb0JBQVksZUFnQnhCLENBQUEiLCJmaWxlIjoiaGVhZGVycy9lZGl0YWJsZU5hbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAtIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbmltcG9ydCB7IEVkaXRhYmxlVGV4dCwgSUludGVudFByb3BzLCBJUHJvcHMgfSBmcm9tIFwiQGJsdWVwcmludGpzL2NvcmVcIjtcbmltcG9ydCAqIGFzIGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElFZGl0YWJsZU5hbWVQcm9wcyBleHRlbmRzIElJbnRlbnRQcm9wcywgSVByb3BzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBkaXNwbGF5ZWQgaW4gdGhlIHRleHQgYm94LiBCZSBzdXJlIHRvIHVwZGF0ZSB0aGlzIHZhbHVlIHdoZW5cbiAgICAgKiByZW5kZXJpbmcgdGhpcyBjb21wb25lbnQgYWZ0ZXIgYSBjb25maXJtZWQgY2hhbmdlLlxuICAgICAqL1xuICAgIG5hbWU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBBIGxpc3RlbmVyIHRoYXQgaXMgdHJpZ2dlcmVkIGlmIHRoZSB1c2VyIGNhbmNlbHMgdGhlIGVkaXQuIFRoaXMgaXNcbiAgICAgKiBpbXBvcnRhbnQgdG8gbGlzdGVuIHRvIGlmIHlvdSBhcmUgZG9pbmcgYW55dGhpbmcgd2l0aCBvbkNoYW5nZSBldmVudHMsXG4gICAgICogc2luY2UgeW91J2xsIGxpa2VseSB3YW50IHRvIHJldmVydCB3aGF0ZXZlciBjaGFuZ2VzIHlvdSBtYWRlLlxuICAgICAqL1xuICAgIG9uQ2FuY2VsPzogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBBIGxpc3RlbmVyIHRoYXQgaXMgdHJpZ2dlcmVkIGFzIHNvb24gYXMgdGhlIGVkaXRhYmxlIG5hbWUgaXMgbW9kaWZpZWQuXG4gICAgICogVGhpcyBjYW4gYmUgZHVlLCBmb3IgZXhhbXBsZSwgdG8ga2V5Ym9hcmQgaW5wdXQgb3IgdGhlIGNsaXBib2FyZC5cbiAgICAgKi9cbiAgICBvbkNoYW5nZT86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQSBsaXN0ZW5lciB0aGF0IGlzIHRyaWdnZXJlZCBvbmNlIHRoZSBlZGl0aW5nIGlzIGNvbmZpcm1lZC4gVGhpcyBpc1xuICAgICAqIHVzdWFsbHkgZHVlIHRvIHRoZSA8a2JkIGNsYXNzPVwicHQta2V5XCI+cmV0dXJuPC9rYmQ+IChvclxuICAgICAqIDxrYmQgY2xhc3M9XCJwdC1rZXlcIj5lbnRlcjwva2JkPikga2V5IHByZXNzLlxuICAgICAqL1xuICAgIG9uQ29uZmlybT86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgRWRpdGFibGVOYW1lIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElFZGl0YWJsZU5hbWVQcm9wcywge30+IHtcbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IGNsYXNzTmFtZSwgaW50ZW50LCBuYW1lLCBvbkNhbmNlbCwgb25DaGFuZ2UsIG9uQ29uZmlybSB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxFZGl0YWJsZVRleHRcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3NOYW1lLCBcImJwLXRhYmxlLWVkaXRhYmxlLW5hbWVcIil9XG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtuYW1lfVxuICAgICAgICAgICAgICAgIGludGVudD17aW50ZW50fVxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsPXtvbkNhbmNlbH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgb25Db25maXJtPXtvbkNvbmZpcm19XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgICAgICAgICAgIHNlbGVjdEFsbE9uRm9jdXM9e3RydWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWFkZXJzL2VkaXRhYmxlTmFtZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7Ozs7Ozs7QUFFSCxxQkFBbUQsbUJBQW1CLENBQUMsQ0FBQTtBQUN2RSxJQUFZLFVBQVUsV0FBTSxZQUFZLENBQUMsQ0FBQTtBQUN6QyxJQUFZLEtBQUssV0FBTSxPQUFPLENBQUMsQ0FBQTtBQThCL0I7SUFBa0MsZ0NBQXVDO0lBQXpFO1FBQWtDLDhCQUF1QztJQWdCekUsQ0FBQztJQWZVLDZCQUFNLEdBQWI7UUFDSSxJQUFBLGVBQTZFLEVBQXJFLHdCQUFTLEVBQUUsa0JBQU0sRUFBRSxjQUFJLEVBQUUsc0JBQVEsRUFBRSxzQkFBUSxFQUFFLHdCQUFTLENBQWdCO1FBQzlFLE1BQU0sQ0FBQyxDQUNILG9CQUFDLG1CQUFZLEdBQ1QsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUUsRUFDM0QsWUFBWSxFQUFFLElBQUssRUFDbkIsTUFBTSxFQUFFLE1BQU8sRUFDZixRQUFRLEVBQUUsUUFBUyxFQUNuQixRQUFRLEVBQUUsUUFBUyxFQUNuQixTQUFTLEVBQUUsU0FBVSxFQUNyQixXQUFXLEVBQUMsRUFBRSxFQUNkLGdCQUFnQixFQUFFLElBQUssRUFDekIsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUNMLG1CQUFDO0FBQUQsQ0FoQkEsQUFnQkMsQ0FoQmlDLEtBQUssQ0FBQyxTQUFTLEdBZ0JoRDtBQWhCWSxvQkFBWSxlQWdCeEIsQ0FBQSIsImZpbGUiOiJoZWFkZXJzL2VkaXRhYmxlTmFtZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQlNELTMgTGljZW5zZSBhcyBtb2RpZmllZCAodGhlIOKAnExpY2Vuc2XigJ0pOyB5b3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBsaWNlbnNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvUEFURU5UU1xuICovXG5cbmltcG9ydCB7IEVkaXRhYmxlVGV4dCwgSUludGVudFByb3BzLCBJUHJvcHMgfSBmcm9tIFwiQGJsdWVwcmludGpzL2NvcmVcIjtcbmltcG9ydCAqIGFzIGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElFZGl0YWJsZU5hbWVQcm9wcyBleHRlbmRzIElJbnRlbnRQcm9wcywgSVByb3BzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBkaXNwbGF5ZWQgaW4gdGhlIHRleHQgYm94LiBCZSBzdXJlIHRvIHVwZGF0ZSB0aGlzIHZhbHVlIHdoZW5cbiAgICAgKiByZW5kZXJpbmcgdGhpcyBjb21wb25lbnQgYWZ0ZXIgYSBjb25maXJtZWQgY2hhbmdlLlxuICAgICAqL1xuICAgIG5hbWU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBBIGxpc3RlbmVyIHRoYXQgaXMgdHJpZ2dlcmVkIGlmIHRoZSB1c2VyIGNhbmNlbHMgdGhlIGVkaXQuIFRoaXMgaXNcbiAgICAgKiBpbXBvcnRhbnQgdG8gbGlzdGVuIHRvIGlmIHlvdSBhcmUgZG9pbmcgYW55dGhpbmcgd2l0aCBvbkNoYW5nZSBldmVudHMsXG4gICAgICogc2luY2UgeW91J2xsIGxpa2VseSB3YW50IHRvIHJldmVydCB3aGF0ZXZlciBjaGFuZ2VzIHlvdSBtYWRlLlxuICAgICAqL1xuICAgIG9uQ2FuY2VsPzogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBBIGxpc3RlbmVyIHRoYXQgaXMgdHJpZ2dlcmVkIGFzIHNvb24gYXMgdGhlIGVkaXRhYmxlIG5hbWUgaXMgbW9kaWZpZWQuXG4gICAgICogVGhpcyBjYW4gYmUgZHVlLCBmb3IgZXhhbXBsZSwgdG8ga2V5Ym9hcmQgaW5wdXQgb3IgdGhlIGNsaXBib2FyZC5cbiAgICAgKi9cbiAgICBvbkNoYW5nZT86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQSBsaXN0ZW5lciB0aGF0IGlzIHRyaWdnZXJlZCBvbmNlIHRoZSBlZGl0aW5nIGlzIGNvbmZpcm1lZC4gVGhpcyBpc1xuICAgICAqIHVzdWFsbHkgZHVlIHRvIHRoZSA8a2JkIGNsYXNzPVwicHQta2V5XCI+cmV0dXJuPC9rYmQ+IChvclxuICAgICAqIDxrYmQgY2xhc3M9XCJwdC1rZXlcIj5lbnRlcjwva2JkPikga2V5IHByZXNzLlxuICAgICAqL1xuICAgIG9uQ29uZmlybT86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY2xhc3MgRWRpdGFibGVOYW1lIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElFZGl0YWJsZU5hbWVQcm9wcywge30+IHtcbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IGNsYXNzTmFtZSwgaW50ZW50LCBuYW1lLCBvbkNhbmNlbCwgb25DaGFuZ2UsIG9uQ29uZmlybSB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxFZGl0YWJsZVRleHRcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3NOYW1lLCBcImJwLXRhYmxlLWVkaXRhYmxlLW5hbWVcIil9XG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtuYW1lfVxuICAgICAgICAgICAgICAgIGludGVudD17aW50ZW50fVxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsPXtvbkNhbmNlbH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgb25Db25maXJtPXtvbkNvbmZpcm19XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxuICAgICAgICAgICAgICAgIHNlbGVjdEFsbE9uRm9jdXM9e3RydWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==

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

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
*/
import * as React from "react";
import { Grid, IRowIndices } from "../common/grid";

@@ -13,3 +9,2 @@ import { Rect } from "../common/rect";

import { IRowHeaderCellProps } from "./rowHeaderCell";
import * as React from "react";
export declare type IRowHeaderRenderer = (rowIndex: number) => React.ReactElement<IRowHeaderCellProps>;

@@ -16,0 +11,0 @@ export interface IRowHeights {

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -17,2 +19,5 @@ "use strict";

};
var classNames = require("classnames");
var PureRender = require("pure-render-decorator");
var React = require("react");
var roundSize_1 = require("../common/roundSize");

@@ -24,5 +29,2 @@ var resizable_1 = require("../interactions/resizable");

var rowHeaderCell_1 = require("./rowHeaderCell");
var classNames = require("classnames");
var PureRender = require("pure-render-decorator");
var React = require("react");
var RowHeader = (function (_super) {

@@ -109,2 +111,2 @@ __extends(RowHeader, _super);

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWFkZXJzL3Jvd0hlYWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7O0FBSUgsMEJBQTBCLHFCQUFxQixDQUFDLENBQUE7QUFFaEQsMEJBQWtELDJCQUEyQixDQUFDLENBQUE7QUFDOUUsNkJBQTZDLDhCQUE4QixDQUFDLENBQUE7QUFDNUUsMkJBQWlELDRCQUE0QixDQUFDLENBQUE7QUFFOUUsd0JBQXdCLFlBQVksQ0FBQyxDQUFBO0FBQ3JDLDhCQUFtRCxpQkFBaUIsQ0FBQyxDQUFBO0FBQ3JFLElBQVksVUFBVSxXQUFNLFlBQVksQ0FBQyxDQUFBO0FBQ3pDLElBQVksVUFBVSxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFDcEQsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUFxRC9CO0lBQStCLDZCQUFvQztJQUFuRTtRQUFBLGlCQWdIQztRQWhIOEIsOEJBQW9DO1FBK0J2RCxvQkFBZSxHQUFHLFVBQUMsUUFBZ0IsRUFBRSxjQUF3QjtZQUN6RCwyQkFBSSxDQUFnQjtZQUM1QixJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hELElBQU0sS0FBSyxHQUFHO2dCQUNWLE1BQU0sRUFBSyxJQUFJLENBQUMsTUFBTSxPQUFJO2FBQzdCLENBQUM7WUFDRixNQUFNLENBQUMsQ0FDSCxvQkFBQyw2QkFBYSxHQUNWLEdBQUcsRUFBRSxrQkFBZ0IsUUFBVyxFQUNoQyxTQUFTLEVBQUUsVUFBVSxDQUFDLGNBQWMsQ0FBRSxFQUN0QyxLQUFLLEVBQUUsS0FBTSxFQUNmLENBQUMsQ0FBQztRQUNaLENBQUMsQ0FBQTtRQUVPLGVBQVUsR0FBRyxVQUFDLFFBQWdCLEVBQUUsY0FBd0I7WUFDNUQsSUFBQSxnQkFZYyxFQVhWLGtEQUFzQixFQUN0QixjQUFJLEVBQ0osNEJBQVcsRUFDWCw4QkFBWSxFQUNaLDhCQUFZLEVBQ1osOEJB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LDZCQUFhLEdBQUMsSUFBSSxFQUFFLE1BQUcsUUFBUSxHQUFHLENBQUMsQ0FBRyxFQUFFLENBQUM7QUFDckQsQ0FBQztBQUZlLDhCQUFzQix5QkFFckMsQ0FBQSIsImZpbGUiOiJoZWFkZXJzL3Jvd0hlYWRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIC0gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKi9cblxuaW1wb3J0IHsgR3JpZCwgSVJvd0luZGljZXMgfSBmcm9tIFwiLi4vY29tbW9uL2dyaWRcIjtcbmltcG9ydCB7IFJlY3QgfSBmcm9tIFwiLi4vY29tbW9uL3JlY3RcIjtcbmltcG9ydCB7IFJvdW5kU2l6ZSB9IGZyb20gXCIuLi9jb21tb24vcm91bmRTaXplXCI7XG5pbXBvcnQgeyBJQ29vcmRpbmF0ZURhdGEgfSBmcm9tIFwiLi4vaW50ZXJhY3Rpb25zL2RyYWdnYWJsZVwiO1xuaW1wb3J0IHsgSUluZGV4ZWRSZXNpemVDYWxsYmFjaywgUmVzaXphYmxlIH0gZnJvbSBcIi4uL2ludGVyYWN0aW9ucy9yZXNpemFibGVcIjtcbmltcG9ydCB7IElMb2NrYWJsZUxheW91dCwgT3JpZW50YXRpb24gfSBmcm9tIFwiLi4vaW50ZXJhY3Rpb25zL3Jlc2l6ZUhhbmRsZVwiO1xuaW1wb3J0IHsgRHJhZ1NlbGVjdGFibGUsIElTZWxlY3RhYmxlUHJvcHMgfSBmcm9tIFwiLi4vaW50ZXJhY3Rpb25zL3NlbGVjdGFibGVcIjtcbmltcG9ydCB7IElMb2NhdG9yIH0gZnJvbSBcIi4uL2xvY2F0b3JcIjtcbmltcG9ydCB7IFJlZ2lvbnMgfSBmcm9tIFwiLi4vcmVnaW9uc1wiO1xuaW1wb3J0IHsgSVJvd0hlYWRlckNlbGxQcm9wcywgUm93SGVhZGVyQ2VsbCB9IGZyb20gXCIuL3Jvd0hlYWRlckNlbGxcIjtcbmltcG9ydCAqIGFzIGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCAqIGFzIFB1cmVSZW5kZXIgZnJvbSBcInB1cmUtcmVuZGVyLWRlY29yYXRvclwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIElSb3dIZWFkZXJSZW5kZXJlciA9IChyb3dJbmRleDogbnVtYmVyKSA9PiBSZWFjdC5SZWFjdEVsZW1lbnQ8SVJvd0hlYWRlckNlbGxQcm9wcz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJvd0hlaWdodHMge1xuICAgIG1pblJvd0hlaWdodD86IG51bWJlcjtcbiAgICBtYXhSb3dIZWlnaHQ/OiBudW1iZXI7XG4gICAgZGVmYXVsdFJvd0hlaWdodD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUm93SGVhZGVyUHJvcHMgZXh0ZW5kcyBJU2VsZWN0YWJsZVByb3BzLCBJUm93SW5kaWNlcywgSVJvd0hlaWdodHMsIElMb2NrYWJsZUxheW91dCB7XG4gICAgLyoqXG4gICAgICogRW5hYmxlcy9kaXNhYmxlcyB0aGUgcmVzaXplIGludGVyYWN0aW9uLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgaXNSZXNpemFibGU/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGdyaWQgY29tcHV0ZXMgc2l6ZXMgb2YgY2VsbHMsIHJvd3MsIG9yIGNvbHVtbnMgZnJvbSB0aGVcbiAgICAgKiBjb25maWd1cmFibGUgYGNvbHVtbldpZHRoc2AgYW5kIGByb3dIZWlnaHRzYC5cbiAgICAgKi9cbiAgICBncmlkOiBHcmlkO1xuXG4gICAgLyoqXG4gICAgICogTG9jYXRlcyB0aGUgcm93L2NvbHVtbi9jZWxsIGdpdmVuIGEgbW91c2UgZXZlbnQuXG4gICAgICovXG4gICAgbG9jYXRvcjogSUxvY2F0b3I7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGNhbGxiYWNrIGlzIGNhbGxlZCB3aGlsZSB0aGUgdXNlciBpcyByZXNpemluZyBhIGNvbHVtbi4gVGhlIGd1aWRlc1xuICAgICAqIGFycmF5IGNvbnRhaW5zIHBpeGVsIG9mZnNldHMgZm9yIHdoZXJlIHRvIGRpc3BsYXkgdGhlIHJlc2l6ZSBndWlkZXMgaW5cbiAgICAgKiB0aGUgdGFibGUgYm9keSdzIG92ZXJsYXkgbGF5ZXIuXG4gICAgICovXG4gICAgb25SZXNpemVHdWlkZTogKGd1aWRlczogbnVtYmVyW10pID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBBIGNhbGxiYWNrIGludm9rZWQgd2hlbiB1c2VyIGlzIGRvbmUgcmVzaXppbmcgdGhlIGNvbHVtblxuICAgICAqL1xuICAgIG9uUm93SGVpZ2h0Q2hhbmdlZDogSUluZGV4ZWRSZXNpemVDYWxsYmFjaztcblxuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgdGhlIGNlbGwgZm9yIGVhY2ggcm93IGhlYWRlclxuICAgICAqL1xuICAgIHJlbmRlclJvd0hlYWRlcj86IElSb3dIZWFkZXJSZW5kZXJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBgUmVjdGAgYm91bmRzIG9mIHRoZSB2aXNpYmxlIHZpZXdwb3J0IHdpdGggcmVzcGVjdCB0byBpdHMgcGFyZW50XG4gICAgICogc2Nyb2xsYWJsZSBwYW5lLlxuICAgICAqL1xuICAgIHZpZXdwb3J0UmVjdDogUmVjdDtcbn1cblxuQFB1cmVSZW5kZXJcbmV4cG9ydCBjbGFzcyBSb3dIZWFkZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SVJvd0hlYWRlclByb3BzLCB7fT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICBpc1Jlc2l6YWJsZTogZmFsc2UsXG4gICAgICAgIHJlbmRlclJvd0hlYWRlcjogcmVuZGVyRGVmYXVsdFJvd0hlYWRlcixcbiAgICB9O1xuXG4gICAgcHVibGljIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBncmlkLCByb3dJbmRleEVuZCwgcm93SW5kZXhTdGFydCwgdmlld3BvcnRSZWN0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIGNvbnN0IGNlbGxzOiBSZWFjdC5SZWFjdEVsZW1lbnQ8YW55PltdID0gW107XG4gICAgICAgIGZvciAobGV0IHJvd0luZGV4ID0gcm93SW5kZXhTdGFydDsgcm93SW5kZXggPD0gcm93SW5kZXhFbmQ7IHJvd0luZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGV4dHJlbWFDbGFzc2VzID0gZ3JpZC5nZXRFeHRyZW1hQ2xhc3Nlcyhyb3dJbmRleCwgMCwgcm93SW5kZXhFbmQsIDEpO1xuICAgICAgICAgICAgY29uc3QgcmVuZGVyZXIgPSBncmlkLmlzR2hvc3RJbmRleChyb3dJbmRleCwgLTEpID8gdGhpcy5yZW5kZXJHaG9zdENlbGwgOiB0aGlzLnJlbmRlckNlbGw7XG4gICAgICAgICAgICBjZWxscy5wdXNoKHJlbmRlcmVyKHJvd0luZGV4LCBleHRyZW1hQ2xhc3NlcykpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYWx3YXlzIHNldCBoZWlnaHQgc28gdGhhdCB0aGUgbGF5b3V0IGNhbiBwdXNoIG91dCB0aGUgZWxlbWVudCB1bmxlc3MgaXQgb3ZlcmZsb3dzLlxuICAgICAgICBjb25zdCBzdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgICAgICAgICAgIGhlaWdodDogYCR7Z3JpZC5nZXRSZWN0KCkuaGVpZ2h0fXB4YCxcbiAgICAgICAgfTtcblxuICAgICAgICAvLyB1c2UgQ1NTIHRyYW5zbGF0aW9uIHRvIG9mZnNldCB0aGUgY2VsbHNcbiAgICAgICAgaWYgKHZpZXdwb3J0UmVjdCAhPSBudWxsKSB7XG4gICAgICAgICAgICBzdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlM2QoMCwgJHtncmlkLmdldFJvd1JlY3Qocm93SW5kZXhTdGFydCkudG9wIC0gdmlld3BvcnRSZWN0LnRvcH1weCwgMClgO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxSb3VuZFNpemU+PGRpdiBzdHlsZT17c3R5bGV9PntjZWxsc308L2Rpdj48L1JvdW5kU2l6ZT5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckdob3N0Q2VsbCA9IChyb3dJbmRleDogbnVtYmVyLCBleHRyZW1hQ2xhc3Nlczogc3RyaW5nW10pID0+IHtcbiAgICAgICAgY29uc3QgeyBncmlkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCByZWN0ID0gZ3JpZC5nZXRHaG9zdENlbGxSZWN0KHJvd0luZGV4LCAwKTtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGAke3JlY3QuaGVpZ2h0fXB4YCxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxSb3dIZWFkZXJDZWxsXG4gICAgICAgICAgICAgICAga2V5PXtgYnAtdGFibGUtcm93LSR7cm93SW5kZXh9YH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoZXh0cmVtYUNsYXNzZXMpfVxuICAgICAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgIC8+KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckNlbGwgPSAocm93SW5kZXg6IG51bWJlciwgZXh0cmVtYUNsYXNzZXM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24sXG4gICAgICAgICAgICBncmlkLFxuICAgICAgICAgICAgaXNSZXNpemFibGUsXG4gICAgICAgICAgICBtYXhSb3dIZWlnaHQsXG4gICAgICAgICAgICBtaW5Sb3dIZWlnaHQsXG4gICAgICAgICAgICBvbkxheW91dExvY2ssXG4gICAgICAgICAgICBvblJlc2l6ZUd1aWRlLFxuICAgICAgICAgICAgb25Sb3dIZWlnaHRDaGFuZ2VkLFxuICAgICAgICAgICAgb25TZWxlY3Rpb24sXG4gICAgICAgICAgICByZW5kZXJSb3dIZWFkZXIsXG4gICAgICAgICAgICBzZWxlY3RlZFJlZ2lvbnMsXG4gICAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIGNvbnN0IHJlY3QgPSBncmlkLmdldFJvd1JlY3Qocm93SW5kZXgpO1xuXG4gICAgICAgIGNvbnN0IGhhbmRsZVNpemVDaGFuZ2VkID0gKHNpemU6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgb25SZXNpemVHdWlkZShbcmVjdC50b3AgKyBzaXplICsgMV0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGhhbmRsZVJlc2l6ZUVuZCA9IChzaXplOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIG9uUmVzaXplR3VpZGUobnVsbCk7XG4gICAgICAgICAgICBvblJvd0hlaWdodENoYW5nZWQocm93SW5kZXgsIHNpemUpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNlbGwgPSByZW5kZXJSb3dIZWFkZXIocm93SW5kZXgpO1xuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBjbGFzc05hbWVzKGNlbGwucHJvcHMuY2xhc3NOYW1lLCBleHRyZW1hQ2xhc3Nlcywge1xuICAgICAgICAgICAgXCJicC10YWJsZS1kcmFnZ2FibGVcIjogb25TZWxlY3Rpb24gIT0gbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGlzUm93U2VsZWN0ZWQgPSBSZWdpb25zLmhhc0Z1bGxSb3coc2VsZWN0ZWRSZWdpb25zLCByb3dJbmRleCk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxEcmFnU2VsZWN0YWJsZVxuICAgICAgICAgICAgICAgIGFsbG93TXVsdGlwbGVTZWxlY3Rpb249e2FsbG93TXVsdGlwbGVTZWxlY3Rpb259XG4gICAgICAgICAgICAgICAga2V5PXtgYnAtdGFibGUtcm93LSR7cm93SW5kZXh9YH1cbiAgICAgICAgICAgICAgICBsb2NhdGVDbGljaz17dGhpcy5sb2NhdGVDbGlja31cbiAgICAgICAgICAgICAgICBsb2NhdGVEcmFnPXt0aGlzLmxvY2F0ZURyYWd9XG4gICAgICAgICAgICAgICAgb25TZWxlY3Rpb249e29uU2VsZWN0aW9ufVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkUmVnaW9ucz17c2VsZWN0ZWRSZWdpb25zfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxSZXNpemFibGVcbiAgICAgICAgICAgICAgICAgICAgaXNSZXNpemFibGU9e2lzUmVzaXphYmxlfVxuICAgICAgICAgICAgICAgICAgICBtYXhTaXplPXttYXhSb3dIZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgIG1pblNpemU9e21pblJvd0hlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgb25MYXlvdXRMb2NrPXtvbkxheW91dExvY2t9XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzaXplRW5kPXtoYW5kbGVSZXNpemVFbmR9XG4gICAgICAgICAgICAgICAgICAgIG9uU2l6ZUNoYW5nZWQ9e2hhbmRsZVNpemVDaGFuZ2VkfVxuICAgICAgICAgICAgICAgICAgICBvcmllbnRhdGlvbj17T3JpZW50YXRpb24uSE9SSVpPTlRBTH1cbiAgICAgICAgICAgICAgICAgICAgc2l6ZT17cmVjdC5oZWlnaHR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7UmVhY3QuY2xvbmVFbGVtZW50KGNlbGwsIHsgY2xhc3NOYW1lLCBpc1Jvd1NlbGVjdGVkIH0gYXMgSVJvd0hlYWRlckNlbGxQcm9wcyl9XG4gICAgICAgICAgICAgICAgPC9SZXNpemFibGU+XG4gICAgICAgICAgICA8L0RyYWdTZWxlY3RhYmxlPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9jYXRlQ2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5wcm9wcy5sb2NhdG9yLmNvbnZlcnRQb2ludFRvUm93KGV2ZW50LmNsaWVudFkpO1xuICAgICAgICByZXR1cm4gUmVnaW9ucy5yb3cocm93KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvY2F0ZURyYWcgPSAoX2V2ZW50OiBNb3VzZUV2ZW50LCBjb29yZHM6IElDb29yZGluYXRlRGF0YSkgPT4ge1xuICAgICAgICBjb25zdCByb3dTdGFydCA9IHRoaXMucHJvcHMubG9jYXRvci5jb252ZXJ0UG9pbnRUb1Jvdyhjb29yZHMuYWN0aXZhdGlvblsxXSk7XG4gICAgICAgIGNvbnN0IHJvd0VuZCA9IHRoaXMucHJvcHMubG9jYXRvci5jb252ZXJ0UG9pbnRUb1Jvdyhjb29yZHMuY3VycmVudFsxXSk7XG4gICAgICAgIHJldHVybiBSZWdpb25zLnJvdyhyb3dTdGFydCwgcm93RW5kKTtcbiAgICB9XG59XG5cbi8qKlxuICogQSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIGBJUm93SGVhZGVyUmVuZGVyZXJgIHRoYXQgZGlzcGxheXMgMS1pbmRleGVkXG4gKiBudW1iZXJzIGZvciBlYWNoIHJvdy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckRlZmF1bHRSb3dIZWFkZXIocm93SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiA8Um93SGVhZGVyQ2VsbCBuYW1lPXtgJHtyb3dJbmRleCArIDF9YH0vPjtcbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWFkZXJzL3Jvd0hlYWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7Ozs7Ozs7Ozs7Ozs7QUFFSCxJQUFZLFVBQVUsV0FBTSxZQUFZLENBQUMsQ0FBQTtBQUN6QyxJQUFZLFVBQVUsV0FBTSx1QkFBdUIsQ0FBQyxDQUFBO0FBQ3BELElBQVksS0FBSyxXQUFNLE9BQU8sQ0FBQyxDQUFBO0FBRy9CLDBCQUEwQixxQkFBcUIsQ0FBQyxDQUFBO0FBRWhELDBCQUFrRCwyQkFBMkIsQ0FBQyxDQUFBO0FBQzlFLDZCQUE2Qyw4QkFBOEIsQ0FBQyxDQUFBO0FBQzVFLDJCQUFpRCw0QkFBNEIsQ0FBQyxDQUFBO0FBRTlFLHdCQUF3QixZQUFZLENBQUMsQ0FBQTtBQUNyQyw4QkFBbUQsaUJBQWlCLENBQUMsQ0FBQTtBQXFEckU7SUFBK0IsNkJBQW9DO0lBQW5FO1FBQUEsaUJBZ0hDO1FBaEg4Qiw4QkFBb0M7UUErQnZELG9CQUFlLEdBQUcsVUFBQyxRQUFnQixFQUFFLGNBQXdCO1lBQ3pELDJCQUFJLENBQWdCO1lBQzVCLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsSUFBTSxLQUFLLEdBQUc7Z0JBQ1YsTUFBTSxFQUFLLElBQUksQ0FBQyxNQUFNLE9BQUk7YUFDN0IsQ0FBQztZQUNGLE1BQU0sQ0FBQyxDQUNILG9CQUFDLDZCQUFhLEdBQ1YsR0FBRyxFQUFFLGtCQUFnQixRQUFXLEVBQ2hDLFNBQVMsRUFBRSxVQUFVLENBQUMsY0FBYyxDQUFFLEVBQ3RDLEtBQUssRUFBRSxLQUFNLEVBQ2YsQ0FBQyxDQUFDO1FBQ1osQ0FBQyxDQUFBO1FBRU8sZUFBVSxHQUFHLFVBQUMsUUFBZ0IsRUFBRSxjQUF3QjtZQUM1RCxJQUFBLGdCQVljLEVBWFYsa0RBQXNCLEVBQ3RCLGNBQUksRUFDSiw0QkFBVyxFQUNYLDhCQUFZLEVBQ1osOEJBQVksRUFDWiw4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QUMsNkJBQWEsR0FBQyxJQUFJLEVBQUUsTUFBRyxRQUFRLEdBQUcsQ0FBQyxDQUFHLEVBQUUsQ0FBQztBQUNyRCxDQUFDO0FBRmUsOEJBQXNCLHlCQUVyQyxDQUFBIiwiZmlsZSI6ImhlYWRlcnMvcm93SGVhZGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMyBMaWNlbnNlIGFzIG1vZGlmaWVkICh0aGUg4oCcTGljZW5zZeKAnSk7IHlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIGxpY2Vuc2UgYXQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKiBhbmQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9QQVRFTlRTXG4gKi9cblxuaW1wb3J0ICogYXMgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0ICogYXMgUHVyZVJlbmRlciBmcm9tIFwicHVyZS1yZW5kZXItZGVjb3JhdG9yXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEdyaWQsIElSb3dJbmRpY2VzIH0gZnJvbSBcIi4uL2NvbW1vbi9ncmlkXCI7XG5pbXBvcnQgeyBSZWN0IH0gZnJvbSBcIi4uL2NvbW1vbi9yZWN0XCI7XG5pbXBvcnQgeyBSb3VuZFNpemUgfSBmcm9tIFwiLi4vY29tbW9uL3JvdW5kU2l6ZVwiO1xuaW1wb3J0IHsgSUNvb3JkaW5hdGVEYXRhIH0gZnJvbSBcIi4uL2ludGVyYWN0aW9ucy9kcmFnZ2FibGVcIjtcbmltcG9ydCB7IElJbmRleGVkUmVzaXplQ2FsbGJhY2ssIFJlc2l6YWJsZSB9IGZyb20gXCIuLi9pbnRlcmFjdGlvbnMvcmVzaXphYmxlXCI7XG5pbXBvcnQgeyBJTG9ja2FibGVMYXlvdXQsIE9yaWVudGF0aW9uIH0gZnJvbSBcIi4uL2ludGVyYWN0aW9ucy9yZXNpemVIYW5kbGVcIjtcbmltcG9ydCB7IERyYWdTZWxlY3RhYmxlLCBJU2VsZWN0YWJsZVByb3BzIH0gZnJvbSBcIi4uL2ludGVyYWN0aW9ucy9zZWxlY3RhYmxlXCI7XG5pbXBvcnQgeyBJTG9jYXRvciB9IGZyb20gXCIuLi9sb2NhdG9yXCI7XG5pbXBvcnQgeyBSZWdpb25zIH0gZnJvbSBcIi4uL3JlZ2lvbnNcIjtcbmltcG9ydCB7IElSb3dIZWFkZXJDZWxsUHJvcHMsIFJvd0hlYWRlckNlbGwgfSBmcm9tIFwiLi9yb3dIZWFkZXJDZWxsXCI7XG5cbmV4cG9ydCB0eXBlIElSb3dIZWFkZXJSZW5kZXJlciA9IChyb3dJbmRleDogbnVtYmVyKSA9PiBSZWFjdC5SZWFjdEVsZW1lbnQ8SVJvd0hlYWRlckNlbGxQcm9wcz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJvd0hlaWdodHMge1xuICAgIG1pblJvd0hlaWdodD86IG51bWJlcjtcbiAgICBtYXhSb3dIZWlnaHQ/OiBudW1iZXI7XG4gICAgZGVmYXVsdFJvd0hlaWdodD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUm93SGVhZGVyUHJvcHMgZXh0ZW5kcyBJU2VsZWN0YWJsZVByb3BzLCBJUm93SW5kaWNlcywgSVJvd0hlaWdodHMsIElMb2NrYWJsZUxheW91dCB7XG4gICAgLyoqXG4gICAgICogRW5hYmxlcy9kaXNhYmxlcyB0aGUgcmVzaXplIGludGVyYWN0aW9uLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgaXNSZXNpemFibGU/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGdyaWQgY29tcHV0ZXMgc2l6ZXMgb2YgY2VsbHMsIHJvd3MsIG9yIGNvbHVtbnMgZnJvbSB0aGVcbiAgICAgKiBjb25maWd1cmFibGUgYGNvbHVtbldpZHRoc2AgYW5kIGByb3dIZWlnaHRzYC5cbiAgICAgKi9cbiAgICBncmlkOiBHcmlkO1xuXG4gICAgLyoqXG4gICAgICogTG9jYXRlcyB0aGUgcm93L2NvbHVtbi9jZWxsIGdpdmVuIGEgbW91c2UgZXZlbnQuXG4gICAgICovXG4gICAgbG9jYXRvcjogSUxvY2F0b3I7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGNhbGxiYWNrIGlzIGNhbGxlZCB3aGlsZSB0aGUgdXNlciBpcyByZXNpemluZyBhIGNvbHVtbi4gVGhlIGd1aWRlc1xuICAgICAqIGFycmF5IGNvbnRhaW5zIHBpeGVsIG9mZnNldHMgZm9yIHdoZXJlIHRvIGRpc3BsYXkgdGhlIHJlc2l6ZSBndWlkZXMgaW5cbiAgICAgKiB0aGUgdGFibGUgYm9keSdzIG92ZXJsYXkgbGF5ZXIuXG4gICAgICovXG4gICAgb25SZXNpemVHdWlkZTogKGd1aWRlczogbnVtYmVyW10pID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBBIGNhbGxiYWNrIGludm9rZWQgd2hlbiB1c2VyIGlzIGRvbmUgcmVzaXppbmcgdGhlIGNvbHVtblxuICAgICAqL1xuICAgIG9uUm93SGVpZ2h0Q2hhbmdlZDogSUluZGV4ZWRSZXNpemVDYWxsYmFjaztcblxuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgdGhlIGNlbGwgZm9yIGVhY2ggcm93IGhlYWRlclxuICAgICAqL1xuICAgIHJlbmRlclJvd0hlYWRlcj86IElSb3dIZWFkZXJSZW5kZXJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBgUmVjdGAgYm91bmRzIG9mIHRoZSB2aXNpYmxlIHZpZXdwb3J0IHdpdGggcmVzcGVjdCB0byBpdHMgcGFyZW50XG4gICAgICogc2Nyb2xsYWJsZSBwYW5lLlxuICAgICAqL1xuICAgIHZpZXdwb3J0UmVjdDogUmVjdDtcbn1cblxuQFB1cmVSZW5kZXJcbmV4cG9ydCBjbGFzcyBSb3dIZWFkZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SVJvd0hlYWRlclByb3BzLCB7fT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICBpc1Jlc2l6YWJsZTogZmFsc2UsXG4gICAgICAgIHJlbmRlclJvd0hlYWRlcjogcmVuZGVyRGVmYXVsdFJvd0hlYWRlcixcbiAgICB9O1xuXG4gICAgcHVibGljIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBncmlkLCByb3dJbmRleEVuZCwgcm93SW5kZXhTdGFydCwgdmlld3BvcnRSZWN0IH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIGNvbnN0IGNlbGxzOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgcm93SW5kZXggPSByb3dJbmRleFN0YXJ0OyByb3dJbmRleCA8PSByb3dJbmRleEVuZDsgcm93SW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgZXh0cmVtYUNsYXNzZXMgPSBncmlkLmdldEV4dHJlbWFDbGFzc2VzKHJvd0luZGV4LCAwLCByb3dJbmRleEVuZCwgMSk7XG4gICAgICAgICAgICBjb25zdCByZW5kZXJlciA9IGdyaWQuaXNHaG9zdEluZGV4KHJvd0luZGV4LCAtMSkgPyB0aGlzLnJlbmRlckdob3N0Q2VsbCA6IHRoaXMucmVuZGVyQ2VsbDtcbiAgICAgICAgICAgIGNlbGxzLnB1c2gocmVuZGVyZXIocm93SW5kZXgsIGV4dHJlbWFDbGFzc2VzKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhbHdheXMgc2V0IGhlaWdodCBzbyB0aGF0IHRoZSBsYXlvdXQgY2FuIHB1c2ggb3V0IHRoZSBlbGVtZW50IHVubGVzcyBpdCBvdmVyZmxvd3MuXG4gICAgICAgIGNvbnN0IHN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgICAgICAgICAgaGVpZ2h0OiBgJHtncmlkLmdldFJlY3QoKS5oZWlnaHR9cHhgLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHVzZSBDU1MgdHJhbnNsYXRpb24gdG8gb2Zmc2V0IHRoZSBjZWxsc1xuICAgICAgICBpZiAodmlld3BvcnRSZWN0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgwLCAke2dyaWQuZ2V0Um93UmVjdChyb3dJbmRleFN0YXJ0KS50b3AgLSB2aWV3cG9ydFJlY3QudG9wfXB4LCAwKWA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFJvdW5kU2l6ZT48ZGl2IHN0eWxlPXtzdHlsZX0+e2NlbGxzfTwvZGl2PjwvUm91bmRTaXplPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyR2hvc3RDZWxsID0gKHJvd0luZGV4OiBudW1iZXIsIGV4dHJlbWFDbGFzc2VzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICBjb25zdCB7IGdyaWQgfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGNvbnN0IHJlY3QgPSBncmlkLmdldEdob3N0Q2VsbFJlY3Qocm93SW5kZXgsIDApO1xuICAgICAgICBjb25zdCBzdHlsZSA9IHtcbiAgICAgICAgICAgIGhlaWdodDogYCR7cmVjdC5oZWlnaHR9cHhgLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFJvd0hlYWRlckNlbGxcbiAgICAgICAgICAgICAgICBrZXk9e2BicC10YWJsZS1yb3ctJHtyb3dJbmRleH1gfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhleHRyZW1hQ2xhc3Nlcyl9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgLz4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyQ2VsbCA9IChyb3dJbmRleDogbnVtYmVyLCBleHRyZW1hQ2xhc3Nlczogc3RyaW5nW10pID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbixcbiAgICAgICAgICAgIGdyaWQsXG4gICAgICAgICAgICBpc1Jlc2l6YWJsZSxcbiAgICAgICAgICAgIG1heFJvd0hlaWdodCxcbiAgICAgICAgICAgIG1pblJvd0hlaWdodCxcbiAgICAgICAgICAgIG9uTGF5b3V0TG9jayxcbiAgICAgICAgICAgIG9uUmVzaXplR3VpZGUsXG4gICAgICAgICAgICBvblJvd0hlaWdodENoYW5nZWQsXG4gICAgICAgICAgICBvblNlbGVjdGlvbixcbiAgICAgICAgICAgIHJlbmRlclJvd0hlYWRlcixcbiAgICAgICAgICAgIHNlbGVjdGVkUmVnaW9ucyxcbiAgICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgY29uc3QgcmVjdCA9IGdyaWQuZ2V0Um93UmVjdChyb3dJbmRleCk7XG5cbiAgICAgICAgY29uc3QgaGFuZGxlU2l6ZUNoYW5nZWQgPSAoc2l6ZTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBvblJlc2l6ZUd1aWRlKFtyZWN0LnRvcCArIHNpemUgKyAxXSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgaGFuZGxlUmVzaXplRW5kID0gKHNpemU6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgb25SZXNpemVHdWlkZShudWxsKTtcbiAgICAgICAgICAgIG9uUm93SGVpZ2h0Q2hhbmdlZChyb3dJbmRleCwgc2l6ZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgY2VsbCA9IHJlbmRlclJvd0hlYWRlcihyb3dJbmRleCk7XG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGNsYXNzTmFtZXMoY2VsbC5wcm9wcy5jbGFzc05hbWUsIGV4dHJlbWFDbGFzc2VzLCB7XG4gICAgICAgICAgICBcImJwLXRhYmxlLWRyYWdnYWJsZVwiOiBvblNlbGVjdGlvbiAhPSBudWxsLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaXNSb3dTZWxlY3RlZCA9IFJlZ2lvbnMuaGFzRnVsbFJvdyhzZWxlY3RlZFJlZ2lvbnMsIHJvd0luZGV4KTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPERyYWdTZWxlY3RhYmxlXG4gICAgICAgICAgICAgICAgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbj17YWxsb3dNdWx0aXBsZVNlbGVjdGlvbn1cbiAgICAgICAgICAgICAgICBrZXk9e2BicC10YWJsZS1yb3ctJHtyb3dJbmRleH1gfVxuICAgICAgICAgICAgICAgIGxvY2F0ZUNsaWNrPXt0aGlzLmxvY2F0ZUNsaWNrfVxuICAgICAgICAgICAgICAgIGxvY2F0ZURyYWc9e3RoaXMubG9jYXRlRHJhZ31cbiAgICAgICAgICAgICAgICBvblNlbGVjdGlvbj17b25TZWxlY3Rpb259XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRSZWdpb25zPXtzZWxlY3RlZFJlZ2lvbnN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlc2l6YWJsZVxuICAgICAgICAgICAgICAgICAgICBpc1Jlc2l6YWJsZT17aXNSZXNpemFibGV9XG4gICAgICAgICAgICAgICAgICAgIG1heFNpemU9e21heFJvd0hlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgbWluU2l6ZT17bWluUm93SGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgICBvbkxheW91dExvY2s9e29uTGF5b3V0TG9ja31cbiAgICAgICAgICAgICAgICAgICAgb25SZXNpemVFbmQ9e2hhbmRsZVJlc2l6ZUVuZH1cbiAgICAgICAgICAgICAgICAgICAgb25TaXplQ2hhbmdlZD17aGFuZGxlU2l6ZUNoYW5nZWR9XG4gICAgICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uPXtPcmllbnRhdGlvbi5IT1JJWk9OVEFMfVxuICAgICAgICAgICAgICAgICAgICBzaXplPXtyZWN0LmhlaWdodH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtSZWFjdC5jbG9uZUVsZW1lbnQoY2VsbCwgeyBjbGFzc05hbWUsIGlzUm93U2VsZWN0ZWQgfSBhcyBJUm93SGVhZGVyQ2VsbFByb3BzKX1cbiAgICAgICAgICAgICAgICA8L1Jlc2l6YWJsZT5cbiAgICAgICAgICAgIDwvRHJhZ1NlbGVjdGFibGU+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2NhdGVDbGljayA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLnByb3BzLmxvY2F0b3IuY29udmVydFBvaW50VG9Sb3coZXZlbnQuY2xpZW50WSk7XG4gICAgICAgIHJldHVybiBSZWdpb25zLnJvdyhyb3cpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9jYXRlRHJhZyA9IChfZXZlbnQ6IE1vdXNlRXZlbnQsIGNvb3JkczogSUNvb3JkaW5hdGVEYXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IHJvd1N0YXJ0ID0gdGhpcy5wcm9wcy5sb2NhdG9yLmNvbnZlcnRQb2ludFRvUm93KGNvb3Jkcy5hY3RpdmF0aW9uWzFdKTtcbiAgICAgICAgY29uc3Qgcm93RW5kID0gdGhpcy5wcm9wcy5sb2NhdG9yLmNvbnZlcnRQb2ludFRvUm93KGNvb3Jkcy5jdXJyZW50WzFdKTtcbiAgICAgICAgcmV0dXJuIFJlZ2lvbnMucm93KHJvd1N0YXJ0LCByb3dFbmQpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBBIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgYElSb3dIZWFkZXJSZW5kZXJlcmAgdGhhdCBkaXNwbGF5cyAxLWluZGV4ZWRcbiAqIG51bWJlcnMgZm9yIGVhY2ggcm93LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyRGVmYXVsdFJvd0hlYWRlcihyb3dJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIDxSb3dIZWFkZXJDZWxsIG5hbWU9e2Ake3Jvd0luZGV4ICsgMX1gfS8+O1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

@@ -1,9 +0,10 @@

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/
import { ResizeHandle } from "../interactions/resizeHandle";
import { IProps } from "@blueprintjs/core";
import * as React from "react";
import { ResizeHandle } from "../interactions/resizeHandle";
export interface IRowHeaderCellProps extends IProps {

@@ -10,0 +11,0 @@ /**

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -51,2 +53,2 @@ "use strict";

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWFkZXJzL3Jvd0hlYWRlckNlbGwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRzs7Ozs7Ozs7Ozs7OztBQUdILHFCQUEwQyxtQkFBbUIsQ0FBQyxDQUFBO0FBQzlELElBQVksVUFBVSxXQUFNLFlBQVksQ0FBQyxDQUFBO0FBQ3pDLElBQVksS0FBSyxXQUFNLE9BQU8sQ0FBQyxDQUFBO0FBMEMvQjtJQUFtQyxpQ0FBcUQ7SUFBeEY7UUFBbUMsOEJBQXFEO1FBQzdFLFVBQUssR0FBRztZQUNYLFFBQVEsRUFBRSxLQUFLO1NBQ2xCLENBQUM7SUF5Qk4sQ0FBQztJQXZCVSw4QkFBTSxHQUFiO1FBQ0ksSUFBQSxlQUFvRixFQUE1RSx3QkFBUyxFQUFFLHNCQUFRLEVBQUUsZ0NBQWEsRUFBRSxjQUFJLEVBQUUsOEJBQVksRUFBRSxnQkFBSyxDQUFnQjtRQUNyRixJQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFLGlCQUFpQixFQUFFO1lBQ3JELHdCQUF3QixFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFDekQsMEJBQTBCLEVBQUUsYUFBYTtTQUM1QyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsQ0FDSCxxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFFLE9BQVEsRUFBQyxLQUFLLEVBQUUsS0FBTTtZQUNsQyxxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFDLG1CQUFtQjtnQkFDOUIscUJBQUMsR0FBRyxJQUFDLFNBQVMsRUFBQyxnREFBZ0QsR0FDMUQsSUFBSyxDQUNKO2FBQ0o7WUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVM7WUFDcEIsWUFBYSxDQUNaLENBQ1QsQ0FBQztJQUNOLENBQUM7SUFFTSx5Q0FBaUIsR0FBeEIsVUFBeUIsTUFBcUM7UUFDMUQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUE1Qkw7UUFBQyx3QkFBaUI7cUJBQUE7SUE2QmxCLG9CQUFDO0FBQUQsQ0E1QkEsQUE0QkMsQ0E1QmtDLEtBQUssQ0FBQyxTQUFTLEdBNEJqRDtBQTVCWSxxQkFBYSxnQkE0QnpCLENBQUEiLCJmaWxlIjoiaGVhZGVycy9yb3dIZWFkZXJDZWxsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgLSBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBSZXNpemVIYW5kbGUgfSBmcm9tIFwiLi4vaW50ZXJhY3Rpb25zL3Jlc2l6ZUhhbmRsZVwiO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVUYXJnZXQsIElQcm9wcyB9IGZyb20gXCJAYmx1ZXByaW50anMvY29yZVwiO1xuaW1wb3J0ICogYXMgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJvd0hlYWRlckNlbGxQcm9wcyBleHRlbmRzIElQcm9wcyB7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgd2lsbCBhcHBseSB0aGUgYWN0aXZlIGNsYXNzIHRvIHRoZSBoZWFkZXIgdG8gaW5kaWNhdGUgaXQgaXNcbiAgICAgKiBwYXJ0IG9mIGFuIGV4dGVybmFsIG9wZXJhdGlvbi5cbiAgICAgKi9cbiAgICBpc0FjdGl2ZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgZnVsbCBjb2x1bW4gaXMgcGFydCBvZiBhIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICBpc1Jvd1NlbGVjdGVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyIG9mIHRoZSBjb2x1bW4uXG4gICAgICovXG4gICAgbmFtZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEFuIGVsZW1lbnQsIGxpa2UgYSBgPE1lbnU+YCwgdGhpcyBpcyBkaXNwbGF5ZWQgYnkgcmlnaHQtY2xpY2tpbmdcbiAgICAgKiBhbnl3aGVyZSBpbiB0aGUgaGVhZGVyLlxuICAgICAqL1xuICAgIG1lbnU/OiBKU1guRWxlbWVudDtcblxuICAgIC8qKlxuICAgICAqIEEgYFJlc2l6ZUhhbmRsZWAgUmVhY3QgY29tcG9uZW50IHRoYXQgYWxsb3dzIHVzZXJzIHRvIGRyYWctcmVzaXplIHRoZVxuICAgICAqIGhlYWRlci5cbiAgICAgKi9cbiAgICByZXNpemVIYW5kbGU/OiBSZXNpemVIYW5kbGU7XG5cbiAgICAvKipcbiAgICAgKiBDU1Mgc3R5bGVzIGZvciB0aGUgdG9wIGxldmVsIGVsZW1lbnQuXG4gICAgICovXG4gICAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElSb3dIZWFkZXJTdGF0ZSB7XG4gICAgaXNBY3RpdmU6IGJvb2xlYW47XG59XG5cbkBDb250ZXh0TWVudVRhcmdldFxuZXhwb3J0IGNsYXNzIFJvd0hlYWRlckNlbGwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SVJvd0hlYWRlckNlbGxQcm9wcywgSVJvd0hlYWRlclN0YXRlPiB7XG4gICAgcHVibGljIHN0YXRlID0ge1xuICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXG4gICAgfTtcblxuICAgIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBpc0FjdGl2ZSwgaXNSb3dTZWxlY3RlZCwgbmFtZSwgcmVzaXplSGFuZGxlLCBzdHlsZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzTmFtZXMoY2xhc3NOYW1lLCBcImJwLXRhYmxlLWhlYWRlclwiLCB7XG4gICAgICAgICAgICBcImJwLXRhYmxlLWhlYWRlci1hY3RpdmVcIjogaXNBY3RpdmUgfHwgdGhpcy5zdGF0ZS5pc0FjdGl2ZSxcbiAgICAgICAgICAgIFwiYnAtdGFibGUtaGVhZGVyLXNlbGVjdGVkXCI6IGlzUm93U2VsZWN0ZWQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlc30gc3R5bGU9e3N0eWxlfT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJwLXRhYmxlLXJvdy1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnAtdGFibGUtcm93LW5hbWUtdGV4dCBicC10YWJsZS10cnVuY2F0ZWQtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge25hbWV9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxuICAgICAgICAgICAgICAgIHtyZXNpemVIYW5kbGV9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVuZGVyQ29udGV4dE1lbnUoX2V2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50Pikge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5tZW51O1xuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9oZWFkZXJzL3Jvd0hlYWRlckNlbGwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHOzs7Ozs7Ozs7Ozs7O0FBRUgscUJBQTBDLG1CQUFtQixDQUFDLENBQUE7QUFDOUQsSUFBWSxVQUFVLFdBQU0sWUFBWSxDQUFDLENBQUE7QUFDekMsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUEyQy9CO0lBQW1DLGlDQUFxRDtJQUF4RjtRQUFtQyw4QkFBcUQ7UUFDN0UsVUFBSyxHQUFHO1lBQ1gsUUFBUSxFQUFFLEtBQUs7U0FDbEIsQ0FBQztJQXlCTixDQUFDO0lBdkJVLDhCQUFNLEdBQWI7UUFDSSxJQUFBLGVBQW9GLEVBQTVFLHdCQUFTLEVBQUUsc0JBQVEsRUFBRSxnQ0FBYSxFQUFFLGNBQUksRUFBRSw4QkFBWSxFQUFFLGdCQUFLLENBQWdCO1FBQ3JGLElBQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLEVBQUU7WUFDckQsd0JBQXdCLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUN6RCwwQkFBMEIsRUFBRSxhQUFhO1NBQzVDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxDQUNILHFCQUFDLEdBQUcsSUFBQyxTQUFTLEVBQUUsT0FBUSxFQUFDLEtBQUssRUFBRSxLQUFNO1lBQ2xDLHFCQUFDLEdBQUcsSUFBQyxTQUFTLEVBQUMsbUJBQW1CO2dCQUM5QixxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFDLGdEQUFnRCxHQUMxRCxJQUFLLENBQ0o7YUFDSjtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUztZQUNwQixZQUFhLENBQ1osQ0FDVCxDQUFDO0lBQ04sQ0FBQztJQUVNLHlDQUFpQixHQUF4QixVQUF5QixNQUFxQztRQUMxRCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQTVCTDtRQUFDLHdCQUFpQjtxQkFBQTtJQTZCbEIsb0JBQUM7QUFBRCxDQTVCQSxBQTRCQyxDQTVCa0MsS0FBSyxDQUFDLFNBQVMsR0E0QmpEO0FBNUJZLHFCQUFhLGdCQTRCekIsQ0FBQSIsImZpbGUiOiJoZWFkZXJzL3Jvd0hlYWRlckNlbGwuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEJTRC0zIExpY2Vuc2UgYXMgbW9kaWZpZWQgKHRoZSDigJxMaWNlbnNl4oCdKTsgeW91IG1heSBvYnRhaW4gYSBjb3B5XG4gKiBvZiB0aGUgbGljZW5zZSBhdCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqIGFuZCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL1BBVEVOVFNcbiAqL1xuXG5pbXBvcnQgeyBDb250ZXh0TWVudVRhcmdldCwgSVByb3BzIH0gZnJvbSBcIkBibHVlcHJpbnRqcy9jb3JlXCI7XG5pbXBvcnQgKiBhcyBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFJlc2l6ZUhhbmRsZSB9IGZyb20gXCIuLi9pbnRlcmFjdGlvbnMvcmVzaXplSGFuZGxlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJvd0hlYWRlckNlbGxQcm9wcyBleHRlbmRzIElQcm9wcyB7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgd2lsbCBhcHBseSB0aGUgYWN0aXZlIGNsYXNzIHRvIHRoZSBoZWFkZXIgdG8gaW5kaWNhdGUgaXQgaXNcbiAgICAgKiBwYXJ0IG9mIGFuIGV4dGVybmFsIG9wZXJhdGlvbi5cbiAgICAgKi9cbiAgICBpc0FjdGl2ZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgZnVsbCBjb2x1bW4gaXMgcGFydCBvZiBhIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICBpc1Jvd1NlbGVjdGVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyIG9mIHRoZSBjb2x1bW4uXG4gICAgICovXG4gICAgbmFtZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEFuIGVsZW1lbnQsIGxpa2UgYSBgPE1lbnU+YCwgdGhpcyBpcyBkaXNwbGF5ZWQgYnkgcmlnaHQtY2xpY2tpbmdcbiAgICAgKiBhbnl3aGVyZSBpbiB0aGUgaGVhZGVyLlxuICAgICAqL1xuICAgIG1lbnU/OiBKU1guRWxlbWVudDtcblxuICAgIC8qKlxuICAgICAqIEEgYFJlc2l6ZUhhbmRsZWAgUmVhY3QgY29tcG9uZW50IHRoYXQgYWxsb3dzIHVzZXJzIHRvIGRyYWctcmVzaXplIHRoZVxuICAgICAqIGhlYWRlci5cbiAgICAgKi9cbiAgICByZXNpemVIYW5kbGU/OiBSZXNpemVIYW5kbGU7XG5cbiAgICAvKipcbiAgICAgKiBDU1Mgc3R5bGVzIGZvciB0aGUgdG9wIGxldmVsIGVsZW1lbnQuXG4gICAgICovXG4gICAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElSb3dIZWFkZXJTdGF0ZSB7XG4gICAgaXNBY3RpdmU6IGJvb2xlYW47XG59XG5cbkBDb250ZXh0TWVudVRhcmdldFxuZXhwb3J0IGNsYXNzIFJvd0hlYWRlckNlbGwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SVJvd0hlYWRlckNlbGxQcm9wcywgSVJvd0hlYWRlclN0YXRlPiB7XG4gICAgcHVibGljIHN0YXRlID0ge1xuICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXG4gICAgfTtcblxuICAgIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBpc0FjdGl2ZSwgaXNSb3dTZWxlY3RlZCwgbmFtZSwgcmVzaXplSGFuZGxlLCBzdHlsZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzTmFtZXMoY2xhc3NOYW1lLCBcImJwLXRhYmxlLWhlYWRlclwiLCB7XG4gICAgICAgICAgICBcImJwLXRhYmxlLWhlYWRlci1hY3RpdmVcIjogaXNBY3RpdmUgfHwgdGhpcy5zdGF0ZS5pc0FjdGl2ZSxcbiAgICAgICAgICAgIFwiYnAtdGFibGUtaGVhZGVyLXNlbGVjdGVkXCI6IGlzUm93U2VsZWN0ZWQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlc30gc3R5bGU9e3N0eWxlfT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJwLXRhYmxlLXJvdy1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnAtdGFibGUtcm93LW5hbWUtdGV4dCBicC10YWJsZS10cnVuY2F0ZWQtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge25hbWV9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxuICAgICAgICAgICAgICAgIHtyZXNpemVIYW5kbGV9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVuZGVyQ29udGV4dE1lbnUoX2V2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50Pikge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy5tZW51O1xuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -5,0 +7,0 @@ import "es6-shim";

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -41,2 +43,2 @@ "use strict";

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7O0FBRUgsUUFBTyxVQUFVLENBQUMsQ0FBQTtBQUVsQixxQkFJTyxhQUFhLENBQUM7QUFIakIsMkJBR2lCO0FBRXJCLDZCQUdPLHFCQUFxQixDQUFDO0FBRnpCLG1EQUV5QjtBQUU3QiwyQkFHTywyQkFBMkIsQ0FBQztBQUYvQiw2Q0FFK0I7QUFFbkMsZ0NBR08sZ0NBQWdDLENBQUM7QUFGcEMsNERBRW9DO0FBRXhDLHVCQUdPLFVBQVUsQ0FBQztBQUZkLGlDQUVjO0FBRWxCLHNCQU1PLGdCQUFnQixDQUFDO0FBSnBCLHNDQUFTO0FBQ1QsNEJBQUk7QUFDSiw0QkFBSTtBQUNKLDhCQUNvQjtBQUV4QixzQkFJTyxzQkFBc0IsQ0FBQztBQUgxQixzREFHMEI7QUFFOUIsNkJBS08sNkJBQTZCLENBQUM7QUFGakMsaURBQVc7QUFDWCxtREFDaUM7QUFFckMsaUNBS08sNEJBQTRCLENBQUM7QUFKaEMsK0RBQWdCO0FBR2hCLHlFQUNnQztBQUVwQyw4QkFHTyx5QkFBeUIsQ0FBQztBQUQ3QixzREFDNkI7QUFFakMsNkJBR08sd0JBQXdCLENBQUM7QUFENUIsbURBQzRCO0FBRWhDLHdCQU9PLFdBQVcsQ0FBQztBQUhmLHdEQUFpQjtBQUNqQixvQ0FBTztBQUNQLGtEQUNlO0FBRW5CLHNCQUdPLFNBQVMsQ0FBQztBQURiLDhCQUNhIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgLSBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqL1xuXG5pbXBvcnQgXCJlczYtc2hpbVwiO1xuXG5leHBvcnQge1xuICAgIENlbGwsXG4gICAgSUNlbGxQcm9wcyxcbiAgICBJQ2VsbFJlbmRlcmVyXG59IGZyb20gXCIuL2NlbGwvY2VsbFwiO1xuXG5leHBvcnQge1xuICAgIEVkaXRhYmxlQ2VsbCxcbiAgICBJRWRpdGFibGVDZWxsUHJvcHNcbn0gZnJvbSBcIi4vY2VsbC9lZGl0YWJsZUNlbGxcIjtcblxuZXhwb3J0IHtcbiAgICBKU09ORm9ybWF0LFxuICAgIElKU09ORm9ybWF0UHJvcHNcbn0gZnJvbSBcIi4vY2VsbC9mb3JtYXRzL2pzb25Gb3JtYXRcIjtcblxuZXhwb3J0IHtcbiAgICBUcnVuY2F0ZWRGb3JtYXQsXG4gICAgSVRydW5jYXRlZEZvcm1hdFByb3BzXG59IGZyb20gXCIuL2NlbGwvZm9ybWF0cy90cnVuY2F0ZWRGb3JtYXRcIjtcblxuZXhwb3J0IHtcbiAgICBDb2x1bW4sXG4gICAgSUNvbHVtblByb3BzXG59IGZyb20gXCIuL2NvbHVtblwiO1xuXG5leHBvcnQge1xuICAgIEFueVJlY3QsXG4gICAgQ2xpcGJvYXJkLFxuICAgIEdyaWQsXG4gICAgUmVjdCxcbiAgICBVdGlsc1xufSBmcm9tIFwiLi9jb21tb24vaW5kZXhcIjtcblxuZXhwb3J0IHtcbiAgICBDb3B5Q2VsbHNNZW51SXRlbSxcbiAgICBJQ29udGV4dE1lbnVSZW5kZXJlcixcbiAgICBJTWVudUNvbnRleHRcbn0gZnJvbSBcIi4vaW50ZXJhY3Rpb25zL21lbnVzXCI7XG5cbmV4cG9ydCB7XG4gICAgSUxvY2thYmxlTGF5b3V0LFxuICAgIElSZXNpemVIYW5kbGVQcm9wcyxcbiAgICBPcmllbnRhdGlvbixcbiAgICBSZXNpemVIYW5kbGVcbn0gZnJvbSBcIi4vaW50ZXJhY3Rpb25zL3Jlc2l6ZUhhbmRsZVwiO1xuXG5leHBvcnQge1xuICAgIENvbHVtbkhlYWRlckNlbGwsXG4gICAgSUNvbHVtbkhlYWRlckNlbGxQcm9wcyxcbiAgICBJQ29sdW1uSGVhZGVyUmVuZGVyZXIsXG4gICAgSG9yaXpvbnRhbENlbGxEaXZpZGVyXG59IGZyb20gXCIuL2hlYWRlcnMvY29sdW1uSGVhZGVyQ2VsbFwiO1xuXG5leHBvcnQge1xuICAgIElSb3dIZWFkZXJDZWxsUHJvcHMsXG4gICAgUm93SGVhZGVyQ2VsbFxufSBmcm9tIFwiLi9oZWFkZXJzL3Jvd0hlYWRlckNlbGxcIjtcblxuZXhwb3J0IHtcbiAgICBJRWRpdGFibGVOYW1lUHJvcHMsXG4gICAgRWRpdGFibGVOYW1lXG59IGZyb20gXCIuL2hlYWRlcnMvZWRpdGFibGVOYW1lXCI7XG5cbmV4cG9ydCB7XG4gICAgSUNlbGxJbnRlcnZhbCxcbiAgICBJUmVnaW9uLFxuICAgIElTdHlsZWRSZWdpb25Hcm91cCxcbiAgICBSZWdpb25DYXJkaW5hbGl0eSxcbiAgICBSZWdpb25zLFxuICAgIFNlbGVjdGlvbk1vZGVzXG59IGZyb20gXCIuL3JlZ2lvbnNcIjtcblxuZXhwb3J0IHtcbiAgICBJVGFibGVQcm9wcyxcbiAgICBUYWJsZVxufSBmcm9tIFwiLi90YWJsZVwiO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRzs7QUFFSCxRQUFPLFVBQVUsQ0FBQyxDQUFBO0FBRWxCLHFCQUlPLGFBQWEsQ0FBQztBQUhqQiwyQkFHaUI7QUFFckIsNkJBR08scUJBQXFCLENBQUM7QUFGekIsbURBRXlCO0FBRTdCLDJCQUdPLDJCQUEyQixDQUFDO0FBRi9CLDZDQUUrQjtBQUVuQyxnQ0FHTyxnQ0FBZ0MsQ0FBQztBQUZwQyw0REFFb0M7QUFFeEMsdUJBR08sVUFBVSxDQUFDO0FBRmQsaUNBRWM7QUFFbEIsc0JBTU8sZ0JBQWdCLENBQUM7QUFKcEIsc0NBQVM7QUFDVCw0QkFBSTtBQUNKLDRCQUFJO0FBQ0osOEJBQ29CO0FBRXhCLHNCQUlPLHNCQUFzQixDQUFDO0FBSDFCLHNEQUcwQjtBQUU5Qiw2QkFLTyw2QkFBNkIsQ0FBQztBQUZqQyxpREFBVztBQUNYLG1EQUNpQztBQUVyQyxpQ0FLTyw0QkFBNEIsQ0FBQztBQUpoQywrREFBZ0I7QUFHaEIseUVBQ2dDO0FBRXBDLDhCQUdPLHlCQUF5QixDQUFDO0FBRDdCLHNEQUM2QjtBQUVqQyw2QkFHTyx3QkFBd0IsQ0FBQztBQUQ1QixtREFDNEI7QUFFaEMsd0JBT08sV0FBVyxDQUFDO0FBSGYsd0RBQWlCO0FBQ2pCLG9DQUFPO0FBQ1Asa0RBQ2U7QUFFbkIsc0JBR08sU0FBUyxDQUFDO0FBRGIsOEJBQ2EiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEJTRC0zIExpY2Vuc2UgYXMgbW9kaWZpZWQgKHRoZSDigJxMaWNlbnNl4oCdKTsgeW91IG1heSBvYnRhaW4gYSBjb3B5XG4gKiBvZiB0aGUgbGljZW5zZSBhdCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqIGFuZCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL1BBVEVOVFNcbiAqL1xuXG5pbXBvcnQgXCJlczYtc2hpbVwiO1xuXG5leHBvcnQge1xuICAgIENlbGwsXG4gICAgSUNlbGxQcm9wcyxcbiAgICBJQ2VsbFJlbmRlcmVyXG59IGZyb20gXCIuL2NlbGwvY2VsbFwiO1xuXG5leHBvcnQge1xuICAgIEVkaXRhYmxlQ2VsbCxcbiAgICBJRWRpdGFibGVDZWxsUHJvcHNcbn0gZnJvbSBcIi4vY2VsbC9lZGl0YWJsZUNlbGxcIjtcblxuZXhwb3J0IHtcbiAgICBKU09ORm9ybWF0LFxuICAgIElKU09ORm9ybWF0UHJvcHNcbn0gZnJvbSBcIi4vY2VsbC9mb3JtYXRzL2pzb25Gb3JtYXRcIjtcblxuZXhwb3J0IHtcbiAgICBUcnVuY2F0ZWRGb3JtYXQsXG4gICAgSVRydW5jYXRlZEZvcm1hdFByb3BzXG59IGZyb20gXCIuL2NlbGwvZm9ybWF0cy90cnVuY2F0ZWRGb3JtYXRcIjtcblxuZXhwb3J0IHtcbiAgICBDb2x1bW4sXG4gICAgSUNvbHVtblByb3BzXG59IGZyb20gXCIuL2NvbHVtblwiO1xuXG5leHBvcnQge1xuICAgIEFueVJlY3QsXG4gICAgQ2xpcGJvYXJkLFxuICAgIEdyaWQsXG4gICAgUmVjdCxcbiAgICBVdGlsc1xufSBmcm9tIFwiLi9jb21tb24vaW5kZXhcIjtcblxuZXhwb3J0IHtcbiAgICBDb3B5Q2VsbHNNZW51SXRlbSxcbiAgICBJQ29udGV4dE1lbnVSZW5kZXJlcixcbiAgICBJTWVudUNvbnRleHRcbn0gZnJvbSBcIi4vaW50ZXJhY3Rpb25zL21lbnVzXCI7XG5cbmV4cG9ydCB7XG4gICAgSUxvY2thYmxlTGF5b3V0LFxuICAgIElSZXNpemVIYW5kbGVQcm9wcyxcbiAgICBPcmllbnRhdGlvbixcbiAgICBSZXNpemVIYW5kbGVcbn0gZnJvbSBcIi4vaW50ZXJhY3Rpb25zL3Jlc2l6ZUhhbmRsZVwiO1xuXG5leHBvcnQge1xuICAgIENvbHVtbkhlYWRlckNlbGwsXG4gICAgSUNvbHVtbkhlYWRlckNlbGxQcm9wcyxcbiAgICBJQ29sdW1uSGVhZGVyUmVuZGVyZXIsXG4gICAgSG9yaXpvbnRhbENlbGxEaXZpZGVyXG59IGZyb20gXCIuL2hlYWRlcnMvY29sdW1uSGVhZGVyQ2VsbFwiO1xuXG5leHBvcnQge1xuICAgIElSb3dIZWFkZXJDZWxsUHJvcHMsXG4gICAgUm93SGVhZGVyQ2VsbFxufSBmcm9tIFwiLi9oZWFkZXJzL3Jvd0hlYWRlckNlbGxcIjtcblxuZXhwb3J0IHtcbiAgICBJRWRpdGFibGVOYW1lUHJvcHMsXG4gICAgRWRpdGFibGVOYW1lXG59IGZyb20gXCIuL2hlYWRlcnMvZWRpdGFibGVOYW1lXCI7XG5cbmV4cG9ydCB7XG4gICAgSUNlbGxJbnRlcnZhbCxcbiAgICBJUmVnaW9uLFxuICAgIElTdHlsZWRSZWdpb25Hcm91cCxcbiAgICBSZWdpb25DYXJkaW5hbGl0eSxcbiAgICBSZWdpb25zLFxuICAgIFNlbGVjdGlvbk1vZGVzXG59IGZyb20gXCIuL3JlZ2lvbnNcIjtcblxuZXhwb3J0IHtcbiAgICBJVGFibGVQcm9wcyxcbiAgICBUYWJsZVxufSBmcm9tIFwiLi90YWJsZVwiO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

@@ -1,4 +0,9 @@

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/
import { IProps } from "@blueprintjs/core";
import * as React from "react";
import { IProps } from "@blueprintjs/core";
export declare type IClientCoordinates = [number, number];

@@ -102,22 +107,1 @@ /**

}
export declare class DragEvents {
static DOUBLE_CLICK_TIMEOUT_MSEC: number;
static isAdditive(event: MouseEvent): boolean;
private handler;
private element;
private activationCoordinates;
private doubleClickTimeoutToken;
private isActivated;
private isDragging;
private lastCoordinates;
attach(element: HTMLElement, handler: IDragHandler): this;
detach(): void;
private isValidDragHandler(handler);
private attachDocumentEventListeners();
private detachDocumentEventListeners();
private initCoordinateData(event);
private updateCoordinateData(event);
private handleMouseDown;
private handleMouseMove;
private handleMouseUp;
}
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -20,2 +22,3 @@ "use strict";

var ReactDOM = require("react-dom");
var dragEvents_1 = require("./dragEvents");
/**

@@ -55,3 +58,3 @@ * This component provides a simple interface for combined drag and/or click

Draggable.prototype.componentDidMount = function () {
this.events = new DragEvents();
this.events = new dragEvents_1.DragEvents();
this.events.attach(ReactDOM.findDOMNode(this), this.props);

@@ -69,135 +72,3 @@ };

exports.Draggable = Draggable;
var DragEvents = (function () {
function DragEvents() {
var _this = this;
this.handleMouseDown = function (event) {
_this.initCoordinateData(event);
if (_this.handler != null && _this.handler.onActivate != null) {
var exitCode = _this.handler.onActivate(event);
if (exitCode === false) {
return;
}
}
_this.isActivated = true;
event.preventDefault();
_this.attachDocumentEventListeners();
};
this.handleMouseMove = function (event) {
event.preventDefault();
if (_this.isActivated) {
_this.isDragging = true;
}
if (_this.isDragging) {
var coords = _this.updateCoordinateData(event);
if (_this.handler != null && _this.handler.onDragMove != null) {
_this.handler.onDragMove(event, coords);
}
}
};
this.handleMouseUp = function (event) {
event.preventDefault();
if (_this.handler != null) {
if (_this.isDragging) {
var coords = _this.updateCoordinateData(event);
if (_this.handler.onDragMove != null) {
_this.handler.onDragMove(event, coords);
}
if (_this.handler.onDragEnd != null) {
_this.handler.onDragEnd(event, coords);
}
}
else if (_this.isActivated) {
if (_this.handler.onDoubleClick != null) {
if (_this.doubleClickTimeoutToken == null) {
// if this the first click of a possible double-click,
// we delay the firing of the click event by the
// timeout.
_this.doubleClickTimeoutToken = setTimeout(function () {
delete _this.doubleClickTimeoutToken;
if (_this.handler.onClick != null) {
_this.handler.onClick(event);
}
}, DragEvents.DOUBLE_CLICK_TIMEOUT_MSEC);
}
else {
// otherwise, this is the second click in the double-
// click so we cancel the single-click timeout and
// fire the double-click event.
clearTimeout(_this.doubleClickTimeoutToken);
delete _this.doubleClickTimeoutToken;
_this.handler.onDoubleClick(event);
}
}
else if (_this.handler.onClick != null) {
_this.handler.onClick(event);
}
}
}
_this.isActivated = false;
_this.isDragging = false;
_this.detachDocumentEventListeners();
};
}
DragEvents.isAdditive = function (event) {
return event.ctrlKey || event.metaKey;
};
DragEvents.prototype.attach = function (element, handler) {
this.detach();
this.handler = handler;
this.element = element;
if (this.isValidDragHandler(handler)) {
this.element.addEventListener("mousedown", this.handleMouseDown);
}
return this;
};
DragEvents.prototype.detach = function () {
if (this.element != null) {
this.element.removeEventListener("mousedown", this.handleMouseDown);
this.detachDocumentEventListeners();
}
};
DragEvents.prototype.isValidDragHandler = function (handler) {
return handler != null && (handler.onActivate != null
|| handler.onDragMove != null
|| handler.onDragEnd != null
|| handler.onClick != null
|| handler.onDoubleClick != null);
};
DragEvents.prototype.attachDocumentEventListeners = function () {
document.addEventListener("mousemove", this.handleMouseMove);
document.addEventListener("mouseup", this.handleMouseUp);
};
DragEvents.prototype.detachDocumentEventListeners = function () {
document.removeEventListener("mousemove", this.handleMouseMove);
document.removeEventListener("mouseup", this.handleMouseUp);
};
DragEvents.prototype.initCoordinateData = function (event) {
this.activationCoordinates = [event.clientX, event.clientY];
this.lastCoordinates = this.activationCoordinates;
};
DragEvents.prototype.updateCoordinateData = function (event) {
var currentCoordinates = [event.clientX, event.clientY];
var deltaCoordinates = [
currentCoordinates[0] - this.lastCoordinates[0],
currentCoordinates[1] - this.lastCoordinates[1],
];
var offsetCoordinates = [
currentCoordinates[0] - this.activationCoordinates[0],
currentCoordinates[1] - this.activationCoordinates[1],
];
var data = {
activation: this.activationCoordinates,
current: currentCoordinates,
delta: deltaCoordinates,
last: this.lastCoordinates,
offset: offsetCoordinates,
};
this.lastCoordinates = [event.clientX, event.clientY];
return data;
};
DragEvents.DOUBLE_CLICK_TIMEOUT_MSEC = 500;
return DragEvents;
}());
exports.DragEvents = DragEvents;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmFjdGlvbnMvZHJhZ2dhYmxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7Ozs7Ozs7Ozs7Ozs7QUFFSCxJQUFZLFVBQVUsV0FBTSx1QkFBdUIsQ0FBQyxDQUFBO0FBQ3BELElBQVksS0FBSyxXQUFNLE9BQU8sQ0FBQyxDQUFBO0FBQy9CLElBQVksUUFBUSxXQUFNLFdBQVcsQ0FBQyxDQUFBO0FBbUZ0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBRUg7SUFBK0IsNkJBQW9DO0lBQW5FO1FBQStCLDhCQUFvQztJQWdCbkUsQ0FBQztJQWJVLDBCQUFNLEdBQWI7UUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0scUNBQWlCLEdBQXhCO1FBQ0ksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFnQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sd0NBQW9CLEdBQTNCO1FBQ0ksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQWhCTDtRQUFDLFVBQVU7aUJBQUE7SUFpQlgsZ0JBQUM7QUFBRCxDQWhCQSxBQWdCQyxDQWhCOEIsS0FBSyxDQUFDLFNBQVMsR0FnQjdDO0FBaEJZLGlCQUFTLFlBZ0JyQixDQUFBO0FBRUQ7SUFBQTtRQUFBLGlCQTRKQztRQTlFVyxvQkFBZSxHQUFHLFVBQUMsS0FBaUI7WUFFeEMsS0FBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRS9CLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEtBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzFELElBQU0sUUFBUSxHQUFHLEtBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoRCxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDckIsTUFBTSxDQUFDO2dCQUNYLENBQUM7WUFDTCxDQUFDO1lBRUQsS0FBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1FBQ3hDLENBQUMsQ0FBQTtRQUVPLG9CQUFlLEdBQUcsVUFBQyxLQUFpQjtZQUN4QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFdkIsRUFBRSxDQUFDLENBQUMsS0FBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ25CLEtBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQzNCLENBQUM7WUFFRCxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDbEIsSUFBTSxNQUFNLEdBQUcsS0FBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUVoRCxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxLQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUMxRCxLQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzNDLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQyxDQUFBO1FBRU8sa0JBQWEsR0FBRyxVQUFDLEtBQWlCO1lBQ3RDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUV2QixFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO29CQUNsQixJQUFNLE1BQU0sR0FBRyxLQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBRWhELEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ2xDLEtBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDM0MsQ0FBQztvQkFFRCxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUNqQyxLQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQzFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7b0JBQzFCLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBRXJDLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyx1QkFBdUIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDOzRCQUN2QyxzREFBc0Q7NEJBQ3RELGdEQUFnRDs0QkFDaEQsV0FBVzs0QkFDWCxLQUFJLENBQUMsdUJBQXVCLEdBQUcsVUFBVSxDQUFDO2dDQUN0QyxPQUFPLEtBQUksQ0FBQyx1QkFBdUIsQ0FBQztnQ0FDcEMsRUFBRSxDQUFDLENBQUMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztvQ0FDL0IsS0FBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0NBQ2hDLENBQUM7NEJBQ0wsQ0FBQyxFQUFFLFVBQVUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO3dCQUM3QyxDQUFDO3dCQUFDLElBQUksQ0FBQyxDQUFDOzRCQUNKLHFEQUFxRDs0QkFDckQsa0RBQWtEOzRCQUNsRCwrQkFBK0I7NEJBQy9CLFlBQVksQ0FBQyxLQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQzs0QkFDM0MsT0FBTyxLQUFJLENBQUMsdUJBQXVCLENBQUM7NEJBQ3BDLEtBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN0QyxDQUFDO29CQUVMLENBQUM7b0JBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ3RDLEtBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNoQyxDQUFDO2dCQUNMLENBQUM7WUFDSixDQUFDO1lBRUYsS0FBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsS0FBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsS0FBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFBO0lBQ0wsQ0FBQztJQXpKaUIscUJBQVUsR0FBeEIsVUFBeUIsS0FBaUI7UUFDdEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUMxQyxDQUFDO0lBV00sMkJBQU0sR0FBYixVQUFjLE9BQW9CLEVBQUUsT0FBcUI7UUFDckQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFFdkIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLDJCQUFNLEdBQWI7UUFDSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO0lBRU8sdUNBQWtCLEdBQTFCLFVBQTJCLE9BQXFCO1FBQzVDLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxJQUFJO2VBQzlDLE9BQU8sQ0FBQyxVQUFVLElBQUksSUFBSTtlQUMxQixPQUFPLENBQUMsU0FBUyxJQUFJLElBQUk7ZUFDekIsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJO2VBQ3ZCLE9BQU8sQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVPLGlEQUE0QixHQUFwQztRQUNJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTyxpREFBNEIsR0FBcEM7UUFDSSxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8sdUNBQWtCLEdBQTFCLFVBQTJCLEtBQWlCO1FBQ3hDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3RELENBQUM7SUFFTyx5Q0FBb0IsR0FBNUIsVUFBNkIsS0FBaUI7UUFDMUMsSUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELElBQU0sZ0JBQWdCLEdBQUc7WUFDckIsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDL0Msa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7U0FDbEQsQ0FBQztRQUNGLElBQU0saUJBQWlCLEdBQUc7WUFDdEIsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztZQUNyRCxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1NBQ3hELENBQUM7UUFDRixJQUFNLElBQUksR0FBRztZQUNULFVBQVUsRUFBRSxJQUFJLENBQUMscUJBQXFCO1lBQ3RDLE9BQU8sRUFBRSxrQkFBa0I7WUFDM0IsS0FBSyxFQUFFLGdCQUFnQjtZQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDMUIsTUFBTSxFQUFFLGlCQUFpQjtTQUNULENBQUM7UUFDckIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RELE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQTNFYSxvQ0FBeUIsR0FBRyxHQUFHLENBQUM7SUEySmxELGlCQUFDO0FBQUQsQ0E1SkEsQUE0SkMsSUFBQTtBQTVKWSxrQkFBVSxhQTRKdEIsQ0FBQSIsImZpbGUiOiJpbnRlcmFjdGlvbnMvZHJhZ2dhYmxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgLSBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqL1xuXG5pbXBvcnQgKiBhcyBQdXJlUmVuZGVyIGZyb20gXCJwdXJlLXJlbmRlci1kZWNvcmF0b3JcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiO1xuXG5pbXBvcnQgeyBJUHJvcHMgfSBmcm9tIFwiQGJsdWVwcmludGpzL2NvcmVcIjtcblxuZXhwb3J0IHR5cGUgSUNsaWVudENvb3JkaW5hdGVzID0gW251bWJlciwgbnVtYmVyXTtcblxuLyoqXG4gKiBWYXJpb3VzIHVzZWZ1bCBjb29yZGluYXRlIHZhbHVlcyBhcmUgcHJlLWNvbXB1dGVkIGZvciB5b3UgYW5kIHN1cHBsaWVkIHRvXG4gKiBvbkRyYWdNb3ZlIGFuZCBvbkRyYWdFbmQgY2FsbGJhY2tzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb29yZGluYXRlRGF0YSB7XG4gICAgLyoqXG4gICAgICogVGhlIGNsaWVudCBjb29yZGluYXRlcyB3aGVyZSB0aGUgaW50ZXJhY3Rpb24gd2FzIGFjdGl2YXRlZC5cbiAgICAgKi9cbiAgICBhY3RpdmF0aW9uOiBJQ2xpZW50Q29vcmRpbmF0ZXM7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY2xpZW50IGNvb3JkaW5hdGVzIG9mIHRoZSBjdXJyZW50IG1vdXNlIGV2ZW50LlxuICAgICAqL1xuICAgIGN1cnJlbnQ6IElDbGllbnRDb29yZGluYXRlcztcblxuICAgIC8qKlxuICAgICAqIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gY3VycmVudCBhbmQgbGFzdCBjbGllbnQgY29vcmRpbmF0ZXMuXG4gICAgICovXG4gICAgZGVsdGE6IElDbGllbnRDb29yZGluYXRlcztcblxuICAgIC8qKlxuICAgICAqIFRoZSBjbGllbnQgY29vcmRpbmF0ZXMgb2YgdGhlIHByZXZpb3VzIG1vdXNlIGV2ZW50LlxuICAgICAqL1xuICAgIGxhc3Q6IElDbGllbnRDb29yZGluYXRlcztcblxuICAgIC8qKlxuICAgICAqIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gY3VycmVudCBhbmQgYWN0aXZhdGlvbiBjbGllbnQgY29vcmRpbmF0ZXMuXG4gICAgICovXG4gICAgb2Zmc2V0OiBJQ2xpZW50Q29vcmRpbmF0ZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURyYWdIYW5kbGVyIHtcbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiB0aGUgbW91c2UgaXMgcHJlc3NlZCBkb3duLiBEcmFnIGFuZCBjbGljayBvcGVyYXRpb25zIG1heVxuICAgICAqIGJlIGNhbmNlbGxlZCBhdCB0aGlzIHBvaW50IGJ5IHJldHVybmluZyBmYWxzZSBmcm9tIHRoaXMgbWV0aG9kLlxuICAgICAqIE90aGVyd2lzZSwgYHN0b3BQcm9wYWdhdGlvbmAgaXMgY2FsbGVkIG9uIHRoZSBldmVudC5cbiAgICAgKi9cbiAgICBvbkFjdGl2YXRlPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIGV2ZXJ5IHRpbWUgdGhlIG1vdXNlIGlzIG1vdmVkIGFmdGVyIGFjdGl2YXRpb24gYW5kIGJlZm9yZSB0aGVcbiAgICAgKiBtb3VzZSBpcyByZWxlYXNlZC4gVGhpcyBtZXRob2QgaXMgYWxzbyBjYWxsZWQgb24gdGhlIGxhc3QgZXZlbiB3aGVuIHRoZVxuICAgICAqIG1vdXNlIGlzIHJlbGVhc2VkLlxuICAgICAqL1xuICAgIG9uRHJhZ01vdmU/OiAoZXZlbnQ6IE1vdXNlRXZlbnQsIGNvb3JkczogSUNvb3JkaW5hdGVEYXRhKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIG1vdXNlIGlzIHJlbGVhc2VkIGlmZiB0aGUgbW91c2Ugd2FzIGRyYWdnZWQgYWZ0ZXJcbiAgICAgKiBhY3RpdmF0aW9uLlxuICAgICAqL1xuICAgIG9uRHJhZ0VuZD86IChldmVudDogTW91c2VFdmVudCwgY29vcmRzOiBJQ29vcmRpbmF0ZURhdGEpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiB0aGUgbW91c2UgaXMgcmVsZWFzZWQgaWZmIHRoZSBtb3VzZSB3YXMgTk9UIGRyYWdnZWQgYWZ0ZXJcbiAgICAgKiBhY3RpdmF0aW9uLlxuICAgICAqXG4gICAgICogVGhpcyB3aWxsIGJlIGNhbGxlZCBhc3luY2hyb25vdXNseSBpZiBgb25Eb3VibGVDbGlja2AgaXMgZGVmaW5lZC4gU2VlXG4gICAgICogdGhhdCBjYWxsYmFjayBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAqL1xuICAgIG9uQ2xpY2s/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgaWZmIHRoZXJlIGFyZSB0d28gY2xpY2sgZXZlbnRzIHdpdGhpbiB0aGUgdGltZW91dFxuICAgICAqIGBEcmFnRXZlbnRzLkRPVUJMRV9DTElDS19USU1FT1VUX01TRUNgLCB3aGljaCBkZWZhdWx0cyB0byA1MDAgbXNlYy5cbiAgICAgKlxuICAgICAqIE5PVEU6IERlZmluaW5nIHRoaXMgY2FsbGJhY2sgcmVxdWlyZXMgdGhhdCB3ZSB3YWl0IHRvIGludm9rZSB0aGVcbiAgICAgKiBgb25DbGlja2AgY2FsbGJhY2sgdW50aWwgdGhlIHRpbWVvdXQgaGFzIGV4cGlyZWQgYW5kIHdlIGFyZSBjZXJ0YWluIHRoZVxuICAgICAqIGludGVyYWN0aW9uIHdhcyBvbmx5IGEgc2luZ2xlIGNsaWNrLiBJZiB0aGlzIGNhbGxiYWNrIGlzIG5vdCBkZWZpbmVkLFxuICAgICAqIHRoZSBgb25DbGlja2AgY2FsbGJhY2sgd2lsbCBiZSBpbnZva2VkIHN5bmNocm9ub3VzbHkgd2l0aCB0aGUgbW91c2V1cFxuICAgICAqIGV2ZW50LlxuICAgICAqL1xuICAgIG9uRG91YmxlQ2xpY2s/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURyYWdnYWJsZVByb3BzIGV4dGVuZHMgSVByb3BzLCBJRHJhZ0hhbmRsZXIge1xufVxuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IHByb3ZpZGVzIGEgc2ltcGxlIGludGVyZmFjZSBmb3IgY29tYmluZWQgZHJhZyBhbmQvb3IgY2xpY2tcbiAqIGV2ZW50cy5cbiAqXG4gKiBTaW5jZSB0aGUgbW91c2UgaW50ZXJhY3Rpb25zIGZvciBkcmFnIGFuZCBjbGljayBhcmUgb3ZlcmxvYWRlZCwgaGVyZSBhcmVcbiAqIHRoZSBldmVudHMgdGhhdCB3aWxsIGZpcmUgaW4gdGhlc2UgY2FzZXM6XG4gKlxuICogQSBDbGljayBJbnRlcmFjdGlvblxuICogMS4gVGhlIHVzZXIgcHJlc3NlcyBkb3duIG9uIHRoZSByZW5kZXIgZWxlbWVudCwgdHJpZ2dlcmluZyB0aGUgb25BY3RpdmF0ZVxuICogICAgY2FsbGJhY2suXG4gKiAyLiBUaGUgdXNlciByZWxlYXNlcyB0aGUgbW91c2UgYnV0dG9uIHdpdGhvdXQgbW92aW5nIGl0LCB0cmlnZ2VyaW5nIHRoZVxuICogICAgb25DbGljayBjYWxsYmFjay5cbiAqXG4gKiBBIERyYWcgSW50ZXJhY3Rpb25cbiAqIDEuIFRoZSB1c2VyIHByZXNzZXMgZG93biBvbiB0aGUgcmVuZGVyIGVsZW1lbnQsIHRyaWdnZXJpbmcgdGhlIG9uQWN0aXZhdGVcbiAqICAgIGNhbGxiYWNrLlxuICogMi4gVGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlLCB0cmlnZ2VyaW5nIHRoZSBvbkRyYWdNb3ZlIGNhbGxiYWNrLlxuICogMy4gVGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlLCB0cmlnZ2VyaW5nIHRoZSBvbkRyYWdNb3ZlIGNhbGxiYWNrLlxuICogNC4gVGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlLCB0cmlnZ2VyaW5nIHRoZSBvbkRyYWdNb3ZlIGNhbGxiYWNrLlxuICogNS4gVGhlIHVzZXIgcmVsZWFzZXMgdGhlIG1vdXNlIGJ1dHRvbiwgdHJpZ2dlcmluZyBhIGZpbmFsIG9uRHJhZ01vdmVcbiAqICAgIGNhbGxiYWNrIGFzIHdlbGwgYXMgYW4gb25EcmFnRW5kIGNhbGxiYWNrLlxuICpcbiAqIElmIGBmYWxzZWAgaXMgcmV0dXJuZWQgZnJvbSB0aGUgb25BY3RpdmF0ZSBjYWxsYmFjaywgbm8gZnVydGhlciBldmVudHNcbiAqIHdpbGwgYmUgZmlyZWQgdW50aWwgdGhlIG5leHQgYWN0aXZhdGlvbi5cbiAqL1xuQFB1cmVSZW5kZXJcbmV4cG9ydCBjbGFzcyBEcmFnZ2FibGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SURyYWdnYWJsZVByb3BzLCB7fT4ge1xuICAgIHByaXZhdGUgZXZlbnRzOiBEcmFnRXZlbnRzO1xuXG4gICAgcHVibGljIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIFJlYWN0LkNoaWxkcmVuLm9ubHkodGhpcy5wcm9wcy5jaGlsZHJlbik7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLmV2ZW50cyA9IG5ldyBEcmFnRXZlbnRzKCk7XG4gICAgICAgIHRoaXMuZXZlbnRzLmF0dGFjaChSZWFjdERPTS5maW5kRE9NTm9kZSh0aGlzKSBhcyBIVE1MRWxlbWVudCwgdGhpcy5wcm9wcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICB0aGlzLmV2ZW50cy5kZXRhY2goKTtcbiAgICAgICAgZGVsZXRlIHRoaXMuZXZlbnRzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERyYWdFdmVudHMge1xuICAgIHB1YmxpYyBzdGF0aWMgRE9VQkxFX0NMSUNLX1RJTUVPVVRfTVNFQyA9IDUwMDtcblxuICAgIHB1YmxpYyBzdGF0aWMgaXNBZGRpdGl2ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICByZXR1cm4gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5O1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlcjogSURyYWdIYW5kbGVyO1xuICAgIHByaXZhdGUgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBwcml2YXRlIGFjdGl2YXRpb25Db29yZGluYXRlczogSUNsaWVudENvb3JkaW5hdGVzO1xuICAgIHByaXZhdGUgZG91YmxlQ2xpY2tUaW1lb3V0VG9rZW46IG51bWJlcjtcbiAgICBwcml2YXRlIGlzQWN0aXZhdGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgaXNEcmFnZ2luZzogYm9vbGVhbjtcbiAgICBwcml2YXRlIGxhc3RDb29yZGluYXRlczogSUNsaWVudENvb3JkaW5hdGVzO1xuXG4gICAgcHVibGljIGF0dGFjaChlbGVtZW50OiBIVE1MRWxlbWVudCwgaGFuZGxlcjogSURyYWdIYW5kbGVyKSB7XG4gICAgICAgIHRoaXMuZGV0YWNoKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZERyYWdIYW5kbGVyKGhhbmRsZXIpKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLmhhbmRsZU1vdXNlRG93bik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGRldGFjaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudCAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLmhhbmRsZU1vdXNlRG93bik7XG4gICAgICAgICAgICB0aGlzLmRldGFjaERvY3VtZW50RXZlbnRMaXN0ZW5lcnMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNWYWxpZERyYWdIYW5kbGVyKGhhbmRsZXI6IElEcmFnSGFuZGxlcikge1xuICAgICAgICByZXR1cm4gaGFuZGxlciAhPSBudWxsICYmIChoYW5kbGVyLm9uQWN0aXZhdGUgIT0gbnVsbFxuICAgICAgICAgICAgfHwgaGFuZGxlci5vbkRyYWdNb3ZlICE9IG51bGxcbiAgICAgICAgICAgIHx8IGhhbmRsZXIub25EcmFnRW5kICE9IG51bGxcbiAgICAgICAgICAgIHx8IGhhbmRsZXIub25DbGljayAhPSBudWxsXG4gICAgICAgICAgICB8fCBoYW5kbGVyLm9uRG91YmxlQ2xpY2sgIT0gbnVsbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhdHRhY2hEb2N1bWVudEV2ZW50TGlzdGVuZXJzKCkge1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIHRoaXMuaGFuZGxlTW91c2VNb3ZlKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIiwgdGhpcy5oYW5kbGVNb3VzZVVwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRldGFjaERvY3VtZW50RXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgdGhpcy5oYW5kbGVNb3VzZU1vdmUpO1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCB0aGlzLmhhbmRsZU1vdXNlVXApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdENvb3JkaW5hdGVEYXRhKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuYWN0aXZhdGlvbkNvb3JkaW5hdGVzID0gW2V2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFldO1xuICAgICAgICB0aGlzLmxhc3RDb29yZGluYXRlcyA9IHRoaXMuYWN0aXZhdGlvbkNvb3JkaW5hdGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ29vcmRpbmF0ZURhdGEoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgY29uc3QgY3VycmVudENvb3JkaW5hdGVzID0gW2V2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFldO1xuICAgICAgICBjb25zdCBkZWx0YUNvb3JkaW5hdGVzID0gW1xuICAgICAgICAgICAgY3VycmVudENvb3JkaW5hdGVzWzBdIC0gdGhpcy5sYXN0Q29vcmRpbmF0ZXNbMF0sXG4gICAgICAgICAgICBjdXJyZW50Q29vcmRpbmF0ZXNbMV0gLSB0aGlzLmxhc3RDb29yZGluYXRlc1sxXSxcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0Q29vcmRpbmF0ZXMgPSBbXG4gICAgICAgICAgICBjdXJyZW50Q29vcmRpbmF0ZXNbMF0gLSB0aGlzLmFjdGl2YXRpb25Db29yZGluYXRlc1swXSxcbiAgICAgICAgICAgIGN1cnJlbnRDb29yZGluYXRlc1sxXSAtIHRoaXMuYWN0aXZhdGlvbkNvb3JkaW5hdGVzWzFdLFxuICAgICAgICBdO1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYWN0aXZhdGlvbjogdGhpcy5hY3RpdmF0aW9uQ29vcmRpbmF0ZXMsXG4gICAgICAgICAgICBjdXJyZW50OiBjdXJyZW50Q29vcmRpbmF0ZXMsXG4gICAgICAgICAgICBkZWx0YTogZGVsdGFDb29yZGluYXRlcyxcbiAgICAgICAgICAgIGxhc3Q6IHRoaXMubGFzdENvb3JkaW5hdGVzLFxuICAgICAgICAgICAgb2Zmc2V0OiBvZmZzZXRDb29yZGluYXRlcyxcbiAgICAgICAgfSBhcyBJQ29vcmRpbmF0ZURhdGE7XG4gICAgICAgIHRoaXMubGFzdENvb3JkaW5hdGVzID0gW2V2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFldO1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZU1vdXNlRG93biA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuXG4gICAgICAgIHRoaXMuaW5pdENvb3JkaW5hdGVEYXRhKGV2ZW50KTtcblxuICAgICAgICBpZiAodGhpcy5oYW5kbGVyICE9IG51bGwgJiYgdGhpcy5oYW5kbGVyLm9uQWN0aXZhdGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgZXhpdENvZGUgPSB0aGlzLmhhbmRsZXIub25BY3RpdmF0ZShldmVudCk7XG4gICAgICAgICAgICBpZiAoZXhpdENvZGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc0FjdGl2YXRlZCA9IHRydWU7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuYXR0YWNoRG9jdW1lbnRFdmVudExpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlTW91c2VNb3ZlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0RyYWdnaW5nKSB7XG4gICAgICAgICAgICBjb25zdCBjb29yZHMgPSB0aGlzLnVwZGF0ZUNvb3JkaW5hdGVEYXRhKGV2ZW50KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaGFuZGxlciAhPSBudWxsICYmIHRoaXMuaGFuZGxlci5vbkRyYWdNb3ZlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25EcmFnTW92ZShldmVudCwgY29vcmRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlTW91c2VVcCA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmhhbmRsZXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNEcmFnZ2luZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvb3JkcyA9IHRoaXMudXBkYXRlQ29vcmRpbmF0ZURhdGEoZXZlbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFuZGxlci5vbkRyYWdNb3ZlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uRHJhZ01vdmUoZXZlbnQsIGNvb3Jkcyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFuZGxlci5vbkRyYWdFbmQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZXIub25EcmFnRW5kKGV2ZW50LCBjb29yZHMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0FjdGl2YXRlZCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhbmRsZXIub25Eb3VibGVDbGljayAhPSBudWxsKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZG91YmxlQ2xpY2tUaW1lb3V0VG9rZW4gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhpcyB0aGUgZmlyc3QgY2xpY2sgb2YgYSBwb3NzaWJsZSBkb3VibGUtY2xpY2ssXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBkZWxheSB0aGUgZmlyaW5nIG9mIHRoZSBjbGljayBldmVudCBieSB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRpbWVvdXQuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRvdWJsZUNsaWNrVGltZW91dFRva2VuID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuZG91YmxlQ2xpY2tUaW1lb3V0VG9rZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFuZGxlci5vbkNsaWNrICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uQ2xpY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIERyYWdFdmVudHMuRE9VQkxFX0NMSUNLX1RJTUVPVVRfTVNFQyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHRoaXMgaXMgdGhlIHNlY29uZCBjbGljayBpbiB0aGUgZG91YmxlLVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2sgc28gd2UgY2FuY2VsIHRoZSBzaW5nbGUtY2xpY2sgdGltZW91dCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpcmUgdGhlIGRvdWJsZS1jbGljayBldmVudC5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmRvdWJsZUNsaWNrVGltZW91dFRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmRvdWJsZUNsaWNrVGltZW91dFRva2VuO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uRG91YmxlQ2xpY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaGFuZGxlci5vbkNsaWNrICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVyLm9uQ2xpY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzQWN0aXZhdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRldGFjaERvY3VtZW50RXZlbnRMaXN0ZW5lcnMoKTtcbiAgICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmFjdGlvbnMvZHJhZ2dhYmxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRzs7Ozs7Ozs7Ozs7OztBQUdILElBQVksVUFBVSxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFDcEQsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUFDL0IsSUFBWSxRQUFRLFdBQU0sV0FBVyxDQUFDLENBQUE7QUFFdEMsMkJBQTJCLGNBQWMsQ0FBQyxDQUFBO0FBaUYxQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBRUg7SUFBK0IsNkJBQW9DO0lBQW5FO1FBQStCLDhCQUFvQztJQWdCbkUsQ0FBQztJQWJVLDBCQUFNLEdBQWI7UUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0scUNBQWlCLEdBQXhCO1FBQ0ksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLHVCQUFVLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVNLHdDQUFvQixHQUEzQjtRQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFoQkw7UUFBQyxVQUFVO2lCQUFBO0lBaUJYLGdCQUFDO0FBQUQsQ0FoQkEsQUFnQkMsQ0FoQjhCLEtBQUssQ0FBQyxTQUFTLEdBZ0I3QztBQWhCWSxpQkFBUyxZQWdCckIsQ0FBQSIsImZpbGUiOiJpbnRlcmFjdGlvbnMvZHJhZ2dhYmxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMyBMaWNlbnNlIGFzIG1vZGlmaWVkICh0aGUg4oCcTGljZW5zZeKAnSk7IHlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIGxpY2Vuc2UgYXQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKiBhbmQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9QQVRFTlRTXG4gKi9cblxuaW1wb3J0IHsgSVByb3BzIH0gZnJvbSBcIkBibHVlcHJpbnRqcy9jb3JlXCI7XG5pbXBvcnQgKiBhcyBQdXJlUmVuZGVyIGZyb20gXCJwdXJlLXJlbmRlci1kZWNvcmF0b3JcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSBcInJlYWN0LWRvbVwiO1xuXG5pbXBvcnQgeyBEcmFnRXZlbnRzIH0gZnJvbSBcIi4vZHJhZ0V2ZW50c1wiO1xuXG5leHBvcnQgdHlwZSBJQ2xpZW50Q29vcmRpbmF0ZXMgPSBbbnVtYmVyLCBudW1iZXJdO1xuXG4vKipcbiAqIFZhcmlvdXMgdXNlZnVsIGNvb3JkaW5hdGUgdmFsdWVzIGFyZSBwcmUtY29tcHV0ZWQgZm9yIHlvdSBhbmQgc3VwcGxpZWQgdG9cbiAqIG9uRHJhZ01vdmUgYW5kIG9uRHJhZ0VuZCBjYWxsYmFja3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNvb3JkaW5hdGVEYXRhIHtcbiAgICAvKipcbiAgICAgKiBUaGUgY2xpZW50IGNvb3JkaW5hdGVzIHdoZXJlIHRoZSBpbnRlcmFjdGlvbiB3YXMgYWN0aXZhdGVkLlxuICAgICAqL1xuICAgIGFjdGl2YXRpb246IElDbGllbnRDb29yZGluYXRlcztcblxuICAgIC8qKlxuICAgICAqIFRoZSBjbGllbnQgY29vcmRpbmF0ZXMgb2YgdGhlIGN1cnJlbnQgbW91c2UgZXZlbnQuXG4gICAgICovXG4gICAgY3VycmVudDogSUNsaWVudENvb3JkaW5hdGVzO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBjdXJyZW50IGFuZCBsYXN0IGNsaWVudCBjb29yZGluYXRlcy5cbiAgICAgKi9cbiAgICBkZWx0YTogSUNsaWVudENvb3JkaW5hdGVzO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNsaWVudCBjb29yZGluYXRlcyBvZiB0aGUgcHJldmlvdXMgbW91c2UgZXZlbnQuXG4gICAgICovXG4gICAgbGFzdDogSUNsaWVudENvb3JkaW5hdGVzO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBjdXJyZW50IGFuZCBhY3RpdmF0aW9uIGNsaWVudCBjb29yZGluYXRlcy5cbiAgICAgKi9cbiAgICBvZmZzZXQ6IElDbGllbnRDb29yZGluYXRlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRHJhZ0hhbmRsZXIge1xuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aGVuIHRoZSBtb3VzZSBpcyBwcmVzc2VkIGRvd24uIERyYWcgYW5kIGNsaWNrIG9wZXJhdGlvbnMgbWF5XG4gICAgICogYmUgY2FuY2VsbGVkIGF0IHRoaXMgcG9pbnQgYnkgcmV0dXJuaW5nIGZhbHNlIGZyb20gdGhpcyBtZXRob2QuXG4gICAgICogT3RoZXJ3aXNlLCBgc3RvcFByb3BhZ2F0aW9uYCBpcyBjYWxsZWQgb24gdGhlIGV2ZW50LlxuICAgICAqL1xuICAgIG9uQWN0aXZhdGU/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgZXZlcnkgdGltZSB0aGUgbW91c2UgaXMgbW92ZWQgYWZ0ZXIgYWN0aXZhdGlvbiBhbmQgYmVmb3JlIHRoZVxuICAgICAqIG1vdXNlIGlzIHJlbGVhc2VkLiBUaGlzIG1ldGhvZCBpcyBhbHNvIGNhbGxlZCBvbiB0aGUgbGFzdCBldmVuIHdoZW4gdGhlXG4gICAgICogbW91c2UgaXMgcmVsZWFzZWQuXG4gICAgICovXG4gICAgb25EcmFnTW92ZT86IChldmVudDogTW91c2VFdmVudCwgY29vcmRzOiBJQ29vcmRpbmF0ZURhdGEpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiB0aGUgbW91c2UgaXMgcmVsZWFzZWQgaWZmIHRoZSBtb3VzZSB3YXMgZHJhZ2dlZCBhZnRlclxuICAgICAqIGFjdGl2YXRpb24uXG4gICAgICovXG4gICAgb25EcmFnRW5kPzogKGV2ZW50OiBNb3VzZUV2ZW50LCBjb29yZHM6IElDb29yZGluYXRlRGF0YSkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aGVuIHRoZSBtb3VzZSBpcyByZWxlYXNlZCBpZmYgdGhlIG1vdXNlIHdhcyBOT1QgZHJhZ2dlZCBhZnRlclxuICAgICAqIGFjdGl2YXRpb24uXG4gICAgICpcbiAgICAgKiBUaGlzIHdpbGwgYmUgY2FsbGVkIGFzeW5jaHJvbm91c2x5IGlmIGBvbkRvdWJsZUNsaWNrYCBpcyBkZWZpbmVkLiBTZWVcbiAgICAgKiB0aGF0IGNhbGxiYWNrIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICovXG4gICAgb25DbGljaz86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIENhbGxlZCBpZmYgdGhlcmUgYXJlIHR3byBjbGljayBldmVudHMgd2l0aGluIHRoZSB0aW1lb3V0XG4gICAgICogYERyYWdFdmVudHMuRE9VQkxFX0NMSUNLX1RJTUVPVVRfTVNFQ2AsIHdoaWNoIGRlZmF1bHRzIHRvIDUwMCBtc2VjLlxuICAgICAqXG4gICAgICogTk9URTogRGVmaW5pbmcgdGhpcyBjYWxsYmFjayByZXF1aXJlcyB0aGF0IHdlIHdhaXQgdG8gaW52b2tlIHRoZVxuICAgICAqIGBvbkNsaWNrYCBjYWxsYmFjayB1bnRpbCB0aGUgdGltZW91dCBoYXMgZXhwaXJlZCBhbmQgd2UgYXJlIGNlcnRhaW4gdGhlXG4gICAgICogaW50ZXJhY3Rpb24gd2FzIG9ubHkgYSBzaW5nbGUgY2xpY2suIElmIHRoaXMgY2FsbGJhY2sgaXMgbm90IGRlZmluZWQsXG4gICAgICogdGhlIGBvbkNsaWNrYCBjYWxsYmFjayB3aWxsIGJlIGludm9rZWQgc3luY2hyb25vdXNseSB3aXRoIHRoZSBtb3VzZXVwXG4gICAgICogZXZlbnQuXG4gICAgICovXG4gICAgb25Eb3VibGVDbGljaz86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRHJhZ2dhYmxlUHJvcHMgZXh0ZW5kcyBJUHJvcHMsIElEcmFnSGFuZGxlciB7XG59XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgcHJvdmlkZXMgYSBzaW1wbGUgaW50ZXJmYWNlIGZvciBjb21iaW5lZCBkcmFnIGFuZC9vciBjbGlja1xuICogZXZlbnRzLlxuICpcbiAqIFNpbmNlIHRoZSBtb3VzZSBpbnRlcmFjdGlvbnMgZm9yIGRyYWcgYW5kIGNsaWNrIGFyZSBvdmVybG9hZGVkLCBoZXJlIGFyZVxuICogdGhlIGV2ZW50cyB0aGF0IHdpbGwgZmlyZSBpbiB0aGVzZSBjYXNlczpcbiAqXG4gKiBBIENsaWNrIEludGVyYWN0aW9uXG4gKiAxLiBUaGUgdXNlciBwcmVzc2VzIGRvd24gb24gdGhlIHJlbmRlciBlbGVtZW50LCB0cmlnZ2VyaW5nIHRoZSBvbkFjdGl2YXRlXG4gKiAgICBjYWxsYmFjay5cbiAqIDIuIFRoZSB1c2VyIHJlbGVhc2VzIHRoZSBtb3VzZSBidXR0b24gd2l0aG91dCBtb3ZpbmcgaXQsIHRyaWdnZXJpbmcgdGhlXG4gKiAgICBvbkNsaWNrIGNhbGxiYWNrLlxuICpcbiAqIEEgRHJhZyBJbnRlcmFjdGlvblxuICogMS4gVGhlIHVzZXIgcHJlc3NlcyBkb3duIG9uIHRoZSByZW5kZXIgZWxlbWVudCwgdHJpZ2dlcmluZyB0aGUgb25BY3RpdmF0ZVxuICogICAgY2FsbGJhY2suXG4gKiAyLiBUaGUgdXNlciBtb3ZlcyB0aGUgbW91c2UsIHRyaWdnZXJpbmcgdGhlIG9uRHJhZ01vdmUgY2FsbGJhY2suXG4gKiAzLiBUaGUgdXNlciBtb3ZlcyB0aGUgbW91c2UsIHRyaWdnZXJpbmcgdGhlIG9uRHJhZ01vdmUgY2FsbGJhY2suXG4gKiA0LiBUaGUgdXNlciBtb3ZlcyB0aGUgbW91c2UsIHRyaWdnZXJpbmcgdGhlIG9uRHJhZ01vdmUgY2FsbGJhY2suXG4gKiA1LiBUaGUgdXNlciByZWxlYXNlcyB0aGUgbW91c2UgYnV0dG9uLCB0cmlnZ2VyaW5nIGEgZmluYWwgb25EcmFnTW92ZVxuICogICAgY2FsbGJhY2sgYXMgd2VsbCBhcyBhbiBvbkRyYWdFbmQgY2FsbGJhY2suXG4gKlxuICogSWYgYGZhbHNlYCBpcyByZXR1cm5lZCBmcm9tIHRoZSBvbkFjdGl2YXRlIGNhbGxiYWNrLCBubyBmdXJ0aGVyIGV2ZW50c1xuICogd2lsbCBiZSBmaXJlZCB1bnRpbCB0aGUgbmV4dCBhY3RpdmF0aW9uLlxuICovXG5AUHVyZVJlbmRlclxuZXhwb3J0IGNsYXNzIERyYWdnYWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJRHJhZ2dhYmxlUHJvcHMsIHt9PiB7XG4gICAgcHJpdmF0ZSBldmVudHM6IERyYWdFdmVudHM7XG5cbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gUmVhY3QuQ2hpbGRyZW4ub25seSh0aGlzLnByb3BzLmNoaWxkcmVuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIHRoaXMuZXZlbnRzID0gbmV3IERyYWdFdmVudHMoKTtcbiAgICAgICAgdGhpcy5ldmVudHMuYXR0YWNoKFJlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMpIGFzIEhUTUxFbGVtZW50LCB0aGlzLnByb3BzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgIHRoaXMuZXZlbnRzLmRldGFjaCgpO1xuICAgICAgICBkZWxldGUgdGhpcy5ldmVudHM7XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

@@ -1,5 +0,10 @@

/// <reference types="react" />
import { ILockableLayout, Orientation } from "./resizeHandle";
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/
import { IProps } from "@blueprintjs/core";
import * as React from "react";
import { ILockableLayout, Orientation } from "./resizeHandle";
export declare type IIndexedResizeCallback = (index: number, size: number) => void;

@@ -6,0 +11,0 @@ export interface IResizableProps extends IProps, ILockableLayout {

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -11,5 +13,5 @@ "use strict";

};
var React = require("react");
var index_1 = require("../common/index");
var resizeHandle_1 = require("./resizeHandle");
var React = require("react");
var Resizable = (function (_super) {

@@ -94,2 +96,2 @@ __extends(Resizable, _super);

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmFjdGlvbnMvcmVzaXphYmxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7Ozs7Ozs7QUFFSCxzQkFBc0IsaUJBQWlCLENBQUMsQ0FBQTtBQUN4Qyw2QkFBMkQsZ0JBQWdCLENBQUMsQ0FBQTtBQUU1RSxJQUFZLEtBQUssV0FBTSxPQUFPLENBQUMsQ0FBQTtBQWtFL0I7SUFBd0MsNkJBQWtEO0lBTXRGLG1CQUFtQixLQUFzQixFQUFFLE9BQWE7UUFDcEQsa0JBQU0sS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2QscUJBQUksQ0FBVztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1QsVUFBSTtZQUNKLGFBQWEsRUFBRSxJQUFJO1NBQ3RCLENBQUM7SUFDTixDQUFDO0lBRU0sNkNBQXlCLEdBQWhDLFVBQWlDLFNBQTBCO1FBQy9DLHlCQUFJLENBQWU7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNWLFVBQUk7WUFDSixhQUFhLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sMEJBQU0sR0FBYjtRQUNJLElBQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkQsSUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFcEUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsRUFBRSxZQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxJQUFNLFlBQVksR0FBRyxJQUFJLENBQUMs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c2l6YWJsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIC0gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKi9cblxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tIFwiLi4vY29tbW9uL2luZGV4XCI7XG5pbXBvcnQgeyBJTG9ja2FibGVMYXlvdXQsIE9yaWVudGF0aW9uLCBSZXNpemVIYW5kbGUgfSBmcm9tIFwiLi9yZXNpemVIYW5kbGVcIjtcbmltcG9ydCB7IElQcm9wcyB9IGZyb20gXCJAYmx1ZXByaW50anMvY29yZVwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIElJbmRleGVkUmVzaXplQ2FsbGJhY2sgPSAoaW5kZXg6IG51bWJlciwgc2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIElSZXNpemFibGVQcm9wcyBleHRlbmRzIElQcm9wcywgSUxvY2thYmxlTGF5b3V0IHtcbiAgICAvKipcbiAgICAgKiBFbmFibGVzL2Rpc2FibGVzIHRoZSByZXNpemUgaW50ZXJhY3Rpb24gZm9yIHRoZSBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGlzUmVzaXphYmxlPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHRpb25hbCBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb2x1bW4uXG4gICAgICovXG4gICAgbWF4U2l6ZT86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHRpb25hbCBtaW5pbXVtIHdpZHRoIG9mIHRoZSBjb2x1bW4uXG4gICAgICovXG4gICAgbWluU2l6ZT86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEEgY2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgd2hpbGUgdGhlIHVzZXIgaXMgZHJhZ2dpbmcgdGhlIHJlc2l6ZVxuICAgICAqIGhhbmRsZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaXplIGlzIHRoZSByZXNpemVkIHNpemVcbiAgICAgKi9cbiAgICBvblNpemVDaGFuZ2VkPzogKHNpemU6IG51bWJlcikgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEEgY2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciBpcyBkb25lIGRyYWdnaW5nIHRoZSByZXNpemVcbiAgICAgKiBoYW5kbGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2l6ZSBpcyB0aGUgZmluYWwgcmVzaXplZCBzaXplXG4gICAgICovXG4gICAgb25SZXNpemVFbmQ/OiAoc2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQSBjYWxsYmFjayB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGRvdWJsZSBjbGlja3MgdGhlIHJlc2l6ZSBoYW5kbGVcbiAgICAgKi9cbiAgICBvbkRvdWJsZUNsaWNrPzogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaG93IHRoZSByZXNpemUgaGFuZGxlIGlzIG9yaWVudGVkIGluIHRoZSByZXNpemFibGUgY2hpbGQuXG4gICAgICovXG4gICAgb3JpZW50YXRpb246IE9yaWVudGF0aW9uO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGluaXRpYWwgZGltZW5zaW9uYWwgc2l6ZS5cbiAgICAgKi9cbiAgICBzaXplOiBudW1iZXI7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVzaXplYWJsZVN0YXRlIHtcbiAgICAvKipcbiAgICAgKiBUaGUgZGltZW5zaW9uYWwgc2l6ZSwgcmVzcGVjdGluZyBtaW5pbXVtIGFuZCBtYXhpbXVtIGNvbnN0cmFpbnRzLlxuICAgICAqL1xuICAgIHNpemU/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGltZW5zaW9uYWwgc2l6ZSwgaWdub3JpbmcgbWluaW11bSBhbmQgbWF4aW11bSBjb25zdHJhaW50cy5cbiAgICAgKi9cbiAgICB1bmNsYW1wZWRTaXplPzogbnVtYmVyO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzaXphYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElSZXNpemFibGVQcm9wcywgSVJlc2l6ZWFibGVTdGF0ZT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICBpc1Jlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgbWluU2l6ZTogMCxcbiAgICB9O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBJUmVzaXphYmxlUHJvcHMsIGNvbnRleHQ/OiBhbnkpIHtcbiAgICAgICAgc3VwZXIocHJvcHMsIGNvbnRleHQpO1xuICAgICAgICBjb25zdCB7IHNpemUgfSA9IHByb3BzO1xuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgIHVuY2xhbXBlZFNpemU6IHNpemUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzOiBJUmVzaXphYmxlUHJvcHMpIHtcbiAgICAgICAgY29uc3QgeyBzaXplIH0gPSBuZXh0UHJvcHM7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgIHVuY2xhbXBlZFNpemU6IHNpemUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkID0gUmVhY3QuQ2hpbGRyZW4ub25seSh0aGlzLnByb3BzLmNoaWxkcmVuKTtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBPYmplY3QuYXNzaWduKHt9LCBjaGlsZC5wcm9wcy5zdHlsZSwgdGhpcy5nZXRTdHlsZSgpKTtcblxuICAgICAgICBpZiAodGhpcy5wcm9wcy5pc1Jlc2l6YWJsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHsgc3R5bGUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXNpemVIYW5kbGUgPSB0aGlzLnJlbmRlclJlc2l6ZUhhbmRsZSgpO1xuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7IHN0eWxlLCByZXNpemVIYW5kbGUgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJSZXNpemVIYW5kbGUoKSB7XG4gICAgICAgIGNvbnN0IHsgb25MYXlvdXRMb2NrLCBvbkRvdWJsZUNsaWNrLCBvcmllbnRhdGlvbiB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgICBjb25zdCBvblJlc2l6ZU1vdmUgPSAoX29mZnNldDogbnVtYmVyLCBkZWx0YTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9mZnNldFNpemUoZGVsdGEpO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25TaXplQ2hhbmdlZCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblNpemVDaGFuZ2VkKHRoaXMuc3RhdGUuc2l6ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uUmVzaXplRW5kID0gKF9vZmZzZXQ6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgLy8gcmVzZXQgXCJ1bmNsYW1wZWRcIiBzaXplIG9uIGVuZFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7dW5jbGFtcGVkU2l6ZTogdGhpcy5zdGF0ZS5zaXplfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVzaXplRW5kICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVzaXplRW5kKHRoaXMuc3RhdGUuc2l6ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxSZXNpemVIYW5kbGVcbiAgICAgICAgICAgICAgICBrZXk9XCJyZXNpemUtaGFuZGxlXCJcbiAgICAgICAgICAgICAgICBvbkRvdWJsZUNsaWNrPXtvbkRvdWJsZUNsaWNrfVxuICAgICAgICAgICAgICAgIG9uTGF5b3V0TG9jaz17b25MYXlvdXRMb2NrfVxuICAgICAgICAgICAgICAgIG9uUmVzaXplRW5kPXtvblJlc2l6ZUVuZH1cbiAgICAgICAgICAgICAgICBvblJlc2l6ZU1vdmU9e29uUmVzaXplTW92ZX1cbiAgICAgICAgICAgICAgICBvcmllbnRhdGlvbj17b3JpZW50YXRpb259XG4gICAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIENTUyBzdHlsZSB0byBhcHBseSB0byB0aGUgY2hpbGQgZWxlbWVudCBnaXZlbiB0aGUgc3RhdGUnc1xuICAgICAqIHNpemUgdmFsdWUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRTdHlsZSgpOiBSZWFjdC5DU1NQcm9wZXJ0aWVzIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub3JpZW50YXRpb24gPT09IE9yaWVudGF0aW9uLlZFUlRJQ0FMKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGZsZXhCYXNpczogYCR7dGhpcy5zdGF0ZS5zaXplfXB4YCxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogXCIwcHhcIixcbiAgICAgICAgICAgICAgICB3aWR0aDogYCR7dGhpcy5zdGF0ZS5zaXplfXB4YCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGZsZXhCYXNpczogYCR7dGhpcy5zdGF0ZS5zaXplfXB4YCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGAke3RoaXMuc3RhdGUuc2l6ZX1weGAsXG4gICAgICAgICAgICAgICAgbWluSGVpZ2h0OiBcIjBweFwiLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb2Zmc2V0U2l6ZShvZmZzZXQ6IG51bWJlcikge1xuICAgICAgICBjb25zdCB1bmNsYW1wZWRTaXplID0gdGhpcy5zdGF0ZS51bmNsYW1wZWRTaXplICsgb2Zmc2V0O1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHNpemUgOiBVdGlscy5jbGFtcCh1bmNsYW1wZWRTaXplLCB0aGlzLnByb3BzLm1pblNpemUsIHRoaXMucHJvcHMubWF4U2l6ZSksXG4gICAgICAgICAgICB1bmNsYW1wZWRTaXplLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmFjdGlvbnMvcmVzaXphYmxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRzs7Ozs7OztBQUdILElBQVksS0FBSyxXQUFNLE9BQU8sQ0FBQyxDQUFBO0FBQy9CLHNCQUFzQixpQkFBaUIsQ0FBQyxDQUFBO0FBQ3hDLDZCQUEyRCxnQkFBZ0IsQ0FBQyxDQUFBO0FBa0U1RTtJQUF3Qyw2QkFBa0Q7SUFNdEYsbUJBQW1CLEtBQXNCLEVBQUUsT0FBYTtRQUNwRCxrQkFBTSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDZCxxQkFBSSxDQUFXO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDVCxVQUFJO1lBQ0osYUFBYSxFQUFFLElBQUk7U0FDdEIsQ0FBQztJQUNOLENBQUM7SUFFTSw2Q0FBeUIsR0FBaEMsVUFBaUMsU0FBMEI7UUFDL0MseUJBQUksQ0FBZTtRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ1YsVUFBSTtZQUNKLGFBQWEsRUFBRSxJQUFJO1NBQ3RCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSwwQkFBTSxHQUFiO1FBQ0ksSUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2RCxJQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUVwRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFFLFlBQUssRUFBRSxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELElBQU0sWUFBWSxHQUFHLElBQUksQ0FB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cmVzaXphYmxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMyBMaWNlbnNlIGFzIG1vZGlmaWVkICh0aGUg4oCcTGljZW5zZeKAnSk7IHlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIGxpY2Vuc2UgYXQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKiBhbmQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9QQVRFTlRTXG4gKi9cblxuaW1wb3J0IHsgSVByb3BzIH0gZnJvbSBcIkBibHVlcHJpbnRqcy9jb3JlXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSBcIi4uL2NvbW1vbi9pbmRleFwiO1xuaW1wb3J0IHsgSUxvY2thYmxlTGF5b3V0LCBPcmllbnRhdGlvbiwgUmVzaXplSGFuZGxlIH0gZnJvbSBcIi4vcmVzaXplSGFuZGxlXCI7XG5cbmV4cG9ydCB0eXBlIElJbmRleGVkUmVzaXplQ2FsbGJhY2sgPSAoaW5kZXg6IG51bWJlciwgc2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIElSZXNpemFibGVQcm9wcyBleHRlbmRzIElQcm9wcywgSUxvY2thYmxlTGF5b3V0IHtcbiAgICAvKipcbiAgICAgKiBFbmFibGVzL2Rpc2FibGVzIHRoZSByZXNpemUgaW50ZXJhY3Rpb24gZm9yIHRoZSBjb2x1bW4uXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGlzUmVzaXphYmxlPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHRpb25hbCBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb2x1bW4uXG4gICAgICovXG4gICAgbWF4U2l6ZT86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBvcHRpb25hbCBtaW5pbXVtIHdpZHRoIG9mIHRoZSBjb2x1bW4uXG4gICAgICovXG4gICAgbWluU2l6ZT86IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEEgY2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgd2hpbGUgdGhlIHVzZXIgaXMgZHJhZ2dpbmcgdGhlIHJlc2l6ZVxuICAgICAqIGhhbmRsZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaXplIGlzIHRoZSByZXNpemVkIHNpemVcbiAgICAgKi9cbiAgICBvblNpemVDaGFuZ2VkPzogKHNpemU6IG51bWJlcikgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEEgY2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciBpcyBkb25lIGRyYWdnaW5nIHRoZSByZXNpemVcbiAgICAgKiBoYW5kbGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2l6ZSBpcyB0aGUgZmluYWwgcmVzaXplZCBzaXplXG4gICAgICovXG4gICAgb25SZXNpemVFbmQ/OiAoc2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQSBjYWxsYmFjayB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGRvdWJsZSBjbGlja3MgdGhlIHJlc2l6ZSBoYW5kbGVcbiAgICAgKi9cbiAgICBvbkRvdWJsZUNsaWNrPzogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaG93IHRoZSByZXNpemUgaGFuZGxlIGlzIG9yaWVudGVkIGluIHRoZSByZXNpemFibGUgY2hpbGQuXG4gICAgICovXG4gICAgb3JpZW50YXRpb246IE9yaWVudGF0aW9uO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGluaXRpYWwgZGltZW5zaW9uYWwgc2l6ZS5cbiAgICAgKi9cbiAgICBzaXplOiBudW1iZXI7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVzaXplYWJsZVN0YXRlIHtcbiAgICAvKipcbiAgICAgKiBUaGUgZGltZW5zaW9uYWwgc2l6ZSwgcmVzcGVjdGluZyBtaW5pbXVtIGFuZCBtYXhpbXVtIGNvbnN0cmFpbnRzLlxuICAgICAqL1xuICAgIHNpemU/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGltZW5zaW9uYWwgc2l6ZSwgaWdub3JpbmcgbWluaW11bSBhbmQgbWF4aW11bSBjb25zdHJhaW50cy5cbiAgICAgKi9cbiAgICB1bmNsYW1wZWRTaXplPzogbnVtYmVyO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzaXphYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElSZXNpemFibGVQcm9wcywgSVJlc2l6ZWFibGVTdGF0ZT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgICBpc1Jlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgbWluU2l6ZTogMCxcbiAgICB9O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBJUmVzaXphYmxlUHJvcHMsIGNvbnRleHQ/OiBhbnkpIHtcbiAgICAgICAgc3VwZXIocHJvcHMsIGNvbnRleHQpO1xuICAgICAgICBjb25zdCB7IHNpemUgfSA9IHByb3BzO1xuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgIHVuY2xhbXBlZFNpemU6IHNpemUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzOiBJUmVzaXphYmxlUHJvcHMpIHtcbiAgICAgICAgY29uc3QgeyBzaXplIH0gPSBuZXh0UHJvcHM7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgIHVuY2xhbXBlZFNpemU6IHNpemUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkID0gUmVhY3QuQ2hpbGRyZW4ub25seSh0aGlzLnByb3BzLmNoaWxkcmVuKTtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBPYmplY3QuYXNzaWduKHt9LCBjaGlsZC5wcm9wcy5zdHlsZSwgdGhpcy5nZXRTdHlsZSgpKTtcblxuICAgICAgICBpZiAodGhpcy5wcm9wcy5pc1Jlc2l6YWJsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHsgc3R5bGUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXNpemVIYW5kbGUgPSB0aGlzLnJlbmRlclJlc2l6ZUhhbmRsZSgpO1xuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7IHN0eWxlLCByZXNpemVIYW5kbGUgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJSZXNpemVIYW5kbGUoKSB7XG4gICAgICAgIGNvbnN0IHsgb25MYXlvdXRMb2NrLCBvbkRvdWJsZUNsaWNrLCBvcmllbnRhdGlvbiB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgICBjb25zdCBvblJlc2l6ZU1vdmUgPSAoX29mZnNldDogbnVtYmVyLCBkZWx0YTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9mZnNldFNpemUoZGVsdGEpO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25TaXplQ2hhbmdlZCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblNpemVDaGFuZ2VkKHRoaXMuc3RhdGUuc2l6ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uUmVzaXplRW5kID0gKF9vZmZzZXQ6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgLy8gcmVzZXQgXCJ1bmNsYW1wZWRcIiBzaXplIG9uIGVuZFxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7dW5jbGFtcGVkU2l6ZTogdGhpcy5zdGF0ZS5zaXplfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVzaXplRW5kICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVzaXplRW5kKHRoaXMuc3RhdGUuc2l6ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxSZXNpemVIYW5kbGVcbiAgICAgICAgICAgICAgICBrZXk9XCJyZXNpemUtaGFuZGxlXCJcbiAgICAgICAgICAgICAgICBvbkRvdWJsZUNsaWNrPXtvbkRvdWJsZUNsaWNrfVxuICAgICAgICAgICAgICAgIG9uTGF5b3V0TG9jaz17b25MYXlvdXRMb2NrfVxuICAgICAgICAgICAgICAgIG9uUmVzaXplRW5kPXtvblJlc2l6ZUVuZH1cbiAgICAgICAgICAgICAgICBvblJlc2l6ZU1vdmU9e29uUmVzaXplTW92ZX1cbiAgICAgICAgICAgICAgICBvcmllbnRhdGlvbj17b3JpZW50YXRpb259XG4gICAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIENTUyBzdHlsZSB0byBhcHBseSB0byB0aGUgY2hpbGQgZWxlbWVudCBnaXZlbiB0aGUgc3RhdGUnc1xuICAgICAqIHNpemUgdmFsdWUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRTdHlsZSgpOiBSZWFjdC5DU1NQcm9wZXJ0aWVzIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMub3JpZW50YXRpb24gPT09IE9yaWVudGF0aW9uLlZFUlRJQ0FMKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGZsZXhCYXNpczogYCR7dGhpcy5zdGF0ZS5zaXplfXB4YCxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogXCIwcHhcIixcbiAgICAgICAgICAgICAgICB3aWR0aDogYCR7dGhpcy5zdGF0ZS5zaXplfXB4YCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGZsZXhCYXNpczogYCR7dGhpcy5zdGF0ZS5zaXplfXB4YCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGAke3RoaXMuc3RhdGUuc2l6ZX1weGAsXG4gICAgICAgICAgICAgICAgbWluSGVpZ2h0OiBcIjBweFwiLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb2Zmc2V0U2l6ZShvZmZzZXQ6IG51bWJlcikge1xuICAgICAgICBjb25zdCB1bmNsYW1wZWRTaXplID0gdGhpcy5zdGF0ZS51bmNsYW1wZWRTaXplICsgb2Zmc2V0O1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHNpemUgOiBVdGlscy5jbGFtcCh1bmNsYW1wZWRTaXplLCB0aGlzLnByb3BzLm1pblNpemUsIHRoaXMucHJvcHMubWF4U2l6ZSksXG4gICAgICAgICAgICB1bmNsYW1wZWRTaXplLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=

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

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/
import { IProps } from "@blueprintjs/core";

@@ -3,0 +8,0 @@ import * as React from "react";

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -11,5 +13,5 @@ "use strict";

};
var draggable_1 = require("./draggable");
var classNames = require("classnames");
var React = require("react");
var draggable_1 = require("./draggable");
(function (Orientation) {

@@ -70,7 +72,9 @@ Orientation[Orientation["HORIZONTAL"] = 1] = "HORIZONTAL";

var targetClasses = classNames("bp-table-resize-handle-target", {
"bp-table-dragging": this.state.isDragging,
"bp-table-resize-horizontal": orientation === Orientation.HORIZONTAL,
"bp-table-resize-vertical": orientation === Orientation.VERTICAL,
});
var handleClasses = classNames("bp-table-resize-handle", {
"bp-table-dragging": this.state.isDragging,
});
var handleClasses = classNames("bp-table-resize-handle", { "bp-table-dragging": this.state.isDragging });
return (React.createElement(draggable_1.Draggable, {onActivate: this.handleActivate, onClick: this.handleClick, onDoubleClick: this.handleDoubleClick, onDragEnd: this.handleDragEnd, onDragMove: this.handleDragMove},

@@ -86,2 +90,2 @@ React.createElement("div", {className: targetClasses},

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmFjdGlvbnMvcmVzaXplSGFuZGxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7Ozs7Ozs7QUFFSCwwQkFBMkMsYUFBYSxDQUFDLENBQUE7QUFFekQsSUFBWSxVQUFVLFdBQU0sWUFBWSxDQUFDLENBQUE7QUFDekMsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUFFL0IsV0FBWSxXQUFXO0lBQ25CLHlEQUFjLENBQUE7SUFDZCxxREFBWSxDQUFBO0FBQ2hCLENBQUMsRUFIVyxtQkFBVyxLQUFYLG1CQUFXLFFBR3RCO0FBSEQsSUFBWSxXQUFXLEdBQVgsbUJBR1gsQ0FBQTtBQTBDRDtJQUFrQyxnQ0FBdUQ7SUFBekY7UUFBQSxpQkFrRkM7UUFsRmlDLDhCQUF1RDtRQUM5RSxVQUFLLEdBQXVCO1lBQy9CLFVBQVUsRUFBRSxLQUFLO1NBQ3BCLENBQUM7UUFxQ00sbUJBQWMsR0FBRyxVQUFDLEtBQWlCO1lBQ3ZDLEtBQUksQ0FBQyxRQUFRLENBQUMsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUNsQyxLQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUU5QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDakMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUM7UUFFTSxtQkFBYyxHQUFHLFVBQUMsTUFBa0IsRUFBRSxNQUF1QjtZQUNqRSxJQUFNLGdCQUFnQixHQUFHLEtBQUksQ0FBQyxLQUFLLENBQUMsV0FBcUIsQ0FBQztZQUMxRCxFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNsQyxLQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFD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RyxJQUFDLFNBQVMsRUFBRSxhQUFjO2dCQUMxQixxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFFLGFBQWMsRUFBRzthQUMvQjtTQUNFLENBQ2YsQ0FBQztJQUNOLENBQUM7SUE0Q0wsbUJBQUM7QUFBRCxDQWxGQSxBQWtGQyxDQWxGaUMsS0FBSyxDQUFDLFNBQVMsR0FrRmhEO0FBbEZZLG9CQUFZLGVBa0Z4QixDQUFBIiwiZmlsZSI6ImludGVyYWN0aW9ucy9yZXNpemVIYW5kbGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAtIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbmltcG9ydCB7IERyYWdnYWJsZSwgSUNvb3JkaW5hdGVEYXRhIH0gZnJvbSBcIi4vZHJhZ2dhYmxlXCI7XG5pbXBvcnQgeyBJUHJvcHMgfSBmcm9tIFwiQGJsdWVwcmludGpzL2NvcmVcIjtcbmltcG9ydCAqIGFzIGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgZW51bSBPcmllbnRhdGlvbiB7XG4gICAgSE9SSVpPTlRBTCA9IDEsXG4gICAgVkVSVElDQUwgPSAwLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElMb2NrYWJsZUxheW91dCB7XG4gICAgb25MYXlvdXRMb2NrOiAoaXNMYXlvdXRMb2NrZWQ/OiBib29sZWFuKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElSZXNpemVIYW5kbGVQcm9wcyBleHRlbmRzIElQcm9wcywgSUxvY2thYmxlTGF5b3V0IHtcbiAgICAvKipcbiAgICAgKiBBIGNhbGxiYWNrIHRoYXQgaXMgY2FsbGVkIHdoaWxlIHRoZSB1c2VyIGlzIGRyYWdnaW5nIHRoZSByZXNpemVcbiAgICAgKiBoYW5kbGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2Zmc2V0IGlzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGluaXRpYWwgYW5kIGN1cnJlbnQgY29vcmRpbmF0ZXNcbiAgICAgKiBAcGFyYW0gZGVsdGEgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGFuZCB0aGUgcHJldmlvdXMgb2Zmc2V0XG4gICAgICovXG4gICAgb25SZXNpemVNb3ZlPzogKG9mZnNldDogbnVtYmVyLCBkZWx0YTogbnVtYmVyKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQSBjYWxsYmFjayB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGlzIGRvbmUgZHJhZ2dpbmcgdGhlIHJlc2l6ZVxuICAgICAqIGhhbmRsZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvZmZzZXQgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgaW5pdGlhbCBhbmQgZmluYWwgY29vcmRpbmF0ZXNcbiAgICAgKi9cbiAgICBvblJlc2l6ZUVuZD86IChvZmZzZXQ6IG51bWJlcikgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEEgY2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciBkb3VibGUgY2xpY2tzIHRoZSByZXNpemUgaGFuZGxlXG4gICAgICovXG4gICAgb25Eb3VibGVDbGljaz86ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBBbiBlbnVtIHZhbHVlIHRvIGluZGljYXRlIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgcmVzaXplIGhhbmRsZS5cbiAgICAgKi9cbiAgICBvcmllbnRhdGlvbjogT3JpZW50YXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJlc2l6ZUhhbmRsZVN0YXRlIHtcbiAgICAvKipcbiAgICAgKiBBIGJvb2xlYW4gdGhhdCBpcyB0cnVlIHdoaWxlIHRoZSB1c2VyIGlzIGRyYWdnaW5nIHRoZSByZXNpemUgaGFuZGxlXG4gICAgICovXG4gICAgaXNEcmFnZ2luZzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFJlc2l6ZUhhbmRsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUmVzaXplSGFuZGxlUHJvcHMsIElSZXNpemVIYW5kbGVTdGF0ZT4ge1xuICAgIHB1YmxpYyBzdGF0ZTogSVJlc2l6ZUhhbmRsZVN0YXRlID0ge1xuICAgICAgICBpc0RyYWdnaW5nOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgcHVibGljIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBvblJlc2l6ZU1vdmUsIG9uUmVzaXplRW5kLCBvbkRvdWJsZUNsaWNrLCBvcmllbnRhdGlvbiB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgaWYgKG9uUmVzaXplTW92ZSA9PSBudWxsICYmIG9uUmVzaXplRW5kID09IG51bGwgJiYgb25Eb3VibGVDbGljayA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0Q2xhc3NlcyA9IGNsYXNzTmFtZXMoXG4gICAgICAgICAgICBcImJwLXRhYmxlLXJlc2l6ZS1oYW5kbGUtdGFyZ2V0XCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJicC10YWJsZS1yZXNpemUtaG9yaXpvbnRhbFwiIDogb3JpZW50YXRpb24gPT09IE9yaWVudGF0aW9uLkhPUklaT05UQUwsXG4gICAgICAgICAgICAgICAgXCJicC10YWJsZS1yZXNpemUtdmVydGljYWxcIiA6IG9yaWVudGF0aW9uID09PSBPcmllbnRhdGlvbi5WRVJUSUNBTCxcbiAgICAgICAgICAgICAgICBcImJwLXRhYmxlLWRyYWdnaW5nXCI6IHRoaXMuc3RhdGUuaXNEcmFnZ2luZyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBoYW5kbGVDbGFzc2VzID0gY2xhc3NOYW1lcyhcbiAgICAgICAgICAgIFwiYnAtdGFibGUtcmVzaXplLWhhbmRsZVwiLFxuICAgICAgICAgICAge1wiYnAtdGFibGUtZHJhZ2dpbmdcIjogdGhpcy5zdGF0ZS5pc0RyYWdnaW5nfVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8RHJhZ2dhYmxlXG4gICAgICAgICAgICAgICAgb25BY3RpdmF0ZT17dGhpcy5oYW5kbGVBY3RpdmF0ZX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZUNsaWNrfVxuICAgICAgICAgICAgICAgIG9uRG91YmxlQ2xpY2s9e3RoaXMuaGFuZGxlRG91YmxlQ2xpY2t9XG4gICAgICAgICAgICAgICAgb25EcmFnRW5kPXt0aGlzLmhhbmRsZURyYWdFbmR9XG4gICAgICAgICAgICAgICAgb25EcmFnTW92ZT17dGhpcy5oYW5kbGVEcmFnTW92ZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17dGFyZ2V0Q2xhc3Nlc30+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtoYW5kbGVDbGFzc2VzfSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9EcmFnZ2FibGU+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVBY3RpdmF0ZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtpc0RyYWdnaW5nOiB0cnVlfSk7XG4gICAgICAgIHRoaXMucHJvcHMub25MYXlvdXRMb2NrKHRydWUpO1xuXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcblxuICAgIHByaXZhdGUgaGFuZGxlRHJhZ01vdmUgPSAoX2V2ZW50OiBNb3VzZUV2ZW50LCBjb29yZHM6IElDb29yZGluYXRlRGF0YSkgPT4ge1xuICAgICAgICBjb25zdCBvcmllbnRhdGlvbkluZGV4ID0gdGhpcy5wcm9wcy5vcmllbnRhdGlvbiBhcyBudW1iZXI7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVzaXplTW92ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVzaXplTW92ZShjb29yZHMub2Zmc2V0W29yaWVudGF0aW9uSW5kZXhdLCBjb29yZHMuZGVsdGFbb3JpZW50YXRpb25JbmRleF0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHByaXZhdGUgaGFuZGxlRHJhZ0VuZCA9IChfZXZlbnQ6IE1vdXNlRXZlbnQsIGNvb3JkczogSUNvb3JkaW5hdGVEYXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IG9yaWVudGF0aW9uSW5kZXggPSB0aGlzLnByb3BzLm9yaWVudGF0aW9uIGFzIG51bWJlcjtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7aXNEcmFnZ2luZzogZmFsc2V9KTtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkxheW91dExvY2soZmFsc2UpO1xuXG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVzaXplTW92ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVzaXplTW92ZShjb29yZHMub2Zmc2V0W29yaWVudGF0aW9uSW5kZXhdLCBjb29yZHMuZGVsdGFbb3JpZW50YXRpb25JbmRleF0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVzaXplRW5kICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25SZXNpemVFbmQoY29vcmRzLm9mZnNldFtvcmllbnRhdGlvbkluZGV4XSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBoYW5kbGVDbGljayA9IChfZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7aXNEcmFnZ2luZzogZmFsc2V9KTtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkxheW91dExvY2soZmFsc2UpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGhhbmRsZURvdWJsZUNsaWNrID0gKF9ldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtpc0RyYWdnaW5nOiBmYWxzZX0pO1xuICAgICAgICB0aGlzLnByb3BzLm9uTGF5b3V0TG9jayhmYWxzZSk7XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25Eb3VibGVDbGljayAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uRG91YmxlQ2xpY2soKTtcbiAgICAgICAgfVxuICAgIH07XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmFjdGlvbnMvcmVzaXplSGFuZGxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRzs7Ozs7OztBQUdILElBQVksVUFBVSxXQUFNLFlBQVksQ0FBQyxDQUFBO0FBQ3pDLElBQVksS0FBSyxXQUFNLE9BQU8sQ0FBQyxDQUFBO0FBRS9CLDBCQUEyQyxhQUFhLENBQUMsQ0FBQTtBQUV6RCxXQUFZLFdBQVc7SUFDbkIseURBQWMsQ0FBQTtJQUNkLHFEQUFZLENBQUE7QUFDaEIsQ0FBQyxFQUhXLG1CQUFXLEtBQVgsbUJBQVcsUUFHdEI7QUFIRCxJQUFZLFdBQVcsR0FBWCxtQkFHWCxDQUFBO0FBMENEO0lBQWtDLGdDQUF1RDtJQUF6RjtRQUFBLGlCQThFQztRQTlFaUMsOEJBQXVEO1FBQzlFLFVBQUssR0FBdUI7WUFDL0IsVUFBVSxFQUFFLEtBQUs7U0FDcEIsQ0FBQztRQWlDTSxtQkFBYyxHQUFHLFVBQUMsS0FBaUI7WUFDdkMsS0FBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1lBQ2xDLEtBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTlCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2hCLENBQUMsQ0FBQTtRQUVPLG1CQUFjLEdBQUcsVUFBQyxNQUFrQixFQUFFLE1BQXVCO1lBQ2pFLElBQU0sZ0JBQWdCLEdBQUcsS0FBSSxDQUFDLEtBQUssQ0FBQyxXQUFxQixDQUFDO1lBQzFELEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLEtBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENB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RyxJQUFDLFNBQVMsRUFBRSxhQUFjO2dCQUMxQixxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFFLGFBQWMsRUFBRzthQUMvQjtTQUNFLENBQ2YsQ0FBQztJQUNOLENBQUM7SUE0Q0wsbUJBQUM7QUFBRCxDQTlFQSxBQThFQyxDQTlFaUMsS0FBSyxDQUFDLFNBQVMsR0E4RWhEO0FBOUVZLG9CQUFZLGVBOEV4QixDQUFBIiwiZmlsZSI6ImludGVyYWN0aW9ucy9yZXNpemVIYW5kbGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEJTRC0zIExpY2Vuc2UgYXMgbW9kaWZpZWQgKHRoZSDigJxMaWNlbnNl4oCdKTsgeW91IG1heSBvYnRhaW4gYSBjb3B5XG4gKiBvZiB0aGUgbGljZW5zZSBhdCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqIGFuZCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL1BBVEVOVFNcbiAqL1xuXG5pbXBvcnQgeyBJUHJvcHMgfSBmcm9tIFwiQGJsdWVwcmludGpzL2NvcmVcIjtcbmltcG9ydCAqIGFzIGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBEcmFnZ2FibGUsIElDb29yZGluYXRlRGF0YSB9IGZyb20gXCIuL2RyYWdnYWJsZVwiO1xuXG5leHBvcnQgZW51bSBPcmllbnRhdGlvbiB7XG4gICAgSE9SSVpPTlRBTCA9IDEsXG4gICAgVkVSVElDQUwgPSAwLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElMb2NrYWJsZUxheW91dCB7XG4gICAgb25MYXlvdXRMb2NrOiAoaXNMYXlvdXRMb2NrZWQ/OiBib29sZWFuKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElSZXNpemVIYW5kbGVQcm9wcyBleHRlbmRzIElQcm9wcywgSUxvY2thYmxlTGF5b3V0IHtcbiAgICAvKipcbiAgICAgKiBBIGNhbGxiYWNrIHRoYXQgaXMgY2FsbGVkIHdoaWxlIHRoZSB1c2VyIGlzIGRyYWdnaW5nIHRoZSByZXNpemVcbiAgICAgKiBoYW5kbGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2Zmc2V0IGlzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGluaXRpYWwgYW5kIGN1cnJlbnQgY29vcmRpbmF0ZXNcbiAgICAgKiBAcGFyYW0gZGVsdGEgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGFuZCB0aGUgcHJldmlvdXMgb2Zmc2V0XG4gICAgICovXG4gICAgb25SZXNpemVNb3ZlPzogKG9mZnNldDogbnVtYmVyLCBkZWx0YTogbnVtYmVyKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQSBjYWxsYmFjayB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGlzIGRvbmUgZHJhZ2dpbmcgdGhlIHJlc2l6ZVxuICAgICAqIGhhbmRsZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvZmZzZXQgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgaW5pdGlhbCBhbmQgZmluYWwgY29vcmRpbmF0ZXNcbiAgICAgKi9cbiAgICBvblJlc2l6ZUVuZD86IChvZmZzZXQ6IG51bWJlcikgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEEgY2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciBkb3VibGUgY2xpY2tzIHRoZSByZXNpemUgaGFuZGxlXG4gICAgICovXG4gICAgb25Eb3VibGVDbGljaz86ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBBbiBlbnVtIHZhbHVlIHRvIGluZGljYXRlIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgcmVzaXplIGhhbmRsZS5cbiAgICAgKi9cbiAgICBvcmllbnRhdGlvbjogT3JpZW50YXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJlc2l6ZUhhbmRsZVN0YXRlIHtcbiAgICAvKipcbiAgICAgKiBBIGJvb2xlYW4gdGhhdCBpcyB0cnVlIHdoaWxlIHRoZSB1c2VyIGlzIGRyYWdnaW5nIHRoZSByZXNpemUgaGFuZGxlXG4gICAgICovXG4gICAgaXNEcmFnZ2luZzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFJlc2l6ZUhhbmRsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUmVzaXplSGFuZGxlUHJvcHMsIElSZXNpemVIYW5kbGVTdGF0ZT4ge1xuICAgIHB1YmxpYyBzdGF0ZTogSVJlc2l6ZUhhbmRsZVN0YXRlID0ge1xuICAgICAgICBpc0RyYWdnaW5nOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgcHVibGljIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBvblJlc2l6ZU1vdmUsIG9uUmVzaXplRW5kLCBvbkRvdWJsZUNsaWNrLCBvcmllbnRhdGlvbiB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgaWYgKG9uUmVzaXplTW92ZSA9PSBudWxsICYmIG9uUmVzaXplRW5kID09IG51bGwgJiYgb25Eb3VibGVDbGljayA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0Q2xhc3NlcyA9IGNsYXNzTmFtZXMoXCJicC10YWJsZS1yZXNpemUtaGFuZGxlLXRhcmdldFwiLCB7XG4gICAgICAgICAgICBcImJwLXRhYmxlLWRyYWdnaW5nXCI6IHRoaXMuc3RhdGUuaXNEcmFnZ2luZyxcbiAgICAgICAgICAgIFwiYnAtdGFibGUtcmVzaXplLWhvcml6b250YWxcIiA6IG9yaWVudGF0aW9uID09PSBPcmllbnRhdGlvbi5IT1JJWk9OVEFMLFxuICAgICAgICAgICAgXCJicC10YWJsZS1yZXNpemUtdmVydGljYWxcIiA6IG9yaWVudGF0aW9uID09PSBPcmllbnRhdGlvbi5WRVJUSUNBTCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgaGFuZGxlQ2xhc3NlcyA9IGNsYXNzTmFtZXMoXCJicC10YWJsZS1yZXNpemUtaGFuZGxlXCIsIHtcbiAgICAgICAgICAgIFwiYnAtdGFibGUtZHJhZ2dpbmdcIjogdGhpcy5zdGF0ZS5pc0RyYWdnaW5nLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPERyYWdnYWJsZVxuICAgICAgICAgICAgICAgIG9uQWN0aXZhdGU9e3RoaXMuaGFuZGxlQWN0aXZhdGV9XG4gICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVDbGlja31cbiAgICAgICAgICAgICAgICBvbkRvdWJsZUNsaWNrPXt0aGlzLmhhbmRsZURvdWJsZUNsaWNrfVxuICAgICAgICAgICAgICAgIG9uRHJhZ0VuZD17dGhpcy5oYW5kbGVEcmFnRW5kfVxuICAgICAgICAgICAgICAgIG9uRHJhZ01vdmU9e3RoaXMuaGFuZGxlRHJhZ01vdmV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3RhcmdldENsYXNzZXN9PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17aGFuZGxlQ2xhc3Nlc30gLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvRHJhZ2dhYmxlPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQWN0aXZhdGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7aXNEcmFnZ2luZzogdHJ1ZX0pO1xuICAgICAgICB0aGlzLnByb3BzLm9uTGF5b3V0TG9jayh0cnVlKTtcblxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlRHJhZ01vdmUgPSAoX2V2ZW50OiBNb3VzZUV2ZW50LCBjb29yZHM6IElDb29yZGluYXRlRGF0YSkgPT4ge1xuICAgICAgICBjb25zdCBvcmllbnRhdGlvbkluZGV4ID0gdGhpcy5wcm9wcy5vcmllbnRhdGlvbiBhcyBudW1iZXI7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVzaXplTW92ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVzaXplTW92ZShjb29yZHMub2Zmc2V0W29yaWVudGF0aW9uSW5kZXhdLCBjb29yZHMuZGVsdGFbb3JpZW50YXRpb25JbmRleF0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVEcmFnRW5kID0gKF9ldmVudDogTW91c2VFdmVudCwgY29vcmRzOiBJQ29vcmRpbmF0ZURhdGEpID0+IHtcbiAgICAgICAgY29uc3Qgb3JpZW50YXRpb25JbmRleCA9IHRoaXMucHJvcHMub3JpZW50YXRpb24gYXMgbnVtYmVyO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtpc0RyYWdnaW5nOiBmYWxzZX0pO1xuICAgICAgICB0aGlzLnByb3BzLm9uTGF5b3V0TG9jayhmYWxzZSk7XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZXNpemVNb3ZlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25SZXNpemVNb3ZlKGNvb3Jkcy5vZmZzZXRbb3JpZW50YXRpb25JbmRleF0sIGNvb3Jkcy5kZWx0YVtvcmllbnRhdGlvbkluZGV4XSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZXNpemVFbmQgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vblJlc2l6ZUVuZChjb29yZHMub2Zmc2V0W29yaWVudGF0aW9uSW5kZXhdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ2xpY2sgPSAoX2V2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2lzRHJhZ2dpbmc6IGZhbHNlfSk7XG4gICAgICAgIHRoaXMucHJvcHMub25MYXlvdXRMb2NrKGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZURvdWJsZUNsaWNrID0gKF9ldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtpc0RyYWdnaW5nOiBmYWxzZX0pO1xuICAgICAgICB0aGlzLnByb3BzLm9uTGF5b3V0TG9jayhmYWxzZSk7XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMub25Eb3VibGVDbGljayAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uRG91YmxlQ2xpY2soKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -5,0 +7,0 @@ /**

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -86,2 +88,2 @@ "use strict";

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmFjdGlvbnMvcmVzaXplU2Vuc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRzs7QUFFSDs7Ozs7Ozs7O0dBU0c7QUFDSDtJQUFBO0lBNkVBLENBQUM7SUE1RWlCLG1CQUFNLEdBQXBCLFVBQXFCLE9BQW9CLEVBQUUsUUFBb0I7UUFDM0QsSUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVsRCxJQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBZ0IsQ0FBQztRQUNsRSxZQUFZLENBQUMsU0FBUyxHQUFHLHdCQUF3QixDQUFDO1FBQ2xELFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztRQUM5RCxZQUFZLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztRQUV6RCxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxDLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzVFLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUN4QyxDQUFDO1FBRUQsSUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFDekQsSUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFDeEQsSUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFFekQsSUFBTSxLQUFLLEdBQUc7WUFDVixXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBSSxVQUFVLENBQUM7WUFDdEMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1FBQzlCLENBQUMsQ0FBQztRQUNGLEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxTQUFpQixDQUFDO1FBQ3RCLElBQUksVUFBa0IsQ0FBQztRQUN2QixJQUFNLFFBQVEsR0FBRztZQUNiLElBQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7WUFDekMsSUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUMzQyxFQUFFLENBQUMsQ0FBQyxZQUFZLEtBQUssU0FBUyxJQUFJLGFBQWEsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUM3RCxTQUFTLEdBQUcsWUFBWSxDQUFDO2dCQUN6QixVQUFVLEdBQUcsYUFBYSxDQUFDO2dCQUMzQixTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEIsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDO1FBQ0YsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRTVDLE1BQU0sQ0FBQztZQUNILE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEMsU0FBUyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDL0IsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQVVjLHFCQUFRLEdBQXZCLFVBQXdCLFFBQW9CO1FBQ3hDLElBQU0sS0FBSyxHQUFHO1lBQ1YsU0FBUyxFQUFFLEtBQUs7WUFDaEIsT0FBTyxFQUFFO2dCQUNMLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQ3JDLE1BQU0sQ0FBQztnQkFDWCxDQUFDO2dCQUNELEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixxQkFBcUIsQ0FBQztvQkFDbEIsS0FBSyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7b0JBQ3hCLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7d0JBQ25CLFFBQVEsRUFBRSxDQUFDO29CQUNmLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1lBQ0QsU0FBUyxFQUFFLEtBQUs7U0FDbkIsQ0FBQztRQUNGLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQTFCYyxnQ0FBbUIsR0FBRyxpREFBaUQ7UUFDbEYsK0RBQStELENBQUM7SUFFckQsK0JBQWtCLEdBQUcsbUVBQ3ZCLFlBQVksQ0FBQyxtQkFBbUIsMEpBQ3dCLFlBQVksQ0FBQyxtQkFBbUIsNkhBQ1UsQ0FBQztJQXFCcEgsbUJBQUM7QUFBRCxDQTdFQSxBQTZFQyxJQUFBO0FBN0VZLG9CQUFZLGVBNkV4QixDQUFBIiwiZmlsZSI6ImludGVyYWN0aW9ucy9yZXNpemVTZW5zb3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAtIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbi8qKlxuICogRWZmaWNpZW50bHkgZGV0ZWN0IHdoZW4gYW4gSFRNTEVsZW1lbnQgaXMgcmVzaXplZC5cbiAqXG4gKiBBdHRhY2hlcyBhbiBpbnZpc2libGUgXCJyZXNpemUtc2Vuc29yXCIgZGl2IHRvIHRoZSBlbGVtZW50LiBUaGVuIGl0IGNoZWNrc1xuICogdGhlIGVsZW1lbnQncyBvZmZzZXRXaWR0aCBhbmQgb2Zmc2V0SGVpZ2h0IHdoZW5ldmVyIGEgc2Nyb2xsIGV2ZW50IGlzXG4gKiB0cmlnZ2VyZWQgb24gdGhlIFwicmVzaXplLXNlbnNvclwiIGNoaWxkcmVuLiBUaGVzZSBldmVudHMgYXJlIGZ1cnRoZXJcbiAqIGRlYm91bmNlZCB1c2luZyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuXG4gKlxuICogSW5zcGlyZWQgYnk6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJjai9jc3MtZWxlbWVudC1xdWVyaWVzL2Jsb2IvbWFzdGVyL3NyYy9SZXNpemVTZW5zb3IuanNcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc2l6ZVNlbnNvciB7XG4gICAgcHVibGljIHN0YXRpYyBhdHRhY2goZWxlbWVudDogSFRNTEVsZW1lbnQsIGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIGNvbnN0IGxpZmVjeWNsZSA9IFJlc2l6ZVNlbnNvci5kZWJvdW5jZShjYWxsYmFjayk7XG5cbiAgICAgICAgY29uc3QgcmVzaXplU2Vuc29yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgcmVzaXplU2Vuc29yLmNsYXNzTmFtZSA9IFwiYnAtdGFibGUtcmVzaXplLXNlbnNvclwiO1xuICAgICAgICByZXNpemVTZW5zb3Iuc3R5bGUuY3NzVGV4dCA9IFJlc2l6ZVNlbnNvci5SRVNJWkVfU0VOU09SX1NUWUxFO1xuICAgICAgICByZXNpemVTZW5zb3IuaW5uZXJIVE1MID0gUmVzaXplU2Vuc29yLlJFU0laRV9TRU5TT1JfSFRNTDtcblxuICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHJlc2l6ZVNlbnNvcik7XG5cbiAgICAgICAgaWYgKGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShcInBvc2l0aW9uXCIpID09PSBcInN0YXRpY1wiKSB7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gXCJyZWxhdGl2ZVwiO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXhwYW5kID0gcmVzaXplU2Vuc29yLmNoaWxkTm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGV4cGFuZENoaWxkID0gZXhwYW5kLmNoaWxkTm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHNocmluayA9IHJlc2l6ZVNlbnNvci5jaGlsZE5vZGVzWzFdIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGNvbnN0IHJlc2V0ID0gKCkgPT4ge1xuICAgICAgICAgICAgZXhwYW5kQ2hpbGQuc3R5bGUud2lkdGggID0gXCIxMDAwMDBweFwiO1xuICAgICAgICAgICAgZXhwYW5kQ2hpbGQuc3R5bGUuaGVpZ2h0ID0gXCIxMDAwMDBweFwiO1xuICAgICAgICAgICAgZXhwYW5kLnNjcm9sbExlZnQgPSAxMDAwMDA7XG4gICAgICAgICAgICBleHBhbmQuc2Nyb2xsVG9wID0gMTAwMDAwO1xuICAgICAgICAgICAgc2hyaW5rLnNjcm9sbExlZnQgPSAxMDAwMDA7XG4gICAgICAgICAgICBzaHJpbmsuc2Nyb2xsVG9wID0gMTAwMDAwO1xuICAgICAgICB9O1xuICAgICAgICByZXNldCgpO1xuXG4gICAgICAgIGxldCBsYXN0V2lkdGg6IG51bWJlcjtcbiAgICAgICAgbGV0IGxhc3RIZWlnaHQ6IG51bWJlcjtcbiAgICAgICAgY29uc3Qgb25TY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50V2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRXaWR0aCAhPT0gbGFzdFdpZHRoIHx8IGN1cnJlbnRIZWlnaHQgIT09IGxhc3RIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBsYXN0V2lkdGggPSBjdXJyZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgbGFzdEhlaWdodCA9IGN1cnJlbnRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgbGlmZWN5Y2xlLnRyaWdnZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc2V0KCk7XG4gICAgICAgIH07XG4gICAgICAgIGV4cGFuZC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIG9uU2Nyb2xsKTtcbiAgICAgICAgc2hyaW5rLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgb25TY3JvbGwpO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBlbGVtZW50LnJlbW92ZUNoaWxkKHJlc2l6ZVNlbnNvcik7XG4gICAgICAgICAgICBsaWZlY3ljbGUuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBSRVNJWkVfU0VOU09SX1NUWUxFID0gXCJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgcmlnaHQ6IDA7IFwiICtcbiAgICAgICAgXCJib3R0b206IDA7IG92ZXJmbG93OiBoaWRkZW47IHotaW5kZXg6IC0xOyB2aXNpYmlsaXR5OiBoaWRkZW47XCI7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBSRVNJWkVfU0VOU09SX0hUTUwgPSBgPGRpdiBjbGFzcz1cImJwLXRhYmxlLXJlc2l6ZS1zZW5zb3ItZXhwYW5kXCJcbiAgICAgICAgc3R5bGU9XCIke1Jlc2l6ZVNlbnNvci5SRVNJWkVfU0VOU09SX1NUWUxFfVwiPjxkaXYgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgdHJhbnNpdGlvbjogMHM7XCJcbiAgICAgICAgPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9XCJicC10YWJsZS1yZXNpemUtc2Vuc29yLXNocmlua1wiIHN0eWxlPVwiJHtSZXNpemVTZW5zb3IuUkVTSVpFX1NFTlNPUl9TVFlMRX1cIlxuICAgICAgICA+PGRpdiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB0cmFuc2l0aW9uOiAwczsgd2lkdGg6IDIwMCU7IGhlaWdodDogMjAwJTtcIj48L2Rpdj48L2Rpdj5gO1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZGVib3VuY2UoY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcbiAgICAgICAgY29uc3Qgc2NvcGUgPSB7XG4gICAgICAgICAgICBjYW5jZWxsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgdHJpZ2dlcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS50cmlnZ2VyZWQgfHwgc2NvcGUuY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2NvcGUudHJpZ2dlcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzY29wZS50cmlnZ2VyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzY29wZS5jYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0cmlnZ2VyZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gc2NvcGU7XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmFjdGlvbnMvcmVzaXplU2Vuc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHOztBQUVIOzs7Ozs7Ozs7R0FTRztBQUNIO0lBQUE7SUE2RUEsQ0FBQztJQTVFaUIsbUJBQU0sR0FBcEIsVUFBcUIsT0FBb0IsRUFBRSxRQUFvQjtRQUMzRCxJQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWxELElBQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFnQixDQUFDO1FBQ2xFLFlBQVksQ0FBQyxTQUFTLEdBQUcsd0JBQXdCLENBQUM7UUFDbEQsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLG1CQUFtQixDQUFDO1FBQzlELFlBQVksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLGtCQUFrQixDQUFDO1FBRXpELE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbEMsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDNUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQ3hDLENBQUM7UUFFRCxJQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUN6RCxJQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUN4RCxJQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUV6RCxJQUFNLEtBQUssR0FBRztZQUNWLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFJLFVBQVUsQ0FBQztZQUN0QyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7WUFDdEMsTUFBTSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7WUFDM0IsTUFBTSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7WUFDMUIsTUFBTSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7WUFDM0IsTUFBTSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7UUFDOUIsQ0FBQyxDQUFDO1FBQ0YsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLFNBQWlCLENBQUM7UUFDdEIsSUFBSSxVQUFrQixDQUFDO1FBQ3ZCLElBQU0sUUFBUSxHQUFHO1lBQ2IsSUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUN6QyxJQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQzNDLEVBQUUsQ0FBQyxDQUFDLFlBQVksS0FBSyxTQUFTLElBQUksYUFBYSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQzdELFNBQVMsR0FBRyxZQUFZLENBQUM7Z0JBQ3pCLFVBQVUsR0FBRyxhQUFhLENBQUM7Z0JBQzNCLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN4QixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFNUMsTUFBTSxDQUFDO1lBQ0gsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsQyxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDLENBQUM7SUFDTixDQUFDO0lBVWMscUJBQVEsR0FBdkIsVUFBd0IsUUFBb0I7UUFDeEMsSUFBTSxLQUFLLEdBQUc7WUFDVixTQUFTLEVBQUUsS0FBSztZQUNoQixPQUFPLEVBQUU7Z0JBQ0wsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztvQkFDckMsTUFBTSxDQUFDO2dCQUNYLENBQUM7Z0JBQ0QsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLHFCQUFxQixDQUFDO29CQUNsQixLQUFLLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDeEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzt3QkFDbkIsUUFBUSxFQUFFLENBQUM7b0JBQ2YsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7WUFDRCxTQUFTLEVBQUUsS0FBSztTQUNuQixDQUFDO1FBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBMUJjLGdDQUFtQixHQUFHLGlEQUFpRDtRQUNsRiwrREFBK0QsQ0FBQztJQUVyRCwrQkFBa0IsR0FBRyxtRUFDdkIsWUFBWSxDQUFDLG1CQUFtQiwwSkFDd0IsWUFBWSxDQUFDLG1CQUFtQiw2SEFDVSxDQUFDO0lBcUJwSCxtQkFBQztBQUFELENBN0VBLEFBNkVDLElBQUE7QUE3RVksb0JBQVksZUE2RXhCLENBQUEiLCJmaWxlIjoiaW50ZXJhY3Rpb25zL3Jlc2l6ZVNlbnNvci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQlNELTMgTGljZW5zZSBhcyBtb2RpZmllZCAodGhlIOKAnExpY2Vuc2XigJ0pOyB5b3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBsaWNlbnNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvUEFURU5UU1xuICovXG5cbi8qKlxuICogRWZmaWNpZW50bHkgZGV0ZWN0IHdoZW4gYW4gSFRNTEVsZW1lbnQgaXMgcmVzaXplZC5cbiAqXG4gKiBBdHRhY2hlcyBhbiBpbnZpc2libGUgXCJyZXNpemUtc2Vuc29yXCIgZGl2IHRvIHRoZSBlbGVtZW50LiBUaGVuIGl0IGNoZWNrc1xuICogdGhlIGVsZW1lbnQncyBvZmZzZXRXaWR0aCBhbmQgb2Zmc2V0SGVpZ2h0IHdoZW5ldmVyIGEgc2Nyb2xsIGV2ZW50IGlzXG4gKiB0cmlnZ2VyZWQgb24gdGhlIFwicmVzaXplLXNlbnNvclwiIGNoaWxkcmVuLiBUaGVzZSBldmVudHMgYXJlIGZ1cnRoZXJcbiAqIGRlYm91bmNlZCB1c2luZyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUuXG4gKlxuICogSW5zcGlyZWQgYnk6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXJjai9jc3MtZWxlbWVudC1xdWVyaWVzL2Jsb2IvbWFzdGVyL3NyYy9SZXNpemVTZW5zb3IuanNcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc2l6ZVNlbnNvciB7XG4gICAgcHVibGljIHN0YXRpYyBhdHRhY2goZWxlbWVudDogSFRNTEVsZW1lbnQsIGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIGNvbnN0IGxpZmVjeWNsZSA9IFJlc2l6ZVNlbnNvci5kZWJvdW5jZShjYWxsYmFjayk7XG5cbiAgICAgICAgY29uc3QgcmVzaXplU2Vuc29yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgcmVzaXplU2Vuc29yLmNsYXNzTmFtZSA9IFwiYnAtdGFibGUtcmVzaXplLXNlbnNvclwiO1xuICAgICAgICByZXNpemVTZW5zb3Iuc3R5bGUuY3NzVGV4dCA9IFJlc2l6ZVNlbnNvci5SRVNJWkVfU0VOU09SX1NUWUxFO1xuICAgICAgICByZXNpemVTZW5zb3IuaW5uZXJIVE1MID0gUmVzaXplU2Vuc29yLlJFU0laRV9TRU5TT1JfSFRNTDtcblxuICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHJlc2l6ZVNlbnNvcik7XG5cbiAgICAgICAgaWYgKGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShcInBvc2l0aW9uXCIpID09PSBcInN0YXRpY1wiKSB7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gXCJyZWxhdGl2ZVwiO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXhwYW5kID0gcmVzaXplU2Vuc29yLmNoaWxkTm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGV4cGFuZENoaWxkID0gZXhwYW5kLmNoaWxkTm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHNocmluayA9IHJlc2l6ZVNlbnNvci5jaGlsZE5vZGVzWzFdIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGNvbnN0IHJlc2V0ID0gKCkgPT4ge1xuICAgICAgICAgICAgZXhwYW5kQ2hpbGQuc3R5bGUud2lkdGggID0gXCIxMDAwMDBweFwiO1xuICAgICAgICAgICAgZXhwYW5kQ2hpbGQuc3R5bGUuaGVpZ2h0ID0gXCIxMDAwMDBweFwiO1xuICAgICAgICAgICAgZXhwYW5kLnNjcm9sbExlZnQgPSAxMDAwMDA7XG4gICAgICAgICAgICBleHBhbmQuc2Nyb2xsVG9wID0gMTAwMDAwO1xuICAgICAgICAgICAgc2hyaW5rLnNjcm9sbExlZnQgPSAxMDAwMDA7XG4gICAgICAgICAgICBzaHJpbmsuc2Nyb2xsVG9wID0gMTAwMDAwO1xuICAgICAgICB9O1xuICAgICAgICByZXNldCgpO1xuXG4gICAgICAgIGxldCBsYXN0V2lkdGg6IG51bWJlcjtcbiAgICAgICAgbGV0IGxhc3RIZWlnaHQ6IG51bWJlcjtcbiAgICAgICAgY29uc3Qgb25TY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50V2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRXaWR0aCAhPT0gbGFzdFdpZHRoIHx8IGN1cnJlbnRIZWlnaHQgIT09IGxhc3RIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBsYXN0V2lkdGggPSBjdXJyZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgbGFzdEhlaWdodCA9IGN1cnJlbnRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgbGlmZWN5Y2xlLnRyaWdnZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc2V0KCk7XG4gICAgICAgIH07XG4gICAgICAgIGV4cGFuZC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIG9uU2Nyb2xsKTtcbiAgICAgICAgc2hyaW5rLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgb25TY3JvbGwpO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBlbGVtZW50LnJlbW92ZUNoaWxkKHJlc2l6ZVNlbnNvcik7XG4gICAgICAgICAgICBsaWZlY3ljbGUuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBSRVNJWkVfU0VOU09SX1NUWUxFID0gXCJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgcmlnaHQ6IDA7IFwiICtcbiAgICAgICAgXCJib3R0b206IDA7IG92ZXJmbG93OiBoaWRkZW47IHotaW5kZXg6IC0xOyB2aXNpYmlsaXR5OiBoaWRkZW47XCI7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBSRVNJWkVfU0VOU09SX0hUTUwgPSBgPGRpdiBjbGFzcz1cImJwLXRhYmxlLXJlc2l6ZS1zZW5zb3ItZXhwYW5kXCJcbiAgICAgICAgc3R5bGU9XCIke1Jlc2l6ZVNlbnNvci5SRVNJWkVfU0VOU09SX1NUWUxFfVwiPjxkaXYgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgdHJhbnNpdGlvbjogMHM7XCJcbiAgICAgICAgPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9XCJicC10YWJsZS1yZXNpemUtc2Vuc29yLXNocmlua1wiIHN0eWxlPVwiJHtSZXNpemVTZW5zb3IuUkVTSVpFX1NFTlNPUl9TVFlMRX1cIlxuICAgICAgICA+PGRpdiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgdG9wOiAwOyB0cmFuc2l0aW9uOiAwczsgd2lkdGg6IDIwMCU7IGhlaWdodDogMjAwJTtcIj48L2Rpdj48L2Rpdj5gO1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZGVib3VuY2UoY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcbiAgICAgICAgY29uc3Qgc2NvcGUgPSB7XG4gICAgICAgICAgICBjYW5jZWxsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgdHJpZ2dlcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS50cmlnZ2VyZWQgfHwgc2NvcGUuY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2NvcGUudHJpZ2dlcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzY29wZS50cmlnZ2VyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzY29wZS5jYW5jZWxsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0cmlnZ2VyZWQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gc2NvcGU7XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

@@ -1,9 +0,4 @@

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
*/
import * as React from "react";
import { ICoordinateData } from "../interactions/draggable";
import { IRegion } from "../regions";
import * as React from "react";
export interface ISelectableProps {

@@ -10,0 +5,0 @@ /**

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -25,6 +27,7 @@ "use strict";

};
var PureRender = require("pure-render-decorator");
var React = require("react");
var dragEvents_1 = require("../interactions/dragEvents");
var draggable_1 = require("../interactions/draggable");
var regions_1 = require("../regions");
var PureRender = require("pure-render-decorator");
var React = require("react");
var DragSelectable = (function (_super) {

@@ -48,3 +51,3 @@ __extends(DragSelectable, _super);

// selection entirely.
if (draggable_1.DragEvents.isAdditive(event)) {
if (dragEvents_1.DragEvents.isAdditive(event)) {
var newSelectedRegions = _this.props.selectedRegions.slice();

@@ -59,3 +62,3 @@ newSelectedRegions.splice(foundIndex, 1);

}
if (draggable_1.DragEvents.isAdditive(event) && _this.props.allowMultipleSelection) {
if (dragEvents_1.DragEvents.isAdditive(event) && _this.props.allowMultipleSelection) {
_this.props.onSelection(regions_1.Regions.add(_this.props.selectedRegions, region));

@@ -116,2 +119,2 @@ }

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmFjdGlvbnMvc2VsZWN0YWJsZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCwwQkFBd0UsMkJBQTJCLENBQUMsQ0FBQTtBQUNwRyx3QkFBaUMsWUFBWSxDQUFDLENBQUE7QUFDOUMsSUFBWSxVQUFVLFdBQU0sdUJBQXVCLENBQUMsQ0FBQTtBQUNwRCxJQUFZLEtBQUssV0FBTSxPQUFPLENBQUMsQ0FBQTtBQXdDL0I7SUFBb0Msa0NBQXlDO0lBQTdFO1FBQUEsaUJBeUZDO1FBekZtQyw4QkFBeUM7UUFzQmpFLG1CQUFjLEdBQUcsVUFBQyxLQUFpQjtZQUN2QyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2pCLENBQUM7WUFFRCxJQUFNLE1BQU0sR0FBRyxLQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU3QyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNqQixDQUFDO1lBRUQsSUFBTSxVQUFVLEdBQUcsaUJBQU8sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNsRixFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQiw0REFBNEQ7Z0JBQzVELDhEQUE4RDtnQkFDOUQsc0JBQXNCO2dCQUN0QixFQUFFLENBQUMsQ0FBQyxzQkFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQy9CLElBQU0sa0JBQWtCLEdBQUcsS0FBSSxDQUFD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Q0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sK0JBQU0sR0FBYjtRQUNJLElBQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxDQUNILG9CQUFDLHFCQUFTLGVBQUssY0FBYyxHQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVMsQ0FDYixDQUNmLENBQUM7SUFDTixDQUFDO0lBRU8sMENBQWlCLEdBQXpCO1FBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUc7WUFDekMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVztZQUN6QixVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDbEMsQ0FBQztJQUNOLENBQUM7SUFyQkw7UUFBQyxVQUFVO3NCQUFBO0lBMEZYLHFCQUFDO0FBQUQsQ0F6RkEsQUF5RkMsQ0F6Rm1DLEtBQUssQ0FBQyxTQUFTLEdBeUZsRDtBQXpGWSxzQkFBYyxpQkF5RjFCLENBQUEiLCJmaWxlIjoiaW50ZXJhY3Rpb25zL3NlbGVjdGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAtIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbmltcG9ydCB7IERyYWdFdmVudHMsIERyYWdnYWJsZSwgSUNvb3JkaW5hdGVEYXRhLCBJRHJhZ2dhYmxlUHJvcHMgfSBmcm9tIFwiLi4vaW50ZXJhY3Rpb25zL2RyYWdnYWJsZVwiO1xuaW1wb3J0IHsgSVJlZ2lvbiwgUmVnaW9ucyB9IGZyb20gXCIuLi9yZWdpb25zXCI7XG5pbXBvcnQgKiBhcyBQdXJlUmVuZGVyIGZyb20gXCJwdXJlLXJlbmRlci1kZWNvcmF0b3JcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTZWxlY3RhYmxlUHJvcHMge1xuICAgIC8qKlxuICAgICAqIElmIGBmYWxzZWAsIG9ubHkgYSBzaW5nbGUgcmVnaW9uIG9mIGEgc2luZ2xlIGNvbHVtbi9yb3cvY2VsbCBtYXkgYmVcbiAgICAgKiBzZWxlY3RlZCBhdCBvbmUgdGltZS4gVXNpbmcgPGtiZCBjbGFzcz1cInB0LWtleVwiPmN0cmw8L2tiZD4gb3JcbiAgICAgKiA8a2JkIGNsYXNzPVwicHQta2V5XCI+bWV0YTwva2JkPiBrZXkgd2lsbCBoYXZlIG5vIGVmZmVjdCxcbiAgICAgKiBhbmQgYSBtb3VzZSBkcmFnIHdpbGwgc2VsZWN0IHRoZSBjdXJyZW50IGNvbHVtbi9yb3cvY2VsbCBvbmx5LlxuICAgICAqL1xuICAgIGFsbG93TXVsdGlwbGVTZWxlY3Rpb246IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBjb250YWluaW5nIHRoZSB0YWJsZSdzIHNlbGVjdGlvbiBSZWdpb25zLlxuICAgICAqL1xuICAgIHNlbGVjdGVkUmVnaW9uczogSVJlZ2lvbltdO1xuXG4gICAgLyoqXG4gICAgICogV2hlbiB0aGUgdXNlciBzZWxlY3RzIHNvbWV0aGluZywgdGhpcyBjYWxsYmFjayBpcyBjYWxsZWQgd2l0aCBhIG5ld1xuICAgICAqIGFycmF5IG9mIFJlZ2lvbnMuIFRoaXMgYXJyYXkgc2hvdWxkIGJlIGNvbnNpZGVyZWQgdGhlIG5ldyBzZWxlY3Rpb25cbiAgICAgKiBzdGF0ZSBmb3IgdGhlIGVudGlyZSB0YWJsZS5cbiAgICAgKi9cbiAgICBvblNlbGVjdGlvbjogKHJlZ2lvbnM6IElSZWdpb25bXSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRHJhZ1NlbGVjdGFibGVQcm9wcyBleHRlbmRzIElTZWxlY3RhYmxlUHJvcHMge1xuICAgIC8qKlxuICAgICAqIEEgY2FsbGJhY2sgdGhhdCBkZXRlcm1pbmVzIGEgYFJlZ2lvbmAgZm9yIHRoZSBzaW5nbGUgYE1vdXNlRXZlbnRgLiBJZlxuICAgICAqIG5vIHZhbGlkIHJlZ2lvbiBjYW4gYmUgZm91bmQsIGBudWxsYCBtYXkgYmUgcmV0dXJuZWQuXG4gICAgICovXG4gICAgbG9jYXRlQ2xpY2s6IChldmVudDogTW91c2VFdmVudCkgPT4gSVJlZ2lvbjtcblxuICAgIC8qKlxuICAgICAqIEEgY2FsbGJhY2sgdGhhdCBkZXRlcm1pbmVzIGEgYFJlZ2lvbmAgZm9yIHRoZSBgTW91c2VFdmVudGAgYW5kXG4gICAgICogY29vcmRpbmF0ZSBkYXRhIHJlcHJlc2VudGluZyBhIGRyYWcuIElmIG5vIHZhbGlkIHJlZ2lvbiBjYW4gYmUgZm91bmQsXG4gICAgICogYG51bGxgIG1heSBiZSByZXR1cm5lZC5cbiAgICAgKi9cbiAgICBsb2NhdGVEcmFnOiAoZXZlbnQ6IE1vdXNlRXZlbnQsIGNvb3JkczogSUNvb3JkaW5hdGVEYXRhKSA9PiBJUmVnaW9uO1xufVxuXG5AUHVyZVJlbmRlclxuZXhwb3J0IGNsYXNzIERyYWdTZWxlY3RhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElEcmFnU2VsZWN0YWJsZVByb3BzLCB7fT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgaXNMZWZ0Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50LmJ1dHRvbiA9PT0gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCBkcmFnZ2FibGVQcm9wcyA9IHRoaXMuZ2V0RHJhZ2dhYmxlUHJvcHMoKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxEcmFnZ2FibGUgey4uLmRyYWdnYWJsZVByb3BzfT5cbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgIDwvRHJhZ2dhYmxlPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RHJhZ2dhYmxlUHJvcHMoKTogSURyYWdnYWJsZVByb3BzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25TZWxlY3Rpb24gPT0gbnVsbCA/IHt9IDoge1xuICAgICAgICAgICAgb25BY3RpdmF0ZTogdGhpcy5oYW5kbGVBY3RpdmF0ZSxcbiAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMuaGFuZGxlQ2xpY2ssXG4gICAgICAgICAgICBvbkRyYWdNb3ZlOiB0aGlzLmhhbmRsZURyYWdNb3ZlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQWN0aXZhdGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFEcmFnU2VsZWN0YWJsZS5pc0xlZnRDbGljayhldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMucHJvcHMubG9jYXRlQ2xpY2soZXZlbnQpO1xuXG4gICAgICAgIGlmICghUmVnaW9ucy5pc1ZhbGlkKHJlZ2lvbikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvdW5kSW5kZXggPSBSZWdpb25zLmZpbmRNYXRjaGluZ1JlZ2lvbih0aGlzLnByb3BzLnNlbGVjdGVkUmVnaW9ucywgcmVnaW9uKTtcbiAgICAgICAgaWYgKGZvdW5kSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAvLyBJZiByZS1jbGlja2luZyBvbiBhbiBleGlzdGluZyByZWdpb24sIHdlIGVpdGhlciBjYXJlZnVsbHlcbiAgICAgICAgICAgIC8vIHJlbW92ZSBpdCBpZiB0aGUgbWV0YSBrZXkgaXMgdXNlZCBvciBvdGhlcndpc2Ugd2UgY2xlYXIgdGhlXG4gICAgICAgICAgICAvLyBzZWxlY3Rpb24gZW50aXJlbHkuXG4gICAgICAgICAgICBpZiAoRHJhZ0V2ZW50cy5pc0FkZGl0aXZlKGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkUmVnaW9ucyA9IHRoaXMucHJvcHMuc2VsZWN0ZWRSZWdpb25zLnNsaWNlKCk7XG4gICAgICAgICAgICAgICAgbmV3U2VsZWN0ZWRSZWdpb25zLnNwbGljZShmb3VuZEluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0aW9uKG5ld1NlbGVjdGVkUmVnaW9ucyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25TZWxlY3Rpb24oW10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKERyYWdFdmVudHMuaXNBZGRpdGl2ZShldmVudCkgJiYgdGhpcy5wcm9wcy5hbGxvd011bHRpcGxlU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0aW9uKFJlZ2lvbnMuYWRkKHRoaXMucHJvcHMuc2VsZWN0ZWRSZWdpb25zLCByZWdpb24pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25TZWxlY3Rpb24oW3JlZ2lvbl0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcblxuICAgIHByaXZhdGUgaGFuZGxlRHJhZ01vdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQsIGNvb3JkczogSUNvb3JkaW5hdGVEYXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlZ2lvbiA9ICh0aGlzLnByb3BzLmFsbG93TXVsdGlwbGVTZWxlY3Rpb24pID9cbiAgICAgICAgICAgIHRoaXMucHJvcHMubG9jYXRlRHJhZyhldmVudCwgY29vcmRzKSA6XG4gICAgICAgICAgICB0aGlzLnByb3BzLmxvY2F0ZUNsaWNrKGV2ZW50KTtcblxuICAgICAgICBpZiAoIVJlZ2lvbnMuaXNWYWxpZChyZWdpb24pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0aW9uKFJlZ2lvbnMudXBkYXRlKHRoaXMucHJvcHMuc2VsZWN0ZWRSZWdpb25zLCByZWdpb24pKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBoYW5kbGVDbGljayA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIURyYWdTZWxlY3RhYmxlLmlzTGVmdENsaWNrKGV2ZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVnaW9uID0gdGhpcy5wcm9wcy5sb2NhdGVDbGljayhldmVudCk7XG5cbiAgICAgICAgaWYgKCFSZWdpb25zLmlzVmFsaWQocmVnaW9uKSkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vblNlbGVjdGlvbihbXSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wcm9wcy5zZWxlY3RlZFJlZ2lvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vblNlbGVjdGlvbihSZWdpb25zLnVwZGF0ZSh0aGlzLnByb3BzLnNlbGVjdGVkUmVnaW9ucywgcmVnaW9uKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0aW9uKFtyZWdpb25dKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmFjdGlvbnMvc2VsZWN0YWJsZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILElBQVksVUFBVSxXQUFNLHVCQUF1QixDQUFDLENBQUE7QUFDcEQsSUFBWSxLQUFLLFdBQU0sT0FBTyxDQUFDLENBQUE7QUFDL0IsMkJBQTJCLDRCQUE0QixDQUFDLENBQUE7QUFDeEQsMEJBQTRELDJCQUEyQixDQUFDLENBQUE7QUFDeEYsd0JBQWlDLFlBQVksQ0FBQyxDQUFBO0FBd0M5QztJQUFvQyxrQ0FBeUM7SUFBN0U7UUFBQSxpQkF5RkM7UUF6Rm1DLDhCQUF5QztRQXNCakUsbUJBQWMsR0FBRyxVQUFDLEtBQWlCO1lBQ3ZDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDakIsQ0FBQztZQUVELElBQU0sTUFBTSxHQUFHLEtBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTdDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2pCLENBQUM7WUFFRCxJQUFNLFVBQVUsR0FBRyxpQkFBTyxDQUFDLGtCQUFrQixDQUFDLEtBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2xGLEVBQUUsQ0FBQyxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLDREQUE0RDtnQkFDNUQsOERBQThEO2dCQUM5RCxzQkFBc0I7Z0JBQ3RCLEVBQUUsQ0FBQyxDQUFDLHVCQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztv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QVcsR0FBekIsVUFBMEIsS0FBaUI7UUFDdkMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSwrQkFBTSxHQUFiO1FBQ0ksSUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDaEQsTUFBTSxDQUFDLENBQ0gsb0JBQUMscUJBQVMsZUFBSyxjQUFjLEdBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUyxDQUNiLENBQ2YsQ0FBQztJQUNOLENBQUM7SUFFTywwQ0FBaUIsR0FBekI7UUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRztZQUN6QyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDL0IsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ3pCLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYztTQUNsQyxDQUFDO0lBQ04sQ0FBQztJQXJCTDtRQUFDLFVBQVU7c0JBQUE7SUEwRlgscUJBQUM7QUFBRCxDQXpGQSxBQXlGQyxDQXpGbUMsS0FBSyxDQUFDLFNBQVMsR0F5RmxEO0FBekZZLHNCQUFjLGlCQXlGMUIsQ0FBQSIsImZpbGUiOiJpbnRlcmFjdGlvbnMvc2VsZWN0YWJsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQlNELTMgTGljZW5zZSBhcyBtb2RpZmllZCAodGhlIOKAnExpY2Vuc2XigJ0pOyB5b3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBsaWNlbnNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvUEFURU5UU1xuICovXG5cbmltcG9ydCAqIGFzIFB1cmVSZW5kZXIgZnJvbSBcInB1cmUtcmVuZGVyLWRlY29yYXRvclwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBEcmFnRXZlbnRzIH0gZnJvbSBcIi4uL2ludGVyYWN0aW9ucy9kcmFnRXZlbnRzXCI7XG5pbXBvcnQgeyBEcmFnZ2FibGUsIElDb29yZGluYXRlRGF0YSwgSURyYWdnYWJsZVByb3BzIH0gZnJvbSBcIi4uL2ludGVyYWN0aW9ucy9kcmFnZ2FibGVcIjtcbmltcG9ydCB7IElSZWdpb24sIFJlZ2lvbnMgfSBmcm9tIFwiLi4vcmVnaW9uc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTZWxlY3RhYmxlUHJvcHMge1xuICAgIC8qKlxuICAgICAqIElmIGBmYWxzZWAsIG9ubHkgYSBzaW5nbGUgcmVnaW9uIG9mIGEgc2luZ2xlIGNvbHVtbi9yb3cvY2VsbCBtYXkgYmVcbiAgICAgKiBzZWxlY3RlZCBhdCBvbmUgdGltZS4gVXNpbmcgPGtiZCBjbGFzcz1cInB0LWtleVwiPmN0cmw8L2tiZD4gb3JcbiAgICAgKiA8a2JkIGNsYXNzPVwicHQta2V5XCI+bWV0YTwva2JkPiBrZXkgd2lsbCBoYXZlIG5vIGVmZmVjdCxcbiAgICAgKiBhbmQgYSBtb3VzZSBkcmFnIHdpbGwgc2VsZWN0IHRoZSBjdXJyZW50IGNvbHVtbi9yb3cvY2VsbCBvbmx5LlxuICAgICAqL1xuICAgIGFsbG93TXVsdGlwbGVTZWxlY3Rpb246IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBjb250YWluaW5nIHRoZSB0YWJsZSdzIHNlbGVjdGlvbiBSZWdpb25zLlxuICAgICAqL1xuICAgIHNlbGVjdGVkUmVnaW9uczogSVJlZ2lvbltdO1xuXG4gICAgLyoqXG4gICAgICogV2hlbiB0aGUgdXNlciBzZWxlY3RzIHNvbWV0aGluZywgdGhpcyBjYWxsYmFjayBpcyBjYWxsZWQgd2l0aCBhIG5ld1xuICAgICAqIGFycmF5IG9mIFJlZ2lvbnMuIFRoaXMgYXJyYXkgc2hvdWxkIGJlIGNvbnNpZGVyZWQgdGhlIG5ldyBzZWxlY3Rpb25cbiAgICAgKiBzdGF0ZSBmb3IgdGhlIGVudGlyZSB0YWJsZS5cbiAgICAgKi9cbiAgICBvblNlbGVjdGlvbjogKHJlZ2lvbnM6IElSZWdpb25bXSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRHJhZ1NlbGVjdGFibGVQcm9wcyBleHRlbmRzIElTZWxlY3RhYmxlUHJvcHMge1xuICAgIC8qKlxuICAgICAqIEEgY2FsbGJhY2sgdGhhdCBkZXRlcm1pbmVzIGEgYFJlZ2lvbmAgZm9yIHRoZSBzaW5nbGUgYE1vdXNlRXZlbnRgLiBJZlxuICAgICAqIG5vIHZhbGlkIHJlZ2lvbiBjYW4gYmUgZm91bmQsIGBudWxsYCBtYXkgYmUgcmV0dXJuZWQuXG4gICAgICovXG4gICAgbG9jYXRlQ2xpY2s6IChldmVudDogTW91c2VFdmVudCkgPT4gSVJlZ2lvbjtcblxuICAgIC8qKlxuICAgICAqIEEgY2FsbGJhY2sgdGhhdCBkZXRlcm1pbmVzIGEgYFJlZ2lvbmAgZm9yIHRoZSBgTW91c2VFdmVudGAgYW5kXG4gICAgICogY29vcmRpbmF0ZSBkYXRhIHJlcHJlc2VudGluZyBhIGRyYWcuIElmIG5vIHZhbGlkIHJlZ2lvbiBjYW4gYmUgZm91bmQsXG4gICAgICogYG51bGxgIG1heSBiZSByZXR1cm5lZC5cbiAgICAgKi9cbiAgICBsb2NhdGVEcmFnOiAoZXZlbnQ6IE1vdXNlRXZlbnQsIGNvb3JkczogSUNvb3JkaW5hdGVEYXRhKSA9PiBJUmVnaW9uO1xufVxuXG5AUHVyZVJlbmRlclxuZXhwb3J0IGNsYXNzIERyYWdTZWxlY3RhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElEcmFnU2VsZWN0YWJsZVByb3BzLCB7fT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgaXNMZWZ0Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50LmJ1dHRvbiA9PT0gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCBkcmFnZ2FibGVQcm9wcyA9IHRoaXMuZ2V0RHJhZ2dhYmxlUHJvcHMoKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxEcmFnZ2FibGUgey4uLmRyYWdnYWJsZVByb3BzfT5cbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgIDwvRHJhZ2dhYmxlPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RHJhZ2dhYmxlUHJvcHMoKTogSURyYWdnYWJsZVByb3BzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25TZWxlY3Rpb24gPT0gbnVsbCA/IHt9IDoge1xuICAgICAgICAgICAgb25BY3RpdmF0ZTogdGhpcy5oYW5kbGVBY3RpdmF0ZSxcbiAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMuaGFuZGxlQ2xpY2ssXG4gICAgICAgICAgICBvbkRyYWdNb3ZlOiB0aGlzLmhhbmRsZURyYWdNb3ZlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQWN0aXZhdGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFEcmFnU2VsZWN0YWJsZS5pc0xlZnRDbGljayhldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMucHJvcHMubG9jYXRlQ2xpY2soZXZlbnQpO1xuXG4gICAgICAgIGlmICghUmVnaW9ucy5pc1ZhbGlkKHJlZ2lvbikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvdW5kSW5kZXggPSBSZWdpb25zLmZpbmRNYXRjaGluZ1JlZ2lvbih0aGlzLnByb3BzLnNlbGVjdGVkUmVnaW9ucywgcmVnaW9uKTtcbiAgICAgICAgaWYgKGZvdW5kSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAvLyBJZiByZS1jbGlja2luZyBvbiBhbiBleGlzdGluZyByZWdpb24sIHdlIGVpdGhlciBjYXJlZnVsbHlcbiAgICAgICAgICAgIC8vIHJlbW92ZSBpdCBpZiB0aGUgbWV0YSBrZXkgaXMgdXNlZCBvciBvdGhlcndpc2Ugd2UgY2xlYXIgdGhlXG4gICAgICAgICAgICAvLyBzZWxlY3Rpb24gZW50aXJlbHkuXG4gICAgICAgICAgICBpZiAoRHJhZ0V2ZW50cy5pc0FkZGl0aXZlKGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkUmVnaW9ucyA9IHRoaXMucHJvcHMuc2VsZWN0ZWRSZWdpb25zLnNsaWNlKCk7XG4gICAgICAgICAgICAgICAgbmV3U2VsZWN0ZWRSZWdpb25zLnNwbGljZShmb3VuZEluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0aW9uKG5ld1NlbGVjdGVkUmVnaW9ucyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25TZWxlY3Rpb24oW10pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKERyYWdFdmVudHMuaXNBZGRpdGl2ZShldmVudCkgJiYgdGhpcy5wcm9wcy5hbGxvd011bHRpcGxlU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uU2VsZWN0aW9uKFJlZ2lvbnMuYWRkKHRoaXMucHJvcHMuc2VsZWN0ZWRSZWdpb25zLCByZWdpb24pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25TZWxlY3Rpb24oW3JlZ2lvbl0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVEcmFnTW92ZSA9IChldmVudDogTW91c2VFdmVudCwgY29vcmRzOiBJQ29vcmRpbmF0ZURhdGEpID0+IHtcbiAgICAgICAgY29uc3QgcmVnaW9uID0gKHRoaXMucHJvcHMuYWxsb3dNdWx0aXBsZVNlbGVjdGlvbikgP1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5sb2NhdGVEcmFnKGV2ZW50LCBjb29yZHMpIDpcbiAgICAgICAgICAgIHRoaXMucHJvcHMubG9jYXRlQ2xpY2soZXZlbnQpO1xuXG4gICAgICAgIGlmICghUmVnaW9ucy5pc1ZhbGlkKHJlZ2lvbikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJvcHMub25TZWxlY3Rpb24oUmVnaW9ucy51cGRhdGUodGhpcy5wcm9wcy5zZWxlY3RlZFJlZ2lvbnMsIHJlZ2lvbikpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFEcmFnU2VsZWN0YWJsZS5pc0xlZnRDbGljayhldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlZ2lvbiA9IHRoaXMucHJvcHMubG9jYXRlQ2xpY2soZXZlbnQpO1xuXG4gICAgICAgIGlmICghUmVnaW9ucy5pc1ZhbGlkKHJlZ2lvbikpIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25TZWxlY3Rpb24oW10pO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuc2VsZWN0ZWRSZWdpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMub25TZWxlY3Rpb24oUmVnaW9ucy51cGRhdGUodGhpcy5wcm9wcy5zZWxlY3RlZFJlZ2lvbnMsIHJlZ2lvbikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vblNlbGVjdGlvbihbcmVnaW9uXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

@@ -1,5 +0,6 @@

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -6,0 +7,0 @@ import { IProps } from "@blueprintjs/core";

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -42,2 +44,2 @@ "use strict";

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXllcnMvZ3VpZGVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7Ozs7Ozs7QUFHSCxJQUFZLFVBQVUsV0FBTSxZQUFZLENBQUMsQ0FBQTtBQUN6QyxJQUFZLEtBQUssV0FBTSxPQUFPLENBQUMsQ0FBQTtBQWMvQjtJQUFnQyw4QkFBcUM7SUFBckU7UUFBZ0MsOEJBQXFDO1FBYXpELHdCQUFtQixHQUFHLFVBQUMsTUFBYyxFQUFFLEtBQWE7WUFDeEQsSUFBTSxLQUFLLEdBQUc7Z0JBQ1YsSUFBSSxFQUFLLE1BQU0sT0FBSTthQUNDLENBQUM7WUFDekIsTUFBTSxDQUFDLENBQ0gscUJBQUMsR0FBRyxJQUFDLFNBQVMsRUFBQywwQ0FBMEMsRUFBQyxHQUFHLEVBQUUsS0FBTSxFQUFDLEtBQUssRUFBRSxLQUFNLEVBQUcsQ0FDekYsQ0FBQztRQUNOLENBQUMsQ0FBQztRQUVNLDBCQUFxQixHQUFHLFVBQUMsTUFBYyxFQUFFLEtBQWE7WUFDMUQsSUFBTSxLQUFLLEdBQUc7Z0JBQ1YsR0FBRyxFQUFLLE1BQU0sT0FBSTthQUNFLENBQUM7WUFDekIsTUFBTSxDQUFDLENBQ0gscUJBQUMsR0FBRyxJQUFDLFNBQVMsRUFBQyw0Q0FBNEMsRUFBQyxHQUFHLEVBQUUsS0FBTSxFQUFDLEtBQUssRUFBRSxLQUFNLEVBQUcsQ0FDM0YsQ0FBQztRQUNOLENBQUMsQ0FBQztJQUNOLENBQUM7SUE3QlUsMkJBQU0sR0FBYjtRQUNJLElBQUEsZUFBa0UsRUFBMUQsa0NBQWMsRUFBRSxzQ0FBZ0IsRUFBRSx3QkFBUyxDQUFnQjtRQUNuRSxJQUFNLFNBQVMsR0FBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsR0FBRyxTQUFTLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN0RyxJQUFNLFdBQVcsR0FBRyxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxHQUFHLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDOUcsTUFBTSxDQUFDLENBQ0gscUJBQUMsR0FBRyxJQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUyxFQUFFLHdCQUF3QixDQUFFO1lBQzNELFNBQVU7WUFDVixXQUFZLENBQ1gsQ0FDVCxDQUFDO0lBQ04sQ0FBQztJQW1CTCxpQkFBQztBQUFELENBOUJBLEFBOEJDLENBOUIrQixLQUFLLENBQUMsU0FBUyxHQThCOUM7QUE5Qlksa0JBQVUsYUE4QnRCLENBQUEiLCJmaWxlIjoibGF5ZXJzL2d1aWRlcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIC0gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKi9cblxuaW1wb3J0IHsgSVByb3BzIH0gZnJvbSBcIkBibHVlcHJpbnRqcy9jb3JlXCI7XG5pbXBvcnQgKiBhcyBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJR3VpZGVMYXllclByb3BzIGV4dGVuZHMgSVByb3BzIHtcbiAgICAvKipcbiAgICAgKiAgVGhlIGxlZnQtb2Zmc2V0IGxvY2F0aW9uIG9mIHRoZSB2ZXJ0aWNhbCBndWlkZXNcbiAgICAgKi9cbiAgICB2ZXJ0aWNhbEd1aWRlcz86IG51bWJlcltdO1xuXG4gICAgLyoqXG4gICAgICogIFRoZSB0b3Atb2Zmc2V0IGxvY2F0aW9uIG9mIHRoZSBob3Jpem9udGFsIGd1aWRlc1xuICAgICAqL1xuICAgIGhvcml6b250YWxHdWlkZXM/OiBudW1iZXJbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEd1aWRlTGF5ZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SUd1aWRlTGF5ZXJQcm9wcywge30+IHtcbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IHZlcnRpY2FsR3VpZGVzLCBob3Jpem9udGFsR3VpZGVzLCBjbGFzc05hbWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FscyA9ICh2ZXJ0aWNhbEd1aWRlcyA9PSBudWxsKSA/IHVuZGVmaW5lZCA6IHZlcnRpY2FsR3VpZGVzLm1hcCh0aGlzLnJlbmRlclZlcnRpY2FsR3VpZGUpO1xuICAgICAgICBjb25zdCBob3Jpem9udGFscyA9IChob3Jpem9udGFsR3VpZGVzID09IG51bGwpID8gdW5kZWZpbmVkIDogaG9yaXpvbnRhbEd1aWRlcy5tYXAodGhpcy5yZW5kZXJIb3Jpem9udGFsR3VpZGUpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3NOYW1lLCBcImJwLXRhYmxlLW92ZXJsYXktbGF5ZXJcIil9PlxuICAgICAgICAgICAgICAgIHt2ZXJ0aWNhbHN9XG4gICAgICAgICAgICAgICAge2hvcml6b250YWxzfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJWZXJ0aWNhbEd1aWRlID0gKG9mZnNldDogbnVtYmVyLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0eWxlID0ge1xuICAgICAgICAgICAgbGVmdDogYCR7b2Zmc2V0fXB4YCxcbiAgICAgICAgfSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJicC10YWJsZS1vdmVybGF5IGJwLXRhYmxlLXZlcnRpY2FsLWd1aWRlXCIga2V5PXtpbmRleH0gc3R5bGU9e3N0eWxlfSAvPlxuICAgICAgICApO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHJlbmRlckhvcml6b250YWxHdWlkZSA9IChvZmZzZXQ6IG51bWJlciwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBzdHlsZSA9IHtcbiAgICAgICAgICAgIHRvcDogYCR7b2Zmc2V0fXB4YCxcbiAgICAgICAgfSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJicC10YWJsZS1vdmVybGF5IGJwLXRhYmxlLWhvcml6b250YWwtZ3VpZGVcIiBrZXk9e2luZGV4fSBzdHlsZT17c3R5bGV9IC8+XG4gICAgICAgICk7XG4gICAgfTtcbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXllcnMvZ3VpZGVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRzs7Ozs7OztBQUdILElBQVksVUFBVSxXQUFNLFlBQVksQ0FBQyxDQUFBO0FBQ3pDLElBQVksS0FBSyxXQUFNLE9BQU8sQ0FBQyxDQUFBO0FBYy9CO0lBQWdDLDhCQUFxQztJQUFyRTtRQUFnQyw4QkFBcUM7UUFhekQsd0JBQW1CLEdBQUcsVUFBQyxNQUFjLEVBQUUsS0FBYTtZQUN4RCxJQUFNLEtBQUssR0FBRztnQkFDVixJQUFJLEVBQUssTUFBTSxPQUFJO2FBQ0MsQ0FBQztZQUN6QixNQUFNLENBQUMsQ0FDSCxxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFDLDBDQUEwQyxFQUFDLEdBQUcsRUFBRSxLQUFNLEVBQUMsS0FBSyxFQUFFLEtBQU0sRUFBRyxDQUN6RixDQUFDO1FBQ04sQ0FBQyxDQUFBO1FBRU8sMEJBQXFCLEdBQUcsVUFBQyxNQUFjLEVBQUUsS0FBYTtZQUMxRCxJQUFNLEtBQUssR0FBRztnQkFDVixHQUFHLEVBQUssTUFBTSxPQUFJO2FBQ0UsQ0FBQztZQUN6QixNQUFNLENBQUMsQ0FDSCxxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFDLDRDQUE0QyxFQUFDLEdBQUcsRUFBRSxLQUFNLEVBQUMsS0FBSyxFQUFFLEtBQU0sRUFBRyxDQUMzRixDQUFDO1FBQ04sQ0FBQyxDQUFBO0lBQ0wsQ0FBQztJQTdCVSwyQkFBTSxHQUFiO1FBQ0ksSUFBQSxlQUFrRSxFQUExRCxrQ0FBYyxFQUFFLHNDQUFnQixFQUFFLHdCQUFTLENBQWdCO1FBQ25FLElBQU0sU0FBUyxHQUFHLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxHQUFHLFNBQVMsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3RHLElBQU0sV0FBVyxHQUFHLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLEdBQUcsU0FBUyxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM5RyxNQUFNLENBQUMsQ0FDSCxxQkFBQyxHQUFHLElBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUU7WUFDM0QsU0FBVTtZQUNWLFdBQVksQ0FDWCxDQUNULENBQUM7SUFDTixDQUFDO0lBbUJMLGlCQUFDO0FBQUQsQ0E5QkEsQUE4QkMsQ0E5QitCLEtBQUssQ0FBQyxTQUFTLEdBOEI5QztBQTlCWSxrQkFBVSxhQThCdEIsQ0FBQSIsImZpbGUiOiJsYXllcnMvZ3VpZGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMyBMaWNlbnNlIGFzIG1vZGlmaWVkICh0aGUg4oCcTGljZW5zZeKAnSk7IHlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIGxpY2Vuc2UgYXQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKiBhbmQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9QQVRFTlRTXG4gKi9cblxuaW1wb3J0IHsgSVByb3BzIH0gZnJvbSBcIkBibHVlcHJpbnRqcy9jb3JlXCI7XG5pbXBvcnQgKiBhcyBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJR3VpZGVMYXllclByb3BzIGV4dGVuZHMgSVByb3BzIHtcbiAgICAvKipcbiAgICAgKiAgVGhlIGxlZnQtb2Zmc2V0IGxvY2F0aW9uIG9mIHRoZSB2ZXJ0aWNhbCBndWlkZXNcbiAgICAgKi9cbiAgICB2ZXJ0aWNhbEd1aWRlcz86IG51bWJlcltdO1xuXG4gICAgLyoqXG4gICAgICogIFRoZSB0b3Atb2Zmc2V0IGxvY2F0aW9uIG9mIHRoZSBob3Jpem9udGFsIGd1aWRlc1xuICAgICAqL1xuICAgIGhvcml6b250YWxHdWlkZXM/OiBudW1iZXJbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEd1aWRlTGF5ZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SUd1aWRlTGF5ZXJQcm9wcywge30+IHtcbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7IHZlcnRpY2FsR3VpZGVzLCBob3Jpem9udGFsR3VpZGVzLCBjbGFzc05hbWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGNvbnN0IHZlcnRpY2FscyA9ICh2ZXJ0aWNhbEd1aWRlcyA9PSBudWxsKSA/IHVuZGVmaW5lZCA6IHZlcnRpY2FsR3VpZGVzLm1hcCh0aGlzLnJlbmRlclZlcnRpY2FsR3VpZGUpO1xuICAgICAgICBjb25zdCBob3Jpem9udGFscyA9IChob3Jpem9udGFsR3VpZGVzID09IG51bGwpID8gdW5kZWZpbmVkIDogaG9yaXpvbnRhbEd1aWRlcy5tYXAodGhpcy5yZW5kZXJIb3Jpem9udGFsR3VpZGUpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3NOYW1lLCBcImJwLXRhYmxlLW92ZXJsYXktbGF5ZXJcIil9PlxuICAgICAgICAgICAgICAgIHt2ZXJ0aWNhbHN9XG4gICAgICAgICAgICAgICAge2hvcml6b250YWxzfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJWZXJ0aWNhbEd1aWRlID0gKG9mZnNldDogbnVtYmVyLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0eWxlID0ge1xuICAgICAgICAgICAgbGVmdDogYCR7b2Zmc2V0fXB4YCxcbiAgICAgICAgfSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJicC10YWJsZS1vdmVybGF5IGJwLXRhYmxlLXZlcnRpY2FsLWd1aWRlXCIga2V5PXtpbmRleH0gc3R5bGU9e3N0eWxlfSAvPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVySG9yaXpvbnRhbEd1aWRlID0gKG9mZnNldDogbnVtYmVyLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0eWxlID0ge1xuICAgICAgICAgICAgdG9wOiBgJHtvZmZzZXR9cHhgLFxuICAgICAgICB9IGFzIFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJwLXRhYmxlLW92ZXJsYXkgYnAtdGFibGUtaG9yaXpvbnRhbC1ndWlkZVwiIGtleT17aW5kZXh9IHN0eWxlPXtzdHlsZX0gLz5cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=

@@ -1,9 +0,10 @@

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/
import { IRegion } from "../regions";
import { IProps } from "@blueprintjs/core";
import * as React from "react";
import { IRegion } from "../regions";
export interface IRegionStyler {

@@ -10,0 +11,0 @@ (region: IRegion): React.CSSProperties;

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -47,2 +49,2 @@ "use strict";

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXllcnMvcmVnaW9ucy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7O0FBSUgsSUFBWSxVQUFVLFdBQU0sWUFBWSxDQUFDLENBQUE7QUFDekMsSUFBWSxVQUFVLFdBQU0sdUJBQXVCLENBQUMsQ0FBQTtBQUNwRCxJQUFZLEtBQUssV0FBTSxPQUFPLENBQUMsQ0FBQTtBQW1CL0I7SUFBaUMsK0JBQXNDO0lBQXZFO1FBQUEsaUJBdUJDO1FBdkJnQyw4QkFBc0M7UUFhM0QsaUJBQVksR0FBRyxVQUFDLE1BQWUsRUFBRSxLQUFhO1lBQ2xELElBQUEsZ0JBQWdELEVBQXhDLHdCQUFTLEVBQUUsa0NBQWMsQ0FBZ0I7WUFDakQsTUFBTSxDQUFDLENBQ0gscUJBQUMsR0FBRyxJQUNBLFNBQVMsRUFBRSxVQUFVLENBQUMsa0NBQWtDLEVBQUUsU0FBUyxDQUFFLEVBQ3JFLEdBQUcsRUFBRSxLQUFNLEVBQ1gsS0FBSyxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUUsRUFDaEMsQ0FDTCxDQUFDO1FBQ04sQ0FBQyxDQUFBO0lBQ0wsQ0FBQztJQXRCVSw0QkFBTSxHQUFiO1FBQ0ksTUFBTSxDQUFDLHFCQUFDLEdBQUcsSUFBQyxTQUFTLEVBQUMsd0JBQXdCLEdBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFHLENBQU0sQ0FBQztJQUN2RixDQUFDO0lBRU8sMENBQW9CLEdBQTVCO1FBQ1ksZ0NBQU8sQ0FBZ0I7UUFDL0IsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbEIsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFaTDtRQUFDLFVBQVU7bUJBQUE7SUF3Qlgsa0JBQUM7QUFBRCxDQXZCQSxBQXVCQyxDQXZCZ0MsS0FBSyxDQUFDLFNBQVMsR0F1Qi9DO0FBdkJZLG1CQUFXLGNBdUJ2QixDQUFBIiwiZmlsZSI6ImxheWVycy9yZWdpb25zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgLSBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBJUmVnaW9uIH0gZnJvbSBcIi4uL3JlZ2lvbnNcIjtcbmltcG9ydCB7IElQcm9wcyB9IGZyb20gXCJAYmx1ZXByaW50anMvY29yZVwiO1xuaW1wb3J0ICogYXMgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0ICogYXMgUHVyZVJlbmRlciBmcm9tIFwicHVyZS1yZW5kZXItZGVjb3JhdG9yXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJUmVnaW9uU3R5bGVyIHtcbiAgICAocmVnaW9uOiBJUmVnaW9uKTogUmVhY3QuQ1NTUHJvcGVydGllcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVnaW9uTGF5ZXJQcm9wcyBleHRlbmRzIElQcm9wcyB7XG4gICAgLyoqXG4gICAgICogVGhlIGFycmF5IG9mIHJlZ2lvbnMgdG8gcmVuZGVyLlxuICAgICAqL1xuICAgIHJlZ2lvbnM/OiBJUmVnaW9uW107XG5cbiAgICAvKipcbiAgICAgKiBBIGNhbGxiYWNrIGludGVyZmFjZSBmb3IgYXBwbHlpbmcgQ1NTIHN0eWxlcyB0byB0aGUgcmVnaW9ucy5cbiAgICAgKi9cbiAgICBnZXRSZWdpb25TdHlsZTogSVJlZ2lvblN0eWxlcjtcbn1cblxuQFB1cmVSZW5kZXJcbmV4cG9ydCBjbGFzcyBSZWdpb25MYXllciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUmVnaW9uTGF5ZXJQcm9wcywge30+IHtcbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJicC10YWJsZS1vdmVybGF5LWxheWVyXCI+e3RoaXMucmVuZGVyUmVnaW9uQ2hpbGRyZW4oKX08L2Rpdj47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJSZWdpb25DaGlsZHJlbigpIHtcbiAgICAgICAgY29uc3QgeyByZWdpb25zIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBpZiAocmVnaW9ucyA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWdpb25zLm1hcCh0aGlzLnJlbmRlclJlZ2lvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJSZWdpb24gPSAocmVnaW9uOiBJUmVnaW9uLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBnZXRSZWdpb25TdHlsZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJicC10YWJsZS1vdmVybGF5IGJwLXRhYmxlLXJlZ2lvblwiLCBjbGFzc05hbWUpfVxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgc3R5bGU9e2dldFJlZ2lvblN0eWxlKHJlZ2lvbil9XG4gICAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXllcnMvcmVnaW9ucy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7Ozs7Ozs7Ozs7Ozs7QUFHSCxJQUFZLFVBQVUsV0FBTSxZQUFZLENBQUMsQ0FBQTtBQUN6QyxJQUFZLFVBQVUsV0FBTSx1QkFBdUIsQ0FBQyxDQUFBO0FBQ3BELElBQVksS0FBSyxXQUFNLE9BQU8sQ0FBQyxDQUFBO0FBb0IvQjtJQUFpQywrQkFBc0M7SUFBdkU7UUFBQSxpQkF1QkM7UUF2QmdDLDhCQUFzQztRQWEzRCxpQkFBWSxHQUFHLFVBQUMsTUFBZSxFQUFFLEtBQWE7WUFDbEQsSUFBQSxnQkFBZ0QsRUFBeEMsd0JBQVMsRUFBRSxrQ0FBYyxDQUFnQjtZQUNqRCxNQUFNLENBQUMsQ0FDSCxxQkFBQyxHQUFHLElBQ0EsU0FBUyxFQUFFLFVBQVUsQ0FBQyxrQ0FBa0MsRUFBRSxTQUFTLENBQUUsRUFDckUsR0FBRyxFQUFFLEtBQU0sRUFDWCxLQUFLLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBRSxFQUNoQyxDQUNMLENBQUM7UUFDTixDQUFDLENBQUE7SUFDTCxDQUFDO0lBdEJVLDRCQUFNLEdBQWI7UUFDSSxNQUFNLENBQUMscUJBQUMsR0FBRyxJQUFDLFNBQVMsRUFBQyx3QkFBd0IsR0FBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUcsQ0FBTSxDQUFDO0lBQ3ZGLENBQUM7SUFFTywwQ0FBb0IsR0FBNUI7UUFDWSxnQ0FBTyxDQUFnQjtRQUMvQixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsQixNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQVpMO1FBQUMsVUFBVTttQkFBQTtJQXdCWCxrQkFBQztBQUFELENBdkJBLEFBdUJDLENBdkJnQyxLQUFLLENBQUMsU0FBUyxHQXVCL0M7QUF2QlksbUJBQVcsY0F1QnZCLENBQUEiLCJmaWxlIjoibGF5ZXJzL3JlZ2lvbnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEJTRC0zIExpY2Vuc2UgYXMgbW9kaWZpZWQgKHRoZSDigJxMaWNlbnNl4oCdKTsgeW91IG1heSBvYnRhaW4gYSBjb3B5XG4gKiBvZiB0aGUgbGljZW5zZSBhdCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqIGFuZCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL1BBVEVOVFNcbiAqL1xuXG5pbXBvcnQgeyBJUHJvcHMgfSBmcm9tIFwiQGJsdWVwcmludGpzL2NvcmVcIjtcbmltcG9ydCAqIGFzIGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCAqIGFzIFB1cmVSZW5kZXIgZnJvbSBcInB1cmUtcmVuZGVyLWRlY29yYXRvclwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBJUmVnaW9uIH0gZnJvbSBcIi4uL3JlZ2lvbnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJUmVnaW9uU3R5bGVyIHtcbiAgICAocmVnaW9uOiBJUmVnaW9uKTogUmVhY3QuQ1NTUHJvcGVydGllcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVnaW9uTGF5ZXJQcm9wcyBleHRlbmRzIElQcm9wcyB7XG4gICAgLyoqXG4gICAgICogVGhlIGFycmF5IG9mIHJlZ2lvbnMgdG8gcmVuZGVyLlxuICAgICAqL1xuICAgIHJlZ2lvbnM/OiBJUmVnaW9uW107XG5cbiAgICAvKipcbiAgICAgKiBBIGNhbGxiYWNrIGludGVyZmFjZSBmb3IgYXBwbHlpbmcgQ1NTIHN0eWxlcyB0byB0aGUgcmVnaW9ucy5cbiAgICAgKi9cbiAgICBnZXRSZWdpb25TdHlsZTogSVJlZ2lvblN0eWxlcjtcbn1cblxuQFB1cmVSZW5kZXJcbmV4cG9ydCBjbGFzcyBSZWdpb25MYXllciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUmVnaW9uTGF5ZXJQcm9wcywge30+IHtcbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJicC10YWJsZS1vdmVybGF5LWxheWVyXCI+e3RoaXMucmVuZGVyUmVnaW9uQ2hpbGRyZW4oKX08L2Rpdj47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJSZWdpb25DaGlsZHJlbigpIHtcbiAgICAgICAgY29uc3QgeyByZWdpb25zIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBpZiAocmVnaW9ucyA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWdpb25zLm1hcCh0aGlzLnJlbmRlclJlZ2lvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJSZWdpb24gPSAocmVnaW9uOiBJUmVnaW9uLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBnZXRSZWdpb25TdHlsZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJicC10YWJsZS1vdmVybGF5IGJwLXRhYmxlLXJlZ2lvblwiLCBjbGFzc05hbWUpfVxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgc3R5bGU9e2dldFJlZ2lvblN0eWxlKHJlZ2lvbil9XG4gICAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -5,0 +7,0 @@ import { Grid } from "./common/grid";

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -84,2 +86,2 @@ "use strict";

//# sourceMappingURL=data:application/json;base64,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VUFBNEIsT0FBb0I7UUFDNUMsSUFBTSxJQUFJLEdBQUcsV0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNoQyxJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDO0lBOUVjLCtCQUF1QixHQUFHLEVBQUUsQ0FBQztJQXlGaEQsY0FBQztBQUFELENBMUZBLEFBMEZDLElBQUE7QUExRlksZUFBTyxVQTBGbkIsQ0FBQSIsImZpbGUiOiJsb2NhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgLSBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBHcmlkIH0gZnJvbSBcIi4vY29tbW9uL2dyaWRcIjtcbmltcG9ydCB7IFJlY3QgfSBmcm9tIFwiLi9jb21tb24vcmVjdFwiO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tIFwiLi9jb21tb24vdXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJTG9jYXRvciB7XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgd2lkdGggdGhhdCBhIGNvbHVtbiBtdXN0IGJlIHRvIGNvbnRhaW4gYWxsIHRoZSBjb250ZW50IG9mXG4gICAgICogaXRzIGNlbGxzIHdpdGhvdXQgdHJ1bmNhdGluZyBvciB3cmFwcGluZy5cbiAgICAgKi9cbiAgICBnZXRXaWRlc3RWaXNpYmxlQ2VsbEluQ29sdW1uOiAoY29sdW1uSW5kZXg6IG51bWJlcikgPT4gbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogTG9jYXRlcyBhIGNvbHVtbidzIGluZGV4IGdpdmVuIHRoZSBjbGllbnQgWCBjb29yZGluYXRlLiBSZXR1cm5zIC0xIGlmXG4gICAgICogdGhlIGNvb3JkaW5hdGUgaXMgbm90IG92ZXIgYSBjb2x1bW4uXG4gICAgICovXG4gICAgY29udmVydFBvaW50VG9Db2x1bW46IChjbGllbnRYOiBudW1iZXIpID0+IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIExvY2F0ZXMgYSByb3cncyBpbmRleCBnaXZlbiB0aGUgY2xpZW50IFkgY29vcmRpbmF0ZS4gUmV0dXJucyAtMSBpZlxuICAgICAqIHRoZSBjb29yZGluYXRlIGlzIG5vdCBvdmVyIGEgcm93LlxuICAgICAqL1xuICAgIGNvbnZlcnRQb2ludFRvUm93OiAoY2xpZW50WTogbnVtYmVyKSA9PiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBMb2NhdGVzIGEgY2VsbCdzIHJvdyBhbmQgY29sdW1uIGluZGV4IGdpdmVuIHRoZSBjbGllbnQgWFxuICAgICAqIGNvb3JkaW5hdGUuIFJldHVybnMgLTEgaWYgdGhlIGNvb3JkaW5hdGUgaXMgbm90IG92ZXIgYSB0YWJsZSBjZWxsLlxuICAgICAqL1xuICAgIGNvbnZlcnRQb2ludFRvQ2VsbDogKGNsaWVudFg6IG51bWJlciwgY2xpZW50WTogbnVtYmVyKSA9PiB7Y29sOiBudW1iZXIsIHJvdzogbnVtYmVyfTtcbn1cblxuZXhwb3J0IGNsYXNzIExvY2F0b3IgaW1wbGVtZW50cyBJTG9jYXRvciB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgQ0VMTF9IT1JJWk9OVEFMX1BBRERJTkcgPSAxMDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0YWJsZUVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgICAgICBwcml2YXRlIGJvZHlFbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICAgICAgcHJpdmF0ZSBncmlkOiBHcmlkXG4gICAgKSB7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEdyaWQoZ3JpZDogR3JpZCkge1xuICAgICAgICB0aGlzLmdyaWQgPSBncmlkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWaWV3cG9ydFJlY3QoKSB7XG4gICAgICAgIHJldHVybiBuZXcgUmVjdChcbiAgICAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQuc2Nyb2xsTGVmdCxcbiAgICAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQuc2Nyb2xsVG9wLFxuICAgICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5jbGllbnRXaWR0aCxcbiAgICAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQuY2xpZW50SGVpZ2h0XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFdpZGVzdFZpc2libGVDZWxsSW5Db2x1bW4oY29sdW1uSW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNlbGxDbGFzc2VzID0gW1xuICAgICAgICAgICAgYC5icC10YWJsZS1jZWxsLWNvbC0ke2NvbHVtbkluZGV4fWAsXG4gICAgICAgICAgICBcIi5icC10YWJsZS1jb2x1bW4tbmFtZVwiLFxuICAgICAgICBdO1xuICAgICAgICBjb25zdCBjZWxscyA9IHRoaXMudGFibGVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoY2VsbENsYXNzZXMuam9pbihcIiwgXCIpKTtcbiAgICAgICAgbGV0IG1heCA9IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2VsbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRXaWR0aCA9IFV0aWxzLm1lYXN1cmVFbGVtZW50VGV4dENvbnRlbnQoY2VsbHMuaXRlbShpKSkud2lkdGg7XG4gICAgICAgICAgICBjb25zdCBjZWxsV2lkdGggPSBNYXRoLmNlaWwoY29udGVudFdpZHRoKSArIExvY2F0b3IuQ0VMTF9IT1JJWk9OVEFMX1BBRERJTkcgKiAyO1xuICAgICAgICAgICAgaWYgKGNlbGxXaWR0aCA+IG1heCkge1xuICAgICAgICAgICAgICAgIG1heCA9IGNlbGxXaWR0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4O1xuICAgIH1cblxuICAgIHB1YmxpYyBjb252ZXJ0UG9pbnRUb0NvbHVtbihjbGllbnRYOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB0YWJsZVJlY3QgPSB0aGlzLmdldFRhYmxlUmVjdCgpO1xuICAgICAgICBpZiAoIXRhYmxlUmVjdC5jb250YWluc1goY2xpZW50WCkpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gVXRpbHMuYmluYXJ5U2VhcmNoKGNsaWVudFgsIHRoaXMuZ3JpZC5udW1Db2xzIC0gMSwgdGhpcy5jb252ZXJ0Q2VsbEluZGV4VG9DbGllbnRYKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29udmVydFBvaW50VG9Sb3coY2xpZW50WTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdGFibGVSZWN0ID0gdGhpcy5nZXRUYWJsZVJlY3QoKTtcblxuICAgICAgICBpZiAoIXRhYmxlUmVjdC5jb250YWluc1koY2xpZW50WSkpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gVXRpbHMuYmluYXJ5U2VhcmNoKGNsaWVudFksIHRoaXMuZ3JpZC5udW1Sb3dzIC0gMSwgdGhpcy5jb252ZXJ0Q2VsbEluZGV4VG9DbGllbnRZKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29udmVydFBvaW50VG9DZWxsKGNsaWVudFg6IG51bWJlciwgY2xpZW50WTogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGNvbCA9IFV0aWxzLmJpbmFyeVNlYXJjaChjbGllbnRYLCB0aGlzLmdyaWQubnVtQ29scyAtIDEsIHRoaXMuY29udmVydENlbGxJbmRleFRvQ2xpZW50WCk7XG4gICAgICAgIGNvbnN0IHJvdyA9IFV0aWxzLmJpbmFyeVNlYXJjaChjbGllbnRZLCB0aGlzLmdyaWQubnVtUm93cyAtIDEsIHRoaXMuY29udmVydENlbGxJbmRleFRvQ2xpZW50WSk7XG4gICAgICAgIHJldHVybiB7Y29sLCByb3d9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGFibGVSZWN0KCkge1xuICAgICAgICByZXR1cm4gUmVjdC53cmFwKHRoaXMudGFibGVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJvZHlSZWN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy51bnNjcm9sbEVsZW1lbnRSZWN0KHRoaXMuYm9keUVsZW1lbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN1YnRyYWN0cyB0aGUgc2Nyb2xsIG9mZnNldCBmcm9tIHRoZSBlbGVtZW50J3MgYm91bmRpbmcgY2xpZW50IHJlY3QuXG4gICAgICovXG4gICAgcHJpdmF0ZSB1bnNjcm9sbEVsZW1lbnRSZWN0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHJlY3QgPSBSZWN0LndyYXAoZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7XG4gICAgICAgIHJlY3QubGVmdCAtPSBlbGVtZW50LnNjcm9sbExlZnQ7XG4gICAgICAgIHJlY3QudG9wIC09IGVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgICAgICByZXR1cm4gcmVjdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnZlcnRDZWxsSW5kZXhUb0NsaWVudFggPSAoaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBib2R5UmVjdCA9IHRoaXMuZ2V0Qm9keVJlY3QoKTtcbiAgICAgICAgcmV0dXJuIGJvZHlSZWN0LmxlZnQgKyB0aGlzLmdyaWQuZ2V0Q3VtdWxhdGl2ZVdpZHRoQXQoaW5kZXgpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGNvbnZlcnRDZWxsSW5kZXhUb0NsaWVudFkgPSAoaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBib2R5UmVjdCA9IHRoaXMuZ2V0Qm9keVJlY3QoKTtcbiAgICAgICAgcmV0dXJuIGJvZHlSZWN0LnRvcCArIHRoaXMuZ3JpZC5nZXRDdW11bGF0aXZlSGVpZ2h0QXQoaW5kZXgpO1xuICAgIH07XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
//# sourceMappingURL=data:application/json;base64,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QixVQUE0QixPQUFvQjtRQUM1QyxJQUFNLElBQUksR0FBRyxXQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUE5RWMsK0JBQXVCLEdBQUcsRUFBRSxDQUFDO0lBeUZoRCxjQUFDO0FBQUQsQ0ExRkEsQUEwRkMsSUFBQTtBQTFGWSxlQUFPLFVBMEZuQixDQUFBIiwiZmlsZSI6ImxvY2F0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEJTRC0zIExpY2Vuc2UgYXMgbW9kaWZpZWQgKHRoZSDigJxMaWNlbnNl4oCdKTsgeW91IG1heSBvYnRhaW4gYSBjb3B5XG4gKiBvZiB0aGUgbGljZW5zZSBhdCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqIGFuZCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL1BBVEVOVFNcbiAqL1xuXG5pbXBvcnQgeyBHcmlkIH0gZnJvbSBcIi4vY29tbW9uL2dyaWRcIjtcbmltcG9ydCB7IFJlY3QgfSBmcm9tIFwiLi9jb21tb24vcmVjdFwiO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tIFwiLi9jb21tb24vdXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJTG9jYXRvciB7XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgd2lkdGggdGhhdCBhIGNvbHVtbiBtdXN0IGJlIHRvIGNvbnRhaW4gYWxsIHRoZSBjb250ZW50IG9mXG4gICAgICogaXRzIGNlbGxzIHdpdGhvdXQgdHJ1bmNhdGluZyBvciB3cmFwcGluZy5cbiAgICAgKi9cbiAgICBnZXRXaWRlc3RWaXNpYmxlQ2VsbEluQ29sdW1uOiAoY29sdW1uSW5kZXg6IG51bWJlcikgPT4gbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogTG9jYXRlcyBhIGNvbHVtbidzIGluZGV4IGdpdmVuIHRoZSBjbGllbnQgWCBjb29yZGluYXRlLiBSZXR1cm5zIC0xIGlmXG4gICAgICogdGhlIGNvb3JkaW5hdGUgaXMgbm90IG92ZXIgYSBjb2x1bW4uXG4gICAgICovXG4gICAgY29udmVydFBvaW50VG9Db2x1bW46IChjbGllbnRYOiBudW1iZXIpID0+IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIExvY2F0ZXMgYSByb3cncyBpbmRleCBnaXZlbiB0aGUgY2xpZW50IFkgY29vcmRpbmF0ZS4gUmV0dXJucyAtMSBpZlxuICAgICAqIHRoZSBjb29yZGluYXRlIGlzIG5vdCBvdmVyIGEgcm93LlxuICAgICAqL1xuICAgIGNvbnZlcnRQb2ludFRvUm93OiAoY2xpZW50WTogbnVtYmVyKSA9PiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBMb2NhdGVzIGEgY2VsbCdzIHJvdyBhbmQgY29sdW1uIGluZGV4IGdpdmVuIHRoZSBjbGllbnQgWFxuICAgICAqIGNvb3JkaW5hdGUuIFJldHVybnMgLTEgaWYgdGhlIGNvb3JkaW5hdGUgaXMgbm90IG92ZXIgYSB0YWJsZSBjZWxsLlxuICAgICAqL1xuICAgIGNvbnZlcnRQb2ludFRvQ2VsbDogKGNsaWVudFg6IG51bWJlciwgY2xpZW50WTogbnVtYmVyKSA9PiB7Y29sOiBudW1iZXIsIHJvdzogbnVtYmVyfTtcbn1cblxuZXhwb3J0IGNsYXNzIExvY2F0b3IgaW1wbGVtZW50cyBJTG9jYXRvciB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgQ0VMTF9IT1JJWk9OVEFMX1BBRERJTkcgPSAxMDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0YWJsZUVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgICAgICBwcml2YXRlIGJvZHlFbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICAgICAgcHJpdmF0ZSBncmlkOiBHcmlkLFxuICAgICkge1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRHcmlkKGdyaWQ6IEdyaWQpIHtcbiAgICAgICAgdGhpcy5ncmlkID0gZ3JpZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Vmlld3BvcnRSZWN0KCkge1xuICAgICAgICByZXR1cm4gbmV3IFJlY3QoXG4gICAgICAgICAgICB0aGlzLmJvZHlFbGVtZW50LnNjcm9sbExlZnQsXG4gICAgICAgICAgICB0aGlzLmJvZHlFbGVtZW50LnNjcm9sbFRvcCxcbiAgICAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQuY2xpZW50V2lkdGgsXG4gICAgICAgICAgICB0aGlzLmJvZHlFbGVtZW50LmNsaWVudEhlaWdodCxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0V2lkZXN0VmlzaWJsZUNlbGxJbkNvbHVtbihjb2x1bW5JbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY2VsbENsYXNzZXMgPSBbXG4gICAgICAgICAgICBgLmJwLXRhYmxlLWNlbGwtY29sLSR7Y29sdW1uSW5kZXh9YCxcbiAgICAgICAgICAgIFwiLmJwLXRhYmxlLWNvbHVtbi1uYW1lXCIsXG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IGNlbGxzID0gdGhpcy50YWJsZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChjZWxsQ2xhc3Nlcy5qb2luKFwiLCBcIikpO1xuICAgICAgICBsZXQgbWF4ID0gMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjZWxscy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY29udGVudFdpZHRoID0gVXRpbHMubWVhc3VyZUVsZW1lbnRUZXh0Q29udGVudChjZWxscy5pdGVtKGkpKS53aWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGNlbGxXaWR0aCA9IE1hdGguY2VpbChjb250ZW50V2lkdGgpICsgTG9jYXRvci5DRUxMX0hPUklaT05UQUxfUEFERElORyAqIDI7XG4gICAgICAgICAgICBpZiAoY2VsbFdpZHRoID4gbWF4KSB7XG4gICAgICAgICAgICAgICAgbWF4ID0gY2VsbFdpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnZlcnRQb2ludFRvQ29sdW1uKGNsaWVudFg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHRhYmxlUmVjdCA9IHRoaXMuZ2V0VGFibGVSZWN0KCk7XG4gICAgICAgIGlmICghdGFibGVSZWN0LmNvbnRhaW5zWChjbGllbnRYKSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBVdGlscy5iaW5hcnlTZWFyY2goY2xpZW50WCwgdGhpcy5ncmlkLm51bUNvbHMgLSAxLCB0aGlzLmNvbnZlcnRDZWxsSW5kZXhUb0NsaWVudFgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb252ZXJ0UG9pbnRUb1JvdyhjbGllbnRZOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB0YWJsZVJlY3QgPSB0aGlzLmdldFRhYmxlUmVjdCgpO1xuXG4gICAgICAgIGlmICghdGFibGVSZWN0LmNvbnRhaW5zWShjbGllbnRZKSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBVdGlscy5iaW5hcnlTZWFyY2goY2xpZW50WSwgdGhpcy5ncmlkLm51bVJvd3MgLSAxLCB0aGlzLmNvbnZlcnRDZWxsSW5kZXhUb0NsaWVudFkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb252ZXJ0UG9pbnRUb0NlbGwoY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgY29sID0gVXRpbHMuYmluYXJ5U2VhcmNoKGNsaWVudFgsIHRoaXMuZ3JpZC5udW1Db2xzIC0gMSwgdGhpcy5jb252ZXJ0Q2VsbEluZGV4VG9DbGllbnRYKTtcbiAgICAgICAgY29uc3Qgcm93ID0gVXRpbHMuYmluYXJ5U2VhcmNoKGNsaWVudFksIHRoaXMuZ3JpZC5udW1Sb3dzIC0gMSwgdGhpcy5jb252ZXJ0Q2VsbEluZGV4VG9DbGllbnRZKTtcbiAgICAgICAgcmV0dXJuIHtjb2wsIHJvd307XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUYWJsZVJlY3QoKSB7XG4gICAgICAgIHJldHVybiBSZWN0LndyYXAodGhpcy50YWJsZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Qm9keVJlY3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVuc2Nyb2xsRWxlbWVudFJlY3QodGhpcy5ib2R5RWxlbWVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3VidHJhY3RzIHRoZSBzY3JvbGwgb2Zmc2V0IGZyb20gdGhlIGVsZW1lbnQncyBib3VuZGluZyBjbGllbnQgcmVjdC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVuc2Nyb2xsRWxlbWVudFJlY3QoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgcmVjdCA9IFJlY3Qud3JhcChlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcbiAgICAgICAgcmVjdC5sZWZ0IC09IGVsZW1lbnQuc2Nyb2xsTGVmdDtcbiAgICAgICAgcmVjdC50b3AgLT0gZWxlbWVudC5zY3JvbGxUb3A7XG4gICAgICAgIHJldHVybiByZWN0O1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydENlbGxJbmRleFRvQ2xpZW50WCA9IChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGJvZHlSZWN0ID0gdGhpcy5nZXRCb2R5UmVjdCgpO1xuICAgICAgICByZXR1cm4gYm9keVJlY3QubGVmdCArIHRoaXMuZ3JpZC5nZXRDdW11bGF0aXZlV2lkdGhBdChpbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb252ZXJ0Q2VsbEluZGV4VG9DbGllbnRZID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgYm9keVJlY3QgPSB0aGlzLmdldEJvZHlSZWN0KCk7XG4gICAgICAgIHJldHVybiBib2R5UmVjdC50b3AgKyB0aGlzLmdyaWQuZ2V0Q3VtdWxhdGl2ZUhlaWdodEF0KGluZGV4KTtcbiAgICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -439,2 +441,2 @@ "use strict";

//# sourceMappingURL=data:application/json;base64,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QztRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVjLDBCQUFrQixHQUFqQyxVQUFrQyxDQUFrQixFQUFFLENBQWtCO1FBQ3BFLElBQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsTUFBTSxDQUFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDakQsQ0FBQztJQUVjLDJCQUFtQixHQUFsQyxVQUFtQyxDQUFTLEVBQUUsQ0FBUztRQUNuRCxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRWMseUJBQWlCLEdBQWhDLFVBQWlDLEtBQWEsRUFBRSxNQUFlO1FBQzNELEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsQ0FBQztRQUVELElBQU0sUUFBUSxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0MsTUFBTSxDQUFDLFFBQXlCLENBQUM7SUFDckMsQ0FBQztJQUNMLGNBQUM7QUFBRCxDQTlaQSxBQThaQyxJQUFBO0FBOVpZLGVBQU8sVUE4Wm5CLENBQUEiLCJmaWxlIjoicmVnaW9ucy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIC0gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKi9cblxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tIFwiLi9jb21tb24vdXRpbHNcIjtcblxuLyoqXG4gKiBgUmVnaW9uYHMgY29udGFpbiBzZXRzIG9mIGNlbGxzLiBBZGRpdGlvbmFsbHksIGEgZGlzdGluY3Rpb24gaXMgZHJhd24sIGZvclxuICogZXhhbXBsZSwgYmV0d2VlbiBhbGwgY2VsbHMgd2l0aGluIGEgY29sdW1uIGFuZCB0aGUgd2hvbGUgY29sdW1uIGl0c2VsZi5cbiAqIFRoZSBgUmVnaW9uQ2FyZGluYWxpdHlgIGVudW0gcmVwcmVzZW50cyB0aGVzZSBkaXN0aW5jdCB0eXBlcyBvZiBgUmVnaW9uYHMuXG4gKi9cbmV4cG9ydCBlbnVtIFJlZ2lvbkNhcmRpbmFsaXR5IHtcbiAgICAvKipcbiAgICAgKiBBIHJlZ2lvbiB0aGF0IGNvbnRhaW5zIGEgZmluaXRlIHJlY3Rhbmd1bGFyIGdyb3VwIG9mIHRhYmxlIGNlbGxzXG4gICAgICovXG4gICAgQ0VMTFMsXG5cbiAgICAvKipcbiAgICAgKiBBIHJlZ2lvbiB0aGF0IHJlcHJlc2VudHMgYWxsIGNlbGxzIHdpdGhpbiAxIG9yIG1vcmUgcm93cy5cbiAgICAgKi9cbiAgICBGVUxMX1JPV1MsXG5cbiAgICAvKipcbiAgICAgKiBBIHJlZ2lvbiB0aGF0IHJlcHJlc2VudHMgYWxsIGNlbGxzIHdpdGhpbiAxIG9yIG1vcmUgY29sdW1ucy5cbiAgICAgKi9cbiAgICBGVUxMX0NPTFVNTlMsXG5cbiAgICAvKipcbiAgICAgKiBBIHJlZ2lvbiB0aGF0IHJlcHJlc2VudHMgYWxsIGNlbGxzIGluIHRoZSB0YWJsZS5cbiAgICAgKi9cbiAgICBGVUxMX1RBQkxFXG59XG5cbi8qKlxuICogQSBjb252ZW5pZW5jZSBvYmplY3QgZm9yIHN1YnNldHMgb2YgYFJlZ2lvbkNhcmRpbmFsaXR5YCB0aGF0IGFyZSBjb21tb25seVxuICogdXNlZCBhcyB0aGUgYHNlbGVjdGlvbk1vZGVgIHByb3Agb2YgdGhlIGA8VGFibGU+YC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNlbGVjdGlvbk1vZGVzID0ge1xuICAgIEFMTDogW1xuICAgICAgICBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX0NPTFVNTlMsXG4gICAgICAgIFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfUk9XUyxcbiAgICAgICAgUmVnaW9uQ2FyZGluYWxpdHkuQ0VMTFMsXG4gICAgXSxcbiAgICBDT0xVTU5TX0FORF9DRUxMUzogW1xuICAgICAgICBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX0NPTFVNTlMsXG4gICAgICAgIFJlZ2lvbkNhcmRpbmFsaXR5LkNFTExTLFxuICAgIF0sXG4gICAgQ09MVU1OU19PTkxZOiBbXG4gICAgICAgIFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfQ09MVU1OUyxcbiAgICBdLFxuICAgIE5PTkU6IFtdIGFzIFJlZ2lvbkNhcmRpbmFsaXR5W10sXG4gICAgUk9XU19BTkRfQ0VMTFM6IFtcbiAgICAgICAgUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9ST1dTLFxuICAgICAgICBSZWdpb25DYXJkaW5hbGl0eS5DRUxMUyxcbiAgICBdLFxuICAgIFJPV1NfT05MWTogW1xuICAgICAgICBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX1JPV1MsXG4gICAgXSxcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN0eWxlZFJlZ2lvbkdyb3VwIHtcbiAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgcmVnaW9uczogSVJlZ2lvbltdO1xufVxuXG4vKipcbiAqIEFuIF9pbmNsdXNpdmVfIGludGVydmFsIG9mIFpFUk8taW5kZXhlZCBjZWxsIGluZGljZXMuXG4gKi9cbmV4cG9ydCB0eXBlIElDZWxsSW50ZXJ2YWwgPSBbbnVtYmVyLCBudW1iZXJdO1xuXG4vKipcbiAqIFNtYWxsIGRhdGFzdHJ1Y3R1cmUgZm9yIHN0b3JpbmcgY2VsbCBjb29yZGluYXRlcyBbcm93LCBjb2x1bW5dXG4gKi9cbmV4cG9ydCB0eXBlIElDZWxsQ29vcmRpbmF0ZSA9IFtudW1iZXIsIG51bWJlcl07XG5cbi8qKlxuICogQSBaRVJPLWluZGV4ZWQgcmVnaW9uIG9mIGNlbGxzLlxuICpcbiAqIEBzZWUgYFJlZ2lvbnMuZ2V0UmVnaW9uQ2FyZGluYWxpdHlgIGZvciBtb3JlIGFib3V0IHRoZSBmb3JtYXQgb2YgdGhpcyBvYmplY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJlZ2lvbiB7XG4gICAgcm93cz86IElDZWxsSW50ZXJ2YWw7XG4gICAgY29scz86IElDZWxsSW50ZXJ2YWw7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWdpb25zIHtcbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIHRoZSBjYXJkaW5hbGl0eSBvZiBhIHJlZ2lvbi4gV2UgdXNlIG51bGwgdmFsdWVzIHRvIGluZGljYXRlXG4gICAgICogYW4gdW5ib3VuZGVkIGludGVydmFsLiBUaGVyZWZvcmUsIGFuIGV4YW1wbGUgb2YgYSByZWdpb24gY29udGFpbmluZyB0aGVcbiAgICAgKiBzZWNvbmQgYW5kIHRoaXJkIGNvbHVtbnMgd291bGQgYmU6XG4gICAgICpcbiAgICAgKiAgICAge1xuICAgICAqICAgICAgICAgcm93czogbnVsbCxcbiAgICAgKiAgICAgICAgIGNvbHM6IFsxLCAyXVxuICAgICAqICAgICB9XG4gICAgICpcbiAgICAgKiBJbiB0aGlzIGNhc2UsIHRoaXMgbWV0aG9kIHdvdWxkIHJldHVybiBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX0NPTFVNTlMuXG4gICAgICogQW4gZXhhbXBsZSBvZiBhIHJlZ2lvbiBjb250YWluaW5nIGEgc2luZ2xlIGNlbGwgaW4gdGhlIHRhYmxlIHdvdWxkIGJlOlxuICAgICAqXG4gICAgICogICAgIHtcbiAgICAgKiAgICAgICAgIHJvd3M6IFs1LCA1XSxcbiAgICAgKiAgICAgICAgIGNvbHM6IFsyLCAyXVxuICAgICAqICAgICB9XG4gICAgICpcbiAgICAgKiBJbiB0aGlzIGNhc2UsIHRoaXMgbWV0aG9kIHdvdWxkIHJldHVybiBSZWdpb25DYXJkaW5hbGl0eS5DRUxMUy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFJlZ2lvbkNhcmRpbmFsaXR5KHJlZ2lvbjogSVJlZ2lvbikge1xuICAgICAgICBpZiAocmVnaW9uLmNvbHMgIT0gbnVsbCAmJiByZWdpb24ucm93cyAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVnaW9uQ2FyZGluYWxpdHkuQ0VMTFM7XG4gICAgICAgIH0gZWxzZSBpZiAocmVnaW9uLmNvbHMgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfQ09MVU1OUztcbiAgICAgICAgfSBlbHNlIGlmIChyZWdpb24ucm93cyAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9ST1dTO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfVEFCTEU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgcmVnaW9uIGNvbnRhaW5pbmcgb25lIG9yIG1vcmUgY2VsbHMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjZWxsKHJvdzogbnVtYmVyLCBjb2w6IG51bWJlciwgcm93Mj86IG51bWJlciwgY29sMj86IG51bWJlcik6IElSZWdpb24ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29sczogdGhpcy5ub3JtYWxpemVJbnRlcnZhbChjb2wsIGNvbDIpLFxuICAgICAgICAgICAgcm93czogdGhpcy5ub3JtYWxpemVJbnRlcnZhbChyb3csIHJvdzIpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSByZWdpb24gY29udGFpbmluZyBvbmUgb3IgbW9yZSBmdWxsIHJvd3MuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByb3cocm93OiBudW1iZXIsIHJvdzI/OiBudW1iZXIpOiBJUmVnaW9uICB7XG4gICAgICAgIHJldHVybiB7IHJvd3M6IHRoaXMubm9ybWFsaXplSW50ZXJ2YWwocm93LCByb3cyKSB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSByZWdpb24gY29udGFpbmluZyBvbmUgb3IgbW9yZSBmdWxsIGNvbHVtbnMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjb2x1bW4oY29sOiBudW1iZXIsIGNvbDI/OiBudW1iZXIpOiBJUmVnaW9uICB7XG4gICAgICAgIHJldHVybiB7IGNvbHM6IHRoaXMubm9ybWFsaXplSW50ZXJ2YWwoY29sLCBjb2wyKSB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgdGhlIHJlZ2lvbiB0byB0aGUgZW5kIG9mIGEgY2xvbmVkIGNvcHkgb2YgdGhlIHN1cHBsaWVkIHJlZ2lvblxuICAgICAqIGFycmF5LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgYWRkKHJlZ2lvbnM6IElSZWdpb25bXSwgcmVnaW9uOiBJUmVnaW9uKSB7XG4gICAgICAgIGxldCBjb3B5ID0gcmVnaW9ucy5zbGljZSgpO1xuICAgICAgICBjb3B5LnB1c2gocmVnaW9uKTtcbiAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVwbGFjZXMgdGhlIHJlZ2lvbiBhdCB0aGUgZW5kIG9mIGEgY2xvbmVkIGNvcHkgb2YgdGhlIHN1cHBsaWVkIHJlZ2lvblxuICAgICAqIGFycmF5LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgdXBkYXRlKHJlZ2lvbnM6IElSZWdpb25bXSwgcmVnaW9uOiBJUmVnaW9uKSB7XG4gICAgICAgIGxldCBjb3B5ID0gcmVnaW9ucy5zbGljZSgpO1xuICAgICAgICBjb3B5LnBvcCgpO1xuICAgICAgICBjb3B5LnB1c2gocmVnaW9uKTtcbiAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmZiB0aGUgc3BlY2lmaWVkIHJlZ2lvbiBpcyBlcXVhbCB0byB0aGUgbGFzdCByZWdpb24gaW5cbiAgICAgKiB0aGUgcmVnaW9uIGxpc3QuIFRoaXMgYWxsb3dzIHVzIHRvIGF2b2lkIGltbWVkaWF0ZSBhZGRpdGl2ZSByZS1zZWxlY3Rpb24uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBsYXN0UmVnaW9uSXNFcXVhbChyZWdpb25zOiBJUmVnaW9uW10sIHJlZ2lvbjogSVJlZ2lvbikge1xuICAgICAgICBpZiAocmVnaW9ucyA9PSBudWxsIHx8IHJlZ2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGFzdFJlZ2lvbiA9IHJlZ2lvbnNbcmVnaW9ucy5sZW5ndGggLSAxXTtcbiAgICAgICAgcmV0dXJuIFJlZ2lvbnMucmVnaW9uc0VxdWFsKGxhc3RSZWdpb24sIHJlZ2lvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIHJlZ2lvbiB0aGF0IGlzIGVxdWFsIHRvIHRoZSBzdXBwbGllZFxuICAgICAqIHBhcmFtZXRlci4gUmV0dXJucyAtMSBpZiBubyBzdWNoIHJlZ2lvbiBpcyBmb3VuZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZpbmRNYXRjaGluZ1JlZ2lvbihyZWdpb25zOiBJUmVnaW9uW10sIHJlZ2lvbjogSVJlZ2lvbikge1xuICAgICAgICBpZiAocmVnaW9ucyA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlZ2lvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChSZWdpb25zLnJlZ2lvbnNFcXVhbChyZWdpb25zW2ldLCByZWdpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcmVnaW9ucyBjb250YWluIGEgcmVnaW9uIHRoYXQgaGFzIEZVTExfQ09MVU1OU1xuICAgICAqIGNhcmRpbmFsaXR5IGFuZCBjb250YWlucyB0aGUgc3BlY2lmaWVkIGNvbHVtbiBpbmRleC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGhhc0Z1bGxDb2x1bW4ocmVnaW9uczogSVJlZ2lvbltdLCBjb2w6IG51bWJlcikge1xuICAgICAgICBpZiAocmVnaW9ucyA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHJlZ2lvbiBvZiByZWdpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBjYXJkaW5hbGl0eSA9IFJlZ2lvbnMuZ2V0UmVnaW9uQ2FyZGluYWxpdHkocmVnaW9uKTtcbiAgICAgICAgICAgIGlmIChjYXJkaW5hbGl0eSA9PT0gUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9UQUJMRSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNhcmRpbmFsaXR5ID09PSBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX0NPTFVNTlMgJiYgUmVnaW9ucy5pbnRlcnZhbENvbnRhaW5zSW5kZXgocmVnaW9uLmNvbHMsIGNvbCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJlZ2lvbnMgY29udGFpbiBhIHJlZ2lvbiB0aGF0IGhhcyBGVUxMX1JPV1NcbiAgICAgKiBjYXJkaW5hbGl0eSBhbmQgY29udGFpbnMgdGhlIHNwZWNpZmllZCByb3cgaW5kZXguXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBoYXNGdWxsUm93KHJlZ2lvbnM6IElSZWdpb25bXSwgcm93OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHJlZ2lvbnMgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCByZWdpb24gb2YgcmVnaW9ucykge1xuICAgICAgICAgICAgY29uc3QgY2FyZGluYWxpdHkgPSBSZWdpb25zLmdldFJlZ2lvbkNhcmRpbmFsaXR5KHJlZ2lvbik7XG4gICAgICAgICAgICBpZiAoY2FyZGluYWxpdHkgPT09IFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfVEFCTEUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYXJkaW5hbGl0eSA9PT0gUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9ST1dTICYmIFJlZ2lvbnMuaW50ZXJ2YWxDb250YWluc0luZGV4KHJlZ2lvbi5yb3dzLCByb3cpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSByZWdpb25zIGNvbnRhaW4gdGhlIHF1ZXJ5IHJlZ2lvbi4gVGhlIHF1ZXJ5IHJlZ2lvblxuICAgICAqIG1heSBiZSBhIHN1YnNldCBvZiB0aGUgYHJlZ2lvbnNgIHBhcmFtZXRlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNvbnRhaW5zUmVnaW9uKHJlZ2lvbnM6IElSZWdpb25bXSwgcXVlcnk6IElSZWdpb24pIHtcbiAgICAgICAgaWYgKHJlZ2lvbnMgPT0gbnVsbCB8fCBxdWVyeSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHJlZ2lvbiBvZiByZWdpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBjYXJkaW5hbGl0eSA9IFJlZ2lvbnMuZ2V0UmVnaW9uQ2FyZGluYWxpdHkocmVnaW9uKTtcbiAgICAgICAgICAgIHN3aXRjaCAoY2FyZGluYWxpdHkpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfVEFCTEU6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9DT0xVTU5TOlxuICAgICAgICAgICAgICAgICAgICBpZiAoUmVnaW9ucy5pbnRlcnZhbE92ZXJsYXBzKHJlZ2lvbi5jb2xzLCBxdWVyeS5jb2xzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX1JPV1M6XG4gICAgICAgICAgICAgICAgICAgIGlmIChSZWdpb25zLmludGVydmFsT3ZlcmxhcHMocmVnaW9uLnJvd3MsIHF1ZXJ5LnJvd3MpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFJlZ2lvbkNhcmRpbmFsaXR5LkNFTExTOlxuICAgICAgICAgICAgICAgICAgICBpZiAoUmVnaW9ucy5pbnRlcnZhbE92ZXJsYXBzKHJlZ2lvbi5jb2xzLCBxdWVyeS5jb2xzKVxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgUmVnaW9ucy5pbnRlcnZhbE92ZXJsYXBzKHJlZ2lvbi5yb3dzLCBxdWVyeS5yb3dzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBlYWNoVW5pcXVlRnVsbENvbHVtbihyZWdpb25zOiBJUmVnaW9uW10sIGl0ZXJhdGVlOiAoY29sOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICAgICAgaWYgKHJlZ2lvbnMgPT0gbnVsbCB8fCByZWdpb25zLmxlbmd0aCA9PT0gMCB8fCBpdGVyYXRlZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZWVuOiB7W2NvbDogbnVtYmVyXTogYm9vbGVhbn0gPSB7fTtcbiAgICAgICAgcmVnaW9ucy5mb3JFYWNoKChyZWdpb246IElSZWdpb24pID0+IHtcbiAgICAgICAgICAgIGlmIChSZWdpb25zLmdldFJlZ2lvbkNhcmRpbmFsaXR5KHJlZ2lvbikgPT09IFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfQ09MVU1OUykge1xuICAgICAgICAgICAgICAgIGNvbnN0IFsgc3RhcnQsIGVuZCBdID0gcmVnaW9uLmNvbHM7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgY29sID0gc3RhcnQ7IGNvbCA8PSBlbmQ7IGNvbCsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc2Vlbltjb2xdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWVuW2NvbF0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0ZWUoY29sKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNpbmcgdGhlIHN1cHBsaWVkIGFycmF5IG9mIG5vbi1jb250aWd1b3VzIGBJUmVnaW9uYHMsIHRoaXMgbWV0aG9kXG4gICAgICogcmV0dXJucyBhbiBvcmRlcmVkIGFycmF5IG9mIGV2ZXJ5IHVuaXF1ZSBjZWxsIHRoYXQgZXhpc3RzIGluIHRob3NlXG4gICAgICogcmVnaW9ucy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGVudW1lcmF0ZVVuaXF1ZUNlbGxzKFxuICAgICAgICByZWdpb25zOiBJUmVnaW9uW10sXG4gICAgICAgIG51bVJvd3M6IG51bWJlcixcbiAgICAgICAgbnVtQ29sczogbnVtYmVyXG4gICAgKTogSUNlbGxDb29yZGluYXRlW10ge1xuXG4gICAgICAgIGlmIChyZWdpb25zID09IG51bGwgfHwgcmVnaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlZW46IHtba2V5OiBzdHJpbmddOiBib29sZWFufSA9IHt9O1xuICAgICAgICBjb25zdCBsaXN0OiBJQ2VsbENvb3JkaW5hdGVbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHJlZ2lvbiBvZiByZWdpb25zKSB7XG4gICAgICAgICAgICBSZWdpb25zLmVhY2hDZWxsSW5SZWdpb24ocmVnaW9uLCBudW1Sb3dzLCBudW1Db2xzLCAocm93OiBudW1iZXIsIGNvbDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gYWRkIHRvIGxpc3QgaWYgbm90IHNlZW5cbiAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBgJHtyb3d9LSR7Y29sfWA7XG4gICAgICAgICAgICAgICAgaWYgKHNlZW5ba2V5XSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICBzZWVuW2tleV0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBsaXN0LnB1c2goW3JvdywgY29sXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzb3J0IGxpc3QgYnkgcm93cyB0aGVuIGNvbHVtbnNcbiAgICAgICAgbGlzdC5zb3J0KFJlZ2lvbnMucm93Rmlyc3RDb21wYXJhdG9yKTtcbiAgICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFwcyBhIGRlbnNlIGFycmF5IG9mIGNlbGwgY29vcmRpbmF0ZXMgdG8gYSBzcGFyc2UgMi1kaW1lbnNpb25hbCBhcnJheVxuICAgICAqIG9mIGNlbGwgdmFsdWVzLlxuICAgICAqXG4gICAgICogV2UgY3JlYXRlIGEgbmV3IDItZGltZW5zaW9uYWwgYXJyYXkgcmVwcmVzZW50aW5nIHRoZSBzbWFsbGVzdCBzaW5nbGVcbiAgICAgKiBjb250aWd1b3VzIGBJUmVnaW9uYCB0aGF0IGNvbnRhaW5zIGFsbCBjZWxscyBpbiB0aGUgc3VwcGxpZWQgYXJyYXkuIFdlXG4gICAgICogaW52b2tlIHRoZSBtYXBwZXIgY2FsbGJhY2sgb25seSBvbiB0aGUgY2VsbHMgaW4gdGhlIHN1cHBsaWVkIGNvb3JkaW5hdGVcbiAgICAgKiBhcnJheSBhbmQgc3RvcmUgdGhlIHJlc3VsdC4gUmV0dXJucyB0aGUgcmVzdWx0aW5nIDItZGltZW5zaW9uYWwgYXJyYXkuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzcGFyc2VNYXBDZWxsczxUPihcbiAgICAgICAgY2VsbHM6IElDZWxsQ29vcmRpbmF0ZVtdLFxuICAgICAgICBtYXBwZXI6IChyb3c6IG51bWJlciwgY29sOiBudW1iZXIpID0+IFRcbiAgICApOiBUW11bXSB7XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IFJlZ2lvbnMuZ2V0Qm91bmRpbmdSZWdpb24oY2VsbHMpO1xuICAgICAgICBpZiAoYm91bmRzID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbnVtUm93cyA9IGJvdW5kcy5yb3dzWzFdICsgMSAtIGJvdW5kcy5yb3dzWzBdO1xuICAgICAgICBjb25zdCBudW1Db2xzID0gYm91bmRzLmNvbHNbMV0gKyAxIC0gYm91bmRzLmNvbHNbMF07XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFV0aWxzLnRpbWVzKG51bVJvd3MsICgpID0+IG5ldyBBcnJheTxUPihudW1Db2xzKSk7XG4gICAgICAgIGNlbGxzLmZvckVhY2goKFtyb3csIGNvbF0pID0+IHtcbiAgICAgICAgICAgIHJlc3VsdFtyb3cgLSBib3VuZHMucm93c1swXV1bY29sIC0gYm91bmRzLmNvbHNbMF1dID0gbWFwcGVyKHJvdywgY29sKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgc21hbGxlc3Qgc2luZ2xlIGNvbnRpZ3VvdXMgYElSZWdpb25gIHRoYXQgY29udGFpbnMgYWxsIGNlbGxzIGluIHRoZVxuICAgICAqIHN1cHBsaWVkIGFycmF5LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Qm91bmRpbmdSZWdpb24oY2VsbHM6IElDZWxsQ29vcmRpbmF0ZVtdKTogSVJlZ2lvbiB7XG4gICAgICAgIGxldCBtaW5Sb3c6IG51bWJlcjtcbiAgICAgICAgbGV0IG1heFJvdzogbnVtYmVyO1xuICAgICAgICBsZXQgbWluQ29sOiBudW1iZXI7XG4gICAgICAgIGxldCBtYXhDb2w6IG51bWJlcjtcbiAgICAgICAgZm9yIChjb25zdCBbcm93LCBjb2xdIG9mIGNlbGxzKSB7XG4gICAgICAgICAgICBtaW5Sb3cgPSAobWluUm93ID09IG51bGwgfHwgcm93IDwgbWluUm93KSA/IHJvdyA6IG1pblJvdztcbiAgICAgICAgICAgIG1heFJvdyA9IChtYXhSb3cgPT0gbnVsbCB8fCByb3cgPiBtYXhSb3cpID8gcm93IDogbWF4Um93O1xuICAgICAgICAgICAgbWluQ29sID0gKG1pbkNvbCA9PSBudWxsIHx8IGNvbCA8IG1pbkNvbCkgPyBjb2wgOiBtaW5Db2w7XG4gICAgICAgICAgICBtYXhDb2wgPSAobWF4Q29sID09IG51bGwgfHwgY29sID4gbWF4Q29sKSA/IGNvbCA6IG1heENvbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWluUm93ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2xzOiBbbWluQ29sLCBtYXhDb2xdLFxuICAgICAgICAgICAgcm93czogW21pblJvdywgbWF4Um93XSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzVmFsaWQocmVnaW9uOiBJUmVnaW9uKSB7XG4gICAgICAgIGlmIChyZWdpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICgocmVnaW9uLnJvd3MgIT0gbnVsbCkgJiYgKHJlZ2lvbi5yb3dzWzBdIDwgMCB8fCByZWdpb24ucm93c1sxXSA8IDApKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChyZWdpb24uY29scyAhPSBudWxsKSAmJiAocmVnaW9uLmNvbHNbMF0gPCAwIHx8IHJlZ2lvbi5jb2xzWzFdIDwgMCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGpvaW5TdHlsZWRSZWdpb25Hcm91cHMoc2VsZWN0ZWRSZWdpb25zOiBJUmVnaW9uW10sIG90aGVyUmVnaW9uczogSVN0eWxlZFJlZ2lvbkdyb3VwW10pIHtcbiAgICAgICAgbGV0IHJlZ2lvbkdyb3VwczogSVN0eWxlZFJlZ2lvbkdyb3VwW10gPSBbXTtcbiAgICAgICAgaWYgKG90aGVyUmVnaW9ucyAhPSBudWxsKSB7XG4gICAgICAgICAgICByZWdpb25Hcm91cHMgPSByZWdpb25Hcm91cHMuY29uY2F0KG90aGVyUmVnaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlbGVjdGVkUmVnaW9ucyAhPSBudWxsICYmIHNlbGVjdGVkUmVnaW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZWdpb25Hcm91cHMucHVzaCh7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImJwLXRhYmxlLXNlbGVjdGlvbi1yZWdpb25cIixcbiAgICAgICAgICAgICAgICByZWdpb25zOiBzZWxlY3RlZFJlZ2lvbnMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVnaW9uR3JvdXBzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEl0ZXJhdGVzIG92ZXIgdGhlIGNlbGxzIHdpdGhpbiBhbiBgSVJlZ2lvbmAsIGludm9raW5nIHRoZSBjYWxsYmFjayB3aXRoXG4gICAgICogZWFjaCBjZWxsJ3MgY29vcmRpbmF0ZXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgZWFjaENlbGxJblJlZ2lvbihcbiAgICAgICAgcmVnaW9uOiBJUmVnaW9uLFxuICAgICAgICBudW1Sb3dzOiBudW1iZXIsXG4gICAgICAgIG51bUNvbHM6IG51bWJlcixcbiAgICAgICAgaXRlcmF0ZWU6IChyb3c6IG51bWJlciwgY29sOiBudW1iZXIpID0+IHZvaWRcbiAgICApIHtcbiAgICAgICAgY29uc3QgY2FyZGluYWxpdHkgPSBSZWdpb25zLmdldFJlZ2lvbkNhcmRpbmFsaXR5KHJlZ2lvbik7XG4gICAgICAgIHN3aXRjaCAoY2FyZGluYWxpdHkpIHtcbiAgICAgICAgICAgIGNhc2UgUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9UQUJMRTpcbiAgICAgICAgICAgICAgICBmb3IgKGxldCByb3cgPSAwOyByb3cgPCBudW1Sb3dzOyByb3crKykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBjb2wgPSAwOyBjb2wgPCBudW1Db2xzOyBjb2wrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0ZWUocm93LCBjb2wpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX0NPTFVNTlM6XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgcm93ID0gMDsgcm93IDwgbnVtUm93czsgcm93KyspIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgY29sID0gcmVnaW9uLmNvbHNbMF07IGNvbCA8PSByZWdpb24uY29sc1sxXTsgY29sKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGVlKHJvdywgY29sKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9ST1dTOlxuICAgICAgICAgICAgICAgIGZvciAobGV0IHJvdyA9IHJlZ2lvbi5yb3dzWzBdOyByb3cgPD0gcmVnaW9uLnJvd3NbMV07IHJvdysrKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGNvbCA9IDA7IGNvbCA8IG51bUNvbHM7IGNvbCsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRlZShyb3csIGNvbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFJlZ2lvbkNhcmRpbmFsaXR5LkNFTExTOlxuICAgICAgICAgICAgICAgIGZvciAobGV0IHJvdyA9IHJlZ2lvbi5yb3dzWzBdOyByb3cgPD0gcmVnaW9uLnJvd3NbMV07IHJvdysrKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGNvbCA9IHJlZ2lvbi5jb2xzWzBdOyBjb2wgPD0gcmVnaW9uLmNvbHNbMV07IGNvbCsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRlZShyb3csIGNvbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVnaW9uc0VxdWFsKHJlZ2lvbkE6IElSZWdpb24sIHJlZ2lvbkI6IElSZWdpb24pIHtcbiAgICAgICAgcmV0dXJuIFJlZ2lvbnMuaW50ZXJ2YWxzRXF1YWwocmVnaW9uQS5yb3dzLCByZWdpb25CLnJvd3MpXG4gICAgICAgICAgICAmJiBSZWdpb25zLmludGVydmFsc0VxdWFsKHJlZ2lvbkEuY29scywgcmVnaW9uQi5jb2xzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBpbnRlcnZhbHNFcXVhbChpdmFsQTogSUNlbGxJbnRlcnZhbCwgaXZhbEI6IElDZWxsSW50ZXJ2YWwpIHtcbiAgICAgICAgaWYgKGl2YWxBID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBpdmFsQiA9PSBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKGl2YWxCID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpdmFsQVswXSA9PT0gaXZhbEJbMF0gJiYgaXZhbEFbMV0gPT09IGl2YWxCWzFdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgaW50ZXJ2YWxDb250YWluc0luZGV4KGludGVydmFsOiBJQ2VsbEludGVydmFsLCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChpbnRlcnZhbCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGludGVydmFsWzBdIDw9IGluZGV4ICYmIGludGVydmFsWzFdID49IGluZGV4O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGludGVydmFsT3ZlcmxhcHMoaXZhbEE6IElDZWxsSW50ZXJ2YWwsIGl2YWxCOiBJQ2VsbEludGVydmFsKSB7XG4gICAgICAgIGlmIChpdmFsQSA9PSBudWxsIHx8IGl2YWxCID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXZhbEFbMV0gPCBpdmFsQlswXSB8fCBpdmFsQVswXSA+IGl2YWxCWzFdKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgcm93Rmlyc3RDb21wYXJhdG9yKGE6IElDZWxsQ29vcmRpbmF0ZSwgYjogSUNlbGxDb29yZGluYXRlKSB7XG4gICAgICAgIGNvbnN0IHJvd0RpZmYgPSBhWzBdIC0gYlswXTtcbiAgICAgICAgcmV0dXJuIHJvd0RpZmYgPT09IDAgPyBhWzFdIC0gYlsxXSA6IHJvd0RpZmY7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgbnVtZXJpY2FsQ29tcGFyYXRvcihhOiBudW1iZXIsIGI6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gYSAtIGI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgbm9ybWFsaXplSW50ZXJ2YWwoY29vcmQ6IG51bWJlciwgY29vcmQyPzogbnVtYmVyKSB7XG4gICAgICAgIGlmIChjb29yZDIgPT0gbnVsbCkge1xuICAgICAgICAgICAgY29vcmQyID0gY29vcmQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IFtjb29yZCwgY29vcmQyXTtcbiAgICAgICAgaW50ZXJ2YWwuc29ydChSZWdpb25zLm51bWVyaWNhbENvbXBhcmF0b3IpO1xuICAgICAgICByZXR1cm4gaW50ZXJ2YWwgYXMgSUNlbGxJbnRlcnZhbDtcbiAgICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
//# sourceMappingURL=data:application/json;base64,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QUFDO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRWMsMEJBQWtCLEdBQWpDLFVBQWtDLENBQWtCLEVBQUUsQ0FBa0I7UUFDcEUsSUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixNQUFNLENBQUMsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUNqRCxDQUFDO0lBRWMsMkJBQW1CLEdBQWxDLFVBQW1DLENBQVMsRUFBRSxDQUFTO1FBQ25ELE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFYyx5QkFBaUIsR0FBaEMsVUFBaUMsS0FBYSxFQUFFLE1BQWU7UUFDM0QsRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDakIsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNuQixDQUFDO1FBRUQsSUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDakMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQyxNQUFNLENBQUMsUUFBeUIsQ0FBQztJQUNyQyxDQUFDO0lBQ0wsY0FBQztBQUFELENBOVpBLEFBOFpDLElBQUE7QUE5WlksZUFBTyxVQThabkIsQ0FBQSIsImZpbGUiOiJyZWdpb25zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNiBQYWxhbnRpciBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBCU0QtMyBMaWNlbnNlIGFzIG1vZGlmaWVkICh0aGUg4oCcTGljZW5zZeKAnSk7IHlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIGxpY2Vuc2UgYXQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKiBhbmQgaHR0cHM6Ly9naXRodWIuY29tL3BhbGFudGlyL2JsdWVwcmludC9ibG9iL21hc3Rlci9QQVRFTlRTXG4gKi9cblxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tIFwiLi9jb21tb24vdXRpbHNcIjtcblxuLyoqXG4gKiBgUmVnaW9uYHMgY29udGFpbiBzZXRzIG9mIGNlbGxzLiBBZGRpdGlvbmFsbHksIGEgZGlzdGluY3Rpb24gaXMgZHJhd24sIGZvclxuICogZXhhbXBsZSwgYmV0d2VlbiBhbGwgY2VsbHMgd2l0aGluIGEgY29sdW1uIGFuZCB0aGUgd2hvbGUgY29sdW1uIGl0c2VsZi5cbiAqIFRoZSBgUmVnaW9uQ2FyZGluYWxpdHlgIGVudW0gcmVwcmVzZW50cyB0aGVzZSBkaXN0aW5jdCB0eXBlcyBvZiBgUmVnaW9uYHMuXG4gKi9cbmV4cG9ydCBlbnVtIFJlZ2lvbkNhcmRpbmFsaXR5IHtcbiAgICAvKipcbiAgICAgKiBBIHJlZ2lvbiB0aGF0IGNvbnRhaW5zIGEgZmluaXRlIHJlY3Rhbmd1bGFyIGdyb3VwIG9mIHRhYmxlIGNlbGxzXG4gICAgICovXG4gICAgQ0VMTFMsXG5cbiAgICAvKipcbiAgICAgKiBBIHJlZ2lvbiB0aGF0IHJlcHJlc2VudHMgYWxsIGNlbGxzIHdpdGhpbiAxIG9yIG1vcmUgcm93cy5cbiAgICAgKi9cbiAgICBGVUxMX1JPV1MsXG5cbiAgICAvKipcbiAgICAgKiBBIHJlZ2lvbiB0aGF0IHJlcHJlc2VudHMgYWxsIGNlbGxzIHdpdGhpbiAxIG9yIG1vcmUgY29sdW1ucy5cbiAgICAgKi9cbiAgICBGVUxMX0NPTFVNTlMsXG5cbiAgICAvKipcbiAgICAgKiBBIHJlZ2lvbiB0aGF0IHJlcHJlc2VudHMgYWxsIGNlbGxzIGluIHRoZSB0YWJsZS5cbiAgICAgKi9cbiAgICBGVUxMX1RBQkxFLFxufVxuXG4vKipcbiAqIEEgY29udmVuaWVuY2Ugb2JqZWN0IGZvciBzdWJzZXRzIG9mIGBSZWdpb25DYXJkaW5hbGl0eWAgdGhhdCBhcmUgY29tbW9ubHlcbiAqIHVzZWQgYXMgdGhlIGBzZWxlY3Rpb25Nb2RlYCBwcm9wIG9mIHRoZSBgPFRhYmxlPmAuXG4gKi9cbmV4cG9ydCBjb25zdCBTZWxlY3Rpb25Nb2RlcyA9IHtcbiAgICBBTEw6IFtcbiAgICAgICAgUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9DT0xVTU5TLFxuICAgICAgICBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX1JPV1MsXG4gICAgICAgIFJlZ2lvbkNhcmRpbmFsaXR5LkNFTExTLFxuICAgIF0sXG4gICAgQ09MVU1OU19BTkRfQ0VMTFM6IFtcbiAgICAgICAgUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9DT0xVTU5TLFxuICAgICAgICBSZWdpb25DYXJkaW5hbGl0eS5DRUxMUyxcbiAgICBdLFxuICAgIENPTFVNTlNfT05MWTogW1xuICAgICAgICBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX0NPTFVNTlMsXG4gICAgXSxcbiAgICBOT05FOiBbXSBhcyBSZWdpb25DYXJkaW5hbGl0eVtdLFxuICAgIFJPV1NfQU5EX0NFTExTOiBbXG4gICAgICAgIFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfUk9XUyxcbiAgICAgICAgUmVnaW9uQ2FyZGluYWxpdHkuQ0VMTFMsXG4gICAgXSxcbiAgICBST1dTX09OTFk6IFtcbiAgICAgICAgUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9ST1dTLFxuICAgIF0sXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElTdHlsZWRSZWdpb25Hcm91cCB7XG4gICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgIHJlZ2lvbnM6IElSZWdpb25bXTtcbn1cblxuLyoqXG4gKiBBbiBfaW5jbHVzaXZlXyBpbnRlcnZhbCBvZiBaRVJPLWluZGV4ZWQgY2VsbCBpbmRpY2VzLlxuICovXG5leHBvcnQgdHlwZSBJQ2VsbEludGVydmFsID0gW251bWJlciwgbnVtYmVyXTtcblxuLyoqXG4gKiBTbWFsbCBkYXRhc3RydWN0dXJlIGZvciBzdG9yaW5nIGNlbGwgY29vcmRpbmF0ZXMgW3JvdywgY29sdW1uXVxuICovXG5leHBvcnQgdHlwZSBJQ2VsbENvb3JkaW5hdGUgPSBbbnVtYmVyLCBudW1iZXJdO1xuXG4vKipcbiAqIEEgWkVSTy1pbmRleGVkIHJlZ2lvbiBvZiBjZWxscy5cbiAqXG4gKiBAc2VlIGBSZWdpb25zLmdldFJlZ2lvbkNhcmRpbmFsaXR5YCBmb3IgbW9yZSBhYm91dCB0aGUgZm9ybWF0IG9mIHRoaXMgb2JqZWN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElSZWdpb24ge1xuICAgIHJvd3M/OiBJQ2VsbEludGVydmFsO1xuICAgIGNvbHM/OiBJQ2VsbEludGVydmFsO1xufVxuXG5leHBvcnQgY2xhc3MgUmVnaW9ucyB7XG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB0aGUgY2FyZGluYWxpdHkgb2YgYSByZWdpb24uIFdlIHVzZSBudWxsIHZhbHVlcyB0byBpbmRpY2F0ZVxuICAgICAqIGFuIHVuYm91bmRlZCBpbnRlcnZhbC4gVGhlcmVmb3JlLCBhbiBleGFtcGxlIG9mIGEgcmVnaW9uIGNvbnRhaW5pbmcgdGhlXG4gICAgICogc2Vjb25kIGFuZCB0aGlyZCBjb2x1bW5zIHdvdWxkIGJlOlxuICAgICAqXG4gICAgICogICAgIHtcbiAgICAgKiAgICAgICAgIHJvd3M6IG51bGwsXG4gICAgICogICAgICAgICBjb2xzOiBbMSwgMl1cbiAgICAgKiAgICAgfVxuICAgICAqXG4gICAgICogSW4gdGhpcyBjYXNlLCB0aGlzIG1ldGhvZCB3b3VsZCByZXR1cm4gUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9DT0xVTU5TLlxuICAgICAqIEFuIGV4YW1wbGUgb2YgYSByZWdpb24gY29udGFpbmluZyBhIHNpbmdsZSBjZWxsIGluIHRoZSB0YWJsZSB3b3VsZCBiZTpcbiAgICAgKlxuICAgICAqICAgICB7XG4gICAgICogICAgICAgICByb3dzOiBbNSwgNV0sXG4gICAgICogICAgICAgICBjb2xzOiBbMiwgMl1cbiAgICAgKiAgICAgfVxuICAgICAqXG4gICAgICogSW4gdGhpcyBjYXNlLCB0aGlzIG1ldGhvZCB3b3VsZCByZXR1cm4gUmVnaW9uQ2FyZGluYWxpdHkuQ0VMTFMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZWdpb25DYXJkaW5hbGl0eShyZWdpb246IElSZWdpb24pIHtcbiAgICAgICAgaWYgKHJlZ2lvbi5jb2xzICE9IG51bGwgJiYgcmVnaW9uLnJvd3MgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIFJlZ2lvbkNhcmRpbmFsaXR5LkNFTExTO1xuICAgICAgICB9IGVsc2UgaWYgKHJlZ2lvbi5jb2xzICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX0NPTFVNTlM7XG4gICAgICAgIH0gZWxzZSBpZiAocmVnaW9uLnJvd3MgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfUk9XUztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX1RBQkxFO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIHJlZ2lvbiBjb250YWluaW5nIG9uZSBvciBtb3JlIGNlbGxzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY2VsbChyb3c6IG51bWJlciwgY29sOiBudW1iZXIsIHJvdzI/OiBudW1iZXIsIGNvbDI/OiBudW1iZXIpOiBJUmVnaW9uIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbHM6IHRoaXMubm9ybWFsaXplSW50ZXJ2YWwoY29sLCBjb2wyKSxcbiAgICAgICAgICAgIHJvd3M6IHRoaXMubm9ybWFsaXplSW50ZXJ2YWwocm93LCByb3cyKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgcmVnaW9uIGNvbnRhaW5pbmcgb25lIG9yIG1vcmUgZnVsbCByb3dzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcm93KHJvdzogbnVtYmVyLCByb3cyPzogbnVtYmVyKTogSVJlZ2lvbiAge1xuICAgICAgICByZXR1cm4geyByb3dzOiB0aGlzLm5vcm1hbGl6ZUludGVydmFsKHJvdywgcm93MikgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgcmVnaW9uIGNvbnRhaW5pbmcgb25lIG9yIG1vcmUgZnVsbCBjb2x1bW5zLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY29sdW1uKGNvbDogbnVtYmVyLCBjb2wyPzogbnVtYmVyKTogSVJlZ2lvbiAge1xuICAgICAgICByZXR1cm4geyBjb2xzOiB0aGlzLm5vcm1hbGl6ZUludGVydmFsKGNvbCwgY29sMikgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIHRoZSByZWdpb24gdG8gdGhlIGVuZCBvZiBhIGNsb25lZCBjb3B5IG9mIHRoZSBzdXBwbGllZCByZWdpb25cbiAgICAgKiBhcnJheS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGFkZChyZWdpb25zOiBJUmVnaW9uW10sIHJlZ2lvbjogSVJlZ2lvbikge1xuICAgICAgICBsZXQgY29weSA9IHJlZ2lvbnMuc2xpY2UoKTtcbiAgICAgICAgY29weS5wdXNoKHJlZ2lvbik7XG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2VzIHRoZSByZWdpb24gYXQgdGhlIGVuZCBvZiBhIGNsb25lZCBjb3B5IG9mIHRoZSBzdXBwbGllZCByZWdpb25cbiAgICAgKiBhcnJheS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHVwZGF0ZShyZWdpb25zOiBJUmVnaW9uW10sIHJlZ2lvbjogSVJlZ2lvbikge1xuICAgICAgICBsZXQgY29weSA9IHJlZ2lvbnMuc2xpY2UoKTtcbiAgICAgICAgY29weS5wb3AoKTtcbiAgICAgICAgY29weS5wdXNoKHJlZ2lvbik7XG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHNwZWNpZmllZCByZWdpb24gaXMgZXF1YWwgdG8gdGhlIGxhc3QgcmVnaW9uIGluXG4gICAgICogdGhlIHJlZ2lvbiBsaXN0LiBUaGlzIGFsbG93cyB1cyB0byBhdm9pZCBpbW1lZGlhdGUgYWRkaXRpdmUgcmUtc2VsZWN0aW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgbGFzdFJlZ2lvbklzRXF1YWwocmVnaW9uczogSVJlZ2lvbltdLCByZWdpb246IElSZWdpb24pIHtcbiAgICAgICAgaWYgKHJlZ2lvbnMgPT0gbnVsbCB8fCByZWdpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3RSZWdpb24gPSByZWdpb25zW3JlZ2lvbnMubGVuZ3RoIC0gMV07XG4gICAgICAgIHJldHVybiBSZWdpb25zLnJlZ2lvbnNFcXVhbChsYXN0UmVnaW9uLCByZWdpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSByZWdpb24gdGhhdCBpcyBlcXVhbCB0byB0aGUgc3VwcGxpZWRcbiAgICAgKiBwYXJhbWV0ZXIuIFJldHVybnMgLTEgaWYgbm8gc3VjaCByZWdpb24gaXMgZm91bmQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmaW5kTWF0Y2hpbmdSZWdpb24ocmVnaW9uczogSVJlZ2lvbltdLCByZWdpb246IElSZWdpb24pIHtcbiAgICAgICAgaWYgKHJlZ2lvbnMgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZWdpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoUmVnaW9ucy5yZWdpb25zRXF1YWwocmVnaW9uc1tpXSwgcmVnaW9uKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJlZ2lvbnMgY29udGFpbiBhIHJlZ2lvbiB0aGF0IGhhcyBGVUxMX0NPTFVNTlNcbiAgICAgKiBjYXJkaW5hbGl0eSBhbmQgY29udGFpbnMgdGhlIHNwZWNpZmllZCBjb2x1bW4gaW5kZXguXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBoYXNGdWxsQ29sdW1uKHJlZ2lvbnM6IElSZWdpb25bXSwgY29sOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHJlZ2lvbnMgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCByZWdpb24gb2YgcmVnaW9ucykge1xuICAgICAgICAgICAgY29uc3QgY2FyZGluYWxpdHkgPSBSZWdpb25zLmdldFJlZ2lvbkNhcmRpbmFsaXR5KHJlZ2lvbik7XG4gICAgICAgICAgICBpZiAoY2FyZGluYWxpdHkgPT09IFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfVEFCTEUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYXJkaW5hbGl0eSA9PT0gUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9DT0xVTU5TICYmIFJlZ2lvbnMuaW50ZXJ2YWxDb250YWluc0luZGV4KHJlZ2lvbi5jb2xzLCBjb2wpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSByZWdpb25zIGNvbnRhaW4gYSByZWdpb24gdGhhdCBoYXMgRlVMTF9ST1dTXG4gICAgICogY2FyZGluYWxpdHkgYW5kIGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgcm93IGluZGV4LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaGFzRnVsbFJvdyhyZWdpb25zOiBJUmVnaW9uW10sIHJvdzogbnVtYmVyKSB7XG4gICAgICAgIGlmIChyZWdpb25zID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgcmVnaW9uIG9mIHJlZ2lvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhcmRpbmFsaXR5ID0gUmVnaW9ucy5nZXRSZWdpb25DYXJkaW5hbGl0eShyZWdpb24pO1xuICAgICAgICAgICAgaWYgKGNhcmRpbmFsaXR5ID09PSBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX1RBQkxFKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2FyZGluYWxpdHkgPT09IFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfUk9XUyAmJiBSZWdpb25zLmludGVydmFsQ29udGFpbnNJbmRleChyZWdpb24ucm93cywgcm93KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcmVnaW9ucyBjb250YWluIHRoZSBxdWVyeSByZWdpb24uIFRoZSBxdWVyeSByZWdpb25cbiAgICAgKiBtYXkgYmUgYSBzdWJzZXQgb2YgdGhlIGByZWdpb25zYCBwYXJhbWV0ZXIuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjb250YWluc1JlZ2lvbihyZWdpb25zOiBJUmVnaW9uW10sIHF1ZXJ5OiBJUmVnaW9uKSB7XG4gICAgICAgIGlmIChyZWdpb25zID09IG51bGwgfHwgcXVlcnkgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCByZWdpb24gb2YgcmVnaW9ucykge1xuICAgICAgICAgICAgY29uc3QgY2FyZGluYWxpdHkgPSBSZWdpb25zLmdldFJlZ2lvbkNhcmRpbmFsaXR5KHJlZ2lvbik7XG4gICAgICAgICAgICBzd2l0Y2ggKGNhcmRpbmFsaXR5KSB7XG4gICAgICAgICAgICAgICAgY2FzZSBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX1RBQkxFOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfQ09MVU1OUzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKFJlZ2lvbnMuaW50ZXJ2YWxPdmVybGFwcyhyZWdpb24uY29scywgcXVlcnkuY29scykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9ST1dTOlxuICAgICAgICAgICAgICAgICAgICBpZiAoUmVnaW9ucy5pbnRlcnZhbE92ZXJsYXBzKHJlZ2lvbi5yb3dzLCBxdWVyeS5yb3dzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBSZWdpb25DYXJkaW5hbGl0eS5DRUxMUzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKFJlZ2lvbnMuaW50ZXJ2YWxPdmVybGFwcyhyZWdpb24uY29scywgcXVlcnkuY29scylcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIFJlZ2lvbnMuaW50ZXJ2YWxPdmVybGFwcyhyZWdpb24ucm93cywgcXVlcnkucm93cykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZWFjaFVuaXF1ZUZ1bGxDb2x1bW4ocmVnaW9uczogSVJlZ2lvbltdLCBpdGVyYXRlZTogKGNvbDogbnVtYmVyKSA9PiB2b2lkKSB7XG4gICAgICAgIGlmIChyZWdpb25zID09IG51bGwgfHwgcmVnaW9ucy5sZW5ndGggPT09IDAgfHwgaXRlcmF0ZWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2Vlbjoge1tjb2w6IG51bWJlcl06IGJvb2xlYW59ID0ge307XG4gICAgICAgIHJlZ2lvbnMuZm9yRWFjaCgocmVnaW9uOiBJUmVnaW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAoUmVnaW9ucy5nZXRSZWdpb25DYXJkaW5hbGl0eShyZWdpb24pID09PSBSZWdpb25DYXJkaW5hbGl0eS5GVUxMX0NPTFVNTlMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbIHN0YXJ0LCBlbmQgXSA9IHJlZ2lvbi5jb2xzO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGNvbCA9IHN0YXJ0OyBjb2wgPD0gZW5kOyBjb2wrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXNlZW5bY29sXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2Vlbltjb2xdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGVlKGNvbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzaW5nIHRoZSBzdXBwbGllZCBhcnJheSBvZiBub24tY29udGlndW91cyBgSVJlZ2lvbmBzLCB0aGlzIG1ldGhvZFxuICAgICAqIHJldHVybnMgYW4gb3JkZXJlZCBhcnJheSBvZiBldmVyeSB1bmlxdWUgY2VsbCB0aGF0IGV4aXN0cyBpbiB0aG9zZVxuICAgICAqIHJlZ2lvbnMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBlbnVtZXJhdGVVbmlxdWVDZWxscyhcbiAgICAgICAgcmVnaW9uczogSVJlZ2lvbltdLFxuICAgICAgICBudW1Sb3dzOiBudW1iZXIsXG4gICAgICAgIG51bUNvbHM6IG51bWJlcixcbiAgICApOiBJQ2VsbENvb3JkaW5hdGVbXSB7XG5cbiAgICAgICAgaWYgKHJlZ2lvbnMgPT0gbnVsbCB8fCByZWdpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2Vlbjoge1trZXk6IHN0cmluZ106IGJvb2xlYW59ID0ge307XG4gICAgICAgIGNvbnN0IGxpc3Q6IElDZWxsQ29vcmRpbmF0ZVtdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcmVnaW9uIG9mIHJlZ2lvbnMpIHtcbiAgICAgICAgICAgIFJlZ2lvbnMuZWFjaENlbGxJblJlZ2lvbihyZWdpb24sIG51bVJvd3MsIG51bUNvbHMsIChyb3c6IG51bWJlciwgY29sOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBhZGQgdG8gbGlzdCBpZiBub3Qgc2VlblxuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGAke3Jvd30tJHtjb2x9YDtcbiAgICAgICAgICAgICAgICBpZiAoc2VlbltrZXldICE9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlZW5ba2V5XSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGxpc3QucHVzaChbcm93LCBjb2xdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNvcnQgbGlzdCBieSByb3dzIHRoZW4gY29sdW1uc1xuICAgICAgICBsaXN0LnNvcnQoUmVnaW9ucy5yb3dGaXJzdENvbXBhcmF0b3IpO1xuICAgICAgICByZXR1cm4gbGlzdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYXBzIGEgZGVuc2UgYXJyYXkgb2YgY2VsbCBjb29yZGluYXRlcyB0byBhIHNwYXJzZSAyLWRpbWVuc2lvbmFsIGFycmF5XG4gICAgICogb2YgY2VsbCB2YWx1ZXMuXG4gICAgICpcbiAgICAgKiBXZSBjcmVhdGUgYSBuZXcgMi1kaW1lbnNpb25hbCBhcnJheSByZXByZXNlbnRpbmcgdGhlIHNtYWxsZXN0IHNpbmdsZVxuICAgICAqIGNvbnRpZ3VvdXMgYElSZWdpb25gIHRoYXQgY29udGFpbnMgYWxsIGNlbGxzIGluIHRoZSBzdXBwbGllZCBhcnJheS4gV2VcbiAgICAgKiBpbnZva2UgdGhlIG1hcHBlciBjYWxsYmFjayBvbmx5IG9uIHRoZSBjZWxscyBpbiB0aGUgc3VwcGxpZWQgY29vcmRpbmF0ZVxuICAgICAqIGFycmF5IGFuZCBzdG9yZSB0aGUgcmVzdWx0LiBSZXR1cm5zIHRoZSByZXN1bHRpbmcgMi1kaW1lbnNpb25hbCBhcnJheS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHNwYXJzZU1hcENlbGxzPFQ+KFxuICAgICAgICBjZWxsczogSUNlbGxDb29yZGluYXRlW10sXG4gICAgICAgIG1hcHBlcjogKHJvdzogbnVtYmVyLCBjb2w6IG51bWJlcikgPT4gVCxcbiAgICApOiBUW11bXSB7XG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IFJlZ2lvbnMuZ2V0Qm91bmRpbmdSZWdpb24oY2VsbHMpO1xuICAgICAgICBpZiAoYm91bmRzID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbnVtUm93cyA9IGJvdW5kcy5yb3dzWzFdICsgMSAtIGJvdW5kcy5yb3dzWzBdO1xuICAgICAgICBjb25zdCBudW1Db2xzID0gYm91bmRzLmNvbHNbMV0gKyAxIC0gYm91bmRzLmNvbHNbMF07XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFV0aWxzLnRpbWVzKG51bVJvd3MsICgpID0+IG5ldyBBcnJheTxUPihudW1Db2xzKSk7XG4gICAgICAgIGNlbGxzLmZvckVhY2goKFtyb3csIGNvbF0pID0+IHtcbiAgICAgICAgICAgIHJlc3VsdFtyb3cgLSBib3VuZHMucm93c1swXV1bY29sIC0gYm91bmRzLmNvbHNbMF1dID0gbWFwcGVyKHJvdywgY29sKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgc21hbGxlc3Qgc2luZ2xlIGNvbnRpZ3VvdXMgYElSZWdpb25gIHRoYXQgY29udGFpbnMgYWxsIGNlbGxzIGluIHRoZVxuICAgICAqIHN1cHBsaWVkIGFycmF5LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Qm91bmRpbmdSZWdpb24oY2VsbHM6IElDZWxsQ29vcmRpbmF0ZVtdKTogSVJlZ2lvbiB7XG4gICAgICAgIGxldCBtaW5Sb3c6IG51bWJlcjtcbiAgICAgICAgbGV0IG1heFJvdzogbnVtYmVyO1xuICAgICAgICBsZXQgbWluQ29sOiBudW1iZXI7XG4gICAgICAgIGxldCBtYXhDb2w6IG51bWJlcjtcbiAgICAgICAgZm9yIChjb25zdCBbcm93LCBjb2xdIG9mIGNlbGxzKSB7XG4gICAgICAgICAgICBtaW5Sb3cgPSAobWluUm93ID09IG51bGwgfHwgcm93IDwgbWluUm93KSA/IHJvdyA6IG1pblJvdztcbiAgICAgICAgICAgIG1heFJvdyA9IChtYXhSb3cgPT0gbnVsbCB8fCByb3cgPiBtYXhSb3cpID8gcm93IDogbWF4Um93O1xuICAgICAgICAgICAgbWluQ29sID0gKG1pbkNvbCA9PSBudWxsIHx8IGNvbCA8IG1pbkNvbCkgPyBjb2wgOiBtaW5Db2w7XG4gICAgICAgICAgICBtYXhDb2wgPSAobWF4Q29sID09IG51bGwgfHwgY29sID4gbWF4Q29sKSA/IGNvbCA6IG1heENvbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWluUm93ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2xzOiBbbWluQ29sLCBtYXhDb2xdLFxuICAgICAgICAgICAgcm93czogW21pblJvdywgbWF4Um93XSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzVmFsaWQocmVnaW9uOiBJUmVnaW9uKSB7XG4gICAgICAgIGlmIChyZWdpb24gPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICgocmVnaW9uLnJvd3MgIT0gbnVsbCkgJiYgKHJlZ2lvbi5yb3dzWzBdIDwgMCB8fCByZWdpb24ucm93c1sxXSA8IDApKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChyZWdpb24uY29scyAhPSBudWxsKSAmJiAocmVnaW9uLmNvbHNbMF0gPCAwIHx8IHJlZ2lvbi5jb2xzWzFdIDwgMCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGpvaW5TdHlsZWRSZWdpb25Hcm91cHMoc2VsZWN0ZWRSZWdpb25zOiBJUmVnaW9uW10sIG90aGVyUmVnaW9uczogSVN0eWxlZFJlZ2lvbkdyb3VwW10pIHtcbiAgICAgICAgbGV0IHJlZ2lvbkdyb3VwczogSVN0eWxlZFJlZ2lvbkdyb3VwW10gPSBbXTtcbiAgICAgICAgaWYgKG90aGVyUmVnaW9ucyAhPSBudWxsKSB7XG4gICAgICAgICAgICByZWdpb25Hcm91cHMgPSByZWdpb25Hcm91cHMuY29uY2F0KG90aGVyUmVnaW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlbGVjdGVkUmVnaW9ucyAhPSBudWxsICYmIHNlbGVjdGVkUmVnaW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZWdpb25Hcm91cHMucHVzaCh7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImJwLXRhYmxlLXNlbGVjdGlvbi1yZWdpb25cIixcbiAgICAgICAgICAgICAgICByZWdpb25zOiBzZWxlY3RlZFJlZ2lvbnMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVnaW9uR3JvdXBzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEl0ZXJhdGVzIG92ZXIgdGhlIGNlbGxzIHdpdGhpbiBhbiBgSVJlZ2lvbmAsIGludm9raW5nIHRoZSBjYWxsYmFjayB3aXRoXG4gICAgICogZWFjaCBjZWxsJ3MgY29vcmRpbmF0ZXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzdGF0aWMgZWFjaENlbGxJblJlZ2lvbihcbiAgICAgICAgcmVnaW9uOiBJUmVnaW9uLFxuICAgICAgICBudW1Sb3dzOiBudW1iZXIsXG4gICAgICAgIG51bUNvbHM6IG51bWJlcixcbiAgICAgICAgaXRlcmF0ZWU6IChyb3c6IG51bWJlciwgY29sOiBudW1iZXIpID0+IHZvaWQsXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IGNhcmRpbmFsaXR5ID0gUmVnaW9ucy5nZXRSZWdpb25DYXJkaW5hbGl0eShyZWdpb24pO1xuICAgICAgICBzd2l0Y2ggKGNhcmRpbmFsaXR5KSB7XG4gICAgICAgICAgICBjYXNlIFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfVEFCTEU6XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgcm93ID0gMDsgcm93IDwgbnVtUm93czsgcm93KyspIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgY29sID0gMDsgY29sIDwgbnVtQ29sczsgY29sKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGVlKHJvdywgY29sKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUmVnaW9uQ2FyZGluYWxpdHkuRlVMTF9DT0xVTU5TOlxuICAgICAgICAgICAgICAgIGZvciAobGV0IHJvdyA9IDA7IHJvdyA8IG51bVJvd3M7IHJvdysrKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGNvbCA9IHJlZ2lvbi5jb2xzWzBdOyBjb2wgPD0gcmVnaW9uLmNvbHNbMV07IGNvbCsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVyYXRlZShyb3csIGNvbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFJlZ2lvbkNhcmRpbmFsaXR5LkZVTExfUk9XUzpcbiAgICAgICAgICAgICAgICBmb3IgKGxldCByb3cgPSByZWdpb24ucm93c1swXTsgcm93IDw9IHJlZ2lvbi5yb3dzWzFdOyByb3crKykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBjb2wgPSAwOyBjb2wgPCBudW1Db2xzOyBjb2wrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0ZWUocm93LCBjb2wpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBSZWdpb25DYXJkaW5hbGl0eS5DRUxMUzpcbiAgICAgICAgICAgICAgICBmb3IgKGxldCByb3cgPSByZWdpb24ucm93c1swXTsgcm93IDw9IHJlZ2lvbi5yb3dzWzFdOyByb3crKykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBjb2wgPSByZWdpb24uY29sc1swXTsgY29sIDw9IHJlZ2lvbi5jb2xzWzFdOyBjb2wrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0ZWUocm93LCBjb2wpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHJlZ2lvbnNFcXVhbChyZWdpb25BOiBJUmVnaW9uLCByZWdpb25COiBJUmVnaW9uKSB7XG4gICAgICAgIHJldHVybiBSZWdpb25zLmludGVydmFsc0VxdWFsKHJlZ2lvbkEucm93cywgcmVnaW9uQi5yb3dzKVxuICAgICAgICAgICAgJiYgUmVnaW9ucy5pbnRlcnZhbHNFcXVhbChyZWdpb25BLmNvbHMsIHJlZ2lvbkIuY29scyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgaW50ZXJ2YWxzRXF1YWwoaXZhbEE6IElDZWxsSW50ZXJ2YWwsIGl2YWxCOiBJQ2VsbEludGVydmFsKSB7XG4gICAgICAgIGlmIChpdmFsQSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gaXZhbEIgPT0gbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmIChpdmFsQiA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaXZhbEFbMF0gPT09IGl2YWxCWzBdICYmIGl2YWxBWzFdID09PSBpdmFsQlsxXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGludGVydmFsQ29udGFpbnNJbmRleChpbnRlcnZhbDogSUNlbGxJbnRlcnZhbCwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICBpZiAoaW50ZXJ2YWwgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnRlcnZhbFswXSA8PSBpbmRleCAmJiBpbnRlcnZhbFsxXSA+PSBpbmRleDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBpbnRlcnZhbE92ZXJsYXBzKGl2YWxBOiBJQ2VsbEludGVydmFsLCBpdmFsQjogSUNlbGxJbnRlcnZhbCkge1xuICAgICAgICBpZiAoaXZhbEEgPT0gbnVsbCB8fCBpdmFsQiA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGl2YWxBWzFdIDwgaXZhbEJbMF0gfHwgaXZhbEFbMF0gPiBpdmFsQlsxXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHJvd0ZpcnN0Q29tcGFyYXRvcihhOiBJQ2VsbENvb3JkaW5hdGUsIGI6IElDZWxsQ29vcmRpbmF0ZSkge1xuICAgICAgICBjb25zdCByb3dEaWZmID0gYVswXSAtIGJbMF07XG4gICAgICAgIHJldHVybiByb3dEaWZmID09PSAwID8gYVsxXSAtIGJbMV0gOiByb3dEaWZmO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIG51bWVyaWNhbENvbXBhcmF0b3IoYTogbnVtYmVyLCBiOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIGEgLSBiO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIG5vcm1hbGl6ZUludGVydmFsKGNvb3JkOiBudW1iZXIsIGNvb3JkMj86IG51bWJlcikge1xuICAgICAgICBpZiAoY29vcmQyID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvb3JkMiA9IGNvb3JkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW50ZXJ2YWwgPSBbY29vcmQsIGNvb3JkMl07XG4gICAgICAgIGludGVydmFsLnNvcnQoUmVnaW9ucy5udW1lcmljYWxDb21wYXJhdG9yKTtcbiAgICAgICAgcmV0dXJuIGludGVydmFsIGFzIElDZWxsSW50ZXJ2YWw7XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

@@ -1,6 +0,9 @@

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/
import { AbstractComponent, IProps } from "@blueprintjs/core";
import * as React from "react";
import { IColumnProps } from "./column";

@@ -14,4 +17,2 @@ import { Rect } from "./common/rect";

import { IRegion, IStyledRegionGroup, RegionCardinality } from "./regions";
import { AbstractComponent, IProps } from "@blueprintjs/core";
import * as React from "react";
export interface ITableProps extends IProps, IRowHeights, IColumnWidths {

@@ -18,0 +19,0 @@ /**

@@ -1,6 +0,9 @@

/// <reference types="react" />
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/
import { IProps } from "@blueprintjs/core";
import * as React from "react";
import { ICellRenderer } from "./cell/cell";

@@ -12,4 +15,2 @@ import { Grid, IColumnIndices, IRowIndices } from "./common/grid";

import { ILocator } from "./locator";
import { IProps } from "@blueprintjs/core";
import * as React from "react";
export interface ITableBodyProps extends ISelectableProps, IRowIndices, IColumnIndices, IProps {

@@ -16,0 +17,0 @@ /**

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -17,2 +19,4 @@ "use strict";

};
var core_1 = require("@blueprintjs/core");
var React = require("react");
var cell_1 = require("./cell/cell");

@@ -24,4 +28,2 @@ var rect_1 = require("./common/rect");

var regions_1 = require("./regions");
var core_1 = require("@blueprintjs/core");
var React = require("react");
var TABLE_BODY_CLASSES = "bp-table-body-virtual-client bp-table-cell-client";

@@ -139,2 +141,2 @@ var CELL_GHOST_CLASS = "bp-table-cell-ghost";

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90YWJsZUJvZHkudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRzs7Ozs7Ozs7Ozs7OztBQUVILHFCQUE2RCxhQUFhLENBQUMsQ0FBQTtBQUUzRSxxQkFBcUIsZUFBZSxDQUFDLENBQUE7QUFDckMsc0JBQXNCLGdCQUFnQixDQUFDLENBQUE7QUFFdkMsc0JBQWtELHNCQUFzQixDQUFDLENBQUE7QUFDekUsMkJBQWlELDJCQUEyQixDQUFDLENBQUE7QUFFN0Usd0JBQXdCLFdBQVcsQ0FBQyxDQUFBO0FBQ3BDLHFCQUEwQyxtQkFBbUIsQ0FBQyxDQUFBO0FBQzlELElBQVksS0FBSyxXQUFNLE9BQU8sQ0FBQyxDQUFBO0FBaUMvQixJQUFNLGtCQUFrQixHQUFHLG1EQUFtRCxDQUFDO0FBQy9FLElBQU0sZ0JBQWdCLEdBQUcscUJBQXFCLENBQUM7QUFDL0MsSUFBTSxxQkFBcUIsR0FBRywwQkFBMEIsQ0FBQztBQUN6RCxJQUFNLHNCQUFzQixHQUFHLDJCQUEyQixDQUFDO0FBRTNEOzs7R0FHRztBQUNILElBQU0saUJBQWlCLEdBQUc7SUFDdEIsTUFBTTtJQUNOLFNBQVM7SUFDVCxjQUFjO0lBQ2QsY0FBYztJQUNkLGVBQWU7SUFDZixhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLGdCQUFnQjtDQUNuQixDQUFDO0FBR0Y7SUFBK0IsNkJBQW9DO0lBQW5FO1FBQUEsaUJBMkdDO1FBM0c4Qiw4QkFBb0M7UUF3RHZELG9CQUFlLEdBQUcsVUFBQyxRQUFnQixFQUFFLFdBQW1CLEVBQUUsY0FBd0I7WUFDOUUsMkJBQUksQ0FBZ0I7WUFDNUIsSUFBTSxJQUFJLEdBQUcsYUFBSyxDQUFDLGFBQWEsQ0FDNUIsd0JBQWlCLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxFQUN4QyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFDL0MsY0FBYyxFQUNkLGdCQUFnQixFQUFFO2dCQUNkLEdBQUMscUJBQXFCLENBQUMsR0FB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QUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUF2REw7UUFBQyx3QkFBaUI7aUJBQUE7SUE0R2xCLGdCQUFDO0FBQUQsQ0EzR0EsQUEyR0MsQ0EzRzhCLEtBQUssQ0FBQyxTQUFTLEdBMkc3QztBQTNHWSxpQkFBUyxZQTJHckIsQ0FBQSIsImZpbGUiOiJ0YWJsZUJvZHkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAtIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICovXG5cbmltcG9ydCB7IElDZWxsUHJvcHMsIElDZWxsUmVuZGVyZXIsIGVtcHR5Q2VsbFJlbmRlcmVyIH0gZnJvbSBcIi4vY2VsbC9jZWxsXCI7XG5pbXBvcnQgeyBHcmlkLCBJQ29sdW1uSW5kaWNlcywgSVJvd0luZGljZXMgfSBmcm9tIFwiLi9jb21tb24vZ3JpZFwiO1xuaW1wb3J0IHsgUmVjdCB9IGZyb20gXCIuL2NvbW1vbi9yZWN0XCI7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gXCIuL2NvbW1vbi91dGlsc1wiO1xuaW1wb3J0IHsgSUNvb3JkaW5hdGVEYXRhIH0gZnJvbSBcIi4vaW50ZXJhY3Rpb25zL2RyYWdnYWJsZVwiO1xuaW1wb3J0IHsgSUNvbnRleHRNZW51UmVuZGVyZXIsIE1lbnVDb250ZXh0IH0gZnJvbSBcIi4vaW50ZXJhY3Rpb25zL21lbnVzXCI7XG5pbXBvcnQgeyBEcmFnU2VsZWN0YWJsZSwgSVNlbGVjdGFibGVQcm9wcyB9IGZyb20gXCIuL2ludGVyYWN0aW9ucy9zZWxlY3RhYmxlXCI7XG5pbXBvcnQgeyBJTG9jYXRvciB9IGZyb20gXCIuL2xvY2F0b3JcIjtcbmltcG9ydCB7IFJlZ2lvbnMgfSBmcm9tIFwiLi9yZWdpb25zXCI7XG5pbXBvcnQgeyBDb250ZXh0TWVudVRhcmdldCwgSVByb3BzIH0gZnJvbSBcIkBibHVlcHJpbnRqcy9jb3JlXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVCb2R5UHJvcHMgZXh0ZW5kcyBJU2VsZWN0YWJsZVByb3BzLCBJUm93SW5kaWNlcywgSUNvbHVtbkluZGljZXMsIElQcm9wcyB7XG4gICAgLyoqXG4gICAgICogQSBjZWxsIHJlbmRlcmVyIGZvciB0aGUgY2VsbHMgaW4gdGhlIGJvZHkuXG4gICAgICovXG4gICAgY2VsbFJlbmRlcmVyOiBJQ2VsbFJlbmRlcmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGdyaWQgY29tcHV0ZXMgc2l6ZXMgb2YgY2VsbHMsIHJvd3MsIG9yIGNvbHVtbnMgZnJvbSB0aGVcbiAgICAgKiBjb25maWd1cmFibGUgYGNvbHVtbldpZHRoc2AgYW5kIGByb3dIZWlnaHRzYC5cbiAgICAgKi9cbiAgICBncmlkOiBHcmlkO1xuXG4gICAgLyoqXG4gICAgICogTG9jYXRlcyB0aGUgcm93L2NvbHVtbi9jZWxsIGdpdmVuIGEgbW91c2UgZXZlbnQuXG4gICAgICovXG4gICAgbG9jYXRvcjogSUxvY2F0b3I7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYFJlY3RgIGJvdW5kcyBvZiB0aGUgdmlzaWJsZSB2aWV3cG9ydCB3aXRoIHJlc3BlY3QgdG8gaXRzIHBhcmVudFxuICAgICAqIHNjcm9sbGFibGUgcGFuZS5cbiAgICAgKi9cbiAgICB2aWV3cG9ydFJlY3Q6IFJlY3Q7XG5cbiAgICAvKipcbiAgICAgKiBBbiBvcHRpb25hbCBjYWxsYmFjayBmb3IgZGlzcGxheWluZyBhIGNvbnRleHQgbWVudSB3aGVuIHJpZ2h0LWNsaWNraW5nXG4gICAgICogb24gdGhlIHRhYmxlIGJvZHkuIFRoZSBjYWxsYmFjayBpcyBzdXBwbGllZCB3aXRoIGFuIGBJTWVudUNvbnRleHRgXG4gICAgICogY29udGFpbmluZyB0aGUgYElSZWdpb25gcyBvZiBpbnRlcmVzdC5cbiAgICAgKi9cbiAgICByZW5kZXJCb2R5Q29udGV4dE1lbnU/OiBJQ29udGV4dE1lbnVSZW5kZXJlcjtcbn1cblxuY29uc3QgVEFCTEVfQk9EWV9DTEFTU0VTID0gXCJicC10YWJsZS1ib2R5LXZpcnR1YWwtY2xpZW50IGJwLXRhYmxlLWNlbGwtY2xpZW50XCI7XG5jb25zdCBDRUxMX0dIT1NUX0NMQVNTID0gXCJicC10YWJsZS1jZWxsLWdob3N0XCI7XG5jb25zdCBDRUxMX0xFREdFUl9PRERfQ0xBU1MgPSBcImJwLXRhYmxlLWNlbGwtbGVkZ2VyLW9kZFwiO1xuY29uc3QgQ0VMTF9MRURHRVJfRVZFTl9DTEFTUyA9IFwiYnAtdGFibGUtY2VsbC1sZWRnZXItZXZlblwiO1xuXG4vKipcbiAqIEZvciBwZXJmLCB3ZSB3YW50IHRvIGlnbm9yZSBjaGFuZ2VzIHRvIHRoZSBgSVNlbGVjdGFibGVQcm9wc2AgcGFydCBvZiB0aGVcbiAqIGBJVGFibGVCb2R5UHJvcHNgIHNpbmNlIHRob3NlIGFyZSBvbmx5IHVzZWQgd2hlbiBhIGNvbnRleHQgbWVudSBpcyBsYXVuY2hlZC5cbiAqL1xuY29uc3QgVVBEQVRFX1BST1BTX0tFWVMgPSBbXG4gICAgXCJncmlkXCIsXG4gICAgXCJsb2NhdG9yXCIsXG4gICAgXCJ2aWV3cG9ydFJlY3RcIixcbiAgICBcImNlbGxSZW5kZXJlclwiLFxuICAgIFwicm93SW5kZXhTdGFydFwiLFxuICAgIFwicm93SW5kZXhFbmRcIixcbiAgICBcImNvbHVtbkluZGV4U3RhcnRcIixcbiAgICBcImNvbHVtbkluZGV4RW5kXCIsXG5dO1xuXG5AQ29udGV4dE1lbnVUYXJnZXRcbmV4cG9ydCBjbGFzcyBUYWJsZUJvZHkgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SVRhYmxlQm9keVByb3BzLCB7fT4ge1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGFycmF5IG9mIGNsYXNzIG5hbWVzIHRoYXQgbXVzdCBiZSBhcHBsaWVkIHRvIGVhY2ggdGFibGVcbiAgICAgKiBjZWxsIHNvIHRoYXQgd2UgY2FuIGxvY2F0ZSBhbnkgY2VsbCBiYXNlZCBvbiBpdHMgY29vcmRpbmF0ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNlbGxDbGFzc05hbWVzKHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIGBicC10YWJsZS1jZWxsLXJvdy0ke3Jvd0luZGV4fWAsXG4gICAgICAgICAgICBgYnAtdGFibGUtY2VsbC1jb2wtJHtjb2x1bW5JbmRleH1gLFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgc2hhbGxvd0NvbXBhcmVLZXlzKG9iakE6IGFueSwgb2JqQjogYW55LCBrZXlzOiBzdHJpbmdbXSkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICAgICAgICBpZiAob2JqQVtrZXldICE9PSBvYmpCW2tleV0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgY2VsbFJlYWN0S2V5KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIGBjZWxsLSR7cm93SW5kZXh9LSR7Y29sdW1uSW5kZXh9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wczogSVRhYmxlQm9keVByb3BzKSB7XG4gICAgICAgIGNvbnN0IHNoYWxsb3dFcXVhbCA9IFRhYmxlQm9keS5zaGFsbG93Q29tcGFyZUtleXModGhpcy5wcm9wcywgbmV4dFByb3BzLCBVUERBVEVfUFJPUFNfS0VZUyk7XG4gICAgICAgIHJldHVybiAhc2hhbGxvd0VxdWFsO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgZ3JpZCwgcm93SW5kZXhTdGFydCwgcm93SW5kZXhFbmQsIGNvbHVtbkluZGV4U3RhcnQsIGNvbHVtbkluZGV4RW5kIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCBjZWxsczogUmVhY3QuUmVhY3RFbGVtZW50PGFueT5bXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCByb3dJbmRleCA9IHJvd0luZGV4U3RhcnQ7IHJvd0luZGV4IDw9IHJvd0luZGV4RW5kOyByb3dJbmRleCsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBjb2x1bW5JbmRleCA9IGNvbHVtbkluZGV4U3RhcnQ7IGNvbHVtbkluZGV4IDw9IGNvbHVtbkluZGV4RW5kOyBjb2x1bW5JbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNHaG9zdCA9IGdyaWQuaXNHaG9zdEluZGV4KHJvd0luZGV4LCBjb2x1bW5JbmRleCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZXh0cmVtYUNsYXNzZXMgPSBncmlkLmdldEV4dHJlbWFDbGFzc2VzKHJvd0luZGV4LCBjb2x1bW5JbmRleCwgcm93SW5kZXhFbmQsIGNvbHVtbkluZGV4RW5kKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZW5kZXJlciA9IGlzR2hvc3QgPyB0aGlzLnJlbmRlckdob3N0Q2VsbCA6IHRoaXMucmVuZGVyQ2VsbDtcbiAgICAgICAgICAgICAgICBjZWxscy5wdXNoKHJlbmRlcmVyKHJvd0luZGV4LCBjb2x1bW5JbmRleCwgZXh0cmVtYUNsYXNzZXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdHlsZSA9IGdyaWQuZ2V0UmVjdCgpLnNpemVTdHlsZSgpO1xuICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9e1RBQkxFX0JPRFlfQ0xBU1NFU30gc3R5bGU9e3N0eWxlfT57Y2VsbHN9PC9kaXY+O1xuICAgIH1cblxuICAgIHB1YmxpYyByZW5kZXJDb250ZXh0TWVudShlOiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50Pikge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGVkUmVnaW9ucywgcmVuZGVyQm9keUNvbnRleHRNZW51LCBncmlkIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIGlmIChyZW5kZXJCb2R5Q29udGV4dE1lbnUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMubG9jYXRlQ2xpY2soZS5uYXRpdmVFdmVudCBhcyBNb3VzZUV2ZW50KTtcbiAgICAgICAgcmV0dXJuIHJlbmRlckJvZHlDb250ZXh0TWVudShuZXcgTWVudUNvbnRleHQodGFyZ2V0LCBzZWxlY3RlZFJlZ2lvbnMsIGdyaWQubnVtUm93cywgZ3JpZC5udW1Db2xzKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJHaG9zdENlbGwgPSAocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlciwgZXh0cmVtYUNsYXNzZXM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZ3JpZCB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3QgY2VsbCA9IFV0aWxzLmFzc2lnbkNsYXNzZXMoXG4gICAgICAgICAgICBlbXB0eUNlbGxSZW5kZXJlcihyb3dJbmRleCwgY29sdW1uSW5kZXgpLFxuICAgICAgICAgICAgVGFibGVCb2R5LmNlbGxDbGFzc05hbWVzKHJvd0luZGV4LCBjb2x1bW5JbmRleCksXG4gICAgICAgICAgICBleHRyZW1hQ2xhc3NlcyxcbiAgICAgICAgICAgIENFTExfR0hPU1RfQ0xBU1MsIHtcbiAgICAgICAgICAgICAgICBbQ0VMTF9MRURHRVJfT0REX0NMQVNTXTogKHJvd0luZGV4ICUgMikgPT09IDEsXG4gICAgICAgICAgICAgICAgW0NFTExfTEVER0VSX0VWRU5fQ0xBU1NdOiAocm93SW5kZXggJSAyKSA9PT0gMCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBjb25zdCBrZXkgPSBUYWJsZUJvZHkuY2VsbFJlYWN0S2V5KHJvd0luZGV4LCBjb2x1bW5JbmRleCk7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gUmVjdC5zdHlsZShncmlkLmdldEdob3N0Q2VsbFJlY3Qocm93SW5kZXgsIGNvbHVtbkluZGV4KSk7XG4gICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2VsbCwgeyBrZXksIHN0eWxlIH0gYXMgSUNlbGxQcm9wcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJDZWxsID0gKHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIsIGV4dHJlbWFDbGFzc2VzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICBjb25zdCB7IGFsbG93TXVsdGlwbGVTZWxlY3Rpb24sIGdyaWQsIGNlbGxSZW5kZXJlciwgc2VsZWN0ZWRSZWdpb25zLCBvblNlbGVjdGlvbiB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3QgY2VsbCA9IFV0aWxzLmFzc2lnbkNsYXNzZXMoXG4gICAgICAgICAgICBjZWxsUmVuZGVyZXIocm93SW5kZXgsIGNvbHVtbkluZGV4KSxcbiAgICAgICAgICAgIFRhYmxlQm9keS5jZWxsQ2xhc3NOYW1lcyhyb3dJbmRleCwgY29sdW1uSW5kZXgpLFxuICAgICAgICAgICAgZXh0cmVtYUNsYXNzZXMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgW0NFTExfTEVER0VSX09ERF9DTEFTU106IChyb3dJbmRleCAlIDIpID09PSAxLFxuICAgICAgICAgICAgICAgIFtDRUxMX0xFREdFUl9FVkVOX0NMQVNTXTogKHJvd0luZGV4ICUgMikgPT09IDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qga2V5ID0gVGFibGVCb2R5LmNlbGxSZWFjdEtleShyb3dJbmRleCwgY29sdW1uSW5kZXgpO1xuICAgICAgICBjb25zdCBzdHlsZSA9IFJlY3Quc3R5bGUoZ3JpZC5nZXRDZWxsUmVjdChyb3dJbmRleCwgY29sdW1uSW5kZXgpKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxEcmFnU2VsZWN0YWJsZVxuICAgICAgICAgICAgICAgIGFsbG93TXVsdGlwbGVTZWxlY3Rpb249e2FsbG93TXVsdGlwbGVTZWxlY3Rpb259XG4gICAgICAgICAgICAgICAga2V5PXtrZXl9XG4gICAgICAgICAgICAgICAgbG9jYXRlQ2xpY2s9e3RoaXMubG9jYXRlQ2xpY2t9XG4gICAgICAgICAgICAgICAgbG9jYXRlRHJhZz17dGhpcy5sb2NhdGVEcmFnfVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0aW9uPXtvblNlbGVjdGlvbn1cbiAgICAgICAgICAgICAgICBzZWxlY3RlZFJlZ2lvbnM9e3NlbGVjdGVkUmVnaW9uc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7UmVhY3QuY2xvbmVFbGVtZW50KGNlbGwsIHsgc3R5bGUgfSBhcyBJQ2VsbFByb3BzKX1cbiAgICAgICAgICAgIDwvRHJhZ1NlbGVjdGFibGU+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2NhdGVDbGljayA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IGNvbCwgcm93IH0gPSB0aGlzLnByb3BzLmxvY2F0b3IuY29udmVydFBvaW50VG9DZWxsKGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xuICAgICAgICByZXR1cm4gUmVnaW9ucy5jZWxsKHJvdywgY29sKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvY2F0ZURyYWcgPSAoX2V2ZW50OiBNb3VzZUV2ZW50LCBjb29yZHM6IElDb29yZGluYXRlRGF0YSkgPT4ge1xuICAgICAgICBjb25zdCBzdGFydCA9IHRoaXMucHJvcHMubG9jYXRvci5jb252ZXJ0UG9pbnRUb0NlbGwoY29vcmRzLmFjdGl2YXRpb25bMF0sIGNvb3Jkcy5hY3RpdmF0aW9uWzFdKTtcbiAgICAgICAgY29uc3QgZW5kID0gdGhpcy5wcm9wcy5sb2NhdG9yLmNvbnZlcnRQb2ludFRvQ2VsbChjb29yZHMuY3VycmVudFswXSwgY29vcmRzLmN1cnJlbnRbMV0pO1xuICAgICAgICByZXR1cm4gUmVnaW9ucy5jZWxsKHN0YXJ0LnJvdywgc3RhcnQuY29sLCBlbmQucm93LCBlbmQuY29sKTtcbiAgICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
//# sourceMappingURL=data:application/json;base64,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Q0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQXZETDtRQUFDLHdCQUFpQjtpQkFBQTtJQTRHbEIsZ0JBQUM7QUFBRCxDQTNHQSxBQTJHQyxDQTNHOEIsS0FBSyxDQUFDLFNBQVMsR0EyRzdDO0FBM0dZLGlCQUFTLFlBMkdyQixDQUFBIiwiZmlsZSI6InRhYmxlQm9keS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQlNELTMgTGljZW5zZSBhcyBtb2RpZmllZCAodGhlIOKAnExpY2Vuc2XigJ0pOyB5b3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBsaWNlbnNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvUEFURU5UU1xuICovXG5cbmltcG9ydCB7IENvbnRleHRNZW51VGFyZ2V0LCBJUHJvcHMgfSBmcm9tIFwiQGJsdWVwcmludGpzL2NvcmVcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZW1wdHlDZWxsUmVuZGVyZXIsIElDZWxsUHJvcHMsIElDZWxsUmVuZGVyZXIgfSBmcm9tIFwiLi9jZWxsL2NlbGxcIjtcbmltcG9ydCB7IEdyaWQsIElDb2x1bW5JbmRpY2VzLCBJUm93SW5kaWNlcyB9IGZyb20gXCIuL2NvbW1vbi9ncmlkXCI7XG5pbXBvcnQgeyBSZWN0IH0gZnJvbSBcIi4vY29tbW9uL3JlY3RcIjtcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSBcIi4vY29tbW9uL3V0aWxzXCI7XG5pbXBvcnQgeyBJQ29vcmRpbmF0ZURhdGEgfSBmcm9tIFwiLi9pbnRlcmFjdGlvbnMvZHJhZ2dhYmxlXCI7XG5pbXBvcnQgeyBJQ29udGV4dE1lbnVSZW5kZXJlciwgTWVudUNvbnRleHQgfSBmcm9tIFwiLi9pbnRlcmFjdGlvbnMvbWVudXNcIjtcbmltcG9ydCB7IERyYWdTZWxlY3RhYmxlLCBJU2VsZWN0YWJsZVByb3BzIH0gZnJvbSBcIi4vaW50ZXJhY3Rpb25zL3NlbGVjdGFibGVcIjtcbmltcG9ydCB7IElMb2NhdG9yIH0gZnJvbSBcIi4vbG9jYXRvclwiO1xuaW1wb3J0IHsgUmVnaW9ucyB9IGZyb20gXCIuL3JlZ2lvbnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVCb2R5UHJvcHMgZXh0ZW5kcyBJU2VsZWN0YWJsZVByb3BzLCBJUm93SW5kaWNlcywgSUNvbHVtbkluZGljZXMsIElQcm9wcyB7XG4gICAgLyoqXG4gICAgICogQSBjZWxsIHJlbmRlcmVyIGZvciB0aGUgY2VsbHMgaW4gdGhlIGJvZHkuXG4gICAgICovXG4gICAgY2VsbFJlbmRlcmVyOiBJQ2VsbFJlbmRlcmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGdyaWQgY29tcHV0ZXMgc2l6ZXMgb2YgY2VsbHMsIHJvd3MsIG9yIGNvbHVtbnMgZnJvbSB0aGVcbiAgICAgKiBjb25maWd1cmFibGUgYGNvbHVtbldpZHRoc2AgYW5kIGByb3dIZWlnaHRzYC5cbiAgICAgKi9cbiAgICBncmlkOiBHcmlkO1xuXG4gICAgLyoqXG4gICAgICogTG9jYXRlcyB0aGUgcm93L2NvbHVtbi9jZWxsIGdpdmVuIGEgbW91c2UgZXZlbnQuXG4gICAgICovXG4gICAgbG9jYXRvcjogSUxvY2F0b3I7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYFJlY3RgIGJvdW5kcyBvZiB0aGUgdmlzaWJsZSB2aWV3cG9ydCB3aXRoIHJlc3BlY3QgdG8gaXRzIHBhcmVudFxuICAgICAqIHNjcm9sbGFibGUgcGFuZS5cbiAgICAgKi9cbiAgICB2aWV3cG9ydFJlY3Q6IFJlY3Q7XG5cbiAgICAvKipcbiAgICAgKiBBbiBvcHRpb25hbCBjYWxsYmFjayBmb3IgZGlzcGxheWluZyBhIGNvbnRleHQgbWVudSB3aGVuIHJpZ2h0LWNsaWNraW5nXG4gICAgICogb24gdGhlIHRhYmxlIGJvZHkuIFRoZSBjYWxsYmFjayBpcyBzdXBwbGllZCB3aXRoIGFuIGBJTWVudUNvbnRleHRgXG4gICAgICogY29udGFpbmluZyB0aGUgYElSZWdpb25gcyBvZiBpbnRlcmVzdC5cbiAgICAgKi9cbiAgICByZW5kZXJCb2R5Q29udGV4dE1lbnU/OiBJQ29udGV4dE1lbnVSZW5kZXJlcjtcbn1cblxuY29uc3QgVEFCTEVfQk9EWV9DTEFTU0VTID0gXCJicC10YWJsZS1ib2R5LXZpcnR1YWwtY2xpZW50IGJwLXRhYmxlLWNlbGwtY2xpZW50XCI7XG5jb25zdCBDRUxMX0dIT1NUX0NMQVNTID0gXCJicC10YWJsZS1jZWxsLWdob3N0XCI7XG5jb25zdCBDRUxMX0xFREdFUl9PRERfQ0xBU1MgPSBcImJwLXRhYmxlLWNlbGwtbGVkZ2VyLW9kZFwiO1xuY29uc3QgQ0VMTF9MRURHRVJfRVZFTl9DTEFTUyA9IFwiYnAtdGFibGUtY2VsbC1sZWRnZXItZXZlblwiO1xuXG4vKipcbiAqIEZvciBwZXJmLCB3ZSB3YW50IHRvIGlnbm9yZSBjaGFuZ2VzIHRvIHRoZSBgSVNlbGVjdGFibGVQcm9wc2AgcGFydCBvZiB0aGVcbiAqIGBJVGFibGVCb2R5UHJvcHNgIHNpbmNlIHRob3NlIGFyZSBvbmx5IHVzZWQgd2hlbiBhIGNvbnRleHQgbWVudSBpcyBsYXVuY2hlZC5cbiAqL1xuY29uc3QgVVBEQVRFX1BST1BTX0tFWVMgPSBbXG4gICAgXCJncmlkXCIsXG4gICAgXCJsb2NhdG9yXCIsXG4gICAgXCJ2aWV3cG9ydFJlY3RcIixcbiAgICBcImNlbGxSZW5kZXJlclwiLFxuICAgIFwicm93SW5kZXhTdGFydFwiLFxuICAgIFwicm93SW5kZXhFbmRcIixcbiAgICBcImNvbHVtbkluZGV4U3RhcnRcIixcbiAgICBcImNvbHVtbkluZGV4RW5kXCIsXG5dO1xuXG5AQ29udGV4dE1lbnVUYXJnZXRcbmV4cG9ydCBjbGFzcyBUYWJsZUJvZHkgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SVRhYmxlQm9keVByb3BzLCB7fT4ge1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGFycmF5IG9mIGNsYXNzIG5hbWVzIHRoYXQgbXVzdCBiZSBhcHBsaWVkIHRvIGVhY2ggdGFibGVcbiAgICAgKiBjZWxsIHNvIHRoYXQgd2UgY2FuIGxvY2F0ZSBhbnkgY2VsbCBiYXNlZCBvbiBpdHMgY29vcmRpbmF0ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNlbGxDbGFzc05hbWVzKHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIGBicC10YWJsZS1jZWxsLXJvdy0ke3Jvd0luZGV4fWAsXG4gICAgICAgICAgICBgYnAtdGFibGUtY2VsbC1jb2wtJHtjb2x1bW5JbmRleH1gLFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgc2hhbGxvd0NvbXBhcmVLZXlzKG9iakE6IGFueSwgb2JqQjogYW55LCBrZXlzOiBzdHJpbmdbXSkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICAgICAgICBpZiAob2JqQVtrZXldICE9PSBvYmpCW2tleV0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgY2VsbFJlYWN0S2V5KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIGBjZWxsLSR7cm93SW5kZXh9LSR7Y29sdW1uSW5kZXh9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wczogSVRhYmxlQm9keVByb3BzKSB7XG4gICAgICAgIGNvbnN0IHNoYWxsb3dFcXVhbCA9IFRhYmxlQm9keS5zaGFsbG93Q29tcGFyZUtleXModGhpcy5wcm9wcywgbmV4dFByb3BzLCBVUERBVEVfUFJPUFNfS0VZUyk7XG4gICAgICAgIHJldHVybiAhc2hhbGxvd0VxdWFsO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgZ3JpZCwgcm93SW5kZXhTdGFydCwgcm93SW5kZXhFbmQsIGNvbHVtbkluZGV4U3RhcnQsIGNvbHVtbkluZGV4RW5kIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCBjZWxsczogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+ID0gW107XG4gICAgICAgIGZvciAobGV0IHJvd0luZGV4ID0gcm93SW5kZXhTdGFydDsgcm93SW5kZXggPD0gcm93SW5kZXhFbmQ7IHJvd0luZGV4KyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGNvbHVtbkluZGV4ID0gY29sdW1uSW5kZXhTdGFydDsgY29sdW1uSW5kZXggPD0gY29sdW1uSW5kZXhFbmQ7IGNvbHVtbkluZGV4KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0dob3N0ID0gZ3JpZC5pc0dob3N0SW5kZXgocm93SW5kZXgsIGNvbHVtbkluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBleHRyZW1hQ2xhc3NlcyA9IGdyaWQuZ2V0RXh0cmVtYUNsYXNzZXMocm93SW5kZXgsIGNvbHVtbkluZGV4LCByb3dJbmRleEVuZCwgY29sdW1uSW5kZXhFbmQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbmRlcmVyID0gaXNHaG9zdCA/IHRoaXMucmVuZGVyR2hvc3RDZWxsIDogdGhpcy5yZW5kZXJDZWxsO1xuICAgICAgICAgICAgICAgIGNlbGxzLnB1c2gocmVuZGVyZXIocm93SW5kZXgsIGNvbHVtbkluZGV4LCBleHRyZW1hQ2xhc3NlcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0eWxlID0gZ3JpZC5nZXRSZWN0KCkuc2l6ZVN0eWxlKCk7XG4gICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17VEFCTEVfQk9EWV9DTEFTU0VTfSBzdHlsZT17c3R5bGV9PntjZWxsc308L2Rpdj47XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlckNvbnRleHRNZW51KGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSB7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0ZWRSZWdpb25zLCByZW5kZXJCb2R5Q29udGV4dE1lbnUsIGdyaWQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgICAgaWYgKHJlbmRlckJvZHlDb250ZXh0TWVudSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5sb2NhdGVDbGljayhlLm5hdGl2ZUV2ZW50IGFzIE1vdXNlRXZlbnQpO1xuICAgICAgICByZXR1cm4gcmVuZGVyQm9keUNvbnRleHRNZW51KG5ldyBNZW51Q29udGV4dCh0YXJnZXQsIHNlbGVjdGVkUmVnaW9ucywgZ3JpZC5udW1Sb3dzLCBncmlkLm51bUNvbHMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckdob3N0Q2VsbCA9IChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyLCBleHRyZW1hQ2xhc3Nlczogc3RyaW5nW10pID0+IHtcbiAgICAgICAgY29uc3QgeyBncmlkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCBjZWxsID0gVXRpbHMuYXNzaWduQ2xhc3NlcyhcbiAgICAgICAgICAgIGVtcHR5Q2VsbFJlbmRlcmVyKHJvd0luZGV4LCBjb2x1bW5JbmRleCksXG4gICAgICAgICAgICBUYWJsZUJvZHkuY2VsbENsYXNzTmFtZXMocm93SW5kZXgsIGNvbHVtbkluZGV4KSxcbiAgICAgICAgICAgIGV4dHJlbWFDbGFzc2VzLFxuICAgICAgICAgICAgQ0VMTF9HSE9TVF9DTEFTUywge1xuICAgICAgICAgICAgICAgIFtDRUxMX0xFREdFUl9PRERfQ0xBU1NdOiAocm93SW5kZXggJSAyKSA9PT0gMSxcbiAgICAgICAgICAgICAgICBbQ0VMTF9MRURHRVJfRVZFTl9DTEFTU106IChyb3dJbmRleCAlIDIpID09PSAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGtleSA9IFRhYmxlQm9keS5jZWxsUmVhY3RLZXkocm93SW5kZXgsIGNvbHVtbkluZGV4KTtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBSZWN0LnN0eWxlKGdyaWQuZ2V0R2hvc3RDZWxsUmVjdChyb3dJbmRleCwgY29sdW1uSW5kZXgpKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjZWxsLCB7IGtleSwgc3R5bGUgfSBhcyBJQ2VsbFByb3BzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckNlbGwgPSAocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlciwgZXh0cmVtYUNsYXNzZXM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbiwgZ3JpZCwgY2VsbFJlbmRlcmVyLCBzZWxlY3RlZFJlZ2lvbnMsIG9uU2VsZWN0aW9uIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCBjZWxsID0gVXRpbHMuYXNzaWduQ2xhc3NlcyhcbiAgICAgICAgICAgIGNlbGxSZW5kZXJlcihyb3dJbmRleCwgY29sdW1uSW5kZXgpLFxuICAgICAgICAgICAgVGFibGVCb2R5LmNlbGxDbGFzc05hbWVzKHJvd0luZGV4LCBjb2x1bW5JbmRleCksXG4gICAgICAgICAgICBleHRyZW1hQ2xhc3NlcyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBbQ0VMTF9MRURHRVJfT0REX0NMQVNTXTogKHJvd0luZGV4ICUgMikgPT09IDEsXG4gICAgICAgICAgICAgICAgW0NFTExfTEVER0VSX0VWRU5fQ0xBU1NdOiAocm93SW5kZXggJSAyKSA9PT0gMCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICBjb25zdCBrZXkgPSBUYWJsZUJvZHkuY2VsbFJlYWN0S2V5KHJvd0luZGV4LCBjb2x1bW5JbmRleCk7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gUmVjdC5zdHlsZShncmlkLmdldENlbGxSZWN0KHJvd0luZGV4LCBjb2x1bW5JbmRleCkpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPERyYWdTZWxlY3RhYmxlXG4gICAgICAgICAgICAgICAgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbj17YWxsb3dNdWx0aXBsZVNlbGVjdGlvbn1cbiAgICAgICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgICAgICBsb2NhdGVDbGljaz17dGhpcy5sb2NhdGVDbGlja31cbiAgICAgICAgICAgICAgICBsb2NhdGVEcmFnPXt0aGlzLmxvY2F0ZURyYWd9XG4gICAgICAgICAgICAgICAgb25TZWxlY3Rpb249e29uU2VsZWN0aW9ufVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkUmVnaW9ucz17c2VsZWN0ZWRSZWdpb25zfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtSZWFjdC5jbG9uZUVsZW1lbnQoY2VsbCwgeyBzdHlsZSB9IGFzIElDZWxsUHJvcHMpfVxuICAgICAgICAgICAgPC9EcmFnU2VsZWN0YWJsZT5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvY2F0ZUNsaWNrID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgY29sLCByb3cgfSA9IHRoaXMucHJvcHMubG9jYXRvci5jb252ZXJ0UG9pbnRUb0NlbGwoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSk7XG4gICAgICAgIHJldHVybiBSZWdpb25zLmNlbGwocm93LCBjb2wpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9jYXRlRHJhZyA9IChfZXZlbnQ6IE1vdXNlRXZlbnQsIGNvb3JkczogSUNvb3JkaW5hdGVEYXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5wcm9wcy5sb2NhdG9yLmNvbnZlcnRQb2ludFRvQ2VsbChjb29yZHMuYWN0aXZhdGlvblswXSwgY29vcmRzLmFjdGl2YXRpb25bMV0pO1xuICAgICAgICBjb25zdCBlbmQgPSB0aGlzLnByb3BzLmxvY2F0b3IuY29udmVydFBvaW50VG9DZWxsKGNvb3Jkcy5jdXJyZW50WzBdLCBjb29yZHMuY3VycmVudFsxXSk7XG4gICAgICAgIHJldHVybiBSZWdpb25zLmNlbGwoc3RhcnQucm93LCBzdGFydC5jb2wsIGVuZC5yb3csIGVuZC5jb2wpO1xuICAgIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -5,0 +7,0 @@

{
"name": "@blueprintjs/table",
"version": "1.0.1",
"description": "Scalable interactive table component.",
"version": "1.1.0",
"description": "Scalable interactive table component",
"main": "dist/index.js",

@@ -22,21 +22,21 @@ "typings": "dist/index.d.ts",

"dependencies": {
"@blueprintjs/core": "^1.0.1",
"@blueprintjs/core": "^1.1.0",
"classnames": "^2.2",
"es6-shim": "^0.35",
"react": "^15.0.1 || ^0.14"
"pure-render-decorator": "^1.1"
},
"devDependencies": {
"css-loader": "^0.25.0",
"extract-text-webpack-plugin": "^1.0.1",
"file-loader": "^0.9.0",
"http-server": "^0.9.0",
"npm-run-all": "^1.7.0",
"onchange": "^3.0.0",
"pure-render-decorator": "^1.1.1",
"react-addons-css-transition-group": "^15.3.0",
"react-addons-test-utils": "^15.1.0",
"react-dom": "^15.1.0",
"style-loader": "^0.13.1",
"typescript": "^2.0.6",
"webpack": "^1.13.0"
"css-loader": "0.26.0",
"extract-text-webpack-plugin": "1.0.1",
"file-loader": "0.9.0",
"http-server": "0.9.0",
"npm-run-all": "3.1.1",
"onchange": "3.0.2",
"react": "15.4.0",
"react-addons-css-transition-group": "15.4.0",
"react-addons-test-utils": "15.4.0",
"react-dom": "15.4.0",
"style-loader": "0.13.1",
"typescript": "2.0.10",
"webpack": "1.13.3"
},

@@ -50,11 +50,8 @@ "repository": {

"blueprint",
"theme",
"react",
"day",
"picker",
"date",
"time"
"table",
"cell",
"spreadsheet"
],
"author": "Palantir Technologies",
"license": "Apache-2.0"
"license": "BSD-3-Clause"
}

@@ -5,3 +5,3 @@ <img height="204" src="https://cloud.githubusercontent.com/assets/464822/20228152/d3f36dc2-a804-11e6-80ff-51ada2d13ea7.png">

Blueprint is a React UI toolkit for the Web.
Blueprint is a React UI toolkit for the web.

@@ -8,0 +8,0 @@ This package provides a set of React components used to construct a highly configurable and performant table

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -5,0 +7,0 @@

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -62,3 +64,3 @@

ghostHeight = Grid.DEFAULT_GHOST_HEIGHT,
ghostWidth = Grid.DEFAULT_GHOST_WIDTH
ghostWidth = Grid.DEFAULT_GHOST_WIDTH,
) {

@@ -233,3 +235,3 @@ this.columnWidths = columnWidths;

includeGhostCells = false,
limit = Grid.DEFAULT_MAX_ROWS
limit = Grid.DEFAULT_MAX_ROWS,
): IRowIndices {

@@ -247,3 +249,3 @@

!includeGhostCells,
this.getCumulativeHeightAt
this.getCumulativeHeightAt,
);

@@ -268,3 +270,3 @@

includeGhostCells = false,
limit = Grid.DEFAULT_MAX_COLUMNS
limit = Grid.DEFAULT_MAX_COLUMNS,
): IColumnIndices {

@@ -282,3 +284,3 @@

!includeGhostCells,
this.getCumulativeWidthAt
this.getCumulativeWidthAt,
);

@@ -391,3 +393,3 @@

useEndBleed: boolean,
lookup: (index: number) => number
lookup: (index: number) => number,
) {

@@ -394,0 +396,0 @@ let start = Utils.binarySearch(min, count - 1, lookup);

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -5,0 +7,0 @@

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -10,2 +12,5 @@

// HACKHACK: workaround for https://github.com/palantir/tslint/issues/1768
// tslint:disable adjacent-overload-signatures
/**

@@ -47,3 +52,3 @@ * A simple object for storing the client bounds of HTMLElements. Since

rect0.width,
rect0.height
rect0.height,
);

@@ -81,3 +86,3 @@ }

public width: number,
public height: number
public height: number,
) {

@@ -84,0 +89,0 @@ }

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -15,3 +17,3 @@

/* tslint:disable:interface-name */
// tslint:disable interface-name
export interface ClassDictionary {

@@ -22,3 +24,3 @@ [id: string]: boolean;

export interface ClassArray extends Array<ClassValue> { };
/* tslint:enable:interface-name */
// tslint:enable

@@ -66,4 +68,4 @@ /**

let sum = 0;
for (let i = 0; i < numbers.length; i++) {
sum += numbers[i];
for (const num of numbers) {
sum += num;
result.push(sum);

@@ -70,0 +72,0 @@ }

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -5,0 +7,0 @@

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -5,0 +7,0 @@

/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -42,3 +44,3 @@

private bodyElement: HTMLElement,
private grid: Grid
private grid: Grid,
) {

@@ -56,3 +58,3 @@ }

this.bodyElement.clientWidth,
this.bodyElement.clientHeight
this.bodyElement.clientHeight,
);

@@ -122,3 +124,3 @@ }

return bodyRect.left + this.grid.getCumulativeWidthAt(index);
};
}

@@ -128,3 +130,3 @@ private convertCellIndexToClientY = (index: number) => {

return bodyRect.top + this.grid.getCumulativeHeightAt(index);
};
}
}
/**
* Copyright 2016 Palantir Technologies, Inc. All rights reserved.
* Licensed under the Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
* Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy
* of the license at https://github.com/palantir/blueprint/blob/master/LICENSE
* and https://github.com/palantir/blueprint/blob/master/PATENTS
*/

@@ -32,3 +34,3 @@

*/
FULL_TABLE
FULL_TABLE,
}

@@ -304,3 +306,3 @@

numRows: number,
numCols: number
numCols: number,
): ICellCoordinate[] {

@@ -341,3 +343,3 @@

cells: ICellCoordinate[],
mapper: (row: number, col: number) => T
mapper: (row: number, col: number) => T,
): T[][] {

@@ -417,3 +419,3 @@ const bounds = Regions.getBoundingRegion(cells);

numCols: number,
iteratee: (row: number, col: number) => void
iteratee: (row: number, col: number) => void,
) {

@@ -420,0 +422,0 @@ const cardinality = Regions.getRegionCardinality(region);

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc