@sbb-esta/lyne-elements-experimental 2.11.0 → 3.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +13 -13
- package/development/journey-summary/journey-summary.component.d.ts +5 -3
- package/development/journey-summary/journey-summary.component.d.ts.map +1 -1
- package/development/journey-summary/journey-summary.component.js +5 -2
- package/development/pearl-chain/pearl-chain.component.d.ts +5 -3
- package/development/pearl-chain/pearl-chain.component.d.ts.map +1 -1
- package/development/pearl-chain/pearl-chain.component.js +5 -2
- package/development/pearl-chain-time/pearl-chain-time.component.d.ts +5 -3
- package/development/pearl-chain-time/pearl-chain-time.component.d.ts.map +1 -1
- package/development/pearl-chain-time/pearl-chain-time.component.js +5 -2
- package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +1 -1
- package/development/seat-reservation/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +1 -0
- package/development/seat-reservation/seat-reservation/{seat-reservation-scoped-component → seat-reservation-scoped}/seat-reservation-scoped.component.js +1 -1
- package/development/seat-reservation/seat-reservation/seat-reservation-scoped.d.ts +2 -0
- package/development/seat-reservation/seat-reservation/seat-reservation-scoped.d.ts.map +1 -0
- package/development/seat-reservation/seat-reservation/seat-reservation-scoped.js +5 -0
- package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
- package/development/seat-reservation/seat-reservation/seat-reservation.component.js +2 -2
- package/development/timetable-row/timetable-row.component.d.ts +5 -3
- package/development/timetable-row/timetable-row.component.d.ts.map +1 -1
- package/development/timetable-row/timetable-row.component.js +5 -2
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/journey-summary/journey-summary.component.d.ts +5 -3
- package/journey-summary/journey-summary.component.d.ts.map +1 -1
- package/journey-summary/journey-summary.component.js +4 -1
- package/package.json +2 -2
- package/pearl-chain/pearl-chain.component.d.ts +5 -3
- package/pearl-chain/pearl-chain.component.d.ts.map +1 -1
- package/pearl-chain/pearl-chain.component.js +4 -1
- package/pearl-chain-time/pearl-chain-time.component.d.ts +5 -3
- package/pearl-chain-time/pearl-chain-time.component.d.ts.map +1 -1
- package/pearl-chain-time/pearl-chain-time.component.js +4 -1
- package/seat-reservation/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +1 -0
- package/seat-reservation/seat-reservation/seat-reservation-scoped.d.ts +2 -0
- package/seat-reservation/seat-reservation/seat-reservation-scoped.d.ts.map +1 -0
- package/seat-reservation/seat-reservation/{seat-reservation-scoped-component.js → seat-reservation-scoped.js} +1 -1
- package/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
- package/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
- package/timetable-row/timetable-row.component.d.ts +5 -3
- package/timetable-row/timetable-row.component.d.ts.map +1 -1
- package/timetable-row/timetable-row.component.js +4 -1
- package/development/seat-reservation/seat-reservation/seat-reservation-scoped-component/seat-reservation-scoped.component.d.ts.map +0 -1
- package/development/seat-reservation/seat-reservation/seat-reservation-scoped-component.d.ts +0 -2
- package/development/seat-reservation/seat-reservation/seat-reservation-scoped-component.d.ts.map +0 -1
- package/development/seat-reservation/seat-reservation/seat-reservation-scoped-component.js +0 -5
- package/seat-reservation/seat-reservation/seat-reservation-scoped-component/seat-reservation-scoped.component.d.ts.map +0 -1
- package/seat-reservation/seat-reservation/seat-reservation-scoped-component.d.ts +0 -2
- package/seat-reservation/seat-reservation/seat-reservation-scoped-component.d.ts.map +0 -1
- /package/development/seat-reservation/seat-reservation/{seat-reservation-scoped-component → seat-reservation-scoped}/seat-reservation-scoped.component.d.ts +0 -0
- /package/seat-reservation/seat-reservation/{seat-reservation-scoped-component → seat-reservation-scoped}/seat-reservation-scoped.component.d.ts +0 -0
- /package/seat-reservation/seat-reservation/{seat-reservation-scoped-component → seat-reservation-scoped}/seat-reservation-scoped.component.js +0 -0
|
@@ -703,4 +703,4 @@ let SeatReservationBaseElement = (() => {
|
|
|
703
703
|
export {
|
|
704
704
|
SeatReservationBaseElement
|
|
705
705
|
};
|
|
706
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1iYXNlLWVsZW1lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tYmFzZS1lbGVtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQXJyb3dLZXlPclBhZ2VLZXlzUHJlc3NlZCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBMaXRFbGVtZW50LCB0eXBlIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgbWFwQ29hY2hJbmZvc1RvQ29hY2hTZWxlY3Rpb24sXG4gIG1hcFBsYWNlQW5kQ29hY2hUb1NlYXRSZXNlcnZhdGlvblBsYWNlU2VsZWN0aW9uLFxuICBtYXBQbGFjZUluZm9zVG9QbGFjZVNlbGVjdGlvbixcbn0gZnJvbSAnLi4vY29tbW9uL21hcHBlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlNlYXRSZXNlcnZhdGlvblBsYWNlQ29udHJvbEVsZW1lbnQgfSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wvc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLmNvbXBvbmVudC5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIENvYWNoSXRlbSxcbiAgRWxlbWVudERpbWVuc2lvbixcbiAgRWxlbWVudFBvc2l0aW9uLFxuICBQbGFjZSxcbiAgUGxhY2VTZWxlY3Rpb24sXG4gIFNlYXRSZXNlcnZhdGlvbixcbiAgU2VhdFJlc2VydmF0aW9uQ29hY2hTZWxlY3Rpb24sXG4gIFNlYXRSZXNlcnZhdGlvblBsYWNlU2VsZWN0aW9uLFxufSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJTZWF0UmVzZXJ2YXRpb25TY29wZWRFbGVtZW50IH0gZnJvbSAnLi9zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC1jb21wb25lbnQvc2VhdC1yZXNlcnZhdGlvbi1zY29wZWQuY29tcG9uZW50LmpzJztcblxuZW51bSBTY3JvbGxEaXJlY3Rpb24ge1xuICByaWdodCA9ICdyaWdodCcsXG4gIGxlZnQgPSAnbGVmdCcsXG59XG5cbmludGVyZmFjZSBDb2FjaFNjcm9sbFRyaWdnZXJQb2ludCB7XG4gIHN0YXJ0OiBudW1iZXI7XG4gIGVuZDogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgU2VhdFJlc2VydmF0aW9uQmFzZUVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgc2VsZWN0ZWRQbGFjZXM6ICdzZWxlY3RlZFBsYWNlcycsXG4gICAgc2VsZWN0ZWRDb2FjaDogJ3NlbGVjdGVkQ29hY2gnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBUaGUgc2VhdCByZXNlcnZhdGlvbiBvYmplY3Qgd2hpY2ggY29udGFpbnMgYWxsIGNvYWNoZXMgYW5kIHBsYWNlcyAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzZWF0LXJlc2VydmF0aW9uJywgdHlwZTogT2JqZWN0IH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzZWF0UmVzZXJ2YXRpb246IFNlYXRSZXNlcnZhdGlvbiA9IG51bGwhO1xuXG4gIC8qKiBUaGUgc2VhdCByZXN2ZXJ2YXRpb24gbmF2aWdhdGlvbiBjYW4gYmUgdG9nZ2xlZCBieSB0aGlzIHByb3BlcnR5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoYXMtbmF2aWdhdGlvbicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGhhc05hdmlnYXRpb246IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKiBUaGUgc2VhdCByZXNlcnZhdGlvbiBhcmVhIGlzIGFsaWduZWQgdmVydGljYWxseSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWxpZ24tdmVydGljYWwnLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhbGlnblZlcnRpY2FsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFRoZSBzZWF0IHJlc2VydmF0aW9uIGFyZWEncyBiYXNlIGdyaWQgc2l6ZSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYmFzZS1ncmlkLXNpemUnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGJhc2VHcmlkU2l6ZTogbnVtYmVyID0gMTY7XG5cbiAgLyoqIFRoZSBzZWF0IHJlc2VydmF0aW9uIGFyZWEncyB3aWR0aCAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaGVpZ2h0JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBoZWlnaHQ6IG51bWJlciA9IG51bGwhO1xuXG4gIC8qKiBNYXhpbWFsIG51bWJlciBvZiBwb3NzaWJsZSBjbGlja2FibGUgc2VhdHMgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ21heC1yZXNlcnZhdGlvbnMnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIG1heFJlc2VydmF0aW9uczogbnVtYmVyID0gbnVsbCE7XG5cbiAgLyoqIEFueSBjbGljayBmdW5jdGlvbmFsaXR5IGlzIHByZXZlbnRlZCAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncHJldmVudC1wbGFjZS1jbGljaycsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIHByZXZlbnRQbGFjZUNsaWNrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIHNlbGVjdGVkQ29hY2hJbmRleDogbnVtYmVyID0gLTE7XG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBmb2N1c2VkQ29hY2hJbmRleDogbnVtYmVyID0gLTE7XG5cbiAgLyoqIEVtaXRzIHdoZW4gYSBwbGFjZSB3YXMgc2VsZWN0ZWQgYnkgdXNlci4gKi9cbiAgcHJvdGVjdGVkIHNlbGVjdGVkUGxhY2VzOiBFdmVudEVtaXR0ZXI8U2VhdFJlc2VydmF0aW9uUGxhY2VTZWxlY3Rpb25bXT4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2VhdFJlc2VydmF0aW9uQmFzZUVsZW1lbnQuZXZlbnRzLnNlbGVjdGVkUGxhY2VzLFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuIGEgY29hY2ggd2FzIHNlbGVjdGVkIGJ5IHVzZXIuICovXG4gIHByb3RlY3RlZCBzZWxlY3RlZENvYWNoOiBFdmVudEVtaXR0ZXI8U2VhdFJlc2VydmF0aW9uQ29hY2hTZWxlY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNlYXRSZXNlcnZhdGlvbkJhc2VFbGVtZW50LmV2ZW50cy5zZWxlY3RlZENvYWNoLFxuICApO1xuXG4gIHByb3RlY3RlZCBjb2FjaEJvcmRlclBhZGRpbmcgPSA2O1xuICBwcm90ZWN0ZWQgY29hY2hCb3JkZXJPZmZzZXQgPSB0aGlzLmNvYWNoQm9yZGVyUGFkZGluZyAvIHRoaXMuYmFzZUdyaWRTaXplO1xuICBwcm90ZWN0ZWQgY3VyclNjcm9sbERpcmVjdGlvbjogU2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xsRGlyZWN0aW9uLnJpZ2h0O1xuICBwcm90ZWN0ZWQgbWF4Q2FsY0NvYWNoc1dpZHRoOiBudW1iZXIgPSAwO1xuICBwcm90ZWN0ZWQgc2Nyb2xsQ29hY2hzQXJlYVdpZHRoOiBudW1iZXIgPSAwO1xuICBwcm90ZWN0ZWQgdHJpZ2dlckNvYWNoUG9zaXRpb25zQ29sbGVjdGlvbjogQ29hY2hTY3JvbGxUcmlnZ2VyUG9pbnRbXSA9IFtdO1xuICBwcm90ZWN0ZWQgZmlyc3RUYWJFbGVtZW50OiBIVE1MRWxlbWVudCA9IG51bGwhO1xuICBwcm90ZWN0ZWQgbGFzdFRhYkVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gbnVsbCE7XG4gIHByb3RlY3RlZCBjb2FjaFNjcm9sbEFyZWE6IEhUTUxFbGVtZW50ID0gbnVsbCE7XG4gIHByb3RlY3RlZCBjdXJyU2VsZWN0ZWRQbGFjZTogUGxhY2UgfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIGN1cnJTZWxlY3RlZFBsYWNlRWxlbWVudElkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIGN1cnJTZWxlY3RlZENvYWNoSW5kZXg6IG51bWJlciA9IC0xO1xuICBwcm90ZWN0ZWQgcHJldmVudENvYWNoU2Nyb2xsQnlQbGFjZUNsaWNrOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFNlYXRSZXNlcnZhdGlvblBsYWNlczogU2VhdFJlc2VydmF0aW9uUGxhY2VTZWxlY3Rpb25bXSA9IFtdO1xuICBwcm90ZWN0ZWQgc2VhdFJlc2VydmF0aW9uV2l0aG91dE5hdmlnYXRpb25IYXNGb2N1cyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgaXNDb2NoR3JpZEZvY3VzYWJsZSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgaXNBdXRvU2Nyb2xsaW5nID0gZmFsc2U7XG4gIHByb3RlY3RlZCBpc0tleWJvYXJkTmF2aWdhdGlvbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQga2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzID0ge1xuICAgIEFycm93TGVmdDogJ0Fycm93TGVmdCcsXG4gICAgQXJyb3dSaWdodDogJ0Fycm93UmlnaHQnLFxuICAgIEFycm93VXA6ICdBcnJvd1VwJyxcbiAgICBBcnJvd0Rvd246ICdBcnJvd0Rvd24nLFxuICAgIFRhYjogJ1RhYicsXG4gICAgRW50ZXI6ICdFbnRlcicsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzZWF0UmVzZXJ2YXRpb24nKSkge1xuICAgICAgdGhpcy5faW5pdFNlYXRSZXNlcnZhdGlvblBsYWNlU2VsZWN0aW9uKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnYmFzZUdyaWRTaXplJykpIHtcbiAgICAgIHRoaXMuY29hY2hCb3JkZXJPZmZzZXQgPSB0aGlzLmNvYWNoQm9yZGVyUGFkZGluZyAvIHRoaXMuYmFzZUdyaWRTaXplO1xuICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JpZC1zaXplJywgYCR7dGhpcy5iYXNlR3JpZFNpemV9cHhgKTtcblxuICAgICAgaWYgKHRoaXMuYWxpZ25WZXJ0aWNhbCkge1xuICAgICAgICB0aGlzLl9zZXRWZXJ0aWNhbEFsaWdubWVudE9mZnNldCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHRoZSBoZWlnaHQgaXMgdXNlZCwgdGhlIGJhc2VHcmlkU2l6ZSBtdXN0IGJlIHJlY2FsY3VsYXRlZFxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2hlaWdodCcpICYmICEhdGhpcy5oZWlnaHQpIHtcbiAgICAgIGlmICh0aGlzLnNlYXRSZXNlcnZhdGlvbi5jb2FjaEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmJhc2VHcmlkU2l6ZSA9IHRoaXMuaGVpZ2h0IC8gdGhpcy5zZWF0UmVzZXJ2YXRpb24uY29hY2hJdGVtc1swXS5kaW1lbnNpb24uaDtcbiAgICAgICAgdGhpcy5jb2FjaEJvcmRlck9mZnNldCA9IHRoaXMuY29hY2hCb3JkZXJQYWRkaW5nIC8gdGhpcy5iYXNlR3JpZFNpemU7XG4gICAgICAgIHRoaXMuc3R5bGU/LnNldFByb3BlcnR5KCctLXNiYi1zZWF0LXJlc2VydmF0aW9uLWdyaWQtc2l6ZScsIGAke3RoaXMuYmFzZUdyaWRTaXplfXB4YCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYWxpZ25WZXJ0aWNhbCkge1xuICAgICAgICAgIHRoaXMuX3NldFZlcnRpY2FsQWxpZ25tZW50T2Zmc2V0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdhbGlnblZlcnRpY2FsJykgJiYgdGhpcy5hbGlnblZlcnRpY2FsKSB7XG4gICAgICB0aGlzLl9zZXRWZXJ0aWNhbEFsaWdubWVudE9mZnNldCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qIEluaXQgc2Nyb2xsIGV2ZW50IGhhbmRsaW5nIGZvciBjb2FjaCBuYXZpZ2F0aW9uICovXG4gIHByb3RlY3RlZCBpbml0TmF2aWdhdGlvblNlbGVjdGlvbkJ5U2Nyb2xsRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5maXJzdFRhYkVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCdmaXJzdC10YWItZWxlbWVudCcpIGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMubGFzdFRhYkVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCdsYXN0LXRhYi1lbGVtZW50JykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5jb2FjaFNjcm9sbEFyZWEgPSB0aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCdzYmItc3JfX3BhcmVudC1hcmVhJykgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAodGhpcy5jb2FjaFNjcm9sbEFyZWEpIHtcbiAgICAgIGxldCBjdXJyQ2FsY1RyaWdnZXJQb3MgPSAwO1xuICAgICAgdGhpcy5zY3JvbGxDb2FjaHNBcmVhV2lkdGggPSB0aGlzLmNvYWNoU2Nyb2xsQXJlYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblxuICAgICAgLy8gUHJlY2FsY3VsYXRlIHRyaWdnZXIgc2Nyb2xsIHBvc2l0aW9uIGFycmF5IGRlcGVuZHMgZnJvbSBjb2FjaCB3aWR0aFxuICAgICAgdGhpcy50cmlnZ2VyQ29hY2hQb3NpdGlvbnNDb2xsZWN0aW9uID0gdGhpcy5zZWF0UmVzZXJ2YXRpb24uY29hY2hJdGVtcy5tYXAoKGNvYWNoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0UG9zWCA9IGN1cnJDYWxjVHJpZ2dlclBvcztcbiAgICAgICAgY29uc3QgY29hY2hXaWR0aCA9IHRoaXMuZ2V0Q2FsY3VsYXRlZERpbWVuc2lvbihjb2FjaC5kaW1lbnNpb24pLnc7XG4gICAgICAgIGN1cnJDYWxjVHJpZ2dlclBvcyArPSBjb2FjaFdpZHRoO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN0YXJ0OiBzdGFydFBvc1gsXG4gICAgICAgICAgZW5kOiBjdXJyQ2FsY1RyaWdnZXJQb3MsXG4gICAgICAgICAgd2lkdGg6IGNvYWNoV2lkdGgsXG4gICAgICAgIH0gYXMgQ29hY2hTY3JvbGxUcmlnZ2VyUG9pbnQ7XG4gICAgICB9KTtcblxuICAgICAgLy8gU2V0IG1heGltdW0gY2FsY3VsYXRlZCBjb2FjaCB3aWR0aFxuICAgICAgdGhpcy5tYXhDYWxjQ29hY2hzV2lkdGggPSBjdXJyQ2FsY1RyaWdnZXJQb3M7XG5cbiAgICAgIC8vIEF0IHRoZSBlbmQgb2YgYSBzY3JvbGwgRXZlbnRzIHRvIGEgY29hY2gsIHRoZSByZWFjaGVkIHdhZ29uIGlzIG1hcmtlZCBhcyBzZWxlY3RlZFxuICAgICAgdGhpcy5jb2FjaFNjcm9sbEFyZWEuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsZW5kJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBmaW5kU2Nyb2xsQ29hY2hJbmRleCA9IHRoaXMuaXNBdXRvU2Nyb2xsaW5nXG4gICAgICAgICAgPyB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXhcbiAgICAgICAgICA6IHRoaXMuX2dldENvYWNoSW5kZXhCeVNjcm9sbFRyaWdnZXJQb3NpdGlvbigpO1xuICAgICAgICBpZiAodGhpcy5faXNTY3JvbGxhYmxlVG9TZWxlY3RlZENvYWNoKCkpIHtcbiAgICAgICAgICB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXggPSBmaW5kU2Nyb2xsQ29hY2hJbmRleDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXggPVxuICAgICAgICAgICAgZmluZFNjcm9sbENvYWNoSW5kZXggPCB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXhcbiAgICAgICAgICAgICAgPyB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXhcbiAgICAgICAgICAgICAgOiBmaW5kU2Nyb2xsQ29hY2hJbmRleDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJldmVudENvYWNoU2Nyb2xsQnlQbGFjZUNsaWNrID0gZmFsc2U7XG4gICAgICAgIHRoaXMudXBkYXRlQ3VycmVudFNlbGVjdGVkQ29hY2goKTtcblxuICAgICAgICBpZiAoIXRoaXMuaGFzTmF2aWdhdGlvbikge1xuICAgICAgICAgIHRoaXMucHJlc2VsZWN0UGxhY2VJbkNvYWNoKCk7XG4gICAgICAgICAgdGhpcy5pc0F1dG9TY3JvbGxpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIER1cmluZyBpbml0aWFsaXphdGlvbiB3ZSBjaGVjayB2ZXJ0aWNhbCBhbGlnbm1lbnQgbW9kZS4gSW4gVmVydGljYWwgbW9kZSB3ZSBoYXZlIHRvIHNldCB0aGUgdmVydGljYWwgb2Zmc2V0IG1hbnVhbCBmb3IgdGhlIHNlYXQgcmVzZXJ2YXRpb24gYXJlYSxcbiAgICAgIC8vIGJlY3Vhc2Ugd2Ugcm90YXRlIHRoZSBlbnRpcmUgY29tcG9uZW50IGJ5IDkwIGRlZ3JlZXMgYW5kIHRyYW5zZm9ybSB0aGUgb3JpZ2luIHBvaW50IHRvIHRvcCBsZWZ0LlxuICAgICAgaWYgKHRoaXMuYWxpZ25WZXJ0aWNhbCkge1xuICAgICAgICB0aGlzLl9zZXRWZXJ0aWNhbEFsaWdubWVudE9mZnNldCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBubyBuYXZpZ2F0aW9uIGV4aXN0cyAocHJvcGVydHkgc2V0dGluZyAtPiBoYXNOYXZpZ2F0aW9uKSBhbmQgYSB0YWJsZSBjb2FjaCBnZXRzIHRoZSBmb2N1cyxcbiAgICogdGhlIGZpcnN0IHBsYWNlIGluIHRoZSBjb2FjaCBtdXN0IGJlIGF1dG9tYXRpY2FsbHkgcHJlc2VsZWN0ZWQgdG8gY29udHJvbCB0aGUgcGxhY2UgbmF2aWdhdGlvbiB2aWEga2V5Ym9hcmRcbiAgICpcbiAgICogQHBhcmFtIGZvY3VzQ29hY2hJbmRleFxuICAgKi9cbiAgcHJvdGVjdGVkIG9uRm9jdXNUYWJsZUNvYWNoQW5kUHJlc2VsZWN0UGxhY2UoZm9jdXNDb2FjaEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2VhdFJlc2VydmF0aW9uV2l0aG91dE5hdmlnYXRpb25IYXNGb2N1cyAmJiAhdGhpcy5oYXNOYXZpZ2F0aW9uKSB7XG4gICAgICB0aGlzLnNlYXRSZXNlcnZhdGlvbldpdGhvdXROYXZpZ2F0aW9uSGFzRm9jdXMgPSB0cnVlO1xuICAgICAgdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4ID1cbiAgICAgICAgZm9jdXNDb2FjaEluZGV4ID09PSAwXG4gICAgICAgICAgPyB0aGlzLmdldE5leHRBdmFpbGFibGVDb2FjaEluZGV4KC0xKVxuICAgICAgICAgIDogdGhpcy5nZXRQcmV2QXZhaWxhYmxlQ29hY2hJbmRleChmb2N1c0NvYWNoSW5kZXgpO1xuICAgICAgdGhpcy5wcmVzZWxlY3RQbGFjZUluQ29hY2goKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGlzYXRpb24gb2YgS2V5Ym9hcmQgZXZlbnQgaGFuZGxpbmcgdG8gbmF2aWdhdGlvbiBiZXR3ZWVuIGVhY2ggcGxhY2VzIGluc2lkZSBhIHNlbGVjdGVkIGNvYWNoIGJ5IHVzaW5nIFthcnJvd10ga2V5cy5cbiAgICogV2l0aCB0aGUgW1RBQl0ga2V5IHRoZSB1c2VyIG5hdmlnYXRpb24gZ29lcyB0byB0aGUgbmV4dCBjb2FjaCBuYXZpZ2F0aW9uIGVsZW1lbnQgYW5kIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcGxhY2UgaXMgYXV0b21hdGljYWxseSByZXNldC5cbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcHJlc3NlZEtleSA9IGV2ZW50LmtleTtcblxuICAgIC8vIElmIGFueSBwbGFjZSBpcyBzZWxlY3RlZCBhbmQgVEFCIEtleSBjb21iaW5hdGlvbiBpc3QgcHJlc3NlZCxcbiAgICAvLyB0aGVuIHdlIGhhbmRsZSB0aGUgbmV4dCBvciBwcmV2aW91cyBjb2FjaCBzZWxlY3Rpb25cbiAgICBpZiAodGhpcy5jdXJyU2VsZWN0ZWRQbGFjZSkge1xuICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5ICYmIGV2ZW50LmtleUNvZGUgPT09IDkpIHtcbiAgICAgICAgdGhpcy5fbmF2aWdhdGVDb2FjaE5hdmlnYXRpb25CeUtleWJvYXJkKCdQUkVWX1RBQicpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChwcmVzc2VkS2V5ID09PSB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cy5UYWIpIHtcbiAgICAgICAgdGhpcy5fbmF2aWdhdGVDb2FjaE5hdmlnYXRpb25CeUtleWJvYXJkKCdORVhUX1RBQicpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgYSBjaG9hY2ggaXMgc2VsZWN0ZWQgYW5kIHRoZSBhcnJvdyBrZXkgaXMgcHJlc3NlZFxuICAgIGlmICh0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXggIT09IC0xICYmIGlzQXJyb3dLZXlPclBhZ2VLZXlzUHJlc3NlZChldmVudCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIHN3aXRjaCAocHJlc3NlZEtleSkge1xuICAgICAgICBjYXNlIHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLkFycm93TGVmdDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBwcmVzc2VkTGVmdEtleU1hcHBpbmc6IHN0cmluZyA9IHRoaXMuYWxpZ25WZXJ0aWNhbFxuICAgICAgICAgICAgICA/IHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLkFycm93RG93blxuICAgICAgICAgICAgICA6IHByZXNzZWRLZXk7XG4gICAgICAgICAgICB0aGlzLl9uYXZpZ2F0ZVRvUGxhY2VCeUtleWJvYXJkKHByZXNzZWRMZWZ0S2V5TWFwcGluZyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLkFycm93UmlnaHQ6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgcHJlc3NlZFJpZ2h0S2V5TWFwcGluZzogc3RyaW5nID0gdGhpcy5hbGlnblZlcnRpY2FsXG4gICAgICAgICAgICAgID8gdGhpcy5rZXlib2FyZE5hdmlnYXRpb25FdmVudHMuQXJyb3dVcFxuICAgICAgICAgICAgICA6IHByZXNzZWRLZXk7XG4gICAgICAgICAgICB0aGlzLl9uYXZpZ2F0ZVRvUGxhY2VCeUtleWJvYXJkKHByZXNzZWRSaWdodEtleU1hcHBpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cy5BcnJvd1VwOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXNzZWRVcEtleU1hcHBpbmc6IHN0cmluZyA9IHRoaXMuYWxpZ25WZXJ0aWNhbFxuICAgICAgICAgICAgICA/IHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLkFycm93TGVmdFxuICAgICAgICAgICAgICA6IHByZXNzZWRLZXk7XG4gICAgICAgICAgICB0aGlzLl9uYXZpZ2F0ZVRvUGxhY2VCeUtleWJvYXJkKHByZXNzZWRVcEtleU1hcHBpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cy5BcnJvd0Rvd246XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgcHJlc3NlZERvd25LZXlNYXBwaW5nOiBzdHJpbmcgPSB0aGlzLmFsaWduVmVydGljYWxcbiAgICAgICAgICAgICAgPyB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cy5BcnJvd1JpZ2h0XG4gICAgICAgICAgICAgIDogcHJlc3NlZEtleTtcbiAgICAgICAgICAgIHRoaXMuX25hdmlnYXRlVG9QbGFjZUJ5S2V5Ym9hcmQocHJlc3NlZERvd25LZXlNYXBwaW5nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdHMgYSBwbGFjZSBpbnNpZGUgdGhlIGNvYWNoIGlmIG5hdmlnYXRlZCB2aWEga2V5Ym9hcmQsXG4gICAqIG90aGVyd2lzZSB0aGUgY29hY2ggZ3JpZCBpcyBzZWxlY3RlZCAobmVjZXNzYXJ5IGZvciBTY3JlZW5SZWFkZXIpXG4gICAqL1xuICBwcm90ZWN0ZWQgcHJlc2VsZWN0UGxhY2VJbkNvYWNoKCk6IHZvaWQge1xuICAgIGNvbnN0IGNsb3Nlc3RQbGFjZSA9IHRoaXMuX2dldENsb3Nlc3RQbGFjZUJ5S2V5RGlyZWN0aW9uKCk7XG4gICAgLy9JZiBjbG9zZXN0UGxhY2UgZXhpc3QsIHdlIGhhdmUgdG8gdW5mb2N1cyBwcmV2aW91c2UgZm9jdXNlZCBwbGFjZVxuICAgIGlmIChjbG9zZXN0UGxhY2UpIHtcbiAgICAgIHRoaXMudW5mb2N1c1BsYWNlRWxlbWVudCgpO1xuICAgIH1cblxuICAgIC8vIE9ubHkgd2hlbiBrZXlib2FyZCBuYXZpZ2F0aW9uIGlzIHVzZWQgYW5kIGNvYWNoZXMgYXJlIHNjcm9sbGVkIGJ5IGF1dG8gc2Nyb2xsaW5nLFxuICAgIC8vIHRoZW4gd2UgY2FuIHNldCB0aGUgZm9jdXMgb24gdGhlIGZpcnN0IHBsYWNlIGluIHRoZSBjb2FjaC5cbiAgICBpZiAodGhpcy5pc0tleWJvYXJkTmF2aWdhdGlvbiAmJiB0aGlzLmlzQXV0b1Njcm9sbGluZykge1xuICAgICAgaWYgKGNsb3Nlc3RQbGFjZSkge1xuICAgICAgICB0aGlzLmZvY3VzUGxhY2VFbGVtZW50KGNsb3Nlc3RQbGFjZSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEluIGNhc2VzIHdoZXJlIHRoZSBwcmVzZWxlY3Rpb24gZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIGJ5IG5vcm1hbCBjbGlja2luZyBvciB2aWEgc2NyZWVucmVhZGVyIHZpYSB0YWIsXG4gICAgLy8gd2Ugb25seSBmb2N1cyB0aGUgdGFibGUgd2l0aG91dCBkaXJlY3RseSBmb2N1c2luZyB0aGUgcGxhY2UuXG4gICAgZWxzZSB7XG4gICAgICAvLyBXZSBuZWVkIHRvIHNldCB0aGUgY3VyclNlbGVjdGVkUGxhY2UgaGVyZSBmb3IgZnVydGhlciBjb3JyZWN0IGZ1bmN0aW9uaW5nIG5hdmlnYXRpb24gdmlhIHRhYi5cbiAgICAgIHRoaXMuY3VyclNlbGVjdGVkUGxhY2UgPSBjbG9zZXN0UGxhY2U7XG4gICAgICB0aGlzLl9zZXRGb2N1c1RvU2VsZWN0ZWRDb2FjaEdyaWQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2Nyb2xsVG9TZWxlY3RlZE5hdkNvYWNoKHNlbGVjdGVkTmF2Q29hY2hJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHNlbGVjdGVkTmF2Q29hY2hJbmRleCAhPT0gdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4KSB7XG4gICAgICB0aGlzLmlzQXV0b1Njcm9sbGluZyA9IHRydWU7XG4gICAgICB0aGlzLmlzQ29jaEdyaWRGb2N1c2FibGUgPSB0cnVlO1xuICAgICAgdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4ID0gc2VsZWN0ZWROYXZDb2FjaEluZGV4O1xuICAgICAgdGhpcy5fc2V0U2Nyb2xsRGlyZWN0aW9uQnlDb2FjaEluZGV4KCk7XG5cbiAgICAgIGNvbnN0IHNjcm9sbFRvQ29hY2hQb3NYID0gdGhpcy5fZ2V0Q29hY2hTY3JvbGxQb3NpdGlvblgoKTtcbiAgICAgIGNvbnN0IGlzU2VsZWN0ZWRDb2FjaEluZGV4U2Nyb2xsYWJsZSA9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb2FjaEluZGV4ICE9PSAtMSB8fCB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXggPiAwO1xuXG4gICAgICAvLyBDaGVja3Mgd2hldGhlciB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gYWxsb3dzIHNjcm9sbGluZyB0byB0aGUgbmV4dCB3YWdvbiBvciBub3RcbiAgICAgIGlmIChpc1NlbGVjdGVkQ29hY2hJbmRleFNjcm9sbGFibGUgJiYgdGhpcy5faXNTY3JvbGxhYmxlVG9TZWxlY3RlZENvYWNoKCkpIHtcbiAgICAgICAgdGhpcy5jb2FjaFNjcm9sbEFyZWEuc2Nyb2xsVG8oe1xuICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICBsZWZ0OiBzY3JvbGxUb0NvYWNoUG9zWCxcbiAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy51cGRhdGVDdXJyZW50U2VsZWN0ZWRDb2FjaCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBuZXcgU2Nyb2xsRGlyZWN0aW9uIGJ5IHRoZSBuZXcgZ2l2ZW4gdGFyZ2V0IGNvYWNoIGluZGV4LlxuICAgKi9cbiAgcHJpdmF0ZSBfc2V0U2Nyb2xsRGlyZWN0aW9uQnlDb2FjaEluZGV4KCk6IHZvaWQge1xuICAgIHRoaXMuY3VyclNjcm9sbERpcmVjdGlvbiA9XG4gICAgICB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXggPiB0aGlzLnNlbGVjdGVkQ29hY2hJbmRleFxuICAgICAgICA/IFNjcm9sbERpcmVjdGlvbi5yaWdodFxuICAgICAgICA6IFNjcm9sbERpcmVjdGlvbi5sZWZ0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNjcm9sbCBzdGFydCBvciBlbmQgcG9zaXRpb24gWCBmcm9tIHRoZSBzZWxlY3RlZCBjb2FjaC5cbiAgICogSW4gY2FzZSB0aGUgdXNlciBpcyBjdXJyZXRubHkgbmF2aWdhdGUgdGhyb3VnaHQgcGxhY2VzIGJ5IGtleWJvYXJkIGFuZCBnb2VzIHRvIHByZXZpb3VzIGNvYWNoLFxuICAgKiB0aGVuIHdlIHJldHVybiB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBjb2FjaCB0byBnZXQgY2xvc3Rlc3QgbmV4dCBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIG5leHQgZm9jdXMgcGxhY2UuXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0Q29hY2hTY3JvbGxQb3NpdGlvblgoKTogbnVtYmVyIHtcbiAgICBjb25zdCBjb2FjaFRyaWdnZXJQb2ludCA9IHRoaXMudHJpZ2dlckNvYWNoUG9zaXRpb25zQ29sbGVjdGlvblt0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXhdO1xuICAgIGNvbnN0IGlzRm9jdXNQbGFjZUZyb21QcmV2aW91c0NvYWNoUG9zaXRpb24gPVxuICAgICAgdGhpcy5pc0tleWJvYXJkTmF2aWdhdGlvbiAmJlxuICAgICAgdGhpcy5jdXJyU2Nyb2xsRGlyZWN0aW9uID09PSBTY3JvbGxEaXJlY3Rpb24ubGVmdCAmJlxuICAgICAgY29hY2hUcmlnZ2VyUG9pbnQud2lkdGggPiB0aGlzLnNjcm9sbENvYWNoc0FyZWFXaWR0aDtcbiAgICByZXR1cm4gaXNGb2N1c1BsYWNlRnJvbVByZXZpb3VzQ29hY2hQb3NpdGlvblxuICAgICAgPyBjb2FjaFRyaWdnZXJQb2ludC5lbmQgLSB0aGlzLnNjcm9sbENvYWNoc0FyZWFXaWR0aFxuICAgICAgOiBjb2FjaFRyaWdnZXJQb2ludC5zdGFydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBmb2N1cyBvbiB0aGUgSFRNTCB0YWJsZSAoZ3JpZCkgY2FwdGlvbiBlbGVtZW50IHNvIHRoYXQgdGhlIGhlYWRpbmcgaXMgcmVhZCBvdXQgd2hlbiB1c2luZyBhIFNjcmVlblJlYWRlci5cbiAgICovXG4gIHByaXZhdGUgX3NldEZvY3VzVG9TZWxlY3RlZENvYWNoR3JpZCgpOiB2b2lkIHtcbiAgICAvLyBXaGVuIHRoZSB1c2VyIHBlcmZvcm1zIGFuIGFjdGlvbiB0aGF0IGFmZmVjdHMgdGhlIGNvYWNoIG5hdmlnYXRpb24sIHRoZW4gdGhlIG5hdmlnYXRlZCB0YWJsZSBpcyBmb2N1c2FibGUuXG4gICAgaWYgKHRoaXMuaXNDb2NoR3JpZEZvY3VzYWJsZSkge1xuICAgICAgdGhpcy5pc0NvY2hHcmlkRm9jdXNhYmxlID0gZmFsc2U7XG4gICAgICBjb25zdCBjb2FjaFRhYmxlQ2FwdGlvbkVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcjc2JiLXNyLWNvYWNoLWNhcHRpb24tJyArIHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCxcbiAgICAgICkgYXMgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ7XG4gICAgICBpZiAoY29hY2hUYWJsZUNhcHRpb25FbGVtZW50KSB7XG4gICAgICAgIGNvYWNoVGFibGVDYXB0aW9uRWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIGN1cnJlbnQgc2Nyb2xsZWQgcG9zaXRpb24gY2FuIGJlIHVzZWQgdG8gc2Nyb2xsIHRvIHRoZSBzZWxlY3RlZCB3YWdvblxuICAgKiBAcmV0dXJucyBib29sZWFuXG4gICAqL1xuICBwcml2YXRlIF9pc1Njcm9sbGFibGVUb1NlbGVjdGVkQ29hY2goKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY3VyclNjcm9sbFBvc1ggPSB0aGlzLmNvYWNoU2Nyb2xsQXJlYS5zY3JvbGxMZWZ0O1xuICAgIGNvbnN0IGNvYWNoU2Nyb2xsV2luZG93V2lkdGggPSB0aGlzLmNvYWNoU2Nyb2xsQXJlYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICBjb25zdCBtYXhTY3JvbGxXaWR0aEFyZWEgPSB0aGlzLm1heENhbGNDb2FjaHNXaWR0aCAtIGNvYWNoU2Nyb2xsV2luZG93V2lkdGg7XG4gICAgY29uc3QgY3VyckNvYWNoVHJpZ2dlciA9IHRoaXMudHJpZ2dlckNvYWNoUG9zaXRpb25zQ29sbGVjdGlvblt0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXhdO1xuICAgIGNvbnN0IGlzU2Nyb2xsUG9zU2FtZVRvQ3VyckNvYWNoUG9zID1cbiAgICAgIGN1cnJTY3JvbGxQb3NYID09PSB0aGlzLnRyaWdnZXJDb2FjaFBvc2l0aW9uc0NvbGxlY3Rpb25bdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4XS5zdGFydDtcblxuICAgIHJldHVybiAoXG4gICAgICAoY3VyclNjcm9sbFBvc1ggPCBtYXhTY3JvbGxXaWR0aEFyZWEgfHwgY3VyclNjcm9sbFBvc1ggPiBjdXJyQ29hY2hUcmlnZ2VyLnN0YXJ0KSAmJlxuICAgICAgIWlzU2Nyb2xsUG9zU2FtZVRvQ3VyckNvYWNoUG9zXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb2FjaCBpbmRleCB3aGljaCBpcyBjdXJyZW50bHkgdmlzaWJsZSBpbiB0aGUgc2Nyb2xsIGFyZWFcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBwcml2YXRlIF9nZXRDb2FjaEluZGV4QnlTY3JvbGxUcmlnZ2VyUG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICBjb25zdCBzY3JvbGxPZmZzZXRYID0gdGhpcy5jb2FjaFNjcm9sbEFyZWEuc2Nyb2xsTGVmdCArIHRoaXMuc2Nyb2xsQ29hY2hzQXJlYVdpZHRoIC8gMjtcbiAgICByZXR1cm4gdGhpcy50cmlnZ2VyQ29hY2hQb3NpdGlvbnNDb2xsZWN0aW9uLmZpbmRJbmRleChcbiAgICAgIChjb2FjaFRyaWdnZXIpID0+IHNjcm9sbE9mZnNldFggPj0gY29hY2hUcmlnZ2VyLnN0YXJ0ICYmIHNjcm9sbE9mZnNldFggPD0gY29hY2hUcmlnZ2VyLmVuZCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZmlyc3QgcGxhY2Ugb2YgY3VycmVudCBzZWxlY3RlZCBjb2FjaCBieSB0YWJsZSBjZWxsIGNvb3JkaW5hdGUgMC0wIGlkLlxuICAgKiBAcmV0dXJucyBQbGFjZSBvciBudWxsXG4gICAqL1xuICBwcml2YXRlIF9nZXRGaXJzdFBsYWNlSW5TZWxlY2VkQ29hY2goKTogUGxhY2UgfCBudWxsIHtcbiAgICBsZXQgZmlyc3RQbGFjZTogUGxhY2UgfCBudWxsID0gbnVsbDtcbiAgICBjb25zdCBjb2FjaCA9IHRoaXMuc2VhdFJlc2VydmF0aW9uPy5jb2FjaEl0ZW1zW3RoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleF07XG4gICAgY29uc3QgZmlyc3RDZWxsSWQgPSAnY2VsbC0nICsgdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4ICsgJy0wLTAnO1xuICAgIGNvbnN0IHBsYWNlTnVtYmVyID1cbiAgICAgIHRoaXMuc2hhZG93Um9vdFxuICAgICAgICA/LnF1ZXJ5U2VsZWN0b3I8U2JiU2VhdFJlc2VydmF0aW9uU2NvcGVkRWxlbWVudD4oXCJbY2VsbC1pZD0nXCIgKyBmaXJzdENlbGxJZCArIFwiJ11cIilcbiAgICAgICAgPy5xdWVyeVNlbGVjdG9yPFNiYlNlYXRSZXNlcnZhdGlvblBsYWNlQ29udHJvbEVsZW1lbnQ+KCdzYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sJylcbiAgICAgICAgPy5nZXRBdHRyaWJ1dGUoJ3RleHQnKSB8fCBudWxsO1xuXG4gICAgaWYgKGNvYWNoICYmIHBsYWNlTnVtYmVyKSB7XG4gICAgICBmaXJzdFBsYWNlID0gY29hY2gucGxhY2VzPy5maW5kKChwbGFjZSkgPT4gcGxhY2UubnVtYmVyID09PSBwbGFjZU51bWJlcikgfHwgbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGZpcnN0UGxhY2U7XG4gIH1cblxuICAvKipcbiAgICogVG8gZ2V0IHRoZSBjb3JyZWN0IGNsb3Nlc3QgcGxhY2Ugb2YgY3VycmVudCBwcmVzc2VkIGtleSBhbmQgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgcGxhY2UsXG4gICAqIHdlIGhhdmUgdG8gaW52ZXN0aWdhdGUgdGhlIGNvb3JkaW5hdGVzIG9mIGVhY2ggcGxhY2UgdG8gZmluZCB0aGUgY2xvc2VzdCBwbGFjZSBvZiB0aGUgY3VyclNlbGVjdGVkUGxhY2VFbGVtZW50SWQuXG4gICAqIEBwYXJhbSBwcmVzc2VkS2V5XG4gICAqIEByZXR1cm5zIFBsYWNlIG9yIG51bGxcbiAgICovXG4gIHByaXZhdGUgX2dldENsb3Nlc3RQbGFjZUJ5S2V5RGlyZWN0aW9uKHByZXNzZWRLZXk/OiBzdHJpbmcpOiBQbGFjZSB8IG51bGwge1xuICAgIGNvbnN0IGNvYWNoID0gdGhpcy5zZWF0UmVzZXJ2YXRpb24/LmNvYWNoSXRlbXNbdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4XTtcbiAgICBsZXQgY2xvc2VzdFBsYWNlID0gbnVsbDtcbiAgICBpZiAoY29hY2gucGxhY2VzKSB7XG4gICAgICAvL0lmIG5vIHBsYWNlIHNldCwgdGhlbiB3ZW4gdXNlIGluaXRpYWwgdGhlIGxlZnQtdG9wIHBsYWNlIG9uIHRoZSBjb2FjaFxuICAgICAgaWYgKCF0aGlzLmN1cnJTZWxlY3RlZFBsYWNlRWxlbWVudElkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRGaXJzdFBsYWNlSW5TZWxlY2VkQ29hY2goKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJTZWxlY3RlZFBsYWNlKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBwbGFjZSBvZiBjb2FjaC5wbGFjZXMpIHtcbiAgICAgICAgICAgIC8vIElmIGtleSBwcmVzc2VkLCB0aGVuIHdlIHRyeSB0byBmaW5kIHRoZSBwbGFjZSBvZiB0aGUgY3VycmVudCBjdXJyU2Nyb2xsRGlyZWN0aW9uXG4gICAgICAgICAgICBpZiAoIXByZXNzZWRLZXkpIHtcbiAgICAgICAgICAgICAgLy9GaW5kIHBsYWNlIGZyb20gdGhlIGxlZnQgc2lkZSBvZiBjb2FjaCBieSB5IGNvb3JkaW5hdGUuIEN1cnJlbnQgY3VyclNjcm9sbERpcmVjdGlvbiBpcyBSSUdIVClcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHRoaXMuY3VyclNjcm9sbERpcmVjdGlvbiA9PT0gU2Nyb2xsRGlyZWN0aW9uLnJpZ2h0ICYmXG4gICAgICAgICAgICAgICAgcGxhY2UucG9zaXRpb24ueSA9PT0gdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZT8ucG9zaXRpb24ueSAmJlxuICAgICAgICAgICAgICAgICghY2xvc2VzdFBsYWNlIHx8IHBsYWNlLnBvc2l0aW9uLnggPCBjbG9zZXN0UGxhY2UucG9zaXRpb24ueClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgY2xvc2VzdFBsYWNlID0gcGxhY2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy9GaW5kIHBsYWNlIGZyb20gdGhlIHJpZ2h0IHNpZGUgb2YgY29hY2ggYnkgeSBjb29yZGluYXRlLiBDdXJyZW50IGN1cnJTY3JvbGxEaXJlY3Rpb24gaXMgTEVGVFxuICAgICAgICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJTY3JvbGxEaXJlY3Rpb24gPT09IFNjcm9sbERpcmVjdGlvbi5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgcGxhY2UucG9zaXRpb24ueSA9PT0gdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZT8ucG9zaXRpb24ueSAmJlxuICAgICAgICAgICAgICAgICghY2xvc2VzdFBsYWNlIHx8IHBsYWNlLnBvc2l0aW9uLnggPiBjbG9zZXN0UGxhY2UucG9zaXRpb24ueClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgY2xvc2VzdFBsYWNlID0gcGxhY2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmIChwbGFjZS5udW1iZXIgIT09IHRoaXMuY3VyclNlbGVjdGVkUGxhY2U/Lm51bWJlcikge1xuICAgICAgICAgICAgICAgIC8vS2V5IFtSaWdodF0gbmF2aWdhdGlvbiwgd2UgY2hlY2sgdGhlIHBsYWNlIGNvb3JkaW5hdGVzIG9mIHRoZSB4LWF4aXMgdG8gZ2V0IHRoZSBzbWFsbGVzdCBsYXJnZXIgeCBwbGFjZSBjb29yZGluYXRlIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcGxhY2VcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBwcmVzc2VkS2V5ID09PSB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cy5BcnJvd1JpZ2h0ICYmXG4gICAgICAgICAgICAgICAgICAocGxhY2UucG9zaXRpb24ueSA9PT0gdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZS5wb3NpdGlvbi55IHx8XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlLnBvc2l0aW9uLnkgPT09IHRoaXMuY3VyclNlbGVjdGVkUGxhY2UucG9zaXRpb24ueSAtIDEpICYmXG4gICAgICAgICAgICAgICAgICBwbGFjZS5wb3NpdGlvbi54ID4gdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZS5wb3NpdGlvbi54ICYmXG4gICAgICAgICAgICAgICAgICAoIWNsb3Nlc3RQbGFjZSB8fCBwbGFjZS5wb3NpdGlvbi54IDwgY2xvc2VzdFBsYWNlLnBvc2l0aW9uLngpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBjbG9zZXN0UGxhY2UgPSBwbGFjZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy9LZXkgW0Rvd25dIG5hdmlnYXRpb24sIHdlIGNoZWNrIHRoZSBwbGFjZSBjb29yZGluYXRlcyBvZiB0aGUgeS1heGlzIHRvIGdldCB0aGUgc21hbGxlc3QgbGFyZ2VyIHkgcGxhY2UgY29vcmRpbmF0ZSBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHBsYWNlXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgICBwcmVzc2VkS2V5ID09PSB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cy5BcnJvd0Rvd24gJiZcbiAgICAgICAgICAgICAgICAgIChwbGFjZS5wb3NpdGlvbi54ID09PSB0aGlzLmN1cnJTZWxlY3RlZFBsYWNlLnBvc2l0aW9uLnggfHxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2UucG9zaXRpb24ueCA9PT0gdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZS5wb3NpdGlvbi54ICsgMSkgJiZcbiAgICAgICAgICAgICAgICAgIHBsYWNlLnBvc2l0aW9uLnkgPiB0aGlzLmN1cnJTZWxlY3RlZFBsYWNlLnBvc2l0aW9uLnkgJiZcbiAgICAgICAgICAgICAgICAgICghY2xvc2VzdFBsYWNlIHx8IHBsYWNlLnBvc2l0aW9uLnkgPCBjbG9zZXN0UGxhY2UucG9zaXRpb24ueSlcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNsb3Nlc3RQbGFjZSA9IHBsYWNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvL0tleSBbTGVmdF0gbmF2aWdhdGlvbiwgd2UgY2hlY2sgdGhlIHBsYWNlIGNvb3JkaW5hdGVzIG9mIHRoZSB4LWF4aXMgdG8gZ2V0IHRoZSBncmVhdGVzdCBzbWFsbGVyIHggcGxhY2UgY29vcmRpbmF0ZSBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHBsYWNlXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgICBwcmVzc2VkS2V5ID09PSB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cy5BcnJvd0xlZnQgJiZcbiAgICAgICAgICAgICAgICAgIChwbGFjZS5wb3NpdGlvbi55ID09PSB0aGlzLmN1cnJTZWxlY3RlZFBsYWNlLnBvc2l0aW9uLnkgfHxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2UucG9zaXRpb24ueSA9PT0gdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZS5wb3NpdGlvbi55ICsgMSkgJiZcbiAgICAgICAgICAgICAgICAgIHBsYWNlLnBvc2l0aW9uLnggPCB0aGlzLmN1cnJTZWxlY3RlZFBsYWNlLnBvc2l0aW9uLnggJiZcbiAgICAgICAgICAgICAgICAgICghY2xvc2VzdFBsYWNlIHx8IHBsYWNlLnBvc2l0aW9uLnggPiBjbG9zZXN0UGxhY2UucG9zaXRpb24ueClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNsb3Nlc3RQbGFjZSA9IHBsYWNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvL0tleSBbVXBdIG5hdmlnYXRpb24sIHdlIGNoZWNrIHRoZSBwbGFjZSBjb29yZGluYXRlcyBvZiB0aGUgeS1heGlzIHRvIGdldCB0aGUgZ3JlYXRlc3Qgc21hbGxlciB5IHBsYWNlIGNvb3JkaW5hdGUgb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBwbGFjZVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgICAgcHJlc3NlZEtleSA9PT0gdGhpcy5rZXlib2FyZE5hdmlnYXRpb25FdmVudHMuQXJyb3dVcCAmJlxuICAgICAgICAgICAgICAgICAgKHBsYWNlLnBvc2l0aW9uLnggPT09IHRoaXMuY3VyclNlbGVjdGVkUGxhY2UucG9zaXRpb24ueCB8fFxuICAgICAgICAgICAgICAgICAgICBwbGFjZS5wb3NpdGlvbi54ID09PSB0aGlzLmN1cnJTZWxlY3RlZFBsYWNlLnBvc2l0aW9uLnggLSAxKSAmJlxuICAgICAgICAgICAgICAgICAgcGxhY2UucG9zaXRpb24ueSA8IHRoaXMuY3VyclNlbGVjdGVkUGxhY2U/LnBvc2l0aW9uLnkgJiZcbiAgICAgICAgICAgICAgICAgICghY2xvc2VzdFBsYWNlIHx8IHBsYWNlLnBvc2l0aW9uLnkgPiBjbG9zZXN0UGxhY2UucG9zaXRpb24ueSlcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNsb3Nlc3RQbGFjZSA9IHBsYWNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2xvc2VzdFBsYWNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZvY3VzUGxhY2VFbGVtZW50KHBsYWNlOiBQbGFjZSB8IG51bGwsIGNvYWNoSW5kZXg/OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVuZm9jdXNQbGFjZUVsZW1lbnQoKTtcbiAgICBpZiAocGxhY2UpIHtcbiAgICAgIHRoaXMuY3VyclNlbGVjdGVkUGxhY2UgPSBwbGFjZTtcbiAgICAgIGlmIChjb2FjaEluZGV4KSB7XG4gICAgICAgIHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCA9IGNvYWNoSW5kZXg7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3NldEN1cnJTZWxlY3RlZFBsYWNlRWxlbWVudElkKHBsYWNlKTtcblxuICAgICAgY29uc3Qgc2VsZWN0ZWRQbGFjZUVsZW1lbnQgPSB0aGlzLl9nZXRQbGFjZUh0bWxFbGVtZW50KCk7XG4gICAgICBpZiAoc2VsZWN0ZWRQbGFjZUVsZW1lbnQpIHtcbiAgICAgICAgc2VsZWN0ZWRQbGFjZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdrZXlmb2N1cycsICdmb2N1cycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB1bmZvY3VzUGxhY2VFbGVtZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkUGxhY2VFbGVtZW50ID0gdGhpcy5fZ2V0UGxhY2VIdG1sRWxlbWVudCgpO1xuICAgIGlmIChzZWxlY3RlZFBsYWNlRWxlbWVudCkge1xuICAgICAgc2VsZWN0ZWRQbGFjZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdrZXlmb2N1cycsICd1bmZvY3VzJyk7XG4gICAgICB0aGlzLl9zZXRDdXJyU2VsZWN0ZWRQbGFjZUVsZW1lbnRJZChudWxsKTtcbiAgICAgIHRoaXMuY3VyclNlbGVjdGVkUGxhY2UgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDYWxjdWxhdGVkRGltZW5zaW9uKFxuICAgIGVsZW1lbnREaW1lbnNpb246IEVsZW1lbnREaW1lbnNpb24sXG4gICAgY29hY2hEaW1lbnNpb24/OiBFbGVtZW50RGltZW5zaW9uLFxuICAgIGlzT3JpZ2luSGVpZ2h0PzogYm9vbGVhbixcbiAgICBpc1N0cmV0Y2hIZWlnaHQ/OiBib29sZWFuLFxuICApOiBFbGVtZW50RGltZW5zaW9uIHtcbiAgICBpZiAoY29hY2hEaW1lbnNpb24gJiYgIWlzT3JpZ2luSGVpZ2h0KSB7XG4gICAgICBlbGVtZW50RGltZW5zaW9uLmggKz0gdGhpcy5jb2FjaEJvcmRlck9mZnNldCAqIDI7XG4gICAgfVxuXG4gICAgaWYgKGlzU3RyZXRjaEhlaWdodCkge1xuICAgICAgZWxlbWVudERpbWVuc2lvbi5oICs9IHRoaXMuY29hY2hCb3JkZXJPZmZzZXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHc6IHRoaXMuYmFzZUdyaWRTaXplICogZWxlbWVudERpbWVuc2lvbi53LFxuICAgICAgaDogdGhpcy5iYXNlR3JpZFNpemUgKiBlbGVtZW50RGltZW5zaW9uLmgsXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDYWxjdWxhdGVkUG9zaXRpb24oXG4gICAgZWxlbWVudFBvc2l0aW9uOiBFbGVtZW50UG9zaXRpb24sXG4gICAgZWxlbWVudERpbWVuc2lvbj86IEVsZW1lbnREaW1lbnNpb24sXG4gICAgY29hY2hEaW1lbnNpb24/OiBFbGVtZW50RGltZW5zaW9uLFxuICAgIGlzT3JpZ2luSGVpZ2h0PzogYm9vbGVhbixcbiAgKTogRWxlbWVudFBvc2l0aW9uIHtcbiAgICBpZiAoY29hY2hEaW1lbnNpb24gJiYgZWxlbWVudERpbWVuc2lvbikge1xuICAgICAgY29uc3QgZW5kUG9zSGVpZ2h0ID0gaXNPcmlnaW5IZWlnaHRcbiAgICAgICAgPyBjb2FjaERpbWVuc2lvbi5oXG4gICAgICAgIDogY29hY2hEaW1lbnNpb24uaCArIHRoaXMuY29hY2hCb3JkZXJPZmZzZXQ7XG4gICAgICAvL0lmIHRoZSBvcmlnaW5hbCBlbGVtZW50IGlzIHBvc2l0aW9uZWQgYXQgdGhlIHRvcCBvciBib3R0b20gb2YgdGhlIGNvYWNoLCB3ZSBuZWVkIHRvIHJlY2FsY3VsYXRlIHRoZSBZIGNvb3JkaW5hdGUgd2l0aCB0aGUgYWRkaXRpb25hbCBib3JkZXIgcGFkZGluZ1xuICAgICAgaWYgKGVsZW1lbnRQb3NpdGlvbi55ID09PSAwKSB7XG4gICAgICAgIGVsZW1lbnRQb3NpdGlvbi55IC09IHRoaXMuY29hY2hCb3JkZXJPZmZzZXQ7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRQb3NpdGlvbi55ICsgZWxlbWVudERpbWVuc2lvbi5oID09PSBlbmRQb3NIZWlnaHQpIHtcbiAgICAgICAgZWxlbWVudFBvc2l0aW9uLnkgKz0gdGhpcy5jb2FjaEJvcmRlck9mZnNldDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgeDogdGhpcy5iYXNlR3JpZFNpemUgKiBlbGVtZW50UG9zaXRpb24ueCxcbiAgICAgIHk6IHRoaXMuYmFzZUdyaWRTaXplICogZWxlbWVudFBvc2l0aW9uLnksXG4gICAgICB6OiBlbGVtZW50UG9zaXRpb24ueixcbiAgICB9O1xuICB9XG5cbiAgLy8gSGFuZGxpbmcgZm9yIFRhYiBuYXZpZ2F0aW9uIGlmIGFuIHBsYWNlIGlzIHNlbGVjdGVkIGluc2lkZSB0aGUgY29hY2guXG4gIC8vIFRoaXMgY29udHJvbHMgdGhlIGZvY3VzZWQgY29hY2ggZnJvbSB0aGUgY3VycmVudCBzZWxlY3RlZCBjb2FjaC5cbiAgcHJpdmF0ZSBfbmF2aWdhdGVDb2FjaE5hdmlnYXRpb25CeUtleWJvYXJkKHRhYkRpcmVjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY3VyckZvY3VzSW5kZXggPVxuICAgICAgdGhpcy5mb2N1c2VkQ29hY2hJbmRleCA9PT0gLTFcbiAgICAgICAgPyB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXggPT09IC0xXG4gICAgICAgICAgPyAwXG4gICAgICAgICAgOiB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXhcbiAgICAgICAgOiB0aGlzLmZvY3VzZWRDb2FjaEluZGV4O1xuICAgIC8vQ2hlY2sgbmV4dCBvciBwcmV2IHRhYiBpcyBwcmVzc2VkLCB0aGVuIHdlIG5lZWQgdG8gZmluZCB0aGUgbmV4dCBhdmFpbGFibGUgY29hY2ggaW5kZXggdGhhdCBzaG91bGQgcmVjZWl2ZSB0aGUgZm9jdXNcbiAgICBjb25zdCBuZXdGb2N1c2FibGVJbmRleDogbnVtYmVyID1cbiAgICAgIHRhYkRpcmVjdGlvbiA9PT0gJ05FWFRfVEFCJ1xuICAgICAgICA/IHRoaXMuZ2V0TmV4dEF2YWlsYWJsZUNvYWNoSW5kZXgoY3VyckZvY3VzSW5kZXgpXG4gICAgICAgIDogdGhpcy5nZXRQcmV2QXZhaWxhYmxlQ29hY2hJbmRleChjdXJyRm9jdXNJbmRleCk7XG5cbiAgICAvLyBJZiB0aGUgY3VyckZvY3VzSW5kZXggZXF1YWxzIHRoZSBuZXdGb2N1c2FibGVJbmRleCB0aGVuIHdlIGhhdmUgcmVhY2hlZCB0aGUgZmlyc3Qgb3IgbGFzdCB0YWJhYmxlIG5hdmlnYXRpb24gY29hY2ggRWxlbWVudCBhbmQgd2UgaGF2ZSB0byB0aGUgc2V0IHRoZSBmb2N1cyBtYW51YWwgdG8gdGhlIGZpcnN0VGFiRWxlbWVudCBvciBsYXN0VGFiRWxlbWVudC5cbiAgICBpZiAoY3VyckZvY3VzSW5kZXggPT09IG5ld0ZvY3VzYWJsZUluZGV4KSB7XG4gICAgICB0aGlzLnVuZm9jdXNQbGFjZUVsZW1lbnQoKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb2FjaEluZGV4ID0gLTE7XG4gICAgICB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXggPSAtMTtcbiAgICAgIHRoaXMuc2VhdFJlc2VydmF0aW9uV2l0aG91dE5hdmlnYXRpb25IYXNGb2N1cyA9IGZhbHNlO1xuXG4gICAgICBpZiAodGFiRGlyZWN0aW9uID09PSAnTkVYVF9UQUInKSB0aGlzLmxhc3RUYWJFbGVtZW50LmZvY3VzKCk7XG4gICAgICBlbHNlIHRoaXMuZmlyc3RUYWJFbGVtZW50LmZvY3VzKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNOYXZpZ2F0aW9uKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZFBsYWNlRWxlbWVudCA9IHRoaXMuX2dldFBsYWNlSHRtbEVsZW1lbnQoKTtcbiAgICAgIGNvbnN0IHBsYWNlSW5Db2FjaEhhc0ZvY3VzID0gc2VsZWN0ZWRQbGFjZUVsZW1lbnRcbiAgICAgICAgPyBzZWxlY3RlZFBsYWNlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2tleWZvY3VzJykgPT09ICdmb2N1cydcbiAgICAgICAgOiBmYWxzZTtcblxuICAgICAgLy8gSWYgd2UgdGFiIGJhY2sgKFBSRVZfVEFCKSBhbmQgdGhlIGZvY3VzIGlzIGN1cnJlbnRseSBvbiBwbGFjZSxcbiAgICAgIC8vIHdlIHJlbW92ZSB0aGUgc2VsZWN0ZWQgc3RhdGUgZnJvbSB0aGUgY3VycmVudGx5IHNlbGVjdGVkIG5hdmlnYXRpb24gY29hY2ggYW5kIG9ubHkgc2V0IHRoZSBmb2N1cyBzdGF0dXMgdG8gaXRcbiAgICAgIGlmICh0YWJEaXJlY3Rpb24gPT09ICdQUkVWX1RBQicgJiYgdGhpcy5zZWxlY3RlZENvYWNoSW5kZXggPT09IGN1cnJGb2N1c0luZGV4KSB7XG4gICAgICAgIGlmIChwbGFjZUluQ29hY2hIYXNGb2N1cykge1xuICAgICAgICAgIHRoaXMuZm9jdXNlZENvYWNoSW5kZXggPSBjdXJyRm9jdXNJbmRleDtcbiAgICAgICAgICB0aGlzLnVuZm9jdXNQbGFjZUVsZW1lbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmZvY3VzZWRDb2FjaEluZGV4ID0gbmV3Rm9jdXNhYmxlSW5kZXg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIE9ubHkgc2V0cyB0aGUgZm9jdXMgb24gdGhlIG5ldyBuYXZpZ2F0aW9uIGNvYWNoXG4gICAgICBlbHNlIGlmIChuZXdGb2N1c2FibGVJbmRleCAhPT0gdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4KSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZENvYWNoSW5kZXggPSBuZXdGb2N1c2FibGVJbmRleDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZENvYWNoSW5kZXggPSAtMTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvYWNoSW5kZXggPSBuZXdGb2N1c2FibGVJbmRleDtcbiAgICAgICAgLy9JZiBhbnkgcGxhY2Ugd2FzIGZvY3VzZWQgaW4gY29hY2gsIHNvIHdlIHNldCBmb2N1c2VkIGFnYWluXG4gICAgICAgIGlmIChwbGFjZUluQ29hY2hIYXNGb2N1cykge1xuICAgICAgICAgIHRoaXMuZm9jdXNQbGFjZUVsZW1lbnQodGhpcy5jdXJyU2VsZWN0ZWRQbGFjZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy9JZiBubyBwbGFjZSB3YXMgc2VsZWN0ZWQsIHRoZW4gd2Ugc2VsZWN0IHRoZSBjb2FjaCBncmlkXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHRoaXMuaXNDb2NoR3JpZEZvY3VzYWJsZSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5fc2V0Rm9jdXNUb1NlbGVjdGVkQ29hY2hHcmlkKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy9JZiBubyBuYXZpZ2F0aW9uIGV4aXN0LCB3ZSBzY3JvbGwgZGlyZWN0bHkgdG8gdGhlIG5leHQgdGFiYWJsZSBjb2FjaFxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5zY3JvbGxUb1NlbGVjdGVkTmF2Q29hY2gobmV3Rm9jdXNhYmxlSW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX25hdmlnYXRlVG9QbGFjZUJ5S2V5Ym9hcmQocHJlc3NlZEtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wcmV2ZW50Q29hY2hTY3JvbGxCeVBsYWNlQ2xpY2sgPSBmYWxzZTtcbiAgICB0aGlzLmlzS2V5Ym9hcmROYXZpZ2F0aW9uID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLmZvY3VzZWRDb2FjaEluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5mb2N1c2VkQ29hY2hJbmRleCA9IC0xO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wcmV2ZW50UGxhY2VDbGljaykge1xuICAgICAgY29uc3QgZmluZENsb3Nlc3RQbGFjZSA9IHRoaXMuX2dldENsb3Nlc3RQbGFjZUJ5S2V5RGlyZWN0aW9uKHByZXNzZWRLZXkpO1xuICAgICAgaWYgKGZpbmRDbG9zZXN0UGxhY2UpIHtcbiAgICAgICAgdGhpcy5mb2N1c1BsYWNlRWxlbWVudChmaW5kQ2xvc2VzdFBsYWNlKTtcbiAgICAgIH1cbiAgICAgIC8vTm8gY2xvc3Rlc3QgcGxhY2UgZm91bmQgYnkga2V5IG5hdmlnYXRpb25cbiAgICAgIGVsc2Uge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcHJlc3NlZEtleSA9PT0gdGhpcy5rZXlib2FyZE5hdmlnYXRpb25FdmVudHMuQXJyb3dSaWdodCB8fFxuICAgICAgICAgIHByZXNzZWRLZXkgPT09IHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLkFycm93TGVmdCB8fFxuICAgICAgICAgICh0aGlzLmFsaWduVmVydGljYWwgJiZcbiAgICAgICAgICAgIChwcmVzc2VkS2V5ID09PSB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cy5BcnJvd1VwIHx8XG4gICAgICAgICAgICAgIHByZXNzZWRLZXkgPT09IHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLkFycm93RG93bikpXG4gICAgICAgICkge1xuICAgICAgICAgIC8vQ2hlY2sgdGhlIGN1cnJlbnQgcHJlc3NlZCBrZXkgdG8gZ2V0IHRoZSBuZXh0IGF2YWlsYWJsZSBjb2FjaCBpbmRleFxuICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkQ29hY2hJbmRleCA9XG4gICAgICAgICAgICBwcmVzc2VkS2V5ID09PSB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cy5BcnJvd1JpZ2h0XG4gICAgICAgICAgICAgID8gdGhpcy5nZXROZXh0QXZhaWxhYmxlQ29hY2hJbmRleCgpXG4gICAgICAgICAgICAgIDogdGhpcy5nZXRQcmV2QXZhaWxhYmxlQ29hY2hJbmRleCgpO1xuXG4gICAgICAgICAgdGhpcy5zY3JvbGxUb1NlbGVjdGVkTmF2Q29hY2gobmV3U2VsZWN0ZWRDb2FjaEluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXROZXh0QXZhaWxhYmxlQ29hY2hJbmRleChjdXJyZW50SW5kZXg/OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBjdXJyZW50SW5kZXggPz8gdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4O1xuICAgIHJldHVybiBzdGFydEluZGV4IDwgdGhpcy5zZWF0UmVzZXJ2YXRpb24uY29hY2hJdGVtcy5sZW5ndGggLSAxID8gc3RhcnRJbmRleCArIDEgOiBzdGFydEluZGV4O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFByZXZBdmFpbGFibGVDb2FjaEluZGV4KGN1cnJlbnRJbmRleD86IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IGN1cnJlbnRJbmRleCA/PyB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXg7XG4gICAgcmV0dXJuIHN0YXJ0SW5kZXggPiAwID8gc3RhcnRJbmRleCAtIDEgOiBzdGFydEluZGV4O1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVNlbGVjdGVkU2VhdFJlc2VydmF0aW9uUGxhY2VzKHBsYWNlU2VsZWN0aW9uOiBQbGFjZVNlbGVjdGlvbik6IHZvaWQge1xuICAgIC8vQWRkIHNlbGVjdGVkIHBsYWNlIHRvIHNlbGVjdGVkU2VhdFJlc2VydmF0aW9uUGxhY2VzXG4gICAgaWYgKHBsYWNlU2VsZWN0aW9uLnN0YXRlID09PSAnU0VMRUNURUQnKSB7XG4gICAgICBjb25zdCBzZWF0UmVzZXJ2YXRpb25TZWxlY3Rpb24gPSB0aGlzLl9nZXRTZWF0UmVzZXJ2YXRpb25QbGFjZVNlbGVjdGlvbihwbGFjZVNlbGVjdGlvbik7XG4gICAgICBpZiAoc2VhdFJlc2VydmF0aW9uU2VsZWN0aW9uKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZWF0UmVzZXJ2YXRpb25QbGFjZXMucHVzaChzZWF0UmVzZXJ2YXRpb25TZWxlY3Rpb24pO1xuICAgICAgfVxuICAgIH1cbiAgICAvL1JlbW92ZSBzZWxlY3RlZCBwbGFjZSBmcm9tIHNlbGVjdGVkU2VhdFJlc2VydmF0aW9uUGxhY2VzXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkU2VhdFJlc2VydmF0aW9uUGxhY2VzID0gdGhpcy5zZWxlY3RlZFNlYXRSZXNlcnZhdGlvblBsYWNlcy5maWx0ZXIoXG4gICAgICAgIChfc2VsZWN0ZWRQbGFjZSkgPT4gX3NlbGVjdGVkUGxhY2UuaWQgIT09IHBsYWNlU2VsZWN0aW9uLmlkLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvL0NoZWNrcyB3aGV0aGVyIG1heFJlc2VydmF0aW9uIGlzIGFjdGl2YXRlZCBhbmQgdGhlIG1heGltdW0gbnVtYmVyIG9mIHNlbGVjdGVkIHBsYWNlcyBpcyByZWFjaGVkXG4gICAgaWYgKHRoaXMubWF4UmVzZXJ2YXRpb25zICYmIHRoaXMuc2VsZWN0ZWRTZWF0UmVzZXJ2YXRpb25QbGFjZXMubGVuZ3RoID4gdGhpcy5tYXhSZXNlcnZhdGlvbnMpIHtcbiAgICAgIHRoaXMuX3Jlc2V0QWxsUGxhY2VTZWxlY3Rpb25zKHBsYWNlU2VsZWN0aW9uKTtcbiAgICB9XG5cbiAgICAvL0VtaXRzIHRoZSBzZWF0IHJlc2VydmF0aW9uIHBsYWNlIHNlbGVjdGlvblxuICAgIHRoaXMuc2VsZWN0ZWRQbGFjZXMuZW1pdCh0aGlzLnNlbGVjdGVkU2VhdFJlc2VydmF0aW9uUGxhY2VzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVDdXJyZW50U2VsZWN0ZWRQbGFjZUluQ29hY2gocGxhY2VTZWxlY3Rpb246IFBsYWNlU2VsZWN0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgY29hY2hJbmRleCA9IHBsYWNlU2VsZWN0aW9uLmNvYWNoSW5kZXg7XG4gICAgY29uc3QgcGxhY2UgPSB0aGlzLnNlYXRSZXNlcnZhdGlvbi5jb2FjaEl0ZW1zW2NvYWNoSW5kZXhdLnBsYWNlcz8uZmluZChcbiAgICAgIChwbGFjZSkgPT4gcGxhY2UubnVtYmVyID09IHBsYWNlU2VsZWN0aW9uLm51bWJlcixcbiAgICApO1xuXG4gICAgaWYgKCFwbGFjZSkgcmV0dXJuO1xuICAgIHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCA9IGNvYWNoSW5kZXg7XG4gICAgdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZSA9IHBsYWNlO1xuICAgIGlmICh0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXggIT09IHRoaXMuc2VsZWN0ZWRDb2FjaEluZGV4KSB7XG4gICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRTZWxlY3RlZENvYWNoKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fc2V0Q3VyclNlbGVjdGVkUGxhY2VFbGVtZW50SWQocGxhY2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUN1cnJlbnRTZWxlY3RlZENvYWNoKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRDb2FjaEluZGV4ID0gdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4O1xuICAgIHRoaXMuZm9jdXNlZENvYWNoSW5kZXggPSAtMTtcbiAgICBjb25zdCBjb2FjaFNlbGVjdGlvbiA9IHRoaXMuX2dldFNlYXRSZXNlcnZhdGlvbkNvYWNoU2VsZWN0aW9uKHRoaXMuc2VsZWN0ZWRDb2FjaEluZGV4KTtcbiAgICBpZiAoY29hY2hTZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb2FjaC5lbWl0KGNvYWNoU2VsZWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6YXRpb24gb2YgU2VhdFJlc2VydmF0aW9uUGxhY2VTZWxlY3Rpb24gQXJyYXkgYmFzZWQgb24gdGhlIHRyYW5zZmVycmVkIHBsYWNlc1xuICAgKiB0aGF0IGhhdmUgdGhlIHN0YXRlIFNFTEVDVEVEIHdpdGhpbiB0aGUgc2VhdFJlc2VydmF0aW9uIG9iamVjdFxuICAgKi9cbiAgcHJpdmF0ZSBfaW5pdFNlYXRSZXNlcnZhdGlvblBsYWNlU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhdFJlc2VydmF0aW9uLmNvYWNoSXRlbXMubWFwKChjb2FjaDogQ29hY2hJdGVtLCBjb2FjaEluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGNvYWNoLnBsYWNlc1xuICAgICAgICA/LmZpbHRlcigocGxhY2UpID0+IHBsYWNlLnN0YXRlID09PSAnU0VMRUNURUQnKVxuICAgICAgICA/LmZvckVhY2goKHBsYWNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJlc2VsZWN0ZWRQbGFjZVNlbGVjdGlvbjogUGxhY2VTZWxlY3Rpb24gPSBtYXBQbGFjZUluZm9zVG9QbGFjZVNlbGVjdGlvbihcbiAgICAgICAgICAgIHBsYWNlLFxuICAgICAgICAgICAgY29hY2hJbmRleCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IHNlYXRSZXNlcnZhdGlvblBsYWNlU2VsZWN0aW9uOiBTZWF0UmVzZXJ2YXRpb25QbGFjZVNlbGVjdGlvbiB8IG51bGwgPVxuICAgICAgICAgICAgdGhpcy5fZ2V0U2VhdFJlc2VydmF0aW9uUGxhY2VTZWxlY3Rpb24ocHJlc2VsZWN0ZWRQbGFjZVNlbGVjdGlvbik7XG4gICAgICAgICAgaWYgKHNlYXRSZXNlcnZhdGlvblBsYWNlU2VsZWN0aW9uKVxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlYXRSZXNlcnZhdGlvblBsYWNlcy5wdXNoKHNlYXRSZXNlcnZhdGlvblBsYWNlU2VsZWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWxsIHNlbGVjdGVkIHBsYWNlcyB3aWxsIGJlIHJlc2V0IG9yIHRoZSBjdXJyZW50U2VsZWN0ZWRQbGFjZSB3YXMgZ2l2ZW4sIHRoZW4gd2UgcmVzZXQgYWxsIGV4Y2VwdCBjdXJyZW50U2VsZWN0ZWRQbGFjZVxuICAgKiBAcGFyYW0gY3VyclNlbGVjdGVkUGxhY2VcbiAgICovXG4gIHByaXZhdGUgX3Jlc2V0QWxsUGxhY2VTZWxlY3Rpb25zKGN1cnJTZWxlY3RlZFBsYWNlPzogUGxhY2VTZWxlY3Rpb24pOiB2b2lkIHtcbiAgICAvL0ZpbmQgYWxsIHBsYWNlcyB0byBiZSBuZWVkZWQgdW5zZWxlY3RcbiAgICBmb3IgKGNvbnN0IHBsYWNlU2VsZWN0aW9uIG9mIHRoaXMuc2VsZWN0ZWRTZWF0UmVzZXJ2YXRpb25QbGFjZXMpIHtcbiAgICAgIGlmICghY3VyclNlbGVjdGVkUGxhY2UgfHwgY3VyclNlbGVjdGVkUGxhY2UuaWQgIT09IHBsYWNlU2VsZWN0aW9uLmlkKSB7XG4gICAgICAgIGNvbnN0IHBsYWNlRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQocGxhY2VTZWxlY3Rpb24uaWQpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBwbGFjZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdGF0ZScsICdGUkVFJyk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vUmVtb3ZlcyBhbGwgc2VsZWN0ZWQgcGxhY2VzIGV4Y2VwdCB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHBsYWNlXG4gICAgaWYgKGN1cnJTZWxlY3RlZFBsYWNlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkU2VhdFJlc2VydmF0aW9uUGxhY2VzID0gdGhpcy5zZWxlY3RlZFNlYXRSZXNlcnZhdGlvblBsYWNlcy5maWx0ZXIoXG4gICAgICAgIChfc2VsZWN0ZWRQbGFjZSkgPT4gX3NlbGVjdGVkUGxhY2UuaWQgPT09IGN1cnJTZWxlY3RlZFBsYWNlLmlkLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFNlYXRSZXNlcnZhdGlvblBsYWNlcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldFNlYXRSZXNlcnZhdGlvblBsYWNlU2VsZWN0aW9uKFxuICAgIGN1cnJTZWxlY3RlZFBsYWNlOiBQbGFjZVNlbGVjdGlvbixcbiAgKTogU2VhdFJlc2VydmF0aW9uUGxhY2VTZWxlY3Rpb24gfCBudWxsIHtcbiAgICBjb25zdCBjb2FjaCA9IHRoaXMuc2VhdFJlc2VydmF0aW9uLmNvYWNoSXRlbXNbY3VyclNlbGVjdGVkUGxhY2UuY29hY2hJbmRleF07XG4gICAgY29uc3QgcGxhY2UgPSBjb2FjaC5wbGFjZXM/LmZpbmQoKHBsYWNlKSA9PiBwbGFjZS5udW1iZXIgPT09IGN1cnJTZWxlY3RlZFBsYWNlLm51bWJlcik7XG5cbiAgICByZXR1cm4gcGxhY2VcbiAgICAgID8gbWFwUGxhY2VBbmRDb2FjaFRvU2VhdFJlc2VydmF0aW9uUGxhY2VTZWxlY3Rpb24ocGxhY2UsIGNvYWNoLCBjdXJyU2VsZWN0ZWRQbGFjZS5jb2FjaEluZGV4KVxuICAgICAgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U2VhdFJlc2VydmF0aW9uQ29hY2hTZWxlY3Rpb24oXG4gICAgY29hY2hJbmRleDogbnVtYmVyLFxuICApOiBTZWF0UmVzZXJ2YXRpb25Db2FjaFNlbGVjdGlvbiB8IG51bGwge1xuICAgIGlmICghdGhpcy5zZWF0UmVzZXJ2YXRpb24uY29hY2hJdGVtc1tjb2FjaEluZGV4XSkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBjb2FjaCA9IHRoaXMuc2VhdFJlc2VydmF0aW9uLmNvYWNoSXRlbXNbY29hY2hJbmRleF07XG4gICAgcmV0dXJuIG1hcENvYWNoSW5mb3NUb0NvYWNoU2VsZWN0aW9uKGNvYWNoSW5kZXgsIGNvYWNoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldEN1cnJTZWxlY3RlZFBsYWNlRWxlbWVudElkKHBsYWNlOiBQbGFjZSB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAocGxhY2UpIHtcbiAgICAgIHRoaXMuY3VyclNlbGVjdGVkUGxhY2VFbGVtZW50SWQgPVxuICAgICAgICAnc2VhdC1yZXNlcnZhdGlvbl9fcGxhY2UtYnV0dG9uLScgKyB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXggKyAnLScgKyBwbGFjZS5udW1iZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VyclNlbGVjdGVkUGxhY2VFbGVtZW50SWQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHNlbGVjdGVkIHBsYWNlIEhUTUwgZWxlbWVudCBieSBnaXZlbiBwbGFjZU51bWJlciBhbmQgY29hY2hJbmRleC5cbiAgICogSWYgYm90aCBkb2VzbnQgZXhpc3QsIHdlIHRyeSB0byByZXR1cm4gdGhlIHBsYWNlIEhUTUwgZWxlbWVudCBieSB0aGUgX2N1cnJlbnRTZWxlY3RlZFBsYWNlRWxlbWVudElkXG4gICAqIEBwYXJhbSBwbGFjZU51bWJlciBvcHRpb25hbCBhcyBzdHJpbmdcbiAgICogQHBhcmFtIGNvYWNoSW5kZXggb3B0aW9uYWwgYXMgc3RyaW5nXG4gICAqIEByZXR1cm5zIEhUTUxFbGVtZW50IG9yIG51bGxcbiAgICovXG4gIHByaXZhdGUgX2dldFBsYWNlSHRtbEVsZW1lbnQocGxhY2VOdW1iZXI/OiBzdHJpbmcsIGNvYWNoSW5kZXg/OiBudW1iZXIpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGNvbnN0IGN1cnJDb2FjaEluZGV4ID0gY29hY2hJbmRleCA/IGNvYWNoSW5kZXggOiB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXg7XG4gICAgY29uc3QgY29hY2hQbGFjZU51bWJlcklkID0gcGxhY2VOdW1iZXJcbiAgICAgID8gJ3NlYXQtcmVzZXJ2YXRpb25fX3BsYWNlLWJ1dHRvbi0nICsgY3VyckNvYWNoSW5kZXggKyAnLScgKyBwbGFjZU51bWJlclxuICAgICAgOiB0aGlzLmN1cnJTZWxlY3RlZFBsYWNlRWxlbWVudElkO1xuICAgIHJldHVybiBjb2FjaFBsYWNlTnVtYmVySWQgPyB0aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKGNvYWNoUGxhY2VOdW1iZXJJZCkgfHwgbnVsbCA6IG51bGw7XG4gIH1cblxuICAvL1NldCB0aGUgdmVydGljYWwgb2Zmc2V0XG4gIHByaXZhdGUgX3NldFZlcnRpY2FsQWxpZ25tZW50T2Zmc2V0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3Qgc2VhdFJlc2VydmF0aW9uV3JhcHBlckVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcuc2JiLXNyX193cmFwcGVyJyxcbiAgICAgICkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBpZiAoc2VhdFJlc2VydmF0aW9uV3JhcHBlckVsZW1lbnQpIHtcbiAgICAgICAgY29uc3Qgc2VhdFJlc2VydmF0aW9uVmVydGljYWxPZmZzZXQgPVxuICAgICAgICAgIHNlYXRSZXNlcnZhdGlvbldyYXBwZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICB0aGlzLnN0eWxlPy5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi12ZXJ0aWNhbC1vZmZzZXQnLFxuICAgICAgICAgIGAke3NlYXRSZXNlcnZhdGlvblZlcnRpY2FsT2Zmc2V0fXB4YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlNjcm9sbERpcmVjdGlvbiIsIlNlYXRSZXNlcnZhdGlvbkJhc2VFbGVtZW50IiwiX2EiLCJwbGFjZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUF5QkEsSUFBSztBQUFBLENBQUwsU0FBS0Esa0JBQWU7QUFDbEJBLG1CQUFBLE9BQUEsSUFBQTtBQUNBQSxtQkFBQSxNQUFBLElBQUE7QUFDRixHQUhLLG9CQUFBLGtCQUdKLENBQUEsRUFBQTtJQVFZLDhCQUEwQixNQUFBOztvQkFBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFuQyxTQUFBLG1CQUFtQyxZQUFVO0FBQUE7O0FBUXhEO0FBS0E7QUFLQTtBQUtBO0FBS0E7QUFLQTtBQUtBO0FBRVM7QUFDQTtBQWpDTyx5QkFBQSxtQ0FBQSxrQkFBQSxNQUFBLCtCQUFtQyxJQUFLO0FBS3hDLHlCQUFBLGtDQUFBLGtCQUFBLE1BQUEsa0NBQUEsR0FBQSxrQkFBQSxNQUFBLDZCQUF5QixJQUFJO0FBSzdCLHlCQUFBLGtDQUFBLGtCQUFBLE1BQUEsZ0NBQUEsR0FBQSxrQkFBQSxNQUFBLDZCQUF5QixLQUFLO0FBSzlCLHlCQUFBLGlDQUFBLGtCQUFBLE1BQUEsZ0NBQUEsR0FBQSxrQkFBQSxNQUFBLDRCQUF1QixFQUFFO0FBS3pCLHlCQUFBLDJCQUFBLGtCQUFBLE1BQUEsK0JBQUEsR0FBQSxrQkFBQSxNQUFBLHNCQUFpQixJQUFLO0FBS3RCLHlCQUFBLG9DQUFBLGtCQUFBLE1BQUEseUJBQUEsR0FBQSxrQkFBQSxNQUFBLCtCQUEwQixJQUFLO0FBSy9CLHlCQUFBLHNDQUFBLGtCQUFBLE1BQUEsa0NBQUEsR0FBQSxrQkFBQSxNQUFBLGlDQUE2QixLQUFLO0FBRU8seUJBQUEsdUNBQUEsa0JBQUEsTUFBQSxvQ0FBQSxHQUFBLGtCQUFBLE1BQUEsa0NBQUEs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
|
|
706
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1iYXNlLWVsZW1lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tYmFzZS1lbGVtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQXJyb3dLZXlPclBhZ2VLZXlzUHJlc3NlZCB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBMaXRFbGVtZW50LCB0eXBlIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgbWFwQ29hY2hJbmZvc1RvQ29hY2hTZWxlY3Rpb24sXG4gIG1hcFBsYWNlQW5kQ29hY2hUb1NlYXRSZXNlcnZhdGlvblBsYWNlU2VsZWN0aW9uLFxuICBtYXBQbGFjZUluZm9zVG9QbGFjZVNlbGVjdGlvbixcbn0gZnJvbSAnLi4vY29tbW9uL21hcHBlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlNlYXRSZXNlcnZhdGlvblBsYWNlQ29udHJvbEVsZW1lbnQgfSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wvc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLmNvbXBvbmVudC5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIENvYWNoSXRlbSxcbiAgRWxlbWVudERpbWVuc2lvbixcbiAgRWxlbWVudFBvc2l0aW9uLFxuICBQbGFjZSxcbiAgUGxhY2VTZWxlY3Rpb24sXG4gIFNlYXRSZXNlcnZhdGlvbixcbiAgU2VhdFJlc2VydmF0aW9uQ29hY2hTZWxlY3Rpb24sXG4gIFNlYXRSZXNlcnZhdGlvblBsYWNlU2VsZWN0aW9uLFxufSBmcm9tICcuLi9zZWF0LXJlc2VydmF0aW9uLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJTZWF0UmVzZXJ2YXRpb25TY29wZWRFbGVtZW50IH0gZnJvbSAnLi9zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC9zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC5jb21wb25lbnQuanMnO1xuXG5lbnVtIFNjcm9sbERpcmVjdGlvbiB7XG4gIHJpZ2h0ID0gJ3JpZ2h0JyxcbiAgbGVmdCA9ICdsZWZ0Jyxcbn1cblxuaW50ZXJmYWNlIENvYWNoU2Nyb2xsVHJpZ2dlclBvaW50IHtcbiAgc3RhcnQ6IG51bWJlcjtcbiAgZW5kOiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBTZWF0UmVzZXJ2YXRpb25CYXNlRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBzZWxlY3RlZFBsYWNlczogJ3NlbGVjdGVkUGxhY2VzJyxcbiAgICBzZWxlY3RlZENvYWNoOiAnc2VsZWN0ZWRDb2FjaCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFRoZSBzZWF0IHJlc2VydmF0aW9uIG9iamVjdCB3aGljaCBjb250YWlucyBhbGwgY29hY2hlcyBhbmQgcGxhY2VzICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3NlYXQtcmVzZXJ2YXRpb24nLCB0eXBlOiBPYmplY3QgfSlcbiAgcHVibGljIGFjY2Vzc29yIHNlYXRSZXNlcnZhdGlvbjogU2VhdFJlc2VydmF0aW9uID0gbnVsbCE7XG5cbiAgLyoqIFRoZSBzZWF0IHJlc3ZlcnZhdGlvbiBuYXZpZ2F0aW9uIGNhbiBiZSB0b2dnbGVkIGJ5IHRoaXMgcHJvcGVydHkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hhcy1uYXZpZ2F0aW9uJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgaGFzTmF2aWdhdGlvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqIFRoZSBzZWF0IHJlc2VydmF0aW9uIGFyZWEgaXMgYWxpZ25lZCB2ZXJ0aWNhbGx5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhbGlnbi12ZXJ0aWNhbCcsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGFsaWduVmVydGljYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogVGhlIHNlYXQgcmVzZXJ2YXRpb24gYXJlYSdzIGJhc2UgZ3JpZCBzaXplICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdiYXNlLWdyaWQtc2l6ZScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYmFzZUdyaWRTaXplOiBudW1iZXIgPSAxNjtcblxuICAvKiogVGhlIHNlYXQgcmVzZXJ2YXRpb24gYXJlYSdzIHdpZHRoICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoZWlnaHQnLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGhlaWdodDogbnVtYmVyID0gbnVsbCE7XG5cbiAgLyoqIE1heGltYWwgbnVtYmVyIG9mIHBvc3NpYmxlIGNsaWNrYWJsZSBzZWF0cyAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbWF4LXJlc2VydmF0aW9ucycsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbWF4UmVzZXJ2YXRpb25zOiBudW1iZXIgPSBudWxsITtcblxuICAvKiogQW55IGNsaWNrIGZ1bmN0aW9uYWxpdHkgaXMgcHJldmVudGVkICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcmV2ZW50LXBsYWNlLWNsaWNrJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcHJldmVudFBsYWNlQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3Igc2VsZWN0ZWRDb2FjaEluZGV4OiBudW1iZXIgPSAtMTtcbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIGZvY3VzZWRDb2FjaEluZGV4OiBudW1iZXIgPSAtMTtcblxuICAvKiogRW1pdHMgd2hlbiBhIHBsYWNlIHdhcyBzZWxlY3RlZCBieSB1c2VyLiAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRQbGFjZXM6IEV2ZW50RW1pdHRlcjxTZWF0UmVzZXJ2YXRpb25QbGFjZVNlbGVjdGlvbltdPiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTZWF0UmVzZXJ2YXRpb25CYXNlRWxlbWVudC5ldmVudHMuc2VsZWN0ZWRQbGFjZXMsXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW4gYSBjb2FjaCB3YXMgc2VsZWN0ZWQgYnkgdXNlci4gKi9cbiAgcHJvdGVjdGVkIHNlbGVjdGVkQ29hY2g6IEV2ZW50RW1pdHRlcjxTZWF0UmVzZXJ2YXRpb25Db2FjaFNlbGVjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2VhdFJlc2VydmF0aW9uQmFzZUVsZW1lbnQuZXZlbnRzLnNlbGVjdGVkQ29hY2gsXG4gICk7XG5cbiAgcHJvdGVjdGVkIGNvYWNoQm9yZGVyUGFkZGluZyA9IDY7XG4gIHByb3RlY3RlZCBjb2FjaEJvcmRlck9mZnNldCA9IHRoaXMuY29hY2hCb3JkZXJQYWRkaW5nIC8gdGhpcy5iYXNlR3JpZFNpemU7XG4gIHByb3RlY3RlZCBjdXJyU2Nyb2xsRGlyZWN0aW9uOiBTY3JvbGxEaXJlY3Rpb24gPSBTY3JvbGxEaXJlY3Rpb24ucmlnaHQ7XG4gIHByb3RlY3RlZCBtYXhDYWxjQ29hY2hzV2lkdGg6IG51bWJlciA9IDA7XG4gIHByb3RlY3RlZCBzY3JvbGxDb2FjaHNBcmVhV2lkdGg6IG51bWJlciA9IDA7XG4gIHByb3RlY3RlZCB0cmlnZ2VyQ29hY2hQb3NpdGlvbnNDb2xsZWN0aW9uOiBDb2FjaFNjcm9sbFRyaWdnZXJQb2ludFtdID0gW107XG4gIHByb3RlY3RlZCBmaXJzdFRhYkVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gbnVsbCE7XG4gIHByb3RlY3RlZCBsYXN0VGFiRWxlbWVudDogSFRNTEVsZW1lbnQgPSBudWxsITtcbiAgcHJvdGVjdGVkIGNvYWNoU2Nyb2xsQXJlYTogSFRNTEVsZW1lbnQgPSBudWxsITtcbiAgcHJvdGVjdGVkIGN1cnJTZWxlY3RlZFBsYWNlOiBQbGFjZSB8IG51bGwgPSBudWxsO1xuICBwcm90ZWN0ZWQgY3VyclNlbGVjdGVkUGxhY2VFbGVtZW50SWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcm90ZWN0ZWQgY3VyclNlbGVjdGVkQ29hY2hJbmRleDogbnVtYmVyID0gLTE7XG4gIHByb3RlY3RlZCBwcmV2ZW50Q29hY2hTY3JvbGxCeVBsYWNlQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkU2VhdFJlc2VydmF0aW9uUGxhY2VzOiBTZWF0UmVzZXJ2YXRpb25QbGFjZVNlbGVjdGlvbltdID0gW107XG4gIHByb3RlY3RlZCBzZWF0UmVzZXJ2YXRpb25XaXRob3V0TmF2aWdhdGlvbkhhc0ZvY3VzID0gZmFsc2U7XG4gIHByb3RlY3RlZCBpc0NvY2hHcmlkRm9jdXNhYmxlID0gZmFsc2U7XG4gIHByb3RlY3RlZCBpc0F1dG9TY3JvbGxpbmcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGlzS2V5Ym9hcmROYXZpZ2F0aW9uID0gZmFsc2U7XG4gIHByb3RlY3RlZCBrZXlib2FyZE5hdmlnYXRpb25FdmVudHMgPSB7XG4gICAgQXJyb3dMZWZ0OiAnQXJyb3dMZWZ0JyxcbiAgICBBcnJvd1JpZ2h0OiAnQXJyb3dSaWdodCcsXG4gICAgQXJyb3dVcDogJ0Fycm93VXAnLFxuICAgIEFycm93RG93bjogJ0Fycm93RG93bicsXG4gICAgVGFiOiAnVGFiJyxcbiAgICBFbnRlcjogJ0VudGVyJyxcbiAgfSBhcyBjb25zdDtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NlYXRSZXNlcnZhdGlvbicpKSB7XG4gICAgICB0aGlzLl9pbml0U2VhdFJlc2VydmF0aW9uUGxhY2VTZWxlY3Rpb24oKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdiYXNlR3JpZFNpemUnKSkge1xuICAgICAgdGhpcy5jb2FjaEJvcmRlck9mZnNldCA9IHRoaXMuY29hY2hCb3JkZXJQYWRkaW5nIC8gdGhpcy5iYXNlR3JpZFNpemU7XG4gICAgICB0aGlzLnN0eWxlPy5zZXRQcm9wZXJ0eSgnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmlkLXNpemUnLCBgJHt0aGlzLmJhc2VHcmlkU2l6ZX1weGApO1xuXG4gICAgICBpZiAodGhpcy5hbGlnblZlcnRpY2FsKSB7XG4gICAgICAgIHRoaXMuX3NldFZlcnRpY2FsQWxpZ25tZW50T2Zmc2V0KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGhlaWdodCBpcyB1c2VkLCB0aGUgYmFzZUdyaWRTaXplIG11c3QgYmUgcmVjYWxjdWxhdGVkXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnaGVpZ2h0JykgJiYgISF0aGlzLmhlaWdodCkge1xuICAgICAgaWYgKHRoaXMuc2VhdFJlc2VydmF0aW9uLmNvYWNoSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuYmFzZUdyaWRTaXplID0gdGhpcy5oZWlnaHQgLyB0aGlzLnNlYXRSZXNlcnZhdGlvbi5jb2FjaEl0ZW1zWzBdLmRpbWVuc2lvbi5oO1xuICAgICAgICB0aGlzLmNvYWNoQm9yZGVyT2Zmc2V0ID0gdGhpcy5jb2FjaEJvcmRlclBhZGRpbmcgLyB0aGlzLmJhc2VHcmlkU2l6ZTtcbiAgICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JpZC1zaXplJywgYCR7dGhpcy5iYXNlR3JpZFNpemV9cHhgKTtcblxuICAgICAgICBpZiAodGhpcy5hbGlnblZlcnRpY2FsKSB7XG4gICAgICAgICAgdGhpcy5fc2V0VmVydGljYWxBbGlnbm1lbnRPZmZzZXQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2FsaWduVmVydGljYWwnKSAmJiB0aGlzLmFsaWduVmVydGljYWwpIHtcbiAgICAgIHRoaXMuX3NldFZlcnRpY2FsQWxpZ25tZW50T2Zmc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgLyogSW5pdCBzY3JvbGwgZXZlbnQgaGFuZGxpbmcgZm9yIGNvYWNoIG5hdmlnYXRpb24gKi9cbiAgcHJvdGVjdGVkIGluaXROYXZpZ2F0aW9uU2VsZWN0aW9uQnlTY3JvbGxFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpcnN0VGFiRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoJ2ZpcnN0LXRhYi1lbGVtZW50JykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5sYXN0VGFiRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoJ2xhc3QtdGFiLWVsZW1lbnQnKSBhcyBIVE1MRWxlbWVudDtcbiAgICB0aGlzLmNvYWNoU2Nyb2xsQXJlYSA9IHRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoJ3NiYi1zcl9fcGFyZW50LWFyZWEnKSBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmICh0aGlzLmNvYWNoU2Nyb2xsQXJlYSkge1xuICAgICAgbGV0IGN1cnJDYWxjVHJpZ2dlclBvcyA9IDA7XG4gICAgICB0aGlzLnNjcm9sbENvYWNoc0FyZWFXaWR0aCA9IHRoaXMuY29hY2hTY3JvbGxBcmVhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuXG4gICAgICAvLyBQcmVjYWxjdWxhdGUgdHJpZ2dlciBzY3JvbGwgcG9zaXRpb24gYXJyYXkgZGVwZW5kcyBmcm9tIGNvYWNoIHdpZHRoXG4gICAgICB0aGlzLnRyaWdnZXJDb2FjaFBvc2l0aW9uc0NvbGxlY3Rpb24gPSB0aGlzLnNlYXRSZXNlcnZhdGlvbi5jb2FjaEl0ZW1zLm1hcCgoY29hY2gpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhcnRQb3NYID0gY3VyckNhbGNUcmlnZ2VyUG9zO1xuICAgICAgICBjb25zdCBjb2FjaFdpZHRoID0gdGhpcy5nZXRDYWxjdWxhdGVkRGltZW5zaW9uKGNvYWNoLmRpbWVuc2lvbikudztcbiAgICAgICAgY3VyckNhbGNUcmlnZ2VyUG9zICs9IGNvYWNoV2lkdGg7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3RhcnQ6IHN0YXJ0UG9zWCxcbiAgICAgICAgICBlbmQ6IGN1cnJDYWxjVHJpZ2dlclBvcyxcbiAgICAgICAgICB3aWR0aDogY29hY2hXaWR0aCxcbiAgICAgICAgfSBhcyBDb2FjaFNjcm9sbFRyaWdnZXJQb2ludDtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBTZXQgbWF4aW11bSBjYWxjdWxhdGVkIGNvYWNoIHdpZHRoXG4gICAgICB0aGlzLm1heENhbGNDb2FjaHNXaWR0aCA9IGN1cnJDYWxjVHJpZ2dlclBvcztcblxuICAgICAgLy8gQXQgdGhlIGVuZCBvZiBhIHNjcm9sbCBFdmVudHMgdG8gYSBjb2FjaCwgdGhlIHJlYWNoZWQgd2Fnb24gaXMgbWFya2VkIGFzIHNlbGVjdGVkXG4gICAgICB0aGlzLmNvYWNoU2Nyb2xsQXJlYS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGxlbmQnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbmRTY3JvbGxDb2FjaEluZGV4ID0gdGhpcy5pc0F1dG9TY3JvbGxpbmdcbiAgICAgICAgICA/IHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleFxuICAgICAgICAgIDogdGhpcy5fZ2V0Q29hY2hJbmRleEJ5U2Nyb2xsVHJpZ2dlclBvc2l0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLl9pc1Njcm9sbGFibGVUb1NlbGVjdGVkQ29hY2goKSkge1xuICAgICAgICAgIHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCA9IGZpbmRTY3JvbGxDb2FjaEluZGV4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCA9XG4gICAgICAgICAgICBmaW5kU2Nyb2xsQ29hY2hJbmRleCA8IHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleFxuICAgICAgICAgICAgICA/IHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleFxuICAgICAgICAgICAgICA6IGZpbmRTY3JvbGxDb2FjaEluZGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmV2ZW50Q29hY2hTY3JvbGxCeVBsYWNlQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgdGhpcy51cGRhdGVDdXJyZW50U2VsZWN0ZWRDb2FjaCgpO1xuXG4gICAgICAgIGlmICghdGhpcy5oYXNOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgdGhpcy5wcmVzZWxlY3RQbGFjZUluQ29hY2goKTtcbiAgICAgICAgICB0aGlzLmlzQXV0b1Njcm9sbGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gRHVyaW5nIGluaXRpYWxpemF0aW9uIHdlIGNoZWNrIHZlcnRpY2FsIGFsaWdubWVudCBtb2RlLiBJbiBWZXJ0aWNhbCBtb2RlIHdlIGhhdmUgdG8gc2V0IHRoZSB2ZXJ0aWNhbCBvZmZzZXQgbWFudWFsIGZvciB0aGUgc2VhdCByZXNlcnZhdGlvbiBhcmVhLFxuICAgICAgLy8gYmVjdWFzZSB3ZSByb3RhdGUgdGhlIGVudGlyZSBjb21wb25lbnQgYnkgOTAgZGVncmVlcyBhbmQgdHJhbnNmb3JtIHRoZSBvcmlnaW4gcG9pbnQgdG8gdG9wIGxlZnQuXG4gICAgICBpZiAodGhpcy5hbGlnblZlcnRpY2FsKSB7XG4gICAgICAgIHRoaXMuX3NldFZlcnRpY2FsQWxpZ25tZW50T2Zmc2V0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIElmIG5vIG5hdmlnYXRpb24gZXhpc3RzIChwcm9wZXJ0eSBzZXR0aW5nIC0+IGhhc05hdmlnYXRpb24pIGFuZCBhIHRhYmxlIGNvYWNoIGdldHMgdGhlIGZvY3VzLFxuICAgKiB0aGUgZmlyc3QgcGxhY2UgaW4gdGhlIGNvYWNoIG11c3QgYmUgYXV0b21hdGljYWxseSBwcmVzZWxlY3RlZCB0byBjb250cm9sIHRoZSBwbGFjZSBuYXZpZ2F0aW9uIHZpYSBrZXlib2FyZFxuICAgKlxuICAgKiBAcGFyYW0gZm9jdXNDb2FjaEluZGV4XG4gICAqL1xuICBwcm90ZWN0ZWQgb25Gb2N1c1RhYmxlQ29hY2hBbmRQcmVzZWxlY3RQbGFjZShmb2N1c0NvYWNoSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5zZWF0UmVzZXJ2YXRpb25XaXRob3V0TmF2aWdhdGlvbkhhc0ZvY3VzICYmICF0aGlzLmhhc05hdmlnYXRpb24pIHtcbiAgICAgIHRoaXMuc2VhdFJlc2VydmF0aW9uV2l0aG91dE5hdmlnYXRpb25IYXNGb2N1cyA9IHRydWU7XG4gICAgICB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXggPVxuICAgICAgICBmb2N1c0NvYWNoSW5kZXggPT09IDBcbiAgICAgICAgICA/IHRoaXMuZ2V0TmV4dEF2YWlsYWJsZUNvYWNoSW5kZXgoLTEpXG4gICAgICAgICAgOiB0aGlzLmdldFByZXZBdmFpbGFibGVDb2FjaEluZGV4KGZvY3VzQ29hY2hJbmRleCk7XG4gICAgICB0aGlzLnByZXNlbGVjdFBsYWNlSW5Db2FjaCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXNhdGlvbiBvZiBLZXlib2FyZCBldmVudCBoYW5kbGluZyB0byBuYXZpZ2F0aW9uIGJldHdlZW4gZWFjaCBwbGFjZXMgaW5zaWRlIGEgc2VsZWN0ZWQgY29hY2ggYnkgdXNpbmcgW2Fycm93XSBrZXlzLlxuICAgKiBXaXRoIHRoZSBbVEFCXSBrZXkgdGhlIHVzZXIgbmF2aWdhdGlvbiBnb2VzIHRvIHRoZSBuZXh0IGNvYWNoIG5hdmlnYXRpb24gZWxlbWVudCBhbmQgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBwbGFjZSBpcyBhdXRvbWF0aWNhbGx5IHJlc2V0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVzc2VkS2V5ID0gZXZlbnQua2V5O1xuXG4gICAgLy8gSWYgYW55IHBsYWNlIGlzIHNlbGVjdGVkIGFuZCBUQUIgS2V5IGNvbWJpbmF0aW9uIGlzdCBwcmVzc2VkLFxuICAgIC8vIHRoZW4gd2UgaGFuZGxlIHRoZSBuZXh0IG9yIHByZXZpb3VzIGNvYWNoIHNlbGVjdGlvblxuICAgIGlmICh0aGlzLmN1cnJTZWxlY3RlZFBsYWNlKSB7XG4gICAgICBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgZXZlbnQua2V5Q29kZSA9PT0gOSkge1xuICAgICAgICB0aGlzLl9uYXZpZ2F0ZUNvYWNoTmF2aWdhdGlvbkJ5S2V5Ym9hcmQoJ1BSRVZfVEFCJyk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHByZXNzZWRLZXkgPT09IHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLlRhYikge1xuICAgICAgICB0aGlzLl9uYXZpZ2F0ZUNvYWNoTmF2aWdhdGlvbkJ5S2V5Ym9hcmQoJ05FWFRfVEFCJyk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBhIGNob2FjaCBpcyBzZWxlY3RlZCBhbmQgdGhlIGFycm93IGtleSBpcyBwcmVzc2VkXG4gICAgaWYgKHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCAhPT0gLTEgJiYgaXNBcnJvd0tleU9yUGFnZUtleXNQcmVzc2VkKGV2ZW50KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgc3dpdGNoIChwcmVzc2VkS2V5KSB7XG4gICAgICAgIGNhc2UgdGhpcy5rZXlib2FyZE5hdmlnYXRpb25FdmVudHMuQXJyb3dMZWZ0OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXNzZWRMZWZ0S2V5TWFwcGluZzogc3RyaW5nID0gdGhpcy5hbGlnblZlcnRpY2FsXG4gICAgICAgICAgICAgID8gdGhpcy5rZXlib2FyZE5hdmlnYXRpb25FdmVudHMuQXJyb3dEb3duXG4gICAgICAgICAgICAgIDogcHJlc3NlZEtleTtcbiAgICAgICAgICAgIHRoaXMuX25hdmlnYXRlVG9QbGFjZUJ5S2V5Ym9hcmQocHJlc3NlZExlZnRLZXlNYXBwaW5nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgdGhpcy5rZXlib2FyZE5hdmlnYXRpb25FdmVudHMuQXJyb3dSaWdodDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBwcmVzc2VkUmlnaHRLZXlNYXBwaW5nOiBzdHJpbmcgPSB0aGlzLmFsaWduVmVydGljYWxcbiAgICAgICAgICAgICAgPyB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cy5BcnJvd1VwXG4gICAgICAgICAgICAgIDogcHJlc3NlZEtleTtcbiAgICAgICAgICAgIHRoaXMuX25hdmlnYXRlVG9QbGFjZUJ5S2V5Ym9hcmQocHJlc3NlZFJpZ2h0S2V5TWFwcGluZyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLkFycm93VXA6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgcHJlc3NlZFVwS2V5TWFwcGluZzogc3RyaW5nID0gdGhpcy5hbGlnblZlcnRpY2FsXG4gICAgICAgICAgICAgID8gdGhpcy5rZXlib2FyZE5hdmlnYXRpb25FdmVudHMuQXJyb3dMZWZ0XG4gICAgICAgICAgICAgIDogcHJlc3NlZEtleTtcbiAgICAgICAgICAgIHRoaXMuX25hdmlnYXRlVG9QbGFjZUJ5S2V5Ym9hcmQocHJlc3NlZFVwS2V5TWFwcGluZyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLkFycm93RG93bjpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBwcmVzc2VkRG93bktleU1hcHBpbmc6IHN0cmluZyA9IHRoaXMuYWxpZ25WZXJ0aWNhbFxuICAgICAgICAgICAgICA/IHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLkFycm93UmlnaHRcbiAgICAgICAgICAgICAgOiBwcmVzc2VkS2V5O1xuICAgICAgICAgICAgdGhpcy5fbmF2aWdhdGVUb1BsYWNlQnlLZXlib2FyZChwcmVzc2VkRG93bktleU1hcHBpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyBhIHBsYWNlIGluc2lkZSB0aGUgY29hY2ggaWYgbmF2aWdhdGVkIHZpYSBrZXlib2FyZCxcbiAgICogb3RoZXJ3aXNlIHRoZSBjb2FjaCBncmlkIGlzIHNlbGVjdGVkIChuZWNlc3NhcnkgZm9yIFNjcmVlblJlYWRlcilcbiAgICovXG4gIHByb3RlY3RlZCBwcmVzZWxlY3RQbGFjZUluQ29hY2goKTogdm9pZCB7XG4gICAgY29uc3QgY2xvc2VzdFBsYWNlID0gdGhpcy5fZ2V0Q2xvc2VzdFBsYWNlQnlLZXlEaXJlY3Rpb24oKTtcbiAgICAvL0lmIGNsb3Nlc3RQbGFjZSBleGlzdCwgd2UgaGF2ZSB0byB1bmZvY3VzIHByZXZpb3VzZSBmb2N1c2VkIHBsYWNlXG4gICAgaWYgKGNsb3Nlc3RQbGFjZSkge1xuICAgICAgdGhpcy51bmZvY3VzUGxhY2VFbGVtZW50KCk7XG4gICAgfVxuXG4gICAgLy8gT25seSB3aGVuIGtleWJvYXJkIG5hdmlnYXRpb24gaXMgdXNlZCBhbmQgY29hY2hlcyBhcmUgc2Nyb2xsZWQgYnkgYXV0byBzY3JvbGxpbmcsXG4gICAgLy8gdGhlbiB3ZSBjYW4gc2V0IHRoZSBmb2N1cyBvbiB0aGUgZmlyc3QgcGxhY2UgaW4gdGhlIGNvYWNoLlxuICAgIGlmICh0aGlzLmlzS2V5Ym9hcmROYXZpZ2F0aW9uICYmIHRoaXMuaXNBdXRvU2Nyb2xsaW5nKSB7XG4gICAgICBpZiAoY2xvc2VzdFBsYWNlKSB7XG4gICAgICAgIHRoaXMuZm9jdXNQbGFjZUVsZW1lbnQoY2xvc2VzdFBsYWNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gSW4gY2FzZXMgd2hlcmUgdGhlIHByZXNlbGVjdGlvbiBmdW5jdGlvbiBpcyB0cmlnZ2VyZWQgYnkgbm9ybWFsIGNsaWNraW5nIG9yIHZpYSBzY3JlZW5yZWFkZXIgdmlhIHRhYixcbiAgICAvLyB3ZSBvbmx5IGZvY3VzIHRoZSB0YWJsZSB3aXRob3V0IGRpcmVjdGx5IGZvY3VzaW5nIHRoZSBwbGFjZS5cbiAgICBlbHNlIHtcbiAgICAgIC8vIFdlIG5lZWQgdG8gc2V0IHRoZSBjdXJyU2VsZWN0ZWRQbGFjZSBoZXJlIGZvciBmdXJ0aGVyIGNvcnJlY3QgZnVuY3Rpb25pbmcgbmF2aWdhdGlvbiB2aWEgdGFiLlxuICAgICAgdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZSA9IGNsb3Nlc3RQbGFjZTtcbiAgICAgIHRoaXMuX3NldEZvY3VzVG9TZWxlY3RlZENvYWNoR3JpZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzY3JvbGxUb1NlbGVjdGVkTmF2Q29hY2goc2VsZWN0ZWROYXZDb2FjaEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoc2VsZWN0ZWROYXZDb2FjaEluZGV4ICE9PSB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXgpIHtcbiAgICAgIHRoaXMuaXNBdXRvU2Nyb2xsaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNDb2NoR3JpZEZvY3VzYWJsZSA9IHRydWU7XG4gICAgICB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXggPSBzZWxlY3RlZE5hdkNvYWNoSW5kZXg7XG4gICAgICB0aGlzLl9zZXRTY3JvbGxEaXJlY3Rpb25CeUNvYWNoSW5kZXgoKTtcblxuICAgICAgY29uc3Qgc2Nyb2xsVG9Db2FjaFBvc1ggPSB0aGlzLl9nZXRDb2FjaFNjcm9sbFBvc2l0aW9uWCgpO1xuICAgICAgY29uc3QgaXNTZWxlY3RlZENvYWNoSW5kZXhTY3JvbGxhYmxlID1cbiAgICAgICAgdGhpcy5zZWxlY3RlZENvYWNoSW5kZXggIT09IC0xIHx8IHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCA+IDA7XG5cbiAgICAgIC8vIENoZWNrcyB3aGV0aGVyIHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBhbGxvd3Mgc2Nyb2xsaW5nIHRvIHRoZSBuZXh0IHdhZ29uIG9yIG5vdFxuICAgICAgaWYgKGlzU2VsZWN0ZWRDb2FjaEluZGV4U2Nyb2xsYWJsZSAmJiB0aGlzLl9pc1Njcm9sbGFibGVUb1NlbGVjdGVkQ29hY2goKSkge1xuICAgICAgICB0aGlzLmNvYWNoU2Nyb2xsQXJlYS5zY3JvbGxUbyh7XG4gICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgIGxlZnQ6IHNjcm9sbFRvQ29hY2hQb3NYLFxuICAgICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRTZWxlY3RlZENvYWNoKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG5ldyBTY3JvbGxEaXJlY3Rpb24gYnkgdGhlIG5ldyBnaXZlbiB0YXJnZXQgY29hY2ggaW5kZXguXG4gICAqL1xuICBwcml2YXRlIF9zZXRTY3JvbGxEaXJlY3Rpb25CeUNvYWNoSW5kZXgoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyU2Nyb2xsRGlyZWN0aW9uID1cbiAgICAgIHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCA+IHRoaXMuc2VsZWN0ZWRDb2FjaEluZGV4XG4gICAgICAgID8gU2Nyb2xsRGlyZWN0aW9uLnJpZ2h0XG4gICAgICAgIDogU2Nyb2xsRGlyZWN0aW9uLmxlZnQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2Nyb2xsIHN0YXJ0IG9yIGVuZCBwb3NpdGlvbiBYIGZyb20gdGhlIHNlbGVjdGVkIGNvYWNoLlxuICAgKiBJbiBjYXNlIHRoZSB1c2VyIGlzIGN1cnJldG5seSBuYXZpZ2F0ZSB0aHJvdWdodCBwbGFjZXMgYnkga2V5Ym9hcmQgYW5kIGdvZXMgdG8gcHJldmlvdXMgY29hY2gsXG4gICAqIHRoZW4gd2UgcmV0dXJuIHRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIGNvYWNoIHRvIGdldCBjbG9zdGVzdCBuZXh0IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgbmV4dCBmb2N1cyBwbGFjZS5cbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBwcml2YXRlIF9nZXRDb2FjaFNjcm9sbFBvc2l0aW9uWCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGNvYWNoVHJpZ2dlclBvaW50ID0gdGhpcy50cmlnZ2VyQ29hY2hQb3NpdGlvbnNDb2xsZWN0aW9uW3RoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleF07XG4gICAgY29uc3QgaXNGb2N1c1BsYWNlRnJvbVByZXZpb3VzQ29hY2hQb3NpdGlvbiA9XG4gICAgICB0aGlzLmlzS2V5Ym9hcmROYXZpZ2F0aW9uICYmXG4gICAgICB0aGlzLmN1cnJTY3JvbGxEaXJlY3Rpb24gPT09IFNjcm9sbERpcmVjdGlvbi5sZWZ0ICYmXG4gICAgICBjb2FjaFRyaWdnZXJQb2ludC53aWR0aCA+IHRoaXMuc2Nyb2xsQ29hY2hzQXJlYVdpZHRoO1xuICAgIHJldHVybiBpc0ZvY3VzUGxhY2VGcm9tUHJldmlvdXNDb2FjaFBvc2l0aW9uXG4gICAgICA/IGNvYWNoVHJpZ2dlclBvaW50LmVuZCAtIHRoaXMuc2Nyb2xsQ29hY2hzQXJlYVdpZHRoXG4gICAgICA6IGNvYWNoVHJpZ2dlclBvaW50LnN0YXJ0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGZvY3VzIG9uIHRoZSBIVE1MIHRhYmxlIChncmlkKSBjYXB0aW9uIGVsZW1lbnQgc28gdGhhdCB0aGUgaGVhZGluZyBpcyByZWFkIG91dCB3aGVuIHVzaW5nIGEgU2NyZWVuUmVhZGVyLlxuICAgKi9cbiAgcHJpdmF0ZSBfc2V0Rm9jdXNUb1NlbGVjdGVkQ29hY2hHcmlkKCk6IHZvaWQge1xuICAgIC8vIFdoZW4gdGhlIHVzZXIgcGVyZm9ybXMgYW4gYWN0aW9uIHRoYXQgYWZmZWN0cyB0aGUgY29hY2ggbmF2aWdhdGlvbiwgdGhlbiB0aGUgbmF2aWdhdGVkIHRhYmxlIGlzIGZvY3VzYWJsZS5cbiAgICBpZiAodGhpcy5pc0NvY2hHcmlkRm9jdXNhYmxlKSB7XG4gICAgICB0aGlzLmlzQ29jaEdyaWRGb2N1c2FibGUgPSBmYWxzZTtcbiAgICAgIGNvbnN0IGNvYWNoVGFibGVDYXB0aW9uRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJyNzYmItc3ItY29hY2gtY2FwdGlvbi0nICsgdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4LFxuICAgICAgKSBhcyBIVE1MVGFibGVDYXB0aW9uRWxlbWVudDtcbiAgICAgIGlmIChjb2FjaFRhYmxlQ2FwdGlvbkVsZW1lbnQpIHtcbiAgICAgICAgY29hY2hUYWJsZUNhcHRpb25FbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciB0aGUgY3VycmVudCBzY3JvbGxlZCBwb3NpdGlvbiBjYW4gYmUgdXNlZCB0byBzY3JvbGwgdG8gdGhlIHNlbGVjdGVkIHdhZ29uXG4gICAqIEByZXR1cm5zIGJvb2xlYW5cbiAgICovXG4gIHByaXZhdGUgX2lzU2Nyb2xsYWJsZVRvU2VsZWN0ZWRDb2FjaCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjdXJyU2Nyb2xsUG9zWCA9IHRoaXMuY29hY2hTY3JvbGxBcmVhLnNjcm9sbExlZnQ7XG4gICAgY29uc3QgY29hY2hTY3JvbGxXaW5kb3dXaWR0aCA9IHRoaXMuY29hY2hTY3JvbGxBcmVhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgIGNvbnN0IG1heFNjcm9sbFdpZHRoQXJlYSA9IHRoaXMubWF4Q2FsY0NvYWNoc1dpZHRoIC0gY29hY2hTY3JvbGxXaW5kb3dXaWR0aDtcbiAgICBjb25zdCBjdXJyQ29hY2hUcmlnZ2VyID0gdGhpcy50cmlnZ2VyQ29hY2hQb3NpdGlvbnNDb2xsZWN0aW9uW3RoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleF07XG4gICAgY29uc3QgaXNTY3JvbGxQb3NTYW1lVG9DdXJyQ29hY2hQb3MgPVxuICAgICAgY3VyclNjcm9sbFBvc1ggPT09IHRoaXMudHJpZ2dlckNvYWNoUG9zaXRpb25zQ29sbGVjdGlvblt0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXhdLnN0YXJ0O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIChjdXJyU2Nyb2xsUG9zWCA8IG1heFNjcm9sbFdpZHRoQXJlYSB8fCBjdXJyU2Nyb2xsUG9zWCA+IGN1cnJDb2FjaFRyaWdnZXIuc3RhcnQpICYmXG4gICAgICAhaXNTY3JvbGxQb3NTYW1lVG9DdXJyQ29hY2hQb3NcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvYWNoIGluZGV4IHdoaWNoIGlzIGN1cnJlbnRseSB2aXNpYmxlIGluIHRoZSBzY3JvbGwgYXJlYVxuICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICovXG4gIHByaXZhdGUgX2dldENvYWNoSW5kZXhCeVNjcm9sbFRyaWdnZXJQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIGNvbnN0IHNjcm9sbE9mZnNldFggPSB0aGlzLmNvYWNoU2Nyb2xsQXJlYS5zY3JvbGxMZWZ0ICsgdGhpcy5zY3JvbGxDb2FjaHNBcmVhV2lkdGggLyAyO1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJDb2FjaFBvc2l0aW9uc0NvbGxlY3Rpb24uZmluZEluZGV4KFxuICAgICAgKGNvYWNoVHJpZ2dlcikgPT4gc2Nyb2xsT2Zmc2V0WCA+PSBjb2FjaFRyaWdnZXIuc3RhcnQgJiYgc2Nyb2xsT2Zmc2V0WCA8PSBjb2FjaFRyaWdnZXIuZW5kLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmaXJzdCBwbGFjZSBvZiBjdXJyZW50IHNlbGVjdGVkIGNvYWNoIGJ5IHRhYmxlIGNlbGwgY29vcmRpbmF0ZSAwLTAgaWQuXG4gICAqIEByZXR1cm5zIFBsYWNlIG9yIG51bGxcbiAgICovXG4gIHByaXZhdGUgX2dldEZpcnN0UGxhY2VJblNlbGVjZWRDb2FjaCgpOiBQbGFjZSB8IG51bGwge1xuICAgIGxldCBmaXJzdFBsYWNlOiBQbGFjZSB8IG51bGwgPSBudWxsO1xuICAgIGNvbnN0IGNvYWNoID0gdGhpcy5zZWF0UmVzZXJ2YXRpb24/LmNvYWNoSXRlbXNbdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4XTtcbiAgICBjb25zdCBmaXJzdENlbGxJZCA9ICdjZWxsLScgKyB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXggKyAnLTAtMCc7XG4gICAgY29uc3QgcGxhY2VOdW1iZXIgPVxuICAgICAgdGhpcy5zaGFkb3dSb290XG4gICAgICAgID8ucXVlcnlTZWxlY3RvcjxTYmJTZWF0UmVzZXJ2YXRpb25TY29wZWRFbGVtZW50PihcIltjZWxsLWlkPSdcIiArIGZpcnN0Q2VsbElkICsgXCInXVwiKVxuICAgICAgICA/LnF1ZXJ5U2VsZWN0b3I8U2JiU2VhdFJlc2VydmF0aW9uUGxhY2VDb250cm9sRWxlbWVudD4oJ3NiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2wnKVxuICAgICAgICA/LmdldEF0dHJpYnV0ZSgndGV4dCcpIHx8IG51bGw7XG5cbiAgICBpZiAoY29hY2ggJiYgcGxhY2VOdW1iZXIpIHtcbiAgICAgIGZpcnN0UGxhY2UgPSBjb2FjaC5wbGFjZXM/LmZpbmQoKHBsYWNlKSA9PiBwbGFjZS5udW1iZXIgPT09IHBsYWNlTnVtYmVyKSB8fCBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gZmlyc3RQbGFjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUbyBnZXQgdGhlIGNvcnJlY3QgY2xvc2VzdCBwbGFjZSBvZiBjdXJyZW50IHByZXNzZWQga2V5IGFuZCB0aGUgY3VycmVudCBzZWxlY3RlZCBwbGFjZSxcbiAgICogd2UgaGF2ZSB0byBpbnZlc3RpZ2F0ZSB0aGUgY29vcmRpbmF0ZXMgb2YgZWFjaCBwbGFjZSB0byBmaW5kIHRoZSBjbG9zZXN0IHBsYWNlIG9mIHRoZSBjdXJyU2VsZWN0ZWRQbGFjZUVsZW1lbnRJZC5cbiAgICogQHBhcmFtIHByZXNzZWRLZXlcbiAgICogQHJldHVybnMgUGxhY2Ugb3IgbnVsbFxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0Q2xvc2VzdFBsYWNlQnlLZXlEaXJlY3Rpb24ocHJlc3NlZEtleT86IHN0cmluZyk6IFBsYWNlIHwgbnVsbCB7XG4gICAgY29uc3QgY29hY2ggPSB0aGlzLnNlYXRSZXNlcnZhdGlvbj8uY29hY2hJdGVtc1t0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXhdO1xuICAgIGxldCBjbG9zZXN0UGxhY2UgPSBudWxsO1xuICAgIGlmIChjb2FjaC5wbGFjZXMpIHtcbiAgICAgIC8vSWYgbm8gcGxhY2Ugc2V0LCB0aGVuIHdlbiB1c2UgaW5pdGlhbCB0aGUgbGVmdC10b3AgcGxhY2Ugb24gdGhlIGNvYWNoXG4gICAgICBpZiAoIXRoaXMuY3VyclNlbGVjdGVkUGxhY2VFbGVtZW50SWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEZpcnN0UGxhY2VJblNlbGVjZWRDb2FjaCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuY3VyclNlbGVjdGVkUGxhY2UpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHBsYWNlIG9mIGNvYWNoLnBsYWNlcykge1xuICAgICAgICAgICAgLy8gSWYga2V5IHByZXNzZWQsIHRoZW4gd2UgdHJ5IHRvIGZpbmQgdGhlIHBsYWNlIG9mIHRoZSBjdXJyZW50IGN1cnJTY3JvbGxEaXJlY3Rpb25cbiAgICAgICAgICAgIGlmICghcHJlc3NlZEtleSkge1xuICAgICAgICAgICAgICAvL0ZpbmQgcGxhY2UgZnJvbSB0aGUgbGVmdCBzaWRlIG9mIGNvYWNoIGJ5IHkgY29vcmRpbmF0ZS4gQ3VycmVudCBjdXJyU2Nyb2xsRGlyZWN0aW9uIGlzIFJJR0hUKVxuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyU2Nyb2xsRGlyZWN0aW9uID09PSBTY3JvbGxEaXJlY3Rpb24ucmlnaHQgJiZcbiAgICAgICAgICAgICAgICBwbGFjZS5wb3NpdGlvbi55ID09PSB0aGlzLmN1cnJTZWxlY3RlZFBsYWNlPy5wb3NpdGlvbi55ICYmXG4gICAgICAgICAgICAgICAgKCFjbG9zZXN0UGxhY2UgfHwgcGxhY2UucG9zaXRpb24ueCA8IGNsb3Nlc3RQbGFjZS5wb3NpdGlvbi54KVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBjbG9zZXN0UGxhY2UgPSBwbGFjZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvL0ZpbmQgcGxhY2UgZnJvbSB0aGUgcmlnaHQgc2lkZSBvZiBjb2FjaCBieSB5IGNvb3JkaW5hdGUuIEN1cnJlbnQgY3VyclNjcm9sbERpcmVjdGlvbiBpcyBMRUZUXG4gICAgICAgICAgICAgIGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIHRoaXMuY3VyclNjcm9sbERpcmVjdGlvbiA9PT0gU2Nyb2xsRGlyZWN0aW9uLmxlZnQgJiZcbiAgICAgICAgICAgICAgICBwbGFjZS5wb3NpdGlvbi55ID09PSB0aGlzLmN1cnJTZWxlY3RlZFBsYWNlPy5wb3NpdGlvbi55ICYmXG4gICAgICAgICAgICAgICAgKCFjbG9zZXN0UGxhY2UgfHwgcGxhY2UucG9zaXRpb24ueCA+IGNsb3Nlc3RQbGFjZS5wb3NpdGlvbi54KVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBjbG9zZXN0UGxhY2UgPSBwbGFjZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKHBsYWNlLm51bWJlciAhPT0gdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZT8ubnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgLy9LZXkgW1JpZ2h0XSBuYXZpZ2F0aW9uLCB3ZSBjaGVjayB0aGUgcGxhY2UgY29vcmRpbmF0ZXMgb2YgdGhlIHgtYXhpcyB0byBnZXQgdGhlIHNtYWxsZXN0IGxhcmdlciB4IHBsYWNlIGNvb3JkaW5hdGUgb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBwbGFjZVxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIHByZXNzZWRLZXkgPT09IHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLkFycm93UmlnaHQgJiZcbiAgICAgICAgICAgICAgICAgIChwbGFjZS5wb3NpdGlvbi55ID09PSB0aGlzLmN1cnJTZWxlY3RlZFBsYWNlLnBvc2l0aW9uLnkgfHxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2UucG9zaXRpb24ueSA9PT0gdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZS5wb3NpdGlvbi55IC0gMSkgJiZcbiAgICAgICAgICAgICAgICAgIHBsYWNlLnBvc2l0aW9uLnggPiB0aGlzLmN1cnJTZWxlY3RlZFBsYWNlLnBvc2l0aW9uLnggJiZcbiAgICAgICAgICAgICAgICAgICghY2xvc2VzdFBsYWNlIHx8IHBsYWNlLnBvc2l0aW9uLnggPCBjbG9zZXN0UGxhY2UucG9zaXRpb24ueClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNsb3Nlc3RQbGFjZSA9IHBsYWNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvL0tleSBbRG93bl0gbmF2aWdhdGlvbiwgd2UgY2hlY2sgdGhlIHBsYWNlIGNvb3JkaW5hdGVzIG9mIHRoZSB5LWF4aXMgdG8gZ2V0IHRoZSBzbWFsbGVzdCBsYXJnZXIgeSBwbGFjZSBjb29yZGluYXRlIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcGxhY2VcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgIHByZXNzZWRLZXkgPT09IHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLkFycm93RG93biAmJlxuICAgICAgICAgICAgICAgICAgKHBsYWNlLnBvc2l0aW9uLnggPT09IHRoaXMuY3VyclNlbGVjdGVkUGxhY2UucG9zaXRpb24ueCB8fFxuICAgICAgICAgICAgICAgICAgICBwbGFjZS5wb3NpdGlvbi54ID09PSB0aGlzLmN1cnJTZWxlY3RlZFBsYWNlLnBvc2l0aW9uLnggKyAxKSAmJlxuICAgICAgICAgICAgICAgICAgcGxhY2UucG9zaXRpb24ueSA+IHRoaXMuY3VyclNlbGVjdGVkUGxhY2UucG9zaXRpb24ueSAmJlxuICAgICAgICAgICAgICAgICAgKCFjbG9zZXN0UGxhY2UgfHwgcGxhY2UucG9zaXRpb24ueSA8IGNsb3Nlc3RQbGFjZS5wb3NpdGlvbi55KVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgY2xvc2VzdFBsYWNlID0gcGxhY2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vS2V5IFtMZWZ0XSBuYXZpZ2F0aW9uLCB3ZSBjaGVjayB0aGUgcGxhY2UgY29vcmRpbmF0ZXMgb2YgdGhlIHgtYXhpcyB0byBnZXQgdGhlIGdyZWF0ZXN0IHNtYWxsZXIgeCBwbGFjZSBjb29yZGluYXRlIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcGxhY2VcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgIHByZXNzZWRLZXkgPT09IHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLkFycm93TGVmdCAmJlxuICAgICAgICAgICAgICAgICAgKHBsYWNlLnBvc2l0aW9uLnkgPT09IHRoaXMuY3VyclNlbGVjdGVkUGxhY2UucG9zaXRpb24ueSB8fFxuICAgICAgICAgICAgICAgICAgICBwbGFjZS5wb3NpdGlvbi55ID09PSB0aGlzLmN1cnJTZWxlY3RlZFBsYWNlLnBvc2l0aW9uLnkgKyAxKSAmJlxuICAgICAgICAgICAgICAgICAgcGxhY2UucG9zaXRpb24ueCA8IHRoaXMuY3VyclNlbGVjdGVkUGxhY2UucG9zaXRpb24ueCAmJlxuICAgICAgICAgICAgICAgICAgKCFjbG9zZXN0UGxhY2UgfHwgcGxhY2UucG9zaXRpb24ueCA+IGNsb3Nlc3RQbGFjZS5wb3NpdGlvbi54KVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgY2xvc2VzdFBsYWNlID0gcGxhY2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vS2V5IFtVcF0gbmF2aWdhdGlvbiwgd2UgY2hlY2sgdGhlIHBsYWNlIGNvb3JkaW5hdGVzIG9mIHRoZSB5LWF4aXMgdG8gZ2V0IHRoZSBncmVhdGVzdCBzbWFsbGVyIHkgcGxhY2UgY29vcmRpbmF0ZSBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHBsYWNlXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgICBwcmVzc2VkS2V5ID09PSB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cy5BcnJvd1VwICYmXG4gICAgICAgICAgICAgICAgICAocGxhY2UucG9zaXRpb24ueCA9PT0gdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZS5wb3NpdGlvbi54IHx8XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlLnBvc2l0aW9uLnggPT09IHRoaXMuY3VyclNlbGVjdGVkUGxhY2UucG9zaXRpb24ueCAtIDEpICYmXG4gICAgICAgICAgICAgICAgICBwbGFjZS5wb3NpdGlvbi55IDwgdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZT8ucG9zaXRpb24ueSAmJlxuICAgICAgICAgICAgICAgICAgKCFjbG9zZXN0UGxhY2UgfHwgcGxhY2UucG9zaXRpb24ueSA+IGNsb3Nlc3RQbGFjZS5wb3NpdGlvbi55KVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgY2xvc2VzdFBsYWNlID0gcGxhY2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjbG9zZXN0UGxhY2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgZm9jdXNQbGFjZUVsZW1lbnQocGxhY2U6IFBsYWNlIHwgbnVsbCwgY29hY2hJbmRleD86IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudW5mb2N1c1BsYWNlRWxlbWVudCgpO1xuICAgIGlmIChwbGFjZSkge1xuICAgICAgdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZSA9IHBsYWNlO1xuICAgICAgaWYgKGNvYWNoSW5kZXgpIHtcbiAgICAgICAgdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4ID0gY29hY2hJbmRleDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fc2V0Q3VyclNlbGVjdGVkUGxhY2VFbGVtZW50SWQocGxhY2UpO1xuXG4gICAgICBjb25zdCBzZWxlY3RlZFBsYWNlRWxlbWVudCA9IHRoaXMuX2dldFBsYWNlSHRtbEVsZW1lbnQoKTtcbiAgICAgIGlmIChzZWxlY3RlZFBsYWNlRWxlbWVudCkge1xuICAgICAgICBzZWxlY3RlZFBsYWNlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2tleWZvY3VzJywgJ2ZvY3VzJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHVuZm9jdXNQbGFjZUVsZW1lbnQoKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRQbGFjZUVsZW1lbnQgPSB0aGlzLl9nZXRQbGFjZUh0bWxFbGVtZW50KCk7XG4gICAgaWYgKHNlbGVjdGVkUGxhY2VFbGVtZW50KSB7XG4gICAgICBzZWxlY3RlZFBsYWNlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2tleWZvY3VzJywgJ3VuZm9jdXMnKTtcbiAgICAgIHRoaXMuX3NldEN1cnJTZWxlY3RlZFBsYWNlRWxlbWVudElkKG51bGwpO1xuICAgICAgdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldENhbGN1bGF0ZWREaW1lbnNpb24oXG4gICAgZWxlbWVudERpbWVuc2lvbjogRWxlbWVudERpbWVuc2lvbixcbiAgICBjb2FjaERpbWVuc2lvbj86IEVsZW1lbnREaW1lbnNpb24sXG4gICAgaXNPcmlnaW5IZWlnaHQ/OiBib29sZWFuLFxuICAgIGlzU3RyZXRjaEhlaWdodD86IGJvb2xlYW4sXG4gICk6IEVsZW1lbnREaW1lbnNpb24ge1xuICAgIGlmIChjb2FjaERpbWVuc2lvbiAmJiAhaXNPcmlnaW5IZWlnaHQpIHtcbiAgICAgIGVsZW1lbnREaW1lbnNpb24uaCArPSB0aGlzLmNvYWNoQm9yZGVyT2Zmc2V0ICogMjtcbiAgICB9XG5cbiAgICBpZiAoaXNTdHJldGNoSGVpZ2h0KSB7XG4gICAgICBlbGVtZW50RGltZW5zaW9uLmggKz0gdGhpcy5jb2FjaEJvcmRlck9mZnNldDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdzogdGhpcy5iYXNlR3JpZFNpemUgKiBlbGVtZW50RGltZW5zaW9uLncsXG4gICAgICBoOiB0aGlzLmJhc2VHcmlkU2l6ZSAqIGVsZW1lbnREaW1lbnNpb24uaCxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENhbGN1bGF0ZWRQb3NpdGlvbihcbiAgICBlbGVtZW50UG9zaXRpb246IEVsZW1lbnRQb3NpdGlvbixcbiAgICBlbGVtZW50RGltZW5zaW9uPzogRWxlbWVudERpbWVuc2lvbixcbiAgICBjb2FjaERpbWVuc2lvbj86IEVsZW1lbnREaW1lbnNpb24sXG4gICAgaXNPcmlnaW5IZWlnaHQ/OiBib29sZWFuLFxuICApOiBFbGVtZW50UG9zaXRpb24ge1xuICAgIGlmIChjb2FjaERpbWVuc2lvbiAmJiBlbGVtZW50RGltZW5zaW9uKSB7XG4gICAgICBjb25zdCBlbmRQb3NIZWlnaHQgPSBpc09yaWdpbkhlaWdodFxuICAgICAgICA/IGNvYWNoRGltZW5zaW9uLmhcbiAgICAgICAgOiBjb2FjaERpbWVuc2lvbi5oICsgdGhpcy5jb2FjaEJvcmRlck9mZnNldDtcbiAgICAgIC8vSWYgdGhlIG9yaWdpbmFsIGVsZW1lbnQgaXMgcG9zaXRpb25lZCBhdCB0aGUgdG9wIG9yIGJvdHRvbSBvZiB0aGUgY29hY2gsIHdlIG5lZWQgdG8gcmVjYWxjdWxhdGUgdGhlIFkgY29vcmRpbmF0ZSB3aXRoIHRoZSBhZGRpdGlvbmFsIGJvcmRlciBwYWRkaW5nXG4gICAgICBpZiAoZWxlbWVudFBvc2l0aW9uLnkgPT09IDApIHtcbiAgICAgICAgZWxlbWVudFBvc2l0aW9uLnkgLT0gdGhpcy5jb2FjaEJvcmRlck9mZnNldDtcbiAgICAgIH0gZWxzZSBpZiAoZWxlbWVudFBvc2l0aW9uLnkgKyBlbGVtZW50RGltZW5zaW9uLmggPT09IGVuZFBvc0hlaWdodCkge1xuICAgICAgICBlbGVtZW50UG9zaXRpb24ueSArPSB0aGlzLmNvYWNoQm9yZGVyT2Zmc2V0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB4OiB0aGlzLmJhc2VHcmlkU2l6ZSAqIGVsZW1lbnRQb3NpdGlvbi54LFxuICAgICAgeTogdGhpcy5iYXNlR3JpZFNpemUgKiBlbGVtZW50UG9zaXRpb24ueSxcbiAgICAgIHo6IGVsZW1lbnRQb3NpdGlvbi56LFxuICAgIH07XG4gIH1cblxuICAvLyBIYW5kbGluZyBmb3IgVGFiIG5hdmlnYXRpb24gaWYgYW4gcGxhY2UgaXMgc2VsZWN0ZWQgaW5zaWRlIHRoZSBjb2FjaC5cbiAgLy8gVGhpcyBjb250cm9scyB0aGUgZm9jdXNlZCBjb2FjaCBmcm9tIHRoZSBjdXJyZW50IHNlbGVjdGVkIGNvYWNoLlxuICBwcml2YXRlIF9uYXZpZ2F0ZUNvYWNoTmF2aWdhdGlvbkJ5S2V5Ym9hcmQodGFiRGlyZWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyRm9jdXNJbmRleCA9XG4gICAgICB0aGlzLmZvY3VzZWRDb2FjaEluZGV4ID09PSAtMVxuICAgICAgICA/IHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCA9PT0gLTFcbiAgICAgICAgICA/IDBcbiAgICAgICAgICA6IHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleFxuICAgICAgICA6IHRoaXMuZm9jdXNlZENvYWNoSW5kZXg7XG4gICAgLy9DaGVjayBuZXh0IG9yIHByZXYgdGFiIGlzIHByZXNzZWQsIHRoZW4gd2UgbmVlZCB0byBmaW5kIHRoZSBuZXh0IGF2YWlsYWJsZSBjb2FjaCBpbmRleCB0aGF0IHNob3VsZCByZWNlaXZlIHRoZSBmb2N1c1xuICAgIGNvbnN0IG5ld0ZvY3VzYWJsZUluZGV4OiBudW1iZXIgPVxuICAgICAgdGFiRGlyZWN0aW9uID09PSAnTkVYVF9UQUInXG4gICAgICAgID8gdGhpcy5nZXROZXh0QXZhaWxhYmxlQ29hY2hJbmRleChjdXJyRm9jdXNJbmRleClcbiAgICAgICAgOiB0aGlzLmdldFByZXZBdmFpbGFibGVDb2FjaEluZGV4KGN1cnJGb2N1c0luZGV4KTtcblxuICAgIC8vIElmIHRoZSBjdXJyRm9jdXNJbmRleCBlcXVhbHMgdGhlIG5ld0ZvY3VzYWJsZUluZGV4IHRoZW4gd2UgaGF2ZSByZWFjaGVkIHRoZSBmaXJzdCBvciBsYXN0IHRhYmFibGUgbmF2aWdhdGlvbiBjb2FjaCBFbGVtZW50IGFuZCB3ZSBoYXZlIHRvIHRoZSBzZXQgdGhlIGZvY3VzIG1hbnVhbCB0byB0aGUgZmlyc3RUYWJFbGVtZW50IG9yIGxhc3RUYWJFbGVtZW50LlxuICAgIGlmIChjdXJyRm9jdXNJbmRleCA9PT0gbmV3Rm9jdXNhYmxlSW5kZXgpIHtcbiAgICAgIHRoaXMudW5mb2N1c1BsYWNlRWxlbWVudCgpO1xuICAgICAgdGhpcy5zZWxlY3RlZENvYWNoSW5kZXggPSAtMTtcbiAgICAgIHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCA9IC0xO1xuICAgICAgdGhpcy5zZWF0UmVzZXJ2YXRpb25XaXRob3V0TmF2aWdhdGlvbkhhc0ZvY3VzID0gZmFsc2U7XG5cbiAgICAgIGlmICh0YWJEaXJlY3Rpb24gPT09ICdORVhUX1RBQicpIHRoaXMubGFzdFRhYkVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIGVsc2UgdGhpcy5maXJzdFRhYkVsZW1lbnQuZm9jdXMoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhhc05hdmlnYXRpb24pIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkUGxhY2VFbGVtZW50ID0gdGhpcy5fZ2V0UGxhY2VIdG1sRWxlbWVudCgpO1xuICAgICAgY29uc3QgcGxhY2VJbkNvYWNoSGFzRm9jdXMgPSBzZWxlY3RlZFBsYWNlRWxlbWVudFxuICAgICAgICA/IHNlbGVjdGVkUGxhY2VFbGVtZW50LmdldEF0dHJpYnV0ZSgna2V5Zm9jdXMnKSA9PT0gJ2ZvY3VzJ1xuICAgICAgICA6IGZhbHNlO1xuXG4gICAgICAvLyBJZiB3ZSB0YWIgYmFjayAoUFJFVl9UQUIpIGFuZCB0aGUgZm9jdXMgaXMgY3VycmVudGx5IG9uIHBsYWNlLFxuICAgICAgLy8gd2UgcmVtb3ZlIHRoZSBzZWxlY3RlZCBzdGF0ZSBmcm9tIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgbmF2aWdhdGlvbiBjb2FjaCBhbmQgb25seSBzZXQgdGhlIGZvY3VzIHN0YXR1cyB0byBpdFxuICAgICAgaWYgKHRhYkRpcmVjdGlvbiA9PT0gJ1BSRVZfVEFCJyAmJiB0aGlzLnNlbGVjdGVkQ29hY2hJbmRleCA9PT0gY3VyckZvY3VzSW5kZXgpIHtcbiAgICAgICAgaWYgKHBsYWNlSW5Db2FjaEhhc0ZvY3VzKSB7XG4gICAgICAgICAgdGhpcy5mb2N1c2VkQ29hY2hJbmRleCA9IGN1cnJGb2N1c0luZGV4O1xuICAgICAgICAgIHRoaXMudW5mb2N1c1BsYWNlRWxlbWVudCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZm9jdXNlZENvYWNoSW5kZXggPSBuZXdGb2N1c2FibGVJbmRleDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gT25seSBzZXRzIHRoZSBmb2N1cyBvbiB0aGUgbmV3IG5hdmlnYXRpb24gY29hY2hcbiAgICAgIGVsc2UgaWYgKG5ld0ZvY3VzYWJsZUluZGV4ICE9PSB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXgpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkQ29hY2hJbmRleCA9IG5ld0ZvY3VzYWJsZUluZGV4O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkQ29hY2hJbmRleCA9IC0xO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ29hY2hJbmRleCA9IG5ld0ZvY3VzYWJsZUluZGV4O1xuICAgICAgICAvL0lmIGFueSBwbGFjZSB3YXMgZm9jdXNlZCBpbiBjb2FjaCwgc28gd2Ugc2V0IGZvY3VzZWQgYWdhaW5cbiAgICAgICAgaWYgKHBsYWNlSW5Db2FjaEhhc0ZvY3VzKSB7XG4gICAgICAgICAgdGhpcy5mb2N1c1BsYWNlRWxlbWVudCh0aGlzLmN1cnJTZWxlY3RlZFBsYWNlKTtcbiAgICAgICAgfVxuICAgICAgICAvL0lmIG5vIHBsYWNlIHdhcyBzZWxlY3RlZCwgdGhlbiB3ZSBzZWxlY3QgdGhlIGNvYWNoIGdyaWRcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc0NvY2hHcmlkRm9jdXNhYmxlID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLl9zZXRGb2N1c1RvU2VsZWN0ZWRDb2FjaEdyaWQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvL0lmIG5vIG5hdmlnYXRpb24gZXhpc3QsIHdlIHNjcm9sbCBkaXJlY3RseSB0byB0aGUgbmV4dCB0YWJhYmxlIGNvYWNoXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnNjcm9sbFRvU2VsZWN0ZWROYXZDb2FjaChuZXdGb2N1c2FibGVJbmRleCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbmF2aWdhdGVUb1BsYWNlQnlLZXlib2FyZChwcmVzc2VkS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZlbnRDb2FjaFNjcm9sbEJ5UGxhY2VDbGljayA9IGZhbHNlO1xuICAgIHRoaXMuaXNLZXlib2FyZE5hdmlnYXRpb24gPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMuZm9jdXNlZENvYWNoSW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLmZvY3VzZWRDb2FjaEluZGV4ID0gLTE7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnByZXZlbnRQbGFjZUNsaWNrKSB7XG4gICAgICBjb25zdCBmaW5kQ2xvc2VzdFBsYWNlID0gdGhpcy5fZ2V0Q2xvc2VzdFBsYWNlQnlLZXlEaXJlY3Rpb24ocHJlc3NlZEtleSk7XG4gICAgICBpZiAoZmluZENsb3Nlc3RQbGFjZSkge1xuICAgICAgICB0aGlzLmZvY3VzUGxhY2VFbGVtZW50KGZpbmRDbG9zZXN0UGxhY2UpO1xuICAgICAgfVxuICAgICAgLy9ObyBjbG9zdGVzdCBwbGFjZSBmb3VuZCBieSBrZXkgbmF2aWdhdGlvblxuICAgICAgZWxzZSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBwcmVzc2VkS2V5ID09PSB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cy5BcnJvd1JpZ2h0IHx8XG4gICAgICAgICAgcHJlc3NlZEtleSA9PT0gdGhpcy5rZXlib2FyZE5hdmlnYXRpb25FdmVudHMuQXJyb3dMZWZ0IHx8XG4gICAgICAgICAgKHRoaXMuYWxpZ25WZXJ0aWNhbCAmJlxuICAgICAgICAgICAgKHByZXNzZWRLZXkgPT09IHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLkFycm93VXAgfHxcbiAgICAgICAgICAgICAgcHJlc3NlZEtleSA9PT0gdGhpcy5rZXlib2FyZE5hdmlnYXRpb25FdmVudHMuQXJyb3dEb3duKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy9DaGVjayB0aGUgY3VycmVudCBwcmVzc2VkIGtleSB0byBnZXQgdGhlIG5leHQgYXZhaWxhYmxlIGNvYWNoIGluZGV4XG4gICAgICAgICAgY29uc3QgbmV3U2VsZWN0ZWRDb2FjaEluZGV4ID1cbiAgICAgICAgICAgIHByZXNzZWRLZXkgPT09IHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzLkFycm93UmlnaHRcbiAgICAgICAgICAgICAgPyB0aGlzLmdldE5leHRBdmFpbGFibGVDb2FjaEluZGV4KClcbiAgICAgICAgICAgICAgOiB0aGlzLmdldFByZXZBdmFpbGFibGVDb2FjaEluZGV4KCk7XG5cbiAgICAgICAgICB0aGlzLnNjcm9sbFRvU2VsZWN0ZWROYXZDb2FjaChuZXdTZWxlY3RlZENvYWNoSW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldE5leHRBdmFpbGFibGVDb2FjaEluZGV4KGN1cnJlbnRJbmRleD86IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IGN1cnJlbnRJbmRleCA/PyB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXg7XG4gICAgcmV0dXJuIHN0YXJ0SW5kZXggPCB0aGlzLnNlYXRSZXNlcnZhdGlvbi5jb2FjaEl0ZW1zLmxlbmd0aCAtIDEgPyBzdGFydEluZGV4ICsgMSA6IHN0YXJ0SW5kZXg7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0UHJldkF2YWlsYWJsZUNvYWNoSW5kZXgoY3VycmVudEluZGV4PzogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBzdGFydEluZGV4ID0gY3VycmVudEluZGV4ID8/IHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleDtcbiAgICByZXR1cm4gc3RhcnRJbmRleCA+IDAgPyBzdGFydEluZGV4IC0gMSA6IHN0YXJ0SW5kZXg7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlU2VsZWN0ZWRTZWF0UmVzZXJ2YXRpb25QbGFjZXMocGxhY2VTZWxlY3Rpb246IFBsYWNlU2VsZWN0aW9uKTogdm9pZCB7XG4gICAgLy9BZGQgc2VsZWN0ZWQgcGxhY2UgdG8gc2VsZWN0ZWRTZWF0UmVzZXJ2YXRpb25QbGFjZXNcbiAgICBpZiAocGxhY2VTZWxlY3Rpb24uc3RhdGUgPT09ICdTRUxFQ1RFRCcpIHtcbiAgICAgIGNvbnN0IHNlYXRSZXNlcnZhdGlvblNlbGVjdGlvbiA9IHRoaXMuX2dldFNlYXRSZXNlcnZhdGlvblBsYWNlU2VsZWN0aW9uKHBsYWNlU2VsZWN0aW9uKTtcbiAgICAgIGlmIChzZWF0UmVzZXJ2YXRpb25TZWxlY3Rpb24pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNlYXRSZXNlcnZhdGlvblBsYWNlcy5wdXNoKHNlYXRSZXNlcnZhdGlvblNlbGVjdGlvbik7XG4gICAgICB9XG4gICAgfVxuICAgIC8vUmVtb3ZlIHNlbGVjdGVkIHBsYWNlIGZyb20gc2VsZWN0ZWRTZWF0UmVzZXJ2YXRpb25QbGFjZXNcbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRTZWF0UmVzZXJ2YXRpb25QbGFjZXMgPSB0aGlzLnNlbGVjdGVkU2VhdFJlc2VydmF0aW9uUGxhY2VzLmZpbHRlcihcbiAgICAgICAgKF9zZWxlY3RlZFBsYWNlKSA9PiBfc2VsZWN0ZWRQbGFjZS5pZCAhPT0gcGxhY2VTZWxlY3Rpb24uaWQsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vQ2hlY2tzIHdoZXRoZXIgbWF4UmVzZXJ2YXRpb24gaXMgYWN0aXZhdGVkIGFuZCB0aGUgbWF4aW11bSBudW1iZXIgb2Ygc2VsZWN0ZWQgcGxhY2VzIGlzIHJlYWNoZWRcbiAgICBpZiAodGhpcy5tYXhSZXNlcnZhdGlvbnMgJiYgdGhpcy5zZWxlY3RlZFNlYXRSZXNlcnZhdGlvblBsYWNlcy5sZW5ndGggPiB0aGlzLm1heFJlc2VydmF0aW9ucykge1xuICAgICAgdGhpcy5fcmVzZXRBbGxQbGFjZVNlbGVjdGlvbnMocGxhY2VTZWxlY3Rpb24pO1xuICAgIH1cblxuICAgIC8vRW1pdHMgdGhlIHNlYXQgcmVzZXJ2YXRpb24gcGxhY2Ugc2VsZWN0aW9uXG4gICAgdGhpcy5zZWxlY3RlZFBsYWNlcy5lbWl0KHRoaXMuc2VsZWN0ZWRTZWF0UmVzZXJ2YXRpb25QbGFjZXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUN1cnJlbnRTZWxlY3RlZFBsYWNlSW5Db2FjaChwbGFjZVNlbGVjdGlvbjogUGxhY2VTZWxlY3Rpb24pOiB2b2lkIHtcbiAgICBjb25zdCBjb2FjaEluZGV4ID0gcGxhY2VTZWxlY3Rpb24uY29hY2hJbmRleDtcbiAgICBjb25zdCBwbGFjZSA9IHRoaXMuc2VhdFJlc2VydmF0aW9uLmNvYWNoSXRlbXNbY29hY2hJbmRleF0ucGxhY2VzPy5maW5kKFxuICAgICAgKHBsYWNlKSA9PiBwbGFjZS5udW1iZXIgPT0gcGxhY2VTZWxlY3Rpb24ubnVtYmVyLFxuICAgICk7XG5cbiAgICBpZiAoIXBsYWNlKSByZXR1cm47XG4gICAgdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4ID0gY29hY2hJbmRleDtcbiAgICB0aGlzLmN1cnJTZWxlY3RlZFBsYWNlID0gcGxhY2U7XG4gICAgaWYgKHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCAhPT0gdGhpcy5zZWxlY3RlZENvYWNoSW5kZXgpIHtcbiAgICAgIHRoaXMudXBkYXRlQ3VycmVudFNlbGVjdGVkQ29hY2goKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zZXRDdXJyU2VsZWN0ZWRQbGFjZUVsZW1lbnRJZChwbGFjZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlQ3VycmVudFNlbGVjdGVkQ29hY2goKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZENvYWNoSW5kZXggPSB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXg7XG4gICAgdGhpcy5mb2N1c2VkQ29hY2hJbmRleCA9IC0xO1xuICAgIGNvbnN0IGNvYWNoU2VsZWN0aW9uID0gdGhpcy5fZ2V0U2VhdFJlc2VydmF0aW9uQ29hY2hTZWxlY3Rpb24odGhpcy5zZWxlY3RlZENvYWNoSW5kZXgpO1xuICAgIGlmIChjb2FjaFNlbGVjdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3RlZENvYWNoLmVtaXQoY29hY2hTZWxlY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXphdGlvbiBvZiBTZWF0UmVzZXJ2YXRpb25QbGFjZVNlbGVjdGlvbiBBcnJheSBiYXNlZCBvbiB0aGUgdHJhbnNmZXJyZWQgcGxhY2VzXG4gICAqIHRoYXQgaGF2ZSB0aGUgc3RhdGUgU0VMRUNURUQgd2l0aGluIHRoZSBzZWF0UmVzZXJ2YXRpb24gb2JqZWN0XG4gICAqL1xuICBwcml2YXRlIF9pbml0U2VhdFJlc2VydmF0aW9uUGxhY2VTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWF0UmVzZXJ2YXRpb24uY29hY2hJdGVtcy5tYXAoKGNvYWNoOiBDb2FjaEl0ZW0sIGNvYWNoSW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgY29hY2gucGxhY2VzXG4gICAgICAgID8uZmlsdGVyKChwbGFjZSkgPT4gcGxhY2Uuc3RhdGUgPT09ICdTRUxFQ1RFRCcpXG4gICAgICAgID8uZm9yRWFjaCgocGxhY2UpID0+IHtcbiAgICAgICAgICBjb25zdCBwcmVzZWxlY3RlZFBsYWNlU2VsZWN0aW9uOiBQbGFjZVNlbGVjdGlvbiA9IG1hcFBsYWNlSW5mb3NUb1BsYWNlU2VsZWN0aW9uKFxuICAgICAgICAgICAgcGxhY2UsXG4gICAgICAgICAgICBjb2FjaEluZGV4LFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3Qgc2VhdFJlc2VydmF0aW9uUGxhY2VTZWxlY3Rpb246IFNlYXRSZXNlcnZhdGlvblBsYWNlU2VsZWN0aW9uIHwgbnVsbCA9XG4gICAgICAgICAgICB0aGlzLl9nZXRTZWF0UmVzZXJ2YXRpb25QbGFjZVNlbGVjdGlvbihwcmVzZWxlY3RlZFBsYWNlU2VsZWN0aW9uKTtcbiAgICAgICAgICBpZiAoc2VhdFJlc2VydmF0aW9uUGxhY2VTZWxlY3Rpb24pXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkU2VhdFJlc2VydmF0aW9uUGxhY2VzLnB1c2goc2VhdFJlc2VydmF0aW9uUGxhY2VTZWxlY3Rpb24pO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGwgc2VsZWN0ZWQgcGxhY2VzIHdpbGwgYmUgcmVzZXQgb3IgdGhlIGN1cnJlbnRTZWxlY3RlZFBsYWNlIHdhcyBnaXZlbiwgdGhlbiB3ZSByZXNldCBhbGwgZXhjZXB0IGN1cnJlbnRTZWxlY3RlZFBsYWNlXG4gICAqIEBwYXJhbSBjdXJyU2VsZWN0ZWRQbGFjZVxuICAgKi9cbiAgcHJpdmF0ZSBfcmVzZXRBbGxQbGFjZVNlbGVjdGlvbnMoY3VyclNlbGVjdGVkUGxhY2U/OiBQbGFjZVNlbGVjdGlvbik6IHZvaWQge1xuICAgIC8vRmluZCBhbGwgcGxhY2VzIHRvIGJlIG5lZWRlZCB1bnNlbGVjdFxuICAgIGZvciAoY29uc3QgcGxhY2VTZWxlY3Rpb24gb2YgdGhpcy5zZWxlY3RlZFNlYXRSZXNlcnZhdGlvblBsYWNlcykge1xuICAgICAgaWYgKCFjdXJyU2VsZWN0ZWRQbGFjZSB8fCBjdXJyU2VsZWN0ZWRQbGFjZS5pZCAhPT0gcGxhY2VTZWxlY3Rpb24uaWQpIHtcbiAgICAgICAgY29uc3QgcGxhY2VFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZChwbGFjZVNlbGVjdGlvbi5pZCkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIHBsYWNlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3N0YXRlJywgJ0ZSRUUnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy9SZW1vdmVzIGFsbCBzZWxlY3RlZCBwbGFjZXMgZXhjZXB0IHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcGxhY2VcbiAgICBpZiAoY3VyclNlbGVjdGVkUGxhY2UpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRTZWF0UmVzZXJ2YXRpb25QbGFjZXMgPSB0aGlzLnNlbGVjdGVkU2VhdFJlc2VydmF0aW9uUGxhY2VzLmZpbHRlcihcbiAgICAgICAgKF9zZWxlY3RlZFBsYWNlKSA9PiBfc2VsZWN0ZWRQbGFjZS5pZCA9PT0gY3VyclNlbGVjdGVkUGxhY2UuaWQsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkU2VhdFJlc2VydmF0aW9uUGxhY2VzID0gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U2VhdFJlc2VydmF0aW9uUGxhY2VTZWxlY3Rpb24oXG4gICAgY3VyclNlbGVjdGVkUGxhY2U6IFBsYWNlU2VsZWN0aW9uLFxuICApOiBTZWF0UmVzZXJ2YXRpb25QbGFjZVNlbGVjdGlvbiB8IG51bGwge1xuICAgIGNvbnN0IGNvYWNoID0gdGhpcy5zZWF0UmVzZXJ2YXRpb24uY29hY2hJdGVtc1tjdXJyU2VsZWN0ZWRQbGFjZS5jb2FjaEluZGV4XTtcbiAgICBjb25zdCBwbGFjZSA9IGNvYWNoLnBsYWNlcz8uZmluZCgocGxhY2UpID0+IHBsYWNlLm51bWJlciA9PT0gY3VyclNlbGVjdGVkUGxhY2UubnVtYmVyKTtcblxuICAgIHJldHVybiBwbGFjZVxuICAgICAgPyBtYXBQbGFjZUFuZENvYWNoVG9TZWF0UmVzZXJ2YXRpb25QbGFjZVNlbGVjdGlvbihwbGFjZSwgY29hY2gsIGN1cnJTZWxlY3RlZFBsYWNlLmNvYWNoSW5kZXgpXG4gICAgICA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9nZXRTZWF0UmVzZXJ2YXRpb25Db2FjaFNlbGVjdGlvbihcbiAgICBjb2FjaEluZGV4OiBudW1iZXIsXG4gICk6IFNlYXRSZXNlcnZhdGlvbkNvYWNoU2VsZWN0aW9uIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLnNlYXRSZXNlcnZhdGlvbi5jb2FjaEl0ZW1zW2NvYWNoSW5kZXhdKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGNvYWNoID0gdGhpcy5zZWF0UmVzZXJ2YXRpb24uY29hY2hJdGVtc1tjb2FjaEluZGV4XTtcbiAgICByZXR1cm4gbWFwQ29hY2hJbmZvc1RvQ29hY2hTZWxlY3Rpb24oY29hY2hJbmRleCwgY29hY2gpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0Q3VyclNlbGVjdGVkUGxhY2VFbGVtZW50SWQocGxhY2U6IFBsYWNlIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChwbGFjZSkge1xuICAgICAgdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZUVsZW1lbnRJZCA9XG4gICAgICAgICdzZWF0LXJlc2VydmF0aW9uX19wbGFjZS1idXR0b24tJyArIHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCArICctJyArIHBsYWNlLm51bWJlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jdXJyU2VsZWN0ZWRQbGFjZUVsZW1lbnRJZCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgcGxhY2UgSFRNTCBlbGVtZW50IGJ5IGdpdmVuIHBsYWNlTnVtYmVyIGFuZCBjb2FjaEluZGV4LlxuICAgKiBJZiBib3RoIGRvZXNudCBleGlzdCwgd2UgdHJ5IHRvIHJldHVybiB0aGUgcGxhY2UgSFRNTCBlbGVtZW50IGJ5IHRoZSBfY3VycmVudFNlbGVjdGVkUGxhY2VFbGVtZW50SWRcbiAgICogQHBhcmFtIHBsYWNlTnVtYmVyIG9wdGlvbmFsIGFzIHN0cmluZ1xuICAgKiBAcGFyYW0gY29hY2hJbmRleCBvcHRpb25hbCBhcyBzdHJpbmdcbiAgICogQHJldHVybnMgSFRNTEVsZW1lbnQgb3IgbnVsbFxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0UGxhY2VIdG1sRWxlbWVudChwbGFjZU51bWJlcj86IHN0cmluZywgY29hY2hJbmRleD86IG51bWJlcik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgY29uc3QgY3VyckNvYWNoSW5kZXggPSBjb2FjaEluZGV4ID8gY29hY2hJbmRleCA6IHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleDtcbiAgICBjb25zdCBjb2FjaFBsYWNlTnVtYmVySWQgPSBwbGFjZU51bWJlclxuICAgICAgPyAnc2VhdC1yZXNlcnZhdGlvbl9fcGxhY2UtYnV0dG9uLScgKyBjdXJyQ29hY2hJbmRleCArICctJyArIHBsYWNlTnVtYmVyXG4gICAgICA6IHRoaXMuY3VyclNlbGVjdGVkUGxhY2VFbGVtZW50SWQ7XG4gICAgcmV0dXJuIGNvYWNoUGxhY2VOdW1iZXJJZCA/IHRoaXMuc2hhZG93Um9vdD8uZ2V0RWxlbWVudEJ5SWQoY29hY2hQbGFjZU51bWJlcklkKSB8fCBudWxsIDogbnVsbDtcbiAgfVxuXG4gIC8vU2V0IHRoZSB2ZXJ0aWNhbCBvZmZzZXRcbiAgcHJpdmF0ZSBfc2V0VmVydGljYWxBbGlnbm1lbnRPZmZzZXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBzZWF0UmVzZXJ2YXRpb25XcmFwcGVyRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJy5zYmItc3JfX3dyYXBwZXInLFxuICAgICAgKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmIChzZWF0UmVzZXJ2YXRpb25XcmFwcGVyRWxlbWVudCkge1xuICAgICAgICBjb25zdCBzZWF0UmVzZXJ2YXRpb25WZXJ0aWNhbE9mZnNldCA9XG4gICAgICAgICAgc2VhdFJlc2VydmF0aW9uV3JhcHBlckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIHRoaXMuc3R5bGU/LnNldFByb3BlcnR5KFxuICAgICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXZlcnRpY2FsLW9mZnNldCcsXG4gICAgICAgICAgYCR7c2VhdFJlc2VydmF0aW9uVmVydGljYWxPZmZzZXR9cHhgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXSwibmFtZXMiOlsiU2Nyb2xsRGlyZWN0aW9uIiwiU2VhdFJlc2VydmF0aW9uQmFzZUVsZW1lbnQiLCJfYSIsInBsYWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQXlCQSxJQUFLO0FBQUEsQ0FBTCxTQUFLQSxrQkFBZTtBQUNsQkEsbUJBQUEsT0FBQSxJQUFBO0FBQ0FBLG1CQUFBLE1BQUEsSUFBQTtBQUNGLEdBSEssb0JBQUEsa0JBR0osQ0FBQSxFQUFBO0lBUVksOEJBQTBCLE1BQUE7O29CQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQW5DLFNBQUEsbUJBQW1DLFlBQVU7QUFBQTs7QUFReEQ7QUFLQTtBQUtBO0FBS0E7QUFLQTtBQUtBO0FBS0E7QUFFUztBQUNBO0FBakNPLHlCQUFBLG1DQUFBLGtCQUFBLE1BQUEsK0JBQW1DLElBQUs7QUFLeEMseUJBQUEsa0NBQUEsa0JBQUEsTUFBQSxrQ0FBQSxHQUFBLGtCQUFBLE1BQUEsNkJBQXlCLElBQUk7QUFLN0IseUJBQUEsa0NBQUEsa0JBQUEsTUFBQSxnQ0FBQSxHQUFBLGtCQUFBLE1BQUEsNkJBQXlCLEtBQUs7QUFLOUIseUJBQUEsaUNBQUEsa0JBQUEsTUFBQSxnQ0FBQSxHQUFBLGtCQUFBLE1BQUEsNEJBQXVCLEVBQUU7QUFLekIseUJBQUEsMkJBQUEsa0JBQUEsTUFBQSwrQkFBQSxHQUFBLGtCQUFBLE1BQUEsc0JBQWlCLElBQUs7QUFLdEIseUJBQUEsb0NBQUEsa0JBQUEsTUFBQSx5QkFBQSxHQUFBLGtCQUFBLE1BQUEsK0JBQTBCLElBQUs7QUFLL0IseUJBQUEsc0NBQUEsa0JBQUEsTUFBQSxrQ0FBQSxHQUFBLGtCQUFBLE1BQUEsaUNBQTZCLEtBQUs7QUFFTyx5QkFBQSx1Q0FBQSxrQkFBQSxNQUFBLG9DQUFBLEdBQUEsa0JBQUEsTUFBQSxrQ0FBQSxFQUFFO0FBQ0gs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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seat-reservation-scoped.component.d.ts","sourceRoot":"","sources":["../../../../../../src/elements-experimental/seat-reservation/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACpF,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAKvC;;GAEG;AACH,qBAEM,+BAAgC,SAAQ,UAAU;IACtD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,iDAAiD;IACjD,SAEgB,eAAe,EAAE,MAAM,CAAM;IAE7C,kDAAkD;IAClD,SAEgB,gBAAgB,EAAE,MAAM,CAAM;IAE9C,2DAA2D;IAC3D,SAEgB,KAAK,EAAE,MAAM,CAAM;IAEnC,4DAA4D;IAC5D,SAEgB,MAAM,EAAE,MAAM,CAAM;IAEpC,oCAAoC;IACpC,SAEgB,MAAM,EAAE,MAAM,CAAM;IAEpC,8DAA8D;IAC9D,SAEgB,MAAM,EAAE,MAAM,CAAM;IAEpC,4CAA4C;IAC5C,SAEgB,aAAa,EAAE,MAAM,CAAM;cAExB,UAAU,CAAC,kBAAkB,EAAE,cAAc,GAAG,IAAI;cA8BpD,MAAM,IAAI,cAAc;CAW5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,6BAA6B,EAAE,+BAA+B,CAAC;KAChE;CACF"}
|
|
@@ -193,4 +193,4 @@ let SbbSeatReservationScopedElement = (() => {
|
|
|
193
193
|
export {
|
|
194
194
|
SbbSeatReservationScopedElement
|
|
195
195
|
};
|
|
196
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
196
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1zY29wZWQuY29tcG9uZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3NlYXQtcmVzZXJ2YXRpb24vc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC9zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1zY29wZWQuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBXcmFwcGVyIGNsYXNzIGZvciBzY29wZWQgZWxlbWVudHMgd2l0aCBzaW1pbGFyIHByb3BlcnRpZXMgdG8gc2V0LlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VhdC1yZXNlcnZhdGlvbi1zY29wZWQnKVxuY2xhc3MgU2JiU2VhdFJlc2VydmF0aW9uU2NvcGVkRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKiogSW5zZXQgYmxvY2sgc3RhcnQgaW4gcGl4ZWxzICh3aXRob3V0IHVuaXQpICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdpbnNldC1ibG9jay1zdGFydCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGluc2V0QmxvY2tTdGFydDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIEluc2V0IGlubGluZSBzdGFydCBpbiBwaXhlbHMgKHdpdGhvdXQgdW5pdCkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2luc2V0LWlubGluZS1zdGFydCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGluc2V0SW5saW5lU3RhcnQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBXaWR0aCBvZiB0aGUgc2NvcGVkIGVsZW1lbnQgaW4gcGl4ZWxzICh3aXRob3V0IHVuaXQpICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd3aWR0aCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIHdpZHRoOiBzdHJpbmcgPSAnJztcblxuICAvKiogSGVpZ2h0IG9mIHRoZSBzY29wZWQgZWxlbWVudCBpbiBwaXhlbHMgKHdpdGhvdXQgdW5pdCkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hlaWdodCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGhlaWdodDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFotaW5kZXggb2YgdGhlIHNjb3BlZCBlbGVtZW50ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd6LWluZGV4JyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgekluZGV4OiBzdHJpbmcgPSAnJztcblxuICAvKiogQ2VsbCBpZCBvZiB0aGUgc2NvcGVkIGVsZW1lbnQsIGlmIGl0IGlzIHVzZWQgaW4gYSB0YWJsZSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnY2VsbC1pZCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGNlbGxJZDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFNjb3BlZCBjbGFzc2VzIGZvciB0aGUgc2NvcGVkIGVsZW1lbnQgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3Njb3BlZC1jbGFzc2VzJyB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2NvcGVkQ2xhc3Nlczogc3RyaW5nID0gJyc7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoX2NoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcyk6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoX2NoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChfY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd3aWR0aCcpKSB7XG4gICAgICB0aGlzLnN0eWxlPy5zZXRQcm9wZXJ0eSgnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1zY29wZWQtd2lkdGgnLCBgJHt0aGlzLndpZHRofWApO1xuICAgIH1cblxuICAgIGlmIChfY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdoZWlnaHQnKSkge1xuICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkLWhlaWdodCcsIGAke3RoaXMuaGVpZ2h0fWApO1xuICAgIH1cblxuICAgIGlmIChfY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdpbnNldEJsb2NrU3RhcnQnKSkge1xuICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoXG4gICAgICAgICctLXNiYi1zZWF0LXJlc2VydmF0aW9uLXNjb3BlZC1pbnNldC1ibG9jay1zdGFydCcsXG4gICAgICAgIGAke3RoaXMuaW5zZXRCbG9ja1N0YXJ0fWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChfY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdpbnNldElubGluZVN0YXJ0JykpIHtcbiAgICAgIHRoaXMuc3R5bGU/LnNldFByb3BlcnR5KFxuICAgICAgICAnLS1zYmItc2VhdC1yZXNlcnZhdGlvbi1zY29wZWQtaW5zZXQtaW5saW5lLXN0YXJ0JyxcbiAgICAgICAgYCR7dGhpcy5pbnNldElubGluZVN0YXJ0fWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChfY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd6SW5kZXgnKSkge1xuICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkLXotaW5kZXgnLCBgJHt0aGlzLnpJbmRleH1gKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBpZiAoIXRoaXMuY2VsbElkKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiJHt0aGlzLnNjb3BlZENsYXNzZXN9XCI+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvZGl2PmA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBodG1sYDx0ZCBpZD1cIiR7dGhpcy5jZWxsSWR9XCIgY2xhc3M9XCIke3RoaXMuc2NvcGVkQ2xhc3Nlc31cIj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC90ZD5gO1xuICAgIH1cbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkJzogU2JiU2VhdFJlc2VydmF0aW9uU2NvcGVkRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBWU0sbUNBQStCLE1BQUE7OzBCQURwQyxjQUFjLDZCQUE2QixDQUFDOzs7O29CQUNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQVIsRUFBQSxtQkFBUSxZQUFVO0FBQUE7O0FBTXRELDREQUFBLGtCQUFBLE1B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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seat-reservation-scoped.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/seat-reservation/seat-reservation-scoped.ts"],"names":[],"mappings":"AAAA,cAAc,gEAAgE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { SbbSeatReservationScopedElement } from "./seat-reservation-scoped/seat-reservation-scoped.component.js";
|
|
2
|
+
export {
|
|
3
|
+
SbbSeatReservationScopedElement
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1zY29wZWQuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seat-reservation.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/seat-reservation/seat-reservation.component.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1E,OAAO,KAAK,EAMV,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGhF,OAAO,+CAA+C,CAAC;AACvD,OAAO,6BAA6B,CAAC;AACrC,OAAO,gCAAgC,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,qEAAqE,CAAC;AAC7E,OAAO,
|
|
1
|
+
{"version":3,"file":"seat-reservation.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/seat-reservation/seat-reservation.component.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1E,OAAO,KAAK,EAMV,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGhF,OAAO,+CAA+C,CAAC;AACvD,OAAO,6BAA6B,CAAC;AACrC,OAAO,gCAAgC,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,qEAAqE,CAAC;AAC7E,OAAO,8BAA8B,CAAC;AAEtC;;;;;GAKG;AACH,qBAEM,yBAA0B,SAAQ,0BAA0B;IAChE,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,wEAAwE;IACxE,SACyB,eAAe,EAAE,eAAe,CAAS;IAElE,uEAAuE;IACvE,SAEyB,aAAa,EAAE,OAAO,CAAQ;IAEvD,gGAAgG;IAChG,SAEyB,aAAa,EAAE,OAAO,CAAS;IAExD,iDAAiD;IACjD,SAEyB,eAAe,EAAE,MAAM,CAAS;IAEzD,2CAA2C;IAC3C,SAEyB,iBAAiB,EAAE,OAAO,CAAS;IAE5D,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,oBAAoB,CAAC,CAAiB;IAE9C,OAAO,CAAC,gBAAgB,CAQtB;IAEF,OAAO,CAAC,2BAA2B,CAAkB;cAElC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAgBzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAK3D,MAAM,IAAI,cAAc,GAAG,IAAI;IAKlD,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,uCAAuC;IAwC/C,OAAO,CAAC,iBAAiB;IAqCzB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,wBAAwB;IA+BhC,OAAO,CAAC,qBAAqB;IA0B7B,OAAO,CAAC,wBAAwB;IA2ChC,OAAO,CAAC,6BAA6B;IA0BrC,OAAO,CAAC,yBAAyB;IA2EjC,OAAO,CAAC,4BAA4B;IA0CpC,OAAO,CAAC,2BAA2B;IAyCnC;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,8BAA8B;CAyBvC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,sBAAsB,EAAE,yBAAyB,CAAC;KACnD;CACF"}
|