Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

deck.gl

Package Overview
Dependencies
Maintainers
3
Versions
674
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

deck.gl - npm Package Compare versions

Comparing version 2.2.1 to 2.2.2

17

dist/layer.js

@@ -360,3 +360,5 @@ 'use strict';

value: function updateAttributes(props) {
var attributeManager = this.state.attributeManager;
var _state = this.state;
var attributeManager = _state.attributeManager;
var model = _state.model;

@@ -372,2 +374,5 @@ var numInstances = this.getNumInstances(props);

});
if (model) {
model.setAttributes(attributeManager.getAttributes());
}
}

@@ -582,6 +587,6 @@ }, {

var gl = _ref3.gl;
var _state = this.state;
var model = _state.model;
var attributeManager = _state.attributeManager;
var uniforms = _state.uniforms;
var _state2 = this.state;
var model = _state2.model;
var attributeManager = _state2.attributeManager;
var uniforms = _state2.uniforms;

@@ -671,2 +676,2 @@

exports.default = Layer;
//# sourceMappingURL=data:application/json;base64,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QVAsRUFBYyxNQUFkLENBREs7QUFFZix1QkFBZSxLQUFLLEdBQUwsQ0FBUyxDQUFULEVBQVksSUFBWixDQUZBO0FBR2Ysd0JBQWdCLENBQUMsU0FBRCxFQUFZLFFBQVo7QUFIRCxPQUFqQjtBQUtBLHlCQUFJLENBQUosRUFBTyxLQUFLLEtBQUwsQ0FBVyxRQUFsQixFQUE0QixRQUE1QixFQUFzQyxTQUF0QyxFQUFpRCxJQUFqRDtBQUNEOzs7Ozs7Ozs7Ozs0QkFRTyxNLEVBQVE7QUFBQSxVQUNQLFFBRE8sR0FDSyxLQUFLLEtBRFYsQ0FDUCxRQURPOztBQUFBLGtCQUVDLE1BQU0sT0FBTixDQUFjLE1BQWQsSUFDYixTQUFTLE9BQVQsQ0FBaUIsQ0FBQyxPQUFPLENBQVAsQ0FBRCxFQUFZLE9BQU8sQ0FBUCxDQUFaLENBQWpCLENBRGEsR0FFYixTQUFTLE9BQVQsQ0FBaUIsQ0FBQyxPQUFPLEdBQVIsRUFBYSxPQUFPLEdBQXBCLENBQWpCLENBSlk7O0FBQUE7O0FBQUEsVUFFUCxDQUZPO0FBQUEsVUFFSixDQUZJOztBQUtkLGFBQU8sRUFBQyxJQUFELEVBQUksSUFBSixFQUFQO0FBQ0Q7Ozs4QkFFUyxFLEVBQUk7QUFBQSxVQUNMLFFBREssR0FDTyxLQUFLLEtBRFosQ0FDTCxRQURLOztBQUFBLGtCQUVPLE1BQU0sT0FBTixDQUFjLEVBQWQsSUFDakIsU0FBUyxTQUFULENBQW1CLEVBQW5CLENBRGlCLEdBRWpCLFNBQVMsU0FBVCxDQUFtQixDQUFDLEdBQUcsQ0FBSixFQUFPLEdBQUcsQ0FBVixDQUFuQixDQUpVOztBQUFBOztBQUFBLFVBRUwsR0FGSztBQUFBLFVBRUEsR0FGQTs7QUFLWixhQUFPLEVBQUMsUUFBRCxFQUFNLFFBQU4sRUFBUDtBQUNEOzs7Ozs7a0JBM2JrQixLIiwiZmlsZSI6ImxheWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE1IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuLyogZXNsaW50LWRpc2FibGUgZ3VhcmQtZm9yLWluICovXG5pbXBvcnQgQXR0cmlidXRlTWFuYWdlciBmcm9tICcuL2F0dHJpYnV0ZS1tYW5hZ2VyJztcbmltcG9ydCB7YXJlRXF1YWxTaGFsbG93fSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHthZGRJdGVyYXRvcn0gZnJvbSAnLi91dGlsJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2cnO1xuaW1wb3J0IGlzRGVlcEVxdWFsIGZyb20gJ2xvZGFzaC5pc2VxdWFsJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBWaWV3cG9ydE1lcmNhdG9yIGZyb20gJ3ZpZXdwb3J0LW1lcmNhdG9yLXByb2plY3QnO1xuXG4vKlxuICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLmlkIC0gbGF5ZXIgbmFtZVxuICogQHBhcmFtIHthcnJheX0gIHByb3BzLmRhdGEgLSBhcnJheSBvZiBkYXRhIGluc3RhbmNlc1xuICogQHBhcmFtIHtudW1iZXJ9IHByb3BzLndpZHRoIC0gdmlld3BvcnQgd2lkdGgsIHN5bmNlZCB3aXRoIE1hcGJveEdMXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMuaGVpZ2h0IC0gdmlld3BvcnQgd2lkdGgsIHN5bmNlZCB3aXRoIE1hcGJveEdMXG4gKiBAcGFyYW0ge2Jvb2x9IHByb3BzLmlzUGlja2FibGUgLSB3aGV0aGVyIGxheWVyIHJlc3BvbnNlIHRvIG1vdXNlIGV2ZW50XG4gKiBAcGFyYW0ge2Jvb2x9IHByb3BzLm9wYWNpdHkgLSBvcGFjaXR5IG9mIHRoZSBsYXllclxuICovXG5jb25zdCBERUZBVUxUX1BST1BTID0ge1xuICBrZXk6IDAsXG4gIG9wYWNpdHk6IDAuOCxcbiAgbnVtSW5zdGFuY2VzOiB1bmRlZmluZWQsXG4gIGRhdGE6IFtdLFxuICBpc1BpY2thYmxlOiBmYWxzZSxcbiAgZGVlcENvbXBhcmU6IGZhbHNlLFxuICBnZXRWYWx1ZTogeCA9PiB4LFxuICBvbkhvdmVyOiAoKSA9PiB7fSxcbiAgb25DbGljazogKCkgPT4ge30sXG4gIC8vIFVwZGF0ZSB0cmlnZ2VyczogYSBrZXkgY2hhbmdlIGRldGVjdGlvbiBtZWNoYW5pc20gaW4gZGVjay5nbFxuICAvL1xuICAvLyBUaGUgdmFsdWUgb2YgYHVwZGF0ZVRyaWdnZXJzYCBpcyBhIG1hcCB3aXRoIGZpZWxkcyBjb3JyZXNwb25kaW5nIHRvXG4gIC8vIGF0dHJpYnV0ZSBuYW1lcyAob3IgYGFsbGApLiBFYWNoIGZpZWxkIGhhcyBhIHZhbHVlIHdoaWNoIGlzIGFuIG9iamVjdCxcbiAgLy8gaXQgY2FuIGNvbnRhaW4gYW55IGFtb3VudCBvZiBkYXRhLiBUaGUgZGF0YSBmb3IgZWFjaCBmaWVsZCBpcyBjb21wYXJlZFxuICAvLyBzaGFsbG93bHksIGFuZCBpZiBhIGNoYW5nZSBpcyBkZXRlY3RlZCwgdGhlIGF0dHJpYnV0ZSBpcyBpbnZhbGlkYXRlZFxuICAvLyAoYWxsIGF0dHJpYnV0ZXMgYXJlIGludmFsaWRhdGVkIGlmIHRoZSBgYWxsYCBrZXkgaXMgdXNlZC4pXG4gIC8vIE5vdGU6IHVwZGF0ZVRyaWdnZXJzIGFyZSBpZ25vcmVkIGJ5IG5vcm1hbCBzaGFsbG93IGNvbXBhcmlzb24sIHNvIGl0IGlzXG4gIC8vIE9LIGZvciB0aGUgYXBwIHRvIG1pbnQgYSBuZXcgb2JqZWN0IG9uIGV2ZXJ5IHJlbmRlci5cbiAgdXBkYXRlVHJpZ2dlcnM6IHt9XG59O1xuXG5jb25zdCBBVFRSSUJVVEVTID0ge1xuICBpbnN0YW5jZVBpY2tpbmdDb2xvcnM6XG4gICAge3NpemU6IDMsICcwJzogJ3BpY2tSZWQnLCAnMSc6ICdwaWNrR3JlZW4nLCAnMic6ICdwaWNrQmx1ZSd9XG59O1xuXG5sZXQgY291bnRlciA9IDA7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExheWVyIHtcblxuICBzdGF0aWMgZ2V0IGF0dHJpYnV0ZXMoKSB7XG4gICAgcmV0dXJuIEFUVFJJQlVURVM7XG4gIH1cblxuICAvKipcbiAgICogQGNsYXNzZGVzY1xuICAgKiBCYXNlIExheWVyIGNsYXNzXG4gICAqXG4gICAqIEBjbGFzc1xuICAgKiBAcGFyYW0ge29iamVjdH0gcHJvcHMgLSBTZWUgZG9jcyBhYm92ZVxuICAgKi9cbiAgLyogZXNsaW50LWRpc2FibGUgbWF4LXN0YXRlbWVudHMgKi9cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcblxuICAgIHByb3BzID0ge1xuICAgICAgLi4uREVGQVVMVF9QUk9QUyxcbiAgICAgIC4uLnByb3BzXG4gICAgfTtcblxuICAgIC8vIEFkZCBpdGVyYXRvciB0byBvYmplY3RzXG4gICAgLy8gVE9ETyAtIE1vZGlmeWluZyBwcm9wcyBpcyBhbiBhbnRpLXBhdHRlcm5cbiAgICBpZiAocHJvcHMuZGF0YSkge1xuICAgICAgYWRkSXRlcmF0b3IocHJvcHMuZGF0YSk7XG4gICAgICBhc3NlcnQocHJvcHMuZGF0YVtTeW1ib2wuaXRlcmF0b3JdLCAnZGF0YSBwcm9wIG11c3QgaGF2ZSBhbiBpdGVyYXRvcicpO1xuICAgIH1cblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIHRoaXMuY2hlY2tQcm9wKHByb3BzLmRhdGEsICdkYXRhJyk7XG4gICAgdGhpcy5jaGVja1Byb3AocHJvcHMuaWQsICdpZCcpO1xuICAgIHRoaXMuY2hlY2tQcm9wKHByb3BzLndpZHRoLCAnd2lkdGgnKTtcbiAgICB0aGlzLmNoZWNrUHJvcChwcm9wcy5oZWlnaHQsICdoZWlnaHQnKTtcblxuICAgIHRoaXMuY2hlY2tQcm9wKHByb3BzLndpZHRoLCAnd2lkdGgnKTtcbiAgICB0aGlzLmNoZWNrUHJvcChwcm9wcy5oZWlnaHQsICdoZWlnaHQnKTtcbiAgICB0aGlzLmNoZWNrUHJvcChwcm9wcy5sYXRpdHVkZSwgJ2xhdGl0dWRlJyk7XG4gICAgdGhpcy5jaGVja1Byb3AocHJvcHMubG9uZ2l0dWRlLCAnbG9uZ2l0dWRlJyk7XG4gICAgdGhpcy5jaGVja1Byb3AocHJvcHMuem9vbSwgJ3pvb20nKTtcblxuICAgIHRoaXMuY291bnQgPSBjb3VudGVyKys7XG4gIH1cbiAgLyogZXNsaW50LWVuYWJsZSBtYXgtc3RhdGVtZW50cyAqL1xuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIExJRkVDWUNMRSBNRVRIT0RTLCBvdmVycmlkZGVuIGJ5IHRoZSBsYXllciBzdWJjbGFzc2VzXG5cbiAgLy8gQ2FsbGVkIG9uY2UgdG8gc2V0IHVwIHRoZSBpbml0aWFsIHN0YXRlXG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgfVxuXG4gIC8vIGdsIGNvbnRleHQgaXMgbm93IGF2YWlsYWJsZVxuICBkaWRNb3VudCgpIHtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZShvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICAvLyBDaGVjayB1cGRhdGUgdHJpZ2dlcnMsIGFuZCBpbnZhbGlkYXRlIHByb3BzIGFjY29yZGluZ2x5XG4gICAgaWYgKHRoaXMuY2hlY2tVcGRhdGVUcmlnZ2VycyhvbGRQcm9wcywgbmV3UHJvcHMpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gSWYgYW55IHByb3BzIGhhdmUgY2hhbmdlZCwgaWdub3JpbmcgdXBkYXRlVHJpZ2dlcnMgb2JqZWN0c1xuICAgIC8vICh1cGRhdGVUcmlnZ2VycyBhcmUgZXhwZWN0ZWQgdG8gYmUgcmVtaW50ZWQgb24gZXZlcnkgdXBkYXRlKVxuICAgIGNvbnN0IGVxdWFsU2hhbGxvdyA9IGFyZUVxdWFsU2hhbGxvdyhuZXdQcm9wcywgb2xkUHJvcHMsIHtcbiAgICAgIGlnbm9yZToge3VwZGF0ZVRyaWdnZXJzOiB0cnVlfVxuICAgIH0pO1xuICAgIGlmICghZXF1YWxTaGFsbG93KSB7XG4gICAgICBpZiAobmV3UHJvcHMuZGF0YSAhPT0gb2xkUHJvcHMuZGF0YSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtkYXRhQ2hhbmdlZDogdHJ1ZX0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChuZXdQcm9wcy5kZWVwQ29tcGFyZSAmJiAhaXNEZWVwRXF1YWwobmV3UHJvcHMuZGF0YSwgb2xkUHJvcHMuZGF0YSkpIHtcbiAgICAgIC8vIFN1cHBvcnQgb3B0aW9uYWwgZGVlcCBjb21wYXJlIG9mIGRhdGFcbiAgICAgIC8vIE5vdGU6IHRoaXMgaXMgcXVpdGUgaW5lZmZpY2llbnQsIGFwcCBzaG91bGQgdXNlIGJ1ZmZlciBwcm9wcyBpbnN0ZWFkXG4gICAgICB0aGlzLnNldFN0YXRlKHtkYXRhQ2hhbmdlZDogdHJ1ZX0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIERlZmF1bHQgaW1wbGVtZW50YXRpb24sIGFsbCBhdHRyaWJ1dGVNYW5hZ2VyIHdpbGwgYmUgdXBkYXRlZFxuICB3aWxsUmVjZWl2ZVByb3BzKG5ld1Byb3BzKSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZU1hbmFnZXJ9ID0gdGhpcy5zdGF0ZTtcbiAgICBpZiAodGhpcy5zdGF0ZS5kYXRhQ2hhbmdlZCkge1xuICAgICAgYXR0cmlidXRlTWFuYWdlci5pbnZhbGlkYXRlQWxsKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gZ2wgY29udGV4dCBzdGlsbCBhdmFpbGFibGVcbiAgd2lsbFVubW91bnQoKSB7XG4gIH1cblxuICAvLyBFTkQgTElGRUNZQ0xFIE1FVEhPRFNcbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAvLyBQdWJsaWMgQVBJXG5cbiAgc2V0TmVlZHNSZWRyYXcoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUpIHtcbiAgICAgIHRoaXMuc3RhdGUubmVlZHNSZWRyYXcgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGdldE5lZWRzUmVkcmF3KHtjbGVhckZsYWd9KSB7XG4gICAgLy8gdGhpcyBtZXRob2QgbWF5IGJlIGNhbGxlZCBieSB0aGUgcmVuZGVyIGxvb3AgYXMgc29vbiBhIHRoZSBsYXllclxuICAgIC8vIGhhcyBiZWVuIGNyZWF0ZWQsIHNvIGd1YXJkIGFnYWluc3QgdW5pbml0aWFsaXplZCBzdGF0ZVxuICAgIGlmICghdGhpcy5zdGF0ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHthdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGU7XG4gICAgbGV0IG5lZWRzUmVkcmF3ID0gYXR0cmlidXRlTWFuYWdlci5nZXROZWVkc1JlZHJhdyh7Y2xlYXJGbGFnfSk7XG4gICAgbmVlZHNSZWRyYXcgPSBuZWVkc1JlZHJhdyB8fCB0aGlzLnN0YXRlLm5lZWRzUmVkcmF3O1xuICAgIGlmIChjbGVhckZsYWcpIHtcbiAgICAgIHRoaXMuc3RhdGUubmVlZHNSZWRyYXcgPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIG5lZWRzUmVkcmF3O1xuICB9XG5cbiAgLy8gVXBkYXRlcyBzZWxlY3RlZCBzdGF0ZSBtZW1iZXJzIGFuZCBtYXJrcyB0aGUgb2JqZWN0IGZvciByZWRyYXdcbiAgc2V0U3RhdGUodXBkYXRlT2JqZWN0KSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnN0YXRlLCB1cGRhdGVPYmplY3QpO1xuICAgIHRoaXMuc3RhdGUubmVlZHNSZWRyYXcgPSB0cnVlO1xuICB9XG5cbiAgLy8gVXBkYXRlcyBzZWxlY3RlZCBzdGF0ZSBtZW1iZXJzIGFuZCBtYXJrcyB0aGUgb2JqZWN0IGZvciByZWRyYXdcbiAgc2V0VW5pZm9ybXModW5pZm9ybU1hcCkge1xuICAgIGlmICh0aGlzLnN0YXRlLm1vZGVsKSB7XG4gICAgICB0aGlzLnN0YXRlLm1vZGVsLnNldFVuaWZvcm1zKHVuaWZvcm1NYXApO1xuICAgIH1cbiAgICAvLyBUT0RPIC0gc2V0IG5lZWRzUmVkcmF3IG9uIHRoZSBtb2RlbD9cbiAgICB0aGlzLnN0YXRlLm5lZWRzUmVkcmF3ID0gdHJ1ZTtcbiAgICBsb2coMywgJ2xheWVyLnNldFVuaWZvcm1zJywgdW5pZm9ybU1hcCk7XG4gIH1cblxuICAvLyBVc2UgaXRlcmF0aW9uICh0aGUgb25seSByZXF1aXJlZCBjYXBhYmlsaXR5IG9uIGRhdGEpIHRvIGdldCBmaXJzdCBlbGVtZW50XG4gIGdldEZpcnN0T2JqZWN0KCkge1xuICAgIGNvbnN0IHtkYXRhfSA9IHRoaXMucHJvcHM7XG4gICAgZm9yIChjb25zdCBvYmplY3Qgb2YgZGF0YSkge1xuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBJTlRFUk5BTCBNRVRIT0RTXG5cbiAgLy8gRGVkdWNlcyBudW1lciBvZiBpbnN0YW5jZXMuIEludGVudGlvbiBpcyB0byBzdXBwb3J0OlxuICAvLyAtIEV4cGxpY2l0IHNldHRpbmcgb2YgbnVtSW5zdGFuY2VzXG4gIC8vIC0gQXV0by1kZWR1Y3Rpb24gZm9yIEVTNiBjb250YWluZXJzIHRoYXQgZGVmaW5lIGEgc2l6ZSBtZW1iZXJcbiAgLy8gLSBBdXRvLWRlZHVjdGlvbiBmb3IgQ2xhc3NpYyBBcnJheXMgdmlhIHRoZSBidWlsdC1pbiBsZW5ndGggYXR0cmlidXRlXG4gIC8vIC0gQXV0by1kZWR1Y3Rpb24gdmlhIGFycmF5c1xuICBnZXROdW1JbnN0YW5jZXMocHJvcHMpIHtcbiAgICBwcm9wcyA9IHByb3BzIHx8IHRoaXMucHJvcHM7XG5cbiAgICAvLyBGaXJzdCBjaGVjayBpZiB0aGUgbGF5ZXIgaGFzIHNldCBpdHMgb3duIHZhbHVlXG4gICAgaWYgKHRoaXMuc3RhdGUgJiYgdGhpcy5zdGF0ZS5udW1JbnN0YW5jZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhdGUubnVtSW5zdGFuY2VzO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIGFwcCBoYXMgcHJvdmlkZWQgYW4gZXhwbGljaXQgdmFsdWVcbiAgICBpZiAocHJvcHMubnVtSW5zdGFuY2VzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBwcm9wcy5udW1JbnN0YW5jZXM7XG4gICAgfVxuXG4gICAgY29uc3Qge2RhdGF9ID0gcHJvcHM7XG5cbiAgICAvLyBDaGVjayBpZiBFUzYgY29sbGVjdGlvbiBcImNvdW50XCIgZnVuY3Rpb24gaXMgYXZhaWxhYmxlXG4gICAgaWYgKGRhdGEgJiYgdHlwZW9mIGRhdGEuY291bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBkYXRhLmNvdW50KCk7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgRVM2IGNvbGxlY3Rpb24gXCJzaXplXCIgYXR0cmlidXRlIGlzIHNldFxuICAgIGlmIChkYXRhICYmIGRhdGEuc2l6ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZGF0YS5zaXplO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIGFycmF5IGxlbmd0aCBhdHRyaWJ1dGUgaXMgc2V0XG4gICAgLy8gTm90ZTogY2hlY2tpbmcgdGhpcyBsYXN0IHNpbmNlIHNvbWUgRVM2IGNvbGxlY3Rpb25zIChJbW11dGFibGUuanMpXG4gICAgLy8gZW1pdCBwcm9mdXNlIHdhcm5pbmdzIHdoZW4gdHJ5aW5nIHRvIGFjY2VzcyBgbGVuZ3RoYCBhdHRyaWJ1dGVcbiAgICBpZiAoZGF0YSAmJiBkYXRhLmxlbmd0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZGF0YS5sZW5ndGg7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZGVkdWNlIG51bUluc3RhbmNlcycpO1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgSGVscGVyc1xuXG4gIGNoZWNrUHJvcHMob2xkUHJvcHMsIG5ld1Byb3BzKSB7XG4gICAgLy8gTm90ZTogZGF0YUNoYW5nZWQgbWlnaHQgYWxyZWFkeSBiZSBzZXRcbiAgICBpZiAobmV3UHJvcHMuZGF0YSAhPT0gb2xkUHJvcHMuZGF0YSkge1xuICAgICAgLy8gRmlndXJlIG91dCBkYXRhIGxlbmd0aFxuICAgICAgdGhpcy5zdGF0ZS5kYXRhQ2hhbmdlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uc3Qgdmlld3BvcnRDaGFuZ2VkID1cbiAgICAgIG5ld1Byb3BzLndpZHRoICE9PSBvbGRQcm9wcy53aWR0aCB8fFxuICAgICAgbmV3UHJvcHMuaGVpZ2h0ICE9PSBvbGRQcm9wcy5oZWlnaHQgfHxcbiAgICAgIG5ld1Byb3BzLmxhdGl0dWRlICE9PSBvbGRQcm9wcy5sYXRpdHVkZSB8fFxuICAgICAgbmV3UHJvcHMubG9uZ2l0dWRlICE9PSBvbGRQcm9wcy5sb25naXR1ZGUgfHxcbiAgICAgIG5ld1Byb3BzLnpvb20gIT09IG9sZFByb3BzLnpvb207XG5cbiAgICB0aGlzLnNldFN0YXRlKHt2aWV3cG9ydENoYW5nZWR9KTtcbiAgfVxuXG4gIHVwZGF0ZUF0dHJpYnV0ZXMocHJvcHMpIHtcbiAgICBjb25zdCB7YXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IG51bUluc3RhbmNlcyA9IHRoaXMuZ2V0TnVtSW5zdGFuY2VzKHByb3BzKTtcbiAgICAvLyBGaWd1cmUgb3V0IGRhdGEgbGVuZ3RoXG4gICAgYXR0cmlidXRlTWFuYWdlci51cGRhdGUoe1xuICAgICAgbnVtSW5zdGFuY2VzLFxuICAgICAgYnVmZmVyTWFwOiBwcm9wcyxcbiAgICAgIGNvbnRleHQ6IHRoaXMsXG4gICAgICAvLyBEb24ndCB3b3JyeSBhYm91dCBub24tYXR0cmlidXRlIHByb3BzXG4gICAgICBpZ25vcmVVbmtub3duQXR0cmlidXRlczogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlQmFzZVVuaWZvcm1zKCkge1xuICAgIHRoaXMuc2V0VW5pZm9ybXMoe1xuICAgICAgLy8gYXBwbHkgZ2FtbWEgdG8gb3BhY2l0eSB0byBtYWtlIGl0IHZpc3VhbGx5IFwibGluZWFyXCJcbiAgICAgIG9wYWNpdHk6IE1hdGgucG93KHRoaXMucHJvcHMub3BhY2l0eSB8fCAwLjgsIDEgLyAyLjIpXG4gICAgfSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBhbnkgdXBkYXRlIHRyaWdnZXJzIGhhdmUgY2hhbmdlZCwgYW5kIGludmFsaWRhdGVcbiAgLy8gYXR0cmlidXRlcyBhY2NvcmRpbmdseS5cbiAgY2hlY2tVcGRhdGVUcmlnZ2VycyhvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICBsZXQgY2hhbmdlID0gZmFsc2U7XG4gICAgY29uc3Qge2F0dHJpYnV0ZU1hbmFnZXJ9ID0gdGhpcy5zdGF0ZTtcbiAgICBmb3IgKGNvbnN0IHByb3BOYW1lIGluIG5ld1Byb3BzLnVwZGF0ZVRyaWdnZXJzKSB7XG4gICAgICBjb25zdCBvbGRUcmlnZ2VycyA9IG9sZFByb3BzLnVwZGF0ZVRyaWdnZXJzW3Byb3BOYW1lXTtcbiAgICAgIGNvbnN0IG5ld1RyaWdnZXJzID0gbmV3UHJvcHMudXBkYXRlVHJpZ2dlcnNbcHJvcE5hbWVdO1xuICAgICAgaWYgKCFhcmVFcXVhbFNoYWxsb3cob2xkVHJpZ2dlcnMsIG5ld1RyaWdnZXJzKSkge1xuICAgICAgICBpZiAocHJvcE5hbWUgPT09ICdhbGwnKSB7XG4gICAgICAgICAgYXR0cmlidXRlTWFuYWdlci5pbnZhbGlkYXRlQWxsKCk7XG4gICAgICAgICAgY2hhbmdlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhdHRyaWJ1dGVNYW5hZ2VyLmludmFsaWRhdGUocHJvcE5hbWUpO1xuICAgICAgICAgIGNoYW5nZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNoYW5nZTtcbiAgfVxuXG4gIC8vIExBWUVSIE1BTkFHRVIgQVBJXG5cbiAgLy8gQ2FsbGVkIGJ5IGxheWVyIG1hbmFnZXIgd2hlbiBhIG5ldyBsYXllciBpcyBmb3VuZFxuICAvKiBlc2xpbnQtZGlzYWJsZSBtYXgtc3RhdGVtZW50cyAqL1xuICBpbml0aWFsaXplTGF5ZXIoe2dsfSkge1xuICAgIGFzc2VydChnbCk7XG4gICAgdGhpcy5zdGF0ZSA9IHtnbH07XG5cbiAgICAvLyBJbml0aWFsaXplIHN0YXRlIG9ubHkgb25jZVxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgYXR0cmlidXRlTWFuYWdlcjogbmV3IEF0dHJpYnV0ZU1hbmFnZXIoe2lkOiB0aGlzLnByb3BzLmlkfSksXG4gICAgICBtb2RlbDogbnVsbCxcbiAgICAgIG5lZWRzUmVkcmF3OiB0cnVlLFxuICAgICAgZGF0YUNoYW5nZWQ6IHRydWVcbiAgICB9KTtcblxuICAgIGNvbnN0IHthdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGU7XG4gICAgLy8gQWxsIGluc3RhbmNlZCBsYXllcnMgZ2V0IGluc3RhbmNlUGlja2luZ0NvbG9ycyBhdHRyaWJ1dGUgYnkgZGVmYXVsdFxuICAgIC8vIFRoZWlyIHNoYWRlcnMgY2FuIHVzZSBpdCB0byByZW5kZXIgYSBwaWNraW5nIHNjZW5lXG4gICAgYXR0cmlidXRlTWFuYWdlci5hZGRJbnN0YW5jZWQoQVRUUklCVVRFUywge1xuICAgICAgaW5zdGFuY2VQaWNraW5nQ29sb3JzOiB7dXBkYXRlOiB0aGlzLmNhbGN1bGF0ZUluc3RhbmNlUGlja2luZ0NvbG9yc31cbiAgICB9KTtcblxuICAgIHRoaXMuc2V0Vmlld3BvcnQoKTtcbiAgICB0aGlzLmluaXRpYWxpemVTdGF0ZSgpO1xuICAgIGFzc2VydCh0aGlzLnN0YXRlLm1vZGVsLCAnTW9kZWwgbXVzdCBiZSBzZXQgaW4gaW5pdGlhbGl6ZVN0YXRlJyk7XG4gICAgdGhpcy5zZXRWaWV3cG9ydCgpO1xuXG4gICAgLy8gVE9ETyAtIHRoZSBhcHAgbXVzdCBiZSBhYmxlIHRvIG92ZXJyaWRlXG5cbiAgICAvLyBBZGQgYW55IHN1YmNsYXNzIGF0dHJpYnV0ZXNcbiAgICB0aGlzLnVwZGF0ZUF0dHJpYnV0ZXModGhpcy5wcm9wcyk7XG4gICAgdGhpcy51cGRhdGVCYXNlVW5pZm9ybXMoKTtcblxuICAgIGNvbnN0IHttb2RlbH0gPSB0aGlzLnN0YXRlO1xuICAgIG1vZGVsLnNldEluc3RhbmNlQ291bnQodGhpcy5nZXROdW1JbnN0YW5jZXMoKSk7XG4gICAgbW9kZWwuaWQgPSBgJHt0aGlzLnByb3BzLmlkfS1tb2RlbGA7XG4gICAgbW9kZWwucHJvZ3JhbS5pZCA9IGAke3RoaXMucHJvcHMuaWR9LXByb2dyYW1gO1xuICAgIG1vZGVsLmdlb21ldHJ5LmlkID0gYCR7dGhpcy5wcm9wcy5pZH0tZ2VvbWV0cnlgO1xuXG4gICAgLy8gQ3JlYXRlIGEgbW9kZWwgZm9yIHRoZSBsYXllclxuICAgIHRoaXMuX3VwZGF0ZU1vZGVsKHtnbH0pO1xuXG4gICAgLy8gQ2FsbCBsaWZlIGN5Y2xlIG1ldGhvZFxuICAgIHRoaXMuZGlkTW91bnQoKTtcbiAgfVxuICAvKiBlc2xpbnQtZW5hYmxlIG1heC1zdGF0ZW1lbnRzICovXG5cbiAgLy8gQ2FsbGVkIGJ5IGxheWVyIG1hbmFnZXIgd2hlbiBleGlzdGluZyBsYXllciBpcyBnZXR0aW5nIG5ldyBwcm9wc1xuICB1cGRhdGVMYXllcihvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICAvLyBDYWxjdWxhdGUgc3RhbmRhcmQgY2hhbmdlIGZsYWdzXG4gICAgdGhpcy5jaGVja1Byb3BzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG5cbiAgICAvLyBDaGVjayBpZiBhbnkgcHJvcHMgaGF2ZSBjaGFuZ2VkXG4gICAgaWYgKHRoaXMuc2hvdWxkVXBkYXRlKG9sZFByb3BzLCBuZXdQcm9wcykpIHtcbiAgICAgIGlmICh0aGlzLnN0YXRlLnZpZXdwb3J0Q2hhbmdlZCkge1xuICAgICAgICB0aGlzLnNldFZpZXdwb3J0KCk7XG4gICAgICB9XG5cbiAgICAgIC8vIExldCB0aGUgc3ViY2xhc3MgbWFyayB3aGF0IGlzIG5lZWRlZCBmb3IgdXBkYXRlXG4gICAgICB0aGlzLndpbGxSZWNlaXZlUHJvcHMob2xkUHJvcHMsIG5ld1Byb3BzKTtcbiAgICAgIC8vIFJ1biB0aGUgYXR0cmlidXRlIHVwZGF0ZXJzXG4gICAgICB0aGlzLnVwZGF0ZUF0dHJpYnV0ZXMobmV3UHJvcHMpO1xuICAgICAgLy8gVXBkYXRlIHRoZSB1bmlmb3Jtc1xuICAgICAgdGhpcy51cGRhdGVCYXNlVW5pZm9ybXMoKTtcblxuICAgICAgaWYgKHRoaXMuc3RhdGUubW9kZWwpIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5tb2RlbC5zZXRJbnN0YW5jZUNvdW50KHRoaXMuZ2V0TnVtSW5zdGFuY2VzKCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc3RhdGUuZGF0YUNoYW5nZWQgPSBmYWxzZTtcbiAgICB0aGlzLnN0YXRlLnZpZXdwb3J0Q2hhbmdlZCA9IGZhbHNlO1xuICB9XG5cbiAgLy8gQ2FsbGVkIGJ5IG1hbmFnZXIgd2hlbiBsYXllciBpcyBhYm91dCB0byBiZSBkaXNwb3NlZFxuICAvLyBOb3RlOiBub3QgZ3VhcmFudGVlZCB0byBiZSBjYWxsZWQgb24gYXBwbGljYXRpb24gc2h1dGRvd25cbiAgZmluYWxpemVMYXllcigpIHtcbiAgICB0aGlzLndpbGxVbm1vdW50KCk7XG4gIH1cblxuICBjYWxjdWxhdGVJbnN0YW5jZVBpY2tpbmdDb2xvcnMoYXR0cmlidXRlLCBudW1JbnN0YW5jZXMpIHtcbiAgICBjb25zdCB7dmFsdWUsIHNpemV9ID0gYXR0cmlidXRlO1xuICAgIC8vIGFkZCAxIHRvIGluZGV4IHRvIHNlcGVyYXRlIGZyb20gbm8gc2VsZWN0aW9uXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1JbnN0YW5jZXM7IGkrKykge1xuICAgICAgY29uc3QgcGlja2luZ0NvbG9yID0gdGhpcy5lbmNvZGVQaWNraW5nQ29sb3IoaSk7XG4gICAgICB2YWx1ZVtpICogc2l6ZSArIDBdID0gcGlja2luZ0NvbG9yWzBdO1xuICAgICAgdmFsdWVbaSAqIHNpemUgKyAxXSA9IHBpY2tpbmdDb2xvclsxXTtcbiAgICAgIHZhbHVlW2kgKiBzaXplICsgMl0gPSBwaWNraW5nQ29sb3JbMl07XG4gICAgfVxuICB9XG5cbiAgZGVjb2RlUGlja2luZ0NvbG9yKGNvbG9yKSB7XG4gICAgYXNzZXJ0KGNvbG9yIGluc3RhbmNlb2YgVWludDhBcnJheSk7XG4gICAgY29uc3QgW2kxLCBpMiwgaTNdID0gY29sb3I7XG4gICAgLy8gMSB3YXMgYWRkZWQgdG8gc2VwZXJhdGUgZnJvbSBubyBzZWxlY3Rpb25cbiAgICBjb25zdCBpbmRleCA9IGkxICsgaTIgKiAyNTYgKyBpMyAqIDY1NTM2IC0gMTtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBlbmNvZGVQaWNraW5nQ29sb3IoaSkge1xuICAgIHJldHVybiBbXG4gICAgICAoaSArIDEpICUgMjU2LFxuICAgICAgTWF0aC5mbG9vcigoaSArIDEpIC8gMjU2KSAlIDI1NixcbiAgICAgIE1hdGguZmxvb3IoKGkgKyAxKSAvIDI1NiAvIDI1NikgJSAyNTZcbiAgICBdO1xuICB9XG5cbiAgLy8gVklSVFVBTCBNRVRIT0QgLSBPdmVycmlkZSB0byBhZGQgb3IgbW9kaWZ5IGBpbmZvYCBvYmplY3QgaW4gc3VibGF5ZXJcbiAgLy8gVGhlIHN1YmxheWVyIG1heSBrbm93IHdoYXQgb2JqZWN0IGUuZy4gbGF0LGxvbiBjb3JyZXNwb25kcyB0byB1c2luZyBtYXRoXG4gIC8vIGV0YyBldmVuIHdoZW4gcGlja2luZyBkb2VzIG5vdCB3b3JrXG4gIG9uR2V0SG92ZXJJbmZvKGluZm8pIHtcbiAgICBjb25zdCB7Y29sb3J9ID0gaW5mbztcbiAgICBpbmZvLmluZGV4ID0gdGhpcy5kZWNvZGVQaWNraW5nQ29sb3IoY29sb3IpO1xuICAgIC8vIElmIHByb3BzLmRhdGEgaXMgYW4gaW5kZXhhYmxlIGFycmF5LCBnZXQgdGhlIG9iamVjdFxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvcHMuZGF0YSkpIHtcbiAgICAgIGluZm8ub2JqZWN0ID0gdGhpcy5wcm9wcy5kYXRhW2luZm8uaW5kZXhdO1xuICAgIH1cbiAgICBpbmZvLmdlb0Nvb3JkcyA9IHRoaXMudW5wcm9qZWN0KHt4OiBpbmZvLngsIHk6IGluZm8ueX0pO1xuICAgIHJldHVybiBpbmZvO1xuICB9XG5cbiAgb25Ib3ZlcihpbmZvKSB7XG4gICAgY29uc3Qge2NvbG9yfSA9IGluZm87XG5cbiAgICBjb25zdCBzZWxlY3RlZFBpY2tpbmdDb2xvciA9IG5ldyBGbG9hdDMyQXJyYXkoMyk7XG4gICAgc2VsZWN0ZWRQaWNraW5nQ29sb3JbMF0gPSBjb2xvclswXTtcbiAgICBzZWxlY3RlZFBpY2tpbmdDb2xvclsxXSA9IGNvbG9yWzFdO1xuICAgIHNlbGVjdGVkUGlja2luZ0NvbG9yWzJdID0gY29sb3JbMl07XG4gICAgdGhpcy5zZXRVbmlmb3Jtcyh7c2VsZWN0ZWRQaWNraW5nQ29sb3J9KTtcblxuICAgIGluZm8gPSB0aGlzLm9uR2V0SG92ZXJJbmZvKGluZm8pO1xuICAgIHJldHVybiB0aGlzLnByb3BzLm9uSG92ZXIoaW5mbyk7XG4gIH1cblxuICBvbkNsaWNrKGluZm8pIHtcbiAgICBpbmZvID0gdGhpcy5vbkdldEhvdmVySW5mbyhpbmZvKTtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNsaWNrKGluZm8pO1xuICB9XG5cbiAgLy8gSU5URVJOQUwgTUVUSE9EU1xuICBfdXBkYXRlTW9kZWwoe2dsfSkge1xuICAgIGNvbnN0IHttb2RlbCwgYXR0cmlidXRlTWFuYWdlciwgdW5pZm9ybXN9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGFzc2VydChtb2RlbCk7XG4gICAgbW9kZWwuc2V0QXR0cmlidXRlcyhhdHRyaWJ1dGVNYW5hZ2VyLmdldEF0dHJpYnV0ZXMoKSk7XG4gICAgbW9kZWwuc2V0VW5pZm9ybXModW5pZm9ybXMpO1xuICAgIC8vIHdoZXRoZXIgY3VycmVudCBsYXllciByZXNwb25kcyB0byBtb3VzZSBldmVudHNcbiAgICBtb2RlbC5zZXRQaWNrYWJsZSh0aGlzLnByb3BzLmlzUGlja2FibGUpO1xuICB9XG5cbiAgY2hlY2tQcm9wKHByb3BlcnR5LCBwcm9wZXJ0eU5hbWUpIHtcbiAgICBpZiAocHJvcGVydHkgPT09IHVuZGVmaW5lZCB8fCBwcm9wZXJ0eSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9wZXJ0eSAke3Byb3BlcnR5TmFtZX0gdW5kZWZpbmVkIGluIGxheWVyICR7dGhpcy5wcm9wcy5pZH1gKTtcbiAgICB9XG4gIH1cblxuICAvLyBNQVAgTEFZRVIgRlVOQ1RJT05BTElUWVxuXG4gIHNldFZpZXdwb3J0KCkge1xuICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0LCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCB6b29tfSA9IHRoaXMucHJvcHM7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICB2aWV3cG9ydDoge3g6IDAsIHk6IDAsIHdpZHRoLCBoZWlnaHR9LFxuICAgICAgbWVyY2F0b3I6IFZpZXdwb3J0TWVyY2F0b3Ioe1xuICAgICAgICB3aWR0aCwgaGVpZ2h0LCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCB6b29tLFxuICAgICAgICB0aWxlU2l6ZTogNTEyXG4gICAgICB9KVxuICAgIH0pO1xuICAgIHRoaXMuc2V0VW5pZm9ybXMoe1xuICAgICAgdmlld3BvcnQ6IFswLCAwLCB3aWR0aCwgaGVpZ2h0XSxcbiAgICAgIG1lcmNhdG9yU2NhbGU6IE1hdGgucG93KDIsIHpvb20pLFxuICAgICAgbWVyY2F0b3JDZW50ZXI6IFtsb25naXR1ZGUsIGxhdGl0dWRlXVxuICAgIH0pO1xuICAgIGxvZygzLCB0aGlzLnN0YXRlLnZpZXdwb3J0LCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCB6b29tKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb3NpdGlvbiBjb252ZXJzaW9uIGlzIGRvbmUgaW4gc2hhZGVyLCBzbyBpbiBtYW55IGNhc2VzIHRoZXJlIGlzIG5vIG5lZWRcbiAgICogZm9yIHRoaXMgZnVuY3Rpb25cbiAgICogQHBhcmFtIHtPYmplY3R8QXJyYXl9IGxhdExuZyAtIEVpdGhlciBbbGF0LGxuZ10gb3Ige2xhdCwgbG9ufVxuICAgKiBAcmV0dXJuIHtPYmplY3R9IC0geCwgeVxuICAgKi9cbiAgcHJvamVjdChsYXRMbmcpIHtcbiAgICBjb25zdCB7bWVyY2F0b3J9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBbeCwgeV0gPSBBcnJheS5pc0FycmF5KGxhdExuZykgP1xuICAgICAgbWVyY2F0b3IucHJvamVjdChbbGF0TG5nWzFdLCBsYXRMbmdbMF1dKSA6XG4gICAgICBtZXJjYXRvci5wcm9qZWN0KFtsYXRMbmcubG9uLCBsYXRMbmcubGF0XSk7XG4gICAgcmV0dXJuIHt4LCB5fTtcbiAgfVxuXG4gIHVucHJvamVjdCh4eSkge1xuICAgIGNvbnN0IHttZXJjYXRvcn0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IFtsb24sIGxhdF0gPSBBcnJheS5pc0FycmF5KHh5KSA/XG4gICAgICBtZXJjYXRvci51bnByb2plY3QoeHkpIDpcbiAgICAgIG1lcmNhdG9yLnVucHJvamVjdChbeHkueCwgeHkueV0pO1xuICAgIHJldHVybiB7bGF0LCBsb259O1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,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b250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxNSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbi8qIGVzbGludC1kaXNhYmxlIGd1YXJkLWZvci1pbiAqL1xuaW1wb3J0IEF0dHJpYnV0ZU1hbmFnZXIgZnJvbSAnLi9hdHRyaWJ1dGUtbWFuYWdlcic7XG5pbXBvcnQge2FyZUVxdWFsU2hhbGxvd30gZnJvbSAnLi91dGlsJztcbmltcG9ydCB7YWRkSXRlcmF0b3J9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nJztcbmltcG9ydCBpc0RlZXBFcXVhbCBmcm9tICdsb2Rhc2guaXNlcXVhbCc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgVmlld3BvcnRNZXJjYXRvciBmcm9tICd2aWV3cG9ydC1tZXJjYXRvci1wcm9qZWN0JztcblxuLypcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5pZCAtIGxheWVyIG5hbWVcbiAqIEBwYXJhbSB7YXJyYXl9ICBwcm9wcy5kYXRhIC0gYXJyYXkgb2YgZGF0YSBpbnN0YW5jZXNcbiAqIEBwYXJhbSB7bnVtYmVyfSBwcm9wcy53aWR0aCAtIHZpZXdwb3J0IHdpZHRoLCBzeW5jZWQgd2l0aCBNYXBib3hHTFxuICogQHBhcmFtIHtudW1iZXJ9IHByb3BzLmhlaWdodCAtIHZpZXdwb3J0IHdpZHRoLCBzeW5jZWQgd2l0aCBNYXBib3hHTFxuICogQHBhcmFtIHtib29sfSBwcm9wcy5pc1BpY2thYmxlIC0gd2hldGhlciBsYXllciByZXNwb25zZSB0byBtb3VzZSBldmVudFxuICogQHBhcmFtIHtib29sfSBwcm9wcy5vcGFjaXR5IC0gb3BhY2l0eSBvZiB0aGUgbGF5ZXJcbiAqL1xuY29uc3QgREVGQVVMVF9QUk9QUyA9IHtcbiAga2V5OiAwLFxuICBvcGFjaXR5OiAwLjgsXG4gIG51bUluc3RhbmNlczogdW5kZWZpbmVkLFxuICBkYXRhOiBbXSxcbiAgaXNQaWNrYWJsZTogZmFsc2UsXG4gIGRlZXBDb21wYXJlOiBmYWxzZSxcbiAgZ2V0VmFsdWU6IHggPT4geCxcbiAgb25Ib3ZlcjogKCkgPT4ge30sXG4gIG9uQ2xpY2s6ICgpID0+IHt9LFxuICAvLyBVcGRhdGUgdHJpZ2dlcnM6IGEga2V5IGNoYW5nZSBkZXRlY3Rpb24gbWVjaGFuaXNtIGluIGRlY2suZ2xcbiAgLy9cbiAgLy8gVGhlIHZhbHVlIG9mIGB1cGRhdGVUcmlnZ2Vyc2AgaXMgYSBtYXAgd2l0aCBmaWVsZHMgY29ycmVzcG9uZGluZyB0b1xuICAvLyBhdHRyaWJ1dGUgbmFtZXMgKG9yIGBhbGxgKS4gRWFjaCBmaWVsZCBoYXMgYSB2YWx1ZSB3aGljaCBpcyBhbiBvYmplY3QsXG4gIC8vIGl0IGNhbiBjb250YWluIGFueSBhbW91bnQgb2YgZGF0YS4gVGhlIGRhdGEgZm9yIGVhY2ggZmllbGQgaXMgY29tcGFyZWRcbiAgLy8gc2hhbGxvd2x5LCBhbmQgaWYgYSBjaGFuZ2UgaXMgZGV0ZWN0ZWQsIHRoZSBhdHRyaWJ1dGUgaXMgaW52YWxpZGF0ZWRcbiAgLy8gKGFsbCBhdHRyaWJ1dGVzIGFyZSBpbnZhbGlkYXRlZCBpZiB0aGUgYGFsbGAga2V5IGlzIHVzZWQuKVxuICAvLyBOb3RlOiB1cGRhdGVUcmlnZ2VycyBhcmUgaWdub3JlZCBieSBub3JtYWwgc2hhbGxvdyBjb21wYXJpc29uLCBzbyBpdCBpc1xuICAvLyBPSyBmb3IgdGhlIGFwcCB0byBtaW50IGEgbmV3IG9iamVjdCBvbiBldmVyeSByZW5kZXIuXG4gIHVwZGF0ZVRyaWdnZXJzOiB7fVxufTtcblxuY29uc3QgQVRUUklCVVRFUyA9IHtcbiAgaW5zdGFuY2VQaWNraW5nQ29sb3JzOlxuICAgIHtzaXplOiAzLCAnMCc6ICdwaWNrUmVkJywgJzEnOiAncGlja0dyZWVuJywgJzInOiAncGlja0JsdWUnfVxufTtcblxubGV0IGNvdW50ZXIgPSAwO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMYXllciB7XG5cbiAgc3RhdGljIGdldCBhdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiBBVFRSSUJVVEVTO1xuICB9XG5cbiAgLyoqXG4gICAqIEBjbGFzc2Rlc2NcbiAgICogQmFzZSBMYXllciBjbGFzc1xuICAgKlxuICAgKiBAY2xhc3NcbiAgICogQHBhcmFtIHtvYmplY3R9IHByb3BzIC0gU2VlIGRvY3MgYWJvdmVcbiAgICovXG4gIC8qIGVzbGludC1kaXNhYmxlIG1heC1zdGF0ZW1lbnRzICovXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG5cbiAgICBwcm9wcyA9IHtcbiAgICAgIC4uLkRFRkFVTFRfUFJPUFMsXG4gICAgICAuLi5wcm9wc1xuICAgIH07XG5cbiAgICAvLyBBZGQgaXRlcmF0b3IgdG8gb2JqZWN0c1xuICAgIC8vIFRPRE8gLSBNb2RpZnlpbmcgcHJvcHMgaXMgYW4gYW50aS1wYXR0ZXJuXG4gICAgaWYgKHByb3BzLmRhdGEpIHtcbiAgICAgIGFkZEl0ZXJhdG9yKHByb3BzLmRhdGEpO1xuICAgICAgYXNzZXJ0KHByb3BzLmRhdGFbU3ltYm9sLml0ZXJhdG9yXSwgJ2RhdGEgcHJvcCBtdXN0IGhhdmUgYW4gaXRlcmF0b3InKTtcbiAgICB9XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICB0aGlzLmNoZWNrUHJvcChwcm9wcy5kYXRhLCAnZGF0YScpO1xuICAgIHRoaXMuY2hlY2tQcm9wKHByb3BzLmlkLCAnaWQnKTtcbiAgICB0aGlzLmNoZWNrUHJvcChwcm9wcy53aWR0aCwgJ3dpZHRoJyk7XG4gICAgdGhpcy5jaGVja1Byb3AocHJvcHMuaGVpZ2h0LCAnaGVpZ2h0Jyk7XG5cbiAgICB0aGlzLmNoZWNrUHJvcChwcm9wcy53aWR0aCwgJ3dpZHRoJyk7XG4gICAgdGhpcy5jaGVja1Byb3AocHJvcHMuaGVpZ2h0LCAnaGVpZ2h0Jyk7XG4gICAgdGhpcy5jaGVja1Byb3AocHJvcHMubGF0aXR1ZGUsICdsYXRpdHVkZScpO1xuICAgIHRoaXMuY2hlY2tQcm9wKHByb3BzLmxvbmdpdHVkZSwgJ2xvbmdpdHVkZScpO1xuICAgIHRoaXMuY2hlY2tQcm9wKHByb3BzLnpvb20sICd6b29tJyk7XG5cbiAgICB0aGlzLmNvdW50ID0gY291bnRlcisrO1xuICB9XG4gIC8qIGVzbGludC1lbmFibGUgbWF4LXN0YXRlbWVudHMgKi9cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBMSUZFQ1lDTEUgTUVUSE9EUywgb3ZlcnJpZGRlbiBieSB0aGUgbGF5ZXIgc3ViY2xhc3Nlc1xuXG4gIC8vIENhbGxlZCBvbmNlIHRvIHNldCB1cCB0aGUgaW5pdGlhbCBzdGF0ZVxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gIH1cblxuICAvLyBnbCBjb250ZXh0IGlzIG5vdyBhdmFpbGFibGVcbiAgZGlkTW91bnQoKSB7XG4gIH1cblxuICBzaG91bGRVcGRhdGUob2xkUHJvcHMsIG5ld1Byb3BzKSB7XG4gICAgLy8gQ2hlY2sgdXBkYXRlIHRyaWdnZXJzLCBhbmQgaW52YWxpZGF0ZSBwcm9wcyBhY2NvcmRpbmdseVxuICAgIGlmICh0aGlzLmNoZWNrVXBkYXRlVHJpZ2dlcnMob2xkUHJvcHMsIG5ld1Byb3BzKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIElmIGFueSBwcm9wcyBoYXZlIGNoYW5nZWQsIGlnbm9yaW5nIHVwZGF0ZVRyaWdnZXJzIG9iamVjdHNcbiAgICAvLyAodXBkYXRlVHJpZ2dlcnMgYXJlIGV4cGVjdGVkIHRvIGJlIHJlbWludGVkIG9uIGV2ZXJ5IHVwZGF0ZSlcbiAgICBjb25zdCBlcXVhbFNoYWxsb3cgPSBhcmVFcXVhbFNoYWxsb3cobmV3UHJvcHMsIG9sZFByb3BzLCB7XG4gICAgICBpZ25vcmU6IHt1cGRhdGVUcmlnZ2VyczogdHJ1ZX1cbiAgICB9KTtcbiAgICBpZiAoIWVxdWFsU2hhbGxvdykge1xuICAgICAgaWYgKG5ld1Byb3BzLmRhdGEgIT09IG9sZFByb3BzLmRhdGEpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7ZGF0YUNoYW5nZWQ6IHRydWV9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAobmV3UHJvcHMuZGVlcENvbXBhcmUgJiYgIWlzRGVlcEVxdWFsKG5ld1Byb3BzLmRhdGEsIG9sZFByb3BzLmRhdGEpKSB7XG4gICAgICAvLyBTdXBwb3J0IG9wdGlvbmFsIGRlZXAgY29tcGFyZSBvZiBkYXRhXG4gICAgICAvLyBOb3RlOiB0aGlzIGlzIHF1aXRlIGluZWZmaWNpZW50LCBhcHAgc2hvdWxkIHVzZSBidWZmZXIgcHJvcHMgaW5zdGVhZFxuICAgICAgdGhpcy5zZXRTdGF0ZSh7ZGF0YUNoYW5nZWQ6IHRydWV9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uLCBhbGwgYXR0cmlidXRlTWFuYWdlciB3aWxsIGJlIHVwZGF0ZWRcbiAgd2lsbFJlY2VpdmVQcm9wcyhuZXdQcm9wcykge1xuICAgIGNvbnN0IHthdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGU7XG4gICAgaWYgKHRoaXMuc3RhdGUuZGF0YUNoYW5nZWQpIHtcbiAgICAgIGF0dHJpYnV0ZU1hbmFnZXIuaW52YWxpZGF0ZUFsbCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGdsIGNvbnRleHQgc3RpbGwgYXZhaWxhYmxlXG4gIHdpbGxVbm1vdW50KCkge1xuICB9XG5cbiAgLy8gRU5EIExJRkVDWUNMRSBNRVRIT0RTXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgLy8gUHVibGljIEFQSVxuXG4gIHNldE5lZWRzUmVkcmF3KCkge1xuICAgIGlmICh0aGlzLnN0YXRlKSB7XG4gICAgICB0aGlzLnN0YXRlLm5lZWRzUmVkcmF3ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBnZXROZWVkc1JlZHJhdyh7Y2xlYXJGbGFnfSkge1xuICAgIC8vIHRoaXMgbWV0aG9kIG1heSBiZSBjYWxsZWQgYnkgdGhlIHJlbmRlciBsb29wIGFzIHNvb24gYSB0aGUgbGF5ZXJcbiAgICAvLyBoYXMgYmVlbiBjcmVhdGVkLCBzbyBndWFyZCBhZ2FpbnN0IHVuaW5pdGlhbGl6ZWQgc3RhdGVcbiAgICBpZiAoIXRoaXMuc3RhdGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCB7YXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuICAgIGxldCBuZWVkc1JlZHJhdyA9IGF0dHJpYnV0ZU1hbmFnZXIuZ2V0TmVlZHNSZWRyYXcoe2NsZWFyRmxhZ30pO1xuICAgIG5lZWRzUmVkcmF3ID0gbmVlZHNSZWRyYXcgfHwgdGhpcy5zdGF0ZS5uZWVkc1JlZHJhdztcbiAgICBpZiAoY2xlYXJGbGFnKSB7XG4gICAgICB0aGlzLnN0YXRlLm5lZWRzUmVkcmF3ID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBuZWVkc1JlZHJhdztcbiAgfVxuXG4gIC8vIFVwZGF0ZXMgc2VsZWN0ZWQgc3RhdGUgbWVtYmVycyBhbmQgbWFya3MgdGhlIG9iamVjdCBmb3IgcmVkcmF3XG4gIHNldFN0YXRlKHVwZGF0ZU9iamVjdCkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5zdGF0ZSwgdXBkYXRlT2JqZWN0KTtcbiAgICB0aGlzLnN0YXRlLm5lZWRzUmVkcmF3ID0gdHJ1ZTtcbiAgfVxuXG4gIC8vIFVwZGF0ZXMgc2VsZWN0ZWQgc3RhdGUgbWVtYmVycyBhbmQgbWFya3MgdGhlIG9iamVjdCBmb3IgcmVkcmF3XG4gIHNldFVuaWZvcm1zKHVuaWZvcm1NYXApIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5tb2RlbCkge1xuICAgICAgdGhpcy5zdGF0ZS5tb2RlbC5zZXRVbmlmb3Jtcyh1bmlmb3JtTWFwKTtcbiAgICB9XG4gICAgLy8gVE9ETyAtIHNldCBuZWVkc1JlZHJhdyBvbiB0aGUgbW9kZWw/XG4gICAgdGhpcy5zdGF0ZS5uZWVkc1JlZHJhdyA9IHRydWU7XG4gICAgbG9nKDMsICdsYXllci5zZXRVbmlmb3JtcycsIHVuaWZvcm1NYXApO1xuICB9XG5cbiAgLy8gVXNlIGl0ZXJhdGlvbiAodGhlIG9ubHkgcmVxdWlyZWQgY2FwYWJpbGl0eSBvbiBkYXRhKSB0byBnZXQgZmlyc3QgZWxlbWVudFxuICBnZXRGaXJzdE9iamVjdCgpIHtcbiAgICBjb25zdCB7ZGF0YX0gPSB0aGlzLnByb3BzO1xuICAgIGZvciAoY29uc3Qgb2JqZWN0IG9mIGRhdGEpIHtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gSU5URVJOQUwgTUVUSE9EU1xuXG4gIC8vIERlZHVjZXMgbnVtZXIgb2YgaW5zdGFuY2VzLiBJbnRlbnRpb24gaXMgdG8gc3VwcG9ydDpcbiAgLy8gLSBFeHBsaWNpdCBzZXR0aW5nIG9mIG51bUluc3RhbmNlc1xuICAvLyAtIEF1dG8tZGVkdWN0aW9uIGZvciBFUzYgY29udGFpbmVycyB0aGF0IGRlZmluZSBhIHNpemUgbWVtYmVyXG4gIC8vIC0gQXV0by1kZWR1Y3Rpb24gZm9yIENsYXNzaWMgQXJyYXlzIHZpYSB0aGUgYnVpbHQtaW4gbGVuZ3RoIGF0dHJpYnV0ZVxuICAvLyAtIEF1dG8tZGVkdWN0aW9uIHZpYSBhcnJheXNcbiAgZ2V0TnVtSW5zdGFuY2VzKHByb3BzKSB7XG4gICAgcHJvcHMgPSBwcm9wcyB8fCB0aGlzLnByb3BzO1xuXG4gICAgLy8gRmlyc3QgY2hlY2sgaWYgdGhlIGxheWVyIGhhcyBzZXQgaXRzIG93biB2YWx1ZVxuICAgIGlmICh0aGlzLnN0YXRlICYmIHRoaXMuc3RhdGUubnVtSW5zdGFuY2VzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnN0YXRlLm51bUluc3RhbmNlcztcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBhcHAgaGFzIHByb3ZpZGVkIGFuIGV4cGxpY2l0IHZhbHVlXG4gICAgaWYgKHByb3BzLm51bUluc3RhbmNlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gcHJvcHMubnVtSW5zdGFuY2VzO1xuICAgIH1cblxuICAgIGNvbnN0IHtkYXRhfSA9IHByb3BzO1xuXG4gICAgLy8gQ2hlY2sgaWYgRVM2IGNvbGxlY3Rpb24gXCJjb3VudFwiIGZ1bmN0aW9uIGlzIGF2YWlsYWJsZVxuICAgIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhLmNvdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gZGF0YS5jb3VudCgpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIEVTNiBjb2xsZWN0aW9uIFwic2l6ZVwiIGF0dHJpYnV0ZSBpcyBzZXRcbiAgICBpZiAoZGF0YSAmJiBkYXRhLnNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGRhdGEuc2l6ZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBhcnJheSBsZW5ndGggYXR0cmlidXRlIGlzIHNldFxuICAgIC8vIE5vdGU6IGNoZWNraW5nIHRoaXMgbGFzdCBzaW5jZSBzb21lIEVTNiBjb2xsZWN0aW9ucyAoSW1tdXRhYmxlLmpzKVxuICAgIC8vIGVtaXQgcHJvZnVzZSB3YXJuaW5ncyB3aGVuIHRyeWluZyB0byBhY2Nlc3MgYGxlbmd0aGAgYXR0cmlidXRlXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGRhdGEubGVuZ3RoO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGRlZHVjZSBudW1JbnN0YW5jZXMnKTtcbiAgfVxuXG4gIC8vIEludGVybmFsIEhlbHBlcnNcblxuICBjaGVja1Byb3BzKG9sZFByb3BzLCBuZXdQcm9wcykge1xuICAgIC8vIE5vdGU6IGRhdGFDaGFuZ2VkIG1pZ2h0IGFscmVhZHkgYmUgc2V0XG4gICAgaWYgKG5ld1Byb3BzLmRhdGEgIT09IG9sZFByb3BzLmRhdGEpIHtcbiAgICAgIC8vIEZpZ3VyZSBvdXQgZGF0YSBsZW5ndGhcbiAgICAgIHRoaXMuc3RhdGUuZGF0YUNoYW5nZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHZpZXdwb3J0Q2hhbmdlZCA9XG4gICAgICBuZXdQcm9wcy53aWR0aCAhPT0gb2xkUHJvcHMud2lkdGggfHxcbiAgICAgIG5ld1Byb3BzLmhlaWdodCAhPT0gb2xkUHJvcHMuaGVpZ2h0IHx8XG4gICAgICBuZXdQcm9wcy5sYXRpdHVkZSAhPT0gb2xkUHJvcHMubGF0aXR1ZGUgfHxcbiAgICAgIG5ld1Byb3BzLmxvbmdpdHVkZSAhPT0gb2xkUHJvcHMubG9uZ2l0dWRlIHx8XG4gICAgICBuZXdQcm9wcy56b29tICE9PSBvbGRQcm9wcy56b29tO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7dmlld3BvcnRDaGFuZ2VkfSk7XG4gIH1cblxuICB1cGRhdGVBdHRyaWJ1dGVzKHByb3BzKSB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZU1hbmFnZXIsIG1vZGVsfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgbnVtSW5zdGFuY2VzID0gdGhpcy5nZXROdW1JbnN0YW5jZXMocHJvcHMpO1xuICAgIC8vIEZpZ3VyZSBvdXQgZGF0YSBsZW5ndGhcbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLnVwZGF0ZSh7XG4gICAgICBudW1JbnN0YW5jZXMsXG4gICAgICBidWZmZXJNYXA6IHByb3BzLFxuICAgICAgY29udGV4dDogdGhpcyxcbiAgICAgIC8vIERvbid0IHdvcnJ5IGFib3V0IG5vbi1hdHRyaWJ1dGUgcHJvcHNcbiAgICAgIGlnbm9yZVVua25vd25BdHRyaWJ1dGVzOiB0cnVlXG4gICAgfSk7XG4gICAgaWYgKG1vZGVsKSB7XG4gICAgICBtb2RlbC5zZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZU1hbmFnZXIuZ2V0QXR0cmlidXRlcygpKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVCYXNlVW5pZm9ybXMoKSB7XG4gICAgdGhpcy5zZXRVbmlmb3Jtcyh7XG4gICAgICAvLyBhcHBseSBnYW1tYSB0byBvcGFjaXR5IHRvIG1ha2UgaXQgdmlzdWFsbHkgXCJsaW5lYXJcIlxuICAgICAgb3BhY2l0eTogTWF0aC5wb3codGhpcy5wcm9wcy5vcGFjaXR5IHx8IDAuOCwgMSAvIDIuMilcbiAgICB9KTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIGFueSB1cGRhdGUgdHJpZ2dlcnMgaGF2ZSBjaGFuZ2VkLCBhbmQgaW52YWxpZGF0ZVxuICAvLyBhdHRyaWJ1dGVzIGFjY29yZGluZ2x5LlxuICBjaGVja1VwZGF0ZVRyaWdnZXJzKG9sZFByb3BzLCBuZXdQcm9wcykge1xuICAgIGxldCBjaGFuZ2UgPSBmYWxzZTtcbiAgICBjb25zdCB7YXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuICAgIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gbmV3UHJvcHMudXBkYXRlVHJpZ2dlcnMpIHtcbiAgICAgIGNvbnN0IG9sZFRyaWdnZXJzID0gb2xkUHJvcHMudXBkYXRlVHJpZ2dlcnNbcHJvcE5hbWVdO1xuICAgICAgY29uc3QgbmV3VHJpZ2dlcnMgPSBuZXdQcm9wcy51cGRhdGVUcmlnZ2Vyc1twcm9wTmFtZV07XG4gICAgICBpZiAoIWFyZUVxdWFsU2hhbGxvdyhvbGRUcmlnZ2VycywgbmV3VHJpZ2dlcnMpKSB7XG4gICAgICAgIGlmIChwcm9wTmFtZSA9PT0gJ2FsbCcpIHtcbiAgICAgICAgICBhdHRyaWJ1dGVNYW5hZ2VyLmludmFsaWRhdGVBbGwoKTtcbiAgICAgICAgICBjaGFuZ2UgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF0dHJpYnV0ZU1hbmFnZXIuaW52YWxpZGF0ZShwcm9wTmFtZSk7XG4gICAgICAgICAgY2hhbmdlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2hhbmdlO1xuICB9XG5cbiAgLy8gTEFZRVIgTUFOQUdFUiBBUElcblxuICAvLyBDYWxsZWQgYnkgbGF5ZXIgbWFuYWdlciB3aGVuIGEgbmV3IGxheWVyIGlzIGZvdW5kXG4gIC8qIGVzbGludC1kaXNhYmxlIG1heC1zdGF0ZW1lbnRzICovXG4gIGluaXRpYWxpemVMYXllcih7Z2x9KSB7XG4gICAgYXNzZXJ0KGdsKTtcbiAgICB0aGlzLnN0YXRlID0ge2dsfTtcblxuICAgIC8vIEluaXRpYWxpemUgc3RhdGUgb25seSBvbmNlXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBhdHRyaWJ1dGVNYW5hZ2VyOiBuZXcgQXR0cmlidXRlTWFuYWdlcih7aWQ6IHRoaXMucHJvcHMuaWR9KSxcbiAgICAgIG1vZGVsOiBudWxsLFxuICAgICAgbmVlZHNSZWRyYXc6IHRydWUsXG4gICAgICBkYXRhQ2hhbmdlZDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgY29uc3Qge2F0dHJpYnV0ZU1hbmFnZXJ9ID0gdGhpcy5zdGF0ZTtcbiAgICAvLyBBbGwgaW5zdGFuY2VkIGxheWVycyBnZXQgaW5zdGFuY2VQaWNraW5nQ29sb3JzIGF0dHJpYnV0ZSBieSBkZWZhdWx0XG4gICAgLy8gVGhlaXIgc2hhZGVycyBjYW4gdXNlIGl0IHRvIHJlbmRlciBhIHBpY2tpbmcgc2NlbmVcbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLmFkZEluc3RhbmNlZChBVFRSSUJVVEVTLCB7XG4gICAgICBpbnN0YW5jZVBpY2tpbmdDb2xvcnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5zdGFuY2VQaWNraW5nQ29sb3JzfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zZXRWaWV3cG9ydCgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVN0YXRlKCk7XG4gICAgYXNzZXJ0KHRoaXMuc3RhdGUubW9kZWwsICdNb2RlbCBtdXN0IGJlIHNldCBpbiBpbml0aWFsaXplU3RhdGUnKTtcbiAgICB0aGlzLnNldFZpZXdwb3J0KCk7XG5cbiAgICAvLyBUT0RPIC0gdGhlIGFwcCBtdXN0IGJlIGFibGUgdG8gb3ZlcnJpZGVcblxuICAgIC8vIEFkZCBhbnkgc3ViY2xhc3MgYXR0cmlidXRlc1xuICAgIHRoaXMudXBkYXRlQXR0cmlidXRlcyh0aGlzLnByb3BzKTtcbiAgICB0aGlzLnVwZGF0ZUJhc2VVbmlmb3JtcygpO1xuXG4gICAgY29uc3Qge21vZGVsfSA9IHRoaXMuc3RhdGU7XG4gICAgbW9kZWwuc2V0SW5zdGFuY2VDb3VudCh0aGlzLmdldE51bUluc3RhbmNlcygpKTtcbiAgICBtb2RlbC5pZCA9IGAke3RoaXMucHJvcHMuaWR9LW1vZGVsYDtcbiAgICBtb2RlbC5wcm9ncmFtLmlkID0gYCR7dGhpcy5wcm9wcy5pZH0tcHJvZ3JhbWA7XG4gICAgbW9kZWwuZ2VvbWV0cnkuaWQgPSBgJHt0aGlzLnByb3BzLmlkfS1nZW9tZXRyeWA7XG5cbiAgICAvLyBDcmVhdGUgYSBtb2RlbCBmb3IgdGhlIGxheWVyXG4gICAgdGhpcy5fdXBkYXRlTW9kZWwoe2dsfSk7XG5cbiAgICAvLyBDYWxsIGxpZmUgY3ljbGUgbWV0aG9kXG4gICAgdGhpcy5kaWRNb3VudCgpO1xuICB9XG4gIC8qIGVzbGludC1lbmFibGUgbWF4LXN0YXRlbWVudHMgKi9cblxuICAvLyBDYWxsZWQgYnkgbGF5ZXIgbWFuYWdlciB3aGVuIGV4aXN0aW5nIGxheWVyIGlzIGdldHRpbmcgbmV3IHByb3BzXG4gIHVwZGF0ZUxheWVyKG9sZFByb3BzLCBuZXdQcm9wcykge1xuICAgIC8vIENhbGN1bGF0ZSBzdGFuZGFyZCBjaGFuZ2UgZmxhZ3NcbiAgICB0aGlzLmNoZWNrUHJvcHMob2xkUHJvcHMsIG5ld1Byb3BzKTtcblxuICAgIC8vIENoZWNrIGlmIGFueSBwcm9wcyBoYXZlIGNoYW5nZWRcbiAgICBpZiAodGhpcy5zaG91bGRVcGRhdGUob2xkUHJvcHMsIG5ld1Byb3BzKSkge1xuICAgICAgaWYgKHRoaXMuc3RhdGUudmlld3BvcnRDaGFuZ2VkKSB7XG4gICAgICAgIHRoaXMuc2V0Vmlld3BvcnQoKTtcbiAgICAgIH1cblxuICAgICAgLy8gTGV0IHRoZSBzdWJjbGFzcyBtYXJrIHdoYXQgaXMgbmVlZGVkIGZvciB1cGRhdGVcbiAgICAgIHRoaXMud2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpO1xuICAgICAgLy8gUnVuIHRoZSBhdHRyaWJ1dGUgdXBkYXRlcnNcbiAgICAgIHRoaXMudXBkYXRlQXR0cmlidXRlcyhuZXdQcm9wcyk7XG4gICAgICAvLyBVcGRhdGUgdGhlIHVuaWZvcm1zXG4gICAgICB0aGlzLnVwZGF0ZUJhc2VVbmlmb3JtcygpO1xuXG4gICAgICBpZiAodGhpcy5zdGF0ZS5tb2RlbCkge1xuICAgICAgICB0aGlzLnN0YXRlLm1vZGVsLnNldEluc3RhbmNlQ291bnQodGhpcy5nZXROdW1JbnN0YW5jZXMoKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZS5kYXRhQ2hhbmdlZCA9IGZhbHNlO1xuICAgIHRoaXMuc3RhdGUudmlld3BvcnRDaGFuZ2VkID0gZmFsc2U7XG4gIH1cblxuICAvLyBDYWxsZWQgYnkgbWFuYWdlciB3aGVuIGxheWVyIGlzIGFib3V0IHRvIGJlIGRpc3Bvc2VkXG4gIC8vIE5vdGU6IG5vdCBndWFyYW50ZWVkIHRvIGJlIGNhbGxlZCBvbiBhcHBsaWNhdGlvbiBzaHV0ZG93blxuICBmaW5hbGl6ZUxheWVyKCkge1xuICAgIHRoaXMud2lsbFVubW91bnQoKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlUGlja2luZ0NvbG9ycyhhdHRyaWJ1dGUsIG51bUluc3RhbmNlcykge1xuICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG4gICAgLy8gYWRkIDEgdG8gaW5kZXggdG8gc2VwZXJhdGUgZnJvbSBubyBzZWxlY3Rpb25cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bUluc3RhbmNlczsgaSsrKSB7XG4gICAgICBjb25zdCBwaWNraW5nQ29sb3IgPSB0aGlzLmVuY29kZVBpY2tpbmdDb2xvcihpKTtcbiAgICAgIHZhbHVlW2kgKiBzaXplICsgMF0gPSBwaWNraW5nQ29sb3JbMF07XG4gICAgICB2YWx1ZVtpICogc2l6ZSArIDFdID0gcGlja2luZ0NvbG9yWzFdO1xuICAgICAgdmFsdWVbaSAqIHNpemUgKyAyXSA9IHBpY2tpbmdDb2xvclsyXTtcbiAgICB9XG4gIH1cblxuICBkZWNvZGVQaWNraW5nQ29sb3IoY29sb3IpIHtcbiAgICBhc3NlcnQoY29sb3IgaW5zdGFuY2VvZiBVaW50OEFycmF5KTtcbiAgICBjb25zdCBbaTEsIGkyLCBpM10gPSBjb2xvcjtcbiAgICAvLyAxIHdhcyBhZGRlZCB0byBzZXBlcmF0ZSBmcm9tIG5vIHNlbGVjdGlvblxuICAgIGNvbnN0IGluZGV4ID0gaTEgKyBpMiAqIDI1NiArIGkzICogNjU1MzYgLSAxO1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIGVuY29kZVBpY2tpbmdDb2xvcihpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIChpICsgMSkgJSAyNTYsXG4gICAgICBNYXRoLmZsb29yKChpICsgMSkgLyAyNTYpICUgMjU2LFxuICAgICAgTWF0aC5mbG9vcigoaSArIDEpIC8gMjU2IC8gMjU2KSAlIDI1NlxuICAgIF07XG4gIH1cblxuICAvLyBWSVJUVUFMIE1FVEhPRCAtIE92ZXJyaWRlIHRvIGFkZCBvciBtb2RpZnkgYGluZm9gIG9iamVjdCBpbiBzdWJsYXllclxuICAvLyBUaGUgc3VibGF5ZXIgbWF5IGtub3cgd2hhdCBvYmplY3QgZS5nLiBsYXQsbG9uIGNvcnJlc3BvbmRzIHRvIHVzaW5nIG1hdGhcbiAgLy8gZXRjIGV2ZW4gd2hlbiBwaWNraW5nIGRvZXMgbm90IHdvcmtcbiAgb25HZXRIb3ZlckluZm8oaW5mbykge1xuICAgIGNvbnN0IHtjb2xvcn0gPSBpbmZvO1xuICAgIGluZm8uaW5kZXggPSB0aGlzLmRlY29kZVBpY2tpbmdDb2xvcihjb2xvcik7XG4gICAgLy8gSWYgcHJvcHMuZGF0YSBpcyBhbiBpbmRleGFibGUgYXJyYXksIGdldCB0aGUgb2JqZWN0XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5wcm9wcy5kYXRhKSkge1xuICAgICAgaW5mby5vYmplY3QgPSB0aGlzLnByb3BzLmRhdGFbaW5mby5pbmRleF07XG4gICAgfVxuICAgIGluZm8uZ2VvQ29vcmRzID0gdGhpcy51bnByb2plY3Qoe3g6IGluZm8ueCwgeTogaW5mby55fSk7XG4gICAgcmV0dXJuIGluZm87XG4gIH1cblxuICBvbkhvdmVyKGluZm8pIHtcbiAgICBjb25zdCB7Y29sb3J9ID0gaW5mbztcblxuICAgIGNvbnN0IHNlbGVjdGVkUGlja2luZ0NvbG9yID0gbmV3IEZsb2F0MzJBcnJheSgzKTtcbiAgICBzZWxlY3RlZFBpY2tpbmdDb2xvclswXSA9IGNvbG9yWzBdO1xuICAgIHNlbGVjdGVkUGlja2luZ0NvbG9yWzFdID0gY29sb3JbMV07XG4gICAgc2VsZWN0ZWRQaWNraW5nQ29sb3JbMl0gPSBjb2xvclsyXTtcbiAgICB0aGlzLnNldFVuaWZvcm1zKHtzZWxlY3RlZFBpY2tpbmdDb2xvcn0pO1xuXG4gICAgaW5mbyA9IHRoaXMub25HZXRIb3ZlckluZm8oaW5mbyk7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMub25Ib3ZlcihpbmZvKTtcbiAgfVxuXG4gIG9uQ2xpY2soaW5mbykge1xuICAgIGluZm8gPSB0aGlzLm9uR2V0SG92ZXJJbmZvKGluZm8pO1xuICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2xpY2soaW5mbyk7XG4gIH1cblxuICAvLyBJTlRFUk5BTCBNRVRIT0RTXG4gIF91cGRhdGVNb2RlbCh7Z2x9KSB7XG4gICAgY29uc3Qge21vZGVsLCBhdHRyaWJ1dGVNYW5hZ2VyLCB1bmlmb3Jtc30gPSB0aGlzLnN0YXRlO1xuXG4gICAgYXNzZXJ0KG1vZGVsKTtcbiAgICBtb2RlbC5zZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZU1hbmFnZXIuZ2V0QXR0cmlidXRlcygpKTtcbiAgICBtb2RlbC5zZXRVbmlmb3Jtcyh1bmlmb3Jtcyk7XG4gICAgLy8gd2hldGhlciBjdXJyZW50IGxheWVyIHJlc3BvbmRzIHRvIG1vdXNlIGV2ZW50c1xuICAgIG1vZGVsLnNldFBpY2thYmxlKHRoaXMucHJvcHMuaXNQaWNrYWJsZSk7XG4gIH1cblxuICBjaGVja1Byb3AocHJvcGVydHksIHByb3BlcnR5TmFtZSkge1xuICAgIGlmIChwcm9wZXJ0eSA9PT0gdW5kZWZpbmVkIHx8IHByb3BlcnR5ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb3BlcnR5ICR7cHJvcGVydHlOYW1lfSB1bmRlZmluZWQgaW4gbGF5ZXIgJHt0aGlzLnByb3BzLmlkfWApO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1BUCBMQVlFUiBGVU5DVElPTkFMSVRZXG5cbiAgc2V0Vmlld3BvcnQoKSB7XG4gICAgY29uc3Qge3dpZHRoLCBoZWlnaHQsIGxhdGl0dWRlLCBsb25naXR1ZGUsIHpvb219ID0gdGhpcy5wcm9wcztcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHZpZXdwb3J0OiB7eDogMCwgeTogMCwgd2lkdGgsIGhlaWdodH0sXG4gICAgICBtZXJjYXRvcjogVmlld3BvcnRNZXJjYXRvcih7XG4gICAgICAgIHdpZHRoLCBoZWlnaHQsIGxhdGl0dWRlLCBsb25naXR1ZGUsIHpvb20sXG4gICAgICAgIHRpbGVTaXplOiA1MTJcbiAgICAgIH0pXG4gICAgfSk7XG4gICAgdGhpcy5zZXRVbmlmb3Jtcyh7XG4gICAgICB2aWV3cG9ydDogWzAsIDAsIHdpZHRoLCBoZWlnaHRdLFxuICAgICAgbWVyY2F0b3JTY2FsZTogTWF0aC5wb3coMiwgem9vbSksXG4gICAgICBtZXJjYXRvckNlbnRlcjogW2xvbmdpdHVkZSwgbGF0aXR1ZGVdXG4gICAgfSk7XG4gICAgbG9nKDMsIHRoaXMuc3RhdGUudmlld3BvcnQsIGxhdGl0dWRlLCBsb25naXR1ZGUsIHpvb20pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIGNvbnZlcnNpb24gaXMgZG9uZSBpbiBzaGFkZXIsIHNvIGluIG1hbnkgY2FzZXMgdGhlcmUgaXMgbm8gbmVlZFxuICAgKiBmb3IgdGhpcyBmdW5jdGlvblxuICAgKiBAcGFyYW0ge09iamVjdHxBcnJheX0gbGF0TG5nIC0gRWl0aGVyIFtsYXQsbG5nXSBvciB7bGF0LCBsb259XG4gICAqIEByZXR1cm4ge09iamVjdH0gLSB4LCB5XG4gICAqL1xuICBwcm9qZWN0KGxhdExuZykge1xuICAgIGNvbnN0IHttZXJjYXRvcn0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IFt4LCB5XSA9IEFycmF5LmlzQXJyYXkobGF0TG5nKSA/XG4gICAgICBtZXJjYXRvci5wcm9qZWN0KFtsYXRMbmdbMV0sIGxhdExuZ1swXV0pIDpcbiAgICAgIG1lcmNhdG9yLnByb2plY3QoW2xhdExuZy5sb24sIGxhdExuZy5sYXRdKTtcbiAgICByZXR1cm4ge3gsIHl9O1xuICB9XG5cbiAgdW5wcm9qZWN0KHh5KSB7XG4gICAgY29uc3Qge21lcmNhdG9yfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgW2xvbiwgbGF0XSA9IEFycmF5LmlzQXJyYXkoeHkpID9cbiAgICAgIG1lcmNhdG9yLnVucHJvamVjdCh4eSkgOlxuICAgICAgbWVyY2F0b3IudW5wcm9qZWN0KFt4eS54LCB4eS55XSk7XG4gICAgcmV0dXJuIHtsYXQsIGxvbn07XG4gIH1cbn1cbiJdfQ==

@@ -57,2 +57,5 @@ 'use strict';

var RED = [255, 0, 0];
var BLUE = [0, 0, 255];
var ArcLayer = function (_Layer) {

@@ -75,5 +78,5 @@ _inherits(ArcLayer, _Layer);

var _ref$color = _ref.color0;
var color0 = _ref$color === undefined ? [255, 0, 0] : _ref$color;
var color0 = _ref$color === undefined ? RED : _ref$color;
var _ref$color2 = _ref.color1;
var color1 = _ref$color2 === undefined ? [0, 0, 255] : _ref$color2;
var color1 = _ref$color2 === undefined ? BLUE : _ref$color2;

@@ -234,2 +237,2 @@ var opts = _objectWithoutProperties(_ref, ['strokeWidth', 'color0', 'color1']);

exports.default = ArcLayer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvYXJjLWxheWVyL2FyYy1sYXllci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBb0JBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTSxVQUFVLFFBQVEsU0FBUixDQUFoQjs7QUFFQSxJQUFNLGFBQWE7QUFDakIscUJBQW1CLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxJQUFmLEVBQXFCLEtBQUssSUFBMUIsRUFBZ0MsS0FBSyxJQUFyQyxFQUEyQyxLQUFLLElBQWhELEVBREY7QUFFakIsa0JBQWdCLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxLQUFmLEVBQXNCLEtBQUssT0FBM0IsRUFBb0MsS0FBSyxNQUF6QztBQUZDLENBQW5COztJQUtxQixROzs7Ozs7Ozs7OztBQVFuQixzQkFLUTtBQUFBLHFFQUFKLEVBQUk7O0FBQUEsZ0NBSk4sV0FJTTtBQUFBLFFBSk4sV0FJTSxvQ0FKUSxDQUlSO0FBQUEsMEJBSE4sTUFHTTtBQUFBLFFBSE4sTUFHTSw4QkFIRyxDQUFDLEdBQUQsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUdIO0FBQUEsMkJBRk4sTUFFTTtBQUFBLFFBRk4sTUFFTSwrQkFGRyxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sR0FBUCxDQUVIOztBQUFBLFFBREgsSUFDRzs7QUFBQTs7QUFBQTtBQUVKLDhCQUZJO0FBR0osb0JBSEk7QUFJSjtBQUpJLE9BS0QsSUFMQztBQU9QOzs7O3NDQUVpQjtBQUFBLG1CQUNlLEtBQUssS0FEcEI7QUFBQSxVQUNULEVBRFMsVUFDVCxFQURTO0FBQUEsVUFDTCxnQkFESyxVQUNMLGdCQURLOzs7QUFHaEIsVUFBTSxRQUFRLEtBQUssV0FBTCxDQUFpQixFQUFqQixDQUFkO0FBQ0EsWUFBTSxRQUFOLENBQWUsV0FBZixHQUE2QixLQUFLLEtBQUwsQ0FBVyxXQUF4QztBQUNBLFdBQUssUUFBTCxDQUFjLEVBQUMs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QUFBLGNBQWYsS0FBZTs7QUFDeEIsZ0JBQU0sSUFBSSxDQUFWLElBQWUsTUFBTSxLQUFOLENBQVksQ0FBWixDQUFmO0FBQ0EsZ0JBQU0sSUFBSSxDQUFWLElBQWUsTUFBTSxLQUFOLENBQVksQ0FBWixDQUFmO0FBQ0EsZ0JBQU0sSUFBSSxDQUFWLElBQWUsTUFBTSxLQUFOLENBQVksQ0FBWixDQUFmO0FBQ0EsZUFBSyxJQUFMO0FBQ0Q7QUFUZ0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVsQzs7Ozs7O2tCQXRHa0IsUSIsImZpbGUiOiJhcmMtbGF5ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMTUgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgTGF5ZXIgZnJvbSAnLi4vLi4vbGF5ZXInO1xuaW1wb3J0IHtNb2RlbCwgUHJvZ3JhbSwgR2VvbWV0cnl9IGZyb20gJ2x1bWEuZ2wnO1xuY29uc3QgZ2xzbGlmeSA9IHJlcXVpcmUoJ2dsc2xpZnknKTtcblxuY29uc3QgQVRUUklCVVRFUyA9IHtcbiAgaW5zdGFuY2VQb3NpdGlvbnM6IHtzaXplOiA0LCAnMCc6ICd4MCcsICcxJzogJ3kwJywgJzInOiAneDEnLCAnMyc6ICd5MSd9LFxuICBpbnN0YW5jZUNvbG9yczoge3NpemU6IDMsICcwJzogJ3JlZCcsICcxJzogJ2dyZWVuJywgJzInOiAnYmx1ZSd9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcmNMYXllciBleHRlbmRzIExheWVyIHtcbiAgLyoqXG4gICAqIEBjbGFzc2Rlc2NcbiAgICogQXJjTGF5ZXJcbiAgICpcbiAgICogQGNsYXNzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgc3Ryb2tlV2lkdGggPSAxLFxuICAgIGNvbG9yMCA9IFsyNTUsIDAsIDBdLFxuICAgIGNvbG9yMSA9IFswLCAwLCAyNTVdLFxuICAgIC4uLm9wdHNcbiAgfSA9IHt9KSB7XG4gICAgc3VwZXIoe1xuICAgICAgc3Ryb2tlV2lkdGgsXG4gICAgICBjb2xvcjAsXG4gICAgICBjb2xvcjEsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgY29uc3Qge2dsLCBhdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBjb25zdCBtb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWwoZ2wpO1xuICAgIG1vZGVsLnVzZXJEYXRhLnN0cm9rZVdpZHRoID0gdGhpcy5wcm9wcy5zdHJva2VXaWR0aDtcbiAgICB0aGlzLnNldFN0YXRlKHttb2RlbH0pO1xuXG4gICAgYXR0cmlidXRlTWFuYWdlci5hZGRJbnN0YW5jZWQoQVRUUklCVVRFUywge1xuICAgICAgaW5zdGFuY2VQb3NpdGlvbnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5zdGFuY2VQb3NpdGlvbnN9LFxuICAgICAgaW5zdGFuY2VDb2xvcnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5zdGFuY2VDb2xvcnN9XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwZGF0ZUNvbG9ycygpO1xuICB9XG5cbiAgd2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV4dFByb3BzKSB7XG4gICAgc3VwZXIud2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV4dFByb3BzKTtcbiAgICB0aGlzLnN0YXRlLm1vZGVsLnVzZXJEYXRhLnN0cm9rZVdpZHRoID0gbmV4dFByb3BzLnN0cm9rZVdpZHRoO1xuICAgIHRoaXMudXBkYXRlQ29sb3JzKCk7XG4gIH1cblxuICBjcmVhdGVNb2RlbChnbCkge1xuICAgIGxldCBwb3NpdGlvbnMgPSBbXTtcbiAgICBjb25zdCBOVU1fU0VHTUVOVFMgPSA1MDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE5VTV9TRUdNRU5UUzsgaSsrKSB7XG4gICAgICBwb3NpdGlvbnMgPSBbLi4ucG9zaXRpb25zLCBpLCBpLCBpXTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IE1vZGVsKHtcbiAgICAgIHByb2dyYW06IG5ldyBQcm9ncmFtKGdsLCB7XG4gICAgICAgIHZzOiBnbHNsaWZ5KCcuL2FyYy1sYXllci12ZXJ0ZXguZ2xzbCcpLFxuICAgICAgICBmczogZ2xzbGlmeSgnLi9hcmMtbGF5ZXItZnJhZ21lbnQuZ2xzbCcpLFxuICAgICAgICBpZDogJ2FyYydcbiAgICAgIH0pLFxuICAgICAgZ2VvbWV0cnk6IG5ldyBHZW9tZXRyeSh7XG4gICAgICAgIGlkOiAnYXJjJyxcbiAgICAgICAgZHJhd01vZGU6ICdMSU5FX1NUUklQJyxcbiAgICAgICAgcG9zaXRpb25zOiBuZXcgRmxvYXQzMkFycmF5KHBvc2l0aW9ucylcbiAgICAgIH0pLFxuICAgICAgaXNJbnN0YW5jZWQ6IHRydWUsXG4gICAgICBvbkJlZm9yZVJlbmRlcigpIHtcbiAgICAgICAgdGhpcy51c2VyRGF0YS5vbGRTdHJva2VXaWR0aCA9IGdsLmdldFBhcmFtZXRlcihnbC5MSU5FX1dJRFRIKTtcbiAgICAgICAgdGhpcy5wcm9ncmFtLmdsLmxpbmVXaWR0aCh0aGlzLnVzZXJEYXRhLnN0cm9rZVdpZHRoIHx8IDEpO1xuICAgICAgfSxcbiAgICAgIG9uQWZ0ZXJSZW5kZXIoKSB7XG4gICAgICAgIHRoaXMucHJvZ3JhbS5nbC5saW5lV2lkdGgodGhpcy51c2VyRGF0YS5vbGRTdHJva2VXaWR0aCB8fCAxKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUNvbG9ycygpIHtcbiAgICB0aGlzLnNldFVuaWZvcm1zKHtcbiAgICAgIGNvbG9yMDogdGhpcy5wcm9wcy5jb2xvcjAsXG4gICAgICBjb2xvcjE6IHRoaXMucHJvcHMuY29sb3IxXG4gICAgfSk7XG4gIH1cblxuICBjYWxjdWxhdGVJbnN0YW5jZVBvc2l0aW9ucyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB7ZGF0YX0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgYXJjIG9mIGRhdGEpIHtcbiAgICAgIHZhbHVlW2kgKyAwXSA9IGFyYy5wb3NpdGlvbi54MDtcbiAgICAgIHZhbHVlW2kgKyAxXSA9IGFyYy5wb3NpdGlvbi55MDtcbiAgICAgIHZhbHVlW2kgKyAyXSA9IGFyYy5wb3NpdGlvbi54MTtcbiAgICAgIHZhbHVlW2kgKyAzXSA9IGFyYy5wb3NpdGlvbi55MTtcbiAgICAgIGkgKz0gc2l6ZTtcbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVJbnN0YW5jZUNvbG9ycyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB7ZGF0YX0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgcG9pbnQgb2YgZGF0YSkge1xuICAgICAgdmFsdWVbaSArIDBdID0gcG9pbnQuY29sb3JbMF07XG4gICAgICB2YWx1ZVtpICsgMV0gPSBwb2ludC5jb2xvclsxXTtcbiAgICAgIHZhbHVlW2kgKyAyXSA9IHBvaW50LmNvbG9yWzJdO1xuICAgICAgaSArPSBzaXplO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvYXJjLWxheWVyL2FyYy1sYXllci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBb0JBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTSxVQUFVLFFBQVEsU0FBUixDQUFoQjs7QUFFQSxJQUFNLGFBQWE7QUFDakIscUJBQW1CLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxJQUFmLEVBQXFCLEtBQUssSUFBMUIsRUFBZ0MsS0FBSyxJQUFyQyxFQUEyQyxLQUFLLElBQWhELEVBREY7QUFFakIsa0JBQWdCLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxLQUFmLEVBQXNCLEtBQUssT0FBM0IsRUFBb0MsS0FBSyxNQUF6QztBQUZDLENBQW5COztBQUtBLElBQU0sTUFBTSxDQUFDLEdBQUQsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUFaO0FBQ0EsSUFBTSxPQUFPLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxHQUFQLENBQWI7O0lBRXFCLFE7Ozs7Ozs7Ozs7O0FBUW5CLHNCQUtRO0FBQUEscUVBQUosRUFBSTs7QUFBQSxnQ0FKTixXQUlNO0FBQUEsUUFKTixXQUlNLG9DQUpRLENBSVI7QUFBQSwwQkFITixNQUdNO0FBQUEsUUFITixNQUdNLDhCQUhHLEdBR0g7QUFBQSwyQkFGTixNQUVNO0FBQUEsUUFGTixNQUVNLCtCQUZHLElBRUg7O0FBQUEsUUFESCxJQUNHOztBQUFBOztBQUFBO0FBRUosOEJBRkk7QUFHSixvQkFISTtBQUlKO0FBSkksT0FLRCxJQUxDO0FBT1A7Ozs7c0NBRWlCO0FBQUEsbUJBQ2UsS0FBSyxLQURwQjtBQUFBLFVBQ1QsRUFEUyxVQUNULEVBRFM7QUFBQSxVQUNMLGdCQURLLFVBQ0wsZ0JBREs7OztBQUdoQixVQUFNLFFBQVEsS0FBSyxXQUFMLENBQWlCLEVBQWpCLENBQWQ7QUFDQSxZQUFNLFFBQU4sQ0FBZSxXQUFmLEdBQTZCLEtBQUss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QUE7QUFBQTs7QUFBQTtBQUlqQyw4QkFBb0IsSUFBcEIsbUlBQTBCO0FBQUEsY0FBZixLQUFlOztBQUN4QixnQkFBTSxJQUFJLENBQVYsSUFBZSxNQUFNLEtBQU4sQ0FBWSxDQUFaLENBQWY7QUFDQSxnQkFBTSxJQUFJLENBQVYsSUFBZSxNQUFNLEtBQU4sQ0FBWSxDQUFaLENBQWY7QUFDQSxnQkFBTSxJQUFJLENBQVYsSUFBZSxNQUFNLEtBQU4sQ0FBWSxDQUFaLENBQWY7QUFDQSxlQUFLLElBQUw7QUFDRDtBQVRnQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVWxDOzs7Ozs7a0JBdEdrQixRIiwiZmlsZSI6ImFyYy1sYXllci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxNSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBMYXllciBmcm9tICcuLi8uLi9sYXllcic7XG5pbXBvcnQge01vZGVsLCBQcm9ncmFtLCBHZW9tZXRyeX0gZnJvbSAnbHVtYS5nbCc7XG5jb25zdCBnbHNsaWZ5ID0gcmVxdWlyZSgnZ2xzbGlmeScpO1xuXG5jb25zdCBBVFRSSUJVVEVTID0ge1xuICBpbnN0YW5jZVBvc2l0aW9uczoge3NpemU6IDQsICcwJzogJ3gwJywgJzEnOiAneTAnLCAnMic6ICd4MScsICczJzogJ3kxJ30sXG4gIGluc3RhbmNlQ29sb3JzOiB7c2l6ZTogMywgJzAnOiAncmVkJywgJzEnOiAnZ3JlZW4nLCAnMic6ICdibHVlJ31cbn07XG5cbmNvbnN0IFJFRCA9IFsyNTUsIDAsIDBdO1xuY29uc3QgQkxVRSA9IFswLCAwLCAyNTVdO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcmNMYXllciBleHRlbmRzIExheWVyIHtcbiAgLyoqXG4gICAqIEBjbGFzc2Rlc2NcbiAgICogQXJjTGF5ZXJcbiAgICpcbiAgICogQGNsYXNzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgc3Ryb2tlV2lkdGggPSAxLFxuICAgIGNvbG9yMCA9IFJFRCxcbiAgICBjb2xvcjEgPSBCTFVFLFxuICAgIC4uLm9wdHNcbiAgfSA9IHt9KSB7XG4gICAgc3VwZXIoe1xuICAgICAgc3Ryb2tlV2lkdGgsXG4gICAgICBjb2xvcjAsXG4gICAgICBjb2xvcjEsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgY29uc3Qge2dsLCBhdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBjb25zdCBtb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWwoZ2wpO1xuICAgIG1vZGVsLnVzZXJEYXRhLnN0cm9rZVdpZHRoID0gdGhpcy5wcm9wcy5zdHJva2VXaWR0aDtcbiAgICB0aGlzLnNldFN0YXRlKHttb2RlbH0pO1xuXG4gICAgYXR0cmlidXRlTWFuYWdlci5hZGRJbnN0YW5jZWQoQVRUUklCVVRFUywge1xuICAgICAgaW5zdGFuY2VQb3NpdGlvbnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5zdGFuY2VQb3NpdGlvbnN9LFxuICAgICAgaW5zdGFuY2VDb2xvcnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5zdGFuY2VDb2xvcnN9XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwZGF0ZUNvbG9ycygpO1xuICB9XG5cbiAgd2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV4dFByb3BzKSB7XG4gICAgc3VwZXIud2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV4dFByb3BzKTtcbiAgICB0aGlzLnN0YXRlLm1vZGVsLnVzZXJEYXRhLnN0cm9rZVdpZHRoID0gbmV4dFByb3BzLnN0cm9rZVdpZHRoO1xuICAgIHRoaXMudXBkYXRlQ29sb3JzKCk7XG4gIH1cblxuICBjcmVhdGVNb2RlbChnbCkge1xuICAgIGxldCBwb3NpdGlvbnMgPSBbXTtcbiAgICBjb25zdCBOVU1fU0VHTUVOVFMgPSA1MDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE5VTV9TRUdNRU5UUzsgaSsrKSB7XG4gICAgICBwb3NpdGlvbnMgPSBbLi4ucG9zaXRpb25zLCBpLCBpLCBpXTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IE1vZGVsKHtcbiAgICAgIHByb2dyYW06IG5ldyBQcm9ncmFtKGdsLCB7XG4gICAgICAgIHZzOiBnbHNsaWZ5KCcuL2FyYy1sYXllci12ZXJ0ZXguZ2xzbCcpLFxuICAgICAgICBmczogZ2xzbGlmeSgnLi9hcmMtbGF5ZXItZnJhZ21lbnQuZ2xzbCcpLFxuICAgICAgICBpZDogJ2FyYydcbiAgICAgIH0pLFxuICAgICAgZ2VvbWV0cnk6IG5ldyBHZW9tZXRyeSh7XG4gICAgICAgIGlkOiAnYXJjJyxcbiAgICAgICAgZHJhd01vZGU6ICdMSU5FX1NUUklQJyxcbiAgICAgICAgcG9zaXRpb25zOiBuZXcgRmxvYXQzMkFycmF5KHBvc2l0aW9ucylcbiAgICAgIH0pLFxuICAgICAgaXNJbnN0YW5jZWQ6IHRydWUsXG4gICAgICBvbkJlZm9yZVJlbmRlcigpIHtcbiAgICAgICAgdGhpcy51c2VyRGF0YS5vbGRTdHJva2VXaWR0aCA9IGdsLmdldFBhcmFtZXRlcihnbC5MSU5FX1dJRFRIKTtcbiAgICAgICAgdGhpcy5wcm9ncmFtLmdsLmxpbmVXaWR0aCh0aGlzLnVzZXJEYXRhLnN0cm9rZVdpZHRoIHx8IDEpO1xuICAgICAgfSxcbiAgICAgIG9uQWZ0ZXJSZW5kZXIoKSB7XG4gICAgICAgIHRoaXMucHJvZ3JhbS5nbC5saW5lV2lkdGgodGhpcy51c2VyRGF0YS5vbGRTdHJva2VXaWR0aCB8fCAxKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUNvbG9ycygpIHtcbiAgICB0aGlzLnNldFVuaWZvcm1zKHtcbiAgICAgIGNvbG9yMDogdGhpcy5wcm9wcy5jb2xvcjAsXG4gICAgICBjb2xvcjE6IHRoaXMucHJvcHMuY29sb3IxXG4gICAgfSk7XG4gIH1cblxuICBjYWxjdWxhdGVJbnN0YW5jZVBvc2l0aW9ucyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB7ZGF0YX0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgYXJjIG9mIGRhdGEpIHtcbiAgICAgIHZhbHVlW2kgKyAwXSA9IGFyYy5wb3NpdGlvbi54MDtcbiAgICAgIHZhbHVlW2kgKyAxXSA9IGFyYy5wb3NpdGlvbi55MDtcbiAgICAgIHZhbHVlW2kgKyAyXSA9IGFyYy5wb3NpdGlvbi54MTtcbiAgICAgIHZhbHVlW2kgKyAzXSA9IGFyYy5wb3NpdGlvbi55MTtcbiAgICAgIGkgKz0gc2l6ZTtcbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVJbnN0YW5jZUNvbG9ycyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB7ZGF0YX0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgcG9pbnQgb2YgZGF0YSkge1xuICAgICAgdmFsdWVbaSArIDBdID0gcG9pbnQuY29sb3JbMF07XG4gICAgICB2YWx1ZVtpICsgMV0gPSBwb2ludC5jb2xvclsxXTtcbiAgICAgIHZhbHVlW2kgKyAyXSA9IHBvaW50LmNvbG9yWzJdO1xuICAgICAgaSArPSBzaXplO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=

@@ -47,2 +47,3 @@ 'use strict';

// THE SOFTWARE.
/* eslint-disable func-style */

@@ -57,2 +58,15 @@ var glslify = require('glslify');

var _getCentroid = function _getCentroid(x) {
return x.centroid;
};
var _getElevation = function _getElevation(x) {
return x.elevation || 0;
};
var _getColor = function _getColor(x) {
return x.color || [255, 0, 0];
};
var _getVertices = function _getVertices(x) {
return x.vertices;
};
var HexagonLayer = function (_Layer) {

@@ -86,17 +100,9 @@ _inherits(HexagonLayer, _Layer);

var _ref$getCentroid = _ref.getCentroid;
var getCentroid = _ref$getCentroid === undefined ? function (x) {
return x.centroid;
} : _ref$getCentroid;
var getCentroid = _ref$getCentroid === undefined ? _getCentroid : _ref$getCentroid;
var _ref$getElevation = _ref.getElevation;
var getElevation = _ref$getElevation === undefined ? function (x) {
return x.elevation || 0;
} : _ref$getElevation;
var getElevation = _ref$getElevation === undefined ? _getElevation : _ref$getElevation;
var _ref$getColor = _ref.getColor;
var getColor = _ref$getColor === undefined ? function (x) {
return x.color || [255, 0, 0];
} : _ref$getColor;
var getColor = _ref$getColor === undefined ? _getColor : _ref$getColor;
var _ref$getVertices = _ref.getVertices;
var getVertices = _ref$getVertices === undefined ? function (x) {
return x.vertices;
} : _ref$getVertices;
var getVertices = _ref$getVertices === undefined ? _getVertices : _ref$getVertices;

@@ -369,2 +375,2 @@ var opts = _objectWithoutProperties(_ref, ['id', 'dotRadius', 'elevation', 'vertices', 'getCentroid', 'getElevation', 'getColor', 'getVertices']);

exports.default = HexagonLayer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvaGV4YWdvbi1sYXllci9oZXhhZ29uLWxheWVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFvQkE7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTSxVQUFVLFFBQVEsU0FBUixDQUFoQjs7QUFFQSxJQUFNLGFBQWE7QUFDakIscUJBQW1CLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxHQUFmLEVBQW9CLEtBQUssR0FBekIsRUFERjtBQUVqQixzQkFBb0IsRUFBQyxNQUFNLENBQVAsRUFBVSxLQUFLLEdBQWYsRUFGSDtBQUdqQixrQkFBZ0IsRUFBQyxNQUFNLENBQVAsRUFBVSxLQUFLLEtBQWYsRUFBc0IsS0FBSyxPQUEzQixFQUFvQyxLQUFLLE1BQXpDO0FBSEMsQ0FBbkI7O0lBTXFCLFk7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY25CLDBCQVVRO0FBQUEscUVBQUosRUFBSTs7QUFBQSx1QkFUTixFQVNNO0FBQUEsUUFUTixFQVNNLDJCQVRELGVBU0M7QUFBQSw4QkFSTixTQVFNO0FBQUEsUUFSTixTQVFNLGtDQVJNLEVBUU47QUFBQSw4QkFQTixTQU9NO0FBQUEsUUFQTixTQU9NLGtDQVBNLEdBT047QUFBQSxRQU5OLFFBTU0sUUFOTixRQU1NO0FBQUEsZ0NBTE4sV0FLTTtBQUFBLFFBTE4sV0FLTSxvQ0FMUTtBQUFBLGFBQUssRUFBRSxRQUFQO0FBQUEsS0FLUjtBQUFBLGlDQUpOLFlBSU07QUFBQSxRQUpOLFlBSU0scUNBSlM7QUFBQSxhQUFLLEVBQUUsU0FBRixJQUFlLENBQXBCO0FBQUEsS0FJVDtBQUFBLDZCQUhOLFFBR007QUFBQSxRQUhOLFFBR00saUNBSEs7QUFBQSxhQUFLLEVBQUUsS0FBRixJQUFXLENBQUMsR0FBRCxFQUFNLENBQU4sRUFBUyxDQUFULENBQWhCO0FBQUEsS0FHTDtBQUFBLGdDQUZOLFdBRU07QUFBQSxRQUZOLFdBRU0sb0NBRlE7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dCAoYykgMjAxNSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBMYXllciBmcm9tICcuLi8uLi9sYXllcic7XG5pbXBvcnQge01vZGVsLCBQcm9ncmFtLCBDeWxpbmRlckdlb21ldHJ5fSBmcm9tICdsdW1hLmdsJztcbmNvbnN0IGdsc2xpZnkgPSByZXF1aXJlKCdnbHNsaWZ5Jyk7XG5cbmNvbnN0IEFUVFJJQlVURVMgPSB7XG4gIGluc3RhbmNlUG9zaXRpb25zOiB7c2l6ZTogMiwgJzAnOiAneCcsICcxJzogJ3knfSxcbiAgaW5zdGFuY2VFbGV2YXRpb25zOiB7c2l6ZTogMSwgJzAnOiAneid9LFxuICBpbnN0YW5jZUNvbG9yczoge3NpemU6IDMsICcwJzogJ3JlZCcsICcxJzogJ2dyZWVuJywgJzInOiAnYmx1ZSd9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIZXhhZ29uTGF5ZXIgZXh0ZW5kcyBMYXllciB7XG4gIC8qKlxuICAgKiBAY2xhc3NkZXNjXG4gICAqIEhleGFnb25MYXllclxuICAgKlxuICAgKiBAY2xhc3NcbiAgICogQHBhcmFtIHtvYmplY3R9IG9wdHNcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wdHMuZG90UmFkaXVzIC0gaGV4YWdvbiByYWRpdXNcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wdHMuZWxldmF0aW9uIC0gaGV4YWdvbiBoZWlnaHRcbiAgICpcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gb3B0cy5vbkhleGFnb25Ib3ZlcmVkKGluZGV4LCBlKSAtIHBvcHVwIHNlbGVjdGVkIGluZGV4XG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9wdHMub25IZXhhZ29uQ2xpY2tlZChpbmRleCwgZSkgLSBwb3B1cCBzZWxlY3RlZCBpbmRleFxuICAgKi9cbiAgY29uc3RydWN0b3Ioe1xuICAgIGlkID0gJ2hleGFnb24tbGF5ZXInLFxuICAgIGRvdFJhZGl1cyA9IDEwLFxuICAgIGVsZXZhdGlvbiA9IDEwMCxcbiAgICB2ZXJ0aWNlcyxcbiAgICBnZXRDZW50cm9pZCA9IHggPT4geC5jZW50cm9pZCxcbiAgICBnZXRFbGV2YXRpb24gPSB4ID0+IHguZWxldmF0aW9uIHx8IDAsXG4gICAgZ2V0Q29sb3IgPSB4ID0+IHguY29sb3IgfHwgWzI1NSwgMCwgMF0sXG4gICAgZ2V0VmVydGljZXMgPSB4ID0+IHgudmVydGljZXMsXG4gICAgLi4ub3B0c1xuICB9ID0ge30pIHtcbiAgICBzdXBlcih7XG4gICAgICBpZCxcbiAgICAgIGRvdFJhZGl1cyxcbiAgICAgIGVsZXZhdGlvbixcbiAgICAgIHZlcnRpY2VzLFxuICAgICAgZ2V0Q2VudHJvaWQsXG4gICAgICBnZXRFbGV2YXRpb24sXG4gICAgICBnZXRDb2xvcixcbiAgICAgIGdldFZlcnRpY2VzLFxuICAgICAgLi4ub3B0c1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIGNvbnN0IHtnbCwgYXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuXG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBtb2RlbDogdGhpcy5nZXRNb2RlbChnbClcbiAgICB9KTtcblxuICAgIGF0dHJpYnV0ZU1hbmFnZXIuYWRkSW5zdGFuY2VkKEFUVFJJQlVURVMsIHtcbiAgICAgIGluc3RhbmNlUG9zaXRpb25zOiB7dXBkYXRlOiB0aGlzLmNhbGN1bGF0ZUluc3RhbmNlUG9zaXRpb25zfSxcbiAgICAgIGluc3RhbmNlRWxldmF0aW9uczoge3VwZGF0ZTogdGhpcy5jYWxjdWxhdGVJbnN0YW5jZUVsZXZhdGlvbnN9LFxuICAgICAgaW5zdGFuY2VDb2xvcnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5zdGFuY2VDb2xvcnN9XG4gICAgfSk7XG5cbiAgICB0aGlzLmNhbGN1bGF0ZVJhZGl1c0FuZEFuZ2xlKCk7XG5cbiAgICB0aGlzLnNldFVuaWZvcm1zKHtcbiAgICAgIGVsZXZhdGlvbjogdGhpcy5wcm9wcy5lbGV2YXRpb25cbiAgICB9KTtcbiAgfVxuXG4gIHdpbGxSZWNlaXZlUHJvcHMob2xkUHJvcHMsIG5ld1Byb3BzKSB7XG4gICAgc3VwZXIud2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpO1xuXG4gICAgY29uc3Qge2RhdGFDaGFuZ2VkLCB2aWV3cG9ydENoYW5nZWQsIGF0dHJpYnV0ZU1hbmFnZXJ9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGlmIChkYXRhQ2hhbmdlZCB8fCB2aWV3cG9ydENoYW5nZWQpIHtcbiAgICAgIHRoaXMuY2FsY3VsYXRlUmFkaXVzQW5kQW5nbGUoKTtcbiAgICB9XG4gICAgaWYgKGRhdGFDaGFuZ2VkKSB7XG4gICAgICBhdHRyaWJ1dGVNYW5hZ2VyLmludmFsaWRhdGVBbGwoKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFVuaWZvcm1zKHtcbiAgICAgIGVsZXZhdGlvbjogdGhpcy5wcm9wcy5lbGV2YXRpb25cbiAgICB9KTtcbiAgfVxuXG4gIGdldE1vZGVsKGdsKSB7XG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgQ3lsaW5kZXJHZW9tZXRyeSh7XG4gICAgICByYWRpdXM6IDEsXG4gICAgICB0b3BSYWRpdXM6IDEsXG4gICAgICBib3R0b21SYWRpdXM6IDEsXG4gICAgICB0b3BDYXA6IHRydWUsXG4gICAgICBib3R0b21DYXA6IHRydWUsXG4gICAgICBoZWlnaHQ6IDEsXG4gICAgICBucmFkaWFsOiA2LFxuICAgICAgbnZlcnRpY2FsOiAxXG4gICAgfSk7XG5cbiAgICAvLyBjb25zdCBOVU1fU0VHTUVOVFMgPSA2O1xuICAgIC8vIGNvbnN0IFBJMiA9IE1hdGguUEkgKiAyO1xuXG4gICAgLy8gbGV0IHZlcnRpY2VzID0gW107XG4gICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBOVU1fU0VHTUVOVFM7IGkrKykge1xuICAgIC8vICAgdmVydGljZXMgPSBbXG4gICAgLy8gICAgIC4uLnZlcnRpY2VzLFxuICAgIC8vICAgICBNYXRoLmNvcyhQSTIgKiBpIC8gTlVNX1NFR01FTlRTKSxcbiAgICAvLyAgICAgTWF0aC5zaW4oUEkyICogaSAvIE5VTV9TRUdNRU5UUyksXG4gICAgLy8gICAgIDBcbiAgICAvLyAgIF07XG4gICAgLy8gfVxuXG4gICAgLy8gY29uc3QgZ2VvbWV0cnkgPSBuZXcgR2VvbWV0cnkoe1xuICAgIC8vICAgaWQ6IHRoaXMucHJvcHMuaWQsXG4gICAgLy8gICBkcmF3TW9kZTogJ1RSSUFOR0xFX0ZBTicsXG4gICAgLy8gICB2ZXJ0aWNlczogbmV3IEZsb2F0MzJBcnJheSh2ZXJ0aWNlcylcbiAgICAvLyB9KTtcblxuICAgIHJldHVybiBuZXcgTW9kZWwoe1xuICAgICAgaWQ6IHRoaXMucHJvcHMuaWQsXG4gICAgICBwcm9ncmFtOiBuZXcgUHJvZ3JhbShnbCwge1xuICAgICAgICB2czogZ2xzbGlmeSgnLi9oZXhhZ29uLWxheWVyLXZlcnRleC5nbHNsJyksXG4gICAgICAgIGZzOiBnbHNsaWZ5KCcuL2hleGFnb24tbGF5ZXItZnJhZ21lbnQuZ2xzbCcpLFxuICAgICAgICBpZDogJ2hleGFnb24nXG4gICAgICB9KSxcbiAgICAgIGdlb21ldHJ5LFxuICAgICAgaXNJbnN0YW5jZWQ6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlUG9zaXRpb25zKGF0dHJpYnV0ZSkge1xuICAgIGNvbnN0IHtkYXRhLCBnZXRDZW50cm9pZH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgaGV4YWdvbiBvZiBkYXRhKSB7XG4gICAgICBjb25zdCBjZW50cm9pZCA9IGdldENlbnRyb2lkKGhleGFnb24pO1xuICAgICAgdmFsdWVbaSArIDBdID0gY2VudHJvaWRbMF07XG4gICAgICB2YWx1ZVtpICsgMV0gPSBjZW50cm9pZFsxXTtcbiAgICAgIGkgKz0gc2l6ZTtcbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVJbnN0YW5jZUVsZXZhdGlvbnMoYXR0cmlidXRlKSB7XG4gICAgY29uc3Qge2RhdGEsIGdldEVsZXZhdGlvbn0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt2YWx1ZSwgc2l6ZX0gPSBhdHRyaWJ1dGU7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgaGV4YWdvbiBvZiBkYXRhKSB7XG4gICAgICBjb25zdCBlbGV2YXRpb24gPSBnZXRFbGV2YXRpb24oaGV4YWdvbikgfHwgMDtcbiAgICAgIHZhbHVlW2kgKyAwXSA9IGVsZXZhdGlvbjtcbiAgICAgIGkgKz0gc2l6ZTtcbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVJbnN0YW5jZUNvbG9ycyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB7ZGF0YSwgZ2V0Q29sb3J9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7dmFsdWV9ID0gYXR0cmlidXRlO1xuICAgIGxldCBpID0gMDtcbiAgICBmb3IgKGNvbnN0IGhleGFnb24gb2YgZGF0YSkge1xuICAgICAgY29uc3QgY29sb3IgPSBnZXRDb2xvcihoZXhhZ29uKTtcbiAgICAgIHZhbHVlW2kgKyAwXSA9IGNvbG9yWzBdO1xuICAgICAgdmFsdWVbaSArIDFdID0gY29sb3JbMV07XG4gICAgICB2YWx1ZVtpICsgMl0gPSBjb2xvclsyXTtcbiAgICAgIGkgKz0gMztcbiAgICB9XG4gIH1cblxuICAvLyBUT0RPIHRoaXMgaXMgdGhlIG9ubHkgcGxhY2UgdGhhdCB1c2VzIGhleGFnb24gdmVydGljZXNcbiAgLy8gY29uc2lkZXIgbW92ZSByYWRpdXMgYW5kIGFuZ2xlIGNhbGN1bGF0aW9uIHRvIHRoZSBzaGFkZXJcbiAgY2FsY3VsYXRlUmFkaXVzQW5kQW5nbGUoKSB7XG4gICAgY29uc3Qge2RhdGEsIGdldFZlcnRpY2VzfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRWl0aGVyIGdldCB2ZXJ0aWNlcyBmcm9tIHByb3AsIG9yIGZyb20gZmlyc3QgaGV4YWdvblxuICAgIGxldCB7dmVydGljZXN9ID0gdGhpcy5wcm9wcztcbiAgICBpZiAoIXZlcnRpY2VzKSB7XG4gICAgICBjb25zdCBmaXJzdEhleGFnb24gPSB0aGlzLmdldEZpcnN0T2JqZWN0KCk7XG4gICAgICB2ZXJ0aWNlcyA9IGdldFZlcnRpY2VzKGZpcnN0SGV4YWdvbik7XG4gICAgfVxuICAgIGNvbnN0IHZlcnRleDAgPSB2ZXJ0aWNlc1swXTtcbiAgICBjb25zdCB2ZXJ0ZXgzID0gdmVydGljZXNbM107XG5cbiAgICAvLyB0cmFuc2Zvcm0gdG8gc3BhY2UgY29vcmRpbmF0ZXNcbiAgICBjb25zdCBzcGFjZUNvb3JkMCA9IHRoaXMucHJvamVjdCh7bGF0OiB2ZXJ0ZXgwWzFdLCBsb246IHZlcnRleDBbMF19KTtcbiAgICBjb25zdCBzcGFjZUNvb3JkMyA9IHRoaXMucHJvamVjdCh7bGF0OiB2ZXJ0ZXgzWzFdLCBsb246IHZlcnRleDNbMF19KTtcblxuICAgIC8vIGRpc3RhbmNlIGJldHdlZW4gdHdvIGNsb3NlIGNlbnRyb2lkc1xuICAgIGNvbnN0IGR4ID0gc3BhY2VDb29yZDAueCAtIHNwYWNlQ29vcmQzLng7XG4gICAgY29uc3QgZHkgPSBzcGFjZUNvb3JkMC55IC0gc3BhY2VDb29yZDMueTtcbiAgICBjb25zdCBkeHkgPSBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkpO1xuXG4gICAgdGhpcy5zZXRVbmlmb3Jtcyh7XG4gICAgICAvLyBDYWxjdWxhdGUgYW5nbGUgdGhhdCB0aGUgcGVycGVuZGljdWxhciBoZXhhZ29uIHZlcnRleCBheGlzIGlzIHRpbHRlZFxuICAgICAgYW5nbGU6IE1hdGguYWNvcyhkeCAvIGR4eSkgKiAtTWF0aC5zaWduKGR5KSArIE1hdGguUEkgLyAyLFxuICAgICAgLy8gQWxsb3cgdXNlciB0byBmaW5lIHR1bmUgcmFkaXVzXG4gICAgICByYWRpdXM6IGR4eSAvIDIgKiBNYXRoLm1pbigxLCB0aGlzLnByb3BzLmRvdFJhZGl1cylcbiAgICB9KTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllcnMvaGV4YWdvbi1sYXllci9oZXhhZ29uLWxheWVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFxQkE7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLElBQU0sVUFBVSxRQUFRLFNBQVIsQ0FBaEI7O0FBRUEsSUFBTSxhQUFhO0FBQ2pCLHFCQUFtQixFQUFDLE1BQU0sQ0FBUCxFQUFVLEtBQUssR0FBZixFQUFvQixLQUFLLEdBQXpCLEVBREY7QUFFakIsc0JBQW9CLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxHQUFmLEVBRkg7QUFHakIsa0JBQWdCLEVBQUMsTUFBTSxDQUFQLEVBQVUsS0FBSyxLQUFmLEVBQXNCLEtBQUssT0FBM0IsRUFBb0MsS0FBSyxNQUF6QztBQUhDLENBQW5COztBQU1BLElBQU0sZUFBZSxTQUFmLFlBQWU7QUFBQSxTQUFLLEVBQUUsUUFBUDtBQUFBLENBQXJCO0FBQ0EsSUFBTSxnQkFBZ0IsU0FBaEIsYUFBZ0I7QUFBQSxTQUFLLEVBQUUsU0FBRixJQUFlLENBQXBCO0FBQUEsQ0FBdEI7QUFDQSxJQUFNLFlBQVksU0FBWixTQUFZO0FBQUEsU0FBSyxFQUFFLEtBQUYsSUFBVyxDQUFDLEdBQUQsRUFBTSxDQUFOLEVBQVMsQ0FBVCxDQUFoQjtBQUFBLENBQWxCO0FBQ0EsSUFBTSxlQUFlLFNBQWYsWUFBZTtBQUFBLFNBQUssRUFBRSxRQUFQO0FBQUEsQ0FBckI7O0lBRXFCLFk7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY25CLDBCQVVRO0FBQUEscUVBQUosRUFBSTs7QUFBQSx1QkFUTixFQVNNO0FBQUEsUUFUTixFQVNNLDJCQVRELGVBU0M7QUFBQSw4QkFSTixTQVFNO0FBQUEsUUFSTixTQVFNLGtDQVJNLEVBUU47QUFBQSw4QkFQTixTQU9NO0FBQUEsUUFQTixTQU9NLGtDQVBNLEdBT047QUFBQSxRQU5OLFFBTU0sUUFOTixRQU1NO0FBQUEsZ0NBTE4sV0FLTTtBQUFBLFFBTE4sV0FLTSxvQ0FMUSxZQUtSO0FBQUEsaUNBSk4sWUFJTTtBQUFBLFFBSk4sWUFJTSxxQ0FKUyxhQUlUO0FBQUEsNkJBSE4sUUFHTTtBQUFBLFFBSE4sUUFHTSxpQ0FISyxTQUdMO0FBQUEsZ0NBRk4sV0FFTTtBQUFBLFFBRk4sV0FFTSxvQ0FGUSxZQUVSOztBQUFBLFFBREgsSUFDRzs7QUFBQTs7QUFBQTtBQUVKLFlBRkk7QUFHSiwwQkFISTtBQUlKLDBCQUpJO0FBS0osd0JBTEk7QUFNSiw4QkFOSTtBQU9KLGdDQVBJO0FBUUosd0JBUkk7QUFTSjtBQVRJLE9BVUQsSUFWQztBQVlQOzs7O3NDQUVpQjtBQUFBLG1CQUNlLEtBQUssS0FEcEI7QUFBQSxVQUNULEVBRFMsVUFDVCxFQURTO0FBQUEsVUFDTCxnQkFESyxVQUNMLGdCQURLOzs7QUFHaEIsV0FBSyxRQUFMLENBQWM7QUFDWixlQUFPLEtBQUssUUFBTCxDQUFjLEVBQWQ7QUFESyxPQUFkOztBQUlBLHVCQUFpQixZQUFqQixDQUE4QixVQUE5QixFQUEwQztBQUN4QywyQkFBbUIsRUFBQyxRQUFRLEtBQUssMEJBQWQsRUFEcUI7QUFFeEMsNEJBQW9CLEVBQUMsUUFBUSxLQUFLLDJCQUFkLEVBRm9CO0FBR3hDLHdCQUFnQixFQUFDLFFBQVEsS0FBSyx1QkFBZDtBQUh3QixPQUExQzs7QUFNQSxXQUFLLHVCQUFMOztBQUVBLFdBQUssV0FBTCxDQUFpQjtBQUNmLG1CQUFXLEtBQUssS0FBTCxDQUFXO0FBRFAsT0FBakI7QUFHRDs7O3FDQUVnQixRLEVBQVUsUSxFQUFVO0FBQ25DLCtGQUF1QixRQUF2QixFQUFpQyxRQUFqQzs7QUFEbUMsb0JBR3NCLEtBQUssS0FIM0I7QUFBQSxVQUc1QixXQUg0QixXQUc1QixXQUg0QjtBQUFBLFVBR2YsZUFIZSxXQUdmLGVBSGU7QUFBQSxVQUdFLGdCQUhGLFdBR0UsZ0JBSEY7OztBQUtuQyxVQUFJLGVBQWUsZUFBbkIsRUFBb0M7QUFDbEMsYUFBSyx1QkFBTDtBQUNEO0FBQ0QsVUFBSSxXQUFKLEVBQWlCO0FBQ2YseUJBQWlCLGFBQWpCO0FBQ0Q7O0FBRUQsV0FBSyxXQUFMLENBQWlCO0FBQ2YsbUJBQVcsS0FBSyxLQUFMLENBQVc7QUFEUCxPQUFqQjtBQUdEOzs7NkJBRVEsRSxFQUFJO0FBQ1gsVUFBTSxXQUFXLDJCQUFxQjtBQUNwQyxnQkFBUSxDQUQ0QjtBQUVwQyxtQkFBVyxDQUZ5QjtBQUdwQyxzQkFBYyxDQUhzQjtBQUlwQyxnQkFBUSxJQUo0QjtBQUtwQyxtQkFBVyxJQUx5QjtBQU1wQyxnQkFBUSxDQU40QjtBQU9wQyxpQkFBUyxDQVAyQjtBQVFwQyxtQkFBVztBQVJ5QixPQUFyQixDQUFqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOEJBLGFBQU8sZ0JBQVU7QUFDZixZQUFJLEtBQUssS0FBTCxDQUFXLEVBREE7QUFFZixpQkFBUyxrQkFBWSxFQUFaLEVBQWdCO0FBQ3ZCLDJ4RkFEdUI7QUFFdkIsczJDQUZ1QjtBQUd2QixjQUFJO0FBSG1CLFNBQWhCLENBRk07QUFPZiwwQkFQZTtBQVFmLHFCQUFhO0FBUkUsT0FBVixDQUFQO0FBVUQ7OzsrQ0FFMEIsUyxFQUFXO0FBQUEsbUJBQ1IsS0FBSyxLQURHO0FBQUEsVUFDN0IsSUFENkIsVUFDN0IsSUFENkI7QUFBQSxVQUN2QixXQUR1QixVQUN2QixXQUR1QjtBQUFBLFVBRTdCLEtBRjZCLEdBRWQsU0FGYyxDQUU3QixLQUY2QjtBQUFBLFVBRXRCLElBRnNCLEdBRWQsU0FGYyxDQUV0QixJQUZzQjs7QUFHcEMsVUFBSSxJQUFJLENBQVI7QUFIb0M7QUFBQTtBQUFBOztBQUFBO0FBSXBDLDZCQUFzQixJQUF0Qiw4SEFBNEI7QUFBQSxjQUFqQixPQUFpQjs7QUFDMUIsY0FBTSxXQUFXLFlBQVksT0FBWixDQUFqQjtBQUNBLGdCQUFNLElBQUksQ0FBVixJQUFlLFNBQVMsQ0FBVCxDQUFmO0FBQ0EsZ0JBQU0sSUFBSSxDQUFWLElBQWUsU0FBUyxDQUFULENBQWY7QUFDQSxlQUFLLElBQUw7QUFDRDtBQVRtQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVXJDOzs7Z0RBRTJCLFMsRUFBVztBQUFBLG9CQUNSLEtBQUssS0FERztBQUFBLFVBQzlCLElBRDhCLFdBQzlCLElBRDhCO0FBQUEsVUFDeEIsWUFEd0IsV0FDeEIsWUFEd0I7QUFBQSxVQUU5QixLQUY4QixHQUVmLFNBRmUsQ0FFOUIsS0FGOEI7QUFBQSxVQUV2QixJQUZ1QixHQUVmLFNBRmUsQ0FFdkIsSUFGdUI7O0FBR3JDLFVBQUksSUFBSSxDQUFSO0FBSHFDO0FBQUE7QUFBQTs7QUFBQTtBQUlyQyw4QkFBc0IsSUFBdEIsbUlBQTRCO0FBQUEsY0FBakIsT0FBaUI7O0FBQzFCLGNBQU0sWUFBWSxhQUFhLE9BQWIsS0FBeUIsQ0FBM0M7QUFDQSxnQkFBTSxJQUFJLENBQVYsSUFBZSxTQUFmO0FBQ0EsZUFBSyxJQUFMO0FBQ0Q7QUFSb0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVN0Qzs7OzRDQUV1QixTLEVBQVc7QUFBQSxvQkFDUixLQUFLLEtBREc7QUFBQSxVQUMxQixJQUQwQixXQUMxQixJQUQwQjtBQUFBLFVBQ3BCLFFBRG9CLFdBQ3BCLFFBRG9CO0FBQUEsVUFFMUIsS0FGMEIsR0FFakIsU0FGaUIsQ0FFMUIsS0FGMEI7O0FBR2pDLFVBQUksSUFBSSxDQUFSO0FBSGlDO0FBQUE7QUFBQTs7QUFBQTtBQUlqQyw4QkFBc0IsSUFBdEIsbUlBQTRCO0FBQUEsY0FBakIsT0FBaUI7O0FBQzFCLGNBQU0sUUFBUSxTQUFTLE9BQVQsQ0FBZDtBQUNBLGdCQUFNLElBQUksQ0FBVixJQUFlLE1BQU0sQ0FBTixDQUFmO0FBQ0EsZ0JBQU0sSUFBSSxDQUFWLElBQWUsTUFBTSxDQUFOLENBQWY7QUFDQSxnQkFBTSxJQUFJLENBQVYsSUFBZSxNQUFNLENBQU4sQ0FBZjtBQUNBLGVBQUssQ0FBTDtBQUNEO0FBVmdDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFXbEM7Ozs7Ozs7OENBSXlCO0FBQUEsb0JBQ0ksS0FBSyxLQURUO0FBQUEsVUFDakIsSUFEaUIsV0FDakIsSUFEaUI7QUFBQSxVQUNYLFdBRFcsV0FDWCxXQURXOztBQUV4QixVQUFJLENBQUMsSUFBRCxJQUFTLEtBQUssTUFBTCxLQUFnQixDQUE3QixFQUFnQztBQUM5QjtBQUNEOzs7QUFKdUIsVUFPbkIsUUFQbUIsR0FPUCxLQUFLLEtBUEUsQ0FPbkIsUUFQbUI7O0FBUXhCLFVBQUksQ0FBQyxRQUFMLEVBQWU7QUFDYixZQUFNLGVBQWUsS0FBSyxjQUFMLEVBQXJCO0FBQ0EsbUJBQVcsWUFBWSxZQUFaLENBQVg7QUFDRDtBQUNELFVBQU0sVUFBVSxTQUFTLENBQVQsQ0FBaEI7QUFDQSxVQUFNLFVBQVUsU0FBUyxDQUFULENBQWhCOzs7QUFHQSxVQUFNLGNBQWMsS0FBSyxPQUFMLENBQWEsRUFBQyxLQUFLLFFBQVEsQ0FBUixDQUFOLEVBQWtCLEtBQUssUUFBUSxDQUFSLENBQXZCLEVBQWIsQ0FBcEI7QUFDQSxVQUFNLGNBQWMsS0FBSyxPQUFMLENBQWEsRUFBQyxLQUFLLFFBQVEsQ0FBUixDQUFOLEVBQWtCLEtBQUssUUFBUSxDQUFSLENBQXZCLEVBQWIsQ0FBcEI7OztBQUdBLFVBQU0sS0FBSyxZQUFZLENBQVosR0FBZ0IsWUFBWSxDQUF2QztBQUNBLFVBQU0sS0FBSyxZQUFZLENBQVosR0FBZ0IsWUFBWSxDQUF2QztBQUNBLFVBQU0sTUFBTSxLQUFLLElBQUwsQ0FBVSxLQUFLLEVBQUwsR0FBVSxLQUFLLEVBQXpCLENBQVo7O0FBRUEsV0FBSyxXQUFMLENBQWlCOztBQUVmLGVBQU8sS0FBSyxJQUFMLENBQVUsS0FBSyxHQUFmLElBQXNCLENBQUMsS0FBSyxJQUFMLENBQVUsRUFBVixDQUF2QixHQUF1QyxLQUFLLEVBQUwsR0FBVSxDQUZ6Qzs7QUFJZixnQkFBUSxNQUFNLENBQU4sR0FBVSxLQUFLLEdBQUwsQ0FBUyxDQUFULEVBQVksS0FBSyxLQUFMLENBQVcsU0FBdkI7QUFKSCxPQUFqQjtBQU1EOzs7Ozs7a0JBMUxrQixZIiwiZmlsZSI6ImhleGFnb24tbGF5ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMTUgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xuXG5pbXBvcnQgTGF5ZXIgZnJvbSAnLi4vLi4vbGF5ZXInO1xuaW1wb3J0IHtNb2RlbCwgUHJvZ3JhbSwgQ3lsaW5kZXJHZW9tZXRyeX0gZnJvbSAnbHVtYS5nbCc7XG5jb25zdCBnbHNsaWZ5ID0gcmVxdWlyZSgnZ2xzbGlmeScpO1xuXG5jb25zdCBBVFRSSUJVVEVTID0ge1xuICBpbnN0YW5jZVBvc2l0aW9uczoge3NpemU6IDIsICcwJzogJ3gnLCAnMSc6ICd5J30sXG4gIGluc3RhbmNlRWxldmF0aW9uczoge3NpemU6IDEsICcwJzogJ3onfSxcbiAgaW5zdGFuY2VDb2xvcnM6IHtzaXplOiAzLCAnMCc6ICdyZWQnLCAnMSc6ICdncmVlbicsICcyJzogJ2JsdWUnfVxufTtcblxuY29uc3QgX2dldENlbnRyb2lkID0geCA9PiB4LmNlbnRyb2lkO1xuY29uc3QgX2dldEVsZXZhdGlvbiA9IHggPT4geC5lbGV2YXRpb24gfHwgMDtcbmNvbnN0IF9nZXRDb2xvciA9IHggPT4geC5jb2xvciB8fCBbMjU1LCAwLCAwXTtcbmNvbnN0IF9nZXRWZXJ0aWNlcyA9IHggPT4geC52ZXJ0aWNlcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGV4YWdvbkxheWVyIGV4dGVuZHMgTGF5ZXIge1xuICAvKipcbiAgICogQGNsYXNzZGVzY1xuICAgKiBIZXhhZ29uTGF5ZXJcbiAgICpcbiAgICogQGNsYXNzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRzXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRzLmRvdFJhZGl1cyAtIGhleGFnb24gcmFkaXVzXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRzLmVsZXZhdGlvbiAtIGhleGFnb24gaGVpZ2h0XG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9wdHMub25IZXhhZ29uSG92ZXJlZChpbmRleCwgZSkgLSBwb3B1cCBzZWxlY3RlZCBpbmRleFxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvcHRzLm9uSGV4YWdvbkNsaWNrZWQoaW5kZXgsIGUpIC0gcG9wdXAgc2VsZWN0ZWQgaW5kZXhcbiAgICovXG4gIGNvbnN0cnVjdG9yKHtcbiAgICBpZCA9ICdoZXhhZ29uLWxheWVyJyxcbiAgICBkb3RSYWRpdXMgPSAxMCxcbiAgICBlbGV2YXRpb24gPSAxMDAsXG4gICAgdmVydGljZXMsXG4gICAgZ2V0Q2VudHJvaWQgPSBfZ2V0Q2VudHJvaWQsXG4gICAgZ2V0RWxldmF0aW9uID0gX2dldEVsZXZhdGlvbixcbiAgICBnZXRDb2xvciA9IF9nZXRDb2xvcixcbiAgICBnZXRWZXJ0aWNlcyA9IF9nZXRWZXJ0aWNlcyxcbiAgICAuLi5vcHRzXG4gIH0gPSB7fSkge1xuICAgIHN1cGVyKHtcbiAgICAgIGlkLFxuICAgICAgZG90UmFkaXVzLFxuICAgICAgZWxldmF0aW9uLFxuICAgICAgdmVydGljZXMsXG4gICAgICBnZXRDZW50cm9pZCxcbiAgICAgIGdldEVsZXZhdGlvbixcbiAgICAgIGdldENvbG9yLFxuICAgICAgZ2V0VmVydGljZXMsXG4gICAgICAuLi5vcHRzXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgY29uc3Qge2dsLCBhdHRyaWJ1dGVNYW5hZ2VyfSA9IHRoaXMuc3RhdGU7XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIG1vZGVsOiB0aGlzLmdldE1vZGVsKGdsKVxuICAgIH0pO1xuXG4gICAgYXR0cmlidXRlTWFuYWdlci5hZGRJbnN0YW5jZWQoQVRUUklCVVRFUywge1xuICAgICAgaW5zdGFuY2VQb3NpdGlvbnM6IHt1cGRhdGU6IHRoaXMuY2FsY3VsYXRlSW5zdGFuY2VQb3NpdGlvbnN9LFxuICAgICAgaW5zdGFuY2VFbGV2YXRpb25zOiB7dXBkYXRlOiB0aGlzLmNhbGN1bGF0ZUluc3RhbmNlRWxldmF0aW9uc30sXG4gICAgICBpbnN0YW5jZUNvbG9yczoge3VwZGF0ZTogdGhpcy5jYWxjdWxhdGVJbnN0YW5jZUNvbG9yc31cbiAgICB9KTtcblxuICAgIHRoaXMuY2FsY3VsYXRlUmFkaXVzQW5kQW5nbGUoKTtcblxuICAgIHRoaXMuc2V0VW5pZm9ybXMoe1xuICAgICAgZWxldmF0aW9uOiB0aGlzLnByb3BzLmVsZXZhdGlvblxuICAgIH0pO1xuICB9XG5cbiAgd2lsbFJlY2VpdmVQcm9wcyhvbGRQcm9wcywgbmV3UHJvcHMpIHtcbiAgICBzdXBlci53aWxsUmVjZWl2ZVByb3BzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG5cbiAgICBjb25zdCB7ZGF0YUNoYW5nZWQsIHZpZXdwb3J0Q2hhbmdlZCwgYXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlO1xuXG4gICAgaWYgKGRhdGFDaGFuZ2VkIHx8IHZpZXdwb3J0Q2hhbmdlZCkge1xuICAgICAgdGhpcy5jYWxjdWxhdGVSYWRpdXNBbmRBbmdsZSgpO1xuICAgIH1cbiAgICBpZiAoZGF0YUNoYW5nZWQpIHtcbiAgICAgIGF0dHJpYnV0ZU1hbmFnZXIuaW52YWxpZGF0ZUFsbCgpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0VW5pZm9ybXMoe1xuICAgICAgZWxldmF0aW9uOiB0aGlzLnByb3BzLmVsZXZhdGlvblxuICAgIH0pO1xuICB9XG5cbiAgZ2V0TW9kZWwoZ2wpIHtcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBDeWxpbmRlckdlb21ldHJ5KHtcbiAgICAgIHJhZGl1czogMSxcbiAgICAgIHRvcFJhZGl1czogMSxcbiAgICAgIGJvdHRvbVJhZGl1czogMSxcbiAgICAgIHRvcENhcDogdHJ1ZSxcbiAgICAgIGJvdHRvbUNhcDogdHJ1ZSxcbiAgICAgIGhlaWdodDogMSxcbiAgICAgIG5yYWRpYWw6IDYsXG4gICAgICBudmVydGljYWw6IDFcbiAgICB9KTtcblxuICAgIC8vIGNvbnN0IE5VTV9TRUdNRU5UUyA9IDY7XG4gICAgLy8gY29uc3QgUEkyID0gTWF0aC5QSSAqIDI7XG5cbiAgICAvLyBsZXQgdmVydGljZXMgPSBbXTtcbiAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IE5VTV9TRUdNRU5UUzsgaSsrKSB7XG4gICAgLy8gICB2ZXJ0aWNlcyA9IFtcbiAgICAvLyAgICAgLi4udmVydGljZXMsXG4gICAgLy8gICAgIE1hdGguY29zKFBJMiAqIGkgLyBOVU1fU0VHTUVOVFMpLFxuICAgIC8vICAgICBNYXRoLnNpbihQSTIgKiBpIC8gTlVNX1NFR01FTlRTKSxcbiAgICAvLyAgICAgMFxuICAgIC8vICAgXTtcbiAgICAvLyB9XG5cbiAgICAvLyBjb25zdCBnZW9tZXRyeSA9IG5ldyBHZW9tZXRyeSh7XG4gICAgLy8gICBpZDogdGhpcy5wcm9wcy5pZCxcbiAgICAvLyAgIGRyYXdNb2RlOiAnVFJJQU5HTEVfRkFOJyxcbiAgICAvLyAgIHZlcnRpY2VzOiBuZXcgRmxvYXQzMkFycmF5KHZlcnRpY2VzKVxuICAgIC8vIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBNb2RlbCh7XG4gICAgICBpZDogdGhpcy5wcm9wcy5pZCxcbiAgICAgIHByb2dyYW06IG5ldyBQcm9ncmFtKGdsLCB7XG4gICAgICAgIHZzOiBnbHNsaWZ5KCcuL2hleGFnb24tbGF5ZXItdmVydGV4Lmdsc2wnKSxcbiAgICAgICAgZnM6IGdsc2xpZnkoJy4vaGV4YWdvbi1sYXllci1mcmFnbWVudC5nbHNsJyksXG4gICAgICAgIGlkOiAnaGV4YWdvbidcbiAgICAgIH0pLFxuICAgICAgZ2VvbWV0cnksXG4gICAgICBpc0luc3RhbmNlZDogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgY2FsY3VsYXRlSW5zdGFuY2VQb3NpdGlvbnMoYXR0cmlidXRlKSB7XG4gICAgY29uc3Qge2RhdGEsIGdldENlbnRyb2lkfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge3ZhbHVlLCBzaXplfSA9IGF0dHJpYnV0ZTtcbiAgICBsZXQgaSA9IDA7XG4gICAgZm9yIChjb25zdCBoZXhhZ29uIG9mIGRhdGEpIHtcbiAgICAgIGNvbnN0IGNlbnRyb2lkID0gZ2V0Q2VudHJvaWQoaGV4YWdvbik7XG4gICAgICB2YWx1ZVtpICsgMF0gPSBjZW50cm9pZFswXTtcbiAgICAgIHZhbHVlW2kgKyAxXSA9IGNlbnRyb2lkWzFdO1xuICAgICAgaSArPSBzaXplO1xuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlRWxldmF0aW9ucyhhdHRyaWJ1dGUpIHtcbiAgICBjb25zdCB7ZGF0YSwgZ2V0RWxldmF0aW9ufSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge3ZhbHVlLCBzaXplfSA9IGF0dHJpYnV0ZTtcbiAgICBsZXQgaSA9IDA7XG4gICAgZm9yIChjb25zdCBoZXhhZ29uIG9mIGRhdGEpIHtcbiAgICAgIGNvbnN0IGVsZXZhdGlvbiA9IGdldEVsZXZhdGlvbihoZXhhZ29uKSB8fCAwO1xuICAgICAgdmFsdWVbaSArIDBdID0gZWxldmF0aW9uO1xuICAgICAgaSArPSBzaXplO1xuICAgIH1cbiAgfVxuXG4gIGNhbGN1bGF0ZUluc3RhbmNlQ29sb3JzKGF0dHJpYnV0ZSkge1xuICAgIGNvbnN0IHtkYXRhLCBnZXRDb2xvcn0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt2YWx1ZX0gPSBhdHRyaWJ1dGU7XG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgaGV4YWdvbiBvZiBkYXRhKSB7XG4gICAgICBjb25zdCBjb2xvciA9IGdldENvbG9yKGhleGFnb24pO1xuICAgICAgdmFsdWVbaSArIDBdID0gY29sb3JbMF07XG4gICAgICB2YWx1ZVtpICsgMV0gPSBjb2xvclsxXTtcbiAgICAgIHZhbHVlW2kgKyAyXSA9IGNvbG9yWzJdO1xuICAgICAgaSArPSAzO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE8gdGhpcyBpcyB0aGUgb25seSBwbGFjZSB0aGF0IHVzZXMgaGV4YWdvbiB2ZXJ0aWNlc1xuICAvLyBjb25zaWRlciBtb3ZlIHJhZGl1cyBhbmQgYW5nbGUgY2FsY3VsYXRpb24gdG8gdGhlIHNoYWRlclxuICBjYWxjdWxhdGVSYWRpdXNBbmRBbmdsZSgpIHtcbiAgICBjb25zdCB7ZGF0YSwgZ2V0VmVydGljZXN9ID0gdGhpcy5wcm9wcztcbiAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFaXRoZXIgZ2V0IHZlcnRpY2VzIGZyb20gcHJvcCwgb3IgZnJvbSBmaXJzdCBoZXhhZ29uXG4gICAgbGV0IHt2ZXJ0aWNlc30gPSB0aGlzLnByb3BzO1xuICAgIGlmICghdmVydGljZXMpIHtcbiAgICAgIGNvbnN0IGZpcnN0SGV4YWdvbiA9IHRoaXMuZ2V0Rmlyc3RPYmplY3QoKTtcbiAgICAgIHZlcnRpY2VzID0gZ2V0VmVydGljZXMoZmlyc3RIZXhhZ29uKTtcbiAgICB9XG4gICAgY29uc3QgdmVydGV4MCA9IHZlcnRpY2VzWzBdO1xuICAgIGNvbnN0IHZlcnRleDMgPSB2ZXJ0aWNlc1szXTtcblxuICAgIC8vIHRyYW5zZm9ybSB0byBzcGFjZSBjb29yZGluYXRlc1xuICAgIGNvbnN0IHNwYWNlQ29vcmQwID0gdGhpcy5wcm9qZWN0KHtsYXQ6IHZlcnRleDBbMV0sIGxvbjogdmVydGV4MFswXX0pO1xuICAgIGNvbnN0IHNwYWNlQ29vcmQzID0gdGhpcy5wcm9qZWN0KHtsYXQ6IHZlcnRleDNbMV0sIGxvbjogdmVydGV4M1swXX0pO1xuXG4gICAgLy8gZGlzdGFuY2UgYmV0d2VlbiB0d28gY2xvc2UgY2VudHJvaWRzXG4gICAgY29uc3QgZHggPSBzcGFjZUNvb3JkMC54IC0gc3BhY2VDb29yZDMueDtcbiAgICBjb25zdCBkeSA9IHNwYWNlQ29vcmQwLnkgLSBzcGFjZUNvb3JkMy55O1xuICAgIGNvbnN0IGR4eSA9IE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7XG5cbiAgICB0aGlzLnNldFVuaWZvcm1zKHtcbiAgICAgIC8vIENhbGN1bGF0ZSBhbmdsZSB0aGF0IHRoZSBwZXJwZW5kaWN1bGFyIGhleGFnb24gdmVydGV4IGF4aXMgaXMgdGlsdGVkXG4gICAgICBhbmdsZTogTWF0aC5hY29zKGR4IC8gZHh5KSAqIC1NYXRoLnNpZ24oZHkpICsgTWF0aC5QSSAvIDIsXG4gICAgICAvLyBBbGxvdyB1c2VyIHRvIGZpbmUgdHVuZSByYWRpdXNcbiAgICAgIHJhZGl1czogZHh5IC8gMiAqIE1hdGgubWluKDEsIHRoaXMucHJvcHMuZG90UmFkaXVzKVxuICAgIH0pO1xuICB9XG59XG4iXX0=

@@ -5,3 +5,3 @@ {

"license": "MIT",
"version": "2.2.1",
"version": "2.2.2",
"keywords": [

@@ -8,0 +8,0 @@ "webgl",

@@ -274,3 +274,3 @@ // Copyright (c) 2015 Uber Technologies, Inc.

updateAttributes(props) {
const {attributeManager} = this.state;
const {attributeManager, model} = this.state;
const numInstances = this.getNumInstances(props);

@@ -285,2 +285,5 @@ // Figure out data length

});
if (model) {
model.setAttributes(attributeManager.getAttributes());
}
}

@@ -287,0 +290,0 @@

@@ -30,2 +30,5 @@ // Copyright (c) 2015 Uber Technologies, Inc.

const RED = [255, 0, 0];
const BLUE = [0, 0, 255];
export default class ArcLayer extends Layer {

@@ -41,4 +44,4 @@ /**

strokeWidth = 1,
color0 = [255, 0, 0],
color1 = [0, 0, 255],
color0 = RED,
color1 = BLUE,
...opts

@@ -45,0 +48,0 @@ } = {}) {

@@ -20,2 +20,3 @@ // Copyright (c) 2015 Uber Technologies, Inc.

// THE SOFTWARE.
/* eslint-disable func-style */

@@ -32,2 +33,7 @@ import Layer from '../../layer';

const _getCentroid = x => x.centroid;
const _getElevation = x => x.elevation || 0;
const _getColor = x => x.color || [255, 0, 0];
const _getVertices = x => x.vertices;
export default class HexagonLayer extends Layer {

@@ -52,6 +58,6 @@ /**

vertices,
getCentroid = x => x.centroid,
getElevation = x => x.elevation || 0,
getColor = x => x.color || [255, 0, 0],
getVertices = x => x.vertices,
getCentroid = _getCentroid,
getElevation = _getElevation,
getColor = _getColor,
getVertices = _getVertices,
...opts

@@ -58,0 +64,0 @@ } = {}) {

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

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

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc