@untemps/react-vocal
Advanced tools
Comparing version 1.0.2 to 1.0.3
@@ -0,1 +1,3 @@ | ||
## [1.0.3](https://github.com/untemps/react-vocal/compare/v1.0.2...v1.0.3) (2020-06-28) | ||
## [1.0.2](https://github.com/untemps/react-vocal/compare/v1.0.1...v1.0.2) (2020-06-23) | ||
@@ -2,0 +4,0 @@ |
@@ -1,2 +0,2 @@ | ||
import e,{useRef as t,useState as n,useEffect as r,cloneElement as o,isValidElement as i}from"react";import a from"prop-types";function c(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t,n){return t&&u(e.prototype,t),n&&u(e,n),e}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function d(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function m(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){d(i,r,o,a,c,"next",e)}function c(e){d(i,r,o,a,c,"throw",e)}a(void 0)}))}}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}}(e,t)||function(e,t){if(e){if("string"==typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?b(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var E=function(){var e=m(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=m(regeneratorRuntime.mark((function e(n,r){var o,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.permissions){e.next=4;break}r(new DOMException("NOT_FOUND_ERR","NotFoundError")),e.next=22;break;case 4:return e.prev=4,e.next=7,navigator.permissions.query({name:t});case 7:o=e.sent,e.t0=o.state,e.next="denied"===e.t0?11:"prompt"===e.t0?13:16;break;case 11:return r(new DOMException("NOT_ALLOWED_ERR","NotAllowedError")),e.abrupt("break",17);case 13:return i=function e(t){o.removeEventListener("change",e),"denied"===t.target.state?r(new DOMException("NOT_ALLOWED_ERR","NotAllowedError")):n(t.target.state)},o.addEventListener("change",i),e.abrupt("break",17);case 16:n(o.state);case 17:e.next=22;break;case 19:e.prev=19,e.t1=e.catch(4),r(e.t1);case 22:case"end":return e.stop()}}),e,null,[[4,19]])})));return function(t,n){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),w=function(){var e=m(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=m(regeneratorRuntime.mark((function e(r,o){var i,a,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.mediaDevices){e.next=4;break}o(new DOMException("NOT_FOUND_ERR","NotFoundError")),e.next=24;break;case 4:return e.prev=4,e.t0=Promise,e.next=8,E(t);case 8:return e.t1=e.sent,e.next=11,navigator.mediaDevices.getUserMedia(n);case 11:return e.t2=e.sent,e.t3=[e.t1,e.t2],e.next=15,e.t0.all.call(e.t0,e.t3);case 15:i=e.sent,a=y(i,2),c=a[1],r(c),e.next=24;break;case 21:e.prev=21,e.t4=e.catch(4),o(e.t4);case 24:case"end":return e.stop()}}),e,null,[[4,21]])})));return function(t,n){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),g=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),l(this,"_instance",null),l(this,"_listeners",null),l(this,"_includesEventType",(function(t){return Object.values(e.eventTypes).find((function(e){return e===t}))}));var r=window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.msSpeechRecognition||{};this._instance=new r,this._listeners={},Object.entries(p(p({},e.defaultOptions),t||{})).forEach((function(e){var t=v(e,2),r=t[0],o=t[1];return n._instance[r]=o}))}var t,n;return s(e,null,[{key:"isSupported",get:function(){return!!(window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.msSpeechRecognition)},set:function(e){throw new Error("You cannot set isSupported directly.")}}]),s(e,[{key:"start",value:(t=regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._instance){e.next=14;break}return e.prev=1,e.next=4,w("microphone",{audio:!0});case 4:if(e.sent){e.next=7;break}throw new Error("Unable to retrieve the stream from media device");case 7:this._instance.start(),e.next=14;break;case 10:e.prev=10,e.t0=e.catch(1),(t=this._listeners.error)&&t(e.t0);case 14:return e.abrupt("return",this);case 15:case"end":return e.stop()}}),e,this,[[1,10]])})),n=function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function a(e){c(i,r,o,a,u,"next",e)}function u(e){c(i,r,o,a,u,"throw",e)}a(void 0)}))},function(){return n.apply(this,arguments)})},{key:"stop",value:function(){return this._instance&&this._instance.stop(),this}},{key:"abort",value:function(){return this._instance&&this._instance.abort(),this}},{key:"addEventListener",value:function(t,n){var r=this;if(this._instance&&this._includesEventType(t)){this._listeners[t]&&this.removeEventListener(t);var o=function(o){var i=[];t===e.eventTypes.RESULT&&o.results&&o.results.length>0&&i.push(o.results[0][0].transcript),n&&n.apply(r,[].concat(i,[o]))};this._instance.addEventListener(t,(function(e){return o(e)})),this._listeners[t]=o}return this}},{key:"removeEventListener",value:function(e){var t=this._listeners[e];return this._instance.removeEventListener(e,t),delete this._listeners[e],this}},{key:"cleanup",value:function(){var e=this;return this.stop(),Object.keys(this._listeners).forEach((function(t){return e.removeEventListener(t)})),this._instance=null,this}},{key:"instance",get:function(){return this._instance},set:function(e){throw new Error("You cannot set instance directly.")}}]),e}();l(g,"defaultOptions",{lang:"fr-FR",continuous:!1,interimResults:!1,maxAlternatives:1}),l(g,"eventTypes",{AUDIO_END:"audioend",AUDIO_START:"audiostart",END:"end",ERROR:"error",NO_MATCH:"nomatch",RESULT:"result",SOUND_END:"soundend",SOUND_START:"soundstart",SPEECH_END:"speechend",SPEECH_START:"speechstart",START:"start"});var S=function(t){var n=t.iconColor,r=void 0===n?"black":n,o=t.activeColor,i=void 0===o?"red":o,a=t.isActive,c=void 0!==a&&a;return e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 24 24"},e.createElement("g",null,e.createElement("path",{fill:r,d:"M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"}),c&&e.createElement("circle",{fill:i,cx:"16",cy:"4",r:"4"})))},O=function(a){var c=a.children,u=a.timeout,s=a.ariaLabel,l=a.tabIndex,f=a.style,h=a.className,d=a.onStart,m=a.onEnd,y=a.onSpeechStart,b=a.onSpeechEnd,E=a.onResult,w=a.onError,O=a.onNoMatch,_=a.__recognitionInstance,R=t(null),x=t(null),k=v(n(!1),2),L=k[0],T=k[1];r((function(){if(g.isSupported)return x.current=_||new g,function(){x.current.abort(),x.current.cleanup(),clearTimeout(R.current)}}),[_]);var A=function(){R.current=setTimeout(P,u)},j=function(){clearTimeout(R.current),R.current=null},N=function(){try{T(!1);var e=x.current;e.removeEventListener("start",D),e.removeEventListener("end",P),e.removeEventListener("speechstart",I),e.removeEventListener("speechend",M),e.removeEventListener("result",U),e.removeEventListener("error",C),e.removeEventListener("nomatch",F),e.stop()}catch(e){w&&w(e)}},D=function(e){A(),d&&d(e)},P=function(e){j(),N(),m&&m(e)},I=function(e){j(),y&&y(e)},M=function(e){A(),b&&b(e)},U=function(e,t){N(),E&&E(e,t)},C=function(e){N(),w&&w(e)},F=function(e){O&&O(e)};return g.isSupported&&o(i(c)?c:e.createElement("div",{"data-testid":"__vocal-root__",role:"button","aria-label":s,tabIndex:l,style:h?null:p({width:24,height:24,cursor:L?null:"pointer"},f),className:h},e.createElement(S,{isActive:L,iconColor:"#aaa"})),p({},!L&&{onClick:function(){!function(){try{T(!0);var e=x.current;e.addEventListener("start",D),e.addEventListener("end",P),e.addEventListener("speechstart",I),e.addEventListener("speechend",M),e.addEventListener("result",U),e.addEventListener("error",C),e.addEventListener("nomatch",F),e.start()}catch(e){C(e)}}()}}))};O.propTypes={timeout:a.number,ariaLabel:a.string,tabIndex:a.number,style:a.object,className:a.string,onStart:a.func,onEnd:a.func,onSpeechStart:a.func,onSpeechEnd:a.func,onResult:a.func,onError:a.func,onNoMatch:a.func},O.defaultProps={timeout:3e3,ariaLabel:"speech",tabIndex:-1,style:null,className:null,onStart:null,onEnd:null,onSpeechStart:null,onSpeechEnd:null,onResult:null,onError:null,onNoMatch:null};export default O; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9AdW50ZW1wcy91c2VyLXBlcm1pc3Npb25zLXV0aWxzL2Rpc3QvaW5kZXguZXMuanMiLCIuLi9zcmMvU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmpzIiwiLi4vc3JjL01pY3JvcGhvbmVJY29uLmpzIiwiLi4vc3JjL1ZvY2FsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGUoZSxyLHQsbixhLG8saSl7dHJ5e3ZhciB1PWVbb10oaSksYz11LnZhbHVlfWNhdGNoKGUpe3JldHVybiB2b2lkIHQoZSl9dS5kb25lP3IoYyk6UHJvbWlzZS5yZXNvbHZlKGMpLnRoZW4obixhKX1mdW5jdGlvbiByKHIpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihhLG8pe3ZhciBpPXIuYXBwbHkodCxuKTtmdW5jdGlvbiB1KHIpe2UoaSxhLG8sdSxjLFwibmV4dFwiLHIpfWZ1bmN0aW9uIGMocil7ZShpLGEsbyx1LGMsXCJ0aHJvd1wiLHIpfXUodm9pZCAwKX0pKX19ZnVuY3Rpb24gdChlLHIpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxyKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgU3ltYm9sfHwhKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpKXJldHVybjt2YXIgdD1bXSxuPSEwLGE9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgaSx1PWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0oaT11Lm5leHQoKSkuZG9uZSkmJih0LnB1c2goaS52YWx1ZSksIXJ8fHQubGVuZ3RoIT09cik7bj0hMCk7fWNhdGNoKGUpe2E9ITAsbz1lfWZpbmFsbHl7dHJ5e258fG51bGw9PXUucmV0dXJufHx1LnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyBvfX1yZXR1cm4gdH0oZSxyKXx8ZnVuY3Rpb24oZSxyKXtpZighZSlyZXR1cm47aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG4oZSxyKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7XCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSk7aWYoXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKGUpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbihlLHIpfShlLHIpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gbihlLHIpeyhudWxsPT1yfHxyPmUubGVuZ3RoKSYmKHI9ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLG49bmV3IEFycmF5KHIpO3Q8cjt0Kyspblt0XT1lW3RdO3JldHVybiBufXZhciBhPWZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZSh0KXtyZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdChcInJldHVyblwiLG5ldyBQcm9taXNlKGZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZShyLG4pe3ZhciBhLG87cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihuYXZpZ2F0b3IucGVybWlzc2lvbnMpe2UubmV4dD00O2JyZWFrfW4obmV3IERPTUV4Y2VwdGlvbihcIk5PVF9GT1VORF9FUlJcIixcIk5vdEZvdW5kRXJyb3JcIikpLGUubmV4dD0yMjticmVhaztjYXNlIDQ6cmV0dXJuIGUucHJldj00LGUubmV4dD03LG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeSh7bmFtZTp0fSk7Y2FzZSA3OmE9ZS5zZW50LGUudDA9YS5zdGF0ZSxlLm5leHQ9XCJkZW5pZWRcIj09PWUudDA/MTE6XCJwcm9tcHRcIj09PWUudDA/MTM6MTY7YnJlYWs7Y2FzZSAxMTpyZXR1cm4gbihuZXcgRE9NRXhjZXB0aW9uKFwiTk9UX0FMTE9XRURfRVJSXCIsXCJOb3RBbGxvd2VkRXJyb3JcIikpLGUuYWJydXB0KFwiYnJlYWtcIiwxNyk7Y2FzZSAxMzpyZXR1cm4gbz1mdW5jdGlvbiBlKHQpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLGUpLFwiZGVuaWVkXCI9PT10LnRhcmdldC5zdGF0ZT9uKG5ldyBET01FeGNlcHRpb24oXCJOT1RfQUxMT1dFRF9FUlJcIixcIk5vdEFsbG93ZWRFcnJvclwiKSk6cih0LnRhcmdldC5zdGF0ZSl9LGEuYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLG8pLGUuYWJydXB0KFwiYnJlYWtcIiwxNyk7Y2FzZSAxNjpyKGEuc3RhdGUpO2Nhc2UgMTc6ZS5uZXh0PTIyO2JyZWFrO2Nhc2UgMTk6ZS5wcmV2PTE5LGUudDE9ZS5jYXRjaCg0KSxuKGUudDEpO2Nhc2UgMjI6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsbnVsbCxbWzQsMTldXSl9KSkpO3JldHVybiBmdW5jdGlvbihyLHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpKTtjYXNlIDE6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUpfSkpKTtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxvPWZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZShuLG8pe3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsbmV3IFByb21pc2UoZnVuY3Rpb24oKXt2YXIgZT1yKHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKChmdW5jdGlvbiBlKHIsaSl7dmFyIHUsYyxzO3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYobmF2aWdhdG9yLm1lZGlhRGV2aWNlcyl7ZS5uZXh0PTQ7YnJlYWt9aShuZXcgRE9NRXhjZXB0aW9uKFwiTk9UX0ZPVU5EX0VSUlwiLFwiTm90Rm91bmRFcnJvclwiKSksZS5uZXh0PTI0O2JyZWFrO2Nhc2UgNDpyZXR1cm4gZS5wcmV2PTQsZS50MD1Qcm9taXNlLGUubmV4dD04LGEobik7Y2FzZSA4OnJldHVybiBlLnQxPWUuc2VudCxlLm5leHQ9MTEsbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEobyk7Y2FzZSAxMTpyZXR1cm4gZS50Mj1lLnNlbnQsZS50Mz1bZS50MSxlLnQyXSxlLm5leHQ9MTUsZS50MC5hbGwuY2FsbChlLnQwLGUudDMpO2Nhc2UgMTU6dT1lLnNlbnQsYz10KHUsMikscz1jWzFdLHIocyksZS5uZXh0PTI0O2JyZWFrO2Nhc2UgMjE6ZS5wcmV2PTIxLGUudDQ9ZS5jYXRjaCg0KSxpKGUudDQpO2Nhc2UgMjQ6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsbnVsbCxbWzQsMjFdXSl9KSkpO3JldHVybiBmdW5jdGlvbihyLHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpKTtjYXNlIDE6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUpfSkpKTtyZXR1cm4gZnVuY3Rpb24ocix0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO2V4cG9ydHthIGFzIGdldFBlcm1pc3Npb24sbyBhcyBnZXRVc2VyTWVkaWFTdHJlYW19O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndVpYTXVhbk1pTENKemIzVnlZMlZ6SWpwYklpNHVMM055WXk5blpYUlFaWEp0YVhOemFXOXVMbXB6SWl3aUxpNHZjM0pqTDJkbGRGVnpaWEpOWldScFlWTjBjbVZoYlM1cWN5SmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lwY2JpQXFJRkpsZEhWeWJuTWdZU0J3Y205dGFYTmxJSEpsYzI5c2RtVmtJSGRvWlc0Z2RHaGxJSEJsY20xcGMzTnBiMjRnYVhNZ1ozSmhiblJsWkNCaWVTQjBhR1VnZFhObGNseHVJQ29nUUhCaGNtRnRJSEJsY20xcGMzTnBiMjVPWVcxbElDQWdJQ0FnSUNBZ0lDQWdUbUZ0WlNCdlppQjBhR1VnY0dWeWJXbHpjMmx2Ymk0Z1FITmxaU0JvZEhSd2N6b3ZMM2N6WXk1bmFYUm9kV0l1YVc4dmNHVnliV2x6YzJsdmJuTXZJMlZ1ZFcxa1pXWXRjR1Z5YldsemMybHZibTVoYldWY2JpQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxmVnh1SUNvdlhHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCaGMzbHVZeUFvY0dWeWJXbHpjMmx2Yms1aGJXVXBJRDArSUh0Y2JseDBjbVYwZFhKdUlHNWxkeUJRY205dGFYTmxLR0Z6ZVc1aklDaHlaWE52YkhabExDQnlaV3BsWTNRcElEMCtJSHRjYmx4MFhIUnBaaUFvSVc1aGRtbG5ZWFJ2Y2k1d1pYSnRhWE56YVc5dWN5a2dlMXh1WEhSY2RGeDBjbVZxWldOMEtHNWxkeUJFVDAxRmVHTmxjSFJwYjI0b0owNVBWRjlHVDFWT1JGOUZVbEluTENBblRtOTBSbTkxYm1SRmNuSnZjaWNwS1Z4dVhIUmNkSDBnWld4elpTQjdYRzVjZEZ4MFhIUjBjbmtnZTF4dVhIUmNkRngwWEhSamIyNXpkQ0J3WlhKdGFYTnphVzl1VTNSaGRIVnpJRDBnWVhkaGFYUWdibUYyYVdkaGRHOXlMbkJsY20xcGMzTnBiMjV6TG5GMVpYSjVLSHNnYm1GdFpUb2djR1Z5YldsemMybHZiazVoYldVZ2ZTbGNibHgwWEhSY2RGeDBjM2RwZEdOb0lDaHdaWEp0YVhOemFXOXVVM1JoZEhWekxuTjBZWFJsS1NCN1hHNWNkRngwWEhSY2RGeDBZMkZ6WlNBblpHVnVhV1ZrSnpwY2JseDBYSFJjZEZ4MFhIUmNkSEpsYW1WamRDaHVaWGNnUkU5TlJYaGpaWEIwYVc5dUtDZE9UMVJmUVV4TVQxZEZSRjlGVWxJbkxDQW5UbTkwUVd4c2IzZGxaRVZ5Y205eUp5a3BYRzVjZEZ4MFhIUmNkRngwWEhSaWNtVmhhMXh1WEhSY2RGeDBYSFJjZEdOaGMyVWdKM0J5YjIxd2RDYzZYRzVjZEZ4MFhIUmNkRngwWEhSamIyNXpkQ0J2YmtOb1lXNW5aU0E5SUNobGRtVnVkQ2tnUFQ0Z2UxeHVYSFJjZEZ4MFhIUmNkRngwWEhSd1pYSnRhWE56YVc5dVUzUmhkSFZ6TG5KbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhJb0oyTm9ZVzVuWlNjc0lHOXVRMmhoYm1kbEtWeHVYSFJjZEZ4MFhIUmNkRngwWEhScFppQW9aWFpsYm5RdWRHRnlaMlYwTG5OMFlYUmxJRDA5UFNBblpHVnVhV1ZrSnlrZ2UxeHVYSFJjZEZ4MFhIUmNkRngwWEhSY2RISmxhbVZqZENodVpYY2dSRTlOUlhoalpYQjBhVzl1S0NkT1QxUmZRVXhNVDFkRlJGOUZVbEluTENBblRtOTBRV3hzYjNkbFpFVnljbTl5SnlrcFhHNWNkRngwWEhSY2RGeDBYSFJjZEgwZ1pXeHpaU0I3WEc1Y2RGeDBYSFJjZEZ4MFhIUmNkRngwY21WemIyeDJaU2hsZG1WdWRDNTBZWEpuWlhRdWMzUmhkR1VwWEc1Y2RGeDBYSFJjZEZ4MFhIUmNkSDFjYmx4MFhIUmNkRngwWEhSY2RIMWNibHgwWEhSY2RGeDBYSFJjZEhCbGNtMXBjM05wYjI1VGRHRjBkWE11WVdSa1JYWmxiblJNYVhOMFpXNWxjaWduWTJoaGJtZGxKeXdnYjI1RGFHRnVaMlVwWEc1Y2RGeDBYSFJjZEZ4MFhIUmljbVZoYTF4dVhIUmNkRngwWEhSY2RHUmxabUYxYkhRNlhHNWNkRngwWEhSY2RGeDBYSFJ5WlhOdmJIWmxLSEJsY20xcGMzTnBiMjVUZEdGMGRYTXVjM1JoZEdVcFhHNWNkRngwWEhSY2RIMWNibHgwWEhSY2RIMGdZMkYwWTJnZ0tHVnljbTl5S1NCN1hHNWNkRngwWEhSY2RISmxhbVZqZENobGNuSnZjaWxjYmx4MFhIUmNkSDFjYmx4MFhIUjlYRzVjZEgwcFhHNTlYRzRpTENKcGJYQnZjblFnWjJWMFVHVnliV2x6YzJsdmJpQm1jbTl0SUNjdUwyZGxkRkJsY20xcGMzTnBiMjRuWEc1Y2JpOHFLbHh1SUNvZ1VtVjBkWEp1Y3lCaElIQnliMjFwYzJVZ2NtVnpiMngyWldRZ2QyaGxiaUIwYUdVZ2JXVmthV0VnYVhNZ1lYVjBhRzl5YVhwbFpDQmhibVFnZEdobElITjBjbVZoYlNCcGN5QnlaWFJ5YVdWMlpXUmNiaUFxSUVCd1lYSmhiU0J3WlhKdGFYTnphVzl1VG1GdFpTQWdJQ0FnSUNBZ0lDQWdJRTVoYldVZ2IyWWdkR2hsSUhCbGNtMXBjM05wYjI0dUlFQnpaV1VnYUhSMGNITTZMeTkzTTJNdVoybDBhSFZpTG1sdkwzQmxjbTFwYzNOcGIyNXpMeU5sYm5WdFpHVm1MWEJsY20xcGMzTnBiMjV1WVcxbFhHNGdLaUJBY0dGeVlXMGdiV1ZrYVdGVGRISmxZVzFEYjI1emRISmhhVzUwY3lBZ0lDQkRiMjV6ZEhKaGFXNTBjeUJ2WW1wbFkzUXVJRUJ6WldVZ2FIUjBjSE02THk5a1pYWmxiRzl3WlhJdWJXOTZhV3hzWVM1dmNtY3ZaVzR0VlZNdlpHOWpjeTlYWldJdlFWQkpMMDFsWkdsaFUzUnlaV0Z0UTI5dWMzUnlZV2x1ZEhOY2JpQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxmVnh1SUNvdlhHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCaGMzbHVZeUFvY0dWeWJXbHpjMmx2Yms1aGJXVXNJRzFsWkdsaFUzUnlaV0Z0UTI5dWMzUnlZV2x1ZEhNcElEMCtJSHRjYmx4MGNtVjBkWEp1SUc1bGR5QlFjbTl0YVhObEtHRnplVzVqSUNoeVpYTnZiSFpsTENCeVpXcGxZM1FwSUQwK0lIdGNibHgwWEhScFppQW9JVzVoZG1sbllYUnZjaTV0WldScFlVUmxkbWxqWlhNcElIdGNibHgwWEhSY2RISmxhbVZqZENodVpYY2dSRTlOUlhoalpYQjBhVzl1S0NkT1QxUmZSazlWVGtSZlJWSlNKeXdnSjA1dmRFWnZkVzVrUlhKeWIzSW5LU2xjYmx4MFhIUjlJR1ZzYzJVZ2UxeHVYSFJjZEZ4MGRISjVJSHRjYmx4MFhIUmNkRngwWTI5dWMzUWdXeXdnYzNSeVpXRnRYU0E5SUdGM1lXbDBJRkJ5YjIxcGMyVXVZV3hzS0Z0Y2JseDBYSFJjZEZ4MFhIUmhkMkZwZENCblpYUlFaWEp0YVhOemFXOXVLSEJsY20xcGMzTnBiMjVPWVcxbEtTeGNibHgwWEhSY2RGeDBYSFJoZDJGcGRDQnVZWFpwWjJGMGIzSXViV1ZrYVdGRVpYWnBZMlZ6TG1kbGRGVnpaWEpOWldScFlTaHRaV1JwWVZOMGNtVmhiVU52Ym5OMGNtRnBiblJ6S1N4Y2JseDBYSFJjZEZ4MFhTbGNibHgwWEhSY2RGeDBjbVZ6YjJ4MlpTaHpkSEpsWVcwcFhHNWNkRngwWEhSOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dVhIUmNkRngwWEhSeVpXcGxZM1FvWlhKeWIzSXBYRzVjZEZ4MFhIUjlYRzVjZEZ4MGZWeHVYSFI5S1Z4dWZWeHVJbDBzSW01aGJXVnpJanBiSW5CbGNtMXBjM05wYjI1T1lXMWxJaXdpVUhKdmJXbHpaU0lzSW5KbGMyOXNkbVVpTENKeVpXcGxZM1FpTENKdVlYWnBaMkYwYjNJaUxDSndaWEp0YVhOemFXOXVjeUlzSWtSUFRVVjRZMlZ3ZEdsdmJpSXNJbkYxWlhKNUlpd2libUZ0WlNJc0luQmxjbTFwYzNOcGIyNVRkR0YwZFhNaUxDSnpkR0YwWlNJc0ltOXVRMmhoYm1kbElpd2laWFpsYm5RaUxDSnlaVzF2ZG1WRmRtVnVkRXhwYzNSbGJtVnlJaXdpZEdGeVoyVjBJaXdpWVdSa1JYWmxiblJNYVhOMFpXNWxjaUlzSW0xbFpHbGhVM1J5WldGdFEyOXVjM1J5WVdsdWRITWlMQ0p0WldScFlVUmxkbWxqWlhNaUxDSm5aWFJRWlhKdGFYTnphVzl1SWl3aVoyVjBWWE5sY2sxbFpHbGhJaXdpWVd4c0lpd2ljM1J5WldGdElsMHNJbTFoY0hCcGJtZHpJam9pYlhkRFFVdEJMR3RFUVVGbExGZEJRVTlCTERSSFFVTmtMRWxCUVVsRExHOUVRVUZSTEZkQlFVOURMRVZCUVZORExEaEdRVU0zUWtNc1ZVRkJWVU1zTkVKQlEyUkdMRVZCUVU4c1NVRkJTVWNzWVVGQllTeG5Ra0ZCYVVJc2EwVkJSMVJHTEZWQlFWVkRMRmxCUVZsRkxFMUJRVTBzUTBGQlJVTXNTMEZCVFZJc1YwRkJOMFJUTEdOQlEwVkJMRVZCUVdsQ1F5eGhRVU51UWl4dFFrRkhRU3d5UTBGR1NsQXNSVUZCVHl4SlFVRkpSeXhoUVVGaExHdENRVUZ0UWl4M1JFRkhja05MTEVWQlFWY3NVMEZCV0VFc1JVRkJXVU1zUjBGRGFrSklMRVZCUVdsQ1NTeHZRa0ZCYjBJc1UwRkJWVVlzUjBGRGNFSXNWMEZCZGtKRExFVkJRVTFGTEU5QlFVOUtMRTFCUTJoQ1VDeEZRVUZQTEVsQlFVbEhMR0ZCUVdFc2EwSkJRVzFDTEc5Q1FVVXpRMG9zUlVGQlVWVXNSVUZCVFVVc1QwRkJUMG9zVVVGSGRrSkVMRVZCUVdsQ1RTeHBRa0ZCYVVJc1UwRkJWVW9zWjBOQlJ6VkRWQ3hGUVVGUlR5eEZRVUZwUWtNc2FVVkJSek5DVUN3eVVVTjJRbGNzVjBGQlQwZ3NSVUZCWjBKblFpdzBSMEZET1VJc1NVRkJTV1lzYjBSQlFWRXNWMEZCVDBNc1JVRkJVME1zWjBkQlF6ZENReXhWUVVGVllTdzJRa0ZEWkdRc1JVRkJUeXhKUVVGSlJ5eGhRVUZoTEdkQ1FVRnBRaXc0UkVGSFprd3NhVUpCUTJ4Q2FVSXNSVUZCWTJ4Q0xIVkRRVU5rU1N4VlFVRlZZU3hoUVVGaFJTeGhRVUZoU0N3NFJFRkdWa2tzT0VOQlFYaENReXhQUVVsVWJrSXNSVUZCVVcxQ0xIRkVRVVZTYkVJaWZRPT1cbiIsImltcG9ydCB7IGdldFVzZXJNZWRpYVN0cmVhbSB9IGZyb20gJ0B1bnRlbXBzL3VzZXItcGVybWlzc2lvbnMtdXRpbHMnXG5cbmNsYXNzIFNwZWVjaFJlY29nbml0aW9uV3JhcHBlciB7XG5cdHN0YXRpYyBkZWZhdWx0T3B0aW9ucyA9IHtcblx0XHRsYW5nOiAnZnItRlInLFxuXHRcdGNvbnRpbnVvdXM6IGZhbHNlLFxuXHRcdGludGVyaW1SZXN1bHRzOiBmYWxzZSxcblx0XHRtYXhBbHRlcm5hdGl2ZXM6IDEsXG5cdH1cblxuXHRzdGF0aWMgZXZlbnRUeXBlcyA9IHtcblx0XHRBVURJT19FTkQ6ICdhdWRpb2VuZCcsXG5cdFx0QVVESU9fU1RBUlQ6ICdhdWRpb3N0YXJ0Jyxcblx0XHRFTkQ6ICdlbmQnLFxuXHRcdEVSUk9SOiAnZXJyb3InLFxuXHRcdE5PX01BVENIOiAnbm9tYXRjaCcsXG5cdFx0UkVTVUxUOiAncmVzdWx0Jyxcblx0XHRTT1VORF9FTkQ6ICdzb3VuZGVuZCcsXG5cdFx0U09VTkRfU1RBUlQ6ICdzb3VuZHN0YXJ0Jyxcblx0XHRTUEVFQ0hfRU5EOiAnc3BlZWNoZW5kJyxcblx0XHRTUEVFQ0hfU1RBUlQ6ICdzcGVlY2hzdGFydCcsXG5cdFx0U1RBUlQ6ICdzdGFydCcsXG5cdH1cblxuXHRzdGF0aWMgZ2V0IGlzU3VwcG9ydGVkKCkge1xuXHRcdHJldHVybiAoXG5cdFx0XHQhIXdpbmRvdy5TcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0ISF3aW5kb3cud2Via2l0U3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdCEhd2luZG93Lm1velNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHQhIXdpbmRvdy5tc1NwZWVjaFJlY29nbml0aW9uXG5cdFx0KVxuXHR9XG5cblx0c3RhdGljIHNldCBpc1N1cHBvcnRlZChfKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHNldCBpc1N1cHBvcnRlZCBkaXJlY3RseS4nKVxuXHR9XG5cblx0X2luc3RhbmNlID0gbnVsbFxuXHRfbGlzdGVuZXJzID0gbnVsbFxuXG5cdGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcblx0XHRjb25zdCBTcGVlY2hSZWNvZ25pdGlvbiA9XG5cdFx0XHR3aW5kb3cuU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHdpbmRvdy53ZWJraXRTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0d2luZG93Lm1velNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHR3aW5kb3cubXNTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0e31cblx0XHR0aGlzLl9pbnN0YW5jZSA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpXG5cdFx0dGhpcy5fbGlzdGVuZXJzID0ge31cblxuXHRcdE9iamVjdC5lbnRyaWVzKHsgLi4uU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmRlZmF1bHRPcHRpb25zLCAuLi4ob3B0aW9ucyB8fCB7fSkgfSkuZm9yRWFjaChcblx0XHRcdChba2V5LCB2YWx1ZV0pID0+ICh0aGlzLl9pbnN0YW5jZVtrZXldID0gdmFsdWUpXG5cdFx0KVxuXHR9XG5cblx0Z2V0IGluc3RhbmNlKCkge1xuXHRcdHJldHVybiB0aGlzLl9pbnN0YW5jZVxuXHR9XG5cblx0c2V0IGluc3RhbmNlKF8pIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3Qgc2V0IGluc3RhbmNlIGRpcmVjdGx5LicpXG5cdH1cblxuXHRhc3luYyBzdGFydCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0VXNlck1lZGlhU3RyZWFtKCdtaWNyb3Bob25lJywgeyBhdWRpbzogdHJ1ZSB9KVxuXHRcdFx0XHRpZiAoIXN0cmVhbSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJldHJpZXZlIHRoZSBzdHJlYW0gZnJvbSBtZWRpYSBkZXZpY2UnKVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuX2luc3RhbmNlLnN0YXJ0KClcblx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRcdGNvbnN0IGVycm9ySGFuZGxlciA9IHRoaXMuX2xpc3RlbmVycy5lcnJvclxuXHRcdFx0XHRpZiAoISFlcnJvckhhbmRsZXIpIHtcblx0XHRcdFx0XHRlcnJvckhhbmRsZXIoZXJyb3IpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0c3RvcCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dGhpcy5faW5zdGFuY2Uuc3RvcCgpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdGFib3J0KCkge1xuXHRcdGlmICghIXRoaXMuX2luc3RhbmNlKSB7XG5cdFx0XHR0aGlzLl9pbnN0YW5jZS5hYm9ydCgpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdGFkZEV2ZW50TGlzdGVuZXIodHlwZSwgY2FsbGJhY2spIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSAmJiB0aGlzLl9pbmNsdWRlc0V2ZW50VHlwZSh0eXBlKSkge1xuXHRcdFx0aWYgKCEhdGhpcy5fbGlzdGVuZXJzW3R5cGVdKSB7XG5cdFx0XHRcdHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlKVxuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBoYW5kbGVyID0gKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGxldCBhZGRpdGlvbmFsQXJncyA9IFtdXG5cdFx0XHRcdGlmICh0eXBlID09PSBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuZXZlbnRUeXBlcy5SRVNVTFQpIHtcblx0XHRcdFx0XHRpZiAoISFldmVudC5yZXN1bHRzICYmIGV2ZW50LnJlc3VsdHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0YWRkaXRpb25hbEFyZ3MucHVzaChldmVudC5yZXN1bHRzWzBdWzBdLnRyYW5zY3JpcHQpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0ISFjYWxsYmFjayAmJiBjYWxsYmFjay5hcHBseSh0aGlzLCBbLi4uYWRkaXRpb25hbEFyZ3MsIGV2ZW50XSlcblx0XHRcdH1cblx0XHRcdHRoaXMuX2luc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgKGUpID0+IGhhbmRsZXIoZSkpXG5cblx0XHRcdHRoaXMuX2xpc3RlbmVyc1t0eXBlXSA9IGhhbmRsZXJcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0cmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlKSB7XG5cdFx0Y29uc3QgaGFuZGxlciA9IHRoaXMuX2xpc3RlbmVyc1t0eXBlXVxuXHRcdHRoaXMuX2luc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgaGFuZGxlcilcblxuXHRcdGRlbGV0ZSB0aGlzLl9saXN0ZW5lcnNbdHlwZV1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRjbGVhbnVwKCkge1xuXHRcdHRoaXMuc3RvcCgpXG5cblx0XHRPYmplY3Qua2V5cyh0aGlzLl9saXN0ZW5lcnMpLmZvckVhY2goKGtleSkgPT4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGtleSkpXG5cdFx0dGhpcy5faW5zdGFuY2UgPSBudWxsXG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0X2luY2x1ZGVzRXZlbnRUeXBlID0gKGV2ZW50VHlwZSkgPT5cblx0XHRPYmplY3QudmFsdWVzKFNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5ldmVudFR5cGVzKS5maW5kKCh0eXBlKSA9PiB0eXBlID09PSBldmVudFR5cGUpXG59XG5cbmV4cG9ydCBkZWZhdWx0IFNwZWVjaFJlY29nbml0aW9uV3JhcHBlclxuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5jb25zdCBNaWNyb3Bob25lSWNvbiA9ICh7IGljb25Db2xvciA9ICdibGFjaycsIGFjdGl2ZUNvbG9yID0gJ3JlZCcsIGlzQWN0aXZlID0gZmFsc2UgfSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG5cdFx0XHQ8Zz5cblx0XHRcdFx0PHBhdGhcblx0XHRcdFx0XHRmaWxsPXtpY29uQ29sb3J9XG5cdFx0XHRcdFx0ZD1cIk0xMiAxNGMxLjY2IDAgMi45OS0xLjM0IDIuOTktM0wxNSA1YzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDV2NmMwIDEuNjYgMS4zNCAzIDMgM3ptNS4zLTNjMCAzLTIuNTQgNS4xLTUuMyA1LjFTNi43IDE0IDYuNyAxMUg1YzAgMy40MSAyLjcyIDYuMjMgNiA2LjcyVjIxaDJ2LTMuMjhjMy4yOC0uNDggNi0zLjMgNi02LjcyaC0xLjd6XCJcblx0XHRcdFx0Lz5cblx0XHRcdFx0e2lzQWN0aXZlICYmIDxjaXJjbGUgZmlsbD17YWN0aXZlQ29sb3J9IGN4PVwiMTZcIiBjeT1cIjRcIiByPVwiNFwiIC8+fVxuXHRcdFx0PC9nPlxuXHRcdDwvc3ZnPlxuXHQpXG59XG5cbmV4cG9ydCBkZWZhdWx0IE1pY3JvcGhvbmVJY29uXG4iLCJpbXBvcnQgUmVhY3QsIHsgY2xvbmVFbGVtZW50LCBpc1ZhbGlkRWxlbWVudCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG5cbmltcG9ydCBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIgZnJvbSAnLi9TcGVlY2hSZWNvZ25pdGlvbldyYXBwZXInXG5cbmltcG9ydCBNaWNyb3Bob25lSWNvbiBmcm9tICcuL01pY3JvcGhvbmVJY29uJ1xuXG5jb25zdCBWb2NhbCA9ICh7XG5cdGNoaWxkcmVuLFxuXHR0aW1lb3V0LFxuXHRhcmlhTGFiZWwsXG5cdHRhYkluZGV4LFxuXHRzdHlsZSxcblx0Y2xhc3NOYW1lLFxuXHRvblN0YXJ0LFxuXHRvbkVuZCxcblx0b25TcGVlY2hTdGFydCxcblx0b25TcGVlY2hFbmQsXG5cdG9uUmVzdWx0LFxuXHRvbkVycm9yLFxuXHRvbk5vTWF0Y2gsXG5cdF9fcmVjb2duaXRpb25JbnN0YW5jZSxcbn0pID0+IHtcblx0Y29uc3QgdGltZW91dFJlZiA9IHVzZVJlZihudWxsKVxuXHRjb25zdCByZWNvZ25pdGlvblJlZiA9IHVzZVJlZihudWxsKVxuXG5cdGNvbnN0IFtpc0xpc3RlbmluZywgc2V0SXNMaXN0ZW5pbmddID0gdXNlU3RhdGUoZmFsc2UpXG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmlzU3VwcG9ydGVkKSB7XG5cdFx0XHRyZWNvZ25pdGlvblJlZi5jdXJyZW50ID0gX19yZWNvZ25pdGlvbkluc3RhbmNlIHx8IG5ldyBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIoKVxuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0cmVjb2duaXRpb25SZWYuY3VycmVudC5hYm9ydCgpXG5cdFx0XHRcdHJlY29nbml0aW9uUmVmLmN1cnJlbnQuY2xlYW51cCgpXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpXG5cdFx0XHR9XG5cdFx0fVxuXHR9LCBbX19yZWNvZ25pdGlvbkluc3RhbmNlXSlcblxuXHRjb25zdCBzdGFydFRpbWVyID0gKCkgPT4ge1xuXHRcdHRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoX29uRW5kLCB0aW1lb3V0KVxuXHR9XG5cblx0Y29uc3Qgc3RvcFRpbWVyID0gKCkgPT4ge1xuXHRcdGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpXG5cdFx0dGltZW91dFJlZi5jdXJyZW50ID0gbnVsbFxuXHR9XG5cblx0Y29uc3Qgc3RhcnRSZWNvZ25pdGlvbiA9ICgpID0+IHtcblx0XHR0cnkge1xuXHRcdFx0c2V0SXNMaXN0ZW5pbmcodHJ1ZSlcblxuXHRcdFx0Y29uc3QgeyBjdXJyZW50OiByIH0gPSByZWNvZ25pdGlvblJlZlxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzdGFydCcsIF9vblN0YXJ0KVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdlbmQnLCBfb25FbmQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3NwZWVjaHN0YXJ0JywgX29uU3BlZWNoU3RhcnQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3NwZWVjaGVuZCcsIF9vblNwZWVjaEVuZClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcigncmVzdWx0JywgX29uUmVzdWx0KVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIF9vbkVycm9yKVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdub21hdGNoJywgX29uTm9NYXRjaClcblx0XHRcdHIuc3RhcnQoKVxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRfb25FcnJvcihlcnJvcilcblx0XHR9XG5cdH1cblxuXHRjb25zdCBzdG9wUmVjb2duaXRpb24gPSAoKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdHNldElzTGlzdGVuaW5nKGZhbHNlKVxuXG5cdFx0XHRjb25zdCB7IGN1cnJlbnQ6IHIgfSA9IHJlY29nbml0aW9uUmVmXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N0YXJ0JywgX29uU3RhcnQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2VuZCcsIF9vbkVuZClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3BlZWNoc3RhcnQnLCBfb25TcGVlY2hTdGFydClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3BlZWNoZW5kJywgX29uU3BlZWNoRW5kKVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXN1bHQnLCBfb25SZXN1bHQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgX29uRXJyb3IpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ25vbWF0Y2gnLCBfb25Ob01hdGNoKVxuXHRcdFx0ci5zdG9wKClcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0ISFvbkVycm9yICYmIG9uRXJyb3IoZXJyb3IpXG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgc3RhcnQgPSAoKSA9PiB7XG5cdFx0c3RhcnRUaW1lcigpXG5cdH1cblxuXHRjb25zdCBlbmQgPSAoKSA9PiB7XG5cdFx0c3RvcFRpbWVyKClcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXHR9XG5cblx0Y29uc3QgX29uQ2xpY2sgPSAoKSA9PiB7XG5cdFx0c3RhcnRSZWNvZ25pdGlvbigpXG5cdH1cblxuXHRjb25zdCBfb25TdGFydCA9IChlKSA9PiB7XG5cdFx0c3RhcnQoKVxuXG5cdFx0ISFvblN0YXJ0ICYmIG9uU3RhcnQoZSlcblx0fVxuXG5cdGNvbnN0IF9vbkVuZCA9IChlKSA9PiB7XG5cdFx0ZW5kKClcblxuXHRcdCEhb25FbmQgJiYgb25FbmQoZSlcblx0fVxuXG5cdGNvbnN0IF9vblNwZWVjaFN0YXJ0ID0gKGUpID0+IHtcblx0XHRzdG9wVGltZXIoKVxuXG5cdFx0ISFvblNwZWVjaFN0YXJ0ICYmIG9uU3BlZWNoU3RhcnQoZSlcblx0fVxuXG5cdGNvbnN0IF9vblNwZWVjaEVuZCA9IChlKSA9PiB7XG5cdFx0c3RhcnRUaW1lcigpXG5cblx0XHQhIW9uU3BlZWNoRW5kICYmIG9uU3BlZWNoRW5kKGUpXG5cdH1cblxuXHRjb25zdCBfb25SZXN1bHQgPSAocmVzdWx0LCBldmVudCkgPT4ge1xuXHRcdHN0b3BSZWNvZ25pdGlvbigpXG5cblx0XHQhIW9uUmVzdWx0ICYmIG9uUmVzdWx0KHJlc3VsdCwgZXZlbnQpXG5cdH1cblxuXHRjb25zdCBfb25FcnJvciA9IChlcnJvcikgPT4ge1xuXHRcdHN0b3BSZWNvZ25pdGlvbigpXG5cblx0XHQhIW9uRXJyb3IgJiYgb25FcnJvcihlcnJvcilcblx0fVxuXG5cdGNvbnN0IF9vbk5vTWF0Y2ggPSAoZSkgPT4ge1xuXHRcdCEhb25Ob01hdGNoICYmIG9uTm9NYXRjaChlKVxuXHR9XG5cblx0Y29uc3QgX3JlbmRlckRlZmF1bHQgPSAoKSA9PiAoXG5cdFx0PGRpdlxuXHRcdFx0ZGF0YS10ZXN0aWQ9XCJfX3ZvY2FsLXJvb3RfX1wiXG5cdFx0XHRyb2xlPVwiYnV0dG9uXCJcblx0XHRcdGFyaWEtbGFiZWw9e2FyaWFMYWJlbH1cblx0XHRcdHRhYkluZGV4PXt0YWJJbmRleH1cblx0XHRcdHN0eWxlPXtjbGFzc05hbWUgPyBudWxsIDogeyB3aWR0aDogMjQsIGhlaWdodDogMjQsIGN1cnNvcjogIWlzTGlzdGVuaW5nID8gJ3BvaW50ZXInIDogbnVsbCwgLi4uc3R5bGUgfX1cblx0XHRcdGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuXHRcdD5cblx0XHRcdDxNaWNyb3Bob25lSWNvbiBpc0FjdGl2ZT17aXNMaXN0ZW5pbmd9IGljb25Db2xvcj1cIiNhYWFcIiAvPlxuXHRcdDwvZGl2PlxuXHQpXG5cblx0cmV0dXJuIChcblx0XHRTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuaXNTdXBwb3J0ZWQgJiZcblx0XHRjbG9uZUVsZW1lbnQoaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pID8gY2hpbGRyZW4gOiBfcmVuZGVyRGVmYXVsdCgpLCB7XG5cdFx0XHQuLi4oIWlzTGlzdGVuaW5nICYmIHsgb25DbGljazogX29uQ2xpY2sgfSksXG5cdFx0fSlcblx0KVxufVxuXG5Wb2NhbC5wcm9wVHlwZXMgPSB7XG5cdC8qKiBEZWZpbmVzIHRoZSB0aW1lIGluIG1zIHRvIHdhaXQgYmVmb3JlIGRpc2NhcmRpbmcgdGhlIHJlY29nbml0aW9uICovXG5cdHRpbWVvdXQ6IFByb3BUeXBlcy5udW1iZXIsXG5cdC8qKiBEZWZpbmVzIHRoZSBhMTF5IGxhYmVsIGZvciB0aGUgZGVmYXVsdCBidXR0b24gKi9cblx0YXJpYUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuXHQvKiogRGVmaW5lcyB0aGUgYTExeSB0YWIgaW5kZXggZm9yIHRoZSBkZWZhdWx0IGJ1dHRvbiAqL1xuXHR0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcblx0LyoqIERlZmluZXMgdGhlIHN0eWxlcyBvZiB0aGUgZGVmYXVsdCBlbGVtZW50IGlmIGNsYXNzTmFtZSBpcyBub3Qgc3BlY2lmaWVkICovXG5cdHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuXHQvKiogRGVmaW5lcyB0aGUgY2xhc3Mgb2YgdGhlIGRlZmF1bHQgZWxlbWVudCAqL1xuXHRjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSByZWNvZ25pdGlvbiBzdGFydHMgKi9cblx0b25TdGFydDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSByZWNvZ25pdGlvbiBlbmRzICovXG5cdG9uRW5kOiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHNwZWVjaCBzdGFydHMgKi9cblx0b25TcGVlY2hTdGFydDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBzcGVlY2ggZW5kcyAqL1xuXHRvblNwZWVjaEVuZDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIGEgcmVzdWx0IGlzIHJlY29nbml6ZWQgKi9cblx0b25SZXN1bHQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMgKi9cblx0b25FcnJvcjogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIG5vIHJlc3VsdCBjYW4gYmUgcmVjb2duaXplZCAqL1xuXHRvbk5vTWF0Y2g6IFByb3BUeXBlcy5mdW5jLFxufVxuXG5Wb2NhbC5kZWZhdWx0UHJvcHMgPSB7XG5cdHRpbWVvdXQ6IDMwMDAsXG5cdGFyaWFMYWJlbDogJ3NwZWVjaCcsXG5cdHRhYkluZGV4OiAtMSxcblx0c3R5bGU6IG51bGwsXG5cdGNsYXNzTmFtZTogbnVsbCxcblx0b25TdGFydDogbnVsbCxcblx0b25FbmQ6IG51bGwsXG5cdG9uU3BlZWNoU3RhcnQ6IG51bGwsXG5cdG9uU3BlZWNoRW5kOiBudWxsLFxuXHRvblJlc3VsdDogbnVsbCxcblx0b25FcnJvcjogbnVsbCxcblx0b25Ob01hdGNoOiBudWxsLFxufVxuXG5leHBvcnQgZGVmYXVsdCBWb2NhbFxuIl0sIm5hbWVzIjpbImUiLCJyIiwidCIsIm4iLCJhIiwibyIsImkiLCJ1IiwiYyIsInZhbHVlIiwiZG9uZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsInRoaXMiLCJhcmd1bWVudHMiLCJhcHBseSIsIkFycmF5IiwiaXNBcnJheSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiT2JqZWN0IiwibmV4dCIsInB1c2giLCJsZW5ndGgiLCJyZXR1cm4iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiVHlwZUVycm9yIiwicmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIndyYXAiLCJwcmV2IiwiYWJydXB0IiwibmF2aWdhdG9yIiwicGVybWlzc2lvbnMiLCJET01FeGNlcHRpb24iLCJxdWVyeSIsInNlbnQiLCJ0MCIsInN0YXRlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInRhcmdldCIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0MSIsImNhdGNoIiwic3RvcCIsInMiLCJtZWRpYURldmljZXMiLCJnZXRVc2VyTWVkaWEiLCJ0MiIsInQzIiwiYWxsIiwidDQiLCJTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIiLCJvcHRpb25zIiwiZXZlbnRUeXBlIiwidmFsdWVzIiwiZXZlbnRUeXBlcyIsImZpbmQiLCJ0eXBlIiwiU3BlZWNoUmVjb2duaXRpb24iLCJ3aW5kb3ciLCJ3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbiIsIm1velNwZWVjaFJlY29nbml0aW9uIiwibXNTcGVlY2hSZWNvZ25pdGlvbiIsIl9pbnN0YW5jZSIsIl9saXN0ZW5lcnMiLCJlbnRyaWVzIiwiZGVmYXVsdE9wdGlvbnMiLCJmb3JFYWNoIiwia2V5IiwiX3RoaXMiLCJfIiwiRXJyb3IiLCJnZXRVc2VyTWVkaWFTdHJlYW0iLCJhdWRpbyIsInN0YXJ0IiwiZXJyb3JIYW5kbGVyIiwiZXJyb3IiLCJhYm9ydCIsImNhbGxiYWNrIiwiX2luY2x1ZGVzRXZlbnRUeXBlIiwiaGFuZGxlciIsImV2ZW50IiwiYWRkaXRpb25hbEFyZ3MiLCJSRVNVTFQiLCJyZXN1bHRzIiwidHJhbnNjcmlwdCIsIl90aGlzMiIsImtleXMiLCJfdGhpczMiLCJsYW5nIiwiY29udGludW91cyIsImludGVyaW1SZXN1bHRzIiwibWF4QWx0ZXJuYXRpdmVzIiwiQVVESU9fRU5EIiwiQVVESU9fU1RBUlQiLCJFTkQiLCJFUlJPUiIsIk5PX01BVENIIiwiU09VTkRfRU5EIiwiU09VTkRfU1RBUlQiLCJTUEVFQ0hfRU5EIiwiU1BFRUNIX1NUQVJUIiwiU1RBUlQiLCJNaWNyb3Bob25lSWNvbiIsImljb25Db2xvciIsImFjdGl2ZUNvbG9yIiwiaXNBY3RpdmUiLCJSZWFjdCIsInhtbG5zIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwiZmlsbCIsImQiLCJjeCIsImN5IiwiVm9jYWwiLCJjaGlsZHJlbiIsInRpbWVvdXQiLCJhcmlhTGFiZWwiLCJ0YWJJbmRleCIsInN0eWxlIiwiY2xhc3NOYW1lIiwib25TdGFydCIsIm9uRW5kIiwib25TcGVlY2hTdGFydCIsIm9uU3BlZWNoRW5kIiwib25SZXN1bHQiLCJvbkVycm9yIiwib25Ob01hdGNoIiwiX19yZWNvZ25pdGlvbkluc3RhbmNlIiwidGltZW91dFJlZiIsInVzZVJlZiIsInJlY29nbml0aW9uUmVmIiwidXNlU3RhdGUiLCJpc0xpc3RlbmluZyIsInNldElzTGlzdGVuaW5nIiwidXNlRWZmZWN0IiwiaXNTdXBwb3J0ZWQiLCJjdXJyZW50IiwiY2xlYW51cCIsImNsZWFyVGltZW91dCIsInN0YXJ0VGltZXIiLCJzZXRUaW1lb3V0IiwiX29uRW5kIiwic3RvcFRpbWVyIiwic3RvcFJlY29nbml0aW9uIiwiX29uU3RhcnQiLCJfb25TcGVlY2hTdGFydCIsIl9vblNwZWVjaEVuZCIsIl9vblJlc3VsdCIsIl9vbkVycm9yIiwiX29uTm9NYXRjaCIsInJlc3VsdCIsImNsb25lRWxlbWVudCIsImlzVmFsaWRFbGVtZW50Iiwicm9sZSIsImN1cnNvciIsIm9uQ2xpY2siLCJzdGFydFJlY29nbml0aW9uIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwibnVtYmVyIiwic3RyaW5nIiwib2JqZWN0IiwiZnVuYyIsImRlZmF1bHRQcm9wcyJdLCJtYXBwaW5ncyI6InFsRUFBQSxTQUFTQSxFQUFFQSxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFQyxHQUFHLElBQUksSUFBSUMsRUFBRVAsRUFBRUssR0FBR0MsR0FBR0UsRUFBRUQsRUFBRUUsTUFBTSxNQUFNVCxHQUFHLFlBQVlFLEVBQUVGLEdBQUdPLEVBQUVHLEtBQUtULEVBQUVPLEdBQUdHLFFBQVFDLFFBQVFKLEdBQUdLLEtBQUtWLEVBQUVDLEdBQUcsU0FBU0gsRUFBRUEsR0FBRyxPQUFPLFdBQVcsSUFBSUMsRUFBRVksS0FBS1gsRUFBRVksVUFBVSxPQUFPLElBQUlKLGtCQUFrQlAsRUFBRUMsR0FBRyxJQUFJQyxFQUFFTCxFQUFFZSxNQUFNZCxFQUFFQyxHQUFHLFNBQVNJLEVBQUVOLEdBQUdELEVBQUVNLEVBQUVGLEVBQUVDLEVBQUVFLEVBQUVDLEVBQUUsT0FBT1AsR0FBRyxTQUFTTyxFQUFFUCxHQUFHRCxFQUFFTSxFQUFFRixFQUFFQyxFQUFFRSxFQUFFQyxFQUFFLFFBQVFQLEdBQUdNLE9BQUUsT0FBWSxTQUFTTCxFQUFFRixFQUFF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 | ||
import e,{useRef as t,useState as n,useEffect as r,cloneElement as i,isValidElement as o}from"react";import a from"prop-types";function c(e,t,n,r,i,o,a){try{var c=e[o](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,i)}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t,n){return t&&u(e.prototype,t),n&&u(e,n),e}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,i=!1,o=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(i)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function d(e,t,n,r,i,o,a){try{var c=e[o](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,i)}function m(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){d(o,r,i,a,c,"next",e)}function c(e){d(o,r,i,a,c,"throw",e)}a(void 0)}))}}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,i=!1,o=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(i)throw o}}return n}}(e,t)||function(e,t){if(e){if("string"==typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?b(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var w=function(){var e=m(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=m(regeneratorRuntime.mark((function e(n,r){var i,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.permissions){e.next=4;break}r(new DOMException("Permissions not supported","NOT_FOUND_ERR")),e.next=16;break;case 4:return e.prev=4,e.next=7,navigator.permissions.query({name:t});case 7:i=e.sent,o=function e(t){i.removeEventListener("change",e),E(t.target.state,n,r)},i.addEventListener("change",o),E(i.state,n,r),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(4),r(e.t0);case 16:case"end":return e.stop()}}),e,null,[[4,13]])})));return function(t,n){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),E=function(e,t,n){switch(e){case"denied":n(new DOMException("Permission denied","NOT_ALLOWED_ERR"));break;default:t(e)}},g=function(){var e=m(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=m(regeneratorRuntime.mark((function e(r,i){var o,a,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.mediaDevices){e.next=4;break}i(new DOMException("MediaDevices not supported","NOT_FOUND_ERR")),e.next=24;break;case 4:return e.prev=4,e.t0=Promise,e.next=8,w(t);case 8:return e.t1=e.sent,e.next=11,navigator.mediaDevices.getUserMedia(n);case 11:return e.t2=e.sent,e.t3=[e.t1,e.t2],e.next=15,e.t0.all.call(e.t0,e.t3);case 15:o=e.sent,a=y(o,2),c=a[1],r(c),e.next=24;break;case 21:e.prev=21,e.t4=e.catch(4),i(e.t4);case 24:case"end":return e.stop()}}),e,null,[[4,21]])})));return function(t,n){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),S=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),l(this,"_instance",null),l(this,"_listeners",null),l(this,"_includesEventType",(function(t){return Object.values(e.eventTypes).find((function(e){return e===t}))}));var r=window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.msSpeechRecognition||{};this._instance=new r,this._listeners={},Object.entries(p(p({},e.defaultOptions),t||{})).forEach((function(e){var t=v(e,2),r=t[0],i=t[1];return n._instance[r]=i}))}var t,n;return s(e,null,[{key:"isSupported",get:function(){return!!(window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.msSpeechRecognition)},set:function(e){throw new Error("You cannot set isSupported directly.")}}]),s(e,[{key:"start",value:(t=regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._instance){e.next=14;break}return e.prev=1,e.next=4,g("microphone",{audio:!0});case 4:if(e.sent){e.next=7;break}throw new Error("Unable to retrieve the stream from media device");case 7:this._instance.start(),e.next=14;break;case 10:e.prev=10,e.t0=e.catch(1),(t=this._listeners.error)&&t(e.t0);case 14:return e.abrupt("return",this);case 15:case"end":return e.stop()}}),e,this,[[1,10]])})),n=function(){var e=this,n=arguments;return new Promise((function(r,i){var o=t.apply(e,n);function a(e){c(o,r,i,a,u,"next",e)}function u(e){c(o,r,i,a,u,"throw",e)}a(void 0)}))},function(){return n.apply(this,arguments)})},{key:"stop",value:function(){return this._instance&&this._instance.stop(),this}},{key:"abort",value:function(){return this._instance&&this._instance.abort(),this}},{key:"addEventListener",value:function(t,n){var r=this;if(this._instance&&this._includesEventType(t)){this._listeners[t]&&this.removeEventListener(t);var i=function(i){var o=[];t===e.eventTypes.RESULT&&i.results&&i.results.length>0&&o.push(i.results[0][0].transcript),n&&n.apply(r,[].concat(o,[i]))};this._instance.addEventListener(t,(function(e){return i(e)})),this._listeners[t]=i}return this}},{key:"removeEventListener",value:function(e){var t=this._listeners[e];return this._instance.removeEventListener(e,t),delete this._listeners[e],this}},{key:"cleanup",value:function(){var e=this;return this.stop(),Object.keys(this._listeners).forEach((function(t){return e.removeEventListener(t)})),this._instance=null,this}},{key:"instance",get:function(){return this._instance},set:function(e){throw new Error("You cannot set instance directly.")}}]),e}();l(S,"defaultOptions",{lang:"fr-FR",continuous:!1,interimResults:!1,maxAlternatives:1}),l(S,"eventTypes",{AUDIO_END:"audioend",AUDIO_START:"audiostart",END:"end",ERROR:"error",NO_MATCH:"nomatch",RESULT:"result",SOUND_END:"soundend",SOUND_START:"soundstart",SPEECH_END:"speechend",SPEECH_START:"speechstart",START:"start"});var O=function(t){var n=t.iconColor,r=void 0===n?"black":n,i=t.activeColor,o=void 0===i?"red":i,a=t.isActive,c=void 0!==a&&a;return e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 24 24"},e.createElement("g",null,e.createElement("path",{fill:r,d:"M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"}),c&&e.createElement("circle",{fill:o,cx:"16",cy:"4",r:"4"})))},_=function(a){var c=a.children,u=a.timeout,s=a.ariaLabel,l=a.tabIndex,f=a.style,h=a.className,d=a.onStart,m=a.onEnd,y=a.onSpeechStart,b=a.onSpeechEnd,w=a.onResult,E=a.onError,g=a.onNoMatch,_=a.__recognitionInstance,R=t(null),x=t(null),k=v(n(!1),2),L=k[0],T=k[1];r((function(){if(S.isSupported)return x.current=_||new S,function(){x.current.abort(),x.current.cleanup(),clearTimeout(R.current)}}),[_]);var j=function(){R.current=setTimeout(N,u)},A=function(){clearTimeout(R.current),R.current=null},P=function(){try{T(!1);var e=x.current;e.removeEventListener("start",D),e.removeEventListener("end",N),e.removeEventListener("speechstart",I),e.removeEventListener("speechend",M),e.removeEventListener("result",U),e.removeEventListener("error",C),e.removeEventListener("nomatch",z),e.stop()}catch(e){E&&E(e)}},D=function(e){j(),d&&d(e)},N=function(e){A(),P(),m&&m(e)},I=function(e){A(),y&&y(e)},M=function(e){j(),b&&b(e)},U=function(e,t){P(),w&&w(e,t)},C=function(e){P(),E&&E(e)},z=function(e){g&&g(e)};return S.isSupported&&i(o(c)?c:e.createElement("div",{"data-testid":"__vocal-root__",role:"button","aria-label":s,tabIndex:l,style:h?null:p({width:24,height:24,cursor:L?null:"pointer"},f),className:h},e.createElement(O,{isActive:L,iconColor:"#aaa"})),p({},!L&&{onClick:function(){!function(){try{T(!0);var e=x.current;e.addEventListener("start",D),e.addEventListener("end",N),e.addEventListener("speechstart",I),e.addEventListener("speechend",M),e.addEventListener("result",U),e.addEventListener("error",C),e.addEventListener("nomatch",z),e.start()}catch(e){C(e)}}()}}))};_.propTypes={timeout:a.number,ariaLabel:a.string,tabIndex:a.number,style:a.object,className:a.string,onStart:a.func,onEnd:a.func,onSpeechStart:a.func,onSpeechEnd:a.func,onResult:a.func,onError:a.func,onNoMatch:a.func},_.defaultProps={timeout:3e3,ariaLabel:"speech",tabIndex:-1,style:null,className:null,onStart:null,onEnd:null,onSpeechStart:null,onSpeechEnd:null,onResult:null,onError:null,onNoMatch:null};export default _; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9AdW50ZW1wcy91c2VyLXBlcm1pc3Npb25zLXV0aWxzL2Rpc3QvaW5kZXguZXMuanMiLCIuLi9zcmMvU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmpzIiwiLi4vc3JjL01pY3JvcGhvbmVJY29uLmpzIiwiLi4vc3JjL1ZvY2FsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGUoZSxyLHQsbixhLGksbyl7dHJ5e3ZhciB1PWVbaV0obyksYz11LnZhbHVlfWNhdGNoKGUpe3JldHVybiB2b2lkIHQoZSl9dS5kb25lP3IoYyk6UHJvbWlzZS5yZXNvbHZlKGMpLnRoZW4obixhKX1mdW5jdGlvbiByKHIpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihhLGkpe3ZhciBvPXIuYXBwbHkodCxuKTtmdW5jdGlvbiB1KHIpe2UobyxhLGksdSxjLFwibmV4dFwiLHIpfWZ1bmN0aW9uIGMocil7ZShvLGEsaSx1LGMsXCJ0aHJvd1wiLHIpfXUodm9pZCAwKX0pKX19ZnVuY3Rpb24gdChlLHIpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxyKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgU3ltYm9sfHwhKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpKXJldHVybjt2YXIgdD1bXSxuPSEwLGE9ITEsaT12b2lkIDA7dHJ5e2Zvcih2YXIgbyx1PWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0obz11Lm5leHQoKSkuZG9uZSkmJih0LnB1c2goby52YWx1ZSksIXJ8fHQubGVuZ3RoIT09cik7bj0hMCk7fWNhdGNoKGUpe2E9ITAsaT1lfWZpbmFsbHl7dHJ5e258fG51bGw9PXUucmV0dXJufHx1LnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyBpfX1yZXR1cm4gdH0oZSxyKXx8ZnVuY3Rpb24oZSxyKXtpZighZSlyZXR1cm47aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG4oZSxyKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7XCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSk7aWYoXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKGUpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbihlLHIpfShlLHIpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gbihlLHIpeyhudWxsPT1yfHxyPmUubGVuZ3RoKSYmKHI9ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLG49bmV3IEFycmF5KHIpO3Q8cjt0Kyspblt0XT1lW3RdO3JldHVybiBufXZhciBhPWZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZSh0KXtyZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdChcInJldHVyblwiLG5ldyBQcm9taXNlKGZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZShyLG4pe3ZhciBhLG87cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihuYXZpZ2F0b3IucGVybWlzc2lvbnMpe2UubmV4dD00O2JyZWFrfW4obmV3IERPTUV4Y2VwdGlvbihcIlBlcm1pc3Npb25zIG5vdCBzdXBwb3J0ZWRcIixcIk5PVF9GT1VORF9FUlJcIikpLGUubmV4dD0xNjticmVhaztjYXNlIDQ6cmV0dXJuIGUucHJldj00LGUubmV4dD03LG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeSh7bmFtZTp0fSk7Y2FzZSA3OmE9ZS5zZW50LG89ZnVuY3Rpb24gZSh0KXthLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIixlKSxpKHQudGFyZ2V0LnN0YXRlLHIsbil9LGEuYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLG8pLGkoYS5zdGF0ZSxyLG4pLGUubmV4dD0xNjticmVhaztjYXNlIDEzOmUucHJldj0xMyxlLnQwPWUuY2F0Y2goNCksbihlLnQwKTtjYXNlIDE2OmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlLG51bGwsW1s0LDEzXV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24ocix0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSk7Y2FzZSAxOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksaT1mdW5jdGlvbihlLHIsdCl7c3dpdGNoKGUpe2Nhc2VcImRlbmllZFwiOnQobmV3IERPTUV4Y2VwdGlvbihcIlBlcm1pc3Npb24gZGVuaWVkXCIsXCJOT1RfQUxMT1dFRF9FUlJcIikpO2JyZWFrO2RlZmF1bHQ6cihlKX19LG89ZnVuY3Rpb24oKXt2YXIgZT1yKHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKChmdW5jdGlvbiBlKG4saSl7cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoXCJyZXR1cm5cIixuZXcgUHJvbWlzZShmdW5jdGlvbigpe3ZhciBlPXIocmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoKGZ1bmN0aW9uIGUocixvKXt2YXIgdSxjLHM7cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihuYXZpZ2F0b3IubWVkaWFEZXZpY2VzKXtlLm5leHQ9NDticmVha31vKG5ldyBET01FeGNlcHRpb24oXCJNZWRpYURldmljZXMgbm90IHN1cHBvcnRlZFwiLFwiTk9UX0ZPVU5EX0VSUlwiKSksZS5uZXh0PTI0O2JyZWFrO2Nhc2UgNDpyZXR1cm4gZS5wcmV2PTQsZS50MD1Qcm9taXNlLGUubmV4dD04LGEobik7Y2FzZSA4OnJldHVybiBlLnQxPWUuc2VudCxlLm5leHQ9MTEsbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoaSk7Y2FzZSAxMTpyZXR1cm4gZS50Mj1lLnNlbnQsZS50Mz1bZS50MSxlLnQyXSxlLm5leHQ9MTUsZS50MC5hbGwuY2FsbChlLnQwLGUudDMpO2Nhc2UgMTU6dT1lLnNlbnQsYz10KHUsMikscz1jWzFdLHIocyksZS5uZXh0PTI0O2JyZWFrO2Nhc2UgMjE6ZS5wcmV2PTIxLGUudDQ9ZS5jYXRjaCg0KSxvKGUudDQpO2Nhc2UgMjQ6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsbnVsbCxbWzQsMjFdXSl9KSkpO3JldHVybiBmdW5jdGlvbihyLHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpKTtjYXNlIDE6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUpfSkpKTtyZXR1cm4gZnVuY3Rpb24ocix0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO2V4cG9ydHthIGFzIGdldFBlcm1pc3Npb24sbyBhcyBnZXRVc2VyTWVkaWFTdHJlYW19O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndVpYTXVhbk1pTENKemIzVnlZMlZ6SWpwYklpNHVMM055WXk5blpYUlFaWEp0YVhOemFXOXVMbXB6SWl3aUxpNHZjM0pqTDJkbGRGVnpaWEpOWldScFlWTjBjbVZoYlM1cWN5SmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lwY2JpQXFJRkpsZEhWeWJuTWdZU0J3Y205dGFYTmxJSEpsYzI5c2RtVmtJSGRvWlc0Z2RHaGxJSEJsY20xcGMzTnBiMjRnYVhNZ1ozSmhiblJsWkNCaWVTQjBhR1VnZFhObGNseHVJQ29nUUhCaGNtRnRJSEJsY20xcGMzTnBiMjVPWVcxbElDQWdJQ0FnSUNBZ0lDQWdUbUZ0WlNCdlppQjBhR1VnY0dWeWJXbHpjMmx2Ymk0Z1FITmxaU0JvZEhSd2N6b3ZMM2N6WXk1bmFYUm9kV0l1YVc4dmNHVnliV2x6YzJsdmJuTXZJMlZ1ZFcxa1pXWXRjR1Z5YldsemMybHZibTVoYldWY2JpQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxmVnh1SUNvdlhHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCaGMzbHVZeUFvY0dWeWJXbHpjMmx2Yms1aGJXVXBJRDArSUh0Y2JseDBjbVYwZFhKdUlHNWxkeUJRY205dGFYTmxLR0Z6ZVc1aklDaHlaWE52YkhabExDQnlaV3BsWTNRcElEMCtJSHRjYmx4MFhIUnBaaUFvSVc1aGRtbG5ZWFJ2Y2k1d1pYSnRhWE56YVc5dWN5a2dlMXh1WEhSY2RGeDBjbVZxWldOMEtHNWxkeUJFVDAxRmVHTmxjSFJwYjI0b0oxQmxjbTFwYzNOcGIyNXpJRzV2ZENCemRYQndiM0owWldRbkxDQW5UazlVWDBaUFZVNUVYMFZTVWljcEtWeHVYSFJjZEgwZ1pXeHpaU0I3WEc1Y2RGeDBYSFIwY25rZ2UxeHVYSFJjZEZ4MFhIUmpiMjV6ZENCd1pYSnRhWE56YVc5dVUzUmhkSFZ6SUQwZ1lYZGhhWFFnYm1GMmFXZGhkRzl5TG5CbGNtMXBjM05wYjI1ekxuRjFaWEo1S0hzZ2JtRnRaVG9nY0dWeWJXbHpjMmx2Yms1aGJXVWdmU2xjYmx4MFhIUmNkRngwWTI5dWMzUWdiMjVEYUdGdVoyVWdQU0FvWlhabGJuUXBJRDArSUh0Y2JseDBYSFJjZEZ4MFhIUndaWEp0YVhOemFXOXVVM1JoZEhWekxuSmxiVzkyWlVWMlpXNTBUR2x6ZEdWdVpYSW9KMk5vWVc1blpTY3NJRzl1UTJoaGJtZGxLVnh1WEhSY2RGeDBYSFJjZEhKbGMyOXNkbVZQY2xKbGFtVmpkRUpoYzJWa1QyNVRkR0YwWlNobGRtVnVkQzUwWVhKblpYUXVjM1JoZEdVc0lISmxjMjlzZG1Vc0lISmxhbVZqZENsY2JseDBYSFJjZEZ4MGZWeHVYSFJjZEZ4MFhIUndaWEp0YVhOemFXOXVVM1JoZEhWekxtRmtaRVYyWlc1MFRHbHpkR1Z1WlhJb0oyTm9ZVzVuWlNjc0lHOXVRMmhoYm1kbEtWeHVYSFJjZEZ4MFhIUnlaWE52YkhabFQzSlNaV3BsWTNSQ1lYTmxaRTl1VTNSaGRHVW9jR1Z5YldsemMybHZibE4wWVhSMWN5NXpkR0YwWlN3Z2NtVnpiMngyWlN3Z2NtVnFaV04wS1Z4dVhIUmNkRngwZlNCallYUmphQ0FvWlhKeWIzSXBJSHRjYmx4MFhIUmNkRngwY21WcVpXTjBLR1Z5Y205eUtWeHVYSFJjZEZ4MGZWeHVYSFJjZEgxY2JseDBmU2xjYm4xY2JseHVZMjl1YzNRZ2NtVnpiMngyWlU5eVVtVnFaV04wUW1GelpXUlBibE4wWVhSbElEMGdLSE4wWVhSbExDQnlaWE52YkhabExDQnlaV3BsWTNRcElEMCtJSHRjYmx4MGMzZHBkR05vSUNoemRHRjBaU2tnZTF4dVhIUmNkR05oYzJVZ0oyUmxibWxsWkNjNlhHNWNkRngwWEhSeVpXcGxZM1FvYm1WM0lFUlBUVVY0WTJWd2RHbHZiaWduVUdWeWJXbHpjMmx2YmlCa1pXNXBaV1FuTENBblRrOVVYMEZNVEU5WFJVUmZSVkpTSnlrcFhHNWNkRngwWEhSaWNtVmhhMXh1WEhSY2RHUmxabUYxYkhRNlhHNWNkRngwWEhSeVpYTnZiSFpsS0hOMFlYUmxLVnh1WEhSOVhHNTlYRzRpTENKcGJYQnZjblFnWjJWMFVHVnliV2x6YzJsdmJpQm1jbTl0SUNjdUwyZGxkRkJsY20xcGMzTnBiMjRuWEc1Y2JpOHFLbHh1SUNvZ1VtVjBkWEp1Y3lCaElIQnliMjFwYzJVZ2NtVnpiMngyWldRZ2QyaGxiaUIwYUdVZ2NHVnliV2x6YzJsdmJpQnBjeUJuY21GdWRHVmtJR0o1SUhSb1pTQjFjMlZ5SUdGdVpDQjBhR1VnYzNSeVpXRnRJR2x6SUhKbGRISnBaWFpsWkZ4dUlDb2dRSEJoY21GdElIQmxjbTFwYzNOcGIyNU9ZVzFsSUNBZ0lDQWdJQ0FnSUNBZ1RtRnRaU0J2WmlCMGFHVWdjR1Z5YldsemMybHZiaTRnUUhObFpTQm9kSFJ3Y3pvdkwzY3pZeTVuYVhSb2RXSXVhVzh2Y0dWeWJXbHpjMmx2Ym5NdkkyVnVkVzFrWldZdGNHVnliV2x6YzJsdmJtNWhiV1ZjYmlBcUlFQndZWEpoYlNCdFpXUnBZVk4wY21WaGJVTnZibk4wY21GcGJuUnpJQ0FnSUVOdmJuTjBjbUZwYm5SeklHOWlhbVZqZEM0Z1FITmxaU0JvZEhSd2N6b3ZMMlJsZG1Wc2IzQmxjaTV0YjNwcGJHeGhMbTl5Wnk5bGJpMVZVeTlrYjJOekwxZGxZaTlCVUVrdlRXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjMXh1SUNvZ1FISmxkSFZ5Ym5NZ2UxQnliMjFwYzJWOVhHNGdLaTljYm1WNGNHOXlkQ0JrWldaaGRXeDBJR0Z6ZVc1aklDaHdaWEp0YVhOemFXOXVUbUZ0WlN3Z2JXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjeWtnUFQ0Z2UxeHVYSFJ5WlhSMWNtNGdibVYzSUZCeWIyMXBjMlVvWVhONWJtTWdLSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dQVDRnZTF4dVhIUmNkR2xtSUNnaGJtRjJhV2RoZEc5eUxtMWxaR2xoUkdWMmFXTmxjeWtnZTF4dVhIUmNkRngwY21WcVpXTjBLRzVsZHlCRVQwMUZlR05sY0hScGIyNG9KMDFsWkdsaFJHVjJhV05sY3lCdWIzUWdjM1Z3Y0c5eWRHVmtKeXdnSjA1UFZGOUdUMVZPUkY5RlVsSW5LU2xjYmx4MFhIUjlJR1ZzYzJVZ2UxeHVYSFJjZEZ4MGRISjVJSHRjYmx4MFhIUmNkRngwWTI5dWMzUWdXeXdnYzNSeVpXRnRYU0E5SUdGM1lXbDBJRkJ5YjIxcGMyVXVZV3hzS0Z0Y2JseDBYSFJjZEZ4MFhIUmhkMkZwZENCblpYUlFaWEp0YVhOemFXOXVLSEJsY20xcGMzTnBiMjVPWVcxbEtTeGNibHgwWEhSY2RGeDBYSFJoZDJGcGRDQnVZWFpwWjJGMGIzSXViV1ZrYVdGRVpYWnBZMlZ6TG1kbGRGVnpaWEpOWldScFlTaHRaV1JwWVZOMGNtVmhiVU52Ym5OMGNtRnBiblJ6S1N4Y2JseDBYSFJjZEZ4MFhTbGNibHgwWEhSY2RGeDBjbVZ6YjJ4MlpTaHpkSEpsWVcwcFhHNWNkRngwWEhSOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dVhIUmNkRngwWEhSeVpXcGxZM1FvWlhKeWIzSXBYRzVjZEZ4MFhIUjlYRzVjZEZ4MGZWeHVYSFI5S1Z4dWZWeHVJbDBzSW01aGJXVnpJanBiSW5CbGNtMXBjM05wYjI1T1lXMWxJaXdpVUhKdmJXbHpaU0lzSW5KbGMyOXNkbVVpTENKeVpXcGxZM1FpTENKdVlYWnBaMkYwYjNJaUxDSndaWEp0YVhOemFXOXVjeUlzSWtSUFRVVjRZMlZ3ZEdsdmJpSXNJbkYxWlhKNUlpd2libUZ0WlNJc0luQmxjbTFwYzNOcGIyNVRkR0YwZFhNaUxDSnZia05vWVc1blpTSXNJbVYyWlc1MElpd2ljbVZ0YjNabFJYWmxiblJNYVhOMFpXNWxjaUlzSW5KbGMyOXNkbVZQY2xKbGFtVmpkRUpoYzJWa1QyNVRkR0YwWlNJc0luUmhjbWRsZENJc0luTjBZWFJsSWl3aVlXUmtSWFpsYm5STWFYTjBaVzVsY2lJc0ltMWxaR2xoVTNSeVpXRnRRMjl1YzNSeVlXbHVkSE1pTENKdFpXUnBZVVJsZG1salpYTWlMQ0puWlhSUVpYSnRhWE56YVc5dUlpd2laMlYwVlhObGNrMWxaR2xoSWl3aVlXeHNJaXdpYzNSeVpXRnRJbDBzSW0xaGNIQnBibWR6SWpvaWJYZERRVXRCTEd0RVFVRmxMRmRCUVU5QkxEUkhRVU5rTEVsQlFVbERMRzlFUVVGUkxGZEJRVTlETEVWQlFWTkRMRGhHUVVNM1FrTXNWVUZCVlVNc05FSkJRMlJHTEVWQlFVOHNTVUZCU1Vjc1lVRkJZU3cwUWtGQk5rSXNhMFZCUjNKQ1JpeFZRVUZWUXl4WlFVRlpSU3hOUVVGTkxFTkJRVVZETEV0QlFVMVNMRmRCUVRkRVV5eFRRVU5CUXl4RlFVRlhMRk5CUVZoQkxFVkJRVmxETEVkQlEycENSaXhGUVVGcFFrY3NiMEpCUVc5Q0xGTkJRVlZHTEVkQlF5OURSeXhGUVVFMFFrWXNSVUZCVFVjc1QwRkJUME1zVFVGQlQySXNSVUZCVTBNc1NVRkZNVVJOTEVWQlFXbENUeXhwUWtGQmFVSXNVMEZCVlU0c1IwRkROVU5ITEVWQlFUUkNTaXhGUVVGcFFrMHNUVUZCVDJJc1JVRkJVME1zY1VSQlJUZEVRU3cyVGtGTlJWVXNSVUZCT0VJc1UwRkJRMFVzUlVGQlQySXNSVUZCVTBNc1ZVRkROVU5aTEU5QlEwWXNVMEZEU2xvc1JVRkJUeXhKUVVGSlJ5eGhRVUZoTEc5Q1FVRnhRaXhyUTBGSE4wTktMRVZCUVZGaExHMUVRM1pDU1N4WFFVRlBaaXhGUVVGblFtbENMRFJIUVVNNVFpeEpRVUZKYUVJc2IwUkJRVkVzVjBGQlQwTXNSVUZCVTBNc1owZEJRemRDUXl4VlFVRlZZeXcyUWtGRFpHWXNSVUZCVHl4SlFVRkpSeXhoUVVGaExEWkNRVUU0UWl3NFJFRkhOVUpNTEdsQ1FVTnNRbXRDTEVWQlFXTnVRaXgxUTBGRFpFa3NWVUZCVldNc1lVRkJZVVVzWVVGQllVZ3NPRVJCUmxaSkxEaERRVUY0UWtNc1QwRkpWSEJDTEVWQlFWRnZRaXh4UkVGRlVtNUNJbjA9XG4iLCJpbXBvcnQgeyBnZXRVc2VyTWVkaWFTdHJlYW0gfSBmcm9tICdAdW50ZW1wcy91c2VyLXBlcm1pc3Npb25zLXV0aWxzJ1xuXG5jbGFzcyBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIge1xuXHRzdGF0aWMgZGVmYXVsdE9wdGlvbnMgPSB7XG5cdFx0bGFuZzogJ2ZyLUZSJyxcblx0XHRjb250aW51b3VzOiBmYWxzZSxcblx0XHRpbnRlcmltUmVzdWx0czogZmFsc2UsXG5cdFx0bWF4QWx0ZXJuYXRpdmVzOiAxLFxuXHR9XG5cblx0c3RhdGljIGV2ZW50VHlwZXMgPSB7XG5cdFx0QVVESU9fRU5EOiAnYXVkaW9lbmQnLFxuXHRcdEFVRElPX1NUQVJUOiAnYXVkaW9zdGFydCcsXG5cdFx0RU5EOiAnZW5kJyxcblx0XHRFUlJPUjogJ2Vycm9yJyxcblx0XHROT19NQVRDSDogJ25vbWF0Y2gnLFxuXHRcdFJFU1VMVDogJ3Jlc3VsdCcsXG5cdFx0U09VTkRfRU5EOiAnc291bmRlbmQnLFxuXHRcdFNPVU5EX1NUQVJUOiAnc291bmRzdGFydCcsXG5cdFx0U1BFRUNIX0VORDogJ3NwZWVjaGVuZCcsXG5cdFx0U1BFRUNIX1NUQVJUOiAnc3BlZWNoc3RhcnQnLFxuXHRcdFNUQVJUOiAnc3RhcnQnLFxuXHR9XG5cblx0c3RhdGljIGdldCBpc1N1cHBvcnRlZCgpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0ISF3aW5kb3cuU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdCEhd2luZG93LndlYmtpdFNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHQhIXdpbmRvdy5tb3pTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0ISF3aW5kb3cubXNTcGVlY2hSZWNvZ25pdGlvblxuXHRcdClcblx0fVxuXG5cdHN0YXRpYyBzZXQgaXNTdXBwb3J0ZWQoXykge1xuXHRcdHRocm93IG5ldyBFcnJvcignWW91IGNhbm5vdCBzZXQgaXNTdXBwb3J0ZWQgZGlyZWN0bHkuJylcblx0fVxuXG5cdF9pbnN0YW5jZSA9IG51bGxcblx0X2xpc3RlbmVycyA9IG51bGxcblxuXHRjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG5cdFx0Y29uc3QgU3BlZWNoUmVjb2duaXRpb24gPVxuXHRcdFx0d2luZG93LlNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHR3aW5kb3cud2Via2l0U3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHdpbmRvdy5tb3pTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0d2luZG93Lm1zU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHt9XG5cdFx0dGhpcy5faW5zdGFuY2UgPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKVxuXHRcdHRoaXMuX2xpc3RlbmVycyA9IHt9XG5cblx0XHRPYmplY3QuZW50cmllcyh7IC4uLlNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5kZWZhdWx0T3B0aW9ucywgLi4uKG9wdGlvbnMgfHwge30pIH0pLmZvckVhY2goXG5cdFx0XHQoW2tleSwgdmFsdWVdKSA9PiAodGhpcy5faW5zdGFuY2Vba2V5XSA9IHZhbHVlKVxuXHRcdClcblx0fVxuXG5cdGdldCBpbnN0YW5jZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5faW5zdGFuY2Vcblx0fVxuXG5cdHNldCBpbnN0YW5jZShfKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHNldCBpbnN0YW5jZSBkaXJlY3RseS4nKVxuXHR9XG5cblx0YXN5bmMgc3RhcnQoKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldFVzZXJNZWRpYVN0cmVhbSgnbWljcm9waG9uZScsIHsgYXVkaW86IHRydWUgfSlcblx0XHRcdFx0aWYgKCFzdHJlYW0pIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byByZXRyaWV2ZSB0aGUgc3RyZWFtIGZyb20gbWVkaWEgZGV2aWNlJylcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLl9pbnN0YW5jZS5zdGFydCgpXG5cdFx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0XHRjb25zdCBlcnJvckhhbmRsZXIgPSB0aGlzLl9saXN0ZW5lcnMuZXJyb3Jcblx0XHRcdFx0aWYgKCEhZXJyb3JIYW5kbGVyKSB7XG5cdFx0XHRcdFx0ZXJyb3JIYW5kbGVyKGVycm9yKVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdHN0b3AoKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UpIHtcblx0XHRcdHRoaXMuX2luc3RhbmNlLnN0b3AoKVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRhYm9ydCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dGhpcy5faW5zdGFuY2UuYWJvcnQoKVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRhZGRFdmVudExpc3RlbmVyKHR5cGUsIGNhbGxiYWNrKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UgJiYgdGhpcy5faW5jbHVkZXNFdmVudFR5cGUodHlwZSkpIHtcblx0XHRcdGlmICghIXRoaXMuX2xpc3RlbmVyc1t0eXBlXSkge1xuXHRcdFx0XHR0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSlcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgaGFuZGxlciA9IChldmVudCkgPT4ge1xuXHRcdFx0XHRsZXQgYWRkaXRpb25hbEFyZ3MgPSBbXVxuXHRcdFx0XHRpZiAodHlwZSA9PT0gU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmV2ZW50VHlwZXMuUkVTVUxUKSB7XG5cdFx0XHRcdFx0aWYgKCEhZXZlbnQucmVzdWx0cyAmJiBldmVudC5yZXN1bHRzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGFkZGl0aW9uYWxBcmdzLnB1c2goZXZlbnQucmVzdWx0c1swXVswXS50cmFuc2NyaXB0KVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCEhY2FsbGJhY2sgJiYgY2FsbGJhY2suYXBwbHkodGhpcywgWy4uLmFkZGl0aW9uYWxBcmdzLCBldmVudF0pXG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9pbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKHR5cGUsIChlKSA9PiBoYW5kbGVyKGUpKVxuXG5cdFx0XHR0aGlzLl9saXN0ZW5lcnNbdHlwZV0gPSBoYW5kbGVyXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdHJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSkge1xuXHRcdGNvbnN0IGhhbmRsZXIgPSB0aGlzLl9saXN0ZW5lcnNbdHlwZV1cblx0XHR0aGlzLl9pbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpXG5cblx0XHRkZWxldGUgdGhpcy5fbGlzdGVuZXJzW3R5cGVdXG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0Y2xlYW51cCgpIHtcblx0XHR0aGlzLnN0b3AoKVxuXG5cdFx0T2JqZWN0LmtleXModGhpcy5fbGlzdGVuZXJzKS5mb3JFYWNoKChrZXkpID0+IHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihrZXkpKVxuXHRcdHRoaXMuX2luc3RhbmNlID0gbnVsbFxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdF9pbmNsdWRlc0V2ZW50VHlwZSA9IChldmVudFR5cGUpID0+XG5cdFx0T2JqZWN0LnZhbHVlcyhTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuZXZlbnRUeXBlcykuZmluZCgodHlwZSkgPT4gdHlwZSA9PT0gZXZlbnRUeXBlKVxufVxuXG5leHBvcnQgZGVmYXVsdCBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXJcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuY29uc3QgTWljcm9waG9uZUljb24gPSAoeyBpY29uQ29sb3IgPSAnYmxhY2snLCBhY3RpdmVDb2xvciA9ICdyZWQnLCBpc0FjdGl2ZSA9IGZhbHNlIH0pID0+IHtcblx0cmV0dXJuIChcblx0XHQ8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuXHRcdFx0PGc+XG5cdFx0XHRcdDxwYXRoXG5cdFx0XHRcdFx0ZmlsbD17aWNvbkNvbG9yfVxuXHRcdFx0XHRcdGQ9XCJNMTIgMTRjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNMMTUgNWMwLTEuNjYtMS4zNC0zLTMtM1M5IDMuMzQgOSA1djZjMCAxLjY2IDEuMzQgMyAzIDN6bTUuMy0zYzAgMy0yLjU0IDUuMS01LjMgNS4xUzYuNyAxNCA2LjcgMTFINWMwIDMuNDEgMi43MiA2LjIzIDYgNi43MlYyMWgydi0zLjI4YzMuMjgtLjQ4IDYtMy4zIDYtNi43MmgtMS43elwiXG5cdFx0XHRcdC8+XG5cdFx0XHRcdHtpc0FjdGl2ZSAmJiA8Y2lyY2xlIGZpbGw9e2FjdGl2ZUNvbG9yfSBjeD1cIjE2XCIgY3k9XCI0XCIgcj1cIjRcIiAvPn1cblx0XHRcdDwvZz5cblx0XHQ8L3N2Zz5cblx0KVxufVxuXG5leHBvcnQgZGVmYXVsdCBNaWNyb3Bob25lSWNvblxuIiwiaW1wb3J0IFJlYWN0LCB7IGNsb25lRWxlbWVudCwgaXNWYWxpZEVsZW1lbnQsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuXG5pbXBvcnQgU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyIGZyb20gJy4vU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyJ1xuXG5pbXBvcnQgTWljcm9waG9uZUljb24gZnJvbSAnLi9NaWNyb3Bob25lSWNvbidcblxuY29uc3QgVm9jYWwgPSAoe1xuXHRjaGlsZHJlbixcblx0dGltZW91dCxcblx0YXJpYUxhYmVsLFxuXHR0YWJJbmRleCxcblx0c3R5bGUsXG5cdGNsYXNzTmFtZSxcblx0b25TdGFydCxcblx0b25FbmQsXG5cdG9uU3BlZWNoU3RhcnQsXG5cdG9uU3BlZWNoRW5kLFxuXHRvblJlc3VsdCxcblx0b25FcnJvcixcblx0b25Ob01hdGNoLFxuXHRfX3JlY29nbml0aW9uSW5zdGFuY2UsXG59KSA9PiB7XG5cdGNvbnN0IHRpbWVvdXRSZWYgPSB1c2VSZWYobnVsbClcblx0Y29uc3QgcmVjb2duaXRpb25SZWYgPSB1c2VSZWYobnVsbClcblxuXHRjb25zdCBbaXNMaXN0ZW5pbmcsIHNldElzTGlzdGVuaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKFNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5pc1N1cHBvcnRlZCkge1xuXHRcdFx0cmVjb2duaXRpb25SZWYuY3VycmVudCA9IF9fcmVjb2duaXRpb25JbnN0YW5jZSB8fCBuZXcgU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyKClcblx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdHJlY29nbml0aW9uUmVmLmN1cnJlbnQuYWJvcnQoKVxuXHRcdFx0XHRyZWNvZ25pdGlvblJlZi5jdXJyZW50LmNsZWFudXAoKVxuXHRcdFx0XHRjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KVxuXHRcdFx0fVxuXHRcdH1cblx0fSwgW19fcmVjb2duaXRpb25JbnN0YW5jZV0pXG5cblx0Y29uc3Qgc3RhcnRUaW1lciA9ICgpID0+IHtcblx0XHR0aW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KF9vbkVuZCwgdGltZW91dClcblx0fVxuXG5cdGNvbnN0IHN0b3BUaW1lciA9ICgpID0+IHtcblx0XHRjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KVxuXHRcdHRpbWVvdXRSZWYuY3VycmVudCA9IG51bGxcblx0fVxuXG5cdGNvbnN0IHN0YXJ0UmVjb2duaXRpb24gPSAoKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdHNldElzTGlzdGVuaW5nKHRydWUpXG5cblx0XHRcdGNvbnN0IHsgY3VycmVudDogciB9ID0gcmVjb2duaXRpb25SZWZcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBfb25TdGFydClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignZW5kJywgX29uRW5kKVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzcGVlY2hzdGFydCcsIF9vblNwZWVjaFN0YXJ0KVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzcGVlY2hlbmQnLCBfb25TcGVlY2hFbmQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc3VsdCcsIF9vblJlc3VsdClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBfb25FcnJvcilcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignbm9tYXRjaCcsIF9vbk5vTWF0Y2gpXG5cdFx0XHRyLnN0YXJ0KClcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0X29uRXJyb3IoZXJyb3IpXG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgc3RvcFJlY29nbml0aW9uID0gKCkgPT4ge1xuXHRcdHRyeSB7XG5cdFx0XHRzZXRJc0xpc3RlbmluZyhmYWxzZSlcblxuXHRcdFx0Y29uc3QgeyBjdXJyZW50OiByIH0gPSByZWNvZ25pdGlvblJlZlxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzdGFydCcsIF9vblN0YXJ0KVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdlbmQnLCBfb25FbmQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NwZWVjaHN0YXJ0JywgX29uU3BlZWNoU3RhcnQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NwZWVjaGVuZCcsIF9vblNwZWVjaEVuZClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzdWx0JywgX29uUmVzdWx0KVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIF9vbkVycm9yKVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdub21hdGNoJywgX29uTm9NYXRjaClcblx0XHRcdHIuc3RvcCgpXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdCEhb25FcnJvciAmJiBvbkVycm9yKGVycm9yKVxuXHRcdH1cblx0fVxuXG5cdGNvbnN0IHN0YXJ0ID0gKCkgPT4ge1xuXHRcdHN0YXJ0VGltZXIoKVxuXHR9XG5cblx0Y29uc3QgZW5kID0gKCkgPT4ge1xuXHRcdHN0b3BUaW1lcigpXG5cdFx0c3RvcFJlY29nbml0aW9uKClcblx0fVxuXG5cdGNvbnN0IF9vbkNsaWNrID0gKCkgPT4ge1xuXHRcdHN0YXJ0UmVjb2duaXRpb24oKVxuXHR9XG5cblx0Y29uc3QgX29uU3RhcnQgPSAoZSkgPT4ge1xuXHRcdHN0YXJ0KClcblxuXHRcdCEhb25TdGFydCAmJiBvblN0YXJ0KGUpXG5cdH1cblxuXHRjb25zdCBfb25FbmQgPSAoZSkgPT4ge1xuXHRcdGVuZCgpXG5cblx0XHQhIW9uRW5kICYmIG9uRW5kKGUpXG5cdH1cblxuXHRjb25zdCBfb25TcGVlY2hTdGFydCA9IChlKSA9PiB7XG5cdFx0c3RvcFRpbWVyKClcblxuXHRcdCEhb25TcGVlY2hTdGFydCAmJiBvblNwZWVjaFN0YXJ0KGUpXG5cdH1cblxuXHRjb25zdCBfb25TcGVlY2hFbmQgPSAoZSkgPT4ge1xuXHRcdHN0YXJ0VGltZXIoKVxuXG5cdFx0ISFvblNwZWVjaEVuZCAmJiBvblNwZWVjaEVuZChlKVxuXHR9XG5cblx0Y29uc3QgX29uUmVzdWx0ID0gKHJlc3VsdCwgZXZlbnQpID0+IHtcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXG5cdFx0ISFvblJlc3VsdCAmJiBvblJlc3VsdChyZXN1bHQsIGV2ZW50KVxuXHR9XG5cblx0Y29uc3QgX29uRXJyb3IgPSAoZXJyb3IpID0+IHtcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXG5cdFx0ISFvbkVycm9yICYmIG9uRXJyb3IoZXJyb3IpXG5cdH1cblxuXHRjb25zdCBfb25Ob01hdGNoID0gKGUpID0+IHtcblx0XHQhIW9uTm9NYXRjaCAmJiBvbk5vTWF0Y2goZSlcblx0fVxuXG5cdGNvbnN0IF9yZW5kZXJEZWZhdWx0ID0gKCkgPT4gKFxuXHRcdDxkaXZcblx0XHRcdGRhdGEtdGVzdGlkPVwiX192b2NhbC1yb290X19cIlxuXHRcdFx0cm9sZT1cImJ1dHRvblwiXG5cdFx0XHRhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG5cdFx0XHR0YWJJbmRleD17dGFiSW5kZXh9XG5cdFx0XHRzdHlsZT17Y2xhc3NOYW1lID8gbnVsbCA6IHsgd2lkdGg6IDI0LCBoZWlnaHQ6IDI0LCBjdXJzb3I6ICFpc0xpc3RlbmluZyA/ICdwb2ludGVyJyA6IG51bGwsIC4uLnN0eWxlIH19XG5cdFx0XHRjbGFzc05hbWU9e2NsYXNzTmFtZX1cblx0XHQ+XG5cdFx0XHQ8TWljcm9waG9uZUljb24gaXNBY3RpdmU9e2lzTGlzdGVuaW5nfSBpY29uQ29sb3I9XCIjYWFhXCIgLz5cblx0XHQ8L2Rpdj5cblx0KVxuXG5cdHJldHVybiAoXG5cdFx0U3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmlzU3VwcG9ydGVkICYmXG5cdFx0Y2xvbmVFbGVtZW50KGlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSA/IGNoaWxkcmVuIDogX3JlbmRlckRlZmF1bHQoKSwge1xuXHRcdFx0Li4uKCFpc0xpc3RlbmluZyAmJiB7IG9uQ2xpY2s6IF9vbkNsaWNrIH0pLFxuXHRcdH0pXG5cdClcbn1cblxuVm9jYWwucHJvcFR5cGVzID0ge1xuXHQvKiogRGVmaW5lcyB0aGUgdGltZSBpbiBtcyB0byB3YWl0IGJlZm9yZSBkaXNjYXJkaW5nIHRoZSByZWNvZ25pdGlvbiAqL1xuXHR0aW1lb3V0OiBQcm9wVHlwZXMubnVtYmVyLFxuXHQvKiogRGVmaW5lcyB0aGUgYTExeSBsYWJlbCBmb3IgdGhlIGRlZmF1bHQgYnV0dG9uICovXG5cdGFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcblx0LyoqIERlZmluZXMgdGhlIGExMXkgdGFiIGluZGV4IGZvciB0aGUgZGVmYXVsdCBidXR0b24gKi9cblx0dGFiSW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG5cdC8qKiBEZWZpbmVzIHRoZSBzdHlsZXMgb2YgdGhlIGRlZmF1bHQgZWxlbWVudCBpZiBjbGFzc05hbWUgaXMgbm90IHNwZWNpZmllZCAqL1xuXHRzdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcblx0LyoqIERlZmluZXMgdGhlIGNsYXNzIG9mIHRoZSBkZWZhdWx0IGVsZW1lbnQgKi9cblx0Y2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgcmVjb2duaXRpb24gc3RhcnRzICovXG5cdG9uU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgcmVjb2duaXRpb24gZW5kcyAqL1xuXHRvbkVuZDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBzcGVlY2ggc3RhcnRzICovXG5cdG9uU3BlZWNoU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgc3BlZWNoIGVuZHMgKi9cblx0b25TcGVlY2hFbmQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBhIHJlc3VsdCBpcyByZWNvZ25pemVkICovXG5cdG9uUmVzdWx0OiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzICovXG5cdG9uRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBubyByZXN1bHQgY2FuIGJlIHJlY29nbml6ZWQgKi9cblx0b25Ob01hdGNoOiBQcm9wVHlwZXMuZnVuYyxcbn1cblxuVm9jYWwuZGVmYXVsdFByb3BzID0ge1xuXHR0aW1lb3V0OiAzMDAwLFxuXHRhcmlhTGFiZWw6ICdzcGVlY2gnLFxuXHR0YWJJbmRleDogLTEsXG5cdHN0eWxlOiBudWxsLFxuXHRjbGFzc05hbWU6IG51bGwsXG5cdG9uU3RhcnQ6IG51bGwsXG5cdG9uRW5kOiBudWxsLFxuXHRvblNwZWVjaFN0YXJ0OiBudWxsLFxuXHRvblNwZWVjaEVuZDogbnVsbCxcblx0b25SZXN1bHQ6IG51bGwsXG5cdG9uRXJyb3I6IG51bGwsXG5cdG9uTm9NYXRjaDogbnVsbCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgVm9jYWxcbiJdLCJuYW1lcyI6WyJlIiwiciIsInQiLCJuIiwiYSIsImkiLCJvIiwidSIsImMiLCJ2YWx1ZSIsImRvbmUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJ0aGlzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJBcnJheSIsImlzQXJyYXkiLCJTeW1ib2wiLCJpdGVyYXRvciIsIk9iamVjdCIsIm5leHQiLCJwdXNoIiwibGVuZ3RoIiwicmV0dXJuIiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIlR5cGVFcnJvciIsInJlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJ3cmFwIiwicHJldiIsImFicnVwdCIsIm5hdmlnYXRvciIsInBlcm1pc3Npb25zIiwiRE9NRXhjZXB0aW9uIiwicXVlcnkiLCJzZW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInRhcmdldCIsInN0YXRlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInQwIiwiY2F0Y2giLCJzdG9wIiwicyIsIm1lZGlhRGV2aWNlcyIsInQxIiwiZ2V0VXNlck1lZGlhIiwidDIiLCJ0MyIsImFsbCIsInQ0IiwiU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyIiwib3B0aW9ucyIsImV2ZW50VHlwZSIsInZhbHVlcyIsImV2ZW50VHlwZXMiLCJmaW5kIiwidHlwZSIsIlNwZWVjaFJlY29nbml0aW9uIiwid2luZG93Iiwid2Via2l0U3BlZWNoUmVjb2duaXRpb24iLCJtb3pTcGVlY2hSZWNvZ25pdGlvbiIsIm1zU3BlZWNoUmVjb2duaXRpb24iLCJfaW5zdGFuY2UiLCJfbGlzdGVuZXJzIiwiZW50cmllcyIsImRlZmF1bHRPcHRpb25zIiwiZm9yRWFjaCIsImtleSIsIl90aGlzIiwiXyIsIkVycm9yIiwiZ2V0VXNlck1lZGlhU3RyZWFtIiwiYXVkaW8iLCJzdGFydCIsImVycm9ySGFuZGxlciIsImVycm9yIiwiYWJvcnQiLCJjYWxsYmFjayIsIl9pbmNsdWRlc0V2ZW50VHlwZSIsImhhbmRsZXIiLCJldmVudCIsImFkZGl0aW9uYWxBcmdzIiwiUkVTVUxUIiwicmVzdWx0cyIsInRyYW5zY3JpcHQiLCJfdGhpczIiLCJrZXlzIiwiX3RoaXMzIiwibGFuZyIsImNvbnRpbnVvdXMiLCJpbnRlcmltUmVzdWx0cyIsIm1heEFsdGVybmF0aXZlcyIsIkFVRElPX0VORCIsIkFVRElPX1NUQVJUIiwiRU5EIiwiRVJST1IiLCJOT19NQVRDSCIsIlNPVU5EX0VORCIsIlNPVU5EX1NUQVJUIiwiU1BFRUNIX0VORCIsIlNQRUVDSF9TVEFSVCIsIlNUQVJUIiwiTWljcm9waG9uZUljb24iLCJpY29uQ29sb3IiLCJhY3RpdmVDb2xvciIsImlzQWN0aXZlIiwiUmVhY3QiLCJ4bWxucyIsIndpZHRoIiwiaGVpZ2h0Iiwidmlld0JveCIsImZpbGwiLCJkIiwiY3giLCJjeSIsIlZvY2FsIiwiY2hpbGRyZW4iLCJ0aW1lb3V0IiwiYXJpYUxhYmVsIiwidGFiSW5kZXgiLCJzdHlsZSIsImNsYXNzTmFtZSIsIm9uU3RhcnQiLCJvbkVuZCIsIm9uU3BlZWNoU3RhcnQiLCJvblNwZWVjaEVuZCIsIm9uUmVzdWx0Iiwib25FcnJvciIsIm9uTm9NYXRjaCIsIl9fcmVjb2duaXRpb25JbnN0YW5jZSIsInRpbWVvdXRSZWYiLCJ1c2VSZWYiLCJyZWNvZ25pdGlvblJlZiIsInVzZVN0YXRlIiwiaXNMaXN0ZW5pbmciLCJzZXRJc0xpc3RlbmluZyIsInVzZUVmZmVjdCIsImlzU3VwcG9ydGVkIiwiY3VycmVudCIsImNsZWFudXAiLCJjbGVhclRpbWVvdXQiLCJzdGFydFRpbWVyIiwic2V0VGltZW91dCIsIl9vbkVuZCIsInN0b3BUaW1lciIsInN0b3BSZWNvZ25pdGlvbiIsIl9vblN0YXJ0IiwiX29uU3BlZWNoU3RhcnQiLCJfb25TcGVlY2hFbmQiLCJfb25SZXN1bHQiLCJfb25FcnJvciIsIl9vbk5vTWF0Y2giLCJyZXN1bHQiLCJjbG9uZUVsZW1lbnQiLCJpc1ZhbGlkRWxlbWVudCIsInJvbGUiLCJjdXJzb3IiLCJvbkNsaWNrIiwic3RhcnRSZWNvZ25pdGlvbiIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm51bWJlciIsInN0cmluZyIsIm9iamVjdCIsImZ1bmMiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiJxbEVBQUEsU0FBU0EsRUFBRUEsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsR0FBRyxJQUFJLElBQUlDLEVBQUVQLEVBQUVLLEdBQUdDLEdBQUdFLEVBQUVELEVBQUVFLE1BQU0sTUFBTVQsR0FBRyxZQUFZRSxFQUFFRixHQUFHTyxFQUFFRyxLQUFLVCxFQUFFTyxHQUFHRyxRQUFRQyxRQUFRSixHQUFHSyxLQUFLVixFQUFFQyxHQUFHLFNBQVNILEVBQUVBLEdBQUcsT0FBTyxXQUFXLElBQUlDLEVBQUVZLEtBQUtYLEVBQUVZLFVBQVUsT0FBTyxJQUFJSixrQkFBa0JQLEVBQUVDLEdBQUcsSUFBSUMsRUFBRUwsRUFBRWUsTUFBTWQsRUFBRUMsR0FBRyxTQUFTSSxFQUFFTixHQUFHRCxFQUFFTSxFQUFFRixFQUFFQyxFQUFFRSxFQUFFQyxFQUFFLE9BQU9QLEdBQUcsU0FBU08sRUFBRVAsR0FBR0QsRUFBRU0sRUFBRUYsRUFBRUMsRUFBRUUsRUFBRUMsRUFBRSxRQUFRUCxHQUFHTSxPQUFFLE9BQVksU0FBU0wsRUFBRUYsRUFBRUMsR0FBRyxPQUFPLFNBQVNELEdBQUcsR0FBR2lCLE1BQU1DLFFBQVFsQixHQUFHLE9BQU9BLEVBQXZDLENBQTBDQSxJQUFJLFNBQVNBLEVBQUVDLEdBQUcsR0FBRyxvQkFBb0JrQixRQUFVQSxPQUFPQyxZQUFZQyxPQUFPckIsR0FBM0QsQ0FBc0UsSUFBSUUsRUFBRSxHQUFHQyxHQUFFLEVBQUdDLEdBQUUsRUFBR0MsT0FBRSxFQUFPLElBQUksSUFBSSxJQUFJQyxFQUFFQyxFQUFFUCxFQUFFbUIsT0FBT0MsY0FB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 |
@@ -1,2 +0,2 @@ | ||
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var t=require("react"),n=e(t),r=e(require("prop-types"));function i(e,t,n,r,i,o,a){try{var c=e[o](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,i)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,i=!1,o=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(i)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return f(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function p(e,t,n,r,i,o,a){try{var c=e[o](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,i)}function v(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){p(o,r,i,a,c,"next",e)}function c(e){p(o,r,i,a,c,"throw",e)}a(void 0)}))}}function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,i=!1,o=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(i)throw o}}return n}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var m=function(){var e=v(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=v(regeneratorRuntime.mark((function e(n,r){var i,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.permissions){e.next=4;break}r(new DOMException("NOT_FOUND_ERR","NotFoundError")),e.next=22;break;case 4:return e.prev=4,e.next=7,navigator.permissions.query({name:t});case 7:i=e.sent,e.t0=i.state,e.next="denied"===e.t0?11:"prompt"===e.t0?13:16;break;case 11:return r(new DOMException("NOT_ALLOWED_ERR","NotAllowedError")),e.abrupt("break",17);case 13:return o=function e(t){i.removeEventListener("change",e),"denied"===t.target.state?r(new DOMException("NOT_ALLOWED_ERR","NotAllowedError")):n(t.target.state)},i.addEventListener("change",o),e.abrupt("break",17);case 16:n(i.state);case 17:e.next=22;break;case 19:e.prev=19,e.t1=e.catch(4),r(e.t1);case 22:case"end":return e.stop()}}),e,null,[[4,19]])})));return function(t,n){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),y=function(){var e=v(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=v(regeneratorRuntime.mark((function e(r,i){var o,a,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.mediaDevices){e.next=4;break}i(new DOMException("NOT_FOUND_ERR","NotFoundError")),e.next=24;break;case 4:return e.prev=4,e.t0=Promise,e.next=8,m(t);case 8:return e.t1=e.sent,e.next=11,navigator.mediaDevices.getUserMedia(n);case 11:return e.t2=e.sent,e.t3=[e.t1,e.t2],e.next=15,e.t0.all.call(e.t0,e.t3);case 15:o=e.sent,a=h(o,2),c=a[1],r(c),e.next=24;break;case 21:e.prev=21,e.t4=e.catch(4),i(e.t4);case 24:case"end":return e.stop()}}),e,null,[[4,21]])})));return function(t,n){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),b=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),c(this,"_instance",null),c(this,"_listeners",null),c(this,"_includesEventType",(function(t){return Object.values(e.eventTypes).find((function(e){return e===t}))}));var r=window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.msSpeechRecognition||{};this._instance=new r,this._listeners={},Object.entries(s(s({},e.defaultOptions),t||{})).forEach((function(e){var t=l(e,2),r=t[0],i=t[1];return n._instance[r]=i}))}var t,n;return a(e,null,[{key:"isSupported",get:function(){return!!(window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.msSpeechRecognition)},set:function(e){throw new Error("You cannot set isSupported directly.")}}]),a(e,[{key:"start",value:(t=regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._instance){e.next=14;break}return e.prev=1,e.next=4,y("microphone",{audio:!0});case 4:if(e.sent){e.next=7;break}throw new Error("Unable to retrieve the stream from media device");case 7:this._instance.start(),e.next=14;break;case 10:e.prev=10,e.t0=e.catch(1),(t=this._listeners.error)&&t(e.t0);case 14:return e.abrupt("return",this);case 15:case"end":return e.stop()}}),e,this,[[1,10]])})),n=function(){var e=this,n=arguments;return new Promise((function(r,o){var a=t.apply(e,n);function c(e){i(a,r,o,c,u,"next",e)}function u(e){i(a,r,o,c,u,"throw",e)}c(void 0)}))},function(){return n.apply(this,arguments)})},{key:"stop",value:function(){return this._instance&&this._instance.stop(),this}},{key:"abort",value:function(){return this._instance&&this._instance.abort(),this}},{key:"addEventListener",value:function(t,n){var r=this;if(this._instance&&this._includesEventType(t)){this._listeners[t]&&this.removeEventListener(t);var i=function(i){var o=[];t===e.eventTypes.RESULT&&i.results&&i.results.length>0&&o.push(i.results[0][0].transcript),n&&n.apply(r,[].concat(o,[i]))};this._instance.addEventListener(t,(function(e){return i(e)})),this._listeners[t]=i}return this}},{key:"removeEventListener",value:function(e){var t=this._listeners[e];return this._instance.removeEventListener(e,t),delete this._listeners[e],this}},{key:"cleanup",value:function(){var e=this;return this.stop(),Object.keys(this._listeners).forEach((function(t){return e.removeEventListener(t)})),this._instance=null,this}},{key:"instance",get:function(){return this._instance},set:function(e){throw new Error("You cannot set instance directly.")}}]),e}();c(b,"defaultOptions",{lang:"fr-FR",continuous:!1,interimResults:!1,maxAlternatives:1}),c(b,"eventTypes",{AUDIO_END:"audioend",AUDIO_START:"audiostart",END:"end",ERROR:"error",NO_MATCH:"nomatch",RESULT:"result",SOUND_END:"soundend",SOUND_START:"soundstart",SPEECH_END:"speechend",SPEECH_START:"speechstart",START:"start"});var E=function(e){var t=e.iconColor,r=void 0===t?"black":t,i=e.activeColor,o=void 0===i?"red":i,a=e.isActive,c=void 0!==a&&a;return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 24 24"},n.createElement("g",null,n.createElement("path",{fill:r,d:"M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"}),c&&n.createElement("circle",{fill:o,cx:"16",cy:"4",r:"4"})))},w=function(e){var r=e.children,i=e.timeout,o=e.ariaLabel,a=e.tabIndex,c=e.style,u=e.className,f=e.onStart,p=e.onEnd,v=e.onSpeechStart,h=e.onSpeechEnd,d=e.onResult,m=e.onError,y=e.onNoMatch,w=e.__recognitionInstance,g=t.useRef(null),S=t.useRef(null),O=l(t.useState(!1),2),_=O[0],R=O[1];t.useEffect((function(){if(b.isSupported)return S.current=w||new b,function(){S.current.abort(),S.current.cleanup(),clearTimeout(g.current)}}),[w]);var x=function(){g.current=setTimeout(j,i)},k=function(){clearTimeout(g.current),g.current=null},L=function(){try{R(!1);var e=S.current;e.removeEventListener("start",T),e.removeEventListener("end",j),e.removeEventListener("speechstart",A),e.removeEventListener("speechend",N),e.removeEventListener("result",D),e.removeEventListener("error",P),e.removeEventListener("nomatch",I),e.stop()}catch(e){m&&m(e)}},T=function(e){x(),f&&f(e)},j=function(e){k(),L(),p&&p(e)},A=function(e){k(),v&&v(e)},N=function(e){x(),h&&h(e)},D=function(e,t){L(),d&&d(e,t)},P=function(e){L(),m&&m(e)},I=function(e){y&&y(e)};return b.isSupported&&t.cloneElement(t.isValidElement(r)?r:n.createElement("div",{"data-testid":"__vocal-root__",role:"button","aria-label":o,tabIndex:a,style:u?null:s({width:24,height:24,cursor:_?null:"pointer"},c),className:u},n.createElement(E,{isActive:_,iconColor:"#aaa"})),s({},!_&&{onClick:function(){!function(){try{R(!0);var e=S.current;e.addEventListener("start",T),e.addEventListener("end",j),e.addEventListener("speechstart",A),e.addEventListener("speechend",N),e.addEventListener("result",D),e.addEventListener("error",P),e.addEventListener("nomatch",I),e.start()}catch(e){P(e)}}()}}))};w.propTypes={timeout:r.number,ariaLabel:r.string,tabIndex:r.number,style:r.object,className:r.string,onStart:r.func,onEnd:r.func,onSpeechStart:r.func,onSpeechEnd:r.func,onResult:r.func,onError:r.func,onNoMatch:r.func},w.defaultProps={timeout:3e3,ariaLabel:"speech",tabIndex:-1,style:null,className:null,onStart:null,onEnd:null,onSpeechStart:null,onSpeechEnd:null,onResult:null,onError:null,onNoMatch:null},module.exports=w; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9AdW50ZW1wcy91c2VyLXBlcm1pc3Npb25zLXV0aWxzL2Rpc3QvaW5kZXguZXMuanMiLCIuLi9zcmMvU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmpzIiwiLi4vc3JjL01pY3JvcGhvbmVJY29uLmpzIiwiLi4vc3JjL1ZvY2FsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGUoZSxyLHQsbixhLG8saSl7dHJ5e3ZhciB1PWVbb10oaSksYz11LnZhbHVlfWNhdGNoKGUpe3JldHVybiB2b2lkIHQoZSl9dS5kb25lP3IoYyk6UHJvbWlzZS5yZXNvbHZlKGMpLnRoZW4obixhKX1mdW5jdGlvbiByKHIpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihhLG8pe3ZhciBpPXIuYXBwbHkodCxuKTtmdW5jdGlvbiB1KHIpe2UoaSxhLG8sdSxjLFwibmV4dFwiLHIpfWZ1bmN0aW9uIGMocil7ZShpLGEsbyx1LGMsXCJ0aHJvd1wiLHIpfXUodm9pZCAwKX0pKX19ZnVuY3Rpb24gdChlLHIpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxyKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgU3ltYm9sfHwhKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpKXJldHVybjt2YXIgdD1bXSxuPSEwLGE9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgaSx1PWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0oaT11Lm5leHQoKSkuZG9uZSkmJih0LnB1c2goaS52YWx1ZSksIXJ8fHQubGVuZ3RoIT09cik7bj0hMCk7fWNhdGNoKGUpe2E9ITAsbz1lfWZpbmFsbHl7dHJ5e258fG51bGw9PXUucmV0dXJufHx1LnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyBvfX1yZXR1cm4gdH0oZSxyKXx8ZnVuY3Rpb24oZSxyKXtpZighZSlyZXR1cm47aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG4oZSxyKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7XCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSk7aWYoXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKGUpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbihlLHIpfShlLHIpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gbihlLHIpeyhudWxsPT1yfHxyPmUubGVuZ3RoKSYmKHI9ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLG49bmV3IEFycmF5KHIpO3Q8cjt0Kyspblt0XT1lW3RdO3JldHVybiBufXZhciBhPWZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZSh0KXtyZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdChcInJldHVyblwiLG5ldyBQcm9taXNlKGZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZShyLG4pe3ZhciBhLG87cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihuYXZpZ2F0b3IucGVybWlzc2lvbnMpe2UubmV4dD00O2JyZWFrfW4obmV3IERPTUV4Y2VwdGlvbihcIk5PVF9GT1VORF9FUlJcIixcIk5vdEZvdW5kRXJyb3JcIikpLGUubmV4dD0yMjticmVhaztjYXNlIDQ6cmV0dXJuIGUucHJldj00LGUubmV4dD03LG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeSh7bmFtZTp0fSk7Y2FzZSA3OmE9ZS5zZW50LGUudDA9YS5zdGF0ZSxlLm5leHQ9XCJkZW5pZWRcIj09PWUudDA/MTE6XCJwcm9tcHRcIj09PWUudDA/MTM6MTY7YnJlYWs7Y2FzZSAxMTpyZXR1cm4gbihuZXcgRE9NRXhjZXB0aW9uKFwiTk9UX0FMTE9XRURfRVJSXCIsXCJOb3RBbGxvd2VkRXJyb3JcIikpLGUuYWJydXB0KFwiYnJlYWtcIiwxNyk7Y2FzZSAxMzpyZXR1cm4gbz1mdW5jdGlvbiBlKHQpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLGUpLFwiZGVuaWVkXCI9PT10LnRhcmdldC5zdGF0ZT9uKG5ldyBET01FeGNlcHRpb24oXCJOT1RfQUxMT1dFRF9FUlJcIixcIk5vdEFsbG93ZWRFcnJvclwiKSk6cih0LnRhcmdldC5zdGF0ZSl9LGEuYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLG8pLGUuYWJydXB0KFwiYnJlYWtcIiwxNyk7Y2FzZSAxNjpyKGEuc3RhdGUpO2Nhc2UgMTc6ZS5uZXh0PTIyO2JyZWFrO2Nhc2UgMTk6ZS5wcmV2PTE5LGUudDE9ZS5jYXRjaCg0KSxuKGUudDEpO2Nhc2UgMjI6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsbnVsbCxbWzQsMTldXSl9KSkpO3JldHVybiBmdW5jdGlvbihyLHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpKTtjYXNlIDE6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUpfSkpKTtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSxvPWZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZShuLG8pe3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsbmV3IFByb21pc2UoZnVuY3Rpb24oKXt2YXIgZT1yKHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKChmdW5jdGlvbiBlKHIsaSl7dmFyIHUsYyxzO3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYobmF2aWdhdG9yLm1lZGlhRGV2aWNlcyl7ZS5uZXh0PTQ7YnJlYWt9aShuZXcgRE9NRXhjZXB0aW9uKFwiTk9UX0ZPVU5EX0VSUlwiLFwiTm90Rm91bmRFcnJvclwiKSksZS5uZXh0PTI0O2JyZWFrO2Nhc2UgNDpyZXR1cm4gZS5wcmV2PTQsZS50MD1Qcm9taXNlLGUubmV4dD04LGEobik7Y2FzZSA4OnJldHVybiBlLnQxPWUuc2VudCxlLm5leHQ9MTEsbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEobyk7Y2FzZSAxMTpyZXR1cm4gZS50Mj1lLnNlbnQsZS50Mz1bZS50MSxlLnQyXSxlLm5leHQ9MTUsZS50MC5hbGwuY2FsbChlLnQwLGUudDMpO2Nhc2UgMTU6dT1lLnNlbnQsYz10KHUsMikscz1jWzFdLHIocyksZS5uZXh0PTI0O2JyZWFrO2Nhc2UgMjE6ZS5wcmV2PTIxLGUudDQ9ZS5jYXRjaCg0KSxpKGUudDQpO2Nhc2UgMjQ6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsbnVsbCxbWzQsMjFdXSl9KSkpO3JldHVybiBmdW5jdGlvbihyLHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpKTtjYXNlIDE6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUpfSkpKTtyZXR1cm4gZnVuY3Rpb24ocix0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO2V4cG9ydHthIGFzIGdldFBlcm1pc3Npb24sbyBhcyBnZXRVc2VyTWVkaWFTdHJlYW19O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndVpYTXVhbk1pTENKemIzVnlZMlZ6SWpwYklpNHVMM055WXk5blpYUlFaWEp0YVhOemFXOXVMbXB6SWl3aUxpNHZjM0pqTDJkbGRGVnpaWEpOWldScFlWTjBjbVZoYlM1cWN5SmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lwY2JpQXFJRkpsZEhWeWJuTWdZU0J3Y205dGFYTmxJSEpsYzI5c2RtVmtJSGRvWlc0Z2RHaGxJSEJsY20xcGMzTnBiMjRnYVhNZ1ozSmhiblJsWkNCaWVTQjBhR1VnZFhObGNseHVJQ29nUUhCaGNtRnRJSEJsY20xcGMzTnBiMjVPWVcxbElDQWdJQ0FnSUNBZ0lDQWdUbUZ0WlNCdlppQjBhR1VnY0dWeWJXbHpjMmx2Ymk0Z1FITmxaU0JvZEhSd2N6b3ZMM2N6WXk1bmFYUm9kV0l1YVc4dmNHVnliV2x6YzJsdmJuTXZJMlZ1ZFcxa1pXWXRjR1Z5YldsemMybHZibTVoYldWY2JpQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxmVnh1SUNvdlhHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCaGMzbHVZeUFvY0dWeWJXbHpjMmx2Yms1aGJXVXBJRDArSUh0Y2JseDBjbVYwZFhKdUlHNWxkeUJRY205dGFYTmxLR0Z6ZVc1aklDaHlaWE52YkhabExDQnlaV3BsWTNRcElEMCtJSHRjYmx4MFhIUnBaaUFvSVc1aGRtbG5ZWFJ2Y2k1d1pYSnRhWE56YVc5dWN5a2dlMXh1WEhSY2RGeDBjbVZxWldOMEtHNWxkeUJFVDAxRmVHTmxjSFJwYjI0b0owNVBWRjlHVDFWT1JGOUZVbEluTENBblRtOTBSbTkxYm1SRmNuSnZjaWNwS1Z4dVhIUmNkSDBnWld4elpTQjdYRzVjZEZ4MFhIUjBjbmtnZTF4dVhIUmNkRngwWEhSamIyNXpkQ0J3WlhKdGFYTnphVzl1VTNSaGRIVnpJRDBnWVhkaGFYUWdibUYyYVdkaGRHOXlMbkJsY20xcGMzTnBiMjV6TG5GMVpYSjVLSHNnYm1GdFpUb2djR1Z5YldsemMybHZiazVoYldVZ2ZTbGNibHgwWEhSY2RGeDBjM2RwZEdOb0lDaHdaWEp0YVhOemFXOXVVM1JoZEhWekxuTjBZWFJsS1NCN1hHNWNkRngwWEhSY2RGeDBZMkZ6WlNBblpHVnVhV1ZrSnpwY2JseDBYSFJjZEZ4MFhIUmNkSEpsYW1WamRDaHVaWGNnUkU5TlJYaGpaWEIwYVc5dUtDZE9UMVJmUVV4TVQxZEZSRjlGVWxJbkxDQW5UbTkwUVd4c2IzZGxaRVZ5Y205eUp5a3BYRzVjZEZ4MFhIUmNkRngwWEhSaWNtVmhhMXh1WEhSY2RGeDBYSFJjZEdOaGMyVWdKM0J5YjIxd2RDYzZYRzVjZEZ4MFhIUmNkRngwWEhSamIyNXpkQ0J2YmtOb1lXNW5aU0E5SUNobGRtVnVkQ2tnUFQ0Z2UxeHVYSFJjZEZ4MFhIUmNkRngwWEhSd1pYSnRhWE56YVc5dVUzUmhkSFZ6TG5KbGJXOTJaVVYyWlc1MFRHbHpkR1Z1WlhJb0oyTm9ZVzVuWlNjc0lHOXVRMmhoYm1kbEtWeHVYSFJjZEZ4MFhIUmNkRngwWEhScFppQW9aWFpsYm5RdWRHRnlaMlYwTG5OMFlYUmxJRDA5UFNBblpHVnVhV1ZrSnlrZ2UxeHVYSFJjZEZ4MFhIUmNkRngwWEhSY2RISmxhbVZqZENodVpYY2dSRTlOUlhoalpYQjBhVzl1S0NkT1QxUmZRVXhNVDFkRlJGOUZVbEluTENBblRtOTBRV3hzYjNkbFpFVnljbTl5SnlrcFhHNWNkRngwWEhSY2RGeDBYSFJjZEgwZ1pXeHpaU0I3WEc1Y2RGeDBYSFJjZEZ4MFhIUmNkRngwY21WemIyeDJaU2hsZG1WdWRDNTBZWEpuWlhRdWMzUmhkR1VwWEc1Y2RGeDBYSFJjZEZ4MFhIUmNkSDFjYmx4MFhIUmNkRngwWEhSY2RIMWNibHgwWEhSY2RGeDBYSFJjZEhCbGNtMXBjM05wYjI1VGRHRjBkWE11WVdSa1JYWmxiblJNYVhOMFpXNWxjaWduWTJoaGJtZGxKeXdnYjI1RGFHRnVaMlVwWEc1Y2RGeDBYSFJjZEZ4MFhIUmljbVZoYTF4dVhIUmNkRngwWEhSY2RHUmxabUYxYkhRNlhHNWNkRngwWEhSY2RGeDBYSFJ5WlhOdmJIWmxLSEJsY20xcGMzTnBiMjVUZEdGMGRYTXVjM1JoZEdVcFhHNWNkRngwWEhSY2RIMWNibHgwWEhSY2RIMGdZMkYwWTJnZ0tHVnljbTl5S1NCN1hHNWNkRngwWEhSY2RISmxhbVZqZENobGNuSnZjaWxjYmx4MFhIUmNkSDFjYmx4MFhIUjlYRzVjZEgwcFhHNTlYRzRpTENKcGJYQnZjblFnWjJWMFVHVnliV2x6YzJsdmJpQm1jbTl0SUNjdUwyZGxkRkJsY20xcGMzTnBiMjRuWEc1Y2JpOHFLbHh1SUNvZ1VtVjBkWEp1Y3lCaElIQnliMjFwYzJVZ2NtVnpiMngyWldRZ2QyaGxiaUIwYUdVZ2JXVmthV0VnYVhNZ1lYVjBhRzl5YVhwbFpDQmhibVFnZEdobElITjBjbVZoYlNCcGN5QnlaWFJ5YVdWMlpXUmNiaUFxSUVCd1lYSmhiU0J3WlhKdGFYTnphVzl1VG1GdFpTQWdJQ0FnSUNBZ0lDQWdJRTVoYldVZ2IyWWdkR2hsSUhCbGNtMXBjM05wYjI0dUlFQnpaV1VnYUhSMGNITTZMeTkzTTJNdVoybDBhSFZpTG1sdkwzQmxjbTFwYzNOcGIyNXpMeU5sYm5WdFpHVm1MWEJsY20xcGMzTnBiMjV1WVcxbFhHNGdLaUJBY0dGeVlXMGdiV1ZrYVdGVGRISmxZVzFEYjI1emRISmhhVzUwY3lBZ0lDQkRiMjV6ZEhKaGFXNTBjeUJ2WW1wbFkzUXVJRUJ6WldVZ2FIUjBjSE02THk5a1pYWmxiRzl3WlhJdWJXOTZhV3hzWVM1dmNtY3ZaVzR0VlZNdlpHOWpjeTlYWldJdlFWQkpMMDFsWkdsaFUzUnlaV0Z0UTI5dWMzUnlZV2x1ZEhOY2JpQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxmVnh1SUNvdlhHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCaGMzbHVZeUFvY0dWeWJXbHpjMmx2Yms1aGJXVXNJRzFsWkdsaFUzUnlaV0Z0UTI5dWMzUnlZV2x1ZEhNcElEMCtJSHRjYmx4MGNtVjBkWEp1SUc1bGR5QlFjbTl0YVhObEtHRnplVzVqSUNoeVpYTnZiSFpsTENCeVpXcGxZM1FwSUQwK0lIdGNibHgwWEhScFppQW9JVzVoZG1sbllYUnZjaTV0WldScFlVUmxkbWxqWlhNcElIdGNibHgwWEhSY2RISmxhbVZqZENodVpYY2dSRTlOUlhoalpYQjBhVzl1S0NkT1QxUmZSazlWVGtSZlJWSlNKeXdnSjA1dmRFWnZkVzVrUlhKeWIzSW5LU2xjYmx4MFhIUjlJR1ZzYzJVZ2UxeHVYSFJjZEZ4MGRISjVJSHRjYmx4MFhIUmNkRngwWTI5dWMzUWdXeXdnYzNSeVpXRnRYU0E5SUdGM1lXbDBJRkJ5YjIxcGMyVXVZV3hzS0Z0Y2JseDBYSFJjZEZ4MFhIUmhkMkZwZENCblpYUlFaWEp0YVhOemFXOXVLSEJsY20xcGMzTnBiMjVPWVcxbEtTeGNibHgwWEhSY2RGeDBYSFJoZDJGcGRDQnVZWFpwWjJGMGIzSXViV1ZrYVdGRVpYWnBZMlZ6TG1kbGRGVnpaWEpOWldScFlTaHRaV1JwWVZOMGNtVmhiVU52Ym5OMGNtRnBiblJ6S1N4Y2JseDBYSFJjZEZ4MFhTbGNibHgwWEhSY2RGeDBjbVZ6YjJ4MlpTaHpkSEpsWVcwcFhHNWNkRngwWEhSOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dVhIUmNkRngwWEhSeVpXcGxZM1FvWlhKeWIzSXBYRzVjZEZ4MFhIUjlYRzVjZEZ4MGZWeHVYSFI5S1Z4dWZWeHVJbDBzSW01aGJXVnpJanBiSW5CbGNtMXBjM05wYjI1T1lXMWxJaXdpVUhKdmJXbHpaU0lzSW5KbGMyOXNkbVVpTENKeVpXcGxZM1FpTENKdVlYWnBaMkYwYjNJaUxDSndaWEp0YVhOemFXOXVjeUlzSWtSUFRVVjRZMlZ3ZEdsdmJpSXNJbkYxWlhKNUlpd2libUZ0WlNJc0luQmxjbTFwYzNOcGIyNVRkR0YwZFhNaUxDSnpkR0YwWlNJc0ltOXVRMmhoYm1kbElpd2laWFpsYm5RaUxDSnlaVzF2ZG1WRmRtVnVkRXhwYzNSbGJtVnlJaXdpZEdGeVoyVjBJaXdpWVdSa1JYWmxiblJNYVhOMFpXNWxjaUlzSW0xbFpHbGhVM1J5WldGdFEyOXVjM1J5WVdsdWRITWlMQ0p0WldScFlVUmxkbWxqWlhNaUxDSm5aWFJRWlhKdGFYTnphVzl1SWl3aVoyVjBWWE5sY2sxbFpHbGhJaXdpWVd4c0lpd2ljM1J5WldGdElsMHNJbTFoY0hCcGJtZHpJam9pYlhkRFFVdEJMR3RFUVVGbExGZEJRVTlCTERSSFFVTmtMRWxCUVVsRExHOUVRVUZSTEZkQlFVOURMRVZCUVZORExEaEdRVU0zUWtNc1ZVRkJWVU1zTkVKQlEyUkdMRVZCUVU4c1NVRkJTVWNzWVVGQllTeG5Ra0ZCYVVJc2EwVkJSMVJHTEZWQlFWVkRMRmxCUVZsRkxFMUJRVTBzUTBGQlJVTXNTMEZCVFZJc1YwRkJOMFJUTEdOQlEwVkJMRVZCUVdsQ1F5eGhRVU51UWl4dFFrRkhRU3d5UTBGR1NsQXNSVUZCVHl4SlFVRkpSeXhoUVVGaExHdENRVUZ0UWl4M1JFRkhja05MTEVWQlFWY3NVMEZCV0VFc1JVRkJXVU1zUjBGRGFrSklMRVZCUVdsQ1NTeHZRa0ZCYjBJc1UwRkJWVVlzUjBGRGNFSXNWMEZCZGtKRExFVkJRVTFGTEU5QlFVOUtMRTFCUTJoQ1VDeEZRVUZQTEVsQlFVbEhMR0ZCUVdFc2EwSkJRVzFDTEc5Q1FVVXpRMG9zUlVGQlVWVXNSVUZCVFVVc1QwRkJUMG9zVVVGSGRrSkVMRVZCUVdsQ1RTeHBRa0ZCYVVJc1UwRkJWVW9zWjBOQlJ6VkRWQ3hGUVVGUlR5eEZRVUZwUWtNc2FVVkJSek5DVUN3eVVVTjJRbGNzVjBGQlQwZ3NSVUZCWjBKblFpdzBSMEZET1VJc1NVRkJTV1lzYjBSQlFWRXNWMEZCVDBNc1JVRkJVME1zWjBkQlF6ZENReXhWUVVGVllTdzJRa0ZEWkdRc1JVRkJUeXhKUVVGSlJ5eGhRVUZoTEdkQ1FVRnBRaXc0UkVGSFprd3NhVUpCUTJ4Q2FVSXNSVUZCWTJ4Q0xIVkRRVU5rU1N4VlFVRlZZU3hoUVVGaFJTeGhRVUZoU0N3NFJFRkdWa2tzT0VOQlFYaENReXhQUVVsVWJrSXNSVUZCVVcxQ0xIRkVRVVZTYkVJaWZRPT1cbiIsImltcG9ydCB7IGdldFVzZXJNZWRpYVN0cmVhbSB9IGZyb20gJ0B1bnRlbXBzL3VzZXItcGVybWlzc2lvbnMtdXRpbHMnXG5cbmNsYXNzIFNwZWVjaFJlY29nbml0aW9uV3JhcHBlciB7XG5cdHN0YXRpYyBkZWZhdWx0T3B0aW9ucyA9IHtcblx0XHRsYW5nOiAnZnItRlInLFxuXHRcdGNvbnRpbnVvdXM6IGZhbHNlLFxuXHRcdGludGVyaW1SZXN1bHRzOiBmYWxzZSxcblx0XHRtYXhBbHRlcm5hdGl2ZXM6IDEsXG5cdH1cblxuXHRzdGF0aWMgZXZlbnRUeXBlcyA9IHtcblx0XHRBVURJT19FTkQ6ICdhdWRpb2VuZCcsXG5cdFx0QVVESU9fU1RBUlQ6ICdhdWRpb3N0YXJ0Jyxcblx0XHRFTkQ6ICdlbmQnLFxuXHRcdEVSUk9SOiAnZXJyb3InLFxuXHRcdE5PX01BVENIOiAnbm9tYXRjaCcsXG5cdFx0UkVTVUxUOiAncmVzdWx0Jyxcblx0XHRTT1VORF9FTkQ6ICdzb3VuZGVuZCcsXG5cdFx0U09VTkRfU1RBUlQ6ICdzb3VuZHN0YXJ0Jyxcblx0XHRTUEVFQ0hfRU5EOiAnc3BlZWNoZW5kJyxcblx0XHRTUEVFQ0hfU1RBUlQ6ICdzcGVlY2hzdGFydCcsXG5cdFx0U1RBUlQ6ICdzdGFydCcsXG5cdH1cblxuXHRzdGF0aWMgZ2V0IGlzU3VwcG9ydGVkKCkge1xuXHRcdHJldHVybiAoXG5cdFx0XHQhIXdpbmRvdy5TcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0ISF3aW5kb3cud2Via2l0U3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdCEhd2luZG93Lm1velNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHQhIXdpbmRvdy5tc1NwZWVjaFJlY29nbml0aW9uXG5cdFx0KVxuXHR9XG5cblx0c3RhdGljIHNldCBpc1N1cHBvcnRlZChfKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHNldCBpc1N1cHBvcnRlZCBkaXJlY3RseS4nKVxuXHR9XG5cblx0X2luc3RhbmNlID0gbnVsbFxuXHRfbGlzdGVuZXJzID0gbnVsbFxuXG5cdGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcblx0XHRjb25zdCBTcGVlY2hSZWNvZ25pdGlvbiA9XG5cdFx0XHR3aW5kb3cuU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHdpbmRvdy53ZWJraXRTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0d2luZG93Lm1velNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHR3aW5kb3cubXNTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0e31cblx0XHR0aGlzLl9pbnN0YW5jZSA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpXG5cdFx0dGhpcy5fbGlzdGVuZXJzID0ge31cblxuXHRcdE9iamVjdC5lbnRyaWVzKHsgLi4uU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmRlZmF1bHRPcHRpb25zLCAuLi4ob3B0aW9ucyB8fCB7fSkgfSkuZm9yRWFjaChcblx0XHRcdChba2V5LCB2YWx1ZV0pID0+ICh0aGlzLl9pbnN0YW5jZVtrZXldID0gdmFsdWUpXG5cdFx0KVxuXHR9XG5cblx0Z2V0IGluc3RhbmNlKCkge1xuXHRcdHJldHVybiB0aGlzLl9pbnN0YW5jZVxuXHR9XG5cblx0c2V0IGluc3RhbmNlKF8pIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3Qgc2V0IGluc3RhbmNlIGRpcmVjdGx5LicpXG5cdH1cblxuXHRhc3luYyBzdGFydCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0VXNlck1lZGlhU3RyZWFtKCdtaWNyb3Bob25lJywgeyBhdWRpbzogdHJ1ZSB9KVxuXHRcdFx0XHRpZiAoIXN0cmVhbSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJldHJpZXZlIHRoZSBzdHJlYW0gZnJvbSBtZWRpYSBkZXZpY2UnKVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuX2luc3RhbmNlLnN0YXJ0KClcblx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRcdGNvbnN0IGVycm9ySGFuZGxlciA9IHRoaXMuX2xpc3RlbmVycy5lcnJvclxuXHRcdFx0XHRpZiAoISFlcnJvckhhbmRsZXIpIHtcblx0XHRcdFx0XHRlcnJvckhhbmRsZXIoZXJyb3IpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0c3RvcCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dGhpcy5faW5zdGFuY2Uuc3RvcCgpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdGFib3J0KCkge1xuXHRcdGlmICghIXRoaXMuX2luc3RhbmNlKSB7XG5cdFx0XHR0aGlzLl9pbnN0YW5jZS5hYm9ydCgpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdGFkZEV2ZW50TGlzdGVuZXIodHlwZSwgY2FsbGJhY2spIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSAmJiB0aGlzLl9pbmNsdWRlc0V2ZW50VHlwZSh0eXBlKSkge1xuXHRcdFx0aWYgKCEhdGhpcy5fbGlzdGVuZXJzW3R5cGVdKSB7XG5cdFx0XHRcdHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlKVxuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBoYW5kbGVyID0gKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGxldCBhZGRpdGlvbmFsQXJncyA9IFtdXG5cdFx0XHRcdGlmICh0eXBlID09PSBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuZXZlbnRUeXBlcy5SRVNVTFQpIHtcblx0XHRcdFx0XHRpZiAoISFldmVudC5yZXN1bHRzICYmIGV2ZW50LnJlc3VsdHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0YWRkaXRpb25hbEFyZ3MucHVzaChldmVudC5yZXN1bHRzWzBdWzBdLnRyYW5zY3JpcHQpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0ISFjYWxsYmFjayAmJiBjYWxsYmFjay5hcHBseSh0aGlzLCBbLi4uYWRkaXRpb25hbEFyZ3MsIGV2ZW50XSlcblx0XHRcdH1cblx0XHRcdHRoaXMuX2luc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgKGUpID0+IGhhbmRsZXIoZSkpXG5cblx0XHRcdHRoaXMuX2xpc3RlbmVyc1t0eXBlXSA9IGhhbmRsZXJcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0cmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlKSB7XG5cdFx0Y29uc3QgaGFuZGxlciA9IHRoaXMuX2xpc3RlbmVyc1t0eXBlXVxuXHRcdHRoaXMuX2luc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgaGFuZGxlcilcblxuXHRcdGRlbGV0ZSB0aGlzLl9saXN0ZW5lcnNbdHlwZV1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRjbGVhbnVwKCkge1xuXHRcdHRoaXMuc3RvcCgpXG5cblx0XHRPYmplY3Qua2V5cyh0aGlzLl9saXN0ZW5lcnMpLmZvckVhY2goKGtleSkgPT4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGtleSkpXG5cdFx0dGhpcy5faW5zdGFuY2UgPSBudWxsXG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0X2luY2x1ZGVzRXZlbnRUeXBlID0gKGV2ZW50VHlwZSkgPT5cblx0XHRPYmplY3QudmFsdWVzKFNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5ldmVudFR5cGVzKS5maW5kKCh0eXBlKSA9PiB0eXBlID09PSBldmVudFR5cGUpXG59XG5cbmV4cG9ydCBkZWZhdWx0IFNwZWVjaFJlY29nbml0aW9uV3JhcHBlclxuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5jb25zdCBNaWNyb3Bob25lSWNvbiA9ICh7IGljb25Db2xvciA9ICdibGFjaycsIGFjdGl2ZUNvbG9yID0gJ3JlZCcsIGlzQWN0aXZlID0gZmFsc2UgfSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG5cdFx0XHQ8Zz5cblx0XHRcdFx0PHBhdGhcblx0XHRcdFx0XHRmaWxsPXtpY29uQ29sb3J9XG5cdFx0XHRcdFx0ZD1cIk0xMiAxNGMxLjY2IDAgMi45OS0xLjM0IDIuOTktM0wxNSA1YzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDV2NmMwIDEuNjYgMS4zNCAzIDMgM3ptNS4zLTNjMCAzLTIuNTQgNS4xLTUuMyA1LjFTNi43IDE0IDYuNyAxMUg1YzAgMy40MSAyLjcyIDYuMjMgNiA2LjcyVjIxaDJ2LTMuMjhjMy4yOC0uNDggNi0zLjMgNi02LjcyaC0xLjd6XCJcblx0XHRcdFx0Lz5cblx0XHRcdFx0e2lzQWN0aXZlICYmIDxjaXJjbGUgZmlsbD17YWN0aXZlQ29sb3J9IGN4PVwiMTZcIiBjeT1cIjRcIiByPVwiNFwiIC8+fVxuXHRcdFx0PC9nPlxuXHRcdDwvc3ZnPlxuXHQpXG59XG5cbmV4cG9ydCBkZWZhdWx0IE1pY3JvcGhvbmVJY29uXG4iLCJpbXBvcnQgUmVhY3QsIHsgY2xvbmVFbGVtZW50LCBpc1ZhbGlkRWxlbWVudCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG5cbmltcG9ydCBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIgZnJvbSAnLi9TcGVlY2hSZWNvZ25pdGlvbldyYXBwZXInXG5cbmltcG9ydCBNaWNyb3Bob25lSWNvbiBmcm9tICcuL01pY3JvcGhvbmVJY29uJ1xuXG5jb25zdCBWb2NhbCA9ICh7XG5cdGNoaWxkcmVuLFxuXHR0aW1lb3V0LFxuXHRhcmlhTGFiZWwsXG5cdHRhYkluZGV4LFxuXHRzdHlsZSxcblx0Y2xhc3NOYW1lLFxuXHRvblN0YXJ0LFxuXHRvbkVuZCxcblx0b25TcGVlY2hTdGFydCxcblx0b25TcGVlY2hFbmQsXG5cdG9uUmVzdWx0LFxuXHRvbkVycm9yLFxuXHRvbk5vTWF0Y2gsXG5cdF9fcmVjb2duaXRpb25JbnN0YW5jZSxcbn0pID0+IHtcblx0Y29uc3QgdGltZW91dFJlZiA9IHVzZVJlZihudWxsKVxuXHRjb25zdCByZWNvZ25pdGlvblJlZiA9IHVzZVJlZihudWxsKVxuXG5cdGNvbnN0IFtpc0xpc3RlbmluZywgc2V0SXNMaXN0ZW5pbmddID0gdXNlU3RhdGUoZmFsc2UpXG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmlzU3VwcG9ydGVkKSB7XG5cdFx0XHRyZWNvZ25pdGlvblJlZi5jdXJyZW50ID0gX19yZWNvZ25pdGlvbkluc3RhbmNlIHx8IG5ldyBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIoKVxuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0cmVjb2duaXRpb25SZWYuY3VycmVudC5hYm9ydCgpXG5cdFx0XHRcdHJlY29nbml0aW9uUmVmLmN1cnJlbnQuY2xlYW51cCgpXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpXG5cdFx0XHR9XG5cdFx0fVxuXHR9LCBbX19yZWNvZ25pdGlvbkluc3RhbmNlXSlcblxuXHRjb25zdCBzdGFydFRpbWVyID0gKCkgPT4ge1xuXHRcdHRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoX29uRW5kLCB0aW1lb3V0KVxuXHR9XG5cblx0Y29uc3Qgc3RvcFRpbWVyID0gKCkgPT4ge1xuXHRcdGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpXG5cdFx0dGltZW91dFJlZi5jdXJyZW50ID0gbnVsbFxuXHR9XG5cblx0Y29uc3Qgc3RhcnRSZWNvZ25pdGlvbiA9ICgpID0+IHtcblx0XHR0cnkge1xuXHRcdFx0c2V0SXNMaXN0ZW5pbmcodHJ1ZSlcblxuXHRcdFx0Y29uc3QgeyBjdXJyZW50OiByIH0gPSByZWNvZ25pdGlvblJlZlxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzdGFydCcsIF9vblN0YXJ0KVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdlbmQnLCBfb25FbmQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3NwZWVjaHN0YXJ0JywgX29uU3BlZWNoU3RhcnQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3NwZWVjaGVuZCcsIF9vblNwZWVjaEVuZClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcigncmVzdWx0JywgX29uUmVzdWx0KVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIF9vbkVycm9yKVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdub21hdGNoJywgX29uTm9NYXRjaClcblx0XHRcdHIuc3RhcnQoKVxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRfb25FcnJvcihlcnJvcilcblx0XHR9XG5cdH1cblxuXHRjb25zdCBzdG9wUmVjb2duaXRpb24gPSAoKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdHNldElzTGlzdGVuaW5nKGZhbHNlKVxuXG5cdFx0XHRjb25zdCB7IGN1cnJlbnQ6IHIgfSA9IHJlY29nbml0aW9uUmVmXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N0YXJ0JywgX29uU3RhcnQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2VuZCcsIF9vbkVuZClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3BlZWNoc3RhcnQnLCBfb25TcGVlY2hTdGFydClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3BlZWNoZW5kJywgX29uU3BlZWNoRW5kKVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXN1bHQnLCBfb25SZXN1bHQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgX29uRXJyb3IpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ25vbWF0Y2gnLCBfb25Ob01hdGNoKVxuXHRcdFx0ci5zdG9wKClcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0ISFvbkVycm9yICYmIG9uRXJyb3IoZXJyb3IpXG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgc3RhcnQgPSAoKSA9PiB7XG5cdFx0c3RhcnRUaW1lcigpXG5cdH1cblxuXHRjb25zdCBlbmQgPSAoKSA9PiB7XG5cdFx0c3RvcFRpbWVyKClcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXHR9XG5cblx0Y29uc3QgX29uQ2xpY2sgPSAoKSA9PiB7XG5cdFx0c3RhcnRSZWNvZ25pdGlvbigpXG5cdH1cblxuXHRjb25zdCBfb25TdGFydCA9IChlKSA9PiB7XG5cdFx0c3RhcnQoKVxuXG5cdFx0ISFvblN0YXJ0ICYmIG9uU3RhcnQoZSlcblx0fVxuXG5cdGNvbnN0IF9vbkVuZCA9IChlKSA9PiB7XG5cdFx0ZW5kKClcblxuXHRcdCEhb25FbmQgJiYgb25FbmQoZSlcblx0fVxuXG5cdGNvbnN0IF9vblNwZWVjaFN0YXJ0ID0gKGUpID0+IHtcblx0XHRzdG9wVGltZXIoKVxuXG5cdFx0ISFvblNwZWVjaFN0YXJ0ICYmIG9uU3BlZWNoU3RhcnQoZSlcblx0fVxuXG5cdGNvbnN0IF9vblNwZWVjaEVuZCA9IChlKSA9PiB7XG5cdFx0c3RhcnRUaW1lcigpXG5cblx0XHQhIW9uU3BlZWNoRW5kICYmIG9uU3BlZWNoRW5kKGUpXG5cdH1cblxuXHRjb25zdCBfb25SZXN1bHQgPSAocmVzdWx0LCBldmVudCkgPT4ge1xuXHRcdHN0b3BSZWNvZ25pdGlvbigpXG5cblx0XHQhIW9uUmVzdWx0ICYmIG9uUmVzdWx0KHJlc3VsdCwgZXZlbnQpXG5cdH1cblxuXHRjb25zdCBfb25FcnJvciA9IChlcnJvcikgPT4ge1xuXHRcdHN0b3BSZWNvZ25pdGlvbigpXG5cblx0XHQhIW9uRXJyb3IgJiYgb25FcnJvcihlcnJvcilcblx0fVxuXG5cdGNvbnN0IF9vbk5vTWF0Y2ggPSAoZSkgPT4ge1xuXHRcdCEhb25Ob01hdGNoICYmIG9uTm9NYXRjaChlKVxuXHR9XG5cblx0Y29uc3QgX3JlbmRlckRlZmF1bHQgPSAoKSA9PiAoXG5cdFx0PGRpdlxuXHRcdFx0ZGF0YS10ZXN0aWQ9XCJfX3ZvY2FsLXJvb3RfX1wiXG5cdFx0XHRyb2xlPVwiYnV0dG9uXCJcblx0XHRcdGFyaWEtbGFiZWw9e2FyaWFMYWJlbH1cblx0XHRcdHRhYkluZGV4PXt0YWJJbmRleH1cblx0XHRcdHN0eWxlPXtjbGFzc05hbWUgPyBudWxsIDogeyB3aWR0aDogMjQsIGhlaWdodDogMjQsIGN1cnNvcjogIWlzTGlzdGVuaW5nID8gJ3BvaW50ZXInIDogbnVsbCwgLi4uc3R5bGUgfX1cblx0XHRcdGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuXHRcdD5cblx0XHRcdDxNaWNyb3Bob25lSWNvbiBpc0FjdGl2ZT17aXNMaXN0ZW5pbmd9IGljb25Db2xvcj1cIiNhYWFcIiAvPlxuXHRcdDwvZGl2PlxuXHQpXG5cblx0cmV0dXJuIChcblx0XHRTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuaXNTdXBwb3J0ZWQgJiZcblx0XHRjbG9uZUVsZW1lbnQoaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pID8gY2hpbGRyZW4gOiBfcmVuZGVyRGVmYXVsdCgpLCB7XG5cdFx0XHQuLi4oIWlzTGlzdGVuaW5nICYmIHsgb25DbGljazogX29uQ2xpY2sgfSksXG5cdFx0fSlcblx0KVxufVxuXG5Wb2NhbC5wcm9wVHlwZXMgPSB7XG5cdC8qKiBEZWZpbmVzIHRoZSB0aW1lIGluIG1zIHRvIHdhaXQgYmVmb3JlIGRpc2NhcmRpbmcgdGhlIHJlY29nbml0aW9uICovXG5cdHRpbWVvdXQ6IFByb3BUeXBlcy5udW1iZXIsXG5cdC8qKiBEZWZpbmVzIHRoZSBhMTF5IGxhYmVsIGZvciB0aGUgZGVmYXVsdCBidXR0b24gKi9cblx0YXJpYUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuXHQvKiogRGVmaW5lcyB0aGUgYTExeSB0YWIgaW5kZXggZm9yIHRoZSBkZWZhdWx0IGJ1dHRvbiAqL1xuXHR0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcblx0LyoqIERlZmluZXMgdGhlIHN0eWxlcyBvZiB0aGUgZGVmYXVsdCBlbGVtZW50IGlmIGNsYXNzTmFtZSBpcyBub3Qgc3BlY2lmaWVkICovXG5cdHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuXHQvKiogRGVmaW5lcyB0aGUgY2xhc3Mgb2YgdGhlIGRlZmF1bHQgZWxlbWVudCAqL1xuXHRjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSByZWNvZ25pdGlvbiBzdGFydHMgKi9cblx0b25TdGFydDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSByZWNvZ25pdGlvbiBlbmRzICovXG5cdG9uRW5kOiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHNwZWVjaCBzdGFydHMgKi9cblx0b25TcGVlY2hTdGFydDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBzcGVlY2ggZW5kcyAqL1xuXHRvblNwZWVjaEVuZDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIGEgcmVzdWx0IGlzIHJlY29nbml6ZWQgKi9cblx0b25SZXN1bHQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMgKi9cblx0b25FcnJvcjogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIG5vIHJlc3VsdCBjYW4gYmUgcmVjb2duaXplZCAqL1xuXHRvbk5vTWF0Y2g6IFByb3BUeXBlcy5mdW5jLFxufVxuXG5Wb2NhbC5kZWZhdWx0UHJvcHMgPSB7XG5cdHRpbWVvdXQ6IDMwMDAsXG5cdGFyaWFMYWJlbDogJ3NwZWVjaCcsXG5cdHRhYkluZGV4OiAtMSxcblx0c3R5bGU6IG51bGwsXG5cdGNsYXNzTmFtZTogbnVsbCxcblx0b25TdGFydDogbnVsbCxcblx0b25FbmQ6IG51bGwsXG5cdG9uU3BlZWNoU3RhcnQ6IG51bGwsXG5cdG9uU3BlZWNoRW5kOiBudWxsLFxuXHRvblJlc3VsdDogbnVsbCxcblx0b25FcnJvcjogbnVsbCxcblx0b25Ob01hdGNoOiBudWxsLFxufVxuXG5leHBvcnQgZGVmYXVsdCBWb2NhbFxuIl0sIm5hbWVzIjpbImUiLCJyIiwidCIsIm4iLCJhIiwibyIsImkiLCJ1IiwiYyIsInZhbHVlIiwiZG9uZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsInRoaXMiLCJhcmd1bWVudHMiLCJhcHBseSIsIkFycmF5IiwiaXNBcnJheSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiT2JqZWN0IiwibmV4dCIsInB1c2giLCJsZW5ndGgiLCJyZXR1cm4iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiVHlwZUVycm9yIiwicmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIndyYXAiLCJwcmV2IiwiYWJydXB0IiwibmF2aWdhdG9yIiwicGVybWlzc2lvbnMiLCJET01FeGNlcHRpb24iLCJxdWVyeSIsInNlbnQiLCJ0MCIsInN0YXRlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInRhcmdldCIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0MSIsImNhdGNoIiwic3RvcCIsInMiLCJtZWRpYURldmljZXMiLCJnZXRVc2VyTWVkaWEiLCJ0MiIsInQzIiwiYWxsIiwidDQiLCJTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIiLCJvcHRpb25zIiwiZXZlbnRUeXBlIiwidmFsdWVzIiwiZXZlbnRUeXBlcyIsImZpbmQiLCJ0eXBlIiwiU3BlZWNoUmVjb2duaXRpb24iLCJ3aW5kb3ciLCJ3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbiIsIm1velNwZWVjaFJlY29nbml0aW9uIiwibXNTcGVlY2hSZWNvZ25pdGlvbiIsIl9pbnN0YW5jZSIsIl9saXN0ZW5lcnMiLCJlbnRyaWVzIiwiZGVmYXVsdE9wdGlvbnMiLCJmb3JFYWNoIiwia2V5IiwiX3RoaXMiLCJfIiwiRXJyb3IiLCJnZXRVc2VyTWVkaWFTdHJlYW0iLCJhdWRpbyIsInN0YXJ0IiwiZXJyb3JIYW5kbGVyIiwiZXJyb3IiLCJhYm9ydCIsImNhbGxiYWNrIiwiX2luY2x1ZGVzRXZlbnRUeXBlIiwiaGFuZGxlciIsImV2ZW50IiwiYWRkaXRpb25hbEFyZ3MiLCJSRVNVTFQiLCJyZXN1bHRzIiwidHJhbnNjcmlwdCIsIl90aGlzMiIsImtleXMiLCJfdGhpczMiLCJsYW5nIiwiY29udGludW91cyIsImludGVyaW1SZXN1bHRzIiwibWF4QWx0ZXJuYXRpdmVzIiwiQVVESU9fRU5EIiwiQVVESU9fU1RBUlQiLCJFTkQiLCJFUlJPUiIsIk5PX01BVENIIiwiU09VTkRfRU5EIiwiU09VTkRfU1RBUlQiLCJTUEVFQ0hfRU5EIiwiU1BFRUNIX1NUQVJUIiwiU1RBUlQiLCJNaWNyb3Bob25lSWNvbiIsImljb25Db2xvciIsImFjdGl2ZUNvbG9yIiwiaXNBY3RpdmUiLCJSZWFjdCIsInhtbG5zIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwiZmlsbCIsImQiLCJjeCIsImN5IiwiVm9jYWwiLCJjaGlsZHJlbiIsInRpbWVvdXQiLCJhcmlhTGFiZWwiLCJ0YWJJbmRleCIsInN0eWxlIiwiY2xhc3NOYW1lIiwib25TdGFydCIsIm9uRW5kIiwib25TcGVlY2hTdGFydCIsIm9uU3BlZWNoRW5kIiwib25SZXN1bHQiLCJvbkVycm9yIiwib25Ob01hdGNoIiwiX19yZWNvZ25pdGlvbkluc3RhbmNlIiwidGltZW91dFJlZiIsInVzZVJlZiIsInJlY29nbml0aW9uUmVmIiwidXNlU3RhdGUiLCJpc0xpc3RlbmluZyIsInNldElzTGlzdGVuaW5nIiwidXNlRWZmZWN0IiwiaXNTdXBwb3J0ZWQiLCJjdXJyZW50IiwiY2xlYW51cCIsImNsZWFyVGltZW91dCIsInN0YXJ0VGltZXIiLCJzZXRUaW1lb3V0IiwiX29uRW5kIiwic3RvcFRpbWVyIiwic3RvcFJlY29nbml0aW9uIiwiX29uU3RhcnQiLCJfb25TcGVlY2hTdGFydCIsIl9vblNwZWVjaEVuZCIsIl9vblJlc3VsdCIsIl9vbkVycm9yIiwiX29uTm9NYXRjaCIsInJlc3VsdCIsImNsb25lRWxlbWVudCIsImlzVmFsaWRFbGVtZW50Iiwicm9sZSIsImN1cnNvciIsIm9uQ2xpY2siLCJzdGFydFJlY29nbml0aW9uIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwibnVtYmVyIiwic3RyaW5nIiwib2JqZWN0IiwiZnVuYyIsImRlZmF1bHRQcm9wcyJdLCJtYXBwaW5ncyI6ImttRUFBQSxTQUFTQSxFQUFFQSxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFQyxHQUFHLElBQUksSUFBSUMsRUFBRVAsRUFBRUssR0FBR0MsR0FBR0UsRUFBRUQsRUFBRUUsTUFBTSxNQUFNVCxHQUFHLFlBQVlFLEVBQUVGLEdBQUdPLEVBQUVHLEtBQUtULEVBQUVPLEdBQUdHLFFBQVFDLFFBQVFKLEdBQUdLLEtBQUtWLEVBQUVDLEdBQUcsU0FBU0gsRUFBRUEsR0FBRyxPQUFPLFdBQVcsSUFBSUMsRUFBRVksS0FBS1gsRUFBRVksVUFBVSxPQUFPLElBQUlKLGtCQUFrQlAsRUFBRUMsR0FBRyxJQUFJQyxFQUFFTCxFQUFFZSxNQUFNZCxFQUFFQyxHQUFHLFNBQVNJLEVBQUVOLEdBQUdELEVBQUVNLEVBQUVGLEVBQUVDLEVBQUVFLEVBQUVDLEVBQUUsT0FBT1AsR0FBRyxTQUFTTyxFQUFFUCxHQUFHRCxFQUFFTSxFQUFFRixFQUFFQyxFQUFFRSxFQUFFQyxFQUFFLFFBQVFQLEdBQUdNLE9BQUUsT0FBWSxTQUFTTCxFQUFFRixFQUFFQyxHQUFHLE9BQU8sU0FBU0QsR0FBRyxHQUFHaUIsTUFBTUMsUUFBUWxCLEdBQUcsT0FBT0EsRUFBdkMsQ0FBMENBLElBQUksU0FBU0EsRUFBRUMsR0FBRyxHQUFHLG9CQUFvQmtCLFFBQVVBLE9BQU9DLFlBQVlDLE9BQU9yQixHQUEzRCxDQUFzRSxJQUFJRSxFQUFFLEdBQUdDLEdBQUUsRUFBR0MsR0FBRSxFQUFHQyxPQUFFLEVBQU8sSUFBSSxJQUFJLElBQUlDLEVBQUVDLEVBQUVQLEVBQUVtQixPQUFPQyxjQUFjakIsR0FBR0csRUFBRUMsRUFBRWUsUUFBUVosUUFBUVIsRUFBRXFCLEtBQUtqQixFQUFFRyxRQUFRUixHQUFHQyxFQUFFc0IsU0FBU3ZCLEdBQUdFLEdBQUUsSUFBSyxNQUFNSCxHQUFHSSxHQUFFLEVBQUdDLEVBQUVMLEVBQUUsUUFBUSxJQUFJRyxHQUFHLE1BQU1JLEVBQUVrQixRQUFRbEIsRUFBRWtCLFNBQVMsUUFBUSxHQUFHckIsRUFBRSxNQUFNQyxHQUFHLE9BQU9ILEdBQWhULENBQW1URixFQUFFQyxJQUFJLFNBQVNELEVBQUVDLEdBQUcsR0FBSUQsRUFBSixDQUFhLEdBQUcsaUJBQWlCQSxFQUFFLE9BQU9HLEVBQUVILEVBQUVDLEdBQUcsSUFBSUMsRUFBRW1CLE9BQU9LLFVBQVVDLFNBQVNDLEtBQUs1QixHQUFHNkIsTUFBTSxHQUFHLEdBQXVELE1BQXBELFdBQVczQixHQUFHRixFQUFFOEIsY0FBYzVCLEVBQUVGLEVBQUU4QixZQUFZQyxNQUFTLFFBQVE3QixHQUFHLFFBQVFBLEVBQVNlLE1BQU1lLEtBQUtoQyxHQUFNLGNBQWNFLEdBQUcsMkNBQTJDK0IsS0FBSy9CLEdBQVVDLEVBQUVILEVBQUVDLFFBQWxGLEdBQXBOLENBQTBTRCxFQUFFQyxJQUFJLFdBQVcsTUFBTSxJQUFJaUMsVUFBVSw2SUFBL0IsR0FBK0ssU0FBUy9CLEVBQUVILEVBQUVDLElBQUksTUFBTUEsR0FBR0EsRUFBRUQsRUFBRXdCLFVBQVV2QixFQUFFRCxFQUFFd0IsUUFBUSxJQUFJLElBQUl0QixFQUFFLEVBQUVDLEVBQUUsSUFBSWMsTUFBTWhCLEdBQUdDLEVBQUVELEVBQUVDLElBQUlDLEVBQUVELEdBQUdGLEVBQUVFLEdBQUcsT0FBT0MsRUFBRSxJQUFJQyxFQUFFLFdBQVcsSUFBSUosRUFBRUMsRUFBRWtDLG1CQUFtQkMsZUFBZXBDLEVBQUVFLEdBQUcsT0FBT2lDLG1CQUFtQkUsZUFBZXJDLEdBQUcsT0FBTyxPQUFPQSxFQUFFc0MsS0FBS3RDLEVBQUVzQixNQUFNLEtBQUssRUFBRSxPQUFPdEIsRUFBRXVDLE9BQU8sU0FBUyxJQUFJNUIsUUFBUSxXQUFXLElBQUlYLEVBQUVDLEVBQUVrQyxtQkFBbUJDLGVBQWVwQyxFQUFFQyxFQUFFRSxHQUFHLElBQUlDLEVBQUVDLEVBQUUsT0FBTzhCLG1CQUFtQkUsZUFBZXJDLEdBQUcsT0FBTyxPQUFPQSxFQUFFc0MsS0FBS3RDLEVBQUVzQixNQUFNLEtBQUssRUFBRSxHQUFHa0IsVUFBVUMsWUFBWSxDQUFDekMsRUFBRXNCLEtBQUssRUFBRSxNQUFNbkIsRUFBRSxJQUFJdUMsYUFBYSxnQkFBZ0Isa0JBQWtCMUMsRUFBRXNCLEtBQUssR0FBRyxNQUFNLEtBQUssRUFBRSxPQUFPdEIsRUFBRXNDLEtBQUssRUFBRXRDLEVBQUVzQixLQUFLLEVBQUVrQixVQUFVQyxZQUFZRSxNQUFNLENBQUNaLEtBQUs3QixJQUFJLEtBQUssRUFBRUUsRUFBRUosRUFBRTRDLEtBQUs1QyxFQUFFNkMsR0FBR3pDLEVBQUUwQyxNQUFNOUMsRUFBRXNCLEtBQUssV0FBV3RCLEVBQUU2QyxHQUFHLEdBQUcsV0FBVzdDLEVBQUU2QyxHQUFHLEdBQUcsR0FBRyxNQUFNLEtBQUssR0FBRyxPQUFPMUMsRUFBRSxJQUFJdUMsYUFBYSxrQkFBa0Isb0JBQW9CMUMsRUFBRXVDLE9BQU8sUUFBUSxJQUFJLEtBQUssR0FBRyxPQUFPbEMsRUFBRSxTQUFTTCxFQUFFRSxHQUFHRSxFQUFFMkMsb0JBQW9CLFNBQVMvQyxHQUFHLFdBQVdFLEVBQUU4QyxPQUFPRixNQUFNM0MsRUFBRSxJQUFJdUMsYUFBYSxrQkFBa0Isb0JBQW9CekMsRUFBRUMsRUFBRThDLE9BQU9GLFFBQVExQyxFQUFFNkMsaUJBQWlCLFNBQVM1QyxHQUFHTCxFQUFFdUMsT0FBTyxRQUFRLElBQUksS0FBSyxHQUFHdEMsRUFBRUcsRUFBRTBDLE9BQU8sS0FBSyxHQUFHOUMsRUFBRXNCLEtBQUssR0FBRyxNQUFNLEtBQUssR0FBR3RCLEVBQUVzQyxLQUFLLEdBQUd0QyxFQUFFa0QsR0FBR2xELEVBQUVtRCxNQUFNLEdBQUdoRCxFQUFFSCxFQUFFa0QsSUFBSSxLQUFLLEdBQUcsSUFBSSxNQUFNLE9BQU9sRCxFQUFFb0QsVUFBVXBELEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLE9BQU8sU0FBU0MsRUFBRUMsR0FBRyxPQUFPRixFQUFFZ0IsTUFBTUYsS0FBS0MsWUFBMzRCLEtBQTQ1QixLQUFLLEVBQUUsSUFBSSxNQUFNLE9BQU9mLEVBQUVvRCxVQUFVcEQsT0FBTyxPQUFPLFNBQVNDLEdBQUcsT0FBT0QsRUFBRWdCLE1BQU1GLEtBQUtDLFlBQTdwQyxHQUE0cUNWLEVBQUUsV0FBVyxJQUFJTCxFQUFFQyxFQUFFa0MsbUJBQW1CQyxlQUFlcEMsRUFBRUcsRUFBRUUsR0FBRyxPQUFPOEIsbUJBQW1CRSxlQUFlckMsR0FBRyxPQUFPLE9BQU9BLEVBQUVzQyxLQUFLdEMsRUFBRXNCLE1BQU0sS0FBSyxFQUFFLE9BQU90QixFQUFFdUMsT0FBTyxTQUFTLElBQUk1QixRQUFRLFdBQVcsSUFBSVgsRUFBRUMsRUFBRWtDLG1CQUFtQkMsZUFBZXBDLEVBQUVDLEVBQUVLLEdBQUcsSUFBSUMsRUFBRUMsRUFBRTZDLEVBQUUsT0FBT2xCLG1CQUFtQkUsZUFBZXJDLEdBQUcsT0FBTyxPQUFPQSxFQUFFc0MsS0FBS3RDLEVBQUVzQixNQUFNLEtBQUssRUFBRSxHQUFHa0IsVUFBVWMsYUFBYSxDQUFDdEQsRUFBRXNCLEtBQUssRUFBRSxNQUFNaEIsRUFBRSxJQUFJb0MsYUFBYSxnQkFBZ0Isa0JBQWtCMUMsRUFBRXNCLEtBQUssR0FBRyxNQUFNLEtBQUssRUFBRSxPQUFPdEIsRUFBRXNDLEtBQUssRUFBRXRDLEVBQUU2QyxHQUFHbEMsUUFBUVgsRUFBRXNCLEtBQUssRUFBRWxCLEVBQUVELEdBQUcsS0FBSyxFQUFFLE9BQU9ILEVBQUVrRCxHQUFHbEQsRUFBRTRDLEtBQUs1QyxFQUFFc0IsS0FBSyxHQUFHa0IsVUFBVWMsYUFBYUMsYUFBYWxELEdBQUcsS0FBSyxHQUFHLE9BQU9MLEVBQUV3RCxHQUFHeEQsRUFBRTRDLEtBQUs1QyxFQUFFeUQsR0FBRyxDQUFDekQsRUFBRWtELEdBQUdsRCxFQUFFd0QsSUFBSXhELEVBQUVzQixLQUFLLEdBQUd0QixFQUFFNkMsR0FBR2EsSUFBSTlCLEtBQUs1QixFQUFFNkMsR0FBRzdDLEVBQUV5RCxJQUFJLEtBQUssR0FBR2xELEVBQUVQLEVBQUU0QyxLQUFLcEMsRUFBRU4sRUFBRUssRUFBRSxHQUFHOEMsRUFBRTdDLEVBQUUsR0FBR1AsRUFBRW9ELEdBQUdyRCxFQUFFc0IsS0FBSyxHQUFHLE1BQU0sS0FBSyxHQUFHdEIsRUFBRXNDLEtBQUssR0FBR3RDLEVBQUUyRCxHQUFHM0QsRUFBRW1ELE1BQU0sR0FBRzdDLEVBQUVOLEVBQUUyRCxJQUFJLEtBQUssR0FBRyxJQUFJLE1BQU0sT0FBTzNELEVBQUVvRCxVQUFVcEQsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsT0FBTyxTQUFTQyxFQUFFQyxHQUFHLE9BQU9GLEVBQUVnQixNQUFNRixLQUFLQyxZQUFwcEIsS0FBcXFCLEtBQUssRUFBRSxJQUFJLE1BQU0sT0FBT2YsRUFBRW9ELFVBQVVwRCxPQUFPLE9BQU8sU0FBU0MsRUFBRUMsR0FBRyxPQUFPRixFQUFFZ0IsTUFBTUYsS0FBS0MsWUFBMTZCLEdDRWo3RTZDLHdCQXNDT0MsdUlBSEEsMEJBQ0MsbUNBc0dRLFNBQUNDLFVBQ3JCekMsT0FBTzBDLE9BQU9ILEVBQXlCSSxZQUFZQyxNQUFLLFNBQUNDLFVBQVNBLElBQVNKLFlBcEdyRUssRUFDTEMsT0FBT0QsbUJBQ1BDLE9BQU9DLHlCQUNQRCxPQUFPRSxzQkFDUEYsT0FBT0cscUJBQ1AsUUFDSUMsVUFBWSxJQUFJTCxPQUNoQk0sV0FBYSxHQUVsQnBELE9BQU9xRCxlQUFhZCxFQUF5QmUsZ0JBQW9CZCxHQUFXLEtBQU9lLFNBQ2xGLHlCQUFFQyxPQUFLcEUsY0FBWXFFLEVBQUtOLFVBQVVLLEdBQU9wRSx5RUF6QnZDMkQsT0FBT0QsbUJBQ1BDLE9BQU9DLHlCQUNQRCxPQUFPRSxzQkFDUEYsT0FBT0csbUNBSVlRLFNBQ2hCLElBQUlDLE1BQU0sdU1BOEJWbEUsS0FBSzBELG9EQUVZUyxFQUFtQixhQUFjLENBQUVDLE9BQU8sMkNBRXhELElBQUlGLE1BQU0sK0RBRVpSLFVBQVVXLDJEQUVUQyxFQUFldEUsS0FBSzJELFdBQVdZLFFBRXBDRCx5Q0FLSXRFLGdVQUlEQSxLQUFLMEQsZ0JBQ0xBLFVBQVVwQixPQUdUdEMsNENBSURBLEtBQUswRCxnQkFDTEEsVUFBVWMsUUFHVHhFLDhDQUdTb0QsRUFBTXFCLGlCQUNoQnpFLEtBQUswRCxXQUFhMUQsS0FBSzBFLG1CQUFtQnRCLEdBQU8sQ0FDaERwRCxLQUFLMkQsV0FBV1AsU0FDaEJuQixvQkFBb0JtQixPQUdwQnVCLEVBQVUsU0FBQ0MsT0FDWkMsRUFBaUIsR0FDakJ6QixJQUFTTixFQUF5QkksV0FBVzRCLFFBQzFDRixFQUFNRyxTQUFXSCxFQUFNRyxRQUFRckUsT0FBUyxHQUM3Q21FLEVBQWVwRSxLQUFLbUUsRUFBTUcsUUFBUSxHQUFHLEdBQUdDLFlBSXhDUCxHQUFZQSxFQUFTdkUsTUFBTStFLFlBQVVKLEdBQWdCRCxXQUVuRGxCLFVBQVV2QixpQkFBaUJpQixHQUFNLFNBQUNsRSxVQUFNeUYsRUFBUXpGLFdBRWhEeUUsV0FBV1AsR0FBUXVCLFNBR2xCM0UsaURBR1lvRCxPQUNidUIsRUFBVTNFLEtBQUsyRCxXQUFXUCxlQUMzQk0sVUFBVXpCLG9CQUFvQm1CLEVBQU11QixVQUVsQzNFLEtBQUsyRCxXQUFXUCxHQUVoQnBELDhEQUlGc0MsT0FFTC9CLE9BQU8yRSxLQUFLbEYsS0FBSzJELFlBQVlHLFNBQVEsU0FBQ0MsVUFBUW9CLEVBQUtsRCxvQkFBb0I4QixXQUNsRUwsVUFBWSxLQUVWMUQsNkNBakZBQSxLQUFLMEQsd0JBR0FPLFNBQ04sSUFBSUMsTUFBTSxnREExRFpwQixtQkFDbUIsQ0FDdkJzQyxLQUFNLFFBQ05DLFlBQVksRUFDWkMsZ0JBQWdCLEVBQ2hCQyxnQkFBaUIsTUFMYnpDLGVBUWUsQ0FDbkIwQyxVQUFXLFdBQ1hDLFlBQWEsYUFDYkMsSUFBSyxNQUNMQyxNQUFPLFFBQ1BDLFNBQVUsVUFDVmQsT0FBUSxTQUNSZSxVQUFXLFdBQ1hDLFlBQWEsYUFDYkMsV0FBWSxZQUNaQyxhQUFjLGNBQ2RDLE1BQU8sVUNuQlQsSUFBTUMsRUFBaUIsb0JBQUdDLFVBQUFBLGFBQVksY0FBU0MsWUFBQUEsYUFBYyxZQUFPQyxTQUFBQSx1QkFFbEVDLHVCQUFLQyxNQUFNLDZCQUE2QkMsTUFBTSxPQUFPQyxPQUFPLE9BQU9DLFFBQVEsYUFDMUVKLHlCQUNDQSx3QkFDQ0ssS0FBTVIsRUFDTlMsRUFBRSxvTUFFRlAsR0FBWUMsMEJBQVFLLEtBQU1QLEVBQWFTLEdBQUcsS0FBS0MsR0FBRyxJQUFJM0gsRUFBRSxTQ0h2RDRILEVBQVEsZ0JBQ2JDLElBQUFBLFNBQ0FDLElBQUFBLFFBQ0FDLElBQUFBLFVBQ0FDLElBQUFBLFNBQ0FDLElBQUFBLE1BQ0FDLElBQUFBLFVBQ0FDLElBQUFBLFFBQ0FDLElBQUFBLE1BQ0FDLElBQUFBLGNBQ0FDLElBQUFBLFlBQ0FDLElBQUFBLFNBQ0FDLElBQUFBLFFBQ0FDLElBQUFBLFVBQ0FDLElBQUFBLHNCQUVNQyxFQUFhQyxTQUFPLE1BQ3BCQyxFQUFpQkQsU0FBTyxVQUVRRSxZQUFTLE1BQXhDQyxPQUFhQyxPQUVwQkMsYUFBVSxjQUNMdEYsRUFBeUJ1RixtQkFDNUJMLEVBQWVNLFFBQVVULEdBQXlCLElBQUkvRSxFQUMvQyxXQUNOa0YsRUFBZU0sUUFBUTlELFFBQ3ZCd0QsRUFBZU0sUUFBUUMsVUFDdkJDLGFBQWFWLEVBQVdRLFlBR3hCLENBQUNULFFBRUVZLEVBQWEsV0FDbEJYLEVBQVdRLFFBQVVJLFdBQVdDLEVBQVExQixJQUduQzJCLEVBQVksV0FDakJKLGFBQWFWLEVBQVdRLFNBQ3hCUixFQUFXUSxRQUFVLE1BcUJoQk8sRUFBa0IsZUFFdEJWLEdBQWUsT0FFRWhKLEVBQU02SSxFQUFmTSxRQUNSbkosRUFBRThDLG9CQUFvQixRQUFTNkcsR0FDL0IzSixFQUFFOEMsb0JBQW9CLE1BQU8wRyxHQUM3QnhKLEVBQUU4QyxvQkFBb0IsY0FBZThHLEdBQ3JDNUosRUFBRThDLG9CQUFvQixZQUFhK0csR0FDbkM3SixFQUFFOEMsb0JBQW9CLFNBQVVnSCxHQUNoQzlKLEVBQUU4QyxvQkFBb0IsUUFBU2lILEdBQy9CL0osRUFBRThDLG9CQUFvQixVQUFXa0gsR0FDakNoSyxFQUFFbUQsT0FDRCxNQUFPaUMsR0FDTm9ELEdBQVdBLEVBQVFwRCxLQWlCakJ1RSxFQUFXLFNBQUM1SixHQVpqQnVKLElBZUVuQixHQUFXQSxFQUFRcEksSUFHaEJ5SixFQUFTLFNBQUN6SixHQWRmMEosSUFDQUMsSUFnQkV0QixHQUFTQSxFQUFNckksSUFHWjZKLEVBQWlCLFNBQUM3SixHQUN2QjBKLElBRUVwQixHQUFpQkEsRUFBY3RJLElBRzVCOEosRUFBZSxTQUFDOUosR0FDckJ1SixJQUVFaEIsR0FBZUEsRUFBWXZJLElBR3hCK0osRUFBWSxTQUFDRyxFQUFReEUsR0FDMUJpRSxJQUVFbkIsR0FBWUEsRUFBUzBCLEVBQVF4RSxJQUcxQnNFLEVBQVcsU0FBQzNFLEdBQ2pCc0UsSUFFRWxCLEdBQVdBLEVBQVFwRCxJQUdoQjRFLEVBQWEsU0FBQ2pLLEdBQ2pCMEksR0FBYUEsRUFBVTFJLFdBaUJ6QjRELEVBQXlCdUYsYUFDekJnQixlQUFhQyxpQkFBZXRDLEdBQVlBLEVBZHhDVixxQ0FDYSxpQkFDWmlELEtBQUssc0JBQ09yQyxFQUNaQyxTQUFVQSxFQUNWQyxNQUFPQyxFQUFZLFFBQVNiLE1BQU8sR0FBSUMsT0FBUSxHQUFJK0MsT0FBU3RCLEVBQTBCLEtBQVosV0FBcUJkLEdBQy9GQyxVQUFXQSxHQUVYZixnQkFBQ0osR0FBZUcsU0FBVTZCLEVBQWEvQixVQUFVLGdCQU81QytCLEdBQWUsQ0FBRXVCLFFBNURQLFlBN0NRLGVBRXZCdEIsR0FBZSxPQUVFaEosRUFBTTZJLEVBQWZNLFFBQ1JuSixFQUFFZ0QsaUJBQWlCLFFBQVMyRyxHQUM1QjNKLEVBQUVnRCxpQkFBaUIsTUFBT3dHLEdBQzFCeEosRUFBRWdELGlCQUFpQixjQUFlNEcsR0FDbEM1SixFQUFFZ0QsaUJBQWlCLFlBQWE2RyxHQUNoQzdKLEVBQUVnRCxpQkFBaUIsU0FBVThHLEdBQzdCOUosRUFBRWdELGlCQUFpQixRQUFTK0csR0FDNUIvSixFQUFFZ0QsaUJBQWlCLFVBQVdnSCxHQUM5QmhLLEVBQUVrRixRQUNELE1BQU9FLEdBQ1IyRSxFQUFTM0UsSUFnQ1ZtRixRQWdFRjNDLEVBQU00QyxVQUFZLENBRWpCMUMsUUFBUzJDLEVBQVVDLE9BRW5CM0MsVUFBVzBDLEVBQVVFLE9BRXJCM0MsU0FBVXlDLEVBQVVDLE9BRXBCekMsTUFBT3dDLEVBQVVHLE9BRWpCMUMsVUFBV3VDLEVBQVVFLE9BRXJCeEMsUUFBU3NDLEVBQVVJLEtBRW5CekMsTUFBT3FDLEVBQVVJLEtBRWpCeEMsY0FBZW9DLEVBQVVJLEtBRXpCdkMsWUFBYW1DLEVBQVVJLEtBRXZCdEMsU0FBVWtDLEVBQVVJLEtBRXBCckMsUUFBU2lDLEVBQVVJLEtBRW5CcEMsVUFBV2dDLEVBQVVJLE1BR3RCakQsRUFBTWtELGFBQWUsQ0FDcEJoRCxRQUFTLElBQ1RDLFVBQVcsU0FDWEMsVUFBVyxFQUNYQyxNQUFPLEtBQ1BDLFVBQVcsS0FDWEMsUUFBUyxLQUNUQyxNQUFPLEtBQ1BDLGNBQWUsS0FDZkMsWUFBYSxLQUNiQyxTQUFVLEtBQ1ZDLFFBQVMsS0FDVEMsVUFBVyJ9 | ||
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var t=require("react"),n=e(t),r=e(require("prop-types"));function i(e,t,n,r,i,o,a){try{var c=e[o](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,i)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,i=!1,o=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(i)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return f(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function p(e,t,n,r,i,o,a){try{var c=e[o](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,i)}function v(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){p(o,r,i,a,c,"next",e)}function c(e){p(o,r,i,a,c,"throw",e)}a(void 0)}))}}function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,i=!1,o=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(i)throw o}}return n}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var m=function(){var e=v(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=v(regeneratorRuntime.mark((function e(n,r){var i,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.permissions){e.next=4;break}r(new DOMException("Permissions not supported","NOT_FOUND_ERR")),e.next=16;break;case 4:return e.prev=4,e.next=7,navigator.permissions.query({name:t});case 7:i=e.sent,o=function e(t){i.removeEventListener("change",e),y(t.target.state,n,r)},i.addEventListener("change",o),y(i.state,n,r),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(4),r(e.t0);case 16:case"end":return e.stop()}}),e,null,[[4,13]])})));return function(t,n){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),y=function(e,t,n){switch(e){case"denied":n(new DOMException("Permission denied","NOT_ALLOWED_ERR"));break;default:t(e)}},b=function(){var e=v(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=v(regeneratorRuntime.mark((function e(r,i){var o,a,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.mediaDevices){e.next=4;break}i(new DOMException("MediaDevices not supported","NOT_FOUND_ERR")),e.next=24;break;case 4:return e.prev=4,e.t0=Promise,e.next=8,m(t);case 8:return e.t1=e.sent,e.next=11,navigator.mediaDevices.getUserMedia(n);case 11:return e.t2=e.sent,e.t3=[e.t1,e.t2],e.next=15,e.t0.all.call(e.t0,e.t3);case 15:o=e.sent,a=h(o,2),c=a[1],r(c),e.next=24;break;case 21:e.prev=21,e.t4=e.catch(4),i(e.t4);case 24:case"end":return e.stop()}}),e,null,[[4,21]])})));return function(t,n){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),w=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),c(this,"_instance",null),c(this,"_listeners",null),c(this,"_includesEventType",(function(t){return Object.values(e.eventTypes).find((function(e){return e===t}))}));var r=window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.msSpeechRecognition||{};this._instance=new r,this._listeners={},Object.entries(s(s({},e.defaultOptions),t||{})).forEach((function(e){var t=l(e,2),r=t[0],i=t[1];return n._instance[r]=i}))}var t,n;return a(e,null,[{key:"isSupported",get:function(){return!!(window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.msSpeechRecognition)},set:function(e){throw new Error("You cannot set isSupported directly.")}}]),a(e,[{key:"start",value:(t=regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._instance){e.next=14;break}return e.prev=1,e.next=4,b("microphone",{audio:!0});case 4:if(e.sent){e.next=7;break}throw new Error("Unable to retrieve the stream from media device");case 7:this._instance.start(),e.next=14;break;case 10:e.prev=10,e.t0=e.catch(1),(t=this._listeners.error)&&t(e.t0);case 14:return e.abrupt("return",this);case 15:case"end":return e.stop()}}),e,this,[[1,10]])})),n=function(){var e=this,n=arguments;return new Promise((function(r,o){var a=t.apply(e,n);function c(e){i(a,r,o,c,u,"next",e)}function u(e){i(a,r,o,c,u,"throw",e)}c(void 0)}))},function(){return n.apply(this,arguments)})},{key:"stop",value:function(){return this._instance&&this._instance.stop(),this}},{key:"abort",value:function(){return this._instance&&this._instance.abort(),this}},{key:"addEventListener",value:function(t,n){var r=this;if(this._instance&&this._includesEventType(t)){this._listeners[t]&&this.removeEventListener(t);var i=function(i){var o=[];t===e.eventTypes.RESULT&&i.results&&i.results.length>0&&o.push(i.results[0][0].transcript),n&&n.apply(r,[].concat(o,[i]))};this._instance.addEventListener(t,(function(e){return i(e)})),this._listeners[t]=i}return this}},{key:"removeEventListener",value:function(e){var t=this._listeners[e];return this._instance.removeEventListener(e,t),delete this._listeners[e],this}},{key:"cleanup",value:function(){var e=this;return this.stop(),Object.keys(this._listeners).forEach((function(t){return e.removeEventListener(t)})),this._instance=null,this}},{key:"instance",get:function(){return this._instance},set:function(e){throw new Error("You cannot set instance directly.")}}]),e}();c(w,"defaultOptions",{lang:"fr-FR",continuous:!1,interimResults:!1,maxAlternatives:1}),c(w,"eventTypes",{AUDIO_END:"audioend",AUDIO_START:"audiostart",END:"end",ERROR:"error",NO_MATCH:"nomatch",RESULT:"result",SOUND_END:"soundend",SOUND_START:"soundstart",SPEECH_END:"speechend",SPEECH_START:"speechstart",START:"start"});var E=function(e){var t=e.iconColor,r=void 0===t?"black":t,i=e.activeColor,o=void 0===i?"red":i,a=e.isActive,c=void 0!==a&&a;return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 24 24"},n.createElement("g",null,n.createElement("path",{fill:r,d:"M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"}),c&&n.createElement("circle",{fill:o,cx:"16",cy:"4",r:"4"})))},g=function(e){var r=e.children,i=e.timeout,o=e.ariaLabel,a=e.tabIndex,c=e.style,u=e.className,f=e.onStart,p=e.onEnd,v=e.onSpeechStart,h=e.onSpeechEnd,d=e.onResult,m=e.onError,y=e.onNoMatch,b=e.__recognitionInstance,g=t.useRef(null),S=t.useRef(null),O=l(t.useState(!1),2),_=O[0],R=O[1];t.useEffect((function(){if(w.isSupported)return S.current=b||new w,function(){S.current.abort(),S.current.cleanup(),clearTimeout(g.current)}}),[b]);var x=function(){g.current=setTimeout(T,i)},k=function(){clearTimeout(g.current),g.current=null},L=function(){try{R(!1);var e=S.current;e.removeEventListener("start",j),e.removeEventListener("end",T),e.removeEventListener("speechstart",A),e.removeEventListener("speechend",P),e.removeEventListener("result",D),e.removeEventListener("error",N),e.removeEventListener("nomatch",I),e.stop()}catch(e){m&&m(e)}},j=function(e){x(),f&&f(e)},T=function(e){k(),L(),p&&p(e)},A=function(e){k(),v&&v(e)},P=function(e){x(),h&&h(e)},D=function(e,t){L(),d&&d(e,t)},N=function(e){L(),m&&m(e)},I=function(e){y&&y(e)};return w.isSupported&&t.cloneElement(t.isValidElement(r)?r:n.createElement("div",{"data-testid":"__vocal-root__",role:"button","aria-label":o,tabIndex:a,style:u?null:s({width:24,height:24,cursor:_?null:"pointer"},c),className:u},n.createElement(E,{isActive:_,iconColor:"#aaa"})),s({},!_&&{onClick:function(){!function(){try{R(!0);var e=S.current;e.addEventListener("start",j),e.addEventListener("end",T),e.addEventListener("speechstart",A),e.addEventListener("speechend",P),e.addEventListener("result",D),e.addEventListener("error",N),e.addEventListener("nomatch",I),e.start()}catch(e){N(e)}}()}}))};g.propTypes={timeout:r.number,ariaLabel:r.string,tabIndex:r.number,style:r.object,className:r.string,onStart:r.func,onEnd:r.func,onSpeechStart:r.func,onSpeechEnd:r.func,onResult:r.func,onError:r.func,onNoMatch:r.func},g.defaultProps={timeout:3e3,ariaLabel:"speech",tabIndex:-1,style:null,className:null,onStart:null,onEnd:null,onSpeechStart:null,onSpeechEnd:null,onResult:null,onError:null,onNoMatch:null},module.exports=g; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9AdW50ZW1wcy91c2VyLXBlcm1pc3Npb25zLXV0aWxzL2Rpc3QvaW5kZXguZXMuanMiLCIuLi9zcmMvU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmpzIiwiLi4vc3JjL01pY3JvcGhvbmVJY29uLmpzIiwiLi4vc3JjL1ZvY2FsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGUoZSxyLHQsbixhLGksbyl7dHJ5e3ZhciB1PWVbaV0obyksYz11LnZhbHVlfWNhdGNoKGUpe3JldHVybiB2b2lkIHQoZSl9dS5kb25lP3IoYyk6UHJvbWlzZS5yZXNvbHZlKGMpLnRoZW4obixhKX1mdW5jdGlvbiByKHIpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihhLGkpe3ZhciBvPXIuYXBwbHkodCxuKTtmdW5jdGlvbiB1KHIpe2UobyxhLGksdSxjLFwibmV4dFwiLHIpfWZ1bmN0aW9uIGMocil7ZShvLGEsaSx1LGMsXCJ0aHJvd1wiLHIpfXUodm9pZCAwKX0pKX19ZnVuY3Rpb24gdChlLHIpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxyKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgU3ltYm9sfHwhKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpKXJldHVybjt2YXIgdD1bXSxuPSEwLGE9ITEsaT12b2lkIDA7dHJ5e2Zvcih2YXIgbyx1PWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0obz11Lm5leHQoKSkuZG9uZSkmJih0LnB1c2goby52YWx1ZSksIXJ8fHQubGVuZ3RoIT09cik7bj0hMCk7fWNhdGNoKGUpe2E9ITAsaT1lfWZpbmFsbHl7dHJ5e258fG51bGw9PXUucmV0dXJufHx1LnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyBpfX1yZXR1cm4gdH0oZSxyKXx8ZnVuY3Rpb24oZSxyKXtpZighZSlyZXR1cm47aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG4oZSxyKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7XCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSk7aWYoXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKGUpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbihlLHIpfShlLHIpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gbihlLHIpeyhudWxsPT1yfHxyPmUubGVuZ3RoKSYmKHI9ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLG49bmV3IEFycmF5KHIpO3Q8cjt0Kyspblt0XT1lW3RdO3JldHVybiBufXZhciBhPWZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZSh0KXtyZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdChcInJldHVyblwiLG5ldyBQcm9taXNlKGZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZShyLG4pe3ZhciBhLG87cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihuYXZpZ2F0b3IucGVybWlzc2lvbnMpe2UubmV4dD00O2JyZWFrfW4obmV3IERPTUV4Y2VwdGlvbihcIlBlcm1pc3Npb25zIG5vdCBzdXBwb3J0ZWRcIixcIk5PVF9GT1VORF9FUlJcIikpLGUubmV4dD0xNjticmVhaztjYXNlIDQ6cmV0dXJuIGUucHJldj00LGUubmV4dD03LG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeSh7bmFtZTp0fSk7Y2FzZSA3OmE9ZS5zZW50LG89ZnVuY3Rpb24gZSh0KXthLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIixlKSxpKHQudGFyZ2V0LnN0YXRlLHIsbil9LGEuYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLG8pLGkoYS5zdGF0ZSxyLG4pLGUubmV4dD0xNjticmVhaztjYXNlIDEzOmUucHJldj0xMyxlLnQwPWUuY2F0Y2goNCksbihlLnQwKTtjYXNlIDE2OmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlLG51bGwsW1s0LDEzXV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24ocix0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSk7Y2FzZSAxOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksaT1mdW5jdGlvbihlLHIsdCl7c3dpdGNoKGUpe2Nhc2VcImRlbmllZFwiOnQobmV3IERPTUV4Y2VwdGlvbihcIlBlcm1pc3Npb24gZGVuaWVkXCIsXCJOT1RfQUxMT1dFRF9FUlJcIikpO2JyZWFrO2RlZmF1bHQ6cihlKX19LG89ZnVuY3Rpb24oKXt2YXIgZT1yKHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKChmdW5jdGlvbiBlKG4saSl7cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoXCJyZXR1cm5cIixuZXcgUHJvbWlzZShmdW5jdGlvbigpe3ZhciBlPXIocmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoKGZ1bmN0aW9uIGUocixvKXt2YXIgdSxjLHM7cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihuYXZpZ2F0b3IubWVkaWFEZXZpY2VzKXtlLm5leHQ9NDticmVha31vKG5ldyBET01FeGNlcHRpb24oXCJNZWRpYURldmljZXMgbm90IHN1cHBvcnRlZFwiLFwiTk9UX0ZPVU5EX0VSUlwiKSksZS5uZXh0PTI0O2JyZWFrO2Nhc2UgNDpyZXR1cm4gZS5wcmV2PTQsZS50MD1Qcm9taXNlLGUubmV4dD04LGEobik7Y2FzZSA4OnJldHVybiBlLnQxPWUuc2VudCxlLm5leHQ9MTEsbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoaSk7Y2FzZSAxMTpyZXR1cm4gZS50Mj1lLnNlbnQsZS50Mz1bZS50MSxlLnQyXSxlLm5leHQ9MTUsZS50MC5hbGwuY2FsbChlLnQwLGUudDMpO2Nhc2UgMTU6dT1lLnNlbnQsYz10KHUsMikscz1jWzFdLHIocyksZS5uZXh0PTI0O2JyZWFrO2Nhc2UgMjE6ZS5wcmV2PTIxLGUudDQ9ZS5jYXRjaCg0KSxvKGUudDQpO2Nhc2UgMjQ6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUsbnVsbCxbWzQsMjFdXSl9KSkpO3JldHVybiBmdW5jdGlvbihyLHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpKTtjYXNlIDE6Y2FzZVwiZW5kXCI6cmV0dXJuIGUuc3RvcCgpfX0pLGUpfSkpKTtyZXR1cm4gZnVuY3Rpb24ocix0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO2V4cG9ydHthIGFzIGdldFBlcm1pc3Npb24sbyBhcyBnZXRVc2VyTWVkaWFTdHJlYW19O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndVpYTXVhbk1pTENKemIzVnlZMlZ6SWpwYklpNHVMM055WXk5blpYUlFaWEp0YVhOemFXOXVMbXB6SWl3aUxpNHZjM0pqTDJkbGRGVnpaWEpOWldScFlWTjBjbVZoYlM1cWN5SmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lwY2JpQXFJRkpsZEhWeWJuTWdZU0J3Y205dGFYTmxJSEpsYzI5c2RtVmtJSGRvWlc0Z2RHaGxJSEJsY20xcGMzTnBiMjRnYVhNZ1ozSmhiblJsWkNCaWVTQjBhR1VnZFhObGNseHVJQ29nUUhCaGNtRnRJSEJsY20xcGMzTnBiMjVPWVcxbElDQWdJQ0FnSUNBZ0lDQWdUbUZ0WlNCdlppQjBhR1VnY0dWeWJXbHpjMmx2Ymk0Z1FITmxaU0JvZEhSd2N6b3ZMM2N6WXk1bmFYUm9kV0l1YVc4dmNHVnliV2x6YzJsdmJuTXZJMlZ1ZFcxa1pXWXRjR1Z5YldsemMybHZibTVoYldWY2JpQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxmVnh1SUNvdlhHNWxlSEJ2Y25RZ1pHVm1ZWFZzZENCaGMzbHVZeUFvY0dWeWJXbHpjMmx2Yms1aGJXVXBJRDArSUh0Y2JseDBjbVYwZFhKdUlHNWxkeUJRY205dGFYTmxLR0Z6ZVc1aklDaHlaWE52YkhabExDQnlaV3BsWTNRcElEMCtJSHRjYmx4MFhIUnBaaUFvSVc1aGRtbG5ZWFJ2Y2k1d1pYSnRhWE56YVc5dWN5a2dlMXh1WEhSY2RGeDBjbVZxWldOMEtHNWxkeUJFVDAxRmVHTmxjSFJwYjI0b0oxQmxjbTFwYzNOcGIyNXpJRzV2ZENCemRYQndiM0owWldRbkxDQW5UazlVWDBaUFZVNUVYMFZTVWljcEtWeHVYSFJjZEgwZ1pXeHpaU0I3WEc1Y2RGeDBYSFIwY25rZ2UxeHVYSFJjZEZ4MFhIUmpiMjV6ZENCd1pYSnRhWE56YVc5dVUzUmhkSFZ6SUQwZ1lYZGhhWFFnYm1GMmFXZGhkRzl5TG5CbGNtMXBjM05wYjI1ekxuRjFaWEo1S0hzZ2JtRnRaVG9nY0dWeWJXbHpjMmx2Yms1aGJXVWdmU2xjYmx4MFhIUmNkRngwWTI5dWMzUWdiMjVEYUdGdVoyVWdQU0FvWlhabGJuUXBJRDArSUh0Y2JseDBYSFJjZEZ4MFhIUndaWEp0YVhOemFXOXVVM1JoZEhWekxuSmxiVzkyWlVWMlpXNTBUR2x6ZEdWdVpYSW9KMk5vWVc1blpTY3NJRzl1UTJoaGJtZGxLVnh1WEhSY2RGeDBYSFJjZEhKbGMyOXNkbVZQY2xKbGFtVmpkRUpoYzJWa1QyNVRkR0YwWlNobGRtVnVkQzUwWVhKblpYUXVjM1JoZEdVc0lISmxjMjlzZG1Vc0lISmxhbVZqZENsY2JseDBYSFJjZEZ4MGZWeHVYSFJjZEZ4MFhIUndaWEp0YVhOemFXOXVVM1JoZEhWekxtRmtaRVYyWlc1MFRHbHpkR1Z1WlhJb0oyTm9ZVzVuWlNjc0lHOXVRMmhoYm1kbEtWeHVYSFJjZEZ4MFhIUnlaWE52YkhabFQzSlNaV3BsWTNSQ1lYTmxaRTl1VTNSaGRHVW9jR1Z5YldsemMybHZibE4wWVhSMWN5NXpkR0YwWlN3Z2NtVnpiMngyWlN3Z2NtVnFaV04wS1Z4dVhIUmNkRngwZlNCallYUmphQ0FvWlhKeWIzSXBJSHRjYmx4MFhIUmNkRngwY21WcVpXTjBLR1Z5Y205eUtWeHVYSFJjZEZ4MGZWeHVYSFJjZEgxY2JseDBmU2xjYm4xY2JseHVZMjl1YzNRZ2NtVnpiMngyWlU5eVVtVnFaV04wUW1GelpXUlBibE4wWVhSbElEMGdLSE4wWVhSbExDQnlaWE52YkhabExDQnlaV3BsWTNRcElEMCtJSHRjYmx4MGMzZHBkR05vSUNoemRHRjBaU2tnZTF4dVhIUmNkR05oYzJVZ0oyUmxibWxsWkNjNlhHNWNkRngwWEhSeVpXcGxZM1FvYm1WM0lFUlBUVVY0WTJWd2RHbHZiaWduVUdWeWJXbHpjMmx2YmlCa1pXNXBaV1FuTENBblRrOVVYMEZNVEU5WFJVUmZSVkpTSnlrcFhHNWNkRngwWEhSaWNtVmhhMXh1WEhSY2RHUmxabUYxYkhRNlhHNWNkRngwWEhSeVpYTnZiSFpsS0hOMFlYUmxLVnh1WEhSOVhHNTlYRzRpTENKcGJYQnZjblFnWjJWMFVHVnliV2x6YzJsdmJpQm1jbTl0SUNjdUwyZGxkRkJsY20xcGMzTnBiMjRuWEc1Y2JpOHFLbHh1SUNvZ1VtVjBkWEp1Y3lCaElIQnliMjFwYzJVZ2NtVnpiMngyWldRZ2QyaGxiaUIwYUdVZ2NHVnliV2x6YzJsdmJpQnBjeUJuY21GdWRHVmtJR0o1SUhSb1pTQjFjMlZ5SUdGdVpDQjBhR1VnYzNSeVpXRnRJR2x6SUhKbGRISnBaWFpsWkZ4dUlDb2dRSEJoY21GdElIQmxjbTFwYzNOcGIyNU9ZVzFsSUNBZ0lDQWdJQ0FnSUNBZ1RtRnRaU0J2WmlCMGFHVWdjR1Z5YldsemMybHZiaTRnUUhObFpTQm9kSFJ3Y3pvdkwzY3pZeTVuYVhSb2RXSXVhVzh2Y0dWeWJXbHpjMmx2Ym5NdkkyVnVkVzFrWldZdGNHVnliV2x6YzJsdmJtNWhiV1ZjYmlBcUlFQndZWEpoYlNCdFpXUnBZVk4wY21WaGJVTnZibk4wY21GcGJuUnpJQ0FnSUVOdmJuTjBjbUZwYm5SeklHOWlhbVZqZEM0Z1FITmxaU0JvZEhSd2N6b3ZMMlJsZG1Wc2IzQmxjaTV0YjNwcGJHeGhMbTl5Wnk5bGJpMVZVeTlrYjJOekwxZGxZaTlCVUVrdlRXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjMXh1SUNvZ1FISmxkSFZ5Ym5NZ2UxQnliMjFwYzJWOVhHNGdLaTljYm1WNGNHOXlkQ0JrWldaaGRXeDBJR0Z6ZVc1aklDaHdaWEp0YVhOemFXOXVUbUZ0WlN3Z2JXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjeWtnUFQ0Z2UxeHVYSFJ5WlhSMWNtNGdibVYzSUZCeWIyMXBjMlVvWVhONWJtTWdLSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dQVDRnZTF4dVhIUmNkR2xtSUNnaGJtRjJhV2RoZEc5eUxtMWxaR2xoUkdWMmFXTmxjeWtnZTF4dVhIUmNkRngwY21WcVpXTjBLRzVsZHlCRVQwMUZlR05sY0hScGIyNG9KMDFsWkdsaFJHVjJhV05sY3lCdWIzUWdjM1Z3Y0c5eWRHVmtKeXdnSjA1UFZGOUdUMVZPUkY5RlVsSW5LU2xjYmx4MFhIUjlJR1ZzYzJVZ2UxeHVYSFJjZEZ4MGRISjVJSHRjYmx4MFhIUmNkRngwWTI5dWMzUWdXeXdnYzNSeVpXRnRYU0E5SUdGM1lXbDBJRkJ5YjIxcGMyVXVZV3hzS0Z0Y2JseDBYSFJjZEZ4MFhIUmhkMkZwZENCblpYUlFaWEp0YVhOemFXOXVLSEJsY20xcGMzTnBiMjVPWVcxbEtTeGNibHgwWEhSY2RGeDBYSFJoZDJGcGRDQnVZWFpwWjJGMGIzSXViV1ZrYVdGRVpYWnBZMlZ6TG1kbGRGVnpaWEpOWldScFlTaHRaV1JwWVZOMGNtVmhiVU52Ym5OMGNtRnBiblJ6S1N4Y2JseDBYSFJjZEZ4MFhTbGNibHgwWEhSY2RGeDBjbVZ6YjJ4MlpTaHpkSEpsWVcwcFhHNWNkRngwWEhSOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dVhIUmNkRngwWEhSeVpXcGxZM1FvWlhKeWIzSXBYRzVjZEZ4MFhIUjlYRzVjZEZ4MGZWeHVYSFI5S1Z4dWZWeHVJbDBzSW01aGJXVnpJanBiSW5CbGNtMXBjM05wYjI1T1lXMWxJaXdpVUhKdmJXbHpaU0lzSW5KbGMyOXNkbVVpTENKeVpXcGxZM1FpTENKdVlYWnBaMkYwYjNJaUxDSndaWEp0YVhOemFXOXVjeUlzSWtSUFRVVjRZMlZ3ZEdsdmJpSXNJbkYxWlhKNUlpd2libUZ0WlNJc0luQmxjbTFwYzNOcGIyNVRkR0YwZFhNaUxDSnZia05vWVc1blpTSXNJbVYyWlc1MElpd2ljbVZ0YjNabFJYWmxiblJNYVhOMFpXNWxjaUlzSW5KbGMyOXNkbVZQY2xKbGFtVmpkRUpoYzJWa1QyNVRkR0YwWlNJc0luUmhjbWRsZENJc0luTjBZWFJsSWl3aVlXUmtSWFpsYm5STWFYTjBaVzVsY2lJc0ltMWxaR2xoVTNSeVpXRnRRMjl1YzNSeVlXbHVkSE1pTENKdFpXUnBZVVJsZG1salpYTWlMQ0puWlhSUVpYSnRhWE56YVc5dUlpd2laMlYwVlhObGNrMWxaR2xoSWl3aVlXeHNJaXdpYzNSeVpXRnRJbDBzSW0xaGNIQnBibWR6SWpvaWJYZERRVXRCTEd0RVFVRmxMRmRCUVU5QkxEUkhRVU5rTEVsQlFVbERMRzlFUVVGUkxGZEJRVTlETEVWQlFWTkRMRGhHUVVNM1FrTXNWVUZCVlVNc05FSkJRMlJHTEVWQlFVOHNTVUZCU1Vjc1lVRkJZU3cwUWtGQk5rSXNhMFZCUjNKQ1JpeFZRVUZWUXl4WlFVRlpSU3hOUVVGTkxFTkJRVVZETEV0QlFVMVNMRmRCUVRkRVV5eFRRVU5CUXl4RlFVRlhMRk5CUVZoQkxFVkJRVmxETEVkQlEycENSaXhGUVVGcFFrY3NiMEpCUVc5Q0xGTkJRVlZHTEVkQlF5OURSeXhGUVVFMFFrWXNSVUZCVFVjc1QwRkJUME1zVFVGQlQySXNSVUZCVTBNc1NVRkZNVVJOTEVWQlFXbENUeXhwUWtGQmFVSXNVMEZCVlU0c1IwRkROVU5ITEVWQlFUUkNTaXhGUVVGcFFrMHNUVUZCVDJJc1JVRkJVME1zY1VSQlJUZEVRU3cyVGtGTlJWVXNSVUZCT0VJc1UwRkJRMFVzUlVGQlQySXNSVUZCVTBNc1ZVRkROVU5aTEU5QlEwWXNVMEZEU2xvc1JVRkJUeXhKUVVGSlJ5eGhRVUZoTEc5Q1FVRnhRaXhyUTBGSE4wTktMRVZCUVZGaExHMUVRM1pDU1N4WFFVRlBaaXhGUVVGblFtbENMRFJIUVVNNVFpeEpRVUZKYUVJc2IwUkJRVkVzVjBGQlQwTXNSVUZCVTBNc1owZEJRemRDUXl4VlFVRlZZeXcyUWtGRFpHWXNSVUZCVHl4SlFVRkpSeXhoUVVGaExEWkNRVUU0UWl3NFJFRkhOVUpNTEdsQ1FVTnNRbXRDTEVWQlFXTnVRaXgxUTBGRFpFa3NWVUZCVldNc1lVRkJZVVVzWVVGQllVZ3NPRVJCUmxaSkxEaERRVUY0UWtNc1QwRkpWSEJDTEVWQlFWRnZRaXh4UkVGRlVtNUNJbjA9XG4iLCJpbXBvcnQgeyBnZXRVc2VyTWVkaWFTdHJlYW0gfSBmcm9tICdAdW50ZW1wcy91c2VyLXBlcm1pc3Npb25zLXV0aWxzJ1xuXG5jbGFzcyBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIge1xuXHRzdGF0aWMgZGVmYXVsdE9wdGlvbnMgPSB7XG5cdFx0bGFuZzogJ2ZyLUZSJyxcblx0XHRjb250aW51b3VzOiBmYWxzZSxcblx0XHRpbnRlcmltUmVzdWx0czogZmFsc2UsXG5cdFx0bWF4QWx0ZXJuYXRpdmVzOiAxLFxuXHR9XG5cblx0c3RhdGljIGV2ZW50VHlwZXMgPSB7XG5cdFx0QVVESU9fRU5EOiAnYXVkaW9lbmQnLFxuXHRcdEFVRElPX1NUQVJUOiAnYXVkaW9zdGFydCcsXG5cdFx0RU5EOiAnZW5kJyxcblx0XHRFUlJPUjogJ2Vycm9yJyxcblx0XHROT19NQVRDSDogJ25vbWF0Y2gnLFxuXHRcdFJFU1VMVDogJ3Jlc3VsdCcsXG5cdFx0U09VTkRfRU5EOiAnc291bmRlbmQnLFxuXHRcdFNPVU5EX1NUQVJUOiAnc291bmRzdGFydCcsXG5cdFx0U1BFRUNIX0VORDogJ3NwZWVjaGVuZCcsXG5cdFx0U1BFRUNIX1NUQVJUOiAnc3BlZWNoc3RhcnQnLFxuXHRcdFNUQVJUOiAnc3RhcnQnLFxuXHR9XG5cblx0c3RhdGljIGdldCBpc1N1cHBvcnRlZCgpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0ISF3aW5kb3cuU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdCEhd2luZG93LndlYmtpdFNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHQhIXdpbmRvdy5tb3pTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0ISF3aW5kb3cubXNTcGVlY2hSZWNvZ25pdGlvblxuXHRcdClcblx0fVxuXG5cdHN0YXRpYyBzZXQgaXNTdXBwb3J0ZWQoXykge1xuXHRcdHRocm93IG5ldyBFcnJvcignWW91IGNhbm5vdCBzZXQgaXNTdXBwb3J0ZWQgZGlyZWN0bHkuJylcblx0fVxuXG5cdF9pbnN0YW5jZSA9IG51bGxcblx0X2xpc3RlbmVycyA9IG51bGxcblxuXHRjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG5cdFx0Y29uc3QgU3BlZWNoUmVjb2duaXRpb24gPVxuXHRcdFx0d2luZG93LlNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHR3aW5kb3cud2Via2l0U3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHdpbmRvdy5tb3pTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0d2luZG93Lm1zU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHt9XG5cdFx0dGhpcy5faW5zdGFuY2UgPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKVxuXHRcdHRoaXMuX2xpc3RlbmVycyA9IHt9XG5cblx0XHRPYmplY3QuZW50cmllcyh7IC4uLlNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5kZWZhdWx0T3B0aW9ucywgLi4uKG9wdGlvbnMgfHwge30pIH0pLmZvckVhY2goXG5cdFx0XHQoW2tleSwgdmFsdWVdKSA9PiAodGhpcy5faW5zdGFuY2Vba2V5XSA9IHZhbHVlKVxuXHRcdClcblx0fVxuXG5cdGdldCBpbnN0YW5jZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5faW5zdGFuY2Vcblx0fVxuXG5cdHNldCBpbnN0YW5jZShfKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHNldCBpbnN0YW5jZSBkaXJlY3RseS4nKVxuXHR9XG5cblx0YXN5bmMgc3RhcnQoKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldFVzZXJNZWRpYVN0cmVhbSgnbWljcm9waG9uZScsIHsgYXVkaW86IHRydWUgfSlcblx0XHRcdFx0aWYgKCFzdHJlYW0pIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byByZXRyaWV2ZSB0aGUgc3RyZWFtIGZyb20gbWVkaWEgZGV2aWNlJylcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLl9pbnN0YW5jZS5zdGFydCgpXG5cdFx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0XHRjb25zdCBlcnJvckhhbmRsZXIgPSB0aGlzLl9saXN0ZW5lcnMuZXJyb3Jcblx0XHRcdFx0aWYgKCEhZXJyb3JIYW5kbGVyKSB7XG5cdFx0XHRcdFx0ZXJyb3JIYW5kbGVyKGVycm9yKVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdHN0b3AoKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UpIHtcblx0XHRcdHRoaXMuX2luc3RhbmNlLnN0b3AoKVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRhYm9ydCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dGhpcy5faW5zdGFuY2UuYWJvcnQoKVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRhZGRFdmVudExpc3RlbmVyKHR5cGUsIGNhbGxiYWNrKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UgJiYgdGhpcy5faW5jbHVkZXNFdmVudFR5cGUodHlwZSkpIHtcblx0XHRcdGlmICghIXRoaXMuX2xpc3RlbmVyc1t0eXBlXSkge1xuXHRcdFx0XHR0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSlcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgaGFuZGxlciA9IChldmVudCkgPT4ge1xuXHRcdFx0XHRsZXQgYWRkaXRpb25hbEFyZ3MgPSBbXVxuXHRcdFx0XHRpZiAodHlwZSA9PT0gU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmV2ZW50VHlwZXMuUkVTVUxUKSB7XG5cdFx0XHRcdFx0aWYgKCEhZXZlbnQucmVzdWx0cyAmJiBldmVudC5yZXN1bHRzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGFkZGl0aW9uYWxBcmdzLnB1c2goZXZlbnQucmVzdWx0c1swXVswXS50cmFuc2NyaXB0KVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCEhY2FsbGJhY2sgJiYgY2FsbGJhY2suYXBwbHkodGhpcywgWy4uLmFkZGl0aW9uYWxBcmdzLCBldmVudF0pXG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9pbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKHR5cGUsIChlKSA9PiBoYW5kbGVyKGUpKVxuXG5cdFx0XHR0aGlzLl9saXN0ZW5lcnNbdHlwZV0gPSBoYW5kbGVyXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdHJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSkge1xuXHRcdGNvbnN0IGhhbmRsZXIgPSB0aGlzLl9saXN0ZW5lcnNbdHlwZV1cblx0XHR0aGlzLl9pbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpXG5cblx0XHRkZWxldGUgdGhpcy5fbGlzdGVuZXJzW3R5cGVdXG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0Y2xlYW51cCgpIHtcblx0XHR0aGlzLnN0b3AoKVxuXG5cdFx0T2JqZWN0LmtleXModGhpcy5fbGlzdGVuZXJzKS5mb3JFYWNoKChrZXkpID0+IHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihrZXkpKVxuXHRcdHRoaXMuX2luc3RhbmNlID0gbnVsbFxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdF9pbmNsdWRlc0V2ZW50VHlwZSA9IChldmVudFR5cGUpID0+XG5cdFx0T2JqZWN0LnZhbHVlcyhTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuZXZlbnRUeXBlcykuZmluZCgodHlwZSkgPT4gdHlwZSA9PT0gZXZlbnRUeXBlKVxufVxuXG5leHBvcnQgZGVmYXVsdCBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXJcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuY29uc3QgTWljcm9waG9uZUljb24gPSAoeyBpY29uQ29sb3IgPSAnYmxhY2snLCBhY3RpdmVDb2xvciA9ICdyZWQnLCBpc0FjdGl2ZSA9IGZhbHNlIH0pID0+IHtcblx0cmV0dXJuIChcblx0XHQ8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuXHRcdFx0PGc+XG5cdFx0XHRcdDxwYXRoXG5cdFx0XHRcdFx0ZmlsbD17aWNvbkNvbG9yfVxuXHRcdFx0XHRcdGQ9XCJNMTIgMTRjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNMMTUgNWMwLTEuNjYtMS4zNC0zLTMtM1M5IDMuMzQgOSA1djZjMCAxLjY2IDEuMzQgMyAzIDN6bTUuMy0zYzAgMy0yLjU0IDUuMS01LjMgNS4xUzYuNyAxNCA2LjcgMTFINWMwIDMuNDEgMi43MiA2LjIzIDYgNi43MlYyMWgydi0zLjI4YzMuMjgtLjQ4IDYtMy4zIDYtNi43MmgtMS43elwiXG5cdFx0XHRcdC8+XG5cdFx0XHRcdHtpc0FjdGl2ZSAmJiA8Y2lyY2xlIGZpbGw9e2FjdGl2ZUNvbG9yfSBjeD1cIjE2XCIgY3k9XCI0XCIgcj1cIjRcIiAvPn1cblx0XHRcdDwvZz5cblx0XHQ8L3N2Zz5cblx0KVxufVxuXG5leHBvcnQgZGVmYXVsdCBNaWNyb3Bob25lSWNvblxuIiwiaW1wb3J0IFJlYWN0LCB7IGNsb25lRWxlbWVudCwgaXNWYWxpZEVsZW1lbnQsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuXG5pbXBvcnQgU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyIGZyb20gJy4vU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyJ1xuXG5pbXBvcnQgTWljcm9waG9uZUljb24gZnJvbSAnLi9NaWNyb3Bob25lSWNvbidcblxuY29uc3QgVm9jYWwgPSAoe1xuXHRjaGlsZHJlbixcblx0dGltZW91dCxcblx0YXJpYUxhYmVsLFxuXHR0YWJJbmRleCxcblx0c3R5bGUsXG5cdGNsYXNzTmFtZSxcblx0b25TdGFydCxcblx0b25FbmQsXG5cdG9uU3BlZWNoU3RhcnQsXG5cdG9uU3BlZWNoRW5kLFxuXHRvblJlc3VsdCxcblx0b25FcnJvcixcblx0b25Ob01hdGNoLFxuXHRfX3JlY29nbml0aW9uSW5zdGFuY2UsXG59KSA9PiB7XG5cdGNvbnN0IHRpbWVvdXRSZWYgPSB1c2VSZWYobnVsbClcblx0Y29uc3QgcmVjb2duaXRpb25SZWYgPSB1c2VSZWYobnVsbClcblxuXHRjb25zdCBbaXNMaXN0ZW5pbmcsIHNldElzTGlzdGVuaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKFNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5pc1N1cHBvcnRlZCkge1xuXHRcdFx0cmVjb2duaXRpb25SZWYuY3VycmVudCA9IF9fcmVjb2duaXRpb25JbnN0YW5jZSB8fCBuZXcgU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyKClcblx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdHJlY29nbml0aW9uUmVmLmN1cnJlbnQuYWJvcnQoKVxuXHRcdFx0XHRyZWNvZ25pdGlvblJlZi5jdXJyZW50LmNsZWFudXAoKVxuXHRcdFx0XHRjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KVxuXHRcdFx0fVxuXHRcdH1cblx0fSwgW19fcmVjb2duaXRpb25JbnN0YW5jZV0pXG5cblx0Y29uc3Qgc3RhcnRUaW1lciA9ICgpID0+IHtcblx0XHR0aW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KF9vbkVuZCwgdGltZW91dClcblx0fVxuXG5cdGNvbnN0IHN0b3BUaW1lciA9ICgpID0+IHtcblx0XHRjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KVxuXHRcdHRpbWVvdXRSZWYuY3VycmVudCA9IG51bGxcblx0fVxuXG5cdGNvbnN0IHN0YXJ0UmVjb2duaXRpb24gPSAoKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdHNldElzTGlzdGVuaW5nKHRydWUpXG5cblx0XHRcdGNvbnN0IHsgY3VycmVudDogciB9ID0gcmVjb2duaXRpb25SZWZcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBfb25TdGFydClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignZW5kJywgX29uRW5kKVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzcGVlY2hzdGFydCcsIF9vblNwZWVjaFN0YXJ0KVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzcGVlY2hlbmQnLCBfb25TcGVlY2hFbmQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc3VsdCcsIF9vblJlc3VsdClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBfb25FcnJvcilcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignbm9tYXRjaCcsIF9vbk5vTWF0Y2gpXG5cdFx0XHRyLnN0YXJ0KClcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0X29uRXJyb3IoZXJyb3IpXG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgc3RvcFJlY29nbml0aW9uID0gKCkgPT4ge1xuXHRcdHRyeSB7XG5cdFx0XHRzZXRJc0xpc3RlbmluZyhmYWxzZSlcblxuXHRcdFx0Y29uc3QgeyBjdXJyZW50OiByIH0gPSByZWNvZ25pdGlvblJlZlxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzdGFydCcsIF9vblN0YXJ0KVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdlbmQnLCBfb25FbmQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NwZWVjaHN0YXJ0JywgX29uU3BlZWNoU3RhcnQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NwZWVjaGVuZCcsIF9vblNwZWVjaEVuZClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzdWx0JywgX29uUmVzdWx0KVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIF9vbkVycm9yKVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdub21hdGNoJywgX29uTm9NYXRjaClcblx0XHRcdHIuc3RvcCgpXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdCEhb25FcnJvciAmJiBvbkVycm9yKGVycm9yKVxuXHRcdH1cblx0fVxuXG5cdGNvbnN0IHN0YXJ0ID0gKCkgPT4ge1xuXHRcdHN0YXJ0VGltZXIoKVxuXHR9XG5cblx0Y29uc3QgZW5kID0gKCkgPT4ge1xuXHRcdHN0b3BUaW1lcigpXG5cdFx0c3RvcFJlY29nbml0aW9uKClcblx0fVxuXG5cdGNvbnN0IF9vbkNsaWNrID0gKCkgPT4ge1xuXHRcdHN0YXJ0UmVjb2duaXRpb24oKVxuXHR9XG5cblx0Y29uc3QgX29uU3RhcnQgPSAoZSkgPT4ge1xuXHRcdHN0YXJ0KClcblxuXHRcdCEhb25TdGFydCAmJiBvblN0YXJ0KGUpXG5cdH1cblxuXHRjb25zdCBfb25FbmQgPSAoZSkgPT4ge1xuXHRcdGVuZCgpXG5cblx0XHQhIW9uRW5kICYmIG9uRW5kKGUpXG5cdH1cblxuXHRjb25zdCBfb25TcGVlY2hTdGFydCA9IChlKSA9PiB7XG5cdFx0c3RvcFRpbWVyKClcblxuXHRcdCEhb25TcGVlY2hTdGFydCAmJiBvblNwZWVjaFN0YXJ0KGUpXG5cdH1cblxuXHRjb25zdCBfb25TcGVlY2hFbmQgPSAoZSkgPT4ge1xuXHRcdHN0YXJ0VGltZXIoKVxuXG5cdFx0ISFvblNwZWVjaEVuZCAmJiBvblNwZWVjaEVuZChlKVxuXHR9XG5cblx0Y29uc3QgX29uUmVzdWx0ID0gKHJlc3VsdCwgZXZlbnQpID0+IHtcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXG5cdFx0ISFvblJlc3VsdCAmJiBvblJlc3VsdChyZXN1bHQsIGV2ZW50KVxuXHR9XG5cblx0Y29uc3QgX29uRXJyb3IgPSAoZXJyb3IpID0+IHtcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXG5cdFx0ISFvbkVycm9yICYmIG9uRXJyb3IoZXJyb3IpXG5cdH1cblxuXHRjb25zdCBfb25Ob01hdGNoID0gKGUpID0+IHtcblx0XHQhIW9uTm9NYXRjaCAmJiBvbk5vTWF0Y2goZSlcblx0fVxuXG5cdGNvbnN0IF9yZW5kZXJEZWZhdWx0ID0gKCkgPT4gKFxuXHRcdDxkaXZcblx0XHRcdGRhdGEtdGVzdGlkPVwiX192b2NhbC1yb290X19cIlxuXHRcdFx0cm9sZT1cImJ1dHRvblwiXG5cdFx0XHRhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG5cdFx0XHR0YWJJbmRleD17dGFiSW5kZXh9XG5cdFx0XHRzdHlsZT17Y2xhc3NOYW1lID8gbnVsbCA6IHsgd2lkdGg6IDI0LCBoZWlnaHQ6IDI0LCBjdXJzb3I6ICFpc0xpc3RlbmluZyA/ICdwb2ludGVyJyA6IG51bGwsIC4uLnN0eWxlIH19XG5cdFx0XHRjbGFzc05hbWU9e2NsYXNzTmFtZX1cblx0XHQ+XG5cdFx0XHQ8TWljcm9waG9uZUljb24gaXNBY3RpdmU9e2lzTGlzdGVuaW5nfSBpY29uQ29sb3I9XCIjYWFhXCIgLz5cblx0XHQ8L2Rpdj5cblx0KVxuXG5cdHJldHVybiAoXG5cdFx0U3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmlzU3VwcG9ydGVkICYmXG5cdFx0Y2xvbmVFbGVtZW50KGlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSA/IGNoaWxkcmVuIDogX3JlbmRlckRlZmF1bHQoKSwge1xuXHRcdFx0Li4uKCFpc0xpc3RlbmluZyAmJiB7IG9uQ2xpY2s6IF9vbkNsaWNrIH0pLFxuXHRcdH0pXG5cdClcbn1cblxuVm9jYWwucHJvcFR5cGVzID0ge1xuXHQvKiogRGVmaW5lcyB0aGUgdGltZSBpbiBtcyB0byB3YWl0IGJlZm9yZSBkaXNjYXJkaW5nIHRoZSByZWNvZ25pdGlvbiAqL1xuXHR0aW1lb3V0OiBQcm9wVHlwZXMubnVtYmVyLFxuXHQvKiogRGVmaW5lcyB0aGUgYTExeSBsYWJlbCBmb3IgdGhlIGRlZmF1bHQgYnV0dG9uICovXG5cdGFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcblx0LyoqIERlZmluZXMgdGhlIGExMXkgdGFiIGluZGV4IGZvciB0aGUgZGVmYXVsdCBidXR0b24gKi9cblx0dGFiSW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG5cdC8qKiBEZWZpbmVzIHRoZSBzdHlsZXMgb2YgdGhlIGRlZmF1bHQgZWxlbWVudCBpZiBjbGFzc05hbWUgaXMgbm90IHNwZWNpZmllZCAqL1xuXHRzdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcblx0LyoqIERlZmluZXMgdGhlIGNsYXNzIG9mIHRoZSBkZWZhdWx0IGVsZW1lbnQgKi9cblx0Y2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgcmVjb2duaXRpb24gc3RhcnRzICovXG5cdG9uU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgcmVjb2duaXRpb24gZW5kcyAqL1xuXHRvbkVuZDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBzcGVlY2ggc3RhcnRzICovXG5cdG9uU3BlZWNoU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgc3BlZWNoIGVuZHMgKi9cblx0b25TcGVlY2hFbmQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBhIHJlc3VsdCBpcyByZWNvZ25pemVkICovXG5cdG9uUmVzdWx0OiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzICovXG5cdG9uRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBubyByZXN1bHQgY2FuIGJlIHJlY29nbml6ZWQgKi9cblx0b25Ob01hdGNoOiBQcm9wVHlwZXMuZnVuYyxcbn1cblxuVm9jYWwuZGVmYXVsdFByb3BzID0ge1xuXHR0aW1lb3V0OiAzMDAwLFxuXHRhcmlhTGFiZWw6ICdzcGVlY2gnLFxuXHR0YWJJbmRleDogLTEsXG5cdHN0eWxlOiBudWxsLFxuXHRjbGFzc05hbWU6IG51bGwsXG5cdG9uU3RhcnQ6IG51bGwsXG5cdG9uRW5kOiBudWxsLFxuXHRvblNwZWVjaFN0YXJ0OiBudWxsLFxuXHRvblNwZWVjaEVuZDogbnVsbCxcblx0b25SZXN1bHQ6IG51bGwsXG5cdG9uRXJyb3I6IG51bGwsXG5cdG9uTm9NYXRjaDogbnVsbCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgVm9jYWxcbiJdLCJuYW1lcyI6WyJlIiwiciIsInQiLCJuIiwiYSIsImkiLCJvIiwidSIsImMiLCJ2YWx1ZSIsImRvbmUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJ0aGlzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJBcnJheSIsImlzQXJyYXkiLCJTeW1ib2wiLCJpdGVyYXRvciIsIk9iamVjdCIsIm5leHQiLCJwdXNoIiwibGVuZ3RoIiwicmV0dXJuIiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIlR5cGVFcnJvciIsInJlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJ3cmFwIiwicHJldiIsImFicnVwdCIsIm5hdmlnYXRvciIsInBlcm1pc3Npb25zIiwiRE9NRXhjZXB0aW9uIiwicXVlcnkiLCJzZW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInRhcmdldCIsInN0YXRlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInQwIiwiY2F0Y2giLCJzdG9wIiwicyIsIm1lZGlhRGV2aWNlcyIsInQxIiwiZ2V0VXNlck1lZGlhIiwidDIiLCJ0MyIsImFsbCIsInQ0IiwiU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyIiwib3B0aW9ucyIsImV2ZW50VHlwZSIsInZhbHVlcyIsImV2ZW50VHlwZXMiLCJmaW5kIiwidHlwZSIsIlNwZWVjaFJlY29nbml0aW9uIiwid2luZG93Iiwid2Via2l0U3BlZWNoUmVjb2duaXRpb24iLCJtb3pTcGVlY2hSZWNvZ25pdGlvbiIsIm1zU3BlZWNoUmVjb2duaXRpb24iLCJfaW5zdGFuY2UiLCJfbGlzdGVuZXJzIiwiZW50cmllcyIsImRlZmF1bHRPcHRpb25zIiwiZm9yRWFjaCIsImtleSIsIl90aGlzIiwiXyIsIkVycm9yIiwiZ2V0VXNlck1lZGlhU3RyZWFtIiwiYXVkaW8iLCJzdGFydCIsImVycm9ySGFuZGxlciIsImVycm9yIiwiYWJvcnQiLCJjYWxsYmFjayIsIl9pbmNsdWRlc0V2ZW50VHlwZSIsImhhbmRsZXIiLCJldmVudCIsImFkZGl0aW9uYWxBcmdzIiwiUkVTVUxUIiwicmVzdWx0cyIsInRyYW5zY3JpcHQiLCJfdGhpczIiLCJrZXlzIiwiX3RoaXMzIiwibGFuZyIsImNvbnRpbnVvdXMiLCJpbnRlcmltUmVzdWx0cyIsIm1heEFsdGVybmF0aXZlcyIsIkFVRElPX0VORCIsIkFVRElPX1NUQVJUIiwiRU5EIiwiRVJST1IiLCJOT19NQVRDSCIsIlNPVU5EX0VORCIsIlNPVU5EX1NUQVJUIiwiU1BFRUNIX0VORCIsIlNQRUVDSF9TVEFSVCIsIlNUQVJUIiwiTWljcm9waG9uZUljb24iLCJpY29uQ29sb3IiLCJhY3RpdmVDb2xvciIsImlzQWN0aXZlIiwiUmVhY3QiLCJ4bWxucyIsIndpZHRoIiwiaGVpZ2h0Iiwidmlld0JveCIsImZpbGwiLCJkIiwiY3giLCJjeSIsIlZvY2FsIiwiY2hpbGRyZW4iLCJ0aW1lb3V0IiwiYXJpYUxhYmVsIiwidGFiSW5kZXgiLCJzdHlsZSIsImNsYXNzTmFtZSIsIm9uU3RhcnQiLCJvbkVuZCIsIm9uU3BlZWNoU3RhcnQiLCJvblNwZWVjaEVuZCIsIm9uUmVzdWx0Iiwib25FcnJvciIsIm9uTm9NYXRjaCIsIl9fcmVjb2duaXRpb25JbnN0YW5jZSIsInRpbWVvdXRSZWYiLCJ1c2VSZWYiLCJyZWNvZ25pdGlvblJlZiIsInVzZVN0YXRlIiwiaXNMaXN0ZW5pbmciLCJzZXRJc0xpc3RlbmluZyIsInVzZUVmZmVjdCIsImlzU3VwcG9ydGVkIiwiY3VycmVudCIsImNsZWFudXAiLCJjbGVhclRpbWVvdXQiLCJzdGFydFRpbWVyIiwic2V0VGltZW91dCIsIl9vbkVuZCIsInN0b3BUaW1lciIsInN0b3BSZWNvZ25pdGlvbiIsIl9vblN0YXJ0IiwiX29uU3BlZWNoU3RhcnQiLCJfb25TcGVlY2hFbmQiLCJfb25SZXN1bHQiLCJfb25FcnJvciIsIl9vbk5vTWF0Y2giLCJyZXN1bHQiLCJjbG9uZUVsZW1lbnQiLCJpc1ZhbGlkRWxlbWVudCIsInJvbGUiLCJjdXJzb3IiLCJvbkNsaWNrIiwic3RhcnRSZWNvZ25pdGlvbiIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm51bWJlciIsInN0cmluZyIsIm9iamVjdCIsImZ1bmMiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiJrbUVBQUEsU0FBU0EsRUFBRUEsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsR0FBRyxJQUFJLElBQUlDLEVBQUVQLEVBQUVLLEdBQUdDLEdBQUdFLEVBQUVELEVBQUVFLE1BQU0sTUFBTVQsR0FBRyxZQUFZRSxFQUFFRixHQUFHTyxFQUFFRyxLQUFLVCxFQUFFTyxHQUFHRyxRQUFRQyxRQUFRSixHQUFHSyxLQUFLVixFQUFFQyxHQUFHLFNBQVNILEVBQUVBLEdBQUcsT0FBTyxXQUFXLElBQUlDLEVBQUVZLEtBQUtYLEVBQUVZLFVBQVUsT0FBTyxJQUFJSixrQkFBa0JQLEVBQUVDLEdBQUcsSUFBSUMsRUFBRUwsRUFBRWUsTUFBTWQsRUFBRUMsR0FBRyxTQUFTSSxFQUFFTixHQUFHRCxFQUFFTSxFQUFFRixFQUFFQyxFQUFFRSxFQUFFQyxFQUFFLE9BQU9QLEdBQUcsU0FBU08sRUFBRVAsR0FBR0QsRUFBRU0sRUFBRUYsRUFBRUMsRUFBRUUsRUFBRUMsRUFBRSxRQUFRUCxHQUFHTSxPQUFFLE9BQVksU0FBU0wsRUFBRUYsRUFBRUMsR0FBRyxPQUFPLFNBQVNELEdBQUcsR0FBR2lCLE1BQU1DLFFBQVFsQixHQUFHLE9BQU9BLEVBQXZDLENBQTBDQSxJQUFJLFNBQVNBLEVBQUVDLEdBQUcsR0FBRyxvQkFBb0JrQixRQUFVQSxPQUFPQyxZQUFZQyxPQUFPckIsR0FBM0QsQ0FBc0UsSUFBSUUsRUFBRSxHQUFHQyxHQUFFLEVBQUdDLEdBQUUsRUFBR0MsT0FBRSxFQUFPLElBQUksSUFBSSxJQUFJQyxFQUFFQyxFQUFFUCxFQUFFbUIsT0FBT0MsY0FBY2pC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 |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["react","prop-types"],t):(e=e||self)["react-vocal"]=t(e.React,e.PropTypes)}(this,(function(e,t){"use strict";var n="default"in e?e.default:e;function r(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function f(e,t,n,r,o,i,a){try{var c=e[i](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,o)}function p(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){f(i,r,o,a,c,"next",e)}function c(e){f(i,r,o,a,c,"throw",e)}a(void 0)}))}}function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var h=function(){var e=p(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=p(regeneratorRuntime.mark((function e(n,r){var o,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.permissions){e.next=4;break}r(new DOMException("NOT_FOUND_ERR","NotFoundError")),e.next=22;break;case 4:return e.prev=4,e.next=7,navigator.permissions.query({name:t});case 7:o=e.sent,e.t0=o.state,e.next="denied"===e.t0?11:"prompt"===e.t0?13:16;break;case 11:return r(new DOMException("NOT_ALLOWED_ERR","NotAllowedError")),e.abrupt("break",17);case 13:return i=function e(t){o.removeEventListener("change",e),"denied"===t.target.state?r(new DOMException("NOT_ALLOWED_ERR","NotAllowedError")):n(t.target.state)},o.addEventListener("change",i),e.abrupt("break",17);case 16:n(o.state);case 17:e.next=22;break;case 19:e.prev=19,e.t1=e.catch(4),r(e.t1);case 22:case"end":return e.stop()}}),e,null,[[4,19]])})));return function(t,n){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),m=function(){var e=p(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=p(regeneratorRuntime.mark((function e(r,o){var i,a,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.mediaDevices){e.next=4;break}o(new DOMException("NOT_FOUND_ERR","NotFoundError")),e.next=24;break;case 4:return e.prev=4,e.t0=Promise,e.next=8,h(t);case 8:return e.t1=e.sent,e.next=11,navigator.mediaDevices.getUserMedia(n);case 11:return e.t2=e.sent,e.t3=[e.t1,e.t2],e.next=15,e.t0.all.call(e.t0,e.t3);case 15:i=e.sent,a=v(i,2),c=a[1],r(c),e.next=24;break;case 21:e.prev=21,e.t4=e.catch(4),o(e.t4);case 24:case"end":return e.stop()}}),e,null,[[4,21]])})));return function(t,n){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),y=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"_instance",null),a(this,"_listeners",null),a(this,"_includesEventType",(function(t){return Object.values(e.eventTypes).find((function(e){return e===t}))}));var r=window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.msSpeechRecognition||{};this._instance=new r,this._listeners={},Object.entries(u(u({},e.defaultOptions),t||{})).forEach((function(e){var t=s(e,2),r=t[0],o=t[1];return n._instance[r]=o}))}var t,n;return i(e,null,[{key:"isSupported",get:function(){return!!(window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.msSpeechRecognition)},set:function(e){throw new Error("You cannot set isSupported directly.")}}]),i(e,[{key:"start",value:(t=regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._instance){e.next=14;break}return e.prev=1,e.next=4,m("microphone",{audio:!0});case 4:if(e.sent){e.next=7;break}throw new Error("Unable to retrieve the stream from media device");case 7:this._instance.start(),e.next=14;break;case 10:e.prev=10,e.t0=e.catch(1),(t=this._listeners.error)&&t(e.t0);case 14:return e.abrupt("return",this);case 15:case"end":return e.stop()}}),e,this,[[1,10]])})),n=function(){var e=this,n=arguments;return new Promise((function(o,i){var a=t.apply(e,n);function c(e){r(a,o,i,c,u,"next",e)}function u(e){r(a,o,i,c,u,"throw",e)}c(void 0)}))},function(){return n.apply(this,arguments)})},{key:"stop",value:function(){return this._instance&&this._instance.stop(),this}},{key:"abort",value:function(){return this._instance&&this._instance.abort(),this}},{key:"addEventListener",value:function(t,n){var r=this;if(this._instance&&this._includesEventType(t)){this._listeners[t]&&this.removeEventListener(t);var o=function(o){var i=[];t===e.eventTypes.RESULT&&o.results&&o.results.length>0&&i.push(o.results[0][0].transcript),n&&n.apply(r,[].concat(i,[o]))};this._instance.addEventListener(t,(function(e){return o(e)})),this._listeners[t]=o}return this}},{key:"removeEventListener",value:function(e){var t=this._listeners[e];return this._instance.removeEventListener(e,t),delete this._listeners[e],this}},{key:"cleanup",value:function(){var e=this;return this.stop(),Object.keys(this._listeners).forEach((function(t){return e.removeEventListener(t)})),this._instance=null,this}},{key:"instance",get:function(){return this._instance},set:function(e){throw new Error("You cannot set instance directly.")}}]),e}();a(y,"defaultOptions",{lang:"fr-FR",continuous:!1,interimResults:!1,maxAlternatives:1}),a(y,"eventTypes",{AUDIO_END:"audioend",AUDIO_START:"audiostart",END:"end",ERROR:"error",NO_MATCH:"nomatch",RESULT:"result",SOUND_END:"soundend",SOUND_START:"soundstart",SPEECH_END:"speechend",SPEECH_START:"speechstart",START:"start"});var b=function(e){var t=e.iconColor,r=void 0===t?"black":t,o=e.activeColor,i=void 0===o?"red":o,a=e.isActive,c=void 0!==a&&a;return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 24 24"},n.createElement("g",null,n.createElement("path",{fill:r,d:"M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"}),c&&n.createElement("circle",{fill:i,cx:"16",cy:"4",r:"4"})))},E=function(t){var r=t.children,o=t.timeout,i=t.ariaLabel,a=t.tabIndex,c=t.style,l=t.className,f=t.onStart,p=t.onEnd,v=t.onSpeechStart,d=t.onSpeechEnd,h=t.onResult,m=t.onError,E=t.onNoMatch,w=t.__recognitionInstance,g=e.useRef(null),S=e.useRef(null),O=s(e.useState(!1),2),_=O[0],R=O[1];e.useEffect((function(){if(y.isSupported)return S.current=w||new y,function(){S.current.abort(),S.current.cleanup(),clearTimeout(g.current)}}),[w]);var x=function(){g.current=setTimeout(j,o)},k=function(){clearTimeout(g.current),g.current=null},L=function(){try{R(!1);var e=S.current;e.removeEventListener("start",T),e.removeEventListener("end",j),e.removeEventListener("speechstart",A),e.removeEventListener("speechend",N),e.removeEventListener("result",D),e.removeEventListener("error",P),e.removeEventListener("nomatch",I),e.stop()}catch(e){m&&m(e)}},T=function(e){x(),f&&f(e)},j=function(e){k(),L(),p&&p(e)},A=function(e){k(),v&&v(e)},N=function(e){x(),d&&d(e)},D=function(e,t){L(),h&&h(e,t)},P=function(e){L(),m&&m(e)},I=function(e){E&&E(e)};return y.isSupported&&e.cloneElement(e.isValidElement(r)?r:n.createElement("div",{"data-testid":"__vocal-root__",role:"button","aria-label":i,tabIndex:a,style:l?null:u({width:24,height:24,cursor:_?null:"pointer"},c),className:l},n.createElement(b,{isActive:_,iconColor:"#aaa"})),u({},!_&&{onClick:function(){!function(){try{R(!0);var e=S.current;e.addEventListener("start",T),e.addEventListener("end",j),e.addEventListener("speechstart",A),e.addEventListener("speechend",N),e.addEventListener("result",D),e.addEventListener("error",P),e.addEventListener("nomatch",I),e.start()}catch(e){P(e)}}()}}))};return E.propTypes={timeout:t.number,ariaLabel:t.string,tabIndex:t.number,style:t.object,className:t.string,onStart:t.func,onEnd:t.func,onSpeechStart:t.func,onSpeechEnd:t.func,onResult:t.func,onError:t.func,onNoMatch:t.func},E.defaultProps={timeout:3e3,ariaLabel:"speech",tabIndex:-1,style:null,className:null,onStart:null,onEnd:null,onSpeechStart:null,onSpeechEnd:null,onResult:null,onError:null,onNoMatch:null},E})); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudW1kLmpzIiwic291cmNlcyI6WyIuLi9ub2RlX21vZHVsZXMvQHVudGVtcHMvdXNlci1wZXJtaXNzaW9ucy11dGlscy9kaXN0L2luZGV4LmVzLmpzIiwiLi4vc3JjL1NwZWVjaFJlY29nbml0aW9uV3JhcHBlci5qcyIsIi4uL3NyYy9NaWNyb3Bob25lSWNvbi5qcyIsIi4uL3NyYy9Wb2NhbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBlKGUscix0LG4sYSxvLGkpe3RyeXt2YXIgdT1lW29dKGkpLGM9dS52YWx1ZX1jYXRjaChlKXtyZXR1cm4gdm9pZCB0KGUpfXUuZG9uZT9yKGMpOlByb21pc2UucmVzb2x2ZShjKS50aGVuKG4sYSl9ZnVuY3Rpb24gcihyKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oYSxvKXt2YXIgaT1yLmFwcGx5KHQsbik7ZnVuY3Rpb24gdShyKXtlKGksYSxvLHUsYyxcIm5leHRcIixyKX1mdW5jdGlvbiBjKHIpe2UoaSxhLG8sdSxjLFwidGhyb3dcIixyKX11KHZvaWQgMCl9KSl9fWZ1bmN0aW9uIHQoZSxyKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUscil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIFN5bWJvbHx8IShTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKSlyZXR1cm47dmFyIHQ9W10sbj0hMCxhPSExLG89dm9pZCAwO3RyeXtmb3IodmFyIGksdT1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKG49KGk9dS5uZXh0KCkpLmRvbmUpJiYodC5wdXNoKGkudmFsdWUpLCFyfHx0Lmxlbmd0aCE9PXIpO249ITApO31jYXRjaChlKXthPSEwLG89ZX1maW5hbGx5e3RyeXtufHxudWxsPT11LnJldHVybnx8dS5yZXR1cm4oKX1maW5hbGx5e2lmKGEpdGhyb3cgb319cmV0dXJuIHR9KGUscil8fGZ1bmN0aW9uKGUscil7aWYoIWUpcmV0dXJuO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBuKGUscik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO1wiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpO2lmKFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbShlKTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG4oZSxyKX0oZSxyKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIG4oZSxyKXsobnVsbD09cnx8cj5lLmxlbmd0aCkmJihyPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxuPW5ldyBBcnJheShyKTt0PHI7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn12YXIgYT1mdW5jdGlvbigpe3ZhciBlPXIocmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoXCJyZXR1cm5cIixuZXcgUHJvbWlzZShmdW5jdGlvbigpe3ZhciBlPXIocmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoKGZ1bmN0aW9uIGUocixuKXt2YXIgYSxvO3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYobmF2aWdhdG9yLnBlcm1pc3Npb25zKXtlLm5leHQ9NDticmVha31uKG5ldyBET01FeGNlcHRpb24oXCJOT1RfRk9VTkRfRVJSXCIsXCJOb3RGb3VuZEVycm9yXCIpKSxlLm5leHQ9MjI7YnJlYWs7Y2FzZSA0OnJldHVybiBlLnByZXY9NCxlLm5leHQ9NyxuYXZpZ2F0b3IucGVybWlzc2lvbnMucXVlcnkoe25hbWU6dH0pO2Nhc2UgNzphPWUuc2VudCxlLnQwPWEuc3RhdGUsZS5uZXh0PVwiZGVuaWVkXCI9PT1lLnQwPzExOlwicHJvbXB0XCI9PT1lLnQwPzEzOjE2O2JyZWFrO2Nhc2UgMTE6cmV0dXJuIG4obmV3IERPTUV4Y2VwdGlvbihcIk5PVF9BTExPV0VEX0VSUlwiLFwiTm90QWxsb3dlZEVycm9yXCIpKSxlLmFicnVwdChcImJyZWFrXCIsMTcpO2Nhc2UgMTM6cmV0dXJuIG89ZnVuY3Rpb24gZSh0KXthLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIixlKSxcImRlbmllZFwiPT09dC50YXJnZXQuc3RhdGU/bihuZXcgRE9NRXhjZXB0aW9uKFwiTk9UX0FMTE9XRURfRVJSXCIsXCJOb3RBbGxvd2VkRXJyb3JcIikpOnIodC50YXJnZXQuc3RhdGUpfSxhLmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIixvKSxlLmFicnVwdChcImJyZWFrXCIsMTcpO2Nhc2UgMTY6cihhLnN0YXRlKTtjYXNlIDE3OmUubmV4dD0yMjticmVhaztjYXNlIDE5OmUucHJldj0xOSxlLnQxPWUuY2F0Y2goNCksbihlLnQxKTtjYXNlIDIyOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlLG51bGwsW1s0LDE5XV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24ocix0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSk7Y2FzZSAxOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksbz1mdW5jdGlvbigpe3ZhciBlPXIocmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoKGZ1bmN0aW9uIGUobixvKXtyZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdChcInJldHVyblwiLG5ldyBQcm9taXNlKGZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZShyLGkpe3ZhciB1LGMscztyZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKG5hdmlnYXRvci5tZWRpYURldmljZXMpe2UubmV4dD00O2JyZWFrfWkobmV3IERPTUV4Y2VwdGlvbihcIk5PVF9GT1VORF9FUlJcIixcIk5vdEZvdW5kRXJyb3JcIikpLGUubmV4dD0yNDticmVhaztjYXNlIDQ6cmV0dXJuIGUucHJldj00LGUudDA9UHJvbWlzZSxlLm5leHQ9OCxhKG4pO2Nhc2UgODpyZXR1cm4gZS50MT1lLnNlbnQsZS5uZXh0PTExLG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKG8pO2Nhc2UgMTE6cmV0dXJuIGUudDI9ZS5zZW50LGUudDM9W2UudDEsZS50Ml0sZS5uZXh0PTE1LGUudDAuYWxsLmNhbGwoZS50MCxlLnQzKTtjYXNlIDE1OnU9ZS5zZW50LGM9dCh1LDIpLHM9Y1sxXSxyKHMpLGUubmV4dD0yNDticmVhaztjYXNlIDIxOmUucHJldj0yMSxlLnQ0PWUuY2F0Y2goNCksaShlLnQ0KTtjYXNlIDI0OmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlLG51bGwsW1s0LDIxXV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24ocix0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSk7Y2FzZSAxOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHIsdCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtleHBvcnR7YSBhcyBnZXRQZXJtaXNzaW9uLG8gYXMgZ2V0VXNlck1lZGlhU3RyZWFtfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3VaWE11YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTR1TDNOeVl5OW5aWFJRWlhKdGFYTnphVzl1TG1weklpd2lMaTR2YzNKakwyZGxkRlZ6WlhKTlpXUnBZVk4wY21WaGJTNXFjeUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpcGNiaUFxSUZKbGRIVnlibk1nWVNCd2NtOXRhWE5sSUhKbGMyOXNkbVZrSUhkb1pXNGdkR2hsSUhCbGNtMXBjM05wYjI0Z2FYTWdaM0poYm5SbFpDQmllU0IwYUdVZ2RYTmxjbHh1SUNvZ1FIQmhjbUZ0SUhCbGNtMXBjM05wYjI1T1lXMWxJQ0FnSUNBZ0lDQWdJQ0FnVG1GdFpTQnZaaUIwYUdVZ2NHVnliV2x6YzJsdmJpNGdRSE5sWlNCb2RIUndjem92TDNjell5NW5hWFJvZFdJdWFXOHZjR1Z5YldsemMybHZibk12STJWdWRXMWtaV1l0Y0dWeWJXbHpjMmx2Ym01aGJXVmNiaUFxSUVCeVpYUjFjbTV6SUh0UWNtOXRhWE5sZlZ4dUlDb3ZYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQmhjM2x1WXlBb2NHVnliV2x6YzJsdmJrNWhiV1VwSUQwK0lIdGNibHgwY21WMGRYSnVJRzVsZHlCUWNtOXRhWE5sS0dGemVXNWpJQ2h5WlhOdmJIWmxMQ0J5WldwbFkzUXBJRDArSUh0Y2JseDBYSFJwWmlBb0lXNWhkbWxuWVhSdmNpNXdaWEp0YVhOemFXOXVjeWtnZTF4dVhIUmNkRngwY21WcVpXTjBLRzVsZHlCRVQwMUZlR05sY0hScGIyNG9KMDVQVkY5R1QxVk9SRjlGVWxJbkxDQW5UbTkwUm05MWJtUkZjbkp2Y2ljcEtWeHVYSFJjZEgwZ1pXeHpaU0I3WEc1Y2RGeDBYSFIwY25rZ2UxeHVYSFJjZEZ4MFhIUmpiMjV6ZENCd1pYSnRhWE56YVc5dVUzUmhkSFZ6SUQwZ1lYZGhhWFFnYm1GMmFXZGhkRzl5TG5CbGNtMXBjM05wYjI1ekxuRjFaWEo1S0hzZ2JtRnRaVG9nY0dWeWJXbHpjMmx2Yms1aGJXVWdmU2xjYmx4MFhIUmNkRngwYzNkcGRHTm9JQ2h3WlhKdGFYTnphVzl1VTNSaGRIVnpMbk4wWVhSbEtTQjdYRzVjZEZ4MFhIUmNkRngwWTJGelpTQW5aR1Z1YVdWa0p6cGNibHgwWEhSY2RGeDBYSFJjZEhKbGFtVmpkQ2h1WlhjZ1JFOU5SWGhqWlhCMGFXOXVLQ2RPVDFSZlFVeE1UMWRGUkY5RlVsSW5MQ0FuVG05MFFXeHNiM2RsWkVWeWNtOXlKeWtwWEc1Y2RGeDBYSFJjZEZ4MFhIUmljbVZoYTF4dVhIUmNkRngwWEhSY2RHTmhjMlVnSjNCeWIyMXdkQ2M2WEc1Y2RGeDBYSFJjZEZ4MFhIUmpiMjV6ZENCdmJrTm9ZVzVuWlNBOUlDaGxkbVZ1ZENrZ1BUNGdlMXh1WEhSY2RGeDBYSFJjZEZ4MFhIUndaWEp0YVhOemFXOXVVM1JoZEhWekxuSmxiVzkyWlVWMlpXNTBUR2x6ZEdWdVpYSW9KMk5vWVc1blpTY3NJRzl1UTJoaGJtZGxLVnh1WEhSY2RGeDBYSFJjZEZ4MFhIUnBaaUFvWlhabGJuUXVkR0Z5WjJWMExuTjBZWFJsSUQwOVBTQW5aR1Z1YVdWa0p5a2dlMXh1WEhSY2RGeDBYSFJjZEZ4MFhIUmNkSEpsYW1WamRDaHVaWGNnUkU5TlJYaGpaWEIwYVc5dUtDZE9UMVJmUVV4TVQxZEZSRjlGVWxJbkxDQW5UbTkwUVd4c2IzZGxaRVZ5Y205eUp5a3BYRzVjZEZ4MFhIUmNkRngwWEhSY2RIMGdaV3h6WlNCN1hHNWNkRngwWEhSY2RGeDBYSFJjZEZ4MGNtVnpiMngyWlNobGRtVnVkQzUwWVhKblpYUXVjM1JoZEdVcFhHNWNkRngwWEhSY2RGeDBYSFJjZEgxY2JseDBYSFJjZEZ4MFhIUmNkSDFjYmx4MFhIUmNkRngwWEhSY2RIQmxjbTFwYzNOcGIyNVRkR0YwZFhNdVlXUmtSWFpsYm5STWFYTjBaVzVsY2lnblkyaGhibWRsSnl3Z2IyNURhR0Z1WjJVcFhHNWNkRngwWEhSY2RGeDBYSFJpY21WaGExeHVYSFJjZEZ4MFhIUmNkR1JsWm1GMWJIUTZYRzVjZEZ4MFhIUmNkRngwWEhSeVpYTnZiSFpsS0hCbGNtMXBjM05wYjI1VGRHRjBkWE11YzNSaGRHVXBYRzVjZEZ4MFhIUmNkSDFjYmx4MFhIUmNkSDBnWTJGMFkyZ2dLR1Z5Y205eUtTQjdYRzVjZEZ4MFhIUmNkSEpsYW1WamRDaGxjbkp2Y2lsY2JseDBYSFJjZEgxY2JseDBYSFI5WEc1Y2RIMHBYRzU5WEc0aUxDSnBiWEJ2Y25RZ1oyVjBVR1Z5YldsemMybHZiaUJtY205dElDY3VMMmRsZEZCbGNtMXBjM05wYjI0blhHNWNiaThxS2x4dUlDb2dVbVYwZFhKdWN5QmhJSEJ5YjIxcGMyVWdjbVZ6YjJ4MlpXUWdkMmhsYmlCMGFHVWdiV1ZrYVdFZ2FYTWdZWFYwYUc5eWFYcGxaQ0JoYm1RZ2RHaGxJSE4wY21WaGJTQnBjeUJ5WlhSeWFXVjJaV1JjYmlBcUlFQndZWEpoYlNCd1pYSnRhWE56YVc5dVRtRnRaU0FnSUNBZ0lDQWdJQ0FnSUU1aGJXVWdiMllnZEdobElIQmxjbTFwYzNOcGIyNHVJRUJ6WldVZ2FIUjBjSE02THk5M00yTXVaMmwwYUhWaUxtbHZMM0JsY20xcGMzTnBiMjV6THlObGJuVnRaR1ZtTFhCbGNtMXBjM05wYjI1dVlXMWxYRzRnS2lCQWNHRnlZVzBnYldWa2FXRlRkSEpsWVcxRGIyNXpkSEpoYVc1MGN5QWdJQ0JEYjI1emRISmhhVzUwY3lCdlltcGxZM1F1SUVCelpXVWdhSFIwY0hNNkx5OWtaWFpsYkc5d1pYSXViVzk2YVd4c1lTNXZjbWN2Wlc0dFZWTXZaRzlqY3k5WFpXSXZRVkJKTDAxbFpHbGhVM1J5WldGdFEyOXVjM1J5WVdsdWRITmNiaUFxSUVCeVpYUjFjbTV6SUh0UWNtOXRhWE5sZlZ4dUlDb3ZYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQmhjM2x1WXlBb2NHVnliV2x6YzJsdmJrNWhiV1VzSUcxbFpHbGhVM1J5WldGdFEyOXVjM1J5WVdsdWRITXBJRDArSUh0Y2JseDBjbVYwZFhKdUlHNWxkeUJRY205dGFYTmxLR0Z6ZVc1aklDaHlaWE52YkhabExDQnlaV3BsWTNRcElEMCtJSHRjYmx4MFhIUnBaaUFvSVc1aGRtbG5ZWFJ2Y2k1dFpXUnBZVVJsZG1salpYTXBJSHRjYmx4MFhIUmNkSEpsYW1WamRDaHVaWGNnUkU5TlJYaGpaWEIwYVc5dUtDZE9UMVJmUms5VlRrUmZSVkpTSnl3Z0owNXZkRVp2ZFc1a1JYSnliM0luS1NsY2JseDBYSFI5SUdWc2MyVWdlMXh1WEhSY2RGeDBkSEo1SUh0Y2JseDBYSFJjZEZ4MFkyOXVjM1FnV3l3Z2MzUnlaV0Z0WFNBOUlHRjNZV2wwSUZCeWIyMXBjMlV1WVd4c0tGdGNibHgwWEhSY2RGeDBYSFJoZDJGcGRDQm5aWFJRWlhKdGFYTnphVzl1S0hCbGNtMXBjM05wYjI1T1lXMWxLU3hjYmx4MFhIUmNkRngwWEhSaGQyRnBkQ0J1WVhacFoyRjBiM0l1YldWa2FXRkVaWFpwWTJWekxtZGxkRlZ6WlhKTlpXUnBZU2h0WldScFlWTjBjbVZoYlVOdmJuTjBjbUZwYm5SektTeGNibHgwWEhSY2RGeDBYU2xjYmx4MFhIUmNkRngwY21WemIyeDJaU2h6ZEhKbFlXMHBYRzVjZEZ4MFhIUjlJR05oZEdOb0lDaGxjbkp2Y2lrZ2UxeHVYSFJjZEZ4MFhIUnlaV3BsWTNRb1pYSnliM0lwWEc1Y2RGeDBYSFI5WEc1Y2RGeDBmVnh1WEhSOUtWeHVmVnh1SWwwc0ltNWhiV1Z6SWpwYkluQmxjbTFwYzNOcGIyNU9ZVzFsSWl3aVVISnZiV2x6WlNJc0luSmxjMjlzZG1VaUxDSnlaV3BsWTNRaUxDSnVZWFpwWjJGMGIzSWlMQ0p3WlhKdGFYTnphVzl1Y3lJc0lrUlBUVVY0WTJWd2RHbHZiaUlzSW5GMVpYSjVJaXdpYm1GdFpTSXNJbkJsY20xcGMzTnBiMjVUZEdGMGRYTWlMQ0p6ZEdGMFpTSXNJbTl1UTJoaGJtZGxJaXdpWlhabGJuUWlMQ0p5WlcxdmRtVkZkbVZ1ZEV4cGMzUmxibVZ5SWl3aWRHRnlaMlYwSWl3aVlXUmtSWFpsYm5STWFYTjBaVzVsY2lJc0ltMWxaR2xoVTNSeVpXRnRRMjl1YzNSeVlXbHVkSE1pTENKdFpXUnBZVVJsZG1salpYTWlMQ0puWlhSUVpYSnRhWE56YVc5dUlpd2laMlYwVlhObGNrMWxaR2xoSWl3aVlXeHNJaXdpYzNSeVpXRnRJbDBzSW0xaGNIQnBibWR6SWpvaWJYZERRVXRCTEd0RVFVRmxMRmRCUVU5QkxEUkhRVU5rTEVsQlFVbERMRzlFUVVGUkxGZEJRVTlETEVWQlFWTkRMRGhHUVVNM1FrTXNWVUZCVlVNc05FSkJRMlJHTEVWQlFVOHNTVUZCU1Vjc1lVRkJZU3huUWtGQmFVSXNhMFZCUjFSR0xGVkJRVlZETEZsQlFWbEZMRTFCUVUwc1EwRkJSVU1zUzBGQlRWSXNWMEZCTjBSVExHTkJRMFZCTEVWQlFXbENReXhoUVVOdVFpeHRRa0ZIUVN3eVEwRkdTbEFzUlVGQlR5eEpRVUZKUnl4aFFVRmhMR3RDUVVGdFFpeDNSRUZIY2tOTExFVkJRVmNzVTBGQldFRXNSVUZCV1VNc1IwRkRha0pJTEVWQlFXbENTU3h2UWtGQmIwSXNVMEZCVlVZc1IwRkRjRUlzVjBGQmRrSkRMRVZCUVUxRkxFOUJRVTlLTEUxQlEyaENVQ3hGUVVGUExFbEJRVWxITEdGQlFXRXNhMEpCUVcxQ0xHOUNRVVV6UTBvc1JVRkJVVlVzUlVGQlRVVXNUMEZCVDBvc1VVRkhka0pFTEVWQlFXbENUU3hwUWtGQmFVSXNVMEZCVlVvc1owTkJSelZEVkN4RlFVRlJUeXhGUVVGcFFrTXNhVVZCUnpOQ1VDd3lVVU4yUWxjc1YwRkJUMGdzUlVGQlowSm5RaXcwUjBGRE9VSXNTVUZCU1dZc2IwUkJRVkVzVjBGQlQwTXNSVUZCVTBNc1owZEJRemRDUXl4VlFVRlZZU3cyUWtGRFpHUXNSVUZCVHl4SlFVRkpSeXhoUVVGaExHZENRVUZwUWl3NFJFRkhaa3dzYVVKQlEyeENhVUlzUlVGQlkyeENMSFZEUVVOa1NTeFZRVUZWWVN4aFFVRmhSU3hoUVVGaFNDdzRSRUZHVmtrc09FTkJRWGhDUXl4UFFVbFVia0lzUlVGQlVXMUNMSEZFUVVWU2JFSWlmUT09XG4iLCJpbXBvcnQgeyBnZXRVc2VyTWVkaWFTdHJlYW0gfSBmcm9tICdAdW50ZW1wcy91c2VyLXBlcm1pc3Npb25zLXV0aWxzJ1xuXG5jbGFzcyBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIge1xuXHRzdGF0aWMgZGVmYXVsdE9wdGlvbnMgPSB7XG5cdFx0bGFuZzogJ2ZyLUZSJyxcblx0XHRjb250aW51b3VzOiBmYWxzZSxcblx0XHRpbnRlcmltUmVzdWx0czogZmFsc2UsXG5cdFx0bWF4QWx0ZXJuYXRpdmVzOiAxLFxuXHR9XG5cblx0c3RhdGljIGV2ZW50VHlwZXMgPSB7XG5cdFx0QVVESU9fRU5EOiAnYXVkaW9lbmQnLFxuXHRcdEFVRElPX1NUQVJUOiAnYXVkaW9zdGFydCcsXG5cdFx0RU5EOiAnZW5kJyxcblx0XHRFUlJPUjogJ2Vycm9yJyxcblx0XHROT19NQVRDSDogJ25vbWF0Y2gnLFxuXHRcdFJFU1VMVDogJ3Jlc3VsdCcsXG5cdFx0U09VTkRfRU5EOiAnc291bmRlbmQnLFxuXHRcdFNPVU5EX1NUQVJUOiAnc291bmRzdGFydCcsXG5cdFx0U1BFRUNIX0VORDogJ3NwZWVjaGVuZCcsXG5cdFx0U1BFRUNIX1NUQVJUOiAnc3BlZWNoc3RhcnQnLFxuXHRcdFNUQVJUOiAnc3RhcnQnLFxuXHR9XG5cblx0c3RhdGljIGdldCBpc1N1cHBvcnRlZCgpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0ISF3aW5kb3cuU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdCEhd2luZG93LndlYmtpdFNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHQhIXdpbmRvdy5tb3pTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0ISF3aW5kb3cubXNTcGVlY2hSZWNvZ25pdGlvblxuXHRcdClcblx0fVxuXG5cdHN0YXRpYyBzZXQgaXNTdXBwb3J0ZWQoXykge1xuXHRcdHRocm93IG5ldyBFcnJvcignWW91IGNhbm5vdCBzZXQgaXNTdXBwb3J0ZWQgZGlyZWN0bHkuJylcblx0fVxuXG5cdF9pbnN0YW5jZSA9IG51bGxcblx0X2xpc3RlbmVycyA9IG51bGxcblxuXHRjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG5cdFx0Y29uc3QgU3BlZWNoUmVjb2duaXRpb24gPVxuXHRcdFx0d2luZG93LlNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHR3aW5kb3cud2Via2l0U3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHdpbmRvdy5tb3pTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0d2luZG93Lm1zU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHt9XG5cdFx0dGhpcy5faW5zdGFuY2UgPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKVxuXHRcdHRoaXMuX2xpc3RlbmVycyA9IHt9XG5cblx0XHRPYmplY3QuZW50cmllcyh7IC4uLlNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5kZWZhdWx0T3B0aW9ucywgLi4uKG9wdGlvbnMgfHwge30pIH0pLmZvckVhY2goXG5cdFx0XHQoW2tleSwgdmFsdWVdKSA9PiAodGhpcy5faW5zdGFuY2Vba2V5XSA9IHZhbHVlKVxuXHRcdClcblx0fVxuXG5cdGdldCBpbnN0YW5jZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5faW5zdGFuY2Vcblx0fVxuXG5cdHNldCBpbnN0YW5jZShfKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHNldCBpbnN0YW5jZSBkaXJlY3RseS4nKVxuXHR9XG5cblx0YXN5bmMgc3RhcnQoKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldFVzZXJNZWRpYVN0cmVhbSgnbWljcm9waG9uZScsIHsgYXVkaW86IHRydWUgfSlcblx0XHRcdFx0aWYgKCFzdHJlYW0pIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byByZXRyaWV2ZSB0aGUgc3RyZWFtIGZyb20gbWVkaWEgZGV2aWNlJylcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLl9pbnN0YW5jZS5zdGFydCgpXG5cdFx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0XHRjb25zdCBlcnJvckhhbmRsZXIgPSB0aGlzLl9saXN0ZW5lcnMuZXJyb3Jcblx0XHRcdFx0aWYgKCEhZXJyb3JIYW5kbGVyKSB7XG5cdFx0XHRcdFx0ZXJyb3JIYW5kbGVyKGVycm9yKVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdHN0b3AoKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UpIHtcblx0XHRcdHRoaXMuX2luc3RhbmNlLnN0b3AoKVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRhYm9ydCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dGhpcy5faW5zdGFuY2UuYWJvcnQoKVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRhZGRFdmVudExpc3RlbmVyKHR5cGUsIGNhbGxiYWNrKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UgJiYgdGhpcy5faW5jbHVkZXNFdmVudFR5cGUodHlwZSkpIHtcblx0XHRcdGlmICghIXRoaXMuX2xpc3RlbmVyc1t0eXBlXSkge1xuXHRcdFx0XHR0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSlcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgaGFuZGxlciA9IChldmVudCkgPT4ge1xuXHRcdFx0XHRsZXQgYWRkaXRpb25hbEFyZ3MgPSBbXVxuXHRcdFx0XHRpZiAodHlwZSA9PT0gU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmV2ZW50VHlwZXMuUkVTVUxUKSB7XG5cdFx0XHRcdFx0aWYgKCEhZXZlbnQucmVzdWx0cyAmJiBldmVudC5yZXN1bHRzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGFkZGl0aW9uYWxBcmdzLnB1c2goZXZlbnQucmVzdWx0c1swXVswXS50cmFuc2NyaXB0KVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCEhY2FsbGJhY2sgJiYgY2FsbGJhY2suYXBwbHkodGhpcywgWy4uLmFkZGl0aW9uYWxBcmdzLCBldmVudF0pXG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9pbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKHR5cGUsIChlKSA9PiBoYW5kbGVyKGUpKVxuXG5cdFx0XHR0aGlzLl9saXN0ZW5lcnNbdHlwZV0gPSBoYW5kbGVyXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdHJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSkge1xuXHRcdGNvbnN0IGhhbmRsZXIgPSB0aGlzLl9saXN0ZW5lcnNbdHlwZV1cblx0XHR0aGlzLl9pbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpXG5cblx0XHRkZWxldGUgdGhpcy5fbGlzdGVuZXJzW3R5cGVdXG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0Y2xlYW51cCgpIHtcblx0XHR0aGlzLnN0b3AoKVxuXG5cdFx0T2JqZWN0LmtleXModGhpcy5fbGlzdGVuZXJzKS5mb3JFYWNoKChrZXkpID0+IHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihrZXkpKVxuXHRcdHRoaXMuX2luc3RhbmNlID0gbnVsbFxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdF9pbmNsdWRlc0V2ZW50VHlwZSA9IChldmVudFR5cGUpID0+XG5cdFx0T2JqZWN0LnZhbHVlcyhTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuZXZlbnRUeXBlcykuZmluZCgodHlwZSkgPT4gdHlwZSA9PT0gZXZlbnRUeXBlKVxufVxuXG5leHBvcnQgZGVmYXVsdCBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXJcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuY29uc3QgTWljcm9waG9uZUljb24gPSAoeyBpY29uQ29sb3IgPSAnYmxhY2snLCBhY3RpdmVDb2xvciA9ICdyZWQnLCBpc0FjdGl2ZSA9IGZhbHNlIH0pID0+IHtcblx0cmV0dXJuIChcblx0XHQ8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuXHRcdFx0PGc+XG5cdFx0XHRcdDxwYXRoXG5cdFx0XHRcdFx0ZmlsbD17aWNvbkNvbG9yfVxuXHRcdFx0XHRcdGQ9XCJNMTIgMTRjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNMMTUgNWMwLTEuNjYtMS4zNC0zLTMtM1M5IDMuMzQgOSA1djZjMCAxLjY2IDEuMzQgMyAzIDN6bTUuMy0zYzAgMy0yLjU0IDUuMS01LjMgNS4xUzYuNyAxNCA2LjcgMTFINWMwIDMuNDEgMi43MiA2LjIzIDYgNi43MlYyMWgydi0zLjI4YzMuMjgtLjQ4IDYtMy4zIDYtNi43MmgtMS43elwiXG5cdFx0XHRcdC8+XG5cdFx0XHRcdHtpc0FjdGl2ZSAmJiA8Y2lyY2xlIGZpbGw9e2FjdGl2ZUNvbG9yfSBjeD1cIjE2XCIgY3k9XCI0XCIgcj1cIjRcIiAvPn1cblx0XHRcdDwvZz5cblx0XHQ8L3N2Zz5cblx0KVxufVxuXG5leHBvcnQgZGVmYXVsdCBNaWNyb3Bob25lSWNvblxuIiwiaW1wb3J0IFJlYWN0LCB7IGNsb25lRWxlbWVudCwgaXNWYWxpZEVsZW1lbnQsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuXG5pbXBvcnQgU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyIGZyb20gJy4vU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyJ1xuXG5pbXBvcnQgTWljcm9waG9uZUljb24gZnJvbSAnLi9NaWNyb3Bob25lSWNvbidcblxuY29uc3QgVm9jYWwgPSAoe1xuXHRjaGlsZHJlbixcblx0dGltZW91dCxcblx0YXJpYUxhYmVsLFxuXHR0YWJJbmRleCxcblx0c3R5bGUsXG5cdGNsYXNzTmFtZSxcblx0b25TdGFydCxcblx0b25FbmQsXG5cdG9uU3BlZWNoU3RhcnQsXG5cdG9uU3BlZWNoRW5kLFxuXHRvblJlc3VsdCxcblx0b25FcnJvcixcblx0b25Ob01hdGNoLFxuXHRfX3JlY29nbml0aW9uSW5zdGFuY2UsXG59KSA9PiB7XG5cdGNvbnN0IHRpbWVvdXRSZWYgPSB1c2VSZWYobnVsbClcblx0Y29uc3QgcmVjb2duaXRpb25SZWYgPSB1c2VSZWYobnVsbClcblxuXHRjb25zdCBbaXNMaXN0ZW5pbmcsIHNldElzTGlzdGVuaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKFNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5pc1N1cHBvcnRlZCkge1xuXHRcdFx0cmVjb2duaXRpb25SZWYuY3VycmVudCA9IF9fcmVjb2duaXRpb25JbnN0YW5jZSB8fCBuZXcgU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyKClcblx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdHJlY29nbml0aW9uUmVmLmN1cnJlbnQuYWJvcnQoKVxuXHRcdFx0XHRyZWNvZ25pdGlvblJlZi5jdXJyZW50LmNsZWFudXAoKVxuXHRcdFx0XHRjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KVxuXHRcdFx0fVxuXHRcdH1cblx0fSwgW19fcmVjb2duaXRpb25JbnN0YW5jZV0pXG5cblx0Y29uc3Qgc3RhcnRUaW1lciA9ICgpID0+IHtcblx0XHR0aW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KF9vbkVuZCwgdGltZW91dClcblx0fVxuXG5cdGNvbnN0IHN0b3BUaW1lciA9ICgpID0+IHtcblx0XHRjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KVxuXHRcdHRpbWVvdXRSZWYuY3VycmVudCA9IG51bGxcblx0fVxuXG5cdGNvbnN0IHN0YXJ0UmVjb2duaXRpb24gPSAoKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdHNldElzTGlzdGVuaW5nKHRydWUpXG5cblx0XHRcdGNvbnN0IHsgY3VycmVudDogciB9ID0gcmVjb2duaXRpb25SZWZcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBfb25TdGFydClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignZW5kJywgX29uRW5kKVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzcGVlY2hzdGFydCcsIF9vblNwZWVjaFN0YXJ0KVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzcGVlY2hlbmQnLCBfb25TcGVlY2hFbmQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc3VsdCcsIF9vblJlc3VsdClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBfb25FcnJvcilcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignbm9tYXRjaCcsIF9vbk5vTWF0Y2gpXG5cdFx0XHRyLnN0YXJ0KClcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0X29uRXJyb3IoZXJyb3IpXG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgc3RvcFJlY29nbml0aW9uID0gKCkgPT4ge1xuXHRcdHRyeSB7XG5cdFx0XHRzZXRJc0xpc3RlbmluZyhmYWxzZSlcblxuXHRcdFx0Y29uc3QgeyBjdXJyZW50OiByIH0gPSByZWNvZ25pdGlvblJlZlxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzdGFydCcsIF9vblN0YXJ0KVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdlbmQnLCBfb25FbmQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NwZWVjaHN0YXJ0JywgX29uU3BlZWNoU3RhcnQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NwZWVjaGVuZCcsIF9vblNwZWVjaEVuZClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzdWx0JywgX29uUmVzdWx0KVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIF9vbkVycm9yKVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdub21hdGNoJywgX29uTm9NYXRjaClcblx0XHRcdHIuc3RvcCgpXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdCEhb25FcnJvciAmJiBvbkVycm9yKGVycm9yKVxuXHRcdH1cblx0fVxuXG5cdGNvbnN0IHN0YXJ0ID0gKCkgPT4ge1xuXHRcdHN0YXJ0VGltZXIoKVxuXHR9XG5cblx0Y29uc3QgZW5kID0gKCkgPT4ge1xuXHRcdHN0b3BUaW1lcigpXG5cdFx0c3RvcFJlY29nbml0aW9uKClcblx0fVxuXG5cdGNvbnN0IF9vbkNsaWNrID0gKCkgPT4ge1xuXHRcdHN0YXJ0UmVjb2duaXRpb24oKVxuXHR9XG5cblx0Y29uc3QgX29uU3RhcnQgPSAoZSkgPT4ge1xuXHRcdHN0YXJ0KClcblxuXHRcdCEhb25TdGFydCAmJiBvblN0YXJ0KGUpXG5cdH1cblxuXHRjb25zdCBfb25FbmQgPSAoZSkgPT4ge1xuXHRcdGVuZCgpXG5cblx0XHQhIW9uRW5kICYmIG9uRW5kKGUpXG5cdH1cblxuXHRjb25zdCBfb25TcGVlY2hTdGFydCA9IChlKSA9PiB7XG5cdFx0c3RvcFRpbWVyKClcblxuXHRcdCEhb25TcGVlY2hTdGFydCAmJiBvblNwZWVjaFN0YXJ0KGUpXG5cdH1cblxuXHRjb25zdCBfb25TcGVlY2hFbmQgPSAoZSkgPT4ge1xuXHRcdHN0YXJ0VGltZXIoKVxuXG5cdFx0ISFvblNwZWVjaEVuZCAmJiBvblNwZWVjaEVuZChlKVxuXHR9XG5cblx0Y29uc3QgX29uUmVzdWx0ID0gKHJlc3VsdCwgZXZlbnQpID0+IHtcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXG5cdFx0ISFvblJlc3VsdCAmJiBvblJlc3VsdChyZXN1bHQsIGV2ZW50KVxuXHR9XG5cblx0Y29uc3QgX29uRXJyb3IgPSAoZXJyb3IpID0+IHtcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXG5cdFx0ISFvbkVycm9yICYmIG9uRXJyb3IoZXJyb3IpXG5cdH1cblxuXHRjb25zdCBfb25Ob01hdGNoID0gKGUpID0+IHtcblx0XHQhIW9uTm9NYXRjaCAmJiBvbk5vTWF0Y2goZSlcblx0fVxuXG5cdGNvbnN0IF9yZW5kZXJEZWZhdWx0ID0gKCkgPT4gKFxuXHRcdDxkaXZcblx0XHRcdGRhdGEtdGVzdGlkPVwiX192b2NhbC1yb290X19cIlxuXHRcdFx0cm9sZT1cImJ1dHRvblwiXG5cdFx0XHRhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG5cdFx0XHR0YWJJbmRleD17dGFiSW5kZXh9XG5cdFx0XHRzdHlsZT17Y2xhc3NOYW1lID8gbnVsbCA6IHsgd2lkdGg6IDI0LCBoZWlnaHQ6IDI0LCBjdXJzb3I6ICFpc0xpc3RlbmluZyA/ICdwb2ludGVyJyA6IG51bGwsIC4uLnN0eWxlIH19XG5cdFx0XHRjbGFzc05hbWU9e2NsYXNzTmFtZX1cblx0XHQ+XG5cdFx0XHQ8TWljcm9waG9uZUljb24gaXNBY3RpdmU9e2lzTGlzdGVuaW5nfSBpY29uQ29sb3I9XCIjYWFhXCIgLz5cblx0XHQ8L2Rpdj5cblx0KVxuXG5cdHJldHVybiAoXG5cdFx0U3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmlzU3VwcG9ydGVkICYmXG5cdFx0Y2xvbmVFbGVtZW50KGlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSA/IGNoaWxkcmVuIDogX3JlbmRlckRlZmF1bHQoKSwge1xuXHRcdFx0Li4uKCFpc0xpc3RlbmluZyAmJiB7IG9uQ2xpY2s6IF9vbkNsaWNrIH0pLFxuXHRcdH0pXG5cdClcbn1cblxuVm9jYWwucHJvcFR5cGVzID0ge1xuXHQvKiogRGVmaW5lcyB0aGUgdGltZSBpbiBtcyB0byB3YWl0IGJlZm9yZSBkaXNjYXJkaW5nIHRoZSByZWNvZ25pdGlvbiAqL1xuXHR0aW1lb3V0OiBQcm9wVHlwZXMubnVtYmVyLFxuXHQvKiogRGVmaW5lcyB0aGUgYTExeSBsYWJlbCBmb3IgdGhlIGRlZmF1bHQgYnV0dG9uICovXG5cdGFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcblx0LyoqIERlZmluZXMgdGhlIGExMXkgdGFiIGluZGV4IGZvciB0aGUgZGVmYXVsdCBidXR0b24gKi9cblx0dGFiSW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG5cdC8qKiBEZWZpbmVzIHRoZSBzdHlsZXMgb2YgdGhlIGRlZmF1bHQgZWxlbWVudCBpZiBjbGFzc05hbWUgaXMgbm90IHNwZWNpZmllZCAqL1xuXHRzdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcblx0LyoqIERlZmluZXMgdGhlIGNsYXNzIG9mIHRoZSBkZWZhdWx0IGVsZW1lbnQgKi9cblx0Y2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgcmVjb2duaXRpb24gc3RhcnRzICovXG5cdG9uU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgcmVjb2duaXRpb24gZW5kcyAqL1xuXHRvbkVuZDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBzcGVlY2ggc3RhcnRzICovXG5cdG9uU3BlZWNoU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgc3BlZWNoIGVuZHMgKi9cblx0b25TcGVlY2hFbmQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBhIHJlc3VsdCBpcyByZWNvZ25pemVkICovXG5cdG9uUmVzdWx0OiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzICovXG5cdG9uRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBubyByZXN1bHQgY2FuIGJlIHJlY29nbml6ZWQgKi9cblx0b25Ob01hdGNoOiBQcm9wVHlwZXMuZnVuYyxcbn1cblxuVm9jYWwuZGVmYXVsdFByb3BzID0ge1xuXHR0aW1lb3V0OiAzMDAwLFxuXHRhcmlhTGFiZWw6ICdzcGVlY2gnLFxuXHR0YWJJbmRleDogLTEsXG5cdHN0eWxlOiBudWxsLFxuXHRjbGFzc05hbWU6IG51bGwsXG5cdG9uU3RhcnQ6IG51bGwsXG5cdG9uRW5kOiBudWxsLFxuXHRvblNwZWVjaFN0YXJ0OiBudWxsLFxuXHRvblNwZWVjaEVuZDogbnVsbCxcblx0b25SZXN1bHQ6IG51bGwsXG5cdG9uRXJyb3I6IG51bGwsXG5cdG9uTm9NYXRjaDogbnVsbCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgVm9jYWxcbiJdLCJuYW1lcyI6WyJlIiwiciIsInQiLCJuIiwiYSIsIm8iLCJpIiwidSIsImMiLCJ2YWx1ZSIsImRvbmUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJ0aGlzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJBcnJheSIsImlzQXJyYXkiLCJTeW1ib2wiLCJpdGVyYXRvciIsIk9iamVjdCIsIm5leHQiLCJwdXNoIiwibGVuZ3RoIiwicmV0dXJuIiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIlR5cGVFcnJvciIsInJlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJ3cmFwIiwicHJldiIsImFicnVwdCIsIm5hdmlnYXRvciIsInBlcm1pc3Npb25zIiwiRE9NRXhjZXB0aW9uIiwicXVlcnkiLCJzZW50IiwidDAiLCJzdGF0ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJ0YXJnZXQiLCJhZGRFdmVudExpc3RlbmVyIiwidDEiLCJjYXRjaCIsInN0b3AiLCJzIiwibWVkaWFEZXZpY2VzIiwiZ2V0VXNlck1lZGlhIiwidDIiLCJ0MyIsImFsbCIsInQ0IiwiU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyIiwib3B0aW9ucyIsImV2ZW50VHlwZSIsInZhbHVlcyIsImV2ZW50VHlwZXMiLCJmaW5kIiwidHlwZSIsIlNwZWVjaFJlY29nbml0aW9uIiwid2luZG93Iiwid2Via2l0U3BlZWNoUmVjb2duaXRpb24iLCJtb3pTcGVlY2hSZWNvZ25pdGlvbiIsIm1zU3BlZWNoUmVjb2duaXRpb24iLCJfaW5zdGFuY2UiLCJfbGlzdGVuZXJzIiwiZW50cmllcyIsImRlZmF1bHRPcHRpb25zIiwiZm9yRWFjaCIsImtleSIsIl90aGlzIiwiXyIsIkVycm9yIiwiZ2V0VXNlck1lZGlhU3RyZWFtIiwiYXVkaW8iLCJzdGFydCIsImVycm9ySGFuZGxlciIsImVycm9yIiwiYWJvcnQiLCJjYWxsYmFjayIsIl9pbmNsdWRlc0V2ZW50VHlwZSIsImhhbmRsZXIiLCJldmVudCIsImFkZGl0aW9uYWxBcmdzIiwiUkVTVUxUIiwicmVzdWx0cyIsInRyYW5zY3JpcHQiLCJfdGhpczIiLCJrZXlzIiwiX3RoaXMzIiwibGFuZyIsImNvbnRpbnVvdXMiLCJpbnRlcmltUmVzdWx0cyIsIm1heEFsdGVybmF0aXZlcyIsIkFVRElPX0VORCIsIkFVRElPX1NUQVJUIiwiRU5EIiwiRVJST1IiLCJOT19NQVRDSCIsIlNPVU5EX0VORCIsIlNPVU5EX1NUQVJUIiwiU1BFRUNIX0VORCIsIlNQRUVDSF9TVEFSVCIsIlNUQVJUIiwiTWljcm9waG9uZUljb24iLCJpY29uQ29sb3IiLCJhY3RpdmVDb2xvciIsImlzQWN0aXZlIiwiUmVhY3QiLCJ4bWxucyIsIndpZHRoIiwiaGVpZ2h0Iiwidmlld0JveCIsImZpbGwiLCJkIiwiY3giLCJjeSIsIlZvY2FsIiwiY2hpbGRyZW4iLCJ0aW1lb3V0IiwiYXJpYUxhYmVsIiwidGFiSW5kZXgiLCJzdHlsZSIsImNsYXNzTmFtZSIsIm9uU3RhcnQiLCJvbkVuZCIsIm9uU3BlZWNoU3RhcnQiLCJvblNwZWVjaEVuZCIsIm9uUmVzdWx0Iiwib25FcnJvciIsIm9uTm9NYXRjaCIsIl9fcmVjb2duaXRpb25JbnN0YW5jZSIsInRpbWVvdXRSZWYiLCJ1c2VSZWYiLCJyZWNvZ25pdGlvblJlZiIsInVzZVN0YXRlIiwiaXNMaXN0ZW5pbmciLCJzZXRJc0xpc3RlbmluZyIsInVzZUVmZmVjdCIsImlzU3VwcG9ydGVkIiwiY3VycmVudCIsImNsZWFudXAiLCJjbGVhclRpbWVvdXQiLCJzdGFydFRpbWVyIiwic2V0VGltZW91dCIsIl9vbkVuZCIsInN0b3BUaW1lciIsInN0b3BSZWNvZ25pdGlvbiIsIl9vblN0YXJ0IiwiX29uU3BlZWNoU3RhcnQiLCJfb25TcGVlY2hFbmQiLCJfb25SZXN1bHQiLCJfb25FcnJvciIsIl9vbk5vTWF0Y2giLCJyZXN1bHQiLCJjbG9uZUVsZW1lbnQiLCJpc1ZhbGlkRWxlbWVudCIsInJvbGUiLCJjdXJzb3IiLCJvbkNsaWNrIiwic3RhcnRSZWNvZ25pdGlvbiIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm51bWJlciIsInN0cmluZyIsIm9iamVjdCIsImZ1bmMiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI4d0VBQUEsU0FBU0EsRUFBRUEsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsR0FBRyxJQUFJLElBQUlDLEVBQUVQLEVBQUVLLEdBQUdDLEdBQUdFLEVBQUVELEVBQUVFLE1BQU0sTUFBTVQsR0FBRyxZQUFZRSxFQUFFRixHQUFHTyxFQUFFRyxLQUFLVCxFQUFFTyxHQUFHRyxRQUFRQyxRQUFRSixHQUFHSyxLQUFLVixFQUFFQyxHQUFHLFNBQVNILEVBQUVBLEdBQUcsT0FBTyxXQUFXLElBQUlDLEVBQUVZLEtBQUtYLEVBQUVZLFVBQVUsT0FBTyxJQUFJSixrQkFBa0JQLEVBQUVDLEdBQUcsSUFBSUMsRUFBRUwsRUFBRWUsTUFBTWQsRUFBRUMsR0FBRyxTQUFTSSxFQUFFTixHQUFHRCxFQUFFTSxFQUFFRixFQUFFQyxFQUFFRSxFQUFFQyxFQUFFLE9BQU9QLEdBQUcsU0FBU08sRUFBRVAsR0FBR0QsRUFBRU0sRUFBRUYsRUFBRUMsRUFBRUUsRUFBRUMsRUFBRSxRQUFRUCxHQUFHTSxPQUFFLE9BQVksU0FBU0wsRUFBRUYsRUFB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 | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["react","prop-types"],t):(e=e||self)["react-vocal"]=t(e.React,e.PropTypes)}(this,(function(e,t){"use strict";var n="default"in e?e.default:e;function r(e,t,n,r,i,o,a){try{var c=e[o](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,i)}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,i=!1,o=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(i)throw o}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function f(e,t,n,r,i,o,a){try{var c=e[o](a),u=c.value}catch(e){return void n(e)}c.done?t(u):Promise.resolve(u).then(r,i)}function p(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){f(o,r,i,a,c,"next",e)}function c(e){f(o,r,i,a,c,"throw",e)}a(void 0)}))}}function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,i=!1,o=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(i)throw o}}return n}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var h=function(){var e=p(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=p(regeneratorRuntime.mark((function e(n,r){var i,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.permissions){e.next=4;break}r(new DOMException("Permissions not supported","NOT_FOUND_ERR")),e.next=16;break;case 4:return e.prev=4,e.next=7,navigator.permissions.query({name:t});case 7:i=e.sent,o=function e(t){i.removeEventListener("change",e),m(t.target.state,n,r)},i.addEventListener("change",o),m(i.state,n,r),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(4),r(e.t0);case 16:case"end":return e.stop()}}),e,null,[[4,13]])})));return function(t,n){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),m=function(e,t,n){switch(e){case"denied":n(new DOMException("Permission denied","NOT_ALLOWED_ERR"));break;default:t(e)}},y=function(){var e=p(regeneratorRuntime.mark((function e(t,n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=p(regeneratorRuntime.mark((function e(r,i){var o,a,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.mediaDevices){e.next=4;break}i(new DOMException("MediaDevices not supported","NOT_FOUND_ERR")),e.next=24;break;case 4:return e.prev=4,e.t0=Promise,e.next=8,h(t);case 8:return e.t1=e.sent,e.next=11,navigator.mediaDevices.getUserMedia(n);case 11:return e.t2=e.sent,e.t3=[e.t1,e.t2],e.next=15,e.t0.all.call(e.t0,e.t3);case 15:o=e.sent,a=v(o,2),c=a[1],r(c),e.next=24;break;case 21:e.prev=21,e.t4=e.catch(4),i(e.t4);case 24:case"end":return e.stop()}}),e,null,[[4,21]])})));return function(t,n){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),b=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"_instance",null),a(this,"_listeners",null),a(this,"_includesEventType",(function(t){return Object.values(e.eventTypes).find((function(e){return e===t}))}));var r=window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.msSpeechRecognition||{};this._instance=new r,this._listeners={},Object.entries(u(u({},e.defaultOptions),t||{})).forEach((function(e){var t=s(e,2),r=t[0],i=t[1];return n._instance[r]=i}))}var t,n;return o(e,null,[{key:"isSupported",get:function(){return!!(window.SpeechRecognition||window.webkitSpeechRecognition||window.mozSpeechRecognition||window.msSpeechRecognition)},set:function(e){throw new Error("You cannot set isSupported directly.")}}]),o(e,[{key:"start",value:(t=regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._instance){e.next=14;break}return e.prev=1,e.next=4,y("microphone",{audio:!0});case 4:if(e.sent){e.next=7;break}throw new Error("Unable to retrieve the stream from media device");case 7:this._instance.start(),e.next=14;break;case 10:e.prev=10,e.t0=e.catch(1),(t=this._listeners.error)&&t(e.t0);case 14:return e.abrupt("return",this);case 15:case"end":return e.stop()}}),e,this,[[1,10]])})),n=function(){var e=this,n=arguments;return new Promise((function(i,o){var a=t.apply(e,n);function c(e){r(a,i,o,c,u,"next",e)}function u(e){r(a,i,o,c,u,"throw",e)}c(void 0)}))},function(){return n.apply(this,arguments)})},{key:"stop",value:function(){return this._instance&&this._instance.stop(),this}},{key:"abort",value:function(){return this._instance&&this._instance.abort(),this}},{key:"addEventListener",value:function(t,n){var r=this;if(this._instance&&this._includesEventType(t)){this._listeners[t]&&this.removeEventListener(t);var i=function(i){var o=[];t===e.eventTypes.RESULT&&i.results&&i.results.length>0&&o.push(i.results[0][0].transcript),n&&n.apply(r,[].concat(o,[i]))};this._instance.addEventListener(t,(function(e){return i(e)})),this._listeners[t]=i}return this}},{key:"removeEventListener",value:function(e){var t=this._listeners[e];return this._instance.removeEventListener(e,t),delete this._listeners[e],this}},{key:"cleanup",value:function(){var e=this;return this.stop(),Object.keys(this._listeners).forEach((function(t){return e.removeEventListener(t)})),this._instance=null,this}},{key:"instance",get:function(){return this._instance},set:function(e){throw new Error("You cannot set instance directly.")}}]),e}();a(b,"defaultOptions",{lang:"fr-FR",continuous:!1,interimResults:!1,maxAlternatives:1}),a(b,"eventTypes",{AUDIO_END:"audioend",AUDIO_START:"audiostart",END:"end",ERROR:"error",NO_MATCH:"nomatch",RESULT:"result",SOUND_END:"soundend",SOUND_START:"soundstart",SPEECH_END:"speechend",SPEECH_START:"speechstart",START:"start"});var w=function(e){var t=e.iconColor,r=void 0===t?"black":t,i=e.activeColor,o=void 0===i?"red":i,a=e.isActive,c=void 0!==a&&a;return n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 24 24"},n.createElement("g",null,n.createElement("path",{fill:r,d:"M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"}),c&&n.createElement("circle",{fill:o,cx:"16",cy:"4",r:"4"})))},E=function(t){var r=t.children,i=t.timeout,o=t.ariaLabel,a=t.tabIndex,c=t.style,l=t.className,f=t.onStart,p=t.onEnd,v=t.onSpeechStart,d=t.onSpeechEnd,h=t.onResult,m=t.onError,y=t.onNoMatch,E=t.__recognitionInstance,g=e.useRef(null),S=e.useRef(null),O=s(e.useState(!1),2),_=O[0],R=O[1];e.useEffect((function(){if(b.isSupported)return S.current=E||new b,function(){S.current.abort(),S.current.cleanup(),clearTimeout(g.current)}}),[E]);var x=function(){g.current=setTimeout(T,i)},k=function(){clearTimeout(g.current),g.current=null},L=function(){try{R(!1);var e=S.current;e.removeEventListener("start",j),e.removeEventListener("end",T),e.removeEventListener("speechstart",P),e.removeEventListener("speechend",A),e.removeEventListener("result",D),e.removeEventListener("error",N),e.removeEventListener("nomatch",I),e.stop()}catch(e){m&&m(e)}},j=function(e){x(),f&&f(e)},T=function(e){k(),L(),p&&p(e)},P=function(e){k(),v&&v(e)},A=function(e){x(),d&&d(e)},D=function(e,t){L(),h&&h(e,t)},N=function(e){L(),m&&m(e)},I=function(e){y&&y(e)};return b.isSupported&&e.cloneElement(e.isValidElement(r)?r:n.createElement("div",{"data-testid":"__vocal-root__",role:"button","aria-label":o,tabIndex:a,style:l?null:u({width:24,height:24,cursor:_?null:"pointer"},c),className:l},n.createElement(w,{isActive:_,iconColor:"#aaa"})),u({},!_&&{onClick:function(){!function(){try{R(!0);var e=S.current;e.addEventListener("start",j),e.addEventListener("end",T),e.addEventListener("speechstart",P),e.addEventListener("speechend",A),e.addEventListener("result",D),e.addEventListener("error",N),e.addEventListener("nomatch",I),e.start()}catch(e){N(e)}}()}}))};return E.propTypes={timeout:t.number,ariaLabel:t.string,tabIndex:t.number,style:t.object,className:t.string,onStart:t.func,onEnd:t.func,onSpeechStart:t.func,onSpeechEnd:t.func,onResult:t.func,onError:t.func,onNoMatch:t.func},E.defaultProps={timeout:3e3,ariaLabel:"speech",tabIndex:-1,style:null,className:null,onStart:null,onEnd:null,onSpeechStart:null,onSpeechEnd:null,onResult:null,onError:null,onNoMatch:null},E})); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudW1kLmpzIiwic291cmNlcyI6WyIuLi9ub2RlX21vZHVsZXMvQHVudGVtcHMvdXNlci1wZXJtaXNzaW9ucy11dGlscy9kaXN0L2luZGV4LmVzLmpzIiwiLi4vc3JjL1NwZWVjaFJlY29nbml0aW9uV3JhcHBlci5qcyIsIi4uL3NyYy9NaWNyb3Bob25lSWNvbi5qcyIsIi4uL3NyYy9Wb2NhbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBlKGUscix0LG4sYSxpLG8pe3RyeXt2YXIgdT1lW2ldKG8pLGM9dS52YWx1ZX1jYXRjaChlKXtyZXR1cm4gdm9pZCB0KGUpfXUuZG9uZT9yKGMpOlByb21pc2UucmVzb2x2ZShjKS50aGVuKG4sYSl9ZnVuY3Rpb24gcihyKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oYSxpKXt2YXIgbz1yLmFwcGx5KHQsbik7ZnVuY3Rpb24gdShyKXtlKG8sYSxpLHUsYyxcIm5leHRcIixyKX1mdW5jdGlvbiBjKHIpe2UobyxhLGksdSxjLFwidGhyb3dcIixyKX11KHZvaWQgMCl9KSl9fWZ1bmN0aW9uIHQoZSxyKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUscil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIFN5bWJvbHx8IShTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKSlyZXR1cm47dmFyIHQ9W10sbj0hMCxhPSExLGk9dm9pZCAwO3RyeXtmb3IodmFyIG8sdT1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKG49KG89dS5uZXh0KCkpLmRvbmUpJiYodC5wdXNoKG8udmFsdWUpLCFyfHx0Lmxlbmd0aCE9PXIpO249ITApO31jYXRjaChlKXthPSEwLGk9ZX1maW5hbGx5e3RyeXtufHxudWxsPT11LnJldHVybnx8dS5yZXR1cm4oKX1maW5hbGx5e2lmKGEpdGhyb3cgaX19cmV0dXJuIHR9KGUscil8fGZ1bmN0aW9uKGUscil7aWYoIWUpcmV0dXJuO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBuKGUscik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO1wiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpO2lmKFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbShlKTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG4oZSxyKX0oZSxyKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIG4oZSxyKXsobnVsbD09cnx8cj5lLmxlbmd0aCkmJihyPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxuPW5ldyBBcnJheShyKTt0PHI7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn12YXIgYT1mdW5jdGlvbigpe3ZhciBlPXIocmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoXCJyZXR1cm5cIixuZXcgUHJvbWlzZShmdW5jdGlvbigpe3ZhciBlPXIocmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoKGZ1bmN0aW9uIGUocixuKXt2YXIgYSxvO3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYobmF2aWdhdG9yLnBlcm1pc3Npb25zKXtlLm5leHQ9NDticmVha31uKG5ldyBET01FeGNlcHRpb24oXCJQZXJtaXNzaW9ucyBub3Qgc3VwcG9ydGVkXCIsXCJOT1RfRk9VTkRfRVJSXCIpKSxlLm5leHQ9MTY7YnJlYWs7Y2FzZSA0OnJldHVybiBlLnByZXY9NCxlLm5leHQ9NyxuYXZpZ2F0b3IucGVybWlzc2lvbnMucXVlcnkoe25hbWU6dH0pO2Nhc2UgNzphPWUuc2VudCxvPWZ1bmN0aW9uIGUodCl7YS5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsZSksaSh0LnRhcmdldC5zdGF0ZSxyLG4pfSxhLmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIixvKSxpKGEuc3RhdGUscixuKSxlLm5leHQ9MTY7YnJlYWs7Y2FzZSAxMzplLnByZXY9MTMsZS50MD1lLmNhdGNoKDQpLG4oZS50MCk7Y2FzZSAxNjpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSxudWxsLFtbNCwxM11dKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHIsdCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSkpO2Nhc2UgMTpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpO3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGk9ZnVuY3Rpb24oZSxyLHQpe3N3aXRjaChlKXtjYXNlXCJkZW5pZWRcIjp0KG5ldyBET01FeGNlcHRpb24oXCJQZXJtaXNzaW9uIGRlbmllZFwiLFwiTk9UX0FMTE9XRURfRVJSXCIpKTticmVhaztkZWZhdWx0OnIoZSl9fSxvPWZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZShuLGkpe3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsbmV3IFByb21pc2UoZnVuY3Rpb24oKXt2YXIgZT1yKHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKChmdW5jdGlvbiBlKHIsbyl7dmFyIHUsYyxzO3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYobmF2aWdhdG9yLm1lZGlhRGV2aWNlcyl7ZS5uZXh0PTQ7YnJlYWt9byhuZXcgRE9NRXhjZXB0aW9uKFwiTWVkaWFEZXZpY2VzIG5vdCBzdXBwb3J0ZWRcIixcIk5PVF9GT1VORF9FUlJcIikpLGUubmV4dD0yNDticmVhaztjYXNlIDQ6cmV0dXJuIGUucHJldj00LGUudDA9UHJvbWlzZSxlLm5leHQ9OCxhKG4pO2Nhc2UgODpyZXR1cm4gZS50MT1lLnNlbnQsZS5uZXh0PTExLG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKGkpO2Nhc2UgMTE6cmV0dXJuIGUudDI9ZS5zZW50LGUudDM9W2UudDEsZS50Ml0sZS5uZXh0PTE1LGUudDAuYWxsLmNhbGwoZS50MCxlLnQzKTtjYXNlIDE1OnU9ZS5zZW50LGM9dCh1LDIpLHM9Y1sxXSxyKHMpLGUubmV4dD0yNDticmVhaztjYXNlIDIxOmUucHJldj0yMSxlLnQ0PWUuY2F0Y2goNCksbyhlLnQ0KTtjYXNlIDI0OmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlLG51bGwsW1s0LDIxXV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24ocix0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSk7Y2FzZSAxOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHIsdCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtleHBvcnR7YSBhcyBnZXRQZXJtaXNzaW9uLG8gYXMgZ2V0VXNlck1lZGlhU3RyZWFtfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3VaWE11YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTR1TDNOeVl5OW5aWFJRWlhKdGFYTnphVzl1TG1weklpd2lMaTR2YzNKakwyZGxkRlZ6WlhKTlpXUnBZVk4wY21WaGJTNXFjeUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpcGNiaUFxSUZKbGRIVnlibk1nWVNCd2NtOXRhWE5sSUhKbGMyOXNkbVZrSUhkb1pXNGdkR2hsSUhCbGNtMXBjM05wYjI0Z2FYTWdaM0poYm5SbFpDQmllU0IwYUdVZ2RYTmxjbHh1SUNvZ1FIQmhjbUZ0SUhCbGNtMXBjM05wYjI1T1lXMWxJQ0FnSUNBZ0lDQWdJQ0FnVG1GdFpTQnZaaUIwYUdVZ2NHVnliV2x6YzJsdmJpNGdRSE5sWlNCb2RIUndjem92TDNjell5NW5hWFJvZFdJdWFXOHZjR1Z5YldsemMybHZibk12STJWdWRXMWtaV1l0Y0dWeWJXbHpjMmx2Ym01aGJXVmNiaUFxSUVCeVpYUjFjbTV6SUh0UWNtOXRhWE5sZlZ4dUlDb3ZYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQmhjM2x1WXlBb2NHVnliV2x6YzJsdmJrNWhiV1VwSUQwK0lIdGNibHgwY21WMGRYSnVJRzVsZHlCUWNtOXRhWE5sS0dGemVXNWpJQ2h5WlhOdmJIWmxMQ0J5WldwbFkzUXBJRDArSUh0Y2JseDBYSFJwWmlBb0lXNWhkbWxuWVhSdmNpNXdaWEp0YVhOemFXOXVjeWtnZTF4dVhIUmNkRngwY21WcVpXTjBLRzVsZHlCRVQwMUZlR05sY0hScGIyNG9KMUJsY20xcGMzTnBiMjV6SUc1dmRDQnpkWEJ3YjNKMFpXUW5MQ0FuVGs5VVgwWlBWVTVFWDBWU1VpY3BLVnh1WEhSY2RIMGdaV3h6WlNCN1hHNWNkRngwWEhSMGNua2dlMXh1WEhSY2RGeDBYSFJqYjI1emRDQndaWEp0YVhOemFXOXVVM1JoZEhWeklEMGdZWGRoYVhRZ2JtRjJhV2RoZEc5eUxuQmxjbTFwYzNOcGIyNXpMbkYxWlhKNUtIc2dibUZ0WlRvZ2NHVnliV2x6YzJsdmJrNWhiV1VnZlNsY2JseDBYSFJjZEZ4MFkyOXVjM1FnYjI1RGFHRnVaMlVnUFNBb1pYWmxiblFwSUQwK0lIdGNibHgwWEhSY2RGeDBYSFJ3WlhKdGFYTnphVzl1VTNSaGRIVnpMbkpsYlc5MlpVVjJaVzUwVEdsemRHVnVaWElvSjJOb1lXNW5aU2NzSUc5dVEyaGhibWRsS1Z4dVhIUmNkRngwWEhSY2RISmxjMjlzZG1WUGNsSmxhbVZqZEVKaGMyVmtUMjVUZEdGMFpTaGxkbVZ1ZEM1MFlYSm5aWFF1YzNSaGRHVXNJSEpsYzI5c2RtVXNJSEpsYW1WamRDbGNibHgwWEhSY2RGeDBmVnh1WEhSY2RGeDBYSFJ3WlhKdGFYTnphVzl1VTNSaGRIVnpMbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSW9KMk5vWVc1blpTY3NJRzl1UTJoaGJtZGxLVnh1WEhSY2RGeDBYSFJ5WlhOdmJIWmxUM0pTWldwbFkzUkNZWE5sWkU5dVUzUmhkR1VvY0dWeWJXbHpjMmx2YmxOMFlYUjFjeTV6ZEdGMFpTd2djbVZ6YjJ4MlpTd2djbVZxWldOMEtWeHVYSFJjZEZ4MGZTQmpZWFJqYUNBb1pYSnliM0lwSUh0Y2JseDBYSFJjZEZ4MGNtVnFaV04wS0dWeWNtOXlLVnh1WEhSY2RGeDBmVnh1WEhSY2RIMWNibHgwZlNsY2JuMWNibHh1WTI5dWMzUWdjbVZ6YjJ4MlpVOXlVbVZxWldOMFFtRnpaV1JQYmxOMFlYUmxJRDBnS0hOMFlYUmxMQ0J5WlhOdmJIWmxMQ0J5WldwbFkzUXBJRDArSUh0Y2JseDBjM2RwZEdOb0lDaHpkR0YwWlNrZ2UxeHVYSFJjZEdOaGMyVWdKMlJsYm1sbFpDYzZYRzVjZEZ4MFhIUnlaV3BsWTNRb2JtVjNJRVJQVFVWNFkyVndkR2x2YmlnblVHVnliV2x6YzJsdmJpQmtaVzVwWldRbkxDQW5UazlVWDBGTVRFOVhSVVJmUlZKU0p5a3BYRzVjZEZ4MFhIUmljbVZoYTF4dVhIUmNkR1JsWm1GMWJIUTZYRzVjZEZ4MFhIUnlaWE52YkhabEtITjBZWFJsS1Z4dVhIUjlYRzU5WEc0aUxDSnBiWEJ2Y25RZ1oyVjBVR1Z5YldsemMybHZiaUJtY205dElDY3VMMmRsZEZCbGNtMXBjM05wYjI0blhHNWNiaThxS2x4dUlDb2dVbVYwZFhKdWN5QmhJSEJ5YjIxcGMyVWdjbVZ6YjJ4MlpXUWdkMmhsYmlCMGFHVWdjR1Z5YldsemMybHZiaUJwY3lCbmNtRnVkR1ZrSUdKNUlIUm9aU0IxYzJWeUlHRnVaQ0IwYUdVZ2MzUnlaV0Z0SUdseklISmxkSEpwWlhabFpGeHVJQ29nUUhCaGNtRnRJSEJsY20xcGMzTnBiMjVPWVcxbElDQWdJQ0FnSUNBZ0lDQWdUbUZ0WlNCdlppQjBhR1VnY0dWeWJXbHpjMmx2Ymk0Z1FITmxaU0JvZEhSd2N6b3ZMM2N6WXk1bmFYUm9kV0l1YVc4dmNHVnliV2x6YzJsdmJuTXZJMlZ1ZFcxa1pXWXRjR1Z5YldsemMybHZibTVoYldWY2JpQXFJRUJ3WVhKaGJTQnRaV1JwWVZOMGNtVmhiVU52Ym5OMGNtRnBiblJ6SUNBZ0lFTnZibk4wY21GcGJuUnpJRzlpYW1WamRDNGdRSE5sWlNCb2RIUndjem92TDJSbGRtVnNiM0JsY2k1dGIzcHBiR3hoTG05eVp5OWxiaTFWVXk5a2IyTnpMMWRsWWk5QlVFa3ZUV1ZrYVdGVGRISmxZVzFEYjI1emRISmhhVzUwYzF4dUlDb2dRSEpsZEhWeWJuTWdlMUJ5YjIxcGMyVjlYRzRnS2k5Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUdGemVXNWpJQ2h3WlhKdGFYTnphVzl1VG1GdFpTd2diV1ZrYVdGVGRISmxZVzFEYjI1emRISmhhVzUwY3lrZ1BUNGdlMXh1WEhSeVpYUjFjbTRnYm1WM0lGQnliMjFwYzJVb1lYTjVibU1nS0hKbGMyOXNkbVVzSUhKbGFtVmpkQ2tnUFQ0Z2UxeHVYSFJjZEdsbUlDZ2hibUYyYVdkaGRHOXlMbTFsWkdsaFJHVjJhV05sY3lrZ2UxeHVYSFJjZEZ4MGNtVnFaV04wS0c1bGR5QkVUMDFGZUdObGNIUnBiMjRvSjAxbFpHbGhSR1YyYVdObGN5QnViM1FnYzNWd2NHOXlkR1ZrSnl3Z0owNVBWRjlHVDFWT1JGOUZVbEluS1NsY2JseDBYSFI5SUdWc2MyVWdlMXh1WEhSY2RGeDBkSEo1SUh0Y2JseDBYSFJjZEZ4MFkyOXVjM1FnV3l3Z2MzUnlaV0Z0WFNBOUlHRjNZV2wwSUZCeWIyMXBjMlV1WVd4c0tGdGNibHgwWEhSY2RGeDBYSFJoZDJGcGRDQm5aWFJRWlhKdGFYTnphVzl1S0hCbGNtMXBjM05wYjI1T1lXMWxLU3hjYmx4MFhIUmNkRngwWEhSaGQyRnBkQ0J1WVhacFoyRjBiM0l1YldWa2FXRkVaWFpwWTJWekxtZGxkRlZ6WlhKTlpXUnBZU2h0WldScFlWTjBjbVZoYlVOdmJuTjBjbUZwYm5SektTeGNibHgwWEhSY2RGeDBYU2xjYmx4MFhIUmNkRngwY21WemIyeDJaU2h6ZEhKbFlXMHBYRzVjZEZ4MFhIUjlJR05oZEdOb0lDaGxjbkp2Y2lrZ2UxeHVYSFJjZEZ4MFhIUnlaV3BsWTNRb1pYSnliM0lwWEc1Y2RGeDBYSFI5WEc1Y2RGeDBmVnh1WEhSOUtWeHVmVnh1SWwwc0ltNWhiV1Z6SWpwYkluQmxjbTFwYzNOcGIyNU9ZVzFsSWl3aVVISnZiV2x6WlNJc0luSmxjMjlzZG1VaUxDSnlaV3BsWTNRaUxDSnVZWFpwWjJGMGIzSWlMQ0p3WlhKdGFYTnphVzl1Y3lJc0lrUlBUVVY0WTJWd2RHbHZiaUlzSW5GMVpYSjVJaXdpYm1GdFpTSXNJbkJsY20xcGMzTnBiMjVUZEdGMGRYTWlMQ0p2YmtOb1lXNW5aU0lzSW1WMlpXNTBJaXdpY21WdGIzWmxSWFpsYm5STWFYTjBaVzVsY2lJc0luSmxjMjlzZG1WUGNsSmxhbVZqZEVKaGMyVmtUMjVUZEdGMFpTSXNJblJoY21kbGRDSXNJbk4wWVhSbElpd2lZV1JrUlhabGJuUk1hWE4wWlc1bGNpSXNJbTFsWkdsaFUzUnlaV0Z0UTI5dWMzUnlZV2x1ZEhNaUxDSnRaV1JwWVVSbGRtbGpaWE1pTENKblpYUlFaWEp0YVhOemFXOXVJaXdpWjJWMFZYTmxjazFsWkdsaElpd2lZV3hzSWl3aWMzUnlaV0Z0SWwwc0ltMWhjSEJwYm1keklqb2liWGREUVV0QkxHdEVRVUZsTEZkQlFVOUJMRFJIUVVOa0xFbEJRVWxETEc5RVFVRlJMRmRCUVU5RExFVkJRVk5ETERoR1FVTTNRa01zVlVGQlZVTXNORUpCUTJSR0xFVkJRVThzU1VGQlNVY3NZVUZCWVN3MFFrRkJOa0lzYTBWQlIzSkNSaXhWUVVGVlF5eFpRVUZaUlN4TlFVRk5MRU5CUVVWRExFdEJRVTFTTEZkQlFUZEVVeXhUUVVOQlF5eEZRVUZYTEZOQlFWaEJMRVZCUVZsRExFZEJRMnBDUml4RlFVRnBRa2NzYjBKQlFXOUNMRk5CUVZWR0xFZEJReTlEUnl4RlFVRTBRa1lzUlVGQlRVY3NUMEZCVDBNc1RVRkJUMklzUlVGQlUwTXNTVUZGTVVSTkxFVkJRV2xDVHl4cFFrRkJhVUlzVTBGQlZVNHNSMEZETlVOSExFVkJRVFJDU2l4RlFVRnBRazBzVFVGQlQySXNSVUZCVTBNc2NVUkJSVGRFUVN3MlRrRk5SVlVzUlVGQk9FSXNVMEZCUTBVc1JVRkJUMklzUlVGQlUwTXNWVUZETlVOWkxFOUJRMFlzVTBGRFNsb3NSVUZCVHl4SlFVRkpSeXhoUVVGaExHOUNRVUZ4UWl4clEwRkhOME5LTEVWQlFWRmhMRzFFUTNaQ1NTeFhRVUZQWml4RlFVRm5RbWxDTERSSFFVTTVRaXhKUVVGSmFFSXNiMFJCUVZFc1YwRkJUME1zUlVGQlUwTXNaMGRCUXpkQ1F5eFZRVUZWWXl3MlFrRkRaR1lzUlVGQlR5eEpRVUZKUnl4aFFVRmhMRFpDUVVFNFFpdzRSRUZITlVKTUxHbENRVU5zUW10Q0xFVkJRV051UWl4MVEwRkRaRWtzVlVGQlZXTXNZVUZCWVVVc1lVRkJZVWdzT0VSQlJsWkpMRGhEUVVGNFFrTXNUMEZKVkhCQ0xFVkJRVkZ2UWl4eFJFRkZVbTVDSW4wPVxuIiwiaW1wb3J0IHsgZ2V0VXNlck1lZGlhU3RyZWFtIH0gZnJvbSAnQHVudGVtcHMvdXNlci1wZXJtaXNzaW9ucy11dGlscydcblxuY2xhc3MgU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyIHtcblx0c3RhdGljIGRlZmF1bHRPcHRpb25zID0ge1xuXHRcdGxhbmc6ICdmci1GUicsXG5cdFx0Y29udGludW91czogZmFsc2UsXG5cdFx0aW50ZXJpbVJlc3VsdHM6IGZhbHNlLFxuXHRcdG1heEFsdGVybmF0aXZlczogMSxcblx0fVxuXG5cdHN0YXRpYyBldmVudFR5cGVzID0ge1xuXHRcdEFVRElPX0VORDogJ2F1ZGlvZW5kJyxcblx0XHRBVURJT19TVEFSVDogJ2F1ZGlvc3RhcnQnLFxuXHRcdEVORDogJ2VuZCcsXG5cdFx0RVJST1I6ICdlcnJvcicsXG5cdFx0Tk9fTUFUQ0g6ICdub21hdGNoJyxcblx0XHRSRVNVTFQ6ICdyZXN1bHQnLFxuXHRcdFNPVU5EX0VORDogJ3NvdW5kZW5kJyxcblx0XHRTT1VORF9TVEFSVDogJ3NvdW5kc3RhcnQnLFxuXHRcdFNQRUVDSF9FTkQ6ICdzcGVlY2hlbmQnLFxuXHRcdFNQRUVDSF9TVEFSVDogJ3NwZWVjaHN0YXJ0Jyxcblx0XHRTVEFSVDogJ3N0YXJ0Jyxcblx0fVxuXG5cdHN0YXRpYyBnZXQgaXNTdXBwb3J0ZWQoKSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdCEhd2luZG93LlNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHQhIXdpbmRvdy53ZWJraXRTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0ISF3aW5kb3cubW96U3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdCEhd2luZG93Lm1zU3BlZWNoUmVjb2duaXRpb25cblx0XHQpXG5cdH1cblxuXHRzdGF0aWMgc2V0IGlzU3VwcG9ydGVkKF8pIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3Qgc2V0IGlzU3VwcG9ydGVkIGRpcmVjdGx5LicpXG5cdH1cblxuXHRfaW5zdGFuY2UgPSBudWxsXG5cdF9saXN0ZW5lcnMgPSBudWxsXG5cblx0Y29uc3RydWN0b3Iob3B0aW9ucykge1xuXHRcdGNvbnN0IFNwZWVjaFJlY29nbml0aW9uID1cblx0XHRcdHdpbmRvdy5TcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0d2luZG93LndlYmtpdFNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHR3aW5kb3cubW96U3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHdpbmRvdy5tc1NwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHR7fVxuXHRcdHRoaXMuX2luc3RhbmNlID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKClcblx0XHR0aGlzLl9saXN0ZW5lcnMgPSB7fVxuXG5cdFx0T2JqZWN0LmVudHJpZXMoeyAuLi5TcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuZGVmYXVsdE9wdGlvbnMsIC4uLihvcHRpb25zIHx8IHt9KSB9KS5mb3JFYWNoKFxuXHRcdFx0KFtrZXksIHZhbHVlXSkgPT4gKHRoaXMuX2luc3RhbmNlW2tleV0gPSB2YWx1ZSlcblx0XHQpXG5cdH1cblxuXHRnZXQgaW5zdGFuY2UoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2luc3RhbmNlXG5cdH1cblxuXHRzZXQgaW5zdGFuY2UoXykge1xuXHRcdHRocm93IG5ldyBFcnJvcignWW91IGNhbm5vdCBzZXQgaW5zdGFuY2UgZGlyZWN0bHkuJylcblx0fVxuXG5cdGFzeW5jIHN0YXJ0KCkge1xuXHRcdGlmICghIXRoaXMuX2luc3RhbmNlKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXRVc2VyTWVkaWFTdHJlYW0oJ21pY3JvcGhvbmUnLCB7IGF1ZGlvOiB0cnVlIH0pXG5cdFx0XHRcdGlmICghc3RyZWFtKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gcmV0cmlldmUgdGhlIHN0cmVhbSBmcm9tIG1lZGlhIGRldmljZScpXG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5faW5zdGFuY2Uuc3RhcnQoKVxuXHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdFx0Y29uc3QgZXJyb3JIYW5kbGVyID0gdGhpcy5fbGlzdGVuZXJzLmVycm9yXG5cdFx0XHRcdGlmICghIWVycm9ySGFuZGxlcikge1xuXHRcdFx0XHRcdGVycm9ySGFuZGxlcihlcnJvcilcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRzdG9wKCkge1xuXHRcdGlmICghIXRoaXMuX2luc3RhbmNlKSB7XG5cdFx0XHR0aGlzLl9pbnN0YW5jZS5zdG9wKClcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0YWJvcnQoKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UpIHtcblx0XHRcdHRoaXMuX2luc3RhbmNlLmFib3J0KClcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0YWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBjYWxsYmFjaykge1xuXHRcdGlmICghIXRoaXMuX2luc3RhbmNlICYmIHRoaXMuX2luY2x1ZGVzRXZlbnRUeXBlKHR5cGUpKSB7XG5cdFx0XHRpZiAoISF0aGlzLl9saXN0ZW5lcnNbdHlwZV0pIHtcblx0XHRcdFx0dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUpXG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGhhbmRsZXIgPSAoZXZlbnQpID0+IHtcblx0XHRcdFx0bGV0IGFkZGl0aW9uYWxBcmdzID0gW11cblx0XHRcdFx0aWYgKHR5cGUgPT09IFNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5ldmVudFR5cGVzLlJFU1VMVCkge1xuXHRcdFx0XHRcdGlmICghIWV2ZW50LnJlc3VsdHMgJiYgZXZlbnQucmVzdWx0cy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHRhZGRpdGlvbmFsQXJncy5wdXNoKGV2ZW50LnJlc3VsdHNbMF1bMF0udHJhbnNjcmlwdClcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQhIWNhbGxiYWNrICYmIGNhbGxiYWNrLmFwcGx5KHRoaXMsIFsuLi5hZGRpdGlvbmFsQXJncywgZXZlbnRdKVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5faW5zdGFuY2UuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCAoZSkgPT4gaGFuZGxlcihlKSlcblxuXHRcdFx0dGhpcy5fbGlzdGVuZXJzW3R5cGVdID0gaGFuZGxlclxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRyZW1vdmVFdmVudExpc3RlbmVyKHR5cGUpIHtcblx0XHRjb25zdCBoYW5kbGVyID0gdGhpcy5fbGlzdGVuZXJzW3R5cGVdXG5cdFx0dGhpcy5faW5zdGFuY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLCBoYW5kbGVyKVxuXG5cdFx0ZGVsZXRlIHRoaXMuX2xpc3RlbmVyc1t0eXBlXVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdGNsZWFudXAoKSB7XG5cdFx0dGhpcy5zdG9wKClcblxuXHRcdE9iamVjdC5rZXlzKHRoaXMuX2xpc3RlbmVycykuZm9yRWFjaCgoa2V5KSA9PiB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoa2V5KSlcblx0XHR0aGlzLl9pbnN0YW5jZSA9IG51bGxcblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRfaW5jbHVkZXNFdmVudFR5cGUgPSAoZXZlbnRUeXBlKSA9PlxuXHRcdE9iamVjdC52YWx1ZXMoU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmV2ZW50VHlwZXMpLmZpbmQoKHR5cGUpID0+IHR5cGUgPT09IGV2ZW50VHlwZSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyXG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmNvbnN0IE1pY3JvcGhvbmVJY29uID0gKHsgaWNvbkNvbG9yID0gJ2JsYWNrJywgYWN0aXZlQ29sb3IgPSAncmVkJywgaXNBY3RpdmUgPSBmYWxzZSB9KSA9PiB7XG5cdHJldHVybiAoXG5cdFx0PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cblx0XHRcdDxnPlxuXHRcdFx0XHQ8cGF0aFxuXHRcdFx0XHRcdGZpbGw9e2ljb25Db2xvcn1cblx0XHRcdFx0XHRkPVwiTTEyIDE0YzEuNjYgMCAyLjk5LTEuMzQgMi45OS0zTDE1IDVjMC0xLjY2LTEuMzQtMy0zLTNTOSAzLjM0IDkgNXY2YzAgMS42NiAxLjM0IDMgMyAzem01LjMtM2MwIDMtMi41NCA1LjEtNS4zIDUuMVM2LjcgMTQgNi43IDExSDVjMCAzLjQxIDIuNzIgNi4yMyA2IDYuNzJWMjFoMnYtMy4yOGMzLjI4LS40OCA2LTMuMyA2LTYuNzJoLTEuN3pcIlxuXHRcdFx0XHQvPlxuXHRcdFx0XHR7aXNBY3RpdmUgJiYgPGNpcmNsZSBmaWxsPXthY3RpdmVDb2xvcn0gY3g9XCIxNlwiIGN5PVwiNFwiIHI9XCI0XCIgLz59XG5cdFx0XHQ8L2c+XG5cdFx0PC9zdmc+XG5cdClcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWljcm9waG9uZUljb25cbiIsImltcG9ydCBSZWFjdCwgeyBjbG9uZUVsZW1lbnQsIGlzVmFsaWRFbGVtZW50LCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcydcblxuaW1wb3J0IFNwZWVjaFJlY29nbml0aW9uV3JhcHBlciBmcm9tICcuL1NwZWVjaFJlY29nbml0aW9uV3JhcHBlcidcblxuaW1wb3J0IE1pY3JvcGhvbmVJY29uIGZyb20gJy4vTWljcm9waG9uZUljb24nXG5cbmNvbnN0IFZvY2FsID0gKHtcblx0Y2hpbGRyZW4sXG5cdHRpbWVvdXQsXG5cdGFyaWFMYWJlbCxcblx0dGFiSW5kZXgsXG5cdHN0eWxlLFxuXHRjbGFzc05hbWUsXG5cdG9uU3RhcnQsXG5cdG9uRW5kLFxuXHRvblNwZWVjaFN0YXJ0LFxuXHRvblNwZWVjaEVuZCxcblx0b25SZXN1bHQsXG5cdG9uRXJyb3IsXG5cdG9uTm9NYXRjaCxcblx0X19yZWNvZ25pdGlvbkluc3RhbmNlLFxufSkgPT4ge1xuXHRjb25zdCB0aW1lb3V0UmVmID0gdXNlUmVmKG51bGwpXG5cdGNvbnN0IHJlY29nbml0aW9uUmVmID0gdXNlUmVmKG51bGwpXG5cblx0Y29uc3QgW2lzTGlzdGVuaW5nLCBzZXRJc0xpc3RlbmluZ10gPSB1c2VTdGF0ZShmYWxzZSlcblxuXHR1c2VFZmZlY3QoKCkgPT4ge1xuXHRcdGlmIChTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuaXNTdXBwb3J0ZWQpIHtcblx0XHRcdHJlY29nbml0aW9uUmVmLmN1cnJlbnQgPSBfX3JlY29nbml0aW9uSW5zdGFuY2UgfHwgbmV3IFNwZWVjaFJlY29nbml0aW9uV3JhcHBlcigpXG5cdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRyZWNvZ25pdGlvblJlZi5jdXJyZW50LmFib3J0KClcblx0XHRcdFx0cmVjb2duaXRpb25SZWYuY3VycmVudC5jbGVhbnVwKClcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudClcblx0XHRcdH1cblx0XHR9XG5cdH0sIFtfX3JlY29nbml0aW9uSW5zdGFuY2VdKVxuXG5cdGNvbnN0IHN0YXJ0VGltZXIgPSAoKSA9PiB7XG5cdFx0dGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dChfb25FbmQsIHRpbWVvdXQpXG5cdH1cblxuXHRjb25zdCBzdG9wVGltZXIgPSAoKSA9PiB7XG5cdFx0Y2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudClcblx0XHR0aW1lb3V0UmVmLmN1cnJlbnQgPSBudWxsXG5cdH1cblxuXHRjb25zdCBzdGFydFJlY29nbml0aW9uID0gKCkgPT4ge1xuXHRcdHRyeSB7XG5cdFx0XHRzZXRJc0xpc3RlbmluZyh0cnVlKVxuXG5cdFx0XHRjb25zdCB7IGN1cnJlbnQ6IHIgfSA9IHJlY29nbml0aW9uUmVmXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXJ0JywgX29uU3RhcnQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZCcsIF9vbkVuZClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignc3BlZWNoc3RhcnQnLCBfb25TcGVlY2hTdGFydClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignc3BlZWNoZW5kJywgX29uU3BlZWNoRW5kKVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdyZXN1bHQnLCBfb25SZXN1bHQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgX29uRXJyb3IpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ25vbWF0Y2gnLCBfb25Ob01hdGNoKVxuXHRcdFx0ci5zdGFydCgpXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdF9vbkVycm9yKGVycm9yKVxuXHRcdH1cblx0fVxuXG5cdGNvbnN0IHN0b3BSZWNvZ25pdGlvbiA9ICgpID0+IHtcblx0XHR0cnkge1xuXHRcdFx0c2V0SXNMaXN0ZW5pbmcoZmFsc2UpXG5cblx0XHRcdGNvbnN0IHsgY3VycmVudDogciB9ID0gcmVjb2duaXRpb25SZWZcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBfb25TdGFydClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignZW5kJywgX29uRW5kKVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzcGVlY2hzdGFydCcsIF9vblNwZWVjaFN0YXJ0KVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzcGVlY2hlbmQnLCBfb25TcGVlY2hFbmQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc3VsdCcsIF9vblJlc3VsdClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJyb3InLCBfb25FcnJvcilcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignbm9tYXRjaCcsIF9vbk5vTWF0Y2gpXG5cdFx0XHRyLnN0b3AoKVxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHQhIW9uRXJyb3IgJiYgb25FcnJvcihlcnJvcilcblx0XHR9XG5cdH1cblxuXHRjb25zdCBzdGFydCA9ICgpID0+IHtcblx0XHRzdGFydFRpbWVyKClcblx0fVxuXG5cdGNvbnN0IGVuZCA9ICgpID0+IHtcblx0XHRzdG9wVGltZXIoKVxuXHRcdHN0b3BSZWNvZ25pdGlvbigpXG5cdH1cblxuXHRjb25zdCBfb25DbGljayA9ICgpID0+IHtcblx0XHRzdGFydFJlY29nbml0aW9uKClcblx0fVxuXG5cdGNvbnN0IF9vblN0YXJ0ID0gKGUpID0+IHtcblx0XHRzdGFydCgpXG5cblx0XHQhIW9uU3RhcnQgJiYgb25TdGFydChlKVxuXHR9XG5cblx0Y29uc3QgX29uRW5kID0gKGUpID0+IHtcblx0XHRlbmQoKVxuXG5cdFx0ISFvbkVuZCAmJiBvbkVuZChlKVxuXHR9XG5cblx0Y29uc3QgX29uU3BlZWNoU3RhcnQgPSAoZSkgPT4ge1xuXHRcdHN0b3BUaW1lcigpXG5cblx0XHQhIW9uU3BlZWNoU3RhcnQgJiYgb25TcGVlY2hTdGFydChlKVxuXHR9XG5cblx0Y29uc3QgX29uU3BlZWNoRW5kID0gKGUpID0+IHtcblx0XHRzdGFydFRpbWVyKClcblxuXHRcdCEhb25TcGVlY2hFbmQgJiYgb25TcGVlY2hFbmQoZSlcblx0fVxuXG5cdGNvbnN0IF9vblJlc3VsdCA9IChyZXN1bHQsIGV2ZW50KSA9PiB7XG5cdFx0c3RvcFJlY29nbml0aW9uKClcblxuXHRcdCEhb25SZXN1bHQgJiYgb25SZXN1bHQocmVzdWx0LCBldmVudClcblx0fVxuXG5cdGNvbnN0IF9vbkVycm9yID0gKGVycm9yKSA9PiB7XG5cdFx0c3RvcFJlY29nbml0aW9uKClcblxuXHRcdCEhb25FcnJvciAmJiBvbkVycm9yKGVycm9yKVxuXHR9XG5cblx0Y29uc3QgX29uTm9NYXRjaCA9IChlKSA9PiB7XG5cdFx0ISFvbk5vTWF0Y2ggJiYgb25Ob01hdGNoKGUpXG5cdH1cblxuXHRjb25zdCBfcmVuZGVyRGVmYXVsdCA9ICgpID0+IChcblx0XHQ8ZGl2XG5cdFx0XHRkYXRhLXRlc3RpZD1cIl9fdm9jYWwtcm9vdF9fXCJcblx0XHRcdHJvbGU9XCJidXR0b25cIlxuXHRcdFx0YXJpYS1sYWJlbD17YXJpYUxhYmVsfVxuXHRcdFx0dGFiSW5kZXg9e3RhYkluZGV4fVxuXHRcdFx0c3R5bGU9e2NsYXNzTmFtZSA/IG51bGwgOiB7IHdpZHRoOiAyNCwgaGVpZ2h0OiAyNCwgY3Vyc29yOiAhaXNMaXN0ZW5pbmcgPyAncG9pbnRlcicgOiBudWxsLCAuLi5zdHlsZSB9fVxuXHRcdFx0Y2xhc3NOYW1lPXtjbGFzc05hbWV9XG5cdFx0PlxuXHRcdFx0PE1pY3JvcGhvbmVJY29uIGlzQWN0aXZlPXtpc0xpc3RlbmluZ30gaWNvbkNvbG9yPVwiI2FhYVwiIC8+XG5cdFx0PC9kaXY+XG5cdClcblxuXHRyZXR1cm4gKFxuXHRcdFNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5pc1N1cHBvcnRlZCAmJlxuXHRcdGNsb25lRWxlbWVudChpc1ZhbGlkRWxlbWVudChjaGlsZHJlbikgPyBjaGlsZHJlbiA6IF9yZW5kZXJEZWZhdWx0KCksIHtcblx0XHRcdC4uLighaXNMaXN0ZW5pbmcgJiYgeyBvbkNsaWNrOiBfb25DbGljayB9KSxcblx0XHR9KVxuXHQpXG59XG5cblZvY2FsLnByb3BUeXBlcyA9IHtcblx0LyoqIERlZmluZXMgdGhlIHRpbWUgaW4gbXMgdG8gd2FpdCBiZWZvcmUgZGlzY2FyZGluZyB0aGUgcmVjb2duaXRpb24gKi9cblx0dGltZW91dDogUHJvcFR5cGVzLm51bWJlcixcblx0LyoqIERlZmluZXMgdGhlIGExMXkgbGFiZWwgZm9yIHRoZSBkZWZhdWx0IGJ1dHRvbiAqL1xuXHRhcmlhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG5cdC8qKiBEZWZpbmVzIHRoZSBhMTF5IHRhYiBpbmRleCBmb3IgdGhlIGRlZmF1bHQgYnV0dG9uICovXG5cdHRhYkluZGV4OiBQcm9wVHlwZXMubnVtYmVyLFxuXHQvKiogRGVmaW5lcyB0aGUgc3R5bGVzIG9mIHRoZSBkZWZhdWx0IGVsZW1lbnQgaWYgY2xhc3NOYW1lIGlzIG5vdCBzcGVjaWZpZWQgKi9cblx0c3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG5cdC8qKiBEZWZpbmVzIHRoZSBjbGFzcyBvZiB0aGUgZGVmYXVsdCBlbGVtZW50ICovXG5cdGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHJlY29nbml0aW9uIHN0YXJ0cyAqL1xuXHRvblN0YXJ0OiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHJlY29nbml0aW9uIGVuZHMgKi9cblx0b25FbmQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgc3BlZWNoIHN0YXJ0cyAqL1xuXHRvblNwZWVjaFN0YXJ0OiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHNwZWVjaCBlbmRzICovXG5cdG9uU3BlZWNoRW5kOiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gYSByZXN1bHQgaXMgcmVjb2duaXplZCAqL1xuXHRvblJlc3VsdDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIGFuIGVycm9yIG9jY3VycyAqL1xuXHRvbkVycm9yOiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gbm8gcmVzdWx0IGNhbiBiZSByZWNvZ25pemVkICovXG5cdG9uTm9NYXRjaDogUHJvcFR5cGVzLmZ1bmMsXG59XG5cblZvY2FsLmRlZmF1bHRQcm9wcyA9IHtcblx0dGltZW91dDogMzAwMCxcblx0YXJpYUxhYmVsOiAnc3BlZWNoJyxcblx0dGFiSW5kZXg6IC0xLFxuXHRzdHlsZTogbnVsbCxcblx0Y2xhc3NOYW1lOiBudWxsLFxuXHRvblN0YXJ0OiBudWxsLFxuXHRvbkVuZDogbnVsbCxcblx0b25TcGVlY2hTdGFydDogbnVsbCxcblx0b25TcGVlY2hFbmQ6IG51bGwsXG5cdG9uUmVzdWx0OiBudWxsLFxuXHRvbkVycm9yOiBudWxsLFxuXHRvbk5vTWF0Y2g6IG51bGwsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFZvY2FsXG4iXSwibmFtZXMiOlsiZSIsInIiLCJ0IiwibiIsImEiLCJpIiwibyIsInUiLCJjIiwidmFsdWUiLCJkb25lIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwidGhpcyIsImFyZ3VtZW50cyIsImFwcGx5IiwiQXJyYXkiLCJpc0FycmF5IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJPYmplY3QiLCJuZXh0IiwicHVzaCIsImxlbmd0aCIsInJldHVybiIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJUeXBlRXJyb3IiLCJyZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwid3JhcCIsInByZXYiLCJhYnJ1cHQiLCJuYXZpZ2F0b3IiLCJwZXJtaXNzaW9ucyIsIkRPTUV4Y2VwdGlvbiIsInF1ZXJ5Iiwic2VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJ0YXJnZXQiLCJzdGF0ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0MCIsImNhdGNoIiwic3RvcCIsInMiLCJtZWRpYURldmljZXMiLCJ0MSIsImdldFVzZXJNZWRpYSIsInQyIiwidDMiLCJhbGwiLCJ0NCIsIlNwZWVjaFJlY29nbml0aW9uV3JhcHBlciIsIm9wdGlvbnMiLCJldmVudFR5cGUiLCJ2YWx1ZXMiLCJldmVudFR5cGVzIiwiZmluZCIsInR5cGUiLCJTcGVlY2hSZWNvZ25pdGlvbiIsIndpbmRvdyIsIndlYmtpdFNwZWVjaFJlY29nbml0aW9uIiwibW96U3BlZWNoUmVjb2duaXRpb24iLCJtc1NwZWVjaFJlY29nbml0aW9uIiwiX2luc3RhbmNlIiwiX2xpc3RlbmVycyIsImVudHJpZXMiLCJkZWZhdWx0T3B0aW9ucyIsImZvckVhY2giLCJrZXkiLCJfdGhpcyIsIl8iLCJFcnJvciIsImdldFVzZXJNZWRpYVN0cmVhbSIsImF1ZGlvIiwic3RhcnQiLCJlcnJvckhhbmRsZXIiLCJlcnJvciIsImFib3J0IiwiY2FsbGJhY2siLCJfaW5jbHVkZXNFdmVudFR5cGUiLCJoYW5kbGVyIiwiZXZlbnQiLCJhZGRpdGlvbmFsQXJncyIsIlJFU1VMVCIsInJlc3VsdHMiLCJ0cmFuc2NyaXB0IiwiX3RoaXMyIiwia2V5cyIsIl90aGlzMyIsImxhbmciLCJjb250aW51b3VzIiwiaW50ZXJpbVJlc3VsdHMiLCJtYXhBbHRlcm5hdGl2ZXMiLCJBVURJT19FTkQiLCJBVURJT19TVEFSVCIsIkVORCIsIkVSUk9SIiwiTk9fTUFUQ0giLCJTT1VORF9FTkQiLCJTT1VORF9TVEFSVCIsIlNQRUVDSF9FTkQiLCJTUEVFQ0hfU1RBUlQiLCJTVEFSVCIsIk1pY3JvcGhvbmVJY29uIiwiaWNvbkNvbG9yIiwiYWN0aXZlQ29sb3IiLCJpc0FjdGl2ZSIsIlJlYWN0IiwieG1sbnMiLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJmaWxsIiwiZCIsImN4IiwiY3kiLCJWb2NhbCIsImNoaWxkcmVuIiwidGltZW91dCIsImFyaWFMYWJlbCIsInRhYkluZGV4Iiwic3R5bGUiLCJjbGFzc05hbWUiLCJvblN0YXJ0Iiwib25FbmQiLCJvblNwZWVjaFN0YXJ0Iiwib25TcGVlY2hFbmQiLCJvblJlc3VsdCIsIm9uRXJyb3IiLCJvbk5vTWF0Y2giLCJfX3JlY29nbml0aW9uSW5zdGFuY2UiLCJ0aW1lb3V0UmVmIiwidXNlUmVmIiwicmVjb2duaXRpb25SZWYiLCJ1c2VTdGF0ZSIsImlzTGlzdGVuaW5nIiwic2V0SXNMaXN0ZW5pbmciLCJ1c2VFZmZlY3QiLCJpc1N1cHBvcnRlZCIsImN1cnJlbnQiLCJjbGVhbnVwIiwiY2xlYXJUaW1lb3V0Iiwic3RhcnRUaW1lciIsInNldFRpbWVvdXQiLCJfb25FbmQiLCJzdG9wVGltZXIiLCJzdG9wUmVjb2duaXRpb24iLCJfb25TdGFydCIsIl9vblNwZWVjaFN0YXJ0IiwiX29uU3BlZWNoRW5kIiwiX29uUmVzdWx0IiwiX29uRXJyb3IiLCJfb25Ob01hdGNoIiwicmVzdWx0IiwiY2xvbmVFbGVtZW50IiwiaXNWYWxpZEVsZW1lbnQiLCJyb2xlIiwiY3Vyc29yIiwib25DbGljayIsInN0YXJ0UmVjb2duaXRpb24iLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJudW1iZXIiLCJzdHJpbmciLCJvYmplY3QiLCJmdW5jIiwiZGVmYXVsdFByb3BzIl0sIm1hcHBpbmdzIjoiOHdFQUFBLFNBQVNBLEVBQUVBLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEdBQUcsSUFBSSxJQUFJQyxFQUFFUCxFQUFFSyxHQUFHQyxHQUFHRSxFQUFFRCxFQUFFRSxNQUFNLE1BQU1ULEdBQUcsWUFBWUUsRUFBRUYsR0FBR08sRUFBRUcsS0FBS1QsRUFBRU8sR0FBR0csUUFBUUMsUUFBUUosR0FBR0ssS0FBS1YsRUFBRUMsR0FBRyxTQUFTSCxFQUFFQSxHQUFHLE9BQU8sV0FBVyxJQUFJQyxFQUFFWSxLQUFLWCxFQUFFWSxVQUFVLE9BQU8sSUFBSUosa0JBQWtCUCxFQUFFQyxHQUFHLElBQUlDLEVBQUVMLEVBQUVlLE1BQU1kLEVBQUVDLEdBQUcsU0FBU0ksRUFBRU4sR0FBR0QsRUFBRU0sRUFBRUYsRUFBRUMsRUFBRUUsRUFBRUMsRUFBRSxPQUFPUCxHQUFHLFNBQVNPLEVBQUVQLEdBQUdELEVBQUVNLEVBQUVGLEVBQUVDLEVBQUVFLEVBQUVDLEVBQUUsUUFBUVAsR0FBR00sT0FBRSxPQUFZLFNBQVNMLEVBQUVGLEVBQUVDLEdBQUcsT0FBTyxTQUFTRCxHQUFHLEdBQUdpQixNQUFNQyxRQUFRbEIsR0FBRyxPQUFPQSxFQUF2QyxDQUEwQ0EsSUFBSSxTQUFTQSxFQUFFQyxHQUFHLEdBQUcsb0JBQW9Ca0IsUUFBVUEsT0FBT0MsWUFBWUMsT0FBT3JCLEdBQTNELENBQXNFLElBQUlFLEVBQUUsR0FBR0MsR0FBRSxFQUFHQyxHQUFFLEVBQUdDLE9BQUUsRUFBTyxJQUFJLElBQUksSUFBSUMsRUFBRUMsRUFBRVAsRUFBRW1CLE9BQU9DLGNBQWNqQixHQUFHRyxFQUFFQyxFQUFFZSxRQUFRWixRQUFRUixFQUFFcUIsS0FBS2pCLEVBQUVHLFFBQVFSLEdBQUdDLEVBQUVzQixTQUFTdkIsR0FBR0UsR0FBRSxJQUFLLE1BQU1ILEdBQUdJLEdBQUUsRUFBR0MsRUFBRUwsRUFBRSxRQUFRLElBQUlHLEdBQUcsTUFBTUksRUFBRWtCLFFBQVFsQixFQUFFa0IsU0FBUyxRQUFRLEdBQUdyQixFQUFFLE1BQU1DLEdBQUcsT0FBT0gsR0FBaFQsQ0FBbVRGLEVBQUVDLElBQUksU0FBU0QsRUFBRUMsR0FBRyxHQUFJRCxFQUFKLENBQWEsR0FBRyxpQkFBaUJBLEVBQUUsT0FBT0csRUFBRUgsRUFBRUMsR0FBRyxJQUFJQyxFQUFFbUIsT0FBT0ssVUFBVUMsU0FBU0MsS0FBSzVCLEdBQUc2QixNQUFNLEdBQUcsR0FBdUQsTUFBcEQsV0FBVzNCLEdBQUdGLEVBQUU4QixjQUFjNUIsRUFBRUYsRUFBRThCLFlBQVlDLE1BQVMsUUFBUTdCLEdBQUcsUUFBUUEsRUFBU2UsTUFBTWUsS0FBS2hDLEdBQU0sY0FBY0UsR0FBRywyQ0FBMkMrQixLQUFLL0IsR0FBVUMsRUFBRUgsRUFBRUMsUUFBbEYsR0FBcE4sQ0FBMFNELEVBQUVDLElBQUksV0FBVyxNQUFNLElBQUlpQyxVQUFVLDZJQUEvQixHQUErSyxTQUFTL0IsRUFBRUgsRUFBRUMsSUFBSSxNQUFNQSxHQUFHQSxFQUFFRCxFQUFFd0IsVUFBVXZCLEVBQUVELEVBQUV3QixRQUFRLElBQUksSUFBSXRCLEVBQUUsRUFBRUMsRUFBRSxJQUFJYyxNQUFNaEIsR0FBR0MsRUFBRUQsRUFBRUMsSUFBSUMsRUFBRUQsR0FBR0YsRUFBRUUsR0FBRyxPQUFPQyxxRUFBRSxJQUFJQyxFQUFFLFdBQVcsSUFBSUosRUFBRUMsRUFBRWtDLG1CQUFtQkMsZUFBZXBDLEVBQUVFLEdBQUcsT0FBT2lDLG1CQUFtQkUsZUFBZXJDLEdBQUcsT0FBTyxPQUFPQSxFQUFFc0MsS0FBS3RDLEVBQUVzQixNQUFNLEtBQUssRUFBRSxPQUFPdEIsRUFBRXVDLE9BQU8sU0FBUyxJQUFJNUIsUUFBUSxXQUFXLElBQUlYLEVBQUVDLEVBQUVrQyxtQkFBbUJDLGVBQWVwQyxFQUFFQyxFQUFFRSxHQUFHLElBQUlDLEVBQUVFLEVBQUUsT0FBTzZCLG1CQUFtQkUsZUFBZXJDLEdBQUcsT0FBTyxPQUFPQSxFQUFFc0MsS0FBS3RDLEVBQUVzQixNQUFNLEtBQUssRUFBRSxHQUFHa0IsVUFBVUMsWUFBWSxDQUFDekMsRUFBRXNCLEtBQUssRUFBRSxNQUFNbkIsRUFBRSxJQUFJdUMsYUFBYSw0QkFBNEIsa0JBQWtCMUMsRUFBRXNCLEtBQUssR0FBRyxNQUFNLEtBQUssRUFBRSxPQUFPdEIsRUFBRXNDLEtBQUssRUFBRXRDLEVBQUVzQixLQUFLLEVBQUVrQixVQUFVQyxZQUFZRSxNQUFNLENBQUNaLEtBQUs3QixJQUFJLEtBQUssRUFBRUUsRUFBRUosRUFBRTRDLEtBQUt0QyxFQUFFLFNBQVNOLEVBQUVFLEdBQUdFLEVBQUV5QyxvQkFBb0IsU0FBUzdDLEdBQUdLLEVBQUVILEVBQUU0QyxPQUFPQyxNQUFNOUMsRUFBRUUsSUFBSUMsRUFBRTRDLGlCQUFpQixTQUFTMUMsR0FBR0QsRUFBRUQsRUFBRTJDLE1BQU05QyxFQUFFRSxHQUFHSCxFQUFFc0IsS0FBSyxHQUFHLE1BQU0sS0FBSyxHQUFHdEIsRUFBRXNDLEtBQUssR0FBR3RDLEVBQUVpRCxHQUFHakQsRUFBRWtELE1BQU0sR0FBRy9DLEVBQUVILEVBQUVpRCxJQUFJLEtBQUssR0FBRyxJQUFJLE1BQU0sT0FBT2pELEVBQUVtRCxVQUFVbkQsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsT0FBTyxTQUFTQyxFQUFFQyxHQUFHLE9BQU9GLEVBQUVnQixNQUFNRixLQUFLQyxZQUF4bkIsS0FBeW9CLEtBQUssRUFBRSxJQUFJLE1BQU0sT0FBT2YsRUFBRW1ELFVBQVVuRCxPQUFPLE9BQU8sU0FBU0MsR0FBRyxPQUFPRCxFQUFFZ0IsTUFBTUYsS0FBS0MsWUFBMTRCLEdBQXk1QlYsRUFBRSxTQUFTTCxFQUFFQyxFQUFFQyxHQUFHLE9BQU9GLEdBQUcsSUFBSSxTQUFTRSxFQUFFLElBQUl3QyxhQUFhLG9CQUFvQixvQkFBb0IsTUFBTSxRQUFRekMsRUFBRUQsS0FBS00sRUFBRSxXQUFXLElBQUlOLEVBQUVDLEVBQUVrQyxtQkFBbUJDLGVBQWVwQyxFQUFFRyxFQUFFRSxHQUFHLE9BQU84QixtQkFBbUJFLGVBQWVyQyxHQUFHLE9BQU8sT0FBT0EsRUFBRXNDLEtBQUt0QyxFQUFFc0IsTUFBTSxLQUFLLEVBQUUsT0FBT3RCLEVBQUV1QyxPQUFPLFNBQVMsSUFBSTVCLFFBQVEsV0FBVyxJQUFJWCxFQUFFQyxFQUFFa0MsbUJBQW1CQyxlQUFlcEMsRUFBRUMsRUFBRUssR0FBRyxJQUFJQyxFQUFFQyxFQUFFNEMsRUFBRSxPQUFPakIsbUJBQW1CRSxlQUFlckMsR0FBRyxPQUFPLE9BQU9BLEVBQUVzQyxLQUFLdEMsRUFBRXNCLE1BQU0sS0FBSyxFQUFFLEdBQUdrQixVQUFVYSxhQUFhLENBQUNyRCxFQUFFc0IsS0FBSyxFQUFFLE1BQU1oQixFQUFFLElBQUlvQyxhQUFhLDZCQUE2QixrQkFBa0IxQyxFQUFFc0IsS0FBSyxHQUFHLE1BQU0sS0FBSyxFQUFFLE9BQU90QixFQUFFc0MsS0FBSyxFQUFFdEMsRUFBRWlELEdBQUd0QyxRQUFRWCxFQUFFc0IsS0FBSyxFQUFFbEIsRUFBRUQsR0FBRyxLQUFLLEVBQUUsT0FBT0gsRUFBRXNELEdBQUd0RCxFQUFFNEMsS0FBSzVDLEVBQUVzQixLQUFLLEdBQUdrQixVQUFVYSxhQUFhRSxhQUFhbEQsR0FBRyxLQUFLLEdBQUcsT0FBT0wsRUFBRXdELEdBQUd4RCxFQUFFNEMsS0FBSzVDLEVBQUV5RCxHQUFHLENBQUN6RCxFQUFFc0QsR0FBR3RELEVBQUV3RCxJQUFJeEQsRUFBRXNCLEtBQUssR0FBR3RCLEVBQUVpRCxHQUFHUyxJQUFJOUIsS0FBSzVCLEVBQUVpRCxHQUFHakQsRUFBRXlELElBQUksS0FBSyxHQUFHbEQsRUFBRVAsRUFBRTRDLEtBQUtwQyxFQUFFTixFQUFFSyxFQUFFLEdBQUc2QyxFQUFFNUMsRUFBRSxHQUFHUCxFQUFFbUQsR0FBR3BELEVBQUVzQixLQUFLLEdBQUcsTUFBTSxLQUFLLEdBQUd0QixFQUFFc0MsS0FBSyxHQUFHdEMsRUFBRTJELEdBQUczRCxFQUFFa0QsTUFBTSxHQUFHNUMsRUFBRU4sRUFBRTJELElBQUksS0FBSyxHQUFHLElBQUksTUFBTSxPQUFPM0QsRUFBRW1ELFVBQVVuRCxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsVUFBVSxPQUFPLFNBQVNDLEVBQUVDLEdBQUcsT0FBT0YsRUFBRWdCLE1BQU1GLEtBQUtDLFlBQWpxQixLQUFrckIsS0FBSyxFQUFFLElBQUksTUFBTSxPQUFPZixFQUFFbUQsVUFBVW5ELE9BQU8sT0FBTyxTQUFTQyxFQUFFQyxHQUFHLE9BQU9GLEVBQUVnQixNQUFNRixLQUFLQyxZQUF2N0IsR0NFdnhFNkMsd0JBc0NPQyx1SUFIQSwwQkFDQyxtQ0FzR1EsU0FBQ0MsVUFDckJ6QyxPQUFPMEMsT0FBT0gsRUFBeUJJLFlBQVlDLE1BQUssU0FBQ0MsVUFBU0EsSUFBU0osWUFwR3JFSyxFQUNMQyxPQUFPRCxtQkFDUEMsT0FBT0MseUJBQ1BELE9BQU9FLHNCQUNQRixPQUFPRyxxQkFDUCxRQUNJQyxVQUFZLElBQUlMLE9BQ2hCTSxXQUFhLEdBRWxCcEQsT0FBT3FELGVBQWFkLEVBQXlCZSxnQkFBb0JkLEdBQVcsS0FBT2UsU0FDbEYseUJBQUVDLE9BQUtwRSxjQUFZcUUsRUFBS04sVUFBVUssR0FBT3BFLHlFQXpCdkMyRCxPQUFPRCxtQkFDUEMsT0FBT0MseUJBQ1BELE9BQU9FLHNCQUNQRixPQUFPRyxtQ0FJWVEsU0FDaEIsSUFBSUMsTUFBTSx1TUE4QlZsRSxLQUFLMEQsb0RBRVlTLEVBQW1CLGFBQWMsQ0FBRUMsT0FBTywyQ0FFeEQsSUFBSUYsTUFBTSwrREFFWlIsVUFBVVcsMkRBRVRDLEVBQWV0RSxLQUFLMkQsV0FBV1ksUUFFcENELHlDQUtJdEUsZ1VBSURBLEtBQUswRCxnQkFDTEEsVUFBVXJCLE9BR1RyQyw0Q0FJREEsS0FBSzBELGdCQUNMQSxVQUFVYyxRQUdUeEUsOENBR1NvRCxFQUFNcUIsaUJBQ2hCekUsS0FBSzBELFdBQWExRCxLQUFLMEUsbUJBQW1CdEIsR0FBTyxDQUNoRHBELEtBQUsyRCxXQUFXUCxTQUNoQnJCLG9CQUFvQnFCLE9BR3BCdUIsRUFBVSxTQUFDQyxPQUNaQyxFQUFpQixHQUNqQnpCLElBQVNOLEVBQXlCSSxXQUFXNEIsUUFDMUNGLEVBQU1HLFNBQVdILEVBQU1HLFFBQVFyRSxPQUFTLEdBQzdDbUUsRUFBZXBFLEtBQUttRSxFQUFNRyxRQUFRLEdBQUcsR0FBR0MsWUFJeENQLEdBQVlBLEVBQVN2RSxNQUFNK0UsWUFBVUosR0FBZ0JELFdBRW5EbEIsVUFBVXhCLGlCQUFpQmtCLEdBQU0sU0FBQ2xFLFVBQU15RixFQUFRekYsV0FFaER5RSxXQUFXUCxHQUFRdUIsU0FHbEIzRSxpREFHWW9ELE9BQ2J1QixFQUFVM0UsS0FBSzJELFdBQVdQLGVBQzNCTSxVQUFVM0Isb0JBQW9CcUIsRUFBTXVCLFVBRWxDM0UsS0FBSzJELFdBQVdQLEdBRWhCcEQsOERBSUZxQyxPQUVMOUIsT0FBTzJFLEtBQUtsRixLQUFLMkQsWUFBWUcsU0FBUSxTQUFDQyxVQUFRb0IsRUFBS3BELG9CQUFvQmdDLFdBQ2xFTCxVQUFZLEtBRVYxRCw2Q0FqRkFBLEtBQUswRCx3QkFHQU8sU0FDTixJQUFJQyxNQUFNLGdEQTFEWnBCLG1CQUNtQixDQUN2QnNDLEtBQU0sUUFDTkMsWUFBWSxFQUNaQyxnQkFBZ0IsRUFDaEJDLGdCQUFpQixNQUxiekMsZUFRZSxDQUNuQjBDLFVBQVcsV0FDWEMsWUFBYSxhQUNiQyxJQUFLLE1BQ0xDLE1BQU8sUUFDUEMsU0FBVSxVQUNWZCxPQUFRLFNBQ1JlLFVBQVcsV0FDWEMsWUFBYSxhQUNiQyxXQUFZLFlBQ1pDLGFBQWMsY0FDZEMsTUFBTyxVQ25CVCxJQUFNQyxFQUFpQixvQkFBR0MsVUFBQUEsYUFBWSxjQUFTQyxZQUFBQSxhQUFjLFlBQU9DLFNBQUFBLHVCQUVsRUMsdUJBQUtDLE1BQU0sNkJBQTZCQyxNQUFNLE9BQU9DLE9BQU8sT0FBT0MsUUFBUSxhQUMxRUoseUJBQ0NBLHdCQUNDSyxLQUFNUixFQUNOUyxFQUFFLG9NQUVGUCxHQUFZQywwQkFBUUssS0FBTVAsRUFBYVMsR0FBRyxLQUFLQyxHQUFHLElBQUkzSCxFQUFFLFNDSHZENEgsRUFBUSxnQkFDYkMsSUFBQUEsU0FDQUMsSUFBQUEsUUFDQUMsSUFBQUEsVUFDQUMsSUFBQUEsU0FDQUMsSUFBQUEsTUFDQUMsSUFBQUEsVUFDQUMsSUFBQUEsUUFDQUMsSUFBQUEsTUFDQUMsSUFBQUEsY0FDQUMsSUFBQUEsWUFDQUMsSUFBQUEsU0FDQUMsSUFBQUEsUUFDQUMsSUFBQUEsVUFDQUMsSUFBQUEsc0JBRU1DLEVBQWFDLFNBQU8sTUFDcEJDLEVBQWlCRCxTQUFPLFVBRVFFLFlBQVMsTUFBeENDLE9BQWFDLE9BRXBCQyxhQUFVLGNBQ0x0RixFQUF5QnVGLG1CQUM1QkwsRUFBZU0sUUFBVVQsR0FBeUIsSUFBSS9FLEVBQy9DLFdBQ05rRixFQUFlTSxRQUFROUQsUUFDdkJ3RCxFQUFlTSxRQUFRQyxVQUN2QkMsYUFBYVYsRUFBV1EsWUFHeEIsQ0FBQ1QsUUFFRVksRUFBYSxXQUNsQlgsRUFBV1EsUUFBVUksV0FBV0MsRUFBUTFCLElBR25DMkIsRUFBWSxXQUNqQkosYUFBYVYsRUFBV1EsU0FDeEJSLEVBQVdRLFFBQVUsTUFxQmhCTyxFQUFrQixlQUV0QlYsR0FBZSxPQUVFaEosRUFBTTZJLEVBQWZNLFFBQ1JuSixFQUFFNEMsb0JBQW9CLFFBQVMrRyxHQUMvQjNKLEVBQUU0QyxvQkFBb0IsTUFBTzRHLEdBQzdCeEosRUFBRTRDLG9CQUFvQixjQUFlZ0gsR0FDckM1SixFQUFFNEMsb0JBQW9CLFlBQWFpSCxHQUNuQzdKLEVBQUU0QyxvQkFBb0IsU0FBVWtILEdBQ2hDOUosRUFBRTRDLG9CQUFvQixRQUFTbUgsR0FDL0IvSixFQUFFNEMsb0JBQW9CLFVBQVdvSCxHQUNqQ2hLLEVBQUVrRCxPQUNELE1BQU9rQyxHQUNOb0QsR0FBV0EsRUFBUXBELEtBaUJqQnVFLEVBQVcsU0FBQzVKLEdBWmpCdUosSUFlRW5CLEdBQVdBLEVBQVFwSSxJQUdoQnlKLEVBQVMsU0FBQ3pKLEdBZGYwSixJQUNBQyxJQWdCRXRCLEdBQVNBLEVBQU1ySSxJQUdaNkosRUFBaUIsU0FBQzdKLEdBQ3ZCMEosSUFFRXBCLEdBQWlCQSxFQUFjdEksSUFHNUI4SixFQUFlLFNBQUM5SixHQUNyQnVKLElBRUVoQixHQUFlQSxFQUFZdkksSUFHeEIrSixFQUFZLFNBQUNHLEVBQVF4RSxHQUMxQmlFLElBRUVuQixHQUFZQSxFQUFTMEIsRUFBUXhFLElBRzFCc0UsRUFBVyxTQUFDM0UsR0FDakJzRSxJQUVFbEIsR0FBV0EsRUFBUXBELElBR2hCNEUsRUFBYSxTQUFDakssR0FDakIwSSxHQUFhQSxFQUFVMUksV0FpQnpCNEQsRUFBeUJ1RixhQUN6QmdCLGVBQWFDLGlCQUFldEMsR0FBWUEsRUFkeENWLHFDQUNhLGlCQUNaaUQsS0FBSyxzQkFDT3JDLEVBQ1pDLFNBQVVBLEVBQ1ZDLE1BQU9DLEVBQVksUUFBU2IsTUFBTyxHQUFJQyxPQUFRLEdBQUkrQyxPQUFTdEIsRUFBMEIsS0FBWixXQUFxQmQsR0FDL0ZDLFVBQVdBLEdBRVhmLGdCQUFDSixHQUFlRyxTQUFVNkIsRUFBYS9CLFVBQVUsZ0JBTzVDK0IsR0FBZSxDQUFFdUIsUUE1RFAsWUE3Q1EsZUFFdkJ0QixHQUFlLE9BRUVoSixFQUFNNkksRUFBZk0sUUFDUm5KLEVBQUUrQyxpQkFBaUIsUUFBUzRHLEdBQzVCM0osRUFBRStDLGlCQUFpQixNQUFPeUcsR0FDMUJ4SixFQUFFK0MsaUJBQWlCLGNBQWU2RyxHQUNsQzVKLEVBQUUrQyxpQkFBaUIsWUFBYThHLEdBQ2hDN0osRUFBRStDLGlCQUFpQixTQUFVK0csR0FDN0I5SixFQUFFK0MsaUJBQWlCLFFBQVNnSCxHQUM1Qi9KLEVBQUUrQyxpQkFBaUIsVUFBV2lILEdBQzlCaEssRUFBRWtGLFFBQ0QsTUFBT0UsR0FDUjJFLEVBQVMzRSxJQWdDVm1GLGVBZ0VGM0MsRUFBTTRDLFVBQVksQ0FFakIxQyxRQUFTMkMsRUFBVUMsT0FFbkIzQyxVQUFXMEMsRUFBVUUsT0FFckIzQyxTQUFVeUMsRUFBVUMsT0FFcEJ6QyxNQUFPd0MsRUFBVUcsT0FFakIxQyxVQUFXdUMsRUFBVUUsT0FFckJ4QyxRQUFTc0MsRUFBVUksS0FFbkJ6QyxNQUFPcUMsRUFBVUksS0FFakJ4QyxjQUFlb0MsRUFBVUksS0FFekJ2QyxZQUFhbUMsRUFBVUksS0FFdkJ0QyxTQUFVa0MsRUFBVUksS0FFcEJyQyxRQUFTaUMsRUFBVUksS0FFbkJwQyxVQUFXZ0MsRUFBVUksTUFHdEJqRCxFQUFNa0QsYUFBZSxDQUNwQmhELFFBQVMsSUFDVEMsVUFBVyxTQUNYQyxVQUFXLEVBQ1hDLE1BQU8sS0FDUEMsVUFBVyxLQUNYQyxRQUFTLEtBQ1RDLE1BQU8sS0FDUEMsY0FBZSxLQUNmQyxZQUFhLEtBQ2JDLFNBQVUsS0FDVkMsUUFBUyxLQUNUQyxVQUFXIn0= |
186
package.json
{ | ||
"name": "@untemps/react-vocal", | ||
"version": "1.0.2", | ||
"author": "Vincent Le Badezet <v.lebadezet@untemps.net>", | ||
"repository": "git@github.com:untemps/react-vocal.git", | ||
"license": "MIT", | ||
"description": "React component to initiate a SpeechRecognition session", | ||
"keywords": [ | ||
"SpeechRecognition", | ||
"speech-to-text", | ||
"React", | ||
"component", | ||
"javascript" | ||
], | ||
"private": false, | ||
"publishConfig": { | ||
"access": "public" | ||
}, | ||
"main": "dist/index.js", | ||
"module": "dist/index.es.js", | ||
"devDependencies": { | ||
"@babel/cli": "^7.10.1", | ||
"@babel/core": "^7.10.1", | ||
"@babel/plugin-proposal-class-properties": "^7.10.1", | ||
"@babel/plugin-transform-react-jsx": "^7.10.1", | ||
"@babel/plugin-transform-runtime": "^7.10.1", | ||
"@babel/preset-env": "^7.10.2", | ||
"@babel/preset-react": "^7.10.1", | ||
"@rollup/plugin-babel": "^5.0.2", | ||
"@rollup/plugin-commonjs": "^12.0.0", | ||
"@rollup/plugin-node-resolve": "^8.0.0", | ||
"@semantic-release/changelog": "^5.0.1", | ||
"@semantic-release/git": "^9.0.0", | ||
"@testing-library/dom": "^7.7.1", | ||
"@testing-library/jest-dom": "^5.9.0", | ||
"@testing-library/react": "^10.0.4", | ||
"@untemps/event-dispatcher": "^1.1.0", | ||
"@untemps/user-permissions-utils": "^1.0.0", | ||
"babel-jest": "^26.0.1", | ||
"cross-env": "^7.0.2", | ||
"husky": "^4.2.5", | ||
"jest": "^26.0.1", | ||
"prettier": "^2.0.5", | ||
"prop-types": "^15.7.2", | ||
"react": "^16.13.1", | ||
"react-dom": "^16.13.1", | ||
"rollup": "^2.11.2", | ||
"rollup-plugin-filesize": "^9.0.0", | ||
"rollup-plugin-terser": "^6.1.0", | ||
"rollup-plugin-visualizer": "^4.0.4", | ||
"semantic-release": "^17.0.7" | ||
}, | ||
"peerDependencies": { | ||
"react": "^16.13.1", | ||
"react-dom": "^16.13.1" | ||
}, | ||
"jest": { | ||
"transform": { | ||
"^.+\\.[t|j]sx?$": "babel-jest" | ||
}, | ||
"coverageDirectory": "./coverage/", | ||
"collectCoverage": true | ||
}, | ||
"husky": { | ||
"hooks": { | ||
"pre-commit": "yarn test:ci && yarn prettier" | ||
} | ||
}, | ||
"release": { | ||
"branches": [ | ||
"master" | ||
], | ||
"plugins": [ | ||
"@semantic-release/commit-analyzer", | ||
"@semantic-release/release-notes-generator", | ||
"@semantic-release/npm", | ||
"@semantic-release/changelog", | ||
"@semantic-release/git" | ||
] | ||
}, | ||
"scripts": { | ||
"test": "jest -u --watch", | ||
"test:ci": "CI=true jest -u -b --coverage", | ||
"build": "rm -rf dist && yarn build:cjs && yarn build:es && yarn build:umd", | ||
"build:cjs": "cross-env NODE_ENV=production BABEL_ENV=cjs rollup -c", | ||
"build:es": "cross-env NODE_ENV=production BABEL_ENV=es rollup -c", | ||
"build:umd": "cross-env NODE_ENV=production BABEL_ENV=umd rollup -c", | ||
"prettier": "prettier \"*/**/*.js\" --ignore-path ./.prettierignore --write" | ||
} | ||
"name": "@untemps/react-vocal", | ||
"version": "1.0.3", | ||
"author": "Vincent Le Badezet <v.lebadezet@untemps.net>", | ||
"repository": "git@github.com:untemps/react-vocal.git", | ||
"license": "MIT", | ||
"description": "React component to initiate a SpeechRecognition session", | ||
"keywords": [ | ||
"SpeechRecognition", | ||
"speech-to-text", | ||
"React", | ||
"component", | ||
"javascript" | ||
], | ||
"private": false, | ||
"publishConfig": { | ||
"access": "public" | ||
}, | ||
"main": "dist/index.js", | ||
"module": "dist/index.es.js", | ||
"devDependencies": { | ||
"@babel/cli": "^7.10.1", | ||
"@babel/core": "^7.10.1", | ||
"@babel/plugin-proposal-class-properties": "^7.10.1", | ||
"@babel/plugin-transform-react-jsx": "^7.10.1", | ||
"@babel/plugin-transform-runtime": "^7.10.1", | ||
"@babel/preset-env": "^7.10.2", | ||
"@babel/preset-react": "^7.10.1", | ||
"@rollup/plugin-babel": "^5.0.2", | ||
"@rollup/plugin-commonjs": "^12.0.0", | ||
"@rollup/plugin-node-resolve": "^8.0.0", | ||
"@semantic-release/changelog": "^5.0.1", | ||
"@semantic-release/git": "^9.0.0", | ||
"@testing-library/dom": "^7.7.1", | ||
"@testing-library/jest-dom": "^5.9.0", | ||
"@testing-library/react": "^10.0.4", | ||
"@untemps/event-dispatcher": "^1.1.0", | ||
"@untemps/user-permissions-utils": "^1.0.1", | ||
"babel-jest": "^26.0.1", | ||
"cross-env": "^7.0.2", | ||
"husky": "^4.2.5", | ||
"jest": "^26.0.1", | ||
"prettier": "^2.0.5", | ||
"prop-types": "^15.7.2", | ||
"react": "^16.13.1", | ||
"react-dom": "^16.13.1", | ||
"rollup": "^2.11.2", | ||
"rollup-plugin-filesize": "^9.0.0", | ||
"rollup-plugin-terser": "^6.1.0", | ||
"rollup-plugin-visualizer": "^4.0.4", | ||
"semantic-release": "^17.0.7" | ||
}, | ||
"peerDependencies": { | ||
"react": "^16.13.1", | ||
"react-dom": "^16.13.1" | ||
}, | ||
"jest": { | ||
"transform": { | ||
"^.+\\.[t|j]sx?$": "babel-jest" | ||
}, | ||
"coverageDirectory": "./coverage/", | ||
"collectCoverage": true | ||
}, | ||
"husky": { | ||
"hooks": { | ||
"pre-commit": "yarn test:ci && yarn prettier" | ||
} | ||
}, | ||
"release": { | ||
"branches": [ | ||
"master" | ||
], | ||
"plugins": [ | ||
[ | ||
"@semantic-release/commit-analyzer", | ||
{ | ||
"releaseRules": [ | ||
{ | ||
"type": "dep", | ||
"release": "patch" | ||
} | ||
] | ||
} | ||
], | ||
"@semantic-release/release-notes-generator", | ||
"@semantic-release/changelog", | ||
"@semantic-release/npm", | ||
"@semantic-release/git" | ||
] | ||
}, | ||
"scripts": { | ||
"test": "jest -u --watch", | ||
"test:ci": "CI=true jest -u -b --coverage", | ||
"build": "rm -rf dist && yarn build:cjs && yarn build:es && yarn build:umd", | ||
"build:cjs": "cross-env NODE_ENV=production BABEL_ENV=cjs rollup -c", | ||
"build:es": "cross-env NODE_ENV=production BABEL_ENV=es rollup -c", | ||
"build:umd": "cross-env NODE_ENV=production BABEL_ENV=umd rollup -c", | ||
"prettier": "prettier \"*/**/*.js\" --ignore-path ./.prettierignore --write" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
165772
1057