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

boundless-async

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

boundless-async - npm Package Compare versions

Comparing version 1.0.0-beta.4 to 1.0.0-beta.5

4

build/index.js

@@ -1,2 +0,2 @@

module.exports=function(e){function t(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=3)}([function(e,t,n){"use strict";function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object.keys(e).reduce(function(n,o){return t.indexOf(o)===-1&&(n[o]=e[o]),n},{})}t.a=o},function(e,t){e.exports=require("react")},function(e,t){e.exports=require("classnames")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),r=n.n(o),s=n(2),a=n.n(s),c=n(0),i=function(e){function t(){var e,n,o,r;babelHelpers.classCallCheck(this,t);for(var s=arguments.length,a=Array(s),c=0;c<s;c++)a[c]=arguments[c];return n=o=babelHelpers.possibleConstructorReturn(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(a))),o.mounted=!1,o.state={},r=n,babelHelpers.possibleConstructorReturn(o,r)}return babelHelpers.inherits(t,e),babelHelpers.createClass(t,[{key:"convertDataToJSXOrWait",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,n=t.data;return n instanceof Promise?(this.setState({component:null}),n.then(function(t){e.mounted&&e.setState(function(e,o){return{component:o.data===n?o.convertToJSXFunc(t):e.component}})},function(){return e.setState({component:!1})})):void this.setState({component:t.convertToJSXFunc(n)})}},{key:"fireCallbackIfDataRendered",value:function(){this.state.component&&this.props.contentRenderedFunc()}},{key:"componentWillMount",value:function(){this.convertDataToJSXOrWait()}},{key:"componentDidMount",value:function(){this.mounted=!0,this.fireCallbackIfDataRendered()}},{key:"componentDidUpdate",value:function(){this.fireCallbackIfDataRendered()}},{key:"componentWillReceiveProps",value:function(e){this.convertDataToJSXOrWait(e)}},{key:"componentWillUnmount",value:function(){this.mounted=!1}},{key:"getClasses",value:function(e){return a()("b-async",this.props.className,e,{"b-async-error":this.state.component===!1,"b-async-loading":null===this.state.component})}},{key:"render",value:function(){return null===this.state.component||this.state.component===!1?r.a.createElement("div",babelHelpers.extends({},n.i(c.a)(this.props,t.internalKeys),{className:this.getClasses()}),null===this.state.component?this.props.loadingContent:this.props.errorContent):r.a.cloneElement(this.state.component,babelHelpers.extends({},n.i(c.a)(this.props,t.internalKeys),{className:this.getClasses(this.state.component.props&&this.state.component.props.className)}))}}]),t}(r.a.PureComponent);i.propTypes={contentRenderedFunc:o.PropTypes.func,convertToJSXFunc:o.PropTypes.func,data:o.PropTypes.any,errorContent:o.PropTypes.node,loadingContent:o.PropTypes.node},i.defaultProps={contentRenderedFunc:function(){},convertToJSXFunc:function(e){return e},data:null,errorContent:"⚠️",loadingContent:null},i.internalKeys=Object.keys(i.defaultProps),t.default=i}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIDk2YmEzODQ4M2YzMDkwOTEzNmY4Iiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIHtcImFtZFwiOlwicmVhY3RcIixcImNvbW1vbmpzMlwiOlwicmVhY3RcIixcInJvb3RcIjpcIlJlYWN0XCJ9Iiwid2VicGFjazovLy9leHRlcm5hbCB7XCJjb21tb25qczJcIjpcImNsYXNzbmFtZXNcIn0iLCJ3ZWJwYWNrOi8vLy4vcGFja2FnZXMvYm91bmRsZXNzLWFzeW5jL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiaW5zdGFsbGVkTW9kdWxlcyIsImkiLCJsIiwiY2FsbCIsIm0iLCJjIiwidmFsdWUiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJnZXQiLCJuIiwiX19lc01vZHVsZSIsIm9iamVjdCIsInByb3BlcnR5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJwIiwicyIsIl9fd2VicGFja19leHBvcnRzX18iLCJvbWl0S2V5c0Zyb21Tb3VyY2VPYmplY3QiLCJzb3VyY2UiLCJvbWl0dGVkS2V5cyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImtleXMiLCJyZWR1Y2UiLCJoYXNoIiwia2V5IiwiaW5kZXhPZiIsInJlcXVpcmUiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfX19kZWZhdWx0IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19ib3VuZGxlc3NfdXRpbHNfb21pdF9rZXlzX2luZGV4X18iLCJBc3luYyIsIl9SZWFjdCRQdXJlQ29tcG9uZW50IiwiX3JlZiIsIl90ZW1wIiwiX3RoaXMiLCJfcmV0IiwiYmFiZWxIZWxwZXJzIiwiY2xhc3NDYWxsQ2hlY2siLCJ0aGlzIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJwb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiX19wcm90b19fIiwiZ2V0UHJvdG90eXBlT2YiLCJhcHBseSIsImNvbmNhdCIsIm1vdW50ZWQiLCJzdGF0ZSIsImluaGVyaXRzIiwiY3JlYXRlQ2xhc3MiLCJfdGhpczIiLCJwcm9wcyIsImRhdGEiLCJQcm9taXNlIiwic2V0U3RhdGUiLCJjb21wb25lbnQiLCJ0aGVuIiwicGF5bG9hZCIsImN1cnJlbnRQcm9wcyIsImNvbnZlcnRUb0pTWEZ1bmMiLCJjb250ZW50UmVuZGVyZWRGdW5jIiwiY29udmVydERhdGFUb0pTWE9yV2FpdCIsImZpcmVDYWxsYmFja0lmRGF0YVJlbmRlcmVkIiwibmV4dFByb3BzIiwiZXh0cmFDbGFzc2VzIiwiY2xhc3NOYW1lIiwiYi1hc3luYy1lcnJvciIsImItYXN5bmMtbG9hZGluZyIsImEiLCJjcmVhdGVFbGVtZW50IiwiZXh0ZW5kcyIsImludGVybmFsS2V5cyIsImdldENsYXNzZXMiLCJsb2FkaW5nQ29udGVudCIsImVycm9yQ29udGVudCIsImNsb25lRWxlbWVudCIsIlB1cmVDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJmdW5jIiwiYW55Iiwibm9kZSIsImRlZmF1bHRQcm9wcyIsIngiXSwibWFwcGluZ3MiOiJBQUFBQSxPQUFPQyxRQUNFLFNBQVVDLEdDR25CLFFBQUFDLEdBQUFDLEdBR0EsR0FBQUMsRUFBQUQsR0FDQSxNQUFBQyxHQUFBRCxHQUFBSCxPQUdBLElBQUFE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QU1RLFVBQTlCckIsYUFBQW9DLFdBQ0F0RixFQUFBRyxFQUFBd0MsRUFBQSxHQUFLUyxLQUFLZSxNQUFPdkIsRUFBTTJDLGVBQzFCTixVQUFXN0IsS0FBS29DLFdBQVdwQyxLQUFLVyxNQUFNUSxVQUFVSixPQUFTZixLQUFLVyxNQUFNUSxVQUFVSixNQUFNYyxrQkxDd3NGckMsR0tyRnJ3RkosRUFBQTRDLEVBQU1RLGNBQXBCaEQsR0FDVmlELFdBRUhqQixvQkFBcUJyQyxFQUFBLFVBQVV1RCxLQUcvQm5CLGlCQUFrQnBDLEVBQUEsVUFBVXVELEtBRzVCMUIsS0FBTTdCLEVBQUEsVUFBVXdELElBR2hCTCxhQUFjbkQsRUFBQSxVQUFVeUQsS0FHeEJQLGVBQWdCbEQsRUFBQSxVQUFVeUQsTUFmYnBELEVBa0JWcUQsY0FDSHJCLG9CQUFxQixhQUNyQkQsaUJBQWtCLFNBQUN1QixHQUFELE1BQU9BLElBQ3pCOUIsS0FBTSxLQUNOc0IsYUFBYyxLQUNkRCxlQUFnQixNQXZCSDdDLEVBMEJWMkMsYUFBZTFFLE9BQU9vQixLQUFLVyxFQUFNcUQsY0wyRHk2R3ZFLEVBQTZCLFFLckY3OUdrQiIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID1cbi8qKioqKiovIChmdW5jdGlvbihtb2R1bGVzKSB7IC8vIHdlYnBhY2tCb290c3RyYXBcbi8qKioqKiovIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbi8qKioqKiovIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbi8qKioqKiovIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbi8qKioqKiovIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbi8qKioqKiovIFx0XHRcdGk6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bDogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRleHBvcnRzOiB7fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuLyoqKioqKi8gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4vKioqKioqLyBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi9cbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gaWRlbnRpdHkgZnVuY3Rpb24gZm9yIGNhbGxpbmcgaGFybW9ueSBpbXBvcnRzIHdpdGggdGhlIGNvcnJlY3QgY29udGV4dFxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmkgPSBmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4vKioqKioqLyBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuLyoqKioqKi8gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbi8qKioqKiovIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbi8qKioqKiovIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbi8qKioqKiovIFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuLyoqKioqKi8gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuLyoqKioqKi8gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbi8qKioqKiovIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuLyoqKioqKi8gXHRcdHJldHVybiBnZXR0ZXI7XG4vKioqKioqLyBcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLyoqKioqKi8gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAzKTtcbi8qKioqKiovIH0pXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gKFtcbi8qIDAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGV4cG9ydCAoaW1tdXRhYmxlKSAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9IG9taXRLZXlzRnJvbVNvdXJjZU9iamVjdDtcbmZ1bmN0aW9uIG9taXRLZXlzRnJvbVNvdXJjZU9iamVjdChzb3VyY2Upe3ZhciBvbWl0dGVkS2V5cz1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXVuZGVmaW5lZD9hcmd1bWVudHNbMV06W107cmV0dXJuIE9iamVjdC5rZXlzKHNvdXJjZSkucmVkdWNlKGZ1bmN0aW9uIHJlbG9jYXRlQWNjZXB0ZWRLZXlzKGhhc2gsa2V5KXtpZihvbWl0dGVkS2V5cy5pbmRleE9mKGtleSk9PT0tMSl7aGFzaFtrZXldPXNvdXJjZVtrZXldO31yZXR1cm4gaGFzaDt9LHt9KTt9XG5cbi8qKiovIH0pLFxuLyogMSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcblxuLyoqKi8gfSksXG4vKiAyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNsYXNzbmFtZXNcIik7XG5cbi8qKiovIH0pLFxuLyogMyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3dlYnBhY2tfZXhwb3J0c19fLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfX19kZWZhdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19pbmRleF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbnZhciBBc3luYz1mdW5jdGlvbihfUmVhY3QkUHVyZUNvbXBvbmVudCl7YmFiZWxIZWxwZXJzLmluaGVyaXRzKEFzeW5jLF9SZWFjdCRQdXJlQ29tcG9uZW50KTtmdW5jdGlvbiBBc3luYygpe3ZhciBfcmVmO3ZhciBfdGVtcCxfdGhpcyxfcmV0O2JhYmVsSGVscGVycy5jbGFzc0NhbGxDaGVjayh0aGlzLEFzeW5jKTtmb3IodmFyIF9sZW49YXJndW1lbnRzLmxlbmd0aCxhcmdzPUFycmF5KF9sZW4pLF9rZXk9MDtfa2V5PF9sZW47X2tleSsrKXthcmdzW19rZXldPWFyZ3VtZW50c1tfa2V5XTt9cmV0dXJuIF9yZXQ9KF90ZW1wPShfdGhpcz1iYWJlbEhlbHBlcnMucG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLChfcmVmPUFzeW5jLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKEFzeW5jKSkuY2FsbC5hcHBseShfcmVmLFt0aGlzXS5jb25jYXQoYXJncykpKSxfdGhpcyksX3RoaXMubW91bnRlZD1mYWxzZSxfdGhpcy5zdGF0ZT17fSxfdGVtcCksYmFiZWxIZWxwZXJzLnBvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oX3RoaXMsX3JldCk7fWJhYmVsSGVscGVycy5jcmVhdGVDbGFzcyhBc3luYyxbe2tleTonY29udmVydERhdGFUb0pTWE9yV2FpdCcsdmFsdWU6ZnVuY3Rpb24gY29udmVydERhdGFUb0pTWE9yV2FpdCgpe3ZhciBfdGhpczI9dGhpczt2YXIgcHJvcHM9YXJndW1lbnRzLmxlbmd0aD4wJiZhcmd1bWVudHNbMF0hPT11bmRlZmluZWQ/YXJndW1lbnRzWzBdOnRoaXMucHJvcHM7dmFyIGRhdGE9cHJvcHMuZGF0YTtpZihkYXRhIGluc3RhbmNlb2YgUHJvbWlzZSl7dGhpcy5zZXRTdGF0ZSh7Y29tcG9uZW50Om51bGx9KTtyZXR1cm4gZGF0YS50aGVuKGZ1bmN0aW9uKHBheWxvYWQpe2lmKF90aGlzMi5tb3VudGVkKXtfdGhpczIuc2V0U3RhdGUoZnVuY3Rpb24oc3RhdGUsY3VycmVudFByb3BzKXtyZXR1cm57Y29tcG9uZW50OmN1cnJlbnRQcm9wcy5kYXRhPT09ZGF0YT9jdXJyZW50UHJvcHMuY29udmVydFRvSlNYRnVuYyhwYXlsb2FkKTpzdGF0ZS5jb21wb25lbnR9O30pO319LGZ1bmN0aW9uKCl7cmV0dXJuIF90aGlzMi5zZXRTdGF0ZSh7Y29tcG9uZW50OmZhbHNlfSk7fSk7fXRoaXMuc2V0U3RhdGUoe2NvbXBvbmVudDpwcm9wcy5jb252ZXJ0VG9KU1hGdW5jKGRhdGEpfSk7fX0se2tleTonZmlyZUNhbGxiYWNrSWZEYXRhUmVuZGVyZWQnLHZhbHVlOmZ1bmN0aW9uIGZpcmVDYWxsYmFja0lmRGF0YVJlbmRlcmVkKCl7aWYodGhpcy5zdGF0ZS5jb21wb25lbnQpe3RoaXMucHJvcHMuY29udGVudFJlbmRlcmVkRnVuYygpO319fSx7a2V5Oidjb21wb25lbnRXaWxsTW91bnQnLHZhbHVlOmZ1bmN0aW9uIGNvbXBvbmVudFdpbGxNb3VudCgpe3RoaXMuY29udmVydERhdGFUb0pTWE9yV2FpdCgpO319LHtrZXk6J2NvbXBvbmVudERpZE1vdW50Jyx2YWx1ZTpmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpe3RoaXMubW91bnRlZD10cnVlO3RoaXMuZmlyZUNhbGxiYWNrSWZEYXRhUmVuZGVyZWQoKTt9fSx7a2V5Oidjb21wb25lbnREaWRVcGRhdGUnLHZhbHVlOmZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpe3RoaXMuZmlyZUNhbGxiYWNrSWZEYXRhUmVuZGVyZWQoKTt9fSx7a2V5Oidjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJyx2YWx1ZTpmdW5jdGlvbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcyl7dGhpcy5jb252ZXJ0RGF0YVRvSlNYT3JXYWl0KG5leHRQcm9wcyk7fX0se2tleTonY29tcG9uZW50V2lsbFVubW91bnQnLHZhbHVlOmZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCl7dGhpcy5tb3VudGVkPWZhbHNlO319LHtrZXk6J2dldENsYXNzZXMnLHZhbHVlOmZ1bmN0aW9uIGdldENsYXNzZXMoZXh0cmFDbGFzc2VzKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfX19kZWZhdWx0KCkoJ2ItYXN5bmMnLHRoaXMucHJvcHMuY2xhc3NOYW1lLGV4dHJhQ2xhc3Nlcyx7J2ItYXN5bmMtZXJyb3InOnRoaXMuc3RhdGUuY29tcG9uZW50PT09ZmFsc2UsJ2ItYXN5bmMtbG9hZGluZyc6dGhpcy5zdGF0ZS5jb21wb25lbnQ9PT1udWxsfSk7fX0se2tleToncmVuZGVyJyx2YWx1ZTpmdW5jdGlvbiByZW5kZXIoKXtpZih0aGlzLnN0YXRlLmNvbXBvbmVudD09PW51bGx8fHRoaXMuc3RhdGUuY29tcG9uZW50PT09ZmFsc2Upe3JldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX19kZWZhdWx0LmEuY3JlYXRlRWxlbWVudCgnZGl2JyxiYWJlbEhlbHBlcnMuZXh0ZW5kcyh7fSxfX3dlYnBhY2tfcmVxdWlyZV9fLmkoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19ib3VuZGxlc3NfdXRpbHNfb21pdF9rZXlzX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL10pKHRoaXMucHJvcHMsQXN5bmMuaW50ZXJuYWxLZXlzKSx7Y2xhc3NOYW1lOnRoaXMuZ2V0Q2xhc3NlcygpfSksdGhpcy5zdGF0ZS5jb21wb25lbnQ9PT1udWxsP3RoaXMucHJvcHMubG9hZGluZ0NvbnRlbnQ6dGhpcy5wcm9wcy5lcnJvckNvbnRlbnQpO31yZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNsb25lRWxlbWVudCh0aGlzLnN0YXRlLmNvbXBvbmVudCxiYWJlbEhlbHBlcnMuZXh0ZW5kcyh7fSxfX3dlYnBhY2tfcmVxdWlyZV9fLmkoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19ib3VuZGxlc3NfdXRpbHNfb21pdF9rZXlzX2luZGV4X19bXCJhXCIgLyogZGVmYXVsdCAqL10pKHRoaXMucHJvcHMsQXN5bmMuaW50ZXJuYWxLZXlzKSx7Y2xhc3NOYW1lOnRoaXMuZ2V0Q2xhc3Nlcyh0aGlzLnN0YXRlLmNvbXBvbmVudC5wcm9wcyYmdGhpcy5zdGF0ZS5jb21wb25lbnQucHJvcHMuY2xhc3NOYW1lKX0pKTt9fV0pO3JldHVybiBBc3luYzt9KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5QdXJlQ29tcG9uZW50KTtBc3luYy5wcm9wVHlwZXM9e2NvbnRlbnRSZW5kZXJlZEZ1bmM6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0uZnVuYyxjb252ZXJ0VG9KU1hGdW5jOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLmZ1bmMsZGF0YTpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5hbnksZXJyb3JDb250ZW50Ol9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLm5vZGUsbG9hZGluZ0NvbnRlbnQ6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0ubm9kZX07QXN5bmMuZGVmYXVsdFByb3BzPXtjb250ZW50UmVuZGVyZWRGdW5jOmZ1bmN0aW9uIGNvbnRlbnRSZW5kZXJlZEZ1bmMoKXt9LGNvbnZlcnRUb0pTWEZ1bmM6ZnVuY3Rpb24gY29udmVydFRvSlNYRnVuYyh4KXtyZXR1cm4geDt9LGRhdGE6bnVsbCxlcnJvckNvbnRlbnQ6J+KaoO+4jycsbG9hZGluZ0NvbnRlbnQ6bnVsbH07QXN5bmMuaW50ZXJuYWxLZXlzPU9iamVjdC5rZXlzKEFzeW5jLmRlZmF1bHRQcm9wcyk7LyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiZGVmYXVsdFwiXSA9IEFzeW5jO1xuXG4vKioqLyB9KVxuLyoqKioqKi8gXSk7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIGluZGV4LmpzIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGlkZW50aXR5IGZ1bmN0aW9uIGZvciBjYWxsaW5nIGhhcm1vbnkgaW1wb3J0cyB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHRcbiBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGdldDogZ2V0dGVyXG4gXHRcdFx0fSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMyk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gd2VicGFjay9ib290c3RyYXAgOTZiYTM4NDgzZjMwOTA5MTM2ZjgiLCIvKipcbiAqIFJldHVybnMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBzdXBwbGllZCBvYmplY3Qgd2l0aG91dCB0aGUgZ2l2ZW4ga2V5cy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gb21pdEtleXNGcm9tU291cmNlT2JqZWN0KHNvdXJjZSwgb21pdHRlZEtleXMgPSBbXSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhzb3VyY2UpLnJlZHVjZShmdW5jdGlvbiByZWxvY2F0ZUFjY2VwdGVkS2V5cyhoYXNoLCBrZXkpIHtcbiAgICAgICAgaWYgKG9taXR0ZWRLZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEpIHtcbiAgICAgICAgICAgIGhhc2hba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhhc2g7XG5cbiAgICB9LCB7fSk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9wYWNrYWdlcy9ib3VuZGxlc3MtdXRpbHMtb21pdC1rZXlzL2luZGV4LmpzIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3RcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwge1wiYW1kXCI6XCJyZWFjdFwiLFwiY29tbW9uanMyXCI6XCJyZWFjdFwiLFwicm9vdFwiOlwiUmVhY3RcIn1cbi8vIG1vZHVsZSBpZCA9IDFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY2xhc3NuYW1lc1wiKTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCB7XCJjb21tb25qczJcIjpcImNsYXNzbmFtZXNcIn1cbi8vIG1vZHVsZSBpZCA9IDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiaW1wb3J0IFJlYWN0LCB7UHJvcFR5cGVzfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY3ggZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmltcG9ydCBvbWl0IGZyb20gJy4uL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXgnO1xuXG5cbi8qKlxuICogIyBBc3luY1xuICogX19BIGhpZ2hlci1vcmRlciBjb21wb25lbnQgZm9yIHJlbmRlcmluZyBkYXRhIHRoYXQgaXNuJ3QgcmVhZHkgeWV0Ll9fXG4gKlxuICogVGhlcmUgYXJlIHBsZW50eSBvZiBzaXR1YXRpb25zIHdoZXJlIHlvdSBuZWVkIHRvIGZldGNoIGNvbnRlbnQgdG8gYmUgZGlzcGxheWVkLCBidXQgd2FudFxuICogdG8gc2hvdyBzb21lIHNvcnQgb2YgbG9hZGluZyBncmFwaGljIGluIHRoZSBpbnRlcmltLiBUaGlzIGNvbXBvbmVudCBoZWxwcyB0byBzaW1wbGlmeVxuICogdGhhdCBwYXR0ZXJuIGJ5IGhhbmRsaW5nIGNvbW1vbiB0eXBlcyBvZiBwcm9taXNlcyBhbmQgcHJvdmlkaW5nIGEgc2ltcGxlIG1lY2hhbmlzbVxuICogZm9yIG1hdGVyaWFsaXppbmcgdGhlIHJlc29sdmVkIGRhdGEgaW50byBKU1guXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFzeW5jIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgICAgLyoqIGEgY2FsbGJhY2sgZm9yIHdoZW4gcmVhbCBjb250ZW50IGhhcyBiZWVuIHJlbmRlcmVkOyBlaXRoZXIgbm9ybWFsIHBhc3NlZCBkYXRhIG9yIHdoZW4gYSBwYXNzZWQgcHJvbWlzZSByZXNvbHZlcyAqL1xuICAgICAgICBjb250ZW50UmVuZGVyZWRGdW5jOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgICAgICAvKiogYSBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSByZXNvbHZlZCBwYXlsb2FkIG9mIGEgcHJvbWlzZSBwcm92aWRlZCBieSBgcHJvcHMuZGF0YWAgYW5kIHJldHVybnMgcmVuZGVyYWJsZSBKU1g7IGRlZmF1bHRzIHRvIHRyeWluZyB0byByZW5kZXIgdGhlIHJlc29sdmVkIHZhbHVlIG9mIHRoZSBQcm9taXNlICovXG4gICAgICAgIGNvbnZlcnRUb0pTWEZ1bmM6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgICAgIC8qKiBhIHByb21pc2UsIG9yIHNvbWUgb3RoZXIgcGllY2Ugb2YgZGF0YSB0byBiZSBydW4gdGhyb3VnaCBgcHJvcHMuY29udmVydFRvSlNYRnVuY2AgKi9cbiAgICAgICAgZGF0YTogUHJvcFR5cGVzLmFueSxcblxuICAgICAgICAvKiogY29udGVudCB0byBiZSBzaG93biBpZiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZCAqL1xuICAgICAgICBlcnJvckNvbnRlbnQ6IFByb3BUeXBlcy5ub2RlLFxuXG4gICAgICAgIC8qKiBjb250ZW50IHRvIGJlIHNob3duIHdoaWxlIHRoZSBwcm9taXNlIGlzIGluIHBlbmRpbmcgc3RhdGUgKi9cbiAgICAgICAgbG9hZGluZ0NvbnRlbnQ6IFByb3BUeXBlcy5ub2RlLFxuICAgIH1cblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIGNvbnRlbnRSZW5kZXJlZEZ1bmM6ICgpID0+IHt9LFxuICAgICAgICBjb252ZXJ0VG9KU1hGdW5jOiAoeCkgPT4geCxcbiAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgZXJyb3JDb250ZW50OiAn4pqg77iPJyxcbiAgICAgICAgbG9hZGluZ0NvbnRlbnQ6IG51bGwsXG4gICAgfVxuXG4gICAgc3RhdGljIGludGVybmFsS2V5cyA9IE9iamVjdC5rZXlzKEFzeW5jLmRlZmF1bHRQcm9wcylcblxuICAgIG1vdW50ZWQgPSBmYWxzZVxuICAgIHN0YXRlID0ge31cblxuICAgIGNvbnZlcnREYXRhVG9KU1hPcldhaXQocHJvcHMgPSB0aGlzLnByb3BzKSB7XG4gICAgICAgIGNvbnN0IHtkYXRhfSA9IHByb3BzO1xuXG4gICAgICAgIGlmIChkYXRhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y29tcG9uZW50OiBudWxsfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBkYXRhLnRoZW4oKHBheWxvYWQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb3VudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgcmVwbGFjZSBpZiB3ZSdyZSBsb29raW5nIGF0IHRoZSBzYW1lIHByb21pc2UsIG90aGVyd2lzZSBkbyBub3RoaW5nXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKHN0YXRlLCBjdXJyZW50UHJvcHMpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IGN1cnJlbnRQcm9wcy5kYXRhID09PSBkYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gY3VycmVudFByb3BzLmNvbnZlcnRUb0pTWEZ1bmMocGF5bG9hZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzdGF0ZS5jb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAoKSA9PiB0aGlzLnNldFN0YXRlKHtjb21wb25lbnQ6IGZhbHNlfSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y29tcG9uZW50OiBwcm9wcy5jb252ZXJ0VG9KU1hGdW5jKGRhdGEpfSk7XG4gICAgfVxuXG4gICAgZmlyZUNhbGxiYWNrSWZEYXRhUmVuZGVyZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50UmVuZGVyZWRGdW5jKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsTW91bnQoKSAgICAgICAgICAgICAgICAgeyB0aGlzLmNvbnZlcnREYXRhVG9KU1hPcldhaXQoKTsgfVxuICAgIGNvbXBvbmVudERpZE1vdW50KCkgICAgICAgICAgICAgICAgICB7IHRoaXMubW91bnRlZCA9IHRydWU7IHRoaXMuZmlyZUNhbGxiYWNrSWZEYXRhUmVuZGVyZWQoKTsgfVxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpICAgICAgICAgICAgICAgICB7IHRoaXMuZmlyZUNhbGxiYWNrSWZEYXRhUmVuZGVyZWQoKTsgfVxuICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7IHRoaXMuY29udmVydERhdGFUb0pTWE9yV2FpdChuZXh0UHJvcHMpOyB9XG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSAgICAgICAgICAgICAgIHsgdGhpcy5tb3VudGVkID0gZmFsc2U7IH1cblxuICAgIGdldENsYXNzZXMoZXh0cmFDbGFzc2VzKSB7XG4gICAgICAgIHJldHVybiBjeCgnYi1hc3luYycsIHRoaXMucHJvcHMuY2xhc3NOYW1lLCBleHRyYUNsYXNzZXMsIHtcbiAgICAgICAgICAgICdiLWFzeW5jLWVycm9yJzogdGhpcy5zdGF0ZS5jb21wb25lbnQgPT09IGZhbHNlLFxuICAgICAgICAgICAgJ2ItYXN5bmMtbG9hZGluZyc6IHRoaXMuc3RhdGUuY29tcG9uZW50ID09PSBudWxsLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmNvbXBvbmVudCA9PT0gbnVsbCB8fCB0aGlzLnN0YXRlLmNvbXBvbmVudCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGRpdiB7Li4ub21pdCh0aGlzLnByb3BzLCBBc3luYy5pbnRlcm5hbEtleXMpfSBjbGFzc05hbWU9e3RoaXMuZ2V0Q2xhc3NlcygpfT5cbiAgICAgICAgICAgICAgICAgICAge3RoaXMuc3RhdGUuY29tcG9uZW50ID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICA/IHRoaXMucHJvcHMubG9hZGluZ0NvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5wcm9wcy5lcnJvckNvbnRlbnR9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudCh0aGlzLnN0YXRlLmNvbXBvbmVudCwge1xuICAgICAgICAgICAgLi4ub21pdCh0aGlzLnByb3BzLCBBc3luYy5pbnRlcm5hbEtleXMpLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiB0aGlzLmdldENsYXNzZXModGhpcy5zdGF0ZS5jb21wb25lbnQucHJvcHMgJiYgdGhpcy5zdGF0ZS5jb21wb25lbnQucHJvcHMuY2xhc3NOYW1lKSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcGFja2FnZXMvYm91bmRsZXNzLWFzeW5jL2luZGV4LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==
module.exports=function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=3)}([function(t,e,n){"use strict";function o(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object.keys(t).reduce(function(n,o){return e.indexOf(o)===-1&&(n[o]=t[o]),n},{})}e.a=o},function(t,e){t.exports=require("classnames")},function(t,e){t.exports=require("react")},function(t,e,n){"use strict";function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var c=n(2),i=n.n(c),s=n(1),u=n.n(s),l=n(0),p=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},f=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),d=function(t){function e(){var t,n,a,c;o(this,e);for(var i=arguments.length,s=Array(i),u=0;u<i;u++)s[u]=arguments[u];return n=a=r(this,(t=e.__proto__||Object.getPrototypeOf(e)).call.apply(t,[this].concat(s))),a.mounted=!1,a.state={},c=n,r(a,c)}return a(e,t),f(e,[{key:"convertDataToJSXOrWait",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,n=e.data;return n instanceof Promise?(this.setState({component:null}),n.then(function(e){t.mounted&&t.setState(function(t,o){return{component:o.data===n?o.convertToJSXFunc(e):t.component}})},function(){return t.setState({component:!1})})):void this.setState({component:e.convertToJSXFunc(n)})}},{key:"fireCallbackIfDataRendered",value:function(){this.state.component&&this.props.contentRenderedFunc()}},{key:"componentWillMount",value:function(){this.convertDataToJSXOrWait()}},{key:"componentDidMount",value:function(){this.mounted=!0,this.fireCallbackIfDataRendered()}},{key:"componentDidUpdate",value:function(){this.fireCallbackIfDataRendered()}},{key:"componentWillReceiveProps",value:function(t){this.convertDataToJSXOrWait(t)}},{key:"componentWillUnmount",value:function(){this.mounted=!1}},{key:"getClasses",value:function(t){return u()("b-async",this.props.className,t,{"b-async-error":this.state.component===!1,"b-async-loading":null===this.state.component})}},{key:"render",value:function(){return null===this.state.component||this.state.component===!1?i.a.createElement("div",p({},n.i(l.a)(this.props,e.internalKeys),{className:this.getClasses()}),null===this.state.component?this.props.loadingContent:this.props.errorContent):i.a.cloneElement(this.state.component,p({},n.i(l.a)(this.props,e.internalKeys),{className:this.getClasses(this.state.component.props&&this.state.component.props.className)}))}}]),e}(i.a.PureComponent);d.propTypes={contentRenderedFunc:c.PropTypes.func,convertToJSXFunc:c.PropTypes.func,data:c.PropTypes.any,errorContent:c.PropTypes.node,loadingContent:c.PropTypes.node},d.defaultProps={contentRenderedFunc:function(){},convertToJSXFunc:function(t){return t},data:null,errorContent:"⚠️",loadingContent:null},d.internalKeys=Object.keys(d.defaultProps),e.default=d}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIDczMmM4NDE5M2FjY2E2ZDhlMGViIiwid2VicGFjazovLy8uL3BhY2thZ2VzL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIHtcImNvbW1vbmpzMlwiOlwiY2xhc3NuYW1lc1wifSIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwge1wiY29tbW9uanMyXCI6XCJyZWFjdFwifSIsIndlYnBhY2s6Ly8vLi9wYWNrYWdlcy9ib3VuZGxlc3MtYXN5bmMvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJpbnN0YWxsZWRNb2R1bGVzIiwiaSIsImwiLCJjYWxsIiwibSIsImMiLCJ2YWx1ZSIsImQiLCJuYW1lIiwiZ2V0dGVyIiwibyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsImdldCIsIm4iLCJfX2VzTW9kdWxlIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwiX193ZWJwYWNrX2V4cG9ydHNfXyIsIm9taXRLZXlzRnJvbVNvdXJjZU9iamVjdCIsInNvdXJjZSIsIm9taXR0ZWRLZXlzIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwia2V5cyIsInJlZHVjZSIsImhhc2giLCJrZXkiLCJpbmRleE9mIiwicmVxdWlyZSIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiQ29uc3RydWN0b3IiLCJUeXBlRXJyb3IiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsInNlbGYiLCJSZWZlcmVuY2VFcnJvciIsIl9pbmhlcml0cyIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsImNyZWF0ZSIsImNvbnN0cnVjdG9yIiwid3JpdGFibGUiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fX2RlZmF1bHQiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2JvdW5kbGVzc191dGlsc19vbWl0X2tleXNfaW5kZXhfXyIsIl9leHRlbmRzIiwiYXNzaWduIiwidGFyZ2V0IiwiX2NyZWF0ZUNsYXNzIiwiZGVmaW5lUHJvcGVydGllcyIsInByb3BzIiwiZGVzY3JpcHRvciIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsIkFzeW5jIiwiX1JlYWN0JFB1cmVDb21wb25lbnQiLCJfcmVmIiwiX3RlbXAiLCJfdGhpcyIsIl9yZXQiLCJ0aGlzIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJnZXRQcm90b3R5cGVPZiIsImFwcGx5IiwiY29uY2F0IiwibW91bnRlZCIsInN0YXRlIiwiX3RoaXMyIiwiZGF0YSIsIlByb21pc2UiLCJzZXRTdGF0ZSIsImNvbXBvbmVudCIsInRoZW4iLCJwYXlsb2FkIiwiY3VycmVudFByb3BzIiwiY29udmVydFRvSlNYRnVuYyIsImNvbnRlbnRSZW5kZXJlZEZ1bmMiLCJjb252ZXJ0RGF0YVRvSlNYT3JXYWl0IiwiZmlyZUNhbGxiYWNrSWZEYXRhUmVuZGVyZWQiLCJuZXh0UHJvcHMiLCJleHRyYUNsYXNzZXMiLCJjbGFzc05hbWUiLCJiLWFzeW5jLWVycm9yIiwiYi1hc3luYy1sb2FkaW5nIiwiYSIsImNyZWF0ZUVsZW1lbnQiLCJpbnRlcm5hbEtleXMiLCJnZXRDbGFzc2VzIiwibG9hZGluZ0NvbnRlbnQiLCJlcnJvckNvbnRlbnQiLCJjbG9uZUVsZW1lbnQiLCJQdXJlQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiZnVuYyIsImFueSIsIm5vZGUiLCJkZWZhdWx0UHJvcHMiLCJ4Il0sIm1hcHBpbmdzIjoiQUFBQUEsT0FBT0MsUUFDRSxTQUFVQyxHQ0duQixRQUFBQyxHQUFBQyxHQUdBLEdBQUFDLEVBQUFELEdBQ0EsTUFBQUMsR0FBQUQsR0FBQUgsT0FHQSxJQUFBRCxHQUFBSyxFQUFBRCxJQUNBRSxFQUFBRixFQUNBRyxHQUFBLEVBQ0FOLFdBVUEsT0FOQUMsR0FBQUUsR0FBQUksS0FBQVIsRUFBQUMsUUFBQUQsSUFBQUMsUUFBQUUsR0FHQUgsRUFBQU8sR0FBQSxFQUdBUCxFQUFBQyxRQXZCQSxHQUFBSSxLQStEQSxPQW5DQUYsR0FBQU0sRUFBQVAsRUFHQUMsRUFBQU8sRUFBQUwsRUFHQUYsRUFBQUcsRUFBQSxTQUFBSyxHQUEyQyxNQUFBQSxJQUczQ1IsRUFBQVMsRUFBQSxTQUFBWCxFQUFBWSxFQUFBQyxHQUNBWCxFQUFBWSxFQUFBZCxFQUFBWSxJQUNBRyxPQUFBQyxlQUFBaEIsRUFBQVksR0FDQUssY0FBQSxFQUNBQyxZQUFBLEVBQ0FDLElBQUFOLEtBTUFYLEVBQUFrQixFQUFBLFNBQUFyQixHQUNBLEdBQUFjLEdBQUFkLEtBQUFzQixXQUNBLFdBQTJCLE1BQUF0QixHQUFBLFNBQzNCLFdBQWlDLE1BQUFBLEdBRWpDLE9BREFHLEdBQUFTLEVBQUFFLEVBQUEsSUFBQUEsR0FDQUEsR0FJQVgsRUFBQVksRUFBQSxTQUFBUSxFQUFBQyxHQUFzRCxNQUFBUixRQUFBUyxVQUFBQyxlQUFBbEIsS0FBQWUsRUFBQUMsSUFHdERyQixFQUFBd0IsRUFBQSxHQUdBeEIsSUFBQXlCLEVBQUEsS0RPTSxTQUFVNUIsRUFBUTZCLEVBQXFCMUIsR0FFN0MsWUV0RWUsU0FBUzJCLEdBQXlCQyxHQUEwQixHQUFsQkMsR0FBa0JDLFVBQUFDLE9BQUEsR0FBQUMsU0FBQUYsVUFBQSxHQUFBQSxVQUFBLEtBQ3ZFLE9BQU9qQixRQUFPb0IsS0FBS0wsR0FBUU0sT0FBTyxTQUE4QkMsRUFB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LFdBQXNCZCxLQUFLUyxNQUFNSyxhQUFjLEVBRXREakMsRUFBQThDLEVBQUFDLGNBQUEsTUFBQTNDLEtBQVMzRCxFQUFBRyxFQUFBdUQsRUFBQSxHQUFLZ0IsS0FBS1YsTUFBT0ksRUFBTW1DLGVBQWVMLFVBQVd4QixLQUFLOEIsZUFDakMsT0FBekI5QixLQUFLUyxNQUFNSyxVQUNUZCxLQUFLVixNQUFNeUMsZUFDWC9CLEtBQUtWLE1BQU0wQyxjQUtuQm5ELEVBQUE4QyxFQUFNTSxhQUFhakMsS0FBS1MsTUFBTUssVUFBOUI3QixLQUNBM0QsRUFBQUcsRUFBQXVELEVBQUEsR0FBS2dCLEtBQUtWLE1BQU9JLEVBQU1tQyxlQUMxQkwsVUFBV3hCLEtBQUs4QixXQUFXOUIsS0FBS1MsTUFBTUssVUFBVXhCLE9BQVNVLEtBQUtTLE1BQU1LLFVBQVV4QixNQUFNa0Msa0JMQ2dvSTlCLEdLckY3ckliLEVBQUE4QyxFQUFNTyxjQUFwQnhDLEdBQ1Z5QyxXQUVIaEIsb0JBQXFCdkMsRUFBQSxVQUFVd0QsS0FHL0JsQixpQkFBa0J0QyxFQUFBLFVBQVV3RCxLQUc1QnpCLEtBQU0vQixFQUFBLFVBQVV5RCxJQUdoQkwsYUFBY3BELEVBQUEsVUFBVTBELEtBR3hCUCxlQUFnQm5ELEVBQUEsVUFBVTBELE1BZmI1QyxFQWtCVjZDLGNBQ0hwQixvQkFBcUIsYUFDckJELGlCQUFrQixTQUFDc0IsR0FBRCxNQUFPQSxJQUN6QjdCLEtBQU0sS0FDTnFCLGFBQWMsS0FDZEQsZUFBZ0IsTUF2QkhyQyxFQTBCVm1DLGFBQWUxRixPQUFPb0IsS0FBS21DLEVBQU02QyxjTDJEaTJKdkYsRUFBNkIsUUtyRnI1SjBDIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPVxuLyoqKioqKi8gKGZ1bmN0aW9uKG1vZHVsZXMpIHsgLy8gd2VicGFja0Jvb3RzdHJhcFxuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuLyoqKioqKi8gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuLyoqKioqKi8gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4vKioqKioqLyBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0aTogbW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRsOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbi8qKioqKiovIFx0XHRtb2R1bGUubCA9IHRydWU7XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4vKioqKioqLyBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHR9XG4vKioqKioqL1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBpZGVudGl0eSBmdW5jdGlvbiBmb3IgY2FsbGluZyBoYXJtb255IGltcG9ydHMgd2l0aCB0aGUgY29ycmVjdCBjb250ZXh0XG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbi8qKioqKiovIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4vKioqKioqLyBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuLyoqKioqKi8gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuLyoqKioqKi8gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuLyoqKioqKi8gXHRcdFx0XHRnZXQ6IGdldHRlclxuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4vKioqKioqLyBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuLyoqKioqKi8gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4vKioqKioqLyBcdFx0cmV0dXJuIGdldHRlcjtcbi8qKioqKiovIFx0fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vKioqKioqLyBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDMpO1xuLyoqKioqKi8gfSlcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyAoW1xuLyogMCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZXhwb3J0IChpbW11dGFibGUpICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gb21pdEtleXNGcm9tU291cmNlT2JqZWN0O1xuZnVuY3Rpb24gb21pdEtleXNGcm9tU291cmNlT2JqZWN0KHNvdXJjZSl7dmFyIG9taXR0ZWRLZXlzPWFyZ3VtZW50cy5sZW5ndGg+MSYmYXJndW1lbnRzWzFdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1sxXTpbXTtyZXR1cm4gT2JqZWN0LmtleXMoc291cmNlKS5yZWR1Y2UoZnVuY3Rpb24gcmVsb2NhdGVBY2NlcHRlZEtleXMoaGFzaCxrZXkpe2lmKG9taXR0ZWRLZXlzLmluZGV4T2Yoa2V5KT09PS0xKXtoYXNoW2tleV09c291cmNlW2tleV07fXJldHVybiBoYXNoO30se30pO31cblxuLyoqKi8gfSksXG4vKiAxICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNsYXNzbmFtZXNcIik7XG5cbi8qKiovIH0pLFxuLyogMiAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcblxuLyoqKi8gfSksXG4vKiAzICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fd2VicGFja19leHBvcnRzX18sIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX19kZWZhdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfY2xhc3NuYW1lc19fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2NsYXNzbmFtZXNfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19ib3VuZGxlc3NfdXRpbHNfb21pdF9rZXlzX2luZGV4X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xudmFyIF9leHRlbmRzPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHRhcmdldCl7Zm9yKHZhciBpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7dmFyIHNvdXJjZT1hcmd1bWVudHNbaV07Zm9yKHZhciBrZXkgaW4gc291cmNlKXtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLGtleSkpe3RhcmdldFtrZXldPXNvdXJjZVtrZXldO319fXJldHVybiB0YXJnZXQ7fTt2YXIgX2NyZWF0ZUNsYXNzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQscHJvcHMpe2Zvcih2YXIgaT0wO2k8cHJvcHMubGVuZ3RoO2krKyl7dmFyIGRlc2NyaXB0b3I9cHJvcHNbaV07ZGVzY3JpcHRvci5lbnVtZXJhYmxlPWRlc2NyaXB0b3IuZW51bWVyYWJsZXx8ZmFsc2U7ZGVzY3JpcHRvci5jb25maWd1cmFibGU9dHJ1ZTtpZihcInZhbHVlXCJpbiBkZXNjcmlwdG9yKWRlc2NyaXB0b3Iud3JpdGFibGU9dHJ1ZTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LGRlc2NyaXB0b3Iua2V5LGRlc2NyaXB0b3IpO319cmV0dXJuIGZ1bmN0aW9uKENvbnN0cnVjdG9yLHByb3RvUHJvcHMsc3RhdGljUHJvcHMpe2lmKHByb3RvUHJvcHMpZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUscHJvdG9Qcm9wcyk7aWYoc3RhdGljUHJvcHMpZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3RvcixzdGF0aWNQcm9wcyk7cmV0dXJuIENvbnN0cnVjdG9yO307fSgpO2Z1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSxDb25zdHJ1Y3Rvcil7aWYoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTt9fWZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsY2FsbCl7aWYoIXNlbGYpe3Rocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTt9cmV0dXJuIGNhbGwmJih0eXBlb2YgY2FsbD09PVwib2JqZWN0XCJ8fHR5cGVvZiBjYWxsPT09XCJmdW5jdGlvblwiKT9jYWxsOnNlbGY7fWZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcyxzdXBlckNsYXNzKXtpZih0eXBlb2Ygc3VwZXJDbGFzcyE9PVwiZnVuY3Rpb25cIiYmc3VwZXJDbGFzcyE9PW51bGwpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiK3R5cGVvZiBzdXBlckNsYXNzKTt9c3ViQ2xhc3MucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyYmc3VwZXJDbGFzcy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpzdWJDbGFzcyxlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOnRydWUsY29uZmlndXJhYmxlOnRydWV9fSk7aWYoc3VwZXJDbGFzcylPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLHN1cGVyQ2xhc3MpOnN1YkNsYXNzLl9fcHJvdG9fXz1zdXBlckNsYXNzO312YXIgQXN5bmM9ZnVuY3Rpb24oX1JlYWN0JFB1cmVDb21wb25lbnQpe19pbmhlcml0cyhBc3luYyxfUmVhY3QkUHVyZUNvbXBvbmVudCk7ZnVuY3Rpb24gQXN5bmMoKXt2YXIgX3JlZjt2YXIgX3RlbXAsX3RoaXMsX3JldDtfY2xhc3NDYWxsQ2hlY2sodGhpcyxBc3luYyk7Zm9yKHZhciBfbGVuPWFyZ3VtZW50cy5sZW5ndGgsYXJncz1BcnJheShfbGVuKSxfa2V5PTA7X2tleTxfbGVuO19rZXkrKyl7YXJnc1tfa2V5XT1hcmd1bWVudHNbX2tleV07fXJldHVybiBfcmV0PShfdGVtcD0oX3RoaXM9X3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywoX3JlZj1Bc3luYy5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihBc3luYykpLmNhbGwuYXBwbHkoX3JlZixbdGhpc10uY29uY2F0KGFyZ3MpKSksX3RoaXMpLF90aGlzLm1vdW50ZWQ9ZmFsc2UsX3RoaXMuc3RhdGU9e30sX3RlbXApLF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKF90aGlzLF9yZXQpO31fY3JlYXRlQ2xhc3MoQXN5bmMsW3trZXk6J2NvbnZlcnREYXRhVG9KU1hPcldhaXQnLHZhbHVlOmZ1bmN0aW9uIGNvbnZlcnREYXRhVG9KU1hPcldhaXQoKXt2YXIgX3RoaXMyPXRoaXM7dmFyIHByb3BzPWFyZ3VtZW50cy5sZW5ndGg+MCYmYXJndW1lbnRzWzBdIT09dW5kZWZpbmVkP2FyZ3VtZW50c1swXTp0aGlzLnByb3BzO3ZhciBkYXRhPXByb3BzLmRhdGE7aWYoZGF0YSBpbnN0YW5jZW9mIFByb21pc2Upe3RoaXMuc2V0U3RhdGUoe2NvbXBvbmVudDpudWxsfSk7cmV0dXJuIGRhdGEudGhlbihmdW5jdGlvbihwYXlsb2FkKXtpZihfdGhpczIubW91bnRlZCl7X3RoaXMyLnNldFN0YXRlKGZ1bmN0aW9uKHN0YXRlLGN1cnJlbnRQcm9wcyl7cmV0dXJue2NvbXBvbmVudDpjdXJyZW50UHJvcHMuZGF0YT09PWRhdGE/Y3VycmVudFByb3BzLmNvbnZlcnRUb0pTWEZ1bmMocGF5bG9hZCk6c3RhdGUuY29tcG9uZW50fTt9KTt9fSxmdW5jdGlvbigpe3JldHVybiBfdGhpczIuc2V0U3RhdGUoe2NvbXBvbmVudDpmYWxzZX0pO30pO310aGlzLnNldFN0YXRlKHtjb21wb25lbnQ6cHJvcHMuY29udmVydFRvSlNYRnVuYyhkYXRhKX0pO319LHtrZXk6J2ZpcmVDYWxsYmFja0lmRGF0YVJlbmRlcmVkJyx2YWx1ZTpmdW5jdGlvbiBmaXJlQ2FsbGJhY2tJZkRhdGFSZW5kZXJlZCgpe2lmKHRoaXMuc3RhdGUuY29tcG9uZW50KXt0aGlzLnByb3BzLmNvbnRlbnRSZW5kZXJlZEZ1bmMoKTt9fX0se2tleTonY29tcG9uZW50V2lsbE1vdW50Jyx2YWx1ZTpmdW5jdGlvbiBjb21wb25lbnRXaWxsTW91bnQoKXt0aGlzLmNvbnZlcnREYXRhVG9KU1hPcldhaXQoKTt9fSx7a2V5Oidjb21wb25lbnREaWRNb3VudCcsdmFsdWU6ZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKXt0aGlzLm1vdW50ZWQ9dHJ1ZTt0aGlzLmZpcmVDYWxsYmFja0lmRGF0YVJlbmRlcmVkKCk7fX0se2tleTonY29tcG9uZW50RGlkVXBkYXRlJyx2YWx1ZTpmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUoKXt0aGlzLmZpcmVDYWxsYmFja0lmRGF0YVJlbmRlcmVkKCk7fX0se2tleTonY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcycsdmFsdWU6ZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpe3RoaXMuY29udmVydERhdGFUb0pTWE9yV2FpdChuZXh0UHJvcHMpO319LHtrZXk6J2NvbXBvbmVudFdpbGxVbm1vdW50Jyx2YWx1ZTpmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpe3RoaXMubW91bnRlZD1mYWxzZTt9fSx7a2V5OidnZXRDbGFzc2VzJyx2YWx1ZTpmdW5jdGlvbiBnZXRDbGFzc2VzKGV4dHJhQ2xhc3Nlcyl7cmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9jbGFzc25hbWVzX19fZGVmYXVsdCgpKCdiLWFzeW5jJyx0aGlzLnByb3BzLmNsYXNzTmFtZSxleHRyYUNsYXNzZXMseydiLWFzeW5jLWVycm9yJzp0aGlzLnN0YXRlLmNvbXBvbmVudD09PWZhbHNlLCdiLWFzeW5jLWxvYWRpbmcnOnRoaXMuc3RhdGUuY29tcG9uZW50PT09bnVsbH0pO319LHtrZXk6J3JlbmRlcicsdmFsdWU6ZnVuY3Rpb24gcmVuZGVyKCl7aWYodGhpcy5zdGF0ZS5jb21wb25lbnQ9PT1udWxsfHx0aGlzLnN0YXRlLmNvbXBvbmVudD09PWZhbHNlKXtyZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19fZGVmYXVsdC5hLmNyZWF0ZUVsZW1lbnQoJ2RpdicsX2V4dGVuZHMoe30sX193ZWJwYWNrX3JlcXVpcmVfXy5pKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19pbmRleF9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKSh0aGlzLnByb3BzLEFzeW5jLmludGVybmFsS2V5cykse2NsYXNzTmFtZTp0aGlzLmdldENsYXNzZXMoKX0pLHRoaXMuc3RhdGUuY29tcG9uZW50PT09bnVsbD90aGlzLnByb3BzLmxvYWRpbmdDb250ZW50OnRoaXMucHJvcHMuZXJyb3JDb250ZW50KTt9cmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fX2RlZmF1bHQuYS5jbG9uZUVsZW1lbnQodGhpcy5zdGF0ZS5jb21wb25lbnQsX2V4dGVuZHMoe30sX193ZWJwYWNrX3JlcXVpcmVfXy5pKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYm91bmRsZXNzX3V0aWxzX29taXRfa2V5c19pbmRleF9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKSh0aGlzLnByb3BzLEFzeW5jLmludGVybmFsS2V5cykse2NsYXNzTmFtZTp0aGlzLmdldENsYXNzZXModGhpcy5zdGF0ZS5jb21wb25lbnQucHJvcHMmJnRoaXMuc3RhdGUuY29tcG9uZW50LnByb3BzLmNsYXNzTmFtZSl9KSk7fX1dKTtyZXR1cm4gQXN5bmM7fShfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX19kZWZhdWx0LmEuUHVyZUNvbXBvbmVudCk7QXN5bmMucHJvcFR5cGVzPXtjb250ZW50UmVuZGVyZWRGdW5jOl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLmZ1bmMsY29udmVydFRvSlNYRnVuYzpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5mdW5jLGRhdGE6X19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX3JlYWN0X19bXCJQcm9wVHlwZXNcIl0uYW55LGVycm9yQ29udGVudDpfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfcmVhY3RfX1tcIlByb3BUeXBlc1wiXS5ub2RlLGxvYWRpbmdDb250ZW50Ol9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9yZWFjdF9fW1wiUHJvcFR5cGVzXCJdLm5vZGV9O0FzeW5jLmRlZmF1bHRQcm9wcz17Y29udGVudFJlbmRlcmVkRnVuYzpmdW5jdGlvbiBjb250ZW50UmVuZGVyZWRGdW5jKCl7fSxjb252ZXJ0VG9KU1hGdW5jOmZ1bmN0aW9uIGNvbnZlcnRUb0pTWEZ1bmMoeCl7cmV0dXJuIHg7fSxkYXRhOm51bGwsZXJyb3JDb250ZW50OifimqDvuI8nLGxvYWRpbmdDb250ZW50Om51bGx9O0FzeW5jLmludGVybmFsS2V5cz1PYmplY3Qua2V5cyhBc3luYy5kZWZhdWx0UHJvcHMpOy8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImRlZmF1bHRcIl0gPSBBc3luYztcblxuLyoqKi8gfSlcbi8qKioqKiovIF0pO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBpbmRleC5qcyIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBpZGVudGl0eSBmdW5jdGlvbiBmb3IgY2FsbGluZyBoYXJtb255IGltcG9ydHMgd2l0aCB0aGUgY29ycmVjdCBjb250ZXh0XG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmkgPSBmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH07XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbiBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4gXHRcdFx0XHRnZXQ6IGdldHRlclxuIFx0XHRcdH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDMpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIDczMmM4NDE5M2FjY2E2ZDhlMGViIiwiLyoqXG4gKiBSZXR1cm5zIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgc3VwcGxpZWQgb2JqZWN0IHdpdGhvdXQgdGhlIGdpdmVuIGtleXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9taXRLZXlzRnJvbVNvdXJjZU9iamVjdChzb3VyY2UsIG9taXR0ZWRLZXlzID0gW10pIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoc291cmNlKS5yZWR1Y2UoZnVuY3Rpb24gcmVsb2NhdGVBY2NlcHRlZEtleXMoaGFzaCwga2V5KSB7XG4gICAgICAgIGlmIChvbWl0dGVkS2V5cy5pbmRleE9mKGtleSkgPT09IC0xKSB7XG4gICAgICAgICAgICBoYXNoW2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBoYXNoO1xuXG4gICAgfSwge30pO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcGFja2FnZXMvYm91bmRsZXNzLXV0aWxzLW9taXQta2V5cy9pbmRleC5qcyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNsYXNzbmFtZXNcIik7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwge1wiY29tbW9uanMyXCI6XCJjbGFzc25hbWVzXCJ9XG4vLyBtb2R1bGUgaWQgPSAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0XCIpO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIHtcImNvbW1vbmpzMlwiOlwicmVhY3RcIn1cbi8vIG1vZHVsZSBpZCA9IDJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiaW1wb3J0IFJlYWN0LCB7UHJvcFR5cGVzfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY3ggZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmltcG9ydCBvbWl0IGZyb20gJy4uL2JvdW5kbGVzcy11dGlscy1vbWl0LWtleXMvaW5kZXgnO1xuXG5cbi8qKlxuICogIyBBc3luY1xuICogX19BIGhpZ2hlci1vcmRlciBjb21wb25lbnQgZm9yIHJlbmRlcmluZyBkYXRhIHRoYXQgaXNuJ3QgcmVhZHkgeWV0Ll9fXG4gKlxuICogVGhlcmUgYXJlIHBsZW50eSBvZiBzaXR1YXRpb25zIHdoZXJlIHlvdSBuZWVkIHRvIGZldGNoIGNvbnRlbnQgdG8gYmUgZGlzcGxheWVkLCBidXQgd2FudFxuICogdG8gc2hvdyBzb21lIHNvcnQgb2YgbG9hZGluZyBncmFwaGljIGluIHRoZSBpbnRlcmltLiBUaGlzIGNvbXBvbmVudCBoZWxwcyB0byBzaW1wbGlmeVxuICogdGhhdCBwYXR0ZXJuIGJ5IGhhbmRsaW5nIGNvbW1vbiB0eXBlcyBvZiBwcm9taXNlcyBhbmQgcHJvdmlkaW5nIGEgc2ltcGxlIG1lY2hhbmlzbVxuICogZm9yIG1hdGVyaWFsaXppbmcgdGhlIHJlc29sdmVkIGRhdGEgaW50byBKU1guXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFzeW5jIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgICAgLyoqIGEgY2FsbGJhY2sgZm9yIHdoZW4gcmVhbCBjb250ZW50IGhhcyBiZWVuIHJlbmRlcmVkOyBlaXRoZXIgbm9ybWFsIHBhc3NlZCBkYXRhIG9yIHdoZW4gYSBwYXNzZWQgcHJvbWlzZSByZXNvbHZlcyAqL1xuICAgICAgICBjb250ZW50UmVuZGVyZWRGdW5jOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgICAgICAvKiogYSBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSByZXNvbHZlZCBwYXlsb2FkIG9mIGEgcHJvbWlzZSBwcm92aWRlZCBieSBgcHJvcHMuZGF0YWAgYW5kIHJldHVybnMgcmVuZGVyYWJsZSBKU1g7IGRlZmF1bHRzIHRvIHRyeWluZyB0byByZW5kZXIgdGhlIHJlc29sdmVkIHZhbHVlIG9mIHRoZSBQcm9taXNlICovXG4gICAgICAgIGNvbnZlcnRUb0pTWEZ1bmM6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgICAgIC8qKiBhIHByb21pc2UsIG9yIHNvbWUgb3RoZXIgcGllY2Ugb2YgZGF0YSB0byBiZSBydW4gdGhyb3VnaCBgcHJvcHMuY29udmVydFRvSlNYRnVuY2AgKi9cbiAgICAgICAgZGF0YTogUHJvcFR5cGVzLmFueSxcblxuICAgICAgICAvKiogY29udGVudCB0byBiZSBzaG93biBpZiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZCAqL1xuICAgICAgICBlcnJvckNvbnRlbnQ6IFByb3BUeXBlcy5ub2RlLFxuXG4gICAgICAgIC8qKiBjb250ZW50IHRvIGJlIHNob3duIHdoaWxlIHRoZSBwcm9taXNlIGlzIGluIHBlbmRpbmcgc3RhdGUgKi9cbiAgICAgICAgbG9hZGluZ0NvbnRlbnQ6IFByb3BUeXBlcy5ub2RlLFxuICAgIH1cblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIGNvbnRlbnRSZW5kZXJlZEZ1bmM6ICgpID0+IHt9LFxuICAgICAgICBjb252ZXJ0VG9KU1hGdW5jOiAoeCkgPT4geCxcbiAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgZXJyb3JDb250ZW50OiAn4pqg77iPJyxcbiAgICAgICAgbG9hZGluZ0NvbnRlbnQ6IG51bGwsXG4gICAgfVxuXG4gICAgc3RhdGljIGludGVybmFsS2V5cyA9IE9iamVjdC5rZXlzKEFzeW5jLmRlZmF1bHRQcm9wcylcblxuICAgIG1vdW50ZWQgPSBmYWxzZVxuICAgIHN0YXRlID0ge31cblxuICAgIGNvbnZlcnREYXRhVG9KU1hPcldhaXQocHJvcHMgPSB0aGlzLnByb3BzKSB7XG4gICAgICAgIGNvbnN0IHtkYXRhfSA9IHByb3BzO1xuXG4gICAgICAgIGlmIChkYXRhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y29tcG9uZW50OiBudWxsfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBkYXRhLnRoZW4oKHBheWxvYWQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb3VudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgcmVwbGFjZSBpZiB3ZSdyZSBsb29raW5nIGF0IHRoZSBzYW1lIHByb21pc2UsIG90aGVyd2lzZSBkbyBub3RoaW5nXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoKHN0YXRlLCBjdXJyZW50UHJvcHMpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IGN1cnJlbnRQcm9wcy5kYXRhID09PSBkYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gY3VycmVudFByb3BzLmNvbnZlcnRUb0pTWEZ1bmMocGF5bG9hZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzdGF0ZS5jb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAoKSA9PiB0aGlzLnNldFN0YXRlKHtjb21wb25lbnQ6IGZhbHNlfSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y29tcG9uZW50OiBwcm9wcy5jb252ZXJ0VG9KU1hGdW5jKGRhdGEpfSk7XG4gICAgfVxuXG4gICAgZmlyZUNhbGxiYWNrSWZEYXRhUmVuZGVyZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50UmVuZGVyZWRGdW5jKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsTW91bnQoKSAgICAgICAgICAgICAgICAgeyB0aGlzLmNvbnZlcnREYXRhVG9KU1hPcldhaXQoKTsgfVxuICAgIGNvbXBvbmVudERpZE1vdW50KCkgICAgICAgICAgICAgICAgICB7IHRoaXMubW91bnRlZCA9IHRydWU7IHRoaXMuZmlyZUNhbGxiYWNrSWZEYXRhUmVuZGVyZWQoKTsgfVxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpICAgICAgICAgICAgICAgICB7IHRoaXMuZmlyZUNhbGxiYWNrSWZEYXRhUmVuZGVyZWQoKTsgfVxuICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7IHRoaXMuY29udmVydERhdGFUb0pTWE9yV2FpdChuZXh0UHJvcHMpOyB9XG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSAgICAgICAgICAgICAgIHsgdGhpcy5tb3VudGVkID0gZmFsc2U7IH1cblxuICAgIGdldENsYXNzZXMoZXh0cmFDbGFzc2VzKSB7XG4gICAgICAgIHJldHVybiBjeCgnYi1hc3luYycsIHRoaXMucHJvcHMuY2xhc3NOYW1lLCBleHRyYUNsYXNzZXMsIHtcbiAgICAgICAgICAgICdiLWFzeW5jLWVycm9yJzogdGhpcy5zdGF0ZS5jb21wb25lbnQgPT09IGZhbHNlLFxuICAgICAgICAgICAgJ2ItYXN5bmMtbG9hZGluZyc6IHRoaXMuc3RhdGUuY29tcG9uZW50ID09PSBudWxsLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmNvbXBvbmVudCA9PT0gbnVsbCB8fCB0aGlzLnN0YXRlLmNvbXBvbmVudCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGRpdiB7Li4ub21pdCh0aGlzLnByb3BzLCBBc3luYy5pbnRlcm5hbEtleXMpfSBjbGFzc05hbWU9e3RoaXMuZ2V0Q2xhc3NlcygpfT5cbiAgICAgICAgICAgICAgICAgICAge3RoaXMuc3RhdGUuY29tcG9uZW50ID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICA/IHRoaXMucHJvcHMubG9hZGluZ0NvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5wcm9wcy5lcnJvckNvbnRlbnR9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudCh0aGlzLnN0YXRlLmNvbXBvbmVudCwge1xuICAgICAgICAgICAgLi4ub21pdCh0aGlzLnByb3BzLCBBc3luYy5pbnRlcm5hbEtleXMpLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiB0aGlzLmdldENsYXNzZXModGhpcy5zdGF0ZS5jb21wb25lbnQucHJvcHMgJiYgdGhpcy5zdGF0ZS5jb21wb25lbnQucHJvcHMuY2xhc3NOYW1lKSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcGFja2FnZXMvYm91bmRsZXNzLWFzeW5jL2luZGV4LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==
{
"name": "boundless-async",
"version": "1.0.0-beta.4",
"version": "1.0.0-beta.5",
"description": "A higher-order component for rendering data that isn't ready yet.",
"author": "Evan Scott <glitterbyte@gmail.com> (http://yaycmyk.com)",
"main": "build/index.js",
"author": "Evan Scott <glitterbyte@gmail.com> (http://yaycmyk.com) (http://yaycmyk.com)",
"browser": "build/index.js",
"repository": {

@@ -23,5 +23,7 @@ "type": "git",

"dependencies": {
"boundless-utils-omit-keys": "^1.0.0-beta.3",
"classnames": "^2.1.5"
},
"devDependencies": {
"boundless-utils-omit-keys": "^1.0.0-beta.3"
},
"peerDependencies": {

@@ -28,0 +30,0 @@ "react": ">= 15.3",

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