@twexchangesolutions/hubot-jira-deployment
Advanced tools
Comparing version 0.14.0 to 0.15.0
@@ -94,3 +94,5 @@ 'use strict'; | ||
field: 'Development Team(s)' | ||
}, { | ||
field: 'Issue State' | ||
}]; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXBsb3ltZW50LXRhc2stdHJhbnNpdGlvbi5qcyJdLCJuYW1lcyI6WyJvcHRpb25zIiwicmVxdWlyZWRTdGF0dXNIaXN0b3J5Iiwib3BlcmF0aW9uVHlwZSIsInJlcXVpcmVkU3RhdGVzIiwiYXJlV2VJblRoZVJpZ2h0U3RhdGUiLCJkZXBsb3ltZW50VGFzayIsInN0YXR1cyIsImxhc3QiLCJub1RyYW5zaXRpb25TdGF0ZXMiLCJpbmRleE9mIiwiRXJyb3IiLCJrZXkiLCJoYXNBbnl0aGluZ0hhcHBlbmVkU2luY2VBcHByb3ZhbCIsImhhc0lzc3VlQ2hhbmdlZCIsImhpc3RvcnlJZ25vcmVMaXN0IiwidHJhbnNpdGlvbiIsInJvYm90IiwidHJhbnNpdGlvblRvQXR0ZW1wdCIsInJlZ2V4R3JvdXBzIiwiZGVwbG95bWVudFRhc2tOdW1iZXIiLCJyZXMiLCJzZW5kIiwicGVyZm9ybURlcGxveW1lbnRUYXNrVHJhbnNpdGlvbiIsImZpZWxkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O3dFQVdPLGlCQUErQ0EsT0FBL0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0NDLGlDQURELEdBQ3lCLHNDQUFjRCxRQUFRRSxhQUF0QixFQUFxQ0MsY0FEOUQ7QUFFQ0MsZ0NBRkQsR0FFeUJKLFFBQVFLLGNBQVIsQ0FBdUJDLE1BQXZCLEtBQWtDLGlCQUFFQyxJQUFGLENBQU9OLHFCQUFQLENBRjNEOztBQUFBLGtCQUlELHNDQUFjRCxRQUFRRSxhQUF0QixFQUFxQ00sa0JBQXJDLENBQ0NDLE9BREQsQ0FDU1QsUUFBUUssY0FBUixDQUF1QkMsTUFEaEMsSUFDMEMsQ0FBQyxDQUwxQztBQUFBO0FBQUE7QUFBQTs7QUFBQSxrQkFNRyxJQUFJSSxLQUFKLENBQVUsMkJBQXlCVixRQUFRSyxjQUFSLENBQXVCTSxHQUFoRCwyQkFDRyxpQkFBRUosSUFBRixDQUFPLHNDQUFjUCxRQUFRRSxhQUF0QixFQUFxQ0MsY0FBNUMsQ0FESCxPQUFWLENBTkg7O0FBQUE7QUFVQ1MsNENBVkQsR0FVb0NaLFFBQVFLLGNBQVIsQ0FBdUJRLGVBQXZCLENBQ3ZDVCx1QkFBdUIsc0NBQWNKLFFBQVFFLGFBQXRCLEVBQXFDQyxjQUE1RCxHQUNJLENBQUNILFFBQVFLLGNBQVIsQ0FBdUJDLE1BQXhCLENBRm1DLEVBR3ZDUSxpQkFIdUMsQ0FWcEM7O0FBQUEsaUJBZ0JERixnQ0FoQkM7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSxtQkFpQkdaLFFBQVFLLGNBQVIsQ0FBdUJVLFVBQXZCLENBQWtDLFFBQWxDLEVBQTRDZixRQUFRZ0IsS0FBcEQsQ0FqQkg7O0FBQUE7QUFBQSxrQkFrQkcsSUFBSU4sS0FBSixDQUFVLDRFQUNkLDRGQURjLEdBRWQsT0FGSSxDQWxCSDs7QUFBQTtBQUFBLGdCQXVCQU4sb0JBdkJBO0FBQUE7QUFBQTtBQUFBOztBQUFBLGtCQXdCRyxJQUFJTSxLQUFKLENBQVUscUNBQW1DVixRQUFRSyxjQUFSLENBQXVCQyxNQUExRCxtQ0FDQSxzQ0FBY04sUUFBUUUsYUFBdEIsRUFBcUNlLG1CQURyQyx3QkFFWGpCLFFBQVFrQixXQUFSLENBQW9CQyxvQkFGVCw4QkFHWCxpQkFBRVosSUFBRixDQUFPLHNDQUFjUCxRQUFRRSxhQUF0QixFQUFxQ0MsY0FBNUMsQ0FIVyxhQUFWLENBeEJIOztBQUFBOztBQStCTEgsb0JBQVFvQixHQUFSLENBQVlDLElBQVosQ0FBaUIsd0dBQ00sc0NBQWNyQixRQUFRRSxhQUF0QixFQUFxQ2UsbUJBRDNDLFdBRVpqQixRQUFRa0IsV0FBUixDQUFvQkMsb0JBRlIsT0FBakI7O0FBL0JLO0FBQUEsbUJBb0NDbkIsUUFBUUssY0FBUixDQUF1QlUsVUFBdkIsQ0FDSixzQ0FBY2YsUUFBUUUsYUFBdEIsRUFBcUNlLG1CQURqQyxFQUVKakIsUUFBUWdCLEtBRkosQ0FwQ0Q7O0FBQUE7QUFBQSw2Q0F3Q0UsRUF4Q0Y7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRzs7a0JBQWVNLCtCOzs7OztBQVh0Qjs7OztBQUNBOzs7Ozs7QUFFTyxJQUFNUixnREFBb0IsQ0FBQztBQUNoQ1MsU0FBTztBQUR5QixDQUFELEVBRTlCO0FBQ0RBLFNBQU87QUFETixDQUY4QixFQUk5QjtBQUNEQSxTQUFPO0FBRE4sQ0FKOEIsQ0FBMUIiLCJmaWxlIjoiZGVwbG95bWVudC10YXNrLXRyYW5zaXRpb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGNvbW1hbmRDb25maWcgZnJvbSAnLi9kZXBsb3ltZW50LXNjcmlwdC1jb21tYW5kLWluZm8nO1xuXG5leHBvcnQgY29uc3QgaGlzdG9yeUlnbm9yZUxpc3QgPSBbe1xuICBmaWVsZDogJ1NjaGVkdWxlZCBEZXBsb3ltZW50IFRpbWUnXG59LCB7XG4gIGZpZWxkOiAnUmVtb3RlSXNzdWVMaW5rJ1xufSwge1xuICBmaWVsZDogJ0RldmVsb3BtZW50IFRlYW0ocyknXG59XTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBlcmZvcm1EZXBsb3ltZW50VGFza1RyYW5zaXRpb24ob3B0aW9ucykge1xuICBjb25zdCByZXF1aXJlZFN0YXR1c0hpc3RvcnkgPSBjb21tYW5kQ29uZmlnW29wdGlvbnMub3BlcmF0aW9uVHlwZV0ucmVxdWlyZWRTdGF0ZXM7XG4gIGNvbnN0IGFyZVdlSW5UaGVSaWdodFN0YXRlID0gKG9wdGlvbnMuZGVwbG95bWVudFRhc2suc3RhdHVzID09PSBfLmxhc3QocmVxdWlyZWRTdGF0dXNIaXN0b3J5KSk7XG5cbiAgaWYgKGNvbW1hbmRDb25maWdbb3B0aW9ucy5vcGVyYXRpb25UeXBlXS5ub1RyYW5zaXRpb25TdGF0ZXNcbiAgICAgIC5pbmRleE9mKG9wdGlvbnMuZGVwbG95bWVudFRhc2suc3RhdHVzKSA+IC0xKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJIHdpbGwgbm90IHRyYW5zaXRpb24gJHtvcHRpb25zLmRlcGxveW1lbnRUYXNrLmtleX0gdW50aWwgaXQgZ2V0cyB0byBgICtcbiAgICAgICAgICAgICAgICAgICAgYCR7Xy5sYXN0KGNvbW1hbmRDb25maWdbb3B0aW9ucy5vcGVyYXRpb25UeXBlXS5yZXF1aXJlZFN0YXRlcyl9LmApO1xuICB9XG5cbiAgY29uc3QgaGFzQW55dGhpbmdIYXBwZW5lZFNpbmNlQXBwcm92YWwgPSBvcHRpb25zLmRlcGxveW1lbnRUYXNrLmhhc0lzc3VlQ2hhbmdlZChcbiAgICBhcmVXZUluVGhlUmlnaHRTdGF0ZSA/IGNvbW1hbmRDb25maWdbb3B0aW9ucy5vcGVyYXRpb25UeXBlXS5yZXF1aXJlZFN0YXRlc1xuICAgICAgOiBbb3B0aW9ucy5kZXBsb3ltZW50VGFzay5zdGF0dXNdLFxuICAgIGhpc3RvcnlJZ25vcmVMaXN0XG4gICk7XG5cbiAgaWYgKGhhc0FueXRoaW5nSGFwcGVuZWRTaW5jZUFwcHJvdmFsKSB7XG4gICAgYXdhaXQgb3B0aW9ucy5kZXBsb3ltZW50VGFzay50cmFuc2l0aW9uKCdSZW9wZW4nLCBvcHRpb25zLnJvYm90KTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NvbWV0aGluZyByZXF1aXJpbmcgcmUtYXBwcm92YWwgaGFzIGhhcHBlbmVkIHRvIHRoaXMgZGVwbG95bWVudCB0YXNrLiAgJyArXG4gICAgICAnUGxlYXNlIGVuc3VyZSBldmVyeXRoaW5nIGlzIGNvcnJlY3QgYmVmb3JlIGFwcHJvdmluZyBpdCBhZ2Fpbi4gIEkgcmVvcGVuZWQgdGhlIGRlcGxveW1lbnQgJyArXG4gICAgICAndGFzay4nKTtcbiAgfVxuXG4gIGlmICghYXJlV2VJblRoZVJpZ2h0U3RhdGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBkZXBsb3ltZW50IHRhc2sgaXMgaW4gdGhlIFxcJyR7b3B0aW9ucy5kZXBsb3ltZW50VGFzay5zdGF0dXN9XFwnIHN0YXRlLiBgICtcbiAgICAgIGAgRm9yIG1lIHRvICR7Y29tbWFuZENvbmZpZ1tvcHRpb25zLm9wZXJhdGlvblR5cGVdLnRyYW5zaXRpb25Ub0F0dGVtcHR9IGl0IHByb3Blcmx5LCBgICtcbiAgICAgIGAke29wdGlvbnMucmVnZXhHcm91cHMuZGVwbG95bWVudFRhc2tOdW1iZXJ9IG5lZWRzIHRvIGJlIGluIHRoZSBgICtcbiAgICAgIGAke18ubGFzdChjb21tYW5kQ29uZmlnW29wdGlvbnMub3BlcmF0aW9uVHlwZV0ucmVxdWlyZWRTdGF0ZXMpfSBzdGF0ZS5gXG4gICAgKTtcbiAgfVxuXG4gIG9wdGlvbnMucmVzLnNlbmQoJ05vdGhpbmcgaGFzIGNoYW5nZWQgc2luY2UgYXBwcm92YWxzLiAgVGhpcyBkZXBsb3ltZW50IHRhc2sgaXMgZ29vZCB0byBnby4gICcgK1xuICAgIGBJIGFtIG5vdyBnb2luZyB0byAke2NvbW1hbmRDb25maWdbb3B0aW9ucy5vcGVyYXRpb25UeXBlXS50cmFuc2l0aW9uVG9BdHRlbXB0fSBgICtcbiAgICBgJHtvcHRpb25zLnJlZ2V4R3JvdXBzLmRlcGxveW1lbnRUYXNrTnVtYmVyfS5gXG4gICk7XG5cbiAgYXdhaXQgb3B0aW9ucy5kZXBsb3ltZW50VGFzay50cmFuc2l0aW9uKFxuICAgIGNvbW1hbmRDb25maWdbb3B0aW9ucy5vcGVyYXRpb25UeXBlXS50cmFuc2l0aW9uVG9BdHRlbXB0LFxuICAgIG9wdGlvbnMucm9ib3RcbiAgKTtcbiAgcmV0dXJuIHt9O1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXBsb3ltZW50LXRhc2stdHJhbnNpdGlvbi5qcyJdLCJuYW1lcyI6WyJvcHRpb25zIiwicmVxdWlyZWRTdGF0dXNIaXN0b3J5Iiwib3BlcmF0aW9uVHlwZSIsInJlcXVpcmVkU3RhdGVzIiwiYXJlV2VJblRoZVJpZ2h0U3RhdGUiLCJkZXBsb3ltZW50VGFzayIsInN0YXR1cyIsImxhc3QiLCJub1RyYW5zaXRpb25TdGF0ZXMiLCJpbmRleE9mIiwiRXJyb3IiLCJrZXkiLCJoYXNBbnl0aGluZ0hhcHBlbmVkU2luY2VBcHByb3ZhbCIsImhhc0lzc3VlQ2hhbmdlZCIsImhpc3RvcnlJZ25vcmVMaXN0IiwidHJhbnNpdGlvbiIsInJvYm90IiwidHJhbnNpdGlvblRvQXR0ZW1wdCIsInJlZ2V4R3JvdXBzIiwiZGVwbG95bWVudFRhc2tOdW1iZXIiLCJyZXMiLCJzZW5kIiwicGVyZm9ybURlcGxveW1lbnRUYXNrVHJhbnNpdGlvbiIsImZpZWxkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O3dFQWFPLGlCQUErQ0EsT0FBL0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0NDLGlDQURELEdBQ3lCLHNDQUFjRCxRQUFRRSxhQUF0QixFQUFxQ0MsY0FEOUQ7QUFFQ0MsZ0NBRkQsR0FFeUJKLFFBQVFLLGNBQVIsQ0FBdUJDLE1BQXZCLEtBQWtDLGlCQUFFQyxJQUFGLENBQU9OLHFCQUFQLENBRjNEOztBQUFBLGtCQUlELHNDQUFjRCxRQUFRRSxhQUF0QixFQUFxQ00sa0JBQXJDLENBQ0NDLE9BREQsQ0FDU1QsUUFBUUssY0FBUixDQUF1QkMsTUFEaEMsSUFDMEMsQ0FBQyxDQUwxQztBQUFBO0FBQUE7QUFBQTs7QUFBQSxrQkFNRyxJQUFJSSxLQUFKLENBQVUsMkJBQXlCVixRQUFRSyxjQUFSLENBQXVCTSxHQUFoRCwyQkFDRyxpQkFBRUosSUFBRixDQUFPLHNDQUFjUCxRQUFRRSxhQUF0QixFQUFxQ0MsY0FBNUMsQ0FESCxPQUFWLENBTkg7O0FBQUE7QUFVQ1MsNENBVkQsR0FVb0NaLFFBQVFLLGNBQVIsQ0FBdUJRLGVBQXZCLENBQ3ZDVCx1QkFBdUIsc0NBQWNKLFFBQVFFLGFBQXRCLEVBQXFDQyxjQUE1RCxHQUNJLENBQUNILFFBQVFLLGNBQVIsQ0FBdUJDLE1BQXhCLENBRm1DLEVBR3ZDUSxpQkFIdUMsQ0FWcEM7O0FBQUEsaUJBZ0JERixnQ0FoQkM7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSxtQkFpQkdaLFFBQVFLLGNBQVIsQ0FBdUJVLFVBQXZCLENBQWtDLFFBQWxDLEVBQTRDZixRQUFRZ0IsS0FBcEQsQ0FqQkg7O0FBQUE7QUFBQSxrQkFrQkcsSUFBSU4sS0FBSixDQUFVLDRFQUNkLDRGQURjLEdBRWQsT0FGSSxDQWxCSDs7QUFBQTtBQUFBLGdCQXVCQU4sb0JBdkJBO0FBQUE7QUFBQTtBQUFBOztBQUFBLGtCQXdCRyxJQUFJTSxLQUFKLENBQVUscUNBQW1DVixRQUFRSyxjQUFSLENBQXVCQyxNQUExRCxtQ0FDQSxzQ0FBY04sUUFBUUUsYUFBdEIsRUFBcUNlLG1CQURyQyx3QkFFWGpCLFFBQVFrQixXQUFSLENBQW9CQyxvQkFGVCw4QkFHWCxpQkFBRVosSUFBRixDQUFPLHNDQUFjUCxRQUFRRSxhQUF0QixFQUFxQ0MsY0FBNUMsQ0FIVyxhQUFWLENBeEJIOztBQUFBOztBQStCTEgsb0JBQVFvQixHQUFSLENBQVlDLElBQVosQ0FBaUIsd0dBQ00sc0NBQWNyQixRQUFRRSxhQUF0QixFQUFxQ2UsbUJBRDNDLFdBRVpqQixRQUFRa0IsV0FBUixDQUFvQkMsb0JBRlIsT0FBakI7O0FBL0JLO0FBQUEsbUJBb0NDbkIsUUFBUUssY0FBUixDQUF1QlUsVUFBdkIsQ0FDSixzQ0FBY2YsUUFBUUUsYUFBdEIsRUFBcUNlLG1CQURqQyxFQUVKakIsUUFBUWdCLEtBRkosQ0FwQ0Q7O0FBQUE7QUFBQSw2Q0F3Q0UsRUF4Q0Y7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRzs7a0JBQWVNLCtCOzs7OztBQWJ0Qjs7OztBQUNBOzs7Ozs7QUFFTyxJQUFNUixnREFBb0IsQ0FBQztBQUNoQ1MsU0FBTztBQUR5QixDQUFELEVBRTlCO0FBQ0RBLFNBQU87QUFETixDQUY4QixFQUk5QjtBQUNEQSxTQUFPO0FBRE4sQ0FKOEIsRUFNOUI7QUFDREEsU0FBTztBQUROLENBTjhCLENBQTFCIiwiZmlsZSI6ImRlcGxveW1lbnQtdGFzay10cmFuc2l0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBjb21tYW5kQ29uZmlnIGZyb20gJy4vZGVwbG95bWVudC1zY3JpcHQtY29tbWFuZC1pbmZvJztcblxuZXhwb3J0IGNvbnN0IGhpc3RvcnlJZ25vcmVMaXN0ID0gW3tcbiAgZmllbGQ6ICdTY2hlZHVsZWQgRGVwbG95bWVudCBUaW1lJ1xufSwge1xuICBmaWVsZDogJ1JlbW90ZUlzc3VlTGluaydcbn0sIHtcbiAgZmllbGQ6ICdEZXZlbG9wbWVudCBUZWFtKHMpJ1xufSwge1xuICBmaWVsZDogJ0lzc3VlIFN0YXRlJ1xufV07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwZXJmb3JtRGVwbG95bWVudFRhc2tUcmFuc2l0aW9uKG9wdGlvbnMpIHtcbiAgY29uc3QgcmVxdWlyZWRTdGF0dXNIaXN0b3J5ID0gY29tbWFuZENvbmZpZ1tvcHRpb25zLm9wZXJhdGlvblR5cGVdLnJlcXVpcmVkU3RhdGVzO1xuICBjb25zdCBhcmVXZUluVGhlUmlnaHRTdGF0ZSA9IChvcHRpb25zLmRlcGxveW1lbnRUYXNrLnN0YXR1cyA9PT0gXy5sYXN0KHJlcXVpcmVkU3RhdHVzSGlzdG9yeSkpO1xuXG4gIGlmIChjb21tYW5kQ29uZmlnW29wdGlvbnMub3BlcmF0aW9uVHlwZV0ubm9UcmFuc2l0aW9uU3RhdGVzXG4gICAgICAuaW5kZXhPZihvcHRpb25zLmRlcGxveW1lbnRUYXNrLnN0YXR1cykgPiAtMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSSB3aWxsIG5vdCB0cmFuc2l0aW9uICR7b3B0aW9ucy5kZXBsb3ltZW50VGFzay5rZXl9IHVudGlsIGl0IGdldHMgdG8gYCArXG4gICAgICAgICAgICAgICAgICAgIGAke18ubGFzdChjb21tYW5kQ29uZmlnW29wdGlvbnMub3BlcmF0aW9uVHlwZV0ucmVxdWlyZWRTdGF0ZXMpfS5gKTtcbiAgfVxuXG4gIGNvbnN0IGhhc0FueXRoaW5nSGFwcGVuZWRTaW5jZUFwcHJvdmFsID0gb3B0aW9ucy5kZXBsb3ltZW50VGFzay5oYXNJc3N1ZUNoYW5nZWQoXG4gICAgYXJlV2VJblRoZVJpZ2h0U3RhdGUgPyBjb21tYW5kQ29uZmlnW29wdGlvbnMub3BlcmF0aW9uVHlwZV0ucmVxdWlyZWRTdGF0ZXNcbiAgICAgIDogW29wdGlvbnMuZGVwbG95bWVudFRhc2suc3RhdHVzXSxcbiAgICBoaXN0b3J5SWdub3JlTGlzdFxuICApO1xuXG4gIGlmIChoYXNBbnl0aGluZ0hhcHBlbmVkU2luY2VBcHByb3ZhbCkge1xuICAgIGF3YWl0IG9wdGlvbnMuZGVwbG95bWVudFRhc2sudHJhbnNpdGlvbignUmVvcGVuJywgb3B0aW9ucy5yb2JvdCk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTb21ldGhpbmcgcmVxdWlyaW5nIHJlLWFwcHJvdmFsIGhhcyBoYXBwZW5lZCB0byB0aGlzIGRlcGxveW1lbnQgdGFzay4gICcgK1xuICAgICAgJ1BsZWFzZSBlbnN1cmUgZXZlcnl0aGluZyBpcyBjb3JyZWN0IGJlZm9yZSBhcHByb3ZpbmcgaXQgYWdhaW4uICBJIHJlb3BlbmVkIHRoZSBkZXBsb3ltZW50ICcgK1xuICAgICAgJ3Rhc2suJyk7XG4gIH1cblxuICBpZiAoIWFyZVdlSW5UaGVSaWdodFN0YXRlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgZGVwbG95bWVudCB0YXNrIGlzIGluIHRoZSBcXCcke29wdGlvbnMuZGVwbG95bWVudFRhc2suc3RhdHVzfVxcJyBzdGF0ZS4gYCArXG4gICAgICBgIEZvciBtZSB0byAke2NvbW1hbmRDb25maWdbb3B0aW9ucy5vcGVyYXRpb25UeXBlXS50cmFuc2l0aW9uVG9BdHRlbXB0fSBpdCBwcm9wZXJseSwgYCArXG4gICAgICBgJHtvcHRpb25zLnJlZ2V4R3JvdXBzLmRlcGxveW1lbnRUYXNrTnVtYmVyfSBuZWVkcyB0byBiZSBpbiB0aGUgYCArXG4gICAgICBgJHtfLmxhc3QoY29tbWFuZENvbmZpZ1tvcHRpb25zLm9wZXJhdGlvblR5cGVdLnJlcXVpcmVkU3RhdGVzKX0gc3RhdGUuYFxuICAgICk7XG4gIH1cblxuICBvcHRpb25zLnJlcy5zZW5kKCdOb3RoaW5nIGhhcyBjaGFuZ2VkIHNpbmNlIGFwcHJvdmFscy4gIFRoaXMgZGVwbG95bWVudCB0YXNrIGlzIGdvb2QgdG8gZ28uICAnICtcbiAgICBgSSBhbSBub3cgZ29pbmcgdG8gJHtjb21tYW5kQ29uZmlnW29wdGlvbnMub3BlcmF0aW9uVHlwZV0udHJhbnNpdGlvblRvQXR0ZW1wdH0gYCArXG4gICAgYCR7b3B0aW9ucy5yZWdleEdyb3Vwcy5kZXBsb3ltZW50VGFza051bWJlcn0uYFxuICApO1xuXG4gIGF3YWl0IG9wdGlvbnMuZGVwbG95bWVudFRhc2sudHJhbnNpdGlvbihcbiAgICBjb21tYW5kQ29uZmlnW29wdGlvbnMub3BlcmF0aW9uVHlwZV0udHJhbnNpdGlvblRvQXR0ZW1wdCxcbiAgICBvcHRpb25zLnJvYm90XG4gICk7XG4gIHJldHVybiB7fTtcbn1cbiJdfQ== |
@@ -169,2 +169,69 @@ 'use strict'; | ||
}() | ||
}, { | ||
key: 'getFirstCommitInRepoSha', | ||
value: function () { | ||
var _ref4 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4(options) { | ||
var repoPath, repoInfo, firstDayCommits; | ||
return _regenerator2.default.wrap(function _callee4$(_context4) { | ||
while (1) { | ||
switch (_context4.prev = _context4.next) { | ||
case 0: | ||
repoPath = this.restApiPath + '/repos/' + options.user + '/' + options.repo; | ||
_context4.next = 3; | ||
return this.makeRequest(repoPath); | ||
case 3: | ||
repoInfo = _context4.sent; | ||
_context4.next = 6; | ||
return this.makeRequest(repoPath + '/commits?until=' + repoInfo.created_at); | ||
case 6: | ||
firstDayCommits = _context4.sent; | ||
return _context4.abrupt('return', firstDayCommits[0].sha); | ||
case 8: | ||
case 'end': | ||
return _context4.stop(); | ||
} | ||
} | ||
}, _callee4, this); | ||
})); | ||
function getFirstCommitInRepoSha(_x5) { | ||
return _ref4.apply(this, arguments); | ||
} | ||
return getFirstCommitInRepoSha; | ||
}() | ||
}, { | ||
key: 'getLastCommitInRepoSha', | ||
value: function () { | ||
var _ref5 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee5(options) { | ||
var repoPath, repoInfo; | ||
return _regenerator2.default.wrap(function _callee5$(_context5) { | ||
while (1) { | ||
switch (_context5.prev = _context5.next) { | ||
case 0: | ||
repoPath = this.restApiPath + '/repos/' + options.user + '/' + options.repo + '/master'; | ||
_context5.next = 3; | ||
return this.makeRequest(repoPath); | ||
case 3: | ||
repoInfo = _context5.sent; | ||
return _context5.abrupt('return', repoInfo.sha); | ||
case 5: | ||
case 'end': | ||
return _context5.stop(); | ||
} | ||
} | ||
}, _callee5, this); | ||
})); | ||
function getLastCommitInRepoSha(_x6) { | ||
return _ref5.apply(this, arguments); | ||
} | ||
return getLastCommitInRepoSha; | ||
}() | ||
}]); | ||
@@ -184,2 +251,2 @@ return GithubAPI; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9naXRodWItQVBJLmpzIl0sIm5hbWVzIjpbImlzVmFsaWRDb21taXRSYW5nZSIsInBhcnNlR2l0VVJMRm9yVXNlckFuZFJlcG8iLCJzdGF0dXMiLCJHaXRodWJBUEkiLCJvcHRpb25zIiwidmVyc2lvbiIsIkhVQk9UX0dJVEhVQl9WRVJTSU9OIiwicHJvdG9jb2wiLCJIVUJPVF9HSVRIVUJfUFJPVE9DT0wiLCJob3N0IiwiSFVCT1RfR0lUSFVCX0hPU1QiLCJwb3J0IiwiSFVCT1RfR0lUSFVCX1BPUlQiLCJwYXRoUHJlZml4IiwiSFVCT1RfR0lUSFVCX0VOVEVSUFJJU0UiLCJsb2dnZXIiLCJyZXF1ZXN0T3B0aW9ucyIsIm1ldGhvZCIsImluZGV4T2YiLCJoZWFkZXJzIiwiQWNjZXB0IiwicmVzdEFwaVBhdGgiLCJ1cmkiLCJkZWJ1ZyIsInJlc3VsdCIsIkpTT04iLCJwYXJzZSIsInVybCIsInVzZXIiLCJyZXBvIiwiYmFzZSIsImhlYWQiLCJtYWtlUmVxdWVzdCIsInJlcyIsIk51bWJlciIsImFoZWFkX2J5IiwiY29tbWl0cyIsImxlbmd0aCIsIkVycm9yIiwic2hhIiwiZmlsZVBhdGgiLCJnaXRVUkwiLCJtYXRjaCIsInVudXNlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBRWdCQSxrQixHQUFBQSxrQjtRQXFEQUMseUIsR0FBQUEseUI7O0FBdkRoQjs7Ozs7O0FBRU8sU0FBU0Qsa0JBQVQsQ0FBNEJFLE1BQTVCLEVBQW9DO0FBQ3pDLFNBQVFBLFdBQVcsT0FBbkI7QUFDRDs7SUFFb0JDLFM7QUFDbkIsdUJBQTBCO0FBQUEsUUFBZEMsT0FBYyx1RUFBSixFQUFJO0FBQUE7O0FBQ3hCLFNBQUtDLE9BQUwsR0FBZUQsUUFBUUUsb0JBQVIsSUFBZ0MsT0FBL0M7QUFDQSxTQUFLQyxRQUFMLEdBQWdCSCxRQUFRSSxxQkFBUixJQUFpQyxNQUFqRDtBQUNBLFNBQUtDLElBQUwsR0FBWUwsUUFBUU0saUJBQVIsSUFBNkIsZ0JBQXpDO0FBQ0EsU0FBS0MsSUFBTCxHQUFZUCxRQUFRUSxpQkFBUixJQUE2QixFQUF6QztBQUNBLFNBQUtDLFVBQUwsR0FBbUJULFFBQVFVLHVCQUFULEdBQW9DLFNBQXBDLEdBQWdELEVBQWxFO0FBQ0EsU0FBS0MsTUFBTCxHQUFjWCxRQUFRVyxNQUF0QjtBQUNBLFNBQUtDLGNBQUwsR0FBc0I7QUFDcEJDLGNBQVEsS0FEWTtBQUVwQlYsZ0JBQVcsS0FBS0EsUUFBTCxDQUFjVyxPQUFkLENBQXNCLEdBQXRCLElBQTZCLENBQUMsQ0FBL0IsR0FBb0MsS0FBS1gsUUFBekMsR0FBdUQsS0FBS0EsUUFBNUQsTUFGVTtBQUdwQlksZUFBUztBQUNQQyxnQkFBUTtBQUREO0FBSFcsS0FBdEI7QUFPQSxTQUFLQyxXQUFMLEdBQXNCLEtBQUtkLFFBQTNCLFdBQXlDLEtBQUtFLElBQTlDLFNBQXNELEtBQUtFLElBQTNELEdBQWtFLEtBQUtFLFVBQXZFO0FBQ0Q7Ozs7OzZGQUVpQlMsRzs7Ozs7O0FBQ2hCLHFCQUFLUCxNQUFMLENBQVlRLEtBQVoscUJBQW9DRCxHQUFwQzs7dUJBQ3FCLHlEQUFhLEtBQUtOLGNBQWxCLElBQWtDTSxRQUFsQyxJOzs7QUFBZkUsc0I7O3NCQUVGQSxXQUFXLFc7Ozs7O2lEQUNOQSxNOzs7aURBR0ZDLEtBQUtDLEtBQUwsQ0FBV0YsTUFBWCxDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OytGQUdZcEIsTzs7Ozs7O0FBQ2J1QixtQixHQUFTLEtBQUtOLFdBQVIsZUFBNkJqQixRQUFRd0IsSUFBckMsU0FBNkN4QixRQUFReUIsSUFBckQsa0JBQ1l6QixRQUFRMEIsSUFEcEIsV0FDOEIxQixRQUFRMkIsSUFEdEMsQzs7dUJBRU0sS0FBS0MsV0FBTCxDQUFpQkwsR0FBakIsQzs7O0FBQVpNLG1COztzQkFFRmpDLG1CQUFtQmlDLElBQUkvQixNQUF2QixLQUFrQ2dDLE9BQU9ELElBQUlFLFFBQVgsSUFBdUJELE9BQU9ELElBQUlHLE9BQUosQ0FBWUMsTUFBbkIsQzs7Ozs7c0JBQ3JELElBQUlDLEtBQUosQ0FBVSw2RUFDQSxxQkFEVixDOzs7a0RBR0RMLEc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0ZBR2U3QixPOzs7OztrREFDZixLQUFLNEIsV0FBTCxDQUNGLEtBQUt6QixRQUFSLFdBQXNCLEtBQUtFLElBQTNCLFNBQW1DLEtBQUtFLElBQXhDLGFBQW9EUCxRQUFRd0IsSUFBNUQsU0FBb0V4QixRQUFReUIsSUFBNUUsZUFDR3pCLFFBQVFtQyxHQURYLEdBQ2lCbkMsUUFBUW9DLFFBRHpCLENBREssQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0JBMUNVckMsUztBQWlEZCxTQUFTRix5QkFBVCxDQUFtQ3dDLE1BQW5DLEVBQTJDO0FBQUEsc0JBRTlDQSxPQUFPQyxLQUFQLENBQWEsK0RBQWIsQ0FGOEM7QUFBQTtBQUFBLE1BQ3pDQyxNQUR5QztBQUFBLE1BQ2pDZixJQURpQztBQUFBLE1BQzNCQyxJQUQyQjs7QUFHaEQsU0FBTyxFQUFFYyxjQUFGLEVBQVVkLFVBQVYsRUFBZ0JELFVBQWhCLEVBQVA7QUFDRCIsImZpbGUiOiJnaXRodWItQVBJLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlcXVlc3QgZnJvbSAncmVxdWVzdC1wcm9taXNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRDb21taXRSYW5nZShzdGF0dXMpIHtcbiAgcmV0dXJuIChzdGF0dXMgPT09ICdhaGVhZCcpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHaXRodWJBUEkge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICB0aGlzLnZlcnNpb24gPSBvcHRpb25zLkhVQk9UX0dJVEhVQl9WRVJTSU9OIHx8ICczLjAuMCc7XG4gICAgdGhpcy5wcm90b2NvbCA9IG9wdGlvbnMuSFVCT1RfR0lUSFVCX1BST1RPQ09MIHx8ICdodHRwJztcbiAgICB0aGlzLmhvc3QgPSBvcHRpb25zLkhVQk9UX0dJVEhVQl9IT1NUIHx8ICdhcGkuZ2l0aHViLmNvbSc7XG4gICAgdGhpcy5wb3J0ID0gb3B0aW9ucy5IVUJPVF9HSVRIVUJfUE9SVCB8fCA4MDtcbiAgICB0aGlzLnBhdGhQcmVmaXggPSAob3B0aW9ucy5IVUJPVF9HSVRIVUJfRU5URVJQUklTRSkgPyAnL2FwaS92MycgOiAnJztcbiAgICB0aGlzLmxvZ2dlciA9IG9wdGlvbnMubG9nZ2VyO1xuICAgIHRoaXMucmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgcHJvdG9jb2w6ICh0aGlzLnByb3RvY29sLmluZGV4T2YoJzonKSA+IC0xKSA/IHRoaXMucHJvdG9jb2wgOiBgJHt0aGlzLnByb3RvY29sfTpgLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5yZXN0QXBpUGF0aCA9IGAke3RoaXMucHJvdG9jb2x9Oi8vJHt0aGlzLmhvc3R9OiR7dGhpcy5wb3J0fSR7dGhpcy5wYXRoUHJlZml4fWA7XG4gIH1cblxuICBhc3luYyBtYWtlUmVxdWVzdCh1cmkpIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgR2l0aHViIFJlcXVlc3QgJHt1cml9YCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVxdWVzdCh7IC4uLnRoaXMucmVxdWVzdE9wdGlvbnMsIHVyaSB9KTtcblxuICAgIGlmIChyZXN1bHQgPT09ICdOb3QgRm91bmQnKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiBKU09OLnBhcnNlKHJlc3VsdCk7XG4gIH1cblxuICBhc3luYyBjb21wYXJlQ29tbWl0cyhvcHRpb25zKSB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5yZXN0QXBpUGF0aH0vcmVwb3MvJHtvcHRpb25zLnVzZXJ9LyR7b3B0aW9ucy5yZXBvfWAgK1xuICAgICAgICAgICAgICAgIGAvY29tcGFyZS8ke29wdGlvbnMuYmFzZX0uLi4ke29wdGlvbnMuaGVhZH1gO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMubWFrZVJlcXVlc3QodXJsKTtcblxuICAgIGlmIChpc1ZhbGlkQ29tbWl0UmFuZ2UocmVzLnN0YXR1cykgJiYgTnVtYmVyKHJlcy5haGVhZF9ieSkgPiBOdW1iZXIocmVzLmNvbW1pdHMubGVuZ3RoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGVyZSBhcmUgdG9vIG1hbnkgY29tbWl0cyBpbiB0aGlzIGRlcGxveW1lbnQsIHRoaXMgZGVwbG95bWVudCB0YXNrIG11c3QnICtcbiAgICAgICAgICAgICAgICAgICAgICAnIGJlIGh1Ym90IGJ5cGFzc2VkLicpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgYXN5bmMgZ2V0RmlsZUZyb21Db21taXQob3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLm1ha2VSZXF1ZXN0KFxuICAgICAgYCR7dGhpcy5wcm90b2NvbH06Ly8ke3RoaXMuaG9zdH06JHt0aGlzLnBvcnR9L3Jhdy8ke29wdGlvbnMudXNlcn0vJHtvcHRpb25zLnJlcG99L2AgK1xuICAgICAgYCR7b3B0aW9ucy5zaGF9JHtvcHRpb25zLmZpbGVQYXRofWBcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUdpdFVSTEZvclVzZXJBbmRSZXBvKGdpdFVSTCkge1xuICBjb25zdCBbdW51c2VkLCB1c2VyLCByZXBvXSA9XG4gICAgZ2l0VVJMLm1hdGNoKC8oPzpodHRwKD86cyk/fGdpdCk6XFwvXFwvLipcXC8oLiopXFwvKFthLXpBLVpcXC1fMC05XSopKD86XFwuZ2l0KT8vaSk7XG4gIHJldHVybiB7IHVudXNlZCwgcmVwbywgdXNlciB9O1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9naXRodWItQVBJLmpzIl0sIm5hbWVzIjpbImlzVmFsaWRDb21taXRSYW5nZSIsInBhcnNlR2l0VVJMRm9yVXNlckFuZFJlcG8iLCJzdGF0dXMiLCJHaXRodWJBUEkiLCJvcHRpb25zIiwidmVyc2lvbiIsIkhVQk9UX0dJVEhVQl9WRVJTSU9OIiwicHJvdG9jb2wiLCJIVUJPVF9HSVRIVUJfUFJPVE9DT0wiLCJob3N0IiwiSFVCT1RfR0lUSFVCX0hPU1QiLCJwb3J0IiwiSFVCT1RfR0lUSFVCX1BPUlQiLCJwYXRoUHJlZml4IiwiSFVCT1RfR0lUSFVCX0VOVEVSUFJJU0UiLCJsb2dnZXIiLCJyZXF1ZXN0T3B0aW9ucyIsIm1ldGhvZCIsImluZGV4T2YiLCJoZWFkZXJzIiwiQWNjZXB0IiwicmVzdEFwaVBhdGgiLCJ1cmkiLCJkZWJ1ZyIsInJlc3VsdCIsIkpTT04iLCJwYXJzZSIsInVybCIsInVzZXIiLCJyZXBvIiwiYmFzZSIsImhlYWQiLCJtYWtlUmVxdWVzdCIsInJlcyIsIk51bWJlciIsImFoZWFkX2J5IiwiY29tbWl0cyIsImxlbmd0aCIsIkVycm9yIiwic2hhIiwiZmlsZVBhdGgiLCJyZXBvUGF0aCIsInJlcG9JbmZvIiwiY3JlYXRlZF9hdCIsImZpcnN0RGF5Q29tbWl0cyIsImdpdFVSTCIsIm1hdGNoIiwidW51c2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7UUFFZ0JBLGtCLEdBQUFBLGtCO1FBb0VBQyx5QixHQUFBQSx5Qjs7QUF0RWhCOzs7Ozs7QUFFTyxTQUFTRCxrQkFBVCxDQUE0QkUsTUFBNUIsRUFBb0M7QUFDekMsU0FBUUEsV0FBVyxPQUFuQjtBQUNEOztJQUVvQkMsUztBQUNuQix1QkFBMEI7QUFBQSxRQUFkQyxPQUFjLHVFQUFKLEVBQUk7QUFBQTs7QUFDeEIsU0FBS0MsT0FBTCxHQUFlRCxRQUFRRSxvQkFBUixJQUFnQyxPQUEvQztBQUNBLFNBQUtDLFFBQUwsR0FBZ0JILFFBQVFJ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IjoiZ2l0aHViLUFQSS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByZXF1ZXN0IGZyb20gJ3JlcXVlc3QtcHJvbWlzZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQ29tbWl0UmFuZ2Uoc3RhdHVzKSB7XG4gIHJldHVybiAoc3RhdHVzID09PSAnYWhlYWQnKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgR2l0aHViQVBJIHtcbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy52ZXJzaW9uID0gb3B0aW9ucy5IVUJPVF9HSVRIVUJfVkVSU0lPTiB8fCAnMy4wLjAnO1xuICAgIHRoaXMucHJvdG9jb2wgPSBvcHRpb25zLkhVQk9UX0dJVEhVQl9QUk9UT0NPTCB8fCAnaHR0cCc7XG4gICAgdGhpcy5ob3N0ID0gb3B0aW9ucy5IVUJPVF9HSVRIVUJfSE9TVCB8fCAnYXBpLmdpdGh1Yi5jb20nO1xuICAgIHRoaXMucG9ydCA9IG9wdGlvbnMuSFVCT1RfR0lUSFVCX1BPUlQgfHwgODA7XG4gICAgdGhpcy5wYXRoUHJlZml4ID0gKG9wdGlvbnMuSFVCT1RfR0lUSFVCX0VOVEVSUFJJU0UpID8gJy9hcGkvdjMnIDogJyc7XG4gICAgdGhpcy5sb2dnZXIgPSBvcHRpb25zLmxvZ2dlcjtcbiAgICB0aGlzLnJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHByb3RvY29sOiAodGhpcy5wcm90b2NvbC5pbmRleE9mKCc6JykgPiAtMSkgPyB0aGlzLnByb3RvY29sIDogYCR7dGhpcy5wcm90b2NvbH06YCxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMucmVzdEFwaVBhdGggPSBgJHt0aGlzLnByb3RvY29sfTovLyR7dGhpcy5ob3N0fToke3RoaXMucG9ydH0ke3RoaXMucGF0aFByZWZpeH1gO1xuICB9XG5cbiAgYXN5bmMgbWFrZVJlcXVlc3QodXJpKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYEdpdGh1YiBSZXF1ZXN0ICR7dXJpfWApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcXVlc3QoeyAuLi50aGlzLnJlcXVlc3RPcHRpb25zLCB1cmkgfSk7XG5cbiAgICBpZiAocmVzdWx0ID09PSAnTm90IEZvdW5kJykge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuICB9XG5cbiAgYXN5bmMgY29tcGFyZUNvbW1pdHMob3B0aW9ucykge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMucmVzdEFwaVBhdGh9L3JlcG9zLyR7b3B0aW9ucy51c2VyfS8ke29wdGlvbnMucmVwb31gICtcbiAgICAgICAgICAgICAgICBgL2NvbXBhcmUvJHtvcHRpb25zLmJhc2V9Li4uJHtvcHRpb25zLmhlYWR9YDtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLm1ha2VSZXF1ZXN0KHVybCk7XG5cbiAgICBpZiAoaXNWYWxpZENvbW1pdFJhbmdlKHJlcy5zdGF0dXMpICYmIE51bWJlcihyZXMuYWhlYWRfYnkpID4gTnVtYmVyKHJlcy5jb21taXRzLmxlbmd0aCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlcmUgYXJlIHRvbyBtYW55IGNvbW1pdHMgaW4gdGhpcyBkZXBsb3ltZW50LCB0aGlzIGRlcGxveW1lbnQgdGFzayBtdXN0JyArXG4gICAgICAgICAgICAgICAgICAgICAgJyBiZSBodWJvdCBieXBhc3NlZC4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIGFzeW5jIGdldEZpbGVGcm9tQ29tbWl0KG9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5tYWtlUmVxdWVzdChcbiAgICAgIGAke3RoaXMucHJvdG9jb2x9Oi8vJHt0aGlzLmhvc3R9OiR7dGhpcy5wb3J0fS9yYXcvJHtvcHRpb25zLnVzZXJ9LyR7b3B0aW9ucy5yZXBvfS9gICtcbiAgICAgIGAke29wdGlvbnMuc2hhfSR7b3B0aW9ucy5maWxlUGF0aH1gXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdldEZpcnN0Q29tbWl0SW5SZXBvU2hhKG9wdGlvbnMpIHtcbiAgICBjb25zdCByZXBvUGF0aCA9IGAke3RoaXMucmVzdEFwaVBhdGh9L3JlcG9zLyR7b3B0aW9ucy51c2VyfS8ke29wdGlvbnMucmVwb31gO1xuICAgIGNvbnN0IHJlcG9JbmZvID0gYXdhaXQgdGhpcy5tYWtlUmVxdWVzdChyZXBvUGF0aCk7XG4gICAgY29uc3QgZmlyc3REYXlDb21taXRzID0gYXdhaXQgdGhpcy5tYWtlUmVxdWVzdChcbiAgICAgIGAke3JlcG9QYXRofS9jb21taXRzP3VudGlsPSR7cmVwb0luZm8uY3JlYXRlZF9hdH1gXG4gICAgKTtcbiAgICByZXR1cm4gZmlyc3REYXlDb21taXRzWzBdLnNoYTtcbiAgfVxuXG4gIGFzeW5jIGdldExhc3RDb21taXRJblJlcG9TaGEob3B0aW9ucykge1xuICAgIGNvbnN0IHJlcG9QYXRoID0gYCR7dGhpcy5yZXN0QXBpUGF0aH0vcmVwb3MvJHtvcHRpb25zLnVzZXJ9LyR7b3B0aW9ucy5yZXBvfS9tYXN0ZXJgO1xuICAgIGNvbnN0IHJlcG9JbmZvID0gYXdhaXQgdGhpcy5tYWtlUmVxdWVzdChyZXBvUGF0aCk7XG4gICAgcmV0dXJuIHJlcG9JbmZvLnNoYTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VHaXRVUkxGb3JVc2VyQW5kUmVwbyhnaXRVUkwpIHtcbiAgY29uc3QgW3VudXNlZCwgdXNlciwgcmVwb10gPVxuICAgIGdpdFVSTC5tYXRjaCgvKD86aHR0cCg/OnMpP3xnaXQpOlxcL1xcLy4qXFwvKC4qKVxcLyhbYS16QS1aXFwtXzAtOV0qKSg/OlxcLmdpdCk/L2kpO1xuICByZXR1cm4geyB1bnVzZWQsIHJlcG8sIHVzZXIgfTtcbn1cbiJdfQ== |
@@ -8,6 +8,2 @@ 'use strict'; | ||
var _extends2 = require('babel-runtime/helpers/extends'); | ||
var _extends3 = _interopRequireDefault(_extends2); | ||
var _promise = require('babel-runtime/core-js/promise'); | ||
@@ -29,2 +25,6 @@ | ||
var _extends2 = require('babel-runtime/helpers/extends'); | ||
var _extends3 = _interopRequireDefault(_extends2); | ||
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); | ||
@@ -51,3 +51,3 @@ | ||
deploymentBuildTypeId = _ref2.deploymentBuildTypeId; | ||
var dependencyIgnoreList, response, successfulBuilds, deploymentBuildId, deploymentBuildInfo, artifactDependencies, dependencies; | ||
var dependencyIgnoreList, response, successfulBuilds, otherResponse, otherBuilds, info, deploymentBuildId, deploymentBuildInfo, artifactDependencies, dependencies; | ||
return _regenerator2.default.wrap(function _callee$(_context) { | ||
@@ -66,14 +66,33 @@ while (1) { | ||
if (!(successfulBuilds.length < 1)) { | ||
_context.next = 7; | ||
_context.next = 16; | ||
break; | ||
} | ||
throw new Error('There has never been a deployment from ' + name + ' Project before. ' + 'The first deployment should be a manual process for now.'); | ||
_context.next = 8; | ||
return teamcity.fetchBuildTypeInfo(deploymentBuildTypeId); | ||
case 7: | ||
case 8: | ||
otherResponse = _context.sent; | ||
_context.next = 11; | ||
return teamcity.fetchSuccessfulBuilds(otherResponse['artifact-dependencies']['artifact-dependency'].filter(function (x) { | ||
return dependencyIgnoreList.indexOf(x['source-buildType'].id) === -1; | ||
})[0]['source-buildType'].id); | ||
case 11: | ||
otherBuilds = _context.sent; | ||
_context.next = 14; | ||
return teamcity.getGitInfo(otherBuilds.build[0].id); | ||
case 14: | ||
info = _context.sent; | ||
return _context.abrupt('return', (0, _extends3.default)({}, info, { | ||
firstTimeDeployment: true | ||
})); | ||
case 16: | ||
deploymentBuildId = successfulBuilds[0].id; | ||
_context.next = 10; | ||
_context.next = 19; | ||
return teamcity.fetchBuildInfo(deploymentBuildId); | ||
case 10: | ||
case 19: | ||
deploymentBuildInfo = _context.sent; | ||
@@ -83,3 +102,3 @@ artifactDependencies = deploymentBuildInfo['artifact-dependencies']; | ||
if (!(!artifactDependencies || artifactDependencies.build.length === 0)) { | ||
_context.next = 14; | ||
_context.next = 23; | ||
break; | ||
@@ -90,3 +109,3 @@ } | ||
case 14: | ||
case 23: | ||
dependencies = artifactDependencies.build.filter(function (x) { | ||
@@ -97,3 +116,3 @@ return dependencyIgnoreList.indexOf(x.buildTypeId) === -1; | ||
if (!(dependencies.length > 1)) { | ||
_context.next = 17; | ||
_context.next = 26; | ||
break; | ||
@@ -104,6 +123,6 @@ } | ||
case 17: | ||
case 26: | ||
return _context.abrupt('return', teamcity.getGitInfo(dependencies[0].id)); | ||
case 18: | ||
case 27: | ||
case 'end': | ||
@@ -534,9 +553,25 @@ return _context.stop(); | ||
_context7.next = 15; | ||
if (!base.firstTimeDeployment) { | ||
_context7.next = 18; | ||
break; | ||
} | ||
this.res.send('Scanning for first time deployment from ' + query.repo + '.'); | ||
_context7.next = 17; | ||
return this.github.getFirstCommitInRepoSha({ | ||
repo: base.repo, | ||
user: base.user | ||
}); | ||
case 17: | ||
base.sha = _context7.sent; | ||
case 18: | ||
_context7.next = 20; | ||
return this.compareBuilds(query.sha, base.sha, base.user, base.repo); | ||
case 15: | ||
case 20: | ||
result = _context7.sent; | ||
relevantCommits = []; | ||
_context7.next = 19; | ||
_context7.next = 24; | ||
return (0, _fileFiltering.getRegexWhitelist)({ | ||
@@ -550,7 +585,7 @@ githubAPI: this.github, | ||
case 19: | ||
case 24: | ||
_context7.t1 = _context7.sent; | ||
if (_context7.t1) { | ||
_context7.next = 22; | ||
_context7.next = 27; | ||
break; | ||
@@ -561,7 +596,7 @@ } | ||
case 22: | ||
case 27: | ||
relevantFilesToDeployment = _context7.t1; | ||
if (!(relevantFilesToDeployment.length > 0)) { | ||
_context7.next = 25; | ||
_context7.next = 30; | ||
break; | ||
@@ -596,5 +631,5 @@ } | ||
}, _callee6, _this3); | ||
})(), 't2', 25); | ||
})(), 't2', 30); | ||
case 25: | ||
case 30: | ||
@@ -604,3 +639,3 @@ this.robot.logger.debug('Commits were in a ' + result.status + ' status'); | ||
if (!(0, _githubAPI.isValidCommitRange)(result.status)) { | ||
_context7.next = 30; | ||
_context7.next = 35; | ||
break; | ||
@@ -610,3 +645,3 @@ } | ||
if (!(relevantCommits.length <= 0)) { | ||
_context7.next = 29; | ||
_context7.next = 34; | ||
break; | ||
@@ -617,3 +652,3 @@ } | ||
case 29: | ||
case 34: | ||
return _context7.abrupt('return', (0, _extends3.default)({}, result, { | ||
@@ -626,5 +661,5 @@ commits: result.commits.filter(function (_ref10) { | ||
case 30: | ||
case 35: | ||
if (!this.commitResultStatusStrategies.hasOwnProperty(result.status)) { | ||
_context7.next = 32; | ||
_context7.next = 37; | ||
break; | ||
@@ -635,6 +670,6 @@ } | ||
case 32: | ||
case 37: | ||
throw new Error('The commits were in some status we have not accounted for ' + ('(' + result.status + '), please notify the maintainers of this deployment script.')); | ||
case 33: | ||
case 38: | ||
case 'end': | ||
@@ -713,2 +748,2 @@ return _context7.stop(); | ||
}(); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90b29sLXRlYW1jaXR5LXJlcXVlc3RzLmpzIl0sIm5hbWVzIjpbInRlYW1jaXR5IiwiZW52Iiwicm9ib3QiLCJuYW1lIiwiZGVwbG95bWVudEJ1aWxkVHlwZUlkIiwiZGVwZW5kZW5jeUlnbm9yZUxpc3QiLCJIVUJPVF9URUFNQ0lUWV9ERVBFTkRFTkNZX0JMQUNLTElTVCIsInNwbGl0IiwiZmV0Y2hTdWNjZXNzZnVsQnVpbGRzIiwicmVzcG9uc2UiLCJzdWNjZXNzZnVsQnVpbGRzIiwiYnVpbGQiLCJsZW5ndGgiLCJFcnJvciIsImRlcGxveW1lbnRCdWlsZElkIiwiaWQiLCJmZXRjaEJ1aWxkSW5mbyIsImRlcGxveW1lbnRCdWlsZEluZm8iLCJhcnRpZmFjdERlcGVuZGVuY2llcyIsImJ1aWxkVHlwZSIsImRlcGVuZGVuY2llcyIsImZpbHRlciIsImluZGV4T2YiLCJ4IiwiYnVpbGRUeXBlSWQiLCJnZXRHaXRJbmZvIiwiZ2V0TW9zdFJlY2VudFN1Y2Nlc3NmdWxCdWlsZCIsIm9wdGlvbnMiLCJwb2xsZXIiLCJDb21taXRMaXN0UG9sbGVyIiwidGVhbWNpdHlBUEkiLCJnaXRodWJBUEkiLCJyZXMiLCJwcm9jZXNzIiwiZ2V0Q29tbWl0TGlzdHMiLCJwYXJzZWREZXBsb3ltZW50cyIsIm5ld0Jhc2VzIiwiY29tbWl0TGlzdHNSZXN1bHQiLCJnZXREZXBsb3ltZW50Q29tbWl0TGlzdHMiLCJkZXBsb3ltZW50IiwiYnVpbGRJZCIsImhlYWRCdWlsZElkIiwibWVtb2l6ZWRBcmd1bWVudHMiLCJyZXN1bHQiLCJnaXRodWJJbmZvTWVtb2l6ZUdhdGUiLCJsaXN0T2ZEZXBsb3ltZW50cyIsImNvbnNvbGlkYXRlZERlcGxveW1lbnRMaXN0IiwiZmxhdE1hcCIsInByb2RCdWlsZEZpZWxkIiwiZGVwbG95bWVudHMiLCJtYXAiLCJ5Iiwia2V5IiwiZ2l0aHViSW5mbyIsImFsbCIsImhlYWRTaGEiLCJzaGEiLCJyZXBvIiwidXNlciIsImdldEdpdGh1YkluZm9Gcm9tRGVwbG95bWVudCIsImdpdGh1YiIsImNvbW1pdFJlc3VsdFN0YXR1c1N0cmF0ZWdpZXMiLCJkaXZlcmdlZCIsImJlaGluZCIsImlkZW50aWNhbCIsInByb2R1Y3Rpb25CdWlsZExpc3QiLCJzY2FuRGVwbG95bWVudCIsInJlc3VsdExpc3QiLCJlcnJvckxpc3QiLCJlcnJvciIsImNvbW1pdHMiLCJkZXBsb3ltZW50VGFyZ2V0Iiwic2VuZCIsImdldEdpdENvbW1pdHMiLCJjb21taXRzUmVzdWx0IiwiZGVwbG95bWVudE5hbWUiLCJsb2dnZXIiLCJzdGFjayIsIm1lc3NhZ2UiLCJjb21wYXJlQnVpbGRzUmVzdWx0IiwiZmlsZUZpbHRlcmluZ0Z1bmN0aW9uIiwibWFrZVJlcXVlc3QiLCJ1cmwiLCJ0cmVlUmVzdWx0IiwidHJ1bmNhdGVkIiwiZmlsZXMiLCJjb21taXRUb1JldHVybiIsImZpbGVuYW1lIiwiZmlsZXNDaGFuZ2VkIiwicXVlcnkiLCJiYXNlSW5OZXdCYXNlcyIsImhhc2giLCJiYXNlIiwiY29tcGFyZUJ1aWxkcyIsInJlbGV2YW50Q29tbWl0cyIsInJlbGV2YW50RmlsZXNUb0RlcGxveW1lbnQiLCJmaWxlRmlsdGVyZXIiLCJyZWdleFdoaXRlTGlzdCIsImNyZWF0ZUNvbW1pdEZpbGVNYXAiLCJtZW1vaXplZEZpbGVGaWx0ZXIiLCJkZWJ1ZyIsInN0YXR1cyIsImhhc093blByb3BlcnR5IiwiaGVhZCIsImNvbXBhcmVDb21taXRzIiwiY29tcGFyZVJlc3VsdCIsIl9fZ2l0UmVwbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNBOzs7Ozs7Ozs7Ozs7Ozt3RUFhQSx3QkFBNkVBLFFBQTdFLEVBQXVGQyxHQUF2RixFQUE0RkMsS0FBNUY7QUFBQSxRQUE4Q0MsSUFBOUMsU0FBOENBLElBQTlDO0FBQUEsUUFBb0RDLHFCQUFwRCxTQUFvREEscUJBQXBEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNRQyxnQ0FEUixHQUMrQkosSUFBSUss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dCB7IGlzVmFsaWRDb21taXRSYW5nZSB9IGZyb20gJy4vZ2l0aHViLUFQSSc7XG5pbXBvcnQgeyBhY2N1bXVsYXRlQW5kVGhyb3cgfSBmcm9tICcuL2Vycm9yLWFjY3VtdWxhdG9yJztcbmltcG9ydCB0cmFuc2Zvcm1UaHJvd25Ub1N0cmluZyBmcm9tICcuL2Vycm9yLWNvbnZlcnNpb24nO1xuaW1wb3J0IHtcbiAgRmlsZUZpbHRlcmVyLFxuICBnZXRSZWdleFdoaXRlbGlzdFxufSBmcm9tICcuL2ZpbGUtZmlsdGVyaW5nJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbi8qXG4gKiBJbXBvcnRhbnQgdmFyaWFibGUgbmFtZXM6XG4gKlxuICogUHJlZml4ZXM6XG4gKiAtIGhlYWQ6IFRoZSBzaGEvYnVpbGQgd2Ugd2lzaCB0byBkZXBsb3kgKHNoYSBpZiBubyBzdWZmaXgpXG4gKiAtIGJhc2U6IFRoZSBzaGEvYnVpbGQgd2UgcHJldmlvdXNseSBkZXBsb3llZCAoc2hhIGlmIG5vIHN1ZmZpeClcbiAqIC0gZGVwbG95bWVudDogVGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24gd2UgdXNlIHRvIGRlcGxveVxuICpcbiAqIFN1ZmZpeGVzOlxuICogLSBCdWlsZElkOiBBIFRlYW1DaXR5IEJ1aWxkIElkXG4gKiAtIEJ1aWxkVHlwZUlkOiBBIFRlYW1DaXR5IEJ1aWxkIENvbmZpZ3VyYXRpb24gSWRcbiAqL1xuXG5hc3luYyBmdW5jdGlvbiBnZXRNb3N0UmVjZW50U3VjY2Vzc2Z1bEJ1aWxkKHsgbmFtZSwgZGVwbG95bWVudEJ1aWxkVHlwZUlkIH0sIHRlYW1jaXR5LCBlbnYsIHJvYm90KSB7XG4gIGNvbnN0IGRlcGVuZGVuY3lJZ25vcmVMaXN0ID0gZW52LkhVQk9UX1RFQU1DSVRZX0RFUEVOREVOQ1lfQkxBQ0tMSVNUXG4gICAgPyBlbnYuSFVCT1RfVEVBTUNJVFlfREVQRU5ERU5DWV9CTEFDS0xJU1Quc3BsaXQoJywnKVxuICAgIDogW107XG5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0ZWFtY2l0eS5mZXRjaFN1Y2Nlc3NmdWxCdWlsZHMoZGVwbG95bWVudEJ1aWxkVHlwZUlkKTtcbiAgY29uc3Qgc3VjY2Vzc2Z1bEJ1aWxkcyA9IHJlc3BvbnNlLmJ1aWxkIHx8IFtdO1xuXG4gIGlmIChzdWNjZXNzZnVsQnVpbGRzLmxlbmd0aCA8IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZXJlIGhhcyBuZXZlciBiZWVuIGEgZGVwbG95bWVudCBmcm9tICR7bmFtZX0gUHJvamVjdCBiZWZvcmUuIGAgK1xuICAgICAgICAgICAgICAgICAgICAnVGhlIGZpcnN0IGRlcGxveW1lbnQgc2hvdWxkIGJlIGEgbWFudWFsIHByb2Nlc3MgZm9yIG5vdy4nKTtcbiAgfVxuXG4gIGNvbnN0IGRlcGxveW1lbnRCdWlsZElkID0gc3VjY2Vzc2Z1bEJ1aWxkc1swXS5pZDtcblxuICBjb25zdCBkZXBsb3ltZW50QnVpbGRJbmZvID0gYXdhaXQgdGVhbWNpdHkuZmV0Y2hCdWlsZEluZm8oZGVwbG95bWVudEJ1aWxkSWQpO1xuXG4gIGNvbnN0IGFydGlmYWN0RGVwZW5kZW5jaWVzID0gZGVwbG95bWVudEJ1aWxkSW5mb1snYXJ0aWZhY3QtZGVwZW5kZW5jaWVzJ107XG5cbiAgaWYgKCFhcnRpZmFjdERlcGVuZGVuY2llcyB8fCBhcnRpZmFjdERlcGVuZGVuY2llcy5idWlsZC5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBQcm9kdWN0aW9uIERlcGxveSBkb2VzIG5vdCBoYXZlIGFueSBhcnRpZmFjdCBkZXBlbmRlbmNpZXMuICBQbGVhc2UgJyArXG4gICAgICAgICAgICAgICAgICAgICdlbnN1cmUgdGhlIFByb2R1Y3Rpb24gRGVwbG95IGJ1aWxkVHlwZSAnICtcbiAgICAgICAgICAgICAgICAgICAgYCcke2RlcGxveW1lbnRCdWlsZEluZm8uYnVpbGRUeXBlLm5hbWV9JyBpcyBhY3R1YWxseSBgICtcbiAgICAgICAgICAgICAgICAgICAgJ2EgRGVwbG95IEJ1aWxkVHlwZSBpbiB0ZWFtY2l0eS4nKTtcbiAgfVxuXG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IGFydGlmYWN0RGVwZW5kZW5jaWVzLmJ1aWxkXG4gICAgLmZpbHRlcih4ID0+IGRlcGVuZGVuY3lJZ25vcmVMaXN0LmluZGV4T2YoeC5idWlsZFR5cGVJZCkgPT09IC0xKTtcblxuICBpZiAoZGVwZW5kZW5jaWVzLmxlbmd0aCA+IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBmaW5kIHRoZSBDSSBidWlsZCBmcm9tICcke2RlcGxveW1lbnRCdWlsZEluZm8ubmFtZX0nLCBgICtcbiAgICAgICAgICAgICAgICAgICAgJ2Vuc3VyZSB0aGUgZGVwbG95bWVudCBoYXMgdGhlIENJIGxpc3RlZCBhcyBhbiBhcnRpZmFjdCBkZXBlbmRlbmN5ICcgK1xuICAgICAgICAgICAgICAgICAgICAnaW4gVGVhbUNpdHkuJyk7XG4gIH1cblxuICByZXR1cm4gdGVhbWNpdHkuZ2V0R2l0SW5mbyhkZXBlbmRlbmNpZXNbMF0uaWQpO1xufVxuXG5leHBvcnQgY2xhc3MgQ29tbWl0TGlzdFBvbGxlciB7XG4gIGNvbnN0cnVjdG9yKHRlYW1jaXR5LCBnaXRodWIsIHJvYm90LCByZXMsIGVudiA9IHt9KSB7XG4gICAgdGhpcy50ZWFtY2l0eSA9IHRlYW1jaXR5O1xuICAgIHRoaXMuZ2l0aHViID0gZ2l0aHViO1xuICAgIHRoaXMucm9ib3QgPSByb2JvdDtcbiAgICB0aGlzLnJlcyA9IHJlcztcbiAgICB0aGlzLmVudiA9IGVudjtcbiAgICB0aGlzLmNvbW1pdFJlc3VsdFN0YXR1c1N0cmF0ZWdpZXMgPSB7XG4gICAgICBkaXZlcmdlZDogJ05vIHJhbmdlIG9mIGNvbW1pdHMgZXhpc3QsIHRoZSBwcm9kdWN0aW9uIENJIGJ1aWxkcyBhcmUgZGl2ZXJnZWQuJyxcbiAgICAgIGJlaGluZDogJ1RoZSBjb21taXRzIGZvciB0aGUgYnVpbGQgeW91IGFyZSBhdHRlbXB0aW5nIHRvIGRlcGxveSBhcmUgYmVoaW5kIHRoZSAnICtcbiAgICAgICAgICAgICAgJ2hlYWQgb2YgbWFzdGVyLiBBcmUgeW91IHRyeWluZyB0byBkZXBsb3kgYW4gb2xkIGJ1aWxkPyBEb3VibGUgY2hlY2sgdGhlIENJICcgK1xuICAgICAgICAgICAgICAnYnVpbGQgIyBpcyBjb3JyZWN0IGluIHRoZSBQcm9wb3NlZCBCdWlsZChzKSBmaWVsZCBvbiB0aGUgZGVwbG95bWVudCB0YXNrLiAgJyArXG4gICAgICAgICAgICAgICcoVGhlIGFiaWxpdHkgdG8gcm9sbC1iYWNrIGEgZGVwbG95bWVudCBoYXMgbm90IGJlZW4gY3JlYXRlZCB5ZXQuKScsXG4gICAgICBpZGVudGljYWw6ICdUaGVyZSBpcyBubyBkaXNjZXJuYWJsZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGJ1aWxkIHlvdSBhcmUgZGVwbG95aW5nICcgK1xuICAgICAgICAgICAgICAgICAnYW5kIHRoZSBwcmV2aW91cyBwcm9kdWN0aW9uIGJ1aWxkXFwncyBjb21taXRzLiAgV2VyZSBwcm9qZWN0IGRlcGVuZGVuY2llcyAnICtcbiAgICAgICAgICAgICAgICAgJ3RoZSBvbmx5IHRoaW5nIHVwZGF0ZWQgaW4gdGhpcyBkZXBsb3k/IEZvbGxvdyBhbG9uZyBhdCBUVy03OTAxJ1xuICAgIH07XG4gIH1cblxuICBhc3luYyBnZXRDb21taXRMaXN0cyhwcm9kdWN0aW9uQnVpbGRMaXN0LCBuZXdCYXNlcyA9IFtdKSB7XG4gICAgY29uc3QgcmVzdWx0TGlzdCA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcHJvZHVjdGlvbkJ1aWxkTGlzdC5kZXBsb3ltZW50cy5tYXAoeCA9PiB0aGlzLnNjYW5EZXBsb3ltZW50KHgsIG5ld0Jhc2VzKSlcbiAgICApO1xuXG4gICAgY29uc3QgZXJyb3JMaXN0ID0gcmVzdWx0TGlzdC5maWx0ZXIoeCA9PiAheC5yZXN1bHQpLm1hcCh4ID0+IHguZXJyb3IpO1xuICAgIGlmIChlcnJvckxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgYWNjdW11bGF0ZUFuZFRocm93KGVycm9yTGlzdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdExpc3QubWFwKHggPT4geC5jb21taXRzKTtcbiAgfVxuXG4gIGFzeW5jIHNjYW5EZXBsb3ltZW50KGRlcGxveW1lbnRUYXJnZXQsIG5ld0Jhc2VzID0gW10pIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5yZXMuc2VuZChgU2Nhbm5pbmcgY2hhbmdlcyBmb3IgJyR7ZGVwbG95bWVudFRhcmdldC5uYW1lfSdgKTtcblxuICAgICAgY29uc3QgY29tbWl0c1Jlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0R2l0Q29tbWl0cyhkZXBsb3ltZW50VGFyZ2V0LCBuZXdCYXNlcyk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgZGVwbG95bWVudE5hbWU6IGRlcGxveW1lbnRUYXJnZXQubmFtZSxcbiAgICAgICAgcmVzdWx0OiB0cnVlLFxuICAgICAgICBjb21taXRzOiBjb21taXRzUmVzdWx0LmNvbW1pdHNcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucmVzLnNlbmQoYFN1Y2Nlc3NmdWxseSBzY2FubmVkICcke2RlcGxveW1lbnRUYXJnZXQubmFtZX0nYCk7XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLnJvYm90LmxvZ2dlci5lcnJvcihlcnIuc3RhY2spO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVzdWx0OiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGBFcnJvciBpbiBEZXBsb3ltZW50OiAnJHtkZXBsb3ltZW50VGFyZ2V0Lm5hbWV9JywgJHtlcnIubWVzc2FnZX1gXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUNvbW1pdEZpbGVNYXAoe1xuICAgIGNvbXBhcmVCdWlsZHNSZXN1bHQsXG4gICAgZmlsZUZpbHRlcmluZ0Z1bmN0aW9uXG4gIH0pIHtcbiAgICBjb25zdCBjb21taXRzID0gY29tcGFyZUJ1aWxkc1Jlc3VsdC5jb21taXRzO1xuXG4gICAgY29uc3QgZmlsZXNDaGFuZ2VkID0gYXdhaXQgUHJvbWlzZS5hbGwoY29tbWl0cy5tYXAoYXN5bmMgeCA9PiB7XG4gICAgICBjb25zdCB0cmVlUmVzdWx0ID0gYXdhaXQgdGhpcy5naXRodWIubWFrZVJlcXVlc3QoeC51cmwpO1xuXG4gICAgICBpZiAodHJlZVJlc3VsdC50cnVuY2F0ZWQpIHtcbiAgICAgICAgdGhpcy5yZXMuc2VuZChcbiAgICAgICAgICBgV0FSTklORzogQ29tbWl0IHdpdGggc2hhOiAke3guc2hhfSBpcyBodWdlIGFuZCBjYW5ub3QgYmUgYWRlcXVhdGVseSBjaGVja2VkIGlmIGl0IGlzIGAgK1xuICAgICAgICAgICdyZWxldmFudCBvciBub3QuICBUb28gbWFueSBmaWxlcyB3ZXJlIGNoYW5nZWQgYW5kIGdpdGh1YiBoYXMgdHJ1bmNhdGVkIHRoZSByZXN1bHRzLiAgJyArXG4gICAgICAgICAgJ1BsZWFzZSBjaGVjayB0aGlzIGNvbW1pdFxcJ3MgZmlsZXMgbWFudWFsbHkuJ1xuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc2hhOiB4LnNoYSxcbiAgICAgICAgICBmaWxlczogW11cbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29tbWl0VG9SZXR1cm4gPSB7XG4gICAgICAgIHNoYTogeC5zaGEsXG4gICAgICAgIGZpbGVzOiB0cmVlUmVzdWx0LmZpbGVzLm1hcCh5ID0+IHkuZmlsZW5hbWUpLmZpbHRlcih5ID0+IGZpbGVGaWx0ZXJpbmdGdW5jdGlvbih5KSlcbiAgICAgIH07XG4gICAgICByZXR1cm4gY29tbWl0VG9SZXR1cm47XG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIGZpbGVzQ2hhbmdlZC5maWx0ZXIoKHsgZmlsZXMgPSBbXSB9KSA9PiBmaWxlcy5sZW5ndGggPiAwKS5tYXAoeCA9PiB4LnNoYSk7XG4gIH1cblxuICBhc3luYyBnZXRHaXRDb21taXRzKGRlcGxveW1lbnRUYXJnZXQsIG5ld0Jhc2VzID0gW10pIHtcbiAgICBjb25zdCBxdWVyeSA9IGF3YWl0IHRoaXMudGVhbWNpdHkuZ2V0R2l0SW5mbyhkZXBsb3ltZW50VGFyZ2V0LmhlYWRCdWlsZElkKTtcblxuICAgIGNvbnN0IGJhc2VJbk5ld0Jhc2VzID0gbmV3QmFzZXMuZmlsdGVyKHggPT4geC5oYXNoID09PSBgJHtxdWVyeS5yZXBvfXwke3F1ZXJ5LnVzZXJ9YCk7XG4gICAgY29uc3QgYmFzZSA9IChiYXNlSW5OZXdCYXNlcy5sZW5ndGggPT09IDEpID8gYmFzZUluTmV3QmFzZXNbMF0uYmFzZSA6XG4gICAgICAoYXdhaXQgZ2V0TW9zdFJlY2VudFN1Y2Nlc3NmdWxCdWlsZChkZXBsb3ltZW50VGFyZ2V0LCB0aGlzLnRlYW1jaXR5LCB0aGlzLmVudiwgdGhpcy5yb2JvdCkpO1xuXG4gICAgaWYgKGJhc2UuaGVhZFNoYSkge1xuICAgICAgYmFzZS5zaGEgPSBiYXNlLmhlYWRTaGE7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jb21wYXJlQnVpbGRzKHF1ZXJ5LnNoYSwgYmFzZS5zaGEsIGJhc2UudXNlciwgYmFzZS5yZXBvKTtcblxuICAgIGxldCByZWxldmFudENvbW1pdHMgPSBbXTtcblxuICAgIGNvbnN0IHJlbGV2YW50RmlsZXNUb0RlcGxveW1lbnQgPSBhd2FpdCBnZXRSZWdleFdoaXRlbGlzdCh7XG4gICAgICBnaXRodWJBUEk6IHRoaXMuZ2l0aHViLFxuICAgICAgcmVwbzogYmFzZS5yZXBvLFxuICAgICAgdXNlcjogYmFzZS51c2VyLFxuICAgICAgc2hhOiBxdWVyeS5zaGEsXG4gICAgICBidWlsZFR5cGU6IGRlcGxveW1lbnRUYXJnZXQuZGVwbG95bWVudEJ1aWxkVHlwZUlkXG4gICAgfSkgfHwgW107XG5cbiAgICBpZiAocmVsZXZhbnRGaWxlc1RvRGVwbG95bWVudC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmaWxlRmlsdGVyZXIgPSBuZXcgRmlsZUZpbHRlcmVyKHtcbiAgICAgICAgcmVnZXhXaGl0ZUxpc3Q6IHJlbGV2YW50RmlsZXNUb0RlcGxveW1lbnRcbiAgICAgIH0pO1xuXG4gICAgICByZWxldmFudENvbW1pdHMgPSBhd2FpdCB0aGlzLmNyZWF0ZUNvbW1pdEZpbGVNYXAoe1xuICAgICAgICBjb21wYXJlQnVpbGRzUmVzdWx0OiByZXN1bHQsXG4gICAgICAgIGZpbGVGaWx0ZXJpbmdGdW5jdGlvbjogKGZpbGVuYW1lKSA9PiBmaWxlRmlsdGVyZXIubWVtb2l6ZWRGaWxlRmlsdGVyKGZpbGVuYW1lKVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5yb2JvdC5sb2dnZXIuZGVidWcoYENvbW1pdHMgd2VyZSBpbiBhICR7cmVzdWx0LnN0YXR1c30gc3RhdHVzYCk7XG5cbiAgICBpZiAoaXNWYWxpZENvbW1pdFJhbmdlKHJlc3VsdC5zdGF0dXMpKSB7XG4gICAgICBpZiAocmVsZXZhbnRDb21taXRzLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgY29tbWl0czogcmVzdWx0LmNvbW1pdHMuZmlsdGVyKCh7IHNoYSB9KSA9PiByZWxldmFudENvbW1pdHMuaW5kZXhPZihzaGEpID4gLTEpXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbW1pdFJlc3VsdFN0YXR1c1N0cmF0ZWdpZXMuaGFzT3duUHJvcGVydHkocmVzdWx0LnN0YXR1cykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcih0aGlzLmNvbW1pdFJlc3VsdFN0YXR1c1N0cmF0ZWdpZXNbcmVzdWx0LnN0YXR1c10pO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignVGhlIGNvbW1pdHMgd2VyZSBpbiBzb21lIHN0YXR1cyB3ZSBoYXZlIG5vdCBhY2NvdW50ZWQgZm9yICcgK1xuICAgICAgICAgICAgICAgICAgICBgKCR7cmVzdWx0LnN0YXR1c30pLCBwbGVhc2Ugbm90aWZ5IHRoZSBtYWludGFpbmVycyBvZiB0aGlzIGRlcGxveW1lbnQgc2NyaXB0LmApO1xuICB9XG5cbiAgYXN5bmMgY29tcGFyZUJ1aWxkcyhoZWFkLCBiYXNlLCB1c2VyLCByZXBvKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucm9ib3QubG9nZ2VyLmRlYnVnKGBDb21wYXJpbmcgY29tbWl0cyAke2Jhc2V9Li4uJHtoZWFkfSBpbiAke3VzZXJ9LyR7cmVwb31gKTtcbiAgICAgIGNvbnN0IGNvbXBhcmVSZXN1bHQgPSBhd2FpdCB0aGlzLmdpdGh1Yi5jb21wYXJlQ29tbWl0cyh7IGJhc2UsIGhlYWQsIHVzZXIsIHJlcG8gfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogY29tcGFyZVJlc3VsdC5zdGF0dXMsXG4gICAgICAgIGNvbW1pdHM6IGNvbXBhcmVSZXN1bHQuY29tbWl0cy5tYXAoeCA9PiAoe1xuICAgICAgICAgIC4uLngsXG4gICAgICAgICAgX19naXRSZXBvOiByZXBvXG4gICAgICAgIH0pKVxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIubWVzc2FnZS5pbmRleE9mKCdOb3QgRm91bmQnKSA+IC0xKSB7XG4gICAgICAgIGlmICh0aGlzLnJvYm90KSB7XG4gICAgICAgICAgdGhpcy5yb2JvdC5sb2dnZXIuZXJyb3IodHJhbnNmb3JtVGhyb3duVG9TdHJpbmcoZXJyLCBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIEdpdCBSZXBvc2l0b3J5ICR7cmVwb30gaXMgbm90IGxpbmtlZCBwcm9wZXJseSBpbiBUZWFtY2l0eS4gIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ0NoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgcmVwb3NpdG9yeSBleGlzdHMsIGFuZCB0aGF0IHRoZSBVUkwgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnc3BlY2lmaWVkIGluIHRoZSBUZWFtY2l0eSBDSSBCdWlsZCBpcyBub3QgYSByZWRpcmVjdGVkIFVSTC4nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldERlcGxveW1lbnRDb21taXRMaXN0cyhvcHRpb25zKSB7XG4vKiAgcHJvZHVjdGlvbkJ1aWxkTGlzdCxcbiAgdGVhbUNpdHlBUEksXG4gIGdpdGh1YkFQSSxcbiAgaHVib3RSZXNwb25zZSxcbiAgaHVib3RSb2JvdCxcbiAgbmV3QmFzZXMgPSBbXVxuKSB7ICovXG4gIGNvbnN0IHBvbGxlciA9IG5ldyBDb21taXRMaXN0UG9sbGVyKFxuICAgIG9wdGlvbnMudGVhbWNpdHlBUEksXG4gICAgb3B0aW9ucy5naXRodWJBUEksXG4gICAgb3B0aW9ucy5yb2JvdCxcbiAgICBvcHRpb25zLnJlcyxcbiAgICBwcm9jZXNzLmVudlxuICApO1xuXG4gIHJldHVybiB7XG4gICAgY29tbWl0TGlzdHNSZXN1bHQ6XG4gICAgICBhd2FpdCBwb2xsZXIuZ2V0Q29tbWl0TGlzdHMob3B0aW9ucy5wYXJzZWREZXBsb3ltZW50cywgb3B0aW9ucy5uZXdCYXNlcyB8fCBbXSlcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEdpdGh1YkluZm9Gcm9tRGVwbG95bWVudCh0ZWFtY2l0eUFQSSwgbGlzdE9mRGVwbG95bWVudHMgPSBbXSkge1xuICBjb25zdCBtZW1vaXplZEFyZ3VtZW50cyA9IHt9O1xuXG4gIGNvbnN0IGNvbnNvbGlkYXRlZERlcGxveW1lbnRMaXN0ID0gXy5mbGF0TWFwKGxpc3RPZkRlcGxveW1lbnRzLCB4ID0+XG4gICAgeC5wcm9kQnVpbGRGaWVsZC5kZXBsb3ltZW50cy5tYXAoeSA9PiAoeyAuLi55LCBrZXk6IHgua2V5IH0pKSxcbiAgKTtcblxuICBhc3luYyBmdW5jdGlvbiBnaXRodWJJbmZvTWVtb2l6ZUdhdGUoZGVwbG95bWVudCkge1xuICAgIGNvbnN0IGJ1aWxkSWQgPSBkZXBsb3ltZW50LmhlYWRCdWlsZElkO1xuICAgIGlmIChtZW1vaXplZEFyZ3VtZW50c1tidWlsZElkXSkge1xuICAgICAgcmV0dXJuIG1lbW9pemVkQXJndW1lbnRzW2J1aWxkSWRdO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRlYW1jaXR5QVBJLmdldEdpdEluZm8oYnVpbGRJZCk7XG4gICAgbWVtb2l6ZWRBcmd1bWVudHNbYnVpbGRJZF0gPSByZXN1bHQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGNvbnN0IGdpdGh1YkluZm8gPSBjb25zb2xpZGF0ZWREZXBsb3ltZW50TGlzdC5tYXAoYXN5bmMgeCA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2l0aHViSW5mb01lbW9pemVHYXRlKHgpO1xuICAgIG1lbW9pemVkQXJndW1lbnRzW3guaGVhZEJ1aWxkSWRdID0gcmVzdWx0O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xuXG4gIGF3YWl0IFByb21pc2UuYWxsKGdpdGh1YkluZm8pO1xuXG4gIHJldHVybiBjb25zb2xpZGF0ZWREZXBsb3ltZW50TGlzdC5tYXAoeCA9PiAoe1xuICAgIGRlcGxveW1lbnQ6IHgsXG4gICAgaGVhZFNoYTogbWVtb2l6ZWRBcmd1bWVudHNbeC5oZWFkQnVpbGRJZF0uc2hhLFxuICAgIHJlcG86IG1lbW9pemVkQXJndW1lbnRzW3guaGVhZEJ1aWxkSWRdLnJlcG8sXG4gICAgdXNlcjogbWVtb2l6ZWRBcmd1bWVudHNbeC5oZWFkQnVpbGRJZF0udXNlclxuICB9KSk7XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90b29sLXRlYW1jaXR5LXJlcXVlc3RzLmpzIl0sIm5hbWVzIjpbInRlYW1jaXR5IiwiZW52Iiwicm9ib3QiLCJuYW1lIiwiZGVwbG95bWVudEJ1aWxkVHlwZUlkIiwiZGVwZW5kZW5jeUlnbm9yZUxpc3QiLCJIVUJPVF9URUFNQ0lUWV9ERVBFTkRFTkNZX0JMQUNLTElTVCIsInNwbGl0IiwiZmV0Y2hTdWNjZXNzZnVsQnVpbGRzIiwicmVzcG9uc2UiLCJzdWNjZXNzZnVsQnVpbGRzIiwiYnVpbGQiLCJsZW5ndGgiLCJmZXRjaEJ1aWxkVHlwZUluZm8iLCJvdGhlclJlc3BvbnNlIiwiZmlsdGVyIiwiaW5kZXhPZiIsIngiLCJpZCIsIm90aGVyQnVpbGRzIiwiZ2V0R2l0SW5mbyIsImluZm8iLCJmaXJzdFRpbWVEZXBsb3ltZW50IiwiZGVwbG95bWVudEJ1aWxkSWQiLCJmZXRjaEJ1aWxkSW5mbyIsImRlcGxveW1lbnRCdWlsZEluZm8iLCJhcnRpZmFjdERlcGVuZGVuY2llcyIsIkVycm9yIiwiYnVpbGRUeXBlIiwiZGVwZW5kZW5jaWVzIiwiYnVpbGRUeXBlSWQiLCJnZXRNb3N0UmVjZW50U3VjY2Vzc2Z1bEJ1aWxkIiwib3B0aW9ucyIsInBvbGxlciIsIkNvbW1pdExpc3RQb2xsZXIiLCJ0ZWFtY2l0eUFQSSIsImdpdGh1YkFQSSIsInJlcyIsInByb2Nlc3MiLCJnZXRDb21taXRMaXN0cyIsInBhcnNlZERlcGxveW1lbnRzIiwibmV3QmFzZXMiLCJjb21taXRMaXN0c1Jlc3VsdCIsImdldERlcGxveW1lbnRDb21taXRMaXN0cyIsImRlcGxveW1lbnQiLCJidWlsZElkIiwiaGVhZEJ1aWxkSWQiLCJtZW1vaXplZEFyZ3VtZW50cyIsInJlc3VsdCIsImdpdGh1YkluZm9NZW1vaXplR2F0ZSIsImxpc3RPZkRlcGxveW1lbnRzIiwiY29uc29saWRhdGVkRGVwbG95bWVudExpc3QiLCJmbGF0TWFwIiwicHJvZEJ1aWxkRmllbGQiLCJkZXBsb3ltZW50cyIsIm1hcCIsInkiLCJrZXkiLCJnaXRodWJJbmZvIiwiYWxsIiwiaGVhZFNoYSIsInNoYSIsInJlcG8iLCJ1c2VyIiwiZ2V0R2l0aHViSW5mb0Zyb21EZXBsb3ltZW50IiwiZ2l0aHViIiwiY29tbWl0UmVzdWx0U3RhdHVzU3RyYXRlZ2llcyIsImRpdmVyZ2VkIiwiYmVoaW5kIiwiaWRlbnRpY2FsIiwicHJvZHVjdGlvbkJ1aWxkTGlzdCIsInNjYW5EZXBsb3ltZW50IiwicmVzdWx0TGlzdCIsImVycm9yTGlzdCIsImVycm9yIiwiY29tbWl0cyIsImRlcGxveW1lbnRUYXJnZXQiLCJzZW5kIiwiZ2V0R2l0Q29tbWl0cyIsImNvbW1pdHNSZXN1bHQiLCJkZXBsb3ltZW50TmFtZSIsImxvZ2dlciIsInN0YWNrIiwibWVzc2FnZSIsImNvbXBhcmVCdWlsZHNSZXN1bHQiLCJmaWxlRmlsdGVyaW5nRnVuY3Rpb24iLCJtYWtlUmVxdWVzdCIsInVybCIsInRyZWVSZXN1bHQiLCJ0cnVuY2F0ZWQiLCJmaWxlcyIsImNvbW1pdFRvUmV0dXJuIiwiZmlsZW5hbWUiLCJmaWxlc0NoYW5nZWQiLCJxdWVyeSIsImJhc2VJbk5ld0Jhc2VzIiwiaGFzaCIsImJhc2UiLCJnZXRGaXJzdENvbW1pdEluUmVwb1NoYSIsImNvbXBhcmVCdWlsZHMiLCJyZWxldmFudENvbW1pdHMiLCJyZWxldmFudEZpbGVzVG9EZXBsb3ltZW50IiwiZmlsZUZpbHRlcmVyIiwicmVnZXhXaGl0ZUxpc3QiLCJjcmVhdGVDb21taXRGaWxlTWFwIiwibWVtb2l6ZWRGaWxlRmlsdGVyIiwiZGVidWciLCJzdGF0dXMiLCJoYXNPd25Qcm9wZXJ0eSIsImhlYWQiLCJjb21wYXJlQ29tbWl0cyIsImNvbXBhcmVSZXN1bHQiLCJfX2dpdFJlcG8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTQTs7Ozs7Ozs7Ozs7Ozs7d0VBYUEsd0JBQTZFQSxRQUE3RSxFQUF1RkMsR0FBdkYsRUFBNEZDLEtBQTVGO0FBQUEsUUFBOENDLElBQTlDLFNBQThDQSxJQUE5QztBQUFBLFFBQW9EQyxxQkFBcEQsU0FBb0RBLHFCQUFwRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDUUMsZ0NBRFIsR0FDK0JKLElBQUlLLG1DQUFKLEdBQ3pCTCxJQUFJSyxtQ0FBSixDQUF3Q0MsS0FBeEMsQ0FBOEMsR0FBOUMsQ0FEeUIsR0FFekIsRUFITjtBQUFBO0FBQUEsbUJBS3lCUCxTQUFTUSxxQkFBVCxDQUErQkoscUJBQS9CLENBTHpCOztBQUFBO0FBS1FLLG9CQUxSO0FBTVFDLDRCQU5SLEdBTTJCRCxTQUFTRSxLQUFULElBQWtCLEVBTjdDOztBQUFBLGtCQVFNRCxpQkFBaUJFLE1BQWpCLEdBQTBCLENBUmhDO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsbUJBU2dDWixTQUFTYSxrQkFBVCxDQUE0QlQscUJBQTVCLENBVGhDOztBQUFBO0FBU1VVLHlCQVRWO0FBQUE7QUFBQSxtQkFVOEJkLFNBQVNRLHFCQUFULENBQ3hCTSxjQUFjLHVCQUFkLEVBQXVDLHFCQUF2QyxFQUNDQyxNQURELENBQ1E7QUFBQSxxQkFBS1YscUJBQXFCVyxPQUFyQixDQUE2QkMsRUFBRSxrQkFBRixFQUFzQkMsRUFBbkQsTUFBMkQsQ0FBQyxDQUFqRTtBQUFBLGFBRFIsRUFFQyxDQUZELEVBRUksa0JBRkosRUFFd0JBLEVBSEEsQ0FWOUI7O0FBQUE7QUFVVUMsdUJBVlY7QUFBQTtBQUFBLG1CQWV1Qm5CLFNBQVNvQixVQUFULENBQ2pCRCxZQUFZUixLQUFaLENBQWtCLENBQWxCLEVBQXFCTyxFQURKLENBZnZCOztBQUFBO0FBZVVHLGdCQWZWO0FBQUEsd0VBbUJTQSxJQW5CVDtBQW9CTUMsbUNBQXFCO0FBcEIzQjs7QUFBQTtBQXdCUUMsNkJBeEJSLEdBd0I0QmIsaUJBQWlCLENBQWpCLEVBQW9CUSxFQXhCaEQ7QUFBQTtBQUFBLG1CQTBCb0NsQixTQUFTd0IsY0FBVCxDQUF3QkQsaUJBQXhCLENBMUJwQzs7QUFBQTtBQTBCUUUsK0JBMUJSO0FBNEJRQyxnQ0E1QlIsR0E0QitCRCxvQkFBb0IsdUJBQXBCLENBNUIvQjs7QUFBQSxrQkE4Qk0sQ0FBQ0Msb0JBQUQsSUFBeUJBLHFCQUFxQmYsS0FBckIsQ0FBMkJDLE1BQTNCLEtBQXNDLENBOUJyRTtBQUFBO0FBQUE7QUFBQTs7QUFBQSxrQkErQlUsSUFBSWUsS0FBSixDQUFVLDRFQUNBLHlDQURBLFdBRUlGLG9CQUFvQkcsU0FBcEIsQ0FBOEJ6QixJQUZsQyx3QkFHQSxpQ0FIVixDQS9CVjs7QUFBQTtBQXFDUTBCLHdCQXJDUixHQXFDdUJILHFCQUFxQmYsS0FBckIsQ0FDbEJJLE1BRGtCLENBQ1g7QUFBQSxxQkFBS1YscUJBQXFCVyxPQUFyQixDQUE2QkMsRUFBRWEsV0FBL0IsTUFBZ0QsQ0FBQyxDQUF0RDtBQUFBLGFBRFcsQ0FyQ3ZCOztBQUFBLGtCQXdDTUQsYUFBYWpCLE1BQWIsR0FBc0IsQ0F4QzVCO0FBQUE7QUFBQTtBQUFBOztBQUFBLGtCQXlDVSxJQUFJZSxLQUFKLENBQVUsd0NBQXFDRixvQkFBb0J0QixJQUF6RCxZQUNBLG9FQURBLEdBRUEsY0FGVixDQXpDVjs7QUFBQTtBQUFBLDZDQThDU0gsU0FBU29CLFVBQVQsQ0FBb0JTLGFBQWEsQ0FBYixFQUFnQlgsRUFBcEMsQ0E5Q1Q7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRzs7a0JBQWVhLDRCOzs7Ozs7MEVBbU9SLGtCQUF3Q0MsT0FBeEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ1A7Ozs7Ozs7QUFPUUMsa0JBUkQsR0FRVSxJQUFJQyxnQkFBSixDQUNiRixRQUFRRyxXQURLLEVBRWJILFFBQVFJLFNBRkssRUFHYkosUUFBUTlCLEtBSEssRUFJYjhCLFFBQVFLLEdBSkssRUFLYkMsUUFBUXJDLEdBTEssQ0FSVjtBQUFBO0FBQUEsbUJBa0JLZ0MsT0FBT00sY0FBUCxDQUFzQlAsUUFBUVEsaUJBQTlCLEVBQWlEUixRQUFRUyxRQUFSLElBQW9CLEVBQXJFLENBbEJMOztBQUFBO0FBQUE7QUFBQTtBQWlCSEMsK0JBakJHO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRzs7a0JBQWVDLHdCOzs7Ozs7MEVBc0JmLG1CQUEyQ1IsV0FBM0M7QUFBQTs7QUFBQTtBQUFBLDhFQU9MLG1CQUFxQ1MsVUFBckM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ1FDLHVCQURSLEdBQ2tCRCxXQUFXRSxXQUQ3Qjs7QUFBQSxxQkFFTUMsa0JBQWtCRixPQUFsQixDQUZOO0FBQUE7QUFBQTtBQUFBOztBQUFBLG1EQUdXRSxrQkFBa0JGLE9BQWxCLENBSFg7O0FBQUE7QUFBQTtBQUFBLHVCQU11QlYsWUFBWWYsVUFBWixDQUF1QnlCLE9BQXZCLENBTnZCOztBQUFBO0FBTVFHLHNCQU5SOztBQU9FRCxrQ0FBa0JGLE9BQWxCLElBQTZCRyxNQUE3QjtBQVBGLG1EQVFTQSxNQVJUOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE9BUEs7O0FBQUEsc0JBT1VDLHFCQVBWO0FBQUE7QUFBQTtBQUFBOztBQUFBLFFBQXdEQyxpQkFBeEQsdUVBQTRFLEVBQTVFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNDSCw2QkFERCxHQUNxQixFQURyQjtBQUdDSSxzQ0FIRCxHQUc4QixpQkFBRUMsT0FBRixDQUFVRixpQkFBVixFQUE2QjtBQUFBLHFCQUM5RGpDLEVBQUVvQyxjQUFGLENBQWlCQyxXQUFqQixDQUE2QkMsR0FBN0IsQ0FBaUM7QUFBQSxrREFBV0MsQ0FBWCxJQUFjQyxLQUFLeEMsRUFBRXdDLEdBQXJCO0FBQUEsZUFBakMsQ0FEOEQ7QUFBQSxhQUE3QixDQUg5QjtBQWtCQ0Msc0JBbEJELEdBa0JjUCwyQkFBMkJJLEdBQTNCO0FBQUEsc0ZBQStCLG1CQUFNdEMsQ0FBTjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLCtCQUMzQmdDLHNCQUFzQmhDLENBQXRCLENBRDJCOztBQUFBO0FBQzFDK0IsOEJBRDBDOztBQUVoREQsMENBQWtCOUIsRUFBRTZCLFdBQXBCLElBQW1DRSxNQUFuQztBQUZnRCwyREFHekNBLE1BSHlDOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBQS9COztBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQWxCZDtBQUFBO0FBQUEsbUJBd0JDLGtCQUFRVyxHQUFSLENBQVlELFVBQVosQ0F4QkQ7O0FBQUE7QUFBQSwrQ0EwQkVQLDJCQUEyQkksR0FBM0IsQ0FBK0I7QUFBQSxxQkFBTTtBQUMxQ1gsNEJBQVkzQixDQUQ4QjtBQUUxQzJDLHlCQUFTYixrQkFBa0I5QixFQUFFNkIsV0FBcEIsRUFBaUNlLEdBRkE7QUFHMUNDLHNCQUFNZixrQkFBa0I5QixFQUFFNkIsV0FBcEIsRUFBaUNnQixJQUhHO0FBSTFDQyxzQkFBTWhCLGtCQUFrQjlCLEVBQUU2QixXQUFwQixFQUFpQ2lCO0FBSkcsZUFBTjtBQUFBLGFBQS9CLENBMUJGOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEc7O2tCQUFlQywyQjs7Ozs7QUEvUXRCOztBQUNBOztBQUNBOzs7O0FBQ0E7O0FBSUE7Ozs7OztJQWdFYTlCLGdCLFdBQUFBLGdCO0FBQ1gsNEJBQVlsQyxRQUFaLEVBQXNCaUUsTUFBdEIsRUFBOEIvRCxLQUE5QixFQUFxQ21DLEdBQXJDLEVBQW9EO0FBQUEsUUFBVnBDLEdBQVUsdUVBQUosRUFBSTtBQUFBOztBQUNsRCxTQUFLRCxRQUFMLEdBQWdCQSxRQUFoQjtBQUNBLFNBQUtpRSxNQUFMLEdBQWNBLE1BQWQ7QUFDQSxTQUFLL0QsS0FBTCxHQUFhQSxLQUFiO0FBQ0EsU0FBS21DLEdBQUwsR0FBV0EsR0FBWDtBQUNBLFNBQUtwQyxHQUFMLEdBQVdBLEdBQVg7QUFDQSxTQUFLaUUsNEJBQUwsR0FBb0M7QUFDbENDLGdCQUFVLG1FQUR3QjtBQUVsQ0MsY0FBUSwyRUFDQSw2RUFEQSxHQUVBLDZFQUZBLEdBR0EsbUVBTDBCO0FBTWxDQyxpQkFBVyw0RUFDQSwyRUFEQSxHQUVBO0FBUnVCLEtBQXBDO0FBVUQ7Ozs7OytGQUVvQkMsbUI7OztZQUFxQjdCLFEsdUVBQVcsRTs7Ozs7Ozt1QkFDMUIsa0JBQVFrQixHQUFSLENBQ3ZCVyxvQkFBb0JoQixXQUFwQixDQUFnQ0MsR0FBaEMsQ0FBb0M7QUFBQSx5QkFBSyxNQUFLZ0IsY0FBTCxDQUFvQnRELENBQXBCLEVBQXVCd0IsUUFBdkIsQ0FBTDtBQUFBLGlCQUFwQyxDQUR1QixDOzs7QUFBbkIrQiwwQjtBQUlBQyx5QixHQUFZRCxXQUFXekQsTUFBWCxDQUFrQjtBQUFBLHlCQUFLLENBQUNFLEVBQUUrQixNQUFSO0FBQUEsaUJBQWxCLEVBQWtDTyxHQUFsQyxDQUFzQztBQUFBLHlCQUFLdEMsRUFBRXlELEtBQVA7QUFBQSxpQkFBdEMsQzs7QUFDbEIsb0JBQUlELFVBQVU3RCxNQUFWLEdBQW1CLENBQXZCLEVBQTBCO0FBQ3hCLDREQUFtQjZELFNBQW5CO0FBQ0Q7O2tEQUVNRCxXQUFXakIsR0FBWCxDQUFlO0FBQUEseUJBQUt0QyxFQUFFMEQsT0FBUDtBQUFBLGlCQUFmLEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0ZBR1lDLGdCO1lBQWtCbkMsUSx1RUFBVyxFOzs7Ozs7OztBQUU5QyxxQkFBS0osR0FBTCxDQUFTd0MsSUFBVCw2QkFBdUNELGlCQUFpQnpFLElBQXhEOzs7dUJBRTRCLEtBQUsyRSxhQUFMLENBQW1CRixnQkFBbkIsRUFBcUNuQyxRQUFyQyxDOzs7QUFBdEJzQyw2QjtBQUVBL0Isc0IsR0FBUztBQUNiZ0Msa0NBQWdCSixpQkFBaUJ6RSxJQURwQjtBQUViNkMsMEJBQVEsSUFGSztBQUdiMkIsMkJBQVNJLGNBQWNKO0FBSFYsaUI7OztBQU1mLHFCQUFLdEMsR0FBTCxDQUFTd0MsSUFBVCw2QkFBdUNELGlCQUFpQnpFLElBQXhEOztrREFFTzZDLE07Ozs7OztBQUVQLHFCQUFLOUMsS0FBTCxDQUFXK0UsTUFBWCxDQUFrQlAsS0FBbEIsQ0FBd0IsYUFBSVEsS0FBNUI7a0RBQ087QUFDTGxDLDBCQUFRLEtBREg7QUFFTDBCLHFEQUFnQ0UsaUJBQWlCekUsSUFBakQsWUFBMkQsYUFBSWdGO0FBRjFELGlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBUVRDLG1CLFNBQUFBLG1CO1lBQ0FDLHFCLFNBQUFBLHFCOzs7Ozs7QUFFTVYsdUIsR0FBVVMsb0JBQW9CVCxPOzt1QkFFVCxrQkFBUWhCLEdBQVIsQ0FBWWdCLFFBQVFwQixHQUFSO0FBQUEseUZBQVksa0JBQU10QyxDQUFOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUNBQ3hCLE9BQUtnRCxNQUFMLENBQVlxQixXQUFaLENBQXdCckUsRUFBRXNFLEdBQTFCLENBRHdCOztBQUFBO0FBQzNDQyxzQ0FEMkM7O0FBQUEsaUNBRzdDQSxXQUFXQyxTQUhrQztBQUFBO0FBQUE7QUFBQTs7QUFJL0MsbUNBQUtwRCxHQUFMLENBQVN3QyxJQUFULENBQ0UsK0JBQTZCNUQsRUFBRTRDLEdBQS9CLDJEQUNBLHVGQURBLEdBRUEsNkNBSEY7O0FBSitDLDhEQVV4QztBQUNMQSxtQ0FBSzVDLEVBQUU0QyxHQURGO0FBRUw2QixxQ0FBTztBQUZGLDZCQVZ3Qzs7QUFBQTtBQWdCM0NDLDBDQWhCMkMsR0FnQjFCO0FBQ3JCOUIsbUNBQUs1QyxFQUFFNEMsR0FEYztBQUVyQjZCLHFDQUFPRixXQUFXRSxLQUFYLENBQWlCbkMsR0FBakIsQ0FBcUI7QUFBQSx1Q0FBS0MsRUFBRW9DLFFBQVA7QUFBQSwrQkFBckIsRUFBc0M3RSxNQUF0QyxDQUE2QztBQUFBLHVDQUFLc0Usc0JBQXNCN0IsQ0FBdEIsQ0FBTDtBQUFBLCtCQUE3QztBQUZjLDZCQWhCMEI7QUFBQSw4REFvQjFDbUMsY0FwQjBDOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUFaOztBQUFBO0FBQUE7QUFBQTtBQUFBLG9CQUFaLEM7OztBQUFyQkUsNEI7a0RBdUJDQSxhQUFhOUUsTUFBYixDQUFvQjtBQUFBLDBDQUFHMkUsS0FBSDtBQUFBLHNCQUFHQSxLQUFILCtCQUFXLEVBQVg7QUFBQSx5QkFBb0JBLE1BQU05RSxNQUFOLEdBQWUsQ0FBbkM7QUFBQSxpQkFBcEIsRUFBMEQyQyxHQUExRCxDQUE4RDtBQUFBLHlCQUFLdEMsRUFBRTRDLEdBQVA7QUFBQSxpQkFBOUQsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRkFHV2UsZ0I7OztZQUFrQm5DLFEsdUVBQVcsRTs7Ozs7Ozt1QkFDM0IsS0FBS3pDLFFBQUwsQ0FBY29CLFVBQWQsQ0FBeUJ3RCxpQkFBaUI5QixXQUExQyxDOzs7QUFBZGdELHFCO0FBRUFDLDhCLEdBQWlCdEQsU0FBUzFCLE1BQVQsQ0FBZ0I7QUFBQSx5QkFBS0UsRUFBRStFLElBQUYsS0FBY0YsTUFBTWhDLElBQXBCLFNBQTRCZ0MsTUFBTS9CLElBQXZDO0FBQUEsaUJBQWhCLEM7O3NCQUNUZ0MsZUFBZW5GLE1BQWYsS0FBMEIsQzs7Ozs7K0JBQUttRixlQUFlLENBQWYsRUFBa0JFLEk7Ozs7Ozt1QkFDdERsRSw2QkFBNkI2QyxnQkFBN0IsRUFBK0MsS0FBSzVFLFFBQXBELEVBQThELEtBQUtDLEdBQW5FLEVBQXdFLEtBQUtDLEtBQTdFLEM7Ozs7OztBQURIK0Ysb0I7OztBQUdOLG9CQUFJQSxLQUFLckMsT0FBVCxFQUFrQjtBQUNoQnFDLHVCQUFLcEMsR0FBTCxHQUFXb0MsS0FBS3JDLE9BQWhCO0FBQ0Q7O3FCQUVHcUMsS0FBSzNFLG1COzs7OztBQUNQLHFCQUFLZSxHQUFMLENBQVN3QyxJQUFULDhDQUF5RGlCLE1BQU1oQyxJQUEvRDs7dUJBQ2lCLEtBQUtHLE1BQUwsQ0FBWWlDLHVCQUFaLENBQW9DO0FBQ25EcEMsd0JBQU1tQyxLQUFLbkMsSUFEd0M7QUFFbkRDLHdCQUFNa0MsS0FBS2xDO0FBRndDLGlCQUFwQyxDOzs7QUFBakJrQyxxQkFBS3BDLEc7Ozs7dUJBTWMsS0FBS3NDLGFBQUwsQ0FBbUJMLE1BQU1qQyxHQUF6QixFQUE4Qm9DLEtBQUtwQyxHQUFuQyxFQUF3Q29DLEtBQUtsQyxJQUE3QyxFQUFtRGtDLEtBQUtuQyxJQUF4RCxDOzs7QUFBZmQsc0I7QUFFRm9ELCtCLEdBQWtCLEU7O3VCQUVrQixzQ0FBa0I7QUFDeERoRSw2QkFBVyxLQUFLNkIsTUFEd0M7QUFFeERILHdCQUFNbUMsS0FBS25DLElBRjZDO0FBR3hEQyx3QkFBTWtDLEtBQUtsQyxJQUg2QztBQUl4REYsdUJBQUtpQyxNQUFNakMsR0FKNkM7QUFLeERqQyw2QkFBV2dELGlCQUFpQnhFO0FBTDRCLGlCQUFsQixDOzs7Ozs7Ozs7OytCQU1sQyxFOzs7QUFOQWlHLHlDOztzQkFRRkEsMEJBQTBCekYsTUFBMUIsR0FBbUMsQzs7Ozs7Ozs7Ozs7QUFDL0IwRixzQyxHQUFlLGdDQUFpQjtBQUNwQ0MsNENBQWdCRjtBQURvQiwyQkFBakIsQzs7aUNBSUcsT0FBS0csbUJBQUwsQ0FBeUI7QUFDL0NwQixpREFBcUJwQyxNQUQwQjtBQUUvQ3FDLG1EQUF1QiwrQkFBQ08sUUFBRDtBQUFBLHFDQUFjVSxhQUFhRyxrQkFBYixDQUFnQ2IsUUFBaEMsQ0FBZDtBQUFBO0FBRndCLDJCQUF6QixDOzs7QUFBeEJRLHlDOzs7Ozs7Ozs7Ozs7QUFNRixxQkFBS2xHLEtBQUwsQ0FBVytFLE1BQVgsQ0FBa0J5QixLQUFsQix3QkFBNkMxRCxPQUFPMkQsTUFBcEQ7O3FCQUVJLG1DQUFtQjNELE9BQU8yRCxNQUExQixDOzs7OztzQkFDRVAsZ0JBQWdCeEYsTUFBaEIsSUFBMEIsQzs7Ozs7a0RBQ3JCb0MsTTs7OzZFQUlKQSxNO0FBQ0gyQiwyQkFBUzNCLE9BQU8yQixPQUFQLENBQWU1RCxNQUFmLENBQXNCO0FBQUEsd0JBQUc4QyxHQUFILFVBQUdBLEdBQUg7QUFBQSwyQkFBYXVDLGdCQUFnQnBGLE9BQWhCLENBQXdCNkMsR0FBeEIsSUFBK0IsQ0FBQyxDQUE3QztBQUFBLG1CQUF0Qjs7OztxQkFJVCxLQUFLSyw0QkFBTCxDQUFrQzBDLGNBQWxDLENBQWlENUQsT0FBTzJELE1BQXhELEM7Ozs7O3NCQUNJLElBQUloRixLQUFKLENBQVUsS0FBS3VDLDRCQUFMLENBQWtDbEIsT0FBTzJELE1BQXpDLENBQVYsQzs7O3NCQUdGLElBQUloRixLQUFKLENBQVUsc0VBQ0lxQixPQUFPMkQsTUFEWCxpRUFBVixDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dHQUlZRSxJLEVBQU1aLEksRUFBTWxDLEksRUFBTUQsSTs7Ozs7Ozs7QUFFbEMscUJBQUs1RCxLQUFMLENBQVcrRSxNQUFYLENBQWtCeUIsS0FBbEIsd0JBQTZDVCxJQUE3QyxXQUF1RFksSUFBdkQsWUFBa0U5QyxJQUFsRSxTQUEwRUQsSUFBMUU7O3VCQUM0QixLQUFLRyxNQUFMLENBQVk2QyxjQUFaLENBQTJCLEVBQUViLFVBQUYsRUFBUVksVUFBUixFQUFjOUMsVUFBZCxFQUFvQkQsVUFBcEIsRUFBM0IsQzs7O0FBQXRCaUQsNkI7a0RBRUM7QUFDTEosMEJBQVFJLGNBQWNKLE1BRGpCO0FBRUxoQywyQkFBU29DLGNBQWNwQyxPQUFkLENBQXNCcEIsR0FBdEIsQ0FBMEI7QUFBQSxzREFDOUJ0QyxDQUQ4QjtBQUVqQytGLGlDQUFXbEQ7QUFGc0I7QUFBQSxtQkFBMUI7QUFGSixpQjs7Ozs7O3NCQVFILGFBQUlxQixPQUFKLENBQVluRSxPQUFaLENBQW9CLFdBQXBCLElBQW1DLENBQUMsQzs7Ozs7QUFDdEMsb0JBQUksS0FBS2QsS0FBVCxFQUFnQjtBQUNkLHVCQUFLQSxLQUFMLENBQVcrRSxNQUFYLENBQWtCUCxLQUFsQixDQUF3Qiw2Q0FBNkIsS0FBN0IsQ0FBeEI7QUFDRDtzQkFDSyxJQUFJL0MsS0FBSixDQUFVLHdCQUFzQm1DLElBQXRCLDhDQUNBLDZEQURBLEdBRUEsNkRBRlYsQyIsImZpbGUiOiJ0b29sLXRlYW1jaXR5LXJlcXVlc3RzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNWYWxpZENvbW1pdFJhbmdlIH0gZnJvbSAnLi9naXRodWItQVBJJztcbmltcG9ydCB7IGFjY3VtdWxhdGVBbmRUaHJvdyB9IGZyb20gJy4vZXJyb3ItYWNjdW11bGF0b3InO1xuaW1wb3J0IHRyYW5zZm9ybVRocm93blRvU3RyaW5nIGZyb20gJy4vZXJyb3ItY29udmVyc2lvbic7XG5pbXBvcnQge1xuICBGaWxlRmlsdGVyZXIsXG4gIGdldFJlZ2V4V2hpdGVsaXN0XG59IGZyb20gJy4vZmlsZS1maWx0ZXJpbmcnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLypcbiAqIEltcG9ydGFudCB2YXJpYWJsZSBuYW1lczpcbiAqXG4gKiBQcmVmaXhlczpcbiAqIC0gaGVhZDogVGhlIHNoYS9idWlsZCB3ZSB3aXNoIHRvIGRlcGxveSAoc2hhIGlmIG5vIHN1ZmZpeClcbiAqIC0gYmFzZTogVGhlIHNoYS9idWlsZCB3ZSBwcmV2aW91c2x5IGRlcGxveWVkIChzaGEgaWYgbm8gc3VmZml4KVxuICogLSBkZXBsb3ltZW50OiBUaGUgYnVpbGQgY29uZmlndXJhdGlvbiB3ZSB1c2UgdG8gZGVwbG95XG4gKlxuICogU3VmZml4ZXM6XG4gKiAtIEJ1aWxkSWQ6IEEgVGVhbUNpdHkgQnVpbGQgSWRcbiAqIC0gQnVpbGRUeXBlSWQ6IEEgVGVhbUNpdHkgQnVpbGQgQ29uZmlndXJhdGlvbiBJZFxuICovXG5cbmFzeW5jIGZ1bmN0aW9uIGdldE1vc3RSZWNlbnRTdWNjZXNzZnVsQnVpbGQoeyBuYW1lLCBkZXBsb3ltZW50QnVpbGRUeXBlSWQgfSwgdGVhbWNpdHksIGVudiwgcm9ib3QpIHtcbiAgY29uc3QgZGVwZW5kZW5jeUlnbm9yZUxpc3QgPSBlbnYuSFVCT1RfVEVBTUNJVFlfREVQRU5ERU5DWV9CTEFDS0xJU1RcbiAgICA/IGVudi5IVUJPVF9URUFNQ0lUWV9ERVBFTkRFTkNZX0JMQUNLTElTVC5zcGxpdCgnLCcpXG4gICAgOiBbXTtcblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRlYW1jaXR5LmZldGNoU3VjY2Vzc2Z1bEJ1aWxkcyhkZXBsb3ltZW50QnVpbGRUeXBlSWQpO1xuICBjb25zdCBzdWNjZXNzZnVsQnVpbGRzID0gcmVzcG9uc2UuYnVpbGQgfHwgW107XG5cbiAgaWYgKHN1Y2Nlc3NmdWxCdWlsZHMubGVuZ3RoIDwgMSkge1xuICAgIGNvbnN0IG90aGVyUmVzcG9uc2UgPSBhd2FpdCB0ZWFtY2l0eS5mZXRjaEJ1aWxkVHlwZUluZm8oZGVwbG95bWVudEJ1aWxkVHlwZUlkKTtcbiAgICBjb25zdCBvdGhlckJ1aWxkcyA9IGF3YWl0IHRlYW1jaXR5LmZldGNoU3VjY2Vzc2Z1bEJ1aWxkcyhcbiAgICAgIG90aGVyUmVzcG9uc2VbJ2FydGlmYWN0LWRlcGVuZGVuY2llcyddWydhcnRpZmFjdC1kZXBlbmRlbmN5J11cbiAgICAgIC5maWx0ZXIoeCA9PiBkZXBlbmRlbmN5SWdub3JlTGlzdC5pbmRleE9mKHhbJ3NvdXJjZS1idWlsZFR5cGUnXS5pZCkgPT09IC0xKVxuICAgICAgWzBdWydzb3VyY2UtYnVpbGRUeXBlJ10uaWRcbiAgICApO1xuICAgIGNvbnN0IGluZm8gPSBhd2FpdCB0ZWFtY2l0eS5nZXRHaXRJbmZvKFxuICAgICAgb3RoZXJCdWlsZHMuYnVpbGRbMF0uaWRcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5pbmZvLFxuICAgICAgZmlyc3RUaW1lRGVwbG95bWVudDogdHJ1ZVxuICAgIH07XG4gIH1cblxuICBjb25zdCBkZXBsb3ltZW50QnVpbGRJZCA9IHN1Y2Nlc3NmdWxCdWlsZHNbMF0uaWQ7XG5cbiAgY29uc3QgZGVwbG95bWVudEJ1aWxkSW5mbyA9IGF3YWl0IHRlYW1jaXR5LmZldGNoQnVpbGRJbmZvKGRlcGxveW1lbnRCdWlsZElkKTtcblxuICBjb25zdCBhcnRpZmFjdERlcGVuZGVuY2llcyA9IGRlcGxveW1lbnRCdWlsZEluZm9bJ2FydGlmYWN0LWRlcGVuZGVuY2llcyddO1xuXG4gIGlmICghYXJ0aWZhY3REZXBlbmRlbmNpZXMgfHwgYXJ0aWZhY3REZXBlbmRlbmNpZXMuYnVpbGQubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgUHJvZHVjdGlvbiBEZXBsb3kgZG9lcyBub3QgaGF2ZSBhbnkgYXJ0aWZhY3QgZGVwZW5kZW5jaWVzLiAgUGxlYXNlICcgK1xuICAgICAgICAgICAgICAgICAgICAnZW5zdXJlIHRoZSBQcm9kdWN0aW9uIERlcGxveSBidWlsZFR5cGUgJyArXG4gICAgICAgICAgICAgICAgICAgIGAnJHtkZXBsb3ltZW50QnVpbGRJbmZvLmJ1aWxkVHlwZS5uYW1lfScgaXMgYWN0dWFsbHkgYCArXG4gICAgICAgICAgICAgICAgICAgICdhIERlcGxveSBCdWlsZFR5cGUgaW4gdGVhbWNpdHkuJyk7XG4gIH1cblxuICBjb25zdCBkZXBlbmRlbmNpZXMgPSBhcnRpZmFjdERlcGVuZGVuY2llcy5idWlsZFxuICAgIC5maWx0ZXIoeCA9PiBkZXBlbmRlbmN5SWdub3JlTGlzdC5pbmRleE9mKHguYnVpbGRUeXBlSWQpID09PSAtMSk7XG5cbiAgaWYgKGRlcGVuZGVuY2llcy5sZW5ndGggPiAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZmluZCB0aGUgQ0kgYnVpbGQgZnJvbSAnJHtkZXBsb3ltZW50QnVpbGRJbmZvLm5hbWV9JywgYCArXG4gICAgICAgICAgICAgICAgICAgICdlbnN1cmUgdGhlIGRlcGxveW1lbnQgaGFzIHRoZSBDSSBsaXN0ZWQgYXMgYW4gYXJ0aWZhY3QgZGVwZW5kZW5jeSAnICtcbiAgICAgICAgICAgICAgICAgICAgJ2luIFRlYW1DaXR5LicpO1xuICB9XG5cbiAgcmV0dXJuIHRlYW1jaXR5LmdldEdpdEluZm8oZGVwZW5kZW5jaWVzWzBdLmlkKTtcbn1cblxuZXhwb3J0IGNsYXNzIENvbW1pdExpc3RQb2xsZXIge1xuICBjb25zdHJ1Y3Rvcih0ZWFtY2l0eSwgZ2l0aHViLCByb2JvdCwgcmVzLCBlbnYgPSB7fSkge1xuICAgIHRoaXMudGVhbWNpdHkgPSB0ZWFtY2l0eTtcbiAgICB0aGlzLmdpdGh1YiA9IGdpdGh1YjtcbiAgICB0aGlzLnJvYm90ID0gcm9ib3Q7XG4gICAgdGhpcy5yZXMgPSByZXM7XG4gICAgdGhpcy5lbnYgPSBlbnY7XG4gICAgdGhpcy5jb21taXRSZXN1bHRTdGF0dXNTdHJhdGVnaWVzID0ge1xuICAgICAgZGl2ZXJnZWQ6ICdObyByYW5nZSBvZiBjb21taXRzIGV4aXN0LCB0aGUgcHJvZHVjdGlvbiBDSSBidWlsZHMgYXJlIGRpdmVyZ2VkLicsXG4gICAgICBiZWhpbmQ6ICdUaGUgY29tbWl0cyBmb3IgdGhlIGJ1aWxkIHlvdSBhcmUgYXR0ZW1wdGluZyB0byBkZXBsb3kgYXJlIGJlaGluZCB0aGUgJyArXG4gICAgICAgICAgICAgICdoZWFkIG9mIG1hc3Rlci4gQXJlIHlvdSB0cnlpbmcgdG8gZGVwbG95IGFuIG9sZCBidWlsZD8gRG91YmxlIGNoZWNrIHRoZSBDSSAnICtcbiAgICAgICAgICAgICAgJ2J1aWxkICMgaXMgY29ycmVjdCBpbiB0aGUgUHJvcG9zZWQgQnVpbGQocykgZmllbGQgb24gdGhlIGRlcGxveW1lbnQgdGFzay4gICcgK1xuICAgICAgICAgICAgICAnKFRoZSBhYmlsaXR5IHRvIHJvbGwtYmFjayBhIGRlcGxveW1lbnQgaGFzIG5vdCBiZWVuIGNyZWF0ZWQgeWV0LiknLFxuICAgICAgaWRlbnRpY2FsOiAnVGhlcmUgaXMgbm8gZGlzY2VybmFibGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBidWlsZCB5b3UgYXJlIGRlcGxveWluZyAnICtcbiAgICAgICAgICAgICAgICAgJ2FuZCB0aGUgcHJldmlvdXMgcHJvZHVjdGlvbiBidWlsZFxcJ3MgY29tbWl0cy4gIFdlcmUgcHJvamVjdCBkZXBlbmRlbmNpZXMgJyArXG4gICAgICAgICAgICAgICAgICd0aGUgb25seSB0aGluZyB1cGRhdGVkIGluIHRoaXMgZGVwbG95PyBGb2xsb3cgYWxvbmcgYXQgVFctNzkwMSdcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZ2V0Q29tbWl0TGlzdHMocHJvZHVjdGlvbkJ1aWxkTGlzdCwgbmV3QmFzZXMgPSBbXSkge1xuICAgIGNvbnN0IHJlc3VsdExpc3QgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHByb2R1Y3Rpb25CdWlsZExpc3QuZGVwbG95bWVudHMubWFwKHggPT4gdGhpcy5zY2FuRGVwbG95bWVudCh4LCBuZXdCYXNlcykpXG4gICAgKTtcblxuICAgIGNvbnN0IGVycm9yTGlzdCA9IHJlc3VsdExpc3QuZmlsdGVyKHggPT4gIXgucmVzdWx0KS5tYXAoeCA9PiB4LmVycm9yKTtcbiAgICBpZiAoZXJyb3JMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGFjY3VtdWxhdGVBbmRUaHJvdyhlcnJvckxpc3QpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRMaXN0Lm1hcCh4ID0+IHguY29tbWl0cyk7XG4gIH1cblxuICBhc3luYyBzY2FuRGVwbG95bWVudChkZXBsb3ltZW50VGFyZ2V0LCBuZXdCYXNlcyA9IFtdKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucmVzLnNlbmQoYFNjYW5uaW5nIGNoYW5nZXMgZm9yICcke2RlcGxveW1lbnRUYXJnZXQubmFtZX0nYCk7XG5cbiAgICAgIGNvbnN0IGNvbW1pdHNSZXN1bHQgPSBhd2FpdCB0aGlzLmdldEdpdENvbW1pdHMoZGVwbG95bWVudFRhcmdldCwgbmV3QmFzZXMpO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIGRlcGxveW1lbnROYW1lOiBkZXBsb3ltZW50VGFyZ2V0Lm5hbWUsXG4gICAgICAgIHJlc3VsdDogdHJ1ZSxcbiAgICAgICAgY29tbWl0czogY29tbWl0c1Jlc3VsdC5jb21taXRzXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnJlcy5zZW5kKGBTdWNjZXNzZnVsbHkgc2Nhbm5lZCAnJHtkZXBsb3ltZW50VGFyZ2V0Lm5hbWV9J2ApO1xuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5yb2JvdC5sb2dnZXIuZXJyb3IoZXJyLnN0YWNrKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlc3VsdDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBgRXJyb3IgaW4gRGVwbG95bWVudDogJyR7ZGVwbG95bWVudFRhcmdldC5uYW1lfScsICR7ZXJyLm1lc3NhZ2V9YFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGVDb21taXRGaWxlTWFwKHtcbiAgICBjb21wYXJlQnVpbGRzUmVzdWx0LFxuICAgIGZpbGVGaWx0ZXJpbmdGdW5jdGlvblxuICB9KSB7XG4gICAgY29uc3QgY29tbWl0cyA9IGNvbXBhcmVCdWlsZHNSZXN1bHQuY29tbWl0cztcblxuICAgIGNvbnN0IGZpbGVzQ2hhbmdlZCA9IGF3YWl0IFByb21pc2UuYWxsKGNvbW1pdHMubWFwKGFzeW5jIHggPT4ge1xuICAgICAgY29uc3QgdHJlZVJlc3VsdCA9IGF3YWl0IHRoaXMuZ2l0aHViLm1ha2VSZXF1ZXN0KHgudXJsKTtcblxuICAgICAgaWYgKHRyZWVSZXN1bHQudHJ1bmNhdGVkKSB7XG4gICAgICAgIHRoaXMucmVzLnNlbmQoXG4gICAgICAgICAgYFdBUk5JTkc6IENvbW1pdCB3aXRoIHNoYTogJHt4LnNoYX0gaXMgaHVnZSBhbmQgY2Fubm90IGJlIGFkZXF1YXRlbHkgY2hlY2tlZCBpZiBpdCBpcyBgICtcbiAgICAgICAgICAncmVsZXZhbnQgb3Igbm90LiAgVG9vIG1hbnkgZmlsZXMgd2VyZSBjaGFuZ2VkIGFuZCBnaXRodWIgaGFzIHRydW5jYXRlZCB0aGUgcmVzdWx0cy4gICcgK1xuICAgICAgICAgICdQbGVhc2UgY2hlY2sgdGhpcyBjb21taXRcXCdzIGZpbGVzIG1hbnVhbGx5LidcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHNoYTogeC5zaGEsXG4gICAgICAgICAgZmlsZXM6IFtdXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbW1pdFRvUmV0dXJuID0ge1xuICAgICAgICBzaGE6IHguc2hhLFxuICAgICAgICBmaWxlczogdHJlZVJlc3VsdC5maWxlcy5tYXAoeSA9PiB5LmZpbGVuYW1lKS5maWx0ZXIoeSA9PiBmaWxlRmlsdGVyaW5nRnVuY3Rpb24oeSkpXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGNvbW1pdFRvUmV0dXJuO1xuICAgIH0pKTtcblxuICAgIHJldHVybiBmaWxlc0NoYW5nZWQuZmlsdGVyKCh7IGZpbGVzID0gW10gfSkgPT4gZmlsZXMubGVuZ3RoID4gMCkubWFwKHggPT4geC5zaGEpO1xuICB9XG5cbiAgYXN5bmMgZ2V0R2l0Q29tbWl0cyhkZXBsb3ltZW50VGFyZ2V0LCBuZXdCYXNlcyA9IFtdKSB7XG4gICAgY29uc3QgcXVlcnkgPSBhd2FpdCB0aGlzLnRlYW1jaXR5LmdldEdpdEluZm8oZGVwbG95bWVudFRhcmdldC5oZWFkQnVpbGRJZCk7XG5cbiAgICBjb25zdCBiYXNlSW5OZXdCYXNlcyA9IG5ld0Jhc2VzLmZpbHRlcih4ID0+IHguaGFzaCA9PT0gYCR7cXVlcnkucmVwb318JHtxdWVyeS51c2VyfWApO1xuICAgIGNvbnN0IGJhc2UgPSAoYmFzZUluTmV3QmFzZXMubGVuZ3RoID09PSAxKSA/IGJhc2VJbk5ld0Jhc2VzWzBdLmJhc2UgOlxuICAgICAgKGF3YWl0IGdldE1vc3RSZWNlbnRTdWNjZXNzZnVsQnVpbGQoZGVwbG95bWVudFRhcmdldCwgdGhpcy50ZWFtY2l0eSwgdGhpcy5lbnYsIHRoaXMucm9ib3QpKTtcblxuICAgIGlmIChiYXNlLmhlYWRTaGEpIHtcbiAgICAgIGJhc2Uuc2hhID0gYmFzZS5oZWFkU2hhO1xuICAgIH1cblxuICAgIGlmIChiYXNlLmZpcnN0VGltZURlcGxveW1lbnQpIHtcbiAgICAgIHRoaXMucmVzLnNlbmQoYFNjYW5uaW5nIGZvciBmaXJzdCB0aW1lIGRlcGxveW1lbnQgZnJvbSAke3F1ZXJ5LnJlcG99LmApO1xuICAgICAgYmFzZS5zaGEgPSBhd2FpdCB0aGlzLmdpdGh1Yi5nZXRGaXJzdENvbW1pdEluUmVwb1NoYSh7XG4gICAgICAgIHJlcG86IGJhc2UucmVwbyxcbiAgICAgICAgdXNlcjogYmFzZS51c2VyXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbXBhcmVCdWlsZHMocXVlcnkuc2hhLCBiYXNlLnNoYSwgYmFzZS51c2VyLCBiYXNlLnJlcG8pO1xuXG4gICAgbGV0IHJlbGV2YW50Q29tbWl0cyA9IFtdO1xuXG4gICAgY29uc3QgcmVsZXZhbnRGaWxlc1RvRGVwbG95bWVudCA9IGF3YWl0IGdldFJlZ2V4V2hpdGVsaXN0KHtcbiAgICAgIGdpdGh1YkFQSTogdGhpcy5naXRodWIsXG4gICAgICByZXBvOiBiYXNlLnJlcG8sXG4gICAgICB1c2VyOiBiYXNlLnVzZXIsXG4gICAgICBzaGE6IHF1ZXJ5LnNoYSxcbiAgICAgIGJ1aWxkVHlwZTogZGVwbG95bWVudFRhcmdldC5kZXBsb3ltZW50QnVpbGRUeXBlSWRcbiAgICB9KSB8fCBbXTtcblxuICAgIGlmIChyZWxldmFudEZpbGVzVG9EZXBsb3ltZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbGVGaWx0ZXJlciA9IG5ldyBGaWxlRmlsdGVyZXIoe1xuICAgICAgICByZWdleFdoaXRlTGlzdDogcmVsZXZhbnRGaWxlc1RvRGVwbG95bWVudFxuICAgICAgfSk7XG5cbiAgICAgIHJlbGV2YW50Q29tbWl0cyA9IGF3YWl0IHRoaXMuY3JlYXRlQ29tbWl0RmlsZU1hcCh7XG4gICAgICAgIGNvbXBhcmVCdWlsZHNSZXN1bHQ6IHJlc3VsdCxcbiAgICAgICAgZmlsZUZpbHRlcmluZ0Z1bmN0aW9uOiAoZmlsZW5hbWUpID0+IGZpbGVGaWx0ZXJlci5tZW1vaXplZEZpbGVGaWx0ZXIoZmlsZW5hbWUpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnJvYm90LmxvZ2dlci5kZWJ1ZyhgQ29tbWl0cyB3ZXJlIGluIGEgJHtyZXN1bHQuc3RhdHVzfSBzdGF0dXNgKTtcblxuICAgIGlmIChpc1ZhbGlkQ29tbWl0UmFuZ2UocmVzdWx0LnN0YXR1cykpIHtcbiAgICAgIGlmIChyZWxldmFudENvbW1pdHMubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICBjb21taXRzOiByZXN1bHQuY29tbWl0cy5maWx0ZXIoKHsgc2hhIH0pID0+IHJlbGV2YW50Q29tbWl0cy5pbmRleE9mKHNoYSkgPiAtMSlcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29tbWl0UmVzdWx0U3RhdHVzU3RyYXRlZ2llcy5oYXNPd25Qcm9wZXJ0eShyZXN1bHQuc3RhdHVzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuY29tbWl0UmVzdWx0U3RhdHVzU3RyYXRlZ2llc1tyZXN1bHQuc3RhdHVzXSk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgY29tbWl0cyB3ZXJlIGluIHNvbWUgc3RhdHVzIHdlIGhhdmUgbm90IGFjY291bnRlZCBmb3IgJyArXG4gICAgICAgICAgICAgICAgICAgIGAoJHtyZXN1bHQuc3RhdHVzfSksIHBsZWFzZSBub3RpZnkgdGhlIG1haW50YWluZXJzIG9mIHRoaXMgZGVwbG95bWVudCBzY3JpcHQuYCk7XG4gIH1cblxuICBhc3luYyBjb21wYXJlQnVpbGRzKGhlYWQsIGJhc2UsIHVzZXIsIHJlcG8pIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5yb2JvdC5sb2dnZXIuZGVidWcoYENvbXBhcmluZyBjb21taXRzICR7YmFzZX0uLi4ke2hlYWR9IGluICR7dXNlcn0vJHtyZXBvfWApO1xuICAgICAgY29uc3QgY29tcGFyZVJlc3VsdCA9IGF3YWl0IHRoaXMuZ2l0aHViLmNvbXBhcmVDb21taXRzKHsgYmFzZSwgaGVhZCwgdXNlciwgcmVwbyB9KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3RhdHVzOiBjb21wYXJlUmVzdWx0LnN0YXR1cyxcbiAgICAgICAgY29tbWl0czogY29tcGFyZVJlc3VsdC5jb21taXRzLm1hcCh4ID0+ICh7XG4gICAgICAgICAgLi4ueCxcbiAgICAgICAgICBfX2dpdFJlcG86IHJlcG9cbiAgICAgICAgfSkpXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVyci5tZXNzYWdlLmluZGV4T2YoJ05vdCBGb3VuZCcpID4gLTEpIHtcbiAgICAgICAgaWYgKHRoaXMucm9ib3QpIHtcbiAgICAgICAgICB0aGlzLnJvYm90LmxvZ2dlci5lcnJvcih0cmFuc2Zvcm1UaHJvd25Ub1N0cmluZyhlcnIsIGZhbHNlKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgR2l0IFJlcG9zaXRvcnkgJHtyZXBvfSBpcyBub3QgbGlua2VkIHByb3Blcmx5IGluIFRlYW1jaXR5LiAgYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAnQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSByZXBvc2l0b3J5IGV4aXN0cywgYW5kIHRoYXQgdGhlIFVSTCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdzcGVjaWZpZWQgaW4gdGhlIFRlYW1jaXR5IENJIEJ1aWxkIGlzIG5vdCBhIHJlZGlyZWN0ZWQgVVJMLicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RGVwbG95bWVudENvbW1pdExpc3RzKG9wdGlvbnMpIHtcbi8qICBwcm9kdWN0aW9uQnVpbGRMaXN0LFxuICB0ZWFtQ2l0eUFQSSxcbiAgZ2l0aHViQVBJLFxuICBodWJvdFJlc3BvbnNlLFxuICBodWJvdFJvYm90LFxuICBuZXdCYXNlcyA9IFtdXG4pIHsgKi9cbiAgY29uc3QgcG9sbGVyID0gbmV3IENvbW1pdExpc3RQb2xsZXIoXG4gICAgb3B0aW9ucy50ZWFtY2l0eUFQSSxcbiAgICBvcHRpb25zLmdpdGh1YkFQSSxcbiAgICBvcHRpb25zLnJvYm90LFxuICAgIG9wdGlvbnMucmVzLFxuICAgIHByb2Nlc3MuZW52XG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBjb21taXRMaXN0c1Jlc3VsdDpcbiAgICAgIGF3YWl0IHBvbGxlci5nZXRDb21taXRMaXN0cyhvcHRpb25zLnBhcnNlZERlcGxveW1lbnRzLCBvcHRpb25zLm5ld0Jhc2VzIHx8IFtdKVxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0R2l0aHViSW5mb0Zyb21EZXBsb3ltZW50KHRlYW1jaXR5QVBJLCBsaXN0T2ZEZXBsb3ltZW50cyA9IFtdKSB7XG4gIGNvbnN0IG1lbW9pemVkQXJndW1lbnRzID0ge307XG5cbiAgY29uc3QgY29uc29saWRhdGVkRGVwbG95bWVudExpc3QgPSBfLmZsYXRNYXAobGlzdE9mRGVwbG95bWVudHMsIHggPT5cbiAgICB4LnByb2RCdWlsZEZpZWxkLmRlcGxveW1lbnRzLm1hcCh5ID0+ICh7IC4uLnksIGtleTogeC5rZXkgfSkpLFxuICApO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIGdpdGh1YkluZm9NZW1vaXplR2F0ZShkZXBsb3ltZW50KSB7XG4gICAgY29uc3QgYnVpbGRJZCA9IGRlcGxveW1lbnQuaGVhZEJ1aWxkSWQ7XG4gICAgaWYgKG1lbW9pemVkQXJndW1lbnRzW2J1aWxkSWRdKSB7XG4gICAgICByZXR1cm4gbWVtb2l6ZWRBcmd1bWVudHNbYnVpbGRJZF07XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGVhbWNpdHlBUEkuZ2V0R2l0SW5mbyhidWlsZElkKTtcbiAgICBtZW1vaXplZEFyZ3VtZW50c1tidWlsZElkXSA9IHJlc3VsdDtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgY29uc3QgZ2l0aHViSW5mbyA9IGNvbnNvbGlkYXRlZERlcGxveW1lbnRMaXN0Lm1hcChhc3luYyB4ID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBnaXRodWJJbmZvTWVtb2l6ZUdhdGUoeCk7XG4gICAgbWVtb2l6ZWRBcmd1bWVudHNbeC5oZWFkQnVpbGRJZF0gPSByZXN1bHQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoZ2l0aHViSW5mbyk7XG5cbiAgcmV0dXJuIGNvbnNvbGlkYXRlZERlcGxveW1lbnRMaXN0Lm1hcCh4ID0+ICh7XG4gICAgZGVwbG95bWVudDogeCxcbiAgICBoZWFkU2hhOiBtZW1vaXplZEFyZ3VtZW50c1t4LmhlYWRCdWlsZElkXS5zaGEsXG4gICAgcmVwbzogbWVtb2l6ZWRBcmd1bWVudHNbeC5oZWFkQnVpbGRJZF0ucmVwbyxcbiAgICB1c2VyOiBtZW1vaXplZEFyZ3VtZW50c1t4LmhlYWRCdWlsZElkXS51c2VyXG4gIH0pKTtcbn1cbiJdfQ== |
{ | ||
"name": "@twexchangesolutions/hubot-jira-deployment", | ||
"version": "0.14.0", | ||
"version": "0.15.0", | ||
"description": "Hook used to ensure that all issues being deployed to production meet audit requirements", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
301345
3204