@ambl-on/lcu-ambl-on-common
Advanced tools
Comparing version 0.1.298-my-atlas to 0.1.299-my-atlas
@@ -57,14 +57,16 @@ /** | ||
this.MapTitle = this.primaryMap !== undefined ? this.primaryMap.title : ''; | ||
//let locList = new Array<MapMarker>(); | ||
/** @type {?} */ | ||
let locList = new Array(); | ||
/** @type {?} */ | ||
let visLoc = this.mapService.GetLegendLocations(); | ||
console.log("setting legend to = ", visLoc); | ||
//console.log("setting legend to = ", visLoc); | ||
if (visLoc.length > 0) { | ||
locList = this.moveUndefinedToBottom(visLoc); | ||
visLoc.sort(this.compareObject); | ||
this.LocationsList = this.assignIconUrl(visLoc); | ||
this.LocationsList.sort(this.compareObject); | ||
//console.log("Locations List after sort: ", this.LocationsList); | ||
this.LocationsList = this.moveUndefinedToBottom(this.LocationsList); | ||
//console.log("Locations List after move to bottom: ", this.LocationsList); | ||
//console.log("locList = ", locList); | ||
} | ||
this.assignIconUrl(locList); | ||
//console.log("Locations List = " + this.LocationsList[0].title); | ||
//console.log("LocList: ", locList); | ||
//console.log("visLoc: ", visLoc); | ||
} | ||
@@ -84,2 +86,3 @@ /** | ||
drop(event) { | ||
console.log("drop event called"); | ||
moveItemInArray(this.LocationsList, event.previousIndex, event.currentIndex); | ||
@@ -100,4 +103,6 @@ this.giveOrder(); | ||
assignIconUrl(locList) { | ||
/** @type {?} */ | ||
let temp = new Array(); | ||
for (let i = 0; i < locList.length; i++) { | ||
for (var j = 0; j < this.iconList.length; j++) { | ||
for (let j = 0; j < this.iconList.length; j++) { | ||
if (locList[i].iconName.match(this.iconList[j].iconLookup)) { | ||
@@ -107,5 +112,5 @@ locList[i].iconUrl = this.iconList[j].iconUrl; | ||
} | ||
// let tempLoc: MapMarker = new MapMarker({title: temp.title, lat: temp.lat, lng: temp.lng, iconName: temp.iconName, iconUrl: tempIcon}); | ||
this.LocationsList.push(locList[i]); | ||
temp.push(locList[i]); | ||
} | ||
return temp; | ||
} | ||
@@ -163,2 +168,3 @@ /** | ||
locList.push(value); | ||
//console.log("pushing ", value, " to ", locList); | ||
} | ||
@@ -228,2 +234,2 @@ else { | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhbWJsLW9uL2xjdS1hbWJsLW9uLWNvbW1vbi8iLCJzb3VyY2VzIjpbImxpYi9jb250cm9scy9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBVXpFLE1BQU0sT0FBTyxlQUFlOzs7Ozs7SUE2QjFCLFlBQXNCLFVBQXNCLEVBQVksY0FBa0M7UUFBcEUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFZLG1CQUFjLEdBQWQsY0FBYyxDQUFvQjs7Ozs7UUF0QmhGLGVBQVUsR0FBa0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQzs7OztRQUs1RCxhQUFRLEdBQXNCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7Ozs7O1FBWWpFLGtCQUFhLEdBQXFCLElBQUksS0FBSyxFQUFhLENBQUM7UUFNOUQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Ozs7O0lBSUQsUUFBUTtJQUNSLENBQUM7Ozs7OztJQWNNLEtBQUssQ0FBQyxNQUFpQjtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLG9EQUFvRDtJQUN0RCxDQUFDOzs7O0lBVU0sZUFBZTtRQUNwQixnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDLGFB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WUFDL0MsYUFBYSxHQUFHLElBQUksS0FBSyxFQUFhOztZQUN0QyxPQUFPLEdBQUcsSUFBSSxLQUFLLEVBQWE7UUFFcEMsSUFBSSxDQUFDLE9BQU87Ozs7UUFBQyxVQUFVLEtBQUs7WUFDMUIsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRTtnQkFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNyQjtpQkFDSTtnQkFDSCxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzNCO1lBQ0QscUVBQXFFO1FBQ3ZFLENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxhQUFhLEVBQUU7WUFDakIsYUFBYSxDQUFDLE9BQU87Ozs7WUFBQyxVQUFVLEtBQUs7Z0JBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsQ0FBQyxFQUFDLENBQUE7U0FDSDtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7OztZQWxMRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLHN6QkFBc0M7O2FBRXZDOzs7O1lBVFEsVUFBVTtZQUNWLGtCQUFrQjs7Ozs7Ozs7SUFpQnpCLHFDQUFzRTs7Ozs7O0lBS3RFLG1DQUF3RTs7Ozs7SUFLeEUsbUNBQXdCOzs7OztJQU94Qix3Q0FBZ0U7Ozs7O0lBS3BELHFDQUFnQzs7Ozs7SUFBRSx5Q0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxNYXAsIE1hcmtlckluZm8sIE1hcE1hcmtlciB9IGZyb20gJ0Bsb3djb2RldW5pdC9sY3UtbWFwLWNvbW1vbic7XHJcbmltcG9ydCB7IE1hcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbXBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbXAuc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsY3UtbGVnZW5kJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGVnZW5kLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sZWdlbmQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIExlZ2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vUFJPUEVSVElFU1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgcHJpbWFyeSBtYXAgbG9jYXRpb25zXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHByaW1hcnlNYXA6IEluZGl2aWR1YWxNYXAgPSB0aGlzLm1hcFNlcnZpY2UuR2V0UHJpbWFyeU1hcCgpO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgTWFya2VySW5mbyB3aGVyZSB0aGUgaWNvbiB1cmwgY2FuIGJlIHJlZnJlbmNlZFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBpY29uTGlzdDogQXJyYXk8TWFya2VySW5mbz4gPSB0aGlzLm1hcFNlcnZpY2UuR2V0TWFya2VyTGlzdCgpO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgVGl0bGUgb2YgdGhlIG1hcCB3aGljaCBpcyBkaXNwbGF5ZWQgYXQgdGhlIHRvcCBvZiB0aGUgTGVnZW5kIFxyXG4gICAqL1xyXG4gIHB1YmxpYyBNYXBUaXRsZTogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgTGlzdCBvZiBsb2NhdGlvbnMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgbGVnZW5kXHJcbiAgICovXHJcbiAgLy9wdWJsaWMgTG9jYXRpb25zTGlzdDogQXJyYXk8TG9jYXRpb25MaXN0TW9kZWw+ID0gbmV3IEFycmF5PExvY2F0aW9uTGlzdE1vZGVsPigpO1xyXG5cclxuICBwdWJsaWMgTG9jYXRpb25zTGlzdDogQXJyYXk8TWFwTWFya2VyPiA9IG5ldyBBcnJheTxNYXBNYXJrZXI+KCk7XHJcblxyXG5cclxuICAvL0NPTlNUUlVDVE9SXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBtYXBTZXJ2aWNlOiBNYXBTZXJ2aWNlLCBwcm90ZWN0ZWQgc3RvcmFnZVNlcnZpY2U6IFRlbXBTdG9yYWdlU2VydmljZSkge1xyXG4gICAgdGhpcy5TZXRMb2NhdGlvbkxpc3QoKTtcclxuICB9XHJcblxyXG4gIC8vTElGRSBDWUNMRVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIGxhdCBUaGUgbGF0aXR1ZGUgdG8gcGFuIHRvXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGxvbmcgVGhlIGxvbmdpdHVkZSB0byBwYW4gdG9cclxuICAgKiBcclxuICAgKiBDYWxscyBmdW5jdGlvbiBvbiBtYXAgc2VydmljZSB0aGF0IGVtaXRzIGV2ZW50IHdpdGggdGhlIGdpdmVuIGxhdC9sbmdcclxuICAgKi9cclxuXHJcbiAgLy9BUEkgTUVUSE9EU1xyXG5cclxuICBwdWJsaWMgUGFuVG8obWFya2VyOiBNYXBNYXJrZXIpIHtcclxuICAgIHRoaXMubWFwU2VydmljZS5DaGFuZ2VMYXRMbmcobWFya2VyLmxhdCwgbWFya2VyLmxuZyk7XHJcbiAgICB0aGlzLm1hcFNlcnZpY2UuRGlzcGxheUJhc2ljSW5mbyhtYXJrZXIpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhcIk1hcmtlciBpbiBsZWdlbmQgPSBcIiArIG1hcmtlci50aXRsZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIG1hcCB0aGUgbWFwIGNvbmZpZyB0aGF0IGlzIHBhc3NlZCBpblxyXG4gICAqIFxyXG4gICAqIHRoaXMgZnVuY3Rpb24gbG9vcHMgdGhyb3VnaCB0aGUgbWFwIGNvZmlnIGFuZCBmaWxscyB0aGUgTG9jYXRpb25zTGlzdFxyXG4gICAqIFxyXG4gICAqICh0aGlzIGlzIHdoYXQgaXMgZGlzcGxheWVkIG9uIHRoZSBkcm9wIGRvd24pXHJcbiAgICovXHJcbiAgcHVibGljIFNldExvY2F0aW9uTGlzdCgpIHtcclxuICAgIC8vc2V0IHRvIG5ldyBzbyBubyBkdXBsaWNhdGVzIHByZXNlbnQgdGhlbXNlbHZlc1xyXG4gICAgdGhpcy5Mb2NhdGlvbnNMaXN0ID0gbmV3IEFycmF5PE1hcE1hcmtlcj4oKTtcclxuICAgIHRoaXMuTWFwVGl0bGUgPSB0aGlzLnByaW1hcnlNYXAgIT09IHVuZGVmaW5lZCA/IHRoaXMucHJpbWFyeU1hcC50aXRsZSA6ICcnO1xyXG4gICAgbGV0IGxvY0xpc3QgPSBuZXcgQXJyYXk8TWFwTWFya2VyPigpO1xyXG4gICAgIGxldCB2aXNMb2MgPSB0aGlzLm1hcFNlcnZpY2UuR2V0TGVnZW5kTG9jYXRpb25zKCk7XHJcbiAgICAgY29uc29sZS5sb2coXCJzZXR0aW5nIGxlZ2VuZCB0byA9IFwiLCB2aXNMb2MpO1xyXG4gICAgaWYgKHZpc0xvYy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxvY0xpc3QgPSB0aGlzLm1vdmVVbmRlZmluZWRUb0JvdHRvbSh2aXNMb2MpO1xyXG4gICAgICB2aXNMb2Muc29ydCh0aGlzLmNvbXBhcmVPYmplY3QpO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKFwibG9jTGlzdCA9IFwiLCBsb2NMaXN0KTtcclxuICAgIH1cclxuICAgIHRoaXMuYXNzaWduSWNvblVybChsb2NMaXN0KTtcclxuICAgIC8vY29uc29sZS5sb2coXCJMb2NhdGlvbnMgTGlzdCA9IFwiICsgdGhpcy5Mb2NhdGlvbnNMaXN0WzBdLnRpdGxlKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBAcGFyYW0gZXZlbnQgXHJcbiAgICogXHJcbiAgICogVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBkcmFnIGFuZCBkcm9wIHRvIHJlZmxlY3QgdGhlIGNoYW5nZXNcclxuICAgKiBcclxuICAgKiBUT0RPOiBUaGlzIGRvZXMgbm90IGFjdHVhbGx5IHNhdmUgdGhlIG5ldyBhcnJheSB0byBtZW1vcnksIHNvIHVwb24gcmVmcmVzaFxyXG4gICAqIFxyXG4gICAqIGl0IHdpbGwgZ28gYmFjayB0byB0aGUgb3JpZ2luYWwgb3JkZXIuXHJcbiAgICogXHJcbiAgICogVXBkYXRlVmlzaWJsZUxvY2F0aW9ucyBhc3NpZ25zIHRoZSBuZXdseSBvcmRlcmVkIExvY2F0aW9uc0xpc3QgdG8gdGhlIFZpc2libGVMb2NhdGlvbnMgaW4gbWFwU2VydmljZVxyXG4gICAqL1xyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuTG9jYXRpb25zTGlzdCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIHRoaXMuZ2l2ZU9yZGVyKCk7XHJcbiAgICB0aGlzLm1hcFNlcnZpY2UuU2F2ZUxlZ2VuZExvY2F0aW9ucyh0aGlzLkxvY2F0aW9uc0xpc3QpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vSEVMUEVSU1xyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBsb2NMaXN0IGFuIGFycmF5IG9mIHRoZSBtYXBNYXJrZXJzXHJcbiAgICogXHJcbiAgICogbG9vcCBpIGdldHMgdGhlIG1hcE1hcmtlclxyXG4gICAqIFxyXG4gICAqIGxvb3AgaiBsb29wcyB0aHJvdWdoIHRoZSB0aGUgaWNvbiBsaXN0IHRvIG1hdGNoIHRoZSBpY29uTmFtZSB0byB0aGUgaWNvblVybFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBhc3NpZ25JY29uVXJsKGxvY0xpc3Q6IEFycmF5PE1hcE1hcmtlcj4pIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbG9jTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRoaXMuaWNvbkxpc3QubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICBpZiAobG9jTGlzdFtpXS5pY29uTmFtZS5tYXRjaCh0aGlzLmljb25MaXN0W2pdLmljb25Mb29rdXApKSB7XHJcbiAgICAgICAgICBsb2NMaXN0W2ldLmljb25VcmwgPSB0aGlzLmljb25MaXN0W2pdLmljb25Vcmw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIGxldCB0ZW1wTG9jOiBNYXBNYXJrZXIgPSBuZXcgTWFwTWFya2VyKHt0aXRsZTogdGVtcC50aXRsZSwgbGF0OiB0ZW1wLmxhdCwgbG5nOiB0ZW1wLmxuZywgaWNvbk5hbWU6IHRlbXAuaWNvbk5hbWUsIGljb25Vcmw6IHRlbXBJY29ufSk7XHJcbiAgICAgIHRoaXMuTG9jYXRpb25zTGlzdC5wdXNoKGxvY0xpc3RbaV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2l2ZXMgb3JkZXIgdG8gdGhlIE1hcE1hcmtlcnMgYmFzZWQgb24gaG93IHRoZSB1c2VyIG9yZGVycyB0aGUgbGVnZW5kXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdpdmVPcmRlcigpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5Mb2NhdGlvbnNMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHRoaXMuTG9jYXRpb25zTGlzdFtpXS5vcmRlckluZGV4ID0gaTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNvbXBhcmVzIGFuZCBzb3J0cyB0aGUgb2JqZWN0cyBiYXNlZCBvbiBvcmRlckluZGV4IFxyXG4gICAqIFxyXG4gICAqIGlmIHRoZSBpbmRleGVzIGFyZSB0aGUgc2FtZSB0aGVuIGl0IGNvbXBhcmVzIGJhc2VkIG9uIHRpdGxlIHNvIGl0IGlzIGFscGhhYmV0aWNhbCBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgY29tcGFyZU9iamVjdChvYmoxLCBvYmoyKXtcclxuICAgIGlmKG9iajEub3JkZXJJbmRleCA+IG9iajIub3JkZXJJbmRleClcclxuICAgICAgICByZXR1cm4gMTtcclxuICAgIGlmKG9iajEub3JkZXJJbmRleCA8IG9iajIub3JkZXJJbmRleClcclxuICAgICAgICByZXR1cm4gLTE7XHJcblxyXG4gICAgLy8gb2JqMS5vcmRlckluZGV4ID09IG9iajIub3JkZXJJbmRleFxyXG5cclxuICAgIGlmKG9iajEudGl0bGUgPiBvYmoyLnRpdGxlKVxyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgaWYob2JqMS50aXRsZSA8IG9iajIudGl0bGUpXHJcbiAgICAgICAgcmV0dXJuIC0xO1xyXG5cclxuICAgIHJldHVybiAwO1xyXG59XHJcbi8qKlxyXG4gKiB3aXRob3V0IHRoaXMgdGhlIE1hcE1hcmtlciBvYmplY3RzIHRoYXQgaGF2ZSBhbiB1bmRlZmluZWQgaW5kZXhPcmRlciBhcmUgcHV0IGF0IHRoZSB0b3BcclxuICogXHJcbiAqIHRoaXMgbWV0aG9kIHNldHMgdGhlIHVuZGVmaW5lZCBpbmRleE9yZGVyIGFzaWRlIGFuZCBhcHBlbmRzIHRoZW0gdG8gdGhlIGVuZCBvZiB0aGUgYXJyYXkvbGVnZW5kXHJcbiAqL1xyXG4gIHByb3RlY3RlZCBtb3ZlVW5kZWZpbmVkVG9Cb3R0b20obGlzdDpBcnJheTxNYXBNYXJrZXI+KSB7XHJcbiAgICBsZXQgdW5kZWZpbmVkTGlzdCA9IG5ldyBBcnJheTxNYXBNYXJrZXI+KCk7XHJcbiAgICBsZXQgbG9jTGlzdCA9IG5ldyBBcnJheTxNYXBNYXJrZXI+KCk7XHJcblxyXG4gICAgbGlzdC5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUub3JkZXJJbmRleCA+PSAwKSB7XHJcbiAgICAgICAgbG9jTGlzdC5wdXNoKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB1bmRlZmluZWRMaXN0LnB1c2godmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJPcmRlciA9IFwiLCB2YWx1ZS5vcmRlckluZGV4LCBcIlRpdGxlID0gXCIsIHZhbHVlLnRpdGxlKTtcclxuICAgIH0pO1xyXG4gICAgaWYgKHVuZGVmaW5lZExpc3QpIHtcclxuICAgICAgdW5kZWZpbmVkTGlzdC5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgICAgIGxvY0xpc3QucHVzaCh2YWx1ZSk7XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICByZXR1cm4gbG9jTGlzdDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhbWJsLW9uL2xjdS1hbWJsLW9uLWNvbW1vbi8iLCJzb3VyY2VzIjpbImxpYi9jb250cm9scy9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBVXpFLE1BQU0sT0FBTyxlQUFlOzs7Ozs7SUE2QjFCLFlBQXNCLFVBQXNCLEVBQVksY0FBa0M7UUFBcEUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFZLG1CQUFjLEdBQWQsY0FBYyxDQUFvQjs7Ozs7UUF0QmhGLGVBQVUsR0FBa0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQzs7OztRQUs1RCxhQUFRLEdBQXNCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7Ozs7O1FBWWpFLGtCQUFhLEdBQXFCLElBQUksS0FBSyxFQUFhLENBQUM7UUFNOUQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Ozs7O0lBSUQsUUFBUTtJQUNSLENBQUM7Ozs7OztJQWNNLEtBQUssQ0FBQyxNQUFpQjtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLG9EQUFvRDtJQUN0RCxDQUFDOzs7O0lBVU0sZUFBZTtRQUNwQixnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDLGFB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QUs7WUFDekIsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUVaLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7Ozs7Ozs7O0lBTVMscUJBQXFCLENBQUMsSUFBc0I7O1lBQ2hELGFBQWEsR0FBRyxJQUFJLEtBQUssRUFBYTs7WUFDdEMsT0FBTyxHQUFHLElBQUksS0FBSyxFQUFhO1FBRXBDLElBQUksQ0FBQyxPQUFPOzs7O1FBQUMsVUFBVSxLQUFLO1lBQzFCLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BCLGtEQUFrRDthQUNuRDtpQkFDSTtnQkFDSCxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzNCO1lBQ0QscUVBQXFFO1FBQ3ZFLENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxhQUFhLEVBQUU7WUFDakIsYUFBYSxDQUFDLE9BQU87Ozs7WUFBQyxVQUFVLEtBQUs7Z0JBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsQ0FBQyxFQUFDLENBQUE7U0FDSDtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7OztZQTVMRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLHN6QkFBc0M7O2FBRXZDOzs7O1lBVFEsVUFBVTtZQUNWLGtCQUFrQjs7Ozs7Ozs7SUFpQnpCLHFDQUFzRTs7Ozs7O0lBS3RFLG1DQUF3RTs7Ozs7SUFLeEUsbUNBQXdCOzs7OztJQU94Qix3Q0FBZ0U7Ozs7O0lBS3BELHFDQUFnQzs7Ozs7SUFBRSx5Q0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxNYXAsIE1hcmtlckluZm8sIE1hcE1hcmtlciB9IGZyb20gJ0Bsb3djb2RldW5pdC9sY3UtbWFwLWNvbW1vbic7XHJcbmltcG9ydCB7IE1hcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbXBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbXAuc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsY3UtbGVnZW5kJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGVnZW5kLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sZWdlbmQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIExlZ2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vUFJPUEVSVElFU1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgcHJpbWFyeSBtYXAgbG9jYXRpb25zXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHByaW1hcnlNYXA6IEluZGl2aWR1YWxNYXAgPSB0aGlzLm1hcFNlcnZpY2UuR2V0UHJpbWFyeU1hcCgpO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgTWFya2VySW5mbyB3aGVyZSB0aGUgaWNvbiB1cmwgY2FuIGJlIHJlZnJlbmNlZFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBpY29uTGlzdDogQXJyYXk8TWFya2VySW5mbz4gPSB0aGlzLm1hcFNlcnZpY2UuR2V0TWFya2VyTGlzdCgpO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgVGl0bGUgb2YgdGhlIG1hcCB3aGljaCBpcyBkaXNwbGF5ZWQgYXQgdGhlIHRvcCBvZiB0aGUgTGVnZW5kIFxyXG4gICAqL1xyXG4gIHB1YmxpYyBNYXBUaXRsZTogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgTGlzdCBvZiBsb2NhdGlvbnMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgbGVnZW5kXHJcbiAgICovXHJcbiAgLy9wdWJsaWMgTG9jYXRpb25zTGlzdDogQXJyYXk8TG9jYXRpb25MaXN0TW9kZWw+ID0gbmV3IEFycmF5PExvY2F0aW9uTGlzdE1vZGVsPigpO1xyXG5cclxuICBwdWJsaWMgTG9jYXRpb25zTGlzdDogQXJyYXk8TWFwTWFya2VyPiA9IG5ldyBBcnJheTxNYXBNYXJrZXI+KCk7XHJcblxyXG5cclxuICAvL0NPTlNUUlVDVE9SXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBtYXBTZXJ2aWNlOiBNYXBTZXJ2aWNlLCBwcm90ZWN0ZWQgc3RvcmFnZVNlcnZpY2U6IFRlbXBTdG9yYWdlU2VydmljZSkge1xyXG4gICAgdGhpcy5TZXRMb2NhdGlvbkxpc3QoKTtcclxuICB9XHJcblxyXG4gIC8vTElGRSBDWUNMRVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIGxhdCBUaGUgbGF0aXR1ZGUgdG8gcGFuIHRvXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGxvbmcgVGhlIGxvbmdpdHVkZSB0byBwYW4gdG9cclxuICAgKiBcclxuICAgKiBDYWxscyBmdW5jdGlvbiBvbiBtYXAgc2VydmljZSB0aGF0IGVtaXRzIGV2ZW50IHdpdGggdGhlIGdpdmVuIGxhdC9sbmdcclxuICAgKi9cclxuXHJcbiAgLy9BUEkgTUVUSE9EU1xyXG5cclxuICBwdWJsaWMgUGFuVG8obWFya2VyOiBNYXBNYXJrZXIpIHtcclxuICAgIHRoaXMubWFwU2VydmljZS5DaGFuZ2VMYXRMbmcobWFya2VyLmxhdCwgbWFya2VyLmxuZyk7XHJcbiAgICB0aGlzLm1hcFNlcnZpY2UuRGlzcGxheUJhc2ljSW5mbyhtYXJrZXIpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhcIk1hcmtlciBpbiBsZWdlbmQgPSBcIiArIG1hcmtlci50aXRsZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIG1hcCB0aGUgbWFwIGNvbmZpZyB0aGF0IGlzIHBhc3NlZCBpblxyXG4gICAqIFxyXG4gICAqIHRoaXMgZnVuY3Rpb24gbG9vcHMgdGhyb3VnaCB0aGUgbWFwIGNvZmlnIGFuZCBmaWxscyB0aGUgTG9jYXRpb25zTGlzdFxyXG4gICAqIFxyXG4gICAqICh0aGlzIGlzIHdoYXQgaXMgZGlzcGxheWVkIG9uIHRoZSBkcm9wIGRvd24pXHJcbiAgICovXHJcbiAgcHVibGljIFNldExvY2F0aW9uTGlzdCgpIHtcclxuICAgIC8vc2V0IHRvIG5ldyBzbyBubyBkdXBsaWNhdGVzIHByZXNlbnQgdGhlbXNlbHZlc1xyXG4gICAgdGhpcy5Mb2NhdGlvbnNMaXN0ID0gbmV3IEFycmF5PE1hcE1hcmtlcj4oKTtcclxuICAgIHRoaXMuTWFwVGl0bGUgPSB0aGlzLnByaW1hcnlNYXAgIT09IHVuZGVmaW5lZCA/IHRoaXMucHJpbWFyeU1hcC50aXRsZSA6ICcnO1xyXG4gICAgLy9sZXQgbG9jTGlzdCA9IG5ldyBBcnJheTxNYXBNYXJrZXI+KCk7XHJcbiAgICBsZXQgdmlzTG9jID0gdGhpcy5tYXBTZXJ2aWNlLkdldExlZ2VuZExvY2F0aW9ucygpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhcInNldHRpbmcgbGVnZW5kIHRvID0gXCIsIHZpc0xvYyk7XHJcbiAgICBpZiAodmlzTG9jLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5Mb2NhdGlvbnNMaXN0ID0gdGhpcy5hc3NpZ25JY29uVXJsKHZpc0xvYyk7XHJcbiAgICAgIHRoaXMuTG9jYXRpb25zTGlzdC5zb3J0KHRoaXMuY29tcGFyZU9iamVjdCk7XHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJMb2NhdGlvbnMgTGlzdCBhZnRlciBzb3J0OiBcIiwgdGhpcy5Mb2NhdGlvbnNMaXN0KTtcclxuXHJcbiAgICAgIHRoaXMuTG9jYXRpb25zTGlzdCA9IHRoaXMubW92ZVVuZGVmaW5lZFRvQm90dG9tKHRoaXMuTG9jYXRpb25zTGlzdCk7XHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJMb2NhdGlvbnMgTGlzdCBhZnRlciBtb3ZlIHRvIGJvdHRvbTogXCIsIHRoaXMuTG9jYXRpb25zTGlzdCk7XHJcblxyXG5cclxuXHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJsb2NMaXN0ID0gXCIsIGxvY0xpc3QpO1xyXG4gICAgfVxyXG4gICAgLy9jb25zb2xlLmxvZyhcIkxvY0xpc3Q6IFwiLCBsb2NMaXN0KTtcclxuICAgIC8vY29uc29sZS5sb2coXCJ2aXNMb2M6IFwiLCB2aXNMb2MpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBldmVudCBcclxuICAgKiBcclxuICAgKiBUaGlzIGlzIG5lZWRlZCBmb3IgdGhlIGRyYWcgYW5kIGRyb3AgdG8gcmVmbGVjdCB0aGUgY2hhbmdlc1xyXG4gICAqIFxyXG4gICAqIFRPRE86IFRoaXMgZG9lcyBub3QgYWN0dWFsbHkgc2F2ZSB0aGUgbmV3IGFycmF5IHRvIG1lbW9yeSwgc28gdXBvbiByZWZyZXNoXHJcbiAgICogXHJcbiAgICogaXQgd2lsbCBnbyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBvcmRlci5cclxuICAgKiBcclxuICAgKiBVcGRhdGVWaXNpYmxlTG9jYXRpb25zIGFzc2lnbnMgdGhlIG5ld2x5IG9yZGVyZWQgTG9jYXRpb25zTGlzdCB0byB0aGUgVmlzaWJsZUxvY2F0aW9ucyBpbiBtYXBTZXJ2aWNlXHJcbiAgICovXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcImRyb3AgZXZlbnQgY2FsbGVkXCIpO1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuTG9jYXRpb25zTGlzdCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIHRoaXMuZ2l2ZU9yZGVyKCk7XHJcbiAgICB0aGlzLm1hcFNlcnZpY2UuU2F2ZUxlZ2VuZExvY2F0aW9ucyh0aGlzLkxvY2F0aW9uc0xpc3QpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vSEVMUEVSU1xyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBsb2NMaXN0IGFuIGFycmF5IG9mIHRoZSBtYXBNYXJrZXJzXHJcbiAgICogXHJcbiAgICogbG9vcCBpIGdldHMgdGhlIG1hcE1hcmtlclxyXG4gICAqIFxyXG4gICAqIGxvb3AgaiBsb29wcyB0aHJvdWdoIHRoZSB0aGUgaWNvbiBsaXN0IHRvIG1hdGNoIHRoZSBpY29uTmFtZSB0byB0aGUgaWNvblVybFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBhc3NpZ25JY29uVXJsKGxvY0xpc3Q6IEFycmF5PE1hcE1hcmtlcj4pIHtcclxuICAgIGxldCB0ZW1wOiBBcnJheTxNYXBNYXJrZXI+ID0gbmV3IEFycmF5PE1hcE1hcmtlcj4oKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbG9jTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuaWNvbkxpc3QubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICBpZiAobG9jTGlzdFtpXS5pY29uTmFtZS5tYXRjaCh0aGlzLmljb25MaXN0W2pdLmljb25Mb29rdXApKSB7XHJcbiAgICAgICAgICBsb2NMaXN0W2ldLmljb25VcmwgPSB0aGlzLmljb25MaXN0W2pdLmljb25Vcmw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRlbXAucHVzaChsb2NMaXN0W2ldKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0ZW1wO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2l2ZXMgb3JkZXIgdG8gdGhlIE1hcE1hcmtlcnMgYmFzZWQgb24gaG93IHRoZSB1c2VyIG9yZGVycyB0aGUgbGVnZW5kXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdpdmVPcmRlcigpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5Mb2NhdGlvbnNMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHRoaXMuTG9jYXRpb25zTGlzdFtpXS5vcmRlckluZGV4ID0gaTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNvbXBhcmVzIGFuZCBzb3J0cyB0aGUgb2JqZWN0cyBiYXNlZCBvbiBvcmRlckluZGV4IFxyXG4gICAqIFxyXG4gICAqIGlmIHRoZSBpbmRleGVzIGFyZSB0aGUgc2FtZSB0aGVuIGl0IGNvbXBhcmVzIGJhc2VkIG9uIHRpdGxlIHNvIGl0IGlzIGFscGhhYmV0aWNhbCBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgY29tcGFyZU9iamVjdChvYmoxLCBvYmoyKSB7XHJcbiAgICBpZiAob2JqMS5vcmRlckluZGV4ID4gb2JqMi5vcmRlckluZGV4KVxyXG4gICAgICByZXR1cm4gMTtcclxuICAgIGlmIChvYmoxLm9yZGVySW5kZXggPCBvYmoyLm9yZGVySW5kZXgpXHJcbiAgICAgIHJldHVybiAtMTtcclxuXHJcbiAgICAvLyBvYmoxLm9yZGVySW5kZXggPT0gb2JqMi5vcmRlckluZGV4XHJcblxyXG4gICAgaWYgKG9iajEudGl0bGUgPiBvYmoyLnRpdGxlKVxyXG4gICAgICByZXR1cm4gMTtcclxuICAgIGlmIChvYmoxLnRpdGxlIDwgb2JqMi50aXRsZSlcclxuICAgICAgcmV0dXJuIC0xO1xyXG5cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICAvKipcclxuICAgKiB3aXRob3V0IHRoaXMgdGhlIE1hcE1hcmtlciBvYmplY3RzIHRoYXQgaGF2ZSBhbiB1bmRlZmluZWQgaW5kZXhPcmRlciBhcmUgcHV0IGF0IHRoZSB0b3BcclxuICAgKiBcclxuICAgKiB0aGlzIG1ldGhvZCBzZXRzIHRoZSB1bmRlZmluZWQgaW5kZXhPcmRlciBhc2lkZSBhbmQgYXBwZW5kcyB0aGVtIHRvIHRoZSBlbmQgb2YgdGhlIGFycmF5L2xlZ2VuZFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBtb3ZlVW5kZWZpbmVkVG9Cb3R0b20obGlzdDogQXJyYXk8TWFwTWFya2VyPikge1xyXG4gICAgbGV0IHVuZGVmaW5lZExpc3QgPSBuZXcgQXJyYXk8TWFwTWFya2VyPigpO1xyXG4gICAgbGV0IGxvY0xpc3QgPSBuZXcgQXJyYXk8TWFwTWFya2VyPigpO1xyXG5cclxuICAgIGxpc3QuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlLm9yZGVySW5kZXggPj0gMCkge1xyXG4gICAgICAgIGxvY0xpc3QucHVzaCh2YWx1ZSk7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcInB1c2hpbmcgXCIsIHZhbHVlLCBcIiB0byBcIiwgbG9jTGlzdCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdW5kZWZpbmVkTGlzdC5wdXNoKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICAvL2NvbnNvbGUubG9nKFwiT3JkZXIgPSBcIiwgdmFsdWUub3JkZXJJbmRleCwgXCJUaXRsZSA9IFwiLCB2YWx1ZS50aXRsZSk7XHJcbiAgICB9KTtcclxuICAgIGlmICh1bmRlZmluZWRMaXN0KSB7XHJcbiAgICAgIHVuZGVmaW5lZExpc3QuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICBsb2NMaXN0LnB1c2godmFsdWUpO1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxvY0xpc3Q7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0= |
@@ -151,3 +151,3 @@ /** | ||
this.VisibleLocations = list; | ||
console.log("visible locations updated: ", list); | ||
//console.log("visible locations updated: ", list); | ||
if (this.VisibleLocations.length > 0) { | ||
@@ -198,3 +198,3 @@ this.UpdateLegendLocations(this.VisibleLocations); | ||
let temp = new Array(); | ||
console.log("master list length", this.tempStorage.GetMasterLocationLegend().length); | ||
//console.log("master list length",this.tempStorage.GetMasterLocationLegend().length); | ||
if (this.tempStorage.GetMasterLocationLegend().length === 0) { | ||
@@ -204,12 +204,13 @@ this.LegendLocations = this.VisibleLocations; | ||
else { | ||
list = this.CheckForDuplicates(list); | ||
for (let i = 0; i < list.length; i++) { | ||
/** @type {?} */ | ||
let tempMarker = this.tempStorage.GetLocationById(list[i].id); | ||
console.log("tempMarker = ", tempMarker); | ||
// console.log("tempMarker = ", tempMarker); | ||
if (tempMarker) { | ||
console.log("pushing in if"); | ||
//console.log("pushing in if"); | ||
temp.push(tempMarker); | ||
} | ||
else { | ||
console.log("pushing in else"); | ||
//console.log("pushing in else"); | ||
temp.push(list[i]); | ||
@@ -222,2 +223,45 @@ } | ||
/** | ||
* @param {?} list | ||
* @return {?} | ||
*/ | ||
CheckForDuplicates(list) { | ||
/** @type {?} */ | ||
let temp = new Array(); | ||
/** @type {?} */ | ||
let ids = list.map((/** | ||
* @param {?} item | ||
* @return {?} | ||
*/ | ||
function (item) { | ||
return item.id; | ||
})); | ||
/** @type {?} */ | ||
let idsUnique = ids.filter((/** | ||
* @param {?} item | ||
* @param {?} index | ||
* @return {?} | ||
*/ | ||
function (item, index) { | ||
return ids.indexOf(item) >= index; | ||
})); | ||
for (let i = 0; i < idsUnique.length; i++) { | ||
/** @type {?} */ | ||
let tempMarker = this.tempStorage.GetLocationById(idsUnique[i]); | ||
//if its in the masterlist | ||
if (tempMarker) { | ||
temp.push(tempMarker); | ||
} | ||
//if its not in the masterlist | ||
else { | ||
temp.push(list.filter((/** | ||
* @param {?} item | ||
* @return {?} | ||
*/ | ||
item => item.id === idsUnique[i]))[0]); | ||
} | ||
} | ||
//console.log("Checked for duplicates", temp); | ||
return temp; | ||
} | ||
/** | ||
* | ||
@@ -400,2 +444,2 @@ * @param {?} list saves the legend to local storage | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbWFwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUsxRCxNQUFNLE9BQU8sVUFBVTs7Ozs7O0lBaURyQixZQUFzQixXQUErQixFQUFZLFNBQXlCO1FBQXBFLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWdCOzs7OztRQTlCbkYsZ0JBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUM7Ozs7UUFVcEcsa0JBQWEsR0FBc0IsSUFBSSxPQUFPLEVBQVksQ0FBQztRQUUzRCwyQkFBc0IsR0FBdUIsSUFBSSxPQUFPLEVBQWEsQ0FBQzs7OztRQUt0RSxxQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBRXhDLG9CQUFlLEdBQUcsRUFBRSxDQUFDOzs7O1FBT3JCLGVBQVUsR0FBaUIsU0FBUyxDQUFDLG1CQUFtQixDQUFDO1FBSzlELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJ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LEdBQUc7aURBQzFCLENBQUM7SUFDaEQsQ0FBQzs7Ozs7Ozs7Ozs7OztJQVlTLG9CQUFvQixDQUFDLEVBQVU7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTTs7OztRQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7O1lBOVRGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQUxRLGtCQUFrQjtZQUNsQixjQUFjOzs7Ozs7Ozs7SUFZckIsZ0NBQW9DOzs7Ozs7SUFLcEMsNkJBQXdDOzs7OztJQU94QyxpQ0FBMkc7Ozs7O0lBSzNHLGdDQUErQzs7Ozs7SUFLL0MsbUNBQWtFOztJQUVsRSw0Q0FBNkU7Ozs7O0lBSzdFLHNDQUErQzs7SUFFL0MscUNBQTRCOztJQUU1QixtQ0FBZ0Q7Ozs7O0lBS2hELGdDQUFnRTs7Ozs7SUFJcEQsaUNBQXlDOzs7OztJQUFFLCtCQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmRpdmlkdWFsTWFwLCBNYXJrZXJJbmZvLCBNYXBNYXJrZXIgfSBmcm9tICdAbG93Y29kZXVuaXQvbGN1LW1hcC1jb21tb24nO1xyXG5pbXBvcnQgeyBUaHVtYm5haWxMaXN0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvdGh1bWJuYWlsLWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBUZW1wU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3RlbXAuc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYXRpb25Mb2FkZXIgfSBmcm9tICcuLi91dGlscy9sb2NhdGlvbi1sb2FkZXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFwU2VydmljZSB7XHJcblxyXG4gIC8vIEZJRUxEU1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgcHJpbWFyeSBtYXAgdG8gYmUgZGlzcGxheWVkIC0gcmVwcmVzZW50cyB0aGUgY3VycmVudCBtYXAgYmVpbmcgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHByaW1hcnlNYXA6IEluZGl2aWR1YWxNYXA7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2Ygc2Vjb25kYXJ5IG1hcHMgYXZhaWxhYmxlIHRvIGNob29zZSBhcyBwcmltYXJ5IGFuZCBhbHNvIGZvciB1c2UgYXMgbGF5ZXJzIGluIHRoZSBwcmltYXJ5IG1hcFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBtYXBMaXN0OiBBcnJheTxJbmRpdmlkdWFsTWFwPjtcclxuXHJcbiAgLy8gUFJPUEVSVElFU1xyXG5cclxuICAvKipcclxuICAgKiBDdXJhdGVkIGxpc3Qgb2YgYW1ibF9vbiBsb2NhdGlvbiBtYXJrZXJzXHJcbiAgICovXHJcbiAgcHVibGljIEN1cmF0ZWRMaXN0ID0gdGhpcy5sb2NMb2FkZXIuQ3JlYXRlTGF5ZXIoQ29uc3RhbnRzLkxPQ0FUSU9OU19UT19MT0FELCBDb25zdGFudHMuTUFQX0NPTkZJR19UT19MT0FEKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgbmV3IHByaW1hcnkgbWFwIGFueSB0aW1lIHRoZSBtYXBzIChwcmltYXJ5IGFuZCBzZWNvbmRhcnkpIGFyZSBjaGFuZ2VkXHJcbiAgICovXHJcbiAgcHVibGljIE1hcENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsTWFwPjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3ViamVjdCB0aGF0IGVtaXRzIGxhdC9sbmcgZm9yIG1hcCBwYW5uaW5nXHJcbiAgICovXHJcbiAgcHVibGljIExhdExuZ0VtaXR0ZXI6IFN1YmplY3Q8bnVtYmVyW10+ID0gbmV3IFN1YmplY3Q8bnVtYmVyW10+KCk7XHJcblxyXG4gIHB1YmxpYyBCYXNpY0luZm9XaW5kb3dFbWl0dGVyOiBTdWJqZWN0PE1hcE1hcmtlcj4gPSBuZXcgU3ViamVjdDxNYXBNYXJrZXI+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2YgYWN0aXZlIHNlY29uZGFyeSBsb2NhdGlvbnMgd2hpY2ggYXJlIGN1cnJlbnRseSBkaXNwbGF5ZWQgb24gdGhlIGN1cnJlbnQgbWFwXHJcbiAgICovXHJcbiAgcHVibGljIFZpc2libGVMb2NhdGlvbnM6IEFycmF5PE1hcE1hcmtlcj4gPSBbXTtcclxuXHJcbiAgcHVibGljIExlZ2VuZExvY2F0aW9ucyA9IFtdO1xyXG5cclxuICBwdWJsaWMgVGh1bWJuYWlsTGlzdDogQXJyYXk8VGh1bWJuYWlsTGlzdE1vZGVsPjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG1hcmtlcnMgZm9yIHVzZSBpbiB0aGUgbWFwXHJcbiAgICovXHJcbiAgcHVibGljIE1hcmtlckxpc3Q6IE1hcmtlckluZm9bXSA9IENvbnN0YW50cy5ERUZBVUxUX01BUktFUl9JTkZPO1xyXG5cclxuICAvLyBDT05TVFJVQ1RPUlNcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHRlbXBTdG9yYWdlOiBUZW1wU3RvcmFnZVNlcnZpY2UsIHByb3RlY3RlZCBsb2NMb2FkZXI6IExvY2F0aW9uTG9hZGVyKSB7XHJcbiAgICB0aGlzLnByaW1hcnlNYXAgPSB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcExpc3QoKVswXTtcclxuICAgIHRoaXMubWFwTGlzdCA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpLmZpbHRlcihtYXAgPT4gbWFwLmlkICE9PSB0aGlzLnByaW1hcnlNYXAuaWQpO1xyXG4gICAgdGhpcy5NYXBDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsTWFwPigpO1xyXG4gIH1cclxuXHJcbiAgLy8gTElGRSBDWUNMRVxyXG5cclxuICAvLyBBUEkgTUVUSE9EU1xyXG5cclxuICBwdWJsaWMgR2V0TGVnZW5kTG9jYXRpb25zKCkge1xyXG4gICAvL3RoaXMuTGVnZW5kTG9jYXRpb25zID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRMb2NhdGlvbkxlZ2VuZCgpO1xyXG4gICAgcmV0dXJuIHRoaXMuTGVnZW5kTG9jYXRpb25zO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGlzIG1hcGxpc3QgbGlzdCBvZiB0aHVtYm5haWxzIGFuZCB0aGVpciBpbmZvXHJcbiAgICovXHJcbiAgcHVibGljIEdldFRodW1ibmFpbExpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5UaHVtYm5haWxMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgcHJpbWFyeSBtYXAgdG8gYmUgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgcHVibGljIEdldFByaW1hcnlNYXAoKTogSW5kaXZpZHVhbE1hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5wcmltYXJ5TWFwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBzZWNvbmRhcnkgKG5vbi1wcmltYXJ5KSBtYXBzXHJcbiAgICovXHJcbiAgcHVibGljIEdldE1hcExpc3QoKTogQXJyYXk8SW5kaXZpZHVhbE1hcD4ge1xyXG4gICAgLy8gcmV0dXJuIHRoaXMubWFwTGlzdDtcclxuICAgIHJldHVybiB0aGlzLm1hcExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgdGhlIG1hcHMgaW4gdGhlIGRiXHJcbiAgICovXHJcbiAgcHVibGljIEdldEFsbE1hcHMoKTogQXJyYXk8SW5kaXZpZHVhbE1hcD4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbWFwIHRvIHJldHJpZXZlXHJcbiAgICogXHJcbiAgICogUmV0dXJucyBhIHNwZWNpZmljIG1hcCB3aXRoIGEgc3BlY2lmaWMgaWRcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFwQnlJZChpZCk6IEluZGl2aWR1YWxNYXAge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwTGlzdC5maW5kKG1hcCA9PiBtYXAuaWQgPT09IGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG1hcmtlcnMgZm9yIHVzZSBpbiBtYXBcclxuICAgKiBcclxuICAgKiBUaGlzIHdpbGwgY2FsbCBhIGJhY2sgZW5kIHNlcnZpY2UgZXZlbnR1YWxseSBhbmQgdGhlbiBmb3JtYXQgdGhlIHJlc3VsdHMgYWNjb3JkaW5nbHlcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFya2VyTGlzdCgpOiBNYXJrZXJJbmZvW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuTWFya2VyTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBtYXAgVGhlIG1hcCB0byBhZGRcclxuICAgKiBcclxuICAgKiBBZGRzIHRoZSBtYXAgdG8gdGhlIG1hcCBhcnJheVxyXG4gICAqL1xyXG4gIHB1YmxpYyBBZGRNYXAobWFwKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLkFkZE1hcFRvTGlzdChtYXApO1xyXG4gICAgdGhpcy5zZXRNYXBzV2l0aFByaW1hcnlJZChtYXAuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGxhdCBUaGUgbGF0aXR1ZGUgdG8gcGFuIHRvXHJcbiAgICogQHBhcmFtIGxuZyBUaGUgbG9uZ2l0dWRlIHRvIHBhbiB0b1xyXG4gICAqIFxyXG4gICAqIFRha2VzIGEgbGF0L2xuZyBhbmQgZW1pdHMgZXZlbnQgZm9yIG1hcCB0byBsaXN0ZW4gdG9cclxuICAgKi9cclxuICBwdWJsaWMgQ2hhbmdlTGF0TG5nKGxhdCwgbG5nKTogdm9pZCB7XHJcbiAgICB0aGlzLkxhdExuZ0VtaXR0ZXIubmV4dChbbGF0LCBsbmddKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIG1hcmtlclxyXG4gICAqIFxyXG4gICAqIFRha2VzIGEgbWFya2VyIGZyb20gdGhlIGxlZ2VuZCBhbmQgc2VuZCB0byBsY3UtbWFwXHJcbiAgICovXHJcbiAgcHVibGljIERpc3BsYXlCYXNpY0luZm8obWFya2VyOiBNYXBNYXJrZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuQmFzaWNJbmZvV2luZG93RW1pdHRlci5uZXh0KG1hcmtlcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbGlzdCBUaGUgbGlzdCBvZiB2aXNpYmxlIGxvY2F0aW9uc1xyXG4gICAqIFxyXG4gICAqIFdoZW4gbWFwIHVwZGF0ZXMgdGhlIHZpc2libGUgbG9jYXRpb25zLCB0aGlzLlZpc2libGVMb2NhdGlvbnMgd2lsbCBiZSB1cGRhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIFVwZGF0ZVZpc2libGVMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy5WaXNpYmxlTG9jYXRpb25zID0gbGlzdDtcclxuICAgIGNvbnNvbGUubG9nKFwidmlzaWJsZSBsb2NhdGlvbnMgdXBkYXRlZDogXCIsIGxpc3QpO1xyXG4gICAgaWYgKHRoaXMuVmlzaWJsZUxvY2F0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuVXBkYXRlTGVnZW5kTG9jYXRpb25zKHRoaXMuVmlzaWJsZUxvY2F0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0aGlzLlZpc2libGVMb2NhdGlvbnM7XHJcbiAgICAvLyBpZih0aGlzLlZpc2libGVMb2NhdGlvbnMgIT09IHRoaXMuTGVnZW5kTG9jYXRpb25zKXtcclxuICAgIC8vICAgY29uc29sZS5sb2coXCJVcGRhdGluZyBsZWdlbmRcIilcclxuICAgIC8vICAgdGhpcy5BZGRUb0xlZ2VuZExvY2F0aW9ucyhsaXN0KTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBBZGRUb0xlZ2VuZExvY2F0aW9ucyh2aXNMb2M6IEFycmF5PE1hcE1hcmtlcj4pIHtcclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJ2aXNMb2MgPSBcIiwgdmlzTG9jKTtcclxuICAvLyAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmlzTG9jLmxlbmd0aDsgaSsrKSB7XHJcbiAgLy8gICAgIGxldCB0ZW1wSWQgPSB2aXNMb2NbaV0uaWQ7XHJcbiAgLy8gICAgIGlmICh0aGlzLkxlZ2VuZExvY2F0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlkID09PSB0ZW1wSWQpLmxlbmd0aCA9PT0gMCkge1xyXG4gIC8vICAgICAgIHRoaXMuTGVnZW5kTG9jYXRpb25zLnB1c2godmlzTG9jW2ldKTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgICBlbHNlIHtcclxuICAvLyAgICAgICB0aGlzLkNoZWNrSW5mbyh2aXNMb2NbaV0pO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwiYWRkZWQgdG8gTGVnZW5kQXJyYXkgXCIsIHRoaXMuTGVnZW5kTG9jYXRpb25zKTtcclxuICAvLyAgIHRoaXMuVXBkYXRlTGVnZW5kTG9jYXRpb25zKHRoaXMuTGVnZW5kTG9jYXRpb25zKTtcclxuICAvLyAgIC8vdGhpcy5VcGRhdGVWaXNpYmxlTG9jYXRpb25zKHRoaXMuTGVnZW5kTG9jYXRpb25zKTtcclxuICAvLyB9XHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIHRvIGluc3VyZSB0aGF0IHRoZSBsb2NhdGlvbiBkaXNwbGF5ZWQgaW4gdGhlIGxlZ2VuZCBtYXRjaGVzIHRoYXQgb2YgdGhlIHZpc2libGUgbG9jYXRpb25zXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG1hcmtlclxyXG4gICAqL1xyXG4gIC8vIHB1YmxpYyBDaGVja0luZm8obWFya2VyOiBNYXBNYXJrZXIpIHtcclxuICAvLyAgIGxldCB0ZW1wTWFya2VyID0gdGhpcy5MZWdlbmRMb2NhdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pZCA9PT0gbWFya2VyLmlkKTtcclxuICAvLyAgIGxldCBpbmRleCA9IHRoaXMuTGVnZW5kTG9jYXRpb25zLmluZGV4T2YodGVtcE1hcmtlclswXSk7XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwiaW5kZXggPSBcIiwgaW5kZXgpO1xyXG4gIC8vICAgLy9jb25zb2xlLmxvZyhcInRlbXBNYXJrZXIgPSBcIiwgdGVtcE1hcmtlcik7XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwibWFya2VyID0gXCIsIG1hcmtlcik7XHJcbiAgLy8gICB0aGlzLkxlZ2VuZExvY2F0aW9uc1tpbmRleF0gPSBtYXJrZXI7XHJcbiAgLy8gfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBsZWdlbmQgYXJyYXlcclxuICAgKiBAcGFyYW0gbGlzdCBcclxuICAgKi9cclxuICBwdWJsaWMgVXBkYXRlTGVnZW5kTG9jYXRpb25zKGxpc3QpOiB2b2lkIHtcclxuICAgIGxldCB0ZW1wOiBBcnJheTxNYXBNYXJrZXI+ID0gbmV3IEFycmF5PE1hcE1hcmtlcj4oKTtcclxuICAgIGNvbnNvbGUubG9nKFwibWFzdGVyIGxpc3QgbGVuZ3RoXCIsdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXN0ZXJMb2NhdGlvbkxlZ2VuZCgpLmxlbmd0aCk7XHJcbiAgICBpZiAodGhpcy50ZW1wU3RvcmFnZS5HZXRNYXN0ZXJMb2NhdGlvbkxlZ2VuZCgpLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLkxlZ2VuZExvY2F0aW9ucyA9IHRoaXMuVmlzaWJsZUxvY2F0aW9ucztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgdGVtcE1hcmtlcjpNYXBNYXJrZXIgPSB0aGlzLnRlbXBTdG9yYWdlLkdldExvY2F0aW9uQnlJZChsaXN0W2ldLmlkKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInRlbXBNYXJrZXIgPSBcIiwgdGVtcE1hcmtlcik7XHJcbiAgICAgICAgaWYgKHRlbXBNYXJrZXIpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwicHVzaGluZyBpbiBpZlwiKTtcclxuICAgICAgICAgIHRlbXAucHVzaCh0ZW1wTWFya2VyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInB1c2hpbmcgaW4gZWxzZVwiKTtcclxuICAgICAgICAgIHRlbXAucHVzaChsaXN0W2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuTGVnZW5kTG9jYXRpb25zID0gdGVtcDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBsaXN0IHNhdmVzIHRoZSBsZWdlbmQgdG8gbG9jYWwgc3RvcmFnZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBTYXZlTGVnZW5kTG9jYXRpb25zKGxpc3QpOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuU2F2ZUxvY2F0aW9uTGVnZW5kKGxpc3QpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIHRvIHJlcGxhY2UgdGhlIG9ubGQgb25lIHdpdGhcclxuICAgKiBcclxuICAgKiBUaGlzIHJlcGxhY2VzIHRoZSBtYXAgaW4gdGhlIGRiIHdpdGggdGhlIG1hcCAoYmFzZWQgb24gaWQpXHJcbiAgICovXHJcbiAgcHVibGljIFJlcGxhY2VNYXAobWFwOiBJbmRpdmlkdWFsTWFwKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLlJlcGxhY2VNYXAobWFwKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBMaXN0T2ZNYXBzIFRoZSBsaXN0IG9mIG1hcHMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBnZXQgdGhlIHRodW1ibmFpbHMgYW5kIG90aGVyIGluZm8gZm9yXHJcbiAgICogXHJcbiAgICogYSB0aHVtYm5haWwgbGlzdCBjb250YWlucyB0aGUgaW1nIHVybCwgdGhlIHRpdGxlIG9mIHRoZSBtYXAsIGFuZCB0aGUgbGF0IGFuZCBsb25nIG9mIHRoZSBvcmdpblxyXG4gICAqIFxyXG4gICAqL1xyXG4gIHB1YmxpYyBCdWlsZFRodW1ibmFpbExpc3QoTGlzdE9mTWFwczogQXJyYXk8SW5kaXZpZHVhbE1hcD4pOiBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+IHtcclxuICAgIHZhciB0ZW1wVGh1bWJuYWlsTGlzdCA9IG5ldyBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+KCk7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IExpc3RPZk1hcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIHRlbXAgPSBuZXcgVGh1bWJuYWlsTGlzdE1vZGVsKExpc3RPZk1hcHNbaV0sIHRoaXMuZ2V0TWFwVGh1bWJuYWlsKExpc3RPZk1hcHNbaV0sIDIwMCwgMjAwKSwgTGlzdE9mTWFwc1tpXS50aXRsZSwgTGlzdE9mTWFwc1tpXS5vcmlnaW4ubGF0LCBMaXN0T2ZNYXBzW2ldLm9yaWdpbi5sbmcpO1xyXG4gICAgICB0ZW1wVGh1bWJuYWlsTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIHNvcnRzIGJhc2VkIG9uIHRoZSBUaXRsZSBvZiB0aGUgbWFwIHNvIHRoZSB0aHVtYm5haWwgbGlzdCBpcyBpbiBhbHBoYWJldGljYWwgb3JkZXJcclxuICAgICAqL1xyXG4gICAgdGVtcFRodW1ibmFpbExpc3Quc29ydCgodDEsIHQyKSA9PiB7XHJcbiAgICAgIHJldHVybiB0MS5UaXRsZS50b1VwcGVyQ2FzZSgpID4gdDIuVGl0bGUudG9VcHBlckNhc2UoKSA/IDEgOiAtMTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRlbXBUaHVtYm5haWxMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbmV3IHByaW1hcnkgbWFwXHJcbiAgICogXHJcbiAgICogQ2FsbHMgdGhlIHByb3RlY3RlZCBtZXRob2QgXCJzZXRNYXBzV2l0aFByaW1hcnlJZFwiXHJcbiAgICovXHJcbiAgcHVibGljIFByaW1hcnlNYXBDaGFuZ2VkKGlkKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE1hcHNXaXRoUHJpbWFyeUlkKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgYWxsIHRoZSBtYXBzIGZyb20gdGhlIGRiIChmb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5KVxyXG4gICAqL1xyXG4gIHB1YmxpYyBEZWxldGVNYXBzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW1wU3RvcmFnZS5EZWxldGVNYXBMaXN0KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgKiBDdXJhdGVkIGxpc3Qgb2YgYW1ibF9vbiBsb2NhdGlvbiBtYXJrZXJzXHJcbiAgICovXHJcbiAgcHVibGljIEdldEN1cmF0ZWRMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMubG9jTG9hZGVyLkNyZWF0ZUxheWVyKENvbnN0YW50cy5KU09OX0RBVEFfRk9SX0xPQ0FUSU9OX0NPTlZFUlNJT04sIENvbnN0YW50cy5NQVBfQ09ORklHX1RPX0xPQUQpO1xyXG4gIH1cclxuICAvLyBIRUxQRVJTXHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIGNvbmZpZ3VyYXRpb24gZnJvbSB3aGljaCB5b3Ugd2FudCB0byBjcmVhdGUgYSB0aHVtYm5haWxcclxuICAgKiBAcGFyYW0gd2lkdGggT3B0aW9uYWwgd2lkdGggcGFyYW1ldGVyIChtdXN0IGFsc28gaW5jbHVkZSBoZWlndGgpXHJcbiAgICogQHBhcmFtIGhlaWdodCBPcHRpb25hbCBoZWlnaHQgcGFyYW1ldGVyIChtdXN0IGFsc28gaW5jbHVkZSB3aWR0aClcclxuICAgKlxyXG4gICAqIFRha2VzIGEgbWFwIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgcmV0dXJucyBhIGdvb2dsZSBtYXBzIHN0YXRpYyBtYXAgdG8gYmUgdXNlZCBhcyBhIHRodW1ibmFpbFxyXG4gICAqXHJcbiAgICogSW4gb3JkZXIgdG8gc3BlY2lmeSBoZWlnaHQgYW5kIHdpZHRoLCB5b3UgbXVzdCBzcGVjaWZ5IEJPVEgsIG90aGVyd2lzZSwgdGhlIGRlZmF1bHQgaXMgMzAweDMwMFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBnZXRNYXBUaHVtYm5haWwobWFwOiBJbmRpdmlkdWFsTWFwLCB3aWR0aD8sIGhlaWdodD8pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGBodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvc3RhdGljbWFwP2NlbnRlcj0ke21hcC5vcmlnaW4ubGF0fSwke21hcC5vcmlnaW4ubG5nfVxyXG4gICAgJnpvb209JHttYXAuem9vbSAtIDJ9XHJcbiAgICAmc2l6ZT0ke2hlaWdodCAmJiB3aWR0aCA/IHdpZHRoIDogMzAwfXgke2hlaWdodCAmJiB3aWR0aCA/IGhlaWdodCA6IDMwMH1cclxuICAgICZrZXk9QUl6YVN5QXNLaDRfVFhwWVY1N1NCczdqM2I2cUZjSlVHNmZOSG9VYDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbmV3IHByaW1hcnkgbWFwXHJcbiAgICpcclxuICAgKiBTZXRzIHRoZSBwcmltYXJ5IG1hcCB0byB0aGF0IHdpdGggdGhlIHBhc3NlZCBpZCxcclxuICAgKlxyXG4gICAqIFNldHMgdGhlIHNlY29uZGFyeSBtYXBzIHRvIGEgbGlzdCBvZiBhbGwgdGhlIG1hcHMgbWludXMgdGhhdCB3aXRoIHRoZSBwYXNzZWQgaWRcclxuICAgKlxyXG4gICAqIEVtaXRzIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2V0TWFwc1dpdGhQcmltYXJ5SWQoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5wcmltYXJ5TWFwID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBCeUlkKGlkKTtcclxuICAgIHRoaXMubWFwTGlzdCA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpLmZpbHRlcihtYXAgPT4gbWFwLmlkICE9PSBpZCk7XHJcbiAgICB0aGlzLk1hcENoYW5nZWQuZW1pdCh0aGlzLnByaW1hcnlNYXApO1xyXG4gIH1cclxuXHJcbn1cclxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbWFwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUsxRCxNQUFNLE9BQU8sVUFBVTs7Ozs7O0lBaURyQixZQUFzQixXQUErQixFQUFZLFNBQXlCO1FBQXBFLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWdCOzs7OztRQTlCbkYsZ0JBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUM7Ozs7UUFVcEcsa0JBQWEsR0FBc0IsSUFBSSxPQUFPLEVBQVksQ0FBQztRQUUzRCwyQkFBc0IsR0FBdUIsSUFBSSxPQUFPLEVBQWEsQ0FBQzs7OztRQUt0RSxxQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBRXhDLG9CQUFlLEdBQUcsRUFBRSxDQUFDOzs7O1FBT3JCLGVBQVUsR0FBaUIsU0FBUyxDQUFDLG1CQUFtQixDQUFDO1FBSzlELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJ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SUFDeEMsQ0FBQzs7O1lBelZGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQUxRLGtCQUFrQjtZQUNsQixjQUFjOzs7Ozs7Ozs7SUFZckIsZ0NBQW9DOzs7Ozs7SUFLcEMsNkJBQXdDOzs7OztJQU94QyxpQ0FBMkc7Ozs7O0lBSzNHLGdDQUErQzs7Ozs7SUFLL0MsbUNBQWtFOztJQUVsRSw0Q0FBNkU7Ozs7O0lBSzdFLHNDQUErQzs7SUFFL0MscUNBQTRCOztJQUU1QixtQ0FBZ0Q7Ozs7O0lBS2hELGdDQUFnRTs7Ozs7SUFJcEQsaUNBQXlDOzs7OztJQUFFLCtCQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmRpdmlkdWFsTWFwLCBNYXJrZXJJbmZvLCBNYXBNYXJrZXIgfSBmcm9tICdAbG93Y29kZXVuaXQvbGN1LW1hcC1jb21tb24nO1xyXG5pbXBvcnQgeyBUaHVtYm5haWxMaXN0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvdGh1bWJuYWlsLWxpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBUZW1wU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3RlbXAuc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYXRpb25Mb2FkZXIgfSBmcm9tICcuLi91dGlscy9sb2NhdGlvbi1sb2FkZXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFwU2VydmljZSB7XHJcblxyXG4gIC8vIEZJRUxEU1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgcHJpbWFyeSBtYXAgdG8gYmUgZGlzcGxheWVkIC0gcmVwcmVzZW50cyB0aGUgY3VycmVudCBtYXAgYmVpbmcgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHByaW1hcnlNYXA6IEluZGl2aWR1YWxNYXA7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2Ygc2Vjb25kYXJ5IG1hcHMgYXZhaWxhYmxlIHRvIGNob29zZSBhcyBwcmltYXJ5IGFuZCBhbHNvIGZvciB1c2UgYXMgbGF5ZXJzIGluIHRoZSBwcmltYXJ5IG1hcFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBtYXBMaXN0OiBBcnJheTxJbmRpdmlkdWFsTWFwPjtcclxuXHJcbiAgLy8gUFJPUEVSVElFU1xyXG5cclxuICAvKipcclxuICAgKiBDdXJhdGVkIGxpc3Qgb2YgYW1ibF9vbiBsb2NhdGlvbiBtYXJrZXJzXHJcbiAgICovXHJcbiAgcHVibGljIEN1cmF0ZWRMaXN0ID0gdGhpcy5sb2NMb2FkZXIuQ3JlYXRlTGF5ZXIoQ29uc3RhbnRzLkxPQ0FUSU9OU19UT19MT0FELCBDb25zdGFudHMuTUFQX0NPTkZJR19UT19MT0FEKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgbmV3IHByaW1hcnkgbWFwIGFueSB0aW1lIHRoZSBtYXBzIChwcmltYXJ5IGFuZCBzZWNvbmRhcnkpIGFyZSBjaGFuZ2VkXHJcbiAgICovXHJcbiAgcHVibGljIE1hcENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsTWFwPjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3ViamVjdCB0aGF0IGVtaXRzIGxhdC9sbmcgZm9yIG1hcCBwYW5uaW5nXHJcbiAgICovXHJcbiAgcHVibGljIExhdExuZ0VtaXR0ZXI6IFN1YmplY3Q8bnVtYmVyW10+ID0gbmV3IFN1YmplY3Q8bnVtYmVyW10+KCk7XHJcblxyXG4gIHB1YmxpYyBCYXNpY0luZm9XaW5kb3dFbWl0dGVyOiBTdWJqZWN0PE1hcE1hcmtlcj4gPSBuZXcgU3ViamVjdDxNYXBNYXJrZXI+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2YgYWN0aXZlIHNlY29uZGFyeSBsb2NhdGlvbnMgd2hpY2ggYXJlIGN1cnJlbnRseSBkaXNwbGF5ZWQgb24gdGhlIGN1cnJlbnQgbWFwXHJcbiAgICovXHJcbiAgcHVibGljIFZpc2libGVMb2NhdGlvbnM6IEFycmF5PE1hcE1hcmtlcj4gPSBbXTtcclxuXHJcbiAgcHVibGljIExlZ2VuZExvY2F0aW9ucyA9IFtdO1xyXG5cclxuICBwdWJsaWMgVGh1bWJuYWlsTGlzdDogQXJyYXk8VGh1bWJuYWlsTGlzdE1vZGVsPjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG1hcmtlcnMgZm9yIHVzZSBpbiB0aGUgbWFwXHJcbiAgICovXHJcbiAgcHVibGljIE1hcmtlckxpc3Q6IE1hcmtlckluZm9bXSA9IENvbnN0YW50cy5ERUZBVUxUX01BUktFUl9JTkZPO1xyXG5cclxuICAvLyBDT05TVFJVQ1RPUlNcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHRlbXBTdG9yYWdlOiBUZW1wU3RvcmFnZVNlcnZpY2UsIHByb3RlY3RlZCBsb2NMb2FkZXI6IExvY2F0aW9uTG9hZGVyKSB7XHJcbiAgICB0aGlzLnByaW1hcnlNYXAgPSB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcExpc3QoKVswXTtcclxuICAgIHRoaXMubWFwTGlzdCA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpLmZpbHRlcihtYXAgPT4gbWFwLmlkICE9PSB0aGlzLnByaW1hcnlNYXAuaWQpO1xyXG4gICAgdGhpcy5NYXBDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxJbmRpdmlkdWFsTWFwPigpO1xyXG4gIH1cclxuXHJcbiAgLy8gTElGRSBDWUNMRVxyXG5cclxuICAvLyBBUEkgTUVUSE9EU1xyXG5cclxuICBwdWJsaWMgR2V0TGVnZW5kTG9jYXRpb25zKCkge1xyXG4gICAgLy90aGlzLkxlZ2VuZExvY2F0aW9ucyA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TG9jYXRpb25MZWdlbmQoKTtcclxuICAgIHJldHVybiB0aGlzLkxlZ2VuZExvY2F0aW9ucztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhpcyBtYXBsaXN0IGxpc3Qgb2YgdGh1bWJuYWlscyBhbmQgdGhlaXIgaW5mb1xyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRUaHVtYm5haWxMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuVGh1bWJuYWlsTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHByaW1hcnkgbWFwIHRvIGJlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRQcmltYXJ5TWFwKCk6IEluZGl2aWR1YWxNYXAge1xyXG4gICAgcmV0dXJuIHRoaXMucHJpbWFyeU1hcDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGxpc3Qgb2Ygc2Vjb25kYXJ5IChub24tcHJpbWFyeSkgbWFwc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRNYXBMaXN0KCk6IEFycmF5PEluZGl2aWR1YWxNYXA+IHtcclxuICAgIC8vIHJldHVybiB0aGlzLm1hcExpc3Q7XHJcbiAgICByZXR1cm4gdGhpcy5tYXBMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIHRoZSBtYXBzIGluIHRoZSBkYlxyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRBbGxNYXBzKCk6IEFycmF5PEluZGl2aWR1YWxNYXA+IHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcExpc3QoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIG1hcCB0byByZXRyaWV2ZVxyXG4gICAqIFxyXG4gICAqIFJldHVybnMgYSBzcGVjaWZpYyBtYXAgd2l0aCBhIHNwZWNpZmljIGlkXHJcbiAgICovXHJcbiAgcHVibGljIEdldE1hcEJ5SWQoaWQpOiBJbmRpdmlkdWFsTWFwIHtcclxuICAgIHJldHVybiB0aGlzLm1hcExpc3QuZmluZChtYXAgPT4gbWFwLmlkID09PSBpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBtYXJrZXJzIGZvciB1c2UgaW4gbWFwXHJcbiAgICogXHJcbiAgICogVGhpcyB3aWxsIGNhbGwgYSBiYWNrIGVuZCBzZXJ2aWNlIGV2ZW50dWFsbHkgYW5kIHRoZW4gZm9ybWF0IHRoZSByZXN1bHRzIGFjY29yZGluZ2x5XHJcbiAgICovXHJcbiAgcHVibGljIEdldE1hcmtlckxpc3QoKTogTWFya2VySW5mb1tdIHtcclxuICAgIHJldHVybiB0aGlzLk1hcmtlckxpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbWFwIFRoZSBtYXAgdG8gYWRkXHJcbiAgICogXHJcbiAgICogQWRkcyB0aGUgbWFwIHRvIHRoZSBtYXAgYXJyYXlcclxuICAgKi9cclxuICBwdWJsaWMgQWRkTWFwKG1hcCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW1wU3RvcmFnZS5BZGRNYXBUb0xpc3QobWFwKTtcclxuICAgIHRoaXMuc2V0TWFwc1dpdGhQcmltYXJ5SWQobWFwLmlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBsYXQgVGhlIGxhdGl0dWRlIHRvIHBhbiB0b1xyXG4gICAqIEBwYXJhbSBsbmcgVGhlIGxvbmdpdHVkZSB0byBwYW4gdG9cclxuICAgKiBcclxuICAgKiBUYWtlcyBhIGxhdC9sbmcgYW5kIGVtaXRzIGV2ZW50IGZvciBtYXAgdG8gbGlzdGVuIHRvXHJcbiAgICovXHJcbiAgcHVibGljIENoYW5nZUxhdExuZyhsYXQsIGxuZyk6IHZvaWQge1xyXG4gICAgdGhpcy5MYXRMbmdFbWl0dGVyLm5leHQoW2xhdCwgbG5nXSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBtYXJrZXJcclxuICAgKiBcclxuICAgKiBUYWtlcyBhIG1hcmtlciBmcm9tIHRoZSBsZWdlbmQgYW5kIHNlbmQgdG8gbGN1LW1hcFxyXG4gICAqL1xyXG4gIHB1YmxpYyBEaXNwbGF5QmFzaWNJbmZvKG1hcmtlcjogTWFwTWFya2VyKTogdm9pZCB7XHJcbiAgICB0aGlzLkJhc2ljSW5mb1dpbmRvd0VtaXR0ZXIubmV4dChtYXJrZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGxpc3QgVGhlIGxpc3Qgb2YgdmlzaWJsZSBsb2NhdGlvbnNcclxuICAgKiBcclxuICAgKiBXaGVuIG1hcCB1cGRhdGVzIHRoZSB2aXNpYmxlIGxvY2F0aW9ucywgdGhpcy5WaXNpYmxlTG9jYXRpb25zIHdpbGwgYmUgdXBkYXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBVcGRhdGVWaXNpYmxlTG9jYXRpb25zKGxpc3QpOiB2b2lkIHtcclxuICAgIHRoaXMuVmlzaWJsZUxvY2F0aW9ucyA9IGxpc3Q7XHJcbiAgICAvL2NvbnNvbGUubG9nKFwidmlzaWJsZSBsb2NhdGlvbnMgdXBkYXRlZDogXCIsIGxpc3QpO1xyXG4gICAgaWYgKHRoaXMuVmlzaWJsZUxvY2F0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuVXBkYXRlTGVnZW5kTG9jYXRpb25zKHRoaXMuVmlzaWJsZUxvY2F0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0aGlzLlZpc2libGVMb2NhdGlvbnM7XHJcbiAgICAvLyBpZih0aGlzLlZpc2libGVMb2NhdGlvbnMgIT09IHRoaXMuTGVnZW5kTG9jYXRpb25zKXtcclxuICAgIC8vICAgY29uc29sZS5sb2coXCJVcGRhdGluZyBsZWdlbmRcIilcclxuICAgIC8vICAgdGhpcy5BZGRUb0xlZ2VuZExvY2F0aW9ucyhsaXN0KTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBBZGRUb0xlZ2VuZExvY2F0aW9ucyh2aXNMb2M6IEFycmF5PE1hcE1hcmtlcj4pIHtcclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJ2aXNMb2MgPSBcIiwgdmlzTG9jKTtcclxuICAvLyAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmlzTG9jLmxlbmd0aDsgaSsrKSB7XHJcbiAgLy8gICAgIGxldCB0ZW1wSWQgPSB2aXNMb2NbaV0uaWQ7XHJcbiAgLy8gICAgIGlmICh0aGlzLkxlZ2VuZExvY2F0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlkID09PSB0ZW1wSWQpLmxlbmd0aCA9PT0gMCkge1xyXG4gIC8vICAgICAgIHRoaXMuTGVnZW5kTG9jYXRpb25zLnB1c2godmlzTG9jW2ldKTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgICBlbHNlIHtcclxuICAvLyAgICAgICB0aGlzLkNoZWNrSW5mbyh2aXNMb2NbaV0pO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwiYWRkZWQgdG8gTGVnZW5kQXJyYXkgXCIsIHRoaXMuTGVnZW5kTG9jYXRpb25zKTtcclxuICAvLyAgIHRoaXMuVXBkYXRlTGVnZW5kTG9jYXRpb25zKHRoaXMuTGVnZW5kTG9jYXRpb25zKTtcclxuICAvLyAgIC8vdGhpcy5VcGRhdGVWaXNpYmxlTG9jYXRpb25zKHRoaXMuTGVnZW5kTG9jYXRpb25zKTtcclxuICAvLyB9XHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIHRvIGluc3VyZSB0aGF0IHRoZSBsb2NhdGlvbiBkaXNwbGF5ZWQgaW4gdGhlIGxlZ2VuZCBtYXRjaGVzIHRoYXQgb2YgdGhlIHZpc2libGUgbG9jYXRpb25zXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG1hcmtlclxyXG4gICAqL1xyXG4gIC8vIHB1YmxpYyBDaGVja0luZm8obWFya2VyOiBNYXBNYXJrZXIpIHtcclxuICAvLyAgIGxldCB0ZW1wTWFya2VyID0gdGhpcy5MZWdlbmRMb2NhdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pZCA9PT0gbWFya2VyLmlkKTtcclxuICAvLyAgIGxldCBpbmRleCA9IHRoaXMuTGVnZW5kTG9jYXRpb25zLmluZGV4T2YodGVtcE1hcmtlclswXSk7XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwiaW5kZXggPSBcIiwgaW5kZXgpO1xyXG4gIC8vICAgLy9jb25zb2xlLmxvZyhcInRlbXBNYXJrZXIgPSBcIiwgdGVtcE1hcmtlcik7XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwibWFya2VyID0gXCIsIG1hcmtlcik7XHJcbiAgLy8gICB0aGlzLkxlZ2VuZExvY2F0aW9uc1tpbmRleF0gPSBtYXJrZXI7XHJcbiAgLy8gfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBsZWdlbmQgYXJyYXlcclxuICAgKiBAcGFyYW0gbGlzdCBcclxuICAgKi9cclxuICBwdWJsaWMgVXBkYXRlTGVnZW5kTG9jYXRpb25zKGxpc3QpOiB2b2lkIHtcclxuICAgIGxldCB0ZW1wOiBBcnJheTxNYXBNYXJrZXI+ID0gbmV3IEFycmF5PE1hcE1hcmtlcj4oKTtcclxuICAgIC8vY29uc29sZS5sb2coXCJtYXN0ZXIgbGlzdCBsZW5ndGhcIix0aGlzLnRlbXBTdG9yYWdlLkdldE1hc3RlckxvY2F0aW9uTGVnZW5kKCkubGVuZ3RoKTtcclxuICAgIGlmICh0aGlzLnRlbXBTdG9yYWdlLkdldE1hc3RlckxvY2F0aW9uTGVnZW5kKCkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuTGVnZW5kTG9jYXRpb25zID0gdGhpcy5WaXNpYmxlTG9jYXRpb25zO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxpc3QgPSB0aGlzLkNoZWNrRm9yRHVwbGljYXRlcyhsaXN0KTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IHRlbXBNYXJrZXI6IE1hcE1hcmtlciA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TG9jYXRpb25CeUlkKGxpc3RbaV0uaWQpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwidGVtcE1hcmtlciA9IFwiLCB0ZW1wTWFya2VyKTtcclxuICAgICAgICBpZiAodGVtcE1hcmtlcikge1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcInB1c2hpbmcgaW4gaWZcIik7XHJcbiAgICAgICAgICB0ZW1wLnB1c2godGVtcE1hcmtlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcInB1c2hpbmcgaW4gZWxzZVwiKTtcclxuICAgICAgICAgIHRlbXAucHVzaChsaXN0W2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuTGVnZW5kTG9jYXRpb25zID0gdGVtcDtcclxuICB9XHJcblxyXG4gIENoZWNrRm9yRHVwbGljYXRlcyhsaXN0OiBBcnJheTxNYXBNYXJrZXI+KTogQXJyYXk8TWFwTWFya2VyPiB7XHJcbiAgICBsZXQgdGVtcDogQXJyYXk8TWFwTWFya2VyPiA9IG5ldyBBcnJheTxNYXBNYXJrZXI+KCk7XHJcblxyXG4gICAgbGV0IGlkcyA9IGxpc3QubWFwKGZ1bmN0aW9uIChpdGVtKSB7XHJcbiAgICAgIHJldHVybiBpdGVtLmlkO1xyXG4gICAgfSk7XHJcbiAgICBsZXQgaWRzVW5pcXVlID0gaWRzLmZpbHRlcihmdW5jdGlvbihpdGVtLCBpbmRleCl7XHJcbiAgICAgIHJldHVybiBpZHMuaW5kZXhPZihpdGVtKSA+PSBpbmRleDtcclxuICAgIH0pO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaWRzVW5pcXVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCB0ZW1wTWFya2VyID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRMb2NhdGlvbkJ5SWQoaWRzVW5pcXVlW2ldKTtcclxuICAgICAgLy9pZiBpdHMgaW4gdGhlIG1hc3Rlcmxpc3RcclxuICAgICAgaWYodGVtcE1hcmtlcil7XHJcbiAgICAgICAgdGVtcC5wdXNoKHRlbXBNYXJrZXIpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vaWYgaXRzIG5vdCBpbiB0aGUgbWFzdGVybGlzdFxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHRlbXAucHVzaChsaXN0LmZpbHRlcihpdGVtPT4gaXRlbS5pZCA9PT0gaWRzVW5pcXVlW2ldKVswXSk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICB9XHJcbiAgICAvL2NvbnNvbGUubG9nKFwiQ2hlY2tlZCBmb3IgZHVwbGljYXRlc1wiLCB0ZW1wKTtcclxuICAgIHJldHVybiB0ZW1wXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbGlzdCBzYXZlcyB0aGUgbGVnZW5kIHRvIGxvY2FsIHN0b3JhZ2VcclxuICAgKi9cclxuICBwdWJsaWMgU2F2ZUxlZ2VuZExvY2F0aW9ucyhsaXN0KTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLlNhdmVMb2NhdGlvbkxlZ2VuZChsaXN0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBtYXAgVGhlIG1hcCB0byByZXBsYWNlIHRoZSBvbmxkIG9uZSB3aXRoXHJcbiAgICogXHJcbiAgICogVGhpcyByZXBsYWNlcyB0aGUgbWFwIGluIHRoZSBkYiB3aXRoIHRoZSBtYXAgKGJhc2VkIG9uIGlkKVxyXG4gICAqL1xyXG4gIHB1YmxpYyBSZXBsYWNlTWFwKG1hcDogSW5kaXZpZHVhbE1hcCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW1wU3RvcmFnZS5SZXBsYWNlTWFwKG1hcCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gTGlzdE9mTWFwcyBUaGUgbGlzdCBvZiBtYXBzIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gZ2V0IHRoZSB0aHVtYm5haWxzIGFuZCBvdGhlciBpbmZvIGZvclxyXG4gICAqIFxyXG4gICAqIGEgdGh1bWJuYWlsIGxpc3QgY29udGFpbnMgdGhlIGltZyB1cmwsIHRoZSB0aXRsZSBvZiB0aGUgbWFwLCBhbmQgdGhlIGxhdCBhbmQgbG9uZyBvZiB0aGUgb3JnaW5cclxuICAgKiBcclxuICAgKi9cclxuICBwdWJsaWMgQnVpbGRUaHVtYm5haWxMaXN0KExpc3RPZk1hcHM6IEFycmF5PEluZGl2aWR1YWxNYXA+KTogQXJyYXk8VGh1bWJuYWlsTGlzdE1vZGVsPiB7XHJcbiAgICB2YXIgdGVtcFRodW1ibmFpbExpc3QgPSBuZXcgQXJyYXk8VGh1bWJuYWlsTGlzdE1vZGVsPigpO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBMaXN0T2ZNYXBzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciB0ZW1wID0gbmV3IFRodW1ibmFpbExpc3RNb2RlbChMaXN0T2ZNYXBzW2ldLCB0aGlzLmdldE1hcFRodW1ibmFpbChMaXN0T2ZNYXBzW2ldLCAyMDAsIDIwMCksIExpc3RPZk1hcHNbaV0udGl0bGUsIExpc3RPZk1hcHNbaV0ub3JpZ2luLmxhdCwgTGlzdE9mTWFwc1tpXS5vcmlnaW4ubG5nKTtcclxuICAgICAgdGVtcFRodW1ibmFpbExpc3QucHVzaCh0ZW1wKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBzb3J0cyBiYXNlZCBvbiB0aGUgVGl0bGUgb2YgdGhlIG1hcCBzbyB0aGUgdGh1bWJuYWlsIGxpc3QgaXMgaW4gYWxwaGFiZXRpY2FsIG9yZGVyXHJcbiAgICAgKi9cclxuICAgIHRlbXBUaHVtYm5haWxMaXN0LnNvcnQoKHQxLCB0MikgPT4ge1xyXG4gICAgICByZXR1cm4gdDEuVGl0bGUudG9VcHBlckNhc2UoKSA+IHQyLlRpdGxlLnRvVXBwZXJDYXNlKCkgPyAxIDogLTE7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0ZW1wVGh1bWJuYWlsTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIG5ldyBwcmltYXJ5IG1hcFxyXG4gICAqIFxyXG4gICAqIENhbGxzIHRoZSBwcm90ZWN0ZWQgbWV0aG9kIFwic2V0TWFwc1dpdGhQcmltYXJ5SWRcIlxyXG4gICAqL1xyXG4gIHB1YmxpYyBQcmltYXJ5TWFwQ2hhbmdlZChpZCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRNYXBzV2l0aFByaW1hcnlJZChpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVzIGFsbCB0aGUgbWFwcyBmcm9tIHRoZSBkYiAoZm9yIHRlc3RpbmcgcHVycG9zZXMgb25seSlcclxuICAgKi9cclxuICBwdWJsaWMgRGVsZXRlTWFwcygpOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuRGVsZXRlTWFwTGlzdCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gKiBDdXJhdGVkIGxpc3Qgb2YgYW1ibF9vbiBsb2NhdGlvbiBtYXJrZXJzXHJcbiAqL1xyXG4gIHB1YmxpYyBHZXRDdXJhdGVkTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmxvY0xvYWRlci5DcmVhdGVMYXllcihDb25zdGFudHMuSlNPTl9EQVRBX0ZPUl9MT0NBVElPTl9DT05WRVJTSU9OLCBDb25zdGFudHMuTUFQX0NPTkZJR19UT19MT0FEKTtcclxuICB9XHJcbiAgLy8gSEVMUEVSU1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBtYXAgVGhlIG1hcCBjb25maWd1cmF0aW9uIGZyb20gd2hpY2ggeW91IHdhbnQgdG8gY3JlYXRlIGEgdGh1bWJuYWlsXHJcbiAgICogQHBhcmFtIHdpZHRoIE9wdGlvbmFsIHdpZHRoIHBhcmFtZXRlciAobXVzdCBhbHNvIGluY2x1ZGUgaGVpZ3RoKVxyXG4gICAqIEBwYXJhbSBoZWlnaHQgT3B0aW9uYWwgaGVpZ2h0IHBhcmFtZXRlciAobXVzdCBhbHNvIGluY2x1ZGUgd2lkdGgpXHJcbiAgICpcclxuICAgKiBUYWtlcyBhIG1hcCBjb25maWd1cmF0aW9uIGZpbGUgYW5kIHJldHVybnMgYSBnb29nbGUgbWFwcyBzdGF0aWMgbWFwIHRvIGJlIHVzZWQgYXMgYSB0aHVtYm5haWxcclxuICAgKlxyXG4gICAqIEluIG9yZGVyIHRvIHNwZWNpZnkgaGVpZ2h0IGFuZCB3aWR0aCwgeW91IG11c3Qgc3BlY2lmeSBCT1RILCBvdGhlcndpc2UsIHRoZSBkZWZhdWx0IGlzIDMwMHgzMDBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZ2V0TWFwVGh1bWJuYWlsKG1hcDogSW5kaXZpZHVhbE1hcCwgd2lkdGg/LCBoZWlnaHQ/KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL3N0YXRpY21hcD9jZW50ZXI9JHttYXAub3JpZ2luLmxhdH0sJHttYXAub3JpZ2luLmxuZ31cclxuICAgICZ6b29tPSR7bWFwLnpvb20gLSAyfVxyXG4gICAgJnNpemU9JHtoZWlnaHQgJiYgd2lkdGggPyB3aWR0aCA6IDMwMH14JHtoZWlnaHQgJiYgd2lkdGggPyBoZWlnaHQgOiAzMDB9XHJcbiAgICAma2V5PUFJemFTeUFzS2g0X1RYcFlWNTdTQnM3ajNiNnFGY0pVRzZmTkhvVWA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIG5ldyBwcmltYXJ5IG1hcFxyXG4gICAqXHJcbiAgICogU2V0cyB0aGUgcHJpbWFyeSBtYXAgdG8gdGhhdCB3aXRoIHRoZSBwYXNzZWQgaWQsXHJcbiAgICpcclxuICAgKiBTZXRzIHRoZSBzZWNvbmRhcnkgbWFwcyB0byBhIGxpc3Qgb2YgYWxsIHRoZSBtYXBzIG1pbnVzIHRoYXQgd2l0aCB0aGUgcGFzc2VkIGlkXHJcbiAgICpcclxuICAgKiBFbWl0cyB0aGUgbmV3IHByaW1hcnkgbWFwXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNldE1hcHNXaXRoUHJpbWFyeUlkKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMucHJpbWFyeU1hcCA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwQnlJZChpZCk7XHJcbiAgICB0aGlzLm1hcExpc3QgPSB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcExpc3QoKS5maWx0ZXIobWFwID0+IG1hcC5pZCAhPT0gaWQpO1xyXG4gICAgdGhpcy5NYXBDaGFuZ2VkLmVtaXQodGhpcy5wcmltYXJ5TWFwKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ== |
@@ -153,2 +153,3 @@ /** | ||
let listId = list[i].id; | ||
//if the location does not already exist in the legend master list | ||
if (master.filter((/** | ||
@@ -159,5 +160,22 @@ * @param {?} item | ||
item => item.id === listId)).length === 0) { | ||
console.log("adding ", list[i], " to the master list"); | ||
//console.log("adding ", list[i], " to the master list"); | ||
temp.push(list[i]); | ||
} | ||
//if the orderIndex has changed for a location this will update it | ||
if (master.filter((/** | ||
* @param {?} item | ||
* @return {?} | ||
*/ | ||
item => item.id === listId && item.orderIndex !== list[i].orderIndex)).length !== 0) { | ||
/** @type {?} */ | ||
let tempMaster = master.filter((/** | ||
* @param {?} item | ||
* @return {?} | ||
*/ | ||
item => item.id === listId)); | ||
//console.log("Location = ", list[i].title); | ||
//console.log("Order index in master = ", tempMaster[0].orderIndex); | ||
//console.log("New order index = ", list[i].orderIndex); | ||
temp[master.indexOf(tempMaster[0])].orderIndex = list[i].orderIndex; | ||
} | ||
} | ||
@@ -187,3 +205,3 @@ localStorage.setItem(this.masterLocationList, JSON.stringify(temp)); | ||
const masterLocationList = localStorage.getItem(this.masterLocationList) === '' ? [] : JSON.parse(localStorage.getItem(this.masterLocationList)); | ||
console.log("masterLocationList = ", masterLocationList); | ||
//console.log("masterLocationList = ", masterLocationList); | ||
// return location with given id | ||
@@ -230,2 +248,2 @@ return masterLocationList.find((/** | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcC5zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvdGVtcC5zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBT25ELE1BQU0sT0FBTyxrQkFBa0I7O0lBbUIzQjs7Ozs7O1FBWG1CLFlBQU8sR0FBVyxnQkFBZ0IsQ0FBQztRQUVuQyxpQkFBWSxHQUFXLHFCQUFxQixDQUFDO1FBRTdDLHVCQUFrQixHQUFXLG1CQUFtQixDQUFDO1FBR2pELGVBQVUsR0FBVyxtQkFBbUIsQ0FBQztRQUt4RCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM3QyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDMUM7UUFDRCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNsRCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDL0M7UUFFRCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3hELFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDaEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBRTdDO0lB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bSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxNYXAsIE1hcE1hcmtlciB9IGZyb20gJ0Bsb3djb2RldW5pdC9sY3UtbWFwLWNvbW1vbic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBUZW1wU3RvcmFnZVNlcnZpY2Uge1xyXG5cclxuICAgIC8vIEZJRUxEU1xyXG4gICAgLy8gUFJPUEVSVElFU1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGNvbnN0YW50IHRoYXQgd2lsbCBiZSB1c2VkIHRvIHN0b3JlIHRoZSBtYXAgbGlzdCBpbiBsb2NhbCBzdG9yYWdlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBtYXBMaXN0OiBzdHJpbmcgPSAnYW1ibF9vbk1hcExpc3QnO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBsb2NhdGlvbkxpc3Q6IHN0cmluZyA9ICdhbWJsX29uTG9jYXRpb25MaXN0JztcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWFzdGVyTG9jYXRpb25MaXN0OiBzdHJpbmcgPSAnYW1ibF9vbk1hc3Rlckxpc3QnO1xyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGFzdFVzZWRJZDogc3RyaW5nID0gJ2FtYmxfb25MYXN0VXNlZElkJztcclxuXHJcbiAgICAvLyBDT05TVFJVQ1RPUlNcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm1hcExpc3QsICcnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYXRpb25MaXN0KSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxvY2F0aW9uTGlzdCwgJycpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFzdGVyTG9jYXRpb25MaXN0KSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm1hc3RlckxvY2F0aW9uTGlzdCwgJycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sYXN0VXNlZElkKSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxhc3RVc2VkSWQsICcnKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIExJRkVDWUNMRVxyXG4gICAgLy8gQVBJU1xyXG5cclxuICAgIHB1YmxpYyBHZXRMYXN0VXNlZElkKCkge1xyXG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxhc3RVc2VkSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBTZXRMYXN0VXNlZElkKGlkOiBzdHJpbmcpIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxhc3RVc2VkSWQsIGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgQWRkTWFwVG9MaXN0KHZhbHVlOiBJbmRpdmlkdWFsTWFwKTogdm9pZCB7XHJcbiAgICAgICAgLy8gdHVybiBzdG9yZWQgbWFwIGludG8gSlMgYXJyYXlcclxuICAgICAgICBjb25zdCBtYXBMaXN0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSA9PT0gJycgPyBbXSA6IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSk7XHJcbiAgICAgICAgLy8gYWRkIG1hcCB0byBhcnJheVxyXG4gICAgICAgIG1hcExpc3QucHVzaCh2YWx1ZSlcclxuICAgICAgICAvLyBzYXZlIG5ldyBhcnJheSB0byBsb2NhbCBzdG9yYWdlXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5tYXBMaXN0LCBKU09OLnN0cmluZ2lmeShtYXBMaXN0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIFJlcGxhY2VNYXAodmFsdWU6IEluZGl2aWR1YWxNYXApOiB2b2lkIHtcclxuICAgICAgICAvLyB0dXJuIHN0b3JlZCBtYXAgaW50byBKUyBhcnJheVxyXG4gICAgICAgIGNvbnN0IG1hcExpc3QgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hcExpc3QpID09PSAnJyA/IFtdIDogSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hcExpc3QpKTtcclxuICAgICAgICAvLyBnZXQgaW5kZXggaW4gYXJyYXkgb2YgbWFwIHRvIHJlcGxhY2VcclxuICAgICAgICBjb25zdCBpZHggPSBtYXBMaXN0LmZpbmRJbmRleChtYXAgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbWFwLmlkID09PSB2YWx1ZS5pZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zb2xlLmxvZyhpZHgpO1xyXG4gICAgICAgIC8vIHJlcGxhY2UgbWFwIGluIGFycmF5IHdpdGggbmV3IG1hcFxyXG4gICAgICAgIG1hcExpc3Quc3BsaWNlKGlkeCwgMSwgdmFsdWUpO1xyXG4gICAgICAgIC8vIHNhdmUgbmV3IGFycmF5IHRvIGxvY2FsIHN0b3JhZ2VcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm1hcExpc3QsIEpTT04uc3RyaW5naWZ5KG1hcExpc3QpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgR2V0TWFwTGlzdCgpOiBBcnJheTxJbmRpdmlkdWFsTWFwPiB7XHJcbiAgICAgICAgLy8gcGFyc2UgSlNPTiBhbmQgcmV0dXJuIHRoZSBhcnJheSBvZiBtYXBzIGZyb20gbG9jYWwgc3RvcmFnZVxyXG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hcExpc3QpID09PSAnJykge1xyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBHZXRNYXBCeUlkKGlkOiBzdHJpbmcpOiBJbmRpdmlkdWFsTWFwIHtcclxuICAgICAgICAvLyB0dXJuIHN0b3JlZCBtYXAgaW50byBKUyBhcnJheVxyXG4gICAgICAgIGNvbnN0IG1hcExpc3QgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hcExpc3QpID09PSAnJyA/IFtdIDogSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hcExpc3QpKTtcclxuICAgICAgICAvLyByZXR1cm4gbWFwIHdpdGggZ2l2ZW4gaWRcclxuICAgICAgICByZXR1cm4gbWFwTGlzdC5maW5kKG1hcCA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBtYXAuaWQgPT09IGlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBEZWxldGVNYXBMaXN0KCk6IHZvaWQge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubWFwTGlzdCwgJycpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYXRpb25MaXN0LCAnJyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5tYXN0ZXJMb2NhdGlvbkxpc3QsICcnKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHVibGljIFNhdmVMb2NhdGlvbkxlZ2VuZChsaXN0OiBBcnJheTxNYXBNYXJrZXI+KTogdm9pZCB7XHJcbiAgICAgICBcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxvY2F0aW9uTGlzdCwgSlNPTi5zdHJpbmdpZnkobGlzdCkpO1xyXG4gICAgICAgIHRoaXMuU2F2ZU1hc3RlckxvY2F0aW9uTGVnZW5kKGxpc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBHZXRMb2NhdGlvbkxlZ2VuZCgpIHtcclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sb2NhdGlvbkxpc3QpID09PSAnJykge1xyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHRlbXA6IEFycmF5PE1hcE1hcmtlcj4gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYXRpb25MaXN0KSk7XHJcbiAgICAgICAgICAgIHJldHVybiB0ZW1wO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgU2F2ZU1hc3RlckxvY2F0aW9uTGVnZW5kKGxpc3Q6IEFycmF5PE1hcE1hcmtlcj4pOiB2b2lkIHtcclxuICAgICAgICBsZXQgbWFzdGVyID0gdGhpcy5HZXRNYXN0ZXJMb2NhdGlvbkxlZ2VuZCgpO1xyXG4gICAgICAgIGxldCB0ZW1wID0gbWFzdGVyO1xyXG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKXtcclxuICAgICAgICAgICAgbGV0IGxpc3RJZCA9IGxpc3RbaV0uaWQ7XHJcbiAgICAgICAgICAgIGlmKG1hc3Rlci5maWx0ZXIoaXRlbT0+IGl0ZW0uaWQgPT09IGxpc3RJZCkubGVuZ3RoID09PSAwKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWRkaW5nIFwiLCBsaXN0W2ldLCBcIiB0byB0aGUgbWFzdGVyIGxpc3RcIik7XHJcbiAgICAgICAgICAgICAgICB0ZW1wLnB1c2gobGlzdFtpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICBcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm1hc3RlckxvY2F0aW9uTGlzdCwgSlNPTi5zdHJpbmdpZnkodGVtcCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBHZXRNYXN0ZXJMb2NhdGlvbkxlZ2VuZCgpIHtcclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXN0ZXJMb2NhdGlvbkxpc3QpID09PSAnJykge1xyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHRlbXA6IEFycmF5PE1hcE1hcmtlcj4gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFzdGVyTG9jYXRpb25MaXN0KSk7XHJcbiAgICAgICAgICAgIHJldHVybiB0ZW1wO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgR2V0TG9jYXRpb25CeUlkKGlkOiBzdHJpbmcpOiBNYXBNYXJrZXIge1xyXG4gICAgICAgIC8vIHR1cm4gc3RvcmVkIGxvY2F0aW9ucyBpbnRvIEpTIGFycmF5XHJcbiAgICAgICAgY29uc3QgbWFzdGVyTG9jYXRpb25MaXN0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXN0ZXJMb2NhdGlvbkxpc3QpID09PSAnJyA/IFtdIDogSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hc3RlckxvY2F0aW9uTGlzdCkpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwibWFzdGVyTG9jYXRpb25MaXN0ID0gXCIsIG1hc3RlckxvY2F0aW9uTGlzdCk7XHJcbiAgICAgICAgLy8gcmV0dXJuIGxvY2F0aW9uIHdpdGggZ2l2ZW4gaWRcclxuICAgICAgICByZXR1cm4gbWFzdGVyTG9jYXRpb25MaXN0LmZpbmQobG9jYXRpb24gPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbG9jYXRpb24uaWQgPT09IGlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEhFTFBFUlNcclxuXHJcbn1cclxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcC5zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvdGVtcC5zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBUW5ELE1BQU0sT0FBTyxrQkFBa0I7O0lBbUIzQjs7Ozs7O1FBWG1CLFlBQU8sR0FBVyxnQkFBZ0IsQ0FBQztRQUVuQyxpQkFBWSxHQUFXLHFCQUFxQixDQUFDO1FBRTdDLHVCQUFrQixHQUFXLG1CQUFtQixDQUFDO1FBR2pELGVBQVUsR0FBVyxtQkFBbUIsQ0FBQztRQUt4RCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM3QyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDMUM7UUFDRCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNsRCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3hELFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDaEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBRTdDO0lB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QyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hKLDJEQUEyRDtRQUMzRCxnQ0FBZ0M7UUFDaEMsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJOzs7O1FBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdEMsT0FBTyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUM5QixDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7OztZQXpKSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7Ozs7Ozs7Ozs7O0lBVUcscUNBQXNEOzs7OztJQUV0RCwwQ0FBZ0U7Ozs7O0lBRWhFLGdEQUFvRTs7Ozs7SUFHcEUsd0NBQTREIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxNYXAsIE1hcE1hcmtlciB9IGZyb20gJ0Bsb3djb2RldW5pdC9sY3UtbWFwLWNvbW1vbic7XHJcbmltcG9ydCB7IGlzTmdUZW1wbGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFRlbXBTdG9yYWdlU2VydmljZSB7XHJcblxyXG4gICAgLy8gRklFTERTXHJcbiAgICAvLyBQUk9QRVJUSUVTXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgY29uc3RhbnQgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc3RvcmUgdGhlIG1hcCBsaXN0IGluIGxvY2FsIHN0b3JhZ2VcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1hcExpc3Q6IHN0cmluZyA9ICdhbWJsX29uTWFwTGlzdCc7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2F0aW9uTGlzdDogc3RyaW5nID0gJ2FtYmxfb25Mb2NhdGlvbkxpc3QnO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBtYXN0ZXJMb2NhdGlvbkxpc3Q6IHN0cmluZyA9ICdhbWJsX29uTWFzdGVyTGlzdCc7XHJcblxyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBsYXN0VXNlZElkOiBzdHJpbmcgPSAnYW1ibF9vbkxhc3RVc2VkSWQnO1xyXG5cclxuICAgIC8vIENPTlNUUlVDVE9SU1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hcExpc3QpID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubWFwTGlzdCwgJycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sb2NhdGlvbkxpc3QpID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYXRpb25MaXN0LCAnJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hc3RlckxvY2F0aW9uTGlzdCkgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5tYXN0ZXJMb2NhdGlvbkxpc3QsICcnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubGFzdFVzZWRJZCkgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5sYXN0VXNlZElkLCAnJyk7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBMSUZFQ1lDTEVcclxuICAgIC8vIEFQSVNcclxuXHJcbiAgICBwdWJsaWMgR2V0TGFzdFVzZWRJZCgpIHtcclxuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sYXN0VXNlZElkKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgU2V0TGFzdFVzZWRJZChpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5sYXN0VXNlZElkLCBpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIEFkZE1hcFRvTGlzdCh2YWx1ZTogSW5kaXZpZHVhbE1hcCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHR1cm4gc3RvcmVkIG1hcCBpbnRvIEpTIGFycmF5XHJcbiAgICAgICAgY29uc3QgbWFwTGlzdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFwTGlzdCkgPT09ICcnID8gW10gOiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFwTGlzdCkpO1xyXG4gICAgICAgIC8vIGFkZCBtYXAgdG8gYXJyYXlcclxuICAgICAgICBtYXBMaXN0LnB1c2godmFsdWUpXHJcbiAgICAgICAgLy8gc2F2ZSBuZXcgYXJyYXkgdG8gbG9jYWwgc3RvcmFnZVxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubWFwTGlzdCwgSlNPTi5zdHJpbmdpZnkobWFwTGlzdCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBSZXBsYWNlTWFwKHZhbHVlOiBJbmRpdmlkdWFsTWFwKTogdm9pZCB7XHJcbiAgICAgICAgLy8gdHVybiBzdG9yZWQgbWFwIGludG8gSlMgYXJyYXlcclxuICAgICAgICBjb25zdCBtYXBMaXN0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSA9PT0gJycgPyBbXSA6IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSk7XHJcbiAgICAgICAgLy8gZ2V0IGluZGV4IGluIGFycmF5IG9mIG1hcCB0byByZXBsYWNlXHJcbiAgICAgICAgY29uc3QgaWR4ID0gbWFwTGlzdC5maW5kSW5kZXgobWFwID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG1hcC5pZCA9PT0gdmFsdWUuaWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc29sZS5sb2coaWR4KTtcclxuICAgICAgICAvLyByZXBsYWNlIG1hcCBpbiBhcnJheSB3aXRoIG5ldyBtYXBcclxuICAgICAgICBtYXBMaXN0LnNwbGljZShpZHgsIDEsIHZhbHVlKTtcclxuICAgICAgICAvLyBzYXZlIG5ldyBhcnJheSB0byBsb2NhbCBzdG9yYWdlXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5tYXBMaXN0LCBKU09OLnN0cmluZ2lmeShtYXBMaXN0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIEdldE1hcExpc3QoKTogQXJyYXk8SW5kaXZpZHVhbE1hcD4ge1xyXG4gICAgICAgIC8vIHBhcnNlIEpTT04gYW5kIHJldHVybiB0aGUgYXJyYXkgb2YgbWFwcyBmcm9tIGxvY2FsIHN0b3JhZ2VcclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFwTGlzdCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgR2V0TWFwQnlJZChpZDogc3RyaW5nKTogSW5kaXZpZHVhbE1hcCB7XHJcbiAgICAgICAgLy8gdHVybiBzdG9yZWQgbWFwIGludG8gSlMgYXJyYXlcclxuICAgICAgICBjb25zdCBtYXBMaXN0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSA9PT0gJycgPyBbXSA6IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSk7XHJcbiAgICAgICAgLy8gcmV0dXJuIG1hcCB3aXRoIGdpdmVuIGlkXHJcbiAgICAgICAgcmV0dXJuIG1hcExpc3QuZmluZChtYXAgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbWFwLmlkID09PSBpZDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgRGVsZXRlTWFwTGlzdCgpOiB2b2lkIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm1hcExpc3QsICcnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxvY2F0aW9uTGlzdCwgJycpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubWFzdGVyTG9jYXRpb25MaXN0LCAnJyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBTYXZlTG9jYXRpb25MZWdlbmQobGlzdDogQXJyYXk8TWFwTWFya2VyPik6IHZvaWQge1xyXG4gICAgICAgXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5sb2NhdGlvbkxpc3QsIEpTT04uc3RyaW5naWZ5KGxpc3QpKTtcclxuICAgICAgICB0aGlzLlNhdmVNYXN0ZXJMb2NhdGlvbkxlZ2VuZChsaXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgR2V0TG9jYXRpb25MZWdlbmQoKSB7XHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYXRpb25MaXN0KSA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCB0ZW1wOiBBcnJheTxNYXBNYXJrZXI+ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2F0aW9uTGlzdCkpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGVtcDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIFNhdmVNYXN0ZXJMb2NhdGlvbkxlZ2VuZChsaXN0OiBBcnJheTxNYXBNYXJrZXI+KTogdm9pZCB7XHJcbiAgICAgICAgbGV0IG1hc3RlciA9IHRoaXMuR2V0TWFzdGVyTG9jYXRpb25MZWdlbmQoKTtcclxuICAgICAgICBsZXQgdGVtcCA9IG1hc3RlcjtcclxuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGxldCBsaXN0SWQgPSBsaXN0W2ldLmlkO1xyXG4gICAgICAgICAgICAvL2lmIHRoZSBsb2NhdGlvbiBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0IGluIHRoZSBsZWdlbmQgbWFzdGVyIGxpc3RcclxuICAgICAgICAgICAgaWYobWFzdGVyLmZpbHRlcihpdGVtPT4gaXRlbS5pZCA9PT0gbGlzdElkKS5sZW5ndGggPT09IDApe1xyXG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcImFkZGluZyBcIiwgbGlzdFtpXSwgXCIgdG8gdGhlIG1hc3RlciBsaXN0XCIpO1xyXG4gICAgICAgICAgICAgICAgdGVtcC5wdXNoKGxpc3RbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vaWYgdGhlIG9yZGVySW5kZXggaGFzIGNoYW5nZWQgZm9yIGEgbG9jYXRpb24gdGhpcyB3aWxsIHVwZGF0ZSBpdFxyXG4gICAgICAgICAgICBpZihtYXN0ZXIuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pZCA9PT0gbGlzdElkICYmIGl0ZW0ub3JkZXJJbmRleCAhPT0gbGlzdFtpXS5vcmRlckluZGV4KS5sZW5ndGggIT09IDApe1xyXG4gICAgICAgICAgICAgICAgbGV0IHRlbXBNYXN0ZXIgPSBtYXN0ZXIuZmlsdGVyKGl0ZW09PiBpdGVtLmlkID09PSBsaXN0SWQpO1xyXG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIkxvY2F0aW9uID0gXCIsIGxpc3RbaV0udGl0bGUpO1xyXG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIk9yZGVyIGluZGV4IGluIG1hc3RlciA9IFwiLCB0ZW1wTWFzdGVyWzBdLm9yZGVySW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIk5ldyBvcmRlciBpbmRleCA9IFwiLCBsaXN0W2ldLm9yZGVySW5kZXgpO1xyXG4gICAgICAgICAgICAgICB0ZW1wW21hc3Rlci5pbmRleE9mKHRlbXBNYXN0ZXJbMF0pXS5vcmRlckluZGV4ID0gbGlzdFtpXS5vcmRlckluZGV4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5tYXN0ZXJMb2NhdGlvbkxpc3QsIEpTT04uc3RyaW5naWZ5KHRlbXApKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgR2V0TWFzdGVyTG9jYXRpb25MZWdlbmQoKSB7XHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFzdGVyTG9jYXRpb25MaXN0KSA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCB0ZW1wOiBBcnJheTxNYXBNYXJrZXI+ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hc3RlckxvY2F0aW9uTGlzdCkpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGVtcDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIEdldExvY2F0aW9uQnlJZChpZDogc3RyaW5nKTogTWFwTWFya2VyIHtcclxuICAgICAgICAvLyB0dXJuIHN0b3JlZCBsb2NhdGlvbnMgaW50byBKUyBhcnJheVxyXG4gICAgICAgIGNvbnN0IG1hc3RlckxvY2F0aW9uTGlzdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFzdGVyTG9jYXRpb25MaXN0KSA9PT0gJycgPyBbXSA6IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXN0ZXJMb2NhdGlvbkxpc3QpKTtcclxuICAgICAgICAvL2NvbnNvbGUubG9nKFwibWFzdGVyTG9jYXRpb25MaXN0ID0gXCIsIG1hc3RlckxvY2F0aW9uTGlzdCk7XHJcbiAgICAgICAgLy8gcmV0dXJuIGxvY2F0aW9uIHdpdGggZ2l2ZW4gaWRcclxuICAgICAgICByZXR1cm4gbWFzdGVyTG9jYXRpb25MaXN0LmZpbmQobG9jYXRpb24gPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbG9jYXRpb24uaWQgPT09IGlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEhFTFBFUlNcclxuXHJcbn1cclxuIl19 |
@@ -82,14 +82,16 @@ /** | ||
this.MapTitle = this.primaryMap !== undefined ? this.primaryMap.title : ''; | ||
//let locList = new Array<MapMarker>(); | ||
/** @type {?} */ | ||
var locList = new Array(); | ||
/** @type {?} */ | ||
var visLoc = this.mapService.GetLegendLocations(); | ||
console.log("setting legend to = ", visLoc); | ||
//console.log("setting legend to = ", visLoc); | ||
if (visLoc.length > 0) { | ||
locList = this.moveUndefinedToBottom(visLoc); | ||
visLoc.sort(this.compareObject); | ||
this.LocationsList = this.assignIconUrl(visLoc); | ||
this.LocationsList.sort(this.compareObject); | ||
//console.log("Locations List after sort: ", this.LocationsList); | ||
this.LocationsList = this.moveUndefinedToBottom(this.LocationsList); | ||
//console.log("Locations List after move to bottom: ", this.LocationsList); | ||
//console.log("locList = ", locList); | ||
} | ||
this.assignIconUrl(locList); | ||
//console.log("Locations List = " + this.LocationsList[0].title); | ||
//console.log("LocList: ", locList); | ||
//console.log("visLoc: ", visLoc); | ||
}; | ||
@@ -132,2 +134,3 @@ /** | ||
function (event) { | ||
console.log("drop event called"); | ||
moveItemInArray(this.LocationsList, event.previousIndex, event.currentIndex); | ||
@@ -167,2 +170,4 @@ this.giveOrder(); | ||
function (locList) { | ||
/** @type {?} */ | ||
var temp = new Array(); | ||
for (var i = 0; i < locList.length; i++) { | ||
@@ -174,5 +179,5 @@ for (var j = 0; j < this.iconList.length; j++) { | ||
} | ||
// let tempLoc: MapMarker = new MapMarker({title: temp.title, lat: temp.lat, lng: temp.lng, iconName: temp.iconName, iconUrl: tempIcon}); | ||
this.LocationsList.push(locList[i]); | ||
temp.push(locList[i]); | ||
} | ||
return temp; | ||
}; | ||
@@ -265,2 +270,3 @@ /** | ||
locList.push(value); | ||
//console.log("pushing ", value, " to ", locList); | ||
} | ||
@@ -332,2 +338,2 @@ else { | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhbWJsLW9uL2xjdS1hbWJsLW9uLWNvbW1vbi8iLCJzb3VyY2VzIjpbImxpYi9jb250cm9scy9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBSXpFO0lBaUNFLGFBQWE7SUFFYix5QkFBc0IsVUFBc0IsRUFBWSxjQUFrQztRQUFwRSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVksbUJBQWMsR0FBZCxjQUFjLENBQW9COzs7OztRQXRCaEYsZUFBVSxHQUFrQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDOzs7O1FBSzVELGFBQVEsR0FBc0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQzs7Ozs7UUFZakUsa0JBQWEsR0FBcUIsSUFBSSxLQUFLLEVBQWEsQ0FBQztRQU05RCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFlBQVk7Ozs7O0lBRVosa0NBQVE7Ozs7O0lBQVI7SUFDQSxDQUFDO0lBSUQ7Ozs7OztPQU1HO0lBRUgsYUFBYTs7Ozs7O0lBRU4sK0JBQUs7Ozs7O0lBQVosVUFBYSxNQUFpQjtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLG9EQUFvRDtJQUN0RCxDQUFD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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxNYXAsIE1hcmtlckluZm8sIE1hcE1hcmtlciB9IGZyb20gJ0Bsb3djb2RldW5pdC9sY3UtbWFwLWNvbW1vbic7XHJcbmltcG9ydCB7IE1hcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbXBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbXAuc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsY3UtbGVnZW5kJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGVnZW5kLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sZWdlbmQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIExlZ2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vUFJPUEVSVElFU1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgcHJpbWFyeSBtYXAgbG9jYXRpb25zXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHByaW1hcnlNYXA6IEluZGl2aWR1YWxNYXAgPSB0aGlzLm1hcFNlcnZpY2UuR2V0UHJpbWFyeU1hcCgpO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgTWFya2VySW5mbyB3aGVyZSB0aGUgaWNvbiB1cmwgY2FuIGJlIHJlZnJlbmNlZFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBpY29uTGlzdDogQXJyYXk8TWFya2VySW5mbz4gPSB0aGlzLm1hcFNlcnZpY2UuR2V0TWFya2VyTGlzdCgpO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgVGl0bGUgb2YgdGhlIG1hcCB3aGljaCBpcyBkaXNwbGF5ZWQgYXQgdGhlIHRvcCBvZiB0aGUgTGVnZW5kIFxyXG4gICAqL1xyXG4gIHB1YmxpYyBNYXBUaXRsZTogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgTGlzdCBvZiBsb2NhdGlvbnMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgbGVnZW5kXHJcbiAgICovXHJcbiAgLy9wdWJsaWMgTG9jYXRpb25zTGlzdDogQXJyYXk8TG9jYXRpb25MaXN0TW9kZWw+ID0gbmV3IEFycmF5PExvY2F0aW9uTGlzdE1vZGVsPigpO1xyXG5cclxuICBwdWJsaWMgTG9jYXRpb25zTGlzdDogQXJyYXk8TWFwTWFya2VyPiA9IG5ldyBBcnJheTxNYXBNYXJrZXI+KCk7XHJcblxyXG5cclxuICAvL0NPTlNUUlVDVE9SXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBtYXBTZXJ2aWNlOiBNYXBTZXJ2aWNlLCBwcm90ZWN0ZWQgc3RvcmFnZVNlcnZpY2U6IFRlbXBTdG9yYWdlU2VydmljZSkge1xyXG4gICAgdGhpcy5TZXRMb2NhdGlvbkxpc3QoKTtcclxuICB9XHJcblxyXG4gIC8vTElGRSBDWUNMRVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIGxhdCBUaGUgbGF0aXR1ZGUgdG8gcGFuIHRvXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGxvbmcgVGhlIGxvbmdpdHVkZSB0byBwYW4gdG9cclxuICAgKiBcclxuICAgKiBDYWxscyBmdW5jdGlvbiBvbiBtYXAgc2VydmljZSB0aGF0IGVtaXRzIGV2ZW50IHdpdGggdGhlIGdpdmVuIGxhdC9sbmdcclxuICAgKi9cclxuXHJcbiAgLy9BUEkgTUVUSE9EU1xyXG5cclxuICBwdWJsaWMgUGFuVG8obWFya2VyOiBNYXBNYXJrZXIpIHtcclxuICAgIHRoaXMubWFwU2VydmljZS5DaGFuZ2VMYXRMbmcobWFya2VyLmxhdCwgbWFya2VyLmxuZyk7XHJcbiAgICB0aGlzLm1hcFNlcnZpY2UuRGlzcGxheUJhc2ljSW5mbyhtYXJrZXIpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhcIk1hcmtlciBpbiBsZWdlbmQgPSBcIiArIG1hcmtlci50aXRsZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIG1hcCB0aGUgbWFwIGNvbmZpZyB0aGF0IGlzIHBhc3NlZCBpblxyXG4gICAqIFxyXG4gICAqIHRoaXMgZnVuY3Rpb24gbG9vcHMgdGhyb3VnaCB0aGUgbWFwIGNvZmlnIGFuZCBmaWxscyB0aGUgTG9jYXRpb25zTGlzdFxyXG4gICAqIFxyXG4gICAqICh0aGlzIGlzIHdoYXQgaXMgZGlzcGxheWVkIG9uIHRoZSBkcm9wIGRvd24pXHJcbiAgICovXHJcbiAgcHVibGljIFNldExvY2F0aW9uTGlzdCgpIHtcclxuICAgIC8vc2V0IHRvIG5ldyBzbyBubyBkdXBsaWNhdGVzIHByZXNlbnQgdGhlbXNlbHZlc1xyXG4gICAgdGhpcy5Mb2NhdGlvbnNMaXN0ID0gbmV3IEFycmF5PE1hcE1hcmtlcj4oKTtcclxuICAgIHRoaXMuTWFwVGl0bGUgPSB0aGlzLnByaW1hcnlNYXAgIT09IHVuZGVmaW5lZCA/IHRoaXMucHJpbWFyeU1hcC50aXRsZSA6ICcnO1xyXG4gICAgbGV0IGxvY0xpc3QgPSBuZXcgQXJyYXk8TWFwTWFya2VyPigpO1xyXG4gICAgIGxldCB2aXNMb2MgPSB0aGlzLm1hcFNlcnZpY2UuR2V0TGVnZW5kTG9jYXRpb25zKCk7XHJcbiAgICAgY29uc29sZS5sb2coXCJzZXR0aW5nIGxlZ2VuZCB0byA9IFwiLCB2aXNMb2MpO1xyXG4gICAgaWYgKHZpc0xvYy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxvY0xpc3QgPSB0aGlzLm1vdmVVbmRlZmluZWRUb0JvdHRvbSh2aXNMb2MpO1xyXG4gICAgICB2aXNMb2Muc29ydCh0aGlzLmNvbXBhcmVPYmplY3QpO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKFwibG9jTGlzdCA9IFwiLCBsb2NMaXN0KTtcclxuICAgIH1cclxuICAgIHRoaXMuYXNzaWduSWNvblVybChsb2NMaXN0KTtcclxuICAgIC8vY29uc29sZS5sb2coXCJMb2NhdGlvbnMgTGlzdCA9IFwiICsgdGhpcy5Mb2NhdGlvbnNMaXN0WzBdLnRpdGxlKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBAcGFyYW0gZXZlbnQgXHJcbiAgICogXHJcbiAgICogVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBkcmFnIGFuZCBkcm9wIHRvIHJlZmxlY3QgdGhlIGNoYW5nZXNcclxuICAgKiBcclxuICAgKiBUT0RPOiBUaGlzIGRvZXMgbm90IGFjdHVhbGx5IHNhdmUgdGhlIG5ldyBhcnJheSB0byBtZW1vcnksIHNvIHVwb24gcmVmcmVzaFxyXG4gICAqIFxyXG4gICAqIGl0IHdpbGwgZ28gYmFjayB0byB0aGUgb3JpZ2luYWwgb3JkZXIuXHJcbiAgICogXHJcbiAgICogVXBkYXRlVmlzaWJsZUxvY2F0aW9ucyBhc3NpZ25zIHRoZSBuZXdseSBvcmRlcmVkIExvY2F0aW9uc0xpc3QgdG8gdGhlIFZpc2libGVMb2NhdGlvbnMgaW4gbWFwU2VydmljZVxyXG4gICAqL1xyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuTG9jYXRpb25zTGlzdCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIHRoaXMuZ2l2ZU9yZGVyKCk7XHJcbiAgICB0aGlzLm1hcFNlcnZpY2UuU2F2ZUxlZ2VuZExvY2F0aW9ucyh0aGlzLkxvY2F0aW9uc0xpc3QpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vSEVMUEVSU1xyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBsb2NMaXN0IGFuIGFycmF5IG9mIHRoZSBtYXBNYXJrZXJzXHJcbiAgICogXHJcbiAgICogbG9vcCBpIGdldHMgdGhlIG1hcE1hcmtlclxyXG4gICAqIFxyXG4gICAqIGxvb3AgaiBsb29wcyB0aHJvdWdoIHRoZSB0aGUgaWNvbiBsaXN0IHRvIG1hdGNoIHRoZSBpY29uTmFtZSB0byB0aGUgaWNvblVybFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBhc3NpZ25JY29uVXJsKGxvY0xpc3Q6IEFycmF5PE1hcE1hcmtlcj4pIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbG9jTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHRoaXMuaWNvbkxpc3QubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICBpZiAobG9jTGlzdFtpXS5pY29uTmFtZS5tYXRjaCh0aGlzLmljb25MaXN0W2pdLmljb25Mb29rdXApKSB7XHJcbiAgICAgICAgICBsb2NMaXN0W2ldLmljb25VcmwgPSB0aGlzLmljb25MaXN0W2pdLmljb25Vcmw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIGxldCB0ZW1wTG9jOiBNYXBNYXJrZXIgPSBuZXcgTWFwTWFya2VyKHt0aXRsZTogdGVtcC50aXRsZSwgbGF0OiB0ZW1wLmxhdCwgbG5nOiB0ZW1wLmxuZywgaWNvbk5hbWU6IHRlbXAuaWNvbk5hbWUsIGljb25Vcmw6IHRlbXBJY29ufSk7XHJcbiAgICAgIHRoaXMuTG9jYXRpb25zTGlzdC5wdXNoKGxvY0xpc3RbaV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2l2ZXMgb3JkZXIgdG8gdGhlIE1hcE1hcmtlcnMgYmFzZWQgb24gaG93IHRoZSB1c2VyIG9yZGVycyB0aGUgbGVnZW5kXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdpdmVPcmRlcigpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5Mb2NhdGlvbnNMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHRoaXMuTG9jYXRpb25zTGlzdFtpXS5vcmRlckluZGV4ID0gaTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNvbXBhcmVzIGFuZCBzb3J0cyB0aGUgb2JqZWN0cyBiYXNlZCBvbiBvcmRlckluZGV4IFxyXG4gICAqIFxyXG4gICAqIGlmIHRoZSBpbmRleGVzIGFyZSB0aGUgc2FtZSB0aGVuIGl0IGNvbXBhcmVzIGJhc2VkIG9uIHRpdGxlIHNvIGl0IGlzIGFscGhhYmV0aWNhbCBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgY29tcGFyZU9iamVjdChvYmoxLCBvYmoyKXtcclxuICAgIGlmKG9iajEub3JkZXJJbmRleCA+IG9iajIub3JkZXJJbmRleClcclxuICAgICAgICByZXR1cm4gMTtcclxuICAgIGlmKG9iajEub3JkZXJJbmRleCA8IG9iajIub3JkZXJJbmRleClcclxuICAgICAgICByZXR1cm4gLTE7XHJcblxyXG4gICAgLy8gb2JqMS5vcmRlckluZGV4ID09IG9iajIub3JkZXJJbmRleFxyXG5cclxuICAgIGlmKG9iajEudGl0bGUgPiBvYmoyLnRpdGxlKVxyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgaWYob2JqMS50aXRsZSA8IG9iajIudGl0bGUpXHJcbiAgICAgICAgcmV0dXJuIC0xO1xyXG5cclxuICAgIHJldHVybiAwO1xyXG59XHJcbi8qKlxyXG4gKiB3aXRob3V0IHRoaXMgdGhlIE1hcE1hcmtlciBvYmplY3RzIHRoYXQgaGF2ZSBhbiB1bmRlZmluZWQgaW5kZXhPcmRlciBhcmUgcHV0IGF0IHRoZSB0b3BcclxuICogXHJcbiAqIHRoaXMgbWV0aG9kIHNldHMgdGhlIHVuZGVmaW5lZCBpbmRleE9yZGVyIGFzaWRlIGFuZCBhcHBlbmRzIHRoZW0gdG8gdGhlIGVuZCBvZiB0aGUgYXJyYXkvbGVnZW5kXHJcbiAqL1xyXG4gIHByb3RlY3RlZCBtb3ZlVW5kZWZpbmVkVG9Cb3R0b20obGlzdDpBcnJheTxNYXBNYXJrZXI+KSB7XHJcbiAgICBsZXQgdW5kZWZpbmVkTGlzdCA9IG5ldyBBcnJheTxNYXBNYXJrZXI+KCk7XHJcbiAgICBsZXQgbG9jTGlzdCA9IG5ldyBBcnJheTxNYXBNYXJrZXI+KCk7XHJcblxyXG4gICAgbGlzdC5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUub3JkZXJJbmRleCA+PSAwKSB7XHJcbiAgICAgICAgbG9jTGlzdC5wdXNoKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB1bmRlZmluZWRMaXN0LnB1c2godmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJPcmRlciA9IFwiLCB2YWx1ZS5vcmRlckluZGV4LCBcIlRpdGxlID0gXCIsIHZhbHVlLnRpdGxlKTtcclxuICAgIH0pO1xyXG4gICAgaWYgKHVuZGVmaW5lZExpc3QpIHtcclxuICAgICAgdW5kZWZpbmVkTGlzdC5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkge1xyXG4gICAgICAgIGxvY0xpc3QucHVzaCh2YWx1ZSk7XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICByZXR1cm4gbG9jTGlzdDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhbWJsLW9uL2xjdS1hbWJsLW9uLWNvbW1vbi8iLCJzb3VyY2VzIjpbImxpYi9jb250cm9scy9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBSXpFO0lBaUNFLGFBQWE7SUFFYix5QkFBc0IsVUFBc0IsRUFBWSxjQUFrQztRQUFwRSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVksbUJBQWMsR0FBZCxjQUFjLENBQW9COzs7OztRQXRCaEYsZUFBVSxHQUFrQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDOzs7O1FBSzVELGFBQVEsR0FBc0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQzs7Ozs7UUFZakUsa0JBQWEsR0FBcUIsSUFBSSxLQUFLLEVBQWEsQ0FBQztRQU05RCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFlBQVk7Ozs7O0lBRVosa0NBQVE7Ozs7O0lBQVI7SUFDQSxDQUFDO0lBSUQ7Ozs7OztPQU1HO0lBRUgsYUFBYTs7Ozs7O0lBRU4sK0JBQUs7Ozs7O0lBQVosVUFBYSxNQUFpQjtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLG9EQUFvRDtJQUN0RCxDQUFDO0lBR0Q7Ozs7OztPQU1HOzs7O0lBQ0kseUNBQWU7OztJQUF0QjtRQUNFLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksS0FBSyxFQUFhLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs7O1lBRXZFLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFO1FBQ2pELDhDQUE4QztRQUM5QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDNUMsaUVBQWlFO1lBRWpFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNwRSwyRUFBMkU7WUFJM0UscUNBQXFDO1NBQ3RDO1FBQ0Qsb0NBQW9DO1FBQ3BDLGtDQUFrQztJQUNwQyxDQUFDO0lBR0Q7Ozs7Ozs7Ozs7T0FVRzs7Ozs7Ozs7Ozs7OztJQUNILDhCQUFJOzs7Ozs7Ozs7Ozs7SUFBSixVQUFLLEtBQTRCO1FBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNqQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUdELFNBQVM7SUFDVDs7Ozs7O09BTUc7Ozs7Ozs7Ozs7O0lBQ08sdUNBQWE7Ozs7Ozs7Ozs7O0lBQXZCLFVBQXdCLE9BQXlCOztZQUMzQyxJQUFJLEdBQXFCLElBQUksS0FBSyxFQUFhO1FBQ25ELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3ZDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFO29CQUMxRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2lCQUMvQzthQUNGO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHOzs7Ozs7SUFDTyxtQ0FBUzs7Ozs7SUFBbkI7UUFDRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7Ozs7Ozs7Ozs7SUFDTyx1Q0FBYTs7Ozs7Ozs7O0lBQXZCLFVBQXdCLElBQUksRUFBRSxJQUFJO1FBQ2hDLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVTtZQUNuQyxPQUFPLENBQUMsQ0FBQztRQUNYLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVTtZQUNuQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRVoscUNBQXFDO1FBRXJDLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSztZQUN6QixPQUFPLENBQUMsQ0FBQztRQUNYLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSztZQUN6QixPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRVosT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0Q7Ozs7T0FJRzs7Ozs7Ozs7O0lBQ08sK0NBQXFCOzs7Ozs7OztJQUEvQixVQUFnQyxJQUFzQjs7WUFDaEQsYUFBYSxHQUFHLElBQUksS0FBSyxFQUFhOztZQUN0QyxPQUFPLEdBQUcsSUFBSSxLQUFLLEVBQWE7UUFFcEMsSUFBSSxDQUFDLE9BQU87Ozs7UUFBQyxVQUFVLEtBQUs7WUFDMUIsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsRUFBRTtnQkFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEIsa0RBQWtEO2FBQ25EO2lCQUNJO2dCQUNILGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDM0I7WUFDRCxxRUFBcUU7UUFDdkUsQ0FBQyxFQUFDLENBQUM7UUFDSCxJQUFJLGFBQWEsRUFBRTtZQUNqQixhQUFhLENBQUMsT0FBTzs7OztZQUFDLFVBQVUsS0FBSztnQkFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QixDQUFDLEVBQUMsQ0FBQTtTQUNIO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7Z0JBNUxGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsc3pCQUFzQzs7aUJBRXZDOzs7O2dCQVRRLFVBQVU7Z0JBQ1Ysa0JBQWtCOztJQWtNM0Isc0JBQUM7Q0FBQSxBQTlMRCxJQThMQztTQXhMWSxlQUFlOzs7Ozs7O0lBTzFCLHFDQUFzRTs7Ozs7O0lBS3RFLG1DQUF3RTs7Ozs7SUFLeEUsbUNBQXdCOzs7OztJQU94Qix3Q0FBZ0U7Ozs7O0lBS3BELHFDQUFnQzs7Ozs7SUFBRSx5Q0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxNYXAsIE1hcmtlckluZm8sIE1hcE1hcmtlciB9IGZyb20gJ0Bsb3djb2RldW5pdC9sY3UtbWFwLWNvbW1vbic7XHJcbmltcG9ydCB7IE1hcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlbXBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbXAuc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsY3UtbGVnZW5kJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGVnZW5kLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sZWdlbmQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIExlZ2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vUFJPUEVSVElFU1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgcHJpbWFyeSBtYXAgbG9jYXRpb25zXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHByaW1hcnlNYXA6IEluZGl2aWR1YWxNYXAgPSB0aGlzLm1hcFNlcnZpY2UuR2V0UHJpbWFyeU1hcCgpO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgTWFya2VySW5mbyB3aGVyZSB0aGUgaWNvbiB1cmwgY2FuIGJlIHJlZnJlbmNlZFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBpY29uTGlzdDogQXJyYXk8TWFya2VySW5mbz4gPSB0aGlzLm1hcFNlcnZpY2UuR2V0TWFya2VyTGlzdCgpO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgVGl0bGUgb2YgdGhlIG1hcCB3aGljaCBpcyBkaXNwbGF5ZWQgYXQgdGhlIHRvcCBvZiB0aGUgTGVnZW5kIFxyXG4gICAqL1xyXG4gIHB1YmxpYyBNYXBUaXRsZTogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgTGlzdCBvZiBsb2NhdGlvbnMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgbGVnZW5kXHJcbiAgICovXHJcbiAgLy9wdWJsaWMgTG9jYXRpb25zTGlzdDogQXJyYXk8TG9jYXRpb25MaXN0TW9kZWw+ID0gbmV3IEFycmF5PExvY2F0aW9uTGlzdE1vZGVsPigpO1xyXG5cclxuICBwdWJsaWMgTG9jYXRpb25zTGlzdDogQXJyYXk8TWFwTWFya2VyPiA9IG5ldyBBcnJheTxNYXBNYXJrZXI+KCk7XHJcblxyXG5cclxuICAvL0NPTlNUUlVDVE9SXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBtYXBTZXJ2aWNlOiBNYXBTZXJ2aWNlLCBwcm90ZWN0ZWQgc3RvcmFnZVNlcnZpY2U6IFRlbXBTdG9yYWdlU2VydmljZSkge1xyXG4gICAgdGhpcy5TZXRMb2NhdGlvbkxpc3QoKTtcclxuICB9XHJcblxyXG4gIC8vTElGRSBDWUNMRVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIGxhdCBUaGUgbGF0aXR1ZGUgdG8gcGFuIHRvXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGxvbmcgVGhlIGxvbmdpdHVkZSB0byBwYW4gdG9cclxuICAgKiBcclxuICAgKiBDYWxscyBmdW5jdGlvbiBvbiBtYXAgc2VydmljZSB0aGF0IGVtaXRzIGV2ZW50IHdpdGggdGhlIGdpdmVuIGxhdC9sbmdcclxuICAgKi9cclxuXHJcbiAgLy9BUEkgTUVUSE9EU1xyXG5cclxuICBwdWJsaWMgUGFuVG8obWFya2VyOiBNYXBNYXJrZXIpIHtcclxuICAgIHRoaXMubWFwU2VydmljZS5DaGFuZ2VMYXRMbmcobWFya2VyLmxhdCwgbWFya2VyLmxuZyk7XHJcbiAgICB0aGlzLm1hcFNlcnZpY2UuRGlzcGxheUJhc2ljSW5mbyhtYXJrZXIpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhcIk1hcmtlciBpbiBsZWdlbmQgPSBcIiArIG1hcmtlci50aXRsZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIG1hcCB0aGUgbWFwIGNvbmZpZyB0aGF0IGlzIHBhc3NlZCBpblxyXG4gICAqIFxyXG4gICAqIHRoaXMgZnVuY3Rpb24gbG9vcHMgdGhyb3VnaCB0aGUgbWFwIGNvZmlnIGFuZCBmaWxscyB0aGUgTG9jYXRpb25zTGlzdFxyXG4gICAqIFxyXG4gICAqICh0aGlzIGlzIHdoYXQgaXMgZGlzcGxheWVkIG9uIHRoZSBkcm9wIGRvd24pXHJcbiAgICovXHJcbiAgcHVibGljIFNldExvY2F0aW9uTGlzdCgpIHtcclxuICAgIC8vc2V0IHRvIG5ldyBzbyBubyBkdXBsaWNhdGVzIHByZXNlbnQgdGhlbXNlbHZlc1xyXG4gICAgdGhpcy5Mb2NhdGlvbnNMaXN0ID0gbmV3IEFycmF5PE1hcE1hcmtlcj4oKTtcclxuICAgIHRoaXMuTWFwVGl0bGUgPSB0aGlzLnByaW1hcnlNYXAgIT09IHVuZGVmaW5lZCA/IHRoaXMucHJpbWFyeU1hcC50aXRsZSA6ICcnO1xyXG4gICAgLy9sZXQgbG9jTGlzdCA9IG5ldyBBcnJheTxNYXBNYXJrZXI+KCk7XHJcbiAgICBsZXQgdmlzTG9jID0gdGhpcy5tYXBTZXJ2aWNlLkdldExlZ2VuZExvY2F0aW9ucygpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhcInNldHRpbmcgbGVnZW5kIHRvID0gXCIsIHZpc0xvYyk7XHJcbiAgICBpZiAodmlzTG9jLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5Mb2NhdGlvbnNMaXN0ID0gdGhpcy5hc3NpZ25JY29uVXJsKHZpc0xvYyk7XHJcbiAgICAgIHRoaXMuTG9jYXRpb25zTGlzdC5zb3J0KHRoaXMuY29tcGFyZU9iamVjdCk7XHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJMb2NhdGlvbnMgTGlzdCBhZnRlciBzb3J0OiBcIiwgdGhpcy5Mb2NhdGlvbnNMaXN0KTtcclxuXHJcbiAgICAgIHRoaXMuTG9jYXRpb25zTGlzdCA9IHRoaXMubW92ZVVuZGVmaW5lZFRvQm90dG9tKHRoaXMuTG9jYXRpb25zTGlzdCk7XHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJMb2NhdGlvbnMgTGlzdCBhZnRlciBtb3ZlIHRvIGJvdHRvbTogXCIsIHRoaXMuTG9jYXRpb25zTGlzdCk7XHJcblxyXG5cclxuXHJcbiAgICAgIC8vY29uc29sZS5sb2coXCJsb2NMaXN0ID0gXCIsIGxvY0xpc3QpO1xyXG4gICAgfVxyXG4gICAgLy9jb25zb2xlLmxvZyhcIkxvY0xpc3Q6IFwiLCBsb2NMaXN0KTtcclxuICAgIC8vY29uc29sZS5sb2coXCJ2aXNMb2M6IFwiLCB2aXNMb2MpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBldmVudCBcclxuICAgKiBcclxuICAgKiBUaGlzIGlzIG5lZWRlZCBmb3IgdGhlIGRyYWcgYW5kIGRyb3AgdG8gcmVmbGVjdCB0aGUgY2hhbmdlc1xyXG4gICAqIFxyXG4gICAqIFRPRE86IFRoaXMgZG9lcyBub3QgYWN0dWFsbHkgc2F2ZSB0aGUgbmV3IGFycmF5IHRvIG1lbW9yeSwgc28gdXBvbiByZWZyZXNoXHJcbiAgICogXHJcbiAgICogaXQgd2lsbCBnbyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBvcmRlci5cclxuICAgKiBcclxuICAgKiBVcGRhdGVWaXNpYmxlTG9jYXRpb25zIGFzc2lnbnMgdGhlIG5ld2x5IG9yZGVyZWQgTG9jYXRpb25zTGlzdCB0byB0aGUgVmlzaWJsZUxvY2F0aW9ucyBpbiBtYXBTZXJ2aWNlXHJcbiAgICovXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcImRyb3AgZXZlbnQgY2FsbGVkXCIpO1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuTG9jYXRpb25zTGlzdCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIHRoaXMuZ2l2ZU9yZGVyKCk7XHJcbiAgICB0aGlzLm1hcFNlcnZpY2UuU2F2ZUxlZ2VuZExvY2F0aW9ucyh0aGlzLkxvY2F0aW9uc0xpc3QpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vSEVMUEVSU1xyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBsb2NMaXN0IGFuIGFycmF5IG9mIHRoZSBtYXBNYXJrZXJzXHJcbiAgICogXHJcbiAgICogbG9vcCBpIGdldHMgdGhlIG1hcE1hcmtlclxyXG4gICAqIFxyXG4gICAqIGxvb3AgaiBsb29wcyB0aHJvdWdoIHRoZSB0aGUgaWNvbiBsaXN0IHRvIG1hdGNoIHRoZSBpY29uTmFtZSB0byB0aGUgaWNvblVybFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBhc3NpZ25JY29uVXJsKGxvY0xpc3Q6IEFycmF5PE1hcE1hcmtlcj4pIHtcclxuICAgIGxldCB0ZW1wOiBBcnJheTxNYXBNYXJrZXI+ID0gbmV3IEFycmF5PE1hcE1hcmtlcj4oKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbG9jTGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuaWNvbkxpc3QubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICBpZiAobG9jTGlzdFtpXS5pY29uTmFtZS5tYXRjaCh0aGlzLmljb25MaXN0W2pdLmljb25Mb29rdXApKSB7XHJcbiAgICAgICAgICBsb2NMaXN0W2ldLmljb25VcmwgPSB0aGlzLmljb25MaXN0W2pdLmljb25Vcmw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRlbXAucHVzaChsb2NMaXN0W2ldKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0ZW1wO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2l2ZXMgb3JkZXIgdG8gdGhlIE1hcE1hcmtlcnMgYmFzZWQgb24gaG93IHRoZSB1c2VyIG9yZGVycyB0aGUgbGVnZW5kXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdpdmVPcmRlcigpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5Mb2NhdGlvbnNMaXN0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHRoaXMuTG9jYXRpb25zTGlzdFtpXS5vcmRlckluZGV4ID0gaTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNvbXBhcmVzIGFuZCBzb3J0cyB0aGUgb2JqZWN0cyBiYXNlZCBvbiBvcmRlckluZGV4IFxyXG4gICAqIFxyXG4gICAqIGlmIHRoZSBpbmRleGVzIGFyZSB0aGUgc2FtZSB0aGVuIGl0IGNvbXBhcmVzIGJhc2VkIG9uIHRpdGxlIHNvIGl0IGlzIGFscGhhYmV0aWNhbCBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgY29tcGFyZU9iamVjdChvYmoxLCBvYmoyKSB7XHJcbiAgICBpZiAob2JqMS5vcmRlckluZGV4ID4gb2JqMi5vcmRlckluZGV4KVxyXG4gICAgICByZXR1cm4gMTtcclxuICAgIGlmIChvYmoxLm9yZGVySW5kZXggPCBvYmoyLm9yZGVySW5kZXgpXHJcbiAgICAgIHJldHVybiAtMTtcclxuXHJcbiAgICAvLyBvYmoxLm9yZGVySW5kZXggPT0gb2JqMi5vcmRlckluZGV4XHJcblxyXG4gICAgaWYgKG9iajEudGl0bGUgPiBvYmoyLnRpdGxlKVxyXG4gICAgICByZXR1cm4gMTtcclxuICAgIGlmIChvYmoxLnRpdGxlIDwgb2JqMi50aXRsZSlcclxuICAgICAgcmV0dXJuIC0xO1xyXG5cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICAvKipcclxuICAgKiB3aXRob3V0IHRoaXMgdGhlIE1hcE1hcmtlciBvYmplY3RzIHRoYXQgaGF2ZSBhbiB1bmRlZmluZWQgaW5kZXhPcmRlciBhcmUgcHV0IGF0IHRoZSB0b3BcclxuICAgKiBcclxuICAgKiB0aGlzIG1ldGhvZCBzZXRzIHRoZSB1bmRlZmluZWQgaW5kZXhPcmRlciBhc2lkZSBhbmQgYXBwZW5kcyB0aGVtIHRvIHRoZSBlbmQgb2YgdGhlIGFycmF5L2xlZ2VuZFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBtb3ZlVW5kZWZpbmVkVG9Cb3R0b20obGlzdDogQXJyYXk8TWFwTWFya2VyPikge1xyXG4gICAgbGV0IHVuZGVmaW5lZExpc3QgPSBuZXcgQXJyYXk8TWFwTWFya2VyPigpO1xyXG4gICAgbGV0IGxvY0xpc3QgPSBuZXcgQXJyYXk8TWFwTWFya2VyPigpO1xyXG5cclxuICAgIGxpc3QuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlLm9yZGVySW5kZXggPj0gMCkge1xyXG4gICAgICAgIGxvY0xpc3QucHVzaCh2YWx1ZSk7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcInB1c2hpbmcgXCIsIHZhbHVlLCBcIiB0byBcIiwgbG9jTGlzdCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdW5kZWZpbmVkTGlzdC5wdXNoKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICAvL2NvbnNvbGUubG9nKFwiT3JkZXIgPSBcIiwgdmFsdWUub3JkZXJJbmRleCwgXCJUaXRsZSA9IFwiLCB2YWx1ZS50aXRsZSk7XHJcbiAgICB9KTtcclxuICAgIGlmICh1bmRlZmluZWRMaXN0KSB7XHJcbiAgICAgIHVuZGVmaW5lZExpc3QuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICBsb2NMaXN0LnB1c2godmFsdWUpO1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxvY0xpc3Q7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0= |
@@ -260,3 +260,3 @@ /** | ||
this.VisibleLocations = list; | ||
console.log("visible locations updated: ", list); | ||
//console.log("visible locations updated: ", list); | ||
if (this.VisibleLocations.length > 0) { | ||
@@ -373,3 +373,3 @@ this.UpdateLegendLocations(this.VisibleLocations); | ||
var temp = new Array(); | ||
console.log("master list length", this.tempStorage.GetMasterLocationLegend().length); | ||
//console.log("master list length",this.tempStorage.GetMasterLocationLegend().length); | ||
if (this.tempStorage.GetMasterLocationLegend().length === 0) { | ||
@@ -379,12 +379,13 @@ this.LegendLocations = this.VisibleLocations; | ||
else { | ||
list = this.CheckForDuplicates(list); | ||
for (var i = 0; i < list.length; i++) { | ||
/** @type {?} */ | ||
var tempMarker = this.tempStorage.GetLocationById(list[i].id); | ||
console.log("tempMarker = ", tempMarker); | ||
// console.log("tempMarker = ", tempMarker); | ||
if (tempMarker) { | ||
console.log("pushing in if"); | ||
//console.log("pushing in if"); | ||
temp.push(tempMarker); | ||
} | ||
else { | ||
console.log("pushing in else"); | ||
//console.log("pushing in else"); | ||
temp.push(list[i]); | ||
@@ -397,2 +398,53 @@ } | ||
/** | ||
* @param {?} list | ||
* @return {?} | ||
*/ | ||
MapService.prototype.CheckForDuplicates = /** | ||
* @param {?} list | ||
* @return {?} | ||
*/ | ||
function (list) { | ||
/** @type {?} */ | ||
var temp = new Array(); | ||
/** @type {?} */ | ||
var ids = list.map((/** | ||
* @param {?} item | ||
* @return {?} | ||
*/ | ||
function (item) { | ||
return item.id; | ||
})); | ||
/** @type {?} */ | ||
var idsUnique = ids.filter((/** | ||
* @param {?} item | ||
* @param {?} index | ||
* @return {?} | ||
*/ | ||
function (item, index) { | ||
return ids.indexOf(item) >= index; | ||
})); | ||
var _loop_1 = function (i) { | ||
/** @type {?} */ | ||
var tempMarker = this_1.tempStorage.GetLocationById(idsUnique[i]); | ||
//if its in the masterlist | ||
if (tempMarker) { | ||
temp.push(tempMarker); | ||
} | ||
//if its not in the masterlist | ||
else { | ||
temp.push(list.filter((/** | ||
* @param {?} item | ||
* @return {?} | ||
*/ | ||
function (item) { return item.id === idsUnique[i]; }))[0]); | ||
} | ||
}; | ||
var this_1 = this; | ||
for (var i = 0; i < idsUnique.length; i++) { | ||
_loop_1(i); | ||
} | ||
//console.log("Checked for duplicates", temp); | ||
return temp; | ||
}; | ||
/** | ||
* | ||
@@ -685,2 +737,2 @@ * @param list saves the legend to local storage | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbWFwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUUxRDtJQWtERSxlQUFlO0lBRWYsb0JBQXNCLFdBQStCLEVBQVksU0FBeUI7UUFBMUYsaUJBSUM7UUFKcUIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQVksY0FBUyxHQUFULFNBQVMsQ0FBZ0I7Ozs7O1FBOUJuRixnQkFBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQzs7OztRQVVwRyxrQkFBYSxHQUFzQixJQUFJLE9BQU8sRUFBWSxDQUFDO1FBRTNELDJCQUFzQixHQUF1QixJQUFJLE9BQU8sRUFBYSxDQUFDOzs7O1FBS3RFLHFCQUFnQixHQUFxQixFQUFFLENBQUM7UUFFeEMsb0JBQWUsR0FBRyxFQUFFLENBQUM7Ozs7UUFPckIsZUFBVSxHQUFpQixTQUFTLENBQUMsbUJBQW1CLENBQUM7UUFLOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25E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Ozs7Ozs7Ozs7OztJQUE5QixVQUErQixFQUFVO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU07Ozs7UUFBQyxVQUFBLEdBQUcsSUFBSSxPQUFBLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFiLENBQWEsRUFBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDOztnQkE5VEYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFMUSxrQkFBa0I7Z0JBQ2xCLGNBQWM7OztxQkFOdkI7Q0F3VUMsQUFoVUQsSUFnVUM7U0E3VFksVUFBVTs7Ozs7OztJQU9yQixnQ0FBb0M7Ozs7OztJQUtwQyw2QkFBd0M7Ozs7O0lBT3hDLGlDQUEyRzs7Ozs7SUFLM0csZ0NBQStDOzs7OztJQUsvQyxtQ0FBa0U7O0lBRWxFLDRDQUE2RTs7Ozs7SUFLN0Usc0NBQStDOztJQUUvQyxxQ0FBNEI7O0lBRTVCLG1DQUFnRDs7Ozs7SUFLaEQsZ0NBQWdFOzs7OztJQUlwRCxpQ0FBeUM7Ozs7O0lBQUUsK0JBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxNYXAsIE1hcmtlckluZm8sIE1hcE1hcmtlciB9IGZyb20gJ0Bsb3djb2RldW5pdC9sY3UtbWFwLWNvbW1vbic7XHJcbmltcG9ydCB7IFRodW1ibmFpbExpc3RNb2RlbCB9IGZyb20gJy4uL21vZGVscy90aHVtYm5haWwtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vdXRpbHMvY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFRlbXBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vdGVtcC5zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbkxvYWRlciB9IGZyb20gJy4uL3V0aWxzL2xvY2F0aW9uLWxvYWRlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXBTZXJ2aWNlIHtcclxuXHJcbiAgLy8gRklFTERTXHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBwcmltYXJ5IG1hcCB0byBiZSBkaXNwbGF5ZWQgLSByZXByZXNlbnRzIHRoZSBjdXJyZW50IG1hcCBiZWluZyBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcHJpbWFyeU1hcDogSW5kaXZpZHVhbE1hcDtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdCBvZiBzZWNvbmRhcnkgbWFwcyBhdmFpbGFibGUgdG8gY2hvb3NlIGFzIHByaW1hcnkgYW5kIGFsc28gZm9yIHVzZSBhcyBsYXllcnMgaW4gdGhlIHByaW1hcnkgbWFwXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIG1hcExpc3Q6IEFycmF5PEluZGl2aWR1YWxNYXA+O1xyXG5cclxuICAvLyBQUk9QRVJUSUVTXHJcblxyXG4gIC8qKlxyXG4gICAqIEN1cmF0ZWQgbGlzdCBvZiBhbWJsX29uIGxvY2F0aW9uIG1hcmtlcnNcclxuICAgKi9cclxuICBwdWJsaWMgQ3VyYXRlZExpc3QgPSB0aGlzLmxvY0xvYWRlci5DcmVhdGVMYXllcihDb25zdGFudHMuTE9DQVRJT05TX1RPX0xPQUQsIENvbnN0YW50cy5NQVBfQ09ORklHX1RPX0xPQUQpO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBuZXcgcHJpbWFyeSBtYXAgYW55IHRpbWUgdGhlIG1hcHMgKHByaW1hcnkgYW5kIHNlY29uZGFyeSkgYXJlIGNoYW5nZWRcclxuICAgKi9cclxuICBwdWJsaWMgTWFwQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEluZGl2aWR1YWxNYXA+O1xyXG5cclxuICAvKipcclxuICAgKiBTdWJqZWN0IHRoYXQgZW1pdHMgbGF0L2xuZyBmb3IgbWFwIHBhbm5pbmdcclxuICAgKi9cclxuICBwdWJsaWMgTGF0TG5nRW1pdHRlcjogU3ViamVjdDxudW1iZXJbXT4gPSBuZXcgU3ViamVjdDxudW1iZXJbXT4oKTtcclxuXHJcbiAgcHVibGljIEJhc2ljSW5mb1dpbmRvd0VtaXR0ZXI6IFN1YmplY3Q8TWFwTWFya2VyPiA9IG5ldyBTdWJqZWN0PE1hcE1hcmtlcj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdCBvZiBhY3RpdmUgc2Vjb25kYXJ5IGxvY2F0aW9ucyB3aGljaCBhcmUgY3VycmVudGx5IGRpc3BsYXllZCBvbiB0aGUgY3VycmVudCBtYXBcclxuICAgKi9cclxuICBwdWJsaWMgVmlzaWJsZUxvY2F0aW9uczogQXJyYXk8TWFwTWFya2VyPiA9IFtdO1xyXG5cclxuICBwdWJsaWMgTGVnZW5kTG9jYXRpb25zID0gW107XHJcblxyXG4gIHB1YmxpYyBUaHVtYm5haWxMaXN0OiBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+O1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbGlzdCBvZiBhdmFpbGFibGUgbWFya2VycyBmb3IgdXNlIGluIHRoZSBtYXBcclxuICAgKi9cclxuICBwdWJsaWMgTWFya2VyTGlzdDogTWFya2VySW5mb1tdID0gQ29uc3RhbnRzLkRFRkFVTFRfTUFSS0VSX0lORk87XHJcblxyXG4gIC8vIENPTlNUUlVDVE9SU1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdGVtcFN0b3JhZ2U6IFRlbXBTdG9yYWdlU2VydmljZSwgcHJvdGVjdGVkIGxvY0xvYWRlcjogTG9jYXRpb25Mb2FkZXIpIHtcclxuICAgIHRoaXMucHJpbWFyeU1hcCA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpWzBdO1xyXG4gICAgdGhpcy5tYXBMaXN0ID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KCkuZmlsdGVyKG1hcCA9PiBtYXAuaWQgIT09IHRoaXMucHJpbWFyeU1hcC5pZCk7XHJcbiAgICB0aGlzLk1hcENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEluZGl2aWR1YWxNYXA+KCk7XHJcbiAgfVxyXG5cclxuICAvLyBMSUZFIENZQ0xFXHJcblxyXG4gIC8vIEFQSSBNRVRIT0RTXHJcblxyXG4gIHB1YmxpYyBHZXRMZWdlbmRMb2NhdGlvbnMoKSB7XHJcbiAgIC8vdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0aGlzLnRlbXBTdG9yYWdlLkdldExvY2F0aW9uTGVnZW5kKCk7XHJcbiAgICByZXR1cm4gdGhpcy5MZWdlbmRMb2NhdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoaXMgbWFwbGlzdCBsaXN0IG9mIHRodW1ibmFpbHMgYW5kIHRoZWlyIGluZm9cclxuICAgKi9cclxuICBwdWJsaWMgR2V0VGh1bWJuYWlsTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLlRodW1ibmFpbExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBwcmltYXJ5IG1hcCB0byBiZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBwdWJsaWMgR2V0UHJpbWFyeU1hcCgpOiBJbmRpdmlkdWFsTWFwIHtcclxuICAgIHJldHVybiB0aGlzLnByaW1hcnlNYXA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIHNlY29uZGFyeSAobm9uLXByaW1hcnkpIG1hcHNcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFwTGlzdCgpOiBBcnJheTxJbmRpdmlkdWFsTWFwPiB7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5tYXBMaXN0O1xyXG4gICAgcmV0dXJuIHRoaXMubWFwTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCB0aGUgbWFwcyBpbiB0aGUgZGJcclxuICAgKi9cclxuICBwdWJsaWMgR2V0QWxsTWFwcygpOiBBcnJheTxJbmRpdmlkdWFsTWFwPiB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBtYXAgdG8gcmV0cmlldmVcclxuICAgKiBcclxuICAgKiBSZXR1cm5zIGEgc3BlY2lmaWMgbWFwIHdpdGggYSBzcGVjaWZpYyBpZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRNYXBCeUlkKGlkKTogSW5kaXZpZHVhbE1hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXBMaXN0LmZpbmQobWFwID0+IG1hcC5pZCA9PT0gaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbWFya2VycyBmb3IgdXNlIGluIG1hcFxyXG4gICAqIFxyXG4gICAqIFRoaXMgd2lsbCBjYWxsIGEgYmFjayBlbmQgc2VydmljZSBldmVudHVhbGx5IGFuZCB0aGVuIGZvcm1hdCB0aGUgcmVzdWx0cyBhY2NvcmRpbmdseVxyXG4gICAqL1xyXG4gIHB1YmxpYyBHZXRNYXJrZXJMaXN0KCk6IE1hcmtlckluZm9bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5NYXJrZXJMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIHRvIGFkZFxyXG4gICAqIFxyXG4gICAqIEFkZHMgdGhlIG1hcCB0byB0aGUgbWFwIGFycmF5XHJcbiAgICovXHJcbiAgcHVibGljIEFkZE1hcChtYXApOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuQWRkTWFwVG9MaXN0KG1hcCk7XHJcbiAgICB0aGlzLnNldE1hcHNXaXRoUHJpbWFyeUlkKG1hcC5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbGF0IFRoZSBsYXRpdHVkZSB0byBwYW4gdG9cclxuICAgKiBAcGFyYW0gbG5nIFRoZSBsb25naXR1ZGUgdG8gcGFuIHRvXHJcbiAgICogXHJcbiAgICogVGFrZXMgYSBsYXQvbG5nIGFuZCBlbWl0cyBldmVudCBmb3IgbWFwIHRvIGxpc3RlbiB0b1xyXG4gICAqL1xyXG4gIHB1YmxpYyBDaGFuZ2VMYXRMbmcobGF0LCBsbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuTGF0TG5nRW1pdHRlci5uZXh0KFtsYXQsIGxuZ10pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAcGFyYW0gbWFya2VyXHJcbiAgICogXHJcbiAgICogVGFrZXMgYSBtYXJrZXIgZnJvbSB0aGUgbGVnZW5kIGFuZCBzZW5kIHRvIGxjdS1tYXBcclxuICAgKi9cclxuICBwdWJsaWMgRGlzcGxheUJhc2ljSW5mbyhtYXJrZXI6IE1hcE1hcmtlcik6IHZvaWQge1xyXG4gICAgdGhpcy5CYXNpY0luZm9XaW5kb3dFbWl0dGVyLm5leHQobWFya2VyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBsaXN0IFRoZSBsaXN0IG9mIHZpc2libGUgbG9jYXRpb25zXHJcbiAgICogXHJcbiAgICogV2hlbiBtYXAgdXBkYXRlcyB0aGUgdmlzaWJsZSBsb2NhdGlvbnMsIHRoaXMuVmlzaWJsZUxvY2F0aW9ucyB3aWxsIGJlIHVwZGF0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgVXBkYXRlVmlzaWJsZUxvY2F0aW9ucyhsaXN0KTogdm9pZCB7XHJcbiAgICB0aGlzLlZpc2libGVMb2NhdGlvbnMgPSBsaXN0O1xyXG4gICAgY29uc29sZS5sb2coXCJ2aXNpYmxlIGxvY2F0aW9ucyB1cGRhdGVkOiBcIiwgbGlzdCk7XHJcbiAgICBpZiAodGhpcy5WaXNpYmxlTG9jYXRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5VcGRhdGVMZWdlbmRMb2NhdGlvbnModGhpcy5WaXNpYmxlTG9jYXRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLkxlZ2VuZExvY2F0aW9ucyA9IHRoaXMuVmlzaWJsZUxvY2F0aW9ucztcclxuICAgIC8vIGlmKHRoaXMuVmlzaWJsZUxvY2F0aW9ucyAhPT0gdGhpcy5MZWdlbmRMb2NhdGlvbnMpe1xyXG4gICAgLy8gICBjb25zb2xlLmxvZyhcIlVwZGF0aW5nIGxlZ2VuZFwiKVxyXG4gICAgLy8gICB0aGlzLkFkZFRvTGVnZW5kTG9jYXRpb25zKGxpc3QpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIEFkZFRvTGVnZW5kTG9jYXRpb25zKHZpc0xvYzogQXJyYXk8TWFwTWFya2VyPikge1xyXG4gIC8vICAgLy9jb25zb2xlLmxvZyhcInZpc0xvYyA9IFwiLCB2aXNMb2MpO1xyXG4gIC8vICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2aXNMb2MubGVuZ3RoOyBpKyspIHtcclxuICAvLyAgICAgbGV0IHRlbXBJZCA9IHZpc0xvY1tpXS5pZDtcclxuICAvLyAgICAgaWYgKHRoaXMuTGVnZW5kTG9jYXRpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgPT09IHRlbXBJZCkubGVuZ3RoID09PSAwKSB7XHJcbiAgLy8gICAgICAgdGhpcy5MZWdlbmRMb2NhdGlvbnMucHVzaCh2aXNMb2NbaV0pO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICAgIGVsc2Uge1xyXG4gIC8vICAgICAgIHRoaXMuQ2hlY2tJbmZvKHZpc0xvY1tpXSk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH1cclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJhZGRlZCB0byBMZWdlbmRBcnJheSBcIiwgdGhpcy5MZWdlbmRMb2NhdGlvbnMpO1xyXG4gIC8vICAgdGhpcy5VcGRhdGVMZWdlbmRMb2NhdGlvbnModGhpcy5MZWdlbmRMb2NhdGlvbnMpO1xyXG4gIC8vICAgLy90aGlzLlVwZGF0ZVZpc2libGVMb2NhdGlvbnModGhpcy5MZWdlbmRMb2NhdGlvbnMpO1xyXG4gIC8vIH1cclxuICAvKipcclxuICAgKiBDaGVja3MgdG8gaW5zdXJlIHRoYXQgdGhlIGxvY2F0aW9uIGRpc3BsYXllZCBpbiB0aGUgbGVnZW5kIG1hdGNoZXMgdGhhdCBvZiB0aGUgdmlzaWJsZSBsb2NhdGlvbnNcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbWFya2VyXHJcbiAgICovXHJcbiAgLy8gcHVibGljIENoZWNrSW5mbyhtYXJrZXI6IE1hcE1hcmtlcikge1xyXG4gIC8vICAgbGV0IHRlbXBNYXJrZXIgPSB0aGlzLkxlZ2VuZExvY2F0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlkID09PSBtYXJrZXIuaWQpO1xyXG4gIC8vICAgbGV0IGluZGV4ID0gdGhpcy5MZWdlbmRMb2NhdGlvbnMuaW5kZXhPZih0ZW1wTWFya2VyWzBdKTtcclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJpbmRleCA9IFwiLCBpbmRleCk7XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwidGVtcE1hcmtlciA9IFwiLCB0ZW1wTWFya2VyKTtcclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJtYXJrZXIgPSBcIiwgbWFya2VyKTtcclxuICAvLyAgIHRoaXMuTGVnZW5kTG9jYXRpb25zW2luZGV4XSA9IG1hcmtlcjtcclxuICAvLyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGxlZ2VuZCBhcnJheVxyXG4gICAqIEBwYXJhbSBsaXN0IFxyXG4gICAqL1xyXG4gIHB1YmxpYyBVcGRhdGVMZWdlbmRMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgbGV0IHRlbXA6IEFycmF5PE1hcE1hcmtlcj4gPSBuZXcgQXJyYXk8TWFwTWFya2VyPigpO1xyXG4gICAgY29uc29sZS5sb2coXCJtYXN0ZXIgbGlzdCBsZW5ndGhcIix0aGlzLnRlbXBTdG9yYWdlLkdldE1hc3RlckxvY2F0aW9uTGVnZW5kKCkubGVuZ3RoKTtcclxuICAgIGlmICh0aGlzLnRlbXBTdG9yYWdlLkdldE1hc3RlckxvY2F0aW9uTGVnZW5kKCkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuTGVnZW5kTG9jYXRpb25zID0gdGhpcy5WaXNpYmxlTG9jYXRpb25zO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCB0ZW1wTWFya2VyOk1hcE1hcmtlciA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TG9jYXRpb25CeUlkKGxpc3RbaV0uaWQpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwidGVtcE1hcmtlciA9IFwiLCB0ZW1wTWFya2VyKTtcclxuICAgICAgICBpZiAodGVtcE1hcmtlcikge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJwdXNoaW5nIGluIGlmXCIpO1xyXG4gICAgICAgICAgdGVtcC5wdXNoKHRlbXBNYXJrZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwicHVzaGluZyBpbiBlbHNlXCIpO1xyXG4gICAgICAgICAgdGVtcC5wdXNoKGxpc3RbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0ZW1wO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGxpc3Qgc2F2ZXMgdGhlIGxlZ2VuZCB0byBsb2NhbCBzdG9yYWdlXHJcbiAgICovXHJcbiAgcHVibGljIFNhdmVMZWdlbmRMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW1wU3RvcmFnZS5TYXZlTG9jYXRpb25MZWdlbmQobGlzdCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbWFwIFRoZSBtYXAgdG8gcmVwbGFjZSB0aGUgb25sZCBvbmUgd2l0aFxyXG4gICAqIFxyXG4gICAqIFRoaXMgcmVwbGFjZXMgdGhlIG1hcCBpbiB0aGUgZGIgd2l0aCB0aGUgbWFwIChiYXNlZCBvbiBpZClcclxuICAgKi9cclxuICBwdWJsaWMgUmVwbGFjZU1hcChtYXA6IEluZGl2aWR1YWxNYXApOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuUmVwbGFjZU1hcChtYXApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIExpc3RPZk1hcHMgVGhlIGxpc3Qgb2YgbWFwcyB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGdldCB0aGUgdGh1bWJuYWlscyBhbmQgb3RoZXIgaW5mbyBmb3JcclxuICAgKiBcclxuICAgKiBhIHRodW1ibmFpbCBsaXN0IGNvbnRhaW5zIHRoZSBpbWcgdXJsLCB0aGUgdGl0bGUgb2YgdGhlIG1hcCwgYW5kIHRoZSBsYXQgYW5kIGxvbmcgb2YgdGhlIG9yZ2luXHJcbiAgICogXHJcbiAgICovXHJcbiAgcHVibGljIEJ1aWxkVGh1bWJuYWlsTGlzdChMaXN0T2ZNYXBzOiBBcnJheTxJbmRpdmlkdWFsTWFwPik6IEFycmF5PFRodW1ibmFpbExpc3RNb2RlbD4ge1xyXG4gICAgdmFyIHRlbXBUaHVtYm5haWxMaXN0ID0gbmV3IEFycmF5PFRodW1ibmFpbExpc3RNb2RlbD4oKTtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgTGlzdE9mTWFwcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgdGVtcCA9IG5ldyBUaHVtYm5haWxMaXN0TW9kZWwoTGlzdE9mTWFwc1tpXSwgdGhpcy5nZXRNYXBUaHVtYm5haWwoTGlzdE9mTWFwc1tpXSwgMjAwLCAyMDApLCBMaXN0T2ZNYXBzW2ldLnRpdGxlLCBMaXN0T2ZNYXBzW2ldLm9yaWdpbi5sYXQsIExpc3RPZk1hcHNbaV0ub3JpZ2luLmxuZyk7XHJcbiAgICAgIHRlbXBUaHVtYm5haWxMaXN0LnB1c2godGVtcCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgc29ydHMgYmFzZWQgb24gdGhlIFRpdGxlIG9mIHRoZSBtYXAgc28gdGhlIHRodW1ibmFpbCBsaXN0IGlzIGluIGFscGhhYmV0aWNhbCBvcmRlclxyXG4gICAgICovXHJcbiAgICB0ZW1wVGh1bWJuYWlsTGlzdC5zb3J0KCh0MSwgdDIpID0+IHtcclxuICAgICAgcmV0dXJuIHQxLlRpdGxlLnRvVXBwZXJDYXNlKCkgPiB0Mi5UaXRsZS50b1VwcGVyQ2FzZSgpID8gMSA6IC0xO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGVtcFRodW1ibmFpbExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKiBcclxuICAgKiBDYWxscyB0aGUgcHJvdGVjdGVkIG1ldGhvZCBcInNldE1hcHNXaXRoUHJpbWFyeUlkXCJcclxuICAgKi9cclxuICBwdWJsaWMgUHJpbWFyeU1hcENoYW5nZWQoaWQpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0TWFwc1dpdGhQcmltYXJ5SWQoaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBhbGwgdGhlIG1hcHMgZnJvbSB0aGUgZGIgKGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkpXHJcbiAgICovXHJcbiAgcHVibGljIERlbGV0ZU1hcHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLkRlbGV0ZU1hcExpc3QoKTtcclxuICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAqIEN1cmF0ZWQgbGlzdCBvZiBhbWJsX29uIGxvY2F0aW9uIG1hcmtlcnNcclxuICAgKi9cclxuICBwdWJsaWMgR2V0Q3VyYXRlZExpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2NMb2FkZXIuQ3JlYXRlTGF5ZXIoQ29uc3RhbnRzLkpTT05fREFUQV9GT1JfTE9DQVRJT05fQ09OVkVSU0lPTiwgQ29uc3RhbnRzLk1BUF9DT05GSUdfVE9fTE9BRCk7XHJcbiAgfVxyXG4gIC8vIEhFTFBFUlNcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbWFwIFRoZSBtYXAgY29uZmlndXJhdGlvbiBmcm9tIHdoaWNoIHlvdSB3YW50IHRvIGNyZWF0ZSBhIHRodW1ibmFpbFxyXG4gICAqIEBwYXJhbSB3aWR0aCBPcHRpb25hbCB3aWR0aCBwYXJhbWV0ZXIgKG11c3QgYWxzbyBpbmNsdWRlIGhlaWd0aClcclxuICAgKiBAcGFyYW0gaGVpZ2h0IE9wdGlvbmFsIGhlaWdodCBwYXJhbWV0ZXIgKG11c3QgYWxzbyBpbmNsdWRlIHdpZHRoKVxyXG4gICAqXHJcbiAgICogVGFrZXMgYSBtYXAgY29uZmlndXJhdGlvbiBmaWxlIGFuZCByZXR1cm5zIGEgZ29vZ2xlIG1hcHMgc3RhdGljIG1hcCB0byBiZSB1c2VkIGFzIGEgdGh1bWJuYWlsXHJcbiAgICpcclxuICAgKiBJbiBvcmRlciB0byBzcGVjaWZ5IGhlaWdodCBhbmQgd2lkdGgsIHlvdSBtdXN0IHNwZWNpZnkgQk9USCwgb3RoZXJ3aXNlLCB0aGUgZGVmYXVsdCBpcyAzMDB4MzAwXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdldE1hcFRodW1ibmFpbChtYXA6IEluZGl2aWR1YWxNYXAsIHdpZHRoPywgaGVpZ2h0Pyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYGh0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9zdGF0aWNtYXA/Y2VudGVyPSR7bWFwLm9yaWdpbi5sYXR9LCR7bWFwLm9yaWdpbi5sbmd9XHJcbiAgICAmem9vbT0ke21hcC56b29tIC0gMn1cclxuICAgICZzaXplPSR7aGVpZ2h0ICYmIHdpZHRoID8gd2lkdGggOiAzMDB9eCR7aGVpZ2h0ICYmIHdpZHRoID8gaGVpZ2h0IDogMzAwfVxyXG4gICAgJmtleT1BSXphU3lBc0toNF9UWHBZVjU3U0JzN2ozYjZxRmNKVUc2Zk5Ib1VgO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKlxyXG4gICAqIFNldHMgdGhlIHByaW1hcnkgbWFwIHRvIHRoYXQgd2l0aCB0aGUgcGFzc2VkIGlkLFxyXG4gICAqXHJcbiAgICogU2V0cyB0aGUgc2Vjb25kYXJ5IG1hcHMgdG8gYSBsaXN0IG9mIGFsbCB0aGUgbWFwcyBtaW51cyB0aGF0IHdpdGggdGhlIHBhc3NlZCBpZFxyXG4gICAqXHJcbiAgICogRW1pdHMgdGhlIG5ldyBwcmltYXJ5IG1hcFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzZXRNYXBzV2l0aFByaW1hcnlJZChpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnByaW1hcnlNYXAgPSB0aGlzLnRlbXBTdG9yYWdlLkdldE1hcEJ5SWQoaWQpO1xyXG4gICAgdGhpcy5tYXBMaXN0ID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KCkuZmlsdGVyKG1hcCA9PiBtYXAuaWQgIT09IGlkKTtcclxuICAgIHRoaXMuTWFwQ2hhbmdlZC5lbWl0KHRoaXMucHJpbWFyeU1hcCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbWFwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUUxRDtJQWtERSxlQUFlO0lBRWYsb0JBQXNCLFdBQStCLEVBQVksU0FBeUI7UUFBMUYsaUJBSUM7UUFKcUIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQVksY0FBUyxHQUFULFNBQVMsQ0FBZ0I7Ozs7O1FBOUJuRixnQkFBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQzs7OztRQVVwRyxrQkFBYSxHQUFzQixJQUFJLE9BQU8sRUFBWSxDQUFDO1FBRTNELDJCQUFzQixHQUF1QixJQUFJLE9BQU8sRUFBYSxDQUFDOzs7O1FBS3RFLHFCQUFnQixHQUFxQixFQUFFLENBQUM7UUFFeEMsb0JBQWUsR0FBRyxFQUFFLENBQUM7Ozs7UUFPckIsZUFBVSxHQUFpQixTQUFTLENBQUMsbUJBQW1CLENBQUM7UUFLOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25E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LENBQUMsQ0FBQztJQUN4QyxDQUFDOztnQkF6VkYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFMUSxrQkFBa0I7Z0JBQ2xCLGNBQWM7OztxQkFOdkI7Q0FtV0MsQUEzVkQsSUEyVkM7U0F4VlksVUFBVTs7Ozs7OztJQU9yQixnQ0FBb0M7Ozs7OztJQUtwQyw2QkFBd0M7Ozs7O0lBT3hDLGlDQUEyRzs7Ozs7SUFLM0csZ0NBQStDOzs7OztJQUsvQyxtQ0FBa0U7O0lBRWxFLDRDQUE2RTs7Ozs7SUFLN0Usc0NBQStDOztJQUUvQyxxQ0FBNEI7O0lBRTVCLG1DQUFnRDs7Ozs7SUFLaEQsZ0NBQWdFOzs7OztJQUlwRCxpQ0FBeUM7Ozs7O0lBQUUsK0JBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxNYXAsIE1hcmtlckluZm8sIE1hcE1hcmtlciB9IGZyb20gJ0Bsb3djb2RldW5pdC9sY3UtbWFwLWNvbW1vbic7XHJcbmltcG9ydCB7IFRodW1ibmFpbExpc3RNb2RlbCB9IGZyb20gJy4uL21vZGVscy90aHVtYm5haWwtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vdXRpbHMvY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFRlbXBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vdGVtcC5zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbkxvYWRlciB9IGZyb20gJy4uL3V0aWxzL2xvY2F0aW9uLWxvYWRlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXBTZXJ2aWNlIHtcclxuXHJcbiAgLy8gRklFTERTXHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBwcmltYXJ5IG1hcCB0byBiZSBkaXNwbGF5ZWQgLSByZXByZXNlbnRzIHRoZSBjdXJyZW50IG1hcCBiZWluZyBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcHJpbWFyeU1hcDogSW5kaXZpZHVhbE1hcDtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdCBvZiBzZWNvbmRhcnkgbWFwcyBhdmFpbGFibGUgdG8gY2hvb3NlIGFzIHByaW1hcnkgYW5kIGFsc28gZm9yIHVzZSBhcyBsYXllcnMgaW4gdGhlIHByaW1hcnkgbWFwXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIG1hcExpc3Q6IEFycmF5PEluZGl2aWR1YWxNYXA+O1xyXG5cclxuICAvLyBQUk9QRVJUSUVTXHJcblxyXG4gIC8qKlxyXG4gICAqIEN1cmF0ZWQgbGlzdCBvZiBhbWJsX29uIGxvY2F0aW9uIG1hcmtlcnNcclxuICAgKi9cclxuICBwdWJsaWMgQ3VyYXRlZExpc3QgPSB0aGlzLmxvY0xvYWRlci5DcmVhdGVMYXllcihDb25zdGFudHMuTE9DQVRJT05TX1RPX0xPQUQsIENvbnN0YW50cy5NQVBfQ09ORklHX1RPX0xPQUQpO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBuZXcgcHJpbWFyeSBtYXAgYW55IHRpbWUgdGhlIG1hcHMgKHByaW1hcnkgYW5kIHNlY29uZGFyeSkgYXJlIGNoYW5nZWRcclxuICAgKi9cclxuICBwdWJsaWMgTWFwQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEluZGl2aWR1YWxNYXA+O1xyXG5cclxuICAvKipcclxuICAgKiBTdWJqZWN0IHRoYXQgZW1pdHMgbGF0L2xuZyBmb3IgbWFwIHBhbm5pbmdcclxuICAgKi9cclxuICBwdWJsaWMgTGF0TG5nRW1pdHRlcjogU3ViamVjdDxudW1iZXJbXT4gPSBuZXcgU3ViamVjdDxudW1iZXJbXT4oKTtcclxuXHJcbiAgcHVibGljIEJhc2ljSW5mb1dpbmRvd0VtaXR0ZXI6IFN1YmplY3Q8TWFwTWFya2VyPiA9IG5ldyBTdWJqZWN0PE1hcE1hcmtlcj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdCBvZiBhY3RpdmUgc2Vjb25kYXJ5IGxvY2F0aW9ucyB3aGljaCBhcmUgY3VycmVudGx5IGRpc3BsYXllZCBvbiB0aGUgY3VycmVudCBtYXBcclxuICAgKi9cclxuICBwdWJsaWMgVmlzaWJsZUxvY2F0aW9uczogQXJyYXk8TWFwTWFya2VyPiA9IFtdO1xyXG5cclxuICBwdWJsaWMgTGVnZW5kTG9jYXRpb25zID0gW107XHJcblxyXG4gIHB1YmxpYyBUaHVtYm5haWxMaXN0OiBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+O1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbGlzdCBvZiBhdmFpbGFibGUgbWFya2VycyBmb3IgdXNlIGluIHRoZSBtYXBcclxuICAgKi9cclxuICBwdWJsaWMgTWFya2VyTGlzdDogTWFya2VySW5mb1tdID0gQ29uc3RhbnRzLkRFRkFVTFRfTUFSS0VSX0lORk87XHJcblxyXG4gIC8vIENPTlNUUlVDVE9SU1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdGVtcFN0b3JhZ2U6IFRlbXBTdG9yYWdlU2VydmljZSwgcHJvdGVjdGVkIGxvY0xvYWRlcjogTG9jYXRpb25Mb2FkZXIpIHtcclxuICAgIHRoaXMucHJpbWFyeU1hcCA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpWzBdO1xyXG4gICAgdGhpcy5tYXBMaXN0ID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBMaXN0KCkuZmlsdGVyKG1hcCA9PiBtYXAuaWQgIT09IHRoaXMucHJpbWFyeU1hcC5pZCk7XHJcbiAgICB0aGlzLk1hcENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEluZGl2aWR1YWxNYXA+KCk7XHJcbiAgfVxyXG5cclxuICAvLyBMSUZFIENZQ0xFXHJcblxyXG4gIC8vIEFQSSBNRVRIT0RTXHJcblxyXG4gIHB1YmxpYyBHZXRMZWdlbmRMb2NhdGlvbnMoKSB7XHJcbiAgICAvL3RoaXMuTGVnZW5kTG9jYXRpb25zID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRMb2NhdGlvbkxlZ2VuZCgpO1xyXG4gICAgcmV0dXJuIHRoaXMuTGVnZW5kTG9jYXRpb25zO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGlzIG1hcGxpc3QgbGlzdCBvZiB0aHVtYm5haWxzIGFuZCB0aGVpciBpbmZvXHJcbiAgICovXHJcbiAgcHVibGljIEdldFRodW1ibmFpbExpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5UaHVtYm5haWxMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgcHJpbWFyeSBtYXAgdG8gYmUgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgcHVibGljIEdldFByaW1hcnlNYXAoKTogSW5kaXZpZHVhbE1hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5wcmltYXJ5TWFwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBzZWNvbmRhcnkgKG5vbi1wcmltYXJ5KSBtYXBzXHJcbiAgICovXHJcbiAgcHVibGljIEdldE1hcExpc3QoKTogQXJyYXk8SW5kaXZpZHVhbE1hcD4ge1xyXG4gICAgLy8gcmV0dXJuIHRoaXMubWFwTGlzdDtcclxuICAgIHJldHVybiB0aGlzLm1hcExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgdGhlIG1hcHMgaW4gdGhlIGRiXHJcbiAgICovXHJcbiAgcHVibGljIEdldEFsbE1hcHMoKTogQXJyYXk8SW5kaXZpZHVhbE1hcD4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbWFwIHRvIHJldHJpZXZlXHJcbiAgICogXHJcbiAgICogUmV0dXJucyBhIHNwZWNpZmljIG1hcCB3aXRoIGEgc3BlY2lmaWMgaWRcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFwQnlJZChpZCk6IEluZGl2aWR1YWxNYXAge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwTGlzdC5maW5kKG1hcCA9PiBtYXAuaWQgPT09IGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIG1hcmtlcnMgZm9yIHVzZSBpbiBtYXBcclxuICAgKiBcclxuICAgKiBUaGlzIHdpbGwgY2FsbCBhIGJhY2sgZW5kIHNlcnZpY2UgZXZlbnR1YWxseSBhbmQgdGhlbiBmb3JtYXQgdGhlIHJlc3VsdHMgYWNjb3JkaW5nbHlcclxuICAgKi9cclxuICBwdWJsaWMgR2V0TWFya2VyTGlzdCgpOiBNYXJrZXJJbmZvW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuTWFya2VyTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBtYXAgVGhlIG1hcCB0byBhZGRcclxuICAgKiBcclxuICAgKiBBZGRzIHRoZSBtYXAgdG8gdGhlIG1hcCBhcnJheVxyXG4gICAqL1xyXG4gIHB1YmxpYyBBZGRNYXAobWFwKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLkFkZE1hcFRvTGlzdChtYXApO1xyXG4gICAgdGhpcy5zZXRNYXBzV2l0aFByaW1hcnlJZChtYXAuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGxhdCBUaGUgbGF0aXR1ZGUgdG8gcGFuIHRvXHJcbiAgICogQHBhcmFtIGxuZyBUaGUgbG9uZ2l0dWRlIHRvIHBhbiB0b1xyXG4gICAqIFxyXG4gICAqIFRha2VzIGEgbGF0L2xuZyBhbmQgZW1pdHMgZXZlbnQgZm9yIG1hcCB0byBsaXN0ZW4gdG9cclxuICAgKi9cclxuICBwdWJsaWMgQ2hhbmdlTGF0TG5nKGxhdCwgbG5nKTogdm9pZCB7XHJcbiAgICB0aGlzLkxhdExuZ0VtaXR0ZXIubmV4dChbbGF0LCBsbmddKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIG1hcmtlclxyXG4gICAqIFxyXG4gICAqIFRha2VzIGEgbWFya2VyIGZyb20gdGhlIGxlZ2VuZCBhbmQgc2VuZCB0byBsY3UtbWFwXHJcbiAgICovXHJcbiAgcHVibGljIERpc3BsYXlCYXNpY0luZm8obWFya2VyOiBNYXBNYXJrZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuQmFzaWNJbmZvV2luZG93RW1pdHRlci5uZXh0KG1hcmtlcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbGlzdCBUaGUgbGlzdCBvZiB2aXNpYmxlIGxvY2F0aW9uc1xyXG4gICAqIFxyXG4gICAqIFdoZW4gbWFwIHVwZGF0ZXMgdGhlIHZpc2libGUgbG9jYXRpb25zLCB0aGlzLlZpc2libGVMb2NhdGlvbnMgd2lsbCBiZSB1cGRhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIFVwZGF0ZVZpc2libGVMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy5WaXNpYmxlTG9jYXRpb25zID0gbGlzdDtcclxuICAgIC8vY29uc29sZS5sb2coXCJ2aXNpYmxlIGxvY2F0aW9ucyB1cGRhdGVkOiBcIiwgbGlzdCk7XHJcbiAgICBpZiAodGhpcy5WaXNpYmxlTG9jYXRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5VcGRhdGVMZWdlbmRMb2NhdGlvbnModGhpcy5WaXNpYmxlTG9jYXRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLkxlZ2VuZExvY2F0aW9ucyA9IHRoaXMuVmlzaWJsZUxvY2F0aW9ucztcclxuICAgIC8vIGlmKHRoaXMuVmlzaWJsZUxvY2F0aW9ucyAhPT0gdGhpcy5MZWdlbmRMb2NhdGlvbnMpe1xyXG4gICAgLy8gICBjb25zb2xlLmxvZyhcIlVwZGF0aW5nIGxlZ2VuZFwiKVxyXG4gICAgLy8gICB0aGlzLkFkZFRvTGVnZW5kTG9jYXRpb25zKGxpc3QpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIEFkZFRvTGVnZW5kTG9jYXRpb25zKHZpc0xvYzogQXJyYXk8TWFwTWFya2VyPikge1xyXG4gIC8vICAgLy9jb25zb2xlLmxvZyhcInZpc0xvYyA9IFwiLCB2aXNMb2MpO1xyXG4gIC8vICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2aXNMb2MubGVuZ3RoOyBpKyspIHtcclxuICAvLyAgICAgbGV0IHRlbXBJZCA9IHZpc0xvY1tpXS5pZDtcclxuICAvLyAgICAgaWYgKHRoaXMuTGVnZW5kTG9jYXRpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgPT09IHRlbXBJZCkubGVuZ3RoID09PSAwKSB7XHJcbiAgLy8gICAgICAgdGhpcy5MZWdlbmRMb2NhdGlvbnMucHVzaCh2aXNMb2NbaV0pO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICAgIGVsc2Uge1xyXG4gIC8vICAgICAgIHRoaXMuQ2hlY2tJbmZvKHZpc0xvY1tpXSk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH1cclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJhZGRlZCB0byBMZWdlbmRBcnJheSBcIiwgdGhpcy5MZWdlbmRMb2NhdGlvbnMpO1xyXG4gIC8vICAgdGhpcy5VcGRhdGVMZWdlbmRMb2NhdGlvbnModGhpcy5MZWdlbmRMb2NhdGlvbnMpO1xyXG4gIC8vICAgLy90aGlzLlVwZGF0ZVZpc2libGVMb2NhdGlvbnModGhpcy5MZWdlbmRMb2NhdGlvbnMpO1xyXG4gIC8vIH1cclxuICAvKipcclxuICAgKiBDaGVja3MgdG8gaW5zdXJlIHRoYXQgdGhlIGxvY2F0aW9uIGRpc3BsYXllZCBpbiB0aGUgbGVnZW5kIG1hdGNoZXMgdGhhdCBvZiB0aGUgdmlzaWJsZSBsb2NhdGlvbnNcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbWFya2VyXHJcbiAgICovXHJcbiAgLy8gcHVibGljIENoZWNrSW5mbyhtYXJrZXI6IE1hcE1hcmtlcikge1xyXG4gIC8vICAgbGV0IHRlbXBNYXJrZXIgPSB0aGlzLkxlZ2VuZExvY2F0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlkID09PSBtYXJrZXIuaWQpO1xyXG4gIC8vICAgbGV0IGluZGV4ID0gdGhpcy5MZWdlbmRMb2NhdGlvbnMuaW5kZXhPZih0ZW1wTWFya2VyWzBdKTtcclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJpbmRleCA9IFwiLCBpbmRleCk7XHJcbiAgLy8gICAvL2NvbnNvbGUubG9nKFwidGVtcE1hcmtlciA9IFwiLCB0ZW1wTWFya2VyKTtcclxuICAvLyAgIC8vY29uc29sZS5sb2coXCJtYXJrZXIgPSBcIiwgbWFya2VyKTtcclxuICAvLyAgIHRoaXMuTGVnZW5kTG9jYXRpb25zW2luZGV4XSA9IG1hcmtlcjtcclxuICAvLyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGxlZ2VuZCBhcnJheVxyXG4gICAqIEBwYXJhbSBsaXN0IFxyXG4gICAqL1xyXG4gIHB1YmxpYyBVcGRhdGVMZWdlbmRMb2NhdGlvbnMobGlzdCk6IHZvaWQge1xyXG4gICAgbGV0IHRlbXA6IEFycmF5PE1hcE1hcmtlcj4gPSBuZXcgQXJyYXk8TWFwTWFya2VyPigpO1xyXG4gICAgLy9jb25zb2xlLmxvZyhcIm1hc3RlciBsaXN0IGxlbmd0aFwiLHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFzdGVyTG9jYXRpb25MZWdlbmQoKS5sZW5ndGgpO1xyXG4gICAgaWYgKHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFzdGVyTG9jYXRpb25MZWdlbmQoKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0aGlzLlZpc2libGVMb2NhdGlvbnM7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGlzdCA9IHRoaXMuQ2hlY2tGb3JEdXBsaWNhdGVzKGxpc3QpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgdGVtcE1hcmtlcjogTWFwTWFya2VyID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRMb2NhdGlvbkJ5SWQobGlzdFtpXS5pZCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJ0ZW1wTWFya2VyID0gXCIsIHRlbXBNYXJrZXIpO1xyXG4gICAgICAgIGlmICh0ZW1wTWFya2VyKSB7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwicHVzaGluZyBpbiBpZlwiKTtcclxuICAgICAgICAgIHRlbXAucHVzaCh0ZW1wTWFya2VyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwicHVzaGluZyBpbiBlbHNlXCIpO1xyXG4gICAgICAgICAgdGVtcC5wdXNoKGxpc3RbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5MZWdlbmRMb2NhdGlvbnMgPSB0ZW1wO1xyXG4gIH1cclxuXHJcbiAgQ2hlY2tGb3JEdXBsaWNhdGVzKGxpc3Q6IEFycmF5PE1hcE1hcmtlcj4pOiBBcnJheTxNYXBNYXJrZXI+IHtcclxuICAgIGxldCB0ZW1wOiBBcnJheTxNYXBNYXJrZXI+ID0gbmV3IEFycmF5PE1hcE1hcmtlcj4oKTtcclxuXHJcbiAgICBsZXQgaWRzID0gbGlzdC5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcclxuICAgICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgICB9KTtcclxuICAgIGxldCBpZHNVbmlxdWUgPSBpZHMuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KXtcclxuICAgICAgcmV0dXJuIGlkcy5pbmRleE9mKGl0ZW0pID49IGluZGV4O1xyXG4gICAgfSk7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpZHNVbmlxdWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHRlbXBNYXJrZXIgPSB0aGlzLnRlbXBTdG9yYWdlLkdldExvY2F0aW9uQnlJZChpZHNVbmlxdWVbaV0pO1xyXG4gICAgICAvL2lmIGl0cyBpbiB0aGUgbWFzdGVybGlzdFxyXG4gICAgICBpZih0ZW1wTWFya2VyKXtcclxuICAgICAgICB0ZW1wLnB1c2godGVtcE1hcmtlcik7XHJcbiAgICAgIH1cclxuICAgICAgLy9pZiBpdHMgbm90IGluIHRoZSBtYXN0ZXJsaXN0XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGVtcC5wdXNoKGxpc3QuZmlsdGVyKGl0ZW09PiBpdGVtLmlkID09PSBpZHNVbmlxdWVbaV0pWzBdKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgIH1cclxuICAgIC8vY29uc29sZS5sb2coXCJDaGVja2VkIGZvciBkdXBsaWNhdGVzXCIsIHRlbXApO1xyXG4gICAgcmV0dXJuIHRlbXBcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBsaXN0IHNhdmVzIHRoZSBsZWdlbmQgdG8gbG9jYWwgc3RvcmFnZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBTYXZlTGVnZW5kTG9jYXRpb25zKGxpc3QpOiB2b2lkIHtcclxuICAgIHRoaXMudGVtcFN0b3JhZ2UuU2F2ZUxvY2F0aW9uTGVnZW5kKGxpc3QpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIHRvIHJlcGxhY2UgdGhlIG9ubGQgb25lIHdpdGhcclxuICAgKiBcclxuICAgKiBUaGlzIHJlcGxhY2VzIHRoZSBtYXAgaW4gdGhlIGRiIHdpdGggdGhlIG1hcCAoYmFzZWQgb24gaWQpXHJcbiAgICovXHJcbiAgcHVibGljIFJlcGxhY2VNYXAobWFwOiBJbmRpdmlkdWFsTWFwKTogdm9pZCB7XHJcbiAgICB0aGlzLnRlbXBTdG9yYWdlLlJlcGxhY2VNYXAobWFwKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBMaXN0T2ZNYXBzIFRoZSBsaXN0IG9mIG1hcHMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBnZXQgdGhlIHRodW1ibmFpbHMgYW5kIG90aGVyIGluZm8gZm9yXHJcbiAgICogXHJcbiAgICogYSB0aHVtYm5haWwgbGlzdCBjb250YWlucyB0aGUgaW1nIHVybCwgdGhlIHRpdGxlIG9mIHRoZSBtYXAsIGFuZCB0aGUgbGF0IGFuZCBsb25nIG9mIHRoZSBvcmdpblxyXG4gICAqIFxyXG4gICAqL1xyXG4gIHB1YmxpYyBCdWlsZFRodW1ibmFpbExpc3QoTGlzdE9mTWFwczogQXJyYXk8SW5kaXZpZHVhbE1hcD4pOiBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+IHtcclxuICAgIHZhciB0ZW1wVGh1bWJuYWlsTGlzdCA9IG5ldyBBcnJheTxUaHVtYm5haWxMaXN0TW9kZWw+KCk7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IExpc3RPZk1hcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdmFyIHRlbXAgPSBuZXcgVGh1bWJuYWlsTGlzdE1vZGVsKExpc3RPZk1hcHNbaV0sIHRoaXMuZ2V0TWFwVGh1bWJuYWlsKExpc3RPZk1hcHNbaV0sIDIwMCwgMjAwKSwgTGlzdE9mTWFwc1tpXS50aXRsZSwgTGlzdE9mTWFwc1tpXS5vcmlnaW4ubGF0LCBMaXN0T2ZNYXBzW2ldLm9yaWdpbi5sbmcpO1xyXG4gICAgICB0ZW1wVGh1bWJuYWlsTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIHNvcnRzIGJhc2VkIG9uIHRoZSBUaXRsZSBvZiB0aGUgbWFwIHNvIHRoZSB0aHVtYm5haWwgbGlzdCBpcyBpbiBhbHBoYWJldGljYWwgb3JkZXJcclxuICAgICAqL1xyXG4gICAgdGVtcFRodW1ibmFpbExpc3Quc29ydCgodDEsIHQyKSA9PiB7XHJcbiAgICAgIHJldHVybiB0MS5UaXRsZS50b1VwcGVyQ2FzZSgpID4gdDIuVGl0bGUudG9VcHBlckNhc2UoKSA/IDEgOiAtMTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRlbXBUaHVtYm5haWxMaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbmV3IHByaW1hcnkgbWFwXHJcbiAgICogXHJcbiAgICogQ2FsbHMgdGhlIHByb3RlY3RlZCBtZXRob2QgXCJzZXRNYXBzV2l0aFByaW1hcnlJZFwiXHJcbiAgICovXHJcbiAgcHVibGljIFByaW1hcnlNYXBDaGFuZ2VkKGlkKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE1hcHNXaXRoUHJpbWFyeUlkKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgYWxsIHRoZSBtYXBzIGZyb20gdGhlIGRiIChmb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5KVxyXG4gICAqL1xyXG4gIHB1YmxpYyBEZWxldGVNYXBzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZW1wU3RvcmFnZS5EZWxldGVNYXBMaXN0KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAqIEN1cmF0ZWQgbGlzdCBvZiBhbWJsX29uIGxvY2F0aW9uIG1hcmtlcnNcclxuICovXHJcbiAgcHVibGljIEdldEN1cmF0ZWRMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMubG9jTG9hZGVyLkNyZWF0ZUxheWVyKENvbnN0YW50cy5KU09OX0RBVEFfRk9SX0xPQ0FUSU9OX0NPTlZFUlNJT04sIENvbnN0YW50cy5NQVBfQ09ORklHX1RPX0xPQUQpO1xyXG4gIH1cclxuICAvLyBIRUxQRVJTXHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIGNvbmZpZ3VyYXRpb24gZnJvbSB3aGljaCB5b3Ugd2FudCB0byBjcmVhdGUgYSB0aHVtYm5haWxcclxuICAgKiBAcGFyYW0gd2lkdGggT3B0aW9uYWwgd2lkdGggcGFyYW1ldGVyIChtdXN0IGFsc28gaW5jbHVkZSBoZWlndGgpXHJcbiAgICogQHBhcmFtIGhlaWdodCBPcHRpb25hbCBoZWlnaHQgcGFyYW1ldGVyIChtdXN0IGFsc28gaW5jbHVkZSB3aWR0aClcclxuICAgKlxyXG4gICAqIFRha2VzIGEgbWFwIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgcmV0dXJucyBhIGdvb2dsZSBtYXBzIHN0YXRpYyBtYXAgdG8gYmUgdXNlZCBhcyBhIHRodW1ibmFpbFxyXG4gICAqXHJcbiAgICogSW4gb3JkZXIgdG8gc3BlY2lmeSBoZWlnaHQgYW5kIHdpZHRoLCB5b3UgbXVzdCBzcGVjaWZ5IEJPVEgsIG90aGVyd2lzZSwgdGhlIGRlZmF1bHQgaXMgMzAweDMwMFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBnZXRNYXBUaHVtYm5haWwobWFwOiBJbmRpdmlkdWFsTWFwLCB3aWR0aD8sIGhlaWdodD8pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGBodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvc3RhdGljbWFwP2NlbnRlcj0ke21hcC5vcmlnaW4ubGF0fSwke21hcC5vcmlnaW4ubG5nfVxyXG4gICAgJnpvb209JHttYXAuem9vbSAtIDJ9XHJcbiAgICAmc2l6ZT0ke2hlaWdodCAmJiB3aWR0aCA/IHdpZHRoIDogMzAwfXgke2hlaWdodCAmJiB3aWR0aCA/IGhlaWdodCA6IDMwMH1cclxuICAgICZrZXk9QUl6YVN5QXNLaDRfVFhwWVY1N1NCczdqM2I2cUZjSlVHNmZOSG9VYDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgbmV3IHByaW1hcnkgbWFwXHJcbiAgICpcclxuICAgKiBTZXRzIHRoZSBwcmltYXJ5IG1hcCB0byB0aGF0IHdpdGggdGhlIHBhc3NlZCBpZCxcclxuICAgKlxyXG4gICAqIFNldHMgdGhlIHNlY29uZGFyeSBtYXBzIHRvIGEgbGlzdCBvZiBhbGwgdGhlIG1hcHMgbWludXMgdGhhdCB3aXRoIHRoZSBwYXNzZWQgaWRcclxuICAgKlxyXG4gICAqIEVtaXRzIHRoZSBuZXcgcHJpbWFyeSBtYXBcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2V0TWFwc1dpdGhQcmltYXJ5SWQoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5wcmltYXJ5TWFwID0gdGhpcy50ZW1wU3RvcmFnZS5HZXRNYXBCeUlkKGlkKTtcclxuICAgIHRoaXMubWFwTGlzdCA9IHRoaXMudGVtcFN0b3JhZ2UuR2V0TWFwTGlzdCgpLmZpbHRlcihtYXAgPT4gbWFwLmlkICE9PSBpZCk7XHJcbiAgICB0aGlzLk1hcENoYW5nZWQuZW1pdCh0aGlzLnByaW1hcnlNYXApO1xyXG4gIH1cclxuXHJcbn1cclxuIl19 |
@@ -194,2 +194,3 @@ /** | ||
var listId = list[i].id; | ||
//if the location does not already exist in the legend master list | ||
if (master.filter((/** | ||
@@ -200,5 +201,22 @@ * @param {?} item | ||
function (item) { return item.id === listId; })).length === 0) { | ||
console.log("adding ", list[i], " to the master list"); | ||
//console.log("adding ", list[i], " to the master list"); | ||
temp.push(list[i]); | ||
} | ||
//if the orderIndex has changed for a location this will update it | ||
if (master.filter((/** | ||
* @param {?} item | ||
* @return {?} | ||
*/ | ||
function (item) { return item.id === listId && item.orderIndex !== list[i].orderIndex; })).length !== 0) { | ||
/** @type {?} */ | ||
var tempMaster = master.filter((/** | ||
* @param {?} item | ||
* @return {?} | ||
*/ | ||
function (item) { return item.id === listId; })); | ||
//console.log("Location = ", list[i].title); | ||
//console.log("Order index in master = ", tempMaster[0].orderIndex); | ||
//console.log("New order index = ", list[i].orderIndex); | ||
temp[master.indexOf(tempMaster[0])].orderIndex = list[i].orderIndex; | ||
} | ||
}; | ||
@@ -238,3 +256,3 @@ for (var i = 0; i < list.length; i++) { | ||
var masterLocationList = localStorage.getItem(this.masterLocationList) === '' ? [] : JSON.parse(localStorage.getItem(this.masterLocationList)); | ||
console.log("masterLocationList = ", masterLocationList); | ||
//console.log("masterLocationList = ", masterLocationList); | ||
// return location with given id | ||
@@ -283,2 +301,2 @@ return masterLocationList.find((/** | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcC5zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvdGVtcC5zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBR25EO0lBcUJJLGVBQWU7SUFFZjs7Ozs7O1FBWG1CLFlBQU8sR0FBVyxnQkFBZ0IsQ0FBQztRQUVuQyxpQkFBWSxHQUFXLHFCQUFxQixDQUFDO1FBRTdDLHVCQUFrQixHQUFXLG1CQUFtQixDQUFDO1FBR2pELGVBQVUsR0FBVyxtQkFBbUIsQ0FBQztRQUt4RCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM3QyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDMUM7UUFDRCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNsRCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDL0M7UUFFRCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3hELFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDaEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBRTdDO0lBQ0wsQ0FBQztJ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RUFBRSxNQUFNO2lCQUNyQjs7Ozs7NkJBTEQ7Q0F3SkMsQUFySkQsSUFxSkM7U0FqSlksa0JBQWtCOzs7Ozs7O0lBUTNCLHFDQUFzRDs7Ozs7SUFFdEQsMENBQWdFOzs7OztJQUVoRSxnREFBb0U7Ozs7O0lBR3BFLHdDQUE0RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmRpdmlkdWFsTWFwLCBNYXBNYXJrZXIgfSBmcm9tICdAbG93Y29kZXVuaXQvbGN1LW1hcC1jb21tb24nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgVGVtcFN0b3JhZ2VTZXJ2aWNlIHtcclxuXHJcbiAgICAvLyBGSUVMRFNcclxuICAgIC8vIFBST1BFUlRJRVNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBjb25zdGFudCB0aGF0IHdpbGwgYmUgdXNlZCB0byBzdG9yZSB0aGUgbWFwIGxpc3QgaW4gbG9jYWwgc3RvcmFnZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWFwTGlzdDogc3RyaW5nID0gJ2FtYmxfb25NYXBMaXN0JztcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9jYXRpb25MaXN0OiBzdHJpbmcgPSAnYW1ibF9vbkxvY2F0aW9uTGlzdCc7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1hc3RlckxvY2F0aW9uTGlzdDogc3RyaW5nID0gJ2FtYmxfb25NYXN0ZXJMaXN0JztcclxuXHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhc3RVc2VkSWQ6IHN0cmluZyA9ICdhbWJsX29uTGFzdFVzZWRJZCc7XHJcblxyXG4gICAgLy8gQ09OU1RSVUNUT1JTXHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFwTGlzdCkgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5tYXBMaXN0LCAnJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2F0aW9uTGlzdCkgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5sb2NhdGlvbkxpc3QsICcnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hc3RlckxvY2F0aW9uTGlzdCkgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5tYXN0ZXJMb2NhdGlvbkxpc3QsICcnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubGFzdFVzZWRJZCkgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5sYXN0VXNlZElkLCAnJyk7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBMSUZFQ1lDTEVcclxuICAgIC8vIEFQSVNcclxuXHJcbiAgICBwdWJsaWMgR2V0TGFzdFVzZWRJZCgpIHtcclxuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sYXN0VXNlZElkKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgU2V0TGFzdFVzZWRJZChpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5sYXN0VXNlZElkLCBpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIEFkZE1hcFRvTGlzdCh2YWx1ZTogSW5kaXZpZHVhbE1hcCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHR1cm4gc3RvcmVkIG1hcCBpbnRvIEpTIGFycmF5XHJcbiAgICAgICAgY29uc3QgbWFwTGlzdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFwTGlzdCkgPT09ICcnID8gW10gOiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFwTGlzdCkpO1xyXG4gICAgICAgIC8vIGFkZCBtYXAgdG8gYXJyYXlcclxuICAgICAgICBtYXBMaXN0LnB1c2godmFsdWUpXHJcbiAgICAgICAgLy8gc2F2ZSBuZXcgYXJyYXkgdG8gbG9jYWwgc3RvcmFnZVxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubWFwTGlzdCwgSlNPTi5zdHJpbmdpZnkobWFwTGlzdCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBSZXBsYWNlTWFwKHZhbHVlOiBJbmRpdmlkdWFsTWFwKTogdm9pZCB7XHJcbiAgICAgICAgLy8gdHVybiBzdG9yZWQgbWFwIGludG8gSlMgYXJyYXlcclxuICAgICAgICBjb25zdCBtYXBMaXN0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSA9PT0gJycgPyBbXSA6IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSk7XHJcbiAgICAgICAgLy8gZ2V0IGluZGV4IGluIGFycmF5IG9mIG1hcCB0byByZXBsYWNlXHJcbiAgICAgICAgY29uc3QgaWR4ID0gbWFwTGlzdC5maW5kSW5kZXgobWFwID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG1hcC5pZCA9PT0gdmFsdWUuaWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc29sZS5sb2coaWR4KTtcclxuICAgICAgICAvLyByZXBsYWNlIG1hcCBpbiBhcnJheSB3aXRoIG5ldyBtYXBcclxuICAgICAgICBtYXBMaXN0LnNwbGljZShpZHgsIDEsIHZhbHVlKTtcclxuICAgICAgICAvLyBzYXZlIG5ldyBhcnJheSB0byBsb2NhbCBzdG9yYWdlXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5tYXBMaXN0LCBKU09OLnN0cmluZ2lmeShtYXBMaXN0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIEdldE1hcExpc3QoKTogQXJyYXk8SW5kaXZpZHVhbE1hcD4ge1xyXG4gICAgICAgIC8vIHBhcnNlIEpTT04gYW5kIHJldHVybiB0aGUgYXJyYXkgb2YgbWFwcyBmcm9tIGxvY2FsIHN0b3JhZ2VcclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFwTGlzdCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgR2V0TWFwQnlJZChpZDogc3RyaW5nKTogSW5kaXZpZHVhbE1hcCB7XHJcbiAgICAgICAgLy8gdHVybiBzdG9yZWQgbWFwIGludG8gSlMgYXJyYXlcclxuICAgICAgICBjb25zdCBtYXBMaXN0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSA9PT0gJycgPyBbXSA6IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSk7XHJcbiAgICAgICAgLy8gcmV0dXJuIG1hcCB3aXRoIGdpdmVuIGlkXHJcbiAgICAgICAgcmV0dXJuIG1hcExpc3QuZmluZChtYXAgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbWFwLmlkID09PSBpZDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgRGVsZXRlTWFwTGlzdCgpOiB2b2lkIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm1hcExpc3QsICcnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxvY2F0aW9uTGlzdCwgJycpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubWFzdGVyTG9jYXRpb25MaXN0LCAnJyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBTYXZlTG9jYXRpb25MZWdlbmQobGlzdDogQXJyYXk8TWFwTWFya2VyPik6IHZvaWQge1xyXG4gICAgICAgXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5sb2NhdGlvbkxpc3QsIEpTT04uc3RyaW5naWZ5KGxpc3QpKTtcclxuICAgICAgICB0aGlzLlNhdmVNYXN0ZXJMb2NhdGlvbkxlZ2VuZChsaXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgR2V0TG9jYXRpb25MZWdlbmQoKSB7XHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYXRpb25MaXN0KSA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCB0ZW1wOiBBcnJheTxNYXBNYXJrZXI+ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2F0aW9uTGlzdCkpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGVtcDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIFNhdmVNYXN0ZXJMb2NhdGlvbkxlZ2VuZChsaXN0OiBBcnJheTxNYXBNYXJrZXI+KTogdm9pZCB7XHJcbiAgICAgICAgbGV0IG1hc3RlciA9IHRoaXMuR2V0TWFzdGVyTG9jYXRpb25MZWdlbmQoKTtcclxuICAgICAgICBsZXQgdGVtcCA9IG1hc3RlcjtcclxuICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKyl7XHJcbiAgICAgICAgICAgIGxldCBsaXN0SWQgPSBsaXN0W2ldLmlkO1xyXG4gICAgICAgICAgICBpZihtYXN0ZXIuZmlsdGVyKGl0ZW09PiBpdGVtLmlkID09PSBsaXN0SWQpLmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFkZGluZyBcIiwgbGlzdFtpXSwgXCIgdG8gdGhlIG1hc3RlciBsaXN0XCIpO1xyXG4gICAgICAgICAgICAgICAgdGVtcC5wdXNoKGxpc3RbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5tYXN0ZXJMb2NhdGlvbkxpc3QsIEpTT04uc3RyaW5naWZ5KHRlbXApKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgR2V0TWFzdGVyTG9jYXRpb25MZWdlbmQoKSB7XHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFzdGVyTG9jYXRpb25MaXN0KSA9PT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCB0ZW1wOiBBcnJheTxNYXBNYXJrZXI+ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hc3RlckxvY2F0aW9uTGlzdCkpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGVtcDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIEdldExvY2F0aW9uQnlJZChpZDogc3RyaW5nKTogTWFwTWFya2VyIHtcclxuICAgICAgICAvLyB0dXJuIHN0b3JlZCBsb2NhdGlvbnMgaW50byBKUyBhcnJheVxyXG4gICAgICAgIGNvbnN0IG1hc3RlckxvY2F0aW9uTGlzdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFzdGVyTG9jYXRpb25MaXN0KSA9PT0gJycgPyBbXSA6IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXN0ZXJMb2NhdGlvbkxpc3QpKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIm1hc3RlckxvY2F0aW9uTGlzdCA9IFwiLCBtYXN0ZXJMb2NhdGlvbkxpc3QpO1xyXG4gICAgICAgIC8vIHJldHVybiBsb2NhdGlvbiB3aXRoIGdpdmVuIGlkXHJcbiAgICAgICAgcmV0dXJuIG1hc3RlckxvY2F0aW9uTGlzdC5maW5kKGxvY2F0aW9uID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uLmlkID09PSBpZDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBIRUxQRVJTXHJcblxyXG59XHJcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcC5zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW1ibC1vbi9sY3UtYW1ibC1vbi1jb21tb24vIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvdGVtcC5zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBSW5EO0lBcUJJLGVBQWU7SUFFZjs7Ozs7O1FBWG1CLFlBQU8sR0FBVyxnQkFBZ0IsQ0FBQztRQUVuQyxpQkFBWSxHQUFXLHFCQUFxQixDQUFDO1FBRTdDLHVCQUFrQixHQUFXLG1CQUFtQixDQUFDO1FBR2pELGVBQVUsR0FBVyxtQkFBbUIsQ0FBQztRQUt4RCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM3QyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDMUM7UUFDRCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNsRCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3hELFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDaEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBRTdDO0lBQ0wsQ0FBQztJ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QUF0QixVQUF1QixFQUFVOzs7WUFFdkIsa0JBQWtCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hKLDJEQUEyRDtRQUMzRCxnQ0FBZ0M7UUFDaEMsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJOzs7O1FBQUMsVUFBQSxRQUFRO1lBQ25DLE9BQU8sUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDOUIsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOztnQkF6SkosVUFBVSxTQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7Ozs7NkJBTkQ7Q0FpS0MsQUE3SkQsSUE2SkM7U0F6Slksa0JBQWtCOzs7Ozs7O0lBUTNCLHFDQUFzRDs7Ozs7SUFFdEQsMENBQWdFOzs7OztJQUVoRSxnREFBb0U7Ozs7O0lBR3BFLHdDQUE0RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmRpdmlkdWFsTWFwLCBNYXBNYXJrZXIgfSBmcm9tICdAbG93Y29kZXVuaXQvbGN1LW1hcC1jb21tb24nO1xyXG5pbXBvcnQgeyBpc05nVGVtcGxhdGUgfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBUZW1wU3RvcmFnZVNlcnZpY2Uge1xyXG5cclxuICAgIC8vIEZJRUxEU1xyXG4gICAgLy8gUFJPUEVSVElFU1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGNvbnN0YW50IHRoYXQgd2lsbCBiZSB1c2VkIHRvIHN0b3JlIHRoZSBtYXAgbGlzdCBpbiBsb2NhbCBzdG9yYWdlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBtYXBMaXN0OiBzdHJpbmcgPSAnYW1ibF9vbk1hcExpc3QnO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBsb2NhdGlvbkxpc3Q6IHN0cmluZyA9ICdhbWJsX29uTG9jYXRpb25MaXN0JztcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWFzdGVyTG9jYXRpb25MaXN0OiBzdHJpbmcgPSAnYW1ibF9vbk1hc3Rlckxpc3QnO1xyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGFzdFVzZWRJZDogc3RyaW5nID0gJ2FtYmxfb25MYXN0VXNlZElkJztcclxuXHJcbiAgICAvLyBDT05TVFJVQ1RPUlNcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXBMaXN0KSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm1hcExpc3QsICcnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYXRpb25MaXN0KSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxvY2F0aW9uTGlzdCwgJycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXN0ZXJMb2NhdGlvbkxpc3QpID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubWFzdGVyTG9jYXRpb25MaXN0LCAnJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxhc3RVc2VkSWQpID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubGFzdFVzZWRJZCwgJycpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTElGRUNZQ0xFXHJcbiAgICAvLyBBUElTXHJcblxyXG4gICAgcHVibGljIEdldExhc3RVc2VkSWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubGFzdFVzZWRJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIFNldExhc3RVc2VkSWQoaWQ6IHN0cmluZykge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubGFzdFVzZWRJZCwgaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBBZGRNYXBUb0xpc3QodmFsdWU6IEluZGl2aWR1YWxNYXApOiB2b2lkIHtcclxuICAgICAgICAvLyB0dXJuIHN0b3JlZCBtYXAgaW50byBKUyBhcnJheVxyXG4gICAgICAgIGNvbnN0IG1hcExpc3QgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hcExpc3QpID09PSAnJyA/IFtdIDogSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hcExpc3QpKTtcclxuICAgICAgICAvLyBhZGQgbWFwIHRvIGFycmF5XHJcbiAgICAgICAgbWFwTGlzdC5wdXNoKHZhbHVlKVxyXG4gICAgICAgIC8vIHNhdmUgbmV3IGFycmF5IHRvIGxvY2FsIHN0b3JhZ2VcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm1hcExpc3QsIEpTT04uc3RyaW5naWZ5KG1hcExpc3QpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgUmVwbGFjZU1hcCh2YWx1ZTogSW5kaXZpZHVhbE1hcCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHR1cm4gc3RvcmVkIG1hcCBpbnRvIEpTIGFycmF5XHJcbiAgICAgICAgY29uc3QgbWFwTGlzdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFwTGlzdCkgPT09ICcnID8gW10gOiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFwTGlzdCkpO1xyXG4gICAgICAgIC8vIGdldCBpbmRleCBpbiBhcnJheSBvZiBtYXAgdG8gcmVwbGFjZVxyXG4gICAgICAgIGNvbnN0IGlkeCA9IG1hcExpc3QuZmluZEluZGV4KG1hcCA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBtYXAuaWQgPT09IHZhbHVlLmlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGlkeCk7XHJcbiAgICAgICAgLy8gcmVwbGFjZSBtYXAgaW4gYXJyYXkgd2l0aCBuZXcgbWFwXHJcbiAgICAgICAgbWFwTGlzdC5zcGxpY2UoaWR4LCAxLCB2YWx1ZSk7XHJcbiAgICAgICAgLy8gc2F2ZSBuZXcgYXJyYXkgdG8gbG9jYWwgc3RvcmFnZVxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubWFwTGlzdCwgSlNPTi5zdHJpbmdpZnkobWFwTGlzdCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBHZXRNYXBMaXN0KCk6IEFycmF5PEluZGl2aWR1YWxNYXA+IHtcclxuICAgICAgICAvLyBwYXJzZSBKU09OIGFuZCByZXR1cm4gdGhlIGFycmF5IG9mIG1hcHMgZnJvbSBsb2NhbCBzdG9yYWdlXHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFwTGlzdCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hcExpc3QpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIEdldE1hcEJ5SWQoaWQ6IHN0cmluZyk6IEluZGl2aWR1YWxNYXAge1xyXG4gICAgICAgIC8vIHR1cm4gc3RvcmVkIG1hcCBpbnRvIEpTIGFycmF5XHJcbiAgICAgICAgY29uc3QgbWFwTGlzdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFwTGlzdCkgPT09ICcnID8gW10gOiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFwTGlzdCkpO1xyXG4gICAgICAgIC8vIHJldHVybiBtYXAgd2l0aCBnaXZlbiBpZFxyXG4gICAgICAgIHJldHVybiBtYXBMaXN0LmZpbmQobWFwID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG1hcC5pZCA9PT0gaWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIERlbGV0ZU1hcExpc3QoKTogdm9pZCB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5tYXBMaXN0LCAnJyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5sb2NhdGlvbkxpc3QsICcnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm1hc3RlckxvY2F0aW9uTGlzdCwgJycpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwdWJsaWMgU2F2ZUxvY2F0aW9uTGVnZW5kKGxpc3Q6IEFycmF5PE1hcE1hcmtlcj4pOiB2b2lkIHtcclxuICAgICAgIFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYXRpb25MaXN0LCBKU09OLnN0cmluZ2lmeShsaXN0KSk7XHJcbiAgICAgICAgdGhpcy5TYXZlTWFzdGVyTG9jYXRpb25MZWdlbmQobGlzdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIEdldExvY2F0aW9uTGVnZW5kKCkge1xyXG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2F0aW9uTGlzdCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgdGVtcDogQXJyYXk8TWFwTWFya2VyPiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sb2NhdGlvbkxpc3QpKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRlbXA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBTYXZlTWFzdGVyTG9jYXRpb25MZWdlbmQobGlzdDogQXJyYXk8TWFwTWFya2VyPik6IHZvaWQge1xyXG4gICAgICAgIGxldCBtYXN0ZXIgPSB0aGlzLkdldE1hc3RlckxvY2F0aW9uTGVnZW5kKCk7XHJcbiAgICAgICAgbGV0IHRlbXAgPSBtYXN0ZXI7XHJcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspe1xyXG4gICAgICAgICAgICBsZXQgbGlzdElkID0gbGlzdFtpXS5pZDtcclxuICAgICAgICAgICAgLy9pZiB0aGUgbG9jYXRpb24gZG9lcyBub3QgYWxyZWFkeSBleGlzdCBpbiB0aGUgbGVnZW5kIG1hc3RlciBsaXN0XHJcbiAgICAgICAgICAgIGlmKG1hc3Rlci5maWx0ZXIoaXRlbT0+IGl0ZW0uaWQgPT09IGxpc3RJZCkubGVuZ3RoID09PSAwKXtcclxuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJhZGRpbmcgXCIsIGxpc3RbaV0sIFwiIHRvIHRoZSBtYXN0ZXIgbGlzdFwiKTtcclxuICAgICAgICAgICAgICAgIHRlbXAucHVzaChsaXN0W2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL2lmIHRoZSBvcmRlckluZGV4IGhhcyBjaGFuZ2VkIGZvciBhIGxvY2F0aW9uIHRoaXMgd2lsbCB1cGRhdGUgaXRcclxuICAgICAgICAgICAgaWYobWFzdGVyLmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgPT09IGxpc3RJZCAmJiBpdGVtLm9yZGVySW5kZXggIT09IGxpc3RbaV0ub3JkZXJJbmRleCkubGVuZ3RoICE9PSAwKXtcclxuICAgICAgICAgICAgICAgIGxldCB0ZW1wTWFzdGVyID0gbWFzdGVyLmZpbHRlcihpdGVtPT4gaXRlbS5pZCA9PT0gbGlzdElkKTtcclxuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJMb2NhdGlvbiA9IFwiLCBsaXN0W2ldLnRpdGxlKTtcclxuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJPcmRlciBpbmRleCBpbiBtYXN0ZXIgPSBcIiwgdGVtcE1hc3RlclswXS5vcmRlckluZGV4KTtcclxuICAgICAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJOZXcgb3JkZXIgaW5kZXggPSBcIiwgbGlzdFtpXS5vcmRlckluZGV4KTtcclxuICAgICAgICAgICAgICAgdGVtcFttYXN0ZXIuaW5kZXhPZih0ZW1wTWFzdGVyWzBdKV0ub3JkZXJJbmRleCA9IGxpc3RbaV0ub3JkZXJJbmRleDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgIFxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubWFzdGVyTG9jYXRpb25MaXN0LCBKU09OLnN0cmluZ2lmeSh0ZW1wKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIEdldE1hc3RlckxvY2F0aW9uTGVnZW5kKCkge1xyXG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hc3RlckxvY2F0aW9uTGlzdCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgdGVtcDogQXJyYXk8TWFwTWFya2VyPiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5tYXN0ZXJMb2NhdGlvbkxpc3QpKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRlbXA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBHZXRMb2NhdGlvbkJ5SWQoaWQ6IHN0cmluZyk6IE1hcE1hcmtlciB7XHJcbiAgICAgICAgLy8gdHVybiBzdG9yZWQgbG9jYXRpb25zIGludG8gSlMgYXJyYXlcclxuICAgICAgICBjb25zdCBtYXN0ZXJMb2NhdGlvbkxpc3QgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1hc3RlckxvY2F0aW9uTGlzdCkgPT09ICcnID8gW10gOiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubWFzdGVyTG9jYXRpb25MaXN0KSk7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcIm1hc3RlckxvY2F0aW9uTGlzdCA9IFwiLCBtYXN0ZXJMb2NhdGlvbkxpc3QpO1xyXG4gICAgICAgIC8vIHJldHVybiBsb2NhdGlvbiB3aXRoIGdpdmVuIGlkXHJcbiAgICAgICAgcmV0dXJuIG1hc3RlckxvY2F0aW9uTGlzdC5maW5kKGxvY2F0aW9uID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uLmlkID09PSBpZDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBIRUxQRVJTXHJcblxyXG59XHJcbiJdfQ== |
@@ -62,3 +62,3 @@ import { OnInit } from '@angular/core'; | ||
*/ | ||
protected assignIconUrl(locList: Array<MapMarker>): void; | ||
protected assignIconUrl(locList: Array<MapMarker>): MapMarker[]; | ||
/** | ||
@@ -65,0 +65,0 @@ * Gives order to the MapMarkers based on how the user orders the legend |
@@ -110,2 +110,3 @@ import { EventEmitter } from '@angular/core'; | ||
UpdateLegendLocations(list: any): void; | ||
CheckForDuplicates(list: Array<MapMarker>): Array<MapMarker>; | ||
/** | ||
@@ -112,0 +113,0 @@ * |
{ | ||
"name": "@ambl-on/lcu-ambl-on-common", | ||
"version": "0.1.298-my-atlas", | ||
"version": "0.1.299-my-atlas", | ||
"peerDependencies": { | ||
@@ -5,0 +5,0 @@ "@angular/common": "^7.2.0", |
Sorry, the diff of this file is too big to display
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 too big to display
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 too big to display
Sorry, the diff of this file is not supported yet
5167498
14310