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

aws-api-gateway-client

Package Overview
Dependencies
Maintainers
1
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aws-api-gateway-client - npm Package Compare versions

Comparing version 0.3.0 to 0.3.1

2

dist/lib/apiGatewayCore/apiGatewayClient.js

@@ -71,2 +71,2 @@ "use strict";

exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXBpR2F0ZXdheUNvcmUvYXBpR2F0ZXdheUNsaWVudC5qcyJdLCJuYW1lcyI6WyJhcGlHYXRld2F5Q2xpZW50RmFjdG9yeSIsIm5ld0NsaWVudCIsInNpbXBsZUh0dHBDbGllbnRDb25maWciLCJzaWdWNENsaWVudENvbmZpZyIsImFwaUdhdGV3YXlDbGllbnQiLCJzaWdWNENsaWVudCIsInNpZ1Y0Q2xpZW50RmFjdG9yeSIsInNpbXBsZUh0dHBDbGllbnQiLCJzaW1wbGVIdHRwQ2xpZW50RmFjdG9yeSIsIm1ha2VSZXF1ZXN0IiwicmVxdWVzdCIsImF1dGhUeXBlIiwiYWRkaXRpb25hbFBhcmFtcyIsImFwaUtleSIsImNsaWVudFRvVXNlIiwidW5kZWZpbmVkIiwiaGVhZGVycyIsImJvZHkiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwidXRpbHMiLCJtZXJnZUludG8iLCJxdWVyeVBhcmFtcyIsInRpbWVvdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQWNBOztBQUNBOztBQUNBOztBQWhCQTs7Ozs7Ozs7Ozs7Ozs7QUFrQkEsSUFBTUEsdUJBQXVCLEdBQUcsRUFBaEM7O0FBQ0FBLHVCQUF1QixDQUFDQyxTQUF4QixHQUFvQyxVQUFTQyxzQkFBVCxFQUFpQ0MsaUJBQWpDLEVBQW9EO0FBQ3RGLE1BQUlDLGdCQUFnQixHQUFHLEVBQXZCLENBRHNGLENBRXRGOztBQUNBLE1BQUlDLFdBQVcsR0FBR0Msd0JBQW1CTCxTQUFuQixDQUE2QkUsaUJBQTdCLENBQWxCOztBQUNBLE1BQUlJLGdCQUFnQixHQUFHQyw2QkFBd0JQLFNBQXhCLENBQWtDQyxzQkFBbEMsQ0FBdkI7O0FBRUFFLEVBQUFBLGdCQUFnQixDQUFDSyxXQUFqQixHQUErQixVQUFTQyxPQUFULEVBQWtCQyxRQUFsQixFQUE0QkMsZ0JBQTVCLEVBQThDQyxNQUE5QyxFQUFzRDtBQUNuRjtBQUNBLFFBQUlDLFdBQVcsR0FBR1AsZ0JBQWxCLENBRm1GLENBSW5GOztBQUNBLFFBQUlNLE1BQU0sS0FBS0UsU0FBWCxJQUF3QkYsTUFBTSxLQUFLLEVBQW5DLElBQXlDQSxNQUFNLEtBQUssSUFBeEQsRUFBOEQ7QUFDNURILE1BQUFBLE9BQU8sQ0FBQ00sT0FBUixDQUFnQixXQUFoQixJQUErQkgsTUFBL0I7QUFDRDs7QUFFRCxRQUNFSCxPQUFPLENBQUNPLElBQVIsS0FBaUJGLFNBQWpCLElBQ0dMLE9BQU8sQ0FBQ08sSUFBUixLQUFpQixFQURwQixJQUVHUCxPQUFPLENBQUNPLElBQVIsS0FBaUIsSUFGcEIsSUFHR0MsTUFBTSxDQUFDQyxJQUFQLENBQVlULE9BQU8sQ0FBQ08sSUFBcEIsRUFBMEJHLE1BQTFCLEtBQXFDLENBSjFDLEVBS0U7QUFDQVYsTUFBQUEsT0FBTyxDQUFDTyxJQUFSLEdBQWVGLFNBQWY7QUFDRCxLQWhCa0YsQ0FrQm5GO0FBQ0E7OztBQUNBTCxJQUFBQSxPQUFPLENBQUNNLE9BQVIsR0FBa0JLLGtCQUFNQyxTQUFOLENBQWdCWixPQUFPLENBQUNNLE9BQXhCLEVBQWlDSixnQkFBZ0IsQ0FBQ0ksT0FBbEQsQ0FBbEI7QUFDQU4sSUFBQUEsT0FBTyxDQUFDYSxXQUFSLEdBQXNCRixrQkFBTUMsU0FBTixDQUFnQlosT0FBTyxDQUFDYSxXQUF4QixFQUFxQ1gsZ0JBQWdCLENBQUNXLFdBQXRELENBQXRCO0FBQ0FiLElBQUFBLE9BQU8sQ0FBQ2MsT0FBUixHQUFrQkgsa0JBQU1DLFNBQU4sQ0FBZ0JaLE9BQU8sQ0FBQ2MsT0FBeEIsRUFBaUNaLGdCQUFnQixDQUFDWSxPQUFsRCxDQUFsQixDQXRCbUYsQ0F3Qm5GOztBQUNBLFFBQUliLFFBQVEsS0FBSyxTQUFqQixFQUE0QjtBQUMxQkcsTUFBQUEsV0FBVyxHQUFHVCxXQUFkO0FBQ0QsS0EzQmtGLENBNkJuRjtBQUNBOzs7QUFDQSxXQUFPUyxXQUFXLENBQUNMLFdBQVosQ0FBd0JDLE9BQXhCLENBQVA7QUFDRCxHQWhDRDs7QUFpQ0EsU0FBT04sZ0JBQVA7QUFDRCxDQXhDRDs7ZUEwQ2VKLHVCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDEwLTIwMTYgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLlxuICogWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgaHR0cDovL2F3cy5hbWF6b24uY29tL2FwYWNoZTIuMFxuICpcbiAqIG9yIGluIHRoZSBcImxpY2Vuc2VcIiBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZFxuICogb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyXG4gKiBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZ1xuICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgc2lnVjRDbGllbnRGYWN0b3J5IGZyb20gJy4vc2lnVjRDbGllbnQuanMnO1xuaW1wb3J0IHNpbXBsZUh0dHBDbGllbnRGYWN0b3J5IGZyb20gJy4vc2ltcGxlSHR0cENsaWVudC5qcyc7XG5cbmNvbnN0IGFwaUdhdGV3YXlDbGllbnRGYWN0b3J5ID0ge307XG5hcGlHYXRld2F5Q2xpZW50RmFjdG9yeS5uZXdDbGllbnQgPSBmdW5jdGlvbihzaW1wbGVIdHRwQ2xpZW50Q29uZmlnLCBzaWdWNENsaWVudENvbmZpZykge1xuICBsZXQgYXBpR2F0ZXdheUNsaWVudCA9IHsgfTtcbiAgLy8gU3BpbiB1cCAyIGh0dHBDbGllbnRzLCBvbmUgZm9yIHNpbXBsZSByZXF1ZXN0cywgb25lIGZvciBTaWdWNFxuICBsZXQgc2lnVjRDbGllbnQgPSBzaWdWNENsaWVudEZhY3RvcnkubmV3Q2xpZW50KHNpZ1Y0Q2xpZW50Q29uZmlnKTtcbiAgbGV0IHNpbXBsZUh0dHBDbGllbnQgPSBzaW1wbGVIdHRwQ2xpZW50RmFjdG9yeS5uZXdDbGllbnQoc2ltcGxlSHR0cENsaWVudENvbmZpZyk7XG5cbiAgYXBpR2F0ZXdheUNsaWVudC5tYWtlUmVxdWVzdCA9IGZ1bmN0aW9uKHJlcXVlc3QsIGF1dGhUeXBlLCBhZGRpdGlvbmFsUGFyYW1zLCBhcGlLZXkpIHtcbiAgICAvLyBEZWZhdWx0IHRoZSByZXF1ZXN0IHRvIHVzZSB0aGUgc2ltcGxlIGh0dHAgY2xpZW50XG4gICAgbGV0IGNsaWVudFRvVXNlID0gc2ltcGxlSHR0cENsaWVudDtcblxuICAgIC8vIEF0dGFjaCB0aGUgYXBpS2V5IHRvIHRoZSBoZWFkZXJzIHJlcXVlc3QgaWYgb25lIHdhcyBwcm92aWRlZFxuICAgIGlmIChhcGlLZXkgIT09IHVuZGVmaW5lZCAmJiBhcGlLZXkgIT09ICcnICYmIGFwaUtleSAhPT0gbnVsbCkge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzWyd4LWFwaS1rZXknXSA9IGFwaUtleTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICByZXF1ZXN0LmJvZHkgPT09IHVuZGVmaW5lZFxuICAgICAgfHwgcmVxdWVzdC5ib2R5ID09PSAnJ1xuICAgICAgfHwgcmVxdWVzdC5ib2R5ID09PSBudWxsXG4gICAgICB8fCBPYmplY3Qua2V5cyhyZXF1ZXN0LmJvZHkpLmxlbmd0aCA9PT0gMFxuICAgICkge1xuICAgICAgcmVxdWVzdC5ib2R5ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSB1c2VyIHNwZWNpZmllZCBhbnkgYWRkaXRpb25hbCBoZWFkZXJzIG9yIHF1ZXJ5IHBhcmFtcyB0aGF0IG1heSBub3QgaGF2ZSBiZWVuIG1vZGVsZWRcbiAgICAvLyBtZXJnZSB0aGVtIGludG8gdGhlIGFwcHJvcHJpYXRlIHJlcXVlc3QgcHJvcGVydGllc1xuICAgIHJlcXVlc3QuaGVhZGVycyA9IHV0aWxzLm1lcmdlSW50byhyZXF1ZXN0LmhlYWRlcnMsIGFkZGl0aW9uYWxQYXJhbXMuaGVhZGVycyk7XG4gICAgcmVxdWVzdC5xdWVyeVBhcmFtcyA9IHV0aWxzLm1lcmdlSW50byhyZXF1ZXN0LnF1ZXJ5UGFyYW1zLCBhZGRpdGlvbmFsUGFyYW1zLnF1ZXJ5UGFyYW1zKTtcbiAgICByZXF1ZXN0LnRpbWVvdXQgPSB1dGlscy5tZXJnZUludG8ocmVxdWVzdC50aW1lb3V0LCBhZGRpdGlvbmFsUGFyYW1zLnRpbWVvdXQpO1xuXG4gICAgLy8gSWYgYW4gYXV0aCB0eXBlIHdhcyBzcGVjaWZpZWQgaW5qZWN0IHRoZSBhcHByb3ByaWF0ZSBhdXRoIGNsaWVudFxuICAgIGlmIChhdXRoVHlwZSA9PT0gJ0FXU19JQU0nKSB7XG4gICAgICBjbGllbnRUb1VzZSA9IHNpZ1Y0Q2xpZW50O1xuICAgIH1cblxuICAgIC8vIENhbGwgdGhlIHNlbGVjdGVkIGh0dHAgY2xpZW50IHRvIG1ha2UgdGhlIHJlcXVlc3QsXG4gICAgLy8gcmV0dXJuaW5nIGEgcHJvbWlzZSBvbmNlIHRoZSByZXF1ZXN0IGlzIHNlbnRcbiAgICByZXR1cm4gY2xpZW50VG9Vc2UubWFrZVJlcXVlc3QocmVxdWVzdCk7XG4gIH07XG4gIHJldHVybiBhcGlHYXRld2F5Q2xpZW50O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgYXBpR2F0ZXdheUNsaWVudEZhY3Rvcnk7XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXBpR2F0ZXdheUNvcmUvYXBpR2F0ZXdheUNsaWVudC5qcyJdLCJuYW1lcyI6WyJhcGlHYXRld2F5Q2xpZW50RmFjdG9yeSIsIm5ld0NsaWVudCIsInNpbXBsZUh0dHBDbGllbnRDb25maWciLCJzaWdWNENsaWVudENvbmZpZyIsImFwaUdhdGV3YXlDbGllbnQiLCJzaWdWNENsaWVudCIsInNpZ1Y0Q2xpZW50RmFjdG9yeSIsInNpbXBsZUh0dHBDbGllbnQiLCJzaW1wbGVIdHRwQ2xpZW50RmFjdG9yeSIsIm1ha2VSZXF1ZXN0IiwicmVxdWVzdCIsImF1dGhUeXBlIiwiYWRkaXRpb25hbFBhcmFtcyIsImFwaUtleSIsImNsaWVudFRvVXNlIiwidW5kZWZpbmVkIiwiaGVhZGVycyIsImJvZHkiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwidXRpbHMiLCJtZXJnZUludG8iLCJxdWVyeVBhcmFtcyIsInRpbWVvdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQWVBOztBQUNBOztBQUNBOztBQWpCQTs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsSUFBTUEsdUJBQXVCLEdBQUcsRUFBaEM7O0FBQ0FBLHVCQUF1QixDQUFDQyxTQUF4QixHQUFvQyxVQUFTQyxzQkFBVCxFQUFpQ0MsaUJBQWpDLEVBQW9EO0FBQ3RGLE1BQUlDLGdCQUFnQixHQUFHLEVBQXZCLENBRHNGLENBRXRGOztBQUNBLE1BQUlDLFdBQVcsR0FBR0Msd0JBQW1CTCxTQUFuQixDQUE2QkUsaUJBQTdCLENBQWxCOztBQUNBLE1BQUlJLGdCQUFnQixHQUFHQyw2QkFBd0JQLFNBQXhCLENBQWtDQyxzQkFBbEMsQ0FBdkI7O0FBRUFFLEVBQUFBLGdCQUFnQixDQUFDSyxXQUFqQixHQUErQixVQUFTQyxPQUFULEVBQWtCQyxRQUFsQixFQUE0QkMsZ0JBQTVCLEVBQThDQyxNQUE5QyxFQUFzRDtBQUNuRjtBQUNBLFFBQUlDLFdBQVcsR0FBR1AsZ0JBQWxCLENBRm1GLENBSW5GOztBQUNBLFFBQUlNLE1BQU0sS0FBS0UsU0FBWCxJQUF3QkYsTUFBTSxLQUFLLEVBQW5DLElBQXlDQSxNQUFNLEtBQUssSUFBeEQsRUFBOEQ7QUFDNURILE1BQUFBLE9BQU8sQ0FBQ00sT0FBUixDQUFnQixXQUFoQixJQUErQkgsTUFBL0I7QUFDRDs7QUFFRCxRQUNFSCxPQUFPLENBQUNPLElBQVIsS0FBaUJGLFNBQWpCLElBQ0dMLE9BQU8sQ0FBQ08sSUFBUixLQUFpQixFQURwQixJQUVHUCxPQUFPLENBQUNPLElBQVIsS0FBaUIsSUFGcEIsSUFHR0MsTUFBTSxDQUFDQyxJQUFQLENBQVlULE9BQU8sQ0FBQ08sSUFBcEIsRUFBMEJHLE1BQTFCLEtBQXFDLENBSjFDLEVBS0U7QUFDQVYsTUFBQUEsT0FBTyxDQUFDTyxJQUFSLEdBQWVGLFNBQWY7QUFDRCxLQWhCa0YsQ0FrQm5GO0FBQ0E7OztBQUNBTCxJQUFBQSxPQUFPLENBQUNNLE9BQVIsR0FBa0JLLGtCQUFNQyxTQUFOLENBQWdCWixPQUFPLENBQUNNLE9BQXhCLEVBQWlDSixnQkFBZ0IsQ0FBQ0ksT0FBbEQsQ0FBbEI7QUFDQU4sSUFBQUEsT0FBTyxDQUFDYSxXQUFSLEdBQXNCRixrQkFBTUMsU0FBTixDQUFnQlosT0FBTyxDQUFDYSxXQUF4QixFQUFxQ1gsZ0JBQWdCLENBQUNXLFdBQXRELENBQXRCO0FBQ0FiLElBQUFBLE9BQU8sQ0FBQ2MsT0FBUixHQUFrQkgsa0JBQU1DLFNBQU4sQ0FBZ0JaLE9BQU8sQ0FBQ2MsT0FBeEIsRUFBaUNaLGdCQUFnQixDQUFDWSxPQUFsRCxDQUFsQixDQXRCbUYsQ0F3Qm5GOztBQUNBLFFBQUliLFFBQVEsS0FBSyxTQUFqQixFQUE0QjtBQUMxQkcsTUFBQUEsV0FBVyxHQUFHVCxXQUFkO0FBQ0QsS0EzQmtGLENBNkJuRjtBQUNBOzs7QUFDQSxXQUFPUyxXQUFXLENBQUNMLFdBQVosQ0FBd0JDLE9BQXhCLENBQVA7QUFDRCxHQWhDRDs7QUFpQ0EsU0FBT04sZ0JBQVA7QUFDRCxDQXhDRDs7ZUEwQ2VKLHVCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDEwLTIwMTYgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLlxuICogWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgaHR0cDovL2F3cy5hbWF6b24uY29tL2FwYWNoZTIuMFxuICpcbiAqIG9yIGluIHRoZSBcImxpY2Vuc2VcIiBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZFxuICogb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyXG4gKiBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZ1xuICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBzaWdWNENsaWVudEZhY3RvcnkgZnJvbSAnLi9zaWdWNENsaWVudC5qcyc7XG5pbXBvcnQgc2ltcGxlSHR0cENsaWVudEZhY3RvcnkgZnJvbSAnLi9zaW1wbGVIdHRwQ2xpZW50LmpzJztcblxuY29uc3QgYXBpR2F0ZXdheUNsaWVudEZhY3RvcnkgPSB7fTtcbmFwaUdhdGV3YXlDbGllbnRGYWN0b3J5Lm5ld0NsaWVudCA9IGZ1bmN0aW9uKHNpbXBsZUh0dHBDbGllbnRDb25maWcsIHNpZ1Y0Q2xpZW50Q29uZmlnKSB7XG4gIGxldCBhcGlHYXRld2F5Q2xpZW50ID0geyB9O1xuICAvLyBTcGluIHVwIDIgaHR0cENsaWVudHMsIG9uZSBmb3Igc2ltcGxlIHJlcXVlc3RzLCBvbmUgZm9yIFNpZ1Y0XG4gIGxldCBzaWdWNENsaWVudCA9IHNpZ1Y0Q2xpZW50RmFjdG9yeS5uZXdDbGllbnQoc2lnVjRDbGllbnRDb25maWcpO1xuICBsZXQgc2ltcGxlSHR0cENsaWVudCA9IHNpbXBsZUh0dHBDbGllbnRGYWN0b3J5Lm5ld0NsaWVudChzaW1wbGVIdHRwQ2xpZW50Q29uZmlnKTtcblxuICBhcGlHYXRld2F5Q2xpZW50Lm1ha2VSZXF1ZXN0ID0gZnVuY3Rpb24ocmVxdWVzdCwgYXV0aFR5cGUsIGFkZGl0aW9uYWxQYXJhbXMsIGFwaUtleSkge1xuICAgIC8vIERlZmF1bHQgdGhlIHJlcXVlc3QgdG8gdXNlIHRoZSBzaW1wbGUgaHR0cCBjbGllbnRcbiAgICBsZXQgY2xpZW50VG9Vc2UgPSBzaW1wbGVIdHRwQ2xpZW50O1xuXG4gICAgLy8gQXR0YWNoIHRoZSBhcGlLZXkgdG8gdGhlIGhlYWRlcnMgcmVxdWVzdCBpZiBvbmUgd2FzIHByb3ZpZGVkXG4gICAgaWYgKGFwaUtleSAhPT0gdW5kZWZpbmVkICYmIGFwaUtleSAhPT0gJycgJiYgYXBpS2V5ICE9PSBudWxsKSB7XG4gICAgICByZXF1ZXN0LmhlYWRlcnNbJ3gtYXBpLWtleSddID0gYXBpS2V5O1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHJlcXVlc3QuYm9keSA9PT0gdW5kZWZpbmVkXG4gICAgICB8fCByZXF1ZXN0LmJvZHkgPT09ICcnXG4gICAgICB8fCByZXF1ZXN0LmJvZHkgPT09IG51bGxcbiAgICAgIHx8IE9iamVjdC5rZXlzKHJlcXVlc3QuYm9keSkubGVuZ3RoID09PSAwXG4gICAgKSB7XG4gICAgICByZXF1ZXN0LmJvZHkgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFueSBhZGRpdGlvbmFsIGhlYWRlcnMgb3IgcXVlcnkgcGFyYW1zIHRoYXQgbWF5IG5vdCBoYXZlIGJlZW4gbW9kZWxlZFxuICAgIC8vIG1lcmdlIHRoZW0gaW50byB0aGUgYXBwcm9wcmlhdGUgcmVxdWVzdCBwcm9wZXJ0aWVzXG4gICAgcmVxdWVzdC5oZWFkZXJzID0gdXRpbHMubWVyZ2VJbnRvKHJlcXVlc3QuaGVhZGVycywgYWRkaXRpb25hbFBhcmFtcy5oZWFkZXJzKTtcbiAgICByZXF1ZXN0LnF1ZXJ5UGFyYW1zID0gdXRpbHMubWVyZ2VJbnRvKHJlcXVlc3QucXVlcnlQYXJhbXMsIGFkZGl0aW9uYWxQYXJhbXMucXVlcnlQYXJhbXMpO1xuICAgIHJlcXVlc3QudGltZW91dCA9IHV0aWxzLm1lcmdlSW50byhyZXF1ZXN0LnRpbWVvdXQsIGFkZGl0aW9uYWxQYXJhbXMudGltZW91dCk7XG5cbiAgICAvLyBJZiBhbiBhdXRoIHR5cGUgd2FzIHNwZWNpZmllZCBpbmplY3QgdGhlIGFwcHJvcHJpYXRlIGF1dGggY2xpZW50XG4gICAgaWYgKGF1dGhUeXBlID09PSAnQVdTX0lBTScpIHtcbiAgICAgIGNsaWVudFRvVXNlID0gc2lnVjRDbGllbnQ7XG4gICAgfVxuXG4gICAgLy8gQ2FsbCB0aGUgc2VsZWN0ZWQgaHR0cCBjbGllbnQgdG8gbWFrZSB0aGUgcmVxdWVzdCxcbiAgICAvLyByZXR1cm5pbmcgYSBwcm9taXNlIG9uY2UgdGhlIHJlcXVlc3QgaXMgc2VudFxuICAgIHJldHVybiBjbGllbnRUb1VzZS5tYWtlUmVxdWVzdChyZXF1ZXN0KTtcbiAgfTtcbiAgcmV0dXJuIGFwaUdhdGV3YXlDbGllbnQ7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBhcGlHYXRld2F5Q2xpZW50RmFjdG9yeTtcbiJdfQ==

@@ -38,4 +38,2 @@ "use strict";

*/
/* eslint max-len: ["error", 100]*/
var sigV4ClientFactory = {};

@@ -303,2 +301,2 @@

exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXBpR2F0ZXdheUNvcmUvc2lnVjRDbGllbnQuanMiXSwibmFtZXMiOlsic2lnVjRDbGllbnRGYWN0b3J5IiwibmV3Q2xpZW50IiwiY29uZmlnIiwiQVdTX1NIQV8yNTYiLCJBV1M0X1JFUVVFU1QiLCJBV1M0IiwiWF9BTVpfREFURSIsIlhfQU1aX1NFQ1VSSVRZX1RPS0VOIiwiSE9TVCIsIkFVVEhPUklaQVRJT04iLCJoYXNoIiwidmFsdWUiLCJoZXhFbmNvZGUiLCJ0b1N0cmluZyIsImVuY0hleCIsImhtYWMiLCJzZWNyZXQiLCJhc0J5dGVzIiwiYnVpbGRDYW5vbmljYWxSZXF1ZXN0IiwibWV0aG9kIiwicGF0aCIsInF1ZXJ5UGFyYW1zIiwiaGVhZGVycyIsInBheWxvYWQiLCJidWlsZENhbm9uaWNhbFVyaSIsImJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmciLCJidWlsZENhbm9uaWNhbEhlYWRlcnMiLCJidWlsZENhbm9uaWNhbFNpZ25lZEhlYWRlcnMiLCJoYXNoQ2Fub25pY2FsUmVxdWVzdCIsInJlcXVlc3QiLCJ1cmkiLCJlbmNvZGVVUkkiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwic29ydGVkUXVlcnlQYXJhbXMiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInB1c2giLCJzb3J0IiwiY2Fub25pY2FsUXVlcnlTdHJpbmciLCJpIiwiZml4ZWRFbmNvZGVVUklDb21wb25lbnQiLCJzdWJzdHIiLCJzdHIiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiYyIsImNoYXJDb2RlQXQiLCJjYW5vbmljYWxIZWFkZXJzIiwic29ydGVkS2V5cyIsInRvTG93ZXJDYXNlIiwiam9pbiIsImJ1aWxkU3RyaW5nVG9TaWduIiwiZGF0ZXRpbWUiLCJjcmVkZW50aWFsU2NvcGUiLCJoYXNoZWRDYW5vbmljYWxSZXF1ZXN0IiwiYnVpbGRDcmVkZW50aWFsU2NvcGUiLCJyZWdpb24iLCJzZXJ2aWNlIiwiY2FsY3VsYXRlU2lnbmluZ0tleSIsInNlY3JldEtleSIsImNhbGN1bGF0ZVNpZ25hdHVyZSIsImtleSIsInN0cmluZ1RvU2lnbiIsImJ1aWxkQXV0aG9yaXphdGlvbkhlYWRlciIsImFjY2Vzc0tleSIsInNpZ25hdHVyZSIsImF3c1NpZ1Y0Q2xpZW50IiwidW5kZWZpbmVkIiwidXRpbHMiLCJhc3NlcnREZWZpbmVkIiwic2Vzc2lvblRva2VuIiwic2VydmljZU5hbWUiLCJlbmRwb2ludCIsInJldHJpZXMiLCJyZXRyeUNvbmRpdGlvbiIsInJldHJ5RGVsYXkiLCJob3N0IiwibWFrZVJlcXVlc3QiLCJ2ZXJiIiwiY29weSIsInRpbWVvdXQiLCJkZWZhdWx0Q29udGVudFR5cGUiLCJkZWZhdWx0QWNjZXB0VHlwZSIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiRGF0ZSIsImdldFRpbWUiLCJzeXN0ZW1DbG9ja09mZnNldCIsInRvSVNPU3RyaW5nIiwicGFyc2VyIiwidXJsUGFyc2VyIiwicGFyc2UiLCJjYW5vbmljYWxSZXF1ZXN0Iiwic2lnbmluZ0tleSIsInVybCIsInF1ZXJ5U3RyaW5nIiwic2lnbmVkUmVxdWVzdCIsImRhdGEiLCJiYXNlVVJMIiwiY2xpZW50IiwiYXhpb3MiLCJjcmVhdGUiLCJheGlvc1JldHJ5IiwiZXhwb25lbnRpYWxEZWxheSIsInBhcnNlSW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFnQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBdEJBOzs7Ozs7Ozs7Ozs7Ozs7QUFjQTtBQVVBLElBQU1BLGtCQUFrQixHQUFHLEVBQTNCOztBQUNBQSxrQkFBa0IsQ0FBQ0MsU0FBbkIsR0FBK0IsVUFBU0MsTUFBVCxFQUFpQjtBQUM5QyxNQUFJQyxXQUFXLEdBQUcsa0JBQWxCO0FBQ0EsTUFBSUMsWUFBWSxHQUFHLGNBQW5CO0FBQ0EsTUFBSUMsSUFBSSxHQUFHLE1BQVg7QUFDQSxNQUFJQyxVQUFVLEdBQUcsWUFBakI7QUFDQSxN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LE9BQU8sRUFBRTNFLE1BQU0sQ0FBQzJFLE9BREM7QUFFakJDLFFBQUFBLGNBQWMsRUFBRTVFLE1BQU0sQ0FBQzRFLGNBRk47QUFHakJDLFFBQUFBLFVBQVUsRUFBVkE7QUFIaUIsT0FBbkI7QUFLQSxhQUFPeUIsTUFBTSxDQUFDM0UsT0FBUCxDQUFlO0FBQUNWLFFBQUFBLE1BQU0sRUFBRStEO0FBQVQsT0FBZixDQUFQO0FBQ0Q7O0FBQ0RtQixJQUFBQSxhQUFhLENBQUNsRixNQUFkLEdBQXVCK0QsSUFBdkI7QUFDQW1CLElBQUFBLGFBQWEsQ0FBQ0YsR0FBZCxHQUFvQkEsR0FBcEI7QUFDQSxXQUFPLHVCQUFNRSxhQUFOLENBQVA7QUFDRCxHQXZIRDs7QUF5SEEsU0FBTy9CLGNBQVA7QUFDRCxDQWpRRDs7ZUFtUWV0RSxrQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxMC0yMDE2IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS5cbiAqIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogIGh0dHA6Ly9hd3MuYW1hem9uLmNvbS9hcGFjaGUyLjBcbiAqXG4gKiBvciBpbiB0aGUgXCJsaWNlbnNlXCIgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWRcbiAqIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlclxuICogZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmdcbiAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogZXNsaW50IG1heC1sZW46IFtcImVycm9yXCIsIDEwMF0qL1xuXG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IGF4aW9zUmV0cnkgZnJvbSAnYXhpb3MtcmV0cnknO1xuaW1wb3J0IFNIQTI1NiBmcm9tICdjcnlwdG8tanMvc2hhMjU2JztcbmltcG9ydCBlbmNIZXggZnJvbSAnY3J5cHRvLWpzL2VuYy1oZXgnO1xuaW1wb3J0IEhtYWNTSEEyNTYgZnJvbSAnY3J5cHRvLWpzL2htYWMtc2hhMjU2JztcbmltcG9ydCB1cmxQYXJzZXIgZnJvbSAndXJsJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuY29uc3Qgc2lnVjRDbGllbnRGYWN0b3J5ID0ge307XG5zaWdWNENsaWVudEZhY3RvcnkubmV3Q2xpZW50ID0gZnVuY3Rpb24oY29uZmlnKSB7XG4gIGxldCBBV1NfU0hBXzI1NiA9ICdBV1M0LUhNQUMtU0hBMjU2JztcbiAgbGV0IEFXUzRfUkVRVUVTVCA9ICdhd3M0X3JlcXVlc3QnO1xuICBsZXQgQVdTNCA9ICdBV1M0JztcbiAgbGV0IFhfQU1aX0RBVEUgPSAneC1hbXotZGF0ZSc7XG4gIGxldCBYX0FNWl9TRUNVUklUWV9UT0tFTiA9ICd4LWFtei1zZWN1cml0eS10b2tlbic7XG4gIGxldCBIT1NUID0gJ2hvc3QnO1xuICBsZXQgQVVUSE9SSVpBVElPTiA9ICdBdXRob3JpemF0aW9uJztcblxuICBmdW5jdGlvbiBoYXNoKHZhbHVlKSB7XG4gICAgcmV0dXJuIFNIQTI1Nih2YWx1ZSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgfVxuXG4gIGZ1bmN0aW9uIGhleEVuY29kZSh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS50b1N0cmluZyhlbmNIZXgpO1xuICB9XG5cbiAgZnVuY3Rpb24gaG1hYyhzZWNyZXQsIHZhbHVlKSB7XG4gICAgcmV0dXJuIEhtYWNTSEEyNTYodmFsdWUsIHNlY3JldCwge2FzQnl0ZXM6IHRydWV9KTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRDYW5vbmljYWxSZXF1ZXN0KG1ldGhvZCwgcGF0aCwgcXVlcnlQYXJhbXMsIGhlYWRlcnMsIHBheWxvYWQpIHtcbiAgICByZXR1cm4gbWV0aG9kICsgJ1xcbicgK1xuICAgICAgYnVpbGRDYW5vbmljYWxVcmkocGF0aCkgKyAnXFxuJyArXG4gICAgICBidWlsZENhbm9uaWNhbFF1ZXJ5U3RyaW5nKHF1ZXJ5UGFyYW1zKSArICdcXG4nICtcbiAgICAgIGJ1aWxkQ2Fub25pY2FsSGVhZGVycyhoZWFkZXJzKSArICdcXG4nICtcbiAgICAgIGJ1aWxkQ2Fub25pY2FsU2lnbmVkSGVhZGVycyhoZWFkZXJzKSArICdcXG4nICtcbiAgICAgIGhleEVuY29kZShoYXNoKHBheWxvYWQpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhc2hDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3QpIHtcbiAgICByZXR1cm4gaGV4RW5jb2RlKGhhc2gocmVxdWVzdCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRDYW5vbmljYWxVcmkodXJpKSB7XG4gICAgcmV0dXJuIGVuY29kZVVSSSh1cmkpO1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRDYW5vbmljYWxRdWVyeVN0cmluZyhxdWVyeVBhcmFtcykge1xuICAgIGlmIChPYmplY3Qua2V5cyhxdWVyeVBhcmFtcykubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGxldCBzb3J0ZWRRdWVyeVBhcmFtcyA9IFtdO1xuICAgIGZvciAobGV0IHByb3BlcnR5IGluIHF1ZXJ5UGFyYW1zKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHF1ZXJ5UGFyYW1zLCBcInByb3BlcnR5XCIpKSB7XG4gICAgICAgIHNvcnRlZFF1ZXJ5UGFyYW1zLnB1c2gocHJvcGVydHkpO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3J0ZWRRdWVyeVBhcmFtcy5zb3J0KCk7XG5cbiAgICBsZXQgY2Fub25pY2FsUXVlcnlTdHJpbmcgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNvcnRlZFF1ZXJ5UGFyYW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjYW5vbmljYWxRdWVyeVN0cmluZyArPSBzb3J0ZWRRdWVyeVBhcmFtc1tpXVxuICAgICAgICArICc9JyArIGZpeGVkRW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5UGFyYW1zW3NvcnRlZFF1ZXJ5UGFyYW1zW2ldXSkgKyAnJic7XG4gICAgfVxuICAgIHJldHVybiBjYW5vbmljYWxRdWVyeVN0cmluZy5zdWJzdHIoMCwgY2Fub25pY2FsUXVlcnlTdHJpbmcubGVuZ3RoIC0gMSk7XG4gIH1cblxuICBmdW5jdGlvbiBmaXhlZEVuY29kZVVSSUNvbXBvbmVudChzdHIpIHtcbiAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHN0cikucmVwbGFjZSgvWyEnKCkqXS9nLCBmdW5jdGlvbihjKSB7XG4gICAgICByZXR1cm4gJyUnICsgYy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkQ2Fub25pY2FsSGVhZGVycyhoZWFkZXJzKSB7XG4gICAgbGV0IGNhbm9uaWNhbEhlYWRlcnMgPSAnJztcbiAgICBsZXQgc29ydGVkS2V5cyA9IFtdO1xuICAgIGZvciAobGV0IHByb3BlcnR5IGluIGhlYWRlcnMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaGVhZGVycywgXCJwcm9wZXJ0eVwiKSkge1xuICAgICAgICBzb3J0ZWRLZXlzLnB1c2gocHJvcGVydHkpO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3J0ZWRLZXlzLnNvcnQoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc29ydGVkS2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgY2Fub25pY2FsSGVhZGVycyArPSBzb3J0ZWRLZXlzW2ldLnRvTG93ZXJDYXNlKCkgKyAnOicgKyBoZWFkZXJzW3NvcnRlZEtleXNbaV1dICsgJ1xcbic7XG4gICAgfVxuICAgIHJldHVybiBjYW5vbmljYWxIZWFkZXJzO1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRDYW5vbmljYWxTaWduZWRIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICBsZXQgc29ydGVkS2V5cyA9IFtdO1xuICAgIGZvciAobGV0IHByb3BlcnR5IGluIGhlYWRlcnMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaGVhZGVycywgXCJwcm9wZXJ0eVwiKSkge1xuICAgICAgICBzb3J0ZWRLZXlzLnB1c2gocHJvcGVydHkudG9Mb3dlckNhc2UoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHNvcnRlZEtleXMuc29ydCgpO1xuXG4gICAgcmV0dXJuIHNvcnRlZEtleXMuam9pbignOycpO1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRTdHJpbmdUb1NpZ24oZGF0ZXRpbWUsIGNyZWRlbnRpYWxTY29wZSwgaGFzaGVkQ2Fub25pY2FsUmVxdWVzdCkge1xuICAgIHJldHVybiBBV1NfU0hBXzI1NiArICdcXG4nICtcbiAgICAgIGRhdGV0aW1lICsgJ1xcbicgK1xuICAgICAgY3JlZGVudGlhbFNjb3BlICsgJ1xcbicgK1xuICAgICAgaGFzaGVkQ2Fub25pY2FsUmVxdWVzdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkQ3JlZGVudGlhbFNjb3BlKGRhdGV0aW1lLCByZWdpb24sIHNlcnZpY2UpIHtcbiAgICByZXR1cm4gZGF0ZXRpbWUuc3Vic3RyKDAsIDgpICsgJy8nICsgcmVnaW9uICsgJy8nICsgc2VydmljZSArICcvJyArIEFXUzRfUkVRVUVTVDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNhbGN1bGF0ZVNpZ25pbmdLZXkoc2VjcmV0S2V5LCBkYXRldGltZSwgcmVnaW9uLCBzZXJ2aWNlKSB7XG4gICAgcmV0dXJuIGhtYWMoaG1hYyhobWFjKFxuICAgICAgaG1hYyhBV1M0ICsgc2VjcmV0S2V5LCBkYXRldGltZS5zdWJzdHIoMCwgOCkpLFxuICAgICAgcmVnaW9uXG4gICAgKSwgc2VydmljZSksIEFXUzRfUkVRVUVTVCk7XG4gIH1cblxuICBmdW5jdGlvbiBjYWxjdWxhdGVTaWduYXR1cmUoa2V5LCBzdHJpbmdUb1NpZ24pIHtcbiAgICByZXR1cm4gaGV4RW5jb2RlKGhtYWMoa2V5LCBzdHJpbmdUb1NpZ24pKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkQXV0aG9yaXphdGlvbkhlYWRlcihhY2Nlc3NLZXksIGNyZWRlbnRpYWxTY29wZSwgaGVhZGVycywgc2lnbmF0dXJlKSB7XG4gICAgcmV0dXJuIEFXU19TSEFfMjU2ICsgJyBDcmVkZW50aWFsPScgKyBhY2Nlc3NLZXkgKyAnLycgKyBjcmVkZW50aWFsU2NvcGVcbiAgICAgICsgJywgU2lnbmVkSGVhZGVycz0nICsgYnVpbGRDYW5vbmljYWxTaWduZWRIZWFkZXJzKGhlYWRlcnMpICsgJywgU2lnbmF0dXJlPScgKyBzaWduYXR1cmU7XG4gIH1cblxuICBsZXQgYXdzU2lnVjRDbGllbnQgPSB7IH07XG4gIGlmIChjb25maWcuYWNjZXNzS2V5ID09PSB1bmRlZmluZWQgfHwgY29uZmlnLnNlY3JldEtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGF3c1NpZ1Y0Q2xpZW50O1xuICB9XG4gIGF3c1NpZ1Y0Q2xpZW50LmFjY2Vzc0tleSA9IHV0aWxzLmFzc2VydERlZmluZWQoY29uZmlnLmFjY2Vzc0tleSwgJ2FjY2Vzc0tleScpO1xuICBhd3NTaWdWNENsaWVudC5zZWNyZXRLZXkgPSB1dGlscy5hc3NlcnREZWZpbmVkKGNvbmZpZy5zZWNyZXRLZXksICdzZWNyZXRLZXknKTtcbiAgYXdzU2lnVjRDbGllbnQuc2Vzc2lvblRva2VuID0gY29uZmlnLnNlc3Npb25Ub2tlbjtcbiAgYXdzU2lnVjRDbGllbnQuc2VydmljZU5hbWUgPSB1dGlscy5hc3NlcnREZWZpbmVkKGNvbmZpZy5zZXJ2aWNlTmFtZSwgJ3NlcnZpY2VOYW1lJyk7XG4gIGF3c1NpZ1Y0Q2xpZW50LnJlZ2lvbiA9IHV0aWxzLmFzc2VydERlZmluZWQoY29uZmlnLnJlZ2lvbiwgJ3JlZ2lvbicpO1xuICBhd3NTaWdWNENsaWVudC5lbmRwb2ludCA9IHV0aWxzLmFzc2VydERlZmluZWQoY29uZmlnLmVuZHBvaW50LCAnZW5kcG9pbnQnKTtcbiAgYXdzU2lnVjRDbGllbnQucmV0cmllcyA9IGNvbmZpZy5yZXRyaWVzO1xuICBhd3NTaWdWNENsaWVudC5yZXRyeUNvbmRpdGlvbiA9IGNvbmZpZy5yZXRyeUNvbmRpdGlvbjtcbiAgYXdzU2lnVjRDbGllbnQucmV0cnlEZWxheSA9IGNvbmZpZy5yZXRyeURlbGF5O1xuICBhd3NTaWdWNENsaWVudC5ob3N0ID0gY29uZmlnLmhvc3Q7XG5cbiAgYXdzU2lnVjRDbGllbnQubWFrZVJlcXVlc3QgPSBmdW5jdGlvbihyZXF1ZXN0KSB7XG4gICAgbGV0IHZlcmIgPSB1dGlscy5hc3NlcnREZWZpbmVkKHJlcXVlc3QudmVyYiwgJ3ZlcmInKTtcbiAgICBsZXQgcGF0aCA9IHV0aWxzLmFzc2VydERlZmluZWQocmVxdWVzdC5wYXRoLCAncGF0aCcpO1xuICAgIGxldCBxdWVyeVBhcmFtcyA9IHV0aWxzLmNvcHkocmVxdWVzdC5xdWVyeVBhcmFtcyk7XG4gICAgbGV0IHRpbWVvdXQgPSB1dGlscy5jb3B5KHJlcXVlc3QudGltZW91dCk7XG5cbiAgICBpZiAocXVlcnlQYXJhbXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB9XG5cbiAgICBpZiAodGltZW91dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aW1lb3V0ID0gMDtcbiAgICB9XG4gICAgbGV0IGhlYWRlcnMgPSB1dGlscy5jb3B5KHJlcXVlc3QuaGVhZGVycyk7XG4gICAgaWYgKGhlYWRlcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaGVhZGVycyA9IHt9O1xuICAgIH1cblxuICAgIC8vIElmIHRoZSB1c2VyIGhhcyBub3Qgc3BlY2lmaWVkIGFuIG92ZXJyaWRlIGZvciBDb250ZW50IHR5cGUgdGhlIHVzZSBkZWZhdWx0XG4gICAgaWYgKGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gY29uZmlnLmRlZmF1bHRDb250ZW50VHlwZTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgdXNlciBoYXMgbm90IHNwZWNpZmllZCBhbiBvdmVycmlkZSBmb3IgQWNjZXB0IHR5cGUgdGhlIHVzZSBkZWZhdWx0XG4gICAgaWYgKGhlYWRlcnNbJ0FjY2VwdCddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhlYWRlcnNbJ0FjY2VwdCddID0gY29uZmlnLmRlZmF1bHRBY2NlcHRUeXBlO1xuICAgIH1cblxuICAgIGxldCBib2R5ID0gdXRpbHMuY29weShyZXF1ZXN0LmJvZHkpO1xuXG4gICAgLy8gc3RyaW5naWZ5IHJlcXVlc3QgYm9keSBpZiBjb250ZW50IHR5cGUgaXMgSlNPTlxuICAgIGlmIChib2R5ICYmIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddICYmIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID09PSAnYXBwbGljYXRpb24vanNvbicpIHtcbiAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5KTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBubyBib2R5IHJlbW92ZSB0aGUgY29udGVudC10eXBlIGhlYWRlciBzbyBpdCBpcyBub3QgaW5jbHVkZWQgaW4gU2lnVjQgY2FsY3VsYXRpb25cbiAgICBpZiAoYm9keSA9PT0gJycgfHwgYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIGRlbGV0ZSBoZWFkZXJzWydDb250ZW50LVR5cGUnXTtcbiAgICB9XG5cbiAgICBsZXQgZGF0ZXRpbWUgPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldFRpbWUoKSArIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCkudG9JU09TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXC5cXGR7M31aJC8sICdaJykucmVwbGFjZSgvWzotXXxcXC5cXGR7M30vZywgJycpO1xuICAgIGhlYWRlcnNbWF9BTVpfREFURV0gPSBkYXRldGltZTtcblxuICAgIGlmIChhd3NTaWdWNENsaWVudC5ob3N0KSB7XG4gICAgICBoZWFkZXJzW0hPU1RdID0gYXdzU2lnVjRDbGllbnQuaG9zdDtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHBhcnNlciA9IHVybFBhcnNlci5wYXJzZShhd3NTaWdWNENsaWVudC5lbmRwb2ludCk7XG4gICAgICBoZWFkZXJzW0hPU1RdID0gcGFyc2VyLmhvc3Q7XG4gICAgfVxuXG4gICAgbGV0IGNhbm9uaWNhbFJlcXVlc3QgPSBidWlsZENhbm9uaWNhbFJlcXVlc3QodmVyYiwgcGF0aCwgcXVlcnlQYXJhbXMsIGhlYWRlcnMsIGJvZHkpO1xuICAgIGxldCBoYXNoZWRDYW5vbmljYWxSZXF1ZXN0ID0gaGFzaENhbm9uaWNhbFJlcXVlc3QoY2Fub25pY2FsUmVxdWVzdCk7XG4gICAgbGV0IGNyZWRlbnRpYWxTY29wZSA9IGJ1aWxkQ3JlZGVudGlhbFNjb3BlKFxuICAgICAgZGF0ZXRpbWUsXG4gICAgICBhd3NTaWdWNENsaWVudC5yZWdpb24sXG4gICAgICBhd3NTaWdWNENsaWVudC5zZXJ2aWNlTmFtZVxuICAgICk7XG4gICAgbGV0IHN0cmluZ1RvU2lnbiA9IGJ1aWxkU3RyaW5nVG9TaWduKGRhdGV0aW1lLCBjcmVkZW50aWFsU2NvcGUsIGhhc2hlZENhbm9uaWNhbFJlcXVlc3QpO1xuICAgIGxldCBzaWduaW5nS2V5ID0gY2FsY3VsYXRlU2lnbmluZ0tleShcbiAgICAgIGF3c1NpZ1Y0Q2xpZW50LnNlY3JldEtleSxcbiAgICAgIGRhdGV0aW1lLFxuICAgICAgYXdzU2lnVjRDbGllbnQucmVnaW9uLFxuICAgICAgYXdzU2lnVjRDbGllbnQuc2VydmljZU5hbWVcbiAgICApO1xuICAgIGxldCBzaWduYXR1cmUgPSBjYWxjdWxhdGVTaWduYXR1cmUoc2lnbmluZ0tleSwgc3RyaW5nVG9TaWduKTtcbiAgICBoZWFkZXJzW0FVVEhPUklaQVRJT05dID0gYnVpbGRBdXRob3JpemF0aW9uSGVhZGVyKFxuICAgICAgYXdzU2lnVjRDbGllbnQuYWNjZXNzS2V5LFxuICAgICAgY3JlZGVudGlhbFNjb3BlLFxuICAgICAgaGVhZGVycyxcbiAgICAgIHNpZ25hdHVyZVxuICAgICk7XG4gICAgaWYgKGF3c1NpZ1Y0Q2xpZW50LnNlc3Npb25Ub2tlbiAhPT0gdW5kZWZpbmVkICYmIGF3c1NpZ1Y0Q2xpZW50LnNlc3Npb25Ub2tlbiAhPT0gJycpIHtcbiAgICAgIGhlYWRlcnNbWF9BTVpfU0VDVVJJVFlfVE9LRU5dID0gYXdzU2lnVjRDbGllbnQuc2Vzc2lvblRva2VuO1xuICAgIH1cbiAgICBkZWxldGUgaGVhZGVyc1tIT1NUXTtcblxuICAgIGxldCB1cmwgPSBjb25maWcuZW5kcG9pbnQgKyBwYXRoO1xuICAgIGxldCBxdWVyeVN0cmluZyA9IGJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmcocXVlcnlQYXJhbXMpO1xuICAgIGlmIChxdWVyeVN0cmluZyAhPT0gJycpIHtcbiAgICAgIHVybCArPSAnPycgKyBxdWVyeVN0cmluZztcbiAgICB9XG5cbiAgICAvLyBOZWVkIHRvIHJlLWF0dGFjaCBDb250ZW50LVR5cGUgaWYgaXQgaXMgbm90IHNwZWNpZmllZCBhdCB0aGlzIHBvaW50XG4gICAgaWYgKGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gY29uZmlnLmRlZmF1bHRDb250ZW50VHlwZTtcbiAgICB9XG5cbiAgICBsZXQgc2lnbmVkUmVxdWVzdCA9IHtcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICB0aW1lb3V0OiB0aW1lb3V0LFxuICAgICAgZGF0YTogYm9keVxuICAgIH07XG4gICAgaWYgKGNvbmZpZy5yZXRyaWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNpZ25lZFJlcXVlc3QuYmFzZVVSTCA9IHVybDtcbiAgICAgIGxldCBjbGllbnQgPSBheGlvcy5jcmVhdGUoc2lnbmVkUmVxdWVzdCk7XG5cbiAgICAgIC8vIEFsbG93IHVzZXIgY29uZmlndXJhYmxlIGRlbGF5LCBvciBidWlsdC1pbiBleHBvbmVudGlhbCBkZWxheVxuICAgICAgbGV0IHJldHJ5RGVsYXkgPSBmdW5jdGlvbigpIHtcbiByZXR1cm4gMDtcbn07XG4gICAgICBpZiAoY29uZmlnLnJldHJ5RGVsYXkgPT09ICdleHBvbmVudGlhbCcpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9IGF4aW9zUmV0cnkuZXhwb25lbnRpYWxEZWxheTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbmZpZy5yZXRyeURlbGF5ID09PSAnbnVtYmVyJykge1xuICAgICAgICByZXRyeURlbGF5ID0gKCkgPT4gcGFyc2VJbnQoY29uZmlnLnJldHJ5RGVsYXkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29uZmlnLnJldHJ5RGVsYXkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9IGNvbmZpZy5yZXRyeURlbGF5O1xuICAgICAgfVxuXG4gICAgICBheGlvc1JldHJ5KGNsaWVudCwge1xuICAgICAgICByZXRyaWVzOiBjb25maWcucmV0cmllcyxcbiAgICAgICAgcmV0cnlDb25kaXRpb246IGNvbmZpZy5yZXRyeUNvbmRpdGlvbixcbiAgICAgICAgcmV0cnlEZWxheSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNsaWVudC5yZXF1ZXN0KHttZXRob2Q6IHZlcmJ9KTtcbiAgICB9XG4gICAgc2lnbmVkUmVxdWVzdC5tZXRob2QgPSB2ZXJiO1xuICAgIHNpZ25lZFJlcXVlc3QudXJsID0gdXJsO1xuICAgIHJldHVybiBheGlvcyhzaWduZWRSZXF1ZXN0KTtcbiAgfTtcblxuICByZXR1cm4gYXdzU2lnVjRDbGllbnQ7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBzaWdWNENsaWVudEZhY3Rvcnk7XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXBpR2F0ZXdheUNvcmUvc2lnVjRDbGllbnQuanMiXSwibmFtZXMiOlsic2lnVjRDbGllbnRGYWN0b3J5IiwibmV3Q2xpZW50IiwiY29uZmlnIiwiQVdTX1NIQV8yNTYiLCJBV1M0X1JFUVVFU1QiLCJBV1M0IiwiWF9BTVpfREFURSIsIlhfQU1aX1NFQ1VSSVRZX1RPS0VOIiwiSE9TVCIsIkFVVEhPUklaQVRJT04iLCJoYXNoIiwidmFsdWUiLCJoZXhFbmNvZGUiLCJ0b1N0cmluZyIsImVuY0hleCIsImhtYWMiLCJzZWNyZXQiLCJhc0J5dGVzIiwiYnVpbGRDYW5vbmljYWxSZXF1ZXN0IiwibWV0aG9kIiwicGF0aCIsInF1ZXJ5UGFyYW1zIiwiaGVhZGVycyIsInBheWxvYWQiLCJidWlsZENhbm9uaWNhbFVyaSIsImJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmciLCJidWlsZENhbm9uaWNhbEhlYWRlcnMiLCJidWlsZENhbm9uaWNhbFNpZ25lZEhlYWRlcnMiLCJoYXNoQ2Fub25pY2FsUmVxdWVzdCIsInJlcXVlc3QiLCJ1cmkiLCJlbmNvZGVVUkkiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwic29ydGVkUXVlcnlQYXJhbXMiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInB1c2giLCJzb3J0IiwiY2Fub25pY2FsUXVlcnlTdHJpbmciLCJpIiwiZml4ZWRFbmNvZGVVUklDb21wb25lbnQiLCJzdWJzdHIiLCJzdHIiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiYyIsImNoYXJDb2RlQXQiLCJjYW5vbmljYWxIZWFkZXJzIiwic29ydGVkS2V5cyIsInRvTG93ZXJDYXNlIiwiam9pbiIsImJ1aWxkU3RyaW5nVG9TaWduIiwiZGF0ZXRpbWUiLCJjcmVkZW50aWFsU2NvcGUiLCJoYXNoZWRDYW5vbmljYWxSZXF1ZXN0IiwiYnVpbGRDcmVkZW50aWFsU2NvcGUiLCJyZWdpb24iLCJzZXJ2aWNlIiwiY2FsY3VsYXRlU2lnbmluZ0tleSIsInNlY3JldEtleSIsImNhbGN1bGF0ZVNpZ25hdHVyZSIsImtleSIsInN0cmluZ1RvU2lnbiIsImJ1aWxkQXV0aG9yaXphdGlvbkhlYWRlciIsImFjY2Vzc0tleSIsInNpZ25hdHVyZSIsImF3c1NpZ1Y0Q2xpZW50IiwidW5kZWZpbmVkIiwidXRpbHMiLCJhc3NlcnREZWZpbmVkIiwic2Vzc2lvblRva2VuIiwic2VydmljZU5hbWUiLCJlbmRwb2ludCIsInJldHJpZXMiLCJyZXRyeUNvbmRpdGlvbiIsInJldHJ5RGVsYXkiLCJob3N0IiwibWFrZVJlcXVlc3QiLCJ2ZXJiIiwiY29weSIsInRpbWVvdXQiLCJkZWZhdWx0Q29udGVudFR5cGUiLCJkZWZhdWx0QWNjZXB0VHlwZSIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiRGF0ZSIsImdldFRpbWUiLCJzeXN0ZW1DbG9ja09mZnNldCIsInRvSVNPU3RyaW5nIiwicGFyc2VyIiwidXJsUGFyc2VyIiwicGFyc2UiLCJjYW5vbmljYWxSZXF1ZXN0Iiwic2lnbmluZ0tleSIsInVybCIsInF1ZXJ5U3RyaW5nIiwic2lnbmVkUmVxdWVzdCIsImRhdGEiLCJiYXNlVVJMIiwiY2xpZW50IiwiYXhpb3MiLCJjcmVhdGUiLCJheGlvc1JldHJ5IiwiZXhwb25lbnRpYWxEZWxheSIsInBhcnNlSW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFlQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFyQkE7Ozs7Ozs7Ozs7Ozs7O0FBdUJBLElBQU1BLGtCQUFrQixHQUFHLEVBQTNCOztBQUNBQSxrQkFBa0IsQ0FBQ0MsU0FBbkIsR0FBK0IsVUFBU0MsTUFBVCxFQUFpQjtBQUM5QyxNQUFJQyxXQUFXLEdBQUcsa0JBQWxCO0FBQ0EsTUFBSUMsWUFBWSxHQUFHLGNBQW5CO0FBQ0EsTUFBSUMsSUFBSSxHQUFHLE1BQVg7QUFDQSxNQUFJQyxVQUFVLEdBQUcsWUFBakI7QUFDQSxNQUFJQyxv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RUFBRTNFLE1BQU0sQ0FBQzJFLE9BREM7QUFFakJDLFFBQUFBLGNBQWMsRUFBRTVFLE1BQU0sQ0FBQzRFLGNBRk47QUFHakJDLFFBQUFBLFVBQVUsRUFBVkE7QUFIaUIsT0FBbkI7QUFLQSxhQUFPeUIsTUFBTSxDQUFDM0UsT0FBUCxDQUFlO0FBQUNWLFFBQUFBLE1BQU0sRUFBRStEO0FBQVQsT0FBZixDQUFQO0FBQ0Q7O0FBQ0RtQixJQUFBQSxhQUFhLENBQUNsRixNQUFkLEdBQXVCK0QsSUFBdkI7QUFDQW1CLElBQUFBLGFBQWEsQ0FBQ0YsR0FBZCxHQUFvQkEsR0FBcEI7QUFDQSxXQUFPLHVCQUFNRSxhQUFOLENBQVA7QUFDRCxHQXZIRDs7QUF5SEEsU0FBTy9CLGNBQVA7QUFDRCxDQWpRRDs7ZUFtUWV0RSxrQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxMC0yMDE2IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS5cbiAqIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogIGh0dHA6Ly9hd3MuYW1hem9uLmNvbS9hcGFjaGUyLjBcbiAqXG4gKiBvciBpbiB0aGUgXCJsaWNlbnNlXCIgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWRcbiAqIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlclxuICogZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmdcbiAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IGF4aW9zUmV0cnkgZnJvbSAnYXhpb3MtcmV0cnknO1xuaW1wb3J0IFNIQTI1NiBmcm9tICdjcnlwdG8tanMvc2hhMjU2JztcbmltcG9ydCBlbmNIZXggZnJvbSAnY3J5cHRvLWpzL2VuYy1oZXgnO1xuaW1wb3J0IEhtYWNTSEEyNTYgZnJvbSAnY3J5cHRvLWpzL2htYWMtc2hhMjU2JztcbmltcG9ydCB1cmxQYXJzZXIgZnJvbSAndXJsJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuY29uc3Qgc2lnVjRDbGllbnRGYWN0b3J5ID0ge307XG5zaWdWNENsaWVudEZhY3RvcnkubmV3Q2xpZW50ID0gZnVuY3Rpb24oY29uZmlnKSB7XG4gIGxldCBBV1NfU0hBXzI1NiA9ICdBV1M0LUhNQUMtU0hBMjU2JztcbiAgbGV0IEFXUzRfUkVRVUVTVCA9ICdhd3M0X3JlcXVlc3QnO1xuICBsZXQgQVdTNCA9ICdBV1M0JztcbiAgbGV0IFhfQU1aX0RBVEUgPSAneC1hbXotZGF0ZSc7XG4gIGxldCBYX0FNWl9TRUNVUklUWV9UT0tFTiA9ICd4LWFtei1zZWN1cml0eS10b2tlbic7XG4gIGxldCBIT1NUID0gJ2hvc3QnO1xuICBsZXQgQVVUSE9SSVpBVElPTiA9ICdBdXRob3JpemF0aW9uJztcblxuICBmdW5jdGlvbiBoYXNoKHZhbHVlKSB7XG4gICAgcmV0dXJuIFNIQTI1Nih2YWx1ZSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgfVxuXG4gIGZ1bmN0aW9uIGhleEVuY29kZSh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS50b1N0cmluZyhlbmNIZXgpO1xuICB9XG5cbiAgZnVuY3Rpb24gaG1hYyhzZWNyZXQsIHZhbHVlKSB7XG4gICAgcmV0dXJuIEhtYWNTSEEyNTYodmFsdWUsIHNlY3JldCwge2FzQnl0ZXM6IHRydWV9KTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRDYW5vbmljYWxSZXF1ZXN0KG1ldGhvZCwgcGF0aCwgcXVlcnlQYXJhbXMsIGhlYWRlcnMsIHBheWxvYWQpIHtcbiAgICByZXR1cm4gbWV0aG9kICsgJ1xcbicgK1xuICAgICAgYnVpbGRDYW5vbmljYWxVcmkocGF0aCkgKyAnXFxuJyArXG4gICAgICBidWlsZENhbm9uaWNhbFF1ZXJ5U3RyaW5nKHF1ZXJ5UGFyYW1zKSArICdcXG4nICtcbiAgICAgIGJ1aWxkQ2Fub25pY2FsSGVhZGVycyhoZWFkZXJzKSArICdcXG4nICtcbiAgICAgIGJ1aWxkQ2Fub25pY2FsU2lnbmVkSGVhZGVycyhoZWFkZXJzKSArICdcXG4nICtcbiAgICAgIGhleEVuY29kZShoYXNoKHBheWxvYWQpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhc2hDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3QpIHtcbiAgICByZXR1cm4gaGV4RW5jb2RlKGhhc2gocmVxdWVzdCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRDYW5vbmljYWxVcmkodXJpKSB7XG4gICAgcmV0dXJuIGVuY29kZVVSSSh1cmkpO1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRDYW5vbmljYWxRdWVyeVN0cmluZyhxdWVyeVBhcmFtcykge1xuICAgIGlmIChPYmplY3Qua2V5cyhxdWVyeVBhcmFtcykubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGxldCBzb3J0ZWRRdWVyeVBhcmFtcyA9IFtdO1xuICAgIGZvciAobGV0IHByb3BlcnR5IGluIHF1ZXJ5UGFyYW1zKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHF1ZXJ5UGFyYW1zLCBcInByb3BlcnR5XCIpKSB7XG4gICAgICAgIHNvcnRlZFF1ZXJ5UGFyYW1zLnB1c2gocHJvcGVydHkpO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3J0ZWRRdWVyeVBhcmFtcy5zb3J0KCk7XG5cbiAgICBsZXQgY2Fub25pY2FsUXVlcnlTdHJpbmcgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNvcnRlZFF1ZXJ5UGFyYW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjYW5vbmljYWxRdWVyeVN0cmluZyArPSBzb3J0ZWRRdWVyeVBhcmFtc1tpXVxuICAgICAgICArICc9JyArIGZpeGVkRW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5UGFyYW1zW3NvcnRlZFF1ZXJ5UGFyYW1zW2ldXSkgKyAnJic7XG4gICAgfVxuICAgIHJldHVybiBjYW5vbmljYWxRdWVyeVN0cmluZy5zdWJzdHIoMCwgY2Fub25pY2FsUXVlcnlTdHJpbmcubGVuZ3RoIC0gMSk7XG4gIH1cblxuICBmdW5jdGlvbiBmaXhlZEVuY29kZVVSSUNvbXBvbmVudChzdHIpIHtcbiAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHN0cikucmVwbGFjZSgvWyEnKCkqXS9nLCBmdW5jdGlvbihjKSB7XG4gICAgICByZXR1cm4gJyUnICsgYy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkQ2Fub25pY2FsSGVhZGVycyhoZWFkZXJzKSB7XG4gICAgbGV0IGNhbm9uaWNhbEhlYWRlcnMgPSAnJztcbiAgICBsZXQgc29ydGVkS2V5cyA9IFtdO1xuICAgIGZvciAobGV0IHByb3BlcnR5IGluIGhlYWRlcnMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaGVhZGVycywgXCJwcm9wZXJ0eVwiKSkge1xuICAgICAgICBzb3J0ZWRLZXlzLnB1c2gocHJvcGVydHkpO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3J0ZWRLZXlzLnNvcnQoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc29ydGVkS2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgY2Fub25pY2FsSGVhZGVycyArPSBzb3J0ZWRLZXlzW2ldLnRvTG93ZXJDYXNlKCkgKyAnOicgKyBoZWFkZXJzW3NvcnRlZEtleXNbaV1dICsgJ1xcbic7XG4gICAgfVxuICAgIHJldHVybiBjYW5vbmljYWxIZWFkZXJzO1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRDYW5vbmljYWxTaWduZWRIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICBsZXQgc29ydGVkS2V5cyA9IFtdO1xuICAgIGZvciAobGV0IHByb3BlcnR5IGluIGhlYWRlcnMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaGVhZGVycywgXCJwcm9wZXJ0eVwiKSkge1xuICAgICAgICBzb3J0ZWRLZXlzLnB1c2gocHJvcGVydHkudG9Mb3dlckNhc2UoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHNvcnRlZEtleXMuc29ydCgpO1xuXG4gICAgcmV0dXJuIHNvcnRlZEtleXMuam9pbignOycpO1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRTdHJpbmdUb1NpZ24oZGF0ZXRpbWUsIGNyZWRlbnRpYWxTY29wZSwgaGFzaGVkQ2Fub25pY2FsUmVxdWVzdCkge1xuICAgIHJldHVybiBBV1NfU0hBXzI1NiArICdcXG4nICtcbiAgICAgIGRhdGV0aW1lICsgJ1xcbicgK1xuICAgICAgY3JlZGVudGlhbFNjb3BlICsgJ1xcbicgK1xuICAgICAgaGFzaGVkQ2Fub25pY2FsUmVxdWVzdDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkQ3JlZGVudGlhbFNjb3BlKGRhdGV0aW1lLCByZWdpb24sIHNlcnZpY2UpIHtcbiAgICByZXR1cm4gZGF0ZXRpbWUuc3Vic3RyKDAsIDgpICsgJy8nICsgcmVnaW9uICsgJy8nICsgc2VydmljZSArICcvJyArIEFXUzRfUkVRVUVTVDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNhbGN1bGF0ZVNpZ25pbmdLZXkoc2VjcmV0S2V5LCBkYXRldGltZSwgcmVnaW9uLCBzZXJ2aWNlKSB7XG4gICAgcmV0dXJuIGhtYWMoaG1hYyhobWFjKFxuICAgICAgaG1hYyhBV1M0ICsgc2VjcmV0S2V5LCBkYXRldGltZS5zdWJzdHIoMCwgOCkpLFxuICAgICAgcmVnaW9uXG4gICAgKSwgc2VydmljZSksIEFXUzRfUkVRVUVTVCk7XG4gIH1cblxuICBmdW5jdGlvbiBjYWxjdWxhdGVTaWduYXR1cmUoa2V5LCBzdHJpbmdUb1NpZ24pIHtcbiAgICByZXR1cm4gaGV4RW5jb2RlKGhtYWMoa2V5LCBzdHJpbmdUb1NpZ24pKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJ1aWxkQXV0aG9yaXphdGlvbkhlYWRlcihhY2Nlc3NLZXksIGNyZWRlbnRpYWxTY29wZSwgaGVhZGVycywgc2lnbmF0dXJlKSB7XG4gICAgcmV0dXJuIEFXU19TSEFfMjU2ICsgJyBDcmVkZW50aWFsPScgKyBhY2Nlc3NLZXkgKyAnLycgKyBjcmVkZW50aWFsU2NvcGVcbiAgICAgICsgJywgU2lnbmVkSGVhZGVycz0nICsgYnVpbGRDYW5vbmljYWxTaWduZWRIZWFkZXJzKGhlYWRlcnMpICsgJywgU2lnbmF0dXJlPScgKyBzaWduYXR1cmU7XG4gIH1cblxuICBsZXQgYXdzU2lnVjRDbGllbnQgPSB7IH07XG4gIGlmIChjb25maWcuYWNjZXNzS2V5ID09PSB1bmRlZmluZWQgfHwgY29uZmlnLnNlY3JldEtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGF3c1NpZ1Y0Q2xpZW50O1xuICB9XG4gIGF3c1NpZ1Y0Q2xpZW50LmFjY2Vzc0tleSA9IHV0aWxzLmFzc2VydERlZmluZWQoY29uZmlnLmFjY2Vzc0tleSwgJ2FjY2Vzc0tleScpO1xuICBhd3NTaWdWNENsaWVudC5zZWNyZXRLZXkgPSB1dGlscy5hc3NlcnREZWZpbmVkKGNvbmZpZy5zZWNyZXRLZXksICdzZWNyZXRLZXknKTtcbiAgYXdzU2lnVjRDbGllbnQuc2Vzc2lvblRva2VuID0gY29uZmlnLnNlc3Npb25Ub2tlbjtcbiAgYXdzU2lnVjRDbGllbnQuc2VydmljZU5hbWUgPSB1dGlscy5hc3NlcnREZWZpbmVkKGNvbmZpZy5zZXJ2aWNlTmFtZSwgJ3NlcnZpY2VOYW1lJyk7XG4gIGF3c1NpZ1Y0Q2xpZW50LnJlZ2lvbiA9IHV0aWxzLmFzc2VydERlZmluZWQoY29uZmlnLnJlZ2lvbiwgJ3JlZ2lvbicpO1xuICBhd3NTaWdWNENsaWVudC5lbmRwb2ludCA9IHV0aWxzLmFzc2VydERlZmluZWQoY29uZmlnLmVuZHBvaW50LCAnZW5kcG9pbnQnKTtcbiAgYXdzU2lnVjRDbGllbnQucmV0cmllcyA9IGNvbmZpZy5yZXRyaWVzO1xuICBhd3NTaWdWNENsaWVudC5yZXRyeUNvbmRpdGlvbiA9IGNvbmZpZy5yZXRyeUNvbmRpdGlvbjtcbiAgYXdzU2lnVjRDbGllbnQucmV0cnlEZWxheSA9IGNvbmZpZy5yZXRyeURlbGF5O1xuICBhd3NTaWdWNENsaWVudC5ob3N0ID0gY29uZmlnLmhvc3Q7XG5cbiAgYXdzU2lnVjRDbGllbnQubWFrZVJlcXVlc3QgPSBmdW5jdGlvbihyZXF1ZXN0KSB7XG4gICAgbGV0IHZlcmIgPSB1dGlscy5hc3NlcnREZWZpbmVkKHJlcXVlc3QudmVyYiwgJ3ZlcmInKTtcbiAgICBsZXQgcGF0aCA9IHV0aWxzLmFzc2VydERlZmluZWQocmVxdWVzdC5wYXRoLCAncGF0aCcpO1xuICAgIGxldCBxdWVyeVBhcmFtcyA9IHV0aWxzLmNvcHkocmVxdWVzdC5xdWVyeVBhcmFtcyk7XG4gICAgbGV0IHRpbWVvdXQgPSB1dGlscy5jb3B5KHJlcXVlc3QudGltZW91dCk7XG5cbiAgICBpZiAocXVlcnlQYXJhbXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICB9XG5cbiAgICBpZiAodGltZW91dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aW1lb3V0ID0gMDtcbiAgICB9XG4gICAgbGV0IGhlYWRlcnMgPSB1dGlscy5jb3B5KHJlcXVlc3QuaGVhZGVycyk7XG4gICAgaWYgKGhlYWRlcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaGVhZGVycyA9IHt9O1xuICAgIH1cblxuICAgIC8vIElmIHRoZSB1c2VyIGhhcyBub3Qgc3BlY2lmaWVkIGFuIG92ZXJyaWRlIGZvciBDb250ZW50IHR5cGUgdGhlIHVzZSBkZWZhdWx0XG4gICAgaWYgKGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gY29uZmlnLmRlZmF1bHRDb250ZW50VHlwZTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgdXNlciBoYXMgbm90IHNwZWNpZmllZCBhbiBvdmVycmlkZSBmb3IgQWNjZXB0IHR5cGUgdGhlIHVzZSBkZWZhdWx0XG4gICAgaWYgKGhlYWRlcnNbJ0FjY2VwdCddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhlYWRlcnNbJ0FjY2VwdCddID0gY29uZmlnLmRlZmF1bHRBY2NlcHRUeXBlO1xuICAgIH1cblxuICAgIGxldCBib2R5ID0gdXRpbHMuY29weShyZXF1ZXN0LmJvZHkpO1xuXG4gICAgLy8gc3RyaW5naWZ5IHJlcXVlc3QgYm9keSBpZiBjb250ZW50IHR5cGUgaXMgSlNPTlxuICAgIGlmIChib2R5ICYmIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddICYmIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID09PSAnYXBwbGljYXRpb24vanNvbicpIHtcbiAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5KTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBubyBib2R5IHJlbW92ZSB0aGUgY29udGVudC10eXBlIGhlYWRlciBzbyBpdCBpcyBub3QgaW5jbHVkZWQgaW4gU2lnVjQgY2FsY3VsYXRpb25cbiAgICBpZiAoYm9keSA9PT0gJycgfHwgYm9keSA9PT0gdW5kZWZpbmVkIHx8IGJvZHkgPT09IG51bGwpIHtcbiAgICAgIGRlbGV0ZSBoZWFkZXJzWydDb250ZW50LVR5cGUnXTtcbiAgICB9XG5cbiAgICBsZXQgZGF0ZXRpbWUgPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldFRpbWUoKSArIGNvbmZpZy5zeXN0ZW1DbG9ja09mZnNldCkudG9JU09TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXC5cXGR7M31aJC8sICdaJykucmVwbGFjZSgvWzotXXxcXC5cXGR7M30vZywgJycpO1xuICAgIGhlYWRlcnNbWF9BTVpfREFURV0gPSBkYXRldGltZTtcblxuICAgIGlmIChhd3NTaWdWNENsaWVudC5ob3N0KSB7XG4gICAgICBoZWFkZXJzW0hPU1RdID0gYXdzU2lnVjRDbGllbnQuaG9zdDtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHBhcnNlciA9IHVybFBhcnNlci5wYXJzZShhd3NTaWdWNENsaWVudC5lbmRwb2ludCk7XG4gICAgICBoZWFkZXJzW0hPU1RdID0gcGFyc2VyLmhvc3Q7XG4gICAgfVxuXG4gICAgbGV0IGNhbm9uaWNhbFJlcXVlc3QgPSBidWlsZENhbm9uaWNhbFJlcXVlc3QodmVyYiwgcGF0aCwgcXVlcnlQYXJhbXMsIGhlYWRlcnMsIGJvZHkpO1xuICAgIGxldCBoYXNoZWRDYW5vbmljYWxSZXF1ZXN0ID0gaGFzaENhbm9uaWNhbFJlcXVlc3QoY2Fub25pY2FsUmVxdWVzdCk7XG4gICAgbGV0IGNyZWRlbnRpYWxTY29wZSA9IGJ1aWxkQ3JlZGVudGlhbFNjb3BlKFxuICAgICAgZGF0ZXRpbWUsXG4gICAgICBhd3NTaWdWNENsaWVudC5yZWdpb24sXG4gICAgICBhd3NTaWdWNENsaWVudC5zZXJ2aWNlTmFtZVxuICAgICk7XG4gICAgbGV0IHN0cmluZ1RvU2lnbiA9IGJ1aWxkU3RyaW5nVG9TaWduKGRhdGV0aW1lLCBjcmVkZW50aWFsU2NvcGUsIGhhc2hlZENhbm9uaWNhbFJlcXVlc3QpO1xuICAgIGxldCBzaWduaW5nS2V5ID0gY2FsY3VsYXRlU2lnbmluZ0tleShcbiAgICAgIGF3c1NpZ1Y0Q2xpZW50LnNlY3JldEtleSxcbiAgICAgIGRhdGV0aW1lLFxuICAgICAgYXdzU2lnVjRDbGllbnQucmVnaW9uLFxuICAgICAgYXdzU2lnVjRDbGllbnQuc2VydmljZU5hbWVcbiAgICApO1xuICAgIGxldCBzaWduYXR1cmUgPSBjYWxjdWxhdGVTaWduYXR1cmUoc2lnbmluZ0tleSwgc3RyaW5nVG9TaWduKTtcbiAgICBoZWFkZXJzW0FVVEhPUklaQVRJT05dID0gYnVpbGRBdXRob3JpemF0aW9uSGVhZGVyKFxuICAgICAgYXdzU2lnVjRDbGllbnQuYWNjZXNzS2V5LFxuICAgICAgY3JlZGVudGlhbFNjb3BlLFxuICAgICAgaGVhZGVycyxcbiAgICAgIHNpZ25hdHVyZVxuICAgICk7XG4gICAgaWYgKGF3c1NpZ1Y0Q2xpZW50LnNlc3Npb25Ub2tlbiAhPT0gdW5kZWZpbmVkICYmIGF3c1NpZ1Y0Q2xpZW50LnNlc3Npb25Ub2tlbiAhPT0gJycpIHtcbiAgICAgIGhlYWRlcnNbWF9BTVpfU0VDVVJJVFlfVE9LRU5dID0gYXdzU2lnVjRDbGllbnQuc2Vzc2lvblRva2VuO1xuICAgIH1cbiAgICBkZWxldGUgaGVhZGVyc1tIT1NUXTtcblxuICAgIGxldCB1cmwgPSBjb25maWcuZW5kcG9pbnQgKyBwYXRoO1xuICAgIGxldCBxdWVyeVN0cmluZyA9IGJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmcocXVlcnlQYXJhbXMpO1xuICAgIGlmIChxdWVyeVN0cmluZyAhPT0gJycpIHtcbiAgICAgIHVybCArPSAnPycgKyBxdWVyeVN0cmluZztcbiAgICB9XG5cbiAgICAvLyBOZWVkIHRvIHJlLWF0dGFjaCBDb250ZW50LVR5cGUgaWYgaXQgaXMgbm90IHNwZWNpZmllZCBhdCB0aGlzIHBvaW50XG4gICAgaWYgKGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gY29uZmlnLmRlZmF1bHRDb250ZW50VHlwZTtcbiAgICB9XG5cbiAgICBsZXQgc2lnbmVkUmVxdWVzdCA9IHtcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICB0aW1lb3V0OiB0aW1lb3V0LFxuICAgICAgZGF0YTogYm9keVxuICAgIH07XG4gICAgaWYgKGNvbmZpZy5yZXRyaWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNpZ25lZFJlcXVlc3QuYmFzZVVSTCA9IHVybDtcbiAgICAgIGxldCBjbGllbnQgPSBheGlvcy5jcmVhdGUoc2lnbmVkUmVxdWVzdCk7XG5cbiAgICAgIC8vIEFsbG93IHVzZXIgY29uZmlndXJhYmxlIGRlbGF5LCBvciBidWlsdC1pbiBleHBvbmVudGlhbCBkZWxheVxuICAgICAgbGV0IHJldHJ5RGVsYXkgPSBmdW5jdGlvbigpIHtcbiByZXR1cm4gMDtcbn07XG4gICAgICBpZiAoY29uZmlnLnJldHJ5RGVsYXkgPT09ICdleHBvbmVudGlhbCcpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9IGF4aW9zUmV0cnkuZXhwb25lbnRpYWxEZWxheTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbmZpZy5yZXRyeURlbGF5ID09PSAnbnVtYmVyJykge1xuICAgICAgICByZXRyeURlbGF5ID0gKCkgPT4gcGFyc2VJbnQoY29uZmlnLnJldHJ5RGVsYXkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29uZmlnLnJldHJ5RGVsYXkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9IGNvbmZpZy5yZXRyeURlbGF5O1xuICAgICAgfVxuXG4gICAgICBheGlvc1JldHJ5KGNsaWVudCwge1xuICAgICAgICByZXRyaWVzOiBjb25maWcucmV0cmllcyxcbiAgICAgICAgcmV0cnlDb25kaXRpb246IGNvbmZpZy5yZXRyeUNvbmRpdGlvbixcbiAgICAgICAgcmV0cnlEZWxheSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNsaWVudC5yZXF1ZXN0KHttZXRob2Q6IHZlcmJ9KTtcbiAgICB9XG4gICAgc2lnbmVkUmVxdWVzdC5tZXRob2QgPSB2ZXJiO1xuICAgIHNpZ25lZFJlcXVlc3QudXJsID0gdXJsO1xuICAgIHJldHVybiBheGlvcyhzaWduZWRSZXF1ZXN0KTtcbiAgfTtcblxuICByZXR1cm4gYXdzU2lnVjRDbGllbnQ7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBzaWdWNENsaWVudEZhY3Rvcnk7XG4iXX0=

@@ -129,2 +129,2 @@ "use strict";

exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXBpR2F0ZXdheUNvcmUvc2ltcGxlSHR0cENsaWVudC5qcyJdLCJuYW1lcyI6WyJzaW1wbGVIdHRwQ2xpZW50RmFjdG9yeSIsIm5ld0NsaWVudCIsImNvbmZpZyIsImJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmciLCJxdWVyeVBhcmFtcyIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJjYW5vbmljYWxRdWVyeVN0cmluZyIsInByb3BlcnR5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwic3Vic3RyIiwic2ltcGxlSHR0cENsaWVudCIsImVuZHBvaW50IiwidXRpbHMiLCJhc3NlcnREZWZpbmVkIiwibWFrZVJlcXVlc3QiLCJyZXF1ZXN0IiwidmVyYiIsInBhdGgiLCJjb3B5IiwidGltZW91dCIsInVuZGVmaW5lZCIsImhlYWRlcnMiLCJkZWZhdWx0Q29udGVudFR5cGUiLCJkZWZhdWx0QWNjZXB0VHlwZSIsImJvZHkiLCJ1cmwiLCJxdWVyeVN0cmluZyIsInNpbXBsZUh0dHBSZXF1ZXN0IiwiZGF0YSIsInJldHJpZXMiLCJiYXNlVVJMIiwiY2xpZW50IiwiYXhpb3MiLCJjcmVhdGUiLCJyZXRyeURlbGF5IiwiYXhpb3NSZXRyeSIsImV4cG9uZW50aWFsRGVsYXkiLCJwYXJzZUludCIsInJldHJ5Q29uZGl0aW9uIiwibWV0aG9kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWdCQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEsdUJBQXVCLEdBQUcsRUFBaEM7O0FBQ0FBLHVCQUF1QixDQUFDQyxTQUF4QixHQUFvQyxVQUFDQyxNQUFELEVBQVk7QUFDOUMsV0FBU0MseUJBQVQsQ0FBbUNDLFdBQW5DLEVBQWdEO0FBQzlDO0FBQ0EsUUFBSUMsTUFBTSxDQUFDQyxJQUFQLENBQVlGLFdBQVosRUFBeUJHLE1BQXpCLEdBQWtDLENBQXRDLEVBQXlDO0FBQ3ZDLGFB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SW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLlxuICogWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgaHR0cDovL2F3cy5hbWF6b24uY29tL2FwYWNoZTIuMFxuICpcbiAqIG9yIGluIHRoZSBcImxpY2Vuc2VcIiBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZFxuICogb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyXG4gKiBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZ1xuICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBlc2xpbnQgbWF4LWxlbjogW1wiZXJyb3JcIiwgMTAwXSovXG5cbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgYXhpb3NSZXRyeSBmcm9tICdheGlvcy1yZXRyeSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IHNpbXBsZUh0dHBDbGllbnRGYWN0b3J5ID0ge307XG5zaW1wbGVIdHRwQ2xpZW50RmFjdG9yeS5uZXdDbGllbnQgPSAoY29uZmlnKSA9PiB7XG4gIGZ1bmN0aW9uIGJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmcocXVlcnlQYXJhbXMpIHtcbiAgICAvLyBCdWlsZCBhIHByb3Blcmx5IGVuY29kZWQgcXVlcnkgc3RyaW5nIGZyb20gYSBRdWVyeVBhcmFtIG9iamVjdFxuICAgIGlmIChPYmplY3Qua2V5cyhxdWVyeVBhcmFtcykubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGxldCBjYW5vbmljYWxRdWVyeVN0cmluZyA9ICcnO1xuICAgIGZvciAobGV0IHByb3BlcnR5IGluIHF1ZXJ5UGFyYW1zKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHF1ZXJ5UGFyYW1zLCBcInByb3BlcnR5XCIpKSB7XG4gICAgICAgIGNhbm9uaWNhbFF1ZXJ5U3RyaW5nICs9IGVuY29kZVVSSUNvbXBvbmVudChwcm9wZXJ0eSlcbiAgICAgICAgICArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudChxdWVyeVBhcmFtc1twcm9wZXJ0eV0pICsgJyYnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjYW5vbmljYWxRdWVyeVN0cmluZy5zdWJzdHIoMCwgY2Fub25pY2FsUXVlcnlTdHJpbmcubGVuZ3RoIC0gMSk7XG4gIH1cblxuICBsZXQgc2ltcGxlSHR0cENsaWVudCA9IHsgfTtcbiAgc2ltcGxlSHR0cENsaWVudC5lbmRwb2ludCA9IHV0aWxzLmFzc2VydERlZmluZWQoY29uZmlnLmVuZHBvaW50LCAnZW5kcG9pbnQnKTtcblxuICBzaW1wbGVIdHRwQ2xpZW50Lm1ha2VSZXF1ZXN0ID0gZnVuY3Rpb24ocmVxdWVzdCkge1xuICAgIGxldCB2ZXJiID0gdXRpbHMuYXNzZXJ0RGVmaW5lZChyZXF1ZXN0LnZlcmIsICd2ZXJiJyk7XG4gICAgbGV0IHBhdGggPSB1dGlscy5hc3NlcnREZWZpbmVkKHJlcXVlc3QucGF0aCwgJ3BhdGgnKTtcbiAgICBsZXQgcXVlcnlQYXJhbXMgPSB1dGlscy5jb3B5KHJlcXVlc3QucXVlcnlQYXJhbXMpO1xuICAgIGxldCB0aW1lb3V0ID0gdXRpbHMuY29weShyZXF1ZXN0LnRpbWVvdXQpO1xuICAgIGlmIChxdWVyeVBhcmFtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIH1cbiAgICBpZiAodGltZW91dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aW1lb3V0ID0gMDtcbiAgICB9XG4gICAgbGV0IGhlYWRlcnMgPSB7Li4udXRpbHMuY29weShyZXF1ZXN0LmhlYWRlcnMpLCAuLi5jb25maWcuaGVhZGVyc307XG5cbiAgICAvLyBJZiB0aGUgdXNlciBoYXMgbm90IHNwZWNpZmllZCBhbiBvdmVycmlkZSBmb3IgQ29udGVudCB0eXBlIHRoZSB1c2UgZGVmYXVsdFxuICAgIGlmIChoZWFkZXJzWydDb250ZW50LVR5cGUnXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBoZWFkZXJzWydDb250ZW50LVR5cGUnXSA9IGNvbmZpZy5kZWZhdWx0Q29udGVudFR5cGU7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHVzZXIgaGFzIG5vdCBzcGVjaWZpZWQgYW4gb3ZlcnJpZGUgZm9yIEFjY2VwdCB0eXBlIHRoZSB1c2UgZGVmYXVsdFxuICAgIGlmIChoZWFkZXJzWydBY2NlcHQnXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBoZWFkZXJzWydBY2NlcHQnXSA9IGNvbmZpZy5kZWZhdWx0QWNjZXB0VHlwZTtcbiAgICB9XG5cbiAgICBsZXQgYm9keSA9IHV0aWxzLmNvcHkocmVxdWVzdC5ib2R5KTtcblxuICAgIGxldCB1cmwgPSBjb25maWcuZW5kcG9pbnQgKyBwYXRoO1xuICAgIGxldCBxdWVyeVN0cmluZyA9IGJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmcocXVlcnlQYXJhbXMpO1xuICAgIGlmIChxdWVyeVN0cmluZyAhPT0gJycpIHtcbiAgICAgIHVybCArPSAnPycgKyBxdWVyeVN0cmluZztcbiAgICB9XG5cbiAgICBsZXQgc2ltcGxlSHR0cFJlcXVlc3QgPSB7XG4gICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgdGltZW91dDogdGltZW91dCxcbiAgICAgIGRhdGE6IGJvZHlcbiAgICB9O1xuICAgIGlmIChjb25maWcucmV0cmllcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzaW1wbGVIdHRwUmVxdWVzdC5iYXNlVVJMID0gdXJsO1xuICAgICAgbGV0IGNsaWVudCA9IGF4aW9zLmNyZWF0ZShzaW1wbGVIdHRwUmVxdWVzdCk7XG5cbiAgICAgIC8vIEFsbG93IHVzZXIgY29uZmlndXJhYmxlIGRlbGF5LCBvciBidWlsdC1pbiBleHBvbmVudGlhbCBkZWxheVxuICAgICAgbGV0IHJldHJ5RGVsYXkgPSAoKSA9PiAwO1xuICAgICAgaWYgKGNvbmZpZy5yZXRyeURlbGF5ID09PSAnZXhwb25lbnRpYWwnKSB7XG4gICAgICAgIHJldHJ5RGVsYXkgPSBheGlvc1JldHJ5LmV4cG9uZW50aWFsRGVsYXk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb25maWcucmV0cnlEZWxheSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9ICgpID0+IHBhcnNlSW50KGNvbmZpZy5yZXRyeURlbGF5KTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbmZpZy5yZXRyeURlbGF5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHJ5RGVsYXkgPSBjb25maWcucmV0cnlEZWxheTtcbiAgICAgIH1cblxuICAgICAgYXhpb3NSZXRyeShjbGllbnQsIHtcbiAgICAgICAgcmV0cmllczogY29uZmlnLnJldHJpZXMsXG4gICAgICAgIHJldHJ5Q29uZGl0aW9uOiBjb25maWcucmV0cnlDb25kaXRpb24sXG4gICAgICAgIHJldHJ5RGVsYXksXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjbGllbnQucmVxdWVzdCh7bWV0aG9kOiB2ZXJifSk7XG4gICAgfVxuICAgIHNpbXBsZUh0dHBSZXF1ZXN0Lm1ldGhvZCA9IHZlcmI7XG4gICAgc2ltcGxlSHR0cFJlcXVlc3QudXJsID0gdXJsO1xuICAgIHJldHVybiBheGlvcyhzaW1wbGVIdHRwUmVxdWVzdCk7XG4gIH07XG5cbiAgcmV0dXJuIHNpbXBsZUh0dHBDbGllbnQ7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBzaW1wbGVIdHRwQ2xpZW50RmFjdG9yeTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXBpR2F0ZXdheUNvcmUvc2ltcGxlSHR0cENsaWVudC5qcyJdLCJuYW1lcyI6WyJzaW1wbGVIdHRwQ2xpZW50RmFjdG9yeSIsIm5ld0NsaWVudCIsImNvbmZpZyIsImJ1aWxkQ2Fub25pY2FsUXVlcnlTdHJpbmciLCJxdWVyeVBhcmFtcyIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJjYW5vbmljYWxRdWVyeVN0cmluZyIsInByb3BlcnR5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwic3Vic3RyIiwic2ltcGxlSHR0cENsaWVudCIsImVuZHBvaW50IiwidXRpbHMiLCJhc3NlcnREZWZpbmVkIiwibWFrZVJlcXVlc3QiLCJyZXF1ZXN0IiwidmVyYiIsInBhdGgiLCJjb3B5IiwidGltZW91dCIsInVuZGVmaW5lZCIsImhlYWRlcnMiLCJkZWZhdWx0Q29udGVudFR5cGUiLCJkZWZhdWx0QWNjZXB0VHlwZSIsImJvZHkiLCJ1cmwiLCJxdWVyeVN0cmluZyIsInNpbXBsZUh0dHBSZXF1ZXN0IiwiZGF0YSIsInJldHJpZXMiLCJiYXNlVVJMIiwiY2xpZW50IiwiYXhpb3MiLCJjcmVhdGUiLCJyZXRyeURlbGF5IiwiYXhpb3NSZXRyeSIsImV4cG9uZW50aWFsRGVsYXkiLCJwYXJzZUludCIsInJldHJ5Q29uZGl0aW9uIiwibWV0aG9kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWVBOztBQUNBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSx1QkFBdUIsR0FBRyxFQUFoQzs7QUFDQUEsdUJBQXVCLENBQUNDLFNBQXhCLEdBQW9DLFVBQUNDLE1BQUQsRUFBWTtBQUM5QyxXQUFTQyx5QkFBVCxDQUFtQ0MsV0FBbkMsRUFBZ0Q7QUFDOUM7QUFDQSxRQUFJQyxNQUFNLENBQUNDLElBQVAsQ0FBWUYsV0FBWixFQUF5QkcsTUFBekIsR0FBa0MsQ0FBdEMsRUFBeUM7QUFDdkMsYUFB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bmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuXG4gKiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICBodHRwOi8vYXdzLmFtYXpvbi5jb20vYXBhY2hlMi4wXG4gKlxuICogb3IgaW4gdGhlIFwibGljZW5zZVwiIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkXG4gKiBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXJcbiAqIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nXG4gKiBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCBheGlvc1JldHJ5IGZyb20gJ2F4aW9zLXJldHJ5JztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuY29uc3Qgc2ltcGxlSHR0cENsaWVudEZhY3RvcnkgPSB7fTtcbnNpbXBsZUh0dHBDbGllbnRGYWN0b3J5Lm5ld0NsaWVudCA9IChjb25maWcpID0+IHtcbiAgZnVuY3Rpb24gYnVpbGRDYW5vbmljYWxRdWVyeVN0cmluZyhxdWVyeVBhcmFtcykge1xuICAgIC8vIEJ1aWxkIGEgcHJvcGVybHkgZW5jb2RlZCBxdWVyeSBzdHJpbmcgZnJvbSBhIFF1ZXJ5UGFyYW0gb2JqZWN0XG4gICAgaWYgKE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zKS5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgbGV0IGNhbm9uaWNhbFF1ZXJ5U3RyaW5nID0gJyc7XG4gICAgZm9yIChsZXQgcHJvcGVydHkgaW4gcXVlcnlQYXJhbXMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocXVlcnlQYXJhbXMsIFwicHJvcGVydHlcIikpIHtcbiAgICAgICAgY2Fub25pY2FsUXVlcnlTdHJpbmcgKz0gZW5jb2RlVVJJQ29tcG9uZW50KHByb3BlcnR5KVxuICAgICAgICAgICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHF1ZXJ5UGFyYW1zW3Byb3BlcnR5XSkgKyAnJic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbm9uaWNhbFF1ZXJ5U3RyaW5nLnN1YnN0cigwLCBjYW5vbmljYWxRdWVyeVN0cmluZy5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIGxldCBzaW1wbGVIdHRwQ2xpZW50ID0geyB9O1xuICBzaW1wbGVIdHRwQ2xpZW50LmVuZHBvaW50ID0gdXRpbHMuYXNzZXJ0RGVmaW5lZChjb25maWcuZW5kcG9pbnQsICdlbmRwb2ludCcpO1xuXG4gIHNpbXBsZUh0dHBDbGllbnQubWFrZVJlcXVlc3QgPSBmdW5jdGlvbihyZXF1ZXN0KSB7XG4gICAgbGV0IHZlcmIgPSB1dGlscy5hc3NlcnREZWZpbmVkKHJlcXVlc3QudmVyYiwgJ3ZlcmInKTtcbiAgICBsZXQgcGF0aCA9IHV0aWxzLmFzc2VydERlZmluZWQocmVxdWVzdC5wYXRoLCAncGF0aCcpO1xuICAgIGxldCBxdWVyeVBhcmFtcyA9IHV0aWxzLmNvcHkocmVxdWVzdC5xdWVyeVBhcmFtcyk7XG4gICAgbGV0IHRpbWVvdXQgPSB1dGlscy5jb3B5KHJlcXVlc3QudGltZW91dCk7XG4gICAgaWYgKHF1ZXJ5UGFyYW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHF1ZXJ5UGFyYW1zID0ge307XG4gICAgfVxuICAgIGlmICh0aW1lb3V0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRpbWVvdXQgPSAwO1xuICAgIH1cbiAgICBsZXQgaGVhZGVycyA9IHsuLi51dGlscy5jb3B5KHJlcXVlc3QuaGVhZGVycyksIC4uLmNvbmZpZy5oZWFkZXJzfTtcblxuICAgIC8vIElmIHRoZSB1c2VyIGhhcyBub3Qgc3BlY2lmaWVkIGFuIG92ZXJyaWRlIGZvciBDb250ZW50IHR5cGUgdGhlIHVzZSBkZWZhdWx0XG4gICAgaWYgKGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gY29uZmlnLmRlZmF1bHRDb250ZW50VHlwZTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgdXNlciBoYXMgbm90IHNwZWNpZmllZCBhbiBvdmVycmlkZSBmb3IgQWNjZXB0IHR5cGUgdGhlIHVzZSBkZWZhdWx0XG4gICAgaWYgKGhlYWRlcnNbJ0FjY2VwdCddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGhlYWRlcnNbJ0FjY2VwdCddID0gY29uZmlnLmRlZmF1bHRBY2NlcHRUeXBlO1xuICAgIH1cblxuICAgIGxldCBib2R5ID0gdXRpbHMuY29weShyZXF1ZXN0LmJvZHkpO1xuXG4gICAgbGV0IHVybCA9IGNvbmZpZy5lbmRwb2ludCArIHBhdGg7XG4gICAgbGV0IHF1ZXJ5U3RyaW5nID0gYnVpbGRDYW5vbmljYWxRdWVyeVN0cmluZyhxdWVyeVBhcmFtcyk7XG4gICAgaWYgKHF1ZXJ5U3RyaW5nICE9PSAnJykge1xuICAgICAgdXJsICs9ICc/JyArIHF1ZXJ5U3RyaW5nO1xuICAgIH1cblxuICAgIGxldCBzaW1wbGVIdHRwUmVxdWVzdCA9IHtcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICB0aW1lb3V0OiB0aW1lb3V0LFxuICAgICAgZGF0YTogYm9keVxuICAgIH07XG4gICAgaWYgKGNvbmZpZy5yZXRyaWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNpbXBsZUh0dHBSZXF1ZXN0LmJhc2VVUkwgPSB1cmw7XG4gICAgICBsZXQgY2xpZW50ID0gYXhpb3MuY3JlYXRlKHNpbXBsZUh0dHBSZXF1ZXN0KTtcblxuICAgICAgLy8gQWxsb3cgdXNlciBjb25maWd1cmFibGUgZGVsYXksIG9yIGJ1aWx0LWluIGV4cG9uZW50aWFsIGRlbGF5XG4gICAgICBsZXQgcmV0cnlEZWxheSA9ICgpID0+IDA7XG4gICAgICBpZiAoY29uZmlnLnJldHJ5RGVsYXkgPT09ICdleHBvbmVudGlhbCcpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9IGF4aW9zUmV0cnkuZXhwb25lbnRpYWxEZWxheTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbmZpZy5yZXRyeURlbGF5ID09PSAnbnVtYmVyJykge1xuICAgICAgICByZXRyeURlbGF5ID0gKCkgPT4gcGFyc2VJbnQoY29uZmlnLnJldHJ5RGVsYXkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29uZmlnLnJldHJ5RGVsYXkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0cnlEZWxheSA9IGNvbmZpZy5yZXRyeURlbGF5O1xuICAgICAgfVxuXG4gICAgICBheGlvc1JldHJ5KGNsaWVudCwge1xuICAgICAgICByZXRyaWVzOiBjb25maWcucmV0cmllcyxcbiAgICAgICAgcmV0cnlDb25kaXRpb246IGNvbmZpZy5yZXRyeUNvbmRpdGlvbixcbiAgICAgICAgcmV0cnlEZWxheSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNsaWVudC5yZXF1ZXN0KHttZXRob2Q6IHZlcmJ9KTtcbiAgICB9XG4gICAgc2ltcGxlSHR0cFJlcXVlc3QubWV0aG9kID0gdmVyYjtcbiAgICBzaW1wbGVIdHRwUmVxdWVzdC51cmwgPSB1cmw7XG4gICAgcmV0dXJuIGF4aW9zKHNpbXBsZUh0dHBSZXF1ZXN0KTtcbiAgfTtcblxuICByZXR1cm4gc2ltcGxlSHR0cENsaWVudDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHNpbXBsZUh0dHBDbGllbnRGYWN0b3J5O1xuIl19

@@ -26,4 +26,2 @@ "use strict";

*/
/* eslint max-len: ["error", 100]*/
var utils = {

@@ -82,2 +80,5 @@ assertDefined: function assertDefined(object, name) {

if (null === obj || 'object' !== (0, _typeof2["default"])(obj)) return obj;
var Buffer = require('buffer').Buffer;
if (Buffer.isBuffer(obj)) return Buffer.from(obj);

@@ -115,2 +116,2 @@ var copy = obj.constructor();

exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXBpR2F0ZXdheUNvcmUvdXRpbHMuanMiXSwibmFtZXMiOlsidXRpbHMiLCJhc3NlcnREZWZpbmVkIiwib2JqZWN0IiwibmFtZSIsInVuZGVmaW5lZCIsIkVycm9yIiwiYXNzZXJ0UGFyYW1ldGVyc0RlZmluZWQiLCJwYXJhbXMiLCJrZXlzIiwiaWdub3JlIiwibGVuZ3RoIiwiaSIsImNvbnRhaW5zIiwicGFyc2VQYXJhbWV0ZXJzVG9PYmplY3QiLCJhIiwib2JqIiwiY29weSIsIkJ1ZmZlciIsImlzQnVmZmVyIiwiZnJvbSIsImNvbnN0cnVjdG9yIiwiYXR0ciIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIm1lcmdlSW50byIsImJhc2VPYmoiLCJhZGRpdGlvbmFsUHJvcHMiLCJtZXJnZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7OztBQWNBO0FBRUEsSUFBTUEsS0FBSyxHQUFHO0FBQ1pDLEVBQUFBLGFBQWEsRUFBRSx1QkFBU0MsTUFBVCxFQUFpQkMsSUFBakIsRUFBdUI7QUFDcEMsUUFBSUQsTUFBTSxLQUFLRSxTQUFmLEVBQTBCO0FBQ3hCLFlBQU0sSUFBSUMsS0FBSixXQUFhRixJQUFiLHNCQUFOO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsYUFBT0QsTUFBUDtBQUNEO0FBQ0YsR0FQVztBQVFaSSxFQUFBQSx1QkFBdUIsRUFBRSxpQ0FBU0MsTUFBVCxFQUFpQkMsSUFBakIsRUFBdUJDLE1BQXZCLEVBQStCO0FBQ3RELFFBQUlELElBQUksS0FBS0osU0FBYixFQUF3QjtBQUN0QjtBQUNEOztBQUNELFFBQUlJLElBQUksQ0FBQ0UsTUFBTCxHQUFjLENBQWQsSUFBbUJILE1BQU0sS0FBS0gsU0FBbEMsRUFBNkM7QUFDM0NHLE1BQUFBLE1BQU0sR0FBRyxFQUFUO0FBQ0Q7O0FBQ0QsU0FBSyxJQUFJSSxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFH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TixJQUFMLElBQWFPLGVBQWIsRUFBOEI7QUFDNUIsVUFBSU4sTUFBTSxDQUFDQyxTQUFQLENBQWlCQyxjQUFqQixDQUFnQ0MsSUFBaEMsQ0FBcUNHLGVBQXJDLEVBQXNELE1BQXRELENBQUosRUFBbUU7QUFDakVDLFFBQUFBLE1BQU0sQ0FBQ1IsSUFBRCxDQUFOLEdBQWVPLGVBQWUsQ0FBQ1AsSUFBRCxDQUE5QjtBQUNEO0FBQ0Y7O0FBQ0QsV0FBT1EsTUFBUDtBQUNEO0FBbkVXLENBQWQ7ZUFzRWU3QixLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDEwLTIwMTYgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLlxuICogWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgaHR0cDovL2F3cy5hbWF6b24uY29tL2FwYWNoZTIuMFxuICpcbiAqIG9yIGluIHRoZSBcImxpY2Vuc2VcIiBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZFxuICogb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyXG4gKiBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZ1xuICogcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBlc2xpbnQgbWF4LWxlbjogW1wiZXJyb3JcIiwgMTAwXSovXG5cbmNvbnN0IHV0aWxzID0ge1xuICBhc3NlcnREZWZpbmVkOiBmdW5jdGlvbihvYmplY3QsIG5hbWUpIHtcbiAgICBpZiAob2JqZWN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtuYW1lfSBtdXN0IGJlIGRlZmluZWRgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG4gIH0sXG4gIGFzc2VydFBhcmFtZXRlcnNEZWZpbmVkOiBmdW5jdGlvbihwYXJhbXMsIGtleXMsIGlnbm9yZSkge1xuICAgIGlmIChrZXlzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGtleXMubGVuZ3RoID4gMCAmJiBwYXJhbXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcGFyYW1zID0ge307XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCF1dGlscy5jb250YWlucyhpZ25vcmUsIGtleXNbaV0pKSB7XG4gICAgICAgIHV0aWxzLmFzc2VydERlZmluZWQocGFyYW1zW2tleXNbaV1dLCBrZXlzW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIHBhcnNlUGFyYW1ldGVyc1RvT2JqZWN0OiBmdW5jdGlvbihwYXJhbXMsIGtleXMpIHtcbiAgICBpZiAocGFyYW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgbGV0IG9iamVjdCA9IHsgfTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIG9iamVjdFtrZXlzW2ldXSA9IHBhcmFtc1trZXlzW2ldXTtcbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfSxcbiAgY29udGFpbnM6IGZ1bmN0aW9uKGEsIG9iaikge1xuICAgIGlmIChhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IGkgPSBhLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBpZiAoYVtpXSA9PT0gb2JqKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0sXG4gIGNvcHk6IGZ1bmN0aW9uKG9iaikge1xuICAgIGlmIChudWxsID09PSBvYmogfHwgJ29iamVjdCcgIT09IHR5cGVvZiBvYmopIHJldHVybiBvYmo7XG4gICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihvYmopKSByZXR1cm4gQnVmZmVyLmZyb20ob2JqKTtcbiAgICBsZXQgY29weSA9IG9iai5jb25zdHJ1Y3RvcigpO1xuICAgIGxldCBhdHRyID0gbnVsbDtcbiAgICBmb3IgKGF0dHIgaW4gb2JqKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgXCJhdHRyXCIpKSBjb3B5W2F0dHJdID0gb2JqW2F0dHJdO1xuICAgIH1cbiAgICByZXR1cm4gY29weTtcbiAgfSxcbiAgbWVyZ2VJbnRvOiBmdW5jdGlvbihiYXNlT2JqLCBhZGRpdGlvbmFsUHJvcHMpIHtcbiAgICBpZiAobnVsbCA9PT0gYmFzZU9iaiB8fCAnb2JqZWN0JyAhPT0gdHlwZW9mIGJhc2VPYmopIHJldHVybiBiYXNlT2JqO1xuICAgIGxldCBtZXJnZWQgPSBiYXNlT2JqLmNvbnN0cnVjdG9yKCk7XG4gICAgbGV0IGF0dHIgPSBudWxsO1xuICAgIGZvciAoYXR0ciBpbiBiYXNlT2JqKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGJhc2VPYmosIFwiYXR0clwiKSkgbWVyZ2VkW2F0dHJdID0gYmFzZU9ialthdHRyXTtcbiAgICB9XG4gICAgaWYgKG51bGwgPT0gYWRkaXRpb25hbFByb3BzIHx8ICdvYmplY3QnICE9IHR5cGVvZiBhZGRpdGlvbmFsUHJvcHMpIHJldHVybiBiYXNlT2JqO1xuICAgIGZvciAoYXR0ciBpbiBhZGRpdGlvbmFsUHJvcHMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYWRkaXRpb25hbFByb3BzLCBcImF0dHJcIikpIHtcbiAgICAgICAgbWVyZ2VkW2F0dHJdID0gYWRkaXRpb25hbFByb3BzW2F0dHJdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VkO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYXBpR2F0ZXdheUNvcmUvdXRpbHMuanMiXSwibmFtZXMiOlsidXRpbHMiLCJhc3NlcnREZWZpbmVkIiwib2JqZWN0IiwibmFtZSIsInVuZGVmaW5lZCIsIkVycm9yIiwiYXNzZXJ0UGFyYW1ldGVyc0RlZmluZWQiLCJwYXJhbXMiLCJrZXlzIiwiaWdub3JlIiwibGVuZ3RoIiwiaSIsImNvbnRhaW5zIiwicGFyc2VQYXJhbWV0ZXJzVG9PYmplY3QiLCJhIiwib2JqIiwiY29weSIsIkJ1ZmZlciIsInJlcXVpcmUiLCJpc0J1ZmZlciIsImZyb20iLCJjb25zdHJ1Y3RvciIsImF0dHIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJtZXJnZUludG8iLCJiYXNlT2JqIiwiYWRkaXRpb25hbFByb3BzIiwibWVyZ2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOzs7Ozs7Ozs7Ozs7OztBQWVBLElBQU1BLEtBQUssR0FBRztBQUNaQyxFQUFBQSxhQUFhLEVBQUUsdUJBQVNDLE1BQVQsRUFBaUJDLElBQWpCLEVBQXVCO0FBQ3BDLFFBQUlELE1BQU0sS0FBS0UsU0FBZixFQUEwQjtBQUN4QixZQUFNLElBQUlDLEtBQUosV0FBYUYsSUFBYixzQkFBTjtBQUNELEtBRkQsTUFFTztBQUNMLGFBQU9ELE1BQVA7QUFDRDtBQUNGLEdBUFc7QUFRWkksRUFBQUEsdUJBQXVCLEVBQUUsaUNBQVNDLE1BQVQsRUFBaUJDLElBQWpCLEVBQXVCQyxNQUF2QixFQUErQjtBQUN0RCxRQUFJRCxJQUFJLEtBQUtKLFNBQWIsRUFBd0I7QUFDdEI7QUFDRDs7QUFDRCxRQUFJSSxJQUFJLENBQUNFLE1BQUwsR0FBYyxDQUFkLElBQW1CSCxNQUFNLEtBQUtILFNBQWxDLEVBQTZDO0FBQzNDRyxNQUFBQSxNQUFNLEdBQUcsRUFBVDtBQUNEOztBQUNELFNBQUssSUFBSUksQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMs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TyxlQUFSLElBQTJCLHFDQUFtQkEsZUFBbkIsQ0FBL0IsRUFBbUUsT0FBT0QsT0FBUDs7QUFDbkUsU0FBS04sSUFBTCxJQUFhTyxlQUFiLEVBQThCO0FBQzVCLFVBQUlOLE1BQU0sQ0FBQ0MsU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDRyxlQUFyQyxFQUFzRCxNQUF0RCxDQUFKLEVBQW1FO0FBQ2pFQyxRQUFBQSxNQUFNLENBQUNSLElBQUQsQ0FBTixHQUFlTyxlQUFlLENBQUNQLElBQUQsQ0FBOUI7QUFDRDtBQUNGOztBQUNELFdBQU9RLE1BQVA7QUFDRDtBQXBFVyxDQUFkO2VBdUVlOUIsSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxMC0yMDE2IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS5cbiAqIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogIGh0dHA6Ly9hd3MuYW1hem9uLmNvbS9hcGFjaGUyLjBcbiAqXG4gKiBvciBpbiB0aGUgXCJsaWNlbnNlXCIgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWRcbiAqIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlclxuICogZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmdcbiAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5jb25zdCB1dGlscyA9IHtcbiAgYXNzZXJ0RGVmaW5lZDogZnVuY3Rpb24ob2JqZWN0LCBuYW1lKSB7XG4gICAgaWYgKG9iamVjdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7bmFtZX0gbXVzdCBiZSBkZWZpbmVkYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfVxuICB9LFxuICBhc3NlcnRQYXJhbWV0ZXJzRGVmaW5lZDogZnVuY3Rpb24ocGFyYW1zLCBrZXlzLCBpZ25vcmUpIHtcbiAgICBpZiAoa2V5cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChrZXlzLmxlbmd0aCA+IDAgJiYgcGFyYW1zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcyA9IHt9O1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghdXRpbHMuY29udGFpbnMoaWdub3JlLCBrZXlzW2ldKSkge1xuICAgICAgICB1dGlscy5hc3NlcnREZWZpbmVkKHBhcmFtc1trZXlzW2ldXSwga2V5c1tpXSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBwYXJzZVBhcmFtZXRlcnNUb09iamVjdDogZnVuY3Rpb24ocGFyYW1zLCBrZXlzKSB7XG4gICAgaWYgKHBhcmFtcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGxldCBvYmplY3QgPSB7IH07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBvYmplY3Rba2V5c1tpXV0gPSBwYXJhbXNba2V5c1tpXV07XG4gICAgfVxuICAgIHJldHVybiBvYmplY3Q7XG4gIH0sXG4gIGNvbnRhaW5zOiBmdW5jdGlvbihhLCBvYmopIHtcbiAgICBpZiAoYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBpID0gYS5sZW5ndGg7XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgaWYgKGFbaV0gPT09IG9iaikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuICBjb3B5OiBmdW5jdGlvbihvYmopIHtcbiAgICBpZiAobnVsbCA9PT0gb2JqIHx8ICdvYmplY3QnICE9PSB0eXBlb2Ygb2JqKSByZXR1cm4gb2JqO1xuICAgIGxldCBCdWZmZXIgPSByZXF1aXJlKCdidWZmZXInKS5CdWZmZXI7XG4gICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihvYmopKSByZXR1cm4gQnVmZmVyLmZyb20ob2JqKTtcbiAgICBsZXQgY29weSA9IG9iai5jb25zdHJ1Y3RvcigpO1xuICAgIGxldCBhdHRyID0gbnVsbDtcbiAgICBmb3IgKGF0dHIgaW4gb2JqKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgXCJhdHRyXCIpKSBjb3B5W2F0dHJdID0gb2JqW2F0dHJdO1xuICAgIH1cbiAgICByZXR1cm4gY29weTtcbiAgfSxcbiAgbWVyZ2VJbnRvOiBmdW5jdGlvbihiYXNlT2JqLCBhZGRpdGlvbmFsUHJvcHMpIHtcbiAgICBpZiAobnVsbCA9PT0gYmFzZU9iaiB8fCAnb2JqZWN0JyAhPT0gdHlwZW9mIGJhc2VPYmopIHJldHVybiBiYXNlT2JqO1xuICAgIGxldCBtZXJnZWQgPSBiYXNlT2JqLmNvbnN0cnVjdG9yKCk7XG4gICAgbGV0IGF0dHIgPSBudWxsO1xuICAgIGZvciAoYXR0ciBpbiBiYXNlT2JqKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGJhc2VPYmosIFwiYXR0clwiKSkgbWVyZ2VkW2F0dHJdID0gYmFzZU9ialthdHRyXTtcbiAgICB9XG4gICAgaWYgKG51bGwgPT0gYWRkaXRpb25hbFByb3BzIHx8ICdvYmplY3QnICE9IHR5cGVvZiBhZGRpdGlvbmFsUHJvcHMpIHJldHVybiBiYXNlT2JqO1xuICAgIGZvciAoYXR0ciBpbiBhZGRpdGlvbmFsUHJvcHMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYWRkaXRpb25hbFByb3BzLCBcImF0dHJcIikpIHtcbiAgICAgICAgbWVyZ2VkW2F0dHJdID0gYWRkaXRpb25hbFByb3BzW2F0dHJdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VkO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
{
"name": "aws-api-gateway-client",
"version": "0.3.0",
"version": "0.3.1",
"description": "A module for AWS API Gateway client",

@@ -5,0 +5,0 @@ "repository": {

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc