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

@untemps/react-vocal

Package Overview
Dependencies
Maintainers
1
Versions
60
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@untemps/react-vocal - npm Package Compare versions

Comparing version 1.0.0 to 1.0.1

7

CHANGELOG.md

@@ -0,1 +1,8 @@

## [1.0.1](https://github.com/untemps/react-vocal/compare/v1.0.0...v1.0.1) (2020-06-17)
### Bug Fixes
* Fix crash in useEffect when SpeechRecognition is not supported ([f322b8c](https://github.com/untemps/react-vocal/commit/f322b8c3fdf12775e87ccfc770a375f99297f7a2))
# 1.0.0 (2020-06-02)

@@ -2,0 +9,0 @@

4

dist/index.es.js

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

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),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).then(r,i)}function s(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 u(e,t,n){return t&&s(e.prototype,t),n&&s(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 v(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 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)))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 p(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 p(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 p(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),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).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 E(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)?E(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 E(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 b=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,s,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.permissions){e.next=4;break}i(new Error("PERMISSIONS_NOT_SUPPORTED")),e.next=37;break;case 4:return e.prev=4,e.next=7,navigator.permissions.query({name:t});case 7:if("denied"!==(o=e.sent).state){e.next=12;break}i(new Error("DENIED_BY_USER")),e.next=32;break;case 12:if(navigator.mediaDevices){e.next=16;break}i(new Error("MEDIA_DEVICES_NOT_SUPPORTED")),e.next=32;break;case 16:return e.next=18,navigator.mediaDevices.getUserMedia(n);case 18:if(e.t0=e.sent,a=[e.t0],"prompt"!==o.state){e.next=26;break}return e.t1=a,e.next=24,new Promise((function(e){o.addEventListener("change",(function(t){"denied"===t.target.state?i(new Error("DENIED_BY_USER")):e()}))}));case 24:e.t2=e.sent,e.t1.push.call(e.t1,e.t2);case 26:return e.next=28,Promise.all(a);case 28:c=e.sent,s=y(c,1),u=s[0],r(u);case 32:e.next=37;break;case 34:e.prev=34,e.t3=e.catch(4),i(e.t3);case 37:case"end":return e.stop()}}),e,null,[[4,34]])})));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),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(v(v({},e.defaultOptions),t||{})).forEach((function(e){var t=h(e,2),r=t[0],i=t[1];return n._instance[r]=i}))}var t,n;return u(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.")}}]),u(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,i){var o=t.apply(e,n);function a(e){c(o,r,i,a,s,"next",e)}function s(e){c(o,r,i,a,s,"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(w,"defaultOptions",{lang:"fr-FR",continuous:!1,interimResults:!1,maxAlternatives:1}),l(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 S=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"})))},g=function(a){var c=a.children,s=a.timeout,u=a.style,l=a.className,f=a.onStart,p=a.onEnd,d=a.onSpeechStart,m=a.onSpeechEnd,y=a.onResult,E=a.onError,b=a.onNoMatch,g=a.__recognitionInstance,_=t(null),O=t(null),R=h(n(!1),2),k=R[0],x=R[1];r((function(){return O.current=g||new w,function(){O.current.abort(),O.current.cleanup(),clearTimeout(_.current)}}),[g]);var T=function(){_.current=setTimeout(A,s)},j=function(){clearTimeout(_.current),_.current=null},P=function(){try{x(!1);var e=O.current;e.removeEventListener("start",L),e.removeEventListener("end",A),e.removeEventListener("speechstart",D),e.removeEventListener("speechend",N),e.removeEventListener("result",I),e.removeEventListener("error",U),e.removeEventListener("nomatch",C),e.stop()}catch(e){U(e)}},L=function(e){T(),f&&f(e)},A=function(e){j(),P(),p&&p(e)},D=function(e){j(),d&&d(e)},N=function(e){T(),m&&m(e)},I=function(e,t){P(),y&&y(e,t)},U=function(e){P(),E&&E(e)},C=function(e){b&&b(e)};return w.isSupported&&i(o(c)?c:e.createElement("div",{"data-testid":"__speech-root__",style:l?null:v({width:24,height:24,cursor:k?null:"pointer"},u),className:l},e.createElement(S,{isActive:k,iconColor:"#aaa"})),v({},!k&&{onClick:function(){!function(){try{x(!0);var e=O.current;e.addEventListener("start",L),e.addEventListener("end",A),e.addEventListener("speechstart",D),e.addEventListener("speechend",N),e.addEventListener("result",I),e.addEventListener("error",U),e.addEventListener("nomatch",C),e.start()}catch(e){U(e)}}()}}))};g.propTypes={timeout: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},g.defaultProps={timeout:3e3,style:null,className:null,onStart:null,onEnd:null,onSpeechStart:null,onSpeechEnd:null,onResult:null,onError:null,onNoMatch:null};export default g;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9AdW50ZW1wcy91c2VyLW1lZGlhLXV0aWxzL2Rpc3QvaW5kZXguZXMuanMiLCIuLi9zcmMvU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmpzIiwiLi4vc3JjL01pY3JvcGhvbmVJY29uLmpzIiwiLi4vc3JjL1ZvY2FsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGUoZSxyLHQsbixhLG8saSl7dHJ5e3ZhciB1PWVbb10oaSksYz11LnZhbHVlfWNhdGNoKGUpe3JldHVybiB2b2lkIHQoZSl9dS5kb25lP3IoYyk6UHJvbWlzZS5yZXNvbHZlKGMpLnRoZW4obixhKX1mdW5jdGlvbiByKHIpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihhLG8pe3ZhciBpPXIuYXBwbHkodCxuKTtmdW5jdGlvbiB1KHIpe2UoaSxhLG8sdSxjLFwibmV4dFwiLHIpfWZ1bmN0aW9uIGMocil7ZShpLGEsbyx1LGMsXCJ0aHJvd1wiLHIpfXUodm9pZCAwKX0pKX19ZnVuY3Rpb24gdChlLHIpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxyKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgU3ltYm9sfHwhKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpKXJldHVybjt2YXIgdD1bXSxuPSEwLGE9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgaSx1PWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0oaT11Lm5leHQoKSkuZG9uZSkmJih0LnB1c2goaS52YWx1ZSksIXJ8fHQubGVuZ3RoIT09cik7bj0hMCk7fWNhdGNoKGUpe2E9ITAsbz1lfWZpbmFsbHl7dHJ5e258fG51bGw9PXUucmV0dXJufHx1LnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyBvfX1yZXR1cm4gdH0oZSxyKXx8ZnVuY3Rpb24oZSxyKXtpZighZSlyZXR1cm47aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG4oZSxyKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7XCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSk7aWYoXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKGUpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbihlLHIpfShlLHIpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gbihlLHIpeyhudWxsPT1yfHxyPmUubGVuZ3RoKSYmKHI9ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLG49bmV3IEFycmF5KHIpO3Q8cjt0Kyspblt0XT1lW3RdO3JldHVybiBufXZhciBhPWZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZShuLGEpe3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsbmV3IFByb21pc2UoZnVuY3Rpb24oKXt2YXIgZT1yKHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKChmdW5jdGlvbiBlKHIsbyl7dmFyIGksdSxjLHMsZjtyZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKG5hdmlnYXRvci5wZXJtaXNzaW9ucyl7ZS5uZXh0PTQ7YnJlYWt9byhuZXcgRXJyb3IoXCJQRVJNSVNTSU9OU19OT1RfU1VQUE9SVEVEXCIpKSxlLm5leHQ9Mzc7YnJlYWs7Y2FzZSA0OnJldHVybiBlLnByZXY9NCxlLm5leHQ9NyxuYXZpZ2F0b3IucGVybWlzc2lvbnMucXVlcnkoe25hbWU6bn0pO2Nhc2UgNzppZihcImRlbmllZFwiIT09KGk9ZS5zZW50KS5zdGF0ZSl7ZS5uZXh0PTEyO2JyZWFrfW8obmV3IEVycm9yKFwiREVOSUVEX0JZX1VTRVJcIikpLGUubmV4dD0zMjticmVhaztjYXNlIDEyOmlmKG5hdmlnYXRvci5tZWRpYURldmljZXMpe2UubmV4dD0xNjticmVha31vKG5ldyBFcnJvcihcIk1FRElBX0RFVklDRVNfTk9UX1NVUFBPUlRFRFwiKSksZS5uZXh0PTMyO2JyZWFrO2Nhc2UgMTY6cmV0dXJuIGUubmV4dD0xOCxuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShhKTtjYXNlIDE4OmlmKGUudDA9ZS5zZW50LHU9W2UudDBdLFwicHJvbXB0XCIhPT1pLnN0YXRlKXtlLm5leHQ9MjY7YnJlYWt9cmV0dXJuIGUudDE9dSxlLm5leHQ9MjQsbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe2kuYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLChmdW5jdGlvbihyKXtcImRlbmllZFwiPT09ci50YXJnZXQuc3RhdGU/byhuZXcgRXJyb3IoXCJERU5JRURfQllfVVNFUlwiKSk6ZSgpfSkpfSkpO2Nhc2UgMjQ6ZS50Mj1lLnNlbnQsZS50MS5wdXNoLmNhbGwoZS50MSxlLnQyKTtjYXNlIDI2OnJldHVybiBlLm5leHQ9MjgsUHJvbWlzZS5hbGwodSk7Y2FzZSAyODpjPWUuc2VudCxzPXQoYywxKSxmPXNbMF0scihmKTtjYXNlIDMyOmUubmV4dD0zNzticmVhaztjYXNlIDM0OmUucHJldj0zNCxlLnQzPWUuY2F0Y2goNCksbyhlLnQzKTtjYXNlIDM3OmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlLG51bGwsW1s0LDM0XV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24ocix0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSk7Y2FzZSAxOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHIsdCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtleHBvcnR7YSBhcyBnZXRVc2VyTWVkaWFTdHJlYW19O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndVpYTXVhbk1pTENKemIzVnlZMlZ6SWpwYklpNHVMM055WXk5blpYUlZjMlZ5VFdWa2FXRlRkSEpsWVcwdWFuTWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvcVhHNGdLaUJTWlhSMWNtNXpJR0VnY0hKdmJXbHpaU0J5WlhOdmJIWmxaQ0IzYUdWdUlIUm9aU0J0WldScFlTQnBjeUJoZFhSb2IzSnBlbVZrSUdGdVpDQjBhR1VnYzNSeVpXRnRJR2x6SUhKbGRISnBaWFpsWkZ4dUlDb2dRSEJoY21GdElIQmxjbTFwYzNOcGIyNU9ZVzFsSUNBZ0lDQWdJQ0FnSUNBZ1RtRnRaU0J2WmlCMGFHVWdjR1Z5YldsemMybHZiaTRnUUhObFpTQm9kSFJ3Y3pvdkwzY3pZeTVuYVhSb2RXSXVhVzh2Y0dWeWJXbHpjMmx2Ym5NdkkyVnVkVzFrWldZdGNHVnliV2x6YzJsdmJtNWhiV1ZjYmlBcUlFQndZWEpoYlNCdFpXUnBZVk4wY21WaGJVTnZibk4wY21GcGJuUnpJQ0FnSUVOdmJuTjBjbUZwYm5SeklHOWlhbVZqZEM0Z1FITmxaU0JvZEhSd2N6b3ZMMlJsZG1Wc2IzQmxjaTV0YjNwcGJHeGhMbTl5Wnk5bGJpMVZVeTlrYjJOekwxZGxZaTlCVUVrdlRXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjMXh1SUNvZ1FISmxkSFZ5Ym5NZ2UxQnliMjFwYzJWOVhHNGdLaTljYm1WNGNHOXlkQ0JrWldaaGRXeDBJR0Z6ZVc1aklDaHdaWEp0YVhOemFXOXVUbUZ0WlN3Z2JXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjeWtnUFQ0Z2UxeHVYSFJ5WlhSMWNtNGdibVYzSUZCeWIyMXBjMlVvWVhONWJtTWdLSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dQVDRnZTF4dVhIUmNkR2xtSUNnaGJtRjJhV2RoZEc5eUxuQmxjbTFwYzNOcGIyNXpLU0I3WEc1Y2RGeDBYSFJ5WldwbFkzUW9ibVYzSUVWeWNtOXlLQ2RRUlZKTlNWTlRTVTlPVTE5T1QxUmZVMVZRVUU5U1ZFVkVKeWtwWEc1Y2RGeDBmU0JsYkhObElIdGNibHgwWEhSY2RIUnllU0I3WEc1Y2RGeDBYSFJjZEdOdmJuTjBJSEJsY20xcGMzTnBiMjVUZEdGMGRYTWdQU0JoZDJGcGRDQnVZWFpwWjJGMGIzSXVjR1Z5YldsemMybHZibk11Y1hWbGNua29leUJ1WVcxbE9pQndaWEp0YVhOemFXOXVUbUZ0WlNCOUtWeHVYSFJjZEZ4MFhIUnBaaUFvY0dWeWJXbHpjMmx2YmxOMFlYUjFjeTV6ZEdGMFpTQTlQVDBnSjJSbGJtbGxaQ2NwSUh0Y2JseDBYSFJjZEZ4MFhIUnlaV3BsWTNRb2JtVjNJRVZ5Y205eUtDZEVSVTVKUlVSZlFsbGZWVk5GVWljcEtWeHVYSFJjZEZ4MFhIUjlJR1ZzYzJVZ2FXWWdLQ0Z1WVhacFoyRjBiM0l1YldWa2FXRkVaWFpwWTJWektTQjdYRzVjZEZ4MFhIUmNkRngwY21WcVpXTjBLRzVsZHlCRmNuSnZjaWduVFVWRVNVRmZSRVZXU1VORlUxOU9UMVJmVTFWUVVFOVNWRVZFSnlrcFhHNWNkRngwWEhSY2RIMGdaV3h6WlNCN1hHNWNkRngwWEhSY2RGeDBZMjl1YzNRZ2NISnZiV2x6WlhNZ1BTQmJZWGRoYVhRZ2JtRjJhV2RoZEc5eUxtMWxaR2xoUkdWMmFXTmxjeTVuWlhSVmMyVnlUV1ZrYVdFb2JXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjeWxkWEc1Y2RGeDBYSFJjZEZ4MGFXWWdLSEJsY20xcGMzTnBiMjVUZEdGMGRYTXVjM1JoZEdVZ1BUMDlJQ2R3Y205dGNIUW5LU0I3WEc1Y2RGeDBYSFJjZEZ4MFhIUndjbTl0YVhObGN5NXdkWE5vS0Z4dVhIUmNkRngwWEhSY2RGeDBYSFJoZDJGcGRDQnVaWGNnVUhKdmJXbHpaU2dvY21WemIyeDJaU2tnUFQ0Z2UxeHVYSFJjZEZ4MFhIUmNkRngwWEhSY2RIQmxjbTFwYzNOcGIyNVRkR0YwZFhNdVlXUmtSWFpsYm5STWFYTjBaVzVsY2lnblkyaGhibWRsSnl3Z0tHVjJaVzUwS1NBOVBpQjdYRzVjZEZ4MFhIUmNkRngwWEhSY2RGeDBYSFJwWmlBb1pYWmxiblF1ZEdGeVoyVjBMbk4wWVhSbElEMDlQU0FuWkdWdWFXVmtKeWtnZTF4dVhIUmNkRngwWEhSY2RGeDBYSFJjZEZ4MFhIUnlaV3BsWTNRb2JtVjNJRVZ5Y205eUtDZEVSVTVKUlVSZlFsbGZWVk5GVWljcEtWeHVYSFJjZEZ4MFhIUmNkRngwWEhSY2RGeDBmU0JsYkhObElIdGNibHgwWEhSY2RGeDBYSFJjZEZ4MFhIUmNkRngwY21WemIyeDJaU2dwWEc1Y2RGeDBYSFJjZEZ4MFhIUmNkRngwWEhSOVhHNWNkRngwWEhSY2RGeDBYSFJjZEZ4MGZTbGNibHgwWEhSY2RGeDBYSFJjZEZ4MGZTbGNibHgwWEhSY2RGeDBYSFJjZENsY2JseDBYSFJjZEZ4MFhIUjlYRzVjZEZ4MFhIUmNkRngwWTI5dWMzUWdXM04wY21WaGJWMGdQU0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2h3Y205dGFYTmxjeWxjYmx4MFhIUmNkRngwWEhSeVpYTnZiSFpsS0hOMGNtVmhiU2xjYmx4MFhIUmNkRngwZlZ4dVhIUmNkRngwZlNCallYUmphQ0FvWlhKeWIzSXBJSHRjYmx4MFhIUmNkRngwY21WcVpXTjBLR1Z5Y205eUtWeHVYSFJjZEZ4MGZWeHVYSFJjZEgxY2JseDBmU2xjYm4xY2JpSmRMQ0p1WVcxbGN5STZXeUp3WlhKdGFYTnphVzl1VG1GdFpTSXNJbTFsWkdsaFUzUnlaV0Z0UTI5dWMzUnlZV2x1ZEhNaUxDSlFjbTl0YVhObElpd2ljbVZ6YjJ4MlpTSXNJbkpsYW1WamRDSXNJbTVoZG1sbllYUnZjaUlzSW5CbGNtMXBjM05wYjI1eklpd2lSWEp5YjNJaUxDSnhkV1Z5ZVNJc0ltNWhiV1VpTENKd1pYSnRhWE56YVc5dVUzUmhkSFZ6SWl3aWMzUmhkR1VpTENKdFpXUnBZVVJsZG1salpYTWlMQ0puWlhSVmMyVnlUV1ZrYVdFaUxDSndjbTl0YVhObGN5SXNJbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSWlMQ0psZG1WdWRDSXNJblJoY21kbGRDSXNJbkIxYzJnaUxDSmhiR3dpTENKemRISmxZVzBpWFN3aWJXRndjR2x1WjNNaU9pSnRkME5CVFVFc2EwUkJRV1VzVjBGQlQwRXNSVUZCWjBKRExEUkhRVU01UWl4SlFVRkpReXh2UkVGQlVTeFhRVUZQUXl4RlFVRlRReXh2UjBGRE4wSkRMRlZCUVZWRExEUkNRVU5rUml4RlFVRlBMRWxCUVVsSExFMUJRVTBzT0VWQlIyVkdMRlZCUVZWRExGbEJRVmxGTEUxQlFVMHNRMEZCUlVNc1MwRkJUVlFzWTBGRGNFTXNXVUZFZWtKVkxGVkJRMlZETEhWQ1FVTndRbEFzUlVGQlR5eEpRVUZKUnl4TlFVRk5MRGhEUVVOT1JpeFZRVUZWVHl3NFFrRkRja0pTTEVWQlFVOHNTVUZCU1Vjc1RVRkJUU3g1UlVGRlQwWXNWVUZCVlU4c1lVRkJZVU1zWVVGQllWb3NNRUpCUVhSRVlTeFRRVU41UWl4WFFVRXpRa29zUlVGQmFVSkRMRzFEUVVOd1FrY3NXVUZEVHl4SlFVRkpXaXhUUVVGUkxGTkJRVU5ETEVkQlEyeENUeXhGUVVGcFFrc3NhVUpCUVdsQ0xGVkJRVlVzVTBGQlEwTXNSMEZEYWtJc1YwRkJka0pCTEVWQlFVMURMRTlCUVU5T0xFMUJRMmhDVUN4RlFVRlBMRWxCUVVsSExFMUJRVTBzYlVKQlJXcENTaXh0UTBGT1MyVXNPRU5CV1dGb1FpeFJRVUZSYVVJc1NVRkJTVXdzTmtKQlFUVkNUU3hQUVVOUWFrSXNSVUZCVVdsQ0xEWkVRVWRVYUVJaWZRPT1cbiIsImltcG9ydCB7IGdldFVzZXJNZWRpYVN0cmVhbSB9IGZyb20gJ0B1bnRlbXBzL3VzZXItbWVkaWEtdXRpbHMnXG5cbmNsYXNzIFNwZWVjaFJlY29nbml0aW9uV3JhcHBlciB7XG5cdHN0YXRpYyBkZWZhdWx0T3B0aW9ucyA9IHtcblx0XHRsYW5nOiAnZnItRlInLFxuXHRcdGNvbnRpbnVvdXM6IGZhbHNlLFxuXHRcdGludGVyaW1SZXN1bHRzOiBmYWxzZSxcblx0XHRtYXhBbHRlcm5hdGl2ZXM6IDEsXG5cdH1cblxuXHRzdGF0aWMgZXZlbnRUeXBlcyA9IHtcblx0XHRBVURJT19FTkQ6ICdhdWRpb2VuZCcsXG5cdFx0QVVESU9fU1RBUlQ6ICdhdWRpb3N0YXJ0Jyxcblx0XHRFTkQ6ICdlbmQnLFxuXHRcdEVSUk9SOiAnZXJyb3InLFxuXHRcdE5PX01BVENIOiAnbm9tYXRjaCcsXG5cdFx0UkVTVUxUOiAncmVzdWx0Jyxcblx0XHRTT1VORF9FTkQ6ICdzb3VuZGVuZCcsXG5cdFx0U09VTkRfU1RBUlQ6ICdzb3VuZHN0YXJ0Jyxcblx0XHRTUEVFQ0hfRU5EOiAnc3BlZWNoZW5kJyxcblx0XHRTUEVFQ0hfU1RBUlQ6ICdzcGVlY2hzdGFydCcsXG5cdFx0U1RBUlQ6ICdzdGFydCcsXG5cdH1cblxuXHRzdGF0aWMgZ2V0IGlzU3VwcG9ydGVkKCkge1xuXHRcdHJldHVybiAoXG5cdFx0XHQhIXdpbmRvdy5TcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0ISF3aW5kb3cud2Via2l0U3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdCEhd2luZG93Lm1velNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHQhIXdpbmRvdy5tc1NwZWVjaFJlY29nbml0aW9uXG5cdFx0KVxuXHR9XG5cblx0c3RhdGljIHNldCBpc1N1cHBvcnRlZChfKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHNldCBpc1N1cHBvcnRlZCBkaXJlY3RseS4nKVxuXHR9XG5cblx0X2luc3RhbmNlID0gbnVsbFxuXHRfbGlzdGVuZXJzID0gbnVsbFxuXG5cdGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcblx0XHRjb25zdCBTcGVlY2hSZWNvZ25pdGlvbiA9XG5cdFx0XHR3aW5kb3cuU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHdpbmRvdy53ZWJraXRTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0d2luZG93Lm1velNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHR3aW5kb3cubXNTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0e31cblx0XHR0aGlzLl9pbnN0YW5jZSA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpXG5cdFx0dGhpcy5fbGlzdGVuZXJzID0ge31cblxuXHRcdE9iamVjdC5lbnRyaWVzKHsgLi4uU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmRlZmF1bHRPcHRpb25zLCAuLi4ob3B0aW9ucyB8fCB7fSkgfSkuZm9yRWFjaChcblx0XHRcdChba2V5LCB2YWx1ZV0pID0+ICh0aGlzLl9pbnN0YW5jZVtrZXldID0gdmFsdWUpXG5cdFx0KVxuXHR9XG5cblx0Z2V0IGluc3RhbmNlKCkge1xuXHRcdHJldHVybiB0aGlzLl9pbnN0YW5jZVxuXHR9XG5cblx0c2V0IGluc3RhbmNlKF8pIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3Qgc2V0IGluc3RhbmNlIGRpcmVjdGx5LicpXG5cdH1cblxuXHRhc3luYyBzdGFydCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0VXNlck1lZGlhU3RyZWFtKCdtaWNyb3Bob25lJywgeyBhdWRpbzogdHJ1ZSB9KVxuXHRcdFx0XHRpZiAoIXN0cmVhbSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJldHJpZXZlIHRoZSBzdHJlYW0gZnJvbSBtZWRpYSBkZXZpY2UnKVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuX2luc3RhbmNlLnN0YXJ0KClcblx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRcdGNvbnN0IGVycm9ySGFuZGxlciA9IHRoaXMuX2xpc3RlbmVycy5lcnJvclxuXHRcdFx0XHRpZiAoISFlcnJvckhhbmRsZXIpIHtcblx0XHRcdFx0XHRlcnJvckhhbmRsZXIoZXJyb3IpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0c3RvcCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dGhpcy5faW5zdGFuY2Uuc3RvcCgpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdGFib3J0KCkge1xuXHRcdGlmICghIXRoaXMuX2luc3RhbmNlKSB7XG5cdFx0XHR0aGlzLl9pbnN0YW5jZS5hYm9ydCgpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdGFkZEV2ZW50TGlzdGVuZXIodHlwZSwgY2FsbGJhY2spIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSAmJiB0aGlzLl9pbmNsdWRlc0V2ZW50VHlwZSh0eXBlKSkge1xuXHRcdFx0aWYgKCEhdGhpcy5fbGlzdGVuZXJzW3R5cGVdKSB7XG5cdFx0XHRcdHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlKVxuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBoYW5kbGVyID0gKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGxldCBhZGRpdGlvbmFsQXJncyA9IFtdXG5cdFx0XHRcdGlmICh0eXBlID09PSBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuZXZlbnRUeXBlcy5SRVNVTFQpIHtcblx0XHRcdFx0XHRpZiAoISFldmVudC5yZXN1bHRzICYmIGV2ZW50LnJlc3VsdHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0YWRkaXRpb25hbEFyZ3MucHVzaChldmVudC5yZXN1bHRzWzBdWzBdLnRyYW5zY3JpcHQpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0ISFjYWxsYmFjayAmJiBjYWxsYmFjay5hcHBseSh0aGlzLCBbLi4uYWRkaXRpb25hbEFyZ3MsIGV2ZW50XSlcblx0XHRcdH1cblx0XHRcdHRoaXMuX2luc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgKGUpID0+IGhhbmRsZXIoZSkpXG5cblx0XHRcdHRoaXMuX2xpc3RlbmVyc1t0eXBlXSA9IGhhbmRsZXJcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0cmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlKSB7XG5cdFx0Y29uc3QgaGFuZGxlciA9IHRoaXMuX2xpc3RlbmVyc1t0eXBlXVxuXHRcdHRoaXMuX2luc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgaGFuZGxlcilcblxuXHRcdGRlbGV0ZSB0aGlzLl9saXN0ZW5lcnNbdHlwZV1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRjbGVhbnVwKCkge1xuXHRcdHRoaXMuc3RvcCgpXG5cblx0XHRPYmplY3Qua2V5cyh0aGlzLl9saXN0ZW5lcnMpLmZvckVhY2goKGtleSkgPT4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGtleSkpXG5cdFx0dGhpcy5faW5zdGFuY2UgPSBudWxsXG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0X2luY2x1ZGVzRXZlbnRUeXBlID0gKGV2ZW50VHlwZSkgPT5cblx0XHRPYmplY3QudmFsdWVzKFNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5ldmVudFR5cGVzKS5maW5kKCh0eXBlKSA9PiB0eXBlID09PSBldmVudFR5cGUpXG59XG5cbmV4cG9ydCBkZWZhdWx0IFNwZWVjaFJlY29nbml0aW9uV3JhcHBlclxuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5jb25zdCBNaWNyb3Bob25lSWNvbiA9ICh7IGljb25Db2xvciA9ICdibGFjaycsIGFjdGl2ZUNvbG9yID0gJ3JlZCcsIGlzQWN0aXZlID0gZmFsc2UgfSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG5cdFx0XHQ8Zz5cblx0XHRcdFx0PHBhdGhcblx0XHRcdFx0XHRmaWxsPXtpY29uQ29sb3J9XG5cdFx0XHRcdFx0ZD1cIk0xMiAxNGMxLjY2IDAgMi45OS0xLjM0IDIuOTktM0wxNSA1YzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDV2NmMwIDEuNjYgMS4zNCAzIDMgM3ptNS4zLTNjMCAzLTIuNTQgNS4xLTUuMyA1LjFTNi43IDE0IDYuNyAxMUg1YzAgMy40MSAyLjcyIDYuMjMgNiA2LjcyVjIxaDJ2LTMuMjhjMy4yOC0uNDggNi0zLjMgNi02LjcyaC0xLjd6XCJcblx0XHRcdFx0Lz5cblx0XHRcdFx0e2lzQWN0aXZlICYmIDxjaXJjbGUgZmlsbD17YWN0aXZlQ29sb3J9IGN4PVwiMTZcIiBjeT1cIjRcIiByPVwiNFwiIC8+fVxuXHRcdFx0PC9nPlxuXHRcdDwvc3ZnPlxuXHQpXG59XG5cbmV4cG9ydCBkZWZhdWx0IE1pY3JvcGhvbmVJY29uXG4iLCJpbXBvcnQgUmVhY3QsIHsgY2xvbmVFbGVtZW50LCBpc1ZhbGlkRWxlbWVudCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG5cbmltcG9ydCBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIgZnJvbSAnLi9TcGVlY2hSZWNvZ25pdGlvbldyYXBwZXInXG5cbmltcG9ydCBNaWNyb3Bob25lSWNvbiBmcm9tICcuL01pY3JvcGhvbmVJY29uJ1xuXG5jb25zdCBWb2NhbCA9ICh7XG5cdGNoaWxkcmVuLFxuXHR0aW1lb3V0LFxuXHRzdHlsZSxcblx0Y2xhc3NOYW1lLFxuXHRvblN0YXJ0LFxuXHRvbkVuZCxcblx0b25TcGVlY2hTdGFydCxcblx0b25TcGVlY2hFbmQsXG5cdG9uUmVzdWx0LFxuXHRvbkVycm9yLFxuXHRvbk5vTWF0Y2gsXG5cdF9fcmVjb2duaXRpb25JbnN0YW5jZSxcbn0pID0+IHtcblx0Y29uc3QgdGltZW91dFJlZiA9IHVzZVJlZihudWxsKVxuXHRjb25zdCByZWNvZ25pdGlvblJlZiA9IHVzZVJlZihudWxsKVxuXG5cdGNvbnN0IFtpc0xpc3RlbmluZywgc2V0SXNMaXN0ZW5pbmddID0gdXNlU3RhdGUoZmFsc2UpXG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRyZWNvZ25pdGlvblJlZi5jdXJyZW50ID0gX19yZWNvZ25pdGlvbkluc3RhbmNlIHx8IG5ldyBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIoKVxuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRyZWNvZ25pdGlvblJlZi5jdXJyZW50LmFib3J0KClcblx0XHRcdHJlY29nbml0aW9uUmVmLmN1cnJlbnQuY2xlYW51cCgpXG5cdFx0XHRjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KVxuXHRcdH1cblx0fSwgW19fcmVjb2duaXRpb25JbnN0YW5jZV0pXG5cblx0Y29uc3Qgc3RhcnRUaW1lciA9ICgpID0+IHtcblx0XHR0aW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KF9vbkVuZCwgdGltZW91dClcblx0fVxuXG5cdGNvbnN0IHN0b3BUaW1lciA9ICgpID0+IHtcblx0XHRjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KVxuXHRcdHRpbWVvdXRSZWYuY3VycmVudCA9IG51bGxcblx0fVxuXG5cdGNvbnN0IHN0YXJ0UmVjb2duaXRpb24gPSAoKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdHNldElzTGlzdGVuaW5nKHRydWUpXG5cblx0XHRcdGNvbnN0IHsgY3VycmVudDogciB9ID0gcmVjb2duaXRpb25SZWZcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBfb25TdGFydClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignZW5kJywgX29uRW5kKVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzcGVlY2hzdGFydCcsIF9vblNwZWVjaFN0YXJ0KVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzcGVlY2hlbmQnLCBfb25TcGVlY2hFbmQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc3VsdCcsIF9vblJlc3VsdClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBfb25FcnJvcilcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignbm9tYXRjaCcsIF9vbk5vTWF0Y2gpXG5cdFx0XHRyLnN0YXJ0KClcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0X29uRXJyb3IoZXJyb3IpXG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgc3RvcFJlY29nbml0aW9uID0gKCkgPT4ge1xuXHRcdHRyeSB7XG5cdFx0XHRzZXRJc0xpc3RlbmluZyhmYWxzZSlcblxuXHRcdFx0Y29uc3QgeyBjdXJyZW50OiByIH0gPSByZWNvZ25pdGlvblJlZlxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzdGFydCcsIF9vblN0YXJ0KVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdlbmQnLCBfb25FbmQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NwZWVjaHN0YXJ0JywgX29uU3BlZWNoU3RhcnQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NwZWVjaGVuZCcsIF9vblNwZWVjaEVuZClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzdWx0JywgX29uUmVzdWx0KVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIF9vbkVycm9yKVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdub21hdGNoJywgX29uTm9NYXRjaClcblx0XHRcdHIuc3RvcCgpXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdF9vbkVycm9yKGVycm9yKVxuXHRcdH1cblx0fVxuXG5cdGNvbnN0IHN0YXJ0ID0gKCkgPT4ge1xuXHRcdHN0YXJ0VGltZXIoKVxuXHR9XG5cblx0Y29uc3QgZW5kID0gKCkgPT4ge1xuXHRcdHN0b3BUaW1lcigpXG5cdFx0c3RvcFJlY29nbml0aW9uKClcblx0fVxuXG5cdGNvbnN0IF9vbkNsaWNrID0gKCkgPT4ge1xuXHRcdHN0YXJ0UmVjb2duaXRpb24oKVxuXHR9XG5cblx0Y29uc3QgX29uU3RhcnQgPSAoZSkgPT4ge1xuXHRcdHN0YXJ0KClcblxuXHRcdCEhb25TdGFydCAmJiBvblN0YXJ0KGUpXG5cdH1cblxuXHRjb25zdCBfb25FbmQgPSAoZSkgPT4ge1xuXHRcdGVuZCgpXG5cblx0XHQhIW9uRW5kICYmIG9uRW5kKGUpXG5cdH1cblxuXHRjb25zdCBfb25TcGVlY2hTdGFydCA9IChlKSA9PiB7XG5cdFx0c3RvcFRpbWVyKClcblxuXHRcdCEhb25TcGVlY2hTdGFydCAmJiBvblNwZWVjaFN0YXJ0KGUpXG5cdH1cblxuXHRjb25zdCBfb25TcGVlY2hFbmQgPSAoZSkgPT4ge1xuXHRcdHN0YXJ0VGltZXIoKVxuXG5cdFx0ISFvblNwZWVjaEVuZCAmJiBvblNwZWVjaEVuZChlKVxuXHR9XG5cblx0Y29uc3QgX29uUmVzdWx0ID0gKHJlc3VsdCwgZXZlbnQpID0+IHtcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXG5cdFx0ISFvblJlc3VsdCAmJiBvblJlc3VsdChyZXN1bHQsIGV2ZW50KVxuXHR9XG5cblx0Y29uc3QgX29uRXJyb3IgPSAoZXJyb3IpID0+IHtcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXG5cdFx0ISFvbkVycm9yICYmIG9uRXJyb3IoZXJyb3IpXG5cdH1cblxuXHRjb25zdCBfb25Ob01hdGNoID0gKGUpID0+IHtcblx0XHQhIW9uTm9NYXRjaCAmJiBvbk5vTWF0Y2goZSlcblx0fVxuXG5cdGNvbnN0IF9yZW5kZXJEZWZhdWx0ID0gKCkgPT4gKFxuXHRcdDxkaXZcblx0XHRcdGRhdGEtdGVzdGlkPVwiX19zcGVlY2gtcm9vdF9fXCJcblx0XHRcdHN0eWxlPXtjbGFzc05hbWUgPyBudWxsIDogeyB3aWR0aDogMjQsIGhlaWdodDogMjQsIGN1cnNvcjogIWlzTGlzdGVuaW5nID8gJ3BvaW50ZXInIDogbnVsbCwgLi4uc3R5bGUgfX1cblx0XHRcdGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuXHRcdD5cblx0XHRcdDxNaWNyb3Bob25lSWNvbiBpc0FjdGl2ZT17aXNMaXN0ZW5pbmd9IGljb25Db2xvcj1cIiNhYWFcIiAvPlxuXHRcdDwvZGl2PlxuXHQpXG5cblx0cmV0dXJuIChcblx0XHRTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuaXNTdXBwb3J0ZWQgJiZcblx0XHRjbG9uZUVsZW1lbnQoaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pID8gY2hpbGRyZW4gOiBfcmVuZGVyRGVmYXVsdCgpLCB7XG5cdFx0XHQuLi4oIWlzTGlzdGVuaW5nICYmIHsgb25DbGljazogX29uQ2xpY2sgfSksXG5cdFx0fSlcblx0KVxufVxuXG5Wb2NhbC5wcm9wVHlwZXMgPSB7XG5cdC8qKiBEZWZpbmVzIHRoZSB0aW1lIGluIG1zIHRvIHdhaXQgYmVmb3JlIGRpc2NhcmRpbmcgdGhlIHJlY29nbml0aW9uICovXG5cdHRpbWVvdXQ6IFByb3BUeXBlcy5udW1iZXIsXG5cdC8qKiBEZWZpbmVzIHRoZSBzdHlsZXMgb2YgdGhlIGRlZmF1bHQgZWxlbWVudCBpZiBjbGFzc05hbWUgaXMgbm90IHNwZWNpZmllZCAqL1xuXHRzdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcblx0LyoqIERlZmluZXMgdGhlIGNsYXNzIG9mIHRoZSBkZWZhdWx0IGVsZW1lbnQgKi9cblx0Y2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgcmVjb2duaXRpb24gc3RhcnRzICovXG5cdG9uU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgcmVjb2duaXRpb24gZW5kcyAqL1xuXHRvbkVuZDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBzcGVlY2ggc3RhcnRzICovXG5cdG9uU3BlZWNoU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgc3BlZWNoIGVuZHMgKi9cblx0b25TcGVlY2hFbmQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBhIHJlc3VsdCBpcyByZWNvZ25pemVkICovXG5cdG9uUmVzdWx0OiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzICovXG5cdG9uRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBubyByZXN1bHQgY2FuIGJlIHJlY29nbml6ZWQgKi9cblx0b25Ob01hdGNoOiBQcm9wVHlwZXMuZnVuYyxcbn1cblxuVm9jYWwuZGVmYXVsdFByb3BzID0ge1xuXHR0aW1lb3V0OiAzMDAwLFxuXHRzdHlsZTogbnVsbCxcblx0Y2xhc3NOYW1lOiBudWxsLFxuXHRvblN0YXJ0OiBudWxsLFxuXHRvbkVuZDogbnVsbCxcblx0b25TcGVlY2hTdGFydDogbnVsbCxcblx0b25TcGVlY2hFbmQ6IG51bGwsXG5cdG9uUmVzdWx0OiBudWxsLFxuXHRvbkVycm9yOiBudWxsLFxuXHRvbk5vTWF0Y2g6IG51bGwsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFZvY2FsXG4iXSwibmFtZXMiOlsiZSIsInIiLCJ0IiwibiIsImEiLCJvIiwiaSIsInUiLCJjIiwidmFsdWUiLCJkb25lIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwidGhpcyIsImFyZ3VtZW50cyIsImFwcGx5IiwiQXJyYXkiLCJpc0FycmF5IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJPYmplY3QiLCJuZXh0IiwicHVzaCIsImxlbmd0aCIsInJldHVybiIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJUeXBlRXJyb3IiLCJyZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwid3JhcCIsInByZXYiLCJhYnJ1cHQiLCJzIiwiZiIsIm5hdmlnYXRvciIsInBlcm1pc3Npb25zIiwiRXJyb3IiLCJxdWVyeSIsInNlbnQiLCJzdGF0ZSIsIm1lZGlhRGV2aWNlcyIsImdldFVzZXJNZWRpYSIsInQwIiwidDEiLCJhZGRFdmVudExpc3RlbmVyIiwidGFyZ2V0IiwidDIiLCJhbGwiLCJ0MyIsImNhdGNoIiwic3RvcCIsIlNwZWVjaFJlY29nbml0aW9uV3JhcHBlciIsIm9wdGlvbnMiLCJldmVudFR5cGUiLCJ2YWx1ZXMiLCJldmVudFR5cGVzIiwiZmluZCIsInR5cGUiLCJTcGVlY2hSZWNvZ25pdGlvbiIsIndpbmRvdyIsIndlYmtpdFNwZWVjaFJlY29nbml0aW9uIiwibW96U3BlZWNoUmVjb2duaXRpb24iLCJtc1NwZWVjaFJlY29nbml0aW9uIiwiX2luc3RhbmNlIiwiX2xpc3RlbmVycyIsImVudHJpZXMiLCJkZWZhdWx0T3B0aW9ucyIsImZvckVhY2giLCJrZXkiLCJfdGhpcyIsIl8iLCJnZXRVc2VyTWVkaWFTdHJlYW0iLCJhdWRpbyIsInN0YXJ0IiwiZXJyb3JIYW5kbGVyIiwiZXJyb3IiLCJhYm9ydCIsImNhbGxiYWNrIiwiX2luY2x1ZGVzRXZlbnRUeXBlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZXIiLCJldmVudCIsImFkZGl0aW9uYWxBcmdzIiwiUkVTVUxUIiwicmVzdWx0cyIsInRyYW5zY3JpcHQiLCJfdGhpczIiLCJrZXlzIiwiX3RoaXMzIiwibGFuZyIsImNvbnRpbnVvdXMiLCJpbnRlcmltUmVzdWx0cyIsIm1heEFsdGVybmF0aXZlcyIsIkFVRElPX0VORCIsIkFVRElPX1NUQVJUIiwiRU5EIiwiRVJST1IiLCJOT19NQVRDSCIsIlNPVU5EX0VORCIsIlNPVU5EX1NUQVJUIiwiU1BFRUNIX0VORCIsIlNQRUVDSF9TVEFSVCIsIlNUQVJUIiwiTWljcm9waG9uZUljb24iLCJpY29uQ29sb3IiLCJhY3RpdmVDb2xvciIsImlzQWN0aXZlIiwiUmVhY3QiLCJ4bWxucyIsIndpZHRoIiwiaGVpZ2h0Iiwidmlld0JveCIsImZpbGwiLCJkIiwiY3giLCJjeSIsIlZvY2FsIiwiY2hpbGRyZW4iLCJ0aW1lb3V0Iiwic3R5bGUiLCJjbGFzc05hbWUiLCJvblN0YXJ0Iiwib25FbmQiLCJvblNwZWVjaFN0YXJ0Iiwib25TcGVlY2hFbmQiLCJvblJlc3VsdCIsIm9uRXJyb3IiLCJvbk5vTWF0Y2giLCJfX3JlY29nbml0aW9uSW5zdGFuY2UiLCJ0aW1lb3V0UmVmIiwidXNlUmVmIiwicmVjb2duaXRpb25SZWYiLCJ1c2VTdGF0ZSIsImlzTGlzdGVuaW5nIiwic2V0SXNMaXN0ZW5pbmciLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiY2xlYW51cCIsImNsZWFyVGltZW91dCIsInN0YXJ0VGltZXIiLCJzZXRUaW1lb3V0IiwiX29uRW5kIiwic3RvcFRpbWVyIiwic3RvcFJlY29nbml0aW9uIiwiX29uU3RhcnQiLCJfb25TcGVlY2hTdGFydCIsIl9vblNwZWVjaEVuZCIsIl9vblJlc3VsdCIsIl9vbkVycm9yIiwiX29uTm9NYXRjaCIsInJlc3VsdCIsImlzU3VwcG9ydGVkIiwiY2xvbmVFbGVtZW50IiwiaXNWYWxpZEVsZW1lbnQiLCJjdXJzb3IiLCJvbkNsaWNrIiwic3RhcnRSZWNvZ25pdGlvbiIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm51bWJlciIsIm9iamVjdCIsInN0cmluZyIsImZ1bmMiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiJxbEVBQUEsU0FBU0EsRUFBRUEsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsR0FBRyxJQUFJLElBQUlDLEVBQUVQLEVBQUVLLEdBQUdDLEdBQUdFLEVBQUVELEVB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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),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).then(r,i)}function s(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 u(e,t,n){return t&&s(e.prototype,t),n&&s(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 v(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 p(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),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).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 E=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,s,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.permissions){e.next=4;break}i(new Error("PERMISSIONS_NOT_SUPPORTED")),e.next=37;break;case 4:return e.prev=4,e.next=7,navigator.permissions.query({name:t});case 7:if("denied"!==(o=e.sent).state){e.next=12;break}i(new Error("DENIED_BY_USER")),e.next=32;break;case 12:if(navigator.mediaDevices){e.next=16;break}i(new Error("MEDIA_DEVICES_NOT_SUPPORTED")),e.next=32;break;case 16:return e.next=18,navigator.mediaDevices.getUserMedia(n);case 18:if(e.t0=e.sent,a=[e.t0],"prompt"!==o.state){e.next=26;break}return e.t1=a,e.next=24,new Promise((function(e){o.addEventListener("change",(function(t){"denied"===t.target.state?i(new Error("DENIED_BY_USER")):e()}))}));case 24:e.t2=e.sent,e.t1.push.call(e.t1,e.t2);case 26:return e.next=28,Promise.all(a);case 28:c=e.sent,s=y(c,1),u=s[0],r(u);case 32:e.next=37;break;case 34:e.prev=34,e.t3=e.catch(4),i(e.t3);case 37:case"end":return e.stop()}}),e,null,[[4,34]])})));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),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(v(v({},e.defaultOptions),t||{})).forEach((function(e){var t=p(e,2),r=t[0],i=t[1];return n._instance[r]=i}))}var t,n;return u(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.")}}]),u(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,E("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,s,"next",e)}function s(e){c(o,r,i,a,s,"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(w,"defaultOptions",{lang:"fr-FR",continuous:!1,interimResults:!1,maxAlternatives:1}),l(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 S=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"})))},g=function(a){var c=a.children,s=a.timeout,u=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,g=a.onError,_=a.onNoMatch,O=a.__recognitionInstance,R=t(null),x=t(null),k=p(n(!1),2),L=k[0],T=k[1];r((function(){if(w.isSupported)return x.current=O||new w,function(){x.current.abort(),x.current.cleanup(),clearTimeout(R.current)}}),[O]);var j=function(){R.current=setTimeout(I,s)},P=function(){clearTimeout(R.current),R.current=null},A=function(){try{T(!1);var e=x.current;e.removeEventListener("start",D),e.removeEventListener("end",I),e.removeEventListener("speechstart",N),e.removeEventListener("speechend",U),e.removeEventListener("result",C),e.removeEventListener("error",M),e.removeEventListener("nomatch",z),e.stop()}catch(e){M(e)}},D=function(e){j(),d&&d(e)},I=function(e){P(),A(),m&&m(e)},N=function(e){P(),y&&y(e)},U=function(e){j(),b&&b(e)},C=function(e,t){A(),E&&E(e,t)},M=function(e){A(),g&&g(e)},z=function(e){_&&_(e)};return w.isSupported&&i(o(c)?c:e.createElement("div",{"data-testid":"__vocal-root__",role:"button","aria-label":u,tabIndex:l,style:h?null:v({width:24,height:24,cursor:L?null:"pointer"},f),className:h},e.createElement(S,{isActive:L,iconColor:"#aaa"})),v({},!L&&{onClick:function(){!function(){try{T(!0);var e=x.current;e.addEventListener("start",D),e.addEventListener("end",I),e.addEventListener("speechstart",N),e.addEventListener("speechend",U),e.addEventListener("result",C),e.addEventListener("error",M),e.addEventListener("nomatch",z),e.start()}catch(e){M(e)}}()}}))};g.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},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};export default g;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9AdW50ZW1wcy91c2VyLW1lZGlhLXV0aWxzL2Rpc3QvaW5kZXguZXMuanMiLCIuLi9zcmMvU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmpzIiwiLi4vc3JjL01pY3JvcGhvbmVJY29uLmpzIiwiLi4vc3JjL1ZvY2FsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGUoZSxyLHQsbixhLG8saSl7dHJ5e3ZhciB1PWVbb10oaSksYz11LnZhbHVlfWNhdGNoKGUpe3JldHVybiB2b2lkIHQoZSl9dS5kb25lP3IoYyk6UHJvbWlzZS5yZXNvbHZlKGMpLnRoZW4obixhKX1mdW5jdGlvbiByKHIpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihhLG8pe3ZhciBpPXIuYXBwbHkodCxuKTtmdW5jdGlvbiB1KHIpe2UoaSxhLG8sdSxjLFwibmV4dFwiLHIpfWZ1bmN0aW9uIGMocil7ZShpLGEsbyx1LGMsXCJ0aHJvd1wiLHIpfXUodm9pZCAwKX0pKX19ZnVuY3Rpb24gdChlLHIpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxyKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgU3ltYm9sfHwhKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpKXJldHVybjt2YXIgdD1bXSxuPSEwLGE9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgaSx1PWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0oaT11Lm5leHQoKSkuZG9uZSkmJih0LnB1c2goaS52YWx1ZSksIXJ8fHQubGVuZ3RoIT09cik7bj0hMCk7fWNhdGNoKGUpe2E9ITAsbz1lfWZpbmFsbHl7dHJ5e258fG51bGw9PXUucmV0dXJufHx1LnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyBvfX1yZXR1cm4gdH0oZSxyKXx8ZnVuY3Rpb24oZSxyKXtpZighZSlyZXR1cm47aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG4oZSxyKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7XCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSk7aWYoXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKGUpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbihlLHIpfShlLHIpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gbihlLHIpeyhudWxsPT1yfHxyPmUubGVuZ3RoKSYmKHI9ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLG49bmV3IEFycmF5KHIpO3Q8cjt0Kyspblt0XT1lW3RdO3JldHVybiBufXZhciBhPWZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZShuLGEpe3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsbmV3IFByb21pc2UoZnVuY3Rpb24oKXt2YXIgZT1yKHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKChmdW5jdGlvbiBlKHIsbyl7dmFyIGksdSxjLHMsZjtyZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKG5hdmlnYXRvci5wZXJtaXNzaW9ucyl7ZS5uZXh0PTQ7YnJlYWt9byhuZXcgRXJyb3IoXCJQRVJNSVNTSU9OU19OT1RfU1VQUE9SVEVEXCIpKSxlLm5leHQ9Mzc7YnJlYWs7Y2FzZSA0OnJldHVybiBlLnByZXY9NCxlLm5leHQ9NyxuYXZpZ2F0b3IucGVybWlzc2lvbnMucXVlcnkoe25hbWU6bn0pO2Nhc2UgNzppZihcImRlbmllZFwiIT09KGk9ZS5zZW50KS5zdGF0ZSl7ZS5uZXh0PTEyO2JyZWFrfW8obmV3IEVycm9yKFwiREVOSUVEX0JZX1VTRVJcIikpLGUubmV4dD0zMjticmVhaztjYXNlIDEyOmlmKG5hdmlnYXRvci5tZWRpYURldmljZXMpe2UubmV4dD0xNjticmVha31vKG5ldyBFcnJvcihcIk1FRElBX0RFVklDRVNfTk9UX1NVUFBPUlRFRFwiKSksZS5uZXh0PTMyO2JyZWFrO2Nhc2UgMTY6cmV0dXJuIGUubmV4dD0xOCxuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShhKTtjYXNlIDE4OmlmKGUudDA9ZS5zZW50LHU9W2UudDBdLFwicHJvbXB0XCIhPT1pLnN0YXRlKXtlLm5leHQ9MjY7YnJlYWt9cmV0dXJuIGUudDE9dSxlLm5leHQ9MjQsbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe2kuYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLChmdW5jdGlvbihyKXtcImRlbmllZFwiPT09ci50YXJnZXQuc3RhdGU/byhuZXcgRXJyb3IoXCJERU5JRURfQllfVVNFUlwiKSk6ZSgpfSkpfSkpO2Nhc2UgMjQ6ZS50Mj1lLnNlbnQsZS50MS5wdXNoLmNhbGwoZS50MSxlLnQyKTtjYXNlIDI2OnJldHVybiBlLm5leHQ9MjgsUHJvbWlzZS5hbGwodSk7Y2FzZSAyODpjPWUuc2VudCxzPXQoYywxKSxmPXNbMF0scihmKTtjYXNlIDMyOmUubmV4dD0zNzticmVhaztjYXNlIDM0OmUucHJldj0zNCxlLnQzPWUuY2F0Y2goNCksbyhlLnQzKTtjYXNlIDM3OmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlLG51bGwsW1s0LDM0XV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24ocix0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSk7Y2FzZSAxOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHIsdCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtleHBvcnR7YSBhcyBnZXRVc2VyTWVkaWFTdHJlYW19O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndVpYTXVhbk1pTENKemIzVnlZMlZ6SWpwYklpNHVMM055WXk5blpYUlZjMlZ5VFdWa2FXRlRkSEpsWVcwdWFuTWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvcVhHNGdLaUJTWlhSMWNtNXpJR0VnY0hKdmJXbHpaU0J5WlhOdmJIWmxaQ0IzYUdWdUlIUm9aU0J0WldScFlTQnBjeUJoZFhSb2IzSnBlbVZrSUdGdVpDQjBhR1VnYzNSeVpXRnRJR2x6SUhKbGRISnBaWFpsWkZ4dUlDb2dRSEJoY21GdElIQmxjbTFwYzNOcGIyNU9ZVzFsSUNBZ0lDQWdJQ0FnSUNBZ1RtRnRaU0J2WmlCMGFHVWdjR1Z5YldsemMybHZiaTRnUUhObFpTQm9kSFJ3Y3pvdkwzY3pZeTVuYVhSb2RXSXVhVzh2Y0dWeWJXbHpjMmx2Ym5NdkkyVnVkVzFrWldZdGNHVnliV2x6YzJsdmJtNWhiV1ZjYmlBcUlFQndZWEpoYlNCdFpXUnBZVk4wY21WaGJVTnZibk4wY21GcGJuUnpJQ0FnSUVOdmJuTjBjbUZwYm5SeklHOWlhbVZqZEM0Z1FITmxaU0JvZEhSd2N6b3ZMMlJsZG1Wc2IzQmxjaTV0YjNwcGJHeGhMbTl5Wnk5bGJpMVZVeTlrYjJOekwxZGxZaTlCVUVrdlRXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjMXh1SUNvZ1FISmxkSFZ5Ym5NZ2UxQnliMjFwYzJWOVhHNGdLaTljYm1WNGNHOXlkQ0JrWldaaGRXeDBJR0Z6ZVc1aklDaHdaWEp0YVhOemFXOXVUbUZ0WlN3Z2JXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjeWtnUFQ0Z2UxeHVYSFJ5WlhSMWNtNGdibVYzSUZCeWIyMXBjMlVvWVhONWJtTWdLSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dQVDRnZTF4dVhIUmNkR2xtSUNnaGJtRjJhV2RoZEc5eUxuQmxjbTFwYzNOcGIyNXpLU0I3WEc1Y2RGeDBYSFJ5WldwbFkzUW9ibVYzSUVWeWNtOXlLQ2RRUlZKTlNWTlRTVTlPVTE5T1QxUmZVMVZRVUU5U1ZFVkVKeWtwWEc1Y2RGeDBmU0JsYkhObElIdGNibHgwWEhSY2RIUnllU0I3WEc1Y2RGeDBYSFJjZEdOdmJuTjBJSEJsY20xcGMzTnBiMjVUZEdGMGRYTWdQU0JoZDJGcGRDQnVZWFpwWjJGMGIzSXVjR1Z5YldsemMybHZibk11Y1hWbGNua29leUJ1WVcxbE9pQndaWEp0YVhOemFXOXVUbUZ0WlNCOUtWeHVYSFJjZEZ4MFhIUnBaaUFvY0dWeWJXbHpjMmx2YmxOMFlYUjFjeTV6ZEdGMFpTQTlQVDBnSjJSbGJtbGxaQ2NwSUh0Y2JseDBYSFJjZEZ4MFhIUnlaV3BsWTNRb2JtVjNJRVZ5Y205eUtDZEVSVTVKUlVSZlFsbGZWVk5GVWljcEtWeHVYSFJjZEZ4MFhIUjlJR1ZzYzJVZ2FXWWdLQ0Z1WVhacFoyRjBiM0l1YldWa2FXRkVaWFpwWTJWektTQjdYRzVjZEZ4MFhIUmNkRngwY21WcVpXTjBLRzVsZHlCRmNuSnZjaWduVFVWRVNVRmZSRVZXU1VORlUxOU9UMVJmVTFWUVVFOVNWRVZFSnlrcFhHNWNkRngwWEhSY2RIMGdaV3h6WlNCN1hHNWNkRngwWEhSY2RGeDBZMjl1YzNRZ2NISnZiV2x6WlhNZ1BTQmJZWGRoYVhRZ2JtRjJhV2RoZEc5eUxtMWxaR2xoUkdWMmFXTmxjeTVuWlhSVmMyVnlUV1ZrYVdFb2JXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjeWxkWEc1Y2RGeDBYSFJjZEZ4MGFXWWdLSEJsY20xcGMzTnBiMjVUZEdGMGRYTXVjM1JoZEdVZ1BUMDlJQ2R3Y205dGNIUW5LU0I3WEc1Y2RGeDBYSFJjZEZ4MFhIUndjbTl0YVhObGN5NXdkWE5vS0Z4dVhIUmNkRngwWEhSY2RGeDBYSFJoZDJGcGRDQnVaWGNnVUhKdmJXbHpaU2dvY21WemIyeDJaU2tnUFQ0Z2UxeHVYSFJjZEZ4MFhIUmNkRngwWEhSY2RIQmxjbTFwYzNOcGIyNVRkR0YwZFhNdVlXUmtSWFpsYm5STWFYTjBaVzVsY2lnblkyaGhibWRsSnl3Z0tHVjJaVzUwS1NBOVBpQjdYRzVjZEZ4MFhIUmNkRngwWEhSY2RGeDBYSFJwWmlBb1pYWmxiblF1ZEdGeVoyVjBMbk4wWVhSbElEMDlQU0FuWkdWdWFXVmtKeWtnZTF4dVhIUmNkRngwWEhSY2RGeDBYSFJjZEZ4MFhIUnlaV3BsWTNRb2JtVjNJRVZ5Y205eUtDZEVSVTVKUlVSZlFsbGZWVk5GVWljcEtWeHVYSFJjZEZ4MFhIUmNkRngwWEhSY2RGeDBmU0JsYkhObElIdGNibHgwWEhSY2RGeDBYSFJjZEZ4MFhIUmNkRngwY21WemIyeDJaU2dwWEc1Y2RGeDBYSFJjZEZ4MFhIUmNkRngwWEhSOVhHNWNkRngwWEhSY2RGeDBYSFJjZEZ4MGZTbGNibHgwWEhSY2RGeDBYSFJjZEZ4MGZTbGNibHgwWEhSY2RGeDBYSFJjZENsY2JseDBYSFJjZEZ4MFhIUjlYRzVjZEZ4MFhIUmNkRngwWTI5dWMzUWdXM04wY21WaGJWMGdQU0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2h3Y205dGFYTmxjeWxjYmx4MFhIUmNkRngwWEhSeVpYTnZiSFpsS0hOMGNtVmhiU2xjYmx4MFhIUmNkRngwZlZ4dVhIUmNkRngwZlNCallYUmphQ0FvWlhKeWIzSXBJSHRjYmx4MFhIUmNkRngwY21WcVpXTjBLR1Z5Y205eUtWeHVYSFJjZEZ4MGZWeHVYSFJjZEgxY2JseDBmU2xjYm4xY2JpSmRMQ0p1WVcxbGN5STZXeUp3WlhKdGFYTnphVzl1VG1GdFpTSXNJbTFsWkdsaFUzUnlaV0Z0UTI5dWMzUnlZV2x1ZEhNaUxDSlFjbTl0YVhObElpd2ljbVZ6YjJ4MlpTSXNJbkpsYW1WamRDSXNJbTVoZG1sbllYUnZjaUlzSW5CbGNtMXBjM05wYjI1eklpd2lSWEp5YjNJaUxDSnhkV1Z5ZVNJc0ltNWhiV1VpTENKd1pYSnRhWE56YVc5dVUzUmhkSFZ6SWl3aWMzUmhkR1VpTENKdFpXUnBZVVJsZG1salpYTWlMQ0puWlhSVmMyVnlUV1ZrYVdFaUxDSndjbTl0YVhObGN5SXNJbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSWlMQ0psZG1WdWRDSXNJblJoY21kbGRDSXNJbkIxYzJnaUxDSmhiR3dpTENKemRISmxZVzBpWFN3aWJXRndjR2x1WjNNaU9pSnRkME5CVFVFc2EwUkJRV1VzVjBGQlQwRXNSVUZCWjBKRExEUkhRVU01UWl4SlFVRkpReXh2UkVGQlVTeFhRVUZQUXl4RlFVRlRReXh2UjBGRE4wSkRMRlZCUVZWRExEUkNRVU5rUml4RlFVRlBMRWxCUVVsSExFMUJRVTBzT0VWQlIyVkdMRlZCUVZWRExGbEJRVmxGTEUxQlFVMHNRMEZCUlVNc1MwRkJUVlFzWTBGRGNFTXNXVUZFZWtKVkxGVkJRMlZETEhWQ1FVTndRbEFzUlVGQlR5eEpRVUZKUnl4TlFVRk5MRGhEUVVOT1JpeFZRVUZWVHl3NFFrRkRja0pTTEVWQlFVOHNTVUZCU1Vjc1RVRkJUU3g1UlVGRlQwWXNWVUZCVlU4c1lVRkJZVU1zWVVGQllWb3NNRUpCUVhSRVlTeFRRVU41UWl4WFFVRXpRa29zUlVGQmFVSkRMRzFEUVVOd1FrY3NXVUZEVHl4SlFVRkpXaXhUUVVGUkxGTkJRVU5ETEVkQlEyeENUeXhGUVVGcFFrc3NhVUpCUVdsQ0xGVkJRVlVzVTBGQlEwTXNSMEZEYWtJc1YwRkJka0pCTEVWQlFVMURMRTlCUVU5T0xFMUJRMmhDVUN4RlFVRlBMRWxCUVVsSExFMUJRVTBzYlVKQlJXcENTaXh0UTBGT1MyVXNPRU5CV1dGb1FpeFJRVUZSYVVJc1NVRkJTVXdzTmtKQlFUVkNUU3hQUVVOUWFrSXNSVUZCVVdsQ0xEWkVRVWRVYUVJaWZRPT1cbiIsImltcG9ydCB7IGdldFVzZXJNZWRpYVN0cmVhbSB9IGZyb20gJ0B1bnRlbXBzL3VzZXItbWVkaWEtdXRpbHMnXG5cbmNsYXNzIFNwZWVjaFJlY29nbml0aW9uV3JhcHBlciB7XG5cdHN0YXRpYyBkZWZhdWx0T3B0aW9ucyA9IHtcblx0XHRsYW5nOiAnZnItRlInLFxuXHRcdGNvbnRpbnVvdXM6IGZhbHNlLFxuXHRcdGludGVyaW1SZXN1bHRzOiBmYWxzZSxcblx0XHRtYXhBbHRlcm5hdGl2ZXM6IDEsXG5cdH1cblxuXHRzdGF0aWMgZXZlbnRUeXBlcyA9IHtcblx0XHRBVURJT19FTkQ6ICdhdWRpb2VuZCcsXG5cdFx0QVVESU9fU1RBUlQ6ICdhdWRpb3N0YXJ0Jyxcblx0XHRFTkQ6ICdlbmQnLFxuXHRcdEVSUk9SOiAnZXJyb3InLFxuXHRcdE5PX01BVENIOiAnbm9tYXRjaCcsXG5cdFx0UkVTVUxUOiAncmVzdWx0Jyxcblx0XHRTT1VORF9FTkQ6ICdzb3VuZGVuZCcsXG5cdFx0U09VTkRfU1RBUlQ6ICdzb3VuZHN0YXJ0Jyxcblx0XHRTUEVFQ0hfRU5EOiAnc3BlZWNoZW5kJyxcblx0XHRTUEVFQ0hfU1RBUlQ6ICdzcGVlY2hzdGFydCcsXG5cdFx0U1RBUlQ6ICdzdGFydCcsXG5cdH1cblxuXHRzdGF0aWMgZ2V0IGlzU3VwcG9ydGVkKCkge1xuXHRcdHJldHVybiAoXG5cdFx0XHQhIXdpbmRvdy5TcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0ISF3aW5kb3cud2Via2l0U3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdCEhd2luZG93Lm1velNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHQhIXdpbmRvdy5tc1NwZWVjaFJlY29nbml0aW9uXG5cdFx0KVxuXHR9XG5cblx0c3RhdGljIHNldCBpc1N1cHBvcnRlZChfKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHNldCBpc1N1cHBvcnRlZCBkaXJlY3RseS4nKVxuXHR9XG5cblx0X2luc3RhbmNlID0gbnVsbFxuXHRfbGlzdGVuZXJzID0gbnVsbFxuXG5cdGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcblx0XHRjb25zdCBTcGVlY2hSZWNvZ25pdGlvbiA9XG5cdFx0XHR3aW5kb3cuU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHdpbmRvdy53ZWJraXRTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0d2luZG93Lm1velNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHR3aW5kb3cubXNTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0e31cblx0XHR0aGlzLl9pbnN0YW5jZSA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpXG5cdFx0dGhpcy5fbGlzdGVuZXJzID0ge31cblxuXHRcdE9iamVjdC5lbnRyaWVzKHsgLi4uU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmRlZmF1bHRPcHRpb25zLCAuLi4ob3B0aW9ucyB8fCB7fSkgfSkuZm9yRWFjaChcblx0XHRcdChba2V5LCB2YWx1ZV0pID0+ICh0aGlzLl9pbnN0YW5jZVtrZXldID0gdmFsdWUpXG5cdFx0KVxuXHR9XG5cblx0Z2V0IGluc3RhbmNlKCkge1xuXHRcdHJldHVybiB0aGlzLl9pbnN0YW5jZVxuXHR9XG5cblx0c2V0IGluc3RhbmNlKF8pIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3Qgc2V0IGluc3RhbmNlIGRpcmVjdGx5LicpXG5cdH1cblxuXHRhc3luYyBzdGFydCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0VXNlck1lZGlhU3RyZWFtKCdtaWNyb3Bob25lJywgeyBhdWRpbzogdHJ1ZSB9KVxuXHRcdFx0XHRpZiAoIXN0cmVhbSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJldHJpZXZlIHRoZSBzdHJlYW0gZnJvbSBtZWRpYSBkZXZpY2UnKVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuX2luc3RhbmNlLnN0YXJ0KClcblx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRcdGNvbnN0IGVycm9ySGFuZGxlciA9IHRoaXMuX2xpc3RlbmVycy5lcnJvclxuXHRcdFx0XHRpZiAoISFlcnJvckhhbmRsZXIpIHtcblx0XHRcdFx0XHRlcnJvckhhbmRsZXIoZXJyb3IpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0c3RvcCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dGhpcy5faW5zdGFuY2Uuc3RvcCgpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdGFib3J0KCkge1xuXHRcdGlmICghIXRoaXMuX2luc3RhbmNlKSB7XG5cdFx0XHR0aGlzLl9pbnN0YW5jZS5hYm9ydCgpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdGFkZEV2ZW50TGlzdGVuZXIodHlwZSwgY2FsbGJhY2spIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSAmJiB0aGlzLl9pbmNsdWRlc0V2ZW50VHlwZSh0eXBlKSkge1xuXHRcdFx0aWYgKCEhdGhpcy5fbGlzdGVuZXJzW3R5cGVdKSB7XG5cdFx0XHRcdHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlKVxuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBoYW5kbGVyID0gKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGxldCBhZGRpdGlvbmFsQXJncyA9IFtdXG5cdFx0XHRcdGlmICh0eXBlID09PSBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuZXZlbnRUeXBlcy5SRVNVTFQpIHtcblx0XHRcdFx0XHRpZiAoISFldmVudC5yZXN1bHRzICYmIGV2ZW50LnJlc3VsdHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0YWRkaXRpb25hbEFyZ3MucHVzaChldmVudC5yZXN1bHRzWzBdWzBdLnRyYW5zY3JpcHQpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0ISFjYWxsYmFjayAmJiBjYWxsYmFjay5hcHBseSh0aGlzLCBbLi4uYWRkaXRpb25hbEFyZ3MsIGV2ZW50XSlcblx0XHRcdH1cblx0XHRcdHRoaXMuX2luc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgKGUpID0+IGhhbmRsZXIoZSkpXG5cblx0XHRcdHRoaXMuX2xpc3RlbmVyc1t0eXBlXSA9IGhhbmRsZXJcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0cmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlKSB7XG5cdFx0Y29uc3QgaGFuZGxlciA9IHRoaXMuX2xpc3RlbmVyc1t0eXBlXVxuXHRcdHRoaXMuX2luc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgaGFuZGxlcilcblxuXHRcdGRlbGV0ZSB0aGlzLl9saXN0ZW5lcnNbdHlwZV1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRjbGVhbnVwKCkge1xuXHRcdHRoaXMuc3RvcCgpXG5cblx0XHRPYmplY3Qua2V5cyh0aGlzLl9saXN0ZW5lcnMpLmZvckVhY2goKGtleSkgPT4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGtleSkpXG5cdFx0dGhpcy5faW5zdGFuY2UgPSBudWxsXG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0X2luY2x1ZGVzRXZlbnRUeXBlID0gKGV2ZW50VHlwZSkgPT5cblx0XHRPYmplY3QudmFsdWVzKFNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5ldmVudFR5cGVzKS5maW5kKCh0eXBlKSA9PiB0eXBlID09PSBldmVudFR5cGUpXG59XG5cbmV4cG9ydCBkZWZhdWx0IFNwZWVjaFJlY29nbml0aW9uV3JhcHBlclxuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5jb25zdCBNaWNyb3Bob25lSWNvbiA9ICh7IGljb25Db2xvciA9ICdibGFjaycsIGFjdGl2ZUNvbG9yID0gJ3JlZCcsIGlzQWN0aXZlID0gZmFsc2UgfSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG5cdFx0XHQ8Zz5cblx0XHRcdFx0PHBhdGhcblx0XHRcdFx0XHRmaWxsPXtpY29uQ29sb3J9XG5cdFx0XHRcdFx0ZD1cIk0xMiAxNGMxLjY2IDAgMi45OS0xLjM0IDIuOTktM0wxNSA1YzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDV2NmMwIDEuNjYgMS4zNCAzIDMgM3ptNS4zLTNjMCAzLTIuNTQgNS4xLTUuMyA1LjFTNi43IDE0IDYuNyAxMUg1YzAgMy40MSAyLjcyIDYuMjMgNiA2LjcyVjIxaDJ2LTMuMjhjMy4yOC0uNDggNi0zLjMgNi02LjcyaC0xLjd6XCJcblx0XHRcdFx0Lz5cblx0XHRcdFx0e2lzQWN0aXZlICYmIDxjaXJjbGUgZmlsbD17YWN0aXZlQ29sb3J9IGN4PVwiMTZcIiBjeT1cIjRcIiByPVwiNFwiIC8+fVxuXHRcdFx0PC9nPlxuXHRcdDwvc3ZnPlxuXHQpXG59XG5cbmV4cG9ydCBkZWZhdWx0IE1pY3JvcGhvbmVJY29uXG4iLCJpbXBvcnQgUmVhY3QsIHsgY2xvbmVFbGVtZW50LCBpc1ZhbGlkRWxlbWVudCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG5cbmltcG9ydCBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIgZnJvbSAnLi9TcGVlY2hSZWNvZ25pdGlvbldyYXBwZXInXG5cbmltcG9ydCBNaWNyb3Bob25lSWNvbiBmcm9tICcuL01pY3JvcGhvbmVJY29uJ1xuXG5jb25zdCBWb2NhbCA9ICh7XG5cdGNoaWxkcmVuLFxuXHR0aW1lb3V0LFxuXHRhcmlhTGFiZWwsXG5cdHRhYkluZGV4LFxuXHRzdHlsZSxcblx0Y2xhc3NOYW1lLFxuXHRvblN0YXJ0LFxuXHRvbkVuZCxcblx0b25TcGVlY2hTdGFydCxcblx0b25TcGVlY2hFbmQsXG5cdG9uUmVzdWx0LFxuXHRvbkVycm9yLFxuXHRvbk5vTWF0Y2gsXG5cdF9fcmVjb2duaXRpb25JbnN0YW5jZSxcbn0pID0+IHtcblx0Y29uc3QgdGltZW91dFJlZiA9IHVzZVJlZihudWxsKVxuXHRjb25zdCByZWNvZ25pdGlvblJlZiA9IHVzZVJlZihudWxsKVxuXG5cdGNvbnN0IFtpc0xpc3RlbmluZywgc2V0SXNMaXN0ZW5pbmddID0gdXNlU3RhdGUoZmFsc2UpXG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmlzU3VwcG9ydGVkKSB7XG5cdFx0XHRyZWNvZ25pdGlvblJlZi5jdXJyZW50ID0gX19yZWNvZ25pdGlvbkluc3RhbmNlIHx8IG5ldyBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIoKVxuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0cmVjb2duaXRpb25SZWYuY3VycmVudC5hYm9ydCgpXG5cdFx0XHRcdHJlY29nbml0aW9uUmVmLmN1cnJlbnQuY2xlYW51cCgpXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpXG5cdFx0XHR9XG5cdFx0fVxuXHR9LCBbX19yZWNvZ25pdGlvbkluc3RhbmNlXSlcblxuXHRjb25zdCBzdGFydFRpbWVyID0gKCkgPT4ge1xuXHRcdHRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoX29uRW5kLCB0aW1lb3V0KVxuXHR9XG5cblx0Y29uc3Qgc3RvcFRpbWVyID0gKCkgPT4ge1xuXHRcdGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpXG5cdFx0dGltZW91dFJlZi5jdXJyZW50ID0gbnVsbFxuXHR9XG5cblx0Y29uc3Qgc3RhcnRSZWNvZ25pdGlvbiA9ICgpID0+IHtcblx0XHR0cnkge1xuXHRcdFx0c2V0SXNMaXN0ZW5pbmcodHJ1ZSlcblxuXHRcdFx0Y29uc3QgeyBjdXJyZW50OiByIH0gPSByZWNvZ25pdGlvblJlZlxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzdGFydCcsIF9vblN0YXJ0KVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdlbmQnLCBfb25FbmQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3NwZWVjaHN0YXJ0JywgX29uU3BlZWNoU3RhcnQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3NwZWVjaGVuZCcsIF9vblNwZWVjaEVuZClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcigncmVzdWx0JywgX29uUmVzdWx0KVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIF9vbkVycm9yKVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdub21hdGNoJywgX29uTm9NYXRjaClcblx0XHRcdHIuc3RhcnQoKVxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRfb25FcnJvcihlcnJvcilcblx0XHR9XG5cdH1cblxuXHRjb25zdCBzdG9wUmVjb2duaXRpb24gPSAoKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdHNldElzTGlzdGVuaW5nKGZhbHNlKVxuXG5cdFx0XHRjb25zdCB7IGN1cnJlbnQ6IHIgfSA9IHJlY29nbml0aW9uUmVmXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N0YXJ0JywgX29uU3RhcnQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2VuZCcsIF9vbkVuZClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3BlZWNoc3RhcnQnLCBfb25TcGVlY2hTdGFydClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3BlZWNoZW5kJywgX29uU3BlZWNoRW5kKVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXN1bHQnLCBfb25SZXN1bHQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgX29uRXJyb3IpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ25vbWF0Y2gnLCBfb25Ob01hdGNoKVxuXHRcdFx0ci5zdG9wKClcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0X29uRXJyb3IoZXJyb3IpXG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgc3RhcnQgPSAoKSA9PiB7XG5cdFx0c3RhcnRUaW1lcigpXG5cdH1cblxuXHRjb25zdCBlbmQgPSAoKSA9PiB7XG5cdFx0c3RvcFRpbWVyKClcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXHR9XG5cblx0Y29uc3QgX29uQ2xpY2sgPSAoKSA9PiB7XG5cdFx0c3RhcnRSZWNvZ25pdGlvbigpXG5cdH1cblxuXHRjb25zdCBfb25TdGFydCA9IChlKSA9PiB7XG5cdFx0c3RhcnQoKVxuXG5cdFx0ISFvblN0YXJ0ICYmIG9uU3RhcnQoZSlcblx0fVxuXG5cdGNvbnN0IF9vbkVuZCA9IChlKSA9PiB7XG5cdFx0ZW5kKClcblxuXHRcdCEhb25FbmQgJiYgb25FbmQoZSlcblx0fVxuXG5cdGNvbnN0IF9vblNwZWVjaFN0YXJ0ID0gKGUpID0+IHtcblx0XHRzdG9wVGltZXIoKVxuXG5cdFx0ISFvblNwZWVjaFN0YXJ0ICYmIG9uU3BlZWNoU3RhcnQoZSlcblx0fVxuXG5cdGNvbnN0IF9vblNwZWVjaEVuZCA9IChlKSA9PiB7XG5cdFx0c3RhcnRUaW1lcigpXG5cblx0XHQhIW9uU3BlZWNoRW5kICYmIG9uU3BlZWNoRW5kKGUpXG5cdH1cblxuXHRjb25zdCBfb25SZXN1bHQgPSAocmVzdWx0LCBldmVudCkgPT4ge1xuXHRcdHN0b3BSZWNvZ25pdGlvbigpXG5cblx0XHQhIW9uUmVzdWx0ICYmIG9uUmVzdWx0KHJlc3VsdCwgZXZlbnQpXG5cdH1cblxuXHRjb25zdCBfb25FcnJvciA9IChlcnJvcikgPT4ge1xuXHRcdHN0b3BSZWNvZ25pdGlvbigpXG5cblx0XHQhIW9uRXJyb3IgJiYgb25FcnJvcihlcnJvcilcblx0fVxuXG5cdGNvbnN0IF9vbk5vTWF0Y2ggPSAoZSkgPT4ge1xuXHRcdCEhb25Ob01hdGNoICYmIG9uTm9NYXRjaChlKVxuXHR9XG5cblx0Y29uc3QgX3JlbmRlckRlZmF1bHQgPSAoKSA9PiAoXG5cdFx0PGRpdlxuXHRcdFx0ZGF0YS10ZXN0aWQ9XCJfX3ZvY2FsLXJvb3RfX1wiXG5cdFx0XHRyb2xlPVwiYnV0dG9uXCJcblx0XHRcdGFyaWEtbGFiZWw9e2FyaWFMYWJlbH1cblx0XHRcdHRhYkluZGV4PXt0YWJJbmRleH1cblx0XHRcdHN0eWxlPXtjbGFzc05hbWUgPyBudWxsIDogeyB3aWR0aDogMjQsIGhlaWdodDogMjQsIGN1cnNvcjogIWlzTGlzdGVuaW5nID8gJ3BvaW50ZXInIDogbnVsbCwgLi4uc3R5bGUgfX1cblx0XHRcdGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuXHRcdD5cblx0XHRcdDxNaWNyb3Bob25lSWNvbiBpc0FjdGl2ZT17aXNMaXN0ZW5pbmd9IGljb25Db2xvcj1cIiNhYWFcIiAvPlxuXHRcdDwvZGl2PlxuXHQpXG5cblx0cmV0dXJuIChcblx0XHRTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuaXNTdXBwb3J0ZWQgJiZcblx0XHRjbG9uZUVsZW1lbnQoaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pID8gY2hpbGRyZW4gOiBfcmVuZGVyRGVmYXVsdCgpLCB7XG5cdFx0XHQuLi4oIWlzTGlzdGVuaW5nICYmIHsgb25DbGljazogX29uQ2xpY2sgfSksXG5cdFx0fSlcblx0KVxufVxuXG5Wb2NhbC5wcm9wVHlwZXMgPSB7XG5cdC8qKiBEZWZpbmVzIHRoZSB0aW1lIGluIG1zIHRvIHdhaXQgYmVmb3JlIGRpc2NhcmRpbmcgdGhlIHJlY29nbml0aW9uICovXG5cdHRpbWVvdXQ6IFByb3BUeXBlcy5udW1iZXIsXG5cdC8qKiBEZWZpbmVzIHRoZSBhMTF5IGxhYmVsIGZvciB0aGUgZGVmYXVsdCBidXR0b24gKi9cblx0YXJpYUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuXHQvKiogRGVmaW5lcyB0aGUgYTExeSB0YWIgaW5kZXggZm9yIHRoZSBkZWZhdWx0IGJ1dHRvbiAqL1xuXHR0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcblx0LyoqIERlZmluZXMgdGhlIHN0eWxlcyBvZiB0aGUgZGVmYXVsdCBlbGVtZW50IGlmIGNsYXNzTmFtZSBpcyBub3Qgc3BlY2lmaWVkICovXG5cdHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuXHQvKiogRGVmaW5lcyB0aGUgY2xhc3Mgb2YgdGhlIGRlZmF1bHQgZWxlbWVudCAqL1xuXHRjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSByZWNvZ25pdGlvbiBzdGFydHMgKi9cblx0b25TdGFydDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSByZWNvZ25pdGlvbiBlbmRzICovXG5cdG9uRW5kOiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHNwZWVjaCBzdGFydHMgKi9cblx0b25TcGVlY2hTdGFydDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBzcGVlY2ggZW5kcyAqL1xuXHRvblNwZWVjaEVuZDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIGEgcmVzdWx0IGlzIHJlY29nbml6ZWQgKi9cblx0b25SZXN1bHQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMgKi9cblx0b25FcnJvcjogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIG5vIHJlc3VsdCBjYW4gYmUgcmVjb2duaXplZCAqL1xuXHRvbk5vTWF0Y2g6IFByb3BUeXBlcy5mdW5jLFxufVxuXG5Wb2NhbC5kZWZhdWx0UHJvcHMgPSB7XG5cdHRpbWVvdXQ6IDMwMDAsXG5cdGFyaWFMYWJlbDogJ3NwZWVjaCcsXG5cdHRhYkluZGV4OiAtMSxcblx0c3R5bGU6IG51bGwsXG5cdGNsYXNzTmFtZTogbnVsbCxcblx0b25TdGFydDogbnVsbCxcblx0b25FbmQ6IG51bGwsXG5cdG9uU3BlZWNoU3RhcnQ6IG51bGwsXG5cdG9uU3BlZWNoRW5kOiBudWxsLFxuXHRvblJlc3VsdDogbnVsbCxcblx0b25FcnJvcjogbnVsbCxcblx0b25Ob01hdGNoOiBudWxsLFxufVxuXG5leHBvcnQgZGVmYXVsdCBWb2NhbFxuIl0sIm5hbWVzIjpbImUiLCJyIiwidCIsIm4iLCJhIiwibyIsImkiLCJ1IiwiYyIsInZhbHVlIiwiZG9uZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsInRoaXMiLCJhcmd1bWVudHMiLCJhcHBseSIsIkFycmF5IiwiaXNBcnJheSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiT2JqZWN0IiwibmV4dCIsInB1c2giLCJsZW5ndGgiLCJyZXR1cm4iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiVHlwZUVycm9yIiwicmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIndyYXAiLCJwcmV2IiwiYWJydXB0IiwicyIsImYiLCJuYXZpZ2F0b3IiLCJwZXJtaXNzaW9ucyIsIkVycm9yIiwicXVlcnkiLCJzZW50Iiwic3RhdGUiLCJtZWRpYURldmljZXMiLCJnZXRVc2VyTWVkaWEiLCJ0MCIsInQxIiwiYWRkRXZlbnRMaXN0ZW5lciIsInRhcmdldCIsInQyIiwiYWxsIiwidDMiLCJjYXRjaCIsInN0b3AiLCJTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIiLCJvcHRpb25zIiwiZXZlbnRUeXBlIiwidmFsdWVzIiwiZXZlbnRUeXBlcyIsImZpbmQiLCJ0eXBlIiwiU3BlZWNoUmVjb2duaXRpb24iLCJ3aW5kb3ciLCJ3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbiIsIm1velNwZWVjaFJlY29nbml0aW9uIiwibXNTcGVlY2hSZWNvZ25pdGlvbiIsIl9pbnN0YW5jZSIsIl9saXN0ZW5lcnMiLCJlbnRyaWVzIiwiZGVmYXVsdE9wdGlvbnMiLCJmb3JFYWNoIiwia2V5IiwiX3RoaXMiLCJfIiwiZ2V0VXNlck1lZGlhU3RyZWFtIiwiYXVkaW8iLCJzdGFydCIsImVycm9ySGFuZGxlciIsImVycm9yIiwiYWJvcnQiLCJjYWxsYmFjayIsIl9pbmNsdWRlc0V2ZW50VHlwZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVyIiwiZXZlbnQiLCJhZGRpdGlvbmFsQXJncyIsIlJFU1VMVCIsInJlc3VsdHMiLCJ0cmFuc2NyaXB0IiwiX3RoaXMyIiwia2V5cyIsIl90aGlzMyIsImxhbmciLCJjb250aW51b3VzIiwiaW50ZXJpbVJlc3VsdHMiLCJtYXhBbHRlcm5hdGl2ZXMiLCJBVURJT19FTkQiLCJBVURJT19TVEFSVCIsIkVORCIsIkVSUk9SIiwiTk9fTUFUQ0giLCJTT1VORF9FTkQiLCJTT1VORF9TVEFSVCIsIlNQRUVDSF9FTkQiLCJTUEVFQ0hfU1RBUlQiLCJTVEFSVCIsIk1pY3JvcGhvbmVJY29uIiwiaWNvbkNvbG9yIiwiYWN0aXZlQ29sb3IiLCJpc0FjdGl2ZSIsIlJlYWN0IiwieG1sbnMiLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJmaWxsIiwiZCIsImN4IiwiY3kiLCJWb2NhbCIsImNoaWxkcmVuIiwidGltZW91dCIsImFyaWFMYWJlbCIsInRhYkluZGV4Iiwic3R5bGUiLCJjbGFzc05hbWUiLCJvblN0YXJ0Iiwib25FbmQiLCJvblNwZWVjaFN0YXJ0Iiwib25TcGVlY2hFbmQiLCJvblJlc3VsdCIsIm9uRXJyb3IiLCJvbk5vTWF0Y2giLCJfX3JlY29nbml0aW9uSW5zdGFuY2UiLCJ0aW1lb3V0UmVmIiwidXNlUmVmIiwicmVjb2duaXRpb25SZWYiLCJ1c2VTdGF0ZSIsImlzTGlzdGVuaW5nIiwic2V0SXNMaXN0ZW5pbmciLCJ1c2VFZmZlY3QiLCJpc1N1cHBvcnRlZCIsImN1cnJlbnQiLCJjbGVhbnVwIiwiY2xlYXJUaW1lb3V0Iiwic3RhcnRUaW1lciIsInNldFRpbWVvdXQiLCJfb25FbmQiLCJzdG9wVGltZXIiLCJzdG9wUmVjb2duaXRpb24iLCJfb25TdGFydCIsIl9vblNwZWVjaFN0YXJ0IiwiX29uU3BlZWNoRW5kIiwiX29uUmVzdWx0IiwiX29uRXJyb3IiLCJfb25Ob01hdGNoIiwicmVzdWx0IiwiY2xvbmVFbGVtZW50IiwiaXNWYWxpZEVsZW1lbnQiLCJyb2xlIiwiY3Vyc29yIiwib25DbGljayIsInN0YXJ0UmVjb2duaXRpb24iLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJudW1iZXIiLCJzdHJpbmciLCJvYmplY3QiLCJmdW5jIiwiZGVmYXVsdFByb3BzIl0sIm1hcHBpbmdzIjoicWxFQUFBLFNBQVNBLEVBQUVBLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEdBQUcsSUFBSSxJQUFJQyxFQUFFUCxFQUFFSyxHQUFHQyxHQUFHRSxFQUFFRCxFQUFFRSxNQUFNLE1BQU1ULEdBQUcsWUFBWUUsRUFBRUYsR0FBR08sRUFBRUcsS0FBS1QsRUFBRU8sR0FBR0csUUFBUUMsUUFBUUosR0FBR0ssS0FBS1YsRUFBRUMsR0FBRyxTQUFTSCxFQUFFQSxHQUFHLE9BQU8sV0FBVyxJQUFJQyxFQUFFWSxLQUFLWCxFQUFFWSxVQUFVLE9BQU8sSUFBSUosa0JBQWtCUCxFQUFFQyxHQUFHLElBQUlDLEVBQUVMLEVBQUVlLE1BQU1kLEVBQUVDLEdBQUcsU0FBU0ksRUFBRU4sR0FBR0QsRUFBRU0sRUFBRUYsRUFBRUMsRUFBRUUsRUFBRUMsRUFBRSxPQUFPUCxHQUFHLFNBQVNPLEVBQUVQLEdBQUdELEVBQUVNLEVBQUVGLEVBQUVDLEVBQUVFLEVBQUVDLEVBQUUsUUFBUVAsR0FBR00sT0FBRSxPQUFZLFNBQVNMLEVBQUVGLEVBQUVDLEdBQUcsT0FBTyxTQUFTRCxHQUFHLEdBQUdpQixNQUFNQyxRQUFRbEIsR0FBRyxPQUFPQSxFQUF2QyxDQUEwQ0EsSUFBSSxTQUFTQSxFQUFFQyxHQUFHLEdBQUcsb0JBQW9Ca0Is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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),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).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 s(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?s(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(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 v(e,t,n,r,i,o,a){try{var c=e[o](a),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).then(r,i)}function h(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){v(o,r,i,a,c,"next",e)}function c(e){v(o,r,i,a,c,"throw",e)}a(void 0)}))}}function p(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=h(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=h(regeneratorRuntime.mark((function e(r,i){var o,a,c,s,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.permissions){e.next=4;break}i(new Error("PERMISSIONS_NOT_SUPPORTED")),e.next=37;break;case 4:return e.prev=4,e.next=7,navigator.permissions.query({name:t});case 7:if("denied"!==(o=e.sent).state){e.next=12;break}i(new Error("DENIED_BY_USER")),e.next=32;break;case 12:if(navigator.mediaDevices){e.next=16;break}i(new Error("MEDIA_DEVICES_NOT_SUPPORTED")),e.next=32;break;case 16:return e.next=18,navigator.mediaDevices.getUserMedia(n);case 18:if(e.t0=e.sent,a=[e.t0],"prompt"!==o.state){e.next=26;break}return e.t1=a,e.next=24,new Promise((function(e){o.addEventListener("change",(function(t){"denied"===t.target.state?i(new Error("DENIED_BY_USER")):e()}))}));case 24:e.t2=e.sent,e.t1.push.call(e.t1,e.t2);case 26:return e.next=28,Promise.all(a);case 28:c=e.sent,s=p(c,1),u=s[0],r(u);case 32:e.next=37;break;case 34:e.prev=34,e.t3=e.catch(4),i(e.t3);case 37:case"end":return e.stop()}}),e,null,[[4,34]])})));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),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(u(u({},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,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(r,o){var a=t.apply(e,n);function c(e){i(a,r,o,c,s,"next",e)}function s(e){i(a,r,o,c,s,"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(y,"defaultOptions",{lang:"fr-FR",continuous:!1,interimResults:!1,maxAlternatives:1}),c(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 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"})))},b=function(e){var r=e.children,i=e.timeout,o=e.style,a=e.className,c=e.onStart,s=e.onEnd,f=e.onSpeechStart,v=e.onSpeechEnd,h=e.onResult,p=e.onError,d=e.onNoMatch,m=e.__recognitionInstance,b=t.useRef(null),w=t.useRef(null),S=l(t.useState(!1),2),g=S[0],_=S[1];t.useEffect((function(){return w.current=m||new y,function(){w.current.abort(),w.current.cleanup(),clearTimeout(b.current)}}),[m]);var O=function(){b.current=setTimeout(T,i)},R=function(){clearTimeout(b.current),b.current=null},k=function(){try{_(!1);var e=w.current;e.removeEventListener("start",x),e.removeEventListener("end",T),e.removeEventListener("speechstart",j),e.removeEventListener("speechend",P),e.removeEventListener("result",L),e.removeEventListener("error",A),e.removeEventListener("nomatch",D),e.stop()}catch(e){A(e)}},x=function(e){O(),c&&c(e)},T=function(e){R(),k(),s&&s(e)},j=function(e){R(),f&&f(e)},P=function(e){O(),v&&v(e)},L=function(e,t){k(),h&&h(e,t)},A=function(e){k(),p&&p(e)},D=function(e){d&&d(e)};return y.isSupported&&t.cloneElement(t.isValidElement(r)?r:n.createElement("div",{"data-testid":"__speech-root__",style:a?null:u({width:24,height:24,cursor:g?null:"pointer"},o),className:a},n.createElement(E,{isActive:g,iconColor:"#aaa"})),u({},!g&&{onClick:function(){!function(){try{_(!0);var e=w.current;e.addEventListener("start",x),e.addEventListener("end",T),e.addEventListener("speechstart",j),e.addEventListener("speechend",P),e.addEventListener("result",L),e.addEventListener("error",A),e.addEventListener("nomatch",D),e.start()}catch(e){A(e)}}()}}))};b.propTypes={timeout: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},b.defaultProps={timeout:3e3,style:null,className:null,onStart:null,onEnd:null,onSpeechStart:null,onSpeechEnd:null,onResult:null,onError:null,onNoMatch:null},module.exports=b;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9AdW50ZW1wcy91c2VyLW1lZGlhLXV0aWxzL2Rpc3QvaW5kZXguZXMuanMiLCIuLi9zcmMvU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmpzIiwiLi4vc3JjL01pY3JvcGhvbmVJY29uLmpzIiwiLi4vc3JjL1ZvY2FsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGUoZSxyLHQsbixhLG8saSl7dHJ5e3ZhciB1PWVbb10oaSksYz11LnZhbHVlfWNhdGNoKGUpe3JldHVybiB2b2lkIHQoZSl9dS5kb25lP3IoYyk6UHJvbWlzZS5yZXNvbHZlKGMpLnRoZW4obixhKX1mdW5jdGlvbiByKHIpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihhLG8pe3ZhciBpPXIuYXBwbHkodCxuKTtmdW5jdGlvbiB1KHIpe2UoaSxhLG8sdSxjLFwibmV4dFwiLHIpfWZ1bmN0aW9uIGMocil7ZShpLGEsbyx1LGMsXCJ0aHJvd1wiLHIpfXUodm9pZCAwKX0pKX19ZnVuY3Rpb24gdChlLHIpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxyKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgU3ltYm9sfHwhKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpKXJldHVybjt2YXIgdD1bXSxuPSEwLGE9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgaSx1PWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0oaT11Lm5leHQoKSkuZG9uZSkmJih0LnB1c2goaS52YWx1ZSksIXJ8fHQubGVuZ3RoIT09cik7bj0hMCk7fWNhdGNoKGUpe2E9ITAsbz1lfWZpbmFsbHl7dHJ5e258fG51bGw9PXUucmV0dXJufHx1LnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyBvfX1yZXR1cm4gdH0oZSxyKXx8ZnVuY3Rpb24oZSxyKXtpZighZSlyZXR1cm47aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG4oZSxyKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7XCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSk7aWYoXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKGUpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbihlLHIpfShlLHIpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gbihlLHIpeyhudWxsPT1yfHxyPmUubGVuZ3RoKSYmKHI9ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLG49bmV3IEFycmF5KHIpO3Q8cjt0Kyspblt0XT1lW3RdO3JldHVybiBufXZhciBhPWZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZShuLGEpe3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsbmV3IFByb21pc2UoZnVuY3Rpb24oKXt2YXIgZT1yKHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKChmdW5jdGlvbiBlKHIsbyl7dmFyIGksdSxjLHMsZjtyZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKG5hdmlnYXRvci5wZXJtaXNzaW9ucyl7ZS5uZXh0PTQ7YnJlYWt9byhuZXcgRXJyb3IoXCJQRVJNSVNTSU9OU19OT1RfU1VQUE9SVEVEXCIpKSxlLm5leHQ9Mzc7YnJlYWs7Y2FzZSA0OnJldHVybiBlLnByZXY9NCxlLm5leHQ9NyxuYXZpZ2F0b3IucGVybWlzc2lvbnMucXVlcnkoe25hbWU6bn0pO2Nhc2UgNzppZihcImRlbmllZFwiIT09KGk9ZS5zZW50KS5zdGF0ZSl7ZS5uZXh0PTEyO2JyZWFrfW8obmV3IEVycm9yKFwiREVOSUVEX0JZX1VTRVJcIikpLGUubmV4dD0zMjticmVhaztjYXNlIDEyOmlmKG5hdmlnYXRvci5tZWRpYURldmljZXMpe2UubmV4dD0xNjticmVha31vKG5ldyBFcnJvcihcIk1FRElBX0RFVklDRVNfTk9UX1NVUFBPUlRFRFwiKSksZS5uZXh0PTMyO2JyZWFrO2Nhc2UgMTY6cmV0dXJuIGUubmV4dD0xOCxuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShhKTtjYXNlIDE4OmlmKGUudDA9ZS5zZW50LHU9W2UudDBdLFwicHJvbXB0XCIhPT1pLnN0YXRlKXtlLm5leHQ9MjY7YnJlYWt9cmV0dXJuIGUudDE9dSxlLm5leHQ9MjQsbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe2kuYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLChmdW5jdGlvbihyKXtcImRlbmllZFwiPT09ci50YXJnZXQuc3RhdGU/byhuZXcgRXJyb3IoXCJERU5JRURfQllfVVNFUlwiKSk6ZSgpfSkpfSkpO2Nhc2UgMjQ6ZS50Mj1lLnNlbnQsZS50MS5wdXNoLmNhbGwoZS50MSxlLnQyKTtjYXNlIDI2OnJldHVybiBlLm5leHQ9MjgsUHJvbWlzZS5hbGwodSk7Y2FzZSAyODpjPWUuc2VudCxzPXQoYywxKSxmPXNbMF0scihmKTtjYXNlIDMyOmUubmV4dD0zNzticmVhaztjYXNlIDM0OmUucHJldj0zNCxlLnQzPWUuY2F0Y2goNCksbyhlLnQzKTtjYXNlIDM3OmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlLG51bGwsW1s0LDM0XV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24ocix0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSk7Y2FzZSAxOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHIsdCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtleHBvcnR7YSBhcyBnZXRVc2VyTWVkaWFTdHJlYW19O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndVpYTXVhbk1pTENKemIzVnlZMlZ6SWpwYklpNHVMM055WXk5blpYUlZjMlZ5VFdWa2FXRlRkSEpsWVcwdWFuTWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvcVhHNGdLaUJTWlhSMWNtNXpJR0VnY0hKdmJXbHpaU0J5WlhOdmJIWmxaQ0IzYUdWdUlIUm9aU0J0WldScFlTQnBjeUJoZFhSb2IzSnBlbVZrSUdGdVpDQjBhR1VnYzNSeVpXRnRJR2x6SUhKbGRISnBaWFpsWkZ4dUlDb2dRSEJoY21GdElIQmxjbTFwYzNOcGIyNU9ZVzFsSUNBZ0lDQWdJQ0FnSUNBZ1RtRnRaU0J2WmlCMGFHVWdjR1Z5YldsemMybHZiaTRnUUhObFpTQm9kSFJ3Y3pvdkwzY3pZeTVuYVhSb2RXSXVhVzh2Y0dWeWJXbHpjMmx2Ym5NdkkyVnVkVzFrWldZdGNHVnliV2x6YzJsdmJtNWhiV1ZjYmlBcUlFQndZWEpoYlNCdFpXUnBZVk4wY21WaGJVTnZibk4wY21GcGJuUnpJQ0FnSUVOdmJuTjBjbUZwYm5SeklHOWlhbVZqZEM0Z1FITmxaU0JvZEhSd2N6b3ZMMlJsZG1Wc2IzQmxjaTV0YjNwcGJHeGhMbTl5Wnk5bGJpMVZVeTlrYjJOekwxZGxZaTlCVUVrdlRXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjMXh1SUNvZ1FISmxkSFZ5Ym5NZ2UxQnliMjFwYzJWOVhHNGdLaTljYm1WNGNHOXlkQ0JrWldaaGRXeDBJR0Z6ZVc1aklDaHdaWEp0YVhOemFXOXVUbUZ0WlN3Z2JXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjeWtnUFQ0Z2UxeHVYSFJ5WlhSMWNtNGdibVYzSUZCeWIyMXBjMlVvWVhONWJtTWdLSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dQVDRnZTF4dVhIUmNkR2xtSUNnaGJtRjJhV2RoZEc5eUxuQmxjbTFwYzNOcGIyNXpLU0I3WEc1Y2RGeDBYSFJ5WldwbFkzUW9ibVYzSUVWeWNtOXlLQ2RRUlZKTlNWTlRTVTlPVTE5T1QxUmZVMVZRVUU5U1ZFVkVKeWtwWEc1Y2RGeDBmU0JsYkhObElIdGNibHgwWEhSY2RIUnllU0I3WEc1Y2RGeDBYSFJjZEdOdmJuTjBJSEJsY20xcGMzTnBiMjVUZEdGMGRYTWdQU0JoZDJGcGRDQnVZWFpwWjJGMGIzSXVjR1Z5YldsemMybHZibk11Y1hWbGNua29leUJ1WVcxbE9pQndaWEp0YVhOemFXOXVUbUZ0WlNCOUtWeHVYSFJjZEZ4MFhIUnBaaUFvY0dWeWJXbHpjMmx2YmxOMFlYUjFjeTV6ZEdGMFpTQTlQVDBnSjJSbGJtbGxaQ2NwSUh0Y2JseDBYSFJjZEZ4MFhIUnlaV3BsWTNRb2JtVjNJRVZ5Y205eUtDZEVSVTVKUlVSZlFsbGZWVk5GVWljcEtWeHVYSFJjZEZ4MFhIUjlJR1ZzYzJVZ2FXWWdLQ0Z1WVhacFoyRjBiM0l1YldWa2FXRkVaWFpwWTJWektTQjdYRzVjZEZ4MFhIUmNkRngwY21WcVpXTjBLRzVsZHlCRmNuSnZjaWduVFVWRVNVRmZSRVZXU1VORlUxOU9UMVJmVTFWUVVFOVNWRVZFSnlrcFhHNWNkRngwWEhSY2RIMGdaV3h6WlNCN1hHNWNkRngwWEhSY2RGeDBZMjl1YzNRZ2NISnZiV2x6WlhNZ1BTQmJZWGRoYVhRZ2JtRjJhV2RoZEc5eUxtMWxaR2xoUkdWMmFXTmxjeTVuWlhSVmMyVnlUV1ZrYVdFb2JXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjeWxkWEc1Y2RGeDBYSFJjZEZ4MGFXWWdLSEJsY20xcGMzTnBiMjVUZEdGMGRYTXVjM1JoZEdVZ1BUMDlJQ2R3Y205dGNIUW5LU0I3WEc1Y2RGeDBYSFJjZEZ4MFhIUndjbTl0YVhObGN5NXdkWE5vS0Z4dVhIUmNkRngwWEhSY2RGeDBYSFJoZDJGcGRDQnVaWGNnVUhKdmJXbHpaU2dvY21WemIyeDJaU2tnUFQ0Z2UxeHVYSFJjZEZ4MFhIUmNkRngwWEhSY2RIQmxjbTFwYzNOcGIyNVRkR0YwZFhNdVlXUmtSWFpsYm5STWFYTjBaVzVsY2lnblkyaGhibWRsSnl3Z0tHVjJaVzUwS1NBOVBpQjdYRzVjZEZ4MFhIUmNkRngwWEhSY2RGeDBYSFJwWmlBb1pYWmxiblF1ZEdGeVoyVjBMbk4wWVhSbElEMDlQU0FuWkdWdWFXVmtKeWtnZTF4dVhIUmNkRngwWEhSY2RGeDBYSFJjZEZ4MFhIUnlaV3BsWTNRb2JtVjNJRVZ5Y205eUtDZEVSVTVKUlVSZlFsbGZWVk5GVWljcEtWeHVYSFJjZEZ4MFhIUmNkRngwWEhSY2RGeDBmU0JsYkhObElIdGNibHgwWEhSY2RGeDBYSFJjZEZ4MFhIUmNkRngwY21WemIyeDJaU2dwWEc1Y2RGeDBYSFJjZEZ4MFhIUmNkRngwWEhSOVhHNWNkRngwWEhSY2RGeDBYSFJjZEZ4MGZTbGNibHgwWEhSY2RGeDBYSFJjZEZ4MGZTbGNibHgwWEhSY2RGeDBYSFJjZENsY2JseDBYSFJjZEZ4MFhIUjlYRzVjZEZ4MFhIUmNkRngwWTI5dWMzUWdXM04wY21WaGJWMGdQU0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2h3Y205dGFYTmxjeWxjYmx4MFhIUmNkRngwWEhSeVpYTnZiSFpsS0hOMGNtVmhiU2xjYmx4MFhIUmNkRngwZlZ4dVhIUmNkRngwZlNCallYUmphQ0FvWlhKeWIzSXBJSHRjYmx4MFhIUmNkRngwY21WcVpXTjBLR1Z5Y205eUtWeHVYSFJjZEZ4MGZWeHVYSFJjZEgxY2JseDBmU2xjYm4xY2JpSmRMQ0p1WVcxbGN5STZXeUp3WlhKdGFYTnphVzl1VG1GdFpTSXNJbTFsWkdsaFUzUnlaV0Z0UTI5dWMzUnlZV2x1ZEhNaUxDSlFjbTl0YVhObElpd2ljbVZ6YjJ4MlpTSXNJbkpsYW1WamRDSXNJbTVoZG1sbllYUnZjaUlzSW5CbGNtMXBjM05wYjI1eklpd2lSWEp5YjNJaUxDSnhkV1Z5ZVNJc0ltNWhiV1VpTENKd1pYSnRhWE56YVc5dVUzUmhkSFZ6SWl3aWMzUmhkR1VpTENKdFpXUnBZVVJsZG1salpYTWlMQ0puWlhSVmMyVnlUV1ZrYVdFaUxDSndjbTl0YVhObGN5SXNJbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSWlMQ0psZG1WdWRDSXNJblJoY21kbGRDSXNJbkIxYzJnaUxDSmhiR3dpTENKemRISmxZVzBpWFN3aWJXRndjR2x1WjNNaU9pSnRkME5CVFVFc2EwUkJRV1VzVjBGQlQwRXNSVUZCWjBKRExEUkhRVU01UWl4SlFVRkpReXh2UkVGQlVTeFhRVUZQUXl4RlFVRlRReXh2UjBGRE4wSkRMRlZCUVZWRExEUkNRVU5rUml4RlFVRlBMRWxCUVVsSExFMUJRVTBzT0VWQlIyVkdMRlZCUVZWRExGbEJRVmxGTEUxQlFVMHNRMEZCUlVNc1MwRkJUVlFzWTBGRGNFTXNXVUZFZWtKVkxGVkJRMlZETEhWQ1FVTndRbEFzUlVGQlR5eEpRVUZKUnl4TlFVRk5MRGhEUVVOT1JpeFZRVUZWVHl3NFFrRkRja0pTTEVWQlFVOHNTVUZCU1Vjc1RVRkJUU3g1UlVGRlQwWXNWVUZCVlU4c1lVRkJZVU1zWVVGQllWb3NNRUpCUVhSRVlTeFRRVU41UWl4WFFVRXpRa29zUlVGQmFVSkRMRzFEUVVOd1FrY3NXVUZEVHl4SlFVRkpXaXhUUVVGUkxGTkJRVU5ETEVkQlEyeENUeXhGUVVGcFFrc3NhVUpCUVdsQ0xGVkJRVlVzVTBGQlEwTXNSMEZEYWtJc1YwRkJka0pCTEVWQlFVMURMRTlCUVU5T0xFMUJRMmhDVUN4RlFVRlBMRWxCUVVsSExFMUJRVTBzYlVKQlJXcENTaXh0UTBGT1MyVXNPRU5CV1dGb1FpeFJRVUZSYVVJc1NVRkJTVXdzTmtKQlFUVkNUU3hQUVVOUWFrSXNSVUZCVVdsQ0xEWkVRVWRVYUVJaWZRPT1cbiIsImltcG9ydCB7IGdldFVzZXJNZWRpYVN0cmVhbSB9IGZyb20gJ0B1bnRlbXBzL3VzZXItbWVkaWEtdXRpbHMnXG5cbmNsYXNzIFNwZWVjaFJlY29nbml0aW9uV3JhcHBlciB7XG5cdHN0YXRpYyBkZWZhdWx0T3B0aW9ucyA9IHtcblx0XHRsYW5nOiAnZnItRlInLFxuXHRcdGNvbnRpbnVvdXM6IGZhbHNlLFxuXHRcdGludGVyaW1SZXN1bHRzOiBmYWxzZSxcblx0XHRtYXhBbHRlcm5hdGl2ZXM6IDEsXG5cdH1cblxuXHRzdGF0aWMgZXZlbnRUeXBlcyA9IHtcblx0XHRBVURJT19FTkQ6ICdhdWRpb2VuZCcsXG5cdFx0QVVESU9fU1RBUlQ6ICdhdWRpb3N0YXJ0Jyxcblx0XHRFTkQ6ICdlbmQnLFxuXHRcdEVSUk9SOiAnZXJyb3InLFxuXHRcdE5PX01BVENIOiAnbm9tYXRjaCcsXG5cdFx0UkVTVUxUOiAncmVzdWx0Jyxcblx0XHRTT1VORF9FTkQ6ICdzb3VuZGVuZCcsXG5cdFx0U09VTkRfU1RBUlQ6ICdzb3VuZHN0YXJ0Jyxcblx0XHRTUEVFQ0hfRU5EOiAnc3BlZWNoZW5kJyxcblx0XHRTUEVFQ0hfU1RBUlQ6ICdzcGVlY2hzdGFydCcsXG5cdFx0U1RBUlQ6ICdzdGFydCcsXG5cdH1cblxuXHRzdGF0aWMgZ2V0IGlzU3VwcG9ydGVkKCkge1xuXHRcdHJldHVybiAoXG5cdFx0XHQhIXdpbmRvdy5TcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0ISF3aW5kb3cud2Via2l0U3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdCEhd2luZG93Lm1velNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHQhIXdpbmRvdy5tc1NwZWVjaFJlY29nbml0aW9uXG5cdFx0KVxuXHR9XG5cblx0c3RhdGljIHNldCBpc1N1cHBvcnRlZChfKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHNldCBpc1N1cHBvcnRlZCBkaXJlY3RseS4nKVxuXHR9XG5cblx0X2luc3RhbmNlID0gbnVsbFxuXHRfbGlzdGVuZXJzID0gbnVsbFxuXG5cdGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcblx0XHRjb25zdCBTcGVlY2hSZWNvZ25pdGlvbiA9XG5cdFx0XHR3aW5kb3cuU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHdpbmRvdy53ZWJraXRTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0d2luZG93Lm1velNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHR3aW5kb3cubXNTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0e31cblx0XHR0aGlzLl9pbnN0YW5jZSA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpXG5cdFx0dGhpcy5fbGlzdGVuZXJzID0ge31cblxuXHRcdE9iamVjdC5lbnRyaWVzKHsgLi4uU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmRlZmF1bHRPcHRpb25zLCAuLi4ob3B0aW9ucyB8fCB7fSkgfSkuZm9yRWFjaChcblx0XHRcdChba2V5LCB2YWx1ZV0pID0+ICh0aGlzLl9pbnN0YW5jZVtrZXldID0gdmFsdWUpXG5cdFx0KVxuXHR9XG5cblx0Z2V0IGluc3RhbmNlKCkge1xuXHRcdHJldHVybiB0aGlzLl9pbnN0YW5jZVxuXHR9XG5cblx0c2V0IGluc3RhbmNlKF8pIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3Qgc2V0IGluc3RhbmNlIGRpcmVjdGx5LicpXG5cdH1cblxuXHRhc3luYyBzdGFydCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0VXNlck1lZGlhU3RyZWFtKCdtaWNyb3Bob25lJywgeyBhdWRpbzogdHJ1ZSB9KVxuXHRcdFx0XHRpZiAoIXN0cmVhbSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJldHJpZXZlIHRoZSBzdHJlYW0gZnJvbSBtZWRpYSBkZXZpY2UnKVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuX2luc3RhbmNlLnN0YXJ0KClcblx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRcdGNvbnN0IGVycm9ySGFuZGxlciA9IHRoaXMuX2xpc3RlbmVycy5lcnJvclxuXHRcdFx0XHRpZiAoISFlcnJvckhhbmRsZXIpIHtcblx0XHRcdFx0XHRlcnJvckhhbmRsZXIoZXJyb3IpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0c3RvcCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dGhpcy5faW5zdGFuY2Uuc3RvcCgpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdGFib3J0KCkge1xuXHRcdGlmICghIXRoaXMuX2luc3RhbmNlKSB7XG5cdFx0XHR0aGlzLl9pbnN0YW5jZS5hYm9ydCgpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdGFkZEV2ZW50TGlzdGVuZXIodHlwZSwgY2FsbGJhY2spIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSAmJiB0aGlzLl9pbmNsdWRlc0V2ZW50VHlwZSh0eXBlKSkge1xuXHRcdFx0aWYgKCEhdGhpcy5fbGlzdGVuZXJzW3R5cGVdKSB7XG5cdFx0XHRcdHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlKVxuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBoYW5kbGVyID0gKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGxldCBhZGRpdGlvbmFsQXJncyA9IFtdXG5cdFx0XHRcdGlmICh0eXBlID09PSBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuZXZlbnRUeXBlcy5SRVNVTFQpIHtcblx0XHRcdFx0XHRpZiAoISFldmVudC5yZXN1bHRzICYmIGV2ZW50LnJlc3VsdHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0YWRkaXRpb25hbEFyZ3MucHVzaChldmVudC5yZXN1bHRzWzBdWzBdLnRyYW5zY3JpcHQpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0ISFjYWxsYmFjayAmJiBjYWxsYmFjay5hcHBseSh0aGlzLCBbLi4uYWRkaXRpb25hbEFyZ3MsIGV2ZW50XSlcblx0XHRcdH1cblx0XHRcdHRoaXMuX2luc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgKGUpID0+IGhhbmRsZXIoZSkpXG5cblx0XHRcdHRoaXMuX2xpc3RlbmVyc1t0eXBlXSA9IGhhbmRsZXJcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0cmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlKSB7XG5cdFx0Y29uc3QgaGFuZGxlciA9IHRoaXMuX2xpc3RlbmVyc1t0eXBlXVxuXHRcdHRoaXMuX2luc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgaGFuZGxlcilcblxuXHRcdGRlbGV0ZSB0aGlzLl9saXN0ZW5lcnNbdHlwZV1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRjbGVhbnVwKCkge1xuXHRcdHRoaXMuc3RvcCgpXG5cblx0XHRPYmplY3Qua2V5cyh0aGlzLl9saXN0ZW5lcnMpLmZvckVhY2goKGtleSkgPT4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGtleSkpXG5cdFx0dGhpcy5faW5zdGFuY2UgPSBudWxsXG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0X2luY2x1ZGVzRXZlbnRUeXBlID0gKGV2ZW50VHlwZSkgPT5cblx0XHRPYmplY3QudmFsdWVzKFNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5ldmVudFR5cGVzKS5maW5kKCh0eXBlKSA9PiB0eXBlID09PSBldmVudFR5cGUpXG59XG5cbmV4cG9ydCBkZWZhdWx0IFNwZWVjaFJlY29nbml0aW9uV3JhcHBlclxuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5jb25zdCBNaWNyb3Bob25lSWNvbiA9ICh7IGljb25Db2xvciA9ICdibGFjaycsIGFjdGl2ZUNvbG9yID0gJ3JlZCcsIGlzQWN0aXZlID0gZmFsc2UgfSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG5cdFx0XHQ8Zz5cblx0XHRcdFx0PHBhdGhcblx0XHRcdFx0XHRmaWxsPXtpY29uQ29sb3J9XG5cdFx0XHRcdFx0ZD1cIk0xMiAxNGMxLjY2IDAgMi45OS0xLjM0IDIuOTktM0wxNSA1YzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDV2NmMwIDEuNjYgMS4zNCAzIDMgM3ptNS4zLTNjMCAzLTIuNTQgNS4xLTUuMyA1LjFTNi43IDE0IDYuNyAxMUg1YzAgMy40MSAyLjcyIDYuMjMgNiA2LjcyVjIxaDJ2LTMuMjhjMy4yOC0uNDggNi0zLjMgNi02LjcyaC0xLjd6XCJcblx0XHRcdFx0Lz5cblx0XHRcdFx0e2lzQWN0aXZlICYmIDxjaXJjbGUgZmlsbD17YWN0aXZlQ29sb3J9IGN4PVwiMTZcIiBjeT1cIjRcIiByPVwiNFwiIC8+fVxuXHRcdFx0PC9nPlxuXHRcdDwvc3ZnPlxuXHQpXG59XG5cbmV4cG9ydCBkZWZhdWx0IE1pY3JvcGhvbmVJY29uXG4iLCJpbXBvcnQgUmVhY3QsIHsgY2xvbmVFbGVtZW50LCBpc1ZhbGlkRWxlbWVudCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG5cbmltcG9ydCBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIgZnJvbSAnLi9TcGVlY2hSZWNvZ25pdGlvbldyYXBwZXInXG5cbmltcG9ydCBNaWNyb3Bob25lSWNvbiBmcm9tICcuL01pY3JvcGhvbmVJY29uJ1xuXG5jb25zdCBWb2NhbCA9ICh7XG5cdGNoaWxkcmVuLFxuXHR0aW1lb3V0LFxuXHRzdHlsZSxcblx0Y2xhc3NOYW1lLFxuXHRvblN0YXJ0LFxuXHRvbkVuZCxcblx0b25TcGVlY2hTdGFydCxcblx0b25TcGVlY2hFbmQsXG5cdG9uUmVzdWx0LFxuXHRvbkVycm9yLFxuXHRvbk5vTWF0Y2gsXG5cdF9fcmVjb2duaXRpb25JbnN0YW5jZSxcbn0pID0+IHtcblx0Y29uc3QgdGltZW91dFJlZiA9IHVzZVJlZihudWxsKVxuXHRjb25zdCByZWNvZ25pdGlvblJlZiA9IHVzZVJlZihudWxsKVxuXG5cdGNvbnN0IFtpc0xpc3RlbmluZywgc2V0SXNMaXN0ZW5pbmddID0gdXNlU3RhdGUoZmFsc2UpXG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRyZWNvZ25pdGlvblJlZi5jdXJyZW50ID0gX19yZWNvZ25pdGlvbkluc3RhbmNlIHx8IG5ldyBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIoKVxuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRyZWNvZ25pdGlvblJlZi5jdXJyZW50LmFib3J0KClcblx0XHRcdHJlY29nbml0aW9uUmVmLmN1cnJlbnQuY2xlYW51cCgpXG5cdFx0XHRjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KVxuXHRcdH1cblx0fSwgW19fcmVjb2duaXRpb25JbnN0YW5jZV0pXG5cblx0Y29uc3Qgc3RhcnRUaW1lciA9ICgpID0+IHtcblx0XHR0aW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KF9vbkVuZCwgdGltZW91dClcblx0fVxuXG5cdGNvbnN0IHN0b3BUaW1lciA9ICgpID0+IHtcblx0XHRjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KVxuXHRcdHRpbWVvdXRSZWYuY3VycmVudCA9IG51bGxcblx0fVxuXG5cdGNvbnN0IHN0YXJ0UmVjb2duaXRpb24gPSAoKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdHNldElzTGlzdGVuaW5nKHRydWUpXG5cblx0XHRcdGNvbnN0IHsgY3VycmVudDogciB9ID0gcmVjb2duaXRpb25SZWZcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBfb25TdGFydClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignZW5kJywgX29uRW5kKVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzcGVlY2hzdGFydCcsIF9vblNwZWVjaFN0YXJ0KVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzcGVlY2hlbmQnLCBfb25TcGVlY2hFbmQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc3VsdCcsIF9vblJlc3VsdClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBfb25FcnJvcilcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignbm9tYXRjaCcsIF9vbk5vTWF0Y2gpXG5cdFx0XHRyLnN0YXJ0KClcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0X29uRXJyb3IoZXJyb3IpXG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgc3RvcFJlY29nbml0aW9uID0gKCkgPT4ge1xuXHRcdHRyeSB7XG5cdFx0XHRzZXRJc0xpc3RlbmluZyhmYWxzZSlcblxuXHRcdFx0Y29uc3QgeyBjdXJyZW50OiByIH0gPSByZWNvZ25pdGlvblJlZlxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzdGFydCcsIF9vblN0YXJ0KVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdlbmQnLCBfb25FbmQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NwZWVjaHN0YXJ0JywgX29uU3BlZWNoU3RhcnQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NwZWVjaGVuZCcsIF9vblNwZWVjaEVuZClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzdWx0JywgX29uUmVzdWx0KVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIF9vbkVycm9yKVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdub21hdGNoJywgX29uTm9NYXRjaClcblx0XHRcdHIuc3RvcCgpXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdF9vbkVycm9yKGVycm9yKVxuXHRcdH1cblx0fVxuXG5cdGNvbnN0IHN0YXJ0ID0gKCkgPT4ge1xuXHRcdHN0YXJ0VGltZXIoKVxuXHR9XG5cblx0Y29uc3QgZW5kID0gKCkgPT4ge1xuXHRcdHN0b3BUaW1lcigpXG5cdFx0c3RvcFJlY29nbml0aW9uKClcblx0fVxuXG5cdGNvbnN0IF9vbkNsaWNrID0gKCkgPT4ge1xuXHRcdHN0YXJ0UmVjb2duaXRpb24oKVxuXHR9XG5cblx0Y29uc3QgX29uU3RhcnQgPSAoZSkgPT4ge1xuXHRcdHN0YXJ0KClcblxuXHRcdCEhb25TdGFydCAmJiBvblN0YXJ0KGUpXG5cdH1cblxuXHRjb25zdCBfb25FbmQgPSAoZSkgPT4ge1xuXHRcdGVuZCgpXG5cblx0XHQhIW9uRW5kICYmIG9uRW5kKGUpXG5cdH1cblxuXHRjb25zdCBfb25TcGVlY2hTdGFydCA9IChlKSA9PiB7XG5cdFx0c3RvcFRpbWVyKClcblxuXHRcdCEhb25TcGVlY2hTdGFydCAmJiBvblNwZWVjaFN0YXJ0KGUpXG5cdH1cblxuXHRjb25zdCBfb25TcGVlY2hFbmQgPSAoZSkgPT4ge1xuXHRcdHN0YXJ0VGltZXIoKVxuXG5cdFx0ISFvblNwZWVjaEVuZCAmJiBvblNwZWVjaEVuZChlKVxuXHR9XG5cblx0Y29uc3QgX29uUmVzdWx0ID0gKHJlc3VsdCwgZXZlbnQpID0+IHtcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXG5cdFx0ISFvblJlc3VsdCAmJiBvblJlc3VsdChyZXN1bHQsIGV2ZW50KVxuXHR9XG5cblx0Y29uc3QgX29uRXJyb3IgPSAoZXJyb3IpID0+IHtcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXG5cdFx0ISFvbkVycm9yICYmIG9uRXJyb3IoZXJyb3IpXG5cdH1cblxuXHRjb25zdCBfb25Ob01hdGNoID0gKGUpID0+IHtcblx0XHQhIW9uTm9NYXRjaCAmJiBvbk5vTWF0Y2goZSlcblx0fVxuXG5cdGNvbnN0IF9yZW5kZXJEZWZhdWx0ID0gKCkgPT4gKFxuXHRcdDxkaXZcblx0XHRcdGRhdGEtdGVzdGlkPVwiX19zcGVlY2gtcm9vdF9fXCJcblx0XHRcdHN0eWxlPXtjbGFzc05hbWUgPyBudWxsIDogeyB3aWR0aDogMjQsIGhlaWdodDogMjQsIGN1cnNvcjogIWlzTGlzdGVuaW5nID8gJ3BvaW50ZXInIDogbnVsbCwgLi4uc3R5bGUgfX1cblx0XHRcdGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuXHRcdD5cblx0XHRcdDxNaWNyb3Bob25lSWNvbiBpc0FjdGl2ZT17aXNMaXN0ZW5pbmd9IGljb25Db2xvcj1cIiNhYWFcIiAvPlxuXHRcdDwvZGl2PlxuXHQpXG5cblx0cmV0dXJuIChcblx0XHRTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuaXNTdXBwb3J0ZWQgJiZcblx0XHRjbG9uZUVsZW1lbnQoaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pID8gY2hpbGRyZW4gOiBfcmVuZGVyRGVmYXVsdCgpLCB7XG5cdFx0XHQuLi4oIWlzTGlzdGVuaW5nICYmIHsgb25DbGljazogX29uQ2xpY2sgfSksXG5cdFx0fSlcblx0KVxufVxuXG5Wb2NhbC5wcm9wVHlwZXMgPSB7XG5cdC8qKiBEZWZpbmVzIHRoZSB0aW1lIGluIG1zIHRvIHdhaXQgYmVmb3JlIGRpc2NhcmRpbmcgdGhlIHJlY29nbml0aW9uICovXG5cdHRpbWVvdXQ6IFByb3BUeXBlcy5udW1iZXIsXG5cdC8qKiBEZWZpbmVzIHRoZSBzdHlsZXMgb2YgdGhlIGRlZmF1bHQgZWxlbWVudCBpZiBjbGFzc05hbWUgaXMgbm90IHNwZWNpZmllZCAqL1xuXHRzdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcblx0LyoqIERlZmluZXMgdGhlIGNsYXNzIG9mIHRoZSBkZWZhdWx0IGVsZW1lbnQgKi9cblx0Y2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgcmVjb2duaXRpb24gc3RhcnRzICovXG5cdG9uU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgcmVjb2duaXRpb24gZW5kcyAqL1xuXHRvbkVuZDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBzcGVlY2ggc3RhcnRzICovXG5cdG9uU3BlZWNoU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgc3BlZWNoIGVuZHMgKi9cblx0b25TcGVlY2hFbmQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBhIHJlc3VsdCBpcyByZWNvZ25pemVkICovXG5cdG9uUmVzdWx0OiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzICovXG5cdG9uRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBubyByZXN1bHQgY2FuIGJlIHJlY29nbml6ZWQgKi9cblx0b25Ob01hdGNoOiBQcm9wVHlwZXMuZnVuYyxcbn1cblxuVm9jYWwuZGVmYXVsdFByb3BzID0ge1xuXHR0aW1lb3V0OiAzMDAwLFxuXHRzdHlsZTogbnVsbCxcblx0Y2xhc3NOYW1lOiBudWxsLFxuXHRvblN0YXJ0OiBudWxsLFxuXHRvbkVuZDogbnVsbCxcblx0b25TcGVlY2hTdGFydDogbnVsbCxcblx0b25TcGVlY2hFbmQ6IG51bGwsXG5cdG9uUmVzdWx0OiBudWxsLFxuXHRvbkVycm9yOiBudWxsLFxuXHRvbk5vTWF0Y2g6IG51bGwsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFZvY2FsXG4iXSwibmFtZXMiOlsiZSIsInIiLCJ0IiwibiIsImEiLCJvIiwiaSIsInUiLCJjIiwidmFsdWUiLCJkb25lIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwidGhpcyIsImFyZ3VtZW50cyIsImFwcGx5IiwiQXJyYXkiLCJpc0FycmF5IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJPYmplY3QiLCJuZXh0IiwicHVzaCIsImxlbmd0aCIsInJldHVybiIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJUeXBlRXJyb3IiLCJyZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwid3JhcCIsInByZXYiLCJhYnJ1cHQiLCJzIiwiZiIsIm5hdmlnYXRvciIsInBlcm1pc3Npb25zIiwiRXJyb3IiLCJxdWVyeSIsInNlbnQiLCJzdGF0ZSIsIm1lZGlhRGV2aWNlcyIsImdldFVzZXJNZWRpYSIsInQwIiwidDEiLCJhZGRFdmVudExpc3RlbmVyIiwidGFyZ2V0IiwidDIiLCJhbGwiLCJ0MyIsImNhdGNoIiwic3RvcCIsIlNwZWVjaFJlY29nbml0aW9uV3JhcHBlciIsIm9wdGlvbnMiLCJldmVudFR5cGUiLCJ2YWx1ZXMiLCJldmVudFR5cGVzIiwiZmluZCIsInR5cGUiLCJTcGVlY2hSZWNvZ25pdGlvbiIsIndpbmRvdyIsIndlYmtpdFNwZWVjaFJlY29nbml0aW9uIiwibW96U3BlZWNoUmVjb2duaXRpb24iLCJtc1NwZWVjaFJlY29nbml0aW9uIiwiX2luc3RhbmNlIiwiX2xpc3RlbmVycyIsImVudHJpZXMiLCJkZWZhdWx0T3B0aW9ucyIsImZvckVhY2giLCJrZXkiLCJfdGhpcyIsIl8iLCJnZXRVc2VyTWVkaWFTdHJlYW0iLCJhdWRpbyIsInN0YXJ0IiwiZXJyb3JIYW5kbGVyIiwiZXJyb3IiLCJhYm9ydCIsImNhbGxiYWNrIiwiX2luY2x1ZGVzRXZlbnRUeXBlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZXIiLCJldmVudCIsImFkZGl0aW9uYWxBcmdzIiwiUkVTVUxUIiwicmVzdWx0cyIsInRyYW5zY3JpcHQiLCJfdGhpczIiLCJrZXlzIiwiX3RoaXMzIiwibGFuZyIsImNvbnRpbnVvdXMiLCJpbnRlcmltUmVzdWx0cyIsIm1heEFsdGVybmF0aXZlcyIsIkFVRElPX0VORCIsIkFVRElPX1NUQVJUIiwiRU5EIiwiRVJST1IiLCJOT19NQVRDSCIsIlNPVU5EX0VORCIsIlNPVU5EX1NUQVJUIiwiU1BFRUNIX0VORCIsIlNQRUVDSF9TVEFSVCIsIlNUQVJUIiwiTWljcm9waG9uZUljb24iLCJpY29uQ29sb3IiLCJhY3RpdmVDb2xvciIsImlzQWN0aXZlIiwiUmVhY3QiLCJ4bWxucyIsIndpZHRoIiwiaGVpZ2h0Iiwidmlld0JveCIsImZpbGwiLCJkIiwiY3giLCJjeSIsIlZvY2FsIiwiY2hpbGRyZW4iLCJ0aW1lb3V0Iiwic3R5bGUiLCJjbGFzc05hbWUiLCJvblN0YXJ0Iiwib25FbmQiLCJvblNwZWVjaFN0YXJ0Iiwib25TcGVlY2hFbmQiLCJvblJlc3VsdCIsIm9uRXJyb3IiLCJvbk5vTWF0Y2giLCJfX3JlY29nbml0aW9uSW5zdGFuY2UiLCJ0aW1lb3V0UmVmIiwidXNlUmVmIiwicmVjb2duaXRpb25SZWYiLCJ1c2VTdGF0ZSIsImlzTGlzdGVuaW5nIiwic2V0SXNMaXN0ZW5pbmciLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiY2xlYW51cCIsImNsZWFyVGltZW91dCIsInN0YXJ0VGltZXIiLCJzZXRUaW1lb3V0IiwiX29uRW5kIiwic3RvcFRpbWVyIiwic3RvcFJlY29nbml0aW9uIiwiX29uU3RhcnQiLCJfb25TcGVlY2hTdGFydCIsIl9vblNwZWVjaEVuZCIsIl9vblJlc3VsdCIsIl9vbkVycm9yIiwiX29uTm9NYXRjaCIsInJlc3VsdCIsImlzU3VwcG9ydGVkIiwiY2xvbmVFbGVtZW50IiwiaXNWYWxpZEVsZW1lbnQiLCJjdXJzb3IiLCJvbkNsaWNrIiwic3RhcnRSZWNvZ25pdGlvbiIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm51bWJlciIsIm9iamVjdCIsInN0cmluZyIsImZ1bmMiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiJrbUVBQUEsU0FBU0EsRUFBRUEsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsRUFBRUMsR0FBRyxJQUFJLElBQUlDLEVBQUVQLEVBQUVLLEdBQUdDLEdBQUdFLEVBQUVELEVBQUVF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
"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),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).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 s(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?s(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(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 v(e,t,n,r,i,o,a){try{var c=e[o](a),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).then(r,i)}function h(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){v(o,r,i,a,c,"next",e)}function c(e){v(o,r,i,a,c,"throw",e)}a(void 0)}))}}function p(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=h(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=h(regeneratorRuntime.mark((function e(r,i){var o,a,c,s,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.permissions){e.next=4;break}i(new Error("PERMISSIONS_NOT_SUPPORTED")),e.next=37;break;case 4:return e.prev=4,e.next=7,navigator.permissions.query({name:t});case 7:if("denied"!==(o=e.sent).state){e.next=12;break}i(new Error("DENIED_BY_USER")),e.next=32;break;case 12:if(navigator.mediaDevices){e.next=16;break}i(new Error("MEDIA_DEVICES_NOT_SUPPORTED")),e.next=32;break;case 16:return e.next=18,navigator.mediaDevices.getUserMedia(n);case 18:if(e.t0=e.sent,a=[e.t0],"prompt"!==o.state){e.next=26;break}return e.t1=a,e.next=24,new Promise((function(e){o.addEventListener("change",(function(t){"denied"===t.target.state?i(new Error("DENIED_BY_USER")):e()}))}));case 24:e.t2=e.sent,e.t1.push.call(e.t1,e.t2);case 26:return e.next=28,Promise.all(a);case 28:c=e.sent,s=p(c,1),u=s[0],r(u);case 32:e.next=37;break;case 34:e.prev=34,e.t3=e.catch(4),i(e.t3);case 37:case"end":return e.stop()}}),e,null,[[4,34]])})));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),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(u(u({},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,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(r,o){var a=t.apply(e,n);function c(e){i(a,r,o,c,s,"next",e)}function s(e){i(a,r,o,c,s,"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(y,"defaultOptions",{lang:"fr-FR",continuous:!1,interimResults:!1,maxAlternatives:1}),c(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,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(e){var r=e.children,i=e.timeout,o=e.ariaLabel,a=e.tabIndex,c=e.style,s=e.className,f=e.onStart,v=e.onEnd,h=e.onSpeechStart,p=e.onSpeechEnd,d=e.onResult,m=e.onError,E=e.onNoMatch,w=e.__recognitionInstance,S=t.useRef(null),g=t.useRef(null),_=l(t.useState(!1),2),O=_[0],R=_[1];t.useEffect((function(){if(y.isSupported)return g.current=w||new y,function(){g.current.abort(),g.current.cleanup(),clearTimeout(S.current)}}),[w]);var x=function(){S.current=setTimeout(j,i)},k=function(){clearTimeout(S.current),S.current=null},L=function(){try{R(!1);var e=g.current;e.removeEventListener("start",T),e.removeEventListener("end",j),e.removeEventListener("speechstart",P),e.removeEventListener("speechend",A),e.removeEventListener("result",D),e.removeEventListener("error",I),e.removeEventListener("nomatch",N),e.stop()}catch(e){I(e)}},T=function(e){x(),f&&f(e)},j=function(e){k(),L(),v&&v(e)},P=function(e){k(),h&&h(e)},A=function(e){x(),p&&p(e)},D=function(e,t){L(),d&&d(e,t)},I=function(e){L(),m&&m(e)},N=function(e){E&&E(e)};return y.isSupported&&t.cloneElement(t.isValidElement(r)?r:n.createElement("div",{"data-testid":"__vocal-root__",role:"button","aria-label":o,tabIndex:a,style:s?null:u({width:24,height:24,cursor:O?null:"pointer"},c),className:s},n.createElement(b,{isActive:O,iconColor:"#aaa"})),u({},!O&&{onClick:function(){!function(){try{R(!0);var e=g.current;e.addEventListener("start",T),e.addEventListener("end",j),e.addEventListener("speechstart",P),e.addEventListener("speechend",A),e.addEventListener("result",D),e.addEventListener("error",I),e.addEventListener("nomatch",N),e.start()}catch(e){I(e)}}()}}))};E.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},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},module.exports=E;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL25vZGVfbW9kdWxlcy9AdW50ZW1wcy91c2VyLW1lZGlhLXV0aWxzL2Rpc3QvaW5kZXguZXMuanMiLCIuLi9zcmMvU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmpzIiwiLi4vc3JjL01pY3JvcGhvbmVJY29uLmpzIiwiLi4vc3JjL1ZvY2FsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGUoZSxyLHQsbixhLG8saSl7dHJ5e3ZhciB1PWVbb10oaSksYz11LnZhbHVlfWNhdGNoKGUpe3JldHVybiB2b2lkIHQoZSl9dS5kb25lP3IoYyk6UHJvbWlzZS5yZXNvbHZlKGMpLnRoZW4obixhKX1mdW5jdGlvbiByKHIpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihhLG8pe3ZhciBpPXIuYXBwbHkodCxuKTtmdW5jdGlvbiB1KHIpe2UoaSxhLG8sdSxjLFwibmV4dFwiLHIpfWZ1bmN0aW9uIGMocil7ZShpLGEsbyx1LGMsXCJ0aHJvd1wiLHIpfXUodm9pZCAwKX0pKX19ZnVuY3Rpb24gdChlLHIpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxyKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgU3ltYm9sfHwhKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoZSkpKXJldHVybjt2YXIgdD1bXSxuPSEwLGE9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgaSx1PWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0oaT11Lm5leHQoKSkuZG9uZSkmJih0LnB1c2goaS52YWx1ZSksIXJ8fHQubGVuZ3RoIT09cik7bj0hMCk7fWNhdGNoKGUpe2E9ITAsbz1lfWZpbmFsbHl7dHJ5e258fG51bGw9PXUucmV0dXJufHx1LnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyBvfX1yZXR1cm4gdH0oZSxyKXx8ZnVuY3Rpb24oZSxyKXtpZighZSlyZXR1cm47aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG4oZSxyKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7XCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSk7aWYoXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKGUpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbihlLHIpfShlLHIpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gbihlLHIpeyhudWxsPT1yfHxyPmUubGVuZ3RoKSYmKHI9ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLG49bmV3IEFycmF5KHIpO3Q8cjt0Kyspblt0XT1lW3RdO3JldHVybiBufXZhciBhPWZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZShuLGEpe3JldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcCgoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KFwicmV0dXJuXCIsbmV3IFByb21pc2UoZnVuY3Rpb24oKXt2YXIgZT1yKHJlZ2VuZXJhdG9yUnVudGltZS5tYXJrKChmdW5jdGlvbiBlKHIsbyl7dmFyIGksdSxjLHMsZjtyZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKG5hdmlnYXRvci5wZXJtaXNzaW9ucyl7ZS5uZXh0PTQ7YnJlYWt9byhuZXcgRXJyb3IoXCJQRVJNSVNTSU9OU19OT1RfU1VQUE9SVEVEXCIpKSxlLm5leHQ9Mzc7YnJlYWs7Y2FzZSA0OnJldHVybiBlLnByZXY9NCxlLm5leHQ9NyxuYXZpZ2F0b3IucGVybWlzc2lvbnMucXVlcnkoe25hbWU6bn0pO2Nhc2UgNzppZihcImRlbmllZFwiIT09KGk9ZS5zZW50KS5zdGF0ZSl7ZS5uZXh0PTEyO2JyZWFrfW8obmV3IEVycm9yKFwiREVOSUVEX0JZX1VTRVJcIikpLGUubmV4dD0zMjticmVhaztjYXNlIDEyOmlmKG5hdmlnYXRvci5tZWRpYURldmljZXMpe2UubmV4dD0xNjticmVha31vKG5ldyBFcnJvcihcIk1FRElBX0RFVklDRVNfTk9UX1NVUFBPUlRFRFwiKSksZS5uZXh0PTMyO2JyZWFrO2Nhc2UgMTY6cmV0dXJuIGUubmV4dD0xOCxuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShhKTtjYXNlIDE4OmlmKGUudDA9ZS5zZW50LHU9W2UudDBdLFwicHJvbXB0XCIhPT1pLnN0YXRlKXtlLm5leHQ9MjY7YnJlYWt9cmV0dXJuIGUudDE9dSxlLm5leHQ9MjQsbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe2kuYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLChmdW5jdGlvbihyKXtcImRlbmllZFwiPT09ci50YXJnZXQuc3RhdGU/byhuZXcgRXJyb3IoXCJERU5JRURfQllfVVNFUlwiKSk6ZSgpfSkpfSkpO2Nhc2UgMjQ6ZS50Mj1lLnNlbnQsZS50MS5wdXNoLmNhbGwoZS50MSxlLnQyKTtjYXNlIDI2OnJldHVybiBlLm5leHQ9MjgsUHJvbWlzZS5hbGwodSk7Y2FzZSAyODpjPWUuc2VudCxzPXQoYywxKSxmPXNbMF0scihmKTtjYXNlIDMyOmUubmV4dD0zNzticmVhaztjYXNlIDM0OmUucHJldj0zNCxlLnQzPWUuY2F0Y2goNCksbyhlLnQzKTtjYXNlIDM3OmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlLG51bGwsW1s0LDM0XV0pfSkpKTtyZXR1cm4gZnVuY3Rpb24ocix0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSk7Y2FzZSAxOmNhc2VcImVuZFwiOnJldHVybiBlLnN0b3AoKX19KSxlKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHIsdCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKTtleHBvcnR7YSBhcyBnZXRVc2VyTWVkaWFTdHJlYW19O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndVpYTXVhbk1pTENKemIzVnlZMlZ6SWpwYklpNHVMM055WXk5blpYUlZjMlZ5VFdWa2FXRlRkSEpsWVcwdWFuTWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvcVhHNGdLaUJTWlhSMWNtNXpJR0VnY0hKdmJXbHpaU0J5WlhOdmJIWmxaQ0IzYUdWdUlIUm9aU0J0WldScFlTQnBjeUJoZFhSb2IzSnBlbVZrSUdGdVpDQjBhR1VnYzNSeVpXRnRJR2x6SUhKbGRISnBaWFpsWkZ4dUlDb2dRSEJoY21GdElIQmxjbTFwYzNOcGIyNU9ZVzFsSUNBZ0lDQWdJQ0FnSUNBZ1RtRnRaU0J2WmlCMGFHVWdjR1Z5YldsemMybHZiaTRnUUhObFpTQm9kSFJ3Y3pvdkwzY3pZeTVuYVhSb2RXSXVhVzh2Y0dWeWJXbHpjMmx2Ym5NdkkyVnVkVzFrWldZdGNHVnliV2x6YzJsdmJtNWhiV1ZjYmlBcUlFQndZWEpoYlNCdFpXUnBZVk4wY21WaGJVTnZibk4wY21GcGJuUnpJQ0FnSUVOdmJuTjBjbUZwYm5SeklHOWlhbVZqZEM0Z1FITmxaU0JvZEhSd2N6b3ZMMlJsZG1Wc2IzQmxjaTV0YjNwcGJHeGhMbTl5Wnk5bGJpMVZVeTlrYjJOekwxZGxZaTlCVUVrdlRXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjMXh1SUNvZ1FISmxkSFZ5Ym5NZ2UxQnliMjFwYzJWOVhHNGdLaTljYm1WNGNHOXlkQ0JrWldaaGRXeDBJR0Z6ZVc1aklDaHdaWEp0YVhOemFXOXVUbUZ0WlN3Z2JXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjeWtnUFQ0Z2UxeHVYSFJ5WlhSMWNtNGdibVYzSUZCeWIyMXBjMlVvWVhONWJtTWdLSEpsYzI5c2RtVXNJSEpsYW1WamRDa2dQVDRnZTF4dVhIUmNkR2xtSUNnaGJtRjJhV2RoZEc5eUxuQmxjbTFwYzNOcGIyNXpLU0I3WEc1Y2RGeDBYSFJ5WldwbFkzUW9ibVYzSUVWeWNtOXlLQ2RRUlZKTlNWTlRTVTlPVTE5T1QxUmZVMVZRVUU5U1ZFVkVKeWtwWEc1Y2RGeDBmU0JsYkhObElIdGNibHgwWEhSY2RIUnllU0I3WEc1Y2RGeDBYSFJjZEdOdmJuTjBJSEJsY20xcGMzTnBiMjVUZEdGMGRYTWdQU0JoZDJGcGRDQnVZWFpwWjJGMGIzSXVjR1Z5YldsemMybHZibk11Y1hWbGNua29leUJ1WVcxbE9pQndaWEp0YVhOemFXOXVUbUZ0WlNCOUtWeHVYSFJjZEZ4MFhIUnBaaUFvY0dWeWJXbHpjMmx2YmxOMFlYUjFjeTV6ZEdGMFpTQTlQVDBnSjJSbGJtbGxaQ2NwSUh0Y2JseDBYSFJjZEZ4MFhIUnlaV3BsWTNRb2JtVjNJRVZ5Y205eUtDZEVSVTVKUlVSZlFsbGZWVk5GVWljcEtWeHVYSFJjZEZ4MFhIUjlJR1ZzYzJVZ2FXWWdLQ0Z1WVhacFoyRjBiM0l1YldWa2FXRkVaWFpwWTJWektTQjdYRzVjZEZ4MFhIUmNkRngwY21WcVpXTjBLRzVsZHlCRmNuSnZjaWduVFVWRVNVRmZSRVZXU1VORlUxOU9UMVJmVTFWUVVFOVNWRVZFSnlrcFhHNWNkRngwWEhSY2RIMGdaV3h6WlNCN1hHNWNkRngwWEhSY2RGeDBZMjl1YzNRZ2NISnZiV2x6WlhNZ1BTQmJZWGRoYVhRZ2JtRjJhV2RoZEc5eUxtMWxaR2xoUkdWMmFXTmxjeTVuWlhSVmMyVnlUV1ZrYVdFb2JXVmthV0ZUZEhKbFlXMURiMjV6ZEhKaGFXNTBjeWxkWEc1Y2RGeDBYSFJjZEZ4MGFXWWdLSEJsY20xcGMzTnBiMjVUZEdGMGRYTXVjM1JoZEdVZ1BUMDlJQ2R3Y205dGNIUW5LU0I3WEc1Y2RGeDBYSFJjZEZ4MFhIUndjbTl0YVhObGN5NXdkWE5vS0Z4dVhIUmNkRngwWEhSY2RGeDBYSFJoZDJGcGRDQnVaWGNnVUhKdmJXbHpaU2dvY21WemIyeDJaU2tnUFQ0Z2UxeHVYSFJjZEZ4MFhIUmNkRngwWEhSY2RIQmxjbTFwYzNOcGIyNVRkR0YwZFhNdVlXUmtSWFpsYm5STWFYTjBaVzVsY2lnblkyaGhibWRsSnl3Z0tHVjJaVzUwS1NBOVBpQjdYRzVjZEZ4MFhIUmNkRngwWEhSY2RGeDBYSFJwWmlBb1pYWmxiblF1ZEdGeVoyVjBMbk4wWVhSbElEMDlQU0FuWkdWdWFXVmtKeWtnZTF4dVhIUmNkRngwWEhSY2RGeDBYSFJjZEZ4MFhIUnlaV3BsWTNRb2JtVjNJRVZ5Y205eUtDZEVSVTVKUlVSZlFsbGZWVk5GVWljcEtWeHVYSFJjZEZ4MFhIUmNkRngwWEhSY2RGeDBmU0JsYkhObElIdGNibHgwWEhSY2RGeDBYSFJjZEZ4MFhIUmNkRngwY21WemIyeDJaU2dwWEc1Y2RGeDBYSFJjZEZ4MFhIUmNkRngwWEhSOVhHNWNkRngwWEhSY2RGeDBYSFJjZEZ4MGZTbGNibHgwWEhSY2RGeDBYSFJjZEZ4MGZTbGNibHgwWEhSY2RGeDBYSFJjZENsY2JseDBYSFJjZEZ4MFhIUjlYRzVjZEZ4MFhIUmNkRngwWTI5dWMzUWdXM04wY21WaGJWMGdQU0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2h3Y205dGFYTmxjeWxjYmx4MFhIUmNkRngwWEhSeVpYTnZiSFpsS0hOMGNtVmhiU2xjYmx4MFhIUmNkRngwZlZ4dVhIUmNkRngwZlNCallYUmphQ0FvWlhKeWIzSXBJSHRjYmx4MFhIUmNkRngwY21WcVpXTjBLR1Z5Y205eUtWeHVYSFJjZEZ4MGZWeHVYSFJjZEgxY2JseDBmU2xjYm4xY2JpSmRMQ0p1WVcxbGN5STZXeUp3WlhKdGFYTnphVzl1VG1GdFpTSXNJbTFsWkdsaFUzUnlaV0Z0UTI5dWMzUnlZV2x1ZEhNaUxDSlFjbTl0YVhObElpd2ljbVZ6YjJ4MlpTSXNJbkpsYW1WamRDSXNJbTVoZG1sbllYUnZjaUlzSW5CbGNtMXBjM05wYjI1eklpd2lSWEp5YjNJaUxDSnhkV1Z5ZVNJc0ltNWhiV1VpTENKd1pYSnRhWE56YVc5dVUzUmhkSFZ6SWl3aWMzUmhkR1VpTENKdFpXUnBZVVJsZG1salpYTWlMQ0puWlhSVmMyVnlUV1ZrYVdFaUxDSndjbTl0YVhObGN5SXNJbUZrWkVWMlpXNTBUR2x6ZEdWdVpYSWlMQ0psZG1WdWRDSXNJblJoY21kbGRDSXNJbkIxYzJnaUxDSmhiR3dpTENKemRISmxZVzBpWFN3aWJXRndjR2x1WjNNaU9pSnRkME5CVFVFc2EwUkJRV1VzVjBGQlQwRXNSVUZCWjBKRExEUkhRVU01UWl4SlFVRkpReXh2UkVGQlVTeFhRVUZQUXl4RlFVRlRReXh2UjBGRE4wSkRMRlZCUVZWRExEUkNRVU5rUml4RlFVRlBMRWxCUVVsSExFMUJRVTBzT0VWQlIyVkdMRlZCUVZWRExGbEJRVmxGTEUxQlFVMHNRMEZCUlVNc1MwRkJUVlFzWTBGRGNFTXNXVUZFZWtKVkxGVkJRMlZETEhWQ1FVTndRbEFzUlVGQlR5eEpRVUZKUnl4TlFVRk5MRGhEUVVOT1JpeFZRVUZWVHl3NFFrRkRja0pTTEVWQlFVOHNTVUZCU1Vjc1RVRkJUU3g1UlVGRlQwWXNWVUZCVlU4c1lVRkJZVU1zWVVGQllWb3NNRUpCUVhSRVlTeFRRVU41UWl4WFFVRXpRa29zUlVGQmFVSkRMRzFEUVVOd1FrY3NXVUZEVHl4SlFVRkpXaXhUUVVGUkxGTkJRVU5ETEVkQlEyeENUeXhGUVVGcFFrc3NhVUpCUVdsQ0xGVkJRVlVzVTBGQlEwTXNSMEZEYWtJc1YwRkJka0pCTEVWQlFVMURMRTlCUVU5T0xFMUJRMmhDVUN4RlFVRlBMRWxCUVVsSExFMUJRVTBzYlVKQlJXcENTaXh0UTBGT1MyVXNPRU5CV1dGb1FpeFJRVUZSYVVJc1NVRkJTVXdzTmtKQlFUVkNUU3hQUVVOUWFrSXNSVUZCVVdsQ0xEWkVRVWRVYUVJaWZRPT1cbiIsImltcG9ydCB7IGdldFVzZXJNZWRpYVN0cmVhbSB9IGZyb20gJ0B1bnRlbXBzL3VzZXItbWVkaWEtdXRpbHMnXG5cbmNsYXNzIFNwZWVjaFJlY29nbml0aW9uV3JhcHBlciB7XG5cdHN0YXRpYyBkZWZhdWx0T3B0aW9ucyA9IHtcblx0XHRsYW5nOiAnZnItRlInLFxuXHRcdGNvbnRpbnVvdXM6IGZhbHNlLFxuXHRcdGludGVyaW1SZXN1bHRzOiBmYWxzZSxcblx0XHRtYXhBbHRlcm5hdGl2ZXM6IDEsXG5cdH1cblxuXHRzdGF0aWMgZXZlbnRUeXBlcyA9IHtcblx0XHRBVURJT19FTkQ6ICdhdWRpb2VuZCcsXG5cdFx0QVVESU9fU1RBUlQ6ICdhdWRpb3N0YXJ0Jyxcblx0XHRFTkQ6ICdlbmQnLFxuXHRcdEVSUk9SOiAnZXJyb3InLFxuXHRcdE5PX01BVENIOiAnbm9tYXRjaCcsXG5cdFx0UkVTVUxUOiAncmVzdWx0Jyxcblx0XHRTT1VORF9FTkQ6ICdzb3VuZGVuZCcsXG5cdFx0U09VTkRfU1RBUlQ6ICdzb3VuZHN0YXJ0Jyxcblx0XHRTUEVFQ0hfRU5EOiAnc3BlZWNoZW5kJyxcblx0XHRTUEVFQ0hfU1RBUlQ6ICdzcGVlY2hzdGFydCcsXG5cdFx0U1RBUlQ6ICdzdGFydCcsXG5cdH1cblxuXHRzdGF0aWMgZ2V0IGlzU3VwcG9ydGVkKCkge1xuXHRcdHJldHVybiAoXG5cdFx0XHQhIXdpbmRvdy5TcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0ISF3aW5kb3cud2Via2l0U3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdCEhd2luZG93Lm1velNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHQhIXdpbmRvdy5tc1NwZWVjaFJlY29nbml0aW9uXG5cdFx0KVxuXHR9XG5cblx0c3RhdGljIHNldCBpc1N1cHBvcnRlZChfKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHNldCBpc1N1cHBvcnRlZCBkaXJlY3RseS4nKVxuXHR9XG5cblx0X2luc3RhbmNlID0gbnVsbFxuXHRfbGlzdGVuZXJzID0gbnVsbFxuXG5cdGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcblx0XHRjb25zdCBTcGVlY2hSZWNvZ25pdGlvbiA9XG5cdFx0XHR3aW5kb3cuU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHdpbmRvdy53ZWJraXRTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0d2luZG93Lm1velNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHR3aW5kb3cubXNTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0e31cblx0XHR0aGlzLl9pbnN0YW5jZSA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpXG5cdFx0dGhpcy5fbGlzdGVuZXJzID0ge31cblxuXHRcdE9iamVjdC5lbnRyaWVzKHsgLi4uU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmRlZmF1bHRPcHRpb25zLCAuLi4ob3B0aW9ucyB8fCB7fSkgfSkuZm9yRWFjaChcblx0XHRcdChba2V5LCB2YWx1ZV0pID0+ICh0aGlzLl9pbnN0YW5jZVtrZXldID0gdmFsdWUpXG5cdFx0KVxuXHR9XG5cblx0Z2V0IGluc3RhbmNlKCkge1xuXHRcdHJldHVybiB0aGlzLl9pbnN0YW5jZVxuXHR9XG5cblx0c2V0IGluc3RhbmNlKF8pIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3Qgc2V0IGluc3RhbmNlIGRpcmVjdGx5LicpXG5cdH1cblxuXHRhc3luYyBzdGFydCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0VXNlck1lZGlhU3RyZWFtKCdtaWNyb3Bob25lJywgeyBhdWRpbzogdHJ1ZSB9KVxuXHRcdFx0XHRpZiAoIXN0cmVhbSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJldHJpZXZlIHRoZSBzdHJlYW0gZnJvbSBtZWRpYSBkZXZpY2UnKVxuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuX2luc3RhbmNlLnN0YXJ0KClcblx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRcdGNvbnN0IGVycm9ySGFuZGxlciA9IHRoaXMuX2xpc3RlbmVycy5lcnJvclxuXHRcdFx0XHRpZiAoISFlcnJvckhhbmRsZXIpIHtcblx0XHRcdFx0XHRlcnJvckhhbmRsZXIoZXJyb3IpXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0c3RvcCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dGhpcy5faW5zdGFuY2Uuc3RvcCgpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdGFib3J0KCkge1xuXHRcdGlmICghIXRoaXMuX2luc3RhbmNlKSB7XG5cdFx0XHR0aGlzLl9pbnN0YW5jZS5hYm9ydCgpXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdGFkZEV2ZW50TGlzdGVuZXIodHlwZSwgY2FsbGJhY2spIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSAmJiB0aGlzLl9pbmNsdWRlc0V2ZW50VHlwZSh0eXBlKSkge1xuXHRcdFx0aWYgKCEhdGhpcy5fbGlzdGVuZXJzW3R5cGVdKSB7XG5cdFx0XHRcdHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlKVxuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBoYW5kbGVyID0gKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGxldCBhZGRpdGlvbmFsQXJncyA9IFtdXG5cdFx0XHRcdGlmICh0eXBlID09PSBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuZXZlbnRUeXBlcy5SRVNVTFQpIHtcblx0XHRcdFx0XHRpZiAoISFldmVudC5yZXN1bHRzICYmIGV2ZW50LnJlc3VsdHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0YWRkaXRpb25hbEFyZ3MucHVzaChldmVudC5yZXN1bHRzWzBdWzBdLnRyYW5zY3JpcHQpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0ISFjYWxsYmFjayAmJiBjYWxsYmFjay5hcHBseSh0aGlzLCBbLi4uYWRkaXRpb25hbEFyZ3MsIGV2ZW50XSlcblx0XHRcdH1cblx0XHRcdHRoaXMuX2luc3RhbmNlLmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgKGUpID0+IGhhbmRsZXIoZSkpXG5cblx0XHRcdHRoaXMuX2xpc3RlbmVyc1t0eXBlXSA9IGhhbmRsZXJcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0cmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlKSB7XG5cdFx0Y29uc3QgaGFuZGxlciA9IHRoaXMuX2xpc3RlbmVyc1t0eXBlXVxuXHRcdHRoaXMuX2luc3RhbmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgaGFuZGxlcilcblxuXHRcdGRlbGV0ZSB0aGlzLl9saXN0ZW5lcnNbdHlwZV1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRjbGVhbnVwKCkge1xuXHRcdHRoaXMuc3RvcCgpXG5cblx0XHRPYmplY3Qua2V5cyh0aGlzLl9saXN0ZW5lcnMpLmZvckVhY2goKGtleSkgPT4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGtleSkpXG5cdFx0dGhpcy5faW5zdGFuY2UgPSBudWxsXG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0X2luY2x1ZGVzRXZlbnRUeXBlID0gKGV2ZW50VHlwZSkgPT5cblx0XHRPYmplY3QudmFsdWVzKFNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5ldmVudFR5cGVzKS5maW5kKCh0eXBlKSA9PiB0eXBlID09PSBldmVudFR5cGUpXG59XG5cbmV4cG9ydCBkZWZhdWx0IFNwZWVjaFJlY29nbml0aW9uV3JhcHBlclxuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5jb25zdCBNaWNyb3Bob25lSWNvbiA9ICh7IGljb25Db2xvciA9ICdibGFjaycsIGFjdGl2ZUNvbG9yID0gJ3JlZCcsIGlzQWN0aXZlID0gZmFsc2UgfSkgPT4ge1xuXHRyZXR1cm4gKFxuXHRcdDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG5cdFx0XHQ8Zz5cblx0XHRcdFx0PHBhdGhcblx0XHRcdFx0XHRmaWxsPXtpY29uQ29sb3J9XG5cdFx0XHRcdFx0ZD1cIk0xMiAxNGMxLjY2IDAgMi45OS0xLjM0IDIuOTktM0wxNSA1YzAtMS42Ni0xLjM0LTMtMy0zUzkgMy4zNCA5IDV2NmMwIDEuNjYgMS4zNCAzIDMgM3ptNS4zLTNjMCAzLTIuNTQgNS4xLTUuMyA1LjFTNi43IDE0IDYuNyAxMUg1YzAgMy40MSAyLjcyIDYuMjMgNiA2LjcyVjIxaDJ2LTMuMjhjMy4yOC0uNDggNi0zLjMgNi02LjcyaC0xLjd6XCJcblx0XHRcdFx0Lz5cblx0XHRcdFx0e2lzQWN0aXZlICYmIDxjaXJjbGUgZmlsbD17YWN0aXZlQ29sb3J9IGN4PVwiMTZcIiBjeT1cIjRcIiByPVwiNFwiIC8+fVxuXHRcdFx0PC9nPlxuXHRcdDwvc3ZnPlxuXHQpXG59XG5cbmV4cG9ydCBkZWZhdWx0IE1pY3JvcGhvbmVJY29uXG4iLCJpbXBvcnQgUmVhY3QsIHsgY2xvbmVFbGVtZW50LCBpc1ZhbGlkRWxlbWVudCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG5cbmltcG9ydCBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIgZnJvbSAnLi9TcGVlY2hSZWNvZ25pdGlvbldyYXBwZXInXG5cbmltcG9ydCBNaWNyb3Bob25lSWNvbiBmcm9tICcuL01pY3JvcGhvbmVJY29uJ1xuXG5jb25zdCBWb2NhbCA9ICh7XG5cdGNoaWxkcmVuLFxuXHR0aW1lb3V0LFxuXHRhcmlhTGFiZWwsXG5cdHRhYkluZGV4LFxuXHRzdHlsZSxcblx0Y2xhc3NOYW1lLFxuXHRvblN0YXJ0LFxuXHRvbkVuZCxcblx0b25TcGVlY2hTdGFydCxcblx0b25TcGVlY2hFbmQsXG5cdG9uUmVzdWx0LFxuXHRvbkVycm9yLFxuXHRvbk5vTWF0Y2gsXG5cdF9fcmVjb2duaXRpb25JbnN0YW5jZSxcbn0pID0+IHtcblx0Y29uc3QgdGltZW91dFJlZiA9IHVzZVJlZihudWxsKVxuXHRjb25zdCByZWNvZ25pdGlvblJlZiA9IHVzZVJlZihudWxsKVxuXG5cdGNvbnN0IFtpc0xpc3RlbmluZywgc2V0SXNMaXN0ZW5pbmddID0gdXNlU3RhdGUoZmFsc2UpXG5cblx0dXNlRWZmZWN0KCgpID0+IHtcblx0XHRpZiAoU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmlzU3VwcG9ydGVkKSB7XG5cdFx0XHRyZWNvZ25pdGlvblJlZi5jdXJyZW50ID0gX19yZWNvZ25pdGlvbkluc3RhbmNlIHx8IG5ldyBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIoKVxuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0cmVjb2duaXRpb25SZWYuY3VycmVudC5hYm9ydCgpXG5cdFx0XHRcdHJlY29nbml0aW9uUmVmLmN1cnJlbnQuY2xlYW51cCgpXG5cdFx0XHRcdGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpXG5cdFx0XHR9XG5cdFx0fVxuXHR9LCBbX19yZWNvZ25pdGlvbkluc3RhbmNlXSlcblxuXHRjb25zdCBzdGFydFRpbWVyID0gKCkgPT4ge1xuXHRcdHRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoX29uRW5kLCB0aW1lb3V0KVxuXHR9XG5cblx0Y29uc3Qgc3RvcFRpbWVyID0gKCkgPT4ge1xuXHRcdGNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpXG5cdFx0dGltZW91dFJlZi5jdXJyZW50ID0gbnVsbFxuXHR9XG5cblx0Y29uc3Qgc3RhcnRSZWNvZ25pdGlvbiA9ICgpID0+IHtcblx0XHR0cnkge1xuXHRcdFx0c2V0SXNMaXN0ZW5pbmcodHJ1ZSlcblxuXHRcdFx0Y29uc3QgeyBjdXJyZW50OiByIH0gPSByZWNvZ25pdGlvblJlZlxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzdGFydCcsIF9vblN0YXJ0KVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdlbmQnLCBfb25FbmQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3NwZWVjaHN0YXJ0JywgX29uU3BlZWNoU3RhcnQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3NwZWVjaGVuZCcsIF9vblNwZWVjaEVuZClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcigncmVzdWx0JywgX29uUmVzdWx0KVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIF9vbkVycm9yKVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdub21hdGNoJywgX29uTm9NYXRjaClcblx0XHRcdHIuc3RhcnQoKVxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRfb25FcnJvcihlcnJvcilcblx0XHR9XG5cdH1cblxuXHRjb25zdCBzdG9wUmVjb2duaXRpb24gPSAoKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdHNldElzTGlzdGVuaW5nKGZhbHNlKVxuXG5cdFx0XHRjb25zdCB7IGN1cnJlbnQ6IHIgfSA9IHJlY29nbml0aW9uUmVmXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N0YXJ0JywgX29uU3RhcnQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2VuZCcsIF9vbkVuZClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3BlZWNoc3RhcnQnLCBfb25TcGVlY2hTdGFydClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3BlZWNoZW5kJywgX29uU3BlZWNoRW5kKVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXN1bHQnLCBfb25SZXN1bHQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgX29uRXJyb3IpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ25vbWF0Y2gnLCBfb25Ob01hdGNoKVxuXHRcdFx0ci5zdG9wKClcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0X29uRXJyb3IoZXJyb3IpXG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgc3RhcnQgPSAoKSA9PiB7XG5cdFx0c3RhcnRUaW1lcigpXG5cdH1cblxuXHRjb25zdCBlbmQgPSAoKSA9PiB7XG5cdFx0c3RvcFRpbWVyKClcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXHR9XG5cblx0Y29uc3QgX29uQ2xpY2sgPSAoKSA9PiB7XG5cdFx0c3RhcnRSZWNvZ25pdGlvbigpXG5cdH1cblxuXHRjb25zdCBfb25TdGFydCA9IChlKSA9PiB7XG5cdFx0c3RhcnQoKVxuXG5cdFx0ISFvblN0YXJ0ICYmIG9uU3RhcnQoZSlcblx0fVxuXG5cdGNvbnN0IF9vbkVuZCA9IChlKSA9PiB7XG5cdFx0ZW5kKClcblxuXHRcdCEhb25FbmQgJiYgb25FbmQoZSlcblx0fVxuXG5cdGNvbnN0IF9vblNwZWVjaFN0YXJ0ID0gKGUpID0+IHtcblx0XHRzdG9wVGltZXIoKVxuXG5cdFx0ISFvblNwZWVjaFN0YXJ0ICYmIG9uU3BlZWNoU3RhcnQoZSlcblx0fVxuXG5cdGNvbnN0IF9vblNwZWVjaEVuZCA9IChlKSA9PiB7XG5cdFx0c3RhcnRUaW1lcigpXG5cblx0XHQhIW9uU3BlZWNoRW5kICYmIG9uU3BlZWNoRW5kKGUpXG5cdH1cblxuXHRjb25zdCBfb25SZXN1bHQgPSAocmVzdWx0LCBldmVudCkgPT4ge1xuXHRcdHN0b3BSZWNvZ25pdGlvbigpXG5cblx0XHQhIW9uUmVzdWx0ICYmIG9uUmVzdWx0KHJlc3VsdCwgZXZlbnQpXG5cdH1cblxuXHRjb25zdCBfb25FcnJvciA9IChlcnJvcikgPT4ge1xuXHRcdHN0b3BSZWNvZ25pdGlvbigpXG5cblx0XHQhIW9uRXJyb3IgJiYgb25FcnJvcihlcnJvcilcblx0fVxuXG5cdGNvbnN0IF9vbk5vTWF0Y2ggPSAoZSkgPT4ge1xuXHRcdCEhb25Ob01hdGNoICYmIG9uTm9NYXRjaChlKVxuXHR9XG5cblx0Y29uc3QgX3JlbmRlckRlZmF1bHQgPSAoKSA9PiAoXG5cdFx0PGRpdlxuXHRcdFx0ZGF0YS10ZXN0aWQ9XCJfX3ZvY2FsLXJvb3RfX1wiXG5cdFx0XHRyb2xlPVwiYnV0dG9uXCJcblx0XHRcdGFyaWEtbGFiZWw9e2FyaWFMYWJlbH1cblx0XHRcdHRhYkluZGV4PXt0YWJJbmRleH1cblx0XHRcdHN0eWxlPXtjbGFzc05hbWUgPyBudWxsIDogeyB3aWR0aDogMjQsIGhlaWdodDogMjQsIGN1cnNvcjogIWlzTGlzdGVuaW5nID8gJ3BvaW50ZXInIDogbnVsbCwgLi4uc3R5bGUgfX1cblx0XHRcdGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuXHRcdD5cblx0XHRcdDxNaWNyb3Bob25lSWNvbiBpc0FjdGl2ZT17aXNMaXN0ZW5pbmd9IGljb25Db2xvcj1cIiNhYWFcIiAvPlxuXHRcdDwvZGl2PlxuXHQpXG5cblx0cmV0dXJuIChcblx0XHRTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuaXNTdXBwb3J0ZWQgJiZcblx0XHRjbG9uZUVsZW1lbnQoaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pID8gY2hpbGRyZW4gOiBfcmVuZGVyRGVmYXVsdCgpLCB7XG5cdFx0XHQuLi4oIWlzTGlzdGVuaW5nICYmIHsgb25DbGljazogX29uQ2xpY2sgfSksXG5cdFx0fSlcblx0KVxufVxuXG5Wb2NhbC5wcm9wVHlwZXMgPSB7XG5cdC8qKiBEZWZpbmVzIHRoZSB0aW1lIGluIG1zIHRvIHdhaXQgYmVmb3JlIGRpc2NhcmRpbmcgdGhlIHJlY29nbml0aW9uICovXG5cdHRpbWVvdXQ6IFByb3BUeXBlcy5udW1iZXIsXG5cdC8qKiBEZWZpbmVzIHRoZSBhMTF5IGxhYmVsIGZvciB0aGUgZGVmYXVsdCBidXR0b24gKi9cblx0YXJpYUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuXHQvKiogRGVmaW5lcyB0aGUgYTExeSB0YWIgaW5kZXggZm9yIHRoZSBkZWZhdWx0IGJ1dHRvbiAqL1xuXHR0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcblx0LyoqIERlZmluZXMgdGhlIHN0eWxlcyBvZiB0aGUgZGVmYXVsdCBlbGVtZW50IGlmIGNsYXNzTmFtZSBpcyBub3Qgc3BlY2lmaWVkICovXG5cdHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuXHQvKiogRGVmaW5lcyB0aGUgY2xhc3Mgb2YgdGhlIGRlZmF1bHQgZWxlbWVudCAqL1xuXHRjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSByZWNvZ25pdGlvbiBzdGFydHMgKi9cblx0b25TdGFydDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSByZWNvZ25pdGlvbiBlbmRzICovXG5cdG9uRW5kOiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHNwZWVjaCBzdGFydHMgKi9cblx0b25TcGVlY2hTdGFydDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBzcGVlY2ggZW5kcyAqL1xuXHRvblNwZWVjaEVuZDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIGEgcmVzdWx0IGlzIHJlY29nbml6ZWQgKi9cblx0b25SZXN1bHQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMgKi9cblx0b25FcnJvcjogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIG5vIHJlc3VsdCBjYW4gYmUgcmVjb2duaXplZCAqL1xuXHRvbk5vTWF0Y2g6IFByb3BUeXBlcy5mdW5jLFxufVxuXG5Wb2NhbC5kZWZhdWx0UHJvcHMgPSB7XG5cdHRpbWVvdXQ6IDMwMDAsXG5cdGFyaWFMYWJlbDogJ3NwZWVjaCcsXG5cdHRhYkluZGV4OiAtMSxcblx0c3R5bGU6IG51bGwsXG5cdGNsYXNzTmFtZTogbnVsbCxcblx0b25TdGFydDogbnVsbCxcblx0b25FbmQ6IG51bGwsXG5cdG9uU3BlZWNoU3RhcnQ6IG51bGwsXG5cdG9uU3BlZWNoRW5kOiBudWxsLFxuXHRvblJlc3VsdDogbnVsbCxcblx0b25FcnJvcjogbnVsbCxcblx0b25Ob01hdGNoOiBudWxsLFxufVxuXG5leHBvcnQgZGVmYXVsdCBWb2NhbFxuIl0sIm5hbWVzIjpbImUiLCJyIiwidCIsIm4iLCJhIiwibyIsImkiLCJ1IiwiYyIsInZhbHVlIiwiZG9uZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsInRoaXMiLCJhcmd1bWVudHMiLCJhcHBseSIsIkFycmF5IiwiaXNBcnJheSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiT2JqZWN0IiwibmV4dCIsInB1c2giLCJsZW5ndGgiLCJyZXR1cm4iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiVHlwZUVycm9yIiwicmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIndyYXAiLCJwcmV2IiwiYWJydXB0IiwicyIsImYiLCJuYXZpZ2F0b3IiLCJwZXJtaXNzaW9ucyIsIkVycm9yIiwicXVlcnkiLCJzZW50Iiwic3RhdGUiLCJtZWRpYURldmljZXMiLCJnZXRVc2VyTWVkaWEiLCJ0MCIsInQxIiwiYWRkRXZlbnRMaXN0ZW5lciIsInRhcmdldCIsInQyIiwiYWxsIiwidDMiLCJjYXRjaCIsInN0b3AiLCJTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIiLCJvcHRpb25zIiwiZXZlbnRUeXBlIiwidmFsdWVzIiwiZXZlbnRUeXBlcyIsImZpbmQiLCJ0eXBlIiwiU3BlZWNoUmVjb2duaXRpb24iLCJ3aW5kb3ciLCJ3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbiIsIm1velNwZWVjaFJlY29nbml0aW9uIiwibXNTcGVlY2hSZWNvZ25pdGlvbiIsIl9pbnN0YW5jZSIsIl9saXN0ZW5lcnMiLCJlbnRyaWVzIiwiZGVmYXVsdE9wdGlvbnMiLCJmb3JFYWNoIiwia2V5IiwiX3RoaXMiLCJfIiwiZ2V0VXNlck1lZGlhU3RyZWFtIiwiYXVkaW8iLCJzdGFydCIsImVycm9ySGFuZGxlciIsImVycm9yIiwiYWJvcnQiLCJjYWxsYmFjayIsIl9pbmNsdWRlc0V2ZW50VHlwZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVyIiwiZXZlbnQiLCJhZGRpdGlvbmFsQXJncyIsIlJFU1VMVCIsInJlc3VsdHMiLCJ0cmFuc2NyaXB0IiwiX3RoaXMyIiwia2V5cyIsIl90aGlzMyIsImxhbmciLCJjb250aW51b3VzIiwiaW50ZXJpbVJlc3VsdHMiLCJtYXhBbHRlcm5hdGl2ZXMiLCJBVURJT19FTkQiLCJBVURJT19TVEFSVCIsIkVORCIsIkVSUk9SIiwiTk9fTUFUQ0giLCJTT1VORF9FTkQiLCJTT1VORF9TVEFSVCIsIlNQRUVDSF9FTkQiLCJTUEVFQ0hfU1RBUlQiLCJTVEFSVCIsIk1pY3JvcGhvbmVJY29uIiwiaWNvbkNvbG9yIiwiYWN0aXZlQ29sb3IiLCJpc0FjdGl2ZSIsIlJlYWN0IiwieG1sbnMiLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJmaWxsIiwiZCIsImN4IiwiY3kiLCJWb2NhbCIsImNoaWxkcmVuIiwidGltZW91dCIsImFyaWFMYWJlbCIsInRhYkluZGV4Iiwic3R5bGUiLCJjbGFzc05hbWUiLCJvblN0YXJ0Iiwib25FbmQiLCJvblNwZWVjaFN0YXJ0Iiwib25TcGVlY2hFbmQiLCJvblJlc3VsdCIsIm9uRXJyb3IiLCJvbk5vTWF0Y2giLCJfX3JlY29nbml0aW9uSW5zdGFuY2UiLCJ0aW1lb3V0UmVmIiwidXNlUmVmIiwicmVjb2duaXRpb25SZWYiLCJ1c2VTdGF0ZSIsImlzTGlzdGVuaW5nIiwic2V0SXNMaXN0ZW5pbmciLCJ1c2VFZmZlY3QiLCJpc1N1cHBvcnRlZCIsImN1cnJlbnQiLCJjbGVhbnVwIiwiY2xlYXJUaW1lb3V0Iiwic3RhcnRUaW1lciIsInNldFRpbWVvdXQiLCJfb25FbmQiLCJzdG9wVGltZXIiLCJzdG9wUmVjb2duaXRpb24iLCJfb25TdGFydCIsIl9vblNwZWVjaFN0YXJ0IiwiX29uU3BlZWNoRW5kIiwiX29uUmVzdWx0IiwiX29uRXJyb3IiLCJfb25Ob01hdGNoIiwicmVzdWx0IiwiY2xvbmVFbGVtZW50IiwiaXNWYWxpZEVsZW1lbnQiLCJyb2xlIiwiY3Vyc29yIiwib25DbGljayIsInN0YXJ0UmVjb2duaXRpb24iLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJudW1iZXIiLCJzdHJpbmciLCJvYmplY3QiLCJmdW5jIiwiZGVmYXVsdFByb3BzIl0sIm1hcHBpbmdzIjoia21FQUFBLFNBQVNBLEVBQUVBLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEdBQUcsSUFBSSxJQUFJQyxFQUFFUCxFQUFFSyxHQUFHQyxHQUFHRSxFQUFFRCxFQUFFRSxNQUFNLE1BQU1ULEdBQUcsWUFBWUUsRUFBRUYsR0FBR08sRUFBRUcsS0FBS1QsRUFBRU8sR0FBR0csUUFBUUMsUUFBUUosR0FBR0ssS0FBS1YsRUFBRUMsR0FBRyxTQUFTSCxFQUFFQSxHQUFHLE9BQU8sV0FBVyxJQUFJQyxFQUFFWSxLQUFLWCxFQUFFWSxVQUFVLE9BQU8sSUFBSUosa0JBQWtCUCxFQUFFQyxHQUFHLElBQUlDLEVBQUVMLEVBQUVlLE1BQU1kLEVBQUVDLEdBQUcsU0FBU0ksRUFBRU4sR0FBR0QsRUFBRU0sRUFBRUYsRUFBRUMsRUFBRUUsRUFBRUMsRUFBRSxPQUFPUCxHQUFHLFNBQVNPLEVBQUVQLEdBQUdELEVBQUVNLEVBQUVGLEVBQUVDLEVBQUVFLEVBQUVDLEVBQUUsUUFBUVAsR0FBR00sT0FBRSxPQUFZLFNBQVNMLEVBQUVGLEVBQUVDLEdBQUcsT0FBTyxTQUFTRCxHQUFHLEdBQUdpQixNQUFNQyxRQUFRbEIsR0FBRyxPQUFPQSxFQUF2QyxDQUEwQ0EsSUFBSSxTQUFTQSxFQUFFQyxHQUFHLEdBQUcsb0JBQW9Ca0IsUUFB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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,i,o,a){try{var c=e[o](a),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).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 s(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 u(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),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).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 h(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)?h(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 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}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var d=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,s,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.permissions){e.next=4;break}i(new Error("PERMISSIONS_NOT_SUPPORTED")),e.next=37;break;case 4:return e.prev=4,e.next=7,navigator.permissions.query({name:t});case 7:if("denied"!==(o=e.sent).state){e.next=12;break}i(new Error("DENIED_BY_USER")),e.next=32;break;case 12:if(navigator.mediaDevices){e.next=16;break}i(new Error("MEDIA_DEVICES_NOT_SUPPORTED")),e.next=32;break;case 16:return e.next=18,navigator.mediaDevices.getUserMedia(n);case 18:if(e.t0=e.sent,a=[e.t0],"prompt"!==o.state){e.next=26;break}return e.t1=a,e.next=24,new Promise((function(e){o.addEventListener("change",(function(t){"denied"===t.target.state?i(new Error("DENIED_BY_USER")):e()}))}));case 24:e.t2=e.sent,e.t1.push.call(e.t1,e.t2);case 26:return e.next=28,Promise.all(a);case 28:c=e.sent,s=v(c,1),u=s[0],r(u);case 32:e.next=37;break;case 34:e.prev=34,e.t3=e.catch(4),i(e.t3);case 37:case"end":return e.stop()}}),e,null,[[4,34]])})));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)}}(),m=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(s(s({},e.defaultOptions),t||{})).forEach((function(e){var t=u(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,d("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,s,"next",e)}function s(e){r(a,i,o,c,s,"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(m,"defaultOptions",{lang:"fr-FR",continuous:!1,interimResults:!1,maxAlternatives:1}),a(m,"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 y=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.style,a=t.className,c=t.onStart,l=t.onEnd,f=t.onSpeechStart,p=t.onSpeechEnd,v=t.onResult,h=t.onError,d=t.onNoMatch,E=t.__recognitionInstance,b=e.useRef(null),w=e.useRef(null),S=u(e.useState(!1),2),g=S[0],_=S[1];e.useEffect((function(){return w.current=E||new m,function(){w.current.abort(),w.current.cleanup(),clearTimeout(b.current)}}),[E]);var O=function(){b.current=setTimeout(T,i)},R=function(){clearTimeout(b.current),b.current=null},k=function(){try{_(!1);var e=w.current;e.removeEventListener("start",x),e.removeEventListener("end",T),e.removeEventListener("speechstart",j),e.removeEventListener("speechend",P),e.removeEventListener("result",L),e.removeEventListener("error",A),e.removeEventListener("nomatch",D),e.stop()}catch(e){A(e)}},x=function(e){O(),c&&c(e)},T=function(e){R(),k(),l&&l(e)},j=function(e){R(),f&&f(e)},P=function(e){O(),p&&p(e)},L=function(e,t){k(),v&&v(e,t)},A=function(e){k(),h&&h(e)},D=function(e){d&&d(e)};return m.isSupported&&e.cloneElement(e.isValidElement(r)?r:n.createElement("div",{"data-testid":"__speech-root__",style:a?null:s({width:24,height:24,cursor:g?null:"pointer"},o),className:a},n.createElement(y,{isActive:g,iconColor:"#aaa"})),s({},!g&&{onClick:function(){!function(){try{_(!0);var e=w.current;e.addEventListener("start",x),e.addEventListener("end",T),e.addEventListener("speechstart",j),e.addEventListener("speechend",P),e.addEventListener("result",L),e.addEventListener("error",A),e.addEventListener("nomatch",D),e.start()}catch(e){A(e)}}()}}))};return E.propTypes={timeout: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,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudW1kLmpzIiwic291cmNlcyI6WyIuLi9ub2RlX21vZHVsZXMvQHVudGVtcHMvdXNlci1tZWRpYS11dGlscy9kaXN0L2luZGV4LmVzLmpzIiwiLi4vc3JjL1NwZWVjaFJlY29nbml0aW9uV3JhcHBlci5qcyIsIi4uL3NyYy9NaWNyb3Bob25lSWNvbi5qcyIsIi4uL3NyYy9Wb2NhbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBlKGUscix0LG4sYSxvLGkpe3RyeXt2YXIgdT1lW29dKGkpLGM9dS52YWx1ZX1jYXRjaChlKXtyZXR1cm4gdm9pZCB0KGUpfXUuZG9uZT9yKGMpOlByb21pc2UucmVzb2x2ZShjKS50aGVuKG4sYSl9ZnVuY3Rpb24gcihyKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oYSxvKXt2YXIgaT1yLmFwcGx5KHQsbik7ZnVuY3Rpb24gdShyKXtlKGksYSxvLHUsYyxcIm5leHRcIixyKX1mdW5jdGlvbiBjKHIpe2UoaSxhLG8sdSxjLFwidGhyb3dcIixyKX11KHZvaWQgMCl9KSl9fWZ1bmN0aW9uIHQoZSxyKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUscil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIFN5bWJvbHx8IShTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKSlyZXR1cm47dmFyIHQ9W10sbj0hMCxhPSExLG89dm9pZCAwO3RyeXtmb3IodmFyIGksdT1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKG49KGk9dS5uZXh0KCkpLmRvbmUpJiYodC5wdXNoKGkudmFsdWUpLCFyfHx0Lmxlbmd0aCE9PXIpO249ITApO31jYXRjaChlKXthPSEwLG89ZX1maW5hbGx5e3RyeXtufHxudWxsPT11LnJldHVybnx8dS5yZXR1cm4oKX1maW5hbGx5e2lmKGEpdGhyb3cgb319cmV0dXJuIHR9KGUscil8fGZ1bmN0aW9uKGUscil7aWYoIWUpcmV0dXJuO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBuKGUscik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO1wiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpO2lmKFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbShlKTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG4oZSxyKX0oZSxyKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIG4oZSxyKXsobnVsbD09cnx8cj5lLmxlbmd0aCkmJihyPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxuPW5ldyBBcnJheShyKTt0PHI7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn12YXIgYT1mdW5jdGlvbigpe3ZhciBlPXIocmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoKGZ1bmN0aW9uIGUobixhKXtyZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdChcInJldHVyblwiLG5ldyBQcm9taXNlKGZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZShyLG8pe3ZhciBpLHUsYyxzLGY7cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihuYXZpZ2F0b3IucGVybWlzc2lvbnMpe2UubmV4dD00O2JyZWFrfW8obmV3IEVycm9yKFwiUEVSTUlTU0lPTlNfTk9UX1NVUFBPUlRFRFwiKSksZS5uZXh0PTM3O2JyZWFrO2Nhc2UgNDpyZXR1cm4gZS5wcmV2PTQsZS5uZXh0PTcsbmF2aWdhdG9yLnBlcm1pc3Npb25zLnF1ZXJ5KHtuYW1lOm59KTtjYXNlIDc6aWYoXCJkZW5pZWRcIiE9PShpPWUuc2VudCkuc3RhdGUpe2UubmV4dD0xMjticmVha31vKG5ldyBFcnJvcihcIkRFTklFRF9CWV9VU0VSXCIpKSxlLm5leHQ9MzI7YnJlYWs7Y2FzZSAxMjppZihuYXZpZ2F0b3IubWVkaWFEZXZpY2VzKXtlLm5leHQ9MTY7YnJlYWt9byhuZXcgRXJyb3IoXCJNRURJQV9ERVZJQ0VTX05PVF9TVVBQT1JURURcIikpLGUubmV4dD0zMjticmVhaztjYXNlIDE2OnJldHVybiBlLm5leHQ9MTgsbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoYSk7Y2FzZSAxODppZihlLnQwPWUuc2VudCx1PVtlLnQwXSxcInByb21wdFwiIT09aS5zdGF0ZSl7ZS5uZXh0PTI2O2JyZWFrfXJldHVybiBlLnQxPXUsZS5uZXh0PTI0LG5ldyBQcm9taXNlKChmdW5jdGlvbihlKXtpLmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwoZnVuY3Rpb24ocil7XCJkZW5pZWRcIj09PXIudGFyZ2V0LnN0YXRlP28obmV3IEVycm9yKFwiREVOSUVEX0JZX1VTRVJcIikpOmUoKX0pKX0pKTtjYXNlIDI0OmUudDI9ZS5zZW50LGUudDEucHVzaC5jYWxsKGUudDEsZS50Mik7Y2FzZSAyNjpyZXR1cm4gZS5uZXh0PTI4LFByb21pc2UuYWxsKHUpO2Nhc2UgMjg6Yz1lLnNlbnQscz10KGMsMSksZj1zWzBdLHIoZik7Y2FzZSAzMjplLm5leHQ9Mzc7YnJlYWs7Y2FzZSAzNDplLnByZXY9MzQsZS50Mz1lLmNhdGNoKDQpLG8oZS50Myk7Y2FzZSAzNzpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSxudWxsLFtbNCwzNF1dKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHIsdCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSkpO2Nhc2UgMTpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpO3JldHVybiBmdW5jdGlvbihyLHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7ZXhwb3J0e2EgYXMgZ2V0VXNlck1lZGlhU3RyZWFtfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3VaWE11YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTR1TDNOeVl5OW5aWFJWYzJWeVRXVmthV0ZUZEhKbFlXMHVhbk1pWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUx5b3FYRzRnS2lCU1pYUjFjbTV6SUdFZ2NISnZiV2x6WlNCeVpYTnZiSFpsWkNCM2FHVnVJSFJvWlNCdFpXUnBZU0JwY3lCaGRYUm9iM0pwZW1Wa0lHRnVaQ0IwYUdVZ2MzUnlaV0Z0SUdseklISmxkSEpwWlhabFpGeHVJQ29nUUhCaGNtRnRJSEJsY20xcGMzTnBiMjVPWVcxbElDQWdJQ0FnSUNBZ0lDQWdUbUZ0WlNCdlppQjBhR1VnY0dWeWJXbHpjMmx2Ymk0Z1FITmxaU0JvZEhSd2N6b3ZMM2N6WXk1bmFYUm9kV0l1YVc4dmNHVnliV2x6YzJsdmJuTXZJMlZ1ZFcxa1pXWXRjR1Z5YldsemMybHZibTVoYldWY2JpQXFJRUJ3WVhKaGJTQnRaV1JwWVZOMGNtVmhiVU52Ym5OMGNtRnBiblJ6SUNBZ0lFTnZibk4wY21GcGJuUnpJRzlpYW1WamRDNGdRSE5sWlNCb2RIUndjem92TDJSbGRtVnNiM0JsY2k1dGIzcHBiR3hoTG05eVp5OWxiaTFWVXk5a2IyTnpMMWRsWWk5QlVFa3ZUV1ZrYVdGVGRISmxZVzFEYjI1emRISmhhVzUwYzF4dUlDb2dRSEpsZEhWeWJuTWdlMUJ5YjIxcGMyVjlYRzRnS2k5Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUdGemVXNWpJQ2h3WlhKdGFYTnphVzl1VG1GdFpTd2diV1ZrYVdGVGRISmxZVzFEYjI1emRISmhhVzUwY3lrZ1BUNGdlMXh1WEhSeVpYUjFjbTRnYm1WM0lGQnliMjFwYzJVb1lYTjVibU1nS0hKbGMyOXNkbVVzSUhKbGFtVmpkQ2tnUFQ0Z2UxeHVYSFJjZEdsbUlDZ2hibUYyYVdkaGRHOXlMbkJsY20xcGMzTnBiMjV6S1NCN1hHNWNkRngwWEhSeVpXcGxZM1FvYm1WM0lFVnljbTl5S0NkUVJWSk5TVk5UU1U5T1UxOU9UMVJmVTFWUVVFOVNWRVZFSnlrcFhHNWNkRngwZlNCbGJITmxJSHRjYmx4MFhIUmNkSFJ5ZVNCN1hHNWNkRngwWEhSY2RHTnZibk4wSUhCbGNtMXBjM05wYjI1VGRHRjBkWE1nUFNCaGQyRnBkQ0J1WVhacFoyRjBiM0l1Y0dWeWJXbHpjMmx2Ym5NdWNYVmxjbmtvZXlCdVlXMWxPaUJ3WlhKdGFYTnphVzl1VG1GdFpTQjlLVnh1WEhSY2RGeDBYSFJwWmlBb2NHVnliV2x6YzJsdmJsTjBZWFIxY3k1emRHRjBaU0E5UFQwZ0oyUmxibWxsWkNjcElIdGNibHgwWEhSY2RGeDBYSFJ5WldwbFkzUW9ibVYzSUVWeWNtOXlLQ2RFUlU1SlJVUmZRbGxmVlZORlVpY3BLVnh1WEhSY2RGeDBYSFI5SUdWc2MyVWdhV1lnS0NGdVlYWnBaMkYwYjNJdWJXVmthV0ZFWlhacFkyVnpLU0I3WEc1Y2RGeDBYSFJjZEZ4MGNtVnFaV04wS0c1bGR5QkZjbkp2Y2lnblRVVkVTVUZmUkVWV1NVTkZVMTlPVDFSZlUxVlFVRTlTVkVWRUp5a3BYRzVjZEZ4MFhIUmNkSDBnWld4elpTQjdYRzVjZEZ4MFhIUmNkRngwWTI5dWMzUWdjSEp2YldselpYTWdQU0JiWVhkaGFYUWdibUYyYVdkaGRHOXlMbTFsWkdsaFJHVjJhV05sY3k1blpYUlZjMlZ5VFdWa2FXRW9iV1ZrYVdGVGRISmxZVzFEYjI1emRISmhhVzUwY3lsZFhHNWNkRngwWEhSY2RGeDBhV1lnS0hCbGNtMXBjM05wYjI1VGRHRjBkWE11YzNSaGRHVWdQVDA5SUNkd2NtOXRjSFFuS1NCN1hHNWNkRngwWEhSY2RGeDBYSFJ3Y205dGFYTmxjeTV3ZFhOb0tGeHVYSFJjZEZ4MFhIUmNkRngwWEhSaGQyRnBkQ0J1WlhjZ1VISnZiV2x6WlNnb2NtVnpiMngyWlNrZ1BUNGdlMXh1WEhSY2RGeDBYSFJjZEZ4MFhIUmNkSEJsY20xcGMzTnBiMjVUZEdGMGRYTXVZV1JrUlhabGJuUk1hWE4wWlc1bGNpZ25ZMmhoYm1kbEp5d2dLR1YyWlc1MEtTQTlQaUI3WEc1Y2RGeDBYSFJjZEZ4MFhIUmNkRngwWEhScFppQW9aWFpsYm5RdWRHRnlaMlYwTG5OMFlYUmxJRDA5UFNBblpHVnVhV1ZrSnlrZ2UxeHVYSFJjZEZ4MFhIUmNkRngwWEhSY2RGeDBYSFJ5WldwbFkzUW9ibVYzSUVWeWNtOXlLQ2RFUlU1SlJVUmZRbGxmVlZORlVpY3BLVnh1WEhSY2RGeDBYSFJjZEZ4MFhIUmNkRngwZlNCbGJITmxJSHRjYmx4MFhIUmNkRngwWEhSY2RGeDBYSFJjZEZ4MGNtVnpiMngyWlNncFhHNWNkRngwWEhSY2RGeDBYSFJjZEZ4MFhIUjlYRzVjZEZ4MFhIUmNkRngwWEhSY2RGeDBmU2xjYmx4MFhIUmNkRngwWEhSY2RGeDBmU2xjYmx4MFhIUmNkRngwWEhSY2RDbGNibHgwWEhSY2RGeDBYSFI5WEc1Y2RGeDBYSFJjZEZ4MFkyOXVjM1FnVzNOMGNtVmhiVjBnUFNCaGQyRnBkQ0JRY205dGFYTmxMbUZzYkNod2NtOXRhWE5sY3lsY2JseDBYSFJjZEZ4MFhIUnlaWE52YkhabEtITjBjbVZoYlNsY2JseDBYSFJjZEZ4MGZWeHVYSFJjZEZ4MGZTQmpZWFJqYUNBb1pYSnliM0lwSUh0Y2JseDBYSFJjZEZ4MGNtVnFaV04wS0dWeWNtOXlLVnh1WEhSY2RGeDBmVnh1WEhSY2RIMWNibHgwZlNsY2JuMWNiaUpkTENKdVlXMWxjeUk2V3lKd1pYSnRhWE56YVc5dVRtRnRaU0lzSW0xbFpHbGhVM1J5WldGdFEyOXVjM1J5WVdsdWRITWlMQ0pRY205dGFYTmxJaXdpY21WemIyeDJaU0lzSW5KbGFtVmpkQ0lzSW01aGRtbG5ZWFJ2Y2lJc0luQmxjbTFwYzNOcGIyNXpJaXdpUlhKeWIzSWlMQ0p4ZFdWeWVTSXNJbTVoYldVaUxDSndaWEp0YVhOemFXOXVVM1JoZEhWeklpd2ljM1JoZEdVaUxDSnRaV1JwWVVSbGRtbGpaWE1pTENKblpYUlZjMlZ5VFdWa2FXRWlMQ0p3Y205dGFYTmxjeUlzSW1Ga1pFVjJaVzUwVEdsemRHVnVaWElpTENKbGRtVnVkQ0lzSW5SaGNtZGxkQ0lzSW5CMWMyZ2lMQ0poYkd3aUxDSnpkSEpsWVcwaVhTd2liV0Z3Y0dsdVozTWlPaUp0ZDBOQlRVRXNhMFJCUVdVc1YwRkJUMEVzUlVGQlowSkRMRFJIUVVNNVFpeEpRVUZKUXl4dlJFRkJVU3hYUVVGUFF5eEZRVUZUUXl4dlIwRkROMEpETEZWQlFWVkRMRFJDUVVOa1JpeEZRVUZQTEVsQlFVbEhMRTFCUVUwc09FVkJSMlZHTEZWQlFWVkRMRmxCUVZsRkxFMUJRVTBzUTBGQlJVTXNTMEZCVFZRc1kwRkRjRU1zV1VGRWVrSlZMRlZCUTJWRExIVkNRVU53UWxBc1JVRkJUeXhKUVVGSlJ5eE5RVUZOTERoRFFVTk9SaXhWUVVGVlR5dzRRa0ZEY2tKU0xFVkJRVThzU1VGQlNVY3NUVUZCVFN4NVJVRkZUMFlzVlVGQlZVOHNZVUZCWVVNc1lVRkJZVm9zTUVKQlFYUkVZU3hUUVVONVFpeFhRVUV6UWtvc1JVRkJhVUpETEcxRFFVTndRa2NzV1VGRFR5eEpRVUZKV2l4VFFVRlJMRk5CUVVORExFZEJRMnhDVHl4RlFVRnBRa3NzYVVKQlFXbENMRlZCUVZVc1UwRkJRME1zUjBGRGFrSXNWMEZCZGtKQkxFVkJRVTFETEU5QlFVOU9MRTFCUTJoQ1VDeEZRVUZQTEVsQlFVbEhMRTFCUVUwc2JVSkJSV3BDU2l4dFEwRk9TMlVzT0VOQldXRm9RaXhSUVVGUmFVSXNTVUZCU1V3c05rSkJRVFZDVFN4UFFVTlFha0lzUlVGQlVXbENMRFpFUVVkVWFFSWlmUT09XG4iLCJpbXBvcnQgeyBnZXRVc2VyTWVkaWFTdHJlYW0gfSBmcm9tICdAdW50ZW1wcy91c2VyLW1lZGlhLXV0aWxzJ1xuXG5jbGFzcyBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIge1xuXHRzdGF0aWMgZGVmYXVsdE9wdGlvbnMgPSB7XG5cdFx0bGFuZzogJ2ZyLUZSJyxcblx0XHRjb250aW51b3VzOiBmYWxzZSxcblx0XHRpbnRlcmltUmVzdWx0czogZmFsc2UsXG5cdFx0bWF4QWx0ZXJuYXRpdmVzOiAxLFxuXHR9XG5cblx0c3RhdGljIGV2ZW50VHlwZXMgPSB7XG5cdFx0QVVESU9fRU5EOiAnYXVkaW9lbmQnLFxuXHRcdEFVRElPX1NUQVJUOiAnYXVkaW9zdGFydCcsXG5cdFx0RU5EOiAnZW5kJyxcblx0XHRFUlJPUjogJ2Vycm9yJyxcblx0XHROT19NQVRDSDogJ25vbWF0Y2gnLFxuXHRcdFJFU1VMVDogJ3Jlc3VsdCcsXG5cdFx0U09VTkRfRU5EOiAnc291bmRlbmQnLFxuXHRcdFNPVU5EX1NUQVJUOiAnc291bmRzdGFydCcsXG5cdFx0U1BFRUNIX0VORDogJ3NwZWVjaGVuZCcsXG5cdFx0U1BFRUNIX1NUQVJUOiAnc3BlZWNoc3RhcnQnLFxuXHRcdFNUQVJUOiAnc3RhcnQnLFxuXHR9XG5cblx0c3RhdGljIGdldCBpc1N1cHBvcnRlZCgpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0ISF3aW5kb3cuU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdCEhd2luZG93LndlYmtpdFNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHQhIXdpbmRvdy5tb3pTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0ISF3aW5kb3cubXNTcGVlY2hSZWNvZ25pdGlvblxuXHRcdClcblx0fVxuXG5cdHN0YXRpYyBzZXQgaXNTdXBwb3J0ZWQoXykge1xuXHRcdHRocm93IG5ldyBFcnJvcignWW91IGNhbm5vdCBzZXQgaXNTdXBwb3J0ZWQgZGlyZWN0bHkuJylcblx0fVxuXG5cdF9pbnN0YW5jZSA9IG51bGxcblx0X2xpc3RlbmVycyA9IG51bGxcblxuXHRjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG5cdFx0Y29uc3QgU3BlZWNoUmVjb2duaXRpb24gPVxuXHRcdFx0d2luZG93LlNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHR3aW5kb3cud2Via2l0U3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHdpbmRvdy5tb3pTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0d2luZG93Lm1zU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHt9XG5cdFx0dGhpcy5faW5zdGFuY2UgPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKVxuXHRcdHRoaXMuX2xpc3RlbmVycyA9IHt9XG5cblx0XHRPYmplY3QuZW50cmllcyh7IC4uLlNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5kZWZhdWx0T3B0aW9ucywgLi4uKG9wdGlvbnMgfHwge30pIH0pLmZvckVhY2goXG5cdFx0XHQoW2tleSwgdmFsdWVdKSA9PiAodGhpcy5faW5zdGFuY2Vba2V5XSA9IHZhbHVlKVxuXHRcdClcblx0fVxuXG5cdGdldCBpbnN0YW5jZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5faW5zdGFuY2Vcblx0fVxuXG5cdHNldCBpbnN0YW5jZShfKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHNldCBpbnN0YW5jZSBkaXJlY3RseS4nKVxuXHR9XG5cblx0YXN5bmMgc3RhcnQoKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldFVzZXJNZWRpYVN0cmVhbSgnbWljcm9waG9uZScsIHsgYXVkaW86IHRydWUgfSlcblx0XHRcdFx0aWYgKCFzdHJlYW0pIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byByZXRyaWV2ZSB0aGUgc3RyZWFtIGZyb20gbWVkaWEgZGV2aWNlJylcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLl9pbnN0YW5jZS5zdGFydCgpXG5cdFx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0XHRjb25zdCBlcnJvckhhbmRsZXIgPSB0aGlzLl9saXN0ZW5lcnMuZXJyb3Jcblx0XHRcdFx0aWYgKCEhZXJyb3JIYW5kbGVyKSB7XG5cdFx0XHRcdFx0ZXJyb3JIYW5kbGVyKGVycm9yKVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdHN0b3AoKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UpIHtcblx0XHRcdHRoaXMuX2luc3RhbmNlLnN0b3AoKVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRhYm9ydCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dGhpcy5faW5zdGFuY2UuYWJvcnQoKVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRhZGRFdmVudExpc3RlbmVyKHR5cGUsIGNhbGxiYWNrKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UgJiYgdGhpcy5faW5jbHVkZXNFdmVudFR5cGUodHlwZSkpIHtcblx0XHRcdGlmICghIXRoaXMuX2xpc3RlbmVyc1t0eXBlXSkge1xuXHRcdFx0XHR0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSlcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgaGFuZGxlciA9IChldmVudCkgPT4ge1xuXHRcdFx0XHRsZXQgYWRkaXRpb25hbEFyZ3MgPSBbXVxuXHRcdFx0XHRpZiAodHlwZSA9PT0gU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmV2ZW50VHlwZXMuUkVTVUxUKSB7XG5cdFx0XHRcdFx0aWYgKCEhZXZlbnQucmVzdWx0cyAmJiBldmVudC5yZXN1bHRzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGFkZGl0aW9uYWxBcmdzLnB1c2goZXZlbnQucmVzdWx0c1swXVswXS50cmFuc2NyaXB0KVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCEhY2FsbGJhY2sgJiYgY2FsbGJhY2suYXBwbHkodGhpcywgWy4uLmFkZGl0aW9uYWxBcmdzLCBldmVudF0pXG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9pbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKHR5cGUsIChlKSA9PiBoYW5kbGVyKGUpKVxuXG5cdFx0XHR0aGlzLl9saXN0ZW5lcnNbdHlwZV0gPSBoYW5kbGVyXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdHJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSkge1xuXHRcdGNvbnN0IGhhbmRsZXIgPSB0aGlzLl9saXN0ZW5lcnNbdHlwZV1cblx0XHR0aGlzLl9pbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpXG5cblx0XHRkZWxldGUgdGhpcy5fbGlzdGVuZXJzW3R5cGVdXG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0Y2xlYW51cCgpIHtcblx0XHR0aGlzLnN0b3AoKVxuXG5cdFx0T2JqZWN0LmtleXModGhpcy5fbGlzdGVuZXJzKS5mb3JFYWNoKChrZXkpID0+IHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihrZXkpKVxuXHRcdHRoaXMuX2luc3RhbmNlID0gbnVsbFxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdF9pbmNsdWRlc0V2ZW50VHlwZSA9IChldmVudFR5cGUpID0+XG5cdFx0T2JqZWN0LnZhbHVlcyhTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuZXZlbnRUeXBlcykuZmluZCgodHlwZSkgPT4gdHlwZSA9PT0gZXZlbnRUeXBlKVxufVxuXG5leHBvcnQgZGVmYXVsdCBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXJcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuY29uc3QgTWljcm9waG9uZUljb24gPSAoeyBpY29uQ29sb3IgPSAnYmxhY2snLCBhY3RpdmVDb2xvciA9ICdyZWQnLCBpc0FjdGl2ZSA9IGZhbHNlIH0pID0+IHtcblx0cmV0dXJuIChcblx0XHQ8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuXHRcdFx0PGc+XG5cdFx0XHRcdDxwYXRoXG5cdFx0XHRcdFx0ZmlsbD17aWNvbkNvbG9yfVxuXHRcdFx0XHRcdGQ9XCJNMTIgMTRjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNMMTUgNWMwLTEuNjYtMS4zNC0zLTMtM1M5IDMuMzQgOSA1djZjMCAxLjY2IDEuMzQgMyAzIDN6bTUuMy0zYzAgMy0yLjU0IDUuMS01LjMgNS4xUzYuNyAxNCA2LjcgMTFINWMwIDMuNDEgMi43MiA2LjIzIDYgNi43MlYyMWgydi0zLjI4YzMuMjgtLjQ4IDYtMy4zIDYtNi43MmgtMS43elwiXG5cdFx0XHRcdC8+XG5cdFx0XHRcdHtpc0FjdGl2ZSAmJiA8Y2lyY2xlIGZpbGw9e2FjdGl2ZUNvbG9yfSBjeD1cIjE2XCIgY3k9XCI0XCIgcj1cIjRcIiAvPn1cblx0XHRcdDwvZz5cblx0XHQ8L3N2Zz5cblx0KVxufVxuXG5leHBvcnQgZGVmYXVsdCBNaWNyb3Bob25lSWNvblxuIiwiaW1wb3J0IFJlYWN0LCB7IGNsb25lRWxlbWVudCwgaXNWYWxpZEVsZW1lbnQsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuXG5pbXBvcnQgU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyIGZyb20gJy4vU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyJ1xuXG5pbXBvcnQgTWljcm9waG9uZUljb24gZnJvbSAnLi9NaWNyb3Bob25lSWNvbidcblxuY29uc3QgVm9jYWwgPSAoe1xuXHRjaGlsZHJlbixcblx0dGltZW91dCxcblx0c3R5bGUsXG5cdGNsYXNzTmFtZSxcblx0b25TdGFydCxcblx0b25FbmQsXG5cdG9uU3BlZWNoU3RhcnQsXG5cdG9uU3BlZWNoRW5kLFxuXHRvblJlc3VsdCxcblx0b25FcnJvcixcblx0b25Ob01hdGNoLFxuXHRfX3JlY29nbml0aW9uSW5zdGFuY2UsXG59KSA9PiB7XG5cdGNvbnN0IHRpbWVvdXRSZWYgPSB1c2VSZWYobnVsbClcblx0Y29uc3QgcmVjb2duaXRpb25SZWYgPSB1c2VSZWYobnVsbClcblxuXHRjb25zdCBbaXNMaXN0ZW5pbmcsIHNldElzTGlzdGVuaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0cmVjb2duaXRpb25SZWYuY3VycmVudCA9IF9fcmVjb2duaXRpb25JbnN0YW5jZSB8fCBuZXcgU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyKClcblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0cmVjb2duaXRpb25SZWYuY3VycmVudC5hYm9ydCgpXG5cdFx0XHRyZWNvZ25pdGlvblJlZi5jdXJyZW50LmNsZWFudXAoKVxuXHRcdFx0Y2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudClcblx0XHR9XG5cdH0sIFtfX3JlY29nbml0aW9uSW5zdGFuY2VdKVxuXG5cdGNvbnN0IHN0YXJ0VGltZXIgPSAoKSA9PiB7XG5cdFx0dGltZW91dFJlZi5jdXJyZW50ID0gc2V0VGltZW91dChfb25FbmQsIHRpbWVvdXQpXG5cdH1cblxuXHRjb25zdCBzdG9wVGltZXIgPSAoKSA9PiB7XG5cdFx0Y2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudClcblx0XHR0aW1lb3V0UmVmLmN1cnJlbnQgPSBudWxsXG5cdH1cblxuXHRjb25zdCBzdGFydFJlY29nbml0aW9uID0gKCkgPT4ge1xuXHRcdHRyeSB7XG5cdFx0XHRzZXRJc0xpc3RlbmluZyh0cnVlKVxuXG5cdFx0XHRjb25zdCB7IGN1cnJlbnQ6IHIgfSA9IHJlY29nbml0aW9uUmVmXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXJ0JywgX29uU3RhcnQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZCcsIF9vbkVuZClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignc3BlZWNoc3RhcnQnLCBfb25TcGVlY2hTdGFydClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignc3BlZWNoZW5kJywgX29uU3BlZWNoRW5kKVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdyZXN1bHQnLCBfb25SZXN1bHQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgX29uRXJyb3IpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ25vbWF0Y2gnLCBfb25Ob01hdGNoKVxuXHRcdFx0ci5zdGFydCgpXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdF9vbkVycm9yKGVycm9yKVxuXHRcdH1cblx0fVxuXG5cdGNvbnN0IHN0b3BSZWNvZ25pdGlvbiA9ICgpID0+IHtcblx0XHR0cnkge1xuXHRcdFx0c2V0SXNMaXN0ZW5pbmcoZmFsc2UpXG5cblx0XHRcdGNvbnN0IHsgY3VycmVudDogciB9ID0gcmVjb2duaXRpb25SZWZcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBfb25TdGFydClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignZW5kJywgX29uRW5kKVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzcGVlY2hzdGFydCcsIF9vblNwZWVjaFN0YXJ0KVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzcGVlY2hlbmQnLCBfb25TcGVlY2hFbmQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc3VsdCcsIF9vblJlc3VsdClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJyb3InLCBfb25FcnJvcilcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcignbm9tYXRjaCcsIF9vbk5vTWF0Y2gpXG5cdFx0XHRyLnN0b3AoKVxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRfb25FcnJvcihlcnJvcilcblx0XHR9XG5cdH1cblxuXHRjb25zdCBzdGFydCA9ICgpID0+IHtcblx0XHRzdGFydFRpbWVyKClcblx0fVxuXG5cdGNvbnN0IGVuZCA9ICgpID0+IHtcblx0XHRzdG9wVGltZXIoKVxuXHRcdHN0b3BSZWNvZ25pdGlvbigpXG5cdH1cblxuXHRjb25zdCBfb25DbGljayA9ICgpID0+IHtcblx0XHRzdGFydFJlY29nbml0aW9uKClcblx0fVxuXG5cdGNvbnN0IF9vblN0YXJ0ID0gKGUpID0+IHtcblx0XHRzdGFydCgpXG5cblx0XHQhIW9uU3RhcnQgJiYgb25TdGFydChlKVxuXHR9XG5cblx0Y29uc3QgX29uRW5kID0gKGUpID0+IHtcblx0XHRlbmQoKVxuXG5cdFx0ISFvbkVuZCAmJiBvbkVuZChlKVxuXHR9XG5cblx0Y29uc3QgX29uU3BlZWNoU3RhcnQgPSAoZSkgPT4ge1xuXHRcdHN0b3BUaW1lcigpXG5cblx0XHQhIW9uU3BlZWNoU3RhcnQgJiYgb25TcGVlY2hTdGFydChlKVxuXHR9XG5cblx0Y29uc3QgX29uU3BlZWNoRW5kID0gKGUpID0+IHtcblx0XHRzdGFydFRpbWVyKClcblxuXHRcdCEhb25TcGVlY2hFbmQgJiYgb25TcGVlY2hFbmQoZSlcblx0fVxuXG5cdGNvbnN0IF9vblJlc3VsdCA9IChyZXN1bHQsIGV2ZW50KSA9PiB7XG5cdFx0c3RvcFJlY29nbml0aW9uKClcblxuXHRcdCEhb25SZXN1bHQgJiYgb25SZXN1bHQocmVzdWx0LCBldmVudClcblx0fVxuXG5cdGNvbnN0IF9vbkVycm9yID0gKGVycm9yKSA9PiB7XG5cdFx0c3RvcFJlY29nbml0aW9uKClcblxuXHRcdCEhb25FcnJvciAmJiBvbkVycm9yKGVycm9yKVxuXHR9XG5cblx0Y29uc3QgX29uTm9NYXRjaCA9IChlKSA9PiB7XG5cdFx0ISFvbk5vTWF0Y2ggJiYgb25Ob01hdGNoKGUpXG5cdH1cblxuXHRjb25zdCBfcmVuZGVyRGVmYXVsdCA9ICgpID0+IChcblx0XHQ8ZGl2XG5cdFx0XHRkYXRhLXRlc3RpZD1cIl9fc3BlZWNoLXJvb3RfX1wiXG5cdFx0XHRzdHlsZT17Y2xhc3NOYW1lID8gbnVsbCA6IHsgd2lkdGg6IDI0LCBoZWlnaHQ6IDI0LCBjdXJzb3I6ICFpc0xpc3RlbmluZyA/ICdwb2ludGVyJyA6IG51bGwsIC4uLnN0eWxlIH19XG5cdFx0XHRjbGFzc05hbWU9e2NsYXNzTmFtZX1cblx0XHQ+XG5cdFx0XHQ8TWljcm9waG9uZUljb24gaXNBY3RpdmU9e2lzTGlzdGVuaW5nfSBpY29uQ29sb3I9XCIjYWFhXCIgLz5cblx0XHQ8L2Rpdj5cblx0KVxuXG5cdHJldHVybiAoXG5cdFx0U3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmlzU3VwcG9ydGVkICYmXG5cdFx0Y2xvbmVFbGVtZW50KGlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSA/IGNoaWxkcmVuIDogX3JlbmRlckRlZmF1bHQoKSwge1xuXHRcdFx0Li4uKCFpc0xpc3RlbmluZyAmJiB7IG9uQ2xpY2s6IF9vbkNsaWNrIH0pLFxuXHRcdH0pXG5cdClcbn1cblxuVm9jYWwucHJvcFR5cGVzID0ge1xuXHQvKiogRGVmaW5lcyB0aGUgdGltZSBpbiBtcyB0byB3YWl0IGJlZm9yZSBkaXNjYXJkaW5nIHRoZSByZWNvZ25pdGlvbiAqL1xuXHR0aW1lb3V0OiBQcm9wVHlwZXMubnVtYmVyLFxuXHQvKiogRGVmaW5lcyB0aGUgc3R5bGVzIG9mIHRoZSBkZWZhdWx0IGVsZW1lbnQgaWYgY2xhc3NOYW1lIGlzIG5vdCBzcGVjaWZpZWQgKi9cblx0c3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG5cdC8qKiBEZWZpbmVzIHRoZSBjbGFzcyBvZiB0aGUgZGVmYXVsdCBlbGVtZW50ICovXG5cdGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHJlY29nbml0aW9uIHN0YXJ0cyAqL1xuXHRvblN0YXJ0OiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHJlY29nbml0aW9uIGVuZHMgKi9cblx0b25FbmQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgc3BlZWNoIHN0YXJ0cyAqL1xuXHRvblNwZWVjaFN0YXJ0OiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHNwZWVjaCBlbmRzICovXG5cdG9uU3BlZWNoRW5kOiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gYSByZXN1bHQgaXMgcmVjb2duaXplZCAqL1xuXHRvblJlc3VsdDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIGFuIGVycm9yIG9jY3VycyAqL1xuXHRvbkVycm9yOiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gbm8gcmVzdWx0IGNhbiBiZSByZWNvZ25pemVkICovXG5cdG9uTm9NYXRjaDogUHJvcFR5cGVzLmZ1bmMsXG59XG5cblZvY2FsLmRlZmF1bHRQcm9wcyA9IHtcblx0dGltZW91dDogMzAwMCxcblx0c3R5bGU6IG51bGwsXG5cdGNsYXNzTmFtZTogbnVsbCxcblx0b25TdGFydDogbnVsbCxcblx0b25FbmQ6IG51bGwsXG5cdG9uU3BlZWNoU3RhcnQ6IG51bGwsXG5cdG9uU3BlZWNoRW5kOiBudWxsLFxuXHRvblJlc3VsdDogbnVsbCxcblx0b25FcnJvcjogbnVsbCxcblx0b25Ob01hdGNoOiBudWxsLFxufVxuXG5leHBvcnQgZGVmYXVsdCBWb2NhbFxuIl0sIm5hbWVzIjpbImUiLCJyIiwidCIsIm4iLCJhIiwibyIsImkiLCJ1IiwiYyIsInZhbHVlIiwiZG9uZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsInRoaXMiLCJhcmd1bWVudHMiLCJhcHBseSIsIkFycmF5IiwiaXNBcnJheSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiT2JqZWN0IiwibmV4dCIsInB1c2giLCJsZW5ndGgiLCJyZXR1cm4iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiVHlwZUVycm9yIiwicmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIndyYXAiLCJwcmV2IiwiYWJydXB0IiwicyIsImYiLCJuYXZpZ2F0b3IiLCJwZXJtaXNzaW9ucyIsIkVycm9yIiwicXVlcnkiLCJzZW50Iiwic3RhdGUiLCJtZWRpYURldmljZXMiLCJnZXRVc2VyTWVkaWEiLCJ0MCIsInQxIiwiYWRkRXZlbnRMaXN0ZW5lciIsInRhcmdldCIsInQyIiwiYWxsIiwidDMiLCJjYXRjaCIsInN0b3AiLCJTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIiLCJvcHRpb25zIiwiZXZlbnRUeXBlIiwidmFsdWVzIiwiZXZlbnRUeXBlcyIsImZpbmQiLCJ0eXBlIiwiU3BlZWNoUmVjb2duaXRpb24iLCJ3aW5kb3ciLCJ3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbiIsIm1velNwZWVjaFJlY29nbml0aW9uIiwibXNTcGVlY2hSZWNvZ25pdGlvbiIsIl9pbnN0YW5jZSIsIl9saXN0ZW5lcnMiLCJlbnRyaWVzIiwiZGVmYXVsdE9wdGlvbnMiLCJmb3JFYWNoIiwia2V5IiwiX3RoaXMiLCJfIiwiZ2V0VXNlck1lZGlhU3RyZWFtIiwiYXVkaW8iLCJzdGFydCIsImVycm9ySGFuZGxlciIsImVycm9yIiwiYWJvcnQiLCJjYWxsYmFjayIsIl9pbmNsdWRlc0V2ZW50VHlwZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVyIiwiZXZlbnQiLCJhZGRpdGlvbmFsQXJncyIsIlJFU1VMVCIsInJlc3VsdHMiLCJ0cmFuc2NyaXB0IiwiX3RoaXMyIiwia2V5cyIsIl90aGlzMyIsImxhbmciLCJjb250aW51b3VzIiwiaW50ZXJpbVJlc3VsdHMiLCJtYXhBbHRlcm5hdGl2ZXMiLCJBVURJT19FTkQiLCJBVURJT19TVEFSVCIsIkVORCIsIkVSUk9SIiwiTk9fTUFUQ0giLCJTT1VORF9FTkQiLCJTT1VORF9TVEFSVCIsIlNQRUVDSF9FTkQiLCJTUEVFQ0hfU1RBUlQiLCJTVEFSVCIsIk1pY3JvcGhvbmVJY29uIiwiaWNvbkNvbG9yIiwiYWN0aXZlQ29sb3IiLCJpc0FjdGl2ZSIsIlJlYWN0IiwieG1sbnMiLCJ3aWR0aCIsImhlaWdodCIsInZpZXdCb3giLCJmaWxsIiwiZCIsImN4IiwiY3kiLCJWb2NhbCIsImNoaWxkcmVuIiwidGltZW91dCIsInN0eWxlIiwiY2xhc3NOYW1lIiwib25TdGFydCIsIm9uRW5kIiwib25TcGVlY2hTdGFydCIsIm9uU3BlZWNoRW5kIiwib25SZXN1bHQiLCJvbkVycm9yIiwib25Ob01hdGNoIiwiX19yZWNvZ25pdGlvbkluc3RhbmNlIiwidGltZW91dFJlZiIsInVzZVJlZiIsInJlY29nbml0aW9uUmVmIiwidXNlU3RhdGUiLCJpc0xpc3RlbmluZyIsInNldElzTGlzdGVuaW5nIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImNsZWFudXAiLCJjbGVhclRpbWVvdXQiLCJzdGFydFRpbWVyIiwic2V0VGltZW91dCIsIl9vbkVuZCIsInN0b3BUaW1lciIsInN0b3BSZWNvZ25pdGlvbiIsIl9vblN0YXJ0IiwiX29uU3BlZWNoU3RhcnQiLCJfb25TcGVlY2hFbmQiLCJfb25SZXN1bHQiLCJfb25FcnJvciIsIl9vbk5vTWF0Y2giLCJyZXN1bHQiLCJpc1N1cHBvcnRlZCIsImNsb25lRWxlbWVudCIsImlzVmFsaWRFbGVtZW50IiwiY3Vyc29yIiwib25DbGljayIsInN0YXJ0UmVjb2duaXRpb24iLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJudW1iZXIiLCJvYmplY3QiLCJzdHJpbmciLCJmdW5jIiwiZGVmYXVsdFByb3BzIl0sIm1hcHBpbmdzIjoiOHdFQUFBLFNBQVNBLEVBQUVBLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEVBQUVDLEdBQUcsSUFBSSxJQUFJQyxFQUFFUCxFQUFFSyxHQUFHQyxHQUFHRSxFQUFFRCxF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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),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).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 s(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 u(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),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).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,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,s,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(navigator.permissions){e.next=4;break}i(new Error("PERMISSIONS_NOT_SUPPORTED")),e.next=37;break;case 4:return e.prev=4,e.next=7,navigator.permissions.query({name:t});case 7:if("denied"!==(o=e.sent).state){e.next=12;break}i(new Error("DENIED_BY_USER")),e.next=32;break;case 12:if(navigator.mediaDevices){e.next=16;break}i(new Error("MEDIA_DEVICES_NOT_SUPPORTED")),e.next=32;break;case 16:return e.next=18,navigator.mediaDevices.getUserMedia(n);case 18:if(e.t0=e.sent,a=[e.t0],"prompt"!==o.state){e.next=26;break}return e.t1=a,e.next=24,new Promise((function(e){o.addEventListener("change",(function(t){"denied"===t.target.state?i(new Error("DENIED_BY_USER")):e()}))}));case 24:e.t2=e.sent,e.t1.push.call(e.t1,e.t2);case 26:return e.next=28,Promise.all(a);case 28:c=e.sent,s=v(c,1),u=s[0],r(u);case 32:e.next=37;break;case 34:e.prev=34,e.t3=e.catch(4),i(e.t3);case 37:case"end":return e.stop()}}),e,null,[[4,34]])})));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)}}(),m=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(s(s({},e.defaultOptions),t||{})).forEach((function(e){var t=u(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,h("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,s,"next",e)}function s(e){r(a,i,o,c,s,"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(m,"defaultOptions",{lang:"fr-FR",continuous:!1,interimResults:!1,maxAlternatives:1}),a(m,"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 y=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"})))},b=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,b=t.onError,E=t.onNoMatch,w=t.__recognitionInstance,S=e.useRef(null),g=e.useRef(null),_=u(e.useState(!1),2),O=_[0],R=_[1];e.useEffect((function(){if(m.isSupported)return g.current=w||new m,function(){g.current.abort(),g.current.cleanup(),clearTimeout(S.current)}}),[w]);var x=function(){S.current=setTimeout(L,i)},k=function(){clearTimeout(S.current),S.current=null},T=function(){try{R(!1);var e=g.current;e.removeEventListener("start",j),e.removeEventListener("end",L),e.removeEventListener("speechstart",P),e.removeEventListener("speechend",A),e.removeEventListener("result",D),e.removeEventListener("error",I),e.removeEventListener("nomatch",N),e.stop()}catch(e){I(e)}},j=function(e){x(),f&&f(e)},L=function(e){k(),T(),p&&p(e)},P=function(e){k(),v&&v(e)},A=function(e){x(),d&&d(e)},D=function(e,t){T(),h&&h(e,t)},I=function(e){T(),b&&b(e)},N=function(e){E&&E(e)};return m.isSupported&&e.cloneElement(e.isValidElement(r)?r:n.createElement("div",{"data-testid":"__vocal-root__",role:"button","aria-label":o,tabIndex:a,style:l?null:s({width:24,height:24,cursor:O?null:"pointer"},c),className:l},n.createElement(y,{isActive:O,iconColor:"#aaa"})),s({},!O&&{onClick:function(){!function(){try{R(!0);var e=g.current;e.addEventListener("start",j),e.addEventListener("end",L),e.addEventListener("speechstart",P),e.addEventListener("speechend",A),e.addEventListener("result",D),e.addEventListener("error",I),e.addEventListener("nomatch",N),e.start()}catch(e){I(e)}}()}}))};return b.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},b.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},b}));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudW1kLmpzIiwic291cmNlcyI6WyIuLi9ub2RlX21vZHVsZXMvQHVudGVtcHMvdXNlci1tZWRpYS11dGlscy9kaXN0L2luZGV4LmVzLmpzIiwiLi4vc3JjL1NwZWVjaFJlY29nbml0aW9uV3JhcHBlci5qcyIsIi4uL3NyYy9NaWNyb3Bob25lSWNvbi5qcyIsIi4uL3NyYy9Wb2NhbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBlKGUscix0LG4sYSxvLGkpe3RyeXt2YXIgdT1lW29dKGkpLGM9dS52YWx1ZX1jYXRjaChlKXtyZXR1cm4gdm9pZCB0KGUpfXUuZG9uZT9yKGMpOlByb21pc2UucmVzb2x2ZShjKS50aGVuKG4sYSl9ZnVuY3Rpb24gcihyKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oYSxvKXt2YXIgaT1yLmFwcGx5KHQsbik7ZnVuY3Rpb24gdShyKXtlKGksYSxvLHUsYyxcIm5leHRcIixyKX1mdW5jdGlvbiBjKHIpe2UoaSxhLG8sdSxjLFwidGhyb3dcIixyKX11KHZvaWQgMCl9KSl9fWZ1bmN0aW9uIHQoZSxyKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUscil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIFN5bWJvbHx8IShTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGUpKSlyZXR1cm47dmFyIHQ9W10sbj0hMCxhPSExLG89dm9pZCAwO3RyeXtmb3IodmFyIGksdT1lW1N5bWJvbC5pdGVyYXRvcl0oKTshKG49KGk9dS5uZXh0KCkpLmRvbmUpJiYodC5wdXNoKGkudmFsdWUpLCFyfHx0Lmxlbmd0aCE9PXIpO249ITApO31jYXRjaChlKXthPSEwLG89ZX1maW5hbGx5e3RyeXtufHxudWxsPT11LnJldHVybnx8dS5yZXR1cm4oKX1maW5hbGx5e2lmKGEpdGhyb3cgb319cmV0dXJuIHR9KGUscil8fGZ1bmN0aW9uKGUscil7aWYoIWUpcmV0dXJuO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBuKGUscik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO1wiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpO2lmKFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbShlKTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG4oZSxyKX0oZSxyKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIG4oZSxyKXsobnVsbD09cnx8cj5lLmxlbmd0aCkmJihyPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxuPW5ldyBBcnJheShyKTt0PHI7dCsrKW5bdF09ZVt0XTtyZXR1cm4gbn12YXIgYT1mdW5jdGlvbigpe3ZhciBlPXIocmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoKGZ1bmN0aW9uIGUobixhKXtyZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdChcInJldHVyblwiLG5ldyBQcm9taXNlKGZ1bmN0aW9uKCl7dmFyIGU9cihyZWdlbmVyYXRvclJ1bnRpbWUubWFyaygoZnVuY3Rpb24gZShyLG8pe3ZhciBpLHUsYyxzLGY7cmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihuYXZpZ2F0b3IucGVybWlzc2lvbnMpe2UubmV4dD00O2JyZWFrfW8obmV3IEVycm9yKFwiUEVSTUlTU0lPTlNfTk9UX1NVUFBPUlRFRFwiKSksZS5uZXh0PTM3O2JyZWFrO2Nhc2UgNDpyZXR1cm4gZS5wcmV2PTQsZS5uZXh0PTcsbmF2aWdhdG9yLnBlcm1pc3Npb25zLnF1ZXJ5KHtuYW1lOm59KTtjYXNlIDc6aWYoXCJkZW5pZWRcIiE9PShpPWUuc2VudCkuc3RhdGUpe2UubmV4dD0xMjticmVha31vKG5ldyBFcnJvcihcIkRFTklFRF9CWV9VU0VSXCIpKSxlLm5leHQ9MzI7YnJlYWs7Y2FzZSAxMjppZihuYXZpZ2F0b3IubWVkaWFEZXZpY2VzKXtlLm5leHQ9MTY7YnJlYWt9byhuZXcgRXJyb3IoXCJNRURJQV9ERVZJQ0VTX05PVF9TVVBQT1JURURcIikpLGUubmV4dD0zMjticmVhaztjYXNlIDE2OnJldHVybiBlLm5leHQ9MTgsbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoYSk7Y2FzZSAxODppZihlLnQwPWUuc2VudCx1PVtlLnQwXSxcInByb21wdFwiIT09aS5zdGF0ZSl7ZS5uZXh0PTI2O2JyZWFrfXJldHVybiBlLnQxPXUsZS5uZXh0PTI0LG5ldyBQcm9taXNlKChmdW5jdGlvbihlKXtpLmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwoZnVuY3Rpb24ocil7XCJkZW5pZWRcIj09PXIudGFyZ2V0LnN0YXRlP28obmV3IEVycm9yKFwiREVOSUVEX0JZX1VTRVJcIikpOmUoKX0pKX0pKTtjYXNlIDI0OmUudDI9ZS5zZW50LGUudDEucHVzaC5jYWxsKGUudDEsZS50Mik7Y2FzZSAyNjpyZXR1cm4gZS5uZXh0PTI4LFByb21pc2UuYWxsKHUpO2Nhc2UgMjg6Yz1lLnNlbnQscz10KGMsMSksZj1zWzBdLHIoZik7Y2FzZSAzMjplLm5leHQ9Mzc7YnJlYWs7Y2FzZSAzNDplLnByZXY9MzQsZS50Mz1lLmNhdGNoKDQpLG8oZS50Myk7Y2FzZSAzNzpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSxudWxsLFtbNCwzNF1dKX0pKSk7cmV0dXJuIGZ1bmN0aW9uKHIsdCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSkpO2Nhc2UgMTpjYXNlXCJlbmRcIjpyZXR1cm4gZS5zdG9wKCl9fSksZSl9KSkpO3JldHVybiBmdW5jdGlvbihyLHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCk7ZXhwb3J0e2EgYXMgZ2V0VXNlck1lZGlhU3RyZWFtfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3VaWE11YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTR1TDNOeVl5OW5aWFJWYzJWeVRXVmthV0ZUZEhKbFlXMHVhbk1pWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUx5b3FYRzRnS2lCU1pYUjFjbTV6SUdFZ2NISnZiV2x6WlNCeVpYTnZiSFpsWkNCM2FHVnVJSFJvWlNCdFpXUnBZU0JwY3lCaGRYUm9iM0pwZW1Wa0lHRnVaQ0IwYUdVZ2MzUnlaV0Z0SUdseklISmxkSEpwWlhabFpGeHVJQ29nUUhCaGNtRnRJSEJsY20xcGMzTnBiMjVPWVcxbElDQWdJQ0FnSUNBZ0lDQWdUbUZ0WlNCdlppQjBhR1VnY0dWeWJXbHpjMmx2Ymk0Z1FITmxaU0JvZEhSd2N6b3ZMM2N6WXk1bmFYUm9kV0l1YVc4dmNHVnliV2x6YzJsdmJuTXZJMlZ1ZFcxa1pXWXRjR1Z5YldsemMybHZibTVoYldWY2JpQXFJRUJ3WVhKaGJTQnRaV1JwWVZOMGNtVmhiVU52Ym5OMGNtRnBiblJ6SUNBZ0lFTnZibk4wY21GcGJuUnpJRzlpYW1WamRDNGdRSE5sWlNCb2RIUndjem92TDJSbGRtVnNiM0JsY2k1dGIzcHBiR3hoTG05eVp5OWxiaTFWVXk5a2IyTnpMMWRsWWk5QlVFa3ZUV1ZrYVdGVGRISmxZVzFEYjI1emRISmhhVzUwYzF4dUlDb2dRSEpsZEhWeWJuTWdlMUJ5YjIxcGMyVjlYRzRnS2k5Y2JtVjRjRzl5ZENCa1pXWmhkV3gwSUdGemVXNWpJQ2h3WlhKdGFYTnphVzl1VG1GdFpTd2diV1ZrYVdGVGRISmxZVzFEYjI1emRISmhhVzUwY3lrZ1BUNGdlMXh1WEhSeVpYUjFjbTRnYm1WM0lGQnliMjFwYzJVb1lYTjVibU1nS0hKbGMyOXNkbVVzSUhKbGFtVmpkQ2tnUFQ0Z2UxeHVYSFJjZEdsbUlDZ2hibUYyYVdkaGRHOXlMbkJsY20xcGMzTnBiMjV6S1NCN1hHNWNkRngwWEhSeVpXcGxZM1FvYm1WM0lFVnljbTl5S0NkUVJWSk5TVk5UU1U5T1UxOU9UMVJmVTFWUVVFOVNWRVZFSnlrcFhHNWNkRngwZlNCbGJITmxJSHRjYmx4MFhIUmNkSFJ5ZVNCN1hHNWNkRngwWEhSY2RHTnZibk4wSUhCbGNtMXBjM05wYjI1VGRHRjBkWE1nUFNCaGQyRnBkQ0J1WVhacFoyRjBiM0l1Y0dWeWJXbHpjMmx2Ym5NdWNYVmxjbmtvZXlCdVlXMWxPaUJ3WlhKdGFYTnphVzl1VG1GdFpTQjlLVnh1WEhSY2RGeDBYSFJwWmlBb2NHVnliV2x6YzJsdmJsTjBZWFIxY3k1emRHRjBaU0E5UFQwZ0oyUmxibWxsWkNjcElIdGNibHgwWEhSY2RGeDBYSFJ5WldwbFkzUW9ibVYzSUVWeWNtOXlLQ2RFUlU1SlJVUmZRbGxmVlZORlVpY3BLVnh1WEhSY2RGeDBYSFI5SUdWc2MyVWdhV1lnS0NGdVlYWnBaMkYwYjNJdWJXVmthV0ZFWlhacFkyVnpLU0I3WEc1Y2RGeDBYSFJjZEZ4MGNtVnFaV04wS0c1bGR5QkZjbkp2Y2lnblRVVkVTVUZmUkVWV1NVTkZVMTlPVDFSZlUxVlFVRTlTVkVWRUp5a3BYRzVjZEZ4MFhIUmNkSDBnWld4elpTQjdYRzVjZEZ4MFhIUmNkRngwWTI5dWMzUWdjSEp2YldselpYTWdQU0JiWVhkaGFYUWdibUYyYVdkaGRHOXlMbTFsWkdsaFJHVjJhV05sY3k1blpYUlZjMlZ5VFdWa2FXRW9iV1ZrYVdGVGRISmxZVzFEYjI1emRISmhhVzUwY3lsZFhHNWNkRngwWEhSY2RGeDBhV1lnS0hCbGNtMXBjM05wYjI1VGRHRjBkWE11YzNSaGRHVWdQVDA5SUNkd2NtOXRjSFFuS1NCN1hHNWNkRngwWEhSY2RGeDBYSFJ3Y205dGFYTmxjeTV3ZFhOb0tGeHVYSFJjZEZ4MFhIUmNkRngwWEhSaGQyRnBkQ0J1WlhjZ1VISnZiV2x6WlNnb2NtVnpiMngyWlNrZ1BUNGdlMXh1WEhSY2RGeDBYSFJjZEZ4MFhIUmNkSEJsY20xcGMzTnBiMjVUZEdGMGRYTXVZV1JrUlhabGJuUk1hWE4wWlc1bGNpZ25ZMmhoYm1kbEp5d2dLR1YyWlc1MEtTQTlQaUI3WEc1Y2RGeDBYSFJjZEZ4MFhIUmNkRngwWEhScFppQW9aWFpsYm5RdWRHRnlaMlYwTG5OMFlYUmxJRDA5UFNBblpHVnVhV1ZrSnlrZ2UxeHVYSFJjZEZ4MFhIUmNkRngwWEhSY2RGeDBYSFJ5WldwbFkzUW9ibVYzSUVWeWNtOXlLQ2RFUlU1SlJVUmZRbGxmVlZORlVpY3BLVnh1WEhSY2RGeDBYSFJjZEZ4MFhIUmNkRngwZlNCbGJITmxJSHRjYmx4MFhIUmNkRngwWEhSY2RGeDBYSFJjZEZ4MGNtVnpiMngyWlNncFhHNWNkRngwWEhSY2RGeDBYSFJjZEZ4MFhIUjlYRzVjZEZ4MFhIUmNkRngwWEhSY2RGeDBmU2xjYmx4MFhIUmNkRngwWEhSY2RGeDBmU2xjYmx4MFhIUmNkRngwWEhSY2RDbGNibHgwWEhSY2RGeDBYSFI5WEc1Y2RGeDBYSFJjZEZ4MFkyOXVjM1FnVzNOMGNtVmhiVjBnUFNCaGQyRnBkQ0JRY205dGFYTmxMbUZzYkNod2NtOXRhWE5sY3lsY2JseDBYSFJjZEZ4MFhIUnlaWE52YkhabEtITjBjbVZoYlNsY2JseDBYSFJjZEZ4MGZWeHVYSFJjZEZ4MGZTQmpZWFJqYUNBb1pYSnliM0lwSUh0Y2JseDBYSFJjZEZ4MGNtVnFaV04wS0dWeWNtOXlLVnh1WEhSY2RGeDBmVnh1WEhSY2RIMWNibHgwZlNsY2JuMWNiaUpkTENKdVlXMWxjeUk2V3lKd1pYSnRhWE56YVc5dVRtRnRaU0lzSW0xbFpHbGhVM1J5WldGdFEyOXVjM1J5WVdsdWRITWlMQ0pRY205dGFYTmxJaXdpY21WemIyeDJaU0lzSW5KbGFtVmpkQ0lzSW01aGRtbG5ZWFJ2Y2lJc0luQmxjbTFwYzNOcGIyNXpJaXdpUlhKeWIzSWlMQ0p4ZFdWeWVTSXNJbTVoYldVaUxDSndaWEp0YVhOemFXOXVVM1JoZEhWeklpd2ljM1JoZEdVaUxDSnRaV1JwWVVSbGRtbGpaWE1pTENKblpYUlZjMlZ5VFdWa2FXRWlMQ0p3Y205dGFYTmxjeUlzSW1Ga1pFVjJaVzUwVEdsemRHVnVaWElpTENKbGRtVnVkQ0lzSW5SaGNtZGxkQ0lzSW5CMWMyZ2lMQ0poYkd3aUxDSnpkSEpsWVcwaVhTd2liV0Z3Y0dsdVozTWlPaUp0ZDBOQlRVRXNhMFJCUVdVc1YwRkJUMEVzUlVGQlowSkRMRFJIUVVNNVFpeEpRVUZKUXl4dlJFRkJVU3hYUVVGUFF5eEZRVUZUUXl4dlIwRkROMEpETEZWQlFWVkRMRFJDUVVOa1JpeEZRVUZQTEVsQlFVbEhMRTFCUVUwc09FVkJSMlZHTEZWQlFWVkRMRmxCUVZsRkxFMUJRVTBzUTBGQlJVTXNTMEZCVFZRc1kwRkRjRU1zV1VGRWVrSlZMRlZCUTJWRExIVkNRVU53UWxBc1JVRkJUeXhKUVVGSlJ5eE5RVUZOTERoRFFVTk9SaXhWUVVGVlR5dzRRa0ZEY2tKU0xFVkJRVThzU1VGQlNVY3NUVUZCVFN4NVJVRkZUMFlzVlVGQlZVOHNZVUZCWVVNc1lVRkJZVm9zTUVKQlFYUkVZU3hUUVVONVFpeFhRVUV6UWtvc1JVRkJhVUpETEcxRFFVTndRa2NzV1VGRFR5eEpRVUZKV2l4VFFVRlJMRk5CUVVORExFZEJRMnhDVHl4RlFVRnBRa3NzYVVKQlFXbENMRlZCUVZVc1UwRkJRME1zUjBGRGFrSXNWMEZCZGtKQkxFVkJRVTFETEU5QlFVOU9MRTFCUTJoQ1VDeEZRVUZQTEVsQlFVbEhMRTFCUVUwc2JVSkJSV3BDU2l4dFEwRk9TMlVzT0VOQldXRm9RaXhSUVVGUmFVSXNTVUZCU1V3c05rSkJRVFZDVFN4UFFVTlFha0lzUlVGQlVXbENMRFpFUVVkVWFFSWlmUT09XG4iLCJpbXBvcnQgeyBnZXRVc2VyTWVkaWFTdHJlYW0gfSBmcm9tICdAdW50ZW1wcy91c2VyLW1lZGlhLXV0aWxzJ1xuXG5jbGFzcyBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIge1xuXHRzdGF0aWMgZGVmYXVsdE9wdGlvbnMgPSB7XG5cdFx0bGFuZzogJ2ZyLUZSJyxcblx0XHRjb250aW51b3VzOiBmYWxzZSxcblx0XHRpbnRlcmltUmVzdWx0czogZmFsc2UsXG5cdFx0bWF4QWx0ZXJuYXRpdmVzOiAxLFxuXHR9XG5cblx0c3RhdGljIGV2ZW50VHlwZXMgPSB7XG5cdFx0QVVESU9fRU5EOiAnYXVkaW9lbmQnLFxuXHRcdEFVRElPX1NUQVJUOiAnYXVkaW9zdGFydCcsXG5cdFx0RU5EOiAnZW5kJyxcblx0XHRFUlJPUjogJ2Vycm9yJyxcblx0XHROT19NQVRDSDogJ25vbWF0Y2gnLFxuXHRcdFJFU1VMVDogJ3Jlc3VsdCcsXG5cdFx0U09VTkRfRU5EOiAnc291bmRlbmQnLFxuXHRcdFNPVU5EX1NUQVJUOiAnc291bmRzdGFydCcsXG5cdFx0U1BFRUNIX0VORDogJ3NwZWVjaGVuZCcsXG5cdFx0U1BFRUNIX1NUQVJUOiAnc3BlZWNoc3RhcnQnLFxuXHRcdFNUQVJUOiAnc3RhcnQnLFxuXHR9XG5cblx0c3RhdGljIGdldCBpc1N1cHBvcnRlZCgpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0ISF3aW5kb3cuU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdCEhd2luZG93LndlYmtpdFNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHQhIXdpbmRvdy5tb3pTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0ISF3aW5kb3cubXNTcGVlY2hSZWNvZ25pdGlvblxuXHRcdClcblx0fVxuXG5cdHN0YXRpYyBzZXQgaXNTdXBwb3J0ZWQoXykge1xuXHRcdHRocm93IG5ldyBFcnJvcignWW91IGNhbm5vdCBzZXQgaXNTdXBwb3J0ZWQgZGlyZWN0bHkuJylcblx0fVxuXG5cdF9pbnN0YW5jZSA9IG51bGxcblx0X2xpc3RlbmVycyA9IG51bGxcblxuXHRjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG5cdFx0Y29uc3QgU3BlZWNoUmVjb2duaXRpb24gPVxuXHRcdFx0d2luZG93LlNwZWVjaFJlY29nbml0aW9uIHx8XG5cdFx0XHR3aW5kb3cud2Via2l0U3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHdpbmRvdy5tb3pTcGVlY2hSZWNvZ25pdGlvbiB8fFxuXHRcdFx0d2luZG93Lm1zU3BlZWNoUmVjb2duaXRpb24gfHxcblx0XHRcdHt9XG5cdFx0dGhpcy5faW5zdGFuY2UgPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKVxuXHRcdHRoaXMuX2xpc3RlbmVycyA9IHt9XG5cblx0XHRPYmplY3QuZW50cmllcyh7IC4uLlNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5kZWZhdWx0T3B0aW9ucywgLi4uKG9wdGlvbnMgfHwge30pIH0pLmZvckVhY2goXG5cdFx0XHQoW2tleSwgdmFsdWVdKSA9PiAodGhpcy5faW5zdGFuY2Vba2V5XSA9IHZhbHVlKVxuXHRcdClcblx0fVxuXG5cdGdldCBpbnN0YW5jZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5faW5zdGFuY2Vcblx0fVxuXG5cdHNldCBpbnN0YW5jZShfKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHNldCBpbnN0YW5jZSBkaXJlY3RseS4nKVxuXHR9XG5cblx0YXN5bmMgc3RhcnQoKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGNvbnN0IHN0cmVhbSA9IGF3YWl0IGdldFVzZXJNZWRpYVN0cmVhbSgnbWljcm9waG9uZScsIHsgYXVkaW86IHRydWUgfSlcblx0XHRcdFx0aWYgKCFzdHJlYW0pIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byByZXRyaWV2ZSB0aGUgc3RyZWFtIGZyb20gbWVkaWEgZGV2aWNlJylcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLl9pbnN0YW5jZS5zdGFydCgpXG5cdFx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0XHRjb25zdCBlcnJvckhhbmRsZXIgPSB0aGlzLl9saXN0ZW5lcnMuZXJyb3Jcblx0XHRcdFx0aWYgKCEhZXJyb3JIYW5kbGVyKSB7XG5cdFx0XHRcdFx0ZXJyb3JIYW5kbGVyKGVycm9yKVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdHN0b3AoKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UpIHtcblx0XHRcdHRoaXMuX2luc3RhbmNlLnN0b3AoKVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRhYm9ydCgpIHtcblx0XHRpZiAoISF0aGlzLl9pbnN0YW5jZSkge1xuXHRcdFx0dGhpcy5faW5zdGFuY2UuYWJvcnQoKVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzXG5cdH1cblxuXHRhZGRFdmVudExpc3RlbmVyKHR5cGUsIGNhbGxiYWNrKSB7XG5cdFx0aWYgKCEhdGhpcy5faW5zdGFuY2UgJiYgdGhpcy5faW5jbHVkZXNFdmVudFR5cGUodHlwZSkpIHtcblx0XHRcdGlmICghIXRoaXMuX2xpc3RlbmVyc1t0eXBlXSkge1xuXHRcdFx0XHR0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSlcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgaGFuZGxlciA9IChldmVudCkgPT4ge1xuXHRcdFx0XHRsZXQgYWRkaXRpb25hbEFyZ3MgPSBbXVxuXHRcdFx0XHRpZiAodHlwZSA9PT0gU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmV2ZW50VHlwZXMuUkVTVUxUKSB7XG5cdFx0XHRcdFx0aWYgKCEhZXZlbnQucmVzdWx0cyAmJiBldmVudC5yZXN1bHRzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGFkZGl0aW9uYWxBcmdzLnB1c2goZXZlbnQucmVzdWx0c1swXVswXS50cmFuc2NyaXB0KVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCEhY2FsbGJhY2sgJiYgY2FsbGJhY2suYXBwbHkodGhpcywgWy4uLmFkZGl0aW9uYWxBcmdzLCBldmVudF0pXG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9pbnN0YW5jZS5hZGRFdmVudExpc3RlbmVyKHR5cGUsIChlKSA9PiBoYW5kbGVyKGUpKVxuXG5cdFx0XHR0aGlzLl9saXN0ZW5lcnNbdHlwZV0gPSBoYW5kbGVyXG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdHJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSkge1xuXHRcdGNvbnN0IGhhbmRsZXIgPSB0aGlzLl9saXN0ZW5lcnNbdHlwZV1cblx0XHR0aGlzLl9pbnN0YW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIpXG5cblx0XHRkZWxldGUgdGhpcy5fbGlzdGVuZXJzW3R5cGVdXG5cblx0XHRyZXR1cm4gdGhpc1xuXHR9XG5cblx0Y2xlYW51cCgpIHtcblx0XHR0aGlzLnN0b3AoKVxuXG5cdFx0T2JqZWN0LmtleXModGhpcy5fbGlzdGVuZXJzKS5mb3JFYWNoKChrZXkpID0+IHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihrZXkpKVxuXHRcdHRoaXMuX2luc3RhbmNlID0gbnVsbFxuXG5cdFx0cmV0dXJuIHRoaXNcblx0fVxuXG5cdF9pbmNsdWRlc0V2ZW50VHlwZSA9IChldmVudFR5cGUpID0+XG5cdFx0T2JqZWN0LnZhbHVlcyhTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXIuZXZlbnRUeXBlcykuZmluZCgodHlwZSkgPT4gdHlwZSA9PT0gZXZlbnRUeXBlKVxufVxuXG5leHBvcnQgZGVmYXVsdCBTcGVlY2hSZWNvZ25pdGlvbldyYXBwZXJcbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuY29uc3QgTWljcm9waG9uZUljb24gPSAoeyBpY29uQ29sb3IgPSAnYmxhY2snLCBhY3RpdmVDb2xvciA9ICdyZWQnLCBpc0FjdGl2ZSA9IGZhbHNlIH0pID0+IHtcblx0cmV0dXJuIChcblx0XHQ8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuXHRcdFx0PGc+XG5cdFx0XHRcdDxwYXRoXG5cdFx0XHRcdFx0ZmlsbD17aWNvbkNvbG9yfVxuXHRcdFx0XHRcdGQ9XCJNMTIgMTRjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNMMTUgNWMwLTEuNjYtMS4zNC0zLTMtM1M5IDMuMzQgOSA1djZjMCAxLjY2IDEuMzQgMyAzIDN6bTUuMy0zYzAgMy0yLjU0IDUuMS01LjMgNS4xUzYuNyAxNCA2LjcgMTFINWMwIDMuNDEgMi43MiA2LjIzIDYgNi43MlYyMWgydi0zLjI4YzMuMjgtLjQ4IDYtMy4zIDYtNi43MmgtMS43elwiXG5cdFx0XHRcdC8+XG5cdFx0XHRcdHtpc0FjdGl2ZSAmJiA8Y2lyY2xlIGZpbGw9e2FjdGl2ZUNvbG9yfSBjeD1cIjE2XCIgY3k9XCI0XCIgcj1cIjRcIiAvPn1cblx0XHRcdDwvZz5cblx0XHQ8L3N2Zz5cblx0KVxufVxuXG5leHBvcnQgZGVmYXVsdCBNaWNyb3Bob25lSWNvblxuIiwiaW1wb3J0IFJlYWN0LCB7IGNsb25lRWxlbWVudCwgaXNWYWxpZEVsZW1lbnQsIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuXG5pbXBvcnQgU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyIGZyb20gJy4vU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyJ1xuXG5pbXBvcnQgTWljcm9waG9uZUljb24gZnJvbSAnLi9NaWNyb3Bob25lSWNvbidcblxuY29uc3QgVm9jYWwgPSAoe1xuXHRjaGlsZHJlbixcblx0dGltZW91dCxcblx0YXJpYUxhYmVsLFxuXHR0YWJJbmRleCxcblx0c3R5bGUsXG5cdGNsYXNzTmFtZSxcblx0b25TdGFydCxcblx0b25FbmQsXG5cdG9uU3BlZWNoU3RhcnQsXG5cdG9uU3BlZWNoRW5kLFxuXHRvblJlc3VsdCxcblx0b25FcnJvcixcblx0b25Ob01hdGNoLFxuXHRfX3JlY29nbml0aW9uSW5zdGFuY2UsXG59KSA9PiB7XG5cdGNvbnN0IHRpbWVvdXRSZWYgPSB1c2VSZWYobnVsbClcblx0Y29uc3QgcmVjb2duaXRpb25SZWYgPSB1c2VSZWYobnVsbClcblxuXHRjb25zdCBbaXNMaXN0ZW5pbmcsIHNldElzTGlzdGVuaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKFNwZWVjaFJlY29nbml0aW9uV3JhcHBlci5pc1N1cHBvcnRlZCkge1xuXHRcdFx0cmVjb2duaXRpb25SZWYuY3VycmVudCA9IF9fcmVjb2duaXRpb25JbnN0YW5jZSB8fCBuZXcgU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyKClcblx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdHJlY29nbml0aW9uUmVmLmN1cnJlbnQuYWJvcnQoKVxuXHRcdFx0XHRyZWNvZ25pdGlvblJlZi5jdXJyZW50LmNsZWFudXAoKVxuXHRcdFx0XHRjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KVxuXHRcdFx0fVxuXHRcdH1cblx0fSwgW19fcmVjb2duaXRpb25JbnN0YW5jZV0pXG5cblx0Y29uc3Qgc3RhcnRUaW1lciA9ICgpID0+IHtcblx0XHR0aW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KF9vbkVuZCwgdGltZW91dClcblx0fVxuXG5cdGNvbnN0IHN0b3BUaW1lciA9ICgpID0+IHtcblx0XHRjbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KVxuXHRcdHRpbWVvdXRSZWYuY3VycmVudCA9IG51bGxcblx0fVxuXG5cdGNvbnN0IHN0YXJ0UmVjb2duaXRpb24gPSAoKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdHNldElzTGlzdGVuaW5nKHRydWUpXG5cblx0XHRcdGNvbnN0IHsgY3VycmVudDogciB9ID0gcmVjb2duaXRpb25SZWZcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBfb25TdGFydClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignZW5kJywgX29uRW5kKVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzcGVlY2hzdGFydCcsIF9vblNwZWVjaFN0YXJ0KVxuXHRcdFx0ci5hZGRFdmVudExpc3RlbmVyKCdzcGVlY2hlbmQnLCBfb25TcGVlY2hFbmQpXG5cdFx0XHRyLmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc3VsdCcsIF9vblJlc3VsdClcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBfb25FcnJvcilcblx0XHRcdHIuYWRkRXZlbnRMaXN0ZW5lcignbm9tYXRjaCcsIF9vbk5vTWF0Y2gpXG5cdFx0XHRyLnN0YXJ0KClcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0X29uRXJyb3IoZXJyb3IpXG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgc3RvcFJlY29nbml0aW9uID0gKCkgPT4ge1xuXHRcdHRyeSB7XG5cdFx0XHRzZXRJc0xpc3RlbmluZyhmYWxzZSlcblxuXHRcdFx0Y29uc3QgeyBjdXJyZW50OiByIH0gPSByZWNvZ25pdGlvblJlZlxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzdGFydCcsIF9vblN0YXJ0KVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdlbmQnLCBfb25FbmQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NwZWVjaHN0YXJ0JywgX29uU3BlZWNoU3RhcnQpXG5cdFx0XHRyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NwZWVjaGVuZCcsIF9vblNwZWVjaEVuZClcblx0XHRcdHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzdWx0JywgX29uUmVzdWx0KVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIF9vbkVycm9yKVxuXHRcdFx0ci5yZW1vdmVFdmVudExpc3RlbmVyKCdub21hdGNoJywgX29uTm9NYXRjaClcblx0XHRcdHIuc3RvcCgpXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdF9vbkVycm9yKGVycm9yKVxuXHRcdH1cblx0fVxuXG5cdGNvbnN0IHN0YXJ0ID0gKCkgPT4ge1xuXHRcdHN0YXJ0VGltZXIoKVxuXHR9XG5cblx0Y29uc3QgZW5kID0gKCkgPT4ge1xuXHRcdHN0b3BUaW1lcigpXG5cdFx0c3RvcFJlY29nbml0aW9uKClcblx0fVxuXG5cdGNvbnN0IF9vbkNsaWNrID0gKCkgPT4ge1xuXHRcdHN0YXJ0UmVjb2duaXRpb24oKVxuXHR9XG5cblx0Y29uc3QgX29uU3RhcnQgPSAoZSkgPT4ge1xuXHRcdHN0YXJ0KClcblxuXHRcdCEhb25TdGFydCAmJiBvblN0YXJ0KGUpXG5cdH1cblxuXHRjb25zdCBfb25FbmQgPSAoZSkgPT4ge1xuXHRcdGVuZCgpXG5cblx0XHQhIW9uRW5kICYmIG9uRW5kKGUpXG5cdH1cblxuXHRjb25zdCBfb25TcGVlY2hTdGFydCA9IChlKSA9PiB7XG5cdFx0c3RvcFRpbWVyKClcblxuXHRcdCEhb25TcGVlY2hTdGFydCAmJiBvblNwZWVjaFN0YXJ0KGUpXG5cdH1cblxuXHRjb25zdCBfb25TcGVlY2hFbmQgPSAoZSkgPT4ge1xuXHRcdHN0YXJ0VGltZXIoKVxuXG5cdFx0ISFvblNwZWVjaEVuZCAmJiBvblNwZWVjaEVuZChlKVxuXHR9XG5cblx0Y29uc3QgX29uUmVzdWx0ID0gKHJlc3VsdCwgZXZlbnQpID0+IHtcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXG5cdFx0ISFvblJlc3VsdCAmJiBvblJlc3VsdChyZXN1bHQsIGV2ZW50KVxuXHR9XG5cblx0Y29uc3QgX29uRXJyb3IgPSAoZXJyb3IpID0+IHtcblx0XHRzdG9wUmVjb2duaXRpb24oKVxuXG5cdFx0ISFvbkVycm9yICYmIG9uRXJyb3IoZXJyb3IpXG5cdH1cblxuXHRjb25zdCBfb25Ob01hdGNoID0gKGUpID0+IHtcblx0XHQhIW9uTm9NYXRjaCAmJiBvbk5vTWF0Y2goZSlcblx0fVxuXG5cdGNvbnN0IF9yZW5kZXJEZWZhdWx0ID0gKCkgPT4gKFxuXHRcdDxkaXZcblx0XHRcdGRhdGEtdGVzdGlkPVwiX192b2NhbC1yb290X19cIlxuXHRcdFx0cm9sZT1cImJ1dHRvblwiXG5cdFx0XHRhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG5cdFx0XHR0YWJJbmRleD17dGFiSW5kZXh9XG5cdFx0XHRzdHlsZT17Y2xhc3NOYW1lID8gbnVsbCA6IHsgd2lkdGg6IDI0LCBoZWlnaHQ6IDI0LCBjdXJzb3I6ICFpc0xpc3RlbmluZyA/ICdwb2ludGVyJyA6IG51bGwsIC4uLnN0eWxlIH19XG5cdFx0XHRjbGFzc05hbWU9e2NsYXNzTmFtZX1cblx0XHQ+XG5cdFx0XHQ8TWljcm9waG9uZUljb24gaXNBY3RpdmU9e2lzTGlzdGVuaW5nfSBpY29uQ29sb3I9XCIjYWFhXCIgLz5cblx0XHQ8L2Rpdj5cblx0KVxuXG5cdHJldHVybiAoXG5cdFx0U3BlZWNoUmVjb2duaXRpb25XcmFwcGVyLmlzU3VwcG9ydGVkICYmXG5cdFx0Y2xvbmVFbGVtZW50KGlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSA/IGNoaWxkcmVuIDogX3JlbmRlckRlZmF1bHQoKSwge1xuXHRcdFx0Li4uKCFpc0xpc3RlbmluZyAmJiB7IG9uQ2xpY2s6IF9vbkNsaWNrIH0pLFxuXHRcdH0pXG5cdClcbn1cblxuVm9jYWwucHJvcFR5cGVzID0ge1xuXHQvKiogRGVmaW5lcyB0aGUgdGltZSBpbiBtcyB0byB3YWl0IGJlZm9yZSBkaXNjYXJkaW5nIHRoZSByZWNvZ25pdGlvbiAqL1xuXHR0aW1lb3V0OiBQcm9wVHlwZXMubnVtYmVyLFxuXHQvKiogRGVmaW5lcyB0aGUgYTExeSBsYWJlbCBmb3IgdGhlIGRlZmF1bHQgYnV0dG9uICovXG5cdGFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcblx0LyoqIERlZmluZXMgdGhlIGExMXkgdGFiIGluZGV4IGZvciB0aGUgZGVmYXVsdCBidXR0b24gKi9cblx0dGFiSW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG5cdC8qKiBEZWZpbmVzIHRoZSBzdHlsZXMgb2YgdGhlIGRlZmF1bHQgZWxlbWVudCBpZiBjbGFzc05hbWUgaXMgbm90IHNwZWNpZmllZCAqL1xuXHRzdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcblx0LyoqIERlZmluZXMgdGhlIGNsYXNzIG9mIHRoZSBkZWZhdWx0IGVsZW1lbnQgKi9cblx0Y2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgcmVjb2duaXRpb24gc3RhcnRzICovXG5cdG9uU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgcmVjb2duaXRpb24gZW5kcyAqL1xuXHRvbkVuZDogUHJvcFR5cGVzLmZ1bmMsXG5cdC8qKiBEZWZpbmVzIHRoZSBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBzcGVlY2ggc3RhcnRzICovXG5cdG9uU3BlZWNoU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgc3BlZWNoIGVuZHMgKi9cblx0b25TcGVlY2hFbmQ6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBhIHJlc3VsdCBpcyByZWNvZ25pemVkICovXG5cdG9uUmVzdWx0OiBQcm9wVHlwZXMuZnVuYyxcblx0LyoqIERlZmluZXMgdGhlIGhhbmRsZXIgY2FsbGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzICovXG5cdG9uRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuXHQvKiogRGVmaW5lcyB0aGUgaGFuZGxlciBjYWxsZWQgd2hlbiBubyByZXN1bHQgY2FuIGJlIHJlY29nbml6ZWQgKi9cblx0b25Ob01hdGNoOiBQcm9wVHlwZXMuZnVuYyxcbn1cblxuVm9jYWwuZGVmYXVsdFByb3BzID0ge1xuXHR0aW1lb3V0OiAzMDAwLFxuXHRhcmlhTGFiZWw6ICdzcGVlY2gnLFxuXHR0YWJJbmRleDogLTEsXG5cdHN0eWxlOiBudWxsLFxuXHRjbGFzc05hbWU6IG51bGwsXG5cdG9uU3RhcnQ6IG51bGwsXG5cdG9uRW5kOiBudWxsLFxuXHRvblNwZWVjaFN0YXJ0OiBudWxsLFxuXHRvblNwZWVjaEVuZDogbnVsbCxcblx0b25SZXN1bHQ6IG51bGwsXG5cdG9uRXJyb3I6IG51bGwsXG5cdG9uTm9NYXRjaDogbnVsbCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgVm9jYWxcbiJdLCJuYW1lcyI6WyJlIiwiciIsInQiLCJuIiwiYSIsIm8iLCJpIiwidSIsImMiLCJ2YWx1ZSIsImRvbmUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJ0aGlzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJBcnJheSIsImlzQXJyYXkiLCJTeW1ib2wiLCJpdGVyYXRvciIsIk9iamVjdCIsIm5leHQiLCJwdXNoIiwibGVuZ3RoIiwicmV0dXJuIiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIlR5cGVFcnJvciIsInJlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJ3cmFwIiwicHJldiIsImFicnVwdCIsInMiLCJmIiwibmF2aWdhdG9yIiwicGVybWlzc2lvbnMiLCJFcnJvciIsInF1ZXJ5Iiwic2VudCIsInN0YXRlIiwibWVkaWFEZXZpY2VzIiwiZ2V0VXNlck1lZGlhIiwidDAiLCJ0MSIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0YXJnZXQiLCJ0MiIsImFsbCIsInQzIiwiY2F0Y2giLCJzdG9wIiwiU3BlZWNoUmVjb2duaXRpb25XcmFwcGVyIiwib3B0aW9ucyIsImV2ZW50VHlwZSIsInZhbHVlcyIsImV2ZW50VHlwZXMiLCJmaW5kIiwidHlwZSIsIlNwZWVjaFJlY29nbml0aW9uIiwid2luZG93Iiwid2Via2l0U3BlZWNoUmVjb2duaXRpb24iLCJtb3pTcGVlY2hSZWNvZ25pdGlvbiIsIm1zU3BlZWNoUmVjb2duaXRpb24iLCJfaW5zdGFuY2UiLCJfbGlzdGVuZXJzIiwiZW50cmllcyIsImRlZmF1bHRPcHRpb25zIiwiZm9yRWFjaCIsImtleSIsIl90aGlzIiwiXyIsImdldFVzZXJNZWRpYVN0cmVhbSIsImF1ZGlvIiwic3RhcnQiLCJlcnJvckhhbmRsZXIiLCJlcnJvciIsImFib3J0IiwiY2FsbGJhY2siLCJfaW5jbHVkZXNFdmVudFR5cGUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlciIsImV2ZW50IiwiYWRkaXRpb25hbEFyZ3MiLCJSRVNVTFQiLCJyZXN1bHRzIiwidHJhbnNjcmlwdCIsIl90aGlzMiIsImtleXMiLCJfdGhpczMiLCJsYW5nIiwiY29udGludW91cyIsImludGVyaW1SZXN1bHRzIiwibWF4QWx0ZXJuYXRpdmVzIiwiQVVESU9fRU5EIiwiQVVESU9fU1RBUlQiLCJFTkQiLCJFUlJPUiIsIk5PX01BVENIIiwiU09VTkRfRU5EIiwiU09VTkRfU1RBUlQiLCJTUEVFQ0hfRU5EIiwiU1BFRUNIX1NUQVJUIiwiU1RBUlQiLCJNaWNyb3Bob25lSWNvbiIsImljb25Db2xvciIsImFjdGl2ZUNvbG9yIiwiaXNBY3RpdmUiLCJSZWFjdCIsInhtbG5zIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwiZmlsbCIsImQiLCJjeCIsImN5IiwiVm9jYWwiLCJjaGlsZHJlbiIsInRpbWVvdXQiLCJhcmlhTGFiZWwiLCJ0YWJJbmRleCIsInN0eWxlIiwiY2xhc3NOYW1lIiwib25TdGFydCIsIm9uRW5kIiwib25TcGVlY2hTdGFydCIsIm9uU3BlZWNoRW5kIiwib25SZXN1bHQiLCJvbkVycm9yIiwib25Ob01hdGNoIiwiX19yZWNvZ25pdGlvbkluc3RhbmNlIiwidGltZW91dFJlZiIsInVzZVJlZiIsInJlY29nbml0aW9uUmVmIiwidXNlU3RhdGUiLCJpc0xpc3RlbmluZyIsInNldElzTGlzdGVuaW5nIiwidXNlRWZmZWN0IiwiaXNTdXBwb3J0ZWQiLCJjdXJyZW50IiwiY2xlYW51cCIsImNsZWFyVGltZW91dCIsInN0YXJ0VGltZXIiLCJzZXRUaW1lb3V0IiwiX29uRW5kIiwic3RvcFRpbWVyIiwic3RvcFJlY29nbml0aW9uIiwiX29uU3RhcnQiLCJfb25TcGVlY2hTdGFydCIsIl9vblNwZWVjaEVuZCIsIl9vblJlc3VsdCIsIl9vbkVycm9yIiwiX29uTm9NYXRjaCIsInJlc3VsdCIsImNsb25lRWxlbWVudCIsImlzVmFsaWRFbGVtZW50Iiwicm9sZSIsImN1cnNvciIsIm9uQ2xpY2siLCJzdGFydFJlY29nbml0aW9uIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwibnVtYmVyIiwic3RyaW5nIiwib2JqZWN0IiwiZnVuYyIsImRlZmF1bHRQcm9wcyJdLCJtYXBwaW5ncyI6Ijh3RUFBQSxTQUFTQSxFQUFFQSxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFQyxFQUFFQyxHQUFHLElBQUksSUFBSUMsRUFBRVAsRUFBRUssR0FBR0MsR0FBR0UsRUFBRUQsRUFBRUUsTUFBTSxNQUFNVCxHQUFHLFlBQVlFLEVBQUVGLEdBQUdPLEVBQUVHLEtBQUtULEVBQUVPLEdBQUdHLFFBQVFDLFFBQVFKLEdBQUdLLEtBQUtWLEVBQUVDLEdBQUcsU0FBU0gsRUFBRUEsR0FBRyxPQUFPLFdBQVcsSUFBSUMsRUFBRVksS0FBS1gsRUFBRVksVUFBVSxPQUFPLElBQUlKLGtCQUFrQlAsRUFBRUMsR0FBRyxJQUFJQyxFQUFFTCxFQUFFZSxNQUFNZCxFQUFFQyxHQUFHLFNBQVNJLEVBQUVOLEdBQUdELEVBQUVNLEVBQUVGLEVBQUVDLEVBQUVFLEVBQUVDLEVBQUUsT0FBT1AsR0FBRyxTQUFTTyxFQUFFUCxHQUFHRCxFQUFFTSxFQUFFRixFQUFFQyxFQUFFRSxFQUFFQyxFQUFFLFFBQVFQLEdBQUdNLE9BQUUsT0FBWSxTQUFTTCxFQUFFRixFQUFFQyxHQUFHLE9BQU8sU0FBU0QsR0FBRyxHQUFHaUIsTUFBTUMsUUFBUWxCLEdBQUcsT0FBT0EsRUFBdkMsQ0FBMENBLElBQUksU0FBU0EsRUFBRUMsR0FBRyxHQUFHLG9CQUFvQmtCLFFBQVVBLE9BQU9DLFlBQVlDLE9BQU9yQixHQUEzRCxDQUFzRSxJQUFJRSxFQUFFLEdBQUdDLEdBQUUsRUFBR0MsR0FBRSxFQUFHQyxPQUFFLEVBQU8sSUFBSSxJQUFJLElBQUlDLEVBQUVDLEVBQUVQLEVBQUVtQixPQUFPQyxjQUFjakIsR0FBR0csRUFBRUMsRUFBRWUsUUFBUVosUUFBUVIsRUFBRXFCLEtBQUtqQixFQUFFRyxRQUFRUixHQUFHQyxFQUFFc0IsU0FBU3ZCLEdBQUdFLEdBQUUsSUFBSyxNQUFNSCxHQUFHSSxHQUFFLEVBQUdDLEVBQUVMLEVBQUUsUUFBUSxJQUFJRyxHQUFHLE1BQU1JLEVBQUVrQixRQUFRbEIsRUFBRWtCLFNBQVMsUUFBUSxHQUFHckIsRUFBRSxNQUFNQyxHQUFHLE9BQU9ILEdBQWhULENBQW1URixFQUFFQyxJQUFJLFNBQVNELEVBQUVDLEdBQUcsR0FBSUQsRUFBSixDQUFhLEdBQUcsaUJBQWlCQSxFQUFFLE9BQU9HLEVBQUVILEVBQUVDLEdBQUcsSUFBSUMsRUFBRW1CLE9BQU9LLFVBQVVDLFNBQVNDLEtBQUs1QixHQUFHNkIsTUFBTSxHQUFHLEdBQXVELE1BQXBELFdBQVczQixHQUFHRixFQUFFOEIsY0FBYzVCLEVBQUVGLEVBQUU4QixZQUFZQyxNQUFTLFFBQVE3QixHQUFHLFFBQVFBLEVBQVNlLE1BQU1lLEtBQUtoQyxHQUFNLGNBQWNFLEdBQUcsMkNBQTJDK0IsS0FBSy9CLEdBQVVDLEVBQUVILEVBQUVDLFFBQWxGLEdBQXBOLENBQTBTRCxFQUFFQyxJQUFJLFdBQVcsTUFBTSxJQUFJaUMsVUFBVSw2SUFBL0IsR0FBK0ssU0FBUy9CLEVBQUVILEVBQUVDLElBQUksTUFBTUEsR0FBR0EsRUFBRUQsRUFBRXdCLFVBQVV2QixFQUFFRCxFQUFFd0IsUUFBUSxJQUFJLElBQUl0QixFQUFFLEVBQUVDLEVBQUUsSUFBSWMsTUFBTWhCLEdBQUdDLEVBQUVELEVBQUVDLElBQUlDLEVBQUVELEdBQUdGLEVBQUVFLEdBQUcsT0FBT0MscUVBQUUsSUFBSUMsRUFBRSxXQUFXLElBQUlKLEVBQUVDLEVBQUVrQyxtQkFBbUJDLGVBQWVwQyxFQUFFRyxFQUFFQyxHQUFHLE9BQU8rQixtQkFBbUJFLGVBQWVyQyxHQUFHLE9BQU8sT0FBT0EsRUFBRXNDLEtBQUt0QyxFQUFFc0IsTUFBTSxLQUFLLEVBQUUsT0FBT3RCLEVBQUV1QyxPQUFPLFNBQVMsSUFBSTVCLFFBQVEsV0FBVyxJQUFJWCxFQUFFQyxFQUFFa0MsbUJBQW1CQyxlQUFlcEMsRUFBRUMsRUFBRUksR0FBRyxJQUFJQyxFQUFFQyxFQUFFQyxFQUFFZ0MsRUFBRUMsRUFBRSxPQUFPTixtQkFBbUJFLGVBQWVyQyxHQUFHLE9BQU8sT0FBT0EsRUFBRXNDLEtBQUt0QyxFQUFFc0IsTUFBTSxLQUFLLEVBQUUsR0FBR29CLFVBQVVDLFlBQVksQ0FBQzNDLEVBQUVzQixLQUFLLEVBQUUsTUFBTWpCLEVBQUUsSUFBSXVDLE1BQU0sOEJBQThCNUMsRUFBRXNCLEtBQUssR0FBRyxNQUFNLEtBQUssRUFBRSxPQUFPdEIsRUFBRXNDLEtBQUssRUFBRXRDLEVBQUVzQixLQUFLLEVBQUVvQixVQUFVQyxZQUFZRSxNQUFNLENBQUNkLEtBQUs1QixJQUFJLEtBQUssRUFBRSxHQUFHLFlBQVlHLEVBQUVOLEVBQUU4QyxNQUFNQyxNQUFNLENBQUMvQyxFQUFFc0IsS0FBSyxHQUFHLE1BQU1qQixFQUFFLElBQUl1QyxNQUFNLG1CQUFtQjVDLEVBQUVzQixLQUFLLEdBQUcsTUFBTSxLQUFLLEdBQUcsR0FBR29CLFVBQVVNLGFBQWEsQ0FBQ2hELEVBQUVzQixLQUFLLEdBQUcsTUFBTWpCLEVBQUUsSUFBSXVDLE1BQU0sZ0NBQWdDNUMsRUFBRXNCLEtBQUssR0FBRyxNQUFNLEtBQUssR0FBRyxPQUFPdEIsRUFBRXNCLEtBQUssR0FBR29CLFVBQVVNLGFBQWFDLGFBQWE3QyxHQUFHLEtBQUssR0FBRyxHQUFHSixFQUFFa0QsR0FBR2xELEVBQUU4QyxLQUFLdkMsRUFBRSxDQUFDUCxFQUFFa0QsSUFBSSxXQUFXNUMsRUFBRXlDLE1BQU0sQ0FBQy9DLEVBQUVzQixLQUFLLEdBQUcsTUFBTSxPQUFPdEIsRUFBRW1ELEdBQUc1QyxFQUFFUCxFQUFFc0IsS0FBSyxHQUFHLElBQUlYLGtCQUFrQlgsR0FBR00sRUFBRThDLGlCQUFpQixtQkFBbUJuRCxHQUFHLFdBQVdBLEVBQUVvRCxPQUFPTixNQUFNMUMsRUFBRSxJQUFJdUMsTUFBTSxtQkFBbUI1QyxVQUFVLEtBQUssR0FBR0EsRUFBRXNELEdBQUd0RCxFQUFFOEMsS0FBSzlDLEVBQUVtRCxHQUFHNUIsS0FBS0ssS0FBSzVCLEVBQUVtRCxHQUFHbkQsRUFBRXNELElBQUksS0FBSyxHQUFHLE9BQU90RCxFQUFFc0IsS0FBSyxHQUFHWCxRQUFRNEMsSUFBSWhELEdBQUcsS0FBSyxHQUFHQyxFQUFFUixFQUFFOEMsS0FBS04sRUFBRXRDLEVBQUVNLEVBQUUsR0FBR2lDLEVBQUVELEVBQUUsR0FBR3ZDLEVBQUV3QyxHQUFHLEtBQUssR0FBR3pDLEVBQUVzQixLQUFLLEdBQUcsTUFBTSxLQUFLLEdBQUd0QixFQUFFc0MsS0FBSyxHQUFHdEMsRUFBRXdELEdBQUd4RCxFQUFFeUQsTUFBTSxHQUFHcEQsRUFBRUwsRUFBRXdELElBQUksS0FBSyxHQUFHLElBQUksTUFBTSxPQUFPeEQsRUFBRTBELFVBQVUxRCxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsVUFBVSxPQUFPLFNBQVNDLEVBQUVDLEdBQUcsT0FBT0YsRUFBRWdCLE1BQU1GLEtBQUtDLFlBQTFsQyxLQUEybUMsS0FBSyxFQUFFLElBQUksTUFBTSxPQUFPZixFQUFFMEQsVUFBVTFELE9BQU8sT0FBTyxTQUFTQyxFQUFFQyxHQUFHLE9BQU9GLEVBQUVnQixNQUFNRixLQUFLQyxZQUFoM0MsR0NFbndDNEMsd0JBc0NPQyx1SUFIQSwwQkFDQyxtQ0FzR1EsU0FBQ0MsVUFDckJ4QyxPQUFPeUMsT0FBT0gsRUFBeUJJLFlBQVlDLE1BQUssU0FBQ0MsVUFBU0EsSUFBU0osWUFwR3JFSyxFQUNMQyxPQUFPRCxtQkFDUEMsT0FBT0MseUJBQ1BELE9BQU9FLHNCQUNQRixPQUFPRyxxQkFDUCxRQUNJQyxVQUFZLElBQUlMLE9BQ2hCTSxXQUFhLEdBRWxCbkQsT0FBT29ELGVBQWFkLEVBQXlCZSxnQkFBb0JkLEdBQVcsS0FBT2UsU0FDbEYseUJBQUVDLE9BQUtuRSxjQUFZb0UsRUFBS04sVUFBVUssR0FBT25FLHlFQXpCdkMwRCxPQUFPRCxtQkFDUEMsT0FBT0MseUJBQ1BELE9BQU9FLHNCQUNQRixPQUFPRyxtQ0FJWVEsU0FDaEIsSUFBSWxDLE1BQU0sdU1BOEJWOUIsS0FBS3lELG9EQUVZUSxFQUFtQixhQUFjLENBQUVDLE9BQU8sMkNBRXhELElBQUlwQyxNQUFNLCtEQUVaMkIsVUFBVVUsMkRBRVRDLEVBQWVwRSxLQUFLMEQsV0FBV1csUUFFcENELHlDQUtJcEUsZ1VBSURBLEtBQUt5RCxnQkFDTEEsVUFBVWIsT0FHVDVDLDRDQUlEQSxLQUFLeUQsZ0JBQ0xBLFVBQVVhLFFBR1R0RSw4Q0FHU21ELEVBQU1vQixpQkFDaEJ2RSxLQUFLeUQsV0FBYXpELEtBQUt3RSxtQkFBbUJyQixHQUFPLENBQ2hEbkQsS0FBSzBELFdBQVdQLFNBQ2hCc0Isb0JBQW9CdEIsT0FHcEJ1QixFQUFVLFNBQUNDLE9BQ1pDLEVBQWlCLEdBQ2pCekIsSUFBU04sRUFBeUJJLFdBQVc0QixRQUMxQ0YsRUFBTUcsU0FBV0gsRUFBTUcsUUFBUXBFLE9BQVMsR0FDN0NrRSxFQUFlbkUsS0FBS2tFLEVBQU1HLFFBQVEsR0FBRyxHQUFHQyxZQUl4Q1IsR0FBWUEsRUFBU3JFLE1BQU04RSxZQUFVSixHQUFnQkQsV0FFbkRsQixVQUFVbkIsaUJBQWlCYSxHQUFNLFNBQUNqRSxVQUFNd0YsRUFBUXhGLFdBRWhEd0UsV0FBV1AsR0FBUXVCLFNBR2xCMUUsaURBR1ltRCxPQUNidUIsRUFBVTFFLEtBQUswRCxXQUFXUCxlQUMzQk0sVUFBVWdCLG9CQUFvQnRCLEVBQU11QixVQUVsQzFFLEtBQUswRCxXQUFXUCxHQUVoQm5ELDhEQUlGNEMsT0FFTHJDLE9BQU8wRSxLQUFLakYsS0FBSzBELFlBQVlHLFNBQVEsU0FBQ0MsVUFBUW9CLEVBQUtULG9CQUFvQlgsV0FDbEVMLFVBQVksS0FFVnpELDZDQWpGQUEsS0FBS3lELHdCQUdBTyxTQUNOLElBQUlsQyxNQUFNLGdEQTFEWmUsbUJBQ21CLENBQ3ZCc0MsS0FBTSxRQUNOQyxZQUFZLEVBQ1pDLGdCQUFnQixFQUNoQkMsZ0JBQWlCLE1BTGJ6QyxlQVFlLENBQ25CMEMsVUFBVyxXQUNYQyxZQUFhLGFBQ2JDLElBQUssTUFDTEMsTUFBTyxRQUNQQyxTQUFVLFVBQ1ZkLE9BQVEsU0FDUmUsVUFBVyxXQUNYQyxZQUFhLGFBQ2JDLFdBQVksWUFDWkMsYUFBYyxjQUNkQyxNQUFPLFVDbkJULElBQU1DLEVBQWlCLG9CQUFHQyxVQUFBQSxhQUFZLGNBQVNDLFlBQUFBLGFBQWMsWUFBT0MsU0FBQUEsdUJBRWxFQyx1QkFBS0MsTUFBTSw2QkFBNkJDLE1BQU0sT0FBT0MsT0FBTyxPQUFPQyxRQUFRLGFBQzFFSix5QkFDQ0Esd0JBQ0NLLEtBQU1SLEVBQ05TLEVBQUUsb01BRUZQLEdBQVlDLDBCQUFRSyxLQUFNUCxFQUFhUyxHQUFHLEtBQUtDLEdBQUcsSUFBSTFILEVBQUUsU0NIdkQySCxFQUFRLGdCQUNiQyxJQUFBQSxTQUNBQyxJQUFBQSxRQUNBQyxJQUFBQSxVQUNBQyxJQUFBQSxTQUNBQyxJQUFBQSxNQUNBQyxJQUFBQSxVQUNBQyxJQUFBQSxRQUNBQyxJQUFBQSxNQUNBQyxJQUFBQSxjQUNBQyxJQUFBQSxZQUNBQyxJQUFBQSxTQUNBQyxJQUFBQSxRQUNBQyxJQUFBQSxVQUNBQyxJQUFBQSxzQkFFTUMsRUFBYUMsU0FBTyxNQUNwQkMsRUFBaUJELFNBQU8sVUFFUUUsWUFBUyxNQUF4Q0MsT0FBYUMsT0FFcEJDLGFBQVUsY0FDTHRGLEVBQXlCdUYsbUJBQzVCTCxFQUFlTSxRQUFVVCxHQUF5QixJQUFJL0UsRUFDL0MsV0FDTmtGLEVBQWVNLFFBQVEvRCxRQUN2QnlELEVBQWVNLFFBQVFDLFVBQ3ZCQyxhQUFhVixFQUFXUSxZQUd4QixDQUFDVCxRQUVFWSxFQUFhLFdBQ2xCWCxFQUFXUSxRQUFVSSxXQUFXQyxFQUFRMUIsSUFHbkMyQixFQUFZLFdBQ2pCSixhQUFhVixFQUFXUSxTQUN4QlIsRUFBV1EsUUFBVSxNQXFCaEJPLEVBQWtCLGVBRXRCVixHQUFlLE9BRUUvSSxFQUFNNEksRUFBZk0sUUFDUmxKLEVBQUVzRixvQkFBb0IsUUFBU29FLEdBQy9CMUosRUFBRXNGLG9CQUFvQixNQUFPaUUsR0FDN0J2SixFQUFFc0Ysb0JBQW9CLGNBQWVxRSxHQUNyQzNKLEVBQUVzRixvQkFBb0IsWUFBYXNFLEdBQ25DNUosRUFBRXNGLG9CQUFvQixTQUFVdUUsR0FDaEM3SixFQUFFc0Ysb0JBQW9CLFFBQVN3RSxHQUMvQjlKLEVBQUVzRixvQkFBb0IsVUFBV3lFLEdBQ2pDL0osRUFBRXlELE9BQ0QsTUFBT3lCLEdBQ1I0RSxFQUFTNUUsS0FpQkx3RSxFQUFXLFNBQUMzSixHQVpqQnNKLElBZUVuQixHQUFXQSxFQUFRbkksSUFHaEJ3SixFQUFTLFNBQUN4SixHQWRmeUosSUFDQUMsSUFnQkV0QixHQUFTQSxFQUFNcEksSUFHWjRKLEVBQWlCLFNBQUM1SixHQUN2QnlKLElBRUVwQixHQUFpQkEsRUFBY3JJLElBRzVCNkosRUFBZSxTQUFDN0osR0FDckJzSixJQUVFaEIsR0FBZUEsRUFBWXRJLElBR3hCOEosRUFBWSxTQUFDRyxFQUFReEUsR0FDMUJpRSxJQUVFbkIsR0FBWUEsRUFBUzBCLEVBQVF4RSxJQUcxQnNFLEVBQVcsU0FBQzVFLEdBQ2pCdUUsSUFFRWxCLEdBQVdBLEVBQVFyRCxJQUdoQjZFLEVBQWEsU0FBQ2hLLEdBQ2pCeUksR0FBYUEsRUFBVXpJLFdBaUJ6QjJELEVBQXlCdUYsYUFDekJnQixlQUFhQyxpQkFBZXRDLEdBQVlBLEVBZHhDVixxQ0FDYSxpQkFDWmlELEtBQUssc0JBQ09yQyxFQUNaQyxTQUFVQSxFQUNWQyxNQUFPQyxFQUFZLFFBQVNiLE1BQU8sR0FBSUMsT0FBUSxHQUFJK0MsT0FBU3RCLEVBQTBCLEtBQVosV0FBcUJkLEdBQy9GQyxVQUFXQSxHQUVYZixnQkFBQ0osR0FBZUcsU0FBVTZCLEVBQWEvQixVQUFVLGdCQU81QytCLEdBQWUsQ0FBRXVCLFFBNURQLFlBN0NRLGVBRXZCdEIsR0FBZSxPQUVFL0ksRUFBTTRJLEVBQWZNLFFBQ1JsSixFQUFFbUQsaUJBQWlCLFFBQVN1RyxHQUM1QjFKLEVBQUVtRCxpQkFBaUIsTUFBT29HLEdBQzFCdkosRUFBRW1ELGlCQUFpQixjQUFld0csR0FDbEMzSixFQUFFbUQsaUJBQWlCLFlBQWF5RyxHQUNoQzVKLEVBQUVtRCxpQkFBaUIsU0FBVTBHLEdBQzdCN0osRUFBRW1ELGlCQUFpQixRQUFTMkcsR0FDNUI5SixFQUFFbUQsaUJBQWlCLFVBQVc0RyxHQUM5Qi9KLEVBQUVnRixRQUNELE1BQU9FLEdBQ1I0RSxFQUFTNUUsSUFnQ1ZvRixlQWdFRjNDLEVBQU00QyxVQUFZLENBRWpCMUMsUUFBUzJDLEVBQVVDLE9BRW5CM0MsVUFBVzBDLEVBQVVFLE9BRXJCM0MsU0FBVXlDLEVBQVVDLE9BRXBCekMsTUFBT3dDLEVBQVVHLE9BRWpCMUMsVUFBV3VDLEVBQVVFLE9BRXJCeEMsUUFBU3NDLEVBQVVJLEtBRW5CekMsTUFBT3FDLEVBQVVJLEtBRWpCeEMsY0FBZW9DLEVBQVVJLEtBRXpCdkMsWUFBYW1DLEVBQVVJLEtBRXZCdEMsU0FBVWtDLEVBQVVJLEtBRXBCckMsUUFBU2lDLEVBQVVJLEtBRW5CcEMsVUFBV2dDLEVBQVVJLE1BR3RCakQsRUFBTWtELGFBQWUsQ0FDcEJoRCxRQUFTLElBQ1RDLFVBQVcsU0FDWEMsVUFBVyxFQUNYQyxNQUFPLEtBQ1BDLFVBQVcsS0FDWEMsUUFBUyxLQUNUQyxNQUFPLEtBQ1BDLGNBQWUsS0FDZkMsWUFBYSxLQUNiQyxTQUFVLEtBQ1ZDLFFBQVMsS0FDVEMsVUFBVyJ9
{
"name": "@untemps/react-vocal",
"version": "1.0.0",
"version": "1.0.1",
"author": "Vincent Le Badezet <v.lebadezet@untemps.net>",

@@ -5,0 +5,0 @@ "repository": "git@github.com:untemps/react-vocal.git",

@@ -5,3 +5,3 @@ # @untemps/react-vocal

![.github/workflows/index.yml](https://github.com/untemps/Vocal/workflows/.github/workflows/index.yml/badge.svg?branch=master)
![.github/workflows/index.yml](https://github.com/untemps/react-vocal/workflows/.github/workflows/index.yml/badge.svg?branch=master)

@@ -23,3 +23,3 @@ ## Disclaimer

```javascript
import { Vocal } from '@untemps/react-vocal'
import Vocal from '@untemps/react-vocal'
```

@@ -59,3 +59,2 @@

![Idle icon](./icon-idle.png)
![Listening icon](./icon-listening.png)

@@ -109,2 +108,2 @@

- Expose SpeechRecognition properties via props
- Add a connector management to plug external speech-to-text services in
- Add a connector management to plug external speech-to-text services in

@@ -42,9 +42,9 @@ import React from 'react'

const { queryByTestId } = render(getInstance())
expect(queryByTestId('__speech-root__')).toBeInTheDocument()
expect(queryByTestId('__vocal-root__')).toBeInTheDocument()
})
it('renders custom children', () => {
const { queryByTestId } = render(getInstance(null, <div data-testid="__speech-custom-root__" />))
expect(queryByTestId('__speech-root__')).not.toBeInTheDocument()
expect(queryByTestId('__speech-custom-root__')).toBeInTheDocument()
const { queryByTestId } = render(getInstance(null, <div data-testid="__vocal-custom-root__" />))
expect(queryByTestId('__vocal-root__')).not.toBeInTheDocument()
expect(queryByTestId('__vocal-custom-root__')).toBeInTheDocument()
})

@@ -56,3 +56,3 @@

await act(async () => {
fireEvent.click(queryByTestId('__speech-root__'))
fireEvent.click(queryByTestId('__vocal-root__'))
await waitFor(() => expect(onStart).toHaveBeenCalled())

@@ -71,3 +71,3 @@ })

})
fireEvent.click(queryByTestId('__speech-root__'))
fireEvent.click(queryByTestId('__vocal-root__'))
})

@@ -85,3 +85,3 @@ })

})
fireEvent.click(queryByTestId('__speech-root__'))
fireEvent.click(queryByTestId('__vocal-root__'))
})

@@ -99,3 +99,3 @@ })

})
fireEvent.click(queryByTestId('__speech-root__'))
fireEvent.click(queryByTestId('__vocal-root__'))
})

@@ -109,3 +109,3 @@ })

await act(async () => {
fireEvent.click(queryByTestId('__speech-root__'))
fireEvent.click(queryByTestId('__vocal-root__'))
await waitFor(() => expect(onEnd).toHaveBeenCalled(), { timeout: 200 })

@@ -120,3 +120,3 @@ })

await act(async () => {
fireEvent.click(queryByTestId('__speech-root__'))
fireEvent.click(queryByTestId('__vocal-root__'))
recognition.instance.addEventListener('start', async () => {

@@ -123,0 +123,0 @@ recognition.instance.say('Foo')

@@ -11,2 +11,4 @@ import React, { cloneElement, isValidElement, useEffect, useRef, useState } from 'react'

timeout,
ariaLabel,
tabIndex,
style,

@@ -29,7 +31,9 @@ className,

useEffect(() => {
recognitionRef.current = __recognitionInstance || new SpeechRecognitionWrapper()
return () => {
recognitionRef.current.abort()
recognitionRef.current.cleanup()
clearTimeout(timeoutRef.current)
if (SpeechRecognitionWrapper.isSupported) {
recognitionRef.current = __recognitionInstance || new SpeechRecognitionWrapper()
return () => {
recognitionRef.current.abort()
recognitionRef.current.cleanup()
clearTimeout(timeoutRef.current)
}
}

@@ -138,3 +142,6 @@ }, [__recognitionInstance])

<div
data-testid="__speech-root__"
data-testid="__vocal-root__"
role="button"
aria-label={ariaLabel}
tabIndex={tabIndex}
style={className ? null : { width: 24, height: 24, cursor: !isListening ? 'pointer' : null, ...style }}

@@ -158,2 +165,6 @@ className={className}

timeout: PropTypes.number,
/** Defines the a11y label for the default button */
ariaLabel: PropTypes.string,
/** Defines the a11y tab index for the default button */
tabIndex: PropTypes.number,
/** Defines the styles of the default element if className is not specified */

@@ -181,2 +192,4 @@ style: PropTypes.object,

timeout: 3000,
ariaLabel: 'speech',
tabIndex: -1,
style: null,

@@ -183,0 +196,0 @@ className: null,

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc