summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--1040.668a24817c3f3941bb2c.js2
-rw-r--r--1040.668a24817c3f3941bb2c.js.map1
-rw-r--r--8573.8abff79303ed4e093d95.js2
-rw-r--r--8573.8abff79303ed4e093d95.js.map1
-rw-r--r--index.html2
-rw-r--r--main.696e6442329cdd2bc627.js3
-rw-r--r--main.696e6442329cdd2bc627.js.LICENSE.txt1
-rw-r--r--main.696e6442329cdd2bc627.js.map1
-rw-r--r--runtime.a40c24775970b5e2279a.js2
-rw-r--r--runtime.a40c24775970b5e2279a.js.map1
10 files changed, 15 insertions, 1 deletions
diff --git a/1040.668a24817c3f3941bb2c.js b/1040.668a24817c3f3941bb2c.js
new file mode 100644
index 0000000..0cfca57
--- /dev/null
+++ b/1040.668a24817c3f3941bb2c.js
@@ -0,0 +1,2 @@
+(self.webpackChunkapp=self.webpackChunkapp||[]).push([[1040],{87360:function(e,r){var n,t;void 0===(t="function"==typeof(n=function(){var e="undefined"==typeof window,r="function"==typeof Map?Map:function(){var e=Object.create(null);this.get=function(r){return e[r]},this.set=function(r,n){return e[r]=n,this},this.clear=function(){e=Object.create(null)}},n=new r,t=new r,o=[];o.total=0;var a=[],l=[];function i(){n.clear(),t.clear(),a=[],l=[]}function u(e){for(var r=-9007199254740991,n=e.length-1;n>=0;--n){var t=e[n];if(null!==t){var o=t.score;o>r&&(r=o)}}return-9007199254740991===r?null:r}function c(e,r){var n=e[r];if(void 0!==n)return n;var t=r;Array.isArray(r)||(t=r.split("."));for(var o=t.length,a=-1;e&&++a<o;)e=e[t[a]];return e}function f(e){return"object"==typeof e}var s=function(){var e=[],r=0,n={};function t(){for(var n=0,t=e[n],o=1;o<r;){var a=o+1;n=o,a<r&&e[a].score<e[o].score&&(n=a),e[n-1>>1]=e[n],o=1+(n<<1)}for(var l=n-1>>1;n>0&&t.score<e[l].score;l=(n=l)-1>>1)e[n]=e[l];e[n]=t}return n.add=function(n){var t=r;e[r++]=n;for(var o=t-1>>1;t>0&&n.score<e[o].score;o=(t=o)-1>>1)e[t]=e[o];e[t]=n},n.poll=function(){if(0!==r){var n=e[0];return e[0]=e[--r],t(),n}},n.peek=function(n){if(0!==r)return e[0]},n.replaceTop=function(r){e[0]=r,t()},n},p=s();return function r(d){var v={single:function(e,r,n){return"farzher"==e?{target:"farzher was here (^-^*)/",score:0,indexes:[0,1,2,3,4,5,6]}:e?(f(e)||(e=v.getPreparedSearch(e)),r?(f(r)||(r=v.getPrepared(r)),((n&&void 0!==n.allowTypo?n.allowTypo:!d||void 0===d.allowTypo||d.allowTypo)?v.algorithm:v.algorithmNoTypo)(e,r,e[0])):null):null},go:function(e,r,n){if("farzher"==e)return[{target:"farzher was here (^-^*)/",score:0,indexes:[0,1,2,3,4,5,6],obj:r?r[0]:null}];if(!e)return o;var t=(e=v.prepareSearch(e))[0],a=n&&n.threshold||d&&d.threshold||-9007199254740991,l=n&&n.limit||d&&d.limit||9007199254740991,i=(n&&void 0!==n.allowTypo?n.allowTypo:!d||void 0===d.allowTypo||d.allowTypo)?v.algorithm:v.algorithmNoTypo,s=0,h=0,g=r.length;if(n&&n.keys)for(var x=n.scoreFn||u,m=n.keys,w=m.length,b=g-1;b>=0;--b){for(var _=r[b],y=new Array(w),k=w-1;k>=0;--k)(E=c(_,T=m[k]))?(f(E)||(E=v.getPrepared(E)),y[k]=i(e,E,t)):y[k]=null;y.obj=_;var C=x(y);null!==C&&(C<a||(y.score=C,s<l?(p.add(y),++s):(++h,C>p.peek().score&&p.replaceTop(y))))}else if(n&&n.key){var T=n.key;for(b=g-1;b>=0;--b)(E=c(_=r[b],T))&&(f(E)||(E=v.getPrepared(E)),null!==(I=i(e,E,t))&&(I.score<a||(I={target:I.target,_targetLowerCodes:null,_nextBeginningIndexes:null,score:I.score,indexes:I.indexes,obj:_},s<l?(p.add(I),++s):(++h,I.score>p.peek().score&&p.replaceTop(I)))))}else for(b=g-1;b>=0;--b){var E,I;(E=r[b])&&(f(E)||(E=v.getPrepared(E)),null!==(I=i(e,E,t))&&(I.score<a||(s<l?(p.add(I),++s):(++h,I.score>p.peek().score&&p.replaceTop(I)))))}if(0===s)return o;var N=new Array(s);for(b=s-1;b>=0;--b)N[b]=p.poll();return N.total=s+h,N},goAsync:function(r,n,t){var a=!1,l=new Promise((function(l,i){if("farzher"==r)return l([{target:"farzher was here (^-^*)/",score:0,indexes:[0,1,2,3,4,5,6],obj:n?n[0]:null}]);if(!r)return l(o);var p=(r=v.prepareSearch(r))[0],h=s(),g=n.length-1,x=t&&t.threshold||d&&d.threshold||-9007199254740991,m=t&&t.limit||d&&d.limit||9007199254740991,w=(t&&void 0!==t.allowTypo?t.allowTypo:!d||void 0===d.allowTypo||d.allowTypo)?v.algorithm:v.algorithmNoTypo,b=0,_=0;function y(){if(a)return i("canceled");var s=Date.now();if(t&&t.keys)for(var d=t.scoreFn||u,k=t.keys,C=k.length;g>=0;--g){if(g%1e3==0&&Date.now()-s>=10)return void(e?setImmediate(y):setTimeout(y));for(var T=n[g],E=new Array(C),I=C-1;I>=0;--I)(j=c(T,B=k[I]))?(f(j)||(j=v.getPrepared(j)),E[I]=w(r,j,p)):E[I]=null;E.obj=T;var N=d(E);null!==N&&(N<x||(E.score=N,b<m?(h.add(E),++b):(++_,N>h.peek().score&&h.replaceTop(E))))}else if(t&&t.key)for(var B=t.key;g>=0;--g){if(g%1e3==0&&Date.now()-s>=10)return void(e?setImmediate(y):setTimeout(y));(j=c(T=n[g],B))&&(f(j)||(j=v.getPrepared(j)),null!==(M=w(r,j,p))&&(M.score<x||(M={target:M.target,_targetLowerCodes:null,_nextBeginningIndexes:null,score:M.score,indexes:M.indexes,obj:T},b<m?(h.add(M),++b):(++_,M.score>h.peek().score&&h.replaceTop(M)))))}else for(;g>=0;--g){if(g%1e3==0&&Date.now()-s>=10)return void(e?setImmediate(y):setTimeout(y));var j,M;(j=n[g])&&(f(j)||(j=v.getPrepared(j)),null!==(M=w(r,j,p))&&(M.score<x||(b<m?(h.add(M),++b):(++_,M.score>h.peek().score&&h.replaceTop(M)))))}if(0===b)return l(o);for(var L=new Array(b),z=b-1;z>=0;--z)L[z]=h.poll();L.total=b+_,l(L)}e?setImmediate(y):y()}));return l.cancel=function(){a=!0},l},highlight:function(e,r,n){if("function"==typeof r)return v.highlightCallback(e,r);if(null===e)return null;void 0===r&&(r="<b>"),void 0===n&&(n="</b>");for(var t="",o=0,a=!1,l=e.target,i=l.length,u=e.indexes,c=0;c<i;++c){var f=l[c];if(u[o]===c){if(a||(a=!0,t+=r),++o===u.length){t+=f+n+l.substr(c+1);break}}else a&&(a=!1,t+=n);t+=f}return t},highlightCallback:function(e,r){if(null===e)return null;for(var n=e.target,t=n.length,o=e.indexes,a="",l=0,i=0,u=!1,c=(e=[],0);c<t;++c){var f=n[c];if(o[i]===c){if(++i,u||(u=!0,e.push(a),a=""),i===o.length){a+=f,e.push(r(a,l++)),a="",e.push(n.substr(c+1));break}}else u&&(u=!1,e.push(r(a,l++)),a="");a+=f}return e},prepare:function(e){return e?{target:e,_targetLowerCodes:v.prepareLowerCodes(e),_nextBeginningIndexes:null,score:null,indexes:null,obj:null}:{target:"",_targetLowerCodes:[0],_nextBeginningIndexes:null,score:null,indexes:null,obj:null}},prepareSlow:function(e){return e?{target:e,_targetLowerCodes:v.prepareLowerCodes(e),_nextBeginningIndexes:v.prepareNextBeginningIndexes(e),score:null,indexes:null,obj:null}:{target:"",_targetLowerCodes:[0],_nextBeginningIndexes:null,score:null,indexes:null,obj:null}},prepareSearch:function(e){return e||(e=""),v.prepareLowerCodes(e)},getPrepared:function(e){if(e.length>999)return v.prepare(e);var r=n.get(e);return void 0!==r||(r=v.prepare(e),n.set(e,r)),r},getPreparedSearch:function(e){if(e.length>999)return v.prepareSearch(e);var r=t.get(e);return void 0!==r||(r=v.prepareSearch(e),t.set(e,r)),r},algorithm:function(e,r,n){for(var t=r._targetLowerCodes,o=e.length,i=t.length,u=0,c=0,f=0,s=0;;){if(n===t[c]){if(a[s++]=c,++u===o)break;n=e[0===f?u:f===u?u+1:f===u-1?u-1:u]}if(++c>=i)for(;;){if(u<=1)return null;if(0===f){if(n===e[--u])continue;f=u}else{if(1===f)return null;if((n=e[1+(u=--f)])===e[u])continue}c=a[(s=u)-1]+1;break}}u=0;var p=0,d=!1,h=0,g=r._nextBeginningIndexes;null===g&&(g=r._nextBeginningIndexes=v.prepareNextBeginningIndexes(r.target));var x=c=0===a[0]?0:g[a[0]-1];if(c!==i)for(;;)if(c>=i){if(u<=0){if(++p>o-2)break;if(e[p]===e[p+1])continue;c=x;continue}--u,c=g[l[--h]]}else if(e[0===p?u:p===u?u+1:p===u-1?u-1:u]===t[c]){if(l[h++]=c,++u===o){d=!0;break}++c}else c=g[c];if(d)var m=l,w=h;else m=a,w=s;for(var b=0,_=-1,y=0;y<o;++y)_!==(c=m[y])-1&&(b-=c),_=c;for(d?0!==p&&(b+=-20):(b*=1e3,0!==f&&(b+=-20)),b-=i-o,r.score=b,r.indexes=new Array(w),y=w-1;y>=0;--y)r.indexes[y]=m[y];return r},algorithmNoTypo:function(e,r,n){for(var t=r._targetLowerCodes,o=e.length,i=t.length,u=0,c=0,f=0;;){if(n===t[c]){if(a[f++]=c,++u===o)break;n=e[u]}if(++c>=i)return null}u=0;var s=!1,p=0,d=r._nextBeginningIndexes;if(null===d&&(d=r._nextBeginningIndexes=v.prepareNextBeginningIndexes(r.target)),(c=0===a[0]?0:d[a[0]-1])!==i)for(;;)if(c>=i){if(u<=0)break;--u,c=d[l[--p]]}else if(e[u]===t[c]){if(l[p++]=c,++u===o){s=!0;break}++c}else c=d[c];if(s)var h=l,g=p;else h=a,g=f;for(var x=0,m=-1,w=0;w<o;++w)m!==(c=h[w])-1&&(x-=c),m=c;for(s||(x*=1e3),x-=i-o,r.score=x,r.indexes=new Array(g),w=g-1;w>=0;--w)r.indexes[w]=h[w];return r},prepareLowerCodes:function(e){for(var r=e.length,n=[],t=e.toLowerCase(),o=0;o<r;++o)n[o]=t.charCodeAt(o);return n},prepareBeginningIndexes:function(e){for(var r=e.length,n=[],t=0,o=!1,a=!1,l=0;l<r;++l){var i=e.charCodeAt(l),u=i>=65&&i<=90,c=u||i>=97&&i<=122||i>=48&&i<=57,f=u&&!o||!a||!c;o=u,a=c,f&&(n[t++]=l)}return n},prepareNextBeginningIndexes:function(e){for(var r=e.length,n=v.prepareBeginningIndexes(e),t=[],o=n[0],a=0,l=0;l<r;++l)o>l?t[l]=o:(o=n[++a],t[l]=void 0===o?r:o);return t},cleanup:i,new:r};return v}()})?n.apply(r,[]):n)||(e.exports=t)},47443:function(e,r,n){var t=n(42118);e.exports=function(e,r){return!(null==e||!e.length)&&t(e,r,0)>-1}},1196:function(e){e.exports=function(e,r,n){for(var t=-1,o=null==e?0:e.length;++t<o;)if(n(r,e[t]))return!0;return!1}},20731:function(e,r,n){var t=n(88668),o=n(47443),a=n(1196),l=n(29932),i=n(7518),u=n(74757);e.exports=function(e,r,n,c){var f=-1,s=o,p=!0,d=e.length,v=[],h=r.length;if(!d)return v;n&&(r=l(r,i(n))),c?(s=a,p=!1):r.length>=200&&(s=u,p=!1,r=new t(r));e:for(;++f<d;){var g=e[f],x=null==n?g:n(g);if(g=c||0!==g?g:0,p&&x==x){for(var m=h;m--;)if(r[m]===x)continue e;v.push(g)}else s(r,x,c)||v.push(g)}return v}},42118:function(e,r,n){var t=n(41848),o=n(62722),a=n(42351);e.exports=function(e,r,n){return r==r?a(e,r,n):t(e,o,n)}},62722:function(e){e.exports=function(e){return e!=e}},5976:function(e,r,n){var t=n(6557),o=n(45357),a=n(30061);e.exports=function(e,r){return a(o(e,r,t),e+"")}},42351:function(e){e.exports=function(e,r,n){for(var t=n-1,o=e.length;++t<o;)if(e[t]===r)return t;return-1}},29246:function(e,r,n){var t=n(98612),o=n(37005);e.exports=function(e){return o(e)&&t(e)}},82569:function(e,r,n){var t=n(20731),o=n(5976),a=n(29246),l=o((function(e,r){return a(e)?t(e,r):[]}));e.exports=l},55651:function(e,r,n){"use strict";n.d(r,{Jz:function(){return I}});var t=n(67294);function o(){return(o=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])}return e}).apply(this,arguments)}function a(e,r){if(null==e)return{};var n,t,o={},a=Object.keys(e);for(t=0;t<a.length;t++)r.indexOf(n=a[t])>=0||(o[n]=e[n]);return o}function l(e){var r=(0,t.useRef)(e),n=(0,t.useRef)((function(e){r.current&&r.current(e)}));return r.current=e,n.current}var i=function(e,r,n){return void 0===r&&(r=0),void 0===n&&(n=1),e>n?n:e<r?r:e},u=function(e){return"touches"in e},c=function(e){return e&&e.ownerDocument.defaultView||self},f=function(e,r,n){var t=e.getBoundingClientRect(),o=u(r)?function(e,r){for(var n=0;n<e.length;n++)if(e[n].identifier===r)return e[n];return e[0]}(r.touches,n):r;return{left:i((o.pageX-(t.left+c(e).pageXOffset))/t.width),top:i((o.pageY-(t.top+c(e).pageYOffset))/t.height)}},s=function(e){!u(e)&&e.preventDefault()},p=t.memo((function(e){var r=e.onMove,n=e.onKey,i=a(e,["onMove","onKey"]),p=(0,t.useRef)(null),d=l(r),v=l(n),h=(0,t.useRef)(null),g=(0,t.useRef)(!1),x=(0,t.useMemo)((function(){var e=function(e){s(e),(u(e)?e.touches.length>0:e.buttons>0)&&p.current?d(f(p.current,e,h.current)):n(!1)},r=function(){return n(!1)};function n(n){var t=g.current,o=c(p.current),a=n?o.addEventListener:o.removeEventListener;a(t?"touchmove":"mousemove",e),a(t?"touchend":"mouseup",r)}return[function(e){var r=e.nativeEvent,t=p.current;if(t&&(s(r),!function(e,r){return r&&!u(e)}(r,g.current)&&t)){if(u(r)){g.current=!0;var o=r.changedTouches||[];o.length&&(h.current=o[0].identifier)}t.focus(),d(f(t,r,h.current)),n(!0)}},function(e){var r=e.which||e.keyCode;r<37||r>40||(e.preventDefault(),v({left:39===r?.05:37===r?-.05:0,top:40===r?.05:38===r?-.05:0}))},n]}),[v,d]),m=x[0],w=x[1],b=x[2];return(0,t.useEffect)((function(){return b}),[b]),t.createElement("div",o({},i,{onTouchStart:m,onMouseDown:m,className:"react-colorful__interactive",ref:p,onKeyDown:w,tabIndex:0,role:"slider"}))})),d=function(e){return e.filter(Boolean).join(" ")},v=function(e){var r=e.color,n=e.left,o=e.top,a=void 0===o?.5:o,l=d(["react-colorful__pointer",e.className]);return t.createElement("div",{className:l,style:{top:100*a+"%",left:100*n+"%"}},t.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:r}}))},h=function(e,r,n){return void 0===r&&(r=0),void 0===n&&(n=Math.pow(10,r)),Math.round(n*e)/n},g=(Math.PI,function(e){var r=e.s,n=e.l;return{h:e.h,s:(r*=(n<50?n:100-n)/100)>0?2*r/(n+r)*100:0,v:n+r,a:e.a}}),x=function(e){var r=e.s,n=e.v,t=e.a,o=(200-r)*n/100;return{h:h(e.h),s:h(o>0&&o<200?r*n/100/(o<=100?o:200-o)*100:0),l:h(o/2),a:h(t,2)}},m=function(e){var r=x(e);return"hsl("+r.h+", "+r.s+"%, "+r.l+"%)"},w=t.memo((function(e){var r=e.hue,n=e.onChange,o=d(["react-colorful__hue",e.className]);return t.createElement("div",{className:o},t.createElement(p,{onMove:function(e){n({h:360*e.left})},onKey:function(e){n({h:i(r+360*e.left,0,360)})},"aria-label":"Hue","aria-valuenow":h(r),"aria-valuemax":"360","aria-valuemin":"0"},t.createElement(v,{className:"react-colorful__hue-pointer",left:r/360,color:m({h:r,s:100,v:100,a:1})})))})),b=t.memo((function(e){var r=e.hsva,n=e.onChange,o={backgroundColor:m({h:r.h,s:100,v:100,a:1})};return t.createElement("div",{className:"react-colorful__saturation",style:o},t.createElement(p,{onMove:function(e){n({s:100*e.left,v:100-100*e.top})},onKey:function(e){n({s:i(r.s+100*e.left,0,100),v:i(r.v-100*e.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+h(r.s)+"%, Brightness "+h(r.v)+"%"},t.createElement(v,{className:"react-colorful__saturation-pointer",top:1-r.v/100,left:r.s/100,color:m(r)})))})),_=function(e,r){if(e===r)return!0;for(var n in e)if(e[n]!==r[n])return!1;return!0};function y(e,r,n){var o=l(n),a=(0,t.useState)((function(){return e.toHsva(r)})),i=a[0],u=a[1],c=(0,t.useRef)({color:r,hsva:i});(0,t.useEffect)((function(){if(!e.equal(r,c.current.color)){var n=e.toHsva(r);c.current={hsva:n,color:r},u(n)}}),[r,e]),(0,t.useEffect)((function(){var r;_(i,c.current.hsva)||e.equal(r=e.fromHsva(i),c.current.color)||(c.current={hsva:i,color:r},o(r))}),[i,e,o]);var f=(0,t.useCallback)((function(e){u((function(r){return Object.assign({},r,e)}))}),[]);return[i,f]}var k="undefined"!=typeof window?t.useLayoutEffect:t.useEffect,C=new Map,T=function(e){var r,l=e.className,i=e.colorModel,u=e.color,c=void 0===u?i.defaultColor:u,f=e.onChange,s=a(e,["className","colorModel","color","onChange"]),p=(0,t.useRef)(null);r=p,k((function(){var e=r.current?r.current.ownerDocument:document;if(void 0!==e&&!C.has(e)){var t=e.createElement("style");t.innerHTML='.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url(\'data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>\')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}',C.set(e,t);var o=n.nc;o&&t.setAttribute("nonce",o),e.head.appendChild(t)}}),[]);var v=y(i,c,f),h=v[0],g=v[1],x=d(["react-colorful",l]);return t.createElement("div",o({},s,{ref:p,className:x}),t.createElement(b,{hsva:h,onChange:g}),t.createElement(w,{hue:h.h,onChange:g,className:"react-colorful__last-control"}))},E={defaultColor:{h:0,s:0,l:0},toHsva:function(e){return g({h:e.h,s:e.s,l:e.l,a:1})},fromHsva:function(e){return{h:(r=x(e)).h,s:r.s,l:r.l};var r},equal:_},I=function(e){return t.createElement(T,o({},e,{colorModel:E}))}}}]);
+//# sourceMappingURL=1040.668a24817c3f3941bb2c.js.map \ No newline at end of file
diff --git a/1040.668a24817c3f3941bb2c.js.map b/1040.668a24817c3f3941bb2c.js.map
new file mode 100644
index 0000000..c08a45c
--- /dev/null
+++ b/1040.668a24817c3f3941bb2c.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"1040.668a24817c3f3941bb2c.js","mappings":"kFAAA,aAoB+D,0BAAH,EAGnD,WAqjBT,IAAIA,EAA6D,oBAAXC,OAClDC,EAAuB,mBAARC,IAAqBA,IAAM,WAAW,IAAIC,EAAEC,OAAOC,OAAO,MAAMC,KAAKC,IAAI,SAASC,GAAG,OAAOL,EAAEK,EAAE,EAAEF,KAAKG,IAAI,SAASD,EAAEE,GAAc,OAATP,EAAEK,GAAGE,EAAWJ,IAAI,EAAEA,KAAKK,MAAM,WAAWR,EAAEC,OAAOC,OAAO,KAAK,CAAC,EAC5MO,EAAgB,IAAIX,EACpBY,EAAsB,IAAIZ,EAC1Ba,EAAY,GAAIA,EAAUC,MAAQ,EACtC,IAAIC,EAAgB,GAAQC,EAAgB,GAC5C,SAASC,IAAYN,EAAcD,QAASE,EAAoBF,QAASK,EAAgB,GAAIC,EAAgB,EAAG,CAChH,SAASE,EAAeC,GAEtB,IADA,IAAIC,GAAO,iBACFC,EAAIF,EAAEG,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACtC,IAAIE,EAASJ,EAAEE,GAAI,GAAc,OAAXE,EAAH,CACnB,IAAIC,EAAQD,EAAOC,MAChBA,EAAQJ,IAAKA,EAAMI,EAFiB,CAGzC,CACA,OAAY,mBAATJ,EAAkC,KAC9BA,CACT,CAKA,SAASK,EAASC,EAAKC,GACrB,IAAIC,EAAMF,EAAIC,GAAO,QAAWE,IAARD,EAAmB,OAAOA,EAClD,IAAIE,EAAOH,EACPI,MAAMC,QAAQL,KAAOG,EAAOH,EAAKM,MAAM,MAG3C,IAFA,IAAIC,EAAMJ,EAAKR,OACXD,GAAK,EACFK,KAAUL,EAAIa,GAAMR,EAAMA,EAAII,EAAKT,IAC1C,OAAOK,CACT,CAEA,SAASS,EAAMC,GAAK,MAAoB,iBAANA,CAAe,CAGjD,IAAIC,EAAkB,WAAW,IAAIC,EAAE,GAAGC,EAAE,EAAEC,EAAE,CAAC,EAAE,SAASC,IAAI,IAAI,IAAID,EAAE,EAAEC,EAAEH,EAAEE,GAAGE,EAAE,EAAEA,EAAEH,GAAG,CAAC,IAAII,EAAED,EAAE,EAAEF,EAAEE,EAAEC,EAAEJ,GAAGD,EAAEK,GAAGnB,MAAMc,EAAEI,GAAGlB,QAAQgB,EAAEG,GAAGL,EAAEE,EAAE,GAAG,GAAGF,EAAEE,GAAGE,EAAE,GAAGF,GAAG,EAAE,CAAC,IAAI,IAAIrB,EAAEqB,EAAE,GAAG,EAAEA,EAAE,GAAGC,EAAEjB,MAAMc,EAAEnB,GAAGK,MAAML,GAAGqB,EAAErB,GAAG,GAAG,EAAEmB,EAAEE,GAAGF,EAAEnB,GAAGmB,EAAEE,GAAGC,CAAC,CAAC,OAAOD,EAAEI,IAAI,SAASJ,GAAG,IAAIC,EAAEF,EAAED,EAAEC,KAAKC,EAAE,IAAI,IAAIE,EAAED,EAAE,GAAG,EAAEA,EAAE,GAAGD,EAAEhB,MAAMc,EAAEI,GAAGlB,MAAMkB,GAAGD,EAAEC,GAAG,GAAG,EAAEJ,EAAEG,GAAGH,EAAEI,GAAGJ,EAAEG,GAAGD,CAAC,EAAEA,EAAEK,KAAK,WAAW,GAAG,IAAIN,EAAE,CAAC,IAAIC,EAAEF,EAAE,GAAG,OAAOA,EAAE,GAAGA,IAAIC,GAAGE,IAAID,CAAC,CAAC,EAAEA,EAAEM,KAAK,SAASN,GAAG,GAAG,IAAID,EAAE,OAAOD,EAAE,EAAE,EAAEE,EAAEO,WAAW,SAASR,GAAGD,EAAE,GAAGC,EAAEE,GAAG,EAAED,CAAC,EAC7eQ,EAAIX,IAER,OA1lB0B,SAASY,EAAaC,GAE9C,IAAIC,EAAY,CAEdC,OAAQ,SAASC,EAAQC,EAAQC,GAA0N,MAAW,WAARF,EAAwB,CAACC,OAAO,2BAA2B9B,MAAM,EAAEgC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAChVH,GACAlB,EAAMkB,KAASA,EAASF,EAAUM,kBAAkBJ,IAEpDC,GACAnB,EAAMmB,KAASA,EAASH,EAAUO,YAAYJ,MAElCC,QAA+B1B,IAApB0B,EAAQI,UAAwBJ,EAAQI,WAC/DT,QAA+CrB,IAA5BqB,EAAgBS,WAAwBT,EAAgBS,WAEnDR,EAAUS,UAAYT,EAAUU,iBAC3CR,EAAQC,EAAQD,EAAO,KAPrB,MAHA,IAWrB,EAEAS,GAAI,SAAST,EAAQU,EAASR,GAA6N,GAAW,WAARF,EAAkB,MAAM,CAAC,CAACC,OAAO,2BAA2B9B,MAAM,EAAEgC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG9B,IAAIqC,EAAQA,EAAQ,GAAG,OAC/W,IAAIV,EAAQ,OAAOxC,EAEnB,IAAImD,GADJX,EAASF,EAAUc,cAAcZ,IACJ,GAEzBa,EAAYX,GAAWA,EAAQW,WAAahB,GAAmBA,EAAgBgB,YAAc,iBAC7FC,EAAQZ,GAAWA,EAAQY,OAASjB,GAAmBA,EAAgBiB,OAAS,iBAIhFP,GAHYL,QAA+B1B,IAApB0B,EAAQI,UAAwBJ,EAAQI,WAC/DT,QAA+CrB,IAA5BqB,EAAgBS,WAAwBT,EAAgBS,WAEnDR,EAAUS,UAAYT,EAAUU,gBACxDO,EAAa,EAAOC,EAAe,EACnCC,EAAaP,EAAQzC,OAKzB,GAAGiC,GAAWA,EAAQgB,KAIpB,IAHA,IAAIC,EAAUjB,EAAQiB,SAAWtD,EAC7BqD,EAAOhB,EAAQgB,KACfE,EAAUF,EAAKjD,OACXD,EAAIiD,EAAa,EAAGjD,GAAK,IAAKA,EAAG,CAEvC,IAFyC,IAAIK,EAAMqC,EAAQ1C,GACvDqD,EAAa,IAAI3C,MAAM0C,GAClBE,EAAOF,EAAU,EAAGE,GAAQ,IAAKA,GAEpCrB,EAAS7B,EAASC,EADlBkD,EAAML,EAAKI,MAGXxC,EAAMmB,KAASA,EAASH,EAAUO,YAAYJ,IAElDoB,EAAWC,GAAQf,EAAUP,EAAQC,EAAQU,IAH/BU,EAAWC,GAAQ,KAKnCD,EAAWhD,IAAMA,EACjB,IAAIF,EAAQgD,EAAQE,GACP,OAAVlD,IACAA,EAAQ0C,IACXQ,EAAWlD,MAAQA,EAChB4C,EAAaD,GAASnB,EAAEJ,IAAI8B,KAAeN,MAE1CC,EACC7C,EAAQwB,EAAEF,OAAOtB,OAAOwB,EAAED,WAAW2B,KAE5C,MAGK,GAAGnB,GAAWA,EAAQqB,IAC3B,KAAIA,EAAMrB,EAAQqB,IAClB,IAAQvD,EAAIiD,EAAa,EAAGjD,GAAK,IAAKA,GAChCiC,EAAS7B,EADgCC,EAAMqC,EAAQ1C,GAChCuD,MAEvBzC,EAAMmB,KAASA,EAASH,EAAUO,YAAYJ,IAGpC,QADV/B,EAASqC,EAAUP,EAAQC,EAAQU,MAEpCzC,EAAOC,MAAQ0C,IAGlB3C,EAAS,CAAC+B,OAAO/B,EAAO+B,OAAQuB,kBAAkB,KAAMC,sBAAsB,KAAMtD,MAAMD,EAAOC,MAAOgC,QAAQjC,EAAOiC,QAAS9B,IAAIA,GAEjI0C,EAAaD,GAASnB,EAAEJ,IAAIrB,KAAW6C,MAEtCC,EACC9C,EAAOC,MAAQwB,EAAEF,OAAOtB,OAAOwB,EAAED,WAAWxB,MAhBjCqD,MAsBlB,IAAQvD,EAAIiD,EAAa,EAAGjD,GAAK,IAAKA,EAAG,CAAE,IAAIiC,EAIzC/B,GAJyC+B,EAASS,EAAQ1C,MAE1Dc,EAAMmB,KAASA,EAASH,EAAUO,YAAYJ,IAGpC,QADV/B,EAASqC,EAAUP,EAAQC,EAAQU,MAEpCzC,EAAOC,MAAQ0C,IACfE,EAAaD,GAASnB,EAAEJ,IAAIrB,KAAW6C,MAEtCC,EACC9C,EAAOC,MAAQwB,EAAEF,OAAOtB,OAAOwB,EAAED,WAAWxB,MAEnD,CAGF,GAAkB,IAAf6C,EAAkB,OAAOvD,EAC5B,IAAIkE,EAAU,IAAIhD,MAAMqC,GACxB,IAAQ/C,EAAI+C,EAAa,EAAG/C,GAAK,IAAKA,EAAG0D,EAAQ1D,GAAK2B,EAAEH,OAExD,OADAkC,EAAQjE,MAAQsD,EAAaC,EACtBU,CACT,EAEAC,QAAS,SAAS3B,EAAQU,EAASR,GACjC,IAAI0B,GAAW,EACXC,EAAI,IAAIC,SAAQ,SAASC,EAASC,GAAmN,GAAW,WAARhC,EAAkB,OAAO+B,EAAQ,CAAC,CAAC9B,OAAO,2BAA2B9B,MAAM,EAAEgC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG9B,IAAIqC,EAAQA,EAAQ,GAAG,QACtX,IAAIV,EAAQ,OAAO+B,EAAQvE,GAE3B,IAAImD,GADJX,EAASF,EAAUc,cAAcZ,IACJ,GAEzBL,EAAIX,IACJiD,EAAWvB,EAAQzC,OAAS,EAC5B4C,EAAYX,GAAWA,EAAQW,WAAahB,GAAmBA,EAAgBgB,YAAc,iBAC7FC,EAAQZ,GAAWA,EAAQY,OAASjB,GAAmBA,EAAgBiB,OAAS,iBAIhFP,GAHYL,QAA+B1B,IAApB0B,EAAQI,UAAwBJ,EAAQI,WAC/DT,QAA+CrB,IAA5BqB,EAAgBS,WAAwBT,EAAgBS,WAEnDR,EAAUS,UAAYT,EAAUU,gBACxDO,EAAa,EAAOC,EAAe,EACvC,SAASkB,IACP,GAAGN,EAAU,OAAOI,EAAO,YAE3B,IAAIG,EAAUC,KAAKC,MAKnB,GAAGnC,GAAWA,EAAQgB,KAIpB,IAHA,IAAIC,EAAUjB,EAAQiB,SAAWtD,EAC7BqD,EAAOhB,EAAQgB,KACfE,EAAUF,EAAKjD,OACbgE,GAAY,IAAKA,EAAU,CAC/B,GAAGA,EAAS,KAA0B,GACjCG,KAAKC,MAAQF,GAAW,GAEzB,YADA1F,EAAO6F,aAAaJ,GAAMK,WAAWL,IAOzC,IAFA,IAAI7D,EAAMqC,EAAQuB,GACdZ,EAAa,IAAI3C,MAAM0C,GAClBE,EAAOF,EAAU,EAAGE,GAAQ,IAAKA,GAEpCrB,EAAS7B,EAASC,EADlBkD,EAAML,EAAKI,MAGXxC,EAAMmB,KAASA,EAASH,EAAUO,YAAYJ,IAElDoB,EAAWC,GAAQf,EAAUP,EAAQC,EAAQU,IAH/BU,EAAWC,GAAQ,KAKnCD,EAAWhD,IAAMA,EACjB,IAAIF,EAAQgD,EAAQE,GACP,OAAVlD,IACAA,EAAQ0C,IACXQ,EAAWlD,MAAQA,EAChB4C,EAAaD,GAASnB,EAAEJ,IAAI8B,KAAeN,MAE1CC,EACC7C,EAAQwB,EAAEF,OAAOtB,OAAOwB,EAAED,WAAW2B,KAE5C,MAGK,GAAGnB,GAAWA,EAAQqB,IAE3B,IADA,IAAIA,EAAMrB,EAAQqB,IACZU,GAAY,IAAKA,EAAU,CAC/B,GAAGA,EAAS,KAA0B,GACjCG,KAAKC,MAAQF,GAAW,GAEzB,YADA1F,EAAO6F,aAAaJ,GAAMK,WAAWL,KAMrCjC,EAAS7B,EADTC,EAAMqC,EAAQuB,GACSV,MAEvBzC,EAAMmB,KAASA,EAASH,EAAUO,YAAYJ,IAGpC,QADV/B,EAASqC,EAAUP,EAAQC,EAAQU,MAEpCzC,EAAOC,MAAQ0C,IAGlB3C,EAAS,CAAC+B,OAAO/B,EAAO+B,OAAQuB,kBAAkB,KAAMC,sBAAsB,KAAMtD,MAAMD,EAAOC,MAAOgC,QAAQjC,EAAOiC,QAAS9B,IAAIA,GAEjI0C,EAAaD,GAASnB,EAAEJ,IAAIrB,KAAW6C,MAEtCC,EACC9C,EAAOC,MAAQwB,EAAEF,OAAOtB,OAAOwB,EAAED,WAAWxB,MAEnD,MAIA,KAAM+D,GAAY,IAAKA,EAAU,CAC/B,GAAGA,EAAS,KAA0B,GACjCG,KAAKC,MAAQF,GAAW,GAEzB,YADA1F,EAAO6F,aAAaJ,GAAMK,WAAWL,IAKzC,IAAIjC,EAIA/B,GAJA+B,EAASS,EAAQuB,MAEjBnD,EAAMmB,KAASA,EAASH,EAAUO,YAAYJ,IAGpC,QADV/B,EAASqC,EAAUP,EAAQC,EAAQU,MAEpCzC,EAAOC,MAAQ0C,IACfE,EAAaD,GAASnB,EAAEJ,IAAIrB,KAAW6C,MAEtCC,EACC9C,EAAOC,MAAQwB,EAAEF,OAAOtB,OAAOwB,EAAED,WAAWxB,MAEnD,CAGF,GAAkB,IAAf6C,EAAkB,OAAOgB,EAAQvE,GAEpC,IADA,IAAIkE,EAAU,IAAIhD,MAAMqC,GAChB/C,EAAI+C,EAAa,EAAG/C,GAAK,IAAKA,EAAG0D,EAAQ1D,GAAK2B,EAAEH,OACxDkC,EAAQjE,MAAQsD,EAAaC,EAC7Be,EAAQL,EACV,CAEAjF,EAAO6F,aAAaJ,GAAMA,GAC5B,IAEA,OADAL,EAAEW,OAAS,WAAaZ,GAAW,CAAK,EACjCC,CACT,EAEAY,UAAW,SAASvE,EAAQwE,EAAOC,GACjC,GAAmB,mBAATD,EAAqB,OAAO5C,EAAU8C,kBAAkB1E,EAAQwE,GAC1E,GAAc,OAAXxE,EAAiB,OAAO,UACdM,IAAVkE,IAAqBA,EAAQ,YAClBlE,IAAXmE,IAAsBA,EAAS,QAOlC,IANA,IAAIE,EAAc,GACdC,EAAe,EACfC,GAAS,EACT9C,EAAS/B,EAAO+B,OAChB+C,EAAY/C,EAAOhC,OACnBgF,EAAc/E,EAAOiC,QACjBnC,EAAI,EAAGA,EAAIgF,IAAahF,EAAG,CAAE,IAAIkF,EAAOjD,EAAOjC,GACrD,GAAGiF,EAAYH,KAAkB9E,GAM/B,GAJI+E,IAAUA,GAAS,EACrBF,GAAeH,KAFfI,IAKkBG,EAAYhF,OAAQ,CACtC4E,GAAeK,EAAOP,EAAS1C,EAAOkD,OAAOnF,EAAE,GAC/C,KACF,OAEG+E,IAAUA,GAAS,EACpBF,GAAeF,GAGnBE,GAAeK,CACjB,CAEA,OAAOL,CACT,EACAD,kBAAmB,SAAS1E,EAAQkF,GAClC,GAAc,OAAXlF,EAAiB,OAAO,KAS3B,IARA,IAAI+B,EAAS/B,EAAO+B,OAChB+C,EAAY/C,EAAOhC,OACnBkC,EAAUjC,EAAOiC,QACjB0C,EAAc,GACdQ,EAAS,EACTC,EAAW,EACXP,GAAS,EAEL/E,GADJE,EAAS,GACD,GAAGF,EAAIgF,IAAahF,EAAG,CAAE,IAAIkF,EAAOjD,EAAOjC,GACrD,GAAGmC,EAAQmD,KAActF,GAMvB,KALEsF,EACEP,IAAUA,GAAS,EACrB7E,EAAOqF,KAAKV,GAAcA,EAAc,IAGvCS,IAAanD,EAAQlC,OAAQ,CAC9B4E,GAAeK,EACfhF,EAAOqF,KAAKH,EAAGP,EAAaQ,MAAYR,EAAc,GACtD3E,EAAOqF,KAAKtD,EAAOkD,OAAOnF,EAAE,IAC5B,KACF,OAEG+E,IAAUA,GAAS,EACpB7E,EAAOqF,KAAKH,EAAGP,EAAaQ,MAAYR,EAAc,IAG1DA,GAAeK,CACjB,CACA,OAAOhF,CACT,EAEAsF,QAAS,SAASvD,GAChB,OAAIA,EACG,CAACA,OAAOA,EAAQuB,kBAAkB1B,EAAU2D,kBAAkBxD,GAASwB,sBAAsB,KAAMtD,MAAM,KAAMgC,QAAQ,KAAM9B,IAAI,MADrH,CAAC4B,OAAQ,GAAIuB,kBAAmB,CAAC,GAAqHC,sBAAuB,KAAMtD,MAAO,KAAMgC,QAAS,KAAM9B,IAAK,KAEzO,EACAqF,YAAa,SAASzD,GACpB,OAAIA,EACG,CAACA,OAAOA,EAAQuB,kBAAkB1B,EAAU2D,kBAAkBxD,GAASwB,sBAAsB3B,EAAU6D,4BAA4B1D,GAAS9B,MAAM,KAAMgC,QAAQ,KAAM9B,IAAI,MAD9J,CAAC4B,OAAQ,GAAIuB,kBAAmB,CAAC,GAAqHC,sBAAuB,KAAMtD,MAAO,KAAMgC,QAAS,KAAM9B,IAAK,KAEzO,EACAuC,cAAe,SAASZ,GAEtB,OADIA,IAAQA,EAAS,IACdF,EAAU2D,kBAAkBzD,EACrC,EAWAK,YAAa,SAASJ,GACpB,GAAGA,EAAOhC,OAAS,IAAK,OAAO6B,EAAU0D,QAAQvD,GACjD,IAAI2D,EAAiBtG,EAAcL,IAAIgD,GACvC,YAAsBzB,IAAnBoF,IACHA,EAAiB9D,EAAU0D,QAAQvD,GACnC3C,EAAcH,IAAI8C,EAAQ2D,IAFcA,CAI1C,EACAxD,kBAAmB,SAASJ,GAC1B,GAAGA,EAAO/B,OAAS,IAAK,OAAO6B,EAAUc,cAAcZ,GACvD,IAAI6D,EAAiBtG,EAAoBN,IAAI+C,GAC7C,YAAsBxB,IAAnBqF,IACHA,EAAiB/D,EAAUc,cAAcZ,GACzCzC,EAAoBJ,IAAI6C,EAAQ6D,IAFQA,CAI1C,EAEAtD,UAAW,SAASuD,EAAkBC,EAAUpD,GAY9C,IAXA,IAAIqD,EAAmBD,EAASvC,kBAC5ByC,EAAYH,EAAiB7F,OAC7B+E,EAAYgB,EAAiB/F,OAC7BiG,EAAU,EACVC,EAAU,EACVC,EAAc,EACdC,EAAmB,IAKf,CAEN,GADc1D,IAAoBqD,EAAiBG,GACvC,CAEC,GADXzG,EAAc2G,KAAsBF,IAClCD,IAAwBD,EAAW,MACrCtD,EAAkBmD,EAA+B,IAAdM,EAAgBF,EAAWE,IAAcF,EAAQA,EAAQ,EAAKE,IAAcF,EAAQ,EAAEA,EAAQ,EAAIA,EACvI,CAEW,KAATC,GAAuBnB,EAIvB,OAAQ,CACN,GAAGkB,GAAW,EAAG,OAAO,KACxB,GAAmB,IAAhBE,EAAmB,CAGpB,GAAGzD,IADsBmD,IADvBI,GAEyC,SAC3CE,EAAcF,CAChB,KAAO,CACL,GAAmB,IAAhBE,EAAmB,OAAO,KAK7B,IAFAzD,EAAkBmD,EAA2B,GAD7CI,IADEE,OAGuBN,EAAiBI,GACC,QAC7C,CAEAC,EAAUzG,GADV2G,EAAmBH,GACwB,GAAK,EAChD,KACF,CAEJ,CAEIA,EAAU,EAAd,IACII,EAAc,EACdC,GAAgB,EAChBC,EAAmB,EAEnBC,EAAuBV,EAAStC,sBACR,OAAzBgD,IAA+BA,EAAuBV,EAAStC,sBAAwB3B,EAAU6D,4BAA4BI,EAAS9D,SACzI,IAAIyE,EAAiBP,EAA6B,IAAnBzG,EAAc,GAAS,EAAI+G,EAAqB/G,EAAc,GAAG,GAKhG,GAAGyG,IAAYnB,EAAW,OACxB,GAAGmB,GAAWnB,EAAW,CAEvB,GAAGkB,GAAW,EAAG,CAEA,KAAbI,EAA8BL,EAAU,EAAG,MAC7C,GAAGH,EAAiBQ,KAAiBR,EAAiBQ,EAAY,GAAI,SACtEH,EAAUO,EACV,QACF,GAEER,EAEFC,EAAUM,EADM9G,IAAgB6G,GAGlC,MAEE,GADcV,EAA+B,IAAdQ,EAAgBJ,EAAWI,IAAcJ,EAAQA,EAAQ,EAAKI,IAAcJ,EAAQ,EAAEA,EAAQ,EAAIA,KAAeF,EAAiBG,GACrJ,CAEC,GADXxG,EAAc6G,KAAsBL,IAClCD,IAAwBD,EAAW,CAAEM,GAAgB,EAAM,KAAM,GACjEJ,CACJ,MACEA,EAAUM,EAAqBN,GAMnC,GAAGI,EAAiB,IAAItB,EAActF,EAAmBgH,EAAiBH,OAC/DvB,EAAcvF,EAAmBiH,EAAiBN,EAG7D,IAFA,IAAIlG,EAAQ,EACRyG,GAAe,EACX5G,EAAI,EAAGA,EAAIiG,IAAajG,EAE3B4G,KAFoCT,EAAUlB,EAAYjF,IAEhC,IAAGG,GAASgG,GACzCS,EAAcT,EAU8B,IAR1CI,EAIiB,IAAhBD,IAAmBnG,IAAU,KAHhCA,GAAS,IACU,IAAhBiG,IAAmBjG,IAAU,KAIlCA,GAAS6E,EAAYiB,EACrBF,EAAS5F,MAAQA,EACjB4F,EAAS5D,QAAU,IAAIzB,MAAMiG,GAAyB3G,EAAI2G,EAAiB,EAAG3G,GAAK,IAAKA,EAAG+F,EAAS5D,QAAQnC,GAAKiF,EAAYjF,GAE7H,OAAO+F,CAEX,EAEAvD,gBAAiB,SAASsD,EAAkBC,EAAUpD,GAWpD,IAVA,IAAIqD,EAAmBD,EAASvC,kBAC5ByC,EAAYH,EAAiB7F,OAC7B+E,EAAYgB,EAAiB/F,OAC7BiG,EAAU,EACVC,EAAU,EACVE,EAAmB,IAKf,CAEN,GADc1D,IAAoBqD,EAAiBG,GACvC,CAEC,GADXzG,EAAc2G,KAAsBF,IAClCD,IAAwBD,EAAW,MACrCtD,EAAkBmD,EAAiBI,EACrC,CACW,KAATC,GAAuBnB,EAAW,OAAO,IAC7C,CAEIkB,EAAU,EAAd,IACIK,GAAgB,EAChBC,EAAmB,EAEnBC,EAAuBV,EAAStC,sBAOpC,GAN4B,OAAzBgD,IAA+BA,EAAuBV,EAAStC,sBAAwB3B,EAAU6D,4BAA4BI,EAAS9D,UACpHkE,EAA6B,IAAnBzG,EAAc,GAAS,EAAI+G,EAAqB/G,EAAc,GAAG,MAKjFsF,EAAW,OACxB,GAAGmB,GAAWnB,EAAW,CAEvB,GAAGkB,GAAW,EAAG,QAEfA,EAEFC,EAAUM,EADM9G,IAAgB6G,GAGlC,MAEE,GADcV,EAAiBI,KAAaF,EAAiBG,GACjD,CAEC,GADXxG,EAAc6G,KAAsBL,IAClCD,IAAwBD,EAAW,CAAEM,GAAgB,EAAM,KAAM,GACjEJ,CACJ,MACEA,EAAUM,EAAqBN,GAMnC,GAAGI,EAAiB,IAAItB,EAActF,EAAmBgH,EAAiBH,OAC/DvB,EAAcvF,EAAmBiH,EAAiBN,EAG7D,IAFA,IAAIlG,EAAQ,EACRyG,GAAe,EACX5G,EAAI,EAAGA,EAAIiG,IAAajG,EAE3B4G,KAFoCT,EAAUlB,EAAYjF,IAEhC,IAAGG,GAASgG,GACzCS,EAAcT,EAK8B,IAH1CI,IAAepG,GAAS,KAC5BA,GAAS6E,EAAYiB,EACrBF,EAAS5F,MAAQA,EACjB4F,EAAS5D,QAAU,IAAIzB,MAAMiG,GAAyB3G,EAAI2G,EAAiB,EAAG3G,GAAK,IAAKA,EAAG+F,EAAS5D,QAAQnC,GAAKiF,EAAYjF,GAE7H,OAAO+F,CAEX,EAEAN,kBAAmB,SAASoB,GAI1B,IAHA,IAAIC,EAASD,EAAI5G,OACb8G,EAAa,GACbC,EAAQH,EAAII,cACRjH,EAAI,EAAGA,EAAI8G,IAAU9G,EAAG+G,EAAW/G,GAAKgH,EAAME,WAAWlH,GACjE,OAAO+G,CACT,EACAI,wBAAyB,SAASlF,GAKhC,IAJA,IAAI+C,EAAY/C,EAAOhC,OACnBmH,EAAmB,GAAQC,EAAsB,EACjDC,GAAW,EACXC,GAAc,EACVvH,EAAI,EAAGA,EAAIgF,IAAahF,EAAG,CACjC,IAAIwH,EAAavF,EAAOiF,WAAWlH,GAC/ByH,EAAUD,GAAY,IAAIA,GAAY,GACtCE,EAAaD,GAAWD,GAAY,IAAIA,GAAY,KAAOA,GAAY,IAAIA,GAAY,GACvFG,EAAcF,IAAYH,IAAaC,IAAgBG,EAC3DJ,EAAWG,EACXF,EAAcG,EACXC,IAAaP,EAAiBC,KAAyBrH,EAC5D,CACA,OAAOoH,CACT,EACAzB,4BAA6B,SAAS1D,GAMpC,IALA,IAAI+C,EAAY/C,EAAOhC,OACnBmH,EAAmBtF,EAAUqF,wBAAwBlF,GACrDwE,EAAuB,GACvBmB,EAAkBR,EAAiB,GACnCS,EAAmB,EACf7H,EAAI,EAAGA,EAAIgF,IAAahF,EAC3B4H,EAAkB5H,EACnByG,EAAqBzG,GAAK4H,GAE1BA,EAAkBR,IAAmBS,GACrCpB,EAAqBzG,QAAuBQ,IAAlBoH,EAA8B5C,EAAY4C,GAGxE,OAAOnB,CACT,EAEA7G,QAASA,EACTkI,IAAKlG,GAEP,OAAOE,CACT,CAwCOF,EACP,GA9lB+D,UAAP,IAAO,iB,wBCpB/D,IAAImG,EAAc,EAAQ,OAgB1BC,EAAOC,QALP,SAAuBC,EAAOC,GAE5B,QADsB,MAATD,IAAoBA,EAAMjI,SACpB8H,EAAYG,EAAOC,EAAO,IAAM,CACrD,C,mBCOAH,EAAOC,QAZP,SAA2BC,EAAOC,EAAOC,GAIvC,IAHA,IAAIC,GAAS,EACTpI,EAAkB,MAATiI,EAAgB,EAAIA,EAAMjI,SAE9BoI,EAAQpI,GACf,GAAImI,EAAWD,EAAOD,EAAMG,IAC1B,OAAO,EAGX,OAAO,CACT,C,wBCnBA,IAAIC,EAAW,EAAQ,OACnBC,EAAgB,EAAQ,OACxBC,EAAoB,EAAQ,MAC5BC,EAAW,EAAQ,OACnBC,EAAY,EAAQ,MACpBC,EAAW,EAAQ,OA6DvBX,EAAOC,QA7CP,SAAwBC,EAAOU,EAAQC,EAAUT,GAC/C,IAAIC,GAAS,EACTS,EAAWP,EACXQ,GAAW,EACX9I,EAASiI,EAAMjI,OACfC,EAAS,GACT8I,EAAeJ,EAAO3I,OAE1B,IAAKA,EACH,OAAOC,EAEL2I,IACFD,EAASH,EAASG,EAAQF,EAAUG,KAElCT,GACFU,EAAWN,EACXO,GAAW,GAEJH,EAAO3I,QA/BK,MAgCnB6I,EAAWH,EACXI,GAAW,EACXH,EAAS,IAAIN,EAASM,IAExBK,EACA,OAASZ,EAAQpI,GAAQ,CACvB,IAAIkI,EAAQD,EAAMG,GACda,EAAuB,MAAZL,EAAmBV,EAAQU,EAASV,GAGnD,GADAA,EAASC,GAAwB,IAAVD,EAAeA,EAAQ,EAC1CY,GAAYG,GAAaA,EAAU,CAErC,IADA,IAAIC,EAAcH,EACXG,KACL,GAAIP,EAAOO,KAAiBD,EAC1B,SAASD,EAGb/I,EAAOqF,KAAK4C,EACd,MACUW,EAASF,EAAQM,EAAUd,IACnClI,EAAOqF,KAAK4C,EAEhB,CACA,OAAOjI,CACT,C,wBChEA,IAAIkJ,EAAgB,EAAQ,OACxBC,EAAY,EAAQ,OACpBC,EAAgB,EAAQ,OAiB5BtB,EAAOC,QANP,SAAqBC,EAAOC,EAAOoB,GACjC,OAAOpB,GAAUA,EACbmB,EAAcpB,EAAOC,EAAOoB,GAC5BH,EAAclB,EAAOmB,EAAWE,EACtC,C,oBCNAvB,EAAOC,QAJP,SAAmBE,GACjB,OAAOA,GAAUA,CACnB,C,uBCTA,IAAIqB,EAAW,EAAQ,MACnBC,EAAW,EAAQ,OACnBC,EAAc,EAAQ,OAc1B1B,EAAOC,QAJP,SAAkB0B,EAAMC,GACtB,OAAOF,EAAYD,EAASE,EAAMC,EAAOJ,GAAWG,EAAO,GAC7D,C,oBCQA3B,EAAOC,QAZP,SAAuBC,EAAOC,EAAOoB,GAInC,IAHA,IAAIlB,EAAQkB,EAAY,EACpBtJ,EAASiI,EAAMjI,SAEVoI,EAAQpI,GACf,GAAIiI,EAAMG,KAAWF,EACnB,OAAOE,EAGX,OAAQ,CACV,C,wBCpBA,IAAIwB,EAAc,EAAQ,OACtBC,EAAe,EAAQ,OA+B3B9B,EAAOC,QAJP,SAA2BE,GACzB,OAAO2B,EAAa3B,IAAU0B,EAAY1B,EAC5C,C,wBC9BA,IAAI4B,EAAiB,EAAQ,OACzBC,EAAW,EAAQ,MACnBC,EAAoB,EAAQ,OAsB5BC,EAAUF,GAAS,SAAS9B,EAAOU,GACrC,OAAOqB,EAAkB/B,GACrB6B,EAAe7B,EAAOU,GACtB,EACN,IAEAZ,EAAOC,QAAUiC,C,qFC9BiG,SAASC,IAAI,OAAOA,EAAErL,OAAOsL,QAAQ,SAASjJ,GAAG,IAAI,IAAIF,EAAE,EAAEA,EAAEoJ,UAAUpK,OAAOgB,IAAI,CAAC,IAAIqJ,EAAED,UAAUpJ,GAAG,IAAI,IAAIG,KAAKkJ,EAAExL,OAAOyL,UAAUC,eAAeC,KAAKH,EAAElJ,KAAKD,EAAEC,GAAGkJ,EAAElJ,GAAG,CAAC,OAAOD,CAAC,GAAGuJ,MAAM1L,KAAKqL,UAAU,CAAC,SAAShJ,EAAEF,EAAEF,GAAG,GAAG,MAAME,EAAE,MAAM,CAAC,EAAE,IAAImJ,EAAElJ,EAAEF,EAAE,CAAC,EAAEpB,EAAEhB,OAAOoE,KAAK/B,GAAG,IAAIC,EAAE,EAAEA,EAAEtB,EAAEG,OAAOmB,IAAIH,EAAE0J,QAAQL,EAAExK,EAAEsB,KAAK,IAAIF,EAAEoJ,GAAGnJ,EAAEmJ,IAAI,OAAOpJ,CAAC,CAAC,SAASlB,EAAEmB,GAAG,IAAImJ,GAAE,YAAEnJ,GAAGC,GAAE,aAAE,SAASD,GAAGmJ,EAAEM,SAASN,EAAEM,QAAQzJ,EAAE,IAAG,OAAOmJ,EAAEM,QAAQzJ,EAAEC,EAAEwJ,OAAO,CAAC,IAAI/L,EAAE,SAASsC,EAAEF,EAAEqJ,GAAG,YAAO,IAASrJ,IAAIA,EAAE,QAAG,IAASqJ,IAAIA,EAAE,GAAGnJ,EAAEmJ,EAAEA,EAAEnJ,EAAEF,EAAEA,EAAEE,CAAC,EAAEG,EAAE,SAASH,GAAG,MAAM,YAAYA,CAAC,EAAE0J,EAAE,SAAS1J,GAAG,OAAOA,GAAGA,EAAE2J,cAAcC,aAAaC,IAAI,EAAEC,EAAE,SAAS9J,EAAEF,EAAEqJ,GAAG,IAAIlJ,EAAED,EAAE+J,wBAAwBhK,EAAEI,EAAEL,GAAG,SAASE,EAAEF,GAAG,IAAI,IAAIqJ,EAAE,EAAEA,EAAEnJ,EAAElB,OAAOqK,IAAI,GAAGnJ,EAAEmJ,GAAGa,aAAalK,EAAE,OAAOE,EAAEmJ,GAAG,OAAOnJ,EAAE,EAAE,CAAvF,CAAyFF,EAAEmK,QAAQd,GAAGrJ,EAAE,MAAM,CAACoK,KAAKxM,GAAGqC,EAAEoK,OAAOlK,EAAEiK,KAAKR,EAAE1J,GAAGoK,cAAcnK,EAAEoK,OAAOC,IAAI5M,GAAGqC,EAAEwK,OAAOtK,EAAEqK,IAAIZ,EAAE1J,GAAGwK,cAAcvK,EAAEwK,QAAQ,EAAEC,EAAE,SAAS1K,IAAIG,EAAEH,IAAIA,EAAE2K,gBAAgB,EAAEC,EAAE,QAAO,SAAS7K,GAAG,IAAIpB,EAAEoB,EAAE8K,OAAOC,EAAE/K,EAAEgL,MAAMrN,EAAEwC,EAAEH,EAAE,CAAC,SAAS,UAAU6K,GAAE,YAAE,MAAMI,EAAEnM,EAAEF,GAAG+D,EAAE7D,EAAEiM,GAAGG,GAAE,YAAE,MAAMC,GAAE,aAAE,GAAItL,GAAE,cAAE,WAAW,IAAII,EAAE,SAASA,GAAG0K,EAAE1K,IAAIG,EAAEH,GAAGA,EAAEiK,QAAQnL,OAAO,EAAEkB,EAAEmL,QAAQ,IAAIP,EAAEnB,QAAQuB,EAAElB,EAAEc,EAAEnB,QAAQzJ,EAAEiL,EAAExB,UAAUN,GAAE,EAAG,EAAErJ,EAAE,WAAW,OAAOqJ,GAAE,EAAG,EAAE,SAASA,EAAEA,GAAG,IAAIlJ,EAAEiL,EAAEzB,QAAQ1J,EAAE2J,EAAEkB,EAAEnB,SAAS9K,EAAEwK,EAAEpJ,EAAEqL,iBAAiBrL,EAAEsL,oBAAoB1M,EAAEsB,EAAE,YAAY,YAAYD,GAAGrB,EAAEsB,EAAE,WAAW,UAAUH,EAAE,CAAC,MAAM,CAAC,SAASE,GAAG,IAAIF,EAAEE,EAAEsL,YAAYrL,EAAE2K,EAAEnB,QAAQ,GAAGxJ,IAAIyK,EAAE5K,IAAI,SAASE,EAAEF,GAAG,OAAOA,IAAIK,EAAEH,EAAE,CAA7B,CAA+BF,EAAEoL,EAAEzB,UAAUxJ,GAAG,CAAC,GAAGE,EAAEL,GAAG,CAACoL,EAAEzB,SAAQ,EAAG,IAAI1J,EAAED,EAAEyL,gBAAgB,GAAGxL,EAAEjB,SAASmM,EAAExB,QAAQ1J,EAAE,GAAGiK,WAAW,CAAC/J,EAAEuL,QAAQR,EAAElB,EAAE7J,EAAEH,EAAEmL,EAAExB,UAAUN,GAAE,EAAG,CAAC,EAAE,SAASnJ,GAAG,IAAIF,EAAEE,EAAEyL,OAAOzL,EAAE0L,QAAQ5L,EAAE,IAAIA,EAAE,KAAKE,EAAE2K,iBAAiBjI,EAAE,CAACwH,KAAK,KAAKpK,EAAE,IAAI,KAAKA,GAAG,IAAI,EAAEwK,IAAI,KAAKxK,EAAE,IAAI,KAAKA,GAAG,IAAI,IAAI,EAAEqJ,EAAE,GAAE,CAACzG,EAAEsI,IAAIW,EAAE/L,EAAE,GAAGgM,EAAEhM,EAAE,GAAGiM,EAAEjM,EAAE,GAAG,OAAO,gBAAE,WAAW,OAAOiM,CAAC,GAAE,CAACA,IAAI,gBAAgB,MAAM7C,EAAE,CAAC,EAAEtL,EAAE,CAACoO,aAAaH,EAAEI,YAAYJ,EAAEK,UAAU,8BAA8BC,IAAIrB,EAAEsB,UAAUN,EAAEO,SAAS,EAAEC,KAAK,WAAW,IAAGpB,EAAE,SAAShL,GAAG,OAAOA,EAAEqM,OAAOC,SAASC,KAAK,IAAI,EAAE7J,EAAE,SAAS5C,GAAG,IAAIqJ,EAAErJ,EAAE0M,MAAMvM,EAAEH,EAAEoK,KAAKnK,EAAED,EAAEwK,IAAI3L,OAAE,IAASoB,EAAE,GAAGA,EAAE+K,EAAEE,EAAE,CAAC,0BAA0BlL,EAAEkM,YAAY,OAAO,gBAAgB,MAAM,CAACA,UAAUlB,EAAE2B,MAAM,CAACnC,IAAI,IAAI3L,EAAE,IAAIuL,KAAK,IAAIjK,EAAE,MAAM,gBAAgB,MAAM,CAAC+L,UAAU,+BAA+BS,MAAM,CAACC,gBAAgBvD,KAAK,EAAE8B,EAAE,SAASjL,EAAEF,EAAEqJ,GAAG,YAAO,IAASrJ,IAAIA,EAAE,QAAG,IAASqJ,IAAIA,EAAEwD,KAAKC,IAAI,GAAG9M,IAAI6M,KAAKE,MAAM1D,EAAEnJ,GAAGmJ,CAAC,EAAyvB2D,GAAxtBH,KAAKI,GAAqtB,SAAS/M,GAAG,IAAIF,EAAEE,EAAEtC,EAAEyL,EAAEnJ,EAAE8K,EAAE,MAAM,CAACJ,EAAE1K,EAAE0K,EAAEhN,GAAGoC,IAAIqJ,EAAE,GAAGA,EAAE,IAAIA,GAAG,KAAK,EAAE,EAAErJ,GAAGqJ,EAAErJ,GAAG,IAAI,EAAE4J,EAAEP,EAAErJ,EAAEnB,EAAEqB,EAAErB,EAAE,GAAgCqO,EAAE,SAAShN,GAAG,IAAIF,EAAEE,EAAEtC,EAAEyL,EAAEnJ,EAAE0J,EAAEzJ,EAAED,EAAErB,EAAEoB,GAAG,IAAID,GAAGqJ,EAAE,IAAI,MAAM,CAACuB,EAAEO,EAAEjL,EAAE0K,GAAGhN,EAAEuN,EAAElL,EAAE,GAAGA,EAAE,IAAID,EAAEqJ,EAAE,KAAKpJ,GAAG,IAAIA,EAAE,IAAIA,GAAG,IAAI,GAAG+K,EAAEG,EAAElL,EAAE,GAAGpB,EAAEsM,EAAEhL,EAAE,GAAG,EAAEO,EAAE,SAASR,GAAG,IAAIF,EAAEkN,EAAEhN,GAAG,MAAM,OAAOF,EAAE4K,EAAE,KAAK5K,EAAEpC,EAAE,MAAMoC,EAAEgL,EAAE,IAAI,EAAiyCmC,EAAE,QAAO,SAASnN,GAAG,IAAIqJ,EAAErJ,EAAEoN,IAAIjN,EAAEH,EAAEqN,SAASpN,EAAEiL,EAAE,CAAC,sBAAsBlL,EAAEkM,YAAY,OAAO,gBAAgB,MAAM,CAACA,UAAUjM,GAAG,gBAAgB6K,EAAE,CAACC,OAAO,SAAS7K,GAAGC,EAAE,CAACyK,EAAE,IAAI1K,EAAEkK,MAAM,EAAEa,MAAM,SAAS/K,GAAGC,EAAE,CAACyK,EAAEhN,EAAEyL,EAAE,IAAInJ,EAAEkK,KAAK,EAAE,MAAM,EAAE,aAAa,MAAM,gBAAgBe,EAAE9B,GAAG,gBAAgB,MAAM,gBAAgB,KAAK,gBAAgBzG,EAAE,CAACsJ,UAAU,8BAA8B9B,KAAKf,EAAE,IAAIqD,MAAMhM,EAAE,CAACkK,EAAEvB,EAAEzL,EAAE,IAAIgM,EAAE,IAAI/K,EAAE,OAAO,IAAGyO,EAAE,QAAO,SAAStN,GAAG,IAAIqJ,EAAErJ,EAAEuN,KAAKpN,EAAEH,EAAEqN,SAASpN,EAAE,CAAC2M,gBAAgBlM,EAAE,CAACkK,EAAEvB,EAAEuB,EAAEhN,EAAE,IAAIgM,EAAE,IAAI/K,EAAE,KAAK,OAAO,gBAAgB,MAAM,CAACqN,UAAU,6BAA6BS,MAAM1M,GAAG,gBAAgB6K,EAAE,CAACC,OAAO,SAAS7K,GAAGC,EAAE,CAACvC,EAAE,IAAIsC,EAAEkK,KAAKR,EAAE,IAAI,IAAI1J,EAAEsK,KAAK,EAAES,MAAM,SAAS/K,GAAGC,EAAE,CAACvC,EAAEA,EAAEyL,EAAEzL,EAAE,IAAIsC,EAAEkK,KAAK,EAAE,KAAKR,EAAEhM,EAAEyL,EAAEO,EAAE,IAAI1J,EAAEsK,IAAI,EAAE,MAAM,EAAE,aAAa,QAAQ,iBAAiB,cAAcW,EAAE9B,EAAEzL,GAAG,iBAAiBuN,EAAE9B,EAAEO,GAAG,KAAK,gBAAgBhH,EAAE,CAACsJ,UAAU,qCAAqC1B,IAAI,EAAEnB,EAAEO,EAAE,IAAIQ,KAAKf,EAAEzL,EAAE,IAAI8O,MAAMhM,EAAE2I,MAAM,IAAGmE,EAAE,SAAStN,EAAEF,GAAG,GAAGE,IAAIF,EAAE,OAAM,EAAG,IAAI,IAAIqJ,KAAKnJ,EAAE,GAAGA,EAAEmJ,KAAKrJ,EAAEqJ,GAAG,OAAM,EAAG,OAAM,CAAE,EAA4I,SAASoE,EAAEvN,EAAEmJ,EAAE2B,GAAG,IAAI9B,EAAEnK,EAAEiM,GAAG5K,GAAE,eAAE,WAAW,OAAOF,EAAEwN,OAAOrE,EAAE,IAAGzL,EAAEwC,EAAE,GAAGC,EAAED,EAAE,GAAGwJ,GAAE,YAAE,CAAC8C,MAAMrD,EAAEkE,KAAK3P,KAAI,gBAAE,WAAW,IAAIsC,EAAEyN,MAAMtE,EAAEO,EAAED,QAAQ+C,OAAO,CAAC,IAAI1M,EAAEE,EAAEwN,OAAOrE,GAAGO,EAAED,QAAQ,CAAC4D,KAAKvN,EAAE0M,MAAMrD,GAAGhJ,EAAEL,EAAE,CAAC,GAAE,CAACqJ,EAAEnJ,KAAI,gBAAE,WAAW,IAAIF,EAAEwN,EAAE5P,EAAEgM,EAAED,QAAQ4D,OAAOrN,EAAEyN,MAAM3N,EAAEE,EAAE0N,SAAShQ,GAAGgM,EAAED,QAAQ+C,SAAS9C,EAAED,QAAQ,CAAC4D,KAAK3P,EAAE8O,MAAM1M,GAAGkJ,EAAElJ,GAAG,GAAE,CAACpC,EAAEsC,EAAEgJ,IAAI,IAAIc,GAAE,kBAAE,SAAS9J,GAAGG,GAAE,SAASL,GAAG,OAAOnC,OAAOsL,OAAO,CAAC,EAAEnJ,EAAEE,EAAE,GAAE,GAAE,IAAI,MAAM,CAACtC,EAAEoM,EAAE,CAAC,IAAM6D,EAAE,oBAAoBpQ,OAAO,kBAAE,YAA8GqQ,EAAE,IAAInQ,IAAs7DoQ,EAAE,SAAS1E,GAAG,IAAr7DnJ,EAAy7DC,EAAEkJ,EAAE6C,UAAUjM,EAAEoJ,EAAE2E,WAAWnP,EAAEwK,EAAEqD,MAAM1B,OAAE,IAASnM,EAAEoB,EAAEgO,aAAapP,EAAEE,EAAEsK,EAAEgE,SAASzP,EAAEwC,EAAEiJ,EAAE,CAAC,YAAY,aAAa,QAAQ,aAAahJ,GAAE,YAAE,MAApkEH,EAA4kEG,EAAzkEwN,GAAE,WAAW,IAAI7N,EAAEE,EAAEyJ,QAAQzJ,EAAEyJ,QAAQE,cAAcqE,SAAS,QAAG,IAASlO,IAAI8N,EAAEK,IAAInO,GAAG,CAAC,IAAIqJ,EAAErJ,EAAEoO,cAAc,SAAS/E,EAAEgF,UAAU,ktDAAktDP,EAAE5P,IAAI8B,EAAEqJ,GAAG,IAAIlJ,EAA16D,KAAg7DA,GAAGkJ,EAAEiF,aAAa,QAAQnO,GAAGH,EAAEuO,KAAKC,YAAYnF,EAAE,CAAC,GAAE,IAA6K,IAAIO,EAAE6D,EAAExN,EAAE+K,EAAEjM,GAAGiL,EAAEJ,EAAE,GAAGgB,EAAEhB,EAAE,GAAGkB,EAAEI,EAAE,CAAC,iBAAiB/K,IAAI,OAAO,gBAAgB,MAAM+I,EAAE,CAAC,EAAEtL,EAAE,CAACuO,IAAI9L,EAAE6L,UAAUpB,IAAI,gBAAgBwC,EAAE,CAACC,KAAKvD,EAAEqD,SAASzC,IAAI,gBAAgBuC,EAAE,CAACC,IAAIpD,EAAEY,EAAEyC,SAASzC,EAAEsB,UAAU,iCAAiC,EAAukDuC,EAAG,CAACR,aAAa,CAACrD,EAAE,EAAEhN,EAAE,EAAEoN,EAAE,GAAG0C,OAAO,SAASxN,GAAG,OAAO8M,EAAE,CAACpC,EAAE1K,EAAE0K,EAAEhN,EAAEsC,EAAEtC,EAAEoN,EAAE9K,EAAE8K,EAAEnM,EAAE,GAAG,EAAE+O,SAAS,SAAS1N,GAAG,MAAM,CAAC0K,GAAG5K,EAAEkN,EAAEhN,IAAI0K,EAAEhN,EAAEoC,EAAEpC,EAAEoN,EAAEhL,EAAEgL,GAAG,IAAIhL,CAAC,EAAE2N,MAAMH,GAAGkB,EAAG,SAAS1O,GAAG,OAAO,gBAAgB+N,EAAE7E,EAAE,CAAC,EAAElJ,EAAE,CAACgO,WAAWS,IAAK,C","sources":["webpack:///./node_modules/fuzzysort/fuzzysort.js","webpack:///./node_modules/lodash/_arrayIncludes.js","webpack:///./node_modules/lodash/_arrayIncludesWith.js","webpack:///./node_modules/lodash/_baseDifference.js","webpack:///./node_modules/lodash/_baseIndexOf.js","webpack:///./node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/lodash/isArrayLikeObject.js","webpack:///./node_modules/lodash/without.js","webpack:///./node_modules/react-colorful/dist/index.mjs"],"sourcesContent":["/*\r\n fuzzysort.js https://github.com/farzher/fuzzysort\r\n SublimeText-like Fuzzy Search\r\n\r\n fuzzysort.single('fs', 'Fuzzy Search') // {score: -16}\r\n fuzzysort.single('test', 'test') // {score: 0}\r\n fuzzysort.single('doesnt exist', 'target') // null\r\n\r\n fuzzysort.go('mr', [{file:'Monitor.cpp'}, {file:'MeshRenderer.cpp'}], {key:'file'})\r\n // [{score:-18, obj:{file:'MeshRenderer.cpp'}}, {score:-6009, obj:{file:'Monitor.cpp'}}]\r\n\r\n fuzzysort.go('mr', ['Monitor.cpp', 'MeshRenderer.cpp'])\r\n // [{score: -18, target: \"MeshRenderer.cpp\"}, {score: -6009, target: \"Monitor.cpp\"}]\r\n\r\n fuzzysort.highlight(fuzzysort.single('fs', 'Fuzzy Search'), '<b>', '</b>')\r\n // <b>F</b>uzzy <b>S</b>earch\r\n*/\r\n\r\n// UMD (Universal Module Definition) for fuzzysort\r\n;(function(root, UMD) {\r\n if(typeof define === 'function' && define.amd) define([], UMD)\r\n else if(typeof module === 'object' && module.exports) module.exports = UMD()\r\n else root.fuzzysort = UMD()\r\n})(this, function UMD() { function fuzzysortNew(instanceOptions) {\r\n\r\n var fuzzysort = {\r\n\r\n single: function(search, target, options) { ;if(search=='farzher')return{target:\"farzher was here (^-^*)/\",score:0,indexes:[0,1,2,3,4,5,6]}\r\n if(!search) return null\r\n if(!isObj(search)) search = fuzzysort.getPreparedSearch(search)\r\n\r\n if(!target) return null\r\n if(!isObj(target)) target = fuzzysort.getPrepared(target)\r\n\r\n var allowTypo = options && options.allowTypo!==undefined ? options.allowTypo\r\n : instanceOptions && instanceOptions.allowTypo!==undefined ? instanceOptions.allowTypo\r\n : true\r\n var algorithm = allowTypo ? fuzzysort.algorithm : fuzzysort.algorithmNoTypo\r\n return algorithm(search, target, search[0])\r\n },\r\n\r\n go: function(search, targets, options) { ;if(search=='farzher')return[{target:\"farzher was here (^-^*)/\",score:0,indexes:[0,1,2,3,4,5,6],obj:targets?targets[0]:null}]\r\n if(!search) return noResults\r\n search = fuzzysort.prepareSearch(search)\r\n var searchLowerCode = search[0]\r\n\r\n var threshold = options && options.threshold || instanceOptions && instanceOptions.threshold || -9007199254740991\r\n var limit = options && options.limit || instanceOptions && instanceOptions.limit || 9007199254740991\r\n var allowTypo = options && options.allowTypo!==undefined ? options.allowTypo\r\n : instanceOptions && instanceOptions.allowTypo!==undefined ? instanceOptions.allowTypo\r\n : true\r\n var algorithm = allowTypo ? fuzzysort.algorithm : fuzzysort.algorithmNoTypo\r\n var resultsLen = 0; var limitedCount = 0\r\n var targetsLen = targets.length\r\n\r\n // This code is copy/pasted 3 times for performance reasons [options.keys, options.key, no keys]\r\n\r\n // options.keys\r\n if(options && options.keys) {\r\n var scoreFn = options.scoreFn || defaultScoreFn\r\n var keys = options.keys\r\n var keysLen = keys.length\r\n for(var i = targetsLen - 1; i >= 0; --i) { var obj = targets[i]\r\n var objResults = new Array(keysLen)\r\n for (var keyI = keysLen - 1; keyI >= 0; --keyI) {\r\n var key = keys[keyI]\r\n var target = getValue(obj, key)\r\n if(!target) { objResults[keyI] = null; continue }\r\n if(!isObj(target)) target = fuzzysort.getPrepared(target)\r\n\r\n objResults[keyI] = algorithm(search, target, searchLowerCode)\r\n }\r\n objResults.obj = obj // before scoreFn so scoreFn can use it\r\n var score = scoreFn(objResults)\r\n if(score === null) continue\r\n if(score < threshold) continue\r\n objResults.score = score\r\n if(resultsLen < limit) { q.add(objResults); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(score > q.peek().score) q.replaceTop(objResults)\r\n }\r\n }\r\n\r\n // options.key\r\n } else if(options && options.key) {\r\n var key = options.key\r\n for(var i = targetsLen - 1; i >= 0; --i) { var obj = targets[i]\r\n var target = getValue(obj, key)\r\n if(!target) continue\r\n if(!isObj(target)) target = fuzzysort.getPrepared(target)\r\n\r\n var result = algorithm(search, target, searchLowerCode)\r\n if(result === null) continue\r\n if(result.score < threshold) continue\r\n\r\n // have to clone result so duplicate targets from different obj can each reference the correct obj\r\n result = {target:result.target, _targetLowerCodes:null, _nextBeginningIndexes:null, score:result.score, indexes:result.indexes, obj:obj} // hidden\r\n\r\n if(resultsLen < limit) { q.add(result); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(result.score > q.peek().score) q.replaceTop(result)\r\n }\r\n }\r\n\r\n // no keys\r\n } else {\r\n for(var i = targetsLen - 1; i >= 0; --i) { var target = targets[i]\r\n if(!target) continue\r\n if(!isObj(target)) target = fuzzysort.getPrepared(target)\r\n\r\n var result = algorithm(search, target, searchLowerCode)\r\n if(result === null) continue\r\n if(result.score < threshold) continue\r\n if(resultsLen < limit) { q.add(result); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(result.score > q.peek().score) q.replaceTop(result)\r\n }\r\n }\r\n }\r\n\r\n if(resultsLen === 0) return noResults\r\n var results = new Array(resultsLen)\r\n for(var i = resultsLen - 1; i >= 0; --i) results[i] = q.poll()\r\n results.total = resultsLen + limitedCount\r\n return results\r\n },\r\n\r\n goAsync: function(search, targets, options) {\r\n var canceled = false\r\n var p = new Promise(function(resolve, reject) { ;if(search=='farzher')return resolve([{target:\"farzher was here (^-^*)/\",score:0,indexes:[0,1,2,3,4,5,6],obj:targets?targets[0]:null}])\r\n if(!search) return resolve(noResults)\r\n search = fuzzysort.prepareSearch(search)\r\n var searchLowerCode = search[0]\r\n\r\n var q = fastpriorityqueue()\r\n var iCurrent = targets.length - 1\r\n var threshold = options && options.threshold || instanceOptions && instanceOptions.threshold || -9007199254740991\r\n var limit = options && options.limit || instanceOptions && instanceOptions.limit || 9007199254740991\r\n var allowTypo = options && options.allowTypo!==undefined ? options.allowTypo\r\n : instanceOptions && instanceOptions.allowTypo!==undefined ? instanceOptions.allowTypo\r\n : true\r\n var algorithm = allowTypo ? fuzzysort.algorithm : fuzzysort.algorithmNoTypo\r\n var resultsLen = 0; var limitedCount = 0\r\n function step() {\r\n if(canceled) return reject('canceled')\r\n\r\n var startMs = Date.now()\r\n\r\n // This code is copy/pasted 3 times for performance reasons [options.keys, options.key, no keys]\r\n\r\n // options.keys\r\n if(options && options.keys) {\r\n var scoreFn = options.scoreFn || defaultScoreFn\r\n var keys = options.keys\r\n var keysLen = keys.length\r\n for(; iCurrent >= 0; --iCurrent) {\r\n if(iCurrent%1000/*itemsPerCheck*/ === 0) {\r\n if(Date.now() - startMs >= 10/*asyncInterval*/) {\r\n isNode?setImmediate(step):setTimeout(step)\r\n return\r\n }\r\n }\r\n\r\n var obj = targets[iCurrent]\r\n var objResults = new Array(keysLen)\r\n for (var keyI = keysLen - 1; keyI >= 0; --keyI) {\r\n var key = keys[keyI]\r\n var target = getValue(obj, key)\r\n if(!target) { objResults[keyI] = null; continue }\r\n if(!isObj(target)) target = fuzzysort.getPrepared(target)\r\n\r\n objResults[keyI] = algorithm(search, target, searchLowerCode)\r\n }\r\n objResults.obj = obj // before scoreFn so scoreFn can use it\r\n var score = scoreFn(objResults)\r\n if(score === null) continue\r\n if(score < threshold) continue\r\n objResults.score = score\r\n if(resultsLen < limit) { q.add(objResults); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(score > q.peek().score) q.replaceTop(objResults)\r\n }\r\n }\r\n\r\n // options.key\r\n } else if(options && options.key) {\r\n var key = options.key\r\n for(; iCurrent >= 0; --iCurrent) {\r\n if(iCurrent%1000/*itemsPerCheck*/ === 0) {\r\n if(Date.now() - startMs >= 10/*asyncInterval*/) {\r\n isNode?setImmediate(step):setTimeout(step)\r\n return\r\n }\r\n }\r\n\r\n var obj = targets[iCurrent]\r\n var target = getValue(obj, key)\r\n if(!target) continue\r\n if(!isObj(target)) target = fuzzysort.getPrepared(target)\r\n\r\n var result = algorithm(search, target, searchLowerCode)\r\n if(result === null) continue\r\n if(result.score < threshold) continue\r\n\r\n // have to clone result so duplicate targets from different obj can each reference the correct obj\r\n result = {target:result.target, _targetLowerCodes:null, _nextBeginningIndexes:null, score:result.score, indexes:result.indexes, obj:obj} // hidden\r\n\r\n if(resultsLen < limit) { q.add(result); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(result.score > q.peek().score) q.replaceTop(result)\r\n }\r\n }\r\n\r\n // no keys\r\n } else {\r\n for(; iCurrent >= 0; --iCurrent) {\r\n if(iCurrent%1000/*itemsPerCheck*/ === 0) {\r\n if(Date.now() - startMs >= 10/*asyncInterval*/) {\r\n isNode?setImmediate(step):setTimeout(step)\r\n return\r\n }\r\n }\r\n\r\n var target = targets[iCurrent]\r\n if(!target) continue\r\n if(!isObj(target)) target = fuzzysort.getPrepared(target)\r\n\r\n var result = algorithm(search, target, searchLowerCode)\r\n if(result === null) continue\r\n if(result.score < threshold) continue\r\n if(resultsLen < limit) { q.add(result); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(result.score > q.peek().score) q.replaceTop(result)\r\n }\r\n }\r\n }\r\n\r\n if(resultsLen === 0) return resolve(noResults)\r\n var results = new Array(resultsLen)\r\n for(var i = resultsLen - 1; i >= 0; --i) results[i] = q.poll()\r\n results.total = resultsLen + limitedCount\r\n resolve(results)\r\n }\r\n\r\n isNode?setImmediate(step):step() //setTimeout here is too slow\r\n })\r\n p.cancel = function() { canceled = true }\r\n return p\r\n },\r\n\r\n highlight: function(result, hOpen, hClose) {\r\n if(typeof hOpen == 'function') return fuzzysort.highlightCallback(result, hOpen)\r\n if(result === null) return null\r\n if(hOpen === undefined) hOpen = '<b>'\r\n if(hClose === undefined) hClose = '</b>'\r\n var highlighted = ''\r\n var matchesIndex = 0\r\n var opened = false\r\n var target = result.target\r\n var targetLen = target.length\r\n var matchesBest = result.indexes\r\n for(var i = 0; i < targetLen; ++i) { var char = target[i]\r\n if(matchesBest[matchesIndex] === i) {\r\n ++matchesIndex\r\n if(!opened) { opened = true\r\n highlighted += hOpen\r\n }\r\n\r\n if(matchesIndex === matchesBest.length) {\r\n highlighted += char + hClose + target.substr(i+1)\r\n break\r\n }\r\n } else {\r\n if(opened) { opened = false\r\n highlighted += hClose\r\n }\r\n }\r\n highlighted += char\r\n }\r\n\r\n return highlighted\r\n },\r\n highlightCallback: function(result, cb) {\r\n if(result === null) return null\r\n var target = result.target\r\n var targetLen = target.length\r\n var indexes = result.indexes\r\n var highlighted = ''\r\n var matchI = 0\r\n var indexesI = 0\r\n var opened = false\r\n var result = []\r\n for(var i = 0; i < targetLen; ++i) { var char = target[i]\r\n if(indexes[indexesI] === i) {\r\n ++indexesI\r\n if(!opened) { opened = true\r\n result.push(highlighted); highlighted = ''\r\n }\r\n\r\n if(indexesI === indexes.length) {\r\n highlighted += char\r\n result.push(cb(highlighted, matchI++)); highlighted = ''\r\n result.push(target.substr(i+1))\r\n break\r\n }\r\n } else {\r\n if(opened) { opened = false\r\n result.push(cb(highlighted, matchI++)); highlighted = ''\r\n }\r\n }\r\n highlighted += char\r\n }\r\n return result\r\n },\r\n\r\n prepare: function(target) {\r\n if(!target) return {target: '', _targetLowerCodes: [0/*this 0 doesn't make sense. here because an empty array causes the algorithm to deoptimize and run 50% slower!*/], _nextBeginningIndexes: null, score: null, indexes: null, obj: null} // hidden\r\n return {target:target, _targetLowerCodes:fuzzysort.prepareLowerCodes(target), _nextBeginningIndexes:null, score:null, indexes:null, obj:null} // hidden\r\n },\r\n prepareSlow: function(target) {\r\n if(!target) return {target: '', _targetLowerCodes: [0/*this 0 doesn't make sense. here because an empty array causes the algorithm to deoptimize and run 50% slower!*/], _nextBeginningIndexes: null, score: null, indexes: null, obj: null} // hidden\r\n return {target:target, _targetLowerCodes:fuzzysort.prepareLowerCodes(target), _nextBeginningIndexes:fuzzysort.prepareNextBeginningIndexes(target), score:null, indexes:null, obj:null} // hidden\r\n },\r\n prepareSearch: function(search) {\r\n if(!search) search = ''\r\n return fuzzysort.prepareLowerCodes(search)\r\n },\r\n\r\n\r\n\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n\r\n\r\n\r\n getPrepared: function(target) {\r\n if(target.length > 999) return fuzzysort.prepare(target) // don't cache huge targets\r\n var targetPrepared = preparedCache.get(target)\r\n if(targetPrepared !== undefined) return targetPrepared\r\n targetPrepared = fuzzysort.prepare(target)\r\n preparedCache.set(target, targetPrepared)\r\n return targetPrepared\r\n },\r\n getPreparedSearch: function(search) {\r\n if(search.length > 999) return fuzzysort.prepareSearch(search) // don't cache huge searches\r\n var searchPrepared = preparedSearchCache.get(search)\r\n if(searchPrepared !== undefined) return searchPrepared\r\n searchPrepared = fuzzysort.prepareSearch(search)\r\n preparedSearchCache.set(search, searchPrepared)\r\n return searchPrepared\r\n },\r\n\r\n algorithm: function(searchLowerCodes, prepared, searchLowerCode) {\r\n var targetLowerCodes = prepared._targetLowerCodes\r\n var searchLen = searchLowerCodes.length\r\n var targetLen = targetLowerCodes.length\r\n var searchI = 0 // where we at\r\n var targetI = 0 // where you at\r\n var typoSimpleI = 0\r\n var matchesSimpleLen = 0\r\n\r\n // very basic fuzzy match; to remove non-matching targets ASAP!\r\n // walk through target. find sequential matches.\r\n // if all chars aren't found then exit\r\n for(;;) {\r\n var isMatch = searchLowerCode === targetLowerCodes[targetI]\r\n if(isMatch) {\r\n matchesSimple[matchesSimpleLen++] = targetI\r\n ++searchI; if(searchI === searchLen) break\r\n searchLowerCode = searchLowerCodes[typoSimpleI===0?searchI : (typoSimpleI===searchI?searchI+1 : (typoSimpleI===searchI-1?searchI-1 : searchI))]\r\n }\r\n\r\n ++targetI; if(targetI >= targetLen) { // Failed to find searchI\r\n // Check for typo or exit\r\n // we go as far as possible before trying to transpose\r\n // then we transpose backwards until we reach the beginning\r\n for(;;) {\r\n if(searchI <= 1) return null // not allowed to transpose first char\r\n if(typoSimpleI === 0) { // we haven't tried to transpose yet\r\n --searchI\r\n var searchLowerCodeNew = searchLowerCodes[searchI]\r\n if(searchLowerCode === searchLowerCodeNew) continue // doesn't make sense to transpose a repeat char\r\n typoSimpleI = searchI\r\n } else {\r\n if(typoSimpleI === 1) return null // reached the end of the line for transposing\r\n --typoSimpleI\r\n searchI = typoSimpleI\r\n searchLowerCode = searchLowerCodes[searchI + 1]\r\n var searchLowerCodeNew = searchLowerCodes[searchI]\r\n if(searchLowerCode === searchLowerCodeNew) continue // doesn't make sense to transpose a repeat char\r\n }\r\n matchesSimpleLen = searchI\r\n targetI = matchesSimple[matchesSimpleLen - 1] + 1\r\n break\r\n }\r\n }\r\n }\r\n\r\n var searchI = 0\r\n var typoStrictI = 0\r\n var successStrict = false\r\n var matchesStrictLen = 0\r\n\r\n var nextBeginningIndexes = prepared._nextBeginningIndexes\r\n if(nextBeginningIndexes === null) nextBeginningIndexes = prepared._nextBeginningIndexes = fuzzysort.prepareNextBeginningIndexes(prepared.target)\r\n var firstPossibleI = targetI = matchesSimple[0]===0 ? 0 : nextBeginningIndexes[matchesSimple[0]-1]\r\n\r\n // Our target string successfully matched all characters in sequence!\r\n // Let's try a more advanced and strict test to improve the score\r\n // only count it as a match if it's consecutive or a beginning character!\r\n if(targetI !== targetLen) for(;;) {\r\n if(targetI >= targetLen) {\r\n // We failed to find a good spot for this search char, go back to the previous search char and force it forward\r\n if(searchI <= 0) { // We failed to push chars forward for a better match\r\n // transpose, starting from the beginning\r\n ++typoStrictI; if(typoStrictI > searchLen-2) break\r\n if(searchLowerCodes[typoStrictI] === searchLowerCodes[typoStrictI+1]) continue // doesn't make sense to transpose a repeat char\r\n targetI = firstPossibleI\r\n continue\r\n }\r\n\r\n --searchI\r\n var lastMatch = matchesStrict[--matchesStrictLen]\r\n targetI = nextBeginningIndexes[lastMatch]\r\n\r\n } else {\r\n var isMatch = searchLowerCodes[typoStrictI===0?searchI : (typoStrictI===searchI?searchI+1 : (typoStrictI===searchI-1?searchI-1 : searchI))] === targetLowerCodes[targetI]\r\n if(isMatch) {\r\n matchesStrict[matchesStrictLen++] = targetI\r\n ++searchI; if(searchI === searchLen) { successStrict = true; break }\r\n ++targetI\r\n } else {\r\n targetI = nextBeginningIndexes[targetI]\r\n }\r\n }\r\n }\r\n\r\n { // tally up the score & keep track of matches for highlighting later\r\n if(successStrict) { var matchesBest = matchesStrict; var matchesBestLen = matchesStrictLen }\r\n else { var matchesBest = matchesSimple; var matchesBestLen = matchesSimpleLen }\r\n var score = 0\r\n var lastTargetI = -1\r\n for(var i = 0; i < searchLen; ++i) { var targetI = matchesBest[i]\r\n // score only goes down if they're not consecutive\r\n if(lastTargetI !== targetI - 1) score -= targetI\r\n lastTargetI = targetI\r\n }\r\n if(!successStrict) {\r\n score *= 1000\r\n if(typoSimpleI !== 0) score += -20/*typoPenalty*/\r\n } else {\r\n if(typoStrictI !== 0) score += -20/*typoPenalty*/\r\n }\r\n score -= targetLen - searchLen\r\n prepared.score = score\r\n prepared.indexes = new Array(matchesBestLen); for(var i = matchesBestLen - 1; i >= 0; --i) prepared.indexes[i] = matchesBest[i]\r\n\r\n return prepared\r\n }\r\n },\r\n\r\n algorithmNoTypo: function(searchLowerCodes, prepared, searchLowerCode) {\r\n var targetLowerCodes = prepared._targetLowerCodes\r\n var searchLen = searchLowerCodes.length\r\n var targetLen = targetLowerCodes.length\r\n var searchI = 0 // where we at\r\n var targetI = 0 // where you at\r\n var matchesSimpleLen = 0\r\n\r\n // very basic fuzzy match; to remove non-matching targets ASAP!\r\n // walk through target. find sequential matches.\r\n // if all chars aren't found then exit\r\n for(;;) {\r\n var isMatch = searchLowerCode === targetLowerCodes[targetI]\r\n if(isMatch) {\r\n matchesSimple[matchesSimpleLen++] = targetI\r\n ++searchI; if(searchI === searchLen) break\r\n searchLowerCode = searchLowerCodes[searchI]\r\n }\r\n ++targetI; if(targetI >= targetLen) return null // Failed to find searchI\r\n }\r\n\r\n var searchI = 0\r\n var successStrict = false\r\n var matchesStrictLen = 0\r\n\r\n var nextBeginningIndexes = prepared._nextBeginningIndexes\r\n if(nextBeginningIndexes === null) nextBeginningIndexes = prepared._nextBeginningIndexes = fuzzysort.prepareNextBeginningIndexes(prepared.target)\r\n var firstPossibleI = targetI = matchesSimple[0]===0 ? 0 : nextBeginningIndexes[matchesSimple[0]-1]\r\n\r\n // Our target string successfully matched all characters in sequence!\r\n // Let's try a more advanced and strict test to improve the score\r\n // only count it as a match if it's consecutive or a beginning character!\r\n if(targetI !== targetLen) for(;;) {\r\n if(targetI >= targetLen) {\r\n // We failed to find a good spot for this search char, go back to the previous search char and force it forward\r\n if(searchI <= 0) break // We failed to push chars forward for a better match\r\n\r\n --searchI\r\n var lastMatch = matchesStrict[--matchesStrictLen]\r\n targetI = nextBeginningIndexes[lastMatch]\r\n\r\n } else {\r\n var isMatch = searchLowerCodes[searchI] === targetLowerCodes[targetI]\r\n if(isMatch) {\r\n matchesStrict[matchesStrictLen++] = targetI\r\n ++searchI; if(searchI === searchLen) { successStrict = true; break }\r\n ++targetI\r\n } else {\r\n targetI = nextBeginningIndexes[targetI]\r\n }\r\n }\r\n }\r\n\r\n { // tally up the score & keep track of matches for highlighting later\r\n if(successStrict) { var matchesBest = matchesStrict; var matchesBestLen = matchesStrictLen }\r\n else { var matchesBest = matchesSimple; var matchesBestLen = matchesSimpleLen }\r\n var score = 0\r\n var lastTargetI = -1\r\n for(var i = 0; i < searchLen; ++i) { var targetI = matchesBest[i]\r\n // score only goes down if they're not consecutive\r\n if(lastTargetI !== targetI - 1) score -= targetI\r\n lastTargetI = targetI\r\n }\r\n if(!successStrict) score *= 1000\r\n score -= targetLen - searchLen\r\n prepared.score = score\r\n prepared.indexes = new Array(matchesBestLen); for(var i = matchesBestLen - 1; i >= 0; --i) prepared.indexes[i] = matchesBest[i]\r\n\r\n return prepared\r\n }\r\n },\r\n\r\n prepareLowerCodes: function(str) {\r\n var strLen = str.length\r\n var lowerCodes = [] // new Array(strLen) sparse array is too slow\r\n var lower = str.toLowerCase()\r\n for(var i = 0; i < strLen; ++i) lowerCodes[i] = lower.charCodeAt(i)\r\n return lowerCodes\r\n },\r\n prepareBeginningIndexes: function(target) {\r\n var targetLen = target.length\r\n var beginningIndexes = []; var beginningIndexesLen = 0\r\n var wasUpper = false\r\n var wasAlphanum = false\r\n for(var i = 0; i < targetLen; ++i) {\r\n var targetCode = target.charCodeAt(i)\r\n var isUpper = targetCode>=65&&targetCode<=90\r\n var isAlphanum = isUpper || targetCode>=97&&targetCode<=122 || targetCode>=48&&targetCode<=57\r\n var isBeginning = isUpper && !wasUpper || !wasAlphanum || !isAlphanum\r\n wasUpper = isUpper\r\n wasAlphanum = isAlphanum\r\n if(isBeginning) beginningIndexes[beginningIndexesLen++] = i\r\n }\r\n return beginningIndexes\r\n },\r\n prepareNextBeginningIndexes: function(target) {\r\n var targetLen = target.length\r\n var beginningIndexes = fuzzysort.prepareBeginningIndexes(target)\r\n var nextBeginningIndexes = [] // new Array(targetLen) sparse array is too slow\r\n var lastIsBeginning = beginningIndexes[0]\r\n var lastIsBeginningI = 0\r\n for(var i = 0; i < targetLen; ++i) {\r\n if(lastIsBeginning > i) {\r\n nextBeginningIndexes[i] = lastIsBeginning\r\n } else {\r\n lastIsBeginning = beginningIndexes[++lastIsBeginningI]\r\n nextBeginningIndexes[i] = lastIsBeginning===undefined ? targetLen : lastIsBeginning\r\n }\r\n }\r\n return nextBeginningIndexes\r\n },\r\n\r\n cleanup: cleanup,\r\n new: fuzzysortNew,\r\n }\r\n return fuzzysort\r\n} // fuzzysortNew\r\n\r\n// This stuff is outside fuzzysortNew, because it's shared with instances of fuzzysort.new()\r\nvar isNode = typeof require !== 'undefined' && typeof window === 'undefined'\r\nvar MyMap = typeof Map === 'function' ? Map : function(){var s=Object.create(null);this.get=function(k){return s[k]};this.set=function(k,val){s[k]=val;return this};this.clear=function(){s=Object.create(null)}}\r\nvar preparedCache = new MyMap()\r\nvar preparedSearchCache = new MyMap()\r\nvar noResults = []; noResults.total = 0\r\nvar matchesSimple = []; var matchesStrict = []\r\nfunction cleanup() { preparedCache.clear(); preparedSearchCache.clear(); matchesSimple = []; matchesStrict = [] }\r\nfunction defaultScoreFn(a) {\r\n var max = -9007199254740991\r\n for (var i = a.length - 1; i >= 0; --i) {\r\n var result = a[i]; if(result === null) continue\r\n var score = result.score\r\n if(score > max) max = score\r\n }\r\n if(max === -9007199254740991) return null\r\n return max\r\n}\r\n\r\n// prop = 'key' 2.5ms optimized for this case, seems to be about as fast as direct obj[prop]\r\n// prop = 'key1.key2' 10ms\r\n// prop = ['key1', 'key2'] 27ms\r\nfunction getValue(obj, prop) {\r\n var tmp = obj[prop]; if(tmp !== undefined) return tmp\r\n var segs = prop\r\n if(!Array.isArray(prop)) segs = prop.split('.')\r\n var len = segs.length\r\n var i = -1\r\n while (obj && (++i < len)) obj = obj[segs[i]]\r\n return obj\r\n}\r\n\r\nfunction isObj(x) { return typeof x === 'object' } // faster as a function\r\n\r\n// Hacked version of https://github.com/lemire/FastPriorityQueue.js\r\nvar fastpriorityqueue=function(){var r=[],o=0,e={};function n(){for(var e=0,n=r[e],c=1;c<o;){var f=c+1;e=c,f<o&&r[f].score<r[c].score&&(e=f),r[e-1>>1]=r[e],c=1+(e<<1)}for(var a=e-1>>1;e>0&&n.score<r[a].score;a=(e=a)-1>>1)r[e]=r[a];r[e]=n}return e.add=function(e){var n=o;r[o++]=e;for(var c=n-1>>1;n>0&&e.score<r[c].score;c=(n=c)-1>>1)r[n]=r[c];r[n]=e},e.poll=function(){if(0!==o){var e=r[0];return r[0]=r[--o],n(),e}},e.peek=function(e){if(0!==o)return r[0]},e.replaceTop=function(o){r[0]=o,n()},e};\r\nvar q = fastpriorityqueue() // reuse this, except for async, it needs to make its own\r\n\r\nreturn fuzzysortNew()\r\n}) // UMD\r\n\r\n// TODO: (performance) wasm version!?\r\n// TODO: (performance) threads?\r\n// TODO: (performance) avoid cache misses\r\n// TODO: (performance) preparedCache is a memory leak\r\n// TODO: (like sublime) backslash === forwardslash\r\n// TODO: (like sublime) spaces: \"a b\" should do 2 searches 1 for a and 1 for b\r\n// TODO: (scoring) garbage in targets that allows most searches to strict match need a penality\r\n// TODO: (performance) idk if allowTypo is optimized\r\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var baseDifference = require('./_baseDifference'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\nvar without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n});\n\nmodule.exports = without;\n","import e,{useRef as r,useMemo as t,useEffect as n,useState as o,useCallback as a,useLayoutEffect as l}from\"react\";function u(){return(u=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function c(e,r){if(null==e)return{};var t,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r.indexOf(t=a[n])>=0||(o[t]=e[t]);return o}function i(e){var t=r(e),n=r(function(e){t.current&&t.current(e)});return t.current=e,n.current}var s=function(e,r,t){return void 0===r&&(r=0),void 0===t&&(t=1),e>t?t:e<r?r:e},f=function(e){return\"touches\"in e},v=function(e){return e&&e.ownerDocument.defaultView||self},d=function(e,r,t){var n=e.getBoundingClientRect(),o=f(r)?function(e,r){for(var t=0;t<e.length;t++)if(e[t].identifier===r)return e[t];return e[0]}(r.touches,t):r;return{left:s((o.pageX-(n.left+v(e).pageXOffset))/n.width),top:s((o.pageY-(n.top+v(e).pageYOffset))/n.height)}},h=function(e){!f(e)&&e.preventDefault()},m=e.memo(function(o){var a=o.onMove,l=o.onKey,s=c(o,[\"onMove\",\"onKey\"]),m=r(null),g=i(a),p=i(l),b=r(null),_=r(!1),x=t(function(){var e=function(e){h(e),(f(e)?e.touches.length>0:e.buttons>0)&&m.current?g(d(m.current,e,b.current)):t(!1)},r=function(){return t(!1)};function t(t){var n=_.current,o=v(m.current),a=t?o.addEventListener:o.removeEventListener;a(n?\"touchmove\":\"mousemove\",e),a(n?\"touchend\":\"mouseup\",r)}return[function(e){var r=e.nativeEvent,n=m.current;if(n&&(h(r),!function(e,r){return r&&!f(e)}(r,_.current)&&n)){if(f(r)){_.current=!0;var o=r.changedTouches||[];o.length&&(b.current=o[0].identifier)}n.focus(),g(d(n,r,b.current)),t(!0)}},function(e){var r=e.which||e.keyCode;r<37||r>40||(e.preventDefault(),p({left:39===r?.05:37===r?-.05:0,top:40===r?.05:38===r?-.05:0}))},t]},[p,g]),C=x[0],E=x[1],H=x[2];return n(function(){return H},[H]),e.createElement(\"div\",u({},s,{onTouchStart:C,onMouseDown:C,className:\"react-colorful__interactive\",ref:m,onKeyDown:E,tabIndex:0,role:\"slider\"}))}),g=function(e){return e.filter(Boolean).join(\" \")},p=function(r){var t=r.color,n=r.left,o=r.top,a=void 0===o?.5:o,l=g([\"react-colorful__pointer\",r.className]);return e.createElement(\"div\",{className:l,style:{top:100*a+\"%\",left:100*n+\"%\"}},e.createElement(\"div\",{className:\"react-colorful__pointer-fill\",style:{backgroundColor:t}}))},b=function(e,r,t){return void 0===r&&(r=0),void 0===t&&(t=Math.pow(10,r)),Math.round(t*e)/t},_={grad:.9,turn:360,rad:360/(2*Math.PI)},x=function(e){return L(C(e))},C=function(e){return\"#\"===e[0]&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:4===e.length?b(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:8===e.length?b(parseInt(e.substring(6,8),16)/255,2):1}},E=function(e,r){return void 0===r&&(r=\"deg\"),Number(e)*(_[r]||1)},H=function(e){var r=/hsla?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?N({h:E(r[1],r[2]),s:Number(r[3]),l:Number(r[4]),a:void 0===r[5]?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},M=H,N=function(e){var r=e.s,t=e.l;return{h:e.h,s:(r*=(t<50?t:100-t)/100)>0?2*r/(t+r)*100:0,v:t+r,a:e.a}},w=function(e){return K(I(e))},y=function(e){var r=e.s,t=e.v,n=e.a,o=(200-r)*t/100;return{h:b(e.h),s:b(o>0&&o<200?r*t/100/(o<=100?o:200-o)*100:0),l:b(o/2),a:b(n,2)}},q=function(e){var r=y(e);return\"hsl(\"+r.h+\", \"+r.s+\"%, \"+r.l+\"%)\"},k=function(e){var r=y(e);return\"hsla(\"+r.h+\", \"+r.s+\"%, \"+r.l+\"%, \"+r.a+\")\"},I=function(e){var r=e.h,t=e.s,n=e.v,o=e.a;r=r/360*6,t/=100,n/=100;var a=Math.floor(r),l=n*(1-t),u=n*(1-(r-a)*t),c=n*(1-(1-r+a)*t),i=a%6;return{r:b(255*[n,u,l,l,c,n][i]),g:b(255*[c,n,n,u,l,l][i]),b:b(255*[l,l,c,n,n,u][i]),a:b(o,2)}},O=function(e){var r=/hsva?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?A({h:E(r[1],r[2]),s:Number(r[3]),v:Number(r[4]),a:void 0===r[5]?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},j=O,z=function(e){var r=/rgba?\\(?\\s*(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i.exec(e);return r?L({r:Number(r[1])/(r[2]?100/255:1),g:Number(r[3])/(r[4]?100/255:1),b:Number(r[5])/(r[6]?100/255:1),a:void 0===r[7]?1:Number(r[7])/(r[8]?100:1)}):{h:0,s:0,v:0,a:1}},B=z,D=function(e){var r=e.toString(16);return r.length<2?\"0\"+r:r},K=function(e){var r=e.r,t=e.g,n=e.b,o=e.a,a=o<1?D(b(255*o)):\"\";return\"#\"+D(r)+D(t)+D(n)+a},L=function(e){var r=e.r,t=e.g,n=e.b,o=e.a,a=Math.max(r,t,n),l=a-Math.min(r,t,n),u=l?a===r?(t-n)/l:a===t?2+(n-r)/l:4+(r-t)/l:0;return{h:b(60*(u<0?u+6:u)),s:b(a?l/a*100:0),v:b(a/255*100),a:o}},A=function(e){return{h:b(e.h),s:b(e.s),v:b(e.v),a:b(e.a,2)}},S=e.memo(function(r){var t=r.hue,n=r.onChange,o=g([\"react-colorful__hue\",r.className]);return e.createElement(\"div\",{className:o},e.createElement(m,{onMove:function(e){n({h:360*e.left})},onKey:function(e){n({h:s(t+360*e.left,0,360)})},\"aria-label\":\"Hue\",\"aria-valuenow\":b(t),\"aria-valuemax\":\"360\",\"aria-valuemin\":\"0\"},e.createElement(p,{className:\"react-colorful__hue-pointer\",left:t/360,color:q({h:t,s:100,v:100,a:1})})))}),T=e.memo(function(r){var t=r.hsva,n=r.onChange,o={backgroundColor:q({h:t.h,s:100,v:100,a:1})};return e.createElement(\"div\",{className:\"react-colorful__saturation\",style:o},e.createElement(m,{onMove:function(e){n({s:100*e.left,v:100-100*e.top})},onKey:function(e){n({s:s(t.s+100*e.left,0,100),v:s(t.v-100*e.top,0,100)})},\"aria-label\":\"Color\",\"aria-valuetext\":\"Saturation \"+b(t.s)+\"%, Brightness \"+b(t.v)+\"%\"},e.createElement(p,{className:\"react-colorful__saturation-pointer\",top:1-t.v/100,left:t.s/100,color:q(t)})))}),F=function(e,r){if(e===r)return!0;for(var t in e)if(e[t]!==r[t])return!1;return!0},P=function(e,r){return e.replace(/\\s/g,\"\")===r.replace(/\\s/g,\"\")},X=function(e,r){return e.toLowerCase()===r.toLowerCase()||F(C(e),C(r))};function Y(e,t,l){var u=i(l),c=o(function(){return e.toHsva(t)}),s=c[0],f=c[1],v=r({color:t,hsva:s});n(function(){if(!e.equal(t,v.current.color)){var r=e.toHsva(t);v.current={hsva:r,color:t},f(r)}},[t,e]),n(function(){var r;F(s,v.current.hsva)||e.equal(r=e.fromHsva(s),v.current.color)||(v.current={hsva:s,color:r},u(r))},[s,e,u]);var d=a(function(e){f(function(r){return Object.assign({},r,e)})},[]);return[s,d]}var R,V=\"undefined\"!=typeof window?l:n,$=function(){return R||(\"undefined\"!=typeof __webpack_nonce__?__webpack_nonce__:void 0)},G=function(e){R=e},J=new Map,Q=function(e){V(function(){var r=e.current?e.current.ownerDocument:document;if(void 0!==r&&!J.has(r)){var t=r.createElement(\"style\");t.innerHTML='.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:\"\";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url(\\'data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill-opacity=\".05\"><path d=\"M8 0h8v8H8zM0 8h8v8H0z\"/></svg>\\')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}',J.set(r,t);var n=$();n&&t.setAttribute(\"nonce\",n),r.head.appendChild(t)}},[])},U=function(t){var n=t.className,o=t.colorModel,a=t.color,l=void 0===a?o.defaultColor:a,i=t.onChange,s=c(t,[\"className\",\"colorModel\",\"color\",\"onChange\"]),f=r(null);Q(f);var v=Y(o,l,i),d=v[0],h=v[1],m=g([\"react-colorful\",n]);return e.createElement(\"div\",u({},s,{ref:f,className:m}),e.createElement(T,{hsva:d,onChange:h}),e.createElement(S,{hue:d.h,onChange:h,className:\"react-colorful__last-control\"}))},W={defaultColor:\"000\",toHsva:x,fromHsva:function(e){return w({h:e.h,s:e.s,v:e.v,a:1})},equal:X},Z=function(r){return e.createElement(U,u({},r,{colorModel:W}))},ee=function(r){var t=r.className,n=r.hsva,o=r.onChange,a={backgroundImage:\"linear-gradient(90deg, \"+k(Object.assign({},n,{a:0}))+\", \"+k(Object.assign({},n,{a:1}))+\")\"},l=g([\"react-colorful__alpha\",t]),u=b(100*n.a);return e.createElement(\"div\",{className:l},e.createElement(\"div\",{className:\"react-colorful__alpha-gradient\",style:a}),e.createElement(m,{onMove:function(e){o({a:e.left})},onKey:function(e){o({a:s(n.a+e.left)})},\"aria-label\":\"Alpha\",\"aria-valuetext\":u+\"%\",\"aria-valuenow\":u,\"aria-valuemin\":\"0\",\"aria-valuemax\":\"100\"},e.createElement(p,{className:\"react-colorful__alpha-pointer\",left:n.a,color:k(n)})))},re=function(t){var n=t.className,o=t.colorModel,a=t.color,l=void 0===a?o.defaultColor:a,i=t.onChange,s=c(t,[\"className\",\"colorModel\",\"color\",\"onChange\"]),f=r(null);Q(f);var v=Y(o,l,i),d=v[0],h=v[1],m=g([\"react-colorful\",n]);return e.createElement(\"div\",u({},s,{ref:f,className:m}),e.createElement(T,{hsva:d,onChange:h}),e.createElement(S,{hue:d.h,onChange:h}),e.createElement(ee,{hsva:d,onChange:h,className:\"react-colorful__last-control\"}))},te={defaultColor:\"0001\",toHsva:x,fromHsva:w,equal:X},ne=function(r){return e.createElement(re,u({},r,{colorModel:te}))},oe={defaultColor:{h:0,s:0,l:0,a:1},toHsva:N,fromHsva:y,equal:F},ae=function(r){return e.createElement(re,u({},r,{colorModel:oe}))},le={defaultColor:\"hsla(0, 0%, 0%, 1)\",toHsva:H,fromHsva:k,equal:P},ue=function(r){return e.createElement(re,u({},r,{colorModel:le}))},ce={defaultColor:{h:0,s:0,l:0},toHsva:function(e){return N({h:e.h,s:e.s,l:e.l,a:1})},fromHsva:function(e){return{h:(r=y(e)).h,s:r.s,l:r.l};var r},equal:F},ie=function(r){return e.createElement(U,u({},r,{colorModel:ce}))},se={defaultColor:\"hsl(0, 0%, 0%)\",toHsva:M,fromHsva:q,equal:P},fe=function(r){return e.createElement(U,u({},r,{colorModel:se}))},ve={defaultColor:{h:0,s:0,v:0,a:1},toHsva:function(e){return e},fromHsva:A,equal:F},de=function(r){return e.createElement(re,u({},r,{colorModel:ve}))},he={defaultColor:\"hsva(0, 0%, 0%, 1)\",toHsva:O,fromHsva:function(e){var r=A(e);return\"hsva(\"+r.h+\", \"+r.s+\"%, \"+r.v+\"%, \"+r.a+\")\"},equal:P},me=function(r){return e.createElement(re,u({},r,{colorModel:he}))},ge={defaultColor:{h:0,s:0,v:0},toHsva:function(e){return{h:e.h,s:e.s,v:e.v,a:1}},fromHsva:function(e){var r=A(e);return{h:r.h,s:r.s,v:r.v}},equal:F},pe=function(r){return e.createElement(U,u({},r,{colorModel:ge}))},be={defaultColor:\"hsv(0, 0%, 0%)\",toHsva:j,fromHsva:function(e){var r=A(e);return\"hsv(\"+r.h+\", \"+r.s+\"%, \"+r.v+\"%)\"},equal:P},_e=function(r){return e.createElement(U,u({},r,{colorModel:be}))},xe={defaultColor:{r:0,g:0,b:0,a:1},toHsva:L,fromHsva:I,equal:F},Ce=function(r){return e.createElement(re,u({},r,{colorModel:xe}))},Ee={defaultColor:\"rgba(0, 0, 0, 1)\",toHsva:z,fromHsva:function(e){var r=I(e);return\"rgba(\"+r.r+\", \"+r.g+\", \"+r.b+\", \"+r.a+\")\"},equal:P},He=function(r){return e.createElement(re,u({},r,{colorModel:Ee}))},Me={defaultColor:{r:0,g:0,b:0},toHsva:function(e){return L({r:e.r,g:e.g,b:e.b,a:1})},fromHsva:function(e){return{r:(r=I(e)).r,g:r.g,b:r.b};var r},equal:F},Ne=function(r){return e.createElement(U,u({},r,{colorModel:Me}))},we={defaultColor:\"rgb(0, 0, 0)\",toHsva:B,fromHsva:function(e){var r=I(e);return\"rgb(\"+r.r+\", \"+r.g+\", \"+r.b+\")\"},equal:P},ye=function(r){return e.createElement(U,u({},r,{colorModel:we}))},qe=/^#?([0-9A-F]{3,8})$/i,ke=function(r){var t=r.color,l=void 0===t?\"\":t,s=r.onChange,f=r.onBlur,v=r.escape,d=r.validate,h=r.format,m=r.process,g=c(r,[\"color\",\"onChange\",\"onBlur\",\"escape\",\"validate\",\"format\",\"process\"]),p=o(function(){return v(l)}),b=p[0],_=p[1],x=i(s),C=i(f),E=a(function(e){var r=v(e.target.value);_(r),d(r)&&x(m?m(r):r)},[v,m,d,x]),H=a(function(e){d(e.target.value)||_(v(l)),C(e)},[l,v,d,C]);return n(function(){_(v(l))},[l,v]),e.createElement(\"input\",u({},g,{value:h?h(b):b,spellCheck:\"false\",onChange:E,onBlur:H}))},Ie=function(e){return\"#\"+e},Oe=function(r){var t=r.prefixed,n=r.alpha,o=c(r,[\"prefixed\",\"alpha\"]),l=a(function(e){return e.replace(/([^0-9A-F]+)/gi,\"\").substring(0,n?8:6)},[n]),i=a(function(e){return function(e,r){var t=qe.exec(e),n=t?t[1].length:0;return 3===n||6===n||!!r&&4===n||!!r&&8===n}(e,n)},[n]);return e.createElement(ke,u({},o,{escape:l,format:t?Ie:void 0,process:Ie,validate:i}))};export{ne as HexAlphaColorPicker,Oe as HexColorInput,Z as HexColorPicker,ie as HslColorPicker,fe as HslStringColorPicker,ae as HslaColorPicker,ue as HslaStringColorPicker,pe as HsvColorPicker,_e as HsvStringColorPicker,de as HsvaColorPicker,me as HsvaStringColorPicker,Ne as RgbColorPicker,ye as RgbStringColorPicker,Ce as RgbaColorPicker,He as RgbaStringColorPicker,G as setNonce};\n//# sourceMappingURL=index.module.js.map\n"],"names":["isNode","window","MyMap","Map","s","Object","create","this","get","k","set","val","clear","preparedCache","preparedSearchCache","noResults","total","matchesSimple","matchesStrict","cleanup","defaultScoreFn","a","max","i","length","result","score","getValue","obj","prop","tmp","undefined","segs","Array","isArray","split","len","isObj","x","fastpriorityqueue","r","o","e","n","c","f","add","poll","peek","replaceTop","q","fuzzysortNew","instanceOptions","fuzzysort","single","search","target","options","indexes","getPreparedSearch","getPrepared","allowTypo","algorithm","algorithmNoTypo","go","targets","searchLowerCode","prepareSearch","threshold","limit","resultsLen","limitedCount","targetsLen","keys","scoreFn","keysLen","objResults","keyI","key","_targetLowerCodes","_nextBeginningIndexes","results","goAsync","canceled","p","Promise","resolve","reject","iCurrent","step","startMs","Date","now","setImmediate","setTimeout","cancel","highlight","hOpen","hClose","highlightCallback","highlighted","matchesIndex","opened","targetLen","matchesBest","char","substr","cb","matchI","indexesI","push","prepare","prepareLowerCodes","prepareSlow","prepareNextBeginningIndexes","targetPrepared","searchPrepared","searchLowerCodes","prepared","targetLowerCodes","searchLen","searchI","targetI","typoSimpleI","matchesSimpleLen","typoStrictI","successStrict","matchesStrictLen","nextBeginningIndexes","firstPossibleI","matchesBestLen","lastTargetI","str","strLen","lowerCodes","lower","toLowerCase","charCodeAt","prepareBeginningIndexes","beginningIndexes","beginningIndexesLen","wasUpper","wasAlphanum","targetCode","isUpper","isAlphanum","isBeginning","lastIsBeginning","lastIsBeginningI","new","baseIndexOf","module","exports","array","value","comparator","index","SetCache","arrayIncludes","arrayIncludesWith","arrayMap","baseUnary","cacheHas","values","iteratee","includes","isCommon","valuesLength","outer","computed","valuesIndex","baseFindIndex","baseIsNaN","strictIndexOf","fromIndex","identity","overRest","setToString","func","start","isArrayLike","isObjectLike","baseDifference","baseRest","isArrayLikeObject","without","u","assign","arguments","t","prototype","hasOwnProperty","call","apply","indexOf","current","v","ownerDocument","defaultView","self","d","getBoundingClientRect","identifier","touches","left","pageX","pageXOffset","width","top","pageY","pageYOffset","height","h","preventDefault","m","onMove","l","onKey","g","b","_","buttons","addEventListener","removeEventListener","nativeEvent","changedTouches","focus","which","keyCode","C","E","H","onTouchStart","onMouseDown","className","ref","onKeyDown","tabIndex","role","filter","Boolean","join","color","style","backgroundColor","Math","pow","round","N","PI","y","S","hue","onChange","T","hsva","F","Y","toHsva","equal","fromHsva","V","J","U","colorModel","defaultColor","document","has","createElement","innerHTML","setAttribute","head","appendChild","ce","ie"],"sourceRoot":""} \ No newline at end of file
diff --git a/8573.8abff79303ed4e093d95.js b/8573.8abff79303ed4e093d95.js
new file mode 100644
index 0000000..5c8a446
--- /dev/null
+++ b/8573.8abff79303ed4e093d95.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[8573],{27926:function(n,e,r){r.d(e,{Z:function(){return E}});var t=r(93379),o=r.n(t),i=r(7795),a=r.n(i),l=r(90569),c=r.n(l),s=r(3565),u=r.n(s),A=r(19216),d=r.n(A),p=r(44589),f=r.n(p),b=r(56281),m={};m.styleTagTransform=f(),m.setAttributes=u(),m.insert=c().bind(null,"head"),m.domAPI=a(),m.insertStyleElement=d(),o()(b.Z,m);var y=b.Z&&b.Z.locals?b.Z.locals:void 0,v=r(85893);function h(n){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},h(n)}var C=["children","secondary","className"];function g(n,e){var r=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.push.apply(r,t)}return r}function x(n){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?g(Object(r),!0).forEach((function(e){B(n,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):g(Object(r)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}))}return n}function B(n,e,r){return(e=function(n){var e=function(n,e){if("object"!==h(n)||null===n)return n;var r=n[Symbol.toPrimitive];if(void 0!==r){var t=r.call(n,"string");if("object"!==h(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(n)}(n);return"symbol"===h(e)?e:String(e)}(e))in n?Object.defineProperty(n,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[e]=r,n}function j(n){var e=n.children,r=n.secondary,t=n.className,o=function(n,e){if(null==n)return{};var r,t,o=function(n,e){if(null==n)return{};var r,t,o={},i=Object.keys(n);for(t=0;t<i.length;t++)r=i[t],e.indexOf(r)>=0||(o[r]=n[r]);return o}(n,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);for(t=0;t<i.length;t++)r=i[t],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(n,r)&&(o[r]=n[r])}return o}(n,C);return(0,v.jsx)("button",x(x({className:[t,y.action,r&&y.secondary].join(" ")},o),{},{children:e}))}j.defaultProps={className:""};var E=j},2062:function(n,e,r){r.d(e,{Z:function(){return C}});var t=r(41051),o=r(93379),i=r.n(o),a=r(7795),l=r.n(a),c=r(90569),s=r.n(c),u=r(3565),A=r.n(u),d=r(19216),p=r.n(d),f=r(44589),b=r.n(f),m=r(528),y={};y.styleTagTransform=b(),y.setAttributes=A(),y.insert=s().bind(null,"head"),y.domAPI=l(),y.insertStyleElement=p(),i()(m.Z,y);var v=m.Z&&m.Z.locals?m.Z.locals:void 0,h=r(85893);function C(n){var e=n.children,r=n.className,o=void 0===r?"":r,i=[v.tip,o].join(" ");return(0,h.jsxs)("div",{className:i,children:[(0,h.jsx)(t.Z,{className:"fa-flip-horizontal",name:"hand-point-up"})," ",e]})}},81404:function(n,e,r){r.d(e,{Z:function(){return p}});var t=r(67294),o=r(39693),i=r.n(o),a=r(35161),l=r.n(a),c=r(52156),s=r(61953),u=r(74871),A=r(85893);function d(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}function p(n){var e,r=n.node,o=n.onSelect,a=n.expanded,p=void 0!==a&&a,f=(0,t.useCallback)((function(n){n.stopPropagation(),o({node:r,type:"tree"})}),[r,o]),b=(0,t.useMemo)((function(){return l()((0,u.H)(r),"source")}),[r]),m=(0,t.useMemo)((function(){return b.at(-1)}),[b]),y=(0,t.useMemo)((function(){return b.slice(0,-1).reduce((function(n,e){return"".concat(e.code,"(").concat(n,")")}),null==m?void 0:m.code)}),[b,null==m?void 0:m.code]),v=(0,t.useMemo)((function(){return b.map(c.r8).map((function(n,e){return(0,A.jsx)(t.Fragment,{children:n},e)})).reduce((function(n,e){return 0===n.length?[e]:[].concat(function(n){if(Array.isArray(n))return d(n)}(r=n)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(r)||function(n,e){if(n){if("string"==typeof n)return d(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(n,e):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[" ",e]);var r}),[])}),[b]),h=(0,t.useMemo)((function(){return b.map(c.rG).join(" + ")}),[b]),C=(0,t.useMemo)((function(){return b.map((function(n){return n?n.description||n.name:"⦸"})).join(" + ")}),[b]),g=void 0===(null===(e=r.source)||void 0===e?void 0:e.code)||void 0===r.value||r._isPlaceholder,x=p?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("code",{children:y}),(0,A.jsx)("span",{children:C})]}):v;return(0,A.jsx)("span",{className:i()([s.Z.code,g&&s.Z.missingValue]).join(" "),title:h,onClick:f,children:g?(0,A.jsx)(c.J1,{}):x})}},74871:function(n,e,r){function t(n,e){if(n){if("string"==typeof n)return i(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(n,e):void 0}}function o(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}function i(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}function a(n){return n.params.length>0?[n].concat(function(n){if(Array.isArray(n))return i(n)}(e=a(n.params[0]))||o(e)||t(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()):[n];var e}function l(n){var e,r=function(n){if(Array.isArray(n))return n}(e=n)||o(e)||t(e)||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.")}(),i=r[0],a=r.slice(1);return{value:i,params:0===a.length?[]:[l(a)]}}r.d(e,{H:function(){return a},n:function(){return l}})},83197:function(n,e,r){r.d(e,{N:function(){return Y},Z:function(){return q}});var t=r(27361),o=r.n(t),i=r(45697),a=r.n(i),l=r(67294),c=r(67069),s=r(52156),u=r(81404),A=r(93379),d=r.n(A),p=r(7795),f=r.n(p),b=r(90569),m=r.n(b),y=r(3565),v=r.n(y),h=r(19216),C=r.n(h),g=r(44589),x=r.n(g),B=r(33151),j={};j.styleTagTransform=x(),j.setAttributes=v(),j.insert=m().bind(null,"head"),j.domAPI=f(),j.insertStyleElement=C(),d()(B.Z,j);var E=B.Z&&B.Z.locals?B.Z.locals:void 0,w=r(85893);function k(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}var S=function(n){var e,r,t=n.node,o=n.onSelect,i=(e=t.params,r=3,function(n){if(Array.isArray(n))return n}(e)||function(n,e){var r=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=r){var t,o,i,a,l=[],c=!0,s=!1;try{if(i=(r=r.call(n)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(t=i.call(r)).done)&&(l.push(t.value),l.length!==e);c=!0);}catch(n){s=!0,o=n}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return l}}(e,r)||function(n,e){if(n){if("string"==typeof n)return k(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?k(n,e):void 0}}(e,r)||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.")}()),a=i[0],c=i[1],u=i[2],A=(0,l.useCallback)((function(n){var e;null==n||null===(e=n.stopPropagation)||void 0===e||e.call(n),o({node:t,type:"params"})}),[t,o]),d=(0,l.useMemo)((function(){return[a,c,u].some((function(n){return void 0===(null==n?void 0:n.value)||(null==n?void 0:n._isPlaceholder)}))}),[a,c,u]),p=(0,l.useMemo)((function(){return[a,c,u].some((function(n){return void 0===(null==n?void 0:n.value)}))?{}:{backgroundColor:"hsl(".concat(a.value,", ").concat(c.value,"%, ").concat(u.value,"%)"),border:".1em solid hsl(".concat(a.value,", ").concat(c.value,"%, ").concat(.75*u.value,"%)"),boxSizing:"border-box"}}),[a,c,u]);return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(s.ZP,{node:t,onSelect:o}),d?(0,w.jsx)(s.ZP,{node:{},onSelect:A}):(0,w.jsx)("div",{onClick:A,className:E.colorIconWrapper,children:(0,w.jsx)("div",{className:E.colorIcon,title:p.backgroundColor,style:p})})]})},O=r(61953);function Z(n){return Z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Z(n)}function P(n,e){var r=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.push.apply(r,t)}return r}function T(n){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?P(Object(r),!0).forEach((function(e){I(n,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):P(Object(r)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}))}return n}function I(n,e,r){return(e=function(n){var e=function(n,e){if("object"!==Z(n)||null===n)return n;var r=n[Symbol.toPrimitive];if(void 0!==r){var t=r.call(n,"string");if("object"!==Z(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(n)}(n);return"symbol"===Z(e)?e:String(e)}(e))in n?Object.defineProperty(n,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[e]=r,n}function D(n){var e=n.node,r=n.onSelect,t=n.expanded;return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(s.ZP,{node:e,onSelect:r,expanded:t}),o()(e,"source.params.length")>0?(0,w.jsx)(R,{slots:e.source.params,params:e.params,onSelect:r}):null]})}function Y(n){var e=n.node,r=n.onSelect,t=n.slot,o=n.expanded,i=void 0!==o&&o,a=(0,l.useMemo)((function(){var n;return"hsb-color-picker"===(null===(n=e.source)||void 0===n?void 0:n.helper)?S:"code"===t?u.Z:D}),[e,t]);return(0,w.jsx)("span",{className:O.Z.param,children:(0,w.jsx)(a,{node:e,onSelect:r,expanded:i})})}function R(n){var e=n.slots,r=n.params,t=n.onSelect,o=n.root,i=n.wrapperProps;return(0,w.jsx)("span",T(T({className:O.Z.params,"data-is-root":!!o,"data-param-count":r.length},i),{},{children:e.map((function(n,e){return"placeholder"!==n.type&&(0,w.jsx)(Y,{slot:n,node:r[e],onSelect:t},e)}))}))}R.propTypes={slots:a().arrayOf(c.wu).isRequired,params:a().arrayOf(c.le).isRequired,source:c.qz,onSelect:a().func.isRequired};var q=R},52156:function(n,e,r){r.d(e,{J1:function(){return d},r8:function(){return f},rG:function(){return p}});var t=r(39693),o=r.n(t),i=r(67294),a=r(45697),l=r.n(a),c=r(67069),s=r(61953),u=r(41051),A=r(85893);function d(){return(0,A.jsx)("span",{children:"⦸"})}function p(n){var e=(null==n?void 0:n.displayName)||(null==n?void 0:n.description);return n&&"(".concat(n.code,") ").concat(e)}function f(n){var e,r=(null==n?void 0:n.symbol)||(null==n||null===(e=n.code)||void 0===e?void 0:e.toString());return(null==n?void 0:n.faIcon)&&(0,A.jsx)(u.Z,{name:null==n?void 0:n.faIcon})||r||(0,A.jsx)(d,{})}function b(n){var e,r,t=n.value,o=n.expanded;if(void 0===o||!o)return f(t);if(!t)return(0,A.jsx)(d,{});var i=t.faIcon?(0,A.jsx)(u.Z,{name:t.faIcon}):t.symbol,a=null===(e=t.code)||void 0===e||null===(r=e.toString)||void 0===r?void 0:r.call(e),l=t.displayName||t.description||t.name;return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)("code",{children:a}),l&&(0,A.jsx)("span",{children:l})," ",i]})}function m(n){var e=n.node,r=n.onSelect,t=n.expanded,a=void 0!==t&&t,l=e.value,c=e.source,u=e._isPlaceholder,f=p(c),m=(0,i.useCallback)((function(n){n.stopPropagation(),r({node:e})}),[e,r]);return(0,A.jsx)("span",{className:o()([s.Z.code,(void 0===l||u)&&s.Z.missingValue]).join(" "),title:f,onClick:m,children:u?(0,A.jsx)(d,{}):(0,A.jsx)(b,{value:c,expanded:a})})}m.propTypes={node:c.le.isRequired,onSelect:l().func.isRequired},e.ZP=m},27213:function(n,e,r){var t=r(39693),o=r.n(t),i=r(45697),a=r.n(i),l=r(98697),c=r(83197),s=r(67069),u=r(39017),A=r(61953),d=r(41051),p=r(48959),f=r(85893);function b(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}function m(n){var e,r,t,i,a=n.context,s=void 0===a?"none":a,m=n.hideBehaviour,y=n.value,v=n.params,h=n.paramIndex,C=n.onUpdate,g=(t=(0,l.Z)({value:y,params:v},h,C),i=2,function(n){if(Array.isArray(n))return n}(t)||function(n,e){var r=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=r){var t,o,i,a,l=[],c=!0,s=!1;try{if(i=(r=r.call(n)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(t=i.call(r)).done)&&(l.push(t.value),l.length!==e);c=!0);}catch(n){s=!0,o=n}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return l}}(t,i)||function(n,e){if(n){if("string"==typeof n)return b(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?b(n,e):void 0}}(t,i)||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.")}()),x=g[0],B=x.behavior,j=x.behaviorParams,E=x.bindTree,w=x.bindTreeParams,k=x.editing,S=x.invalid,O=g[1],Z=O.selectNodeForEditing,P=O.clearEditing,T=O.handleUpdateBindValue;return(0,f.jsxs)(f.Fragment,{children:[B&&!m?(0,f.jsx)("span",{className:o()([A.Z["behaviour-binding"],!(null!==(e=E.source)&&void 0!==e&&e.code)&&A.Z.missingValue]).join(" "),onClick:function(){return Z({node:E})},children:(null===(r=E.source)||void 0===r?void 0:r.code)||"⦸"}):null,S&&(0,f.jsx)(d.Z,{name:"warning",className:A.Z.missing,title:"Binding has missing value(s)"}),(0,f.jsx)(c.Z,{root:!0,slots:j,params:w,onSelect:Z,wrapperProps:{"data-simple":(0,u.Gg)(E),"data-long":(0,u.Mc)(E,j)}}),k&&(0,f.jsx)(p.Z,{node:k.node,type:k.type,behaviour:B,context:s,prompt:(0,u._I)(k.node.slot),searchKey:"code",onSelect:T,onCancel:P})]})}m.propTypes={context:a().string,hideBehaviour:a().bool.isRequired,value:s.S3.isRequired,params:a().arrayOf(s.dH),onUpdate:a().func.isRequired},m.defaultProps={hideBehaviour:!1},e.Z=m},67069:function(n,e,r){r.d(e,{S3:function(){return c},dH:function(){return A},le:function(){return d},qz:function(){return s},wu:function(){return a}});var t=r(45697),o=r.n(t),i=o().oneOfType([o().number,o().shape({name:o().string,type:o().string,description:o().string,code:o().any})]),a=o().oneOfType([o().oneOf(["code","layer"]),o().shape({type:o().oneOf(["placeholder"])}),o().shape({enum:o().arrayOf(i),raw:o().bool,name:o().string,type:o().string.isRequired})]),l=o().arrayOf(a),c=o().oneOfType([o().string,o().number]),s=o().shape({params:l,code:c.isRequired,description:o().string,symbol:o().string,faIcon:o().string}),u={value:c,source:s};u.params=o().arrayOf(o().shape(u));var A=o().shape(u),d=A;o().arrayOf(A)},98697:function(n,e,r){r.d(e,{Z:function(){return f}});var t=r(50361),o=r.n(t),i=r(27361),a=r.n(i),l=r(78718),c=r.n(l),s=r(67294),u=r(81485),A=r(39017),d=r(41696);function p(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}function f(n,e,r){var t,i,l,f,b=(0,s.useContext)(u.c),m=b.sources,y=(l=(0,s.useState)(null),f=2,function(n){if(Array.isArray(n))return n}(l)||function(n,e){var r=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=r){var t,o,i,a,l=[],c=!0,s=!1;try{if(i=(r=r.call(n)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(t=i.call(r)).done)&&(l.push(t.value),l.length!==e);c=!0);}catch(n){s=!0,o=n}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return l}}(l,f)||function(n,e){if(n){if("string"==typeof n)return p(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?p(n,e):void 0}}(l,f)||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.")}()),v=y[0],h=y[1],C=(0,s.useMemo)((function(){return(0,A.K4)(n,b)}),[n,b]),g=void 0===e?[0]:[e,e+1],x=n.value,B=a()(m.behaviours,x,{}),j=(t=(0,d.L)(n,b.behaviorParameters)).slice.apply(t,g),E=(i=C.params).slice.apply(i,g),w=(0,A.He)(C),k=(0,s.useMemo)((function(){return(0,A.wx)(w)}),[w]),S=(0,s.useCallback)((function(n){var e=n.node,r=n.type,t=void 0===r?"value":r,o=(0,A._I)(e.slot,e,t);h({node:e,type:t,nodeIndex:w.indexOf(e),prompt:o})}),[w,h]),O=(0,s.useCallback)((function(){return h(null)}),[h]),Z=(0,s.useCallback)((function(n){var e=n.value,t=n.params,i=v.nodeIndex,a=o()(C),l=(0,A.He)(a),s=l[i];s.value=e,s.params=t,delete s._isPlaceholder,l.forEach((function(n){delete n.source,delete n.slot})),r(c()(a,["value","params"])),O()}),[C,v,r,O]),P=(0,s.useCallback)((function(n){var e=v.nodeIndex,t=o()(C),i=(0,A.He)(t);i[e].params=n,i.forEach((function(n){delete n.source,delete n.slot})),r(c()(t,["value","params"])),O()}),[C,v,r,O]),T=(0,s.useCallback)((function(n,e,t){var i=o()(C),a=(0,A.He)(i),l=a[e];if(n.slot.raw)"number"===n.slot.type&&(t.code=Number(t.code));else if(n.slot.enum){var s,u,d,p=(null===(s=l.source)||void 0===s||null===(u=s.additionalParams)||void 0===u?void 0:u.length)||0;if(((null===(d=t.additionalParams)||void 0===d?void 0:d.length)||0)<p){var f=a[0];f.params.splice(1,f.params.length-1),a.splice(2,a.length-1)}}l.value=t.code,delete l._isPlaceholder;var m="behaviour"===l.slot?b.behaviorParameters[l.value]||[]:(null==t?void 0:t.params)||[];l.params=m.reduce((function(n,e,r){var t,o;return(null===(t=l.source)||void 0===t||null===(o=t.params)||void 0===o?void 0:o[r])===m[r]?n.push(l.params[r]):n.push({value:0,_isPlaceholder:!0}),n}),[]),a.forEach((function(n){delete n.source,delete n.slot})),r(c()(i,["value","params","_isPlaceholder"])),O()}),[C,b.behaviorParameters,r,O]),I=(0,s.useCallback)((function(n){if("tree"===v.type)return Z(n);if("params"===v.type)return P(n);var e=v.node,r=v.nodeIndex;T(e,r,n)}),[v,T,Z,P]),D=(0,s.useMemo)((function(){return{behavior:B,behaviorParams:j,bindTree:C,bindTreeParams:E,editing:v,index:w,invalid:k}}),[B,j,C,E,v,w,k]),Y=(0,s.useMemo)((function(){return{clearEditing:O,handleUpdateBindValue:I,handleUpdateNode:T,selectNodeForEditing:S}}),[S,O,I,T]);return(0,s.useMemo)((function(){return[D,Y]}),[D,Y])}},39017:function(n,e,r){r.d(e,{Gg:function(){return m},He:function(){return b},K4:function(){return C},Mc:function(){return y},_I:function(){return v},wx:function(){return h}});var t=r(13311),o=r.n(t),i=r(27361),a=r.n(i),l=r(41696);function c(n){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},c(n)}function s(n,e){var r=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.push.apply(r,t)}return r}function u(n){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?s(Object(r),!0).forEach((function(e){A(n,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}))}return n}function A(n,e,r){return(e=function(n){var e=function(n,e){if("object"!==c(n)||null===n)return n;var r=n[Symbol.toPrimitive];if(void 0!==r){var t=r.call(n,"string");if("object"!==c(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(n)}(n);return"symbol"===c(e)?e:String(e)}(e))in n?Object.defineProperty(n,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[e]=r,n}function d(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){var r=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=r){var t,o,i,a,l=[],c=!0,s=!1;try{if(i=(r=r.call(n)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(t=i.call(r)).done)&&(l.push(t.value),l.length!==e);c=!0);}catch(n){s=!0,o=n}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return l}}(n,e)||p(n,e)||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(n,e){if(n){if("string"==typeof n)return f(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(n,e):void 0}}function f(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}function b(n){var e=[];return function n(r){var t=r.params||[];e.push(r),t.forEach(n)}(n),e}function m(n){var e=d(n.params,1)[0],r=a()(e,"source.symbol",a()(e,"source.code","")),t=!!a()(e,"source.faIcon")||1===r.length;return 1===n.params.length&&t}function y(n,e){var r=d(n.params,1)[0],t=a()(r,"source.symbol",a()(r,"value","")),o=!a()(r,"source.faIcon")&&t.length>4,i=e.length>1,l=a()(r,"params",[]).length>0;return o||i||l}function v(n,e,r){var t={layer:"Assign layer",mod:"Assign modifier",behaviour:"Assign behavior",keycode:"Assign key code"};if("params"===r){var o,i,a=(null===(o=e.source)||void 0===o?void 0:o.displayName)||(null===(i=e.source)||void 0===i?void 0:i.name);if(a)return a}return n.name?"Assign ".concat(n.name):n.raw?"Enter raw value":t[n]||t.keycode}function h(n){if(!n[0].source.code)return!0;var e,r=function(n,e){var r="undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(!r){if(Array.isArray(n)||(r=p(n))){r&&(n=r);var t=0,o=function(){};return{s:o,n:function(){return t>=n.length?{done:!0}:{done:!1,value:n[t++]}},e:function(n){throw n},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){r=r.call(n)},n:function(){var n=r.next();return a=n.done,n},e:function(n){l=!0,i=n},f:function(){try{a||null==r.return||r.return()}finally{if(l)throw i}}}}(n);try{for(r.s();!(e=r.n()).done;){var t,o=e.value;if(((null===(t=o.source)||void 0===t?void 0:t.params)||[]).length>o.params.length)return!0;if(o.params.some((function(n){var e;return void 0===n.value||""===n.value||void 0===n.source||n._isPlaceholder&&"placeholder"!==(null===(e=n.slot)||void 0===e?void 0:e.type)})))return!0}}catch(n){r.e(n)}finally{r.f()}}function C(n,e){var r=n.value,t=n.params,i=e.sources,c=e.mergedGlyphs,s=e.behaviorParameters,A=r;function d(n,e){if(!n)return{value:void 0,slot:e,params:[]};var r=n.value,t=n.params,l=n._isPlaceholder,s=function(n,e){var r;return n=a()(i.defines,n,n),Number.isNaN(Number(n))||(n=Number(n)),e.raw?{code:n}:e.enum?o()(e.enum,{code:n})||o()(e.enum,n)||{code:n}:"placeholder"===e.type?{code:n}:null==i||null===(r=i[e])||void 0===r?void 0:r[n]}(r,e);return{value:r,_isPlaceholder:l,slot:e,source:u(u({},s),{},{symbol:a()(c,[null==s?void 0:s.name,"symbol"],null==s?void 0:s.symbol),faIcon:a()(c,[null==s?void 0:s.name,"faIcon"],null==s?void 0:s.faIcon)}),params:a()(s,"params",[]).map((function(n,e){return d(t[e],n)}))}}return{value:r,slot:"behaviour",source:a()(i.behaviours,A,{}),params:(0,l.L)(n,s).map((function(n,e){return d(t[e],n)}))}}},62417:function(n,e,r){function t(n){return n.length>31?"maximum length: 31":n.match(/^[^a-zA-Z]/)?"first character must be a letter":n.match(/[^a-zA-Z0-9,._+-]/)?"valid characters: a-zA-Z0-9,._+-":void 0}r.d(e,{G3:function(){return o},Gk:function(){return t},zq:function(){return i}});var o=t;function i(n){return n.length>31?"maximum length: 31":n.match(/^[^a-zA-Z]/)?"first character must be a letter":n.match(/[^a-zA-Z0-9_]/)?"valid characters: a-zA-Z0-9_":void 0}},82607:function(n,e,r){var t=r(45697),o=r.n(t),i=r(91118),a=r(27213),l=r(67069),c=r(85893);function s(n){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},s(n)}function u(n,e){var r=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.push.apply(r,t)}return r}function A(n){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?u(Object(r),!0).forEach((function(e){d(n,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):u(Object(r)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}))}return n}function d(n,e,r){return(e=function(n){var e=function(n,e){if("object"!==s(n)||null===n)return n;var r=n[Symbol.toPrimitive];if(void 0!==r){var t=r.call(n,"string");if("object"!==s(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(n)}(n);return"symbol"===s(e)?e:String(e)}(e))in n?Object.defineProperty(n,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[e]=r,n}function p(n){var e=n.context,r=n.value,t=n.params,o=n.keyWrapperProps,l=void 0===o?{}:o,s=n.onUpdate;return(0,c.jsx)(i.Z,A(A({},l),{},{children:(0,c.jsx)(a.Z,{context:e,value:r,params:t,onUpdate:s})}))}p.propTypes={label:o().string,value:l.S3.isRequired,params:o().arrayOf(l.dH),onUpdate:o().func.isRequired},e.Z=p},91118:function(n,e,r){var t=r(39693),o=r.n(t),i=r(61953),a=r(85893);function l(n){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},l(n)}var c=["children","selectable","themeClass","className"];function s(n,e){var r=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.push.apply(r,t)}return r}function u(n){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?s(Object(r),!0).forEach((function(e){A(n,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}))}return n}function A(n,e,r){return(e=function(n){var e=function(n,e){if("object"!==l(n)||null===n)return n;var r=n[Symbol.toPrimitive];if(void 0!==r){var t=r.call(n,"string");if("object"!==l(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(n)}(n);return"symbol"===l(e)?e:String(e)}(e))in n?Object.defineProperty(n,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[e]=r,n}e.Z=function(n){var e=n.children,r=n.selectable,t=void 0===r||r,l=n.themeClass,s=void 0===l?void 0:l,A=n.className,d=void 0===A?"":A,p=function(n,e){if(null==n)return{};var r,t,o=function(n,e){if(null==n)return{};var r,t,o={},i=Object.keys(n);for(t=0;t<i.length;t++)r=i[t],e.indexOf(r)>=0||(o[r]=n[r]);return o}(n,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);for(t=0;t<i.length;t++)r=i[t],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(n,r)&&(o[r]=n[r])}return o}(n,c),f=o()([i.Z.key,t&&i.Z.selectable,null!=s?s:i.Z.keyDefaultTheme,d]).join(" ");return(0,a.jsx)("div",u(u({className:f},p),{},{children:e}))}},49519:function(n,e,r){r.d(e,{Z:function(){return A}});var t=r(45697),o=r.n(t),i=r(67294),a=function(n,e){var r=(e+(arguments.length>2&&void 0!==arguments[2]?arguments[2]:1))%n.length;return r<0?n.length+r:r},l=r(45944),c=r(85893);function s(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}function u(n){var e,r,t=n.results,o=n.onSelect,u=n.renderResult,A=(e=(0,i.useState)(0),r=2,function(n){if(Array.isArray(n))return n}(e)||function(n,e){var r=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=r){var t,o,i,a,l=[],c=!0,s=!1;try{if(i=(r=r.call(n)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(t=i.call(r)).done)&&(l.push(t.value),l.length!==e);c=!0);}catch(n){s=!0,o=n}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return l}}(e,r)||function(n,e){if(n){if("string"==typeof n)return s(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(n,e):void 0}}(e,r)||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.")}()),d=A[0],p=A[1],f=(0,i.useRef)(null),b=(0,i.useCallback)((function(n,e){var r,o,i,l,c,s;if(0!==t.length)if(void 0!==e){var u=null!==d?a(t,d,e):n,A='li[data-result-index="'.concat(u,'"]');o=null===(r=f.current)||void 0===r?void 0:r.querySelector(A),i=o.offsetParent.scrollTop,l=o.offsetParent.offsetHeight,c=o.offsetTop,s=c+o.scrollHeight,(c<i||s>i+l)&&o.scrollIntoView(!1),p(u)}else p(n);else p(null)}),[t,d,p]),m=(0,i.useCallback)((function(){b(0,1)}),[b]),y=(0,i.useCallback)((function(){b(t.length-1,-1)}),[b,t]),v=(0,i.useCallback)((function(n){o(t[d],n)}),[t,d,o]),h=(0,i.useCallback)((function(n){if("BUTTON"!==n.target.nodeName){var e={ArrowDown:m,ArrowUp:y,Enter:v}[n.key];e&&(n.preventDefault(),n.stopPropagation(),e(n))}}),[m,y,v]);return(0,i.useEffect)((function(){return document.body.addEventListener("keydown",h),function(){return document.body.removeEventListener("keydown",h)}}),[f,h]),(0,c.jsx)("ul",{className:l.Z.results,ref:f,children:t.map((function(n,e){return(0,c.jsx)("li",{className:d===e?l.Z.highlighted:"",title:n.description,"data-result-index":e,onClick:function(e){return o(n,e)},onDoubleClick:function(e){return o(n,e)},onMouseOver:function(){return b(e)},children:u(n,e)},e)}))})}u.propTypes={results:o().array.isRequired,onSelect:o().func.isRequired,renderResult:o().func.isRequired};var A=u},49671:function(n,e,r){var t=r(87360),o=r.n(t),i=r(45697),a=r.n(i),l=r(67294),c=r(41051),s=r(45944),u=r(85893);function A(n){return A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},A(n)}function d(n,e){var r=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.push.apply(r,t)}return r}function p(n){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?d(Object(r),!0).forEach((function(e){f(n,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}))}return n}function f(n,e,r){return(e=function(n){var e=function(n,e){if("object"!==A(n)||null===n)return n;var r=n[Symbol.toPrimitive];if(void 0!==r){var t=r.call(n,"string");if("object"!==A(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(n)}(n);return"symbol"===A(e)?e:String(e)}(e))in n?Object.defineProperty(n,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[e]=r,n}function b(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}function m(n){n&&(n.focus(),n.select())}var y=function(n){var e,r,t=n.choices,i=n.searchKey,a=n.searchKeys,A=n.renderResults,d=n.initialQuery,f=!t.length||t.length>10,y=(e=(0,l.useState)(d),r=2,function(n){if(Array.isArray(n))return n}(e)||function(n,e){var r=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=r){var t,o,i,a,l=[],c=!0,s=!1;try{if(i=(r=r.call(n)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(t=i.call(r)).done)&&(l.push(t.value),l.length!==e);c=!0);}catch(n){s=!0,o=n}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return l}}(e,r)||function(n,e){if(n){if("string"==typeof n)return b(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?b(n,e):void 0}}(e,r)||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.")}()),v=y[0],h=y[1],C=(0,l.useMemo)((function(){if(!v||!f)return t;var n=a?{keys:a,limit:30}:{key:i,limit:30};return o().go(v,t,n).map((function(n){return p(p({},n.obj),{},{search:n})}))}),[f,v,t,i,a]),g=(0,l.useCallback)((function(n){h(n.target.value)}),[h]);return(0,u.jsxs)(u.Fragment,{children:[f&&(0,u.jsxs)("div",{className:s.Z.searchWrapper,children:[(0,u.jsx)("input",{ref:m,type:"text",value:v,onChange:g}),(0,u.jsx)(c.Z,{className:s.Z.searchIcon,name:"search"}),(0,u.jsx)(c.Z,{className:s.Z.clearSearchIcon,name:"times",onClick:function(){return h("")}})]}),A(C)]})};y.propTypes={choices:a().array.isRequired,searchKey:a().string,initialQuery:a().string.isRequired,renderResults:a().func.isRequired},y.defaultProps={initialQuery:""},e.Z=y},48959:function(n,e,r){r.d(e,{Z:function(){return Pn}});var t=r(78718),o=r.n(t),i=r(45697),a=r.n(i),l=r(67294),c=r(96186),s=r(64261),u=r(81485),A=r(49519),d=r(45944),p=r(67069),f={onCancel:a().func,onChange:a().func,onSelect:a().func.isRequired,node:p.le.isRequired,searchKey:a().string.isRequired,searchThreshold:a().number},b=r(85893);function m(n){var e=(0,l.useContext)(u.c).getSearchTargets,r=n.param,t=n.onSelect,o=(0,l.useMemo)((function(){return e(r)}),[e,r]);return(0,b.jsx)(A.Z,{results:o,onSelect:t,renderResult:function(n){return(0,b.jsxs)(b.Fragment,{children:[n.code,n.description&&(0,b.jsx)("p",{className:d.Z.description,children:n.description})]})}})}m.propTypes=f;var y=r(87360),v=r.n(y),h=r(49671);function C(n){var e=n.searchKey,r=n.node,t=n.param,o=n.behaviour,i=n.context,a=n.onSelect,c=(0,l.useContext)(u.c).getSearchTargets,s=(0,l.useMemo)((function(){return c(t,o.code,i)}),[c,t,o,i]);return(0,b.jsx)(h.Z,{choices:s,initialQuery:r.value||"",searchKey:e,renderResults:function(n){return n&&(0,b.jsx)(A.Z,{results:n,onSelect:a,renderResult:g})}})}function g(n){var e=n.search?(0,b.jsx)("span",{children:v().highlight(n.search,(function(n,e){return(0,b.jsx)("b",{children:n},e)}))}):(0,b.jsx)("span",{children:n.code}),r=n.displayName||n.description;return(0,b.jsxs)(b.Fragment,{children:[e,r&&(0,b.jsx)("p",{className:d.Z.description,children:r})]})}C.propTypes=f;var x=r(55651),B=r(27926);function j(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}function E(n){var e,r,t=n.node,o=n.onSelect,i=(e=(0,l.useState)({h:Number(t.params[0].value),s:Number(t.params[1].value),l:Number(t.params[2].value)}),r=2,function(n){if(Array.isArray(n))return n}(e)||function(n,e){var r=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=r){var t,o,i,a,l=[],c=!0,s=!1;try{if(i=(r=r.call(n)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(t=i.call(r)).done)&&(l.push(t.value),l.length!==e);c=!0);}catch(n){s=!0,o=n}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return l}}(e,r)||function(n,e){if(n){if("string"==typeof n)return j(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?j(n,e):void 0}}(e,r)||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.")}()),a=i[0],c=i[1],s=(0,l.useCallback)((function(){o([{value:Math.round(a.h)},{value:Math.round(a.s)},{value:Math.round(a.l)}])}),[a,o]);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{style:{display:"flex",justifyContent:"center"},children:(0,b.jsx)(x.Jz,{color:a,onChange:c})}),(0,b.jsx)("p",{style:{textAlign:"center"},children:(0,b.jsx)(B.Z,{onClick:s,children:"Confirm"})})]})}E.propTypes={value:a().any.isRequired,prompt:a().string.isRequired,param:a().oneOfType([a().shape({enum:a().array,raw:a().bool,type:a().string})]).isRequired,onSelect:a().func.isRequired},E.defaultProps={value:""};var w=E,k=r(94184),S=r.n(k),O=r(39693),Z=r.n(O),P=r(35161),T=r.n(P),I=r(74871),D=r(82569),Y=r.n(D),R=r(93379),q=r.n(R),U=r(7795),M=r.n(U),z=r(90569),N=r.n(z),L=r(3565),X=r.n(L),K=r(19216),Q=r.n(K),W=r(44589),J=r.n(W),F=r(14409),G={};G.styleTagTransform=J(),G.setAttributes=X(),G.insert=N().bind(null,"head"),G.domAPI=M(),G.insertStyleElement=Q(),q()(F.Z,G);var H=F.Z&&F.Z.locals?F.Z.locals:void 0;function _(n){return _="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},_(n)}function V(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}function $(n,e,r){return(e=function(n){var e=function(n,e){if("object"!==_(n)||null===n)return n;var r=n[Symbol.toPrimitive];if(void 0!==r){var t=r.call(n,"string");if("object"!==_(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(n)}(n);return"symbol"===_(e)?e:String(e)}(e))in n?Object.defineProperty(n,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[e]=r,n}var nn=["LS","LA","LC","LG"],en=["RS","RA","RC","RG"],rn={LS:{short:"LSHFT",full:"Left Shift"},LC:{short:"LCTRL",full:"Left Control"},LA:{short:"LALT",full:"Left Alt"},LG:{short:"LGUI",full:"Left Gui"},RS:{short:"RSHFT",full:"Right Shift"},RC:{short:"RCTRL",full:"Right Control"},RA:{short:"RALT",full:"Right Alt"},RG:{short:"RGUI",full:"Right Gui"}},tn=" (This modifier is implicitly used by the active keycode and cannot be de-selected)";function on(n){var e=n.selected,r=n.implicit,t=n.row,o=n.onChange;return(0,b.jsx)("ul",{className:H.modifiers,children:t.map((function(n,t){var i;return(0,b.jsx)("li",{title:rn[n].full+(r.includes(n)?tn:""),className:S()((i={},$(i,H.selected,e.includes(n)),$(i,H.implicit,r.includes(n)),i)),children:(0,b.jsxs)("label",{children:[(0,b.jsx)("input",{type:"checkbox",checked:e.includes(n)||r.includes(n),disabled:r.includes(n),onChange:function(r){var t;o(r.target.checked?[].concat(function(n){if(Array.isArray(n))return V(n)}(t=e)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(t)||function(n,e){if(n){if("string"==typeof n)return V(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?V(n,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[n]):Y()(e,n))}})," ",rn[n].short]})},t)}))})}function an(n){var e=n.selected,r=n.implicit,t=n.onChange;return(0,b.jsxs)("div",{className:H.allModifiers,children:[(0,b.jsx)(on,{row:nn,selected:e,implicit:r,onChange:t}),(0,b.jsx)(on,{row:en,selected:e,implicit:r,onChange:t})]})}an.propTypes={selected:a().arrayOf(a().string),implicit:a().arrayOf(a().string)};var ln=an,cn=r(81404),sn=r(39017),un=r(91118),An=r(2062),dn=r(41051);function pn(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){var r=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=r){var t,o,i,a,l=[],c=!0,s=!1;try{if(i=(r=r.call(n)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(t=i.call(r)).done)&&(l.push(t.value),l.length!==e);c=!0);}catch(n){s=!0,o=n}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return l}}(n,e)||fn(n,e)||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 fn(n,e){if(n){if("string"==typeof n)return bn(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?bn(n,e):void 0}}function bn(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}function mn(n){var e=pn(n.search||[],1)[0],r=e?(0,b.jsx)("span",{dangerouslySetInnerHTML:{__html:v().highlight(e)}}):(0,b.jsx)("span",{children:n.code}),t=function(n){var e=null==n?void 0:n.symbol,r=null==n?void 0:n.faIcon;return r?(0,b.jsx)(dn.Z,{name:r}):e&&!n.aliases.includes(e)?e:void 0}(n);return(0,b.jsxs)("div",{className:H.resultItem,children:[(0,b.jsxs)("div",{className:H.description,children:[r,(0,b.jsx)("p",{className:d.Z.description,children:n.description})]}),t&&(0,b.jsx)("div",{className:H.symbol,children:t})]})}function yn(n){var e=n.node,r=n.onSelect,t=n.behaviour,o=(0,l.useContext)(u.c),i=o.getSearchTargets,a=(0,l.useMemo)((function(){return T()((0,I.H)(e),"source")}),[e]),c=1===a.length?[]:a.slice(0,-1),s=pn((0,l.useState)(T()(c,"code")),2),p=s[0],f=s[1],m=pn((0,l.useState)(a.at(-1)),2),y=m[0],v=m[1],C=(0,l.useMemo)((function(){return i("code",t.code).filter((function(n){return 0===n.params.length}))}),[i,t]),g=(0,sn.K4)({value:"&kp",params:[{value:null==y?void 0:y.code,params:null==y?void 0:y.params}]},o),x=(0,l.useCallback)((function(n,e){var t,o=(0,I.n)(Z()([].concat(function(n){if(Array.isArray(n))return bn(n)}(t=e)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(t)||fn(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[null==n?void 0:n.code])));r(o)}),[r]),j=(0,l.useCallback)((function(n,e){"dblclick"!==e.type?v(n):x(n,p)}),[x,p,v]);return(0,b.jsxs)("div",{className:S()(d.Z.dialog,H.wrapper),children:[(0,b.jsxs)("div",{style:{display:"flex",gap:"10px"},children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{children:"Keycode"}),(0,b.jsx)(un.Z,{className:H.previewKeycode,selectable:!1,children:(0,b.jsx)(cn.Z,{node:g.params[0],onSelect:function(){}})})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{children:"Modifiers"}),(0,b.jsx)(ln,{selected:p,implicit:(null==y?void 0:y.modifiers)||[],onChange:f})]})]}),(0,b.jsx)("h3",{children:"Available Keycodes"}),(0,b.jsx)(h.Z,{choices:C,initialQuery:null==y?void 0:y.code,searchKeys:["code","symbol"],renderResults:function(n){return n&&(0,b.jsx)(A.Z,{results:n,onSelect:j,renderResult:mn})}}),(0,b.jsx)(An.Z,{className:H.quickCloseTip,children:"Double-click to select and close the dialog"}),(0,b.jsxs)("div",{style:{marginTop:"10px",textAlign:"center"},children:[(0,b.jsx)(B.Z,{disabled:!(null!=y&&y.code),onClick:function(){x(y,p)},children:"Confirm"}),(0,b.jsx)(B.Z,{onClick:function(){r(e)},secondary:!0,children:"Cancel"})]})]})}yn.propTypes={node:p.le.isRequired,param:a().oneOfType([a().string,a().shape({enum:a().array,raw:a().bool,type:a().string})]).isRequired,searchKey:a().string.isRequired,behaviour:a().object.isRequired,context:a().string.isRequired,onSelect:a().func.isRequired};var vn=yn;function hn(n,e){(null==e||e>n.length)&&(e=n.length);for(var r=0,t=new Array(e);r<e;r++)t[r]=n[r];return t}function Cn(n){n&&(n.focus(),n.select())}function gn(n){var e,r,t=n.value,o=n.param,i=n.onSelect,a=(e=(0,l.useState)(t),r=2,function(n){if(Array.isArray(n))return n}(e)||function(n,e){var r=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=r){var t,o,i,a,l=[],c=!0,s=!1;try{if(i=(r=r.call(n)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(t=i.call(r)).done)&&(l.push(t.value),l.length!==e);c=!0);}catch(n){s=!0,o=n}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return l}}(e,r)||function(n,e){if(n){if("string"==typeof n)return hn(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);return"Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r?Array.from(n):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?hn(n,e):void 0}}(e,r)||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.")}()),c=a[0],s=a[1],u=(0,l.useCallback)((function(n){"Enter"===n.key&&i({code:c})}),[c,i]),A=(0,l.useCallback)((function(n){var e=n.target.value;"number"===o.type&&(e=Number(e),Number.isNaN(e))||s(e)}),[o,s]);return(0,b.jsx)("input",{ref:Cn,type:"text",value:c,onChange:A,onKeyDown:u})}gn.propTypes=f;var xn=r(95998),Bn=r(80736);function jn(n){var e=n.onSelect,r=(0,xn.v9)(Bn.vl),t=(0,l.useMemo)((function(){return r.map((function(n,e){return{code:e,description:n.name||"Layer ".concat(e)}}))}),[r]);return(0,b.jsx)(A.Z,{results:t,onSelect:e,renderResult:function(n){return(0,b.jsxs)(b.Fragment,{children:[n.code,n.description&&(0,b.jsx)("p",{className:d.Z.description,children:n.description})]})}})}jn.propTypes=f;var En=["node","prompt","onUpdate","onCancel"];function wn(n){return wn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},wn(n)}function kn(n,e){var r=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);e&&(t=t.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.push.apply(r,t)}return r}function Sn(n){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?kn(Object(r),!0).forEach((function(e){On(n,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):kn(Object(r)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}))}return n}function On(n,e,r){return(e=function(n){var e=function(n,e){if("object"!==wn(n)||null===n)return n;var r=n[Symbol.toPrimitive];if(void 0!==r){var t=r.call(n,"string");if("object"!==wn(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(n)}(n);return"symbol"===wn(e)?e:String(e)}(e))in n?Object.defineProperty(n,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[e]=r,n}function Zn(n){var e=n.node,r=n.type,t=(n.onCancel,n.onSelect),i=o()(n,["node","value","prompt","param","node","behaviour","context","searchKey"]),a=(0,l.useMemo)((function(){var n;return"params"===r&&"hsb-color-picker"===(null===(n=e.source)||void 0===n?void 0:n.helper)?w:e.slot.raw||"placeholder"===e.slot.type?gn:e.slot.enum?m:"code"===e.slot?vn:"layer"===e.slot?jn:C}),[e,r]);return(0,b.jsx)(a,Sn(Sn({},i),{},{param:e.slot,onSelect:t}))}function Pn(n){var e=n.node,r=n.prompt,t=n.onUpdate,o=n.onCancel,i=function(n,e){if(null==n)return{};var r,t,o=function(n,e){if(null==n)return{};var r,t,o={},i=Object.keys(n);for(t=0;t<i.length;t++)r=i[t],e.indexOf(r)>=0||(o[r]=n[r]);return o}(n,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);for(t=0;t<i.length;t++)r=i[t],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(n,r)&&(o[r]=n[r])}return o}(n,En);return(0,b.jsx)(s.Z,{onDismiss:o,children:(0,b.jsxs)(c.Z,{dismissText:null,classes:[d.Z.dialogWrapper],children:[(0,b.jsx)("h2",{children:r}),(0,b.jsx)(Zn,Sn({onSelect:t,node:e},i))]})})}Zn.propTypes={type:a().string.isRequired,node:p.le.isRequired,behaviour:a().object.isRequired,searchKey:a().string.isRequired,searchThreshold:a().number,onCancel:a().func,onUpdate:a().func,onSelect:a().func.isRequired},Zn.defaultProps={type:"value",value:"",freeForm:!1,searchThreshold:10},Pn.propTypes={type:a().string.isRequired,node:p.le.isRequired,behaviour:a().object.isRequired,prompt:a().string.isRequired,searchKey:a().string.isRequired,searchThreshold:a().number,onCancel:a().func.isRequired,onChange:a().func,onSelect:a().func.isRequired}},56281:function(n,e,r){var t=r(87537),o=r.n(t),i=r(23645),a=r.n(i)()(o());a.push([n.id,"button.pi2Ig8c3Fdh4H2Jpxdo7 {\n display: inline-block;\n cursor: pointer;\n background-color: var(--hover-selection);\n color: white;\n\n font-size: 16px;\n border: none;\n border-radius: 5px;\n padding: 0 5px;\n\n height: 30px;\n line-height: 30px;\n vertical-align: middle;\n}\n\nbutton.Ctpu4E2dZYJ6g8CUGFOF {\n color: var(--fg);\n background-color: transparent;\n}\n\nbutton.pi2Ig8c3Fdh4H2Jpxdo7[disabled] {\n filter: saturate(20%);\n opacity: .5;\n cursor: not-allowed;\n}\n","",{version:3,sources:["webpack://./src/Common/action-button.module.css"],names:[],mappings:"AAAA;EACE,qBAAqB;EACrB,eAAe;EACf,wCAAwC;EACxC,YAAY;;EAEZ,eAAe;EACf,YAAY;EACZ,kBAAkB;EAClB,cAAc;;EAEd,YAAY;EACZ,iBAAiB;EACjB,sBAAsB;AACxB;;AAEA;EACE,gBAAgB;EAChB,6BAA6B;AAC/B;;AAEA;EACE,qBAAqB;EACrB,WAAW;EACX,mBAAmB;AACrB",sourcesContent:["button.action {\n display: inline-block;\n cursor: pointer;\n background-color: var(--hover-selection);\n color: white;\n\n font-size: 16px;\n border: none;\n border-radius: 5px;\n padding: 0 5px;\n\n height: 30px;\n line-height: 30px;\n vertical-align: middle;\n}\n\nbutton.secondary {\n color: var(--fg);\n background-color: transparent;\n}\n\nbutton.action[disabled] {\n filter: saturate(20%);\n opacity: .5;\n cursor: not-allowed;\n}\n"],sourceRoot:""}]),a.locals={action:"pi2Ig8c3Fdh4H2Jpxdo7",secondary:"Ctpu4E2dZYJ6g8CUGFOF"},e.Z=a},528:function(n,e,r){var t=r(87537),o=r.n(t),i=r(23645),a=r.n(i)()(o());a.push([n.id,".sq9i7hQeTeeKuarmO8oA {\n display: inline-block;\n font-size: 70%;\n background: rgba(0, 0, 0, 0.5);\n color: white;\n padding: 4px;\n border-radius: 4px;\n width: max-content;\n}\n","",{version:3,sources:["webpack://./src/Common/tip.module.css"],names:[],mappings:"AAAA;EACE,qBAAqB;EACrB,cAAc;EACd,8BAA8B;EAC9B,YAAY;EACZ,YAAY;EACZ,kBAAkB;EAClB,kBAAkB;AACpB",sourcesContent:[".tip {\n display: inline-block;\n font-size: 70%;\n background: rgba(0, 0, 0, 0.5);\n color: white;\n padding: 4px;\n border-radius: 4px;\n width: max-content;\n}\n"],sourceRoot:""}]),a.locals={tip:"sq9i7hQeTeeKuarmO8oA"},e.Z=a},14409:function(n,e,r){var t=r(87537),o=r.n(t),i=r(23645),a=r.n(i)()(o());a.push([n.id,'.AmikJd3HeM7NGUa8io2A {\n width: 350px;\n}\n\n.AmikJd3HeM7NGUa8io2A h3:first-child {\n margin-top: 0px;\n}\n\n.xCOOsvxL5qQ3kR8ri91A {\n pointer-events: none;\n box-shadow: 0 4px 10px 0px rgba(0, 0, 0, 0.5);\n}\n\n.Ox9WHfAMFuthXo6ZOJoI {\n padding: 2px 0;\n}\n\n.u4uW9U2E0DfbUM9vP9pf {\n text-align: center;\n padding: 0;\n margin: 0;\n}\n\n.u4uW9U2E0DfbUM9vP9pf li {\n display: inline-block;\n font-family: monospace, monospace;\n font-size: 70%;\n margin: 2px;\n border-radius: 2px;\n\n background-color: rgba(0, 0, 0, .5);\n opacity: 0.5;\n color: white;\n}\n.u4uW9U2E0DfbUM9vP9pf li label {\n display: inline-block;\n padding: 4px;\n}\n\n.u4uW9U2E0DfbUM9vP9pf li.YcHSun3PLo8dCb9qIZtc {\n opacity: 1;\n background-color: var(--selection);\n color: white;\n}\n\n.u4uW9U2E0DfbUM9vP9pf li.Ix6wQt3EBFUH2PUcsqgm {\n background-color: var(--error-highlight);\n filter: saturate(50%);\n}\n\n.u4uW9U2E0DfbUM9vP9pf li:not(.Ix6wQt3EBFUH2PUcsqgm):hover {\n opacity: 1;\n background-color: var(--hover-selection);\n}\n\n.u4uW9U2E0DfbUM9vP9pf li.Ix6wQt3EBFUH2PUcsqgm:hover * {\n cursor: not-allowed;\n}\n\n.u4uW9U2E0DfbUM9vP9pf li input[type="checkbox"] {\n margin: 0;\n vertical-align: text-bottom;\n}\n\n.d3hMEDpEkH8H7YLG_NjI {\n width: 100% !important;\n box-sizing: border-box;\n text-align: center;\n}\n\n.gFHbtpz6TuduOVYLXwHu {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.AfAg5j2RJEcA0Zh3z7mX {\n flex-grow: 1;\n}\n\n.YeOANHLbze2W1EGYOFiI {\n font-size: 120%;\n padding: 6px 10px;\n color: white !important;\n background-color: rgba(30, 30, 30, 0.4);\n border-radius: 5px;\n}',"",{version:3,sources:["webpack://./src/EnhancedPickers/Keycode/styles.module.css"],names:[],mappings:"AAAA;EACE,YAAY;AACd;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,oBAAoB;EACpB,6CAA6C;AAC/C;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,kBAAkB;EAClB,UAAU;EACV,SAAS;AACX;;AAEA;EACE,qBAAqB;EACrB,iCAAiC;EACjC,cAAc;EACd,WAAW;EACX,kBAAkB;;EAElB,mCAAmC;EACnC,YAAY;EACZ,YAAY;AACd;AACA;EACE,qBAAqB;EACrB,YAAY;AACd;;AAEA;EACE,UAAU;EACV,kCAAkC;EAClC,YAAY;AACd;;AAEA;EACE,wCAAwC;EACxC,qBAAqB;AACvB;;AAEA;EACE,UAAU;EACV,wCAAwC;AAC1C;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,SAAS;EACT,2BAA2B;AAC7B;;AAEA;EACE,sBAAsB;EACtB,sBAAsB;EACtB,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB;AACrB;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,eAAe;EACf,iBAAiB;EACjB,uBAAuB;EACvB,uCAAuC;EACvC,kBAAkB;AACpB",sourcesContent:['.wrapper {\n width: 350px;\n}\n\n.wrapper h3:first-child {\n margin-top: 0px;\n}\n\n.previewKeycode {\n pointer-events: none;\n box-shadow: 0 4px 10px 0px rgba(0, 0, 0, 0.5);\n}\n\n.allModifiers {\n padding: 2px 0;\n}\n\n.modifiers {\n text-align: center;\n padding: 0;\n margin: 0;\n}\n\n.modifiers li {\n display: inline-block;\n font-family: monospace, monospace;\n font-size: 70%;\n margin: 2px;\n border-radius: 2px;\n\n background-color: rgba(0, 0, 0, .5);\n opacity: 0.5;\n color: white;\n}\n.modifiers li label {\n display: inline-block;\n padding: 4px;\n}\n\n.modifiers li.selected {\n opacity: 1;\n background-color: var(--selection);\n color: white;\n}\n\n.modifiers li.implicit {\n background-color: var(--error-highlight);\n filter: saturate(50%);\n}\n\n.modifiers li:not(.implicit):hover {\n opacity: 1;\n background-color: var(--hover-selection);\n}\n\n.modifiers li.implicit:hover * {\n cursor: not-allowed;\n}\n\n.modifiers li input[type="checkbox"] {\n margin: 0;\n vertical-align: text-bottom;\n}\n\n.quickCloseTip {\n width: 100% !important;\n box-sizing: border-box;\n text-align: center;\n}\n\n.resultItem {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.description {\n flex-grow: 1;\n}\n\n.symbol {\n font-size: 120%;\n padding: 6px 10px;\n color: white !important;\n background-color: rgba(30, 30, 30, 0.4);\n border-radius: 5px;\n}'],sourceRoot:""}]),a.locals={wrapper:"AmikJd3HeM7NGUa8io2A",previewKeycode:"xCOOsvxL5qQ3kR8ri91A",allModifiers:"Ox9WHfAMFuthXo6ZOJoI",modifiers:"u4uW9U2E0DfbUM9vP9pf",selected:"YcHSun3PLo8dCb9qIZtc",implicit:"Ix6wQt3EBFUH2PUcsqgm",quickCloseTip:"d3hMEDpEkH8H7YLG_NjI",resultItem:"gFHbtpz6TuduOVYLXwHu",description:"AfAg5j2RJEcA0Zh3z7mX",symbol:"YeOANHLbze2W1EGYOFiI"},e.Z=a},33151:function(n,e,r){var t=r(87537),o=r.n(t),i=r(23645),a=r.n(i),l=r(2),c=a()(o());c.i(l.Z,"",!0),c.push([n.id,'/* @import "../../Keyboard/Keys/styles.module.css"; */\n\n.'+l.Z.locals.key+" .ElYzpTlttqVbs6KKy9ob {\n align-self: center;\n}\n."+l.Z.locals.extracted+" .ElYzpTlttqVbs6KKy9ob {\n display: inline-block;\n border-bottom: .15em dotted var(--key-color-base);\n box-sizing: border-box;\n padding: 6px .25em;\n}\n\n:hover .ElYzpTlttqVbs6KKy9ob:hover {\n cursor: pointer;\n background-color: var(--hover-selection);\n border-radius: 0;\n border-radius: 3px;\n}\n\n.rdE_HhSUTcg2dK35N2WA {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 1em;\n aspect-ratio: 1;\n border-radius: 2px;\n}\n\n."+l.Z.locals.extracted+" .rdE_HhSUTcg2dK35N2WA {\n display: inline-block;\n}\n","",{version:3,sources:["webpack://./src/EnhancedPickers/RGB/styles.module.css"],names:[],mappings:"AAAA,qDAAqD;;AAMrD;EACE,kBAAkB;AACpB;AACA;EACE,qBAAqB;EACrB,iDAAiD;EACjD,sBAAsB;EACtB,kBAAkB;AACpB;;AAEA;EACE,eAAe;EACf,wCAAwC;EACxC,gBAAgB;EAChB,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,WAAW;EACX,eAAe;EACf,kBAAkB;AACpB;;AAEA;EACE,qBAAqB;AACvB",sourcesContent:['/* @import "../../Keyboard/Keys/styles.module.css"; */\n:import("../../Keyboard/Keys/styles.module.css") {\n key: key;\n extracted: extracted;\n}\n\n.key .colorIconWrapper {\n align-self: center;\n}\n.extracted .colorIconWrapper {\n display: inline-block;\n border-bottom: .15em dotted var(--key-color-base);\n box-sizing: border-box;\n padding: 6px .25em;\n}\n\n:hover .colorIconWrapper:hover {\n cursor: pointer;\n background-color: var(--hover-selection);\n border-radius: 0;\n border-radius: 3px;\n}\n\n.colorIcon {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 1em;\n aspect-ratio: 1;\n border-radius: 2px;\n}\n\n.extracted .colorIcon {\n display: inline-block;\n}\n'],sourceRoot:""}]),c.locals={colorIconWrapper:"ElYzpTlttqVbs6KKy9ob",colorIcon:"rdE_HhSUTcg2dK35N2WA"},e.Z=c},2:function(n,e,r){var t=r(87537),o=r.n(t),i=r(23645),a=r.n(i)()(o());a.push([n.id,'.CoLZlKR1WcMrFd9XhDMC {\n\tposition: relative;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\n\tfont-family: Quicksand, avenir, sans-serif;\n\n\t/* TODO: remove this once I have a wrapper with size defaults */\n\twidth: 65px;\n\theight: 65px;\n\n\tfont-size: 110%;\n\tborder-radius: 5px;\n}\n\n.CoLZlKR1WcMrFd9XhDMC.MZMfZSmJbwqqfp28UUOi { cursor: pointer; }\n.CoLZlKR1WcMrFd9XhDMC.MZMfZSmJbwqqfp28UUOi * {\n\tpointer-events: none;\n\tborder: none;\n\ttext-decoration: none !important;\n}\n\n\n.CT4uGhwl8sY0LwT3p39g:not(:hover) .UNzQquWsoIanOpIN0Q9L,\n.OsA2qRpHoDPcN93o_TUX:not(:hover) .DejZXCvvhJILPbs9Q8ht.UNzQquWsoIanOpIN0Q9L {\n\ttext-decoration: underline wavy var(--error-highlight);\n\ttext-underline-offset: 4px;\n\tcolor: var(--error-highlight);\n\tfont-weight: bold;\n}\n\n.Y5EVt8b0BaXNd9uLxhfh {\n\tposition: absolute;\n\tleft: 2px;\n\tbottom: 2px;\n\tfont-size: 80%;\n\n\tanimation: sYr3l9y03JxO_2AP73jr ease-in-out 1s alternate-reverse;\n}\n.Y5EVt8b0BaXNd9uLxhfh:hover {\n\tcolor: rgb(255, 225, 0);\n}\n\n@keyframes sYr3l9y03JxO_2AP73jr {\n\t0% { color: var(--key-color-base) }\n\t100% { color: var(--key-color-extreme) }\n}\n\n.CoLZlKR1WcMrFd9XhDMC:hover .DejZXCvvhJILPbs9Q8ht,\n.CoLZlKR1WcMrFd9XhDMC:hover .DejZXCvvhJILPbs9Q8ht :before,\n.CoLZlKR1WcMrFd9XhDMC:hover .GliE4Ybwli9X6TNTjD1_ {\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n\ttext-decoration: underline dotted white 2px;\n\ttext-underline-offset: 4px;\n}\n\n\n.huQDP3GbTLThbVIP8wFp {\n\tcolor: var(--key-color-base);\n\tbackground-color: var(--key-bg-base);\n}\n\n.PpMmKpJfEi37Ldw7AeBT {\n\tborder-radius: 100%;\n\tbackground-color: var(--key-bg-base);\n\tcolor: var(--key-color-base);\n}\n\n._F1Vep3btfY3Rl4VJaUQ {\n\twidth: 80px;\n\theight: 80px;\n\tborder-radius: 100%;\n\tbackground-color: var(--key-bg-base);\n\tcolor: var(--key-color-base);\n}\n\n._F1Vep3btfY3Rl4VJaUQ .GliE4Ybwli9X6TNTjD1_ {\n\tleft: 50%;\n\ttransform: translateX(-50%);\n}\n._F1Vep3btfY3Rl4VJaUQ .ApHDJFJGYUaGTgzMeIKZ[data-is-root="true"] {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n._F1Vep3btfY3Rl4VJaUQ .ApHDJFJGYUaGTgzMeIKZ[data-is-root="true"] .mLz637Atn0jZXey6Rx4v:first-child::before {\n\tcontent: "⟳";\n\tfont-size: 140%;\n\tfont-weight: bold;\n}\n._F1Vep3btfY3Rl4VJaUQ .ApHDJFJGYUaGTgzMeIKZ[data-is-root="true"] .mLz637Atn0jZXey6Rx4v:nth-child(2)::before {\n\tcontent: "⟲";\n\tfont-size: 140%;\n\tfont-weight: bold;\n}\n._F1Vep3btfY3Rl4VJaUQ:hover .ApHDJFJGYUaGTgzMeIKZ[data-is-root="true"] .mLz637Atn0jZXey6Rx4v:first-child::before,\n._F1Vep3btfY3Rl4VJaUQ:hover .ApHDJFJGYUaGTgzMeIKZ[data-is-root="true"] .mLz637Atn0jZXey6Rx4v:nth-child(2)::before {\n\tcolor: white;\n}\n\n\n.k2EIh8YlFvp9sBuklSxx {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 50%;\n\ttransform: translateX(-50%);\n\tfont-size: 50%;\n}\n\n.CoLZlKR1WcMrFd9XhDMC:hover, .PpMmKpJfEi37Ldw7AeBT:hover {\n\tbackground-color: var(--hover-selection);\n\ttransition: 200ms;\n\tz-index: 1;\n}\n.CoLZlKR1WcMrFd9XhDMC:hover .DejZXCvvhJILPbs9Q8ht, .CoLZlKR1WcMrFd9XhDMC:hover .GliE4Ybwli9X6TNTjD1_ {\n\tcolor: var(--key-color-hover);\n}\n.CoLZlKR1WcMrFd9XhDMC > .DejZXCvvhJILPbs9Q8ht {\n\tpadding: 5px;\n}\n\n.mLz637Atn0jZXey6Rx4v {\n\tdisplay: inline-flex;\n}\n\n[data-simple="true"] { font-size: 140%; }\n[data-long="true"] { font-size: 60%; }\n\n.ApHDJFJGYUaGTgzMeIKZ:not([data-is-root="true"])::before { content: \'(\'; opacity: 0.4; font-weight: bold; margin: 2px; }\n.ApHDJFJGYUaGTgzMeIKZ:not([data-is-root="true"])::after { content: \')\'; opacity: 0.4; font-weight: bold; margin: 2px; }\n.ApHDJFJGYUaGTgzMeIKZ:not([data-is-root="true"]) .mLz637Atn0jZXey6Rx4v:not(:last-child)::after { content: \',\'; }\n\n.DejZXCvvhJILPbs9Q8ht {\n\tcursor: default;\n\tpadding: 0px 4px;\n\tmargin-left: -2px;\n\tmargin-right: -2px;\n}\n\n.CT4uGhwl8sY0LwT3p39g .DejZXCvvhJILPbs9Q8ht {\n\tcursor: pointer;\n\tdisplay: inline-block;\n\tbox-sizing: content-box;\n\tmin-width: 0.5em;\n\ttext-align: center;\n\tborder-radius: 4px;\n}\n.CoLZlKR1WcMrFd9XhDMC .DejZXCvvhJILPbs9Q8ht:hover {\n\tbackground-color: white !important;\n\tcolor: var(--hover-selection) !important;\n\tborder-radius: 4px !important;\n}\n\n.DejZXCvvhJILPbs9Q8ht * {\n\tpointer-events: none;\n}\n\n.OsA2qRpHoDPcN93o_TUX {\n\t/* display: inline-block; */\n\tmargin: 0 5px;\n\tfont-family: Quicksand, avenir, sans-serif;\n\tfont-size: 110%;\n}\n.OsA2qRpHoDPcN93o_TUX .mLz637Atn0jZXey6Rx4v {\n\talign-items: center;\n\tgap: 6px;\n}\n.OsA2qRpHoDPcN93o_TUX .DejZXCvvhJILPbs9Q8ht {\n\talign-items: center;\n\tpadding: 6px 12px;\n\tborder-radius: 5px;\n\tcolor: var(--key-color-base);\n\tborder-bottom: .15em dotted var(--key-color-base);\n\tborder-radius: 0;\n}\n\n.OsA2qRpHoDPcN93o_TUX .DejZXCvvhJILPbs9Q8ht:hover {\n\tbackground-color: var(--hover-selection);\n\tborder-radius: 5px;\n\tcolor: white;\n\tcursor: pointer;\n}\n\n.DejZXCvvhJILPbs9Q8ht code+*::before {\n\tcontent: "|";\n\tbackground-color: transparent;\n\tmargin: auto 5px;\n}\n\n.GliE4Ybwli9X6TNTjD1_ {\n position: absolute;\n top: 0;\n left: 0;\n font-size: 10px;\n padding: 2px;\n opacity: 0.8;\n}\n\n.GliE4Ybwli9X6TNTjD1_:hover {\n cursor: pointer;\n color: var(--hover-selection) !important;\n background-color: var(--key-bg-hover);\n border-radius: 5px 0;\n opacity: 1;\n}\n',"",{version:3,sources:["webpack://./src/Keyboard/Keys/styles.module.css"],names:[],mappings:"AAAA;CACC,kBAAkB;CAClB,aAAa;CACb,uBAAuB;CACvB,mBAAmB;;CAEnB,0CAA0C;;CAE1C,+DAA+D;CAC/D,WAAW;CACX,YAAY;;CAEZ,eAAe;CACf,kBAAkB;AACnB;;AAEA,6CAAe,eAAe,EAAE;AAChC;CACC,oBAAoB;CACpB,YAAY;CACZ,gCAAgC;AACjC;;;AAGA;;CAEC,sDAAsD;CACtD,0BAA0B;CAC1B,6BAA6B;CAC7B,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;CAClB,SAAS;CACT,WAAW;CACX,cAAc;;CAEd,gEAAiD;AAClD;AACA;CACC,uBAAuB;AACxB;;AAEA;CACC,KAAK,6BAA6B;CAClC,OAAO,gCAAgC;AACxC;;AAEA;;;CAGC,4BAA4B;CAC5B,6BAA6B;CAC7B,2CAA2C;CAC3C,0BAA0B;AAC3B;;;AAGA;CACC,4BAA4B;CAC5B,oCAAoC;AACrC;;AAEA;CACC,mBAAmB;CACnB,oCAAoC;CACpC,4BAA4B;AAC7B;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB,oCAAoC;CACpC,4BAA4B;AAC7B;;AAEA;CACC,SAAS;CACT,2BAA2B;AAC5B;AACA;CACC,aAAa;CACb,sBAAsB;AACvB;AACA;CACC,YAAY;CACZ,eAAe;CACf,iBAAiB;AAClB;AACA;CACC,YAAY;CACZ,eAAe;CACf,iBAAiB;AAClB;AACA;;CAEC,YAAY;AACb;;;AAGA;CACC,kBAAkB;CAClB,MAAM;CACN,SAAS;CACT,2BAA2B;CAC3B,cAAc;AACf;;AAEA;CACC,wCAAwC;CACxC,iBAAiB;CACjB,UAAU;AACX;AACA;CACC,6BAA6B;AAC9B;AACA;CACC,YAAY;AACb;;AAEA;CACC,oBAAoB;AACrB;;AAEA,uBAAuB,eAAe,EAAE;AACxC,qBAAqB,cAAc,EAAE;;AAErC,2DAA6C,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE;AACzG,0DAA4C,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE;AACxG,iGAAoE,YAAY,EAAE;;AAElF;CACC,eAAe;CACf,gBAAgB;CAChB,iBAAiB;CACjB,kBAAkB;AACnB;;AAEA;CACC,eAAe;CACf,qBAAqB;CACrB,uBAAuB;CACvB,gBAAgB;CAChB,kBAAkB;CAClB,kBAAkB;AACnB;AACA;CACC,kCAAkC;CAClC,wCAAwC;CACxC,6BAA6B;AAC9B;;AAEA;CACC,oBAAoB;AACrB;;AAEA;CACC,2BAA2B;CAC3B,aAAa;CACb,0CAA0C;CAC1C,eAAe;AAChB;AACA;CACC,mBAAmB;CACnB,QAAQ;AACT;AACA;CACC,mBAAmB;CACnB,iBAAiB;CACjB,kBAAkB;CAClB,4BAA4B;CAC5B,iDAAiD;CACjD,gBAAgB;AACjB;;AAEA;CACC,wCAAwC;CACxC,kBAAkB;CAClB,YAAY;CACZ,eAAe;AAChB;;AAEA;CACC,YAAY;CACZ,6BAA6B;CAC7B,gBAAgB;AACjB;;AAEA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,eAAe;EACf,YAAY;EACZ,YAAY;AACd;;AAEA;EACE,eAAe;EACf,wCAAwC;EACxC,qCAAqC;EACrC,oBAAoB;EACpB,UAAU;AACZ",sourcesContent:['.key {\n\tposition: relative;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\n\tfont-family: Quicksand, avenir, sans-serif;\n\n\t/* TODO: remove this once I have a wrapper with size defaults */\n\twidth: 65px;\n\theight: 65px;\n\n\tfont-size: 110%;\n\tborder-radius: 5px;\n}\n\n.key.unified { cursor: pointer; }\n.key.unified * {\n\tpointer-events: none;\n\tborder: none;\n\ttext-decoration: none !important;\n}\n\n\n.selectable:not(:hover) .missingValue,\n.extracted:not(:hover) .code.missingValue {\n\ttext-decoration: underline wavy var(--error-highlight);\n\ttext-underline-offset: 4px;\n\tcolor: var(--error-highlight);\n\tfont-weight: bold;\n}\n\n.missing {\n\tposition: absolute;\n\tleft: 2px;\n\tbottom: 2px;\n\tfont-size: 80%;\n\n\tanimation: pulse ease-in-out 1s alternate-reverse;\n}\n.missing:hover {\n\tcolor: rgb(255, 225, 0);\n}\n\n@keyframes pulse {\n\t0% { color: var(--key-color-base) }\n\t100% { color: var(--key-color-extreme) }\n}\n\n.key:hover .code,\n.key:hover .code :before,\n.key:hover .behaviour-binding {\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n\ttext-decoration: underline dotted white 2px;\n\ttext-underline-offset: 4px;\n}\n\n\n.keyDefaultTheme {\n\tcolor: var(--key-color-base);\n\tbackground-color: var(--key-bg-base);\n}\n\n.encoder {\n\tborder-radius: 100%;\n\tbackground-color: var(--key-bg-base);\n\tcolor: var(--key-color-base);\n}\n\n.encoder2 {\n\twidth: 80px;\n\theight: 80px;\n\tborder-radius: 100%;\n\tbackground-color: var(--key-bg-base);\n\tcolor: var(--key-color-base);\n}\n\n.encoder2 .behaviour-binding {\n\tleft: 50%;\n\ttransform: translateX(-50%);\n}\n.encoder2 .params[data-is-root="true"] {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n.encoder2 .params[data-is-root="true"] .param:first-child::before {\n\tcontent: "⟳";\n\tfont-size: 140%;\n\tfont-weight: bold;\n}\n.encoder2 .params[data-is-root="true"] .param:nth-child(2)::before {\n\tcontent: "⟲";\n\tfont-size: 140%;\n\tfont-weight: bold;\n}\n.encoder2:hover .params[data-is-root="true"] .param:first-child::before,\n.encoder2:hover .params[data-is-root="true"] .param:nth-child(2)::before {\n\tcolor: white;\n}\n\n\n.encoderDirection {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 50%;\n\ttransform: translateX(-50%);\n\tfont-size: 50%;\n}\n\n.key:hover, .encoder:hover {\n\tbackground-color: var(--hover-selection);\n\ttransition: 200ms;\n\tz-index: 1;\n}\n.key:hover .code, .key:hover .behaviour-binding {\n\tcolor: var(--key-color-hover);\n}\n.key > .code {\n\tpadding: 5px;\n}\n\n.param {\n\tdisplay: inline-flex;\n}\n\n[data-simple="true"] { font-size: 140%; }\n[data-long="true"] { font-size: 60%; }\n\n.params:not([data-is-root="true"])::before { content: \'(\'; opacity: 0.4; font-weight: bold; margin: 2px; }\n.params:not([data-is-root="true"])::after { content: \')\'; opacity: 0.4; font-weight: bold; margin: 2px; }\n.params:not([data-is-root="true"]) .param:not(:last-child)::after { content: \',\'; }\n\n.code {\n\tcursor: default;\n\tpadding: 0px 4px;\n\tmargin-left: -2px;\n\tmargin-right: -2px;\n}\n\n.selectable .code {\n\tcursor: pointer;\n\tdisplay: inline-block;\n\tbox-sizing: content-box;\n\tmin-width: 0.5em;\n\ttext-align: center;\n\tborder-radius: 4px;\n}\n.key .code:hover {\n\tbackground-color: white !important;\n\tcolor: var(--hover-selection) !important;\n\tborder-radius: 4px !important;\n}\n\n.code * {\n\tpointer-events: none;\n}\n\n.extracted {\n\t/* display: inline-block; */\n\tmargin: 0 5px;\n\tfont-family: Quicksand, avenir, sans-serif;\n\tfont-size: 110%;\n}\n.extracted .param {\n\talign-items: center;\n\tgap: 6px;\n}\n.extracted .code {\n\talign-items: center;\n\tpadding: 6px 12px;\n\tborder-radius: 5px;\n\tcolor: var(--key-color-base);\n\tborder-bottom: .15em dotted var(--key-color-base);\n\tborder-radius: 0;\n}\n\n.extracted .code:hover {\n\tbackground-color: var(--hover-selection);\n\tborder-radius: 5px;\n\tcolor: white;\n\tcursor: pointer;\n}\n\n.code code+*::before {\n\tcontent: "|";\n\tbackground-color: transparent;\n\tmargin: auto 5px;\n}\n\n.behaviour-binding {\n position: absolute;\n top: 0;\n left: 0;\n font-size: 10px;\n padding: 2px;\n opacity: 0.8;\n}\n\n.behaviour-binding:hover {\n cursor: pointer;\n color: var(--hover-selection) !important;\n background-color: var(--key-bg-hover);\n border-radius: 5px 0;\n opacity: 1;\n}\n'],sourceRoot:""}]),a.locals={key:"CoLZlKR1WcMrFd9XhDMC",unified:"MZMfZSmJbwqqfp28UUOi",selectable:"CT4uGhwl8sY0LwT3p39g",missingValue:"UNzQquWsoIanOpIN0Q9L",extracted:"OsA2qRpHoDPcN93o_TUX",code:"DejZXCvvhJILPbs9Q8ht",missing:"Y5EVt8b0BaXNd9uLxhfh",pulse:"sYr3l9y03JxO_2AP73jr","behaviour-binding":"GliE4Ybwli9X6TNTjD1_",keyDefaultTheme:"huQDP3GbTLThbVIP8wFp",encoder:"PpMmKpJfEi37Ldw7AeBT",encoder2:"_F1Vep3btfY3Rl4VJaUQ",params:"ApHDJFJGYUaGTgzMeIKZ",param:"mLz637Atn0jZXey6Rx4v",encoderDirection:"k2EIh8YlFvp9sBuklSxx"},e.Z=a},47881:function(n,e,r){var t=r(87537),o=r.n(t),i=r(23645),a=r.n(i)()(o());a.push([n.id,'.sP2kDRoTZElZUTNHq033 {\n\twidth: 300px;\n\tbackground-color: var(--dialog-bg);\n}\n\n.yaxqlR_GEWJ1lBISL3_N {\n min-width: 300px;\n\tpadding: 15px\n}\n.yaxqlR_GEWJ1lBISL3_N input[type="text"] {\n\tdisplay: block;\n\twidth: 100%;\n\theight: 30px;\n\tline-height: 30px;\n\n\tfont-size: 120%;\n\tmargin: 0;\n\tpadding: 4px;\n\tborder: none;\n\tborder-radius: 4px;\n box-sizing: border-box;\n}\nul.inAS9Qunkf3g5K3xz6o6 {\n\tposition: relative;\n\tfont-family: monospace;\n\tlist-style-position: inside;\n\tlist-style-type: none;\n\tmax-height: 300px;\n\toverflow: scroll;\n\tpadding: 4px;\n margin: 4px 0;\n\tbackground: rgba(0, 0, 0, 0.75);\n\tborder-radius: 4px;\n}\n.inAS9Qunkf3g5K3xz6o6 li {\n\tcursor: pointer;\n\tcolor: white;\n\tpadding: 5px;\n}\n.inAS9Qunkf3g5K3xz6o6 li:hover, .inAS9Qunkf3g5K3xz6o6 li.BL7Cxrn_efblQXY3W1Sw {\n\tbackground: white;\n\tcolor: black;\n}\n.inAS9Qunkf3g5K3xz6o6 li b { color: dodgerblue; }\n.inAS9Qunkf3g5K3xz6o6 li .uld0XaeoQaQJJwp0LT0X {\n\tfont-style: italic;\n\tfont-size: 90%;\n\tmargin: 0;\n\tcolor: gray;\n}\n\n.pqiZQublKXvmnT_ESDxQ {\n font-size: 10px;\n}\n\n.pqiZQublKXvmnT_ESDxQ a {\n color: var(--selection);\n border-bottom: 1px dotted var(--selection);\n cursor: pointer;\n}\n\n.ECUs4g2j1rekP4xxgQDr {\n position: relative;\n}\n.yaxqlR_GEWJ1lBISL3_N .ECUs4g2j1rekP4xxgQDr input {\n padding-left: 30px;\n}\n\n.xDUAgQZeBp0TZSOqCwHm {\n position: absolute;\n\ttop: 50%;\n\tleft: 10px;\n\ttransform: translateY(-50%);\n\tpointer-events: none;\n}\n.eY5zRl49sESLjXmizMEP {\n position: absolute;\n\ttop: 50%;\n\tright: 10px;\n\ttransform: translateY(-50%);\n\tcursor: pointer;\n}',"",{version:3,sources:["webpack://./src/ValuePicker/style.module.css"],names:[],mappings:"AAAA;CACC,YAAY;CACZ,kCAAkC;AACnC;;AAEA;EACE,gBAAgB;CACjB;AACD;AACA;CACC,cAAc;CACd,WAAW;CACX,YAAY;CACZ,iBAAiB;;CAEjB,eAAe;CACf,SAAS;CACT,YAAY;CACZ,YAAY;CACZ,kBAAkB;EACjB,sBAAsB;AACxB;AACA;CACC,kBAAkB;CAClB,sBAAsB;CACtB,2BAA2B;CAC3B,qBAAqB;CACrB,iBAAiB;CACjB,gBAAgB;CAChB,YAAY;EACX,aAAa;CACd,+BAA+B;CAC/B,kBAAkB;AACnB;AACA;CACC,eAAe;CACf,YAAY;CACZ,YAAY;AACb;AACA;CACC,iBAAiB;CACjB,YAAY;AACb;AACA,6BAAgB,iBAAiB,EAAE;AACnC;CACC,kBAAkB;CAClB,cAAc;CACd,SAAS;CACT,WAAW;AACZ;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,uBAAuB;EACvB,0CAA0C;EAC1C,eAAe;AACjB;;AAEA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;AACpB;;AAEA;EACE,kBAAkB;CACnB,QAAQ;CACR,UAAU;CACV,2BAA2B;CAC3B,oBAAoB;AACrB;AACA;EACE,kBAAkB;CACnB,QAAQ;CACR,WAAW;CACX,2BAA2B;CAC3B,eAAe;AAChB",sourcesContent:['.dialog {\n\twidth: 300px;\n\tbackground-color: var(--dialog-bg);\n}\n\n.dialogWrapper {\n min-width: 300px;\n\tpadding: 15px\n}\n.dialogWrapper input[type="text"] {\n\tdisplay: block;\n\twidth: 100%;\n\theight: 30px;\n\tline-height: 30px;\n\n\tfont-size: 120%;\n\tmargin: 0;\n\tpadding: 4px;\n\tborder: none;\n\tborder-radius: 4px;\n box-sizing: border-box;\n}\nul.results {\n\tposition: relative;\n\tfont-family: monospace;\n\tlist-style-position: inside;\n\tlist-style-type: none;\n\tmax-height: 300px;\n\toverflow: scroll;\n\tpadding: 4px;\n margin: 4px 0;\n\tbackground: rgba(0, 0, 0, 0.75);\n\tborder-radius: 4px;\n}\n.results li {\n\tcursor: pointer;\n\tcolor: white;\n\tpadding: 5px;\n}\n.results li:hover, .results li.highlighted {\n\tbackground: white;\n\tcolor: black;\n}\n.results li b { color: dodgerblue; }\n.results li .description {\n\tfont-style: italic;\n\tfont-size: 90%;\n\tmargin: 0;\n\tcolor: gray;\n}\n\n.choices-counter {\n font-size: 10px;\n}\n\n.choices-counter a {\n color: var(--selection);\n border-bottom: 1px dotted var(--selection);\n cursor: pointer;\n}\n\n.searchWrapper {\n position: relative;\n}\n.dialogWrapper .searchWrapper input {\n padding-left: 30px;\n}\n\n.searchIcon {\n position: absolute;\n\ttop: 50%;\n\tleft: 10px;\n\ttransform: translateY(-50%);\n\tpointer-events: none;\n}\n.clearSearchIcon {\n position: absolute;\n\ttop: 50%;\n\tright: 10px;\n\ttransform: translateY(-50%);\n\tcursor: pointer;\n}'],sourceRoot:""}]),a.locals={dialog:"sP2kDRoTZElZUTNHq033",dialogWrapper:"yaxqlR_GEWJ1lBISL3_N",results:"inAS9Qunkf3g5K3xz6o6",highlighted:"BL7Cxrn_efblQXY3W1Sw",description:"uld0XaeoQaQJJwp0LT0X","choices-counter":"pqiZQublKXvmnT_ESDxQ",searchWrapper:"ECUs4g2j1rekP4xxgQDr",searchIcon:"xDUAgQZeBp0TZSOqCwHm",clearSearchIcon:"eY5zRl49sESLjXmizMEP"},e.Z=a},61953:function(n,e,r){var t=r(93379),o=r.n(t),i=r(7795),a=r.n(i),l=r(90569),c=r.n(l),s=r(3565),u=r.n(s),A=r(19216),d=r.n(A),p=r(44589),f=r.n(p),b=r(2),m={};m.styleTagTransform=f(),m.setAttributes=u(),m.insert=c().bind(null,"head"),m.domAPI=a(),m.insertStyleElement=d(),o()(b.Z,m),e.Z=b.Z&&b.Z.locals?b.Z.locals:void 0},45944:function(n,e,r){var t=r(93379),o=r.n(t),i=r(7795),a=r.n(i),l=r(90569),c=r.n(l),s=r(3565),u=r.n(s),A=r(19216),d=r.n(A),p=r(44589),f=r.n(p),b=r(47881),m={};m.styleTagTransform=f(),m.setAttributes=u(),m.insert=c().bind(null,"head"),m.domAPI=a(),m.insertStyleElement=d(),o()(b.Z,m),e.Z=b.Z&&b.Z.locals?b.Z.locals:void 0}}]);
+//# sourceMappingURL=8573.8abff79303ed4e093d95.js.map \ No newline at end of file
diff --git a/8573.8abff79303ed4e093d95.js.map b/8573.8abff79303ed4e093d95.js.map
new file mode 100644
index 0000000..a04add9
--- /dev/null
+++ b/8573.8abff79303ed4e093d95.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"8573.8abff79303ed4e093d95.js","mappings":"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","sources":["webpack:///./src/Common/action-button.module.css?ed83","webpack:///./src/Common/ActionButton.js","webpack:///./src/Common/tip.module.css?4f76","webpack:///./src/Common/Tip.js","webpack:///./src/EnhancedPickers/Keycode/KeycodeBindNode.js","webpack:///./src/EnhancedPickers/Keycode/helpers.js","webpack:///./src/EnhancedPickers/RGB/styles.module.css?270a","webpack:///./src/EnhancedPickers/RGB/HueSatValBindNode.js","webpack:///./src/Keyboard/Binding/BindParamlist.js","webpack:///./src/Keyboard/Binding/BindValue.js","webpack:///./src/Keyboard/Binding/Binding.js","webpack:///./src/Keyboard/Binding/bindPropTypes.js","webpack:///./src/Keyboard/Binding/binding-editor.js","webpack:///./src/Keyboard/Binding/util.js","webpack:///./src/Keyboard/Common/Devicetree/validators.js","webpack:///./src/Keyboard/Keys/Key.js","webpack:///./src/Keyboard/Keys/KeyWrapper.js","webpack:///./src/ValuePicker/util.js","webpack:///./src/ValuePicker/ResultList.js","webpack:///./src/ValuePicker/SearchFilter.js","webpack:///./src/ValuePicker/pickerPropTypes.js","webpack:///./src/ValuePicker/EnumPicker.js","webpack:///./src/ValuePicker/GenericPicker.js","webpack:///./src/EnhancedPickers/RGB/HueSatValPicker.js","webpack:///./src/EnhancedPickers/Keycode/styles.module.css?d2ba","webpack:///./src/EnhancedPickers/Keycode/ModifiersPicker.js","webpack:///./src/EnhancedPickers/Keycode/KeycodePicker.js","webpack:///./src/ValuePicker/RawValuePicker.js","webpack:///./src/ValuePicker/LayerPicker.js","webpack:///./src/ValuePicker/index.js","webpack:///./src/Common/action-button.module.css","webpack:///./src/Common/tip.module.css","webpack:///./src/EnhancedPickers/Keycode/styles.module.css","webpack:///./src/EnhancedPickers/RGB/styles.module.css","webpack:///./src/Keyboard/Keys/styles.module.css","webpack:///./src/ValuePicker/style.module.css","webpack:///./src/Keyboard/Keys/styles.module.css?bf9c","webpack:///./src/ValuePicker/style.module.css?0fff"],"sourcesContent":["\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./action-button.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./action-button.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import styles from './action-button.module.css'\n\nfunction ActionButton ({ children, secondary, className, ...props }) {\n return (\n <button\n className={[\n className,\n styles.action,\n secondary && styles.secondary\n ].join(' ')}\n {...props}\n >\n {children}\n </button>\n )\n}\n\nActionButton.defaultProps = {\n className: ''\n}\n\nexport default ActionButton\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./tip.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./tip.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import Icon from './Icon'\nimport styles from './tip.module.css'\n\nexport default function Tip ({ children, className = '' }) {\n const classNames = [styles.tip, className].join(' ')\n return (\n <div className={classNames}>\n <Icon className=\"fa-flip-horizontal\" name=\"hand-point-up\" /> {children}\n </div>\n )\n}\n","import { Fragment, useCallback, useMemo } from 'react'\nimport compact from 'lodash/compact'\nimport map from 'lodash/map'\n\nimport { NullKey, getSourceTitle, renderSource } from '../../Keyboard/Binding/BindValue'\nimport styles from '../../Keyboard/Keys/styles.module.css'\nimport { treeToSequence } from './helpers'\n\nexport default function KeycodeBindNode ({ node, onSelect, expanded = false }) {\n const handleClick = useCallback(function (event) {\n event.stopPropagation()\n onSelect({ node, type: 'tree' })\n }, [node, onSelect])\n\n const codes = useMemo(() => map(treeToSequence(node), 'source'), [node])\n const key = useMemo(() => codes.at(-1), [codes])\n const codesSerialized = useMemo(() => {\n const mods = codes.slice(0, -1)\n return mods.reduce((serialized, mod) => (\n `${mod.code}(${serialized})`\n ), key?.code)\n }, [codes, key?.code])\n const codeLabels = useMemo(() => (\n codes.map(renderSource)\n .map((label, i) => <Fragment key={i}>{label}</Fragment>)\n .reduce((labels, label) => (\n labels.length === 0\n ? [label]\n : [...labels, ' ', label]\n ), [])\n ), [codes])\n const title = useMemo(() => (\n codes.map(getSourceTitle).join(' + ')\n ), [codes])\n\n const display = useMemo(() => (\n codes.map(code => (\n code\n ? code.description || code.name\n : '⦸'\n )).join(' + ')\n ), [codes])\n\n const missing = (\n node.source?.code === undefined ||\n node.value === undefined ||\n node._isPlaceholder\n )\n\n const content = !expanded\n ? codeLabels\n : (\n <>\n <code>{codesSerialized}</code>\n <span>{display}</span>\n </>\n )\n\n return (\n <span\n className={compact([\n styles.code,\n missing && styles.missingValue\n ]).join(' ')}\n title={title}\n onClick={handleClick}\n >\n {missing ? <NullKey /> : content}\n </span>\n )\n}\n","// `code` values may be \"trees\" in terms of structure, but this is only\n// because of \"modifier macros\" (e.g. `LS(A)`) which may be nested recursively\n// but each level of the tree has at most one child. This means the deepest\n// node is our actual keycode and everything above that is a modifier.\nexport function treeToSequence (tree) {\n return tree.params.length > 0\n ? [tree, ...treeToSequence(tree.params[0])]\n : [tree]\n}\n\nexport function sequenceToTree ([value, ...seq]) {\n const params = seq.length === 0 ? [] : [sequenceToTree(seq)]\n return { value, params }\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { useCallback, useMemo } from 'react'\n\nimport BindValue from '../../Keyboard/Binding/BindValue'\nimport styles from './styles.module.css'\n\nfunction HueSatValBindNode ({ node, onSelect }) {\n const { params: [h, s, b] } = node\n\n // TODO: this component continues to work because of a hack/inconsistency in\n // the &rgb_ug behavior definition's HSB_SEL command. RGB support is really\n // unimportant so this will be left alone for now, but it probably comes down\n // to an issue in correctly setting placeholder HSB values when selecting the\n // applicable command, so that might be something that gets resolved with a\n // proper refactor of the Binding node and its update functionality.\n\n const handleSelectParams = useCallback(event => {\n event?.stopPropagation?.()\n onSelect({ node, type: 'params' })\n }, [node, onSelect])\n\n const isEmpty = useMemo(() => (\n [h, s, b].some(v => v?.value === undefined || v?._isPlaceholder)\n ), [h, s, b])\n\n const bgStyle = useMemo(() => {\n if ([h, s, b].some(v => v?.value === undefined)) {\n return {}\n }\n\n return {\n backgroundColor: `hsl(${h.value}, ${s.value}%, ${b.value}%)`,\n border: `.1em solid hsl(${h.value}, ${s.value}%, ${b.value * 0.75}%)`,\n boxSizing: 'border-box'\n }\n }, [h, s, b])\n\n return (\n <>\n <BindValue node={node} onSelect={onSelect} />\n {!isEmpty\n ? (\n <div onClick={handleSelectParams} className={styles.colorIconWrapper}>\n <div\n className={styles.colorIcon}\n title={bgStyle.backgroundColor}\n style={bgStyle}\n />\n </div>\n )\n : <BindValue node={{}} onSelect={handleSelectParams} />}\n </>\n )\n}\n\nexport default HueSatValBindNode\n","import get from 'lodash/get'\nimport PropTypes from 'prop-types'\nimport { useMemo } from 'react'\n\nimport * as bindPropTypes from './bindPropTypes'\nimport BindValue from './BindValue'\nimport KeycodeBindNode from '../../EnhancedPickers/Keycode/KeycodeBindNode'\nimport HueSatValBindNode from '../../EnhancedPickers/RGB/HueSatValBindNode'\n\nimport styles from '../Keys/styles.module.css'\n\nfunction GenericBindNode ({ node, onSelect, expanded }) {\n return (\n <>\n <BindValue\n node={node}\n onSelect={onSelect}\n expanded={expanded}\n />\n {get(node, 'source.params.length') > 0\n ? (\n <BindParamlist\n slots={node.source.params}\n params={node.params}\n onSelect={onSelect}\n />\n )\n : null}\n </>\n )\n}\n\nexport function BindParam (props) {\n const { node, onSelect, slot, expanded = false } = props\n const BindComponent = useMemo(() => {\n // TODO: allow components to register helpers\n if (node.source?.helper === 'hsb-color-picker') return HueSatValBindNode\n if (slot === 'code') return KeycodeBindNode\n return GenericBindNode\n }, [node, slot])\n\n return (\n <span className={styles.param}>\n <BindComponent node={node} onSelect={onSelect} expanded={expanded} />\n </span>\n )\n}\n\nfunction BindParamlist (props) {\n const { slots, params, onSelect, root, wrapperProps } = props\n return (\n <span\n className={styles.params}\n data-is-root={!!root}\n data-param-count={params.length}\n {...wrapperProps}\n >\n {slots.map((slot, i) => slot.type !== 'placeholder' && (\n <BindParam\n key={i}\n slot={slot}\n node={params[i]}\n onSelect={onSelect}\n />\n ))}\n </span>\n )\n}\n\nBindParamlist.propTypes = {\n slots: PropTypes.arrayOf(bindPropTypes.param).isRequired,\n params: PropTypes.arrayOf(bindPropTypes.bindNode).isRequired,\n source: bindPropTypes.source,\n onSelect: PropTypes.func.isRequired\n}\n\nexport default BindParamlist\n","import compact from 'lodash/compact'\nimport { useCallback } from 'react'\nimport PropTypes from 'prop-types'\n\nimport * as bindPropTypes from './bindPropTypes'\nimport styles from '../Keys/styles.module.css'\nimport Icon from '../../Common/Icon'\n\nexport function NullKey () {\n return <span>⦸</span>\n}\n\nexport function getSourceTitle (source) {\n const description = source?.displayName || source?.description\n return source && `(${source.code}) ${description}`\n}\n\nexport function renderSource (source) {\n const text = source?.symbol || source?.code?.toString()\n const icon = source?.faIcon && <Icon name={source?.faIcon} />\n return icon || text || <NullKey />\n}\n\nexport function Source ({ value, expanded = false }) {\n if (!expanded) {\n return renderSource(value)\n } else if (!value) {\n return <NullKey />\n }\n\n const icon = value.faIcon ? <Icon name={value.faIcon} /> : value.symbol\n const code = value.code?.toString?.()\n const name = value.displayName || value.description || value.name\n\n // TODO: `name` will be falsey for raw values, maybe a RawValueBindNode would\n // be a more appropriate way to handle them.\n\n return (\n <>\n <code>{code}</code>\n {name && <span>{name}</span>} {icon}\n </>\n )\n}\n\nfunction BindValue (props) {\n const { node, onSelect, expanded = false } = props\n const { value, source, _isPlaceholder } = node\n const title = getSourceTitle(source)\n\n const handleClick = useCallback(function (event) {\n event.stopPropagation()\n onSelect({ node })\n }, [node, onSelect])\n\n return (\n <span\n className={compact([\n styles.code,\n (value === undefined || _isPlaceholder) && styles.missingValue\n ]).join(' ')}\n title={title}\n onClick={handleClick}\n >\n {_isPlaceholder ? <NullKey /> : <Source value={source} expanded={expanded} />}\n </span>\n )\n}\n\nBindValue.propTypes = {\n node: bindPropTypes.bindNode.isRequired,\n onSelect: PropTypes.func.isRequired\n}\n\nexport default BindValue\n","import compact from 'lodash/compact'\nimport PropTypes from 'prop-types'\n\nimport useBindingEditor from './binding-editor'\n\nimport BindParamlist from './BindParamlist'\nimport * as bindPropTypes from './bindPropTypes'\nimport {\n createPromptMessage,\n isSimple,\n isComplex\n} from './util'\nimport styles from '../Keys/styles.module.css'\n\nimport Icon from '../../Common/Icon'\nimport ValuePicker from '../../ValuePicker'\n\nfunction Binding (props) {\n const { context = 'none', hideBehaviour, value, params, paramIndex, onUpdate } = props\n const [\n { behavior, behaviorParams, bindTree, bindTreeParams, editing, invalid },\n { selectNodeForEditing, clearEditing, handleUpdateBindValue }\n ] = useBindingEditor({ value, params }, paramIndex, onUpdate)\n\n return (\n <>\n {behavior && !hideBehaviour\n ? (\n <span\n className={compact([\n styles['behaviour-binding'],\n !bindTree.source?.code && styles.missingValue\n ]).join(' ')}\n onClick={() => selectNodeForEditing({ node: bindTree })}\n >\n {bindTree.source?.code || '⦸'}\n </span>\n )\n : null}\n {invalid && (\n <Icon\n name=\"warning\"\n className={styles.missing}\n title=\"Binding has missing value(s)\"\n />\n )}\n <BindParamlist\n root={true}\n slots={behaviorParams}\n params={bindTreeParams}\n onSelect={selectNodeForEditing}\n wrapperProps={{\n 'data-simple': isSimple(bindTree),\n 'data-long': isComplex(bindTree, behaviorParams)\n }}\n />\n {editing && (\n <ValuePicker\n node={editing.node}\n type={editing.type}\n behaviour={behavior}\n context={context}\n prompt={createPromptMessage(editing.node.slot)}\n searchKey=\"code\"\n onSelect={handleUpdateBindValue}\n onCancel={clearEditing}\n />\n )}\n </>\n )\n}\n\nBinding.propTypes = {\n context: PropTypes.string,\n hideBehaviour: PropTypes.bool.isRequired,\n value: bindPropTypes.value.isRequired,\n params: PropTypes.arrayOf(bindPropTypes.node),\n onUpdate: PropTypes.func.isRequired\n}\n\nBinding.defaultProps = {\n hideBehaviour: false\n}\n\nexport default Binding\n","import PropTypes from 'prop-types'\n\nexport const enumOption = PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.shape({\n name: PropTypes.string,\n type: PropTypes.string,\n description: PropTypes.string,\n code: PropTypes.any\n })\n])\n\nexport const param = PropTypes.oneOfType([\n PropTypes.oneOf(['code', 'layer']),\n PropTypes.shape({ type: PropTypes.oneOf(['placeholder']) }),\n PropTypes.shape({\n enum: PropTypes.arrayOf(enumOption),\n raw: PropTypes.bool,\n name: PropTypes.string,\n type: PropTypes.string.isRequired\n })\n])\n\nexport const params = PropTypes.arrayOf(param)\nexport const value = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n])\nexport const source = PropTypes.shape({\n params,\n code: value.isRequired,\n description: PropTypes.string,\n symbol: PropTypes.string,\n faIcon: PropTypes.string\n})\n\nconst nodeShape = { value, source }\nnodeShape.params = PropTypes.arrayOf(PropTypes.shape(nodeShape))\n\nexport const node = PropTypes.shape(nodeShape)\n\nexport const bindNode = node\n\nexport const index = PropTypes.arrayOf(node)\n","import cloneDeep from 'lodash/cloneDeep'\nimport get from 'lodash/get'\nimport pick from 'lodash/pick'\nimport { useCallback, useContext, useMemo, useState } from 'react'\n\nimport { SearchContext } from '../../providers'\nimport { createPromptMessage, hasErrors, hydrateTree, makeIndex } from './util'\nimport { getBindingSlots } from '../../keymap'\n\nexport default function useBindingEditor (binding, paramIndex, onUpdate) {\n const context = useContext(SearchContext)\n const { sources } = context\n const [editing, setEditing] = useState(null)\n\n const bindTree = useMemo(() => (\n hydrateTree(binding, context)\n ), [binding, context])\n\n const paramSlice = paramIndex === undefined ? [0] : [paramIndex, paramIndex + 1]\n\n const bind = binding.value\n const behavior = get(sources.behaviours, bind, {})\n const behaviorParams = getBindingSlots(binding, context.behaviorParameters).slice(...paramSlice)\n const bindTreeParams = bindTree.params.slice(...paramSlice)\n const index = makeIndex(bindTree)\n const invalid = useMemo(() => hasErrors(index), [index])\n\n const selectNodeForEditing = useCallback(({ node, type = 'value' }) => {\n const prompt = createPromptMessage(node.slot, node, type)\n setEditing({ node, type, nodeIndex: index.indexOf(node), prompt })\n }, [index, setEditing])\n\n const clearEditing = useCallback(() => setEditing(null), [setEditing])\n\n const handleUpdateTree = useCallback(({ value, params }) => {\n const { nodeIndex } = editing\n const updated = cloneDeep(bindTree)\n const index = makeIndex(updated)\n const targetNode = index[nodeIndex]\n\n // Assume these are all fine?\n targetNode.value = value\n targetNode.params = params\n delete targetNode._isPlaceholder\n\n index.forEach(node => {\n delete node.source\n delete node.slot\n })\n\n onUpdate(pick(updated, ['value', 'params']))\n clearEditing()\n }, [bindTree, editing, onUpdate, clearEditing])\n\n const handleUpdateParams = useCallback(params => {\n const { nodeIndex } = editing\n const updated = cloneDeep(bindTree)\n const index = makeIndex(updated)\n const targetNode = index[nodeIndex]\n\n // Assume these are all fine?\n targetNode.params = params\n\n index.forEach(node => {\n delete node.source\n delete node.slot\n })\n\n onUpdate(pick(updated, ['value', 'params']))\n clearEditing()\n }, [bindTree, editing, onUpdate, clearEditing])\n\n const handleUpdateNode = useCallback((node, nodeIndex, source) => {\n const updated = cloneDeep(bindTree)\n const index = makeIndex(updated)\n const targetNode = index[nodeIndex]\n\n // Attempt to cast raw inputs to non-string type if such a type is defined\n // and I've specifically accounted for casting to that type here.\n // No error handling yet, so...\n if (node.slot.raw) {\n if (node.slot.type === 'number') {\n source.code = Number(source.code)\n }\n } else if (node.slot.enum) {\n const oldAdditionalParams = targetNode.source?.additionalParams?.length || 0\n const newAdditionalParams = source.additionalParams?.length || 0\n // When switching from a command parameter that has additionalParams to\n // another command parameter that has fewer (or none), the selected values\n // are still present in the tree but aren't rendered. Therefore it's still\n // possible for the unused values to be saved when the keymap is written.\n // This technically doesn't cause errors because behaviours are written to\n // ignore these values, but it can be confusing.\n // TODO: look into actually making sure that we aren't sending these\n // phantom values when submitting keymap state.\n if (newAdditionalParams < oldAdditionalParams) {\n // technically this could be anywhere in the tree but lets assume for\n // convenience that switching a \"command\" param can only happen to the\n // first child of the behavior bind.\n const tree = index[0]\n tree.params.splice(1, tree.params.length - 1)\n index.splice(2, index.length - 1)\n }\n }\n\n targetNode.value = source.code\n delete targetNode._isPlaceholder\n\n const newParams = targetNode.slot === 'behaviour'\n ? (context.behaviorParameters[targetNode.value] || [])\n : (source?.params || [])\n\n // Clear parameters if the new source params list doesn't match the old one.\n // TODO: instead of a reduce and iterating through the entire array in all\n // cases, this could look for the first index where both params lists don't\n // match and then splice targetNode.params from there\n targetNode.params = newParams.reduce((params, p, i) => {\n if (targetNode.source?.params?.[i] === newParams[i]) {\n params.push(targetNode.params[i])\n } else {\n params.push({ value: 0, _isPlaceholder: true })\n }\n return params\n }, [])\n\n index.forEach(node => {\n delete node.source\n delete node.slot\n })\n\n onUpdate(pick(updated, ['value', 'params', '_isPlaceholder']))\n clearEditing()\n }, [bindTree, context.behaviorParameters, onUpdate, clearEditing])\n\n const handleUpdateBindValue = useCallback(source => {\n if (editing.type === 'tree') {\n return handleUpdateTree(source)\n }\n\n if (editing.type === 'params') {\n return handleUpdateParams(source) // ugh\n }\n\n const { node, nodeIndex } = editing\n handleUpdateNode(node, nodeIndex, source)\n }, [editing, handleUpdateNode, handleUpdateTree, handleUpdateParams])\n\n const state = useMemo(\n () => ({\n behavior,\n behaviorParams,\n bindTree,\n bindTreeParams,\n editing,\n index,\n invalid\n }),\n [behavior, behaviorParams, bindTree, bindTreeParams, editing, index, invalid]\n )\n\n const callbacks = useMemo(\n () => ({\n clearEditing,\n handleUpdateBindValue,\n handleUpdateNode,\n selectNodeForEditing\n }),\n [\n selectNodeForEditing,\n clearEditing,\n handleUpdateBindValue,\n handleUpdateNode\n ]\n )\n\n return useMemo(() => ([state, callbacks]), [state, callbacks])\n}\n","import find from 'lodash/find'\nimport get from 'lodash/get'\n\nimport { getBindingSlots } from '../../keymap'\n\nexport function makeIndex (tree) {\n const index = []\n ;(function traverse (tree) {\n const params = tree.params || []\n index.push(tree)\n params.forEach(traverse)\n })(tree)\n\n return index\n}\n\nexport function isSimple (normalized) {\n const [first] = normalized.params\n const symbol = get(first, 'source.symbol', get(first, 'source.code', ''))\n const hasIcon = !!get(first, 'source.faIcon')\n const shortSymbol = hasIcon || symbol.length === 1\n const singleParam = normalized.params.length === 1\n return singleParam && shortSymbol\n}\n\nexport function isComplex (normalized, behaviourParams) {\n const [first] = normalized.params\n const symbol = get(first, 'source.symbol', get(first, 'value', ''))\n const hasIcon = !!get(first, 'source.faIcon')\n const isLongSymbol = !hasIcon && symbol.length > 4\n const isMultiParam = behaviourParams.length > 1\n const isNestedParam = get(first, 'params', []).length > 0\n\n return isLongSymbol || isMultiParam || isNestedParam\n}\n\nexport function createPromptMessage (param, node, type) {\n const promptMapping = {\n layer: 'Assign layer',\n mod: 'Assign modifier',\n behaviour: 'Assign behavior',\n keycode: 'Assign key code'\n }\n\n // This currently only applies to &rgb_ug RGB_COLOR_HSB(...) because it is\n // technically a single binding cell in the devicetree and we treat it as\n // multiple parameters.\n if (type === 'params') {\n const name = node.source?.displayName || node.source?.name\n if (name) {\n return name\n }\n }\n\n if (param.name) {\n return `Assign ${param.name}`\n }\n\n if (param.raw) {\n return 'Enter raw value'\n }\n\n return (\n promptMapping[param] ||\n promptMapping.keycode\n )\n}\n\nexport function hasErrors (index) {\n // The first value in the list is the behaviour. If it doesn't have a source\n // that means that we don't have details about what it is.\n if (!index[0].source.code) {\n return true\n }\n\n for (const value of index) {\n if ((value.source?.params || []).length > value.params.length) {\n return true\n }\n\n if (value.params.some(v => (\n v.value === undefined ||\n v.value === '' ||\n v.source === undefined ||\n (v._isPlaceholder && v.slot?.type !== 'placeholder')\n ))) {\n return true\n }\n }\n}\n\nexport function hydrateTree (binding, context) {\n const { value, params } = binding\n const { sources, mergedGlyphs, behaviorParameters } = context\n\n const bind = value\n const behaviour = get(sources.behaviours, bind, {})\n const behaviourParams = getBindingSlots(binding, behaviorParameters)\n\n function getSourceValue (value, as) {\n value = get(sources.defines, value, value)\n if (!Number.isNaN(Number(value))) {\n value = Number(value)\n }\n if (as.raw) return { code: value }\n if (as.enum) {\n // TODO: this doesn't seem to handle type mismatches like `1` vs `\"1\"` but\n // in fairness this has probably been true for some time.\n // TODO: rewrite all behavior enums to wrap choices in objects instead of\n // handling object and raw value formats.\n return (\n find(as.enum, { code: value }) ||\n find(as.enum, value) ||\n { code: value }\n )\n }\n // TODO: Shouldn't need to render placeholder\n if (as.type === 'placeholder') return { code: value }\n return sources?.[as]?.[value]\n }\n\n function hydrateNode (node, slot) {\n if (!node) {\n return { value: undefined, slot, params: [] }\n }\n const { value, params, _isPlaceholder } = node\n const source = getSourceValue(value, slot)\n\n return {\n value,\n _isPlaceholder,\n slot,\n source: {\n ...source,\n symbol: get(mergedGlyphs, [source?.name, 'symbol'], source?.symbol),\n faIcon: get(mergedGlyphs, [source?.name, 'faIcon'], source?.faIcon)\n },\n params: get(source, 'params', []).map((slot, i) => (\n hydrateNode(params[i], slot)\n ))\n }\n }\n\n return {\n value,\n slot: 'behaviour',\n source: behaviour,\n params: behaviourParams.map((slot, i) => (\n hydrateNode(params[i], slot)\n ))\n }\n}\n","\nexport function validateDevicetreeNodeName (value) {\n if (value.length > 31) {\n return 'maximum length: 31'\n } else if (value.match(/^[^a-zA-Z]/)) {\n return 'first character must be a letter'\n } else if (value.match(/[^a-zA-Z0-9,._+-]/)) {\n return 'valid characters: a-zA-Z0-9,._+-'\n }\n}\n\nexport const validateDevicetreeIdentifier = validateDevicetreeNodeName\n\nexport function validateDevicetreeLabel (value) {\n if (value.length > 31) {\n return 'maximum length: 31'\n } else if (value.match(/^[^a-zA-Z]/)) {\n return 'first character must be a letter'\n } else if (value.match(/[^a-zA-Z0-9_]/)) {\n return 'valid characters: a-zA-Z0-9_'\n }\n}\n\nexport function validateDevicetreeReference (value) {\n if (value.length > 31) {\n return 'maximum length: 31'\n } else if (value.match(/^[^&]/)) {\n return 'must start with \"&\"'\n } else if (value.match(/^&[^a-zA-Z]/)) {\n return 'first character must be a letter'\n } else if (value.slice(1).match(/[^a-zA-Z0-9_]/)) {\n return 'valid characters: a-zA-Z0-9_'\n }\n}\n","import PropTypes from 'prop-types'\n\nimport KeyWrapper from './KeyWrapper'\n\nimport Binding from '../Binding/Binding'\nimport * as bindPropTypes from '../Binding/bindPropTypes'\n\nfunction Key (props) {\n const { context, value, params, keyWrapperProps = {}, onUpdate } = props\n\n return (\n <KeyWrapper {...keyWrapperProps}>\n <Binding\n context={context}\n value={value}\n params={params}\n onUpdate={onUpdate}\n />\n </KeyWrapper>\n )\n}\n\nKey.propTypes = {\n label: PropTypes.string,\n value: bindPropTypes.value.isRequired,\n params: PropTypes.arrayOf(bindPropTypes.node),\n onUpdate: PropTypes.func.isRequired\n}\n\nexport default Key\n","import compact from 'lodash/compact'\nimport styles from './styles.module.css'\n\nfunction KeyWrapper (props) {\n const {\n children,\n selectable = true,\n themeClass = undefined,\n className = '',\n ...rest\n } = props\n\n const classes = compact([\n styles.key,\n selectable && styles.selectable,\n themeClass ?? styles.keyDefaultTheme,\n className\n ]).join(' ')\n\n return (\n <div className={classes} {...rest}>\n {children}\n </div>\n )\n}\n\nexport default KeyWrapper\n","\nexport const cycle = (array, index, step = 1) => {\n const next = (index + step) % array.length\n return next < 0 ? array.length + next : next\n}\n\nexport function scrollIntoViewIfNeeded (element, alignToTop) {\n const scroll = element.offsetParent.scrollTop\n const height = element.offsetParent.offsetHeight\n const top = element.offsetTop\n const bottom = top + element.scrollHeight\n\n if (top < scroll || bottom > scroll + height) {\n element.scrollIntoView(alignToTop)\n }\n}\n","import PropTypes from 'prop-types'\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nimport { cycle, scrollIntoViewIfNeeded } from './util'\nimport style from './style.module.css'\n\nfunction ResultList ({ results, onSelect, renderResult }) {\n const [cursorIndex, setCursorIndex] = useState(0)\n const listRef = useRef(null)\n\n const moveCursor = useCallback(function (initial, offset) {\n if (results.length === 0) {\n setCursorIndex(null)\n return\n } else if (offset === undefined) {\n setCursorIndex(initial)\n return\n }\n\n const next = cursorIndex !== null\n ? cycle(results, cursorIndex, offset)\n : initial\n\n const selector = `li[data-result-index=\"${next}\"]`\n const element = listRef.current?.querySelector(selector)\n\n scrollIntoViewIfNeeded(element, false)\n setCursorIndex(next)\n }, [results, cursorIndex, setCursorIndex])\n\n const handleHighlightNext = useCallback(function () {\n moveCursor(0, 1)\n }, [moveCursor])\n\n const handleHightightPrev = useCallback(function () {\n moveCursor(results.length - 1, -1)\n }, [moveCursor, results])\n\n const handleSelectActive = useCallback(function (event) {\n onSelect(results[cursorIndex], event)\n }, [results, cursorIndex, onSelect])\n\n const handleKeyDown = useCallback(function (event) {\n // If the focus is on a button (most likely confirm/cancel) then we don't\n // want to prevent 'Enter' from triggering that button. This isn't really\n // a great solution but it's convenient in the short term until I can be\n // bothered to refactor things.\n if (event.target.nodeName === 'BUTTON') {\n return\n }\n\n const mapping = {\n ArrowDown: handleHighlightNext,\n ArrowUp: handleHightightPrev,\n Enter: handleSelectActive\n }\n\n const action = mapping[event.key]\n if (action) {\n event.preventDefault()\n event.stopPropagation()\n action(event)\n }\n }, [\n handleHighlightNext,\n handleHightightPrev,\n handleSelectActive\n ])\n\n useEffect(() => {\n document.body.addEventListener('keydown', handleKeyDown)\n return () => document.body.removeEventListener('keydown', handleKeyDown)\n }, [listRef, handleKeyDown])\n\n return (\n <ul className={style.results} ref={listRef}>\n {results.map((result, i) => (\n <li\n key={i}\n className={cursorIndex === i ? style.highlighted : ''}\n title={result.description}\n data-result-index={i}\n onClick={event => onSelect(result, event)}\n onDoubleClick={event => onSelect(result, event)}\n onMouseOver={() => moveCursor(i)}\n >\n {renderResult(result, i)}\n </li>\n ))}\n </ul>\n )\n}\n\nResultList.propTypes = {\n results: PropTypes.array.isRequired,\n onSelect: PropTypes.func.isRequired,\n renderResult: PropTypes.func.isRequired\n}\n\nexport default ResultList\n","import fuzzysort from 'fuzzysort'\nimport PropTypes from 'prop-types'\nimport { useCallback, useMemo, useState } from 'react'\n\nimport Icon from '../Common/Icon'\nimport style from './style.module.css'\n\nconst searchThreshold = 10\n\nfunction focusInput (node) {\n if (node) {\n node.focus()\n node.select()\n }\n}\n\nconst SearchFilter = ({ choices, searchKey, searchKeys, renderResults, initialQuery }) => {\n const useSearch = !choices.length || choices.length > searchThreshold\n const [query, setQuery] = useState(initialQuery)\n const results = useMemo(() => {\n if (!query || !useSearch) {\n return choices\n }\n\n const options = searchKeys ? { keys: searchKeys, limit: 30 } : { key: searchKey, limit: 30 }\n const filtered = fuzzysort.go(query, choices, options)\n return filtered.map(result => ({\n ...result.obj,\n search: result\n }))\n }, [useSearch, query, choices, searchKey, searchKeys])\n\n const handleKeyPress = useCallback(event => {\n setQuery(event.target.value)\n }, [setQuery])\n\n return (\n <>\n {useSearch && (\n <div className={style.searchWrapper}>\n <input\n ref={focusInput}\n type=\"text\"\n value={query}\n onChange={handleKeyPress}\n />\n <Icon className={style.searchIcon} name=\"search\" />\n <Icon\n className={style.clearSearchIcon}\n name=\"times\"\n onClick={() => setQuery('')}\n />\n </div>\n )}\n {renderResults(results)}\n </>\n )\n}\n\nSearchFilter.propTypes = {\n choices: PropTypes.array.isRequired,\n searchKey: PropTypes.string,\n initialQuery: PropTypes.string.isRequired,\n renderResults: PropTypes.func.isRequired\n}\n\nSearchFilter.defaultProps = {\n initialQuery: ''\n}\n\nexport default SearchFilter\n","import PropTypes from 'prop-types'\nimport { bindNode } from '../Keyboard/Binding/bindPropTypes'\n\nexport const pickerPropTypes = {\n onCancel: PropTypes.func,\n\n /**\n * For multi-step selections, this just updates the parent component\n */\n onChange: PropTypes.func,\n\n /**\n * For single-step selections or other events that \"complete\" the interaction\n * this callback cues the parent to close the picker.\n */\n onSelect: PropTypes.func.isRequired,\n node: bindNode.isRequired,\n searchKey: PropTypes.string.isRequired,\n searchThreshold: PropTypes.number\n}\n","import { useContext, useMemo } from 'react'\n\nimport { SearchContext } from '../providers'\nimport ResultList from './ResultList'\nimport style from './style.module.css'\nimport { pickerPropTypes } from './pickerPropTypes'\n\nexport default function EnumPicker (props) {\n const { getSearchTargets } = useContext(SearchContext)\n const { param, onSelect } = props\n\n const choices = useMemo(() => (\n getSearchTargets(param)\n ), [getSearchTargets, param])\n\n return (\n <ResultList\n results={choices}\n onSelect={onSelect}\n renderResult={result => (\n <>\n {result.code}\n {result.description && (\n <p className={style.description}>\n {result.description}\n </p>\n )}\n </>\n )}\n />\n )\n}\n\nEnumPicker.propTypes = pickerPropTypes\n","import fuzzysort from 'fuzzysort'\nimport { useContext, useMemo } from 'react'\n\nimport { SearchContext } from '../providers'\nimport ResultList from './ResultList'\nimport SearchFilter from './SearchFilter'\nimport style from './style.module.css'\nimport { pickerPropTypes } from './pickerPropTypes'\n\nexport default function GenericPicker (props) {\n const { searchKey, node, param, behaviour, context, onSelect } = props\n const { getSearchTargets } = useContext(SearchContext)\n\n const choices = useMemo(() => {\n return getSearchTargets(param, behaviour.code, context)\n }, [getSearchTargets, param, behaviour, context])\n\n return (\n <SearchFilter\n choices={choices}\n initialQuery={node.value || ''}\n searchKey={searchKey}\n renderResults={results => results && (\n <ResultList\n results={results}\n onSelect={onSelect}\n renderResult={renderSearchResult}\n />\n )}\n />\n )\n}\n\nGenericPicker.propTypes = pickerPropTypes\n\nfunction renderSearchResult (result) {\n const title = result.search\n ? (\n <span>\n {fuzzysort.highlight(result.search, (v, i) => (\n <b key={i}>{v}</b>\n ))}\n </span>\n )\n : <span>{result.code}</span>\n\n const description = result.displayName || result.description\n\n return (\n <>\n {title}\n {description && (\n <p className={style.description}>\n {description}\n </p>\n )}\n </>\n )\n}\n","import PropTypes from 'prop-types'\nimport { useCallback, useState } from 'react'\nimport { HslColorPicker } from 'react-colorful'\n\nimport ActionButton from '../../Common/ActionButton'\n\nfunction HSBPicker (props) {\n const { node, onSelect } = props\n const [hsl, setHsl] = useState({\n h: Number(node.params[0].value),\n s: Number(node.params[1].value),\n l: Number(node.params[2].value)\n })\n\n const handleConfirm = useCallback(() => {\n onSelect([\n { value: Math.round(hsl.h) },\n { value: Math.round(hsl.s) },\n { value: Math.round(hsl.l) }\n ])\n }, [hsl, onSelect])\n\n return (\n <>\n <div style={{ display: 'flex', justifyContent: 'center' }}>\n <HslColorPicker\n color={hsl}\n onChange={setHsl}\n />\n </div>\n <p style={{ textAlign: 'center' }}>\n <ActionButton onClick={handleConfirm}>Confirm</ActionButton>\n </p>\n </>\n )\n}\n\nHSBPicker.propTypes = {\n value: PropTypes.any.isRequired,\n prompt: PropTypes.string.isRequired,\n param: PropTypes.oneOfType([\n PropTypes.shape({\n enum: PropTypes.array,\n raw: PropTypes.bool,\n type: PropTypes.string\n })\n ]).isRequired,\n onSelect: PropTypes.func.isRequired\n}\n\nHSBPicker.defaultProps = {\n value: ''\n}\n\nexport default HSBPicker\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import without from 'lodash/without'\nimport classNames from 'classnames'\nimport PropTypes from 'prop-types'\nimport style from './styles.module.css'\n\nconst leftModifiers = ['LS', 'LA', 'LC', 'LG']\nconst rightModifiers = ['RS', 'RA', 'RC', 'RG']\n\nconst modifiersMap = {\n LS: { short: 'LSHFT', full: 'Left Shift' },\n LC: { short: 'LCTRL', full: 'Left Control' },\n LA: { short: 'LALT', full: 'Left Alt' },\n LG: { short: 'LGUI', full: 'Left Gui' },\n RS: { short: 'RSHFT', full: 'Right Shift' },\n RC: { short: 'RCTRL', full: 'Right Control' },\n RA: { short: 'RALT', full: 'Right Alt' },\n RG: { short: 'RGUI', full: 'Right Gui' }\n}\n\nconst noDeselectMessage = ' (This modifier is implicitly used by the active keycode and cannot be de-selected)'\n\nfunction ModifiersRow ({ selected, implicit, row, onChange }) {\n return (\n <ul className={style.modifiers}>\n {row.map((mod, i) => (\n <li\n key={i}\n title={modifiersMap[mod].full + (implicit.includes(mod) ? noDeselectMessage : '')}\n className={classNames({\n [style.selected]: selected.includes(mod),\n [style.implicit]: implicit.includes(mod)\n })}\n >\n <label>\n <input\n type=\"checkbox\"\n checked={(\n selected.includes(mod) ||\n implicit.includes(mod)\n )}\n disabled={implicit.includes(mod)}\n onChange={e => {\n onChange(\n e.target.checked\n ? [...selected, mod]\n : without(selected, mod)\n )\n }}\n /> {(\n modifiersMap[mod].short\n )}\n </label>\n </li>\n ))}\n </ul>\n )\n}\n\nfunction ModifiersPicker ({ selected, implicit, onChange }) {\n return (\n <div className={style.allModifiers}>\n <ModifiersRow row={leftModifiers} selected={selected} implicit={implicit} onChange={onChange} />\n <ModifiersRow row={rightModifiers} selected={selected} implicit={implicit} onChange={onChange} />\n </div>\n )\n}\n\nModifiersPicker.propTypes = {\n selected: PropTypes.arrayOf(PropTypes.string),\n implicit: PropTypes.arrayOf(PropTypes.string)\n}\n\nexport default ModifiersPicker\n","import classNames from 'classnames'\nimport fuzzysort from 'fuzzysort'\nimport compact from 'lodash/compact'\nimport map from 'lodash/map'\nimport PropTypes from 'prop-types'\nimport { useCallback, useContext, useMemo, useState } from 'react'\n\nimport { treeToSequence, sequenceToTree } from './helpers'\nimport { SearchContext } from '../../providers'\nimport { bindNode } from '../../Keyboard/Binding/bindPropTypes'\n\nimport ResultList from '../../ValuePicker/ResultList'\nimport resultListStyle from '../../ValuePicker/style.module.css'\nimport SearchFilter from '../../ValuePicker/SearchFilter'\nimport ModifiersPicker from './ModifiersPicker'\nimport KeycodeBindNode from './KeycodeBindNode'\nimport { hydrateTree } from '../../Keyboard/Binding/util'\nimport KeyWrapper from '../../Keyboard/Keys/KeyWrapper'\nimport ActionButton from '../../Common/ActionButton'\nimport styles from './styles.module.css'\nimport Tip from '../../Common/Tip'\nimport Icon from '../../Common/Icon'\n\nfunction renderSymbol (result) {\n const symbol = result?.symbol\n const icon = result?.faIcon\n\n if (icon) {\n return <Icon name={icon} />\n }\n\n if (symbol && !result.aliases.includes(symbol)) {\n return symbol\n }\n}\n\nfunction renderSearchResult (result) {\n const [titleResult] = result.search || []\n const title = titleResult\n ? <span dangerouslySetInnerHTML={{ __html: fuzzysort.highlight(titleResult) }} />\n : <span>{result.code}</span>\n\n const symbol = renderSymbol(result)\n\n return (\n <div className={styles.resultItem}>\n <div className={styles.description}>\n {title}\n <p className={resultListStyle.description}>{result.description}</p>\n </div>\n {symbol && <div className={styles.symbol}>{symbol}</div>}\n </div>\n )\n}\n\nfunction KeycodePicker ({ node, onSelect, behaviour }) {\n const context = useContext(SearchContext)\n const { getSearchTargets } = context\n\n const codes = useMemo(() => map(treeToSequence(node), 'source'), [node])\n const initialModifiers = codes.length === 1 ? [] : codes.slice(0, -1)\n const [selectedModifiers, setSelectedModifiers] = useState(map(initialModifiers, 'code'))\n const [selectedKeycode, setSelectedKeycode] = useState(codes.at(-1))\n\n const choices = useMemo(() => {\n // bit of a hack; we can't use the search picker to select the \"function\"\n // version of modifier keycodes because they won't end up in the modifiers\n // list and we aren't allowing for population of their parameters.\n // TODO: once this picker becomes the \"standard\" the function macros should\n // not be treated as keycodes.\n const codes = getSearchTargets('code', behaviour.code)\n return codes.filter(code => code.params.length === 0)\n }, [getSearchTargets, behaviour])\n\n // have to hydrate to get merged glyphs\n // hardcoding isn't great but it's the keycode picker so maybe '&kp' is reasonable\n const hydrated = hydrateTree({\n value: '&kp',\n params: [{\n value: selectedKeycode?.code,\n params: selectedKeycode?.params\n }]\n }, context)\n\n const select = useCallback(function (keycode, modifiers) {\n const tree = sequenceToTree(compact([...modifiers, keycode?.code]))\n\n onSelect(tree)\n }, [onSelect])\n\n const handleSelectKeycode = useCallback((result, event) => {\n if (event.type === 'dblclick') {\n select(result, selectedModifiers)\n return\n }\n\n setSelectedKeycode(result)\n }, [select, selectedModifiers, setSelectedKeycode])\n\n function handleConfirm () {\n select(selectedKeycode, selectedModifiers)\n }\n\n function handleCancel () {\n onSelect(node)\n }\n\n return (\n <div className={classNames(resultListStyle.dialog, styles.wrapper)}>\n <div style={{ display: 'flex', gap: '10px' }}>\n <div>\n <h3>Keycode</h3>\n <KeyWrapper className={styles.previewKeycode} selectable={false}>\n <KeycodeBindNode\n node={hydrated.params[0]}\n onSelect={() => {}}\n />\n </KeyWrapper>\n </div>\n <div>\n <h3>Modifiers</h3>\n <ModifiersPicker\n selected={selectedModifiers}\n implicit={selectedKeycode?.modifiers || []}\n onChange={setSelectedModifiers}\n />\n </div>\n </div>\n <h3>Available Keycodes</h3>\n <SearchFilter\n choices={choices}\n initialQuery={selectedKeycode?.code}\n searchKeys={['code', 'symbol']}\n renderResults={results => results && (\n <ResultList\n results={results}\n onSelect={handleSelectKeycode}\n renderResult={renderSearchResult}\n />\n )}\n />\n <Tip className={styles.quickCloseTip}>\n Double-click to select and close the dialog\n </Tip>\n <div style={{ marginTop: '10px', textAlign: 'center' }}>\n <ActionButton disabled={!selectedKeycode?.code} onClick={handleConfirm}>Confirm</ActionButton>\n <ActionButton onClick={handleCancel} secondary>Cancel</ActionButton>\n </div>\n </div>\n )\n}\n\nKeycodePicker.propTypes = {\n node: bindNode.isRequired,\n param: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n enum: PropTypes.array,\n raw: PropTypes.bool,\n type: PropTypes.string\n })\n ]).isRequired,\n searchKey: PropTypes.string.isRequired,\n behaviour: PropTypes.object.isRequired,\n context: PropTypes.string.isRequired,\n onSelect: PropTypes.func.isRequired\n}\n\nexport default KeycodePicker\n","import { useCallback, useState } from 'react'\n\nimport { pickerPropTypes } from './pickerPropTypes'\n\nfunction focusInput (node) {\n if (node) {\n node.focus()\n node.select()\n }\n}\n\nexport default function RawValuePicker (props) {\n const { value: initialValue, param, onSelect } = props\n const [value, setValue] = useState(initialValue)\n\n const handleKeyDown = useCallback(event => {\n if (event.key === 'Enter') {\n onSelect({ code: value })\n }\n }, [value, onSelect])\n\n const handleKeyPress = useCallback(event => {\n let value = event.target.value\n\n if (param.type === 'number') {\n value = Number(value)\n if (Number.isNaN(value)) {\n return\n }\n }\n\n setValue(value)\n }, [param, setValue])\n\n return (\n <input\n ref={focusInput}\n type=\"text\"\n value={value}\n onChange={handleKeyPress}\n onKeyDown={handleKeyDown}\n />\n )\n}\n\nRawValuePicker.propTypes = pickerPropTypes\n","import { useMemo } from 'react'\nimport { useSelector } from 'react-redux'\n\nimport { selectLayers } from '../Keyboard/Layers/layersSlice'\nimport ResultList from './ResultList'\nimport style from './style.module.css'\nimport { pickerPropTypes } from './pickerPropTypes'\n\nexport default function LayerPicker ({ onSelect }) {\n const layers = useSelector(selectLayers)\n const choices = useMemo(() => layers.map((layer, i) => ({\n code: i,\n description: layer.name || `Layer ${i}`\n })), [layers])\n\n return (\n <ResultList\n results={choices}\n onSelect={onSelect}\n renderResult={result => (\n <>\n {result.code}\n {result.description && (\n <p className={style.description}>\n {result.description}\n </p>\n )}\n </>\n )}\n />\n )\n}\n\nLayerPicker.propTypes = pickerPropTypes\n","import pick from 'lodash/pick'\nimport PropTypes from 'prop-types'\nimport { useMemo } from 'react'\n\nimport DialogBox from '../Common/DialogBox'\nimport Modal from '../Common/Modal'\nimport EnumPicker from './EnumPicker'\nimport { bindNode } from '../Keyboard/Binding/bindPropTypes'\n\nimport GenericPicker from './GenericPicker'\nimport HueSatValPicker from '../EnhancedPickers/RGB/HueSatValPicker'\nimport KeycodePicker from '../EnhancedPickers/Keycode/KeycodePicker'\nimport RawValuePicker from './RawValuePicker'\nimport LayerPicker from './LayerPicker'\nimport styles from './style.module.css'\n\nexport function ValuePicker (props) {\n const { node, type, onCancel, onSelect } = props\n const pickerProps = pick(props, [\n 'node', 'value', 'prompt', 'param', 'node', 'behaviour', 'context', 'searchKey'\n ])\n\n const PickerComponent = useMemo(() => {\n // TODO: allow components to register helpers\n if (type === 'params' && node.source?.helper === 'hsb-color-picker') return HueSatValPicker\n if (node.slot.raw) return RawValuePicker\n // TODO: Shouldn't need to render placeholder\n if (node.slot.type === 'placeholder') return RawValuePicker\n if (node.slot.enum) return EnumPicker\n if (node.slot === 'code') return KeycodePicker\n if (node.slot === 'layer') return LayerPicker\n return GenericPicker\n }, [node, type])\n\n return (\n <PickerComponent\n {...pickerProps}\n param={node.slot}\n onSelect={onSelect}\n />\n )\n}\n\nValuePicker.propTypes = {\n type: PropTypes.string.isRequired,\n node: bindNode.isRequired,\n behaviour: PropTypes.object.isRequired,\n searchKey: PropTypes.string.isRequired,\n searchThreshold: PropTypes.number,\n onCancel: PropTypes.func,\n onUpdate: PropTypes.func,\n onSelect: PropTypes.func.isRequired\n}\n\nValuePicker.defaultProps = {\n type: 'value',\n value: '',\n freeForm: false,\n searchThreshold: 10\n}\n\nexport default function ValuePickerDialog (props) {\n const { node, prompt, onUpdate, onCancel, ...rest } = props\n\n // const handleConfirm = useCallback(() => {\n // onUpdate(node)\n // }, [node, onUpdate])\n\n return (\n <Modal onDismiss={onCancel}>\n <DialogBox dismissText={null} classes={[styles.dialogWrapper]}>\n <h2>{prompt}</h2>\n <ValuePicker\n onSelect={onUpdate}\n node={node}\n {...rest}\n />\n {/* <div style={{ marginTop: '10px', textAlign: 'center' }}>\n <ActionButton onClick={handleConfirm}>Confirm</ActionButton>\n <ActionButton onClick={onCancel} secondary>Cancel</ActionButton>\n </div> */}\n </DialogBox>\n </Modal>\n )\n}\n\nValuePickerDialog.propTypes = {\n type: PropTypes.string.isRequired,\n node: bindNode.isRequired,\n behaviour: PropTypes.object.isRequired,\n prompt: PropTypes.string.isRequired,\n searchKey: PropTypes.string.isRequired,\n searchThreshold: PropTypes.number,\n onCancel: PropTypes.func.isRequired,\n onChange: PropTypes.func,\n onSelect: PropTypes.func.isRequired\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"button.pi2Ig8c3Fdh4H2Jpxdo7 {\\n display: inline-block;\\n cursor: pointer;\\n background-color: var(--hover-selection);\\n color: white;\\n\\n font-size: 16px;\\n border: none;\\n border-radius: 5px;\\n padding: 0 5px;\\n\\n height: 30px;\\n line-height: 30px;\\n vertical-align: middle;\\n}\\n\\nbutton.Ctpu4E2dZYJ6g8CUGFOF {\\n color: var(--fg);\\n background-color: transparent;\\n}\\n\\nbutton.pi2Ig8c3Fdh4H2Jpxdo7[disabled] {\\n filter: saturate(20%);\\n opacity: .5;\\n cursor: not-allowed;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/Common/action-button.module.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,qBAAqB;EACrB,eAAe;EACf,wCAAwC;EACxC,YAAY;;EAEZ,eAAe;EACf,YAAY;EACZ,kBAAkB;EAClB,cAAc;;EAEd,YAAY;EACZ,iBAAiB;EACjB,sBAAsB;AACxB;;AAEA;EACE,gBAAgB;EAChB,6BAA6B;AAC/B;;AAEA;EACE,qBAAqB;EACrB,WAAW;EACX,mBAAmB;AACrB\",\"sourcesContent\":[\"button.action {\\n display: inline-block;\\n cursor: pointer;\\n background-color: var(--hover-selection);\\n color: white;\\n\\n font-size: 16px;\\n border: none;\\n border-radius: 5px;\\n padding: 0 5px;\\n\\n height: 30px;\\n line-height: 30px;\\n vertical-align: middle;\\n}\\n\\nbutton.secondary {\\n color: var(--fg);\\n background-color: transparent;\\n}\\n\\nbutton.action[disabled] {\\n filter: saturate(20%);\\n opacity: .5;\\n cursor: not-allowed;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"action\": \"pi2Ig8c3Fdh4H2Jpxdo7\",\n\t\"secondary\": \"Ctpu4E2dZYJ6g8CUGFOF\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".sq9i7hQeTeeKuarmO8oA {\\n display: inline-block;\\n font-size: 70%;\\n background: rgba(0, 0, 0, 0.5);\\n color: white;\\n padding: 4px;\\n border-radius: 4px;\\n width: max-content;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/Common/tip.module.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,qBAAqB;EACrB,cAAc;EACd,8BAA8B;EAC9B,YAAY;EACZ,YAAY;EACZ,kBAAkB;EAClB,kBAAkB;AACpB\",\"sourcesContent\":[\".tip {\\n display: inline-block;\\n font-size: 70%;\\n background: rgba(0, 0, 0, 0.5);\\n color: white;\\n padding: 4px;\\n border-radius: 4px;\\n width: max-content;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"tip\": \"sq9i7hQeTeeKuarmO8oA\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".AmikJd3HeM7NGUa8io2A {\\n width: 350px;\\n}\\n\\n.AmikJd3HeM7NGUa8io2A h3:first-child {\\n margin-top: 0px;\\n}\\n\\n.xCOOsvxL5qQ3kR8ri91A {\\n pointer-events: none;\\n box-shadow: 0 4px 10px 0px rgba(0, 0, 0, 0.5);\\n}\\n\\n.Ox9WHfAMFuthXo6ZOJoI {\\n padding: 2px 0;\\n}\\n\\n.u4uW9U2E0DfbUM9vP9pf {\\n text-align: center;\\n padding: 0;\\n margin: 0;\\n}\\n\\n.u4uW9U2E0DfbUM9vP9pf li {\\n display: inline-block;\\n font-family: monospace, monospace;\\n font-size: 70%;\\n margin: 2px;\\n border-radius: 2px;\\n\\n background-color: rgba(0, 0, 0, .5);\\n opacity: 0.5;\\n color: white;\\n}\\n.u4uW9U2E0DfbUM9vP9pf li label {\\n display: inline-block;\\n padding: 4px;\\n}\\n\\n.u4uW9U2E0DfbUM9vP9pf li.YcHSun3PLo8dCb9qIZtc {\\n opacity: 1;\\n background-color: var(--selection);\\n color: white;\\n}\\n\\n.u4uW9U2E0DfbUM9vP9pf li.Ix6wQt3EBFUH2PUcsqgm {\\n background-color: var(--error-highlight);\\n filter: saturate(50%);\\n}\\n\\n.u4uW9U2E0DfbUM9vP9pf li:not(.Ix6wQt3EBFUH2PUcsqgm):hover {\\n opacity: 1;\\n background-color: var(--hover-selection);\\n}\\n\\n.u4uW9U2E0DfbUM9vP9pf li.Ix6wQt3EBFUH2PUcsqgm:hover * {\\n cursor: not-allowed;\\n}\\n\\n.u4uW9U2E0DfbUM9vP9pf li input[type=\\\"checkbox\\\"] {\\n margin: 0;\\n vertical-align: text-bottom;\\n}\\n\\n.d3hMEDpEkH8H7YLG_NjI {\\n width: 100% !important;\\n box-sizing: border-box;\\n text-align: center;\\n}\\n\\n.gFHbtpz6TuduOVYLXwHu {\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n}\\n\\n.AfAg5j2RJEcA0Zh3z7mX {\\n flex-grow: 1;\\n}\\n\\n.YeOANHLbze2W1EGYOFiI {\\n font-size: 120%;\\n padding: 6px 10px;\\n color: white !important;\\n background-color: rgba(30, 30, 30, 0.4);\\n border-radius: 5px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/EnhancedPickers/Keycode/styles.module.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,YAAY;AACd;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,oBAAoB;EACpB,6CAA6C;AAC/C;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,kBAAkB;EAClB,UAAU;EACV,SAAS;AACX;;AAEA;EACE,qBAAqB;EACrB,iCAAiC;EACjC,cAAc;EACd,WAAW;EACX,kBAAkB;;EAElB,mCAAmC;EACnC,YAAY;EACZ,YAAY;AACd;AACA;EACE,qBAAqB;EACrB,YAAY;AACd;;AAEA;EACE,UAAU;EACV,kCAAkC;EAClC,YAAY;AACd;;AAEA;EACE,wCAAwC;EACxC,qBAAqB;AACvB;;AAEA;EACE,UAAU;EACV,wCAAwC;AAC1C;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,SAAS;EACT,2BAA2B;AAC7B;;AAEA;EACE,sBAAsB;EACtB,sBAAsB;EACtB,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB;AACrB;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,eAAe;EACf,iBAAiB;EACjB,uBAAuB;EACvB,uCAAuC;EACvC,kBAAkB;AACpB\",\"sourcesContent\":[\".wrapper {\\n width: 350px;\\n}\\n\\n.wrapper h3:first-child {\\n margin-top: 0px;\\n}\\n\\n.previewKeycode {\\n pointer-events: none;\\n box-shadow: 0 4px 10px 0px rgba(0, 0, 0, 0.5);\\n}\\n\\n.allModifiers {\\n padding: 2px 0;\\n}\\n\\n.modifiers {\\n text-align: center;\\n padding: 0;\\n margin: 0;\\n}\\n\\n.modifiers li {\\n display: inline-block;\\n font-family: monospace, monospace;\\n font-size: 70%;\\n margin: 2px;\\n border-radius: 2px;\\n\\n background-color: rgba(0, 0, 0, .5);\\n opacity: 0.5;\\n color: white;\\n}\\n.modifiers li label {\\n display: inline-block;\\n padding: 4px;\\n}\\n\\n.modifiers li.selected {\\n opacity: 1;\\n background-color: var(--selection);\\n color: white;\\n}\\n\\n.modifiers li.implicit {\\n background-color: var(--error-highlight);\\n filter: saturate(50%);\\n}\\n\\n.modifiers li:not(.implicit):hover {\\n opacity: 1;\\n background-color: var(--hover-selection);\\n}\\n\\n.modifiers li.implicit:hover * {\\n cursor: not-allowed;\\n}\\n\\n.modifiers li input[type=\\\"checkbox\\\"] {\\n margin: 0;\\n vertical-align: text-bottom;\\n}\\n\\n.quickCloseTip {\\n width: 100% !important;\\n box-sizing: border-box;\\n text-align: center;\\n}\\n\\n.resultItem {\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n}\\n\\n.description {\\n flex-grow: 1;\\n}\\n\\n.symbol {\\n font-size: 120%;\\n padding: 6px 10px;\\n color: white !important;\\n background-color: rgba(30, 30, 30, 0.4);\\n border-radius: 5px;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"wrapper\": \"AmikJd3HeM7NGUa8io2A\",\n\t\"previewKeycode\": \"xCOOsvxL5qQ3kR8ri91A\",\n\t\"allModifiers\": \"Ox9WHfAMFuthXo6ZOJoI\",\n\t\"modifiers\": \"u4uW9U2E0DfbUM9vP9pf\",\n\t\"selected\": \"YcHSun3PLo8dCb9qIZtc\",\n\t\"implicit\": \"Ix6wQt3EBFUH2PUcsqgm\",\n\t\"quickCloseTip\": \"d3hMEDpEkH8H7YLG_NjI\",\n\t\"resultItem\": \"gFHbtpz6TuduOVYLXwHu\",\n\t\"description\": \"AfAg5j2RJEcA0Zh3z7mX\",\n\t\"symbol\": \"YeOANHLbze2W1EGYOFiI\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_ICSS_IMPORT_0___ from \"-!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../Keyboard/Keys/styles.module.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_0___, \"\", true);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* @import \\\"../../Keyboard/Keys/styles.module.css\\\"; */\\n\\n.\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\"key\"] + \" .ElYzpTlttqVbs6KKy9ob {\\n align-self: center;\\n}\\n.\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\"extracted\"] + \" .ElYzpTlttqVbs6KKy9ob {\\n display: inline-block;\\n border-bottom: .15em dotted var(--key-color-base);\\n box-sizing: border-box;\\n padding: 6px .25em;\\n}\\n\\n:hover .ElYzpTlttqVbs6KKy9ob:hover {\\n cursor: pointer;\\n background-color: var(--hover-selection);\\n border-radius: 0;\\n border-radius: 3px;\\n}\\n\\n.rdE_HhSUTcg2dK35N2WA {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n height: 1em;\\n aspect-ratio: 1;\\n border-radius: 2px;\\n}\\n\\n.\" + ___CSS_LOADER_ICSS_IMPORT_0___.locals[\"extracted\"] + \" .rdE_HhSUTcg2dK35N2WA {\\n display: inline-block;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/EnhancedPickers/RGB/styles.module.css\"],\"names\":[],\"mappings\":\"AAAA,qDAAqD;;AAMrD;EACE,kBAAkB;AACpB;AACA;EACE,qBAAqB;EACrB,iDAAiD;EACjD,sBAAsB;EACtB,kBAAkB;AACpB;;AAEA;EACE,eAAe;EACf,wCAAwC;EACxC,gBAAgB;EAChB,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,WAAW;EACX,eAAe;EACf,kBAAkB;AACpB;;AAEA;EACE,qBAAqB;AACvB\",\"sourcesContent\":[\"/* @import \\\"../../Keyboard/Keys/styles.module.css\\\"; */\\n:import(\\\"../../Keyboard/Keys/styles.module.css\\\") {\\n key: key;\\n extracted: extracted;\\n}\\n\\n.key .colorIconWrapper {\\n align-self: center;\\n}\\n.extracted .colorIconWrapper {\\n display: inline-block;\\n border-bottom: .15em dotted var(--key-color-base);\\n box-sizing: border-box;\\n padding: 6px .25em;\\n}\\n\\n:hover .colorIconWrapper:hover {\\n cursor: pointer;\\n background-color: var(--hover-selection);\\n border-radius: 0;\\n border-radius: 3px;\\n}\\n\\n.colorIcon {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n height: 1em;\\n aspect-ratio: 1;\\n border-radius: 2px;\\n}\\n\\n.extracted .colorIcon {\\n display: inline-block;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"colorIconWrapper\": \"ElYzpTlttqVbs6KKy9ob\",\n\t\"colorIcon\": \"rdE_HhSUTcg2dK35N2WA\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".CoLZlKR1WcMrFd9XhDMC {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\talign-items: center;\\n\\n\\tfont-family: Quicksand, avenir, sans-serif;\\n\\n\\t/* TODO: remove this once I have a wrapper with size defaults */\\n\\twidth: 65px;\\n\\theight: 65px;\\n\\n\\tfont-size: 110%;\\n\\tborder-radius: 5px;\\n}\\n\\n.CoLZlKR1WcMrFd9XhDMC.MZMfZSmJbwqqfp28UUOi { cursor: pointer; }\\n.CoLZlKR1WcMrFd9XhDMC.MZMfZSmJbwqqfp28UUOi * {\\n\\tpointer-events: none;\\n\\tborder: none;\\n\\ttext-decoration: none !important;\\n}\\n\\n\\n.CT4uGhwl8sY0LwT3p39g:not(:hover) .UNzQquWsoIanOpIN0Q9L,\\n.OsA2qRpHoDPcN93o_TUX:not(:hover) .DejZXCvvhJILPbs9Q8ht.UNzQquWsoIanOpIN0Q9L {\\n\\ttext-decoration: underline wavy var(--error-highlight);\\n\\ttext-underline-offset: 4px;\\n\\tcolor: var(--error-highlight);\\n\\tfont-weight: bold;\\n}\\n\\n.Y5EVt8b0BaXNd9uLxhfh {\\n\\tposition: absolute;\\n\\tleft: 2px;\\n\\tbottom: 2px;\\n\\tfont-size: 80%;\\n\\n\\tanimation: sYr3l9y03JxO_2AP73jr ease-in-out 1s alternate-reverse;\\n}\\n.Y5EVt8b0BaXNd9uLxhfh:hover {\\n\\tcolor: rgb(255, 225, 0);\\n}\\n\\n@keyframes sYr3l9y03JxO_2AP73jr {\\n\\t0% { color: var(--key-color-base) }\\n\\t100% { color: var(--key-color-extreme) }\\n}\\n\\n.CoLZlKR1WcMrFd9XhDMC:hover .DejZXCvvhJILPbs9Q8ht,\\n.CoLZlKR1WcMrFd9XhDMC:hover .DejZXCvvhJILPbs9Q8ht :before,\\n.CoLZlKR1WcMrFd9XhDMC:hover .GliE4Ybwli9X6TNTjD1_ {\\n\\tborder-bottom-left-radius: 0;\\n\\tborder-bottom-right-radius: 0;\\n\\ttext-decoration: underline dotted white 2px;\\n\\ttext-underline-offset: 4px;\\n}\\n\\n\\n.huQDP3GbTLThbVIP8wFp {\\n\\tcolor: var(--key-color-base);\\n\\tbackground-color: var(--key-bg-base);\\n}\\n\\n.PpMmKpJfEi37Ldw7AeBT {\\n\\tborder-radius: 100%;\\n\\tbackground-color: var(--key-bg-base);\\n\\tcolor: var(--key-color-base);\\n}\\n\\n._F1Vep3btfY3Rl4VJaUQ {\\n\\twidth: 80px;\\n\\theight: 80px;\\n\\tborder-radius: 100%;\\n\\tbackground-color: var(--key-bg-base);\\n\\tcolor: var(--key-color-base);\\n}\\n\\n._F1Vep3btfY3Rl4VJaUQ .GliE4Ybwli9X6TNTjD1_ {\\n\\tleft: 50%;\\n\\ttransform: translateX(-50%);\\n}\\n._F1Vep3btfY3Rl4VJaUQ .ApHDJFJGYUaGTgzMeIKZ[data-is-root=\\\"true\\\"] {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n._F1Vep3btfY3Rl4VJaUQ .ApHDJFJGYUaGTgzMeIKZ[data-is-root=\\\"true\\\"] .mLz637Atn0jZXey6Rx4v:first-child::before {\\n\\tcontent: \\\"⟳\\\";\\n\\tfont-size: 140%;\\n\\tfont-weight: bold;\\n}\\n._F1Vep3btfY3Rl4VJaUQ .ApHDJFJGYUaGTgzMeIKZ[data-is-root=\\\"true\\\"] .mLz637Atn0jZXey6Rx4v:nth-child(2)::before {\\n\\tcontent: \\\"⟲\\\";\\n\\tfont-size: 140%;\\n\\tfont-weight: bold;\\n}\\n._F1Vep3btfY3Rl4VJaUQ:hover .ApHDJFJGYUaGTgzMeIKZ[data-is-root=\\\"true\\\"] .mLz637Atn0jZXey6Rx4v:first-child::before,\\n._F1Vep3btfY3Rl4VJaUQ:hover .ApHDJFJGYUaGTgzMeIKZ[data-is-root=\\\"true\\\"] .mLz637Atn0jZXey6Rx4v:nth-child(2)::before {\\n\\tcolor: white;\\n}\\n\\n\\n.k2EIh8YlFvp9sBuklSxx {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 50%;\\n\\ttransform: translateX(-50%);\\n\\tfont-size: 50%;\\n}\\n\\n.CoLZlKR1WcMrFd9XhDMC:hover, .PpMmKpJfEi37Ldw7AeBT:hover {\\n\\tbackground-color: var(--hover-selection);\\n\\ttransition: 200ms;\\n\\tz-index: 1;\\n}\\n.CoLZlKR1WcMrFd9XhDMC:hover .DejZXCvvhJILPbs9Q8ht, .CoLZlKR1WcMrFd9XhDMC:hover .GliE4Ybwli9X6TNTjD1_ {\\n\\tcolor: var(--key-color-hover);\\n}\\n.CoLZlKR1WcMrFd9XhDMC > .DejZXCvvhJILPbs9Q8ht {\\n\\tpadding: 5px;\\n}\\n\\n.mLz637Atn0jZXey6Rx4v {\\n\\tdisplay: inline-flex;\\n}\\n\\n[data-simple=\\\"true\\\"] { font-size: 140%; }\\n[data-long=\\\"true\\\"] { font-size: 60%; }\\n\\n.ApHDJFJGYUaGTgzMeIKZ:not([data-is-root=\\\"true\\\"])::before { content: '('; opacity: 0.4; font-weight: bold; margin: 2px; }\\n.ApHDJFJGYUaGTgzMeIKZ:not([data-is-root=\\\"true\\\"])::after { content: ')'; opacity: 0.4; font-weight: bold; margin: 2px; }\\n.ApHDJFJGYUaGTgzMeIKZ:not([data-is-root=\\\"true\\\"]) .mLz637Atn0jZXey6Rx4v:not(:last-child)::after { content: ','; }\\n\\n.DejZXCvvhJILPbs9Q8ht {\\n\\tcursor: default;\\n\\tpadding: 0px 4px;\\n\\tmargin-left: -2px;\\n\\tmargin-right: -2px;\\n}\\n\\n.CT4uGhwl8sY0LwT3p39g .DejZXCvvhJILPbs9Q8ht {\\n\\tcursor: pointer;\\n\\tdisplay: inline-block;\\n\\tbox-sizing: content-box;\\n\\tmin-width: 0.5em;\\n\\ttext-align: center;\\n\\tborder-radius: 4px;\\n}\\n.CoLZlKR1WcMrFd9XhDMC .DejZXCvvhJILPbs9Q8ht:hover {\\n\\tbackground-color: white !important;\\n\\tcolor: var(--hover-selection) !important;\\n\\tborder-radius: 4px !important;\\n}\\n\\n.DejZXCvvhJILPbs9Q8ht * {\\n\\tpointer-events: none;\\n}\\n\\n.OsA2qRpHoDPcN93o_TUX {\\n\\t/* display: inline-block; */\\n\\tmargin: 0 5px;\\n\\tfont-family: Quicksand, avenir, sans-serif;\\n\\tfont-size: 110%;\\n}\\n.OsA2qRpHoDPcN93o_TUX .mLz637Atn0jZXey6Rx4v {\\n\\talign-items: center;\\n\\tgap: 6px;\\n}\\n.OsA2qRpHoDPcN93o_TUX .DejZXCvvhJILPbs9Q8ht {\\n\\talign-items: center;\\n\\tpadding: 6px 12px;\\n\\tborder-radius: 5px;\\n\\tcolor: var(--key-color-base);\\n\\tborder-bottom: .15em dotted var(--key-color-base);\\n\\tborder-radius: 0;\\n}\\n\\n.OsA2qRpHoDPcN93o_TUX .DejZXCvvhJILPbs9Q8ht:hover {\\n\\tbackground-color: var(--hover-selection);\\n\\tborder-radius: 5px;\\n\\tcolor: white;\\n\\tcursor: pointer;\\n}\\n\\n.DejZXCvvhJILPbs9Q8ht code+*::before {\\n\\tcontent: \\\"|\\\";\\n\\tbackground-color: transparent;\\n\\tmargin: auto 5px;\\n}\\n\\n.GliE4Ybwli9X6TNTjD1_ {\\n position: absolute;\\n top: 0;\\n left: 0;\\n font-size: 10px;\\n padding: 2px;\\n opacity: 0.8;\\n}\\n\\n.GliE4Ybwli9X6TNTjD1_:hover {\\n cursor: pointer;\\n color: var(--hover-selection) !important;\\n background-color: var(--key-bg-hover);\\n border-radius: 5px 0;\\n opacity: 1;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/Keyboard/Keys/styles.module.css\"],\"names\":[],\"mappings\":\"AAAA;CACC,kBAAkB;CAClB,aAAa;CACb,uBAAuB;CACvB,mBAAmB;;CAEnB,0CAA0C;;CAE1C,+DAA+D;CAC/D,WAAW;CACX,YAAY;;CAEZ,eAAe;CACf,kBAAkB;AACnB;;AAEA,6CAAe,eAAe,EAAE;AAChC;CACC,oBAAoB;CACpB,YAAY;CACZ,gCAAgC;AACjC;;;AAGA;;CAEC,sDAAsD;CACtD,0BAA0B;CAC1B,6BAA6B;CAC7B,iBAAiB;AAClB;;AAEA;CACC,kBAAkB;CAClB,SAAS;CACT,WAAW;CACX,cAAc;;CAEd,gEAAiD;AAClD;AACA;CACC,uBAAuB;AACxB;;AAEA;CACC,KAAK,6BAA6B;CAClC,OAAO,gCAAgC;AACxC;;AAEA;;;CAGC,4BAA4B;CAC5B,6BAA6B;CAC7B,2CAA2C;CAC3C,0BAA0B;AAC3B;;;AAGA;CACC,4BAA4B;CAC5B,oCAAoC;AACrC;;AAEA;CACC,mBAAmB;CACnB,oCAAoC;CACpC,4BAA4B;AAC7B;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB,oCAAoC;CACpC,4BAA4B;AAC7B;;AAEA;CACC,SAAS;CACT,2BAA2B;AAC5B;AACA;CACC,aAAa;CACb,sBAAsB;AACvB;AACA;CACC,YAAY;CACZ,eAAe;CACf,iBAAiB;AAClB;AACA;CACC,YAAY;CACZ,eAAe;CACf,iBAAiB;AAClB;AACA;;CAEC,YAAY;AACb;;;AAGA;CACC,kBAAkB;CAClB,MAAM;CACN,SAAS;CACT,2BAA2B;CAC3B,cAAc;AACf;;AAEA;CACC,wCAAwC;CACxC,iBAAiB;CACjB,UAAU;AACX;AACA;CACC,6BAA6B;AAC9B;AACA;CACC,YAAY;AACb;;AAEA;CACC,oBAAoB;AACrB;;AAEA,uBAAuB,eAAe,EAAE;AACxC,qBAAqB,cAAc,EAAE;;AAErC,2DAA6C,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE;AACzG,0DAA4C,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE;AACxG,iGAAoE,YAAY,EAAE;;AAElF;CACC,eAAe;CACf,gBAAgB;CAChB,iBAAiB;CACjB,kBAAkB;AACnB;;AAEA;CACC,eAAe;CACf,qBAAqB;CACrB,uBAAuB;CACvB,gBAAgB;CAChB,kBAAkB;CAClB,kBAAkB;AACnB;AACA;CACC,kCAAkC;CAClC,wCAAwC;CACxC,6BAA6B;AAC9B;;AAEA;CACC,oBAAoB;AACrB;;AAEA;CACC,2BAA2B;CAC3B,aAAa;CACb,0CAA0C;CAC1C,eAAe;AAChB;AACA;CACC,mBAAmB;CACnB,QAAQ;AACT;AACA;CACC,mBAAmB;CACnB,iBAAiB;CACjB,kBAAkB;CAClB,4BAA4B;CAC5B,iDAAiD;CACjD,gBAAgB;AACjB;;AAEA;CACC,wCAAwC;CACxC,kBAAkB;CAClB,YAAY;CACZ,eAAe;AAChB;;AAEA;CACC,YAAY;CACZ,6BAA6B;CAC7B,gBAAgB;AACjB;;AAEA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,eAAe;EACf,YAAY;EACZ,YAAY;AACd;;AAEA;EACE,eAAe;EACf,wCAAwC;EACxC,qCAAqC;EACrC,oBAAoB;EACpB,UAAU;AACZ\",\"sourcesContent\":[\".key {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\talign-items: center;\\n\\n\\tfont-family: Quicksand, avenir, sans-serif;\\n\\n\\t/* TODO: remove this once I have a wrapper with size defaults */\\n\\twidth: 65px;\\n\\theight: 65px;\\n\\n\\tfont-size: 110%;\\n\\tborder-radius: 5px;\\n}\\n\\n.key.unified { cursor: pointer; }\\n.key.unified * {\\n\\tpointer-events: none;\\n\\tborder: none;\\n\\ttext-decoration: none !important;\\n}\\n\\n\\n.selectable:not(:hover) .missingValue,\\n.extracted:not(:hover) .code.missingValue {\\n\\ttext-decoration: underline wavy var(--error-highlight);\\n\\ttext-underline-offset: 4px;\\n\\tcolor: var(--error-highlight);\\n\\tfont-weight: bold;\\n}\\n\\n.missing {\\n\\tposition: absolute;\\n\\tleft: 2px;\\n\\tbottom: 2px;\\n\\tfont-size: 80%;\\n\\n\\tanimation: pulse ease-in-out 1s alternate-reverse;\\n}\\n.missing:hover {\\n\\tcolor: rgb(255, 225, 0);\\n}\\n\\n@keyframes pulse {\\n\\t0% { color: var(--key-color-base) }\\n\\t100% { color: var(--key-color-extreme) }\\n}\\n\\n.key:hover .code,\\n.key:hover .code :before,\\n.key:hover .behaviour-binding {\\n\\tborder-bottom-left-radius: 0;\\n\\tborder-bottom-right-radius: 0;\\n\\ttext-decoration: underline dotted white 2px;\\n\\ttext-underline-offset: 4px;\\n}\\n\\n\\n.keyDefaultTheme {\\n\\tcolor: var(--key-color-base);\\n\\tbackground-color: var(--key-bg-base);\\n}\\n\\n.encoder {\\n\\tborder-radius: 100%;\\n\\tbackground-color: var(--key-bg-base);\\n\\tcolor: var(--key-color-base);\\n}\\n\\n.encoder2 {\\n\\twidth: 80px;\\n\\theight: 80px;\\n\\tborder-radius: 100%;\\n\\tbackground-color: var(--key-bg-base);\\n\\tcolor: var(--key-color-base);\\n}\\n\\n.encoder2 .behaviour-binding {\\n\\tleft: 50%;\\n\\ttransform: translateX(-50%);\\n}\\n.encoder2 .params[data-is-root=\\\"true\\\"] {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n.encoder2 .params[data-is-root=\\\"true\\\"] .param:first-child::before {\\n\\tcontent: \\\"⟳\\\";\\n\\tfont-size: 140%;\\n\\tfont-weight: bold;\\n}\\n.encoder2 .params[data-is-root=\\\"true\\\"] .param:nth-child(2)::before {\\n\\tcontent: \\\"⟲\\\";\\n\\tfont-size: 140%;\\n\\tfont-weight: bold;\\n}\\n.encoder2:hover .params[data-is-root=\\\"true\\\"] .param:first-child::before,\\n.encoder2:hover .params[data-is-root=\\\"true\\\"] .param:nth-child(2)::before {\\n\\tcolor: white;\\n}\\n\\n\\n.encoderDirection {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 50%;\\n\\ttransform: translateX(-50%);\\n\\tfont-size: 50%;\\n}\\n\\n.key:hover, .encoder:hover {\\n\\tbackground-color: var(--hover-selection);\\n\\ttransition: 200ms;\\n\\tz-index: 1;\\n}\\n.key:hover .code, .key:hover .behaviour-binding {\\n\\tcolor: var(--key-color-hover);\\n}\\n.key > .code {\\n\\tpadding: 5px;\\n}\\n\\n.param {\\n\\tdisplay: inline-flex;\\n}\\n\\n[data-simple=\\\"true\\\"] { font-size: 140%; }\\n[data-long=\\\"true\\\"] { font-size: 60%; }\\n\\n.params:not([data-is-root=\\\"true\\\"])::before { content: '('; opacity: 0.4; font-weight: bold; margin: 2px; }\\n.params:not([data-is-root=\\\"true\\\"])::after { content: ')'; opacity: 0.4; font-weight: bold; margin: 2px; }\\n.params:not([data-is-root=\\\"true\\\"]) .param:not(:last-child)::after { content: ','; }\\n\\n.code {\\n\\tcursor: default;\\n\\tpadding: 0px 4px;\\n\\tmargin-left: -2px;\\n\\tmargin-right: -2px;\\n}\\n\\n.selectable .code {\\n\\tcursor: pointer;\\n\\tdisplay: inline-block;\\n\\tbox-sizing: content-box;\\n\\tmin-width: 0.5em;\\n\\ttext-align: center;\\n\\tborder-radius: 4px;\\n}\\n.key .code:hover {\\n\\tbackground-color: white !important;\\n\\tcolor: var(--hover-selection) !important;\\n\\tborder-radius: 4px !important;\\n}\\n\\n.code * {\\n\\tpointer-events: none;\\n}\\n\\n.extracted {\\n\\t/* display: inline-block; */\\n\\tmargin: 0 5px;\\n\\tfont-family: Quicksand, avenir, sans-serif;\\n\\tfont-size: 110%;\\n}\\n.extracted .param {\\n\\talign-items: center;\\n\\tgap: 6px;\\n}\\n.extracted .code {\\n\\talign-items: center;\\n\\tpadding: 6px 12px;\\n\\tborder-radius: 5px;\\n\\tcolor: var(--key-color-base);\\n\\tborder-bottom: .15em dotted var(--key-color-base);\\n\\tborder-radius: 0;\\n}\\n\\n.extracted .code:hover {\\n\\tbackground-color: var(--hover-selection);\\n\\tborder-radius: 5px;\\n\\tcolor: white;\\n\\tcursor: pointer;\\n}\\n\\n.code code+*::before {\\n\\tcontent: \\\"|\\\";\\n\\tbackground-color: transparent;\\n\\tmargin: auto 5px;\\n}\\n\\n.behaviour-binding {\\n position: absolute;\\n top: 0;\\n left: 0;\\n font-size: 10px;\\n padding: 2px;\\n opacity: 0.8;\\n}\\n\\n.behaviour-binding:hover {\\n cursor: pointer;\\n color: var(--hover-selection) !important;\\n background-color: var(--key-bg-hover);\\n border-radius: 5px 0;\\n opacity: 1;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"key\": \"CoLZlKR1WcMrFd9XhDMC\",\n\t\"unified\": \"MZMfZSmJbwqqfp28UUOi\",\n\t\"selectable\": \"CT4uGhwl8sY0LwT3p39g\",\n\t\"missingValue\": \"UNzQquWsoIanOpIN0Q9L\",\n\t\"extracted\": \"OsA2qRpHoDPcN93o_TUX\",\n\t\"code\": \"DejZXCvvhJILPbs9Q8ht\",\n\t\"missing\": \"Y5EVt8b0BaXNd9uLxhfh\",\n\t\"pulse\": \"sYr3l9y03JxO_2AP73jr\",\n\t\"behaviour-binding\": \"GliE4Ybwli9X6TNTjD1_\",\n\t\"keyDefaultTheme\": \"huQDP3GbTLThbVIP8wFp\",\n\t\"encoder\": \"PpMmKpJfEi37Ldw7AeBT\",\n\t\"encoder2\": \"_F1Vep3btfY3Rl4VJaUQ\",\n\t\"params\": \"ApHDJFJGYUaGTgzMeIKZ\",\n\t\"param\": \"mLz637Atn0jZXey6Rx4v\",\n\t\"encoderDirection\": \"k2EIh8YlFvp9sBuklSxx\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".sP2kDRoTZElZUTNHq033 {\\n\\twidth: 300px;\\n\\tbackground-color: var(--dialog-bg);\\n}\\n\\n.yaxqlR_GEWJ1lBISL3_N {\\n min-width: 300px;\\n\\tpadding: 15px\\n}\\n.yaxqlR_GEWJ1lBISL3_N input[type=\\\"text\\\"] {\\n\\tdisplay: block;\\n\\twidth: 100%;\\n\\theight: 30px;\\n\\tline-height: 30px;\\n\\n\\tfont-size: 120%;\\n\\tmargin: 0;\\n\\tpadding: 4px;\\n\\tborder: none;\\n\\tborder-radius: 4px;\\n box-sizing: border-box;\\n}\\nul.inAS9Qunkf3g5K3xz6o6 {\\n\\tposition: relative;\\n\\tfont-family: monospace;\\n\\tlist-style-position: inside;\\n\\tlist-style-type: none;\\n\\tmax-height: 300px;\\n\\toverflow: scroll;\\n\\tpadding: 4px;\\n margin: 4px 0;\\n\\tbackground: rgba(0, 0, 0, 0.75);\\n\\tborder-radius: 4px;\\n}\\n.inAS9Qunkf3g5K3xz6o6 li {\\n\\tcursor: pointer;\\n\\tcolor: white;\\n\\tpadding: 5px;\\n}\\n.inAS9Qunkf3g5K3xz6o6 li:hover, .inAS9Qunkf3g5K3xz6o6 li.BL7Cxrn_efblQXY3W1Sw {\\n\\tbackground: white;\\n\\tcolor: black;\\n}\\n.inAS9Qunkf3g5K3xz6o6 li b { color: dodgerblue; }\\n.inAS9Qunkf3g5K3xz6o6 li .uld0XaeoQaQJJwp0LT0X {\\n\\tfont-style: italic;\\n\\tfont-size: 90%;\\n\\tmargin: 0;\\n\\tcolor: gray;\\n}\\n\\n.pqiZQublKXvmnT_ESDxQ {\\n font-size: 10px;\\n}\\n\\n.pqiZQublKXvmnT_ESDxQ a {\\n color: var(--selection);\\n border-bottom: 1px dotted var(--selection);\\n cursor: pointer;\\n}\\n\\n.ECUs4g2j1rekP4xxgQDr {\\n position: relative;\\n}\\n.yaxqlR_GEWJ1lBISL3_N .ECUs4g2j1rekP4xxgQDr input {\\n padding-left: 30px;\\n}\\n\\n.xDUAgQZeBp0TZSOqCwHm {\\n position: absolute;\\n\\ttop: 50%;\\n\\tleft: 10px;\\n\\ttransform: translateY(-50%);\\n\\tpointer-events: none;\\n}\\n.eY5zRl49sESLjXmizMEP {\\n position: absolute;\\n\\ttop: 50%;\\n\\tright: 10px;\\n\\ttransform: translateY(-50%);\\n\\tcursor: pointer;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/ValuePicker/style.module.css\"],\"names\":[],\"mappings\":\"AAAA;CACC,YAAY;CACZ,kCAAkC;AACnC;;AAEA;EACE,gBAAgB;CACjB;AACD;AACA;CACC,cAAc;CACd,WAAW;CACX,YAAY;CACZ,iBAAiB;;CAEjB,eAAe;CACf,SAAS;CACT,YAAY;CACZ,YAAY;CACZ,kBAAkB;EACjB,sBAAsB;AACxB;AACA;CACC,kBAAkB;CAClB,sBAAsB;CACtB,2BAA2B;CAC3B,qBAAqB;CACrB,iBAAiB;CACjB,gBAAgB;CAChB,YAAY;EACX,aAAa;CACd,+BAA+B;CAC/B,kBAAkB;AACnB;AACA;CACC,eAAe;CACf,YAAY;CACZ,YAAY;AACb;AACA;CACC,iBAAiB;CACjB,YAAY;AACb;AACA,6BAAgB,iBAAiB,EAAE;AACnC;CACC,kBAAkB;CAClB,cAAc;CACd,SAAS;CACT,WAAW;AACZ;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,uBAAuB;EACvB,0CAA0C;EAC1C,eAAe;AACjB;;AAEA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;AACpB;;AAEA;EACE,kBAAkB;CACnB,QAAQ;CACR,UAAU;CACV,2BAA2B;CAC3B,oBAAoB;AACrB;AACA;EACE,kBAAkB;CACnB,QAAQ;CACR,WAAW;CACX,2BAA2B;CAC3B,eAAe;AAChB\",\"sourcesContent\":[\".dialog {\\n\\twidth: 300px;\\n\\tbackground-color: var(--dialog-bg);\\n}\\n\\n.dialogWrapper {\\n min-width: 300px;\\n\\tpadding: 15px\\n}\\n.dialogWrapper input[type=\\\"text\\\"] {\\n\\tdisplay: block;\\n\\twidth: 100%;\\n\\theight: 30px;\\n\\tline-height: 30px;\\n\\n\\tfont-size: 120%;\\n\\tmargin: 0;\\n\\tpadding: 4px;\\n\\tborder: none;\\n\\tborder-radius: 4px;\\n box-sizing: border-box;\\n}\\nul.results {\\n\\tposition: relative;\\n\\tfont-family: monospace;\\n\\tlist-style-position: inside;\\n\\tlist-style-type: none;\\n\\tmax-height: 300px;\\n\\toverflow: scroll;\\n\\tpadding: 4px;\\n margin: 4px 0;\\n\\tbackground: rgba(0, 0, 0, 0.75);\\n\\tborder-radius: 4px;\\n}\\n.results li {\\n\\tcursor: pointer;\\n\\tcolor: white;\\n\\tpadding: 5px;\\n}\\n.results li:hover, .results li.highlighted {\\n\\tbackground: white;\\n\\tcolor: black;\\n}\\n.results li b { color: dodgerblue; }\\n.results li .description {\\n\\tfont-style: italic;\\n\\tfont-size: 90%;\\n\\tmargin: 0;\\n\\tcolor: gray;\\n}\\n\\n.choices-counter {\\n font-size: 10px;\\n}\\n\\n.choices-counter a {\\n color: var(--selection);\\n border-bottom: 1px dotted var(--selection);\\n cursor: pointer;\\n}\\n\\n.searchWrapper {\\n position: relative;\\n}\\n.dialogWrapper .searchWrapper input {\\n padding-left: 30px;\\n}\\n\\n.searchIcon {\\n position: absolute;\\n\\ttop: 50%;\\n\\tleft: 10px;\\n\\ttransform: translateY(-50%);\\n\\tpointer-events: none;\\n}\\n.clearSearchIcon {\\n position: absolute;\\n\\ttop: 50%;\\n\\tright: 10px;\\n\\ttransform: translateY(-50%);\\n\\tcursor: pointer;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"dialog\": \"sP2kDRoTZElZUTNHq033\",\n\t\"dialogWrapper\": \"yaxqlR_GEWJ1lBISL3_N\",\n\t\"results\": \"inAS9Qunkf3g5K3xz6o6\",\n\t\"highlighted\": \"BL7Cxrn_efblQXY3W1Sw\",\n\t\"description\": \"uld0XaeoQaQJJwp0LT0X\",\n\t\"choices-counter\": \"pqiZQublKXvmnT_ESDxQ\",\n\t\"searchWrapper\": \"ECUs4g2j1rekP4xxgQDr\",\n\t\"searchIcon\": \"xDUAgQZeBp0TZSOqCwHm\",\n\t\"clearSearchIcon\": \"eY5zRl49sESLjXmizMEP\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./style.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./style.module.css\";\n export default content && content.locals ? content.locals : undefined;\n"],"names":["options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","undefined","ActionButton","children","secondary","className","props","styles","join","defaultProps","Tip","classNames","Icon","name","KeycodeBindNode","node","onSelect","expanded","handleClick","useCallback","event","stopPropagation","type","codes","useMemo","map","treeToSequence","key","at","codesSerialized","slice","reduce","serialized","mod","code","codeLabels","renderSource","label","i","Fragment","labels","length","title","getSourceTitle","display","description","missing","source","value","_isPlaceholder","content","compact","onClick","tree","params","sequenceToTree","seq","h","s","b","handleSelectParams","isEmpty","some","v","bgStyle","backgroundColor","border","boxSizing","BindValue","style","GenericBindNode","get","BindParamlist","slots","BindParam","slot","BindComponent","helper","HueSatValBindNode","root","wrapperProps","propTypes","PropTypes","bindPropTypes","isRequired","NullKey","displayName","text","symbol","toString","faIcon","Source","icon","Binding","context","hideBehaviour","paramIndex","onUpdate","useBindingEditor","behavior","behaviorParams","bindTree","bindTreeParams","editing","invalid","selectNodeForEditing","clearEditing","handleUpdateBindValue","isSimple","isComplex","behaviour","prompt","createPromptMessage","searchKey","onCancel","enumOption","param","enum","raw","nodeShape","bindNode","binding","useContext","SearchContext","sources","useState","setEditing","hydrateTree","paramSlice","bind","behaviours","getBindingSlots","behaviorParameters","index","makeIndex","hasErrors","nodeIndex","indexOf","handleUpdateTree","updated","cloneDeep","targetNode","forEach","pick","handleUpdateParams","handleUpdateNode","Number","oldAdditionalParams","additionalParams","splice","newParams","p","push","state","callbacks","traverse","normalized","first","shortSymbol","behaviourParams","isLongSymbol","isMultiParam","isNestedParam","promptMapping","layer","keycode","mergedGlyphs","hydrateNode","as","defines","isNaN","find","getSourceValue","validateDevicetreeNodeName","match","validateDevicetreeIdentifier","validateDevicetreeLabel","Key","keyWrapperProps","selectable","themeClass","rest","classes","cycle","array","next","ResultList","results","renderResult","cursorIndex","setCursorIndex","listRef","useRef","moveCursor","initial","offset","element","scroll","height","top","bottom","selector","current","querySelector","offsetParent","scrollTop","offsetHeight","offsetTop","scrollHeight","scrollIntoView","handleHighlightNext","handleHightightPrev","handleSelectActive","handleKeyDown","target","nodeName","action","ArrowDown","ArrowUp","Enter","preventDefault","useEffect","document","body","addEventListener","removeEventListener","ref","result","onDoubleClick","onMouseOver","focusInput","focus","select","SearchFilter","choices","searchKeys","renderResults","initialQuery","useSearch","query","setQuery","keys","limit","fuzzysort","obj","search","handleKeyPress","onChange","pickerPropTypes","searchThreshold","EnumPicker","getSearchTargets","GenericPicker","renderSearchResult","HSBPicker","l","hsl","setHsl","handleConfirm","Math","round","justifyContent","color","textAlign","leftModifiers","rightModifiers","modifiersMap","LS","short","full","LC","LA","LG","RS","RC","RA","RG","noDeselectMessage","ModifiersRow","selected","implicit","row","includes","checked","disabled","e","without","ModifiersPicker","titleResult","dangerouslySetInnerHTML","__html","aliases","renderSymbol","resultListStyle","KeycodePicker","initialModifiers","selectedModifiers","setSelectedModifiers","selectedKeycode","setSelectedKeycode","filter","hydrated","modifiers","handleSelectKeycode","gap","KeyWrapper","marginTop","RawValuePicker","initialValue","setValue","onKeyDown","LayerPicker","layers","useSelector","selectLayers","ValuePicker","pickerProps","PickerComponent","HueSatValPicker","ValuePickerDialog","Modal","onDismiss","DialogBox","dismissText","freeForm","___CSS_LOADER_EXPORT___","module","id","locals"],"sourceRoot":""} \ No newline at end of file
diff --git a/index.html b/index.html
index 53cdbaa..25e84e5 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="https://nickcoutsos.github.io/keymap-editor/keycap.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>Keymap Editor</title><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Nunito:wght@700&family=Quicksand:wght@500&display=swap" rel="stylesheet"><meta name="description" content="A web-based editor for ZMK Keymaps"><meta property="og:url" content="https://nickcoutsos.github.io/keymap-editor"><meta property="og:type" content="website"><meta property="og:title" content="Keymap Editor"><meta property="og:description" content="A web-based editor for ZMK Keymaps"><meta property="og:image" content="https://nickcoutsos.github.io/keymap-editor/og-banner.png"><meta name="twitter:card" content="summary_large_image"><meta property="twitter:domain" content="nickcoutsos.github.io"><meta property="twitter:url" content="https://nickcoutsos.github.io/keymap-editor"><meta name="twitter:title" content="Keymap Editor"><meta name="twitter:description" content="A web-based editor for ZMK Keymaps"><meta name="twitter:image" content="https://nickcoutsos.github.io/keymap-editor/og-banner.png"><script defer="defer" src="runtime.d38266b2e616d4a8193c.js"></script><script defer="defer" src="shared.de35a9113a55f74d95ad.js"></script><script defer="defer" src="vendors.efd274a1d4a4371c9b0d.js"></script><script defer="defer" src="react.0b7d83a58560e2038899.js"></script><script defer="defer" src="main.fd2a02ff075c73dc5f7f.js"></script></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="app-root"></div><div id="modal-root"></div></body></html> \ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="https://nickcoutsos.github.io/keymap-editor/keycap.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>Keymap Editor</title><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Nunito:wght@700&family=Quicksand:wght@500&display=swap" rel="stylesheet"><meta name="description" content="A web-based editor for ZMK Keymaps"><meta property="og:url" content="https://nickcoutsos.github.io/keymap-editor"><meta property="og:type" content="website"><meta property="og:title" content="Keymap Editor"><meta property="og:description" content="A web-based editor for ZMK Keymaps"><meta property="og:image" content="https://nickcoutsos.github.io/keymap-editor/og-banner.png"><meta name="twitter:card" content="summary_large_image"><meta property="twitter:domain" content="nickcoutsos.github.io"><meta property="twitter:url" content="https://nickcoutsos.github.io/keymap-editor"><meta name="twitter:title" content="Keymap Editor"><meta name="twitter:description" content="A web-based editor for ZMK Keymaps"><meta name="twitter:image" content="https://nickcoutsos.github.io/keymap-editor/og-banner.png"><script defer="defer" src="runtime.a40c24775970b5e2279a.js"></script><script defer="defer" src="shared.de35a9113a55f74d95ad.js"></script><script defer="defer" src="vendors.efd274a1d4a4371c9b0d.js"></script><script defer="defer" src="react.0b7d83a58560e2038899.js"></script><script defer="defer" src="main.696e6442329cdd2bc627.js"></script></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="app-root"></div><div id="modal-root"></div></body></html> \ No newline at end of file
diff --git a/main.696e6442329cdd2bc627.js b/main.696e6442329cdd2bc627.js
new file mode 100644
index 0000000..743627f
--- /dev/null
+++ b/main.696e6442329cdd2bc627.js
@@ -0,0 +1,3 @@
+/*! For license information please see main.696e6442329cdd2bc627.js.LICENSE.txt */
+(self.webpackChunkapp=self.webpackChunkapp||[]).push([[179],{96186:function(e,n,t){"use strict";t.d(n,{Z:function(){return w}});var r=t(93379),o=t.n(r),i=t(7795),a=t.n(i),s=t(90569),c=t.n(s),u=t(3565),l=t.n(u),f=t(19216),y=t.n(f),p=t(44589),d=t.n(p),h=t(49502),m={};m.styleTagTransform=d(),m.setAttributes=l(),m.insert=c().bind(null,"head"),m.domAPI=a(),m.insertStyleElement=y(),o()(h.Z,m);var b=h.Z&&h.Z.locals?h.Z.locals:void 0,v=t(85893);function g(e){return g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},g(e)}var k=["dismissText","classes","onDismiss","children"];function _(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function A(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?_(Object(t),!0).forEach((function(n){j(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):_(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function j(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==g(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==g(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===g(n)?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function x(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function w(e){var n,t=e.dismissText,r=void 0===t?"Ok":t,o=e.classes,i=void 0===o?[]:o,a=e.onDismiss,s=e.children,c=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,k);return(0,v.jsxs)("div",A(A({className:[b.dialog].concat((n=i,function(e){if(Array.isArray(e))return x(e)}(n)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||function(e,n){if(e){if("string"==typeof e)return x(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?x(e,n):void 0}}(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())).join(" ")},c),{},{children:[s,r&&(0,v.jsx)("button",{className:b.button,onClick:a,children:r})]}))}},41051:function(e,n,t){"use strict";var r=t(45697),o=t.n(r),i=t(85893);function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}var s=["name","className","collection"];function c(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function u(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==a(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==a(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===a(n)?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var l={brands:"fab",default:"fa",regular:"fa-regular",light:"fa-light",solid:"fas",round:"far"};function f(e){var n=e.name,t=e.className,r=e.collection,o=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,s),a=l[r],f="fa-".concat(n);return(0,i.jsx)("span",function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?c(Object(t),!0).forEach((function(n){u(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):c(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({className:[t,a,f].join(" ")},o))}f.propTypes={name:o().string.isRequired,className:o().string,collection:o().string},f.defaultProps={collection:"default",className:""},n.Z=f},62092:function(e,n,t){"use strict";t.d(n,{Z:function(){return l}});var r=t(41051),o=t(85893);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}var a=["collection","icon","text","children","onClick"];function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){u(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function u(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==i(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==i(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===i(n)?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e){var n=e.collection,t=e.icon,i=e.text,s=e.children,u=e.onClick,l=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,a);return(0,o.jsxs)("button",c(c({onClick:u},l),{},{children:[(0,o.jsx)(r.Z,{collection:n,name:t})," ",i||s]}))}},2968:function(e,n,t){"use strict";t.d(n,{Z:function(){return C}});var r=t(45697),o=t.n(r),i=t(41051),a=t(93379),s=t.n(a),c=t(7795),u=t.n(c),l=t(90569),f=t.n(l),y=t(3565),p=t.n(y),d=t(19216),h=t.n(d),m=t(44589),b=t.n(m),v=t(87617),g={};g.styleTagTransform=b(),g.setAttributes=p(),g.insert=f().bind(null,"head"),g.domAPI=u(),g.insertStyleElement=h(),s()(v.Z,g);var k=v.Z&&v.Z.locals?v.Z.locals:void 0,_=t(85893);function A(e){return A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},A(e)}var j=["href","children","external","showExternal"];function x(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function w(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?x(Object(t),!0).forEach((function(n){E(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):x(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function E(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==A(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==A(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===A(n)?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function O(e){var n=e.href,t=e.children,r=e.external,o=e.showExternal,a=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,j),s=Object.assign({href:n},a,r&&{rel:"noreferrer",target:"_blank"});return(0,_.jsxs)("a",w(w({},s),{},{children:[t,r&&o&&(0,_.jsx)(i.Z,{className:k.icon,name:"arrow-up-right-from-square"})]}))}O.propTypes={href:o().string.isRequired,children:o().oneOfType([o().arrayOf(o().node),o().node]).isRequired,external:o().bool.isRequired,showExternal:o().bool},O.defaultProps={external:!1,showExternal:!0};var C=O},64261:function(e,n,t){"use strict";t.d(n,{X:function(){return h},Z:function(){return d}});var r=t(73935),o=t(67294),i=t(45697),a=t.n(i),s=t(85893);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function f(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){y(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function y(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==c(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===c(n)?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var p={wrapper:{position:"absolute",top:"0",left:"0",width:"100vw",height:"100vh",backgroundColor:"rgba(104, 123, 162, 0.39)",backdropFilter:"blur(1px)",zIndex:"50",display:"flex",justifyContent:"center",alignItems:"center"},centerOnly:{background:"transparent",backdropFilter:"none",pointerEvents:"none"},content:{display:"block",pointerEvents:"all"}};function d(e){var n=e.onDismiss,t=e.centerOnly,i=void 0!==t&&t,a=e.children,c=(0,o.useRef)(),u=(0,o.useCallback)((function(e){n&&c.current&&e.target.contains(c.current)&&(e.stopPropagation(),n())}),[c,n]),l=i?f(f({},p.wrapper),p.centerOnly):p.wrapper;return r.createPortal((0,s.jsx)("div",{onClick:u,style:l,children:(0,s.jsx)("div",{ref:c,style:p.content,children:a})}),document.getElementById("modal-root"))}function h(){var e,n,t=(e=(0,o.useState)(!1),n=2,function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,i,a,s=[],c=!0,u=!1;try{if(i=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;c=!1}else for(;!(c=(r=i.call(t)).done)&&(s.push(r.value),s.length!==n);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(e,n)||function(e,n){if(e){if("string"==typeof e)return u(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?u(e,n):void 0}}(e,n)||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.")}()),r=t[0],i=t[1];return[r,(0,o.useCallback)((function(e){(null==e?void 0:e.stopPropagation)&&e.stopPropagation(),i(!0)}),[i]),(0,o.useCallback)((function(e){(null==e?void 0:e.stopPropagation)&&e.stopPropagation(),i(!1)}),[i])]}d.propTypes={onDismiss:a().func}},91829:function(e,n,t){"use strict";t.d(n,{Z:function(){return i}});var r=t(67294);function o(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function i(e){var n,t,i=(n=(0,r.useState)(e),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,i,a,s=[],c=!0,u=!1;try{if(i=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;c=!1}else for(;!(c=(r=i.call(t)).done)&&(s.push(r.value),s.length!==n);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(n,t)||function(e,n){if(e){if("string"==typeof e)return o(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(e,n):void 0}}(n,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.")}()),a=i[0],s=i[1];return[a,(0,r.useCallback)((function(){return s((function(e){return!e}))}),[s]),(0,r.useCallback)((function(){return s(!0)}),[s]),(0,r.useCallback)((function(){return s(!1)}),[s])]}},18311:function(e,n,t){"use strict";t.d(n,{Z:function(){return _},v:function(){return g}});var r=t(50361),o=t.n(r),i=t(63105),a=t.n(i),s=t(24350),c=t.n(s),u=t(67294),l=t(95998),f=t(2596),y=t(85893);function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function d(){d=function(){return e};var e={},n=Object.prototype,t=n.hasOwnProperty,r=Object.defineProperty||function(e,n,t){e[n]=t.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function c(e,n,t){return Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[n]}try{c({},"")}catch(e){c=function(e,n,t){return e[n]=t}}function u(e,n,t,o){var i=n&&n.prototype instanceof y?n:y,a=Object.create(i.prototype),s=new O(o||[]);return r(a,"_invoke",{value:j(e,t,s)}),a}function l(e,n,t){try{return{type:"normal",arg:e.call(n,t)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function y(){}function h(){}function m(){}var b={};c(b,i,(function(){return this}));var v=Object.getPrototypeOf,g=v&&v(v(C([])));g&&g!==n&&t.call(g,i)&&(b=g);var k=m.prototype=y.prototype=Object.create(b);function _(e){["next","throw","return"].forEach((function(n){c(e,n,(function(e){return this._invoke(n,e)}))}))}function A(e,n){function o(r,i,a,s){var c=l(e[r],e,i);if("throw"!==c.type){var u=c.arg,f=u.value;return f&&"object"==p(f)&&t.call(f,"__await")?n.resolve(f.__await).then((function(e){o("next",e,a,s)}),(function(e){o("throw",e,a,s)})):n.resolve(f).then((function(e){u.value=e,a(u)}),(function(e){return o("throw",e,a,s)}))}s(c.arg)}var i;r(this,"_invoke",{value:function(e,t){function r(){return new n((function(n,r){o(e,t,n,r)}))}return i=i?i.then(r,r):r()}})}function j(e,n,t){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return{value:void 0,done:!0}}for(t.method=o,t.arg=i;;){var a=t.delegate;if(a){var s=x(a,t);if(s){if(s===f)continue;return s}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===r)throw r="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);r="executing";var c=l(e,n,t);if("normal"===c.type){if(r=t.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:t.done}}"throw"===c.type&&(r="completed",t.method="throw",t.arg=c.arg)}}}function x(e,n){var t=n.method,r=e.iterator[t];if(void 0===r)return n.delegate=null,"throw"===t&&e.iterator.return&&(n.method="return",n.arg=void 0,x(e,n),"throw"===n.method)||"return"!==t&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+t+"' method")),f;var o=l(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,f;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=void 0),n.delegate=null,f):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,f)}function w(e){var n={tryLoc:e[0]};1 in e&&(n.catchLoc=e[1]),2 in e&&(n.finallyLoc=e[2],n.afterLoc=e[3]),this.tryEntries.push(n)}function E(e){var n=e.completion||{};n.type="normal",delete n.arg,e.completion=n}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function C(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function n(){for(;++r<e.length;)if(t.call(e,r))return n.value=e[r],n.done=!1,n;return n.value=void 0,n.done=!0,n};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}return h.prototype=m,r(k,"constructor",{value:m,configurable:!0}),r(m,"constructor",{value:h,configurable:!0}),h.displayName=c(m,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var n="function"==typeof e&&e.constructor;return!!n&&(n===h||"GeneratorFunction"===(n.displayName||n.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,c(e,s,"GeneratorFunction")),e.prototype=Object.create(k),e},e.awrap=function(e){return{__await:e}},_(A.prototype),c(A.prototype,a,(function(){return this})),e.AsyncIterator=A,e.async=function(n,t,r,o,i){void 0===i&&(i=Promise);var a=new A(u(n,t,r,o),i);return e.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},_(k),c(k,s,"Generator"),c(k,i,(function(){return this})),c(k,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var n=Object(e),t=[];for(var r in n)t.push(r);return t.reverse(),function e(){for(;t.length;){var r=t.pop();if(r in n)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=C,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var n in this)"t"===n.charAt(0)&&t.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function r(t,r){return a.type="throw",a.arg=e,n.next=t,r&&(n.method="next",n.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=t.call(i,"catchLoc"),c=t.call(i,"finallyLoc");if(s&&c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(e,n){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&t.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=n&&n<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=n,i?(this.method="next",this.next=i.finallyLoc,f):this.complete(a)},complete:function(e,n){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&n&&(this.next=n),f},finish:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),E(t),f}},catch:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.tryLoc===e){var r=t.completion;if("throw"===r.type){var o=r.arg;E(t)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,t){return this.delegate={iterator:C(e),resultName:n,nextLoc:t},"next"===this.method&&(this.arg=void 0),f}},e}function h(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,i,a,s=[],c=!0,u=!1;try{if(i=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;c=!1}else for(;!(c=(r=i.call(t)).done)&&(s.push(r.value),s.length!==n);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(e,n)||function(e,n){if(e){if("string"==typeof e)return m(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?m(e,n):void 0}}(e,n)||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 m(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function b(e,n,t,r,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void t(e)}s.done?n(c):Promise.resolve(c).then(r,o)}function v(e){return function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){b(i,r,o,a,s,"next",e)}function s(e){b(i,r,o,a,s,"throw",e)}a(void 0)}))}}var g=(0,u.createContext)({keycodes:[],behaviours:[],behaviors:{},behaviorBinds:[],glyphs:[]}),k=function(e){return e.definitions};function _(e){var n=e.children,t=(0,l.v9)(k),r=(0,l.I0)();if((0,u.useEffect)((function(){v(d().mark((function e(){var n,i,s,u,l,f,y,p;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null===t){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,Promise.all([x(),A()]);case 4:n=e.sent,i=h(n,2),s=h(i[0],2),u=s[0],l=s[1],f=i[1],y=o()(f.behaviors),p=o()(f.bindings),u.indexed=c()(u,"code"),p.indexed=c()(p,"code"),p.context={none:p.filter((function(e){return!e.context})),macros:a()(p,{context:"macros"}),encoders:a()(p,{context:"encoders"})},p.byContext={none:c()(p.context.none,"code"),macros:c()(p.context.macros,"code"),encoders:c()(p.context.encoders,"code")},r({type:"DEFINITIONS_SET",definitions:{keycodes:u,behaviours:p,behaviors:y,behaviorBinds:p,glyphs:l}});case 17:case"end":return e.stop()}}),e)})))()}),[t,r]),t)return(0,y.jsx)(g.Provider,{value:t,children:n})}function A(){return j.apply(this,arguments)}function j(){return(j=v(d().mark((function e(){var n,r,o;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.resolve().then(t.t.bind(t,95130,23));case 2:return n=e.sent,r=n.behaviorSchemas,o=n.behaviorBindings,e.abrupt("return",{behaviors:r,bindings:o});case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function x(){return w.apply(this,arguments)}function w(){return(w=v(d().mark((function e(){var n,r,o;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.e(3712).then(t.t.bind(t,52779,23));case 2:return n=e.sent,r=n.keycodes,o=n.keycodeGlyphs,e.abrupt("return",[(0,f.G)(r),o]);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},20817:function(e,n,t){"use strict";t.d(n,{S:function(){return s},V:function(){return a}});var r=t(67294),o=t(4803),i=t(85893),a=(0,r.createContext)({layout:[],bindingCount:0,wrapperDimensions:{},wrapperStyle:{}});function s(e){var n=e.layout,t=e.children,s=(0,r.useMemo)((function(){return n.length}),[n.length]),c=(0,r.useMemo)((function(){return(0,o.mY)(n)}),[n]),u=(0,r.useMemo)((function(){return(0,o.fI)(c)}),[c]),l={layout:n,bindingCount:s,wrapperDimensions:c,wrapperStyle:u};return(0,i.jsx)(a.Provider,{value:l,children:t})}},80031:function(e,n,t){"use strict";t.d(n,{Jh:function(){return a},W8:function(){return c},Yo:function(){return l},qM:function(){return i},t6:function(){return u}});var r=t(2968),o=t(85893),i=(0,o.jsx)(r.Z,{external:!0,href:"https://github.com/nickcoutsos/keymap-editor/issues",children:"Keymap Editor Issues"}),a=(0,o.jsx)(r.Z,{external:!0,href:"https://github.com/nickcoutsos/keymap-editor/wiki/Defining-keyboard-layouts",children:"Keymap Editor Wiki: Defining keyboard layouts"}),s=(0,o.jsx)(r.Z,{external:!0,href:"https://nickcoutsos.github.io/keymap-layout-tools/",children:"Keymap Layout Tools - Helper"}),c=(0,o.jsx)(r.Z,{external:!0,href:"https://discord.com/users/115507966555193345",children:"Discord - nickcoutsos#4351"}),u=(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("p",{children:"If you are looking for help in getting up and running or want a better understanding of the issue, please feel free to reach out to me:"}),(0,o.jsxs)("ul",{children:[(0,o.jsx)("li",{children:i}),(0,o.jsx)("li",{children:c})]})]}),l=(0,o.jsxs)("p",{children:["For more information about how Keymap Editor layouts are defined, you can read ",a,", and if you need an environment to quickly test changes to a layout try ",s,"."]})},28291:function(e,n,t){"use strict";t.d(n,{F6:function(){return f},md:function(){return y},pR:function(){return s},tY:function(){return p}});var r=t(57557),o=t.n(r),i=t(97168),a=t(50868),s=function(e){return e.keyboard.keymap.behaviors},c=function(e,n,t){var r=function(e){var n,t,r;return(null===(n=e.properties.compatible)||void 0===n?void 0:n.parsed)||(null===(t=e.properties.compatible)||void 0===t||null===(r=t.raw)||void 0===r?void 0:r.replace(/"/g,""))}(e),o=t[r];return o?Object.keys(o.properties).reduce((function(n,t){var r=o.properties[t],i=e.properties[t];return"phandle-array"===r.type&&i&&n.push(i.parsed),n}),[]):[]},u=(0,i.oM)({name:"behaviors",initialState:[],reducers:{addBehavior:function(e,n){e.push(n.payload.behavior)},updateBehavior:function(e,n){e[n.payload.behaviorIndex]=o()(n.payload.behavior,"params")},deleteBehavior:function(e,n){e.splice(n.payload.behaviorIndex,1)}},extraReducers:function(e){e.addCase(a.fD,(0,a.Ie)(c))}}),l=u.actions,f=l.addBehavior,y=l.updateBehavior,p=l.deleteBehavior;n.ZP=u.reducer},2732:function(e,n,t){"use strict";t.d(n,{CG:function(){return f},DP:function(){return a},SD:function(){return d},ij:function(){return u},l3:function(){return y},nJ:function(){return l},pd:function(){return p}});var r=t(97168),o=t(50868);function i(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var a=function(e){return e.keyboard.keymap.combos},s=(0,r.oM)({name:"combos",initialState:[],reducers:{updateComboBinding:function(e,n){e[n.payload.comboIndex].properties.bindings={parsed:n.payload.bindings}},updateComboKeypositions:function(e,n){e[n.payload.comboIndex].properties["key-positions"]={parsed:n.payload.keyPositions}},createCombo:function(e){e.push({name:"new_combo",labels:[],properties:{bindings:{parsed:[{value:"&trans",params:[]}]},"key-positions":{parsed:[]}}})},renameCombo:function(e,n){e[n.payload.index].name=n.payload.name},deleteCombo:function(e,n){e.splice(n.payload.index,1)},customizeCombo:function(e,n){var t=n.payload,r=t.index,o=t.combo;e[r]=o}},extraReducers:function(e){var n=(0,o.Ie)();e.addCase(o.fD,(function(e,t){var r=t.payload.positionMapping;n(e,t);var o,a=function(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,n){if(e){if("string"==typeof e)return i(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?i(e,n):void 0}}(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,c=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return s=e.done,e},e:function(e){c=!0,a=e},f:function(){try{s||null==t.return||t.return()}finally{if(c)throw a}}}}(e);try{for(a.s();!(o=a.n()).done;){var s,c,u=o.value.properties;null!==(s=u.layers)&&void 0!==s&&null!==(c=s.parsed)&&void 0!==c&&c.length&&(u.layers.parsed=u.layers.parsed.reduce((function(e,n){var t=r[n];return null!==t&&e.push(t),e}),[]))}}catch(e){a.e(e)}finally{a.f()}}))}}),c=s.actions,u=c.updateComboBinding,l=c.updateComboKeypositions,f=c.createCombo,y=c.renameCombo,p=c.deleteCombo,d=c.customizeCombo;n.ZP=s.reducer},50868:function(e,n,t){"use strict";t.d(n,{Ie:function(){return m},fD:function(){return d}});var r=t(27361),o=t.n(r),i=t(97168),a=t(41696);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function c(){c=function(){return e};var e={},n=Object.prototype,t=n.hasOwnProperty,r=Object.defineProperty||function(e,n,t){e[n]=t.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function l(e,n,t){return Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[n]}try{l({},"")}catch(e){l=function(e,n,t){return e[n]=t}}function f(e,n,t,o){var i=n&&n.prototype instanceof d?n:d,a=Object.create(i.prototype),s=new O(o||[]);return r(a,"_invoke",{value:j(e,t,s)}),a}function y(e,n,t){try{return{type:"normal",arg:e.call(n,t)}}catch(e){return{type:"throw",arg:e}}}e.wrap=f;var p={};function d(){}function h(){}function m(){}var b={};l(b,i,(function(){return this}));var v=Object.getPrototypeOf,g=v&&v(v(C([])));g&&g!==n&&t.call(g,i)&&(b=g);var k=m.prototype=d.prototype=Object.create(b);function _(e){["next","throw","return"].forEach((function(n){l(e,n,(function(e){return this._invoke(n,e)}))}))}function A(e,n){function o(r,i,a,c){var u=y(e[r],e,i);if("throw"!==u.type){var l=u.arg,f=l.value;return f&&"object"==s(f)&&t.call(f,"__await")?n.resolve(f.__await).then((function(e){o("next",e,a,c)}),(function(e){o("throw",e,a,c)})):n.resolve(f).then((function(e){l.value=e,a(l)}),(function(e){return o("throw",e,a,c)}))}c(u.arg)}var i;r(this,"_invoke",{value:function(e,t){function r(){return new n((function(n,r){o(e,t,n,r)}))}return i=i?i.then(r,r):r()}})}function j(e,n,t){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return{value:void 0,done:!0}}for(t.method=o,t.arg=i;;){var a=t.delegate;if(a){var s=x(a,t);if(s){if(s===p)continue;return s}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===r)throw r="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);r="executing";var c=y(e,n,t);if("normal"===c.type){if(r=t.done?"completed":"suspendedYield",c.arg===p)continue;return{value:c.arg,done:t.done}}"throw"===c.type&&(r="completed",t.method="throw",t.arg=c.arg)}}}function x(e,n){var t=n.method,r=e.iterator[t];if(void 0===r)return n.delegate=null,"throw"===t&&e.iterator.return&&(n.method="return",n.arg=void 0,x(e,n),"throw"===n.method)||"return"!==t&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+t+"' method")),p;var o=y(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,p;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=void 0),n.delegate=null,p):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,p)}function w(e){var n={tryLoc:e[0]};1 in e&&(n.catchLoc=e[1]),2 in e&&(n.finallyLoc=e[2],n.afterLoc=e[3]),this.tryEntries.push(n)}function E(e){var n=e.completion||{};n.type="normal",delete n.arg,e.completion=n}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function C(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function n(){for(;++r<e.length;)if(t.call(e,r))return n.value=e[r],n.done=!1,n;return n.value=void 0,n.done=!0,n};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}return h.prototype=m,r(k,"constructor",{value:m,configurable:!0}),r(m,"constructor",{value:h,configurable:!0}),h.displayName=l(m,u,"GeneratorFunction"),e.isGeneratorFunction=function(e){var n="function"==typeof e&&e.constructor;return!!n&&(n===h||"GeneratorFunction"===(n.displayName||n.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,u,"GeneratorFunction")),e.prototype=Object.create(k),e},e.awrap=function(e){return{__await:e}},_(A.prototype),l(A.prototype,a,(function(){return this})),e.AsyncIterator=A,e.async=function(n,t,r,o,i){void 0===i&&(i=Promise);var a=new A(f(n,t,r,o),i);return e.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},_(k),l(k,u,"Generator"),l(k,i,(function(){return this})),l(k,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var n=Object(e),t=[];for(var r in n)t.push(r);return t.reverse(),function e(){for(;t.length;){var r=t.pop();if(r in n)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=C,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var n in this)"t"===n.charAt(0)&&t.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function r(t,r){return a.type="throw",a.arg=e,n.next=t,r&&(n.method="next",n.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=t.call(i,"catchLoc"),c=t.call(i,"finallyLoc");if(s&&c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(e,n){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&t.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=n&&n<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=n,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(a)},complete:function(e,n){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&n&&(this.next=n),p},finish:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),E(t),p}},catch:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.tryLoc===e){var r=t.completion;if("throw"===r.type){var o=r.arg;E(t)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,t){return this.delegate={iterator:C(e),resultName:n,nextLoc:t},"next"===this.method&&(this.arg=void 0),p}},e}var u=c().mark(b);function l(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=f(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==t.return||t.return()}finally{if(s)throw i}}}}function f(e,n){if(e){if("string"==typeof e)return y(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?y(e,n):void 0}}function y(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function p(e,n){return(0,a.L)(e,n).reduce((function(n,t,r){return"layer"===t&&n.push(e.params[r]),n}),[])}var d=(0,i.PH)("layers/indexChanged",(function(e,n,t,r,o){var i=function(e,n,t){var r,o=function(e){if(Array.isArray(e))return y(e)}(r=t.keys())||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(r)||f(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();return null===n?o.map((function(n){return n===e?null:n>e?n-1:n})):o.map((function(r){var o=r>e&&r>n,i=r<e&&r<n,a=e<r&&r<n;return r===e?n===t.length?n-1:n:o||i?r:a?r-1:r+1}))}(e,n,t),a=r.sources,s=r.behaviorParameters;return{payload:{currentIndex:e,targetIndex:n,sources:a,behaviorSchemas:o.behaviors,behaviorParameters:s,positionMapping:i}}})),h=function(e){return[e.properties.bindings.parsed]};function m(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h;return function(n,t){var r,i=t.payload,a=i.sources,s=i.behaviorSchemas,c=i.behaviorParameters,u=i.positionMapping,f=a.behaviours,y=a.defines,p=l(b(n,f,s,c,e));try{for(p.s();!(r=p.n()).done;){var d,h=r.value,m=o()(y,h.value,h.value);Number.isNaN(Number(m))||(m=Number(m)),h.value=null===(d=u[m])||void 0===d?void 0:d.toString(),void 0===h.value&&(h.value="0",h._isPlaceholder=!0)}}catch(e){p.e(e)}finally{p.f()}}}function b(e,n,t,r,o){var i,a,s,f,y,d,h,m,b,v,g,k;return c().wrap((function(c){for(;;)switch(c.prev=c.next){case 0:i=l(e),c.prev=1,i.s();case 3:if((a=i.n()).done){c.next=54;break}s=a.value,f=l(o(s,n,t)),c.prev=6,f.s();case 8:if((y=f.n()).done){c.next=44;break}d=y.value,h=l(d),c.prev=11,h.s();case 13:if((m=h.n()).done){c.next=34;break}b=m.value,v=l(p(b,r)),c.prev=16,v.s();case 18:if((g=v.n()).done){c.next=24;break}return k=g.value,c.next=22,k;case 22:c.next=18;break;case 24:c.next=29;break;case 26:c.prev=26,c.t0=c.catch(16),v.e(c.t0);case 29:return c.prev=29,v.f(),c.finish(29);case 32:c.next=13;break;case 34:c.next=39;break;case 36:c.prev=36,c.t1=c.catch(11),h.e(c.t1);case 39:return c.prev=39,h.f(),c.finish(39);case 42:c.next=8;break;case 44:c.next=49;break;case 46:c.prev=46,c.t2=c.catch(6),f.e(c.t2);case 49:return c.prev=49,f.f(),c.finish(49);case 52:c.next=3;break;case 54:c.next=59;break;case 56:c.prev=56,c.t3=c.catch(1),i.e(c.t3);case 59:return c.prev=59,i.f(),c.finish(59);case 62:case"end":return c.stop()}}),u,null,[[1,56,59,62],[6,46,49,52],[11,36,39,42],[16,26,29,32]])}},80736:function(e,n,t){"use strict";t.d(n,{En:function(){return x},Q:function(){return h},QR:function(){return j},UH:function(){return _},V6:function(){return b},WF:function(){return d},Xv:function(){return p},c7:function(){return g},sT:function(){return k},v1:function(){return A},vc:function(){return m},vl:function(){return l},zi:function(){return v}});var r=t(98913),o=t.n(r),i=t(97168),a=t(50868);function s(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,n){if(e){if("string"==typeof e)return c(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?c(e,n):void 0}}(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==t.return||t.return()}finally{if(s)throw i}}}}function c(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var u="&trans",l=function(e){return e.keyboard.keymap.layers},f=(0,i.oM)({name:"layers",initialState:[],reducers:{createLayer:function(e,n){e.push({name:"layer_".concat(e.length),labels:[],properties:{bindings:{parsed:o()(n.payload.bindingCount,(function(){return function(){return{value:arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,params:[]}}()}))}}})},updateLayerMetadata:function(e,n){var t=n.payload,r=t.layerIndex,o=t.name,i=t.label;o&&(e[r].name=o),void 0!==i&&(e[r].properties.label={parsed:i})},renameLayer:function(e,n){e[n.payload.index].name=n.payload.name},repositionLayer:function(e,n){var t=n.payload,r=t.currentIndex,o=t.targetIndex;if(r!==o){var i=e[r],a=o>r?o-1:o;e.splice(r,1),e.splice(a,0,i)}},deleteLayer:function(e,n){e.splice(n.payload.index,1)},updateKeyBinding:function(e,n){e[n.payload.layerIndex].properties.bindings.parsed[n.payload.bindIndex]=n.payload.binding},updateSensorBindings:function(e,n){var t=n.payload,r=t.layerIndex,o=t.sensorIndex,i=t.bindings,a=e[r].properties;a["sensor-bindings"]=a["sensor-bindings"]||{parsed:[]};var s=a["sensor-bindings"].parsed;s[o]=i;for(var c=0;c<o;c++)s[c]=s[c]||{value:"&inc_dec_kp",params:[{value:0,_isPlaceholder:!0,params:[]},{value:0,_isPlaceholder:!0,params:[]}]};var u=s.indexOf(void 0);-1!==u&&s.splice(u,s.length-u)},rebindTransparentToKeyPress:function(e,n){var t,r=s(e[n.payload.layerIndex].properties.bindings.parsed);try{for(r.s();!(t=r.n()).done;){var o=t.value;"&trans"===o.value&&(o.value="&kp",o.params=[])}}catch(e){r.e(e)}finally{r.f()}},rebindTransparentToNone:function(e,n){var t,r=s(e[n.payload.layerIndex].properties.bindings.parsed);try{for(r.s();!(t=r.n()).done;){var o=t.value;"&trans"===o.value&&(o.value="&none",o.params=[])}}catch(e){r.e(e)}finally{r.f()}},rebindNoneToKeypress:function(e,n){var t,r=s(e[n.payload.layerIndex].properties.bindings.parsed);try{for(r.s();!(t=r.n()).done;){var o=t.value;"&none"===o.value&&(o.value="&kp",o.params=[])}}catch(e){r.e(e)}finally{r.f()}},rebindNoneToTransparent:function(e,n){var t,r=s(e[n.payload.layerIndex].properties.bindings.parsed);try{for(r.s();!(t=r.n()).done;){var o=t.value;"&none"===o.value&&(o.value="&trans",o.params=[])}}catch(e){r.e(e)}finally{r.f()}},rebindEmptyKeypressToTransparent:function(e,n){var t,r=s(e[n.payload.layerIndex].properties.bindings.parsed);try{for(r.s();!(t=r.n()).done;){var o,i=t.value;"&kp"!==i.value||null!==(o=i.params[0])&&void 0!==o&&o.value||(i.value="&trans",i.params=[])}}catch(e){r.e(e)}finally{r.f()}},rebindEmptyKeypressToNone:function(e,n){var t,r=s(e[n.payload.layerIndex].properties.bindings.parsed);try{for(r.s();!(t=r.n()).done;){var o,i=t.value;"&kp"!==i.value||null!==(o=i.params[0])&&void 0!==o&&o.value||(i.value="&none",i.params=[])}}catch(e){r.e(e)}finally{r.f()}}},extraReducers:function(e){e.addCase(a.fD,(0,a.Ie)((function(e){var n;return[e.properties.bindings.parsed,(null===(n=e.properties["sensor-bindings"])||void 0===n?void 0:n.parsed)||[]]})))}}),y=f.actions,p=y.createLayer,d=(y.renameLayer,y.repositionLayer),h=y.deleteLayer,m=y.updateLayerMetadata,b=y.updateKeyBinding,v=y.updateSensorBindings,g=y.rebindTransparentToKeyPress,k=y.rebindTransparentToNone,_=y.rebindNoneToKeypress,A=y.rebindNoneToTransparent,j=y.rebindEmptyKeypressToTransparent,x=y.rebindEmptyKeypressToNone;n.ZP=f.reducer},12736:function(e,n,t){"use strict";t.d(n,{F0:function(){return l},I2:function(){return u},bU:function(){return i},vo:function(){return f},xd:function(){return c}});var r=t(97168),o=t(50868),i=function(e){return e.keyboard.keymap.macros},a=(0,r.oM)({name:"macros",initialState:[],reducers:{addMacro:function(e,n){e.push(n.payload)},deleteMacro:function(e,n){e.splice(n.payload.index,1)},updateMacroBindings:function(e,n){var t=n.payload,r=t.index,o=t.bindings;e[r].properties.bindings.parsed=o},customizeMacroOptions:function(e,n){Object.assign(e[n.payload.macroIndex],n.payload.options)}},extraReducers:function(e){e.addCase(o.fD,(0,o.Ie)())}}),s=a.actions,c=s.addMacro,u=s.deleteMacro,l=s.updateMacroBindings,f=s.customizeMacroOptions;n.ZP=a.reducer},4803:function(e,n,t){"use strict";t.d(n,{eG:function(){return s},fI:function(){return u},mY:function(){return c}});var r=t(26523);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==o(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===o(n)?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){return n.scale,e.map((function(e){return(0,r.kn)({x:e.x,y:e.y},{u:e.u||e.w||1,h:e.h||1},{x:e.rx,y:e.ry,a:e.r})}))}function c(e){return e.map((function(e){return(0,r.j4)({x:e.x,y:e.y},{u:e.u||e.w||1,h:e.h||1},{x:e.rx,y:e.ry,a:e.r})})).reduce((function(e,n){var t=e.x,r=e.y,o=n.max;return{x:Math.max(t,o.x),y:Math.max(r,o.y)}}),{x:0,y:0})}function u(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.scale,r=void 0===t?1:t,o=n.overrides,s=void 0===o?{}:o,u=Array.isArray(e)?c(e):e;return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({width:"".concat(u.x*r,"px"),height:"".concat(u.y*r,"px"),margin:"0 auto",padding:"0 40px 40px"},s)}},69247:function(e,n,t){"use strict";t.d(n,{Ph:function(){return g},oT:function(){return h},zx:function(){return m}});var r=t(58119),o=t(19617),i=t(95998),a=t(85893),s=["children","style"],c=["label","children"],u=["children"];function l(e){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l(e)}function f(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function y(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function p(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?y(Object(t),!0).forEach((function(n){d(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):y(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function d(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==l(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==l(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===l(n)?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function h(e){var n=e.style,t=void 0===n?{}:n,r=e.children;return(0,a.jsx)("div",{style:p(p({},{height:"38px",lineHeight:"38px"}),t),children:r})}function m(e){var n=e.children,t=e.style,r=void 0===t?{}:t,o=f(e,s);return(0,a.jsx)(h,{style:r,children:(0,a.jsx)("button",p(p({style:{height:"100%"}},o),{},{children:n}))})}var b=window.matchMedia("(prefers-color-scheme: dark)"),v=[0,5,10,20,30,40,50,60,70,80,90].reduce((function(e,n){return e["neutral".concat(n)]="hsl(210, 33%, ".concat(n+15,"%)"),e}),{});function g(e){var n=e.label,t=e.children,s=f(e,c),l=(0,i.v9)((function(e){return e})).theme,y="dark"===l||"system"===l&&b.matches;return(0,a.jsxs)("div",{style:{display:"inline-block",width:"auto"},children:[(0,a.jsx)("label",{style:{display:"block",width:"100%",fontSize:"120%",color:"var(--fg)"},children:n}),(0,a.jsx)(o.ZP,p({styles:{container:function(e,n){return p(p({},e),{},{display:"inline-block"})},menu:function(e){return p(p({},e),{},{width:"max-content",zIndex:10})}},components:{MenuList:function(e){var n=e.children,o=f(e,u);return(0,a.jsxs)(r.c.MenuList,p(p({},o),{},{children:[n,t]}))}},theme:function(e){return p(p({},e),{},{colors:p(p({},e.colors),y?v:{})})},isSearchable:!1},s))]})}v.primary25="hsl(214, 100%, 40%)"},93965:function(e,n,t){"use strict";var r=t(9669),o=t.n(r),i=t(26729),a=t.n(i),s=t(28962);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function u(){u=function(){return e};var e={},n=Object.prototype,t=n.hasOwnProperty,r=Object.defineProperty||function(e,n,t){e[n]=t.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(e,n,t){return Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[n]}try{l({},"")}catch(e){l=function(e,n,t){return e[n]=t}}function f(e,n,t,o){var i=n&&n.prototype instanceof d?n:d,a=Object.create(i.prototype),s=new O(o||[]);return r(a,"_invoke",{value:j(e,t,s)}),a}function y(e,n,t){try{return{type:"normal",arg:e.call(n,t)}}catch(e){return{type:"throw",arg:e}}}e.wrap=f;var p={};function d(){}function h(){}function m(){}var b={};l(b,i,(function(){return this}));var v=Object.getPrototypeOf,g=v&&v(v(C([])));g&&g!==n&&t.call(g,i)&&(b=g);var k=m.prototype=d.prototype=Object.create(b);function _(e){["next","throw","return"].forEach((function(n){l(e,n,(function(e){return this._invoke(n,e)}))}))}function A(e,n){function o(r,i,a,s){var u=y(e[r],e,i);if("throw"!==u.type){var l=u.arg,f=l.value;return f&&"object"==c(f)&&t.call(f,"__await")?n.resolve(f.__await).then((function(e){o("next",e,a,s)}),(function(e){o("throw",e,a,s)})):n.resolve(f).then((function(e){l.value=e,a(l)}),(function(e){return o("throw",e,a,s)}))}s(u.arg)}var i;r(this,"_invoke",{value:function(e,t){function r(){return new n((function(n,r){o(e,t,n,r)}))}return i=i?i.then(r,r):r()}})}function j(e,n,t){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return{value:void 0,done:!0}}for(t.method=o,t.arg=i;;){var a=t.delegate;if(a){var s=x(a,t);if(s){if(s===p)continue;return s}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===r)throw r="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);r="executing";var c=y(e,n,t);if("normal"===c.type){if(r=t.done?"completed":"suspendedYield",c.arg===p)continue;return{value:c.arg,done:t.done}}"throw"===c.type&&(r="completed",t.method="throw",t.arg=c.arg)}}}function x(e,n){var t=n.method,r=e.iterator[t];if(void 0===r)return n.delegate=null,"throw"===t&&e.iterator.return&&(n.method="return",n.arg=void 0,x(e,n),"throw"===n.method)||"return"!==t&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+t+"' method")),p;var o=y(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,p;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=void 0),n.delegate=null,p):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,p)}function w(e){var n={tryLoc:e[0]};1 in e&&(n.catchLoc=e[1]),2 in e&&(n.finallyLoc=e[2],n.afterLoc=e[3]),this.tryEntries.push(n)}function E(e){var n=e.completion||{};n.type="normal",delete n.arg,e.completion=n}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function C(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function n(){for(;++r<e.length;)if(t.call(e,r))return n.value=e[r],n.done=!1,n;return n.value=void 0,n.done=!0,n};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}return h.prototype=m,r(k,"constructor",{value:m,configurable:!0}),r(m,"constructor",{value:h,configurable:!0}),h.displayName=l(m,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var n="function"==typeof e&&e.constructor;return!!n&&(n===h||"GeneratorFunction"===(n.displayName||n.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,s,"GeneratorFunction")),e.prototype=Object.create(k),e},e.awrap=function(e){return{__await:e}},_(A.prototype),l(A.prototype,a,(function(){return this})),e.AsyncIterator=A,e.async=function(n,t,r,o,i){void 0===i&&(i=Promise);var a=new A(f(n,t,r,o),i);return e.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},_(k),l(k,s,"Generator"),l(k,i,(function(){return this})),l(k,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var n=Object(e),t=[];for(var r in n)t.push(r);return t.reverse(),function e(){for(;t.length;){var r=t.pop();if(r in n)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=C,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var n in this)"t"===n.charAt(0)&&t.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function r(t,r){return a.type="throw",a.arg=e,n.next=t,r&&(n.method="next",n.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=t.call(i,"catchLoc"),c=t.call(i,"finallyLoc");if(s&&c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(e,n){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&t.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=n&&n<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=n,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(a)},complete:function(e,n){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&n&&(this.next=n),p},finish:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),E(t),p}},catch:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.tryLoc===e){var r=t.completion;if("throw"===r.type){var o=r.arg;E(t)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,t){return this.delegate={iterator:C(e),resultName:n,nextLoc:t},"next"===this.method&&(this.arg=void 0),p}},e}function l(e,n,t,r,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void t(e)}s.done?n(c):Promise.resolve(c).then(r,o)}function f(e){return function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){l(i,r,o,a,s,"next",e)}function s(e){l(i,r,o,a,s,"throw",e)}a(void 0)}))}}function y(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,b(r.key),r)}}function p(e,n){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},p(e,n)}function d(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e){return h=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},h(e)}function m(e,n,t){return(n=b(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function b(e){var n=function(e,n){if("object"!==c(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===c(n)?n:String(n)}var v="".concat(s.ny.replace("http","ws"),"/github/events"),g=function(e){!function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),n&&p(e,n)}(j,e);var n,t,r,i,a,l,b,g,k,_,A=(k=j,_=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=h(k);if(_){var t=h(this).constructor;e=Reflect.construct(n,arguments,t)}else e=n.apply(this,arguments);return function(e,n){if(n&&("object"===c(n)||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return d(e)}(this,e)});function j(){var e;!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,j);for(var n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];return m(d(e=A.call.apply(A,[this].concat(t))),"token",null),m(d(e),"initializing",!1),m(d(e),"installations",null),m(d(e),"repositories",null),m(d(e),"repoInstallationMap",null),m(d(e),"features",null),m(d(e),"socket",null),e}return n=j,t=[{key:"_request",value:(g=f(u().mark((function e(n){var t;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"string"==typeof n&&(n={url:n}),n.url.startsWith("/")&&(n.url="".concat(s.ny).concat(n.url)),n.headers=Object.assign({},n.headers),this.token&&!n.headers.Authorization&&(n.headers.Authorization="Bearer ".concat(this.token)),e.prev=4,e.next=7,o()(n);case 7:return e.abrupt("return",e.sent);case 10:throw e.prev=10,e.t0=e.catch(4),401===(null===(t=e.t0.response)||void 0===t?void 0:t.status)&&(console.error("Authentication failed."),this.emit("authentication-failed",e.t0.response)),e.t0;case 14:case"end":return e.stop()}}),e,this,[[4,10]])}))),function(e){return g.apply(this,arguments)})},{key:"init",value:function(){var e=this;return this.initializing||(this.initializing=f(u().mark((function n(){var t,r,o,i,a,c;return u().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(e.initEvents(),t="".concat(s.ny,"/github/installation"),(r=new URLSearchParams(window.location.search)).get("setup_action")&&r.get("installation_id")&&e.beginLoginFlow(),!r.get("blocked")){n.next=7;break}return setTimeout((function(){return e.emit("blocked")})),n.abrupt("return");case 7:if(o=r.get("token"),!window.localStorage.auth_token&&o&&(window.history.replaceState({},null,window.location.pathname),window.localStorage.auth_token=o),!window.localStorage.auth_token){n.next=22;break}return e.token=window.localStorage.auth_token,n.next=13,e._request(t);case 13:i=n.sent,a=i.data,c=a.installations.filter((function(e){return e.suspended_at})),a.installations.length===c.length&&(console.warn("No GitHub app installation found for authenticated user."),e.emit("app-not-installed")),e.username=a.username,e.installations=a.installations,e.repositories=a.repositories,e.repoInstallationMap=a.repoInstallationMap,e.emit("authenticated");case 22:case"end":return n.stop()}}),n)})))()),this.initializing}},{key:"initEvents",value:function(){var e=this,n=[],t=function(t){e.socket.readyState!==window.WebSocket.OPEN?(n.push(t),console.log("buffering websocket message",{readyState:e.socket.readyState},t)):e.socket.send(t)};this.socket=new window.WebSocket(v),this.socket.onopen=function(){console.log(new Date,"connected to console"),function(){for(var t;t=n.shift();)console.log("sending buffered websocket message",t),e.socket.send(t)}(),setInterval((function(){t(JSON.stringify({message:"ping"}))}),2e4)},this.socket.onclose=function(){return console.log(new Date,"disconnected from server")},this.socket.onerror=function(e){return console.error(new Date,e)},this.socket.onmessage=function(n){var t=JSON.parse(n.data);"workflow_run"===t.event&&e.emit("build-update",t.workflow_run)},this.on("authenticated",(function(){var n;null!==(n=e.installations)&&void 0!==n&&n.length&&(e.fetchAvailableFeatures(),t(JSON.stringify({message:"authorize",data:e.token})))}))}},{key:"beginLoginFlow",value:function(){window.localStorage.removeItem("auth_token"),window.location.href="".concat(s.ny,"/github/authorize")}},{key:"beginInstallAppFlow",value:function(){window.location.href="https://github.com/apps/".concat(s.cO,"/installations/new")}},{key:"manageInstallationRepos",value:function(e){var n=this.installations.find((function(n){return n.id===e}));window.location.href=n.html_url}},{key:"isGitHubAuthorized",value:function(){return!!this.token}},{key:"isAppSuspendedForRepoSelection",value:function(){var e,n,t;return(null===(e=this.installations)||void 0===e?void 0:e.length)>0&&(null===(n=this.installations)||void 0===n?void 0:n.every((function(e){return e.suspended_at})))&&(null===(t=this.installations)||void 0===t?void 0:t.some((function(e){return"all"===e.repository_selection})))}},{key:"isAppInstalled",value:function(){var e,n;return(null===(e=this.installations)||void 0===e?void 0:e.length)&&(null===(n=this.repositories)||void 0===n?void 0:n.length)}},{key:"fetchRepoBranches",value:(b=f(u().mark((function e(n){var t,r,o,i;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=encodeURIComponent(this.repoInstallationMap[n.full_name]),r=encodeURIComponent(n.full_name),e.next=4,this._request("/github/installation/".concat(t,"/").concat(r,"/branches"));case 4:return o=e.sent,i=o.data,e.abrupt("return",i);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return b.apply(this,arguments)})},{key:"fetchBranchKeyboards",value:(l=f(u().mark((function e(n,t){var r,o,i,a;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=encodeURIComponent(this.repoInstallationMap[n.full_name]),o=encodeURIComponent(n.full_name),e.next=4,this._request("/github/installation/".concat(r,"/").concat(o,"/keyboards/").concat(t));case 4:return i=e.sent,a=i.data,e.abrupt("return",a);case 7:case"end":return e.stop()}}),e,this)}))),function(e,n){return l.apply(this,arguments)})},{key:"fetchLayoutAndKeymap",value:(a=f(u().mark((function e(n,t){var r,o,i,a,c,l,f,y,p,d,h,m,b,v,g,k=arguments;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=(k.length>2&&void 0!==k[2]?k[2]:{}).keyboard,o=encodeURIComponent(this.repoInstallationMap[n]),i=encodeURIComponent(n),a=new URL("".concat(s.ny,"/github/keyboard-files/").concat(o,"/").concat(i)),c=new URLSearchParams,t&&c.set("branch",t),r&&c.set("keyboard",r),a.search=c.toString(),e.prev=8,e.next=11,this._request(a.toString());case 11:return l=e.sent,f=l.data,y=f.info.layouts,p=f.keymap,d=Object.keys(f.info.layouts)[0],h=p.chosen["zmk,matrix_transform"]?p.chosen["zmk,matrix_transform"].replace(/^&/,""):null,m=y[h]||y[d],b=m.layout,e.abrupt("return",{layoutMetadata:m,layout:b,keymap:p,keyboards:f.keyboards,default:f.defaultKeymap,sensors:f.sensors});case 21:throw e.prev=21,e.t0=e.catch(8),400===(null===(v=e.t0.response)||void 0===v?void 0:v.status)?(console.error("Failed to load keymap and layout from github",e.t0.response.data),this.emit("repo-validation-error",e.t0.response.data)):500===(null===(g=e.t0.response)||void 0===g?void 0:g.status)&&"LayoutGenerationError"===e.t0.response.data.name&&this.emit("layout-generation-failed",e.t0.response.data),e.t0;case 25:case"end":return e.stop()}}),e,this,[[8,21]])}))),function(e,n){return a.apply(this,arguments)})},{key:"fetchAvailableFeatures",value:(i=f(u().mark((function e(){var n,t;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.isGitHubAuthorized()){e.next=2;break}return e.abrupt("return",{betaFeatures:[]});case 2:return this.features||(this.features=this._request("".concat(s.ny,"/github/features"))),e.next=5,this.features;case 5:return n=e.sent,t=n.data,e.abrupt("return",t);case 8:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"fetchBuildStatus",value:(r=f(u().mark((function e(n,t){var r,o,i,a,c;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=encodeURIComponent(this.repoInstallationMap[n]),o=encodeURIComponent(n),i=new URL("".concat(s.ny,"/github/latest-run/").concat(r,"/").concat(o,"/").concat(encodeURIComponent(t))),e.next=5,this._request(i.toString());case 5:return a=e.sent,c=a.data,e.abrupt("return",c);case 8:case"end":return e.stop()}}),e,this)}))),function(e,n){return r.apply(this,arguments)})},{key:"commitChanges",value:function(e,n,t,r){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=o.message,a=void 0===i?null:i,c=o.experimentalSettings,u=void 0===c?{}:c,l=o.keyboard,f=encodeURIComponent(this.repoInstallationMap[e]),y=encodeURIComponent(e),p=new URL("".concat(s.ny,"/github/keyboard-files/").concat(f,"/").concat(y,"/").concat(encodeURIComponent(n))),d=u.enableBehaviorEditing,h=new URLSearchParams({enableBehaviorEditing:void 0!==d&&d});return l&&h.set("keyboard",l),p.search=h.toString(),this._request({url:p.toString(),method:"POST",headers:{"Content-Type":"application/json"},data:{keyboard:l,keymap:r,message:a}})}}],t&&y(n.prototype,t),Object.defineProperty(n,"prototype",{writable:!1}),j}(a()),k=new g;n.Z=k},28962:function(e,n,t){"use strict";function r(e){return e&&["1","on","yes","true"].includes(e.toString().toLowerCase())}t.d(n,{IX:function(){return c},XG:function(){return l},cO:function(){return i},k0:function(){return a},mC:function(){return u},ny:function(){return o},qo:function(){return s}});var o="https://zmk-keymap-editor.fly.dev",i="keymap-editor",a=r("true"),s=r("false"),c=r("true"),u=r("true"),l=r("true")},65516:function(e,n,t){"use strict";var r=t(67294),o=t(20745),i=t(95998),a=t(93379),s=t.n(a),c=t(7795),u=t.n(c),l=t(90569),f=t.n(l),y=t(3565),p=t.n(y),d=t(19216),h=t.n(d),m=t(44589),b=t.n(m),v=t(51424),g={};g.styleTagTransform=b(),g.setAttributes=p(),g.insert=f().bind(null,"head"),g.domAPI=u(),g.insertStyleElement=h(),s()(v.Z,g),v.Z&&v.Z.locals&&v.Z.locals,t(81802);var k=t(39087),_={};_.styleTagTransform=b(),_.setAttributes=p(),_.insert=f().bind(null,"head"),_.domAPI=u(),_.insertStyleElement=h(),s()(k.Z,_),k.Z&&k.Z.locals&&k.Z.locals;var A=t(81485),j=t(62092),x=t(39693),w=t.n(x),E=t(50361),O=t.n(E),C=t(63105),S=t.n(C),B=t(27361),P=t.n(B),L=t(41609),I=t.n(L),T=t(24350),D=t.n(T),M=t(95130),N=t(51785),R=t(18311),Z=t(2596),q=t(62412),G=t(85893),z=["children"];function U(e){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U(e)}function F(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function K(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?F(Object(t),!0).forEach((function(n){Y(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):F(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function Y(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==U(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==U(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===U(n)?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function W(){W=function(){return e};var e={},n=Object.prototype,t=n.hasOwnProperty,r=Object.defineProperty||function(e,n,t){e[n]=t.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function c(e,n,t){return Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[n]}try{c({},"")}catch(e){c=function(e,n,t){return e[n]=t}}function u(e,n,t,o){var i=n&&n.prototype instanceof y?n:y,a=Object.create(i.prototype),s=new w(o||[]);return r(a,"_invoke",{value:_(e,t,s)}),a}function l(e,n,t){try{return{type:"normal",arg:e.call(n,t)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function y(){}function p(){}function d(){}var h={};c(h,i,(function(){return this}));var m=Object.getPrototypeOf,b=m&&m(m(E([])));b&&b!==n&&t.call(b,i)&&(h=b);var v=d.prototype=y.prototype=Object.create(h);function g(e){["next","throw","return"].forEach((function(n){c(e,n,(function(e){return this._invoke(n,e)}))}))}function k(e,n){function o(r,i,a,s){var c=l(e[r],e,i);if("throw"!==c.type){var u=c.arg,f=u.value;return f&&"object"==U(f)&&t.call(f,"__await")?n.resolve(f.__await).then((function(e){o("next",e,a,s)}),(function(e){o("throw",e,a,s)})):n.resolve(f).then((function(e){u.value=e,a(u)}),(function(e){return o("throw",e,a,s)}))}s(c.arg)}var i;r(this,"_invoke",{value:function(e,t){function r(){return new n((function(n,r){o(e,t,n,r)}))}return i=i?i.then(r,r):r()}})}function _(e,n,t){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return{value:void 0,done:!0}}for(t.method=o,t.arg=i;;){var a=t.delegate;if(a){var s=A(a,t);if(s){if(s===f)continue;return s}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===r)throw r="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);r="executing";var c=l(e,n,t);if("normal"===c.type){if(r=t.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:t.done}}"throw"===c.type&&(r="completed",t.method="throw",t.arg=c.arg)}}}function A(e,n){var t=n.method,r=e.iterator[t];if(void 0===r)return n.delegate=null,"throw"===t&&e.iterator.return&&(n.method="return",n.arg=void 0,A(e,n),"throw"===n.method)||"return"!==t&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+t+"' method")),f;var o=l(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,f;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=void 0),n.delegate=null,f):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,f)}function j(e){var n={tryLoc:e[0]};1 in e&&(n.catchLoc=e[1]),2 in e&&(n.finallyLoc=e[2],n.afterLoc=e[3]),this.tryEntries.push(n)}function x(e){var n=e.completion||{};n.type="normal",delete n.arg,e.completion=n}function w(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(j,this),this.reset(!0)}function E(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function n(){for(;++r<e.length;)if(t.call(e,r))return n.value=e[r],n.done=!1,n;return n.value=void 0,n.done=!0,n};return o.next=o}}return{next:O}}function O(){return{value:void 0,done:!0}}return p.prototype=d,r(v,"constructor",{value:d,configurable:!0}),r(d,"constructor",{value:p,configurable:!0}),p.displayName=c(d,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var n="function"==typeof e&&e.constructor;return!!n&&(n===p||"GeneratorFunction"===(n.displayName||n.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,c(e,s,"GeneratorFunction")),e.prototype=Object.create(v),e},e.awrap=function(e){return{__await:e}},g(k.prototype),c(k.prototype,a,(function(){return this})),e.AsyncIterator=k,e.async=function(n,t,r,o,i){void 0===i&&(i=Promise);var a=new k(u(n,t,r,o),i);return e.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},g(v),c(v,s,"Generator"),c(v,i,(function(){return this})),c(v,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var n=Object(e),t=[];for(var r in n)t.push(r);return t.reverse(),function e(){for(;t.length;){var r=t.pop();if(r in n)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=E,w.prototype={constructor:w,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(x),!e)for(var n in this)"t"===n.charAt(0)&&t.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function r(t,r){return a.type="throw",a.arg=e,n.next=t,r&&(n.method="next",n.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=t.call(i,"catchLoc"),c=t.call(i,"finallyLoc");if(s&&c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(e,n){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&t.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=n&&n<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=n,i?(this.method="next",this.next=i.finallyLoc,f):this.complete(a)},complete:function(e,n){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&n&&(this.next=n),f},finish:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),x(t),f}},catch:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.tryLoc===e){var r=t.completion;if("throw"===r.type){var o=r.arg;x(t)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,t){return this.delegate={iterator:E(e),resultName:n,nextLoc:t},"next"===this.method&&(this.arg=void 0),f}},e}function Q(e){return function(e){if(Array.isArray(e))return X(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||H(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function J(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=H(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==t.return||t.return()}finally{if(s)throw i}}}}function V(e,n,t,r,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void t(e)}s.done?n(c):Promise.resolve(c).then(r,o)}function H(e,n){if(e){if("string"==typeof e)return X(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?X(e,n):void 0}}function X(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function $(e){var n,o,i=(n=(0,r.useState)([]),o=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,i,a,s=[],c=!0,u=!1;try{if(i=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;c=!1}else for(;!(c=(r=i.call(t)).done)&&(s.push(r.value),s.length!==n);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(n,o)||H(n,o)||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.")}()),a=i[0],s=i[1],c=(0,r.useMemo)((function(){return e.headers.reduce((function(e,n){return n in N&&e.push(N[n]),e}),[])}),[e.headers]);return(0,r.useEffect)((function(){var e,n;(e=W().mark((function e(){var n,r,o,i,a;return W().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=[],r=J(c),e.prev=2,r.s();case 4:if((o=r.n()).done){e.next=12;break}return i=o.value,e.next=8,t(34366)("./".concat(i.filename));case 8:a=e.sent,n.push.apply(n,Q((0,Z.G)(a.keys)));case 10:e.next=4;break;case 12:e.next=17;break;case 14:e.prev=14,e.t0=e.catch(2),r.e(e.t0);case 17:return e.prev=17,r.f(),e.finish(17);case 20:s(n);case 21:case"end":return e.stop()}}),e,null,[[2,14,17,20]])})),n=function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){V(i,r,o,a,s,"next",e)}function s(e){V(i,r,o,a,s,"throw",e)}a(void 0)}))},function(){return n.apply(this,arguments)})()}),[c]),a}var ee=function(e){var n=e.children,t=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,z).keymap,o=(0,r.useContext)(R.v),i=o.keycodes,a=o.behaviours,s=o.glyphs,c=(0,r.useContext)(A.J).settings,u=$(t),l=(0,r.useMemo)((function(){var e=window.navigator.platform.startsWith("Mac"),n=window.navigator.platform.startsWith("Win"),t=e?"mac":n&&"win";return(0,Z.j)(s,{unicode:P()(c,"unicodeGlyphs",!0),platform:"auto"!==P()(c,"platformGlyphs","auto")?c.platformGlyphs:t})}),[s,c]),f=(0,r.useMemo)((function(){var e=t.behaviors.map((function(e){return(e=O()(e)).code="&".concat(e.labels[0]),e.compatible=e.properties.compatible.parsed,e}));(0,M.mergeBehaviorOverlays)(e,M.behaviorOverlays);var n=[].concat(Q(a.map((function(e){var n;return K(K({},e),{},{description:e.description||(null===(n=e.schema)||void 0===n?void 0:n.description)})}))),Q((e||[]).map((function(e){var n,t;return{code:"&".concat(e.labels[0]),bind:"&".concat(e.labels[0]),name:e.name,displayName:(null===(n=e.properties.label)||void 0===n?void 0:n.raw)||e.name,description:"Custom behavior: ".concat((null===(t=e.properties.label)||void 0===t?void 0:t.raw)||e.name),context:e.context}}))),Q(t.macros.map((function(e){var n;return{code:"&".concat(e.labels[0]),name:e.name,description:"Custom macro ".concat((null===(n=e.properties.label)||void 0===n?void 0:n.raw)||e.name)}}))));return n.indexed=D()(n,"code"),n.context={none:n.filter((function(e){return!e.context})),macros:S()(n,{context:"macros"}),encoders:S()(n,{context:"encoders"})},n.byContext={none:D()(n.context.none,"code"),macros:D()(n.context.macros,"code"),encoders:D()(n.context.encoders,"code")},n}),[a,t.behaviors,t.macros]),y=(0,r.useMemo)((function(){return(0,q.resolveBehaviorParams)([].concat(Q(a),Q(t.behaviors),Q(t.macros)))}),[a,t.behaviors,t.macros]),p=(0,r.useMemo)((function(){return I()(t)?[]:t.layers.map((function(e,n){return{code:n,description:e.name||"Layer ".concat(n)}}))}),[t]),d=(0,r.useMemo)((function(){return[].concat(Q(i.map((function(e){return O()(e)}))),Q(u.map((function(e){return O()(e)}))))}),[i,u]),h=(0,r.useMemo)((function(){var e=D()(d,"code");for(var n in l){var t,r=l[n],o=J(e[n].aliases);try{for(o.s();!(t=o.n()).done;){var i=t.value;e[i].symbol=r.symbol||e[i].symbol,e[i].faIcon=r.faIcon||e[i].faIcon}}catch(e){o.e(e)}finally{o.f()}}for(var a=0,s=["EXCL","AT","HASH","DLLR","PRCNT","CARET","AMPS","STAR","UNDER","PLUS","PIPE","TILDE2","COLON","TILDE","LT","QMARK","CLEAR2","PIPE2","LPAR","RPAR","LBRC","RBRC","DQT","GT"];a<s.length;a++)e[s[a]].modifiers=["LS"];return e}),[d,l]),m=(0,r.useMemo)((function(){return{code:h,behaviours:f.indexed,behavioursByContext:f.byContext,layer:D()(p,"code"),defines:t.defines}}),[h,f,p,t.defines]),b=(0,r.useMemo)((function(){return{behaviour:f,code:d}}),[f,d]),v=(0,r.useMemo)((function(){return function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"none";return e.enum?e.enum.map((function(e){return"object"===U(e)?e:{code:e}})):e.raw?[]:(b[e]||console.error("cannot find target for",e),"behaviour"===e?b.behaviour.context[t]:b[e])}}),[b]),g=(0,r.useMemo)((function(){return[].concat(Q(Object.keys(h)),Q(Object.keys(t.defines||{})))}),[h,t.defines]);return(0,G.jsx)(A.c.Provider,{value:{behaviorParameters:y,getSearchTargets:v,mergedGlyphs:l,sources:m,identifiers:g},children:n})},ne=t(45697),te=t.n(ne),re={},oe=te().string.isRequired,ie=te().arrayOf(te().shape(re));re.value=oe,re.params=ie;var ae=te().shape(re),se=te().shape({index:te().number,name:te().string,properties:te().shape({bindings:te().shape({parsed:te().arrayOf(ae).isRequired}).isRequired,"key-positions":te().shape({parsed:te().arrayOf(te().number).isRequired}).isRequired})}),ce=te().shape({index:te().number,name:te().string,properties:te().shape({bindings:te().shape({parsed:te().arrayOf(ae).isRequired}).isRequired,"sensor-bindings":te().shape({parsed:te().arrayOf(ae).isRequired})})}),ue=te().shape({layers:te().arrayOf(ce).isRequired,combos:te().arrayOf(se)}),le=t(95872),fe=t(7739),ye=t.n(fe);function pe(e){return e.every((function(e){return void 0===e.row&&void 0===e.col}))?["Layout in info.json has no row/col definitions. Generated keymap files will not be nicely formatted."]:[]}var de=t(2024);function he(e){return he="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},he(e)}function me(e){return function(e){if(Array.isArray(e))return be(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,n){if(e){if("string"==typeof e)return be(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?be(e,n):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function be(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function ve(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function ge(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==he(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==he(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===he(n)?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var ke=function(e){return e.name},_e=function(e){return e.labels[0]},Ae=function(e){var n;return null===(n=e.properties.label)||void 0===n?void 0:n.parsed};function je(e,n){var t=ye()(e,n);return Object.values(t).filter((function(e){return e.length>1}))}function xe(e){var n=e.layers.map((function(e,n){return{location:"Keymap - Layer #".concat(n," (").concat(e.name,")"),path:"keymap.layers[".concat(n,"]"),name:ke(e)}})),t=e.combos.map((function(e,n){return{location:"Combos - Combo #".concat(n," (").concat(e.name,")"),path:"combos[".concat(n,"].name"),name:e.name}})),r=e.macros.map((function(e,n){return{location:"Macros - Macro #".concat(n," (").concat(ke(e),")"),path:"macros[".concat(n,"].name"),name:ke(e)}})),o=function(e){return e.map((function(e,n){return{location:"Behaviors - Behavior #".concat(n," (").concat(_e(e),") - Name"),path:"behaviors[".concat(n,"].name"),name:ke(e)}}))}(e.behaviors),i=[].concat(me(je(n,"name")),me(je(t,"name")),me(je(r,"name")),me(je(o,"name"))),a=[].concat(me(n.filter((function(e){return de.includes(e.name)}))),me(t.filter((function(e){return de.includes(e.name)}))),me(r.filter((function(e){return de.includes(e.name)}))),me(o.filter((function(e){return de.includes(e.name)}))));return{duplicates:i,redefined:a,passwordMacros:me(r.filter((function(e){return n=e.name,[/(^|[\b_])pass(word)?([\b_]|$)/].some((function(e){return n.match(e)}));var n})))}}function we(e){var n=je([].concat(e.layers.reduce((function(e,n,t){var r=Ae(n);return r&&e.push({location:"Keymap - Layer #".concat(t," (").concat(n.name,")"),path:"keymap.layers[".concat(t,"].label"),label:r}),e}),[]),e.macros.reduce((function(e,n,t){return n.label&&e.push({location:"Macros - Macro #".concat(t," (").concat(Ae(n),") - Label"),path:"macros[".concat(t,"].label"),label:Ae(n)}),e}),[]),function(e){return e.reduce((function(e,n,t){var r=Ae(n),o=_e(n);return r&&e.push({location:"Behaviors - Behavior #".concat(t," (").concat(o,") - Label"),path:"behaviors[".concat(t,"].label"),label:r}),e}),[])}(e.behaviors)),"label");return{duplicates:n}}function Ee(e){var n=ye()([].concat(e.macros.map((function(e,n){return{location:"Macros > Macro #".concat(n," (").concat(_e(e),")"),path:"macros[".concat(n,"].name"),ref:_e(e)}})),function(e){return e.map((function(e,n){return{location:"Behaviors - Behavior #".concat(n," (").concat(_e(e),") - Bind"),path:"behaviors[".concat(n,"].bind"),ref:_e(e)}}))}(e.behaviors)),"ref");return{duplicates:Object.values(n).reduce((function(e,n){return n.length>1&&e.push(n),e}),[])}}function Oe(e){var n=[].concat(me(e.layers.reduce((function(e,n,t){var r,o;return null===(r=n.properties.bindings)||void 0===r||null===(o=r.parsed)||void 0===o||o.forEach((function(r,o){"&reset"===r.value&&e.push({location:"Keymap - Layer #".concat(t," (").concat(n.name,") - Key position ").concat(o),path:"keymap.layers[".concat(t,"].bindings[").concat(o,"]"),name:"&reset"})})),e}),[])),me(e.macros.reduce((function(e,n,t){return n.properties.bindings.parsed.forEach((function(r,o){"&reset"===r.value&&e.push({location:"Macros - Macro #".concat(t," (").concat(n.name,") - Binding position ").concat(o),path:"keymap.macros[".concat(t,"].properties.bindings[").concat(o,"].parsed"),name:"&reset"})})),e}),[])),me(e.combos.reduce((function(e,n,t){return n.properties.bindings.parsed.forEach((function(r,o){"&reset"===r.value&&e.push({location:"Combos - Combo #".concat(t," (").concat(n.name,")"),path:"keymap.combos[".concat(t,"].bindings[").concat(o,"]"),name:"&reset"})})),e}),[])),me(e.behaviors.reduce((function(e,n,t){var r,o;return null===(r=n.properties.bindings)||void 0===r||null===(o=r.parsed)||void 0===o||o.forEach((function(r,o){"&reset"!==r.value&&"&reset"!==r||e.push({location:"Behaviors - Behavior #".concat(t," (").concat(n.name,") - Bind position ").concat(o),path:"keymap.behaviors[".concat(t,"].parsed.bindings[").concat(o,"].parsed"),name:"&reset"})})),e}),[])));return{resetBindings:n}}var Ce=t(20817);function Se(e){return function(e){if(Array.isArray(e))return Pe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Be(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Be(e,n){if(e){if("string"==typeof e)return Pe(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Pe(e,n):void 0}}function Pe(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var Le=(0,r.lazy)((function(){return Promise.all([t.e(1040),t.e(8573),t.e(8371),t.e(8381)]).then(t.bind(t,98381))})),Ie=(0,r.lazy)((function(){return Promise.all([t.e(1040),t.e(8573),t.e(8371),t.e(7198)]).then(t.bind(t,57198))})),Te=(0,r.lazy)((function(){return Promise.all([t.e(3712),t.e(1040),t.e(8573),t.e(6849)]).then(t.bind(t,86849))})),De=(0,r.lazy)((function(){return Promise.all([t.e(1040),t.e(8573),t.e(5634)]).then(t.bind(t,35634))})),Me=(0,r.lazy)((function(){return t.e(727).then(t.bind(t,727))}));function Ne(e){var n,t,o=e.text,i=e.tabs,a=e.defaultTab,s=e.children,c=(n=(0,r.useState)(a),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,i,a,s=[],c=!0,u=!1;try{if(i=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;c=!1}else for(;!(c=(r=i.call(t)).done)&&(s.push(r.value),s.length!==n);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(n,t)||Be(n,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.")}()),u=c[0],l=c[1];return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)("h3",{style:{display:"inline"},children:o}),(0,G.jsx)("ul",{className:le.Z.editorModeTabs,children:i.map((function(e,n){var t=e.name,r=e.tabClasses,o=void 0===r?[]:r;return(0,G.jsx)("li",{onClick:function(){return l(n)},className:w()([u===n&&le.Z.activeEditTab].concat(Se(o))).join(" "),children:t},n)}))}),(0,G.jsx)(r.Suspense,{children:s[u]})]})}var Re=function(e){return e.keyboard.keymap};function Ze(e){var n=(0,i.v9)(Re),t=(0,r.useContext)(Ce.V).layout,o=(0,r.useMemo)((function(){return function(e,n){return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?ve(Object(t),!0).forEach((function(n){ge(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ve(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({nodeNames:xe(e),nodeLabels:we(e),nodeReferences:Ee(e),deprecations:Oe(e)},function(e){return{layoutMissingPositions:pe(e)}}(n))}(n,t)}),[n,t]),a=(0,r.useMemo)((function(){var e=o.nodeNames,n=o.nodeLabels,t=o.nodeReferences,r=o.deprecations,i=o.layoutMissingPositions;return e.duplicates.length+e.redefined.length+e.passwordMacros.length+n.duplicates.length+t.duplicates.length+r.resetBindings.length+i.length}),[o]),s=w()([{name:"layers",component:(0,G.jsx)(Te,{})},{name:"combos",component:(0,G.jsx)(Ie,{})},{name:"macros",component:(0,G.jsx)(De,{})},{name:(0,G.jsx)("span",{className:le.Z.beta,children:"behaviors"}),component:(0,G.jsx)(Le,{})},a>0&&{name:"warnings (".concat(a,")"),tabClasses:[le.Z.warningTab],component:(0,G.jsx)(Me,{sanityChecks:o})}]);return(0,G.jsx)(ee,{keymap:n,children:(0,G.jsx)(Ne,{text:"Editor mode:",tabs:s,defaultTab:0,children:s.map((function(e,n){return(0,G.jsx)(r.Fragment,{children:e.component},n)}))})})}Ze.propTypes={keymap:ue};var qe=Ze,Ge=t(41051),ze=t(2746),Ue={};Ue.styleTagTransform=b(),Ue.setAttributes=p(),Ue.insert=f().bind(null,"head"),Ue.domAPI=u(),Ue.insertStyleElement=h(),s()(ze.Z,Ue);var Fe=ze.Z&&ze.Z.locals?ze.Z.locals:void 0,Ke="https://github.com/nickcoutsos/keymap-editor";function Ye(){return(0,G.jsxs)("div",{className:Fe.wrapper,children:[(0,G.jsx)("label",{children:"Need help? Open an issue:"}),(0,G.jsxs)("a",{className:Fe.githubLink,target:"_blank",rel:"noreferrer",href:Ke,children:[(0,G.jsx)(Ge.Z,{collection:"brands",name:"github"}),"/nickcoutsos/keymap-editor"]})]})}var We=t(96186),Qe=t(64261);function Je(e){return Je="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Je(e)}function Ve(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function He(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?Ve(Object(t),!0).forEach((function(n){Xe(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Ve(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function Xe(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==Je(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==Je(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===Je(n)?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var $e={description:{fontStyle:"italic",fontSize:"90%"}};function en(e){var n=e.settings,t=e.onUpdate,r=e.onClose;function o(e,r){t(He(He({},n),{},Xe({},e,r)))}return(0,G.jsx)(Qe.Z,{onDismiss:r,children:(0,G.jsxs)(We.Z,{onDismiss:r,children:[(0,G.jsx)("h1",{children:"Settings"}),(0,G.jsx)("h2",{children:"Keycode glyphs"}),(0,G.jsx)("h3",{children:(0,G.jsxs)("label",{htmlFor:"enable-unicode-glyphs",children:[(0,G.jsx)("input",{id:"enable-unicode-glyphs",type:"checkbox",checked:n.unicodeGlyphs,onChange:function(e){return o("unicodeGlyphs",e.target.checked)}}),"Use Unicode Glyphs"]})}),(0,G.jsxs)("p",{style:$e.description,children:["Use unicode glyphs for visual representations of keycodes like ",(0,G.jsx)("code",{children:"Enter"})," (⮐), ",(0,G.jsx)("code",{children:"Right Arrow"})," (⏵), etc. You can disable this if the symbols don't render correctly."]}),(0,G.jsx)("h3",{children:(0,G.jsxs)("label",{htmlFor:"platform-specific-glyphs",children:["Platform specific glyphs",(0,G.jsxs)("select",{id:"platform-specific-glyphs",value:n.platformGlyphs||"auto",onChange:function(e){return o("platformGlyphs",e.target.value)},children:[(0,G.jsx)("option",{value:"auto",children:"Automatic"}),(0,G.jsx)("option",{value:"win",children:"Windows"}),(0,G.jsx)("option",{value:"mac",children:"macOS"})]})]})}),(0,G.jsxs)("p",{style:$e.description,children:["Render symbols specific to your platform. E.g., render left/right meta key as ",(0,G.jsx)(Ge.Z,{name:"windows fa-brands"})," for Windows, or ⌘ for macOS."]})]})})}en.propTypes={settings:te().object.isRequired,onUpdate:te().func.isRequired,onClose:te().func.isRequired},en.defaultProps={settings:{}};var nn=en,tn=t(94184),rn=t.n(tn),on=t(13311),an=t.n(on),sn=t(91829),cn=t(80031);function un(e){return un="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},un(e)}function ln(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function fn(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?ln(Object(t),!0).forEach((function(n){yn(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ln(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function yn(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==un(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==un(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===un(n)?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function pn(e){return(0,G.jsx)(Qe.Z,{children:(0,G.jsxs)(We.Z,fn(fn({},e),{},{children:[(0,G.jsx)("h2",{children:"This layout was Auto-Generated"}),(0,G.jsx)("p",{children:"Hi there! There wasn't a layout definition to accompany your keymap file, so the keymap editor tried to generate one automatically in a last-ditch effort to help you get into the app."}),(0,G.jsxs)("p",{children:["This layout definition was (or will be) saved when you first save keymap changes with the keymap editor, so remember that if there are any tweaks you'd like to make to improve it you can do so by editing the ",(0,G.jsx)("code",{children:"info.json"})," file."]}),cn.Yo]}))})}pn.propTypes={};var dn=pn,hn=t(69247);function mn(e){var n=e.onDismiss;return(0,G.jsx)(Qe.Z,{children:(0,G.jsxs)(We.Z,{onDismiss:n,children:[(0,G.jsx)("h2",{children:"Could not parse keymap"}),(0,G.jsx)("p",{children:"It looks like some bindings in your keymap are using custom pre-processor macros which isn't supported by the Keymap Editor. These macros make it difficult both to resolve bindings to behaviors and parameters, as well as to generate modified keymap code that is consistent with your original intentions."}),(0,G.jsx)("p",{children:"Please either continue editing your keymap by hand with these helpers or if you would like to use this editor, rewrite the keymap to use ZMK's syntax directly."}),cn.t6]})})}mn.propTypes={onDismiss:te().func.isRequired};var bn=mn;function vn(e){var n=e.onDismiss;return(0,G.jsx)(Qe.Z,{children:(0,G.jsxs)(We.Z,{onDismiss:n,children:[(0,G.jsx)("h2",{children:"Could not parse keymap"}),(0,G.jsx)("p",{children:"Something went wrong while trying to parse your keymap. It's hard to say what exactly, because I wasn't expecting this."}),(0,G.jsx)("p",{children:"A common occurrence here is keymaps using a variety of pre-processor macros to define layers/combos/etc."}),cn.t6]})})}vn.propTypes={onDismiss:te().func.isRequired};var gn=vn;function kn(e){var n=e.onDismiss;return(0,G.jsx)(Qe.Z,{children:(0,G.jsxs)(We.Z,{onDismiss:n,children:[(0,G.jsx)("h2",{children:"Could not parse Miryoku keymap"}),(0,G.jsx)("p",{children:"It looks like your keyboard is built using Miryoku to manage the configuration and keymap. Parsing and editing keymaps that use this syntax is unsupported by the Keymap Editor."}),(0,G.jsx)("p",{children:"Please either continue editing your keymap by hand with these helpers or if you would like to use this editor, rewrite the keymap to use ZMK's syntax directly."})]})})}kn.propTypes={onDismiss:te().func.isRequired};var _n=kn;function An(e){var n=e.onDismiss;return(0,G.jsx)(Qe.Z,{children:(0,G.jsxs)(We.Z,{onDismiss:n,children:[(0,G.jsx)("h2",{children:"Could not parse keymap"}),(0,G.jsx)("p",{children:"Missing devicetree root node."}),(0,G.jsx)("p",{children:"The keymap editor was unable to find a devicetree root node in your keymap. This means that either something is wrong with the parser or something is wrong with your keymap's syntax."}),(0,G.jsxs)("p",{children:["If you've been using the keymap editor succesfully up to now it's possible that it has introduced an error in the keymap file. Please reach out for support at ",cn.qM,"."]})]})})}An.propTypes={onDismiss:te().func.isRequired};var jn=An;function xn(e){var n=e.onDismiss;return(0,G.jsx)(Qe.Z,{children:(0,G.jsxs)(We.Z,{onDismiss:n,children:[(0,G.jsx)("h2",{children:"Could not parse keymap"}),(0,G.jsxs)("p",{children:["Detected use of ",(0,G.jsx)("code",{children:"zmk-nodefree-config"})]}),(0,G.jsx)("p",{children:"It looks like your keymap is built using helper functions from the zmk-nodefree-config library to replace devicetree syntax. Parsing and editing keymaps that use this syntax is unsupported by the Keymap Editor."}),(0,G.jsx)("p",{children:"Please either continue editing your keymap by hand with these helpers or if you would like to use this editor, rewrite the keymap to use ZMK's syntax directly."})]})})}xn.propTypes={onDismiss:te().func.isRequired};var wn=xn,En=t(28962),On=w()([En.IX&&{id:"demo",name:"Demo Keyboard",description:"Play around with a sample keymap"},En.qo&&{id:"local",name:"Local",description:"Hello, me",collapsible:!1},En.k0&&{id:"github",name:"GitHub",description:"Integrate with a GitHub repo, leveraging GitHub actions to compile firmware",collapsible:!0},En.mC&&{id:"clipboard",name:"Clipboard",description:"Read and write keymap data directly from your clipboard",isBeta:!0},En.XG&&window.showOpenFilePicker&&{id:"filesystem",name:"File System",description:"Read and write keymap files on your local filesystem",isBeta:!0}]),Cn=localStorage.getItem("selectedSource"),Sn=(1===On.length?On[0].id:null)||(On.find((function(e){return e.id===Cn}))?Cn:On[0].id),Bn=t(58723),Pn={};Pn.styleTagTransform=b(),Pn.setAttributes=p(),Pn.insert=f().bind(null,"head"),Pn.domAPI=u(),Pn.insertStyleElement=h(),s()(Bn.Z,Pn);var Ln=Bn.Z&&Bn.Z.locals?Bn.Z.locals:void 0;function In(e){return In="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},In(e)}function Tn(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function Dn(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?Tn(Object(t),!0).forEach((function(n){Mn(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Tn(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function Mn(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==In(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==In(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===In(n)?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function Nn(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,i,a,s=[],c=!0,u=!1;try{if(i=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;c=!1}else for(;!(c=(r=i.call(t)).done)&&(s.push(r.value),s.length!==n);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(e,n)||function(e,n){if(e){if("string"==typeof e)return Rn(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Rn(e,n):void 0}}(e,n)||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 Rn(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var Zn=(0,r.lazy)((function(){return t.e(7553).then(t.bind(t,67553))})),qn=(0,r.lazy)((function(){return t.e(2946).then(t.bind(t,2946))})),Gn=(0,r.lazy)((function(){return t.e(542).then(t.bind(t,80542))})),zn=(0,r.lazy)((function(){return Promise.all([t.e(3712),t.e(7406),t.e(9657)]).then(t.bind(t,62928))})),Un=(0,r.lazy)((function(){return Promise.all([t.e(3712),t.e(7406),t.e(5858)]).then(t.bind(t,8101))})),Fn=function(e){return e.keyboard};function Kn(e){var n=e.onSelect,t=(0,r.useRef)(),o=(0,i.v9)(Fn),a=Nn((0,r.useState)(Sn),2),s=a[0],c=a[1],u=Nn((0,r.useState)({autoGenerated:!1}),2),l=u[0].autoGenerated,f=u[1],y=Nn((0,r.useState)(null),2),p=y[0],d=y[1],h=(0,r.useCallback)((function(){return d(null)}),[d]),m=Nn((0,sn.Z)(!0),4),b=m[0],v=m[2],g=m[3],k=(0,r.useCallback)((function(){d({component:dn,onClose:h})}),[d,h]),_=an()(On,{id:s});!function(e,n){var t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];(0,r.useEffect)((function(){if(t){var r=function(t){var r=document.body.contains(t.target),o=e.current.contains(t.target);r&&!o&&n()};return document.body.addEventListener("click",r),function(){return document.body.removeEventListener("click",r)}}}),[e,t,n])}(t,g,!0===(null==_?void 0:_.collapsible)&&o&&b);var A=(0,r.useCallback)((function(e){n({source:e.id,keyboard:null}),c(e.id)}),[c,n]),j=(0,r.useCallback)((function(e){var t=e.keymap.warningFlags,r=void 0===t?[]:t,o=(e.layoutMetadata||{}).autoGenerated,i=void 0!==o&&o,a=function(e){switch(e[0]){case"USING_ZMK_NODEFREE_MACROS":return wn;case"USING_MIRYOKU_DTSI":return _n;case"USING_NON_ZMK_MACRO":return bn;case"KEYMAP_PARSING_FAILED":return gn;case"MISSING_ROOT_NODE":return jn;default:return null}}(r);if(a)return d({component:a,onClose:h}),void n({source:s,keyboard:null});f({autoGenerated:i}),n(Dn({source:s},e))}),[n,s,d,h]),x=(0,r.useCallback)((function(e){var t=e.dialog,r=e.dialogProps;d({component:t,dialogProps:r,onClose:h}),n({source:s,keyboard:null})}),[d,h,n,s]);return(0,r.useEffect)((function(){localStorage.setItem("selectedSource",s)}),[s]),(0,G.jsxs)("div",{ref:t,className:rn()(Ln.wrapper,Mn({},Ln.compact,!b)),children:[b&&(0,G.jsx)(hn.Ph,{label:"Source",value:_,options:On,onChange:A,getOptionLabel:function(e){return e.name},getOptionValue:function(e){return e.id},formatOptionLabel:function(e,n){return"value"===n.context?e.name:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)("div",{children:[e.name,e.isBeta&&(0,G.jsx)(Yn,{})]}),(0,G.jsx)("div",{className:Ln.sourceDescription,children:(0,G.jsx)("sub",{children:e.description})})]})}}),(null==p?void 0:p.component)&&(0,G.jsx)(p.component,Dn(Dn({},p.dialogProps||{}),{},{onDismiss:p.onClose})),(0,G.jsxs)(r.Suspense,{children:["local"===s&&(0,G.jsx)(Zn,{onError:x,onSelect:j}),"demo"===s&&(0,G.jsx)(qn,{onSelect:j}),"github"===s&&(0,G.jsx)(Gn,{expanded:b,onSelect:j,onError:x,onExpand:v}),"clipboard"===s&&(0,G.jsx)(zn,{onSelect:j,onError:x}),"filesystem"===s&&(0,G.jsx)(Un,{onSelect:j,onError:x})]}),l&&(0,G.jsxs)(hn.zx,{onClick:k,children:[(0,G.jsx)(Ge.Z,{name:"warning"})," Layout wrong?"]})]})}function Yn(){return(0,G.jsx)("span",{style:{color:"white",backgroundColor:"var(--error-highlight)",fontSize:"12px",fontWeight:"bold",padding:"1px 3px",margin:"2px",borderRadius:"6px",verticalAlign:"top"},children:"beta"})}Kn.propTypes={onSelect:te().func.isRequired};var Wn=Kn,Qn=t(93965),Jn=t(2968),Vn=t(14084),Hn={};Hn.styleTagTransform=b(),Hn.setAttributes=p(),Hn.insert=f().bind(null,"head"),Hn.domAPI=u(),Hn.insertStyleElement=h(),s()(Vn.Z,Hn);var Xn=Vn.Z&&Vn.Z.locals?Vn.Z.locals:void 0;function $n(e){return $n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$n(e)}function et(){et=function(){return e};var e={},n=Object.prototype,t=n.hasOwnProperty,r=Object.defineProperty||function(e,n,t){e[n]=t.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function c(e,n,t){return Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[n]}try{c({},"")}catch(e){c=function(e,n,t){return e[n]=t}}function u(e,n,t,o){var i=n&&n.prototype instanceof y?n:y,a=Object.create(i.prototype),s=new w(o||[]);return r(a,"_invoke",{value:_(e,t,s)}),a}function l(e,n,t){try{return{type:"normal",arg:e.call(n,t)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function y(){}function p(){}function d(){}var h={};c(h,i,(function(){return this}));var m=Object.getPrototypeOf,b=m&&m(m(E([])));b&&b!==n&&t.call(b,i)&&(h=b);var v=d.prototype=y.prototype=Object.create(h);function g(e){["next","throw","return"].forEach((function(n){c(e,n,(function(e){return this._invoke(n,e)}))}))}function k(e,n){function o(r,i,a,s){var c=l(e[r],e,i);if("throw"!==c.type){var u=c.arg,f=u.value;return f&&"object"==$n(f)&&t.call(f,"__await")?n.resolve(f.__await).then((function(e){o("next",e,a,s)}),(function(e){o("throw",e,a,s)})):n.resolve(f).then((function(e){u.value=e,a(u)}),(function(e){return o("throw",e,a,s)}))}s(c.arg)}var i;r(this,"_invoke",{value:function(e,t){function r(){return new n((function(n,r){o(e,t,n,r)}))}return i=i?i.then(r,r):r()}})}function _(e,n,t){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return{value:void 0,done:!0}}for(t.method=o,t.arg=i;;){var a=t.delegate;if(a){var s=A(a,t);if(s){if(s===f)continue;return s}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===r)throw r="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);r="executing";var c=l(e,n,t);if("normal"===c.type){if(r=t.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:t.done}}"throw"===c.type&&(r="completed",t.method="throw",t.arg=c.arg)}}}function A(e,n){var t=n.method,r=e.iterator[t];if(void 0===r)return n.delegate=null,"throw"===t&&e.iterator.return&&(n.method="return",n.arg=void 0,A(e,n),"throw"===n.method)||"return"!==t&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+t+"' method")),f;var o=l(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,f;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=void 0),n.delegate=null,f):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,f)}function j(e){var n={tryLoc:e[0]};1 in e&&(n.catchLoc=e[1]),2 in e&&(n.finallyLoc=e[2],n.afterLoc=e[3]),this.tryEntries.push(n)}function x(e){var n=e.completion||{};n.type="normal",delete n.arg,e.completion=n}function w(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(j,this),this.reset(!0)}function E(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function n(){for(;++r<e.length;)if(t.call(e,r))return n.value=e[r],n.done=!1,n;return n.value=void 0,n.done=!0,n};return o.next=o}}return{next:O}}function O(){return{value:void 0,done:!0}}return p.prototype=d,r(v,"constructor",{value:d,configurable:!0}),r(d,"constructor",{value:p,configurable:!0}),p.displayName=c(d,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var n="function"==typeof e&&e.constructor;return!!n&&(n===p||"GeneratorFunction"===(n.displayName||n.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,c(e,s,"GeneratorFunction")),e.prototype=Object.create(v),e},e.awrap=function(e){return{__await:e}},g(k.prototype),c(k.prototype,a,(function(){return this})),e.AsyncIterator=k,e.async=function(n,t,r,o,i){void 0===i&&(i=Promise);var a=new k(u(n,t,r,o),i);return e.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},g(v),c(v,s,"Generator"),c(v,i,(function(){return this})),c(v,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var n=Object(e),t=[];for(var r in n)t.push(r);return t.reverse(),function e(){for(;t.length;){var r=t.pop();if(r in n)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=E,w.prototype={constructor:w,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(x),!e)for(var n in this)"t"===n.charAt(0)&&t.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function r(t,r){return a.type="throw",a.arg=e,n.next=t,r&&(n.method="next",n.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=t.call(i,"catchLoc"),c=t.call(i,"finallyLoc");if(s&&c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(e,n){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&t.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=n&&n<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=n,i?(this.method="next",this.next=i.finallyLoc,f):this.complete(a)},complete:function(e,n){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&n&&(this.next=n),f},finish:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),x(t),f}},catch:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.tryLoc===e){var r=t.completion;if("throw"===r.type){var o=r.arg;x(t)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,t){return this.delegate={iterator:E(e),resultName:n,nextLoc:t},"next"===this.method&&(this.arg=void 0),f}},e}function nt(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,o,i,a,s=[],c=!0,u=!1;try{if(i=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;c=!1}else for(;!(c=(r=i.call(t)).done)&&(s.push(r.value),s.length!==n);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(e,n)||function(e,n){if(e){if("string"==typeof e)return tt(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?tt(e,n):void 0}}(e,n)||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 tt(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function rt(e,n,t,r,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void t(e)}s.done?n(c):Promise.resolve(c).then(r,o)}function ot(e){return function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){rt(i,r,o,a,s,"next",e)}function s(e){rt(i,r,o,a,s,"throw",e)}a(void 0)}))}}function it(e){return" ".concat(e.fileName,":").concat(e.lineNumber,":").concat(e.columnNumber)}var at=(0,G.jsx)(Jn.Z,{external:!0,href:"https://github.com/nickcoutsos/keymap-editor/issues/new",children:"new issue"});function st(e,n){return ct.apply(this,arguments)}function ct(){return(ct=ot(et().mark((function e(n,t){var r,o,i;return et().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r="".concat(En.ny,"/v2/events/client-errors"),o=JSON.stringify({error:n.toString(),stacktrace:t}),e.next=4,fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:o});case 4:(i=e.sent).ok||console.error("Failed to submit error report",i);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ut(e){var n=e.error,o=nt((0,r.useState)([]),2),i=o[0],a=o[1],s=nt((0,r.useState)(""),2),c=s[0],u=s[1],l=nt((0,r.useState)(!1),2),f=l[0],y=l[1];return(0,r.useEffect)((function(){function e(){return(e=ot(et().mark((function e(){var r,o;return et().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.e(401).then(t.t.bind(t,70401,23));case 2:return r=e.sent,e.next=5,r.fromError(n);case 5:o=e.sent,a(o),st(n,o);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}!function(){e.apply(this,arguments)}()}),[a,n]),(0,r.useEffect)((function(){u(function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return"\n".concat(e.name,"\n\n").concat(e.message,"\n\n").concat(n.map(it).join("\n"),"\n").trim()}(n,i))}),[n,i]),(0,r.useEffect)((function(){f&&setTimeout((function(){y(!1)}),3e3)}),[f,y]),(0,G.jsx)(Qe.Z,{children:(0,G.jsxs)(We.Z,{dismissText:!1,style:{maxWidth:"700px"},children:[(0,G.jsx)("h2",{children:"Unexpected error"}),(0,G.jsxs)("p",{children:["Something unexpected happened and the keymap editor app cannot recover. Please consider taking a moment to open a ",at,"with the details below to help me investigate and improve the app."]}),(0,G.jsxs)("div",{className:Xn.stackTrace,children:[(0,G.jsx)("pre",{children:c}),(0,G.jsx)(j.Z,{icon:"copy",title:"Copy error text",className:Xn.button,onClick:function(){var e="".concat("```","\n").concat(c,"\n").concat("```");navigator.clipboard.writeText(e).then((function(){return y(!0)}))}}),f&&(0,G.jsx)("div",{className:Xn.copyMessage,children:"Copied!"})]})]})})}ut.propTypes={error:te().instanceOf(Error).isRequired};var lt=ut;function ft(e){return ft="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ft(e)}function yt(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,(void 0,o=function(e,n){if("object"!==ft(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==ft(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(r.key),"symbol"===ft(o)?o:String(o)),r)}var o}function pt(e,n){return pt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},pt(e,n)}function dt(e){return dt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},dt(e)}var ht=function(e){!function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),n&&pt(e,n)}(s,e);var n,t,r,o,i,a=(o=s,i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=dt(o);if(i){var t=dt(this).constructor;e=Reflect.construct(n,arguments,t)}else e=n.apply(this,arguments);return function(e,n){if(n&&("object"===ft(n)||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,e)});function s(e){var n;return function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,s),(n=a.call(this,e)).state={error:null},n}return n=s,r=[{key:"getDerivedStateFromError",value:function(e){return{error:e}}}],(t=[{key:"render",value:function(){var e=this.props.children,n=this.state.error;return n?(0,G.jsx)(lt,{error:n}):e}}])&&yt(n.prototype,t),r&&yt(n,r),Object.defineProperty(n,"prototype",{writable:!1}),s}(r.Component);function mt(e){var n=e.onDismiss;return(0,G.jsx)(Qe.Z,{children:(0,G.jsxs)(We.Z,{onDismiss:n,children:[(0,G.jsx)("h2",{children:"Failed to save keymap changes"}),(0,G.jsx)("p",{children:"Sorry, an unexpected error occurred while trying to save your keymap."}),(0,G.jsx)("p",{children:"Please try again or raise an issue if the problem persists and I'll try to work it out with you. Seriously I can only get this right if I know what's wrong, and in some cases that comes down to people using this editor in more advanced ways than I myself have."}),(0,G.jsx)("p",{children:cn.qM})]})})}mt.propTypes={onDismiss:te().func.isRequired};var bt=mt;function vt(e){return vt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},vt(e)}var gt=["source","layout","keymap","sensors"];function kt(){kt=function(){return e};var e={},n=Object.prototype,t=n.hasOwnProperty,r=Object.defineProperty||function(e,n,t){e[n]=t.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function c(e,n,t){return Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[n]}try{c({},"")}catch(e){c=function(e,n,t){return e[n]=t}}function u(e,n,t,o){var i=n&&n.prototype instanceof y?n:y,a=Object.create(i.prototype),s=new w(o||[]);return r(a,"_invoke",{value:_(e,t,s)}),a}function l(e,n,t){try{return{type:"normal",arg:e.call(n,t)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var f={};function y(){}function p(){}function d(){}var h={};c(h,i,(function(){return this}));var m=Object.getPrototypeOf,b=m&&m(m(E([])));b&&b!==n&&t.call(b,i)&&(h=b);var v=d.prototype=y.prototype=Object.create(h);function g(e){["next","throw","return"].forEach((function(n){c(e,n,(function(e){return this._invoke(n,e)}))}))}function k(e,n){function o(r,i,a,s){var c=l(e[r],e,i);if("throw"!==c.type){var u=c.arg,f=u.value;return f&&"object"==vt(f)&&t.call(f,"__await")?n.resolve(f.__await).then((function(e){o("next",e,a,s)}),(function(e){o("throw",e,a,s)})):n.resolve(f).then((function(e){u.value=e,a(u)}),(function(e){return o("throw",e,a,s)}))}s(c.arg)}var i;r(this,"_invoke",{value:function(e,t){function r(){return new n((function(n,r){o(e,t,n,r)}))}return i=i?i.then(r,r):r()}})}function _(e,n,t){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return{value:void 0,done:!0}}for(t.method=o,t.arg=i;;){var a=t.delegate;if(a){var s=A(a,t);if(s){if(s===f)continue;return s}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===r)throw r="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);r="executing";var c=l(e,n,t);if("normal"===c.type){if(r=t.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:t.done}}"throw"===c.type&&(r="completed",t.method="throw",t.arg=c.arg)}}}function A(e,n){var t=n.method,r=e.iterator[t];if(void 0===r)return n.delegate=null,"throw"===t&&e.iterator.return&&(n.method="return",n.arg=void 0,A(e,n),"throw"===n.method)||"return"!==t&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+t+"' method")),f;var o=l(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,f;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=void 0),n.delegate=null,f):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,f)}function j(e){var n={tryLoc:e[0]};1 in e&&(n.catchLoc=e[1]),2 in e&&(n.finallyLoc=e[2],n.afterLoc=e[3]),this.tryEntries.push(n)}function x(e){var n=e.completion||{};n.type="normal",delete n.arg,e.completion=n}function w(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(j,this),this.reset(!0)}function E(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function n(){for(;++r<e.length;)if(t.call(e,r))return n.value=e[r],n.done=!1,n;return n.value=void 0,n.done=!0,n};return o.next=o}}return{next:O}}function O(){return{value:void 0,done:!0}}return p.prototype=d,r(v,"constructor",{value:d,configurable:!0}),r(d,"constructor",{value:p,configurable:!0}),p.displayName=c(d,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var n="function"==typeof e&&e.constructor;return!!n&&(n===p||"GeneratorFunction"===(n.displayName||n.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,c(e,s,"GeneratorFunction")),e.prototype=Object.create(v),e},e.awrap=function(e){return{__await:e}},g(k.prototype),c(k.prototype,a,(function(){return this})),e.AsyncIterator=k,e.async=function(n,t,r,o,i){void 0===i&&(i=Promise);var a=new k(u(n,t,r,o),i);return e.isGeneratorFunction(t)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},g(v),c(v,s,"Generator"),c(v,i,(function(){return this})),c(v,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var n=Object(e),t=[];for(var r in n)t.push(r);return t.reverse(),function e(){for(;t.length;){var r=t.pop();if(r in n)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=E,w.prototype={constructor:w,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(x),!e)for(var n in this)"t"===n.charAt(0)&&t.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function r(t,r){return a.type="throw",a.arg=e,n.next=t,r&&(n.method="next",n.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=t.call(i,"catchLoc"),c=t.call(i,"finallyLoc");if(s&&c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(e,n){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&t.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=n&&n<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=n,i?(this.method="next",this.next=i.finallyLoc,f):this.complete(a)},complete:function(e,n){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&n&&(this.next=n),f},finish:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),x(t),f}},catch:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.tryLoc===e){var r=t.completion;if("throw"===r.type){var o=r.arg;x(t)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,t){return this.delegate={iterator:E(e),resultName:n,nextLoc:t},"next"===this.method&&(this.arg=void 0),f}},e}function _t(e,n,t,r,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void t(e)}s.done?n(c):Promise.resolve(c).then(r,o)}var At=function(){var e=(0,i.v9)((function(e){return e})),n=(0,i.I0)(),t=e.sourceOther,o=e.keyboard,a=e.saveError,s=e.theme,c=e.settingsVisible,u=e.experimentalSettings;(0,r.useEffect)((function(){var e;if(null!=t&&t.github)return(e=kt().mark((function e(){var n,o,i;return kt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.github,o=n.repository,i=n.branch,e.t0=r,e.next=4,Qn.Z.fetchBuildStatus(o,i);case 4:e.t1=e.sent,(0,e.t0)(e.t1);case 6:case"end":return e.stop()}}),e)})),function(){var n=this,t=arguments;return new Promise((function(r,o){var i=e.apply(n,t);function a(e){_t(i,r,o,a,s,"next",e)}function s(e){_t(i,r,o,a,s,"throw",e)}a(void 0)}))})(),Qn.Z.on("build-update",r),function(){return Qn.Z.off("build-update",r)};function r(e){e.head_branch===t.github.branch&&n({type:"GITHUB_BUILD_UPDATE",build:e})}n({type:"GITHUB_BUILD_UPDATE",build:null})}),[t,n]);var l=(0,r.useCallback)((function(e){var t=e.source,r=e.layout,o=e.keymap,i=e.sensors,a=void 0===i?[]:i,s=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,gt);n(o?{type:"SELECT_KEYBOARD",source:t,sourceOther:s,layout:r,keymap:o,sensors:a}:{type:"CLEAR_KEYBOARD_SELECTION"})}),[n]),f=(0,r.useCallback)((function(e){n({type:"SETTINGS_UPDATE",settings:e})}),[n]),y=(0,r.useCallback)((function(){return n({type:"SETTINGS_OPEN"})}),[n]);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ht,{children:(0,G.jsxs)(A.J.Provider,{value:{settings:u,openSettingsDialog:y},children:[(0,G.jsx)(Wn,{onSelect:l}),(0,G.jsxs)("div",{id:"settings-bar",children:[(0,G.jsx)(j.Z,{id:"light-mode",title:"Toggle theme",icon:{light:"sun",dark:"moon",system:"circle-half-stroke"}[s]||"circle-half-stroke",onClick:function(){return n({type:"CYCLE_THEME"})}}),(0,G.jsx)(j.Z,{id:"settings-button",icon:"cog",onClick:y}),c&&(0,G.jsx)(nn,{settings:u,onUpdate:f,onClose:function(){return n({type:"SETTINGS_CLOSE"})}})]}),(0,G.jsxs)(R.Z,{children:[o&&(0,G.jsx)(Ce.S,{layout:o.layout,children:(0,G.jsx)(qe,{keymap:o.keymap,sensors:o.sensors})}),a&&(0,G.jsx)(bt,{onDismiss:function(){return n({type:"CLEAR_SAVE_ERROR"})}})]})]})}),(0,G.jsx)(Ye,{})]})},jt=t(78718),xt=t.n(jt),wt=t(41696);function Et(e){return Et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Et(e)}function Ot(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function Ct(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?Ot(Object(t),!0).forEach((function(n){St(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Ot(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function St(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==Et(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==Et(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===Et(n)?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function Bt(){var e=JSON.parse(localStorage.getItem("experimental-settings")||"{}");return{definitions:null,source:null,sourceOther:null,keyboard:null,_unmodifiedKeymap:null,saving:null,saveError:null,settingsVisible:null,commitDialogOpen:!1,theme:JSON.parse(localStorage.getItem("theme")),experimentalSettings:{unicodeGlyphs:P()(e,"unicodeGlyphs",!0),platformGlyphs:P()(e,"platformGlyphs","auto"),enableBehaviorEditing:P()(e,"enableBehaviorEditing",!1)},latestBuild:null}}var Pt=Bt();var Lt=t(14890),It=t(97168),Tt=t(80736),Dt=t(2732),Mt=t(12736),Nt=t(28291);function Rt(e){return Rt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Rt(e)}function Zt(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function qt(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?Zt(Object(t),!0).forEach((function(n){Gt(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Zt(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function Gt(e,n,t){return(n=function(e){var n=function(e,n){if("object"!==Rt(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!==Rt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===Rt(n)?n:String(n)}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var zt=(0,Lt.UY)({layout:function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]},sensors:function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]},keymap:(0,Lt.UY)({warningFlags:function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]},defines:function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]},headers:function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]},chosen:function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}},behaviors:Nt.ZP,layers:Tt.ZP,combos:Dt.ZP,macros:Mt.ZP})}),Ut=(0,It.xC)({reducer:function(e,n){var t=function(e,n){switch(n.type){case"INITIALIZE":return Bt();case"DEFINITIONS_SET":return Ct(Ct({},e),{},{definitions:n.definitions});case"CLEAR_KEYBOARD_SELECTION":return Ct(Ct({},e),{},{keyboard:null});case"SELECT_KEYBOARD":return function(e,n){var t=e.keyboard,r=xt()(n,["layout","keymap","sensors"]);return(0,wt.u)(r.keymap),Ct(Ct({},e),{},{source:n.source,sourceOther:n.sourceOther,keyboard:Ct(Ct({},t),r),_unmodifiedKeymap:O()(r.keymap)})}(e,n);case"COMMIT_DIALOG_OPEN":return Ct(Ct({},e),{},{commitDialogOpen:!0});case"COMMIT_DIALOG_CLOSE":return Ct(Ct({},e),{},{commitDialogOpen:!1});case"GITHUB_BUILD_UPDATE":return Ct(Ct({},e),{},{latestBuild:n.build});case"KEYMAP_SAVE_START":return Ct(Ct({},e),{},{saving:!0,saveError:!1});case"KEYMAP_SAVE_SUCCESS":return function(e,n){var t=Ct({},n.keymap);return(0,wt.u)(t),Ct(Ct({},e),{},{saving:!1,unsaved:!1,keyboard:Ct(Ct({},e.keyboard),{},{keymap:t}),_unmodifiedKeymap:t})}(e,n);case"KEYMAP_SAVE_FAILURE":return Ct(Ct({},e),{},{saving:!1,saveError:!0});case"CLEAR_SAVE_ERROR":return Ct(Ct({},e),{},{saveError:null});case"SETTINGS_OPEN":return Ct(Ct({},e),{},{settingsVisible:!0});case"SETTINGS_CLOSE":return Ct(Ct({},e),{},{settingsVisible:!1});case"SETTINGS_UPDATE":return localStorage.setItem("experimental-settings",JSON.stringify(n.settings)),Ct(Ct({},e),{},{experimentalSettings:n.settings});case"CYCLE_THEME":return function(e,n){var t=["light","dark","system"],r=t.indexOf(e.theme),o=t.at((r+1)%t.length);return localStorage.setItem("theme",'"'.concat(o,'"')),document.body.dataset.theme=o,Ct(Ct({},e),{},{theme:o})}(e);default:return e}}(e,n);return qt(qt({},t),{},{keyboard:t.keyboard&&qt(qt({},t.keyboard),zt(t.keyboard,n))})},preloadedState:Pt});document.body.dataset.theme=Pt.theme,o.createRoot(document.getElementById("app-root")).render((0,G.jsx)(r.StrictMode,{children:(0,G.jsx)(i.zt,{store:Ut,children:(0,G.jsx)(At,{})})}))},26523:function(e,n,t){"use strict";t.d(n,{Pi:function(){return l},j4:function(){return y},kn:function(){return f}});var r=t(35161),o=t.n(r);function i(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,n){if(e){if("string"==typeof e)return a(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?a(e,n):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var s=65,c=5;function u(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return{x:e.x*(s+c),y:e.y*(s+c),u:n.u*s+c*(n.u-1),h:n.h*s+c*(n.h-1),rx:(e.x-(t.x||e.x))*-(s+c),ry:(e.y-(t.y||e.y))*-(s+c),a:t.a||0}}function l(e,n,t){var r=u(e,n,t),o=r.x,i=r.y,a=r.u,s=r.h,c=r.a,l=r.rx,f=r.ry;return{top:"".concat(i,"px"),left:"".concat(o,"px"),width:"".concat(a,"px"),height:"".concat(s,"px"),transformOrigin:"".concat(l,"px ").concat(f,"px"),transform:"rotate(".concat(c||0,"deg)")}}function f(e,n,t){var r=u(e,n,t),o=r.x,i=r.y,a=r.u,s=r.h,c=r.a,l=r.rx,f=r.ry;return[{x:0,y:0},{x:a,y:0},{x:a,y:s},{x:0,y:s}].map((function(e){var n=e.x-l,t=e.y-f,r=Math.PI*c/180;return{x:l+n*Math.cos(r)-t*Math.sin(r),y:f+t*Math.cos(r)+n*Math.sin(r)}})).map((function(e){return{x:e.x+o,y:e.y+i}}))}function y(e,n,t){var r=f(e,n,t),a=o()(r,"x"),s=o()(r,"y");return{min:{x:Math.min.apply(Math,i(a)),y:Math.min.apply(Math,i(s))},max:{x:Math.max.apply(Math,i(a)),y:Math.max.apply(Math,i(s))}}}},2596:function(e,n,t){"use strict";t.d(n,{G:function(){return l},j:function(){return f}});var r=t(39693),o=t.n(r);function i(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=a(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,c=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return s=e.done,e},e:function(e){c=!0,i=e},f:function(){try{s||null==t.return||t.return()}finally{if(c)throw i}}}}function a(e,n){if(e){if("string"==typeof e)return s(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?s(e,n):void 0}}function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function c(e){return(n=e,function(e){if(Array.isArray(e))return s(e)}(n)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||a(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).sort((function(e,n){return e.length-n.length}))[0];var n}var u=/^(.+?)\((code)\)$/;function l(e){return e.reduce((function(e,n){var t,r=n.description,o=n.context,a=n.symbol,s=n.faIcon,l=n.modifiers,f=void 0===l?[]:l,y=n.names.filter((function(e){return!e.match(u)})),p=c(y),d=n.names.map((function(e){return e.match(u)})).filter((function(e){return!!e}))[0],h={name:p,aliases:y,description:r,context:o,faIcon:s,symbol:a||p,modifiers:f,params:[]},m=i(y);try{for(m.s();!(t=m.n()).done;){var b=t.value;e.push(Object.assign({},h,{code:b,isModifier:!!d}))}}catch(e){m.e(e)}finally{m.f()}return d&&e.push(Object.assign({},h,{code:d[1],params:d[2].split(",")})),e}),[])}function f(e,n){return o()([e.basic,n.unicode&&e.unicode,"mac"===n.platform&&e.platforms.mac,"win"===n.platform&&e.platforms.win]).reduce((function(e,n){var t,r=i(n);try{for(r.s();!(t=r.n()).done;){var o=t.value,a=o.names.filter((function(e){return!e.match(u)})),s=c(a);e[s]||(e[s]={}),e[s].symbol=e[s].symbol||o.symbol,e[s].faIcon=e[s].faIcon||o.faIcon}}catch(e){r.e(e)}finally{r.f()}return e}),{})}},41696:function(e,n,t){"use strict";t.d(n,{L:function(){return y},u:function(){return f}});var r=t(13311),o=t.n(r),i=t(27361),a=t.n(i),s=t(78718),c=t.n(s);function u(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,n){if(e){if("string"==typeof e)return l(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?l(e,n):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function f(e){e.layers=e.layers.map((function(e){return c()(e,["index","name","labels","properties"])})),e.combos=e.combos.map((function(e){return c()(e,["index","name","labels","properties"])})),e.behaviors=e.behaviors.map((function(e){return c()(e,["index","name","labels","properties","params"])})),e.macros=e.macros.map((function(e){return c()(e,["index","name","labels","properties"])}))}function y(e,n){var t=e.value,r=e.params,i=n[t]||[],s=function(e,n){var t=a()(e,"[0]",{}),r=a()(n,"[0]");if(null!=r&&r.enum){var i={code:t.value},s=o()(r.enum,i);if(null!=s&&s.additionalParams)return s.additionalParams}return[]}(r,i);return[].concat(u(i),u(s))}},81485:function(e,n,t){"use strict";t.d(n,{J:function(){return i},c:function(){return o}});var r=t(67294),o=(0,r.createContext)({getSearchTargets:null}),i=(0,r.createContext)({settings:null,openSettingsDialog:null})},39087:function(e,n,t){"use strict";var r=t(87537),o=t.n(r),i=t(23645),a=t.n(i)()(o());a.push([e.id,':root {\n --bg: white;\n --bg-rgb: 255,255,255;\n --fg: black;\n\t--dark-red: #910e0e;\n\t--dark-blue: #6d99c6;\n --error-highlight: rgb(179, 60, 60);\n --selection: rgb(60, 179, 113);\n --hover-selection: rgba(60, 179, 113, 0.85);\n --delete: rgb(179, 60, 72);\n --delete-faint: rgba(179, 60, 72, 0.6);\n --link: royalblue;\n --link-hover: #6d99c6;\n --key-bg-base: #f2f2f2;\n --key-bg-hover: white;\n --key-bg-highlight: sandybrown;\n --key-color-base: hsl(0, 0%, 30%);\n --key-color-extreme: #313131;\n --key-color-hover: white;\n --code-bg: rgba(0, 0, 0, 0.15);\n}\nhtml {\n font-family: sans-serif;\n}\nhtml, body {\n\twidth: 100vw;\n\theight: 100vh;\n\toverflow: auto;\n\tpadding: 0;\n\tmargin: 0;\n background-color: var(--bg);\n color: var(--fg);\n\n transition: 300ms ease-in-out;\n transition-property: color, background-color, border-color;\n}\n\nh1, h2, h3, h4, h5, h6 {\n font-family: Quicksand, avenir, sans-serif;\n}\n\nbody[data-theme="dark"] {\n color-scheme: dark;\n --fg: white;\n --bg: hsl(211, 31.9%, 13%);\n --bg-rgb: 17,34,51;\n --dialog-bg: hsl(210, 30%, 17%);\n --key-bg-base: hsl(208.2, 23%, 25%);\n --key-color-base: hsl(0, 0%, 90%);\n --key-color-extreme: #e7e7e7;\n}\n@media (prefers-color-scheme: dark) {\n body[data-theme="system"] {\n color-scheme: dark;\n --fg: white;\n --bg: hsl(211, 31.9%, 13%);\n --bg-rgb: 17,34,51;\n --dialog-bg: hsl(210, 30%, 17%);\n --key-bg-base: hsl(208.2, 23%, 25%);\n --key-color-base: hsl(0, 0%, 90%);\n --key-color-extreme: #e7e7e7;\n }\n}\n\nh3 {\n margin-bottom: 10px;\n}\n\na { color: var(--link) }\na:hover { color: var(--link-hover) }\n\ncode {\n background-color: var(--code-bg);\n border-radius: 2px;\n padding: .15em .3em .05em;\n}\n\np {\n line-height: 1.3rem;\n}\n\n#actions {\n\tposition: absolute;\n display: flex;\n\tbottom: 5px;\n\tright: 5px;\n gap: 4px;\n}\n\n#actions button {\n display: inline-block;\n cursor: pointer;\n background-color: var(--hover-selection);\n color: white;\n\n font-size: 16px;\n border: none;\n border-radius: 5px;\n padding: 0 5px;\n\n height: 30px;\n line-height: 30px;\n vertical-align: middle;\n}\n\n#actions button[disabled] {\n filter: saturate(20%);\n opacity: .5;\n cursor: not-allowed;\n}\n\n#settings-bar {\n position: absolute;\n z-index: 5;\n top: 10px;\n right: 10px;\n}\n\n#settings-bar button {\n background: none;\n color: var(--fg);\n border: none;\n}\n#settings-bar button:hover {\n cursor: pointer;\n color: royalblue;\n}\n\n.fa-delete-right::before {\n content: \'\\f55a\';\n transform-origin: center;\n transform: rotateZ(180deg);\n display: inline-block;\n}\n',"",{version:3,sources:["webpack://./src/App.css"],names:[],mappings:"AAAA;EACE,WAAW;EACX,qBAAqB;EACrB,WAAW;CACZ,mBAAmB;CACnB,oBAAoB;EACnB,mCAAmC;EACnC,8BAA8B;EAC9B,2CAA2C;EAC3C,0BAA0B;EAC1B,sCAAsC;EACtC,iBAAiB;EACjB,qBAAqB;EACrB,sBAAsB;EACtB,qBAAqB;EACrB,8BAA8B;EAC9B,iCAAiC;EACjC,4BAA4B;EAC5B,wBAAwB;EACxB,8BAA8B;AAChC;AACA;EACE,uBAAuB;AACzB;AACA;CACC,YAAY;CACZ,aAAa;CACb,cAAc;CACd,UAAU;CACV,SAAS;EACR,2BAA2B;EAC3B,gBAAgB;;EAEhB,6BAA6B;EAC7B,0DAA0D;AAC5D;;AAEA;EACE,0CAA0C;AAC5C;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,0BAA0B;EAC1B,kBAAkB;EAClB,+BAA+B;EAC/B,mCAAmC;EACnC,iCAAiC;EACjC,4BAA4B;AAC9B;AACA;EACE;IACE,kBAAkB;IAClB,WAAW;IACX,0BAA0B;IAC1B,kBAAkB;IAClB,+BAA+B;IAC/B,mCAAmC;IACnC,iCAAiC;IACjC,4BAA4B;EAC9B;AACF;;AAEA;EACE,mBAAmB;AACrB;;AAEA,IAAI,mBAAmB;AACvB,UAAU,yBAAyB;;AAEnC;EACE,gCAAgC;EAChC,kBAAkB;EAClB,yBAAyB;AAC3B;;AAEA;EACE,mBAAmB;AACrB;;AAEA;CACC,kBAAkB;EACjB,aAAa;CACd,WAAW;CACX,UAAU;EACT,QAAQ;AACV;;AAEA;EACE,qBAAqB;EACrB,eAAe;EACf,wCAAwC;EACxC,YAAY;;EAEZ,eAAe;EACf,YAAY;EACZ,kBAAkB;EAClB,cAAc;;EAEd,YAAY;EACZ,iBAAiB;EACjB,sBAAsB;AACxB;;AAEA;EACE,qBAAqB;EACrB,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;EAClB,UAAU;EACV,SAAS;EACT,WAAW;AACb;;AAEA;EACE,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;AACd;AACA;EACE,eAAe;EACf,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;EAChB,wBAAwB;EACxB,0BAA0B;EAC1B,qBAAqB;AACvB",sourcesContent:[':root {\n --bg: white;\n --bg-rgb: 255,255,255;\n --fg: black;\n\t--dark-red: #910e0e;\n\t--dark-blue: #6d99c6;\n --error-highlight: rgb(179, 60, 60);\n --selection: rgb(60, 179, 113);\n --hover-selection: rgba(60, 179, 113, 0.85);\n --delete: rgb(179, 60, 72);\n --delete-faint: rgba(179, 60, 72, 0.6);\n --link: royalblue;\n --link-hover: #6d99c6;\n --key-bg-base: #f2f2f2;\n --key-bg-hover: white;\n --key-bg-highlight: sandybrown;\n --key-color-base: hsl(0, 0%, 30%);\n --key-color-extreme: #313131;\n --key-color-hover: white;\n --code-bg: rgba(0, 0, 0, 0.15);\n}\nhtml {\n font-family: sans-serif;\n}\nhtml, body {\n\twidth: 100vw;\n\theight: 100vh;\n\toverflow: auto;\n\tpadding: 0;\n\tmargin: 0;\n background-color: var(--bg);\n color: var(--fg);\n\n transition: 300ms ease-in-out;\n transition-property: color, background-color, border-color;\n}\n\nh1, h2, h3, h4, h5, h6 {\n font-family: Quicksand, avenir, sans-serif;\n}\n\nbody[data-theme="dark"] {\n color-scheme: dark;\n --fg: white;\n --bg: hsl(211, 31.9%, 13%);\n --bg-rgb: 17,34,51;\n --dialog-bg: hsl(210, 30%, 17%);\n --key-bg-base: hsl(208.2, 23%, 25%);\n --key-color-base: hsl(0, 0%, 90%);\n --key-color-extreme: #e7e7e7;\n}\n@media (prefers-color-scheme: dark) {\n body[data-theme="system"] {\n color-scheme: dark;\n --fg: white;\n --bg: hsl(211, 31.9%, 13%);\n --bg-rgb: 17,34,51;\n --dialog-bg: hsl(210, 30%, 17%);\n --key-bg-base: hsl(208.2, 23%, 25%);\n --key-color-base: hsl(0, 0%, 90%);\n --key-color-extreme: #e7e7e7;\n }\n}\n\nh3 {\n margin-bottom: 10px;\n}\n\na { color: var(--link) }\na:hover { color: var(--link-hover) }\n\ncode {\n background-color: var(--code-bg);\n border-radius: 2px;\n padding: .15em .3em .05em;\n}\n\np {\n line-height: 1.3rem;\n}\n\n#actions {\n\tposition: absolute;\n display: flex;\n\tbottom: 5px;\n\tright: 5px;\n gap: 4px;\n}\n\n#actions button {\n display: inline-block;\n cursor: pointer;\n background-color: var(--hover-selection);\n color: white;\n\n font-size: 16px;\n border: none;\n border-radius: 5px;\n padding: 0 5px;\n\n height: 30px;\n line-height: 30px;\n vertical-align: middle;\n}\n\n#actions button[disabled] {\n filter: saturate(20%);\n opacity: .5;\n cursor: not-allowed;\n}\n\n#settings-bar {\n position: absolute;\n z-index: 5;\n top: 10px;\n right: 10px;\n}\n\n#settings-bar button {\n background: none;\n color: var(--fg);\n border: none;\n}\n#settings-bar button:hover {\n cursor: pointer;\n color: royalblue;\n}\n\n.fa-delete-right::before {\n content: \'\\f55a\';\n transform-origin: center;\n transform: rotateZ(180deg);\n display: inline-block;\n}\n'],sourceRoot:""}]),n.Z=a},51424:function(e,n,t){"use strict";var r=t(87537),o=t.n(r),i=t(23645),a=t.n(i)()(o());a.push([e.id,"body {\n margin: 0;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n","",{version:3,sources:["webpack://./src/index.css"],names:[],mappings:"AAAA;EACE,SAAS;EACT,mCAAmC;EACnC,kCAAkC;AACpC;;AAEA;EACE;aACW;AACb",sourcesContent:["body {\n margin: 0;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n"],sourceRoot:""}]),n.Z=a},49502:function(e,n,t){"use strict";var r=t(87537),o=t.n(r),i=t(23645),a=t.n(i)()(o());a.push([e.id,".ZpdcqlK42OntJos3eGw0 {\n background-color: var(--dialog-bg, var(--bg));\n padding: 20px 40px;\n max-width: 500px;\n box-shadow: 0px 10px 25px rgba(0, 0, 0, 0.4);\n border-radius: 3px;\n border: 0.25px solid rgba(0, 0, 0, 0.4);\n}\n\n.ZpdcqlK42OntJos3eGw0 > h2:first-child {\n margin-top: 0;\n}\n\n.ZpdcqlK42OntJos3eGw0 p, .ZpdcqlK42OntJos3eGw0 ul {\n font-family: sans-serif;\n line-height: 1.3rem;\n}\n\n.Mywg1Gw3bKMc9Kd9qcEO {\n display: block;\n margin: 0 auto;\n}\n","",{version:3,sources:["webpack://./src/Common/dialog-box.module.css"],names:[],mappings:"AAAA;EACE,6CAA6C;EAC7C,kBAAkB;EAClB,gBAAgB;EAChB,4CAA4C;EAC5C,kBAAkB;EAClB,uCAAuC;AACzC;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,uBAAuB;EACvB,mBAAmB;AACrB;;AAEA;EACE,cAAc;EACd,cAAc;AAChB",sourcesContent:[".dialog {\n background-color: var(--dialog-bg, var(--bg));\n padding: 20px 40px;\n max-width: 500px;\n box-shadow: 0px 10px 25px rgba(0, 0, 0, 0.4);\n border-radius: 3px;\n border: 0.25px solid rgba(0, 0, 0, 0.4);\n}\n\n.dialog > h2:first-child {\n margin-top: 0;\n}\n\n.dialog p, .dialog ul {\n font-family: sans-serif;\n line-height: 1.3rem;\n}\n\n.button {\n display: block;\n margin: 0 auto;\n}\n"],sourceRoot:""}]),a.locals={dialog:"ZpdcqlK42OntJos3eGw0",button:"Mywg1Gw3bKMc9Kd9qcEO"},n.Z=a},87617:function(e,n,t){"use strict";var r=t(87537),o=t.n(r),i=t(23645),a=t.n(i)()(o());a.push([e.id,".J2R67AQeCK_aC1DKFCMJ {\n margin: 4px;\n}","",{version:3,sources:["webpack://./src/Common/link.module.css"],names:[],mappings:"AAAA;EACE,WAAW;AACb",sourcesContent:[".icon {\n margin: 4px;\n}"],sourceRoot:""}]),a.locals={icon:"J2R67AQeCK_aC1DKFCMJ"},n.Z=a},14084:function(e,n,t){"use strict";var r=t(87537),o=t.n(r),i=t(23645),a=t.n(i)()(o());a.push([e.id,".Q5veln3l3laVkuNPs5dQ {\n position: relative;\n}\n\n.Q5veln3l3laVkuNPs5dQ pre {\n white-space: pre;\n background-color: var(--code-bg);\n color: var(--key-color-base);\n padding: 10px;\n max-height: 320px;\n overflow: scroll;\n}\n\n.dqzgBwJ1Rq0XgMqeAKe7 {\n position: absolute;\n top: 15px;\n right: 15px;\n padding: 4px 7px;\n color: var(--key-color-base);\n background-color: var(--key-bg-base);\n border: 1px solid var(--key-color-base);\n border-radius: 3px;\n}\n.dqzgBwJ1Rq0XgMqeAKe7:hover {\n cursor: pointer;\n background-color: var(--selection);\n border: var(--selection);\n color: white;\n}\n\n.YV2lKA9hbJpP4Vs4udw8 {\n position: absolute;\n top: 5px;\n right: 0px;\n background-color: var(--selection);\n color: white;\n padding: 10px;\n border-radius: 2px;\n cursor: none;\n}\n","",{version:3,sources:["webpack://./src/Dialogs/unexpected-error.module.css"],names:[],mappings:"AAAA;EACE,kBAAkB;AACpB;;AAEA;EACE,gBAAgB;EAChB,gCAAgC;EAChC,4BAA4B;EAC5B,aAAa;EACb,iBAAiB;EACjB,gBAAgB;AAClB;;AAEA;EACE,kBAAkB;EAClB,SAAS;EACT,WAAW;EACX,gBAAgB;EAChB,4BAA4B;EAC5B,oCAAoC;EACpC,uCAAuC;EACvC,kBAAkB;AACpB;AACA;EACE,eAAe;EACf,kCAAkC;EAClC,wBAAwB;EACxB,YAAY;AACd;;AAEA;EACE,kBAAkB;EAClB,QAAQ;EACR,UAAU;EACV,kCAAkC;EAClC,YAAY;EACZ,aAAa;EACb,kBAAkB;EAClB,YAAY;AACd",sourcesContent:[".stackTrace {\n position: relative;\n}\n\n.stackTrace pre {\n white-space: pre;\n background-color: var(--code-bg);\n color: var(--key-color-base);\n padding: 10px;\n max-height: 320px;\n overflow: scroll;\n}\n\n.button {\n position: absolute;\n top: 15px;\n right: 15px;\n padding: 4px 7px;\n color: var(--key-color-base);\n background-color: var(--key-bg-base);\n border: 1px solid var(--key-color-base);\n border-radius: 3px;\n}\n.button:hover {\n cursor: pointer;\n background-color: var(--selection);\n border: var(--selection);\n color: white;\n}\n\n.copyMessage {\n position: absolute;\n top: 5px;\n right: 0px;\n background-color: var(--selection);\n color: white;\n padding: 10px;\n border-radius: 2px;\n cursor: none;\n}\n"],sourceRoot:""}]),a.locals={stackTrace:"Q5veln3l3laVkuNPs5dQ",button:"dqzgBwJ1Rq0XgMqeAKe7",copyMessage:"YV2lKA9hbJpP4Vs4udw8"},n.Z=a},87995:function(e,n,t){"use strict";var r=t(87537),o=t.n(r),i=t(23645),a=t.n(i)()(o());a.push([e.id,".D0BH39_6wwiclW8aKuoi {\n display: inline-flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.D0BH39_6wwiclW8aKuoi li {\n cursor: pointer;\n padding: 5px;\n margin: 5px;\n border-radius: 4px;\n font-variant: small-caps;\n}\n.D0BH39_6wwiclW8aKuoi li.xwo6V7AWCmy8CDvuTwRg {\n background-color: var(--selection);\n color: white;\n cursor: default;\n}\n\n.nVbskEoaGxWf96qEgtxz {\n position: absolute;\n}\n.nVbskEoaGxWf96qEgtxz > * {\n width: 100% !important;\n height: 100% !important;\n}\n\n.Ae2s0eqIVhebTEcJGc3F {\n position: relative\n}\n.Ae2s0eqIVhebTEcJGc3F::after {\n content: 'beta';\n background-color: var(--error-highlight);\n color: white;\n font-size: 12px;\n font-weight: bold;\n padding: 1px 3px;\n border-radius: 6px;\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(60%, -60%) rotate(13deg);\n}\n.xwo6V7AWCmy8CDvuTwRg .Ae2s0eqIVhebTEcJGc3F::after {\n background-color: white;\n color: var(--selection);\n border: 1px solid var(--selection);\n}\n.sQQ0qFjHptJbQ8qvuXGa {\n color: var(--error-highlight);\n}\n.D0BH39_6wwiclW8aKuoi li.xwo6V7AWCmy8CDvuTwRg.sQQ0qFjHptJbQ8qvuXGa {\n background-color: var(--error-highlight);\n color: white;\n}","",{version:3,sources:["webpack://./src/Keyboard/styles.module.css"],names:[],mappings:"AAAA;EACE,oBAAoB;EACpB,qBAAqB;EACrB,SAAS;EACT,UAAU;AACZ;AACA;EACE,eAAe;EACf,YAAY;EACZ,WAAW;EACX,kBAAkB;EAClB,wBAAwB;AAC1B;AACA;EACE,kCAAkC;EAClC,YAAY;EACZ,eAAe;AACjB;;AAEA;EACE,kBAAkB;AACpB;AACA;EACE,sBAAsB;EACtB,uBAAuB;AACzB;;AAEA;EACE;AACF;AACA;EACE,eAAe;EACf,wCAAwC;EACxC,YAAY;EACZ,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,kBAAkB;EAClB,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,6CAA6C;AAC/C;AACA;EACE,uBAAuB;EACvB,uBAAuB;EACvB,kCAAkC;AACpC;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,wCAAwC;EACxC,YAAY;AACd",sourcesContent:[".editorModeTabs {\n display: inline-flex;\n list-style-type: none;\n margin: 0;\n padding: 0;\n}\n.editorModeTabs li {\n cursor: pointer;\n padding: 5px;\n margin: 5px;\n border-radius: 4px;\n font-variant: small-caps;\n}\n.editorModeTabs li.activeEditTab {\n background-color: var(--selection);\n color: white;\n cursor: default;\n}\n\n.placer {\n position: absolute;\n}\n.placer > * {\n width: 100% !important;\n height: 100% !important;\n}\n\n.beta {\n position: relative\n}\n.beta::after {\n content: 'beta';\n background-color: var(--error-highlight);\n color: white;\n font-size: 12px;\n font-weight: bold;\n padding: 1px 3px;\n border-radius: 6px;\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(60%, -60%) rotate(13deg);\n}\n.activeEditTab .beta::after {\n background-color: white;\n color: var(--selection);\n border: 1px solid var(--selection);\n}\n.warningTab {\n color: var(--error-highlight);\n}\n.editorModeTabs li.activeEditTab.warningTab {\n background-color: var(--error-highlight);\n color: white;\n}"],sourceRoot:""}]),a.locals={editorModeTabs:"D0BH39_6wwiclW8aKuoi",activeEditTab:"xwo6V7AWCmy8CDvuTwRg",placer:"nVbskEoaGxWf96qEgtxz",beta:"Ae2s0eqIVhebTEcJGc3F",warningTab:"sQQ0qFjHptJbQ8qvuXGa"},n.Z=a},58723:function(e,n,t){"use strict";var r=t(87537),o=t.n(r),i=t(23645),a=t.n(i)()(o());a.push([e.id,".hY07j_e1kQx0WX5BwG6I {\n display: flex;\n flex-direction: row;\n align-items: end;\n gap: 5px;\n margin: 5px;\n height: 58px;\n}\n\n._0h266lacmB1N_qDdQcy {\n align-items: center;\n}\n\n.hY07j_e1kQx0WX5BwG6I button {\n height: 38px;\n}\n\n.xwu_0RR7bcAhL2xRBstH {\n font-style: italic;\n max-width: 250px;\n opacity: 0.6;\n}","",{version:3,sources:["webpack://./src/Sources/styles.module.css"],names:[],mappings:"AAAA;EACE,aAAa;EACb,mBAAmB;EACnB,gBAAgB;EAChB,QAAQ;EACR,WAAW;EACX,YAAY;AACd;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,YAAY;AACd",sourcesContent:[".wrapper {\n display: flex;\n flex-direction: row;\n align-items: end;\n gap: 5px;\n margin: 5px;\n height: 58px;\n}\n\n.compact {\n align-items: center;\n}\n\n.wrapper button {\n height: 38px;\n}\n\n.sourceDescription {\n font-style: italic;\n max-width: 250px;\n opacity: 0.6;\n}"],sourceRoot:""}]),a.locals={wrapper:"hY07j_e1kQx0WX5BwG6I",compact:"_0h266lacmB1N_qDdQcy",sourceDescription:"xwu_0RR7bcAhL2xRBstH"},n.Z=a},2746:function(e,n,t){"use strict";var r=t(87537),o=t.n(r),i=t(23645),a=t.n(i)()(o());a.push([e.id,"\n._vWNIXMkemQax9rkCJQh {\n display: inline-block;\n position: absolute;\n z-index: 100;\n bottom: 5px;\n left: 5px;\n}\n\n._vWNIXMkemQax9rkCJQh label {\n font-size: 75%;\n font-style: italic;\n display: block;\n padding: 0 10px;\n}\n\n.qiC2NrujE4ebqmHjzq0_ {\n display: inline-block;\n font-size: 110%;\n font-style: italic;\n background-color: var(--code-bg);\n border-radius: 20px;\n padding: 5px 10px;\n text-decoration: none;\n\n color: royalblue;\n}\n.qiC2NrujE4ebqmHjzq0_:hover {\n background-color: royalblue;\n color: white;\n}","",{version:3,sources:["webpack://./src/styles.module.css"],names:[],mappings:";AACA;EACE,qBAAqB;EACrB,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,SAAS;AACX;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,qBAAqB;EACrB,eAAe;EACf,kBAAkB;EAClB,gCAAgC;EAChC,mBAAmB;EACnB,iBAAiB;EACjB,qBAAqB;;EAErB,gBAAgB;AAClB;AACA;EACE,2BAA2B;EAC3B,YAAY;AACd",sourcesContent:["\n.wrapper {\n display: inline-block;\n position: absolute;\n z-index: 100;\n bottom: 5px;\n left: 5px;\n}\n\n.wrapper label {\n font-size: 75%;\n font-style: italic;\n display: block;\n padding: 0 10px;\n}\n\n.githubLink {\n display: inline-block;\n font-size: 110%;\n font-style: italic;\n background-color: var(--code-bg);\n border-radius: 20px;\n padding: 5px 10px;\n text-decoration: none;\n\n color: royalblue;\n}\n.githubLink:hover {\n background-color: royalblue;\n color: white;\n}"],sourceRoot:""}]),a.locals={wrapper:"_vWNIXMkemQax9rkCJQh",githubLink:"qiC2NrujE4ebqmHjzq0_"},n.Z=a},95872:function(e,n,t){"use strict";var r=t(93379),o=t.n(r),i=t(7795),a=t.n(i),s=t(90569),c=t.n(s),u=t(3565),l=t.n(u),f=t(19216),y=t.n(f),p=t(44589),d=t.n(p),h=t(87995),m={};m.styleTagTransform=d(),m.setAttributes=l(),m.insert=c().bind(null,"head"),m.domAPI=a(),m.insertStyleElement=y(),o()(h.Z,m),n.Z=h.Z&&h.Z.locals?h.Z.locals:void 0},34366:function(e,n,t){var r={"./catalog":[51785],"./catalog.json":[51785],"./keys_ar":[73810,6392],"./keys_ar.json":[73810,6392],"./keys_ar_102":[78381,8017],"./keys_ar_102.json":[78381,8017],"./keys_ar_azerty":[56724,2650],"./keys_ar_azerty.json":[56724,2650],"./keys_as":[68045,9082],"./keys_as.json":[68045,9082],"./keys_az":[21708,8070],"./keys_az.json":[21708,8070],"./keys_az_cyrillic":[7200,8242],"./keys_az_cyrillic.json":[7200,8242],"./keys_az_standard":[2498,3647],"./keys_az_standard.json":[2498,3647],"./keys_ba":[24745,5332],"./keys_ba.json":[24745,5332],"./keys_be":[80468,308],"./keys_be.json":[80468,308],"./keys_bg":[87317,2408],"./keys_bg.json":[87317,2408],"./keys_bg_latin":[80885,421],"./keys_bg_latin.json":[80885,421],"./keys_bg_phonetic":[10220,4595],"./keys_bg_phonetic.json":[10220,4595],"./keys_bm":[71350,8956],"./keys_bm.json":[71350,8956],"./keys_bn":[99691,1480],"./keys_bn.json":[99691,1480],"./keys_bn_inscript":[31658,9142],"./keys_bn_inscript.json":[31658,9142],"./keys_bo":[29692,3282],"./keys_bo.json":[29692,3282],"./keys_bs":[5396,1315],"./keys_bs.json":[5396,1315],"./keys_bug":[15317,4443],"./keys_bug.json":[15317,4443],"./keys_chr":[8250,6943],"./keys_chr.json":[8250,6943],"./keys_chr_phonetic":[6221,4688],"./keys_chr_phonetic.json":[6221,4688],"./keys_ckb":[29448,1936],"./keys_ckb.json":[29448,1936],"./keys_cs":[98019,8207],"./keys_cs.json":[98019,8207],"./keys_cs_programmers":[7578,3735],"./keys_cs_programmers.json":[7578,3735],"./keys_cs_qwerty":[58733,2659],"./keys_cs_qwerty.json":[58733,2659],"./keys_da":[81460,6691],"./keys_da.json":[81460,6691],"./keys_de":[68013,3359],"./keys_de.json":[68013,3359],"./keys_de_belgian":[69798,9619],"./keys_de_belgian.json":[69798,9619],"./keys_de_belgian_period":[12991,1808],"./keys_de_belgian_period.json":[12991,1808],"./keys_de_ibm":[85155,1507],"./keys_de_ibm.json":[85155,1507],"./keys_de_swiss":[57153,6184],"./keys_de_swiss.json":[57153,6184],"./keys_dsb":[93859,9616],"./keys_dsb.json":[93859,9616],"./keys_dsb_extended":[45816,7686],"./keys_dsb_extended.json":[45816,7686],"./keys_dv":[60573,5485],"./keys_dv.json":[60573,5485],"./keys_dvorak":[17499,6157],"./keys_dvorak.json":[17499,6157],"./keys_dvorak_left":[5085,8793],"./keys_dvorak_left.json":[5085,8793],"./keys_dvorak_right":[43474,3362],"./keys_dvorak_right.json":[43474,3362],"./keys_dyu":[56817,749],"./keys_dyu.json":[56817,749],"./keys_dz":[3461,3893],"./keys_dz.json":[3461,3893],"./keys_el":[82182,1545],"./keys_el.json":[82182,1545],"./keys_el_220":[74695,3743],"./keys_el_220.json":[74695,3743],"./keys_el_319":[43615,4263],"./keys_el_319.json":[43615,4263],"./keys_el_latin":[61897,8971],"./keys_el_latin.json":[61897,8971],"./keys_el_latin_220":[52401,7603],"./keys_el_latin_220.json":[52401,7603],"./keys_el_latin_319":[70286,5821],"./keys_el_latin_319.json":[70286,5821],"./keys_el_polytonic":[19430,4296],"./keys_el_polytonic.json":[19430,4296],"./keys_en_gb":[85702,7495],"./keys_en_gb.json":[85702,7495],"./keys_en_gb_extended":[30206,1343],"./keys_en_gb_extended.json":[30206,1343],"./keys_en_india":[28440,8302],"./keys_en_india.json":[28440,8302],"./keys_es":[68633,771],"./keys_es.json":[68633,771],"./keys_es_latin_american":[67356,6429],"./keys_es_latin_american.json":[67356,6429],"./keys_es_variation":[73173,3033],"./keys_es_variation.json":[73173,3033],"./keys_et":[76498,7022],"./keys_et.json":[76498,7022],"./keys_fa":[76451,8599],"./keys_fa.json":[76451,8599],"./keys_fa_standard":[79355,819],"./keys_fa_standard.json":[79355,819],"./keys_fi":[36863,8706],"./keys_fi.json":[36863,8706],"./keys_fi_sami":[58592,9866],"./keys_fi_sami.json":[58592,9866],"./keys_fo":[48622,9586],"./keys_fo.json":[48622,9586],"./keys_fr":[50955,7554],"./keys_fr.json":[50955,7554],"./keys_fr_belgian":[39330,8855],"./keys_fr_belgian.json":[39330,8855],"./keys_fr_belgian_period":[17494,7950],"./keys_fr_belgian_period.json":[17494,7950],"./keys_fr_canadian_french":[74301,4491],"./keys_fr_canadian_french.json":[74301,4491],"./keys_fr_canadian_standard":[76297,8251],"./keys_fr_canadian_standard.json":[76297,8251],"./keys_fr_swiss":[41417,1514],"./keys_fr_swiss.json":[41417,1514],"./keys_ga":[47467,8185],"./keys_ga.json":[47467,8185],"./keys_gd":[50596,6457],"./keys_gd.json":[50596,6457],"./keys_gn":[78996,4289],"./keys_gn.json":[78996,4289],"./keys_got":[45327,9893],"./keys_got.json":[45327,9893],"./keys_gu":[21372,2787],"./keys_gu.json":[21372,2787],"./keys_ha":[28061,2982],"./keys_ha.json":[28061,2982],"./keys_haw":[63525,3618],"./keys_haw.json":[63525,3618],"./keys_he":[2357,7446],"./keys_he.json":[2357,7446],"./keys_he_standard":[58311,7108],"./keys_he_standard.json":[58311,7108],"./keys_hi":[55225,6688],"./keys_hi.json":[55225,6688],"./keys_hi_traditional":[48923,8119],"./keys_hi_traditional.json":[48923,8119],"./keys_hu":[4526,4156],"./keys_hu.json":[4526,4156],"./keys_hu_101":[3013,3322],"./keys_hu_101.json":[3013,3322],"./keys_hy":[15584,2015],"./keys_hy.json":[15584,2015],"./keys_hy_phonetic":[28860,9136],"./keys_hy_phonetic.json":[28860,9136],"./keys_ig":[4055,7892],"./keys_ig.json":[4055,7892],"./keys_is":[87591,5604],"./keys_is.json":[87591,5604],"./keys_it":[24277,4465],"./keys_it.json":[24277,4465],"./keys_it_142":[83333,833],"./keys_it_142.json":[83333,833],"./keys_iu":[79407,5840],"./keys_iu.json":[79407,5840],"./keys_iu_latin":[90290,9176],"./keys_iu_latin.json":[90290,9176],"./keys_jv":[83271,6710],"./keys_jv.json":[83271,6710],"./keys_ka":[36196,3687],"./keys_ka.json":[36196,3687],"./keys_ka_ergonomic":[76892,9698],"./keys_ka_ergonomic.json":[76892,9698],"./keys_ka_qwerty":[84211,2621],"./keys_ka_qwerty.json":[84211,2621],"./keys_khb":[93128,5842],"./keys_khb.json":[93128,5842],"./keys_khb_tai_le":[16011,539],"./keys_khb_tai_le.json":[16011,539],"./keys_kk":[81713,951],"./keys_kk.json":[81713,951],"./keys_kl":[87006,7303],"./keys_kl.json":[87006,7303],"./keys_km":[86151,6794],"./keys_km.json":[86151,6794],"./keys_km_nida":[91831,3268],"./keys_km_nida.json":[91831,3268],"./keys_kn":[88868,8709],"./keys_kn.json":[88868,8709],"./keys_ko":[96130,8427],"./keys_ko.json":[96130,8427],"./keys_ky":[49911,9244],"./keys_ky.json":[49911,9244],"./keys_la_old_italic":[72596,8438],"./keys_la_old_italic.json":[72596,8438],"./keys_lb":[6012,5606],"./keys_lb.json":[6012,5606],"./keys_lis":[86353,8945],"./keys_lis.json":[86353,8945],"./keys_lis_standard":[70912,4887],"./keys_lis_standard.json":[70912,4887],"./keys_lo":[34659,398],"./keys_lo.json":[34659,398],"./keys_lt":[92979,7771],"./keys_lt.json":[92979,7771],"./keys_lt_ibm":[90075,129],"./keys_lt_ibm.json":[90075,129],"./keys_lt_standard":[70040,3746],"./keys_lt_standard.json":[70040,3746],"./keys_lv":[25622,1671],"./keys_lv.json":[25622,1671],"./keys_lv_qwerty":[70689,6777],"./keys_lv_qwerty.json":[70689,6777],"./keys_lv_standard":[68148,9081],"./keys_lv_standard.json":[68148,9081],"./keys_man":[95287,1156],"./keys_man.json":[95287,1156],"./keys_mi":[97585,9512],"./keys_mi.json":[97585,9512],"./keys_mk":[8069,8041],"./keys_mk.json":[8069,8041],"./keys_ml":[79302,1547],"./keys_ml.json":[79302,1547],"./keys_mn":[78647,389],"./keys_mn.json":[78647,389],"./keys_mn_phags_pa":[94641,3194],"./keys_mn_phags_pa.json":[94641,3194],"./keys_mn_traditional":[1301,8568],"./keys_mn_traditional.json":[1301,8568],"./keys_mr":[28928,2247],"./keys_mr.json":[28928,2247],"./keys_mt":[5848,7568],"./keys_mt.json":[5848,7568],"./keys_mt_101":[10244,3880],"./keys_mt_101.json":[10244,3880],"./keys_my":[14052,5015],"./keys_my.json":[14052,5015],"./keys_nb":[56360,4919],"./keys_nb.json":[56360,4919],"./keys_nb_sami":[96408,8636],"./keys_nb_sami.json":[96408,8636],"./keys_ne":[97192,4892],"./keys_ne.json":[97192,4892],"./keys_nl":[37853,6415],"./keys_nl.json":[37853,6415],"./keys_nl_period":[80045,2271],"./keys_nl_period.json":[80045,2271],"./keys_non":[50248,5991],"./keys_non.json":[50248,5991],"./keys_nso":[34757,8307],"./keys_nso.json":[34757,8307],"./keys_or":[40914,2383],"./keys_or.json":[40914,2383],"./keys_pa":[51095,9989],"./keys_pa.json":[51095,9989],"./keys_pl":[91654,8391],"./keys_pl.json":[91654,8391],"./keys_pl_programmers":[188,920],"./keys_pl_programmers.json":[188,920],"./keys_ps":[65138,6049],"./keys_ps.json":[65138,6049],"./keys_pt":[33474,4821],"./keys_pt.json":[33474,4821],"./keys_pt_abnt":[84986,1872],"./keys_pt_abnt.json":[84986,1872],"./keys_pt_abnt2":[50167,9112],"./keys_pt_abnt2.json":[50167,9112],"./keys_ro":[35695,68],"./keys_ro.json":[35695,68],"./keys_ro_programmers":[53693,4795],"./keys_ro_programmers.json":[53693,4795],"./keys_ru":[62672,8986],"./keys_ru.json":[62672,8986],"./keys_ru_phonetic":[48927,7292],"./keys_ru_phonetic.json":[48927,7292],"./keys_sah":[75234,7289],"./keys_sah.json":[75234,7289],"./keys_sat":[767,9414],"./keys_sat.json":[767,9414],"./keys_se":[31828,8019],"./keys_se.json":[31828,8019],"./keys_se_finland_sweden":[44292,8699],"./keys_se_finland_sweden.json":[44292,8699],"./keys_si":[39915,9707],"./keys_si.json":[39915,9707],"./keys_sk":[49999,7803],"./keys_sk.json":[49999,7803],"./keys_sk_qwerty":[92153,1720],"./keys_sk_qwerty.json":[92153,1720],"./keys_sl":[11998,5715],"./keys_sl.json":[11998,5715],"./keys_so":[32727,9193],"./keys_so.json":[32727,9193],"./keys_sq":[93752,8173],"./keys_sq.json":[93752,8173],"./keys_sr":[45358,2231],"./keys_sr.json":[45358,2231],"./keys_sr_latin":[80121,578],"./keys_sr_latin.json":[80121,578],"./keys_srb":[929,5354],"./keys_srb.json":[929,5354],"./keys_sv":[74243,8649],"./keys_sv.json":[74243,8649],"./keys_sv_sami":[26330,4717],"./keys_sv_sami.json":[26330,4717],"./keys_syr":[20591,4777],"./keys_syr.json":[20591,4777],"./keys_syr_phonetic":[85609,2619],"./keys_syr_phonetic.json":[85609,2619],"./keys_ta":[17843,4036],"./keys_ta.json":[17843,4036],"./keys_te":[69130,4824],"./keys_te.json":[69130,4824],"./keys_tg":[79797,3393],"./keys_tg.json":[79797,3393],"./keys_th":[70732,6684],"./keys_th.json":[70732,6684],"./keys_th_pattachote":[85219,422],"./keys_th_pattachote.json":[85219,422],"./keys_tk":[31794,2275],"./keys_tk.json":[31794,2275],"./keys_tmh":[89416,2835],"./keys_tmh.json":[89416,2835],"./keys_tmh_extended":[33866,8110],"./keys_tmh_extended.json":[33866,8110],"./keys_tn":[79848,4257],"./keys_tn.json":[79848,4257],"./keys_tr":[32066,5303],"./keys_tr.json":[32066,5303],"./keys_tr_f":[77176,4670],"./keys_tr_f.json":[77176,4670],"./keys_tt":[13069,7305],"./keys_tt.json":[13069,7305],"./keys_tzm":[93917,814],"./keys_tzm.json":[93917,814],"./keys_ug":[29436,3474],"./keys_ug.json":[29436,3474],"./keys_uk":[18936,2602],"./keys_uk.json":[18936,2602],"./keys_uk_enhanced":[60895,7228],"./keys_uk_enhanced.json":[60895,7228],"./keys_ur":[48883,8216],"./keys_ur.json":[48883,8216],"./keys_us_international":[61141,2947],"./keys_us_international.json":[61141,2947],"./keys_uz":[8196,7080],"./keys_uz.json":[8196,7080],"./keys_vi":[88305,7994],"./keys_vi.json":[88305,7994],"./keys_wo":[97528,7069],"./keys_wo.json":[97528,7069],"./keys_yo":[8962,5998],"./keys_yo.json":[8962,5998]};function o(e){if(!t.o(r,e))return Promise.resolve().then((function(){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}));var n=r[e],o=n[0];return Promise.all(n.slice(1).map(t.e)).then((function(){return t.t(o,19)}))}o.keys=function(){return Object.keys(r)},o.id=34366,e.exports=o},51785:function(e){"use strict";e.exports=JSON.parse('{"keys_ar.h":{"filename":"keys_ar.json","prefix":"ar"},"keys_ar_azerty.h":{"filename":"keys_ar_azerty.json","prefix":"ar"},"keys_ar_102.h":{"filename":"keys_ar_102.json","prefix":"ar"},"keys_as.h":{"filename":"keys_as.json","prefix":"as"},"keys_az.h":{"filename":"keys_az.json","prefix":"az"},"keys_az_standard.h":{"filename":"keys_az_standard.json","prefix":"az"},"keys_az_cyrillic.h":{"filename":"keys_az_cyrillic.json","prefix":"az"},"keys_ba.h":{"filename":"keys_ba.json","prefix":"ba"},"keys_be.h":{"filename":"keys_be.json","prefix":"be"},"keys_bg.h":{"filename":"keys_bg.json","prefix":"bg"},"keys_bg_phonetic.h":{"filename":"keys_bg_phonetic.json","prefix":"bg"},"keys_bg_latin.h":{"filename":"keys_bg_latin.json","prefix":"bg"},"keys_bm.h":{"filename":"keys_bm.json","prefix":"bm"},"keys_dyu.h":{"filename":"keys_dyu.json","prefix":"dyu"},"keys_man.h":{"filename":"keys_man.json","prefix":"man"},"keys_bn.h":{"filename":"keys_bn.json","prefix":"bn"},"keys_bn_inscript.h":{"filename":"keys_bn_inscript.json","prefix":"bn"},"keys_bo.h":{"filename":"keys_bo.json","prefix":"bo"},"keys_bs.h":{"filename":"keys_bs.json","prefix":"bs"},"keys_bug.h":{"filename":"keys_bug.json","prefix":"bug"},"keys_chr.h":{"filename":"keys_chr.json","prefix":"chr"},"keys_chr_phonetic.h":{"filename":"keys_chr_phonetic.json","prefix":"chr"},"keys_ckb.h":{"filename":"keys_ckb.json","prefix":"ckb"},"keys_cs.h":{"filename":"keys_cs.json","prefix":"cs"},"keys_cs_programmers.h":{"filename":"keys_cs_programmers.json","prefix":"cs"},"keys_cs_qwerty.h":{"filename":"keys_cs_qwerty.json","prefix":"cs"},"keys_da.h":{"filename":"keys_da.json","prefix":"da"},"keys_de.h":{"filename":"keys_de.json","prefix":"de"},"keys_de_ibm.h":{"filename":"keys_de_ibm.json","prefix":"de"},"keys_de_belgian.h":{"filename":"keys_de_belgian.json","prefix":"de"},"keys_de_belgian_period.h":{"filename":"keys_de_belgian_period.json","prefix":"de"},"keys_de_swiss.h":{"filename":"keys_de_swiss.json","prefix":"de"},"keys_dsb.h":{"filename":"keys_dsb.json","prefix":"dsb"},"keys_dsb_extended.h":{"filename":"keys_dsb_extended.json","prefix":"dsb"},"keys_dv.h":{"filename":"keys_dv.json","prefix":"dv"},"keys_dz.h":{"filename":"keys_dz.json","prefix":"dz"},"keys_el.h":{"filename":"keys_el.json","prefix":"el"},"keys_el_220.h":{"filename":"keys_el_220.json","prefix":"el"},"keys_el_319.h":{"filename":"keys_el_319.json","prefix":"el"},"keys_el_latin.h":{"filename":"keys_el_latin.json","prefix":"el"},"keys_el_latin_220.h":{"filename":"keys_el_latin_220.json","prefix":"el"},"keys_el_latin_319.h":{"filename":"keys_el_latin_319.json","prefix":"el"},"keys_el_polytonic.h":{"filename":"keys_el_polytonic.json","prefix":"el"},"keys_en_gb.h":{"filename":"keys_en_gb.json","prefix":"en"},"keys_en_gb_extended.h":{"filename":"keys_en_gb_extended.json","prefix":"en"},"keys_en_india.h":{"filename":"keys_en_india.json","prefix":"en"},"keys_us_international.h":{"filename":"keys_us_international.json","prefix":"usx"},"keys_dvorak.h":{"filename":"keys_dvorak.json","prefix":"en"},"keys_dvorak_left.h":{"filename":"keys_dvorak_left.json","prefix":"en"},"keys_dvorak_right.h":{"filename":"keys_dvorak_right.json","prefix":"en"},"keys_es.h":{"filename":"keys_es.json","prefix":"es"},"keys_es_variation.h":{"filename":"keys_es_variation.json","prefix":"es"},"keys_es_latin_american.h":{"filename":"keys_es_latin_american.json","prefix":"es"},"keys_et.h":{"filename":"keys_et.json","prefix":"et"},"keys_fa.h":{"filename":"keys_fa.json","prefix":"fa"},"keys_fa_standard.h":{"filename":"keys_fa_standard.json","prefix":"fa"},"keys_fi.h":{"filename":"keys_fi.json","prefix":"fi"},"keys_fi_sami.h":{"filename":"keys_fi_sami.json","prefix":"fi"},"keys_fo.h":{"filename":"keys_fo.json","prefix":"fo"},"keys_fr.h":{"filename":"keys_fr.json","prefix":"fr"},"keys_fr_belgian.h":{"filename":"keys_fr_belgian.json","prefix":"fr"},"keys_fr_belgian_period.h":{"filename":"keys_fr_belgian_period.json","prefix":"fr"},"keys_fr_canadian_standard.h":{"filename":"keys_fr_canadian_standard.json","prefix":"fr"},"keys_fr_canadian_french.h":{"filename":"keys_fr_canadian_french.json","prefix":"fr"},"keys_fr_swiss.h":{"filename":"keys_fr_swiss.json","prefix":"fr"},"keys_ga.h":{"filename":"keys_ga.json","prefix":"ga"},"keys_gd.h":{"filename":"keys_gd.json","prefix":"gd"},"keys_gn.h":{"filename":"keys_gn.json","prefix":"gn"},"keys_got.h":{"filename":"keys_got.json","prefix":"got"},"keys_gu.h":{"filename":"keys_gu.json","prefix":"gu"},"keys_ha.h":{"filename":"keys_ha.json","prefix":"ha"},"keys_haw.h":{"filename":"keys_haw.json","prefix":"haw"},"keys_he.h":{"filename":"keys_he.json","prefix":"he"},"keys_he_standard.h":{"filename":"keys_he_standard.json","prefix":"he"},"keys_hi.h":{"filename":"keys_hi.json","prefix":"hi"},"keys_hi_traditional.h":{"filename":"keys_hi_traditional.json","prefix":"hi"},"keys_hu.h":{"filename":"keys_hu.json","prefix":"hu"},"keys_hu_101.h":{"filename":"keys_hu_101.json","prefix":"hu"},"keys_hy.h":{"filename":"keys_hy.json","prefix":"hy"},"keys_hy_phonetic.h":{"filename":"keys_hy_phonetic.json","prefix":"hy"},"keys_ig.h":{"filename":"keys_ig.json","prefix":"ig"},"keys_is.h":{"filename":"keys_is.json","prefix":"is"},"keys_it.h":{"filename":"keys_it.json","prefix":"it"},"keys_it_142.h":{"filename":"keys_it_142.json","prefix":"it"},"keys_iu.h":{"filename":"keys_iu.json","prefix":"iu"},"keys_iu_latin.h":{"filename":"keys_iu_latin.json","prefix":"iu"},"keys_jv.h":{"filename":"keys_jv.json","prefix":"jv"},"keys_ka.h":{"filename":"keys_ka.json","prefix":"ka"},"keys_ka_ergonomic.h":{"filename":"keys_ka_ergonomic.json","prefix":"ka"},"keys_ka_qwerty.h":{"filename":"keys_ka_qwerty.json","prefix":"ka"},"keys_khb.h":{"filename":"keys_khb.json","prefix":"khb"},"keys_khb_tai_le.h":{"filename":"keys_khb_tai_le.json","prefix":"khb"},"keys_kk.h":{"filename":"keys_kk.json","prefix":"kk"},"keys_kl.h":{"filename":"keys_kl.json","prefix":"kl"},"keys_km.h":{"filename":"keys_km.json","prefix":"km"},"keys_km_nida.h":{"filename":"keys_km_nida.json","prefix":"km"},"keys_kn.h":{"filename":"keys_kn.json","prefix":"kn"},"keys_ko.h":{"filename":"keys_ko.json","prefix":"ko"},"keys_ky.h":{"filename":"keys_ky.json","prefix":"ky"},"keys_la_old_italic.h":{"filename":"keys_la_old_italic.json","prefix":"la"},"keys_lb.h":{"filename":"keys_lb.json","prefix":"lb"},"keys_lis.h":{"filename":"keys_lis.json","prefix":"lis"},"keys_lis_standard.h":{"filename":"keys_lis_standard.json","prefix":"lis"},"keys_lo.h":{"filename":"keys_lo.json","prefix":"lo"},"keys_lt.h":{"filename":"keys_lt.json","prefix":"lt"},"keys_lt_ibm.h":{"filename":"keys_lt_ibm.json","prefix":"lt"},"keys_lt_standard.h":{"filename":"keys_lt_standard.json","prefix":"lt"},"keys_lv.h":{"filename":"keys_lv.json","prefix":"lv"},"keys_lv_qwerty.h":{"filename":"keys_lv_qwerty.json","prefix":"lv"},"keys_lv_standard.h":{"filename":"keys_lv_standard.json","prefix":"lv"},"keys_mi.h":{"filename":"keys_mi.json","prefix":"mi"},"keys_mk.h":{"filename":"keys_mk.json","prefix":"mk"},"keys_ml.h":{"filename":"keys_ml.json","prefix":"ml"},"keys_mn.h":{"filename":"keys_mn.json","prefix":"mn"},"keys_mn_traditional.h":{"filename":"keys_mn_traditional.json","prefix":"mn"},"keys_mn_phags_pa.h":{"filename":"keys_mn_phags_pa.json","prefix":"mn"},"keys_mr.h":{"filename":"keys_mr.json","prefix":"mr"},"keys_mt.h":{"filename":"keys_mt.json","prefix":"mt"},"keys_mt_101.h":{"filename":"keys_mt_101.json","prefix":"mt"},"keys_my.h":{"filename":"keys_my.json","prefix":"my"},"keys_nb.h":{"filename":"keys_nb.json","prefix":"nb"},"keys_nb_sami.h":{"filename":"keys_nb_sami.json","prefix":"nb"},"keys_ne.h":{"filename":"keys_ne.json","prefix":"ne"},"keys_nl.h":{"filename":"keys_nl.json","prefix":"nl"},"keys_nl_period.h":{"filename":"keys_nl_period.json","prefix":"nl"},"keys_non.h":{"filename":"keys_non.json","prefix":"non"},"keys_nso.h":{"filename":"keys_nso.json","prefix":"nso"},"keys_or.h":{"filename":"keys_or.json","prefix":"or"},"keys_pa.h":{"filename":"keys_pa.json","prefix":"pa"},"keys_pl.h":{"filename":"keys_pl.json","prefix":"pl"},"keys_pl_programmers.h":{"filename":"keys_pl_programmers.json","prefix":"pl"},"keys_ps.h":{"filename":"keys_ps.json","prefix":"ps"},"keys_pt.h":{"filename":"keys_pt.json","prefix":"pt"},"keys_pt_abnt.h":{"filename":"keys_pt_abnt.json","prefix":"pt"},"keys_pt_abnt2.h":{"filename":"keys_pt_abnt2.json","prefix":"pt"},"keys_ro.h":{"filename":"keys_ro.json","prefix":"ro"},"keys_ro_programmers.h":{"filename":"keys_ro_programmers.json","prefix":"ro"},"keys_ru.h":{"filename":"keys_ru.json","prefix":"ru"},"keys_ru_phonetic.h":{"filename":"keys_ru_phonetic.json","prefix":"ru"},"keys_sah.h":{"filename":"keys_sah.json","prefix":"sah"},"keys_sat.h":{"filename":"keys_sat.json","prefix":"sat"},"keys_se.h":{"filename":"keys_se.json","prefix":"se"},"keys_se_finland_sweden.h":{"filename":"keys_se_finland_sweden.json","prefix":"se"},"keys_si.h":{"filename":"keys_si.json","prefix":"si"},"keys_sk.h":{"filename":"keys_sk.json","prefix":"sk"},"keys_sk_qwerty.h":{"filename":"keys_sk_qwerty.json","prefix":"sk"},"keys_sl.h":{"filename":"keys_sl.json","prefix":"sl"},"keys_so.h":{"filename":"keys_so.json","prefix":"so"},"keys_sq.h":{"filename":"keys_sq.json","prefix":"sq"},"keys_sr.h":{"filename":"keys_sr.json","prefix":"sr"},"keys_sr_latin.h":{"filename":"keys_sr_latin.json","prefix":"sr"},"keys_srb.h":{"filename":"keys_srb.json","prefix":"srb"},"keys_sv.h":{"filename":"keys_sv.json","prefix":"sv"},"keys_sv_sami.h":{"filename":"keys_sv_sami.json","prefix":"sv"},"keys_syr.h":{"filename":"keys_syr.json","prefix":"syr"},"keys_syr_phonetic.h":{"filename":"keys_syr_phonetic.json","prefix":"syr"},"keys_ta.h":{"filename":"keys_ta.json","prefix":"ta"},"keys_te.h":{"filename":"keys_te.json","prefix":"te"},"keys_tg.h":{"filename":"keys_tg.json","prefix":"tg"},"keys_th.h":{"filename":"keys_th.json","prefix":"th"},"keys_th_pattachote.h":{"filename":"keys_th_pattachote.json","prefix":"th"},"keys_tk.h":{"filename":"keys_tk.json","prefix":"tk"},"keys_tmh.h":{"filename":"keys_tmh.json","prefix":"tmh"},"keys_tmh_extended.h":{"filename":"keys_tmh_extended.json","prefix":"tmh"},"keys_tn.h":{"filename":"keys_tn.json","prefix":"tn"},"keys_tr.h":{"filename":"keys_tr.json","prefix":"tr"},"keys_tr_f.h":{"filename":"keys_tr_f.json","prefix":"tr"},"keys_tt.h":{"filename":"keys_tt.json","prefix":"tt"},"keys_tzm.h":{"filename":"keys_tzm.json","prefix":"tzm"},"keys_ug.h":{"filename":"keys_ug.json","prefix":"ug"},"keys_uk.h":{"filename":"keys_uk.json","prefix":"uk"},"keys_uk_enhanced.h":{"filename":"keys_uk_enhanced.json","prefix":"uk"},"keys_ur.h":{"filename":"keys_ur.json","prefix":"ur"},"keys_uz.h":{"filename":"keys_uz.json","prefix":"uz"},"keys_vi.h":{"filename":"keys_vi.json","prefix":"vi"},"keys_wo.h":{"filename":"keys_wo.json","prefix":"wo"},"keys_yo.h":{"filename":"keys_yo.json","prefix":"yo"}}')}},function(e){e.O(0,[3712,1216,5514],(function(){return 65516,e(e.s=65516)})),e.O()}]);
+//# sourceMappingURL=main.696e6442329cdd2bc627.js.map \ No newline at end of file
diff --git a/main.696e6442329cdd2bc627.js.LICENSE.txt b/main.696e6442329cdd2bc627.js.LICENSE.txt
new file mode 100644
index 0000000..ae386fb
--- /dev/null
+++ b/main.696e6442329cdd2bc627.js.LICENSE.txt
@@ -0,0 +1 @@
+/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
diff --git a/main.696e6442329cdd2bc627.js.map b/main.696e6442329cdd2bc627.js.map
new file mode 100644
index 0000000..064df5d
--- /dev/null
+++ b/main.696e6442329cdd2bc627.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"main.696e6442329cdd2bc627.js","mappings":";qQAWIA,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAA1B,IAKO,EAAe,KAAW,WAAiB,gBAAiBM,g3CCxBpD,SAASC,EAAWC,GACjC,QAA2EA,EAAnEC,YAAAA,OAAW,IAAG,OAAI,IAAiDD,EAA/CE,QAAAA,OAAO,IAAG,KAAE,EAAEC,EAAiCH,EAAjCG,UAAWC,EAAsBJ,EAAtBI,SAAaC,oXAAI,CAAKL,EAAK,GAEhF,OACE,qBAAKM,UAAW,CAACC,EAAAA,QAAa,UAAKL,qnBAASM,KAAK,MAAUH,GAAI,cAC5DD,EACAH,IACC,mBAAQK,UAAWC,EAAAA,OAAeE,QAASN,EAAU,SAClDF,OAKX,k9BCbA,IAAMS,EAAgB,CACpBC,OAAQ,MACRC,QAAS,KACTC,QAAS,aACTC,MAAO,WACPC,MAAO,MACPC,MAAO,OAGT,SAASC,EAAMjB,GACb,IAAQkB,EAA8ClB,EAA9CkB,KAAMZ,EAAwCN,EAAxCM,UAAWa,EAA6BnB,EAA7BmB,WAAeC,oXAAS,CAAKpB,EAAK,GACrDqB,EAAaX,EAAcS,GAC3BG,EAAY,MAAH,OAASJ,GAExB,OACE,iXACEZ,UAAW,CAACA,EAAWe,EAAYC,GAAWd,KAAK,MAC/CY,GAGV,CAEAH,EAAKM,UAAY,CACfL,KAAMM,IAAAA,OAAAA,WACNlB,UAAWkB,IAAAA,OACXL,WAAYK,IAAAA,QAGdP,EAAKQ,aAAe,CAClBN,WAAY,UACZb,UAAW,IAGb,81CCjCe,SAASoB,EAAU,GAA0D,IAAtDP,EAAU,EAAVA,WAAYQ,EAAI,EAAJA,KAAMC,EAAI,EAAJA,KAAMxB,EAAQ,EAARA,SAAUK,EAAO,EAAPA,QAAYJ,oXAAI,MACtF,OACE,wBAAQI,QAASA,GAAaJ,GAAI,eAChC,SAAC,IAAI,CAACc,WAAYA,EAAYD,KAAMS,IAAQ,IAAEC,GAAQxB,KAG5D,yOCGIZ,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAA1B,IAKO,EAAe,KAAW,WAAiB,gBAAiBM,mwCCrBnE,SAAS+B,EAAM7B,GACb,IAAQ8B,EAAoD9B,EAApD8B,KAAM1B,EAA8CJ,EAA9CI,SAAU2B,EAAoC/B,EAApC+B,SAAUC,EAA0BhC,EAA1BgC,aAAiB3B,oXAAI,CAAKL,EAAK,GAC3DiC,EAAaC,OAAOC,OAAO,CAAEL,KAAAA,GAAQzB,EAAM0B,GAAY,CAC3DK,IAAK,aACLC,OAAQ,WAGV,OACE,qBAAOJ,GAAU,cACd7B,EACA2B,GAAYC,IACX,SAACf,EAAA,EAAI,CACHX,UAAWC,EAAAA,KACXW,KAAK,kCAKf,CAEAW,EAAKN,UAAY,CACfO,KAAMN,IAAAA,OAAAA,WACNpB,SAAUoB,IAAAA,UAAoB,CAC5BA,IAAAA,QAAkBA,IAAAA,MAClBA,IAAAA,OACCc,WACHP,SAAUP,IAAAA,KAAAA,WACVQ,aAAcR,IAAAA,MAGhBK,EAAKJ,aAAe,CAClBM,UAAU,EACVC,cAAc,GAGhB,w8CCpCA,IAAMzB,EAAS,CACbgC,QAAS,CACPC,SAAU,WACVC,IAAK,IACLC,KAAM,IACNC,MAAO,QACPC,OAAQ,QACRC,gBAAiB,4BACjBC,eAAgB,YAChBC,OAAQ,KACRC,QAAS,OACTC,eAAgB,SAChBC,WAAY,UAEdC,WAAY,CACVC,WAAY,cACZN,eAAgB,OAChBO,cAAe,QAEjBC,QAAS,CACPN,QAAS,QACTK,cAAe,QAIJ,SAASE,EAAK,GAA+C,IAA3CpD,EAAS,EAATA,UAAS,IAAEgD,WAAAA,OAAU,IAAG,GAAK,EAAE/C,EAAQ,EAARA,SACxDkD,GAAUE,EAAAA,EAAAA,UACVC,GAAcC,EAAAA,EAAAA,cAAY,SAAUC,GACpCxD,GAAamD,EAAQM,SAAWD,EAAEtB,OAAOwB,SAASP,EAAQM,WAC5DD,EAAEG,kBACF3D,IAEJ,GAAG,CAACmD,EAASnD,IAEP4D,EAAQZ,EAAU,OACf5C,EAAOgC,SAAYhC,EAAO4C,YAC/B5C,EAAOgC,QAEX,OAAOyB,EAAAA,cACL,gBAAKvD,QAASgD,EAAaM,MAAOA,EAAM,UACtC,gBAAKE,IAAKX,EAASS,MAAOxD,EAAO+C,QAAQ,SACtClD,MAGL8D,SAASC,eAAe,cAE5B,CAMO,SAASC,IACd,QAA2C,MAAfC,EAAAA,EAAAA,WAAS,KAAM,o5BAApCC,EAAM,KAAEC,EAAS,KAYxB,MAAO,CAACD,GAVKZ,EAAAA,EAAAA,cAAY,SAAAc,IACvBA,aAAK,EAALA,EAAOV,kBAAmBU,EAAMV,kBAChCS,GAAU,EACZ,GAAG,CAACA,KAEUb,EAAAA,EAAAA,cAAY,SAAAc,IACxBA,aAAK,EAALA,EAAOV,kBAAmBU,EAAMV,kBAChCS,GAAU,EACZ,GAAG,CAACA,IAGN,CAlBAhB,EAAMhC,UAAY,CAChBpB,UAAWqB,IAAAA,mMCnDE,SAASiD,EAAWC,GACjC,QAA4D,MAAtBL,EAAAA,EAAAA,UAASK,KAAa,o5BAArDC,EAAW,KAAEC,EAAc,KAIlC,MAAO,CAACD,GAHOjB,EAAAA,EAAAA,cAAY,kBAAMkB,GAAe,SAAAC,GAAK,OAAKA,CAAK,GAAC,GAAE,CAACD,KACnDlB,EAAAA,EAAAA,cAAY,kBAAMkB,GAAe,EAAK,GAAE,CAACA,KACxClB,EAAAA,EAAAA,cAAY,kBAAMkB,GAAe,EAAM,GAAE,CAACA,IAE7D,2bCPA,gnGAAAE,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,mRAAAA,GAAA,gEAAAA,GAAA,0JAAAA,EAAA,6FAAAA,GAAA,mIAAAA,IAAA,+RAAAA,IAAA,2OAAAA,EAAA,iBAAAA,EAAA,EAAAA,IAAA,EAAAA,GAAA,EAAAA,GAAA,qUAOO,IAAMC,GAAqBC,EAAAA,EAAAA,eAAc,CAC9CC,SAAU,GACVC,WAAY,GACZC,UAAW,CAAC,EACZC,cAAe,GACfC,OAAQ,KAIJC,EAAoB,SAAAT,GAAK,OAAIA,EAAMU,WAAW,EAE7C,SAASC,EAA0B,GAAgB,IAAZpF,EAAQ,EAARA,SACtCmF,GAAcE,EAAAA,EAAAA,IAAYH,GAC1BI,GAAWC,EAAAA,EAAAA,MA8CjB,IA5CAC,EAAAA,EAAAA,YAAU,WACR,YAAC,qGACqB,OAAhBL,EAAoB,iEAIsBM,QAAQC,IAAI,CACxDC,IACAC,MACA,qCAHMf,EAAQ,KAAEI,EAAM,KAAGF,EAAS,KAQ9Bc,EAAUC,IAAUf,EAAUA,WAC9BD,EAAagB,IAAUf,EAAUgB,UAEvClB,EAASmB,QAAUC,IAAMpB,EAAU,QACnCC,EAAWkB,QAAUC,IAAMnB,EAAY,QACvCA,EAAWoB,QAAU,CACnBC,KAAMrB,EAAWsB,QAAO,YAAU,SAAPF,OAAsB,IACjDG,OAAQD,IAAOtB,EAAY,CAAEoB,QAAS,WACtCI,SAAUF,IAAOtB,EAAY,CAAEoB,QAAS,cAE1CpB,EAAWyB,UAAY,CACrBJ,KAAMF,IAAMnB,EAAWoB,QAAQC,KAAM,QACrCE,OAAQJ,IAAMnB,EAAWoB,QAAQG,OAAQ,QACzCC,SAAUL,IAAMnB,EAAWoB,QAAQI,SAAU,SAG/ChB,EAAS,CACPkB,KAAM,kBACNrB,YAAa,CACXN,SAAAA,EACAC,WAAAA,EACAC,UAAWc,EACXb,cAAeF,EACfG,OAAAA,KAEF,2CAtCJ,EAwCF,GAAG,CAACE,EAAaG,IAGZH,EAIL,OACE,SAACR,EAAmB8B,SAAQ,CAACC,MAAOvB,EAAY,SAC7CnF,GAGP,CAAC,SAEc4F,IAAqB,4CAMnC,OANmC,cAApC,wGACsD,6CAA4B,OAAvC,OAAuC,SAAxEe,EAAe,EAAfA,gBAAiBC,EAAgB,EAAhBA,iBAAgB,kBAClC,CACL7B,UAAW4B,EACXZ,SAAUa,IACX,4CACF,+BAEcjB,IAAY,4CAM1B,OAN0B,cAA3B,wGAC4C,qCAA2B,OAAtC,OAAsC,SAA7Dd,EAAQ,EAARA,SAAUgC,EAAa,EAAbA,cAAa,kBACxB,EACLC,EAAAA,EAAAA,GAAqBjC,GACrBgC,IACD,4CACF,sJCzFYE,GAAgBnC,EAAAA,EAAAA,eAAc,CACzCoC,OAAQ,GACRC,aAAc,EACdC,kBAAmB,CAAC,EACpBC,aAAc,CAAC,IAGV,SAASC,EAAqB,GAAwB,IAApBJ,EAAM,EAANA,OAAQhH,EAAQ,EAARA,SACzCiH,GAAeI,EAAAA,EAAAA,UAAQ,kBAAML,EAAOM,MAAM,GAAE,CAACN,EAAOM,SACpDJ,GAAoBG,EAAAA,EAAAA,UAAQ,kBAAME,EAAAA,EAAAA,IAAqBP,EAAO,GAAE,CAACA,IACjEG,GAAeE,EAAAA,EAAAA,UAAQ,kBAAMG,EAAAA,EAAAA,IAAgBN,EAAkB,GAAE,CAACA,IAElEhB,EAAU,CACdc,OAAAA,EACAC,aAAAA,EACAC,kBAAAA,EACAC,aAAAA,GAGF,OACE,SAACJ,EAAcN,SAAQ,CAACC,MAAOR,EAAQ,SACpClG,GAGP,gMCpBayH,GACX,SAAC,IAAI,CAAC9F,UAAQ,EAACD,KANc,sDAMQ,SAAC,yBAK3BgG,GACX,SAAC,IAAI,CAAC/F,UAAQ,EAACD,KAXmB,8EAWQ,SAAC,kDAKhCiG,GACX,SAAC,IAAI,CAAChG,UAAQ,EAACD,KAhBmB,qDAgBQ,SAAC,iCAKhCkG,GACX,SAAC,IAAI,CAACjG,UAAQ,EAACD,KArBgB,+CAqBQ,SAAC,+BAK7BmG,GACX,iCACE,uBAAG,6IAIH,2BACE,wBAAKJ,KACL,wBAAKG,UAKEE,GACX,yBAAG,kFAEKJ,EAAsB,4EACHC,EAAgB,kMC5ChCI,EAAkB,SAAAtD,GAAK,OAAIA,EAAMuD,SAASC,OAAOlD,SAAS,EAOjEmD,EAA0B,SAACC,EAAMpD,EAAWc,GAChD,IAAMuC,EANqB,SAAAD,GAAI,iBACL,QAA1B,EAAAA,EAAKtG,WAAWuG,kBAAU,aAA1B,EAA4BC,UACF,QADQ,EAClCF,EAAKtG,WAAWuG,kBAAU,OAAK,QAAL,EAA1B,EAA4BE,WAAG,WAAL,EAA1B,EAAiCC,QAAQ,KAAM,IAAG,CAI/BC,CAAqBL,GAClCM,EAAS5C,EAAQuC,GAEvB,OAAKK,EAIE3G,OAAO4G,KAAKD,EAAO5G,YAAY8G,QAAO,SAACC,EAAeC,GAC3D,IAAMC,EAAaL,EAAO5G,WAAWgH,GAC/BE,EAAaZ,EAAKtG,WAAWgH,GAKnC,MAJwB,kBAApBC,EAAWtC,MAA4BuC,GACzCH,EAAcI,KAAKD,EAAWV,QAGzBO,CACT,GAAG,IAXM,EAYX,EAEMK,GAAiBC,EAAAA,EAAAA,IAAY,CACjCpI,KAAM,YACNwD,aAAc,GACd6E,SAAU,CACRC,YAAW,SAAE3E,EAAO4E,GAClB5E,EAAMuE,KAAKK,EAAOC,QAAQC,SAC5B,EACAC,eAAc,SAAE/E,EAAO4E,GACrB5E,EAAM4E,EAAOC,QAAQG,eAAiBC,IAAKL,EAAOC,QAAQC,SAAU,SACtE,EACAI,eAAc,SAAElF,EAAO4E,GACrB5E,EAAMmF,OAAOP,EAAOC,QAAQG,cAAe,EAC7C,GAEFI,cAAe,SAAAC,GACbA,EAAQC,QACNC,EAAAA,IACAC,EAAAA,EAAAA,IACE/B,GAGN,IAGK,EAIHe,EAAeiB,QAHjBd,EAAW,EAAXA,YACAI,EAAc,EAAdA,eACAG,EAAc,EAAdA,eAGF,KAAeV,EAAsB,gWCzD9B,IAAMkB,EAAe,SAAA1F,GAAK,OAAIA,EAAMuD,SAASC,OAAOmC,MAAM,EAE3DC,GAAcnB,EAAAA,EAAAA,IAAY,CAC9BpI,KAAM,SACNwD,aAAc,GACd6E,SAAU,CACRmB,mBAAkB,SAAE7F,EAAO4E,GACzB5E,EAAM4E,EAAOC,QAAQiB,YAAY1I,WAAWkE,SAAW,CAAEsC,OAAQgB,EAAOC,QAAQvD,SAClF,EACAyE,wBAAuB,SAAE/F,EAAO4E,GAC9B5E,EAAM4E,EAAOC,QAAQiB,YAAY1I,WAAW,iBAAmB,CAC7DwG,OAAQgB,EAAOC,QAAQmB,aAE3B,EACAC,YAAW,SAAEjG,GACXA,EAAMuE,KAAK,CACTlI,KAAM,YACN6J,OAAQ,GACR9I,WAAY,CACVkE,SAAU,CACRsC,OAAQ,CAAC,CAAE3B,MAAO,SAAUkE,OAAQ,MAEtC,gBAAiB,CACfvC,OAAQ,MAIhB,EACAwC,YAAW,SAAEpG,EAAO4E,GAClB5E,EAAM4E,EAAOC,QAAQwB,OAAOhK,KAAOuI,EAAOC,QAAQxI,IACpD,EACAiK,YAAW,SAAEtG,EAAO4E,GAClB5E,EAAMmF,OAAOP,EAAOC,QAAQwB,MAAO,EACrC,EACAE,eAAc,SAAEvG,EAAO4E,GACrB,MAAyBA,EAAOC,QAAxBwB,EAAK,EAALA,MAAOG,EAAK,EAALA,MACfxG,EAAMqG,GAASG,CACjB,GAEFpB,cAAe,SAAAC,GACb,IAAMoB,GAAuBjB,EAAAA,EAAAA,MAE7BH,EAAQC,QACNC,EAAAA,IACA,SAAkBvF,EAAO4E,GACvB,IAAQ8B,EAAoB9B,EAAOC,QAA3B6B,gBACRD,EAAqBzG,EAAO4E,GAAO,IACD,EADC,85BACN5E,GAAK,IAAlC,IAAK,EAAL,qBAAoC,SAAvB5C,EAAU,QAAVA,WACW,QAAlB,EAACA,EAAWuJ,cAAM,OAAQ,QAAR,EAAjB,EAAmB/C,cAAM,OAAzB,EAA2Bf,SAIhCzF,EAAWuJ,OAAO/C,OAASxG,EAAWuJ,OAAO/C,OAAOM,QAAO,SAACyC,EAAQN,GAClE,IAAMO,EAAWF,EAAgBL,GAKjC,OAJiB,OAAbO,GACFD,EAAOpC,KAAKqC,GAGPD,CACT,GAAG,IACL,CAAC,+BACH,GAEJ,IAGK,EAOHf,EAAYH,QANdI,EAAkB,EAAlBA,mBACAE,EAAuB,EAAvBA,wBACAE,EAAW,EAAXA,YACAG,EAAW,EAAXA,YACAE,EAAW,EAAXA,YACAC,EAAc,EAAdA,eAGF,KAAeX,EAAmB,sYC7ElC,gnGAAA3F,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qRAqHW4G,GAAuB,0gCAjH3B,SAASC,EAA8BC,EAASC,GAGrD,OAFuBC,EAAAA,EAAAA,GAAgBF,EAASC,GAE1B9C,QAAO,SAACgD,EAAaC,EAAOlH,GAKhD,MAJc,UAAVkH,GACFD,EAAY3C,KAAKwC,EAAQZ,OAAOlG,IAG3BiH,CACT,GAAG,GACL,CAEO,IAAM3B,GAAoB6B,EAAAA,EAAAA,IAC/B,uBACA,SAAkBC,EAAcC,EAAaX,EAAQY,EAAeC,GAClE,IAAMd,EA+CV,SAAkCW,EAAcC,EAAaX,GAC3D,IAkDgC,EAlD1Bc,EAkD0B,+CAlDPd,EAAO1C,SAkDA,qSA9ChC,OAAoB,OAAhBqD,EACKG,EAAaC,KAAI,SAAAzH,GACtB,OAAIA,IAAMoH,EACD,KAGFpH,EAAIoH,EAAepH,EAAI,EAAIA,CACpC,IAGKwH,EAAaC,KAAI,SAAAzH,GACtB,IACM0H,EAAa1H,EAAIoH,GAAgBpH,EAAIqH,EACrCM,EAAY3H,EAAIoH,GAAgBpH,EAAIqH,EACpCO,EAAmBR,EAAepH,GAAKA,EAAIqH,EAEjD,OALkBrH,IAAMoH,EASlBC,IAAgBX,EAAO9D,OAClByE,EAAc,EAGhBA,EACEK,GAAcC,EAChB3H,EACE4H,EACF5H,EAAI,EAGNA,EAAI,CACb,GACF,CArF4B6H,CAAwBT,EAAcC,EAAaX,GACnEoB,EAAgCR,EAAhCQ,QAASf,EAAuBO,EAAvBP,mBAGjB,MAAO,CACLnC,QAAS,CACPwC,aAAAA,EACAC,YAAAA,EACAS,QAAAA,EACA7F,gBAPmCsF,EAA/BlH,UAQJ0G,mBAAAA,EACAN,gBAAAA,GAGN,IAGIsB,EAA6B,SAAAtE,GAAI,MAAI,CAACA,EAAKtG,WAAWkE,SAASsC,OAAO,EAOrE,SAAS4B,IAA+E,IAAlDyC,EAAsB,UAAH,6CAAGD,EACjE,OAAO,SAAkBhI,EAAO4E,GAC9B,IAMuC,EANvC,EAA0EA,EAAOC,QAAzEkD,EAAO,EAAPA,QAAS7F,EAAe,EAAfA,gBAAiB8E,EAAkB,EAAlBA,mBAAoBN,EAAe,EAAfA,gBAClCpG,EAAuByH,EAAnC1H,WAAuB6H,EAAYH,EAAZG,QAG9B,IAF2BrB,EAC1B7G,EAAOM,EAAW4B,EAAiB8E,EAAoBiB,IAGlB,IAAvC,IAAK,EAAL,qBAAyC,OAA9Bd,EAAK,QACVgB,EAAgBC,IAAIF,EAASf,EAAMlF,MAAOkF,EAAMlF,OAC/CoG,OAAOC,MAAMD,OAAOF,MACvBA,EAAgBE,OAAOF,IAGzBhB,EAAMlF,MAAsC,QAAjC,EAAGyE,EAAgByB,UAAc,aAA9B,EAAgCI,gBAC1BtN,IAAhBkM,EAAMlF,QACRkF,EAAMlF,MAAQ,IACdkF,EAAMqB,gBAAiB,EAE3B,CAAC,+BACH,CACF,CAqDA,SAAW3B,EAAyB7G,EAAOM,EAAW4B,EAAiB8E,EAAoBiB,GAAmB,iGACzFjI,GAAK,yDAAb0D,EAAI,YACUuE,EAAoBvE,EAAMpD,EAAW4B,IAAgB,yDAAjEZ,EAAQ,YACKA,GAAQ,2DAAnByF,EAAO,YACID,EAA6BC,EAASC,IAAmB,2DAC3E,OADSG,EAAK,kBACRA,EAAK,+hECvHrB,IAAMsB,EAAyB,SAKlBC,EAAe,SAAA1I,GAAK,OAAIA,EAAMuD,SAASC,OAAOmD,MAAM,EAE3DgC,GAAclE,EAAAA,EAAAA,IAAY,CAC9BpI,KAAM,SACNwD,aAAc,GACd6E,SAAU,CACRkE,YAAW,SAAE5I,EAAO4E,GAClB5E,EAAMuE,KAAK,CACTlI,KAAM,SAAF,OAAW2D,EAAM6C,QACrBqD,OAAQ,GACR9I,WAAY,CACVkE,SAAU,CACRsC,OAAQiF,IAAMjE,EAAOC,QAAQrC,cAAc,kBAhB5B,WAA+B,MAAM,CAC9DP,MADkC,UAAH,6CAAGwG,EAC3BtC,OAAQ,GAChB,CAc4D2C,EAAoB,OAI7E,EACAC,oBAAmB,SAAE/I,EAAO4E,GAC1B,MAAoCA,EAAOC,QAAnCmE,EAAU,EAAVA,WAAY3M,EAAI,EAAJA,KAAM4M,EAAK,EAALA,MACtB5M,IACF2D,EAAMgJ,GAAY3M,KAAOA,QAEbpB,IAAVgO,IACFjJ,EAAMgJ,GAAY5L,WAAW6L,MAAQ,CACnCrF,OAAQqF,GAGd,EACAC,YAAW,SAAElJ,EAAO4E,GAClB5E,EAAM4E,EAAOC,QAAQwB,OAAOhK,KAAOuI,EAAOC,QAAQxI,IACpD,EACA8M,gBAAe,SAAEnJ,EAAO4E,GACtB,MAAsCA,EAAOC,QAArCwC,EAAY,EAAZA,aAAcC,EAAW,EAAXA,YACtB,GAAID,IAAiBC,EAArB,CAIA,IAAM8B,EAAQpJ,EAAMqH,GAGdgC,EAAmB/B,EAAcD,EACnCC,EAAc,EACdA,EAEJtH,EAAMmF,OAAOkC,EAAc,GAC3BrH,EAAMmF,OAAOkE,EAAkB,EAAGD,EAVlC,CAWF,EACAE,YAAW,SAAEtJ,EAAO4E,GAClB5E,EAAMmF,OAAOP,EAAOC,QAAQwB,MAAO,EACrC,EACAkD,iBAAgB,SAAEvJ,EAAO4E,GACvB5E,EAAM4E,EAAOC,QAAQmE,YAAY5L,WAAWkE,SAASsC,OAAOgB,EAAOC,QAAQ2E,WAAa5E,EAAOC,QAAQkC,OACzG,EACA0C,qBAAoB,SAAEzJ,EAAO4E,GAC3B,MAAuDA,EAAOC,QAAtDmE,EAAU,EAAVA,WAAYU,EAAW,EAAXA,YAAuB3C,EAAO,EAAjBzF,SACzBlE,EAAe4C,EAAMgJ,GAArB5L,WACRA,EAAW,mBAAqBA,EAAW,oBAAsB,CAAEwG,OAAQ,IAC3E,IAAMtC,EAAWlE,EAAW,mBAAmBwG,OAE/CtC,EAASoI,GAAe3C,EAKxB,IAAK,IAAI9G,EAAI,EAAGA,EAAIyJ,EAAazJ,IAC/BqB,EAASrB,GACPqB,EAASrB,IAAM,CACbgC,MAAO,cACPkE,OAAQ,CACN,CAAElE,MAAO,EAAGuG,gBAAgB,EAAMrC,OAAQ,IAC1C,CAAElE,MAAO,EAAGuG,gBAAgB,EAAMrC,OAAQ,MAMlD,IAAMwD,EAAiBrI,EAASsI,aAAQ3O,IAChB,IAApB0O,GACFrI,EAAS6D,OAAOwE,EAAgBrI,EAASuB,OAAS8G,EAEtD,EACAE,4BAA2B,SAAE7J,EAAO4E,GAAQ,IACuC,EADvC,IACpB5E,EAAM4E,EAAOC,QAAQmE,YAAY5L,WAAWkE,SAASsC,QAAM,IAAjF,IAAK,EAAL,qBAAmF,KAAxEmD,EAAO,QACM,WAAlBA,EAAQ9E,QACV8E,EAAQ9E,MAAQ,MAChB8E,EAAQZ,OAAS,GAErB,CAAC,+BACH,EACA2D,wBAAuB,SAAE9J,EAAO4E,GAAQ,IAC2C,EAD3C,IAChB5E,EAAM4E,EAAOC,QAAQmE,YAAY5L,WAAWkE,SAASsC,QAAM,IAAjF,IAAK,EAAL,qBAAmF,KAAxEmD,EAAO,QACM,WAAlBA,EAAQ9E,QACV8E,EAAQ9E,MAAQ,QAChB8E,EAAQZ,OAAS,GAErB,CAAC,+BACH,EACA4D,qBAAoB,SAAE/J,EAAO4E,GAAQ,IAC8C,EAD9C,IACb5E,EAAM4E,EAAOC,QAAQmE,YAAY5L,WAAWkE,SAASsC,QAAM,IAAjF,IAAK,EAAL,qBAAmF,KAAxEmD,EAAO,QACM,UAAlBA,EAAQ9E,QACV8E,EAAQ9E,MAAQ,MAChB8E,EAAQZ,OAAS,GAErB,CAAC,+BACH,EACA6D,wBAAuB,SAAEhK,EAAO4E,GAAQ,IAC2C,EAD3C,IAChB5E,EAAM4E,EAAOC,QAAQmE,YAAY5L,WAAWkE,SAASsC,QAAM,IAAjF,IAAK,EAAL,qBAAmF,KAAxEmD,EAAO,QACM,UAAlBA,EAAQ9E,QACV8E,EAAQ9E,MAAQ,SAChB8E,EAAQZ,OAAS,GAErB,CAAC,+BACH,EACA8D,iCAAgC,SAAEjK,EAAO4E,GAAQ,IACkC,EADlC,IACzB5E,EAAM4E,EAAOC,QAAQmE,YAAY5L,WAAWkE,SAASsC,QAAM,IAAjF,IAAK,EAAL,qBAAmF,OAAxEmD,EAAO,QACM,QAAlBA,EAAQ9E,OAAqC,QAAlB,EAAC8E,EAAQZ,OAAO,UAAE,OAAjB,EAAmBlE,QACjD8E,EAAQ9E,MAAQ,SAChB8E,EAAQZ,OAAS,GAErB,CAAC,+BACH,EACA+D,0BAAyB,SAAElK,EAAO4E,GAAQ,IACyC,EADzC,IAClB5E,EAAM4E,EAAOC,QAAQmE,YAAY5L,WAAWkE,SAASsC,QAAM,IAAjF,IAAK,EAAL,qBAAmF,OAAxEmD,EAAO,QACM,QAAlBA,EAAQ9E,OAAqC,QAAlB,EAAC8E,EAAQZ,OAAO,UAAE,OAAjB,EAAmBlE,QACjD8E,EAAQ9E,MAAQ,QAChB8E,EAAQZ,OAAS,GAErB,CAAC,+BACH,GAEFf,cAAe,SAAAC,GACbA,EAAQC,QACNC,EAAAA,IACAC,EAAAA,EAAAA,KAA4B,SAAA9B,GAAI,YAAI,CAClCA,EAAKtG,WAAWkE,SAASsC,QACS,QAAlC,EAAAF,EAAKtG,WAAW,0BAAkB,aAAlC,EAAoCwG,SAAU,GAC/C,IAEL,IAGK,EAcH+E,EAAYlD,QAbdmD,EAAW,EAAXA,YAEAO,GADW,EAAXD,YACe,EAAfC,iBACAG,EAAW,EAAXA,YACAP,EAAmB,EAAnBA,oBACAQ,EAAgB,EAAhBA,iBACAE,EAAoB,EAApBA,qBACAI,EAA2B,EAA3BA,4BACAC,EAAuB,EAAvBA,wBACAC,EAAoB,EAApBA,qBACAC,EAAuB,EAAvBA,wBACAC,EAAgC,EAAhCA,iCACAC,EAAyB,EAAzBA,0BAGF,KAAevB,EAAmB,uMCnKrBwB,EAAe,SAAAnK,GAAK,OAAIA,EAAMuD,SAASC,OAAO5B,MAAM,EAE3DwI,GAAc3F,EAAAA,EAAAA,IAAY,CAC9BpI,KAAM,SACNwD,aAAc,GACd6E,SAAU,CACR2F,SAAQ,SAAErK,EAAO4E,GACf5E,EAAMuE,KAAKK,EAAOC,QACpB,EACAyF,YAAW,SAAEtK,EAAO4E,GAClB5E,EAAMmF,OAAOP,EAAOC,QAAQwB,MAAO,EACrC,EACAkE,oBAAmB,SAAEvK,EAAO4E,GAC1B,MAA4BA,EAAOC,QAA3BwB,EAAK,EAALA,MAAO/E,EAAQ,EAARA,SACftB,EAAMqG,GAAOjJ,WAAWkE,SAASsC,OAAStC,CAC5C,EACAkJ,sBAAqB,SAAExK,EAAO4E,GAC5BvH,OAAOC,OAAO0C,EAAM4E,EAAOC,QAAQ4F,YAAa7F,EAAOC,QAAQlK,QACjE,GAEFyK,cAAe,SAAAC,GACbA,EAAQC,QACNC,EAAAA,IACAC,EAAAA,EAAAA,MAEJ,IAGK,EAKH4E,EAAY3E,QAJd4E,EAAQ,EAARA,SACAC,EAAW,EAAXA,YACAC,EAAmB,EAAnBA,oBACAC,EAAqB,EAArBA,sBAGF,KAAeJ,EAAmB,4+BCpC3B,SAASM,EAAmBnI,EAAQ,GACzC,OADwD,EAAboI,MACpCpI,EAAOmF,KAAI,SAAAkD,GAAG,OAAIC,EAAAA,EAAAA,IACvB,CAAEC,EAAGF,EAAIE,EAAGC,EAAGH,EAAIG,GACnB,CAAEC,EAAGJ,EAAII,GAAKJ,EAAIK,GAAK,EAAGC,EAAGN,EAAIM,GAAK,GACtC,CAAEJ,EAAGF,EAAIO,GAAIJ,EAAGH,EAAIQ,GAAIC,EAAGT,EAAIU,GAChC,GACH,CAEO,SAASxI,EAAsBP,GACpC,OAAOA,EAAOmF,KAAI,SAAAkD,GAAG,OAAIW,EAAAA,EAAAA,IACvB,CAAET,EAAGF,EAAIE,EAAGC,EAAGH,EAAIG,GACnB,CAAEC,EAAGJ,EAAII,GAAKJ,EAAIK,GAAK,EAAGC,EAAGN,EAAIM,GAAK,GACtC,CAAEJ,EAAGF,EAAIO,GAAIJ,EAAGH,EAAIQ,GAAIC,EAAGT,EAAIU,GAChC,IAAEpH,QAAO,kBAAG4G,EAAC,EAADA,EAAGC,EAAC,EAADA,EAAOS,EAAG,EAAHA,IAAG,MAAQ,CAChCV,EAAGW,KAAKD,IAAIV,EAAGU,EAAIV,GACnBC,EAAGU,KAAKD,IAAIT,EAAGS,EAAIT,GACpB,GAAG,CAAED,EAAG,EAAGC,EAAG,GACjB,CAEO,SAAShI,EAAiB2I,GAAkD,6DAAJ,CAAC,EAAC,IAAhCf,MAAAA,OAAK,IAAG,IAAC,MAAEgB,UAAAA,OAAS,IAAG,GAAC,EAAC,EAClEC,EAAOC,MAAMC,QAAQJ,GACvB5I,EAAqB4I,GACrBA,EAEJ,sWAAO,CAAP,CACE5N,MAAO,GAAF,OAAK8N,EAAKd,EAAIH,EAAK,MACxB5M,OAAQ,GAAF,OAAK6N,EAAKb,EAAIJ,EAAK,MACzBoB,OAAQ,SACRC,QAAS,eACNL,EAEP,0xDC9BO,SAASM,EAAO,GAA4B,QAAxB/M,MAAAA,OAAK,IAAG,GAAC,EAAC,EAAE3D,EAAQ,EAARA,SAOrC,OACE,gBAAK2D,MAAK,OANM,CAChBnB,OAAQ,OACRmO,WAAY,SAImBhN,GAAQ,SACpC3D,GAGP,CAEO,SAAS4Q,EAAM,GAAqC,IAAjC5Q,EAAQ,EAARA,SAAQ,IAAE2D,MAAAA,OAAK,IAAG,GAAC,EAAC,EAAK1D,EAAI,OACrD,OACE,SAACyQ,EAAO,CAAC/M,MAAOA,EAAM,UACpB,uBAAQA,MAAO,CAAEnB,OAAQ,SAAcvC,GAAI,aACxCD,MAIT,CAEA,IAAM6Q,EAAqBC,OAAOC,WAAW,gCACvCC,EAAsB,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAIrI,QAAO,SAACsI,EAAQvM,GAErF,OADAuM,EAAO,UAAD,OAAWvM,IAAO,iBAAH,OAAoBA,EAAI,GAAE,MACxCuM,CACT,GAAG,CAAC,GAIG,SAASC,EAAM,GAA+C,IAA3CxD,EAAK,EAALA,MAAiByD,EAAa,EAAvBnR,SAA4BC,EAAI,OACvDmR,GAAU/L,EAAAA,EAAAA,KAAY,SAAAZ,GAAK,OAAIA,CAAK,IAApC2M,MACFC,EAAmB,SAAVD,GAA+B,WAAVA,GAAsBP,EAAmBS,QAS7E,OACE,iBAAK3N,MAAO,CACVf,QAAS,eACTL,MAAO,QACP,WACA,kBAAOoB,MAAO,CACZf,QAAS,QACTL,MAAO,OACPgP,SAAU,OACVC,MAAO,aACP,SACC9D,KAEH,SAAC,KAAW,GACVvN,OAAQ,CACNsR,UAAW,SAACC,EAAYjN,GAAK,cACxBiN,GAAU,IACb9O,QAAS,gBAAc,EAEzB+O,KAAM,SAACD,GAAU,cACZA,GAAU,IACbnP,MAAO,cACPI,OAAQ,IAAE,GAGdiP,WAAY,CAAEC,SAhCH,SAAH,OAAM7R,EAAQ,EAARA,SAAaJ,EAAK,cACpC,UAAC,EAAAkS,EAAA,SAAmB,OAAKlS,GAAK,cAC3BI,EACAmR,KACmB,GA6BlBC,MAAO,SAAAA,GAAK,cACPA,GAAK,IACRH,OAAQ,EAAF,KACDG,EAAMH,QACLI,EAASL,EAAsB,CAAC,IACrC,EAEHe,cAAc,GACV9R,MAIZ,CAnDA+Q,EAAoBgB,UAAY,mWChChC,gnGAAAtN,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,0lBAAAA,EAAA,EAAAA,EAAA,SAAAA,IAAA,SAAAA,GAAA,+4BAIA,IAAMuN,EAAe,GAAH,OAAMC,EAAAA,GAAAA,QAA0B,OAAQ,MAAK,kBAElDC,EAAG,aANhB,qRAMgB,UANhB,IAuQG,EAbA,EAjDA,EAVA,EAVA,EAxKY,EAbf,IAMgB,GANhB,EAMgB,EANhB,6jBAMgB,oBANhB,4FAMgB,iFAOD,OAPC,gDACN,MAAI,uBACG,GAAK,uBACJ,MAAI,sBACL,MAAI,6BACG,MAAI,kBACf,MAAI,gBACN,MAAI,EA+RZ,OA5SH,EAae,EAbf,EAae,sCAEb,WAAgB/S,GAAO,uEAcpB,MAbsB,iBAAZA,IACTA,EAAU,CACRgT,IAAKhT,IAILA,EAAQgT,IAAIC,WAAW,OACzBjT,EAAQgT,IAAM,GAAH,OAAMF,EAAAA,IAAiB,OAAG9S,EAAQgT,MAG/ChT,EAAQkT,QAAUxQ,OAAOC,OAAO,CAAC,EAAG3C,EAAQkT,SACxCC,KAAKC,QAAUpT,EAAQkT,QAAQG,gBACjCrT,EAAQkT,QAAQG,cAAgB,UAAH,OAAaF,KAAKC,QAChD,kBAGcE,IAAMtT,GAAQ,gDAK1B,MAL0B,0BAEE,OAAb,QAAZ,OAAIuT,gBAAQ,aAAZ,EAAcC,UAChBC,QAAQC,MAAM,0BACdP,KAAKQ,KAAK,wBAAyB,KAAIJ,WACxC,+DAIJ,gEAED,WAAQ,WACN,OAAIJ,KAAKS,eAITT,KAAKS,aAAe,YAAC,8FAWlB,GAVD,EAAKC,aAECC,EAAkB,GAAH,OAAMhB,EAAAA,GAAiB,yBACtCtH,EAAS,IAAIuI,gBAAgBrC,OAAOsC,SAASC,SAKxCxG,IAAI,iBAAmBjC,EAAOiC,IAAI,oBAC3C,EAAKyG,kBAGH1I,EAAOiC,IAAI,WAAY,CAAF,eACe,OAAtC0G,YAAW,kBAAM,EAAKR,KAAK,UAAU,IAAC,0BAQvC,GAJKnH,EAAQhB,EAAOiC,IAAI,UACpBiE,OAAO0C,aAAaC,YAAc7H,IACrCkF,OAAO4C,QAAQC,aAAa,CAAC,EAAG,KAAM7C,OAAOsC,SAASQ,UACtD9C,OAAO0C,aAAaC,WAAa7H,IAG/BkF,OAAO0C,aAAaC,WAAY,CAAF,gBACW,OAA3C,EAAKjB,MAAQ1B,OAAO0C,aAAaC,WAAU,UACpB,EAAKI,SAASX,GAAgB,iBAA7CY,EAAI,EAAJA,KACFC,EAAYD,EAAKE,cAAc5N,QAAO,SAAA6N,GAAY,OAAIA,EAAaC,YAAY,IAEjFJ,EAAKE,cAAc1M,SAAWyM,EAAUzM,SAC1CuL,QAAQsB,KAAK,4DACb,EAAKpB,KAAK,sBAGZ,EAAKqB,SAAWN,EAAKM,SACrB,EAAKJ,cAAgBF,EAAKE,cAC1B,EAAKK,aAAeP,EAAKO,aACzB,EAAKC,oBAAsBR,EAAKQ,oBAChC,EAAKvB,KAAK,iBAAgB,2CAtCV,IAHXR,KAAKS,YA8ChB,GAAC,wBAED,WAAc,WACNuB,EAAmB,GAKnBC,EAAO,SAACC,GAHL,EAAKC,OAAOC,aAAe7D,OAAO8D,UAAUC,MASnDN,EAAiBvL,KAAKyL,GACtB5B,QAAQiC,IACN,8BACA,CAAEH,WAAY,EAAKD,OAAOC,YAC1BF,IARA,EAAKC,OAAOF,KAAKC,EAUrB,EAUAlC,KAAKmC,OAAS,IAAI5D,OAAO8D,UAAU3C,GACnCM,KAAKmC,OAAOK,OAAS,WACnBlC,QAAQiC,IAAI,IAAIE,KAAQ,wBAVZ,WAEZ,IADA,IAAIP,EACIA,EAAUF,EAAiBU,SACjCpC,QAAQiC,IAAI,qCAAsCL,GAClD,EAAKC,OAAOF,KAAKC,EAErB,CAKES,GACAC,aAAY,WACVX,EAAKY,KAAKC,UAAU,CAAEZ,QAAS,SACjC,GAAG,IACL,EAEAlC,KAAKmC,OAAOY,QAAU,kBAAMzC,QAAQiC,IAAI,IAAIE,KAAQ,2BAA2B,EAC/EzC,KAAKmC,OAAOa,QAAU,SAAAC,GAAG,OAAI3C,QAAQC,MAAM,IAAIkC,KAAQQ,EAAI,EAC3DjD,KAAKmC,OAAOe,UAAY,SAAArR,GACtB,IAAMqQ,EAAUW,KAAKM,MAAMtR,EAAM0P,MACX,iBAAlBW,EAAQrQ,OACV,EAAK2O,KAAK,eAAgB0B,EAAQkB,aAEtC,EAEApD,KAAKqD,GAAG,iBAAiB,WAAM,MACN,QAAnB,EAAC,EAAK5B,qBAAa,OAAlB,EAAoB1M,SAIzB,EAAKuO,yBAELrB,EAAKY,KAAKC,UAAU,CAClBZ,QAAS,YACTX,KAAM,EAAKtB,SAEf,GACF,GAAC,4BAED,WACE1B,OAAO0C,aAAasC,WAAW,cAC/BhF,OAAOsC,SAAS1R,KAAO,GAAH,OAAMwQ,EAAAA,GAAiB,oBAC7C,GAAC,iCAED,WACEpB,OAAOsC,SAAS1R,KAAO,2BAAH,OAA8BwQ,EAAAA,GAAoB,qBACxE,GAAC,qCAED,SAAyB6D,GACvB,IAAM9B,EAAe1B,KAAKyB,cAAcgC,MAAK,SAAA/B,GAAY,OAAIA,EAAagC,KAAOF,CAAc,IAC/FjF,OAAOsC,SAAS1R,KAAOuS,EAAaiC,QACtC,GAAC,gCAED,WACE,QAAS3D,KAAKC,KAChB,GAAC,4CAED,WAAkC,UAChC,OACoB,QAAlB,EAAAD,KAAKyB,qBAAa,aAAlB,EAAoB1M,QAAS,IACX,QADY,EAC9BiL,KAAKyB,qBAAa,aAAlB,EAAoBmC,OAAM,SAAAlC,GAAY,OAAIA,EAAaC,YAAY,OACjD,QADkD,EACpE3B,KAAKyB,qBAAa,aAAlB,EAAoBoC,MAAK,SAAAnC,GAAY,MAA0C,QAAtCA,EAAaoC,oBAA8B,IAExF,GAAC,4BAED,WAAkB,QAChB,OAAyB,QAAlB,EAAA9D,KAAKyB,qBAAa,aAAlB,EAAoB1M,UAA2B,QAArB,EAAIiL,KAAK8B,oBAAY,aAAjB,EAAmB/M,OAC1D,GAAC,8CAED,WAAyBgP,GAAI,6EAE0B,OAD/CrC,EAAesC,mBAAmBhE,KAAK+B,oBAAoBgC,EAAKE,YAChEC,EAAaF,mBAAmBD,EAAKE,WAAU,SAC9BjE,KAAKsB,SAAS,wBAAD,OACVI,EAAY,YAAIwC,EAAU,cACnD,OAFW,OAEX,SAFO3C,EAAI,EAAJA,KAAI,kBAILA,GAAI,gDACZ,+FAED,WAA4BwC,EAAMI,GAAM,6EAEe,OAD/CzC,EAAesC,mBAAmBhE,KAAK+B,oBAAoBgC,EAAKE,YAChEC,EAAaF,mBAAmBD,EAAKE,WAAU,SAC9BjE,KAAKsB,SAAS,wBAAD,OACVI,EAAY,YAAIwC,EAAU,sBAAcC,IACjE,OAFW,OAEX,SAFO5C,EAAI,EAAJA,KAAI,kBAILA,GAAI,gDACZ,iGAED,WAA4BwC,EAAMI,GAAM,+GAaT,OAba1O,GAAJ,+BAAiB,CAAC,GAAdA,SACpCiM,EAAesC,mBAAmBhE,KAAK+B,oBAAoBgC,IAC3DG,EAAaF,mBAAmBD,GAChClE,EAAM,IAAIuE,IAAI,GAAD,OAAIzE,EAAAA,GAAiB,kCAA0B+B,EAAY,YAAIwC,IAC5EG,EAAQ,IAAIzD,gBAEduD,GACFE,EAAMC,IAAI,SAAUH,GAElB1O,GACF4O,EAAMC,IAAI,WAAY7O,GAGxBoK,EAAIiB,OAASuD,EAAM5J,WAAU,mBAGJuF,KAAKsB,SAASzB,EAAIpF,YAAW,QAWhB,OAXgB,SAA5C8G,EAAI,EAAJA,KACQgD,EAAsBhD,EAA9BiD,KAAQD,QAAW7O,EAAW6L,EAAX7L,OACrB+O,EAAgBlV,OAAO4G,KAAKoL,EAAKiD,KAAKD,SAAS,GAC/CG,EAAkBhP,EAAOiP,OAAO,wBAClCjP,EAAOiP,OAAO,wBAAwB3O,QAAQ,KAAM,IACpD,KAEE4O,EACJL,EAAQG,IACRH,EAAQE,GAEJhQ,EAASmQ,EAAenQ,OAAM,kBAE7B,CACLmQ,eAAAA,EACAnQ,OAAAA,EACAiB,OAAAA,EACAmP,UAAWtD,EAAKsD,UAChB5W,QAASsT,EAAKuD,cACdC,QAASxD,EAAKwD,UACf,QAOA,MAPA,0BAE4B,OAAb,QAAZ,OAAI3E,gBAAQ,aAAZ,EAAcC,SAChBC,QAAQC,MAAM,+CAAgD,KAAIH,SAASmB,MAC3EvB,KAAKQ,KAAK,wBAAyB,KAAIJ,SAASmB,OACd,OAAb,QAAZ,OAAInB,gBAAQ,aAAZ,EAAcC,SAA6C,0BAA3B,KAAID,SAASmB,KAAKhT,MAC3DyR,KAAKQ,KAAK,2BAA4B,KAAIJ,SAASmB,MACpD,+DAIJ,mGAED,yFACOvB,KAAKgF,qBAAsB,CAAF,wCACrB,CAAEC,aAAc,KAAI,OAK5B,OAFIjF,KAAKkF,WACRlF,KAAKkF,SAAWlF,KAAKsB,SAAS,GAAD,OAAI3B,EAAAA,GAAiB,sBACnD,SAEsBK,KAAKkF,SAAQ,OAAxB,OAAwB,SAA5B3D,EAAI,EAAJA,KAAI,kBACLA,GAAI,gDACZ,0FAED,WAAwBwC,EAAMI,GAAM,+EAGuF,OAFnHzC,EAAesC,mBAAmBhE,KAAK+B,oBAAoBgC,IAC3DG,EAAaF,mBAAmBD,GAChClE,EAAM,IAAIuE,IAAI,GAAD,OAAIzE,EAAAA,GAAiB,8BAAsB+B,EAAY,YAAIwC,EAAU,YAAIF,mBAAmBG,KAAU,SAElGnE,KAAKsB,SAASzB,EAAIpF,YAAW,OAAxC,OAAwC,SAA5C8G,EAAI,EAAJA,KAAI,kBACLA,GAAI,gDACZ,2EAED,SAAewC,EAAMI,EAAQ1P,EAAQiB,GAAsB,IAAd7I,EAAU,UAAH,6CAAG,CAAC,EACtD,EAIIA,EAHFqV,QAAAA,OAAO,IAAG,OAAI,IAGZrV,EAFFsY,qBAAAA,OAAoB,IAAG,GAAC,EAAC,EACzB1P,EACE5I,EADF4I,SAEIiM,EAAesC,mBAAmBhE,KAAK+B,oBAAoBgC,IAC3DG,EAAaF,mBAAmBD,GAChClE,EAAM,IAAIuE,IAAI,GAAD,OAAIzE,EAAAA,GAAiB,kCAA0B+B,EAAY,YAAIwC,EAAU,YAAIF,mBAAmBG,KACnH,EAA0CgB,EAAlCC,sBACFf,EAAQ,IAAIzD,gBAAgB,CAChCwE,2BAF2B,IAAG,GAAK,IAWrC,OANI3P,GACF4O,EAAMC,IAAI,WAAY7O,GAGxBoK,EAAIiB,OAASuD,EAAM5J,WAEZuF,KAAKsB,SAAS,CACnBzB,IAAKA,EAAIpF,WACT4K,OAAQ,OACRtF,QAAS,CAAE,eAAgB,oBAC3BwB,KAAM,CAAE9L,SAAAA,EAAUC,OAAAA,EAAQwM,QAAAA,IAE9B,IA5SF,uEA4SG,EAtSa,CAASoD,KAySnBC,EAAM,IAAI3F,EAChB,0CCjTA,SAAS4F,EAAcC,GACrB,OAAOA,GAAO,CAAC,IAAK,KAAM,MAAO,QAAQC,SAASD,EAAIhL,WAAWkL,cACnE,kLAEO,IAAMC,EAAaC,oCAEbC,EAAgBD,gBAChBE,EAAeP,EAAaK,QAC5BG,EAAcR,EAAaK,SAC3BI,EAAaT,EAAaK,QAC1BK,EAAkBV,EAAaK,QAC/BM,EAAmBX,EAAaK,kNCAzChZ,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,YAAiB,oBALlD,eCVI,EAAU,CAAC,EAEf,EAAQC,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,YAAiB,WALlD,i7CCpBA,gnGAAAiF,GAAA,wBAAAA,EAAA,sBAAAA,GAAA,iBAAAA,GAAA,ssDAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,4bAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,yhBAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,qGAAAA,EAAA,yBAAAA,GAAA,IAAAA,EAAA,uBAAAA,GAAA,2xBAAAA,EAAA,gDAAAA,GAAA,oCAAAA,KAAA,60BAAAA,EAAA,iBAAAA,EAAA,EAAAA,IAAA,EAAAA,GAAA,EAAAA,GAAA,SAiBA,SAASiU,EAAsB1Q,GAC7B,IAlBF,EAAAvD,EAkBwD,GAlBxD,GAkB4CT,EAAAA,EAAAA,UAAS,IAlBrDS,EAkBwD,EAlBxD,yDAAAA,GAAA,0JAAAA,EAAA,6FAAAA,GAAA,mIAAAA,IAAA,IAAAA,IAAA,gLAkBSkU,EAAa,KAAEC,EAAgB,KAChCC,GAAUzR,EAAAA,EAAAA,UAAQ,WACtB,OAAOY,EAAOqK,QAAQ3J,QAAO,SAACoQ,EAAKC,GAIjC,OAHIA,KAAUC,GACZF,EAAI/P,KAAKiQ,EAAcD,IAElBD,CACT,GAAG,GACL,GAAG,CAAC9Q,EAAOqK,UAoBX,OAlBA9M,EAAAA,EAAAA,YAAU,WACR,IA7BJ,EA6BI,GA7BJ,EA6BI,UAAC,4FACO0T,EAAS,GAAE,IACIJ,GAAO,yDAAX,OAANK,EAAM,iBAEI,SAGjB,YACyBA,EAAOC,WACjC,OALKtF,EAAO,EAAH,KAMVoF,EAAOlQ,KAAI,MAAXkQ,EAAM,GAASpS,EAAAA,EAAAA,GAAqBgN,EAAKpL,QAAM,+IAGjDmQ,EAAiBK,GAAO,+DAb1B,EA7BJ,8KA2CK,WAd0B,kCAe7B,GAAG,CAACJ,IAEGF,CACT,CAwMA,OAtMA,SAAgB,GAA0B,IAAtB5Y,EAAQ,EAARA,SACViI,oXAD4B,MAC5BA,OACR,GAAyCoR,EAAAA,EAAAA,YAAW1U,EAAAA,GAA5CE,EAAQ,EAARA,SAAUC,EAAU,EAAVA,WAAYG,EAAM,EAANA,OACtBqU,GAAaD,EAAAA,EAAAA,YAAWE,EAAAA,GAAxBD,SACFE,EAAiBb,EAAqB1Q,GAEtCwR,GAAepS,EAAAA,EAAAA,UAAQ,WAC3B,IAAMqS,EAAQ5I,OAAO6I,UAAUC,SAASvH,WAAW,OAC7CwH,EAAQ/I,OAAO6I,UAAUC,SAASvH,WAAW,OAC7CuH,EAAYF,EAAS,MAAWG,GAAS,MAE/C,OAAOC,EAAAA,EAAAA,GAAgB7U,EAAQ,CAC7B8U,QAASlN,IAAIyM,EAAU,iBAAiB,GACxCM,SAAsD,SAA5C/M,IAAIyM,EAAU,iBAAkB,QACtCA,EAASU,eACTJ,GAER,GAAG,CAAC3U,EAAQqU,IAENW,GAAqB5S,EAAAA,EAAAA,UAAQ,WACjC,IAAM6S,EAAkBjS,EAAOlD,UAAUoH,KAAI,SAAA5C,GAI3C,OAHAA,EAAWzD,IAAUyD,IACZ4Q,KAAO,IAAH,OAAO5Q,EAASoB,OAAO,IACpCpB,EAASnB,WAAamB,EAAS1H,WAAWuG,WAAWC,OAC9CkB,CACT,KACA6Q,EAAAA,EAAAA,uBAAsBF,EAAiBG,EAAAA,kBACvC,IAAMC,EAAW,GAAH,SACTxV,EAAWqH,KAAI,SAAA5C,GAAQ,oBACrBA,GAAQ,IACXgR,YAAahR,EAASgR,cAA8B,QAAnB,EAAIhR,EAASd,cAAM,aAAf,EAAiB8R,cAAW,KAChE,GACCL,GAAmB,IAAI/N,KAAI,SAAA5C,GAAQ,cAAK,CAC1C4Q,KAAM,IAAF,OAAM5Q,EAASoB,OAAO,IAC1B6P,KAAM,IAAF,OAAMjR,EAASoB,OAAO,IAC1B7J,KAAMyI,EAASzI,KACf2Z,aAAsC,QAAzB,EAAAlR,EAAS1H,WAAW6L,aAAK,aAAzB,EAA2BpF,MAAOiB,EAASzI,KACxDyZ,YAAa,oBAAF,QAA+C,QAAzB,EAAAhR,EAAS1H,WAAW6L,aAAK,aAAzB,EAA2BpF,MAAOiB,EAASzI,MAC5EoF,QAASqD,EAASrD,QACnB,KAAE,EACA+B,EAAO5B,OAAO8F,KAAI,SAAAuO,GAAK,YAAK,CAC7BP,KAAM,IAAF,OAAMO,EAAM/P,OAAO,IACvB7J,KAAM4Z,EAAM5Z,KACZyZ,YAAa,gBAAF,QAAwC,QAAtB,EAAAG,EAAM7Y,WAAW6L,aAAK,aAAtB,EAAwBpF,MAAOoS,EAAM5Z,MACnE,MAmBH,OAZAwZ,EAAStU,QAAUC,IAAMqU,EAAU,QACnCA,EAASpU,QAAU,CACjBC,KAAMmU,EAASlU,QAAO,YAAU,SAAPF,OAAsB,IAC/CG,OAAQD,IAAOkU,EAAU,CAAEpU,QAAS,WACpCI,SAAUF,IAAOkU,EAAU,CAAEpU,QAAS,cAExCoU,EAAS/T,UAAY,CACnBJ,KAAMF,IAAMqU,EAASpU,QAAQC,KAAM,QACnCE,OAAQJ,IAAMqU,EAASpU,QAAQG,OAAQ,QACvCC,SAAUL,IAAMqU,EAASpU,QAAQI,SAAU,SAGtCgU,CACT,GAAG,CAACxV,EAAYmD,EAAOlD,UAAWkD,EAAO5B,SAEnCoF,GAAqBpE,EAAAA,EAAAA,UAAQ,WACjC,OAAOsT,EAAAA,EAAAA,uBAAsB,GAAD,SACvB7V,GAAU,EACVmD,EAAOlD,WAAS,EAChBkD,EAAO5B,SAEd,GAAG,CAACvB,EAAYmD,EAAOlD,UAAWkD,EAAO5B,SAEnCuU,GAAkBvT,EAAAA,EAAAA,UAAQ,kBAAMwT,IAAQ5S,GAC1C,GAEEA,EAAOmD,OAAOe,KAAI,SAAC0B,EAAOnJ,GAAC,MAAM,CAC/ByV,KAAMzV,EACN6V,YAAa1M,EAAM/M,MAAQ,SAAJ,OAAa4D,GACrC,GACF,GAAE,CAACuD,IAEF6S,GAAezT,EAAAA,EAAAA,UAAQ,WAC3B,MAAO,GAAP,SACKxC,EAASsH,KAAI,SAAA4O,GAAO,OAAIjV,IAAUiV,EAAQ,KAAC,EAC3CvB,EAAerN,KAAI,SAAA4O,GAAO,OAAIjV,IAAUiV,EAAQ,KAEvD,GAAG,CAAClW,EAAU2U,IAERwB,GAAkB3T,EAAAA,EAAAA,UAAQ,WAC9B,IAAMrB,EAAUC,IAAM6U,EAAc,QACpC,IAAK,IAAMha,KAAQ2Y,EAAc,CAC/B,IAEmC,EAF7BwB,EAAQxB,EAAa3Y,GACE,IAAbkF,EAAQlF,GACIoa,SAAO,IAAnC,IAAK,EAAL,qBAAqC,KAA1BC,EAAK,QACdnV,EAAQmV,GAAOC,OAASH,EAAMG,QAAUpV,EAAQmV,GAAOC,OACvDpV,EAAQmV,GAAOE,OAASJ,EAAMI,QAAUrV,EAAQmV,GAAOE,MACzD,CAAC,+BACH,CA+BA,IA3BA,IA2BA,MA3BoB,CAClB,OACA,KACA,OACA,OACA,QACA,QACA,OACA,OACA,QACA,OACA,OACA,SACA,QACA,QACA,KACA,QACA,SACA,QACA,OACA,OACA,OACA,OACA,MACA,MAG2B,eAC3BrV,EADY,MACCsV,UAAY,CAAC,MAG5B,OAAOtV,CACT,GAAG,CAAC8U,EAAcrB,IAOZjN,GAAUnF,EAAAA,EAAAA,UAAQ,iBAAO,CAC7B8S,KAAMa,EACNlW,WAAYmV,EAAmBjU,QAC/BuV,oBAAqBtB,EAAmB1T,UACxCsH,MAAO5H,IAAM2U,EAAiB,QAC9BjO,QAAS1E,EAAO0E,QACjB,GAAG,CAACqO,EAAiBf,EAAoBW,EAAiB3S,EAAO0E,UAE5D6O,GAAgBnU,EAAAA,EAAAA,UAAQ,WAC5B,MAAO,CACLoU,UAAWxB,EACXE,KAAMW,EAEV,GAAG,CAACb,EAAoBa,IAElBY,GAAmBrU,EAAAA,EAAAA,UAAQ,kBAAM,SAAUuE,EAAO6P,GAA6B,IAAlBvV,EAAU,UAAH,6CAAG,OAI3E,OAAI0F,EAAM+P,KACD/P,EAAM+P,KAAKxP,KAAI,SAAAyP,GAAM,MACR,WAAlB,EAAOA,GACHA,EACA,CAAEzB,KAAMyB,EAAQ,IAIpBhQ,EAAMtD,IACD,IAGJkT,EAAc5P,IACjBiH,QAAQC,MAAM,yBAA0BlH,GAG5B,cAAVA,EACK4P,EAAcC,UAAUvV,QAAQA,GAGlCsV,EAAc5P,GACvB,CAAC,GAAE,CAAC4P,IAEEK,GAAcxU,EAAAA,EAAAA,UAAQ,WAC1B,MAAO,GAAP,SACKvF,OAAO4G,KAAKsS,IAAgB,EAC5BlZ,OAAO4G,KAAKT,EAAO0E,SAAW,CAAC,IAEtC,GAAG,CAACqO,EAAiB/S,EAAO0E,UAE5B,OACE,SAAC,aAAsB,CAACjG,MAAO,CAAE+E,mBAAAA,EAAoBiQ,iBAAAA,EAAkBjC,aAAAA,EAAcjN,QAAAA,EAASqP,YAAAA,GAAc,SACzG7b,GAGP,yBCpPM8b,GAAY,CAAC,EAENpV,GAAQtF,KAAAA,OAAAA,WACRwJ,GAASxJ,KAAAA,QAAkBA,KAAAA,MAAgB0a,KAExDA,GAAUpV,MAAQA,GAClBoV,GAAUlR,OAASA,GAEZ,IAAMY,GAAUpK,KAAAA,MAAgB0a,ICP1B7Q,GAAQ7J,KAAAA,MAAgB,CACnC0J,MAAO1J,KAAAA,OACPN,KAAMM,KAAAA,OACNS,WAAYT,KAAAA,MAAgB,CAC1B2E,SAAU3E,KAAAA,MAAgB,CACxBiH,OAAQjH,KAAAA,QAAkBoK,IAAStJ,aAClCA,WACH,gBAAiBd,KAAAA,MAAgB,CAC/BiH,OAAQjH,KAAAA,QAAkBA,KAAAA,QAAkBc,aAC3CA,eCRM2L,GAAQzM,KAAAA,MAAgB,CACnC0J,MAAO1J,KAAAA,OACPN,KAAMM,KAAAA,OACNS,WAAYT,KAAAA,MAAgB,CAC1B2E,SAAU3E,KAAAA,MAAgB,CACxBiH,OAAQjH,KAAAA,QAAkBoK,IAAStJ,aAClCA,WACH,kBAAmBd,KAAAA,MAAgB,CACjCiH,OAAQjH,KAAAA,QAAkBoK,IAAStJ,iBAK5B+F,GAAS7G,KAAAA,MAAgB,CACpCgK,OAAQhK,KAAAA,QAAkByM,IAAO3L,WACjCkI,OAAQhJ,KAAAA,QAAkB6J,wCCT5B,SAAS8Q,GAAuB/U,GAM9B,OALyBA,EAAOmP,OAAM,SAAA9G,GAAG,YAC3B3P,IAAZ2P,EAAI2M,UACQtc,IAAZ2P,EAAI4M,GAAiB,IAInB,CAAC,wGACD,EACN,8mDCdA,IAAMC,GAAa,SAAAC,GAAI,OAAIA,EAAKrb,IAAI,EAC9Bsb,GAAa,SAAAD,GAAI,OAAIA,EAAKxR,OAAO,EAAE,EACnC0R,GAAc,SAAAF,GAAI,aAAyB,QAAzB,EAAIA,EAAKta,WAAW6L,aAAK,aAArB,EAAuBrF,MAAM,EAYzD,SAASiU,GAAiBvb,EAAYsO,GACpC,IAAMkN,EAAaC,KAAQzb,EAAYsO,GACvC,OAAOvN,OAAO2a,OAAOF,GAClBnW,QAAO,SAAAsW,GAAK,OAAIA,EAAMpV,OAAS,CAAC,GACrC,CASA,SAASqV,GAAsB1U,GAC7B,IAAM2U,EAA+B3U,EAAOmD,OAuH9Be,KAAI,SAAC0B,EAAOnJ,GAAC,MAAM,CAC/B0O,SAAU,mBAAF,OAAqB1O,EAAC,aAAKmJ,EAAM/M,KAAI,KAC7C+b,KAAM,iBAAF,OAAmBnY,EAAC,KACxB5D,KAAMob,GAAWrO,GAClB,IA1HKiP,EAA+B7U,EAAOmC,OA6I9B+B,KAAI,SAAClB,EAAOvG,GAAC,MAAM,CAC/B0O,SAAU,mBAAF,OAAqB1O,EAAC,aAAKuG,EAAMnK,KAAI,KAC7C+b,KAAM,UAAF,OAAYnY,EAAC,UACjB5D,KAAMmK,EAAMnK,KACb,IAhJKic,EAA+B9U,EAAO5B,OAoJ9B8F,KAAI,SAACuO,EAAOhW,GAAC,MAAM,CAC/B0O,SAAU,mBAAF,OAAqB1O,EAAC,aAAKwX,GAAWxB,GAAM,KACpDmC,KAAM,UAAF,OAAYnY,EAAC,UACjB5D,KAAMob,GAAWxB,GAClB,IAvJKsC,EAgLR,SAA+BjY,GAC7B,OAAOA,EAAUoH,KAAI,SAAC5C,EAAU7E,GAAC,MAAM,CACrC0O,SAAU,yBAAF,OAA2B1O,EAAC,aAAK0X,GAAW7S,GAAS,YAC7DsT,KAAM,aAAF,OAAenY,EAAC,UACpB5D,KAAMob,GAAW3S,GAClB,GACH,CAtLwB0T,CAAqBhV,EAAOlD,WAE5CmY,EAAa,GAAH,UACXZ,GAAgBM,EAAY,SAAO,GACnCN,GAAgBQ,EAAY,SAAO,GACnCR,GAAgBS,EAAY,SAAO,GACnCT,GAAgBU,EAAe,UAG9BG,EAAY,GAAH,UACVP,EAAWxW,QAAO,SAAAyH,GAAK,OAAIuP,GAAAA,SAA6BvP,EAAM/M,KAAK,KAAC,GACpEgc,EAAW1W,QAAO,SAAA6E,GAAK,OAAImS,GAAAA,SAA6BnS,EAAMnK,KAAK,KAAC,GACpEic,EAAW3W,QAAO,SAAAsU,GAAK,OAAI0C,GAAAA,SAA6B1C,EAAM5Z,KAAK,KAAC,GACpEkc,EAAc5W,QAAO,SAAAmD,GAAQ,OAAI6T,GAAAA,SAA6B7T,EAASzI,KAAK,MAOjF,MAAO,CAAEoc,WAAAA,EAAYC,UAAAA,EAAWE,eAJT,GAClBN,EAAW3W,QAAO,SAAAsU,GAAK,OA5BI5Z,EA4BwB4Z,EAAM5Z,KA3B7C,CACf,iCAEcsV,MAAK,SAAAkH,GAAO,OAAIxc,EAAKyc,MAAMD,EAAQ,IAJrD,IAAkCxc,CA4BmC,KAIrE,CAEA,SAAS0c,GAAuBvV,GAC9B,IAAMiV,EAAaZ,GAAgB,GAAGmB,OACrBxV,EAAOmD,OAmGVzC,QAAO,SAACgC,EAAQkD,EAAOnJ,GACnC,IAAMgJ,EAAQ2O,GAAYxO,GAS1B,OARIH,GACF/C,EAAO3B,KAAK,CACVoK,SAAU,mBAAF,OAAqB1O,EAAC,aAAKmJ,EAAM/M,KAAI,KAC7C+b,KAAM,iBAAF,OAAmBnY,EAAC,WACxBgJ,MAAAA,IAIG/C,CACT,GAAG,IA7Gc1C,EAAO5B,OAiIVsC,QAAO,SAACgC,EAAQ+P,EAAOhW,GASnC,OARIgW,EAAMhN,OACR/C,EAAO3B,KAAK,CACVoK,SAAU,mBAAF,OAAqB1O,EAAC,aAAK2X,GAAY3B,GAAM,aACrDmC,KAAM,UAAF,OAAYnY,EAAC,WACjBgJ,MAAO2O,GAAY3B,KAIhB/P,CACT,GAAG,IAmBL,SAA4B5F,GAC1B,OAAOA,EAAU4D,QAAO,SAACgC,EAAQpB,EAAU7E,GACzC,IAAMgJ,EAAQ2O,GAAY9S,GACpB1F,EAAMuY,GAAW7S,GASvB,OARImE,GACF/C,EAAO3B,KAAK,CACVoK,SAAU,yBAAF,OAA2B1O,EAAC,aAAKb,EAAG,aAC5CgZ,KAAM,aAAF,OAAenY,EAAC,WACpBgJ,MAAAA,IAIG/C,CACT,GAAG,GACL,CA3KI+S,CAAkBzV,EAAOlD,YACxB,SAEH,MAAO,CAAEmY,WAAAA,EACX,CAEA,SAASS,GAA2B1V,GAClC,IAAM2V,EAAapB,KAAQ,GAAGiB,OACTxV,EAAO5B,OAsId8F,KAAI,SAACuO,EAAOhW,GAAC,MAAM,CAC/B0O,SAAU,mBAAF,OAAqB1O,EAAC,aAAK0X,GAAW1B,GAAM,KACpDmC,KAAM,UAAF,OAAYnY,EAAC,UACjBb,IAAKuY,GAAW1B,GACjB,IA2BH,SAAgC3V,GAC9B,OAAOA,EAAUoH,KAAI,SAAC5C,EAAU7E,GAAC,MAAM,CACrC0O,SAAU,yBAAF,OAA2B1O,EAAC,aAAK0X,GAAW7S,GAAS,YAC7DsT,KAAM,aAAF,OAAenY,EAAC,UACpBb,IAAKuY,GAAW7S,GACjB,GACH,CA1KIsU,CAAsB5V,EAAOlD,YAC5B,OAUH,MAAO,CAAEmY,WARUpb,OAAO2a,OAAOmB,GAAYjV,QAAO,SAACuU,EAAYY,GAK/D,OAJIA,EAAMxW,OAAS,GACjB4V,EAAWlU,KAAK8U,GAGXZ,CACT,GAAG,IAGL,CAEA,SAASa,GAAyB9V,GAChC,IAAM+V,EAAgB,GAAH,UACd/V,EAAOmD,OAAOzC,QAAO,SAACsV,EAAcpQ,EAAOnJ,GAAM,QAWlD,OAVyB,QAAzB,EAAAmJ,EAAMhM,WAAWkE,gBAAQ,OAAQ,QAAR,EAAzB,EAA2BsC,cAAM,OAAjC,EAAmC6V,SAAQ,SAAC1S,EAAS2S,GAC7B,WAAlB3S,EAAQ9E,OACVuX,EAAajV,KAAK,CAChBoK,SAAU,mBAAF,OAAqB1O,EAAC,aAAKmJ,EAAM/M,KAAI,4BAAoBqd,GACjEtB,KAAM,iBAAF,OAAmBnY,EAAC,sBAAcyZ,EAAC,KACvCrd,KAAM,UAGZ,IAEOmd,CACT,GAAG,KAAG,GACHhW,EAAO5B,OAAOsC,QAAO,SAACsV,EAAcvD,EAAOhW,GAW5C,OAVAgW,EAAM7Y,WAAWkE,SAASsC,OAAO6V,SAAQ,SAAC1S,EAAS2S,GAC3B,WAAlB3S,EAAQ9E,OACVuX,EAAajV,KAAK,CAChBoK,SAAU,mBAAF,OAAqB1O,EAAC,aAAKgW,EAAM5Z,KAAI,gCAAwBqd,GACrEtB,KAAM,iBAAF,OAAmBnY,EAAC,iCAAyByZ,EAAC,YAClDrd,KAAM,UAGZ,IAEOmd,CACT,GAAG,KAAG,GACHhW,EAAOmC,OAAOzB,QAAO,SAACsV,EAAc7T,EAAQ1F,GAW7C,OAVA0F,EAAOvI,WAAWkE,SAASsC,OAAO6V,SAAQ,SAAC1S,EAAS2S,GAC5B,WAAlB3S,EAAQ9E,OACVuX,EAAajV,KAAK,CAChBoK,SAAU,mBAAF,OAAqB1O,EAAC,aAAK0F,EAAOtJ,KAAI,KAC9C+b,KAAM,iBAAF,OAAmBnY,EAAC,sBAAcyZ,EAAC,KACvCrd,KAAM,UAGZ,IAEOmd,CACT,GAAG,KAAG,GACHhW,EAAOlD,UAAU4D,QAAO,SAACsV,EAAc1U,EAAU7E,GAAM,QAiBxD,OAV4B,QAA5B,EAAA6E,EAAS1H,WAAWkE,gBAAQ,OAAQ,QAAR,EAA5B,EAA8BsC,cAAM,OAApC,EAAsC6V,SAAQ,SAAC1S,EAAS2S,GAChC,WAAlB3S,EAAQ9E,OAAkC,WAAZ8E,GAChCyS,EAAajV,KAAK,CAChBoK,SAAU,yBAAF,OAA2B1O,EAAC,aAAK6E,EAASzI,KAAI,6BAAqBqd,GAC3EtB,KAAM,oBAAF,OAAsBnY,EAAC,6BAAqByZ,EAAC,YACjDrd,KAAM,UAGZ,IAEOmd,CACT,GAAG,MAGL,MAAO,CAAED,cAAAA,EACX,2wBC3IA,IAAMI,IAAYC,EAAAA,EAAAA,OAAK,kBAAM,4EAA+B,IACtDC,IAAcD,EAAAA,EAAAA,OAAK,kBAAM,4EAA8B,IACvDE,IAAcF,EAAAA,EAAAA,OAAK,kBAAM,4EAA8B,IACvDG,IAAcH,EAAAA,EAAAA,OAAK,kBAAM,kEAA8B,IACvDI,IAAWJ,EAAAA,EAAAA,OAAK,kBAAM,4BAA6B,IAiBzD,SAASK,GAAI,GAAwC,QAApCld,EAAI,EAAJA,KAAMmd,EAAI,EAAJA,KAAMC,EAAU,EAAVA,WAAY5e,EAAQ,EAARA,SACe,MAApBiE,EAAAA,EAAAA,UAAS2a,KAAW,0nBAA/CC,EAAS,KAAEC,EAAY,KAE9B,OACE,iCACE,eAAInb,MAAO,CAAEf,QAAS,UAAW,SAAEpB,KACnC,eAAItB,UAAWC,GAAAA,EAAAA,eAAsB,SAClCwe,EAAKxS,KAAI,WAAiCzH,GAAC,IAAzBqa,EAAG,EAATje,KAAI,IAAOke,WAAAA,OAAU,IAAG,KAAE,SACrC,eAEE3e,QAAS,kBAAMye,EAAapa,EAAE,EAC9BxE,UAAW+e,IAAQ,CACjBJ,IAAcna,GAAKvE,GAAAA,EAAAA,eAAoB,UACpC6e,KACF5e,KAAK,KAAK,SAEZ2e,GAPIra,EAQF,OAGT,SAAC,EAAAwa,SAAQ,UACNlf,EAAS6e,OAIlB,CAEA,IAAMM,GAAe,SAAA1a,GAAK,OAAIA,EAAMuD,SAASC,MAAM,EAEnD,SAASmX,GAAUxf,GACjB,IAAMqI,GAAS5C,EAAAA,EAAAA,IAAY8Z,IACnBnY,GAAWqS,EAAAA,EAAAA,YAAWtS,GAAAA,GAAtBC,OACFqY,GAAehY,EAAAA,EAAAA,UAAQ,kBDtDxB,SAAsBY,EAAQjB,GACnC,yWAAO,EACLsY,UAAW3C,GAAqB1U,GAChCsX,WAAY/B,GAAsBvV,GAClCuX,eAAgB7B,GAA0B1V,GAC1CgW,aAAcF,GAAwB9V,IDbnC,SAA4BjB,GACjC,MAAO,CACLyY,uBAAwB1D,GAAsB/U,GAKlD,CCOO0Y,CAAkB1Y,GAEzB,CC8CqC2Y,CAAY1X,EAAQjB,EAAO,GAAE,CAACiB,EAAQjB,IACnE4Y,GAAevY,EAAAA,EAAAA,UAAQ,WAC3B,IAAQiY,EAAgFD,EAAhFC,UAAWC,EAAqEF,EAArEE,WAAYC,EAAyDH,EAAzDG,eAAgBvB,EAAyCoB,EAAzCpB,aAAcwB,EAA2BJ,EAA3BI,uBAC7D,OACEH,EAAUpC,WAAW5V,OACrBgY,EAAUnC,UAAU7V,OACpBgY,EAAUjC,eAAe/V,OACzBiY,EAAWrC,WAAW5V,OACtBkY,EAAetC,WAAW5V,OAC1B2W,EAAaD,cAAc1W,OAC3BmY,EAAuBnY,MAE3B,GAAG,CAAC+X,IAEEV,EAAOM,IAAQ,CACnB,CAAEne,KAAM,SAAU+e,WAAW,SAACtB,GAAW,KACzC,CAAEzd,KAAM,SAAU+e,WAAW,SAACvB,GAAW,KACzC,CAAExd,KAAM,SAAU+e,WAAW,SAACrB,GAAW,KACzC,CAAE1d,MAAM,iBAAMZ,UAAWC,GAAAA,EAAAA,KAAY,SAAC,cAAkB0f,WAAW,SAACzB,GAAS,KAC7EwB,EAAe,GAAM,CACnB9e,KAAM,aAAF,OAAe8e,EAAY,KAC/BZ,WAAY,CAAC7e,GAAAA,EAAAA,YACb0f,WAAW,SAACpB,GAAQ,CAACY,aAAcA,OAMvC,OACE,SAAC,GAAO,CAACpX,OAAQA,EAAO,UACtB,SAACyW,GAAI,CAACld,KAAK,eAAemd,KAAMA,EAAMC,WAJvB,EAI8C,SAC1DD,EAAKxS,KAAI,SAAC4S,EAAKra,GAAC,OACf,SAAC,EAAAob,SAAQ,UACNf,EAAIc,WADQnb,EAEJ,OAKrB,CAEA0a,GAASje,UAAY,CACnB8G,OAAQ8X,IAGV,iCCjGI,GAAU,CAAC,EAEf,GAAQ1gB,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAA1B,IAKO,GAAe,MAAW,YAAiB,iBAAiBC,ECtB7DsgB,GAAgB,+CAEP,SAASC,KACtB,OACE,iBAAK/f,UAAWyD,GAAAA,QAAc,WAC5B,2BAAO,+BACP,eAAGzD,UAAWyD,GAAAA,WAAkB1B,OAAO,SAASD,IAAI,aAAaN,KAAMse,GAAc,WACnF,SAACnf,GAAA,EAAI,CAACE,WAAW,SAASD,KAAK,WAAW,kCAIlD,2uCCTA,IAAMX,GAAS,CACboa,YAAa,CACX2F,UAAW,SACX3O,SAAU,QAId,SAAS4O,GAAUvgB,GACjB,IAAQ0Z,EAAgC1Z,EAAhC0Z,SAAU8G,EAAsBxgB,EAAtBwgB,SAAUC,EAAYzgB,EAAZygB,QAE5B,SAASC,EAAqBjR,EAAK3I,GACjC0Z,EAAS,SAAK9G,GAAQ,SAAGjK,EAAM3I,IACjC,CAEA,OACE,SAACvD,GAAA,EAAK,CAACpD,UAAWsgB,EAAQ,UACxB,UAAC1gB,GAAA,EAAS,CAACI,UAAWsgB,EAAQ,WAC5B,wBAAI,cAEJ,wBAAI,oBAEJ,yBACE,mBAAOE,QAAQ,wBAAuB,WACpC,kBACEtK,GAAG,wBACHzP,KAAK,WACLga,QAASlH,EAASmH,cAClBC,SAAU,SAAAnd,GAAC,OACT+c,EAAoB,gBAAiB/c,EAAEtB,OAAOue,QAAQ,IAExD,2BAIN,eAAG7c,MAAOxD,GAAOoa,YAAY,UAAC,mEAEvB,0BAAM,UAAY,UAAM,0BAAM,gBAAkB,6EAIvD,yBACE,mBAAOgG,QAAQ,2BAA0B,UAAC,4BAExC,oBACEtK,GAAG,2BACHvP,MAAO4S,EAASU,gBAAkB,OAClC0G,SAAU,SAAAnd,GAAC,OACT+c,EAAoB,iBAAkB/c,EAAEtB,OAAOyE,MAAM,EACrD,WAEF,mBAAQA,MAAM,OAAM,SAAC,eACrB,mBAAQA,MAAM,MAAK,SAAC,aACpB,mBAAQA,MAAM,MAAK,SAAC,mBAI1B,eAAG/C,MAAOxD,GAAOoa,YAAY,UAAC,kFAErB,SAAC1Z,GAAA,EAAI,CAACC,KAAK,sBAAsB,uCAMlD,CAEAqf,GAAShf,UAAY,CACnBmY,SAAUlY,KAAAA,OAAAA,WACVgf,SAAUhf,KAAAA,KAAAA,WACVif,QAASjf,KAAAA,KAAAA,YAGX+e,GAAS9e,aAAe,CACtBiY,SAAU,CAAC,GAGb,8xCC9EA,SAASqH,GAAwB/gB,GAC/B,OACE,SAACuD,GAAA,EAAK,WACJ,UAACxD,GAAA,EAAS,SAAKC,GAAK,eAClB,wBAAI,oCACJ,uBAAG,6LAKH,yBAAG,oNAIG,0BAAM,cAAgB,YAE3BkI,GAAAA,QAIT,CAEA6Y,GAAuBxf,UAAY,CAAC,EAEpC,sBCtBA,SAASyf,GAAqChhB,GAC5C,IAAQG,EAAcH,EAAdG,UAER,OACE,SAACoD,GAAA,EAAK,WACJ,UAACxD,GAAA,EAAS,CAACI,UAAWA,EAAU,WAC9B,wBAAI,4BACJ,uBAAG,qTAOH,uBAAG,oKAKF8H,GAAAA,OAIT,CAEA+Y,GAAoCzf,UAAY,CAC9CpB,UAAWqB,KAAAA,KAAAA,YAGb,UC7BA,SAASyf,GAAqBjhB,GAC5B,IAAQG,EAAcH,EAAdG,UAER,OACE,SAACoD,GAAA,EAAK,WACJ,UAACxD,GAAA,EAAS,CAACI,UAAWA,EAAU,WAC9B,wBAAI,4BACJ,uBAAG,6HAIH,uBAAG,6GAIF8H,GAAAA,OAIT,CAEAgZ,GAAoB1f,UAAY,CAC9BpB,UAAWqB,KAAAA,KAAAA,YAGb,UC1BA,SAAS0f,GAAoBlhB,GAC3B,IAAQG,EAAcH,EAAdG,UAER,OACE,SAACoD,GAAA,EAAK,WACJ,UAACxD,GAAA,EAAS,CAACI,UAAWA,EAAU,WAC9B,wBAAI,oCACJ,uBAAG,sLAKH,uBAAG,wKAQX,CAEA+gB,GAAmB3f,UAAY,CAC7BpB,UAAWqB,KAAAA,KAAAA,YAGb,UCzBA,SAAS2f,GAAiBnhB,GACxB,IAAQG,EAAcH,EAAdG,UAER,OACE,SAACoD,GAAA,EAAK,WACJ,UAACxD,GAAA,EAAS,CAACI,UAAWA,EAAU,WAC9B,wBAAI,4BACJ,uBAAG,mCAGH,uBAAG,4LAKH,yBAAG,kKAGyB0H,GAAAA,GAAiB,WAKrD,CAEAsZ,GAAgB5f,UAAY,CAC1BpB,UAAWqB,KAAAA,KAAAA,YAGb,UC9BA,SAAS4f,GAAmBphB,GAC1B,IAAQG,EAAcH,EAAdG,UAER,OACE,SAACoD,GAAA,EAAK,WACJ,UAACxD,GAAA,EAAS,CAACI,UAAWA,EAAU,WAC9B,wBAAI,4BACJ,yBAAG,oBACe,0BAAM,4BAExB,uBAAG,wNAMH,uBAAG,wKAQX,CAEAihB,GAAkB7f,UAAY,CAC5BpB,UAAWqB,KAAAA,KAAAA,YAGb,sBChCa6f,GAAgBhC,IAAQ,CACnC/M,GAAAA,IAAqB,CACnB+D,GAAI,OACJnV,KAAM,gBACNyZ,YAAa,oCAEfrI,GAAAA,IAAsB,CACpB+D,GAAI,QACJnV,KAAM,QACNyZ,YAAa,YACb2G,aAAa,GAEfhP,GAAAA,IAAuB,CACrB+D,GAAI,SACJnV,KAAM,SACNyZ,YAAa,8EACb2G,aAAa,GAEfhP,GAAAA,IAA0B,CACxB+D,GAAI,YACJnV,KAAM,YACNyZ,YAAa,0DACb4G,QAAQ,GAEVjP,GAAAA,IAA2BpB,OAAOsQ,oBAAsB,CACtDnL,GAAI,aACJnV,KAAM,cACNyZ,YAAa,uDACb4G,QAAQ,KAINE,GAAiB7N,aAAa8N,QAAQ,kBAG/BC,IAF+B,IAAzBN,GAAc3Z,OAAe2Z,GAAc,GAAGhL,GAAK,QAGpEgL,GAAcjL,MAAK,SAAAwL,GAAM,OAAIA,EAAOvL,KAAOoL,EAAc,IACrDA,GACAJ,GAAc,GAAGhL,gBC9BnB,GAAU,CAAC,EAEf,GAAQ5W,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAA1B,IAKO,GAAe,MAAW,YAAiB,iBAAiBC,suECXnE,IAAM+hB,IAAcpD,EAAAA,EAAAA,OAAK,kBAAM,+BAAwB,IACjDqD,IAAarD,EAAAA,EAAAA,OAAK,kBAAM,8BAAuB,IAC/CsD,IAAetD,EAAAA,EAAAA,OAAK,kBAAM,8BAAyB,IACnDuD,IAAkBvD,EAAAA,EAAAA,OAAK,kBAAM,kEAA4B,IACzDwD,IAAmBxD,EAAAA,EAAAA,OAAK,kBAAM,iEAAuC,IAErEyD,GAAmB,SAAArd,GAAK,OAAIA,EAAMuD,QAAQ,EAEhD,SAAS+Z,GAAgBniB,GACvB,IAAQoiB,EAAapiB,EAAboiB,SACFC,GAAa7e,EAAAA,EAAAA,UACb4E,GAAW3C,EAAAA,EAAAA,IAAYyc,IACsB,MAAvB7d,EAAAA,EAAAA,UAASsd,IAAc,GAA5CC,EAAM,KAAEU,EAAS,KACqD,MAAlCje,EAAAA,EAAAA,UAAS,CAAEke,eAAe,IAAQ,GAApEA,EAAa,KAAbA,cAAiBC,EAAa,KACW,MAAdne,EAAAA,EAAAA,UAAS,MAAK,GAA3Coe,EAAU,KAAEC,EAAa,KAC1BC,GAAcjf,EAAAA,EAAAA,cAAY,kBAAMgf,EAAc,KAAK,GAAE,CAACA,IACG,MAAfje,EAAAA,GAAAA,IAAU,GAAK,GAAxDme,EAAU,KAAIC,EAAW,KAAEC,EAAU,KACtCC,GAAiBrf,EAAAA,EAAAA,cAAY,WACjCgf,EAAc,CACZzC,UAAWc,GACXN,QAASkC,GAEb,GAAG,CAACD,EAAeC,IAEblB,EAAiBrL,KAAKiL,GAAe,CAAEhL,GAAIuL,KCrCpC,SAAiC3d,EAAK+e,GAA0B,IAAhBC,IAAU,UAAH,gDACpErd,EAAAA,EAAAA,YAAU,WACR,GAAIqd,EAAS,CACX,IAAMxf,EAAc,SAAAe,GAClB,IAAM0e,EAAehf,SAASif,KAAKtf,SAASW,EAAMnC,QAC5C+gB,EAAcnf,EAAIL,QAAQC,SAASW,EAAMnC,QAC3C6gB,IAAiBE,GACnBJ,GAEJ,EAGA,OADA9e,SAASif,KAAKE,iBAAiB,QAAS5f,GACjC,kBAAMS,SAASif,KAAKG,oBAAoB,QAAS7f,EAAY,CACtE,CACF,GAAG,CAACQ,EAAKgf,EAASD,GACpB,CDwBEO,CAAuBlB,EAAYS,GACD,KAAhCrB,aAAc,EAAdA,EAAgBH,cAChBlZ,GACAwa,GAGF,IAAMY,GAAqB9f,EAAAA,EAAAA,cAAY,SAAA+f,GACrCrB,EAAS,CAAER,OAAQ6B,EAAOpN,GAAIjO,SAAU,OACxCka,EAAUmB,EAAOpN,GACnB,GAAG,CAACiM,EAAWF,IAETsB,GAAyBhgB,EAAAA,EAAAA,cAAY,SAAUc,GACnD,MAA8BA,EAAM6D,OAA5Bsb,aAAAA,OAAY,IAAG,KAAE,EACmC,GAA1Bnf,EAAM+S,gBAAkB,CAAC,GAAnDgL,cAAAA,OAAa,IAAG,GAAK,EACvBrP,EEjDH,SAAyByQ,GAC9B,OAAQA,EAAa,IACnB,IAAK,4BACH,OAAOvC,GACT,IAAK,qBACH,OAAOF,GACT,IAAK,sBACH,OAAOF,GACT,IAAK,wBACH,OAAOC,GACT,IAAK,oBACH,OAAOE,GACT,QACE,OAAO,KAEb,CFkCkByC,CAAeD,GAE7B,GAAIzQ,EAGF,OAFAwP,EAAc,CAAEzC,UAAW/M,EAAOuN,QAASkC,SAC3CP,EAAS,CAAER,OAAAA,EAAQxZ,SAAU,OAI/Boa,EAAc,CAAED,cAAAA,IAChBH,EAAS,IAAER,OAAAA,GAAWpd,GACxB,GAAG,CAAC4d,EAAUR,EAAQc,EAAeC,IAE/BkB,GAAcngB,EAAAA,EAAAA,cAAY,SAAU,GAAyB,IAAvBogB,EAAM,EAANA,OAAQC,EAAW,EAAXA,YAClDrB,EAAc,CAAEzC,UAAW6D,EAAQC,YAAAA,EAAatD,QAASkC,IACzDP,EAAS,CAAER,OAAAA,EAAQxZ,SAAU,MAC/B,GAAG,CAACsa,EAAeC,EAAaP,EAAUR,IAM1C,OAJAhc,EAAAA,EAAAA,YAAU,WACRgO,aAAaoQ,QAAQ,iBAAkBpC,EACzC,GAAG,CAACA,KAGF,iBACE3d,IAAKoe,EACL/hB,UAAW2jB,KAAW1jB,GAAAA,QAAgB,MAAGA,GAAAA,SAAkBqiB,IAAc,UAExEA,IACC,SAAC,MAAM,CACL9U,MAAM,SACNhH,MAAO2a,EACPjiB,QAAS6hB,GACTP,SAAU0C,EACVU,eAAgB,SAAAlI,GAAM,OAAIA,EAAO9a,IAAI,EACrCijB,eAAgB,SAAAnI,GAAM,OAAIA,EAAO3F,EAAE,EACnC+N,kBAAmB,SAACpI,EAAQ,GAAS,MACvB,UADuB,EAAP1V,QAExB0V,EAAO9a,MAEL,iCACE,2BAAM8a,EAAO9a,KAAM8a,EAAOuF,SAAU,SAAC8C,GAAI,QACzC,gBAAK/jB,UAAWC,GAAAA,kBAAyB,UAAC,yBAAMyb,EAAOrB,kBAE1D,KAKV8H,aAAU,EAAVA,EAAYxC,aAAa,SAACwC,EAAWxC,UAAS,SAAKwC,EAAWsB,aAAe,CAAC,GAAC,IAAE5jB,UAAWsiB,EAAWhC,YAExG,UAAC,EAAAnB,SAAQ,WACK,UAAXsC,IAAsB,SAACC,GAAW,CAACyC,QAAST,EAAazB,SAAUsB,IACxD,SAAX9B,IAAqB,SAACE,GAAU,CAACM,SAAUsB,IAChC,WAAX9B,IACC,SAACG,GAAY,CACXwC,SAAU3B,EACVR,SAAUsB,EACVY,QAAST,EACTW,SAAU3B,IAGF,cAAXjB,IAA0B,SAACI,GAAe,CAACI,SAAUsB,EAAwBY,QAAST,IAC3E,eAAXjC,IAA2B,SAACK,GAAgB,CAACG,SAAUsB,EAAwBY,QAAST,OAG1FtB,IACC,UAAC,MAAM,CAAC9hB,QAASsiB,EAAe,WAC9B,SAAC9hB,GAAA,EAAI,CAACC,KAAK,YAAY,sBAKjC,CAEA,SAASmjB,KAWP,OACE,iBAAMtgB,MAXM,CACZ6N,MAAO,QACP/O,gBAAiB,yBACjB8O,SAAU,OACV8S,WAAY,OACZ5T,QAAS,UACTD,OAAQ,MACR8T,aAAc,MACdC,cAAe,OAGI,SAAC,QAExB,CAEAxC,GAAe5gB,UAAY,CACzB6gB,SAAU5gB,KAAAA,KAAAA,YAGZ,6CGzII,GAAU,CAAC,EAEf,GAAQ/B,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAA1B,IAKO,GAAe,MAAW,YAAiB,iBAAiBC,yPCzBnE,gxPAUA,SAAS8kB,GAAkBC,GACzB,MAAO,KAAP,OAAYA,EAAMC,SAAQ,YAAID,EAAME,WAAU,YAAIF,EAAMG,aAC1D,CAYA,IAAMC,IACJ,SAACpjB,GAAA,EAAI,CAACE,UAAQ,EAACD,KAAK,0DAAyD,SAAC,cAG/E,SAEcojB,GAAW,mDAgBzB,OAhByB,iBAA1B,WAA4BhS,EAAOiS,GAAU,4EAKzC,OAJI3S,EAAM,GAAH,OAAM+F,GAAAA,GAAU,4BACnB4K,EAAO3N,KAAKC,UAAU,CAC1BvC,MAAOA,EAAM9F,WACb+X,WAAAA,IACA,SAEqBC,MAAM5S,EAAK,CAChCwF,OAAQ,OACRtF,QAAS,CAAE,eAAgB,oBAC3ByQ,KAAAA,IACA,QAJIpQ,EAAW,EAAH,MAMAsS,IACZpS,QAAQC,MAAM,gCAAiCH,GAChD,4CACF,sBAED,SAASuS,GAAe,GAAa,IAATpS,EAAK,EAALA,MACY,MAAZ7O,EAAAA,EAAAA,UAAS,IAAG,GAA/BkhB,EAAK,KAAEC,EAAQ,KACkC,MAAZnhB,EAAAA,EAAAA,UAAS,IAAG,GAAjDohB,EAAc,KAAEC,EAAiB,KACG,MAAfrhB,EAAAA,EAAAA,WAAS,GAAM,GAApCshB,EAAM,KAAEC,EAAS,KAgCxB,OA9BAhgB,EAAAA,EAAAA,YAAU,WACiB,aAKxB,OALwB,gBAAzB,uGAC2B,oCAAuB,OAAhC,OAAVigB,EAAa,EAAH,cACSA,EAAWC,UAAU5S,GAAM,OAA9CiS,EAAa,EAAH,KAChBK,EAASL,GACTD,GAAYhS,EAAOiS,GAAW,4CAC/B,uBANa,WACW,wBAOzBY,EACF,GAAG,CAACP,EAAUtS,KAEdtN,EAAAA,EAAAA,YAAU,WACR8f,EAnDJ,SAA0BxS,GAAmB,IAAZqS,EAAQ,UAAH,6CAAG,GACvC,MAAO,YACPrS,EAAMhS,KAAI,eAEVgS,EAAM2B,QAAO,eAEb0Q,EAAMhZ,IAAIqY,IAAkBpkB,KAAK,MAAK,MACtCwlB,MACF,CA2CsBC,CAAgB/S,EAAOqS,GAC3C,GAAG,CAACrS,EAAOqS,KAEX3f,EAAAA,EAAAA,YAAU,WACJ+f,GACFhS,YAAW,WACTiS,GAAU,EACZ,GAAG,IAEP,GAAG,CAACD,EAAQC,KAUV,SAACriB,GAAA,EAAK,WACJ,UAACxD,GAAA,EAAS,CAACE,aAAa,EAAO8D,MAAO,CAAEmiB,SAAU,SAAU,WAC1D,wBAAI,sBACJ,yBAAG,qHAEmDjB,GAAe,yEAGrE,iBAAK3kB,UAAWC,GAAAA,WAAkB,WAChC,yBAAMklB,KACN,SAAC/jB,EAAA,EAAU,CACTC,KAAK,OACLwkB,MAAM,kBACN7lB,UAAWC,GAAAA,OACXE,QAtBV,WACE,IACMmB,EAAO,GAAH,OADQ,MACO,aAAK6jB,EAAc,aAD1B,OAElB1L,UAAUqM,UAAUC,UAAUzkB,GAC3B0kB,MAAK,kBAAMV,GAAU,EAAK,GAC/B,IAmBSD,IACC,gBAAKrlB,UAAWC,GAAAA,YAAmB,SAAC,mBAMhD,CAEA+kB,GAAgB/jB,UAAY,CAC1B2R,MAAO1R,KAAAA,WAAqB+kB,OAAOjkB,YAGrC,47BCjHuD,IAElCkkB,GAAa,s/BAChC,WAAaxmB,GAAO,MAIjB,mGAJiB,UAClB,cAAMA,IACD6E,MAAQ,CACXqO,MAAO,MACR,CACH,CAIC,SAJA,IAeA,uCAbD,SAAiCA,GAC/B,MAAO,CAAEA,MAAAA,EACX,OAJC,qBAMD,WACE,IAAQ9S,EAAauS,KAAK3S,MAAlBI,SACA8S,EAAUP,KAAK9N,MAAfqO,MAER,OAAIA,GACK,SAAC,GAAe,CAACA,MAAOA,IAG1B9S,CACT,sFAXC,EAV+B,CAASqmB,EAAAA,WCG3C,SAASC,GAAkB1mB,GACzB,IAAQG,EAAcH,EAAdG,UACR,OACE,SAACoD,GAAA,EAAK,WACJ,UAACxD,GAAA,EAAS,CAACI,UAAWA,EAAU,WAC9B,wBAAI,mCACJ,uBAAG,2EAGH,uBAAG,0QAMH,uBACG0H,GAAAA,SAKX,CAEA6e,GAAiBnlB,UAAY,CAC3BpB,UAAWqB,KAAAA,KAAAA,YAGb,+SChCA,ojNA4JA,OAzIA,WACE,IAAMqD,GAAQY,EAAAA,EAAAA,KAAY,SAAAZ,GAAK,OAAIA,CAAK,IAClCa,GAAWC,EAAAA,EAAAA,MAEfghB,EAME9hB,EANF8hB,YACAve,EAKEvD,EALFuD,SACAwe,EAIE/hB,EAJF+hB,UACApV,EAGE3M,EAHF2M,MACAqV,EAEEhiB,EAFFgiB,gBACA/O,EACEjT,EADFiT,sBAaFlS,EAAAA,EAAAA,YAAU,WAzCZ,MA0CI,GAAK+gB,SAAAA,EAAaG,OAiBlB,OA3DJ,EAqDK,WAAC,yFAEO,OAFP,EAC+BH,EAAYG,OAAnCjQ,EAAU,EAAVA,WAAYC,EAAM,EAANA,OAAM,KAC1BiQ,EAAO,SAAOD,GAAAA,EAAAA,iBAAwBjQ,EAAYC,GAAO,4EAvD/D,mLA0DIgQ,GAAAA,EAAAA,GAAU,eAAgBC,GACnB,kBAAMD,GAAAA,EAAAA,IAAW,eAAgBC,EAAQ,EAZhD,SAASA,EAASC,GACZA,EAAIC,cAAgBN,EAAYG,OAAOhQ,QACzCpR,EAAS,CAAEkB,KAAM,sBAAuBsgB,MAAOF,GAEnD,CAREthB,EAAS,CAAEkB,KAAM,sBAAuBsgB,MAAO,MAiBnD,GAAG,CAACP,EAAajhB,IAEjB,IAAMge,GAAyBhgB,EAAAA,EAAAA,cAAY,SAAUc,GACnD,IAAQod,EAAmDpd,EAAnDod,OAAQxa,EAA2C5C,EAA3C4C,OAAQiB,EAAmC7D,EAAnC6D,OAAM,EAA6B7D,EAA3BkT,QAAAA,OAAO,IAAG,KAAE,EAAKyP,oXAAK,CAAK3iB,EAAK,IAOhEkB,EALK2C,EAKI,CACPzB,KAAM,kBACNgb,OAAAA,EACA+E,YAAaQ,EACb/f,OAAAA,EACAiB,OAAAA,EACAqP,QAAAA,GAVS,CAAE9Q,KAAM,4BAYrB,GAAG,CAAClB,IAEE0hB,GAAuB1jB,EAAAA,EAAAA,cAAY,SAAUgW,GACjDhU,EAAS,CAAEkB,KAAM,kBAAmB8S,SAAAA,GACtC,GAAG,CAAChU,IAEE2hB,GAAqB3jB,EAAAA,EAAAA,cACzB,kBAAMgC,EAAS,CAAEkB,KAAM,iBAAkB,GACzC,CAAClB,IAGH,OACE,iCACE,SAAC8gB,GAAa,WACZ,UAAC,aAAwB,CAAC1f,MAAO,CAC/B4S,SAAU5B,EACVuP,mBAAAA,GACA,WACA,SAACC,GAAY,CAAClF,SAAUsB,KAExB,iBAAKrN,GAAG,eAAc,WACpB,SAAC3U,EAAA,EAAU,CACT2U,GAAG,aACH8P,MAAM,eACNxkB,KAAM,CACJb,MAAO,MACPymB,KAAM,OACNC,OAAQ,sBACRhW,IAAU,qBACZ/Q,QAAS,kBAAMiF,EAAS,CAAEkB,KAAM,eAAgB,KAGlD,SAAClF,EAAA,EAAU,CACT2U,GAAG,kBACH1U,KAAK,MACLlB,QAAS4mB,IAEVR,IACC,SAAC,GAAQ,CACPnN,SAAU5B,EACV0I,SAAU4G,EACV3G,QAAS,kBAAM/a,EAAS,CAAEkB,KAAM,kBAAmB,QAKzD,UAAC6gB,EAAA,EAA0B,WACxBrf,IACC,SAACsf,GAAA,EAAqB,CAACtgB,OAAQgB,EAAShB,OAAO,UAC7C,SAAC,GAAQ,CACPiB,OAAQD,EAASC,OACjBqP,QAAStP,EAASsP,YAIvBkP,IACC,SAAC,GAAgB,CAACzmB,UAAW,kBAAMuF,EAAS,CAAEkB,KAAM,oBAAqB,aAKjF,SAACyZ,GAAU,MAejB,mvCCrJA,SAASsH,KACP,IAAMjO,EAAWlE,KAAKM,MACpBlC,aAAa8N,QAAQ,0BAA4B,MAGnD,MAAO,CACLnc,YAAa,KACbqc,OAAQ,KACR+E,YAAa,KACbve,SAAU,KACVwf,kBAAmB,KACnBC,OAAQ,KACRjB,UAAW,KACXC,gBAAiB,KACjBiB,kBAAkB,EAClBtW,MAAOgE,KAAKM,MAAMlC,aAAa8N,QAAQ,UACvC5J,qBAAsB,CACpB+I,cAAe5T,IAAIyM,EAAU,iBAAiB,GAC9CU,eAAgBnN,IAAIyM,EAAU,iBAAkB,QAChD3B,sBAAuB9K,IAAIyM,EAAU,yBAAyB,IAEhEqO,YAAa,KAEjB,CAEO,IAAMC,GAAgBL,8xCCvB7B,IAAMM,IAAkBC,EAAAA,GAAAA,IAAgB,CACtC9gB,OAAQ,WAAW,OAAF,UAAH,6CAAG,EAAY,EAC7BsQ,QAAS,WAAW,OAAF,UAAH,6CAAG,EAAY,EAC9BrP,QAAQ6f,EAAAA,GAAAA,IAAgB,CACtBvE,aAAc,WAAW,OAAF,UAAH,6CAAG,EAAY,EACnC5W,QAAS,WAAW,OAAF,UAAH,6CAAG,EAAY,EAC9B2F,QAAS,WAAW,OAAF,UAAH,6CAAG,EAAY,EAC9B4E,OAAQ,WAAW,OAAF,UAAH,6CAAG,CAAC,CAAW,EAC7BnS,UAAWgjB,GAAAA,GACX3c,OAAQ4c,GAAAA,GACR5d,OAAQ6d,GAAAA,GACR5hB,OAAQ6hB,GAAAA,OAoBZ,IALcC,EAAAA,GAAAA,IAAe,CAC3BC,QAZF,SAAsB3jB,EAAO4E,GAC3B,IAAMgf,EDSO,SAAkB5jB,EAAO4E,GAGtC,OAFiBA,EAAT7C,MAGN,IAAK,aACH,OAAO+gB,KAET,IAAK,kBACH,OAAO,SAAK9iB,GAAK,IAAEU,YAAakE,EAAOlE,cAEzC,IAAK,2BACH,OAAO,SAAKV,GAAK,IAAEuD,SAAU,OAE/B,IAAK,kBACH,OA8CN,SAAyBvD,EAAO4E,GAC9B,IAAQrB,EAAavD,EAAbuD,SACFsgB,EAAmBC,KAAKlf,EAAQ,CAAC,SAAU,SAAU,YAI3D,OAFAmf,EAAAA,GAAAA,GAAsBF,EAAiBrgB,QAEhC,SACFxD,GAAK,IACR+c,OAAQnY,EAAOmY,OACf+E,YAAald,EAAOkd,YACpBve,SAAU,SAAKA,GAAasgB,GAC5Bd,kBAAmB1hB,IAAUwiB,EAAiBrgB,SAElD,CA3DawgB,CAAehkB,EAAO4E,GAE/B,IAAK,qBACH,OAAO,SAAK5E,GAAK,IAAEijB,kBAAkB,IAEvC,IAAK,sBACH,OAAO,SAAKjjB,GAAK,IAAEijB,kBAAkB,IAEvC,IAAK,sBACH,OAAO,SAAKjjB,GAAK,IAAEkjB,YAAate,EAAOyd,QAEzC,IAAK,oBACH,OAAO,SAAKriB,GAAK,IAAEgjB,QAAQ,EAAMjB,WAAW,IAE9C,IAAK,sBACH,OA8CN,SAA4B/hB,EAAO4E,GACjC,IAAMqf,EAAiB,MAAKrf,EAAOpB,QAInC,OAFAugB,EAAAA,GAAAA,GAAsBE,GAEf,SACFjkB,GAAK,IACRgjB,QAAQ,EACRkB,SAAS,EACT3gB,SAAU,SACLvD,EAAMuD,UAAQ,IACjBC,OAAQygB,IAEVlB,kBAAmBkB,GAEvB,CA7DaE,CAAkBnkB,EAAO4E,GAElC,IAAK,sBACH,OAAO,SACF5E,GAAK,IACRgjB,QAAQ,EACRjB,WAAW,IAGf,IAAK,mBACH,OAAO,SAAK/hB,GAAK,IAAE+hB,UAAW,OAEhC,IAAK,gBACH,OAAO,SAAK/hB,GAAK,IAAEgiB,iBAAiB,IAEtC,IAAK,iBACH,OAAO,SAAKhiB,GAAK,IAAEgiB,iBAAiB,IAEtC,IAAK,kBAEH,OADAjT,aAAaoQ,QAAQ,wBAAyBxO,KAAKC,UAAUhM,EAAOiQ,WAC7D,SAAK7U,GAAK,IAAEiT,qBAAsBrO,EAAOiQ,WAElD,IAAK,cACH,OAwCN,SAAqB7U,EAAO4E,GAC1B,IAAMwf,EAAS,CAAC,QAAS,OAAQ,UAC3B/d,EAAQ+d,EAAOxa,QAAQ5J,EAAM2M,OAC7BA,EAAQyX,EAAOC,IAAIhe,EAAQ,GAAK+d,EAAOvhB,QAG7C,OAFAkM,aAAaoQ,QAAQ,QAAS,IAAF,OAAMxS,EAAK,MACvCtN,SAASif,KAAKgG,QAAQ3X,MAAQA,EACvB,SAAK3M,GAAK,IAAE2M,MAAAA,GACrB,CA/Ca4X,CAAWvkB,GAEpB,QACE,OAAOA,EAEb,CClEmBwkB,CAAWxkB,EAAO4E,GACnC,OAAO,SACFgf,GAAQ,IACXrgB,SAAUqgB,EAASrgB,UAAY,SAC1BqgB,EAASrgB,UACT6f,GAAgBQ,EAASrgB,SAAUqB,KAG5C,EAIE6f,eAAgBtB,KC1BlB9jB,SAASif,KAAKgG,QAAQ3X,MAAQwW,GAAcxW,MAE/BxN,EAAAA,WAAoBE,SAASC,eAAe,aAEpDolB,QACH,SAAC,aAAgB,WACf,SAAC,KAAQ,CAACC,MAAOA,GAAM,UACrB,SAAC,GAAG,s4BCfV,IAAMC,EAAe,GACfC,EAAkB,EAEjB,SAASC,EAAmBnnB,EAAUonB,GAAqB,IAAfC,EAAW,UAAH,6CAAG,CAAC,EAC7D,MAAO,CACLla,EAAGnN,EAASmN,GAAK8Z,EAAeC,GAChC9Z,EAAGpN,EAASoN,GAAK6Z,EAAeC,GAChC7Z,EAAG+Z,EAAK/Z,EAAI4Z,EAAeC,GAAmBE,EAAK/Z,EAAI,GACvDE,EAAG6Z,EAAK7Z,EAAI0Z,EAAeC,GAAmBE,EAAK7Z,EAAI,GACvDC,IAAKxN,EAASmN,GAAKka,EAASla,GAAKnN,EAASmN,MAAQ8Z,EAAeC,GACjEzZ,IAAKzN,EAASoN,GAAKia,EAASja,GAAKpN,EAASoN,MAAQ6Z,EAAeC,GACjExZ,EAAG2Z,EAAS3Z,GAAK,EAErB,CAEO,SAAS4Z,EAActnB,EAAUonB,EAAMC,GAC5C,MAAkCF,EAAkBnnB,EAAUonB,EAAMC,GAA5Dla,EAAC,EAADA,EAAGC,EAAC,EAADA,EAAGC,EAAC,EAADA,EAAGE,EAAC,EAADA,EAAGG,EAAC,EAADA,EAAGF,EAAE,EAAFA,GAAIC,EAAE,EAAFA,GAE3B,MAAO,CACLxN,IAAK,GAAF,OAAKmN,EAAC,MACTlN,KAAM,GAAF,OAAKiN,EAAC,MACVhN,MAAO,GAAF,OAAKkN,EAAC,MACXjN,OAAQ,GAAF,OAAKmN,EAAC,MACZga,gBAAiB,GAAF,OAAK/Z,EAAE,cAAMC,EAAE,MAC9B+Z,UAAW,UAAF,OAAY9Z,GAAK,EAAC,QAE/B,CAEO,SAASR,EAAqBlN,EAAUonB,EAAMC,GACnD,MAAkCF,EAAkBnnB,EAAUonB,EAAMC,GAA5Dla,EAAC,EAADA,EAAGC,EAAC,EAADA,EAAGC,EAAC,EAADA,EAAGE,EAAC,EAADA,EAAGG,EAAC,EAADA,EAAGF,EAAE,EAAFA,GAAIC,EAAE,EAAFA,GA2B3B,MAzBe,CACb,CAAEN,EAAG,EAAGC,EAAG,GACX,CAAED,EAAGE,EAAGD,EAAG,GACX,CAAED,EAAGE,EAAGD,EAAGG,GACX,CAAEJ,EAAG,EAAGC,EAAGG,IAqBCxD,KAXd,SAAiB0d,GACf,IAAMta,EAAIsa,EAAMta,EAAIK,EACdJ,EAAIqa,EAAMra,EAAIK,EACdia,EAAQ5Z,KAAK6Z,GAAKja,EAAI,IAE5B,MAAO,CACLP,EAAGK,EAAKL,EAAIW,KAAK8Z,IAAIF,GAASta,EAAIU,KAAK+Z,IAAIH,GAC3Cta,EAAGK,EAAKL,EAAIU,KAAK8Z,IAAIF,GAASva,EAAIW,KAAK+Z,IAAIH,GAE/C,IAE0B3d,KAlB1B,SAAoB0d,GAClB,MAAO,CACLta,EAAGsa,EAAMta,EAAIA,EACbC,EAAGqa,EAAMra,EAAIA,EAEjB,GAcF,CAEO,SAASQ,EAAmB5N,EAAUonB,EAAMC,GACjD,IAAMS,EAAc5a,EAAoBlN,EAAUonB,EAAMC,GAClDU,EAAUhe,IAAI+d,EAAa,KAC3BE,EAAUje,IAAI+d,EAAa,KAUjC,MAAO,CAAEG,IATG,CACV9a,EAAGW,KAAKma,IAAG,MAARna,KAAI,EAAQia,IACf3a,EAAGU,KAAKma,IAAG,MAARna,KAAI,EAAQka,KAOHna,IALF,CACVV,EAAGW,KAAKD,IAAG,MAARC,KAAI,EAAQia,IACf3a,EAAGU,KAAKD,IAAG,MAARC,KAAI,EAAQka,KAInB,8nCCzEA,SAASE,EAAepP,GACtB,SAAWA,yVACRqP,MAAK,SAACza,EAAG0a,GAAC,OAAK1a,EAAExI,OAASkjB,EAAEljB,MAAM,IAAE,QACzC,CAEA,IAAMmjB,EAAY,oBAEX,SAAS3jB,EAAsBjC,GACpC,OAAOA,EAAS8D,QAAO,SAAC9D,EAAUkW,GAChC,IAe0B,EAflBR,EAAyDQ,EAAzDR,YAAarU,EAA4C6U,EAA5C7U,QAASkV,EAAmCL,EAAnCK,OAAQC,EAA2BN,EAA3BM,OAAM,EAAqBN,EAAnBO,UAAAA,OAAS,IAAG,KAAE,EACtDJ,EAAUH,EAAQ2P,MAAMtkB,QAAO,SAAAtF,GAAI,OAAKA,EAAKyc,MAAMkN,EAAU,IAC7D3pB,EAAOwpB,EAAcpP,GACrByP,EAAS5P,EAAQ2P,MAAMve,KAAI,SAAArL,GAAI,OAAIA,EAAKyc,MAAMkN,EAAU,IAAErkB,QAAO,SAAAwkB,GAAC,QAAMA,CAAC,IAAE,GAC3EC,EAAO,CACX/pB,KAAAA,EACAoa,QAAAA,EACAX,YAAAA,EACArU,QAAAA,EACAmV,OAAAA,EACAD,OAAQA,GAAUta,EAClBwa,UAAAA,EACA1Q,OAAQ,IACT,IAEkBsQ,GAAO,IAA1B,IAAK,EAAL,qBAA4B,KAAjBf,EAAI,QACbtV,EAASmE,KAAKlH,OAAOC,OAAO,CAAC,EAAG8oB,EAAM,CACpC1Q,KAAAA,EACA2Q,aAAcH,IAElB,CAAC,+BASD,OAPIA,GACF9lB,EAASmE,KAAKlH,OAAOC,OAAO,CAAC,EAAG8oB,EAAM,CACpC1Q,KAAMwQ,EAAO,GACb/f,OAAQ+f,EAAO,GAAGI,MAAM,QAIrBlmB,CACT,GAAG,GACL,CAEO,SAASiV,EAAiB7U,EAAQ7F,GACvC,OAAO6f,IAAQ,CACbha,EAAO+lB,MACP5rB,EAAQ2a,SAAW9U,EAAO8U,QACL,QAArB3a,EAAQwa,UAAsB3U,EAAOgmB,UAAUC,IAC1B,QAArB9rB,EAAQwa,UAAsB3U,EAAOgmB,UAAUE,MAC9CxiB,QAAO,SAAC1D,EAAQlE,GAAe,IACA,EADA,IACVA,GAAU,IAAhC,IAAK,EAAL,qBAAkC,KAAvBqqB,EAAO,QACVlQ,EAAUkQ,EAAQV,MAAMtkB,QAAO,SAAAtF,GAAI,OAAKA,EAAKyc,MAAMkN,EAAU,IAC7D3pB,EAAOwpB,EAAcpP,GAEtBjW,EAAOnE,KACVmE,EAAOnE,GAAQ,CAAC,GAGlBmE,EAAOnE,GAAMsa,OAASnW,EAAOnE,GAAMsa,QAAUgQ,EAAQhQ,OACrDnW,EAAOnE,GAAMua,OAASpW,EAAOnE,GAAMua,QAAU+P,EAAQ/P,MACvD,CAAC,+BACD,OAAOpW,CACT,GAAG,CAAC,EACN,64BC5DO,SAASujB,EAAuBvgB,GACrCA,EAAOmD,OAASnD,EAAOmD,OAAOe,KAAI,SAAA0B,GAAK,OACrC0a,IAAK1a,EAAO,CAAC,QAAS,OAAQ,SAAU,cAAc,IAGxD5F,EAAOmC,OAASnC,EAAOmC,OAAO+B,KAAI,SAAAlB,GAAK,OACrCsd,IAAKtd,EAAO,CAAC,QAAS,OAAQ,SAAU,cAAc,IAGxDhD,EAAOlD,UAAYkD,EAAOlD,UAAUoH,KAAI,SAAA5C,GAAQ,OAC9Cgf,IAAKhf,EAAU,CAAC,QAAS,OAAQ,SAAU,aAAc,UAAU,IAGrEtB,EAAO5B,OAAS4B,EAAO5B,OAAO8F,KAAI,SAAAuO,GAAK,OACrC6N,IAAK7N,EAAO,CAAC,QAAS,OAAQ,SAAU,cAAc,GAE1D,CAEO,SAAShP,EAAiBF,EAASC,GACxC,IAAQ/E,EAAkB8E,EAAlB9E,MAAOkE,EAAWY,EAAXZ,OACTigB,EAAOpf,EAAmB/E,IAAU,GACpC2kB,EAIR,SAA8BC,EAAcC,GAC1C,IAAMC,EAAmB3e,IAAIye,EAAc,MAAO,CAAC,GAC7CG,EAAY5e,IAAI0e,EAAO,OAE7B,GAAIE,SAAAA,EAAW9P,KAAM,CACnB,IAAM4B,EAAQ,CAAEpD,KAAMqR,EAAiB9kB,OACjC8a,EAASxL,IAAKyV,EAAU9P,KAAM4B,GACpC,GAAIiE,SAAAA,EAAQkK,iBACV,OAAOlK,EAAOkK,gBAElB,CAEA,MAAO,EACT,CAjBqBC,CAAoB/gB,EAAQigB,GAC/C,MAAO,GAAP,SAAWA,GAAI,EAAKQ,GACtB,4GCzBaO,GAAgBhnB,EAAAA,EAAAA,eAAc,CACzC8W,iBAAkB,OAGPnC,GAAkB3U,EAAAA,EAAAA,eAAc,CAC3C0U,SAAU,KACV2N,mBAAoB,8ECLlB4E,QAA0B,GAA4B,KAE1DA,EAAwB7iB,KAAK,CAAC8iB,EAAO7V,GAAI,ynFAA4nF,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2BAA2B,MAAQ,GAAG,SAAW,2sCAA2sC,eAAiB,CAAC,0nFAA4nF,WAAa,MAEvlN,6ECJI4V,QAA0B,GAA4B,KAE1DA,EAAwB7iB,KAAK,CAAC8iB,EAAO7V,GAAI,iNAAkN,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6BAA6B,MAAQ,GAAG,SAAW,qEAAqE,eAAiB,CAAC,kNAAkN,WAAa,MAE/nB,6ECJI4V,QAA0B,GAA4B,KAE1DA,EAAwB7iB,KAAK,CAAC8iB,EAAO7V,GAAI,oeAAqe,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,gDAAgD,MAAQ,GAAG,SAAW,oLAAoL,eAAiB,CAAC,+ZAA+Z,WAAa,MAEjuC4V,EAAwBE,OAAS,CAChC,OAAU,uBACV,OAAU,wBAEX,6ECRIF,QAA0B,GAA4B,KAE1DA,EAAwB7iB,KAAK,CAAC8iB,EAAO7V,GAAI,6CAA8C,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,0CAA0C,MAAQ,GAAG,SAAW,sBAAsB,eAAiB,CAAC,8BAA8B,WAAa,MAErQ4V,EAAwBE,OAAS,CAChC,KAAQ,wBAET,6ECPIF,QAA0B,GAA4B,KAE1DA,EAAwB7iB,KAAK,CAAC8iB,EAAO7V,GAAI,mzBAAozB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,uDAAuD,MAAQ,GAAG,SAAW,wXAAwX,eAAiB,CAAC,2vBAA2vB,WAAa,MAEvlE4V,EAAwBE,OAAS,CAChC,WAAc,uBACd,OAAU,uBACV,YAAe,wBAEhB,6ECTIF,QAA0B,GAA4B,KAE1DA,EAAwB7iB,KAAK,CAAC8iB,EAAO7V,GAAI,8rCAA+rC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,8CAA8C,MAAQ,GAAG,SAAW,ueAAue,eAAiB,CAAC,kjCAAkjC,WAAa,MAE/3F4V,EAAwBE,OAAS,CAChC,eAAkB,uBAClB,cAAiB,uBACjB,OAAU,uBACV,KAAQ,uBACR,WAAc,wBAEf,6ECXIF,QAA0B,GAA4B,KAE1DA,EAAwB7iB,KAAK,CAAC8iB,EAAO7V,GAAI,iVAAkV,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6CAA6C,MAAQ,GAAG,SAAW,0KAA0K,eAAiB,CAAC,wSAAwS,WAAa,MAE18B4V,EAAwBE,OAAS,CAChC,QAAW,uBACX,QAAW,uBACX,kBAAqB,wBAEtB,4ECTIF,QAA0B,GAA4B,KAE1DA,EAAwB7iB,KAAK,CAAC8iB,EAAO7V,GAAI,8iBAA+iB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,qCAAqC,MAAQ,GAAG,SAAW,8QAA8Q,eAAiB,CAAC,igBAAigB,WAAa,MAE59C4V,EAAwBE,OAAS,CAChC,QAAW,uBACX,WAAc,wBAEf,+KCAI3sB,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKnB,IAAe,KAAW,WAAiB,gBAAiBM,yBC1BnE,IAAIyM,EAAM,CACT,YAAa,CACZ,OAED,iBAAkB,CACjB,OAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,gBAAiB,CAChB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,mBAAoB,CACnB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,qBAAsB,CACrB,KACA,MAED,0BAA2B,CAC1B,KACA,MAED,qBAAsB,CACrB,KACA,MAED,0BAA2B,CAC1B,KACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,KAED,iBAAkB,CACjB,MACA,KAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,kBAAmB,CAClB,MACA,KAED,uBAAwB,CACvB,MACA,KAED,qBAAsB,CACrB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,KACA,MAED,iBAAkB,CACjB,KACA,MAED,aAAc,CACb,MACA,MAED,kBAAmB,CAClB,MACA,MAED,aAAc,CACb,KACA,MAED,kBAAmB,CAClB,KACA,MAED,sBAAuB,CACtB,KACA,MAED,2BAA4B,CAC3B,KACA,MAED,aAAc,CACb,MACA,MAED,kBAAmB,CAClB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,wBAAyB,CACxB,KACA,MAED,6BAA8B,CAC7B,KACA,MAED,mBAAoB,CACnB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,yBAA0B,CACzB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,gCAAiC,CAChC,MACA,MAED,gBAAiB,CAChB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,kBAAmB,CAClB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,aAAc,CACb,MACA,MAED,kBAAmB,CAClB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,gBAAiB,CAChB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,qBAAsB,CACrB,KACA,MAED,0BAA2B,CAC1B,KACA,MAED,sBAAuB,CACtB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,aAAc,CACb,MACA,KAED,kBAAmB,CAClB,MACA,KAED,YAAa,CACZ,KACA,MAED,iBAAkB,CACjB,KACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,gBAAiB,CAChB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,gBAAiB,CAChB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,kBAAmB,CAClB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,sBAAuB,CACtB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,sBAAuB,CACtB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,eAAgB,CACf,MACA,MAED,oBAAqB,CACpB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,6BAA8B,CAC7B,MACA,MAED,kBAAmB,CAClB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,YAAa,CACZ,MACA,KAED,iBAAkB,CACjB,MACA,KAED,2BAA4B,CAC3B,MACA,MAED,gCAAiC,CAChC,MACA,MAED,sBAAuB,CACtB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,qBAAsB,CACrB,MACA,KAED,0BAA2B,CAC1B,MACA,KAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,iBAAkB,CACjB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,yBAA0B,CACzB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,gCAAiC,CAChC,MACA,MAED,4BAA6B,CAC5B,MACA,MAED,iCAAkC,CACjC,MACA,MAED,8BAA+B,CAC9B,MACA,MAED,mCAAoC,CACnC,MACA,MAED,kBAAmB,CAClB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,aAAc,CACb,MACA,MAED,kBAAmB,CAClB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,aAAc,CACb,MACA,MAED,kBAAmB,CAClB,MACA,MAED,YAAa,CACZ,KACA,MAED,iBAAkB,CACjB,KACA,MAED,qBAAsB,CACrB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,6BAA8B,CAC7B,MACA,MAED,YAAa,CACZ,KACA,MAED,iBAAkB,CACjB,KACA,MAED,gBAAiB,CAChB,KACA,MAED,qBAAsB,CACrB,KACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,YAAa,CACZ,KACA,MAED,iBAAkB,CACjB,KACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,gBAAiB,CAChB,MACA,KAED,qBAAsB,CACrB,MACA,KAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,kBAAmB,CAClB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,mBAAoB,CACnB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,aAAc,CACb,MACA,MAED,kBAAmB,CAClB,MACA,MAED,oBAAqB,CACpB,MACA,KAED,yBAA0B,CACzB,MACA,KAED,YAAa,CACZ,MACA,KAED,iBAAkB,CACjB,MACA,KAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,iBAAkB,CACjB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,4BAA6B,CAC5B,MACA,MAED,YAAa,CACZ,KACA,MAED,iBAAkB,CACjB,KACA,MAED,aAAc,CACb,MACA,MAED,kBAAmB,CAClB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,YAAa,CACZ,MACA,KAED,iBAAkB,CACjB,MACA,KAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,gBAAiB,CAChB,MACA,KAED,qBAAsB,CACrB,MACA,KAED,qBAAsB,CACrB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,mBAAoB,CACnB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,aAAc,CACb,MACA,MAED,kBAAmB,CAClB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,KACA,MAED,iBAAkB,CACjB,KACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,KAED,iBAAkB,CACjB,MACA,KAED,qBAAsB,CACrB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,wBAAyB,CACxB,KACA,MAED,6BAA8B,CAC7B,KACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,KACA,MAED,iBAAkB,CACjB,KACA,MAED,gBAAiB,CAChB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,iBAAkB,CACjB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,mBAAoB,CACnB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,aAAc,CACb,MACA,MAED,kBAAmB,CAClB,MACA,MAED,aAAc,CACb,MACA,MAED,kBAAmB,CAClB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,wBAAyB,CACxB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,iBAAkB,CACjB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,kBAAmB,CAClB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,YAAa,CACZ,MACA,IAED,iBAAkB,CACjB,MACA,IAED,wBAAyB,CACxB,MACA,MAED,6BAA8B,CAC7B,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,aAAc,CACb,MACA,MAED,kBAAmB,CAClB,MACA,MAED,aAAc,CACb,IACA,MAED,kBAAmB,CAClB,IACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,gCAAiC,CAChC,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,mBAAoB,CACnB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,kBAAmB,CAClB,MACA,KAED,uBAAwB,CACvB,MACA,KAED,aAAc,CACb,IACA,MAED,kBAAmB,CAClB,IACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,iBAAkB,CACjB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,aAAc,CACb,MACA,MAED,kBAAmB,CAClB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,uBAAwB,CACvB,MACA,KAED,4BAA6B,CAC5B,MACA,KAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,aAAc,CACb,MACA,MAED,kBAAmB,CAClB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,cAAe,CACd,MACA,MAED,mBAAoB,CACnB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,aAAc,CACb,MACA,KAED,kBAAmB,CAClB,MACA,KAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,+BAAgC,CAC/B,MACA,MAED,YAAa,CACZ,KACA,MAED,iBAAkB,CACjB,KACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,KACA,MAED,iBAAkB,CACjB,KACA,OAGF,SAAS6f,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEhgB,EAAK8f,GAC9B,OAAOxmB,QAAQ2mB,UAAUlG,MAAK,WAC7B,IAAI3iB,EAAI,IAAI4iB,MAAM,uBAAyB8F,EAAM,KAEjD,MADA1oB,EAAE4W,KAAO,mBACH5W,CACP,IAGD,IAAI8oB,EAAMlgB,EAAI8f,GAAMhW,EAAKoW,EAAI,GAC7B,OAAO5mB,QAAQC,IAAI2mB,EAAIC,MAAM,GAAGngB,IAAI+f,EAAoB3oB,IAAI2iB,MAAK,WAChE,OAAOgG,EAAoBK,EAAEtW,EAAI,GAClC,GACD,CACA+V,EAAoBtjB,KAAO,WAAa,OAAO5G,OAAO4G,KAAKyD,EAAM,EACjE6f,EAAoB/V,GAAK,MACzB6V,EAAOU,QAAUR","sources":["webpack:///./src/Common/dialog-box.module.css?bee6","webpack:///./src/Common/DialogBox.js","webpack:///./src/Common/Icon.js","webpack:///./src/Common/IconButton.js","webpack:///./src/Common/link.module.css?df4e","webpack:///./src/Common/Link.js","webpack:///./src/Common/Modal.js","webpack:///./src/Common/hooks/use-toggle.js","webpack:///./src/Contexts/Definitions.js","webpack:///./src/Contexts/Layout.js","webpack:///./src/Dialogs/support.js","webpack:///./src/Keyboard/Behaviors/behaviorsSlice.js","webpack:///./src/Keyboard/Combos/combosSlice.js","webpack:///./src/Keyboard/Layers/layer-index-change-action.js","webpack:///./src/Keyboard/Layers/layersSlice.js","webpack:///./src/Keyboard/Macros/macrosSlice.js","webpack:///./src/Keyboard/util.js","webpack:///./src/Sources/Controls.js","webpack:///./src/Sources/Github/api.js","webpack:///./src/config.js","webpack:///./src/index.css?cfe4","webpack:///./src/App.css?d9cd","webpack:///./src/Keyboard/Context.js","webpack:///./src/Keyboard/Binding/bindingPropTypes.js","webpack:///./src/Keyboard/Combos/comboPropTypes.js","webpack:///./src/Keyboard/keymapPropTypes.js","webpack:///./src/Keyboard/Warnings/sanity-checks-layout.js","webpack:///./src/Keyboard/Warnings/sanity-checks.js","webpack:///./src/Keyboard/Keyboard.js","webpack:///./src/styles.module.css?f79c","webpack:///./src/GitHubLink.js","webpack:///./src/Dialogs/Settings.js","webpack:///./src/Dialogs/SuggestAutoLayoutTweak.js","webpack:///./src/Dialogs/KeymapBindingsUsePreprocessorMacros.js","webpack:///./src/Dialogs/KeymapParsingFailed.js","webpack:///./src/Dialogs/KeymapUsingMiryoku.js","webpack:///./src/Dialogs/MissingRootNode.js","webpack:///./src/Dialogs/ZmkNodefreeConfig.js","webpack:///./src/Sources/sources.js","webpack:///./src/Sources/styles.module.css?2b76","webpack:///./src/Sources/SourcePicker.js","webpack:///./src/Common/hooks/use-click-outside-handler.js","webpack:///./src/Sources/errors.js","webpack:///./src/Dialogs/unexpected-error.module.css?94c7","webpack:///./src/Dialogs/UnexpectedError.js","webpack:///./src/ErrorBoundary.js","webpack:///./src/Dialogs/KeymapSaveFailed.js","webpack:///./src/App.js","webpack:///./src/appReducer.js","webpack:///./src/store.js","webpack:///./src/index.js","webpack:///./src/key-units.js","webpack:///./src/keycodes.js","webpack:///./src/keymap.js","webpack:///./src/providers.js","webpack:///./src/App.css","webpack:///./src/index.css","webpack:///./src/Common/dialog-box.module.css","webpack:///./src/Common/link.module.css","webpack:///./src/Dialogs/unexpected-error.module.css","webpack:///./src/Keyboard/styles.module.css","webpack:///./src/Sources/styles.module.css","webpack:///./src/styles.module.css","webpack:///./src/Keyboard/styles.module.css?75da","webpack:///./node_modules/zmk-data/data/locales/ lazy ^\\.\\/.*$ include: \\.json$ chunkName: locales/[request]-keycodes namespace object"],"sourcesContent":["\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./dialog-box.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./dialog-box.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import styles from './dialog-box.module.css'\n\nexport default function DialogBox (props) {\n const { dismissText = 'Ok', classes = [], onDismiss, children, ...rest } = props\n\n return (\n <div className={[styles.dialog, ...classes].join(' ')} {...rest}>\n {children}\n {dismissText && (\n <button className={styles.button} onClick={onDismiss}>\n {dismissText}\n </button>\n )}\n </div>\n )\n}\n","import PropTypes from 'prop-types'\n\nconst faCollections = {\n brands: 'fab',\n default: 'fa',\n regular: 'fa-regular',\n light: 'fa-light',\n solid: 'fas',\n round: 'far'\n}\n\nfunction Icon (props) {\n const { name, className, collection, ...iconProps } = props\n const groupClass = faCollections[collection]\n const iconClass = `fa-${name}`\n\n return (\n <span\n className={[className, groupClass, iconClass].join(' ')}\n {...iconProps}\n />\n )\n}\n\nIcon.propTypes = {\n name: PropTypes.string.isRequired,\n className: PropTypes.string,\n collection: PropTypes.string\n}\n\nIcon.defaultProps = {\n collection: 'default',\n className: ''\n}\n\nexport default Icon\n","import Icon from './Icon'\n\nexport default function IconButton ({ collection, icon, text, children, onClick, ...rest }) {\n return (\n <button onClick={onClick} {...rest}>\n <Icon collection={collection} name={icon} /> {text || children}\n </button>\n )\n}\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./link.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./link.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import PropTypes from 'prop-types'\n\nimport Icon from './Icon'\nimport styles from './link.module.css'\n\nfunction Link (props) {\n const { href, children, external, showExternal, ...rest } = props\n const properties = Object.assign({ href }, rest, external && {\n rel: 'noreferrer',\n target: '_blank'\n })\n\n return (\n <a {...properties}>\n {children}\n {external && showExternal && (\n <Icon\n className={styles.icon}\n name=\"arrow-up-right-from-square\"\n />\n )}\n </a>\n )\n}\n\nLink.propTypes = {\n href: PropTypes.string.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]).isRequired,\n external: PropTypes.bool.isRequired,\n showExternal: PropTypes.bool\n}\n\nLink.defaultProps = {\n external: false,\n showExternal: true\n}\n\nexport default Link\n","import ReactDOM from 'react-dom'\nimport { useCallback, useRef, useState } from 'react'\nimport PropTypes from 'prop-types'\n\nconst styles = {\n wrapper: {\n position: 'absolute',\n top: '0',\n left: '0',\n width: '100vw',\n height: '100vh',\n backgroundColor: 'rgba(104, 123, 162, 0.39)',\n backdropFilter: 'blur(1px)',\n zIndex: '50',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n },\n centerOnly: {\n background: 'transparent',\n backdropFilter: 'none',\n pointerEvents: 'none'\n },\n content: {\n display: 'block',\n pointerEvents: 'all'\n }\n}\n\nexport default function Modal ({ onDismiss, centerOnly = false, children }) {\n const content = useRef()\n const handleClick = useCallback(function (e) {\n if (onDismiss && content.current && e.target.contains(content.current)) {\n e.stopPropagation()\n onDismiss()\n }\n }, [content, onDismiss])\n\n const style = centerOnly\n ? { ...styles.wrapper, ...styles.centerOnly }\n : styles.wrapper\n\n return ReactDOM.createPortal(\n <div onClick={handleClick} style={style}>\n <div ref={content} style={styles.content}>\n {children}\n </div>\n </div>,\n document.getElementById('modal-root')\n )\n}\n\nModal.propTypes = {\n onDismiss: PropTypes.func\n}\n\nexport function useModalState () {\n const [isOpen, setIsOpen] = useState(false)\n\n const open = useCallback(event => {\n event?.stopPropagation && event.stopPropagation()\n setIsOpen(true)\n }, [setIsOpen])\n\n const close = useCallback(event => {\n event?.stopPropagation && event.stopPropagation()\n setIsOpen(false)\n }, [setIsOpen])\n\n return [isOpen, open, close]\n}\n","import { useCallback, useState } from 'react'\n\nexport default function useToggle (initialState) {\n const [toggleState, setToggleState] = useState(initialState)\n const toggle = useCallback(() => setToggleState(state => !state), [setToggleState])\n const forceOn = useCallback(() => setToggleState(true), [setToggleState])\n const forceOff = useCallback(() => setToggleState(false), [setToggleState])\n return [toggleState, toggle, forceOn, forceOff]\n}\n","import cloneDeep from 'lodash/cloneDeep'\nimport filter from 'lodash/filter'\nimport keyBy from 'lodash/keyBy'\nimport { createContext, useEffect } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\n\nimport { normalizeZmkKeycodes } from '../keycodes'\n\nexport const DefinitionsContext = createContext({\n keycodes: [],\n behaviours: [],\n behaviors: {},\n behaviorBinds: [],\n glyphs: []\n})\n\n// TODO: I bet this doesn't need to be in the app state at all\nconst selectDefinitions = state => state.definitions\n\nexport function DefinitionsContextProvider ({ children }) {\n const definitions = useSelector(selectDefinitions)\n const dispatch = useDispatch()\n\n useEffect(() => {\n (async function () {\n if (definitions !== null) {\n return\n }\n\n const [[keycodes, glyphs], behaviors] = await Promise.all([\n loadKeycodes(),\n loadBehaviourBindings()\n ])\n\n // TODO: update references to better understand the difference between\n // \"behaviors\" (e.g. hold tap) and the \"behavior bindings\" that implement\n // them (e.g. &lt and &mt)\n const schemas = cloneDeep(behaviors.behaviors)\n const behaviours = cloneDeep(behaviors.bindings)\n\n keycodes.indexed = keyBy(keycodes, 'code')\n behaviours.indexed = keyBy(behaviours, 'code')\n behaviours.context = {\n none: behaviours.filter(({ context }) => !context),\n macros: filter(behaviours, { context: 'macros' }),\n encoders: filter(behaviours, { context: 'encoders' })\n }\n behaviours.byContext = {\n none: keyBy(behaviours.context.none, 'code'),\n macros: keyBy(behaviours.context.macros, 'code'),\n encoders: keyBy(behaviours.context.encoders, 'code')\n }\n\n dispatch({\n type: 'DEFINITIONS_SET',\n definitions: {\n keycodes,\n behaviours,\n behaviors: schemas,\n behaviorBinds: behaviours,\n glyphs\n }\n })\n })()\n }, [definitions, dispatch])\n\n // TODO: show a spinner MAYBE\n if (!definitions) {\n return\n }\n\n return (\n <DefinitionsContext.Provider value={definitions}>\n {children}\n </DefinitionsContext.Provider>\n )\n}\n\nasync function loadBehaviourBindings () {\n const { behaviorSchemas, behaviorBindings } = await import('zmk-data/behaviors')\n return {\n behaviors: behaviorSchemas,\n bindings: behaviorBindings\n }\n}\n\nasync function loadKeycodes () {\n const { keycodes, keycodeGlyphs } = await import('zmk-data/keycodes')\n return [\n normalizeZmkKeycodes(keycodes),\n keycodeGlyphs\n ]\n}\n","import { createContext, useMemo } from 'react'\nimport { getWrapperDimensions, getWrapperStyle } from '../Keyboard/util'\n\nexport const LayoutContext = createContext({\n layout: [],\n bindingCount: 0,\n wrapperDimensions: {},\n wrapperStyle: {}\n})\n\nexport function LayoutContextProvider ({ layout, children }) {\n const bindingCount = useMemo(() => layout.length, [layout.length])\n const wrapperDimensions = useMemo(() => getWrapperDimensions(layout), [layout])\n const wrapperStyle = useMemo(() => getWrapperStyle(wrapperDimensions), [wrapperDimensions])\n\n const context = {\n layout,\n bindingCount,\n wrapperDimensions,\n wrapperStyle\n }\n\n return (\n <LayoutContext.Provider value={context}>\n {children}\n </LayoutContext.Provider>\n )\n}\n","import Link from '../Common/Link'\n\nexport const githubIssuesUrl = 'https://github.com/nickcoutsos/keymap-editor/issues'\nexport const githubWikiLayoutsUrl = 'https://github.com/nickcoutsos/keymap-editor/wiki/Defining-keyboard-layouts'\nexport const keymapLayoutToolsUrl = 'https://nickcoutsos.github.io/keymap-layout-tools/'\nexport const discordProfileUrl = 'https://discord.com/users/115507966555193345'\n\nexport const GitHubIssuesLink = (\n <Link external href={githubIssuesUrl}>\n Keymap Editor Issues\n </Link>\n)\n\nexport const GitHubWikiLayoutsLink = (\n <Link external href={githubWikiLayoutsUrl}>\n Keymap Editor Wiki: Defining keyboard layouts\n </Link>\n)\n\nexport const layoutToolsLink = (\n <Link external href={keymapLayoutToolsUrl}>\n Keymap Layout Tools - Helper\n </Link>\n)\n\nexport const DiscordProfileLink = (\n <Link external href={discordProfileUrl}>\n Discord - nickcoutsos#4351\n </Link>\n)\n\nexport const GeneralHelpOfferCopy = (\n <>\n <p>\n If you are looking for help in getting up and running or want a better\n understanding of the issue, please feel free to reach out to me:\n </p>\n <ul>\n <li>{GitHubIssuesLink}</li>\n <li>{DiscordProfileLink}</li>\n </ul>\n </>\n)\n\nexport const KeymapLayoutResources = (\n <p>\n For more information about how Keymap Editor layouts are defined, you can\n read {GitHubWikiLayoutsLink}, and if you need an environment to quickly test\n changes to a layout try {layoutToolsLink}.\n </p>\n)\n","import omit from 'lodash/omit'\nimport { createSlice } from '@reduxjs/toolkit'\nimport { layerIndexChanged, makeLayerIndexChangeReducer } from '../Layers/layer-index-change-action'\n\nexport const selectBehaviors = state => state.keyboard.keymap.behaviors\n\nconst selectNodeCompatible = node => (\n node.properties.compatible?.parsed ||\n node.properties.compatible?.raw?.replace(/\"/g, '')\n)\n\nconst selectNodePhandleArrays = (node, behaviors, schemas) => {\n const compatible = selectNodeCompatible(node)\n const schema = schemas[compatible]\n\n if (!schema) {\n return []\n }\n\n return Object.keys(schema.properties).reduce((phandleArrays, prop) => {\n const propSchema = schema.properties[prop]\n const propValues = node.properties[prop]\n if (propSchema.type === 'phandle-array' && propValues) {\n phandleArrays.push(propValues.parsed)\n }\n\n return phandleArrays\n }, [])\n}\n\nconst behaviorsSlice = createSlice({\n name: 'behaviors',\n initialState: [],\n reducers: {\n addBehavior (state, action) {\n state.push(action.payload.behavior)\n },\n updateBehavior (state, action) {\n state[action.payload.behaviorIndex] = omit(action.payload.behavior, 'params')\n },\n deleteBehavior (state, action) {\n state.splice(action.payload.behaviorIndex, 1)\n }\n },\n extraReducers: builder => {\n builder.addCase(\n layerIndexChanged,\n makeLayerIndexChangeReducer(\n selectNodePhandleArrays\n )\n )\n }\n})\n\nexport const {\n addBehavior,\n updateBehavior,\n deleteBehavior\n} = behaviorsSlice.actions\n\nexport default behaviorsSlice.reducer\n","import { createSlice } from '@reduxjs/toolkit'\nimport { layerIndexChanged, makeLayerIndexChangeReducer } from '../Layers/layer-index-change-action'\n\nexport const selectCombos = state => state.keyboard.keymap.combos\n\nconst combosSlice = createSlice({\n name: 'combos',\n initialState: [],\n reducers: {\n updateComboBinding (state, action) {\n state[action.payload.comboIndex].properties.bindings = { parsed: action.payload.bindings }\n },\n updateComboKeypositions (state, action) {\n state[action.payload.comboIndex].properties['key-positions'] = {\n parsed: action.payload.keyPositions\n }\n },\n createCombo (state) {\n state.push({\n name: 'new_combo',\n labels: [],\n properties: {\n bindings: {\n parsed: [{ value: '&trans', params: [] }]\n },\n 'key-positions': {\n parsed: []\n }\n }\n })\n },\n renameCombo (state, action) {\n state[action.payload.index].name = action.payload.name\n },\n deleteCombo (state, action) {\n state.splice(action.payload.index, 1)\n },\n customizeCombo (state, action) {\n const { index, combo } = action.payload\n state[index] = combo\n }\n },\n extraReducers: builder => {\n const comboBindingsReducer = makeLayerIndexChangeReducer()\n\n builder.addCase(\n layerIndexChanged,\n function reducer (state, action) {\n const { positionMapping } = action.payload\n comboBindingsReducer(state, action)\n for (const { properties } of state) {\n if (!properties.layers?.parsed?.length) {\n continue\n }\n\n properties.layers.parsed = properties.layers.parsed.reduce((layers, index) => {\n const newIndex = positionMapping[index]\n if (newIndex !== null) {\n layers.push(newIndex)\n }\n\n return layers\n }, [])\n }\n }\n )\n }\n})\n\nexport const {\n updateComboBinding,\n updateComboKeypositions,\n createCombo,\n renameCombo,\n deleteCombo,\n customizeCombo\n} = combosSlice.actions\n\nexport default combosSlice.reducer\n","import get from 'lodash/get'\nimport { createAction } from '@reduxjs/toolkit'\n\nimport { getBindingSlots } from '../../keymap'\n\nexport function selectLayerParamsFromBinding (binding, behaviorParameters) {\n const behaviorParams = getBindingSlots(binding, behaviorParameters)\n\n return behaviorParams.reduce((layerParams, param, i) => {\n if (param === 'layer') {\n layerParams.push(binding.params[i])\n }\n\n return layerParams\n }, [])\n}\n\nexport const layerIndexChanged = createAction(\n 'layers/indexChanged',\n function prepare (currentIndex, targetIndex, layers, searchContext, definitionsContext) {\n const positionMapping = createLayerIndexMapping(currentIndex, targetIndex, layers)\n const { sources, behaviorParameters } = searchContext\n const { behaviors: behaviorSchemas } = definitionsContext\n\n return {\n payload: {\n currentIndex,\n targetIndex,\n sources,\n behaviorSchemas,\n behaviorParameters,\n positionMapping\n }\n }\n }\n)\n\nconst defaultSelectPhandleArrays = node => [node.properties.bindings.parsed]\n\n/**\n * Create a reducer to update layer index binding cells after a layer shift.\n * @param {Function} selectPhandleArrays - callback to return parsed phandle-array values from any relevant property in a node\n * @returns {Function} reducer\n */\nexport function makeLayerIndexChangeReducer (selectPhandleArrays = defaultSelectPhandleArrays) {\n return function reducer (state, action) {\n const { sources, behaviorSchemas, behaviorParameters, positionMapping } = action.payload\n const { behaviours: behaviors, defines } = sources\n const layerParamsIterator = makeLayerParamsIterator(\n state, behaviors, behaviorSchemas, behaviorParameters, selectPhandleArrays\n )\n\n for (const param of layerParamsIterator) {\n let selectedIndex = get(defines, param.value, param.value)\n if (!Number.isNaN(Number(selectedIndex))) {\n selectedIndex = Number(selectedIndex)\n }\n\n param.value = positionMapping[selectedIndex]?.toString()\n if (param.value === undefined) {\n param.value = '0'\n param._isPlaceholder = true\n }\n }\n }\n}\n\nfunction createLayerIndexMapping (currentIndex, targetIndex, layers) {\n const layerIndices = [...layers.keys()]\n\n // Deleted layer means references to currentIndex are nulled,\n // and referencs > currentIndex are decremented\n if (targetIndex === null) {\n return layerIndices.map(i => {\n if (i === currentIndex) {\n return null\n }\n\n return i > currentIndex ? i - 1 : i\n })\n }\n\n return layerIndices.map(i => {\n const sameIndex = i === currentIndex\n const bothBefore = i > currentIndex && i > targetIndex\n const bothAfter = i < currentIndex && i < targetIndex\n const betweenOldAndNew = currentIndex < i && i < targetIndex\n\n if (sameIndex) {\n // Normally the \"target\" is another layer whose position is being taken,\n // but in the case of targetting the end of the list this isn't a valid\n // array index.\n if (targetIndex === layers.length) {\n return targetIndex - 1\n }\n\n return targetIndex\n } else if (bothBefore || bothAfter) {\n return i\n } else if (betweenOldAndNew) {\n return i - 1\n }\n\n return i + 1\n })\n}\n\n/**\n * Create iterator for all layer-related binding cells in a state slice.\n * This reducer is used with state slices that represent a collection of nodes\n * each of which have one or more properties representing phandle arrays which\n * may have parameters binding to layer indices. This iterator abstracts that\n * so we can just loop through layer parameters.\n * @param {Array<Object>} state\n * @param {*} behaviors\n * @param {*} behaviorSchemas\n * @param {Function} selectPhandleArrays\n */\nfunction * makeLayerParamsIterator (state, behaviors, behaviorSchemas, behaviorParameters, selectPhandleArrays) {\n for (const node of state) {\n for (const bindings of selectPhandleArrays(node, behaviors, behaviorSchemas)) {\n for (const binding of bindings) {\n for (const param of selectLayerParamsFromBinding(binding, behaviorParameters)) {\n yield param\n }\n }\n }\n }\n}\n","import times from 'lodash/times'\nimport { createSlice } from '@reduxjs/toolkit'\nimport { layerIndexChanged, makeLayerIndexChangeReducer } from './layer-index-change-action'\n\nconst DEFAULT_BIND_BEHAVIOUR = '&trans'\nconst createEmptyBinding = (value = DEFAULT_BIND_BEHAVIOUR) => ({\n value, params: []\n})\n\nexport const selectLayers = state => state.keyboard.keymap.layers\n\nconst layersSlice = createSlice({\n name: 'layers',\n initialState: [],\n reducers: {\n createLayer (state, action) {\n state.push({\n name: `layer_${state.length}`,\n labels: [],\n properties: {\n bindings: {\n parsed: times(action.payload.bindingCount, () => createEmptyBinding())\n }\n }\n })\n },\n updateLayerMetadata (state, action) {\n const { layerIndex, name, label } = action.payload\n if (name) {\n state[layerIndex].name = name\n }\n if (label !== undefined) {\n state[layerIndex].properties.label = {\n parsed: label\n }\n }\n },\n renameLayer (state, action) {\n state[action.payload.index].name = action.payload.name\n },\n repositionLayer (state, action) {\n const { currentIndex, targetIndex } = action.payload\n if (currentIndex === targetIndex) {\n return\n }\n\n const layer = state[currentIndex]\n\n // moving a layer up means shifting other layers down\n const replacementIndex = targetIndex > currentIndex\n ? targetIndex - 1\n : targetIndex\n\n state.splice(currentIndex, 1)\n state.splice(replacementIndex, 0, layer)\n },\n deleteLayer (state, action) {\n state.splice(action.payload.index, 1)\n },\n updateKeyBinding (state, action) {\n state[action.payload.layerIndex].properties.bindings.parsed[action.payload.bindIndex] = action.payload.binding\n },\n updateSensorBindings (state, action) {\n const { layerIndex, sensorIndex, bindings: binding } = action.payload\n const { properties } = state[layerIndex]\n properties['sensor-bindings'] = properties['sensor-bindings'] || { parsed: [] }\n const bindings = properties['sensor-bindings'].parsed\n\n bindings[sensorIndex] = binding\n\n // Ensure that every sensor binding up to this one has SOME value defined\n // so that we don't barf when attempting to serialize these bindings.\n // TODO: default to `&trans` once ZMK allows it in sensor bindings.\n for (let i = 0; i < sensorIndex; i++) {\n bindings[i] = (\n bindings[i] || {\n value: '&inc_dec_kp',\n params: [\n { value: 0, _isPlaceholder: true, params: [] },\n { value: 0, _isPlaceholder: true, params: [] }\n ]\n }\n )\n }\n\n const undefinedStart = bindings.indexOf(undefined)\n if (undefinedStart !== -1) {\n bindings.splice(undefinedStart, bindings.length - undefinedStart)\n }\n },\n rebindTransparentToKeyPress (state, action) {\n for (const binding of state[action.payload.layerIndex].properties.bindings.parsed) {\n if (binding.value === '&trans') {\n binding.value = '&kp'\n binding.params = []\n }\n }\n },\n rebindTransparentToNone (state, action) {\n for (const binding of state[action.payload.layerIndex].properties.bindings.parsed) {\n if (binding.value === '&trans') {\n binding.value = '&none'\n binding.params = []\n }\n }\n },\n rebindNoneToKeypress (state, action) {\n for (const binding of state[action.payload.layerIndex].properties.bindings.parsed) {\n if (binding.value === '&none') {\n binding.value = '&kp'\n binding.params = []\n }\n }\n },\n rebindNoneToTransparent (state, action) {\n for (const binding of state[action.payload.layerIndex].properties.bindings.parsed) {\n if (binding.value === '&none') {\n binding.value = '&trans'\n binding.params = []\n }\n }\n },\n rebindEmptyKeypressToTransparent (state, action) {\n for (const binding of state[action.payload.layerIndex].properties.bindings.parsed) {\n if (binding.value === '&kp' && !binding.params[0]?.value) {\n binding.value = '&trans'\n binding.params = []\n }\n }\n },\n rebindEmptyKeypressToNone (state, action) {\n for (const binding of state[action.payload.layerIndex].properties.bindings.parsed) {\n if (binding.value === '&kp' && !binding.params[0]?.value) {\n binding.value = '&none'\n binding.params = []\n }\n }\n }\n },\n extraReducers: builder => {\n builder.addCase(\n layerIndexChanged,\n makeLayerIndexChangeReducer(node => [\n node.properties.bindings.parsed,\n node.properties['sensor-bindings']?.parsed || []\n ])\n )\n }\n})\n\nexport const {\n createLayer,\n renameLayer,\n repositionLayer,\n deleteLayer,\n updateLayerMetadata,\n updateKeyBinding,\n updateSensorBindings,\n rebindTransparentToKeyPress,\n rebindTransparentToNone,\n rebindNoneToKeypress,\n rebindNoneToTransparent,\n rebindEmptyKeypressToTransparent,\n rebindEmptyKeypressToNone\n} = layersSlice.actions\n\nexport default layersSlice.reducer\n","import { createSlice } from '@reduxjs/toolkit'\nimport { layerIndexChanged, makeLayerIndexChangeReducer } from '../Layers/layer-index-change-action'\n\nexport const selectMacros = state => state.keyboard.keymap.macros\n\nconst macrosSlice = createSlice({\n name: 'macros',\n initialState: [],\n reducers: {\n addMacro (state, action) {\n state.push(action.payload)\n },\n deleteMacro (state, action) {\n state.splice(action.payload.index, 1)\n },\n updateMacroBindings (state, action) {\n const { index, bindings } = action.payload\n state[index].properties.bindings.parsed = bindings\n },\n customizeMacroOptions (state, action) {\n Object.assign(state[action.payload.macroIndex], action.payload.options)\n }\n },\n extraReducers: builder => {\n builder.addCase(\n layerIndexChanged,\n makeLayerIndexChangeReducer()\n )\n }\n})\n\nexport const {\n addMacro,\n deleteMacro,\n updateMacroBindings,\n customizeMacroOptions\n} = macrosSlice.actions\n\nexport default macrosSlice.reducer\n","import { transformKeyPolygon, getKeyBoundingBox } from '../key-units'\n\nexport function getLayoutPolygons (layout, { scale = 1 }) {\n return layout.map(key => transformKeyPolygon(\n { x: key.x, y: key.y },\n { u: key.u || key.w || 1, h: key.h || 1 },\n { x: key.rx, y: key.ry, a: key.r }\n ))\n}\n\nexport function getWrapperDimensions (layout) {\n return layout.map(key => getKeyBoundingBox(\n { x: key.x, y: key.y },\n { u: key.u || key.w || 1, h: key.h || 1 },\n { x: key.rx, y: key.ry, a: key.r }\n )).reduce(({ x, y }, { max }) => ({\n x: Math.max(x, max.x),\n y: Math.max(y, max.y)\n }), { x: 0, y: 0 })\n}\n\nexport function getWrapperStyle (layoutOrBBox, { scale = 1, overrides = {} } = {}) {\n const bbox = Array.isArray(layoutOrBBox)\n ? getWrapperDimensions(layoutOrBBox)\n : layoutOrBBox\n\n return {\n width: `${bbox.x * scale}px`,\n height: `${bbox.y * scale}px`,\n margin: '0 auto',\n padding: '0 40px 40px',\n ...overrides\n }\n}\n","import ReactSelect, { components } from 'react-select'\nimport { useSelector } from 'react-redux'\n\nexport function Control ({ style = {}, children }) {\n // based on react-select's control height, which should come from a theme instead\n const baseStyle = {\n height: '38px',\n lineHeight: '38px'\n }\n\n return (\n <div style={{ ...baseStyle, ...style }}>\n {children}\n </div>\n )\n}\n\nexport function Button ({ children, style = {}, ...rest }) {\n return (\n <Control style={style}>\n <button style={{ height: '100%' }} {...rest}>\n {children}\n </button>\n </Control>\n )\n}\n\nconst darkModePreference = window.matchMedia('(prefers-color-scheme: dark)')\nconst invertedThemeColors = [0, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90].reduce((colors, i) => {\n colors[`neutral${i}`] = `hsl(210, 33%, ${i + 15}%)`\n return colors\n}, {})\n\ninvertedThemeColors.primary25 = 'hsl(214, 100%, 40%)'\n\nexport function Select ({ label, children: extraChildren, ...rest }) {\n const { theme } = useSelector(state => state)\n const isDark = theme === 'dark' || (theme === 'system' && darkModePreference.matches)\n\n const MenuList = ({ children, ...props }) => (\n <components.MenuList {...props}>\n {children}\n {extraChildren}\n </components.MenuList>\n )\n\n return (\n <div style={{\n display: 'inline-block',\n width: 'auto'\n }}>\n <label style={{\n display: 'block',\n width: '100%',\n fontSize: '120%',\n color: 'var(--fg)'\n }}>\n {label}\n </label>\n <ReactSelect\n styles={{\n container: (baseStyles, state) => ({\n ...baseStyles,\n display: 'inline-block'\n }),\n menu: (baseStyles) => ({\n ...baseStyles,\n width: 'max-content',\n zIndex: 10\n })\n }}\n components={{ MenuList }}\n theme={theme => ({\n ...theme,\n colors: {\n ...theme.colors,\n ...(isDark ? invertedThemeColors : {})\n }\n })}\n isSearchable={false}\n {...rest}\n />\n </div>\n )\n}\n","import axios from 'axios'\nimport EventEmitter from 'eventemitter3'\n\nimport * as config from '../../config'\n\nconst websocketUrl = `${config.apiBaseUrl.replace('http', 'ws')}/github/events`\n\nexport class API extends EventEmitter {\n token = null\n initializing = false\n installations = null\n repositories = null\n repoInstallationMap = null\n features = null\n socket = null\n\n async _request (options) {\n if (typeof options === 'string') {\n options = {\n url: options\n }\n }\n\n if (options.url.startsWith('/')) {\n options.url = `${config.apiBaseUrl}${options.url}`\n }\n\n options.headers = Object.assign({}, options.headers)\n if (this.token && !options.headers.Authorization) {\n options.headers.Authorization = `Bearer ${this.token}`\n }\n\n try {\n return await axios(options)\n } catch (err) {\n if (err.response?.status === 401) {\n console.error('Authentication failed.')\n this.emit('authentication-failed', err.response)\n }\n\n throw err\n }\n }\n\n init () {\n if (this.initializing) {\n return this.initializing\n }\n\n this.initializing = (async () => {\n this.initEvents()\n\n const installationUrl = `${config.apiBaseUrl}/github/installation`\n const params = new URLSearchParams(window.location.search)\n\n // I don't really understand the callback parameters but as long as\n // *something* installation related has changed then its worth refreshing\n // the authentication.\n if (params.get('setup_action') && params.get('installation_id')) {\n this.beginLoginFlow()\n }\n\n if (params.get('blocked')) {\n setTimeout(() => this.emit('blocked'))\n return\n }\n\n const param = params.get('token')\n if (!window.localStorage.auth_token && param) {\n window.history.replaceState({}, null, window.location.pathname)\n window.localStorage.auth_token = param\n }\n\n if (window.localStorage.auth_token) {\n this.token = window.localStorage.auth_token\n const { data } = await this._request(installationUrl)\n const suspended = data.installations.filter(installation => installation.suspended_at)\n\n if (data.installations.length === suspended.length) {\n console.warn('No GitHub app installation found for authenticated user.')\n this.emit('app-not-installed')\n }\n\n this.username = data.username\n this.installations = data.installations\n this.repositories = data.repositories\n this.repoInstallationMap = data.repoInstallationMap\n this.emit('authenticated')\n }\n })()\n\n return this.initializing\n }\n\n initEvents () {\n const bufferedMessages = []\n const isOpen = () => {\n return this.socket.readyState === window.WebSocket.OPEN\n }\n\n const send = (message) => {\n if (isOpen()) {\n this.socket.send(message)\n return\n }\n\n bufferedMessages.push(message)\n console.log(\n 'buffering websocket message',\n { readyState: this.socket.readyState },\n message\n )\n }\n\n const flush = () => {\n let message\n while ((message = bufferedMessages.shift())) {\n console.log('sending buffered websocket message', message)\n this.socket.send(message)\n }\n }\n\n this.socket = new window.WebSocket(websocketUrl)\n this.socket.onopen = () => {\n console.log(new Date(), 'connected to console')\n flush()\n setInterval(() => {\n send(JSON.stringify({ message: 'ping' }))\n }, 20000)\n }\n\n this.socket.onclose = () => console.log(new Date(), 'disconnected from server')\n this.socket.onerror = err => console.error(new Date(), err)\n this.socket.onmessage = event => {\n const message = JSON.parse(event.data)\n if (message.event === 'workflow_run') {\n this.emit('build-update', message.workflow_run)\n }\n }\n\n this.on('authenticated', () => {\n if (!this.installations?.length) {\n return\n }\n\n this.fetchAvailableFeatures()\n\n send(JSON.stringify({\n message: 'authorize',\n data: this.token\n }))\n })\n }\n\n beginLoginFlow () {\n window.localStorage.removeItem('auth_token')\n window.location.href = `${config.apiBaseUrl}/github/authorize`\n }\n\n beginInstallAppFlow () {\n window.location.href = `https://github.com/apps/${config.githubAppName}/installations/new`\n }\n\n manageInstallationRepos (installationId) {\n const installation = this.installations.find(installation => installation.id === installationId)\n window.location.href = installation.html_url\n }\n\n isGitHubAuthorized () {\n return !!this.token\n }\n\n isAppSuspendedForRepoSelection () {\n return (\n this.installations?.length > 0 &&\n this.installations?.every(installation => installation.suspended_at) &&\n this.installations?.some(installation => installation.repository_selection === 'all')\n )\n }\n\n isAppInstalled () {\n return this.installations?.length && this.repositories?.length\n }\n\n async fetchRepoBranches (repo) {\n const installation = encodeURIComponent(this.repoInstallationMap[repo.full_name])\n const repository = encodeURIComponent(repo.full_name)\n const { data } = await this._request(\n `/github/installation/${installation}/${repository}/branches`\n )\n\n return data\n }\n\n async fetchBranchKeyboards (repo, branch) {\n const installation = encodeURIComponent(this.repoInstallationMap[repo.full_name])\n const repository = encodeURIComponent(repo.full_name)\n const { data } = await this._request(\n `/github/installation/${installation}/${repository}/keyboards/${branch}`\n )\n\n return data\n }\n\n async fetchLayoutAndKeymap (repo, branch, { keyboard } = {}) {\n const installation = encodeURIComponent(this.repoInstallationMap[repo])\n const repository = encodeURIComponent(repo)\n const url = new URL(`${config.apiBaseUrl}/github/keyboard-files/${installation}/${repository}`)\n const query = new URLSearchParams()\n\n if (branch) {\n query.set('branch', branch)\n }\n if (keyboard) {\n query.set('keyboard', keyboard)\n }\n\n url.search = query.toString()\n\n try {\n const { data } = await this._request(url.toString())\n const { info: { layouts }, keymap } = data\n const defaultLayout = Object.keys(data.info.layouts)[0]\n const preferredLayout = keymap.chosen['zmk,matrix_transform']\n ? keymap.chosen['zmk,matrix_transform'].replace(/^&/, '')\n : null\n\n const layoutMetadata = (\n layouts[preferredLayout] ||\n layouts[defaultLayout]\n )\n const layout = layoutMetadata.layout\n\n return {\n layoutMetadata,\n layout,\n keymap,\n keyboards: data.keyboards,\n default: data.defaultKeymap,\n sensors: data.sensors\n }\n } catch (err) {\n if (err.response?.status === 400) {\n console.error('Failed to load keymap and layout from github', err.response.data)\n this.emit('repo-validation-error', err.response.data)\n } else if (err.response?.status === 500 && err.response.data.name === 'LayoutGenerationError') {\n this.emit('layout-generation-failed', err.response.data)\n }\n\n throw err\n }\n }\n\n async fetchAvailableFeatures () {\n if (!this.isGitHubAuthorized()) {\n return { betaFeatures: [] }\n }\n\n if (!this.features) {\n this.features = this._request(`${config.apiBaseUrl}/github/features`)\n }\n\n const { data } = await this.features\n return data\n }\n\n async fetchBuildStatus (repo, branch) {\n const installation = encodeURIComponent(this.repoInstallationMap[repo])\n const repository = encodeURIComponent(repo)\n const url = new URL(`${config.apiBaseUrl}/github/latest-run/${installation}/${repository}/${encodeURIComponent(branch)}`)\n\n const { data } = await this._request(url.toString())\n return data\n }\n\n commitChanges (repo, branch, layout, keymap, options = {}) {\n const {\n message = null,\n experimentalSettings = {},\n keyboard\n } = options\n const installation = encodeURIComponent(this.repoInstallationMap[repo])\n const repository = encodeURIComponent(repo)\n const url = new URL(`${config.apiBaseUrl}/github/keyboard-files/${installation}/${repository}/${encodeURIComponent(branch)}`)\n const { enableBehaviorEditing = false } = experimentalSettings\n const query = new URLSearchParams({\n enableBehaviorEditing\n })\n\n if (keyboard) {\n query.set('keyboard', keyboard)\n }\n\n url.search = query.toString()\n\n return this._request({\n url: url.toString(),\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n data: { keyboard, keymap, message }\n })\n }\n}\n\nconst api = new API()\nexport default api\n","function parseBoolean (val) {\n return val && ['1', 'on', 'yes', 'true'].includes(val.toString().toLowerCase())\n}\n\nexport const apiBaseUrl = process.env.API_BASE_URL\nexport const appBaseUrl = process.env.APP_BASE_URL\nexport const githubAppName = process.env.GITHUB_APP_NAME\nexport const enableGitHub = parseBoolean(process.env.ENABLE_GITHUB)\nexport const enableLocal = parseBoolean(process.env.ENABLE_LOCAL)\nexport const enableDemo = parseBoolean(process.env.ENABLE_DEMO)\nexport const enableClipboard = parseBoolean(process.env.ENABLE_CLIPBOARD)\nexport const enableFileSystem = parseBoolean(process.env.ENABLE_FILESYSTEM)\n","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!./index.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!./index.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!./App.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!./App.css\";\n export default content && content.locals ? content.locals : undefined;\n","import cloneDeep from 'lodash/cloneDeep'\nimport filter from 'lodash/filter'\nimport get from 'lodash/get'\nimport isEmpty from 'lodash/isEmpty'\nimport keyBy from 'lodash/keyBy'\nimport { useContext, useEffect, useMemo, useState } from 'react'\n\nimport {\n behaviorOverlays,\n mergeBehaviorOverlays\n} from 'zmk-data/behaviors'\nimport localeCatalog from 'zmk-data/data/locales/catalog.json'\n\nimport { DefinitionsContext } from '../Contexts/Definitions'\nimport { SearchContext, SettingsContext } from '../providers'\nimport { getMergedGlyphs, normalizeZmkKeycodes } from '../keycodes'\nimport { resolveBehaviorParams } from 'zmk-data/parameters'\n\nfunction useLocaleDefinitions (keymap) {\n const [loadedLocales, setLoadedLocales] = useState([])\n const locales = useMemo(() => {\n return keymap.headers.reduce((acc, header) => {\n if (header in localeCatalog) {\n acc.push(localeCatalog[header])\n }\n return acc\n }, [])\n }, [keymap.headers])\n\n useEffect(() => {\n (async function loadLocales () {\n const loaded = []\n for (const locale of locales) {\n // https://stackoverflow.com/a/62012224\n const data = await import(\n /* webpackInclude: /\\.json$/ */\n /* webpackMode: \"lazy\" */\n /* webpackChunkName: \"locales/[request]-keycodes\" */\n `zmk-data/data/locales/${locale.filename}`\n )\n loaded.push(...normalizeZmkKeycodes(data.keys))\n }\n\n setLoadedLocales(loaded)\n })()\n }, [locales])\n\n return loadedLocales\n}\n\nfunction Context ({ children, ...props }) {\n const { keymap } = props\n const { keycodes, behaviours, glyphs } = useContext(DefinitionsContext)\n const { settings } = useContext(SettingsContext)\n const localeKeycodes = useLocaleDefinitions(keymap)\n\n const mergedGlyphs = useMemo(() => {\n const isMac = window.navigator.platform.startsWith('Mac')\n const isWin = window.navigator.platform.startsWith('Win')\n const platform = (isMac && 'mac') || (isWin && 'win')\n\n return getMergedGlyphs(glyphs, {\n unicode: get(settings, 'unicodeGlyphs', true),\n platform: get(settings, 'platformGlyphs', 'auto') !== 'auto'\n ? settings.platformGlyphs\n : platform\n })\n }, [glyphs, settings])\n\n const extendedBehaviours = useMemo(() => {\n const customBehaviors = keymap.behaviors.map(behavior => {\n behavior = cloneDeep(behavior)\n behavior.code = `&${behavior.labels[0]}`\n behavior.compatible = behavior.properties.compatible.parsed\n return behavior\n })\n mergeBehaviorOverlays(customBehaviors, behaviorOverlays)\n const fullList = [\n ...behaviours.map(behavior => ({\n ...behavior,\n description: behavior.description || behavior.schema?.description\n })),\n ...(customBehaviors || []).map(behavior => ({\n code: `&${behavior.labels[0]}`,\n bind: `&${behavior.labels[0]}`,\n name: behavior.name,\n displayName: behavior.properties.label?.raw || behavior.name,\n description: `Custom behavior: ${behavior.properties.label?.raw || behavior.name}`,\n context: behavior.context\n })),\n ...keymap.macros.map(macro => ({\n code: `&${macro.labels[0]}`,\n name: macro.name,\n description: `Custom macro ${macro.properties.label?.raw || macro.name}`\n }))\n ]\n\n // TODO: at this point we're just duplicating work that was done at a higher\n // level. It still needs to happen here because of the extended list of\n // keyboard-specific behaviours, so the App can just pass the list without\n // doing its own indexing.\n fullList.indexed = keyBy(fullList, 'code')\n fullList.context = {\n none: fullList.filter(({ context }) => !context),\n macros: filter(fullList, { context: 'macros' }),\n encoders: filter(fullList, { context: 'encoders' })\n }\n fullList.byContext = {\n none: keyBy(fullList.context.none, 'code'),\n macros: keyBy(fullList.context.macros, 'code'),\n encoders: keyBy(fullList.context.encoders, 'code')\n }\n\n return fullList\n }, [behaviours, keymap.behaviors, keymap.macros])\n\n const behaviorParameters = useMemo(() => {\n return resolveBehaviorParams([\n ...behaviours,\n ...keymap.behaviors,\n ...keymap.macros\n ])\n }, [behaviours, keymap.behaviors, keymap.macros])\n\n const availableLayers = useMemo(() => isEmpty(keymap)\n ? []\n : (\n keymap.layers.map((layer, i) => ({\n code: i,\n description: layer.name || `Layer ${i}`\n }))\n ), [keymap])\n\n const keycodesList = useMemo(() => {\n return [\n ...keycodes.map(keycode => cloneDeep(keycode)),\n ...localeKeycodes.map(keycode => cloneDeep(keycode))\n ]\n }, [keycodes, localeKeycodes])\n\n const keycodesIndexed = useMemo(() => {\n const indexed = keyBy(keycodesList, 'code')\n for (const name in mergedGlyphs) {\n const glyph = mergedGlyphs[name]\n const keycode = indexed[name]\n for (const alias of keycode.aliases) {\n indexed[alias].symbol = glyph.symbol || indexed[alias].symbol\n indexed[alias].faIcon = glyph.faIcon || indexed[alias].faIcon\n }\n }\n\n // last minute transform, the following keys are all implicitly shifted\n // TODO: don't do this here\n const shiftedKeys = [\n 'EXCL',\n 'AT',\n 'HASH',\n 'DLLR',\n 'PRCNT',\n 'CARET',\n 'AMPS',\n 'STAR',\n 'UNDER',\n 'PLUS',\n 'PIPE',\n 'TILDE2',\n 'COLON',\n 'TILDE',\n 'LT',\n 'QMARK',\n 'CLEAR2',\n 'PIPE2',\n 'LPAR',\n 'RPAR',\n 'LBRC',\n 'RBRC',\n 'DQT',\n 'GT'\n ]\n\n for (const key of shiftedKeys) {\n indexed[key].modifiers = ['LS']\n }\n\n return indexed\n }, [keycodesList, mergedGlyphs])\n\n // Extend ZMK definitions (keycodes and behaviours) with additional\n // definitions specific to this keyboard. This includes a list of layers for\n // layer-related behaviours and in the future can include custom behaviours\n // defined in the keymap and potentially preprocessor definitions for psuedo\n // layer names or aliased key codes.\n const sources = useMemo(() => ({\n code: keycodesIndexed,\n behaviours: extendedBehaviours.indexed,\n behavioursByContext: extendedBehaviours.byContext,\n layer: keyBy(availableLayers, 'code'),\n defines: keymap.defines\n }), [keycodesIndexed, extendedBehaviours, availableLayers, keymap.defines])\n\n const searchTargets = useMemo(() => {\n return {\n behaviour: extendedBehaviours,\n code: keycodesList\n }\n }, [extendedBehaviours, keycodesList])\n\n const getSearchTargets = useMemo(() => function (param, behaviour, context = 'none') {\n // Special case for behaviour commands which can dynamically add another\n // parameter that isn't defined at the root level of the behaviour.\n // Currently this is just `&bt BT_SEL` and is only represented as an enum.\n if (param.enum) {\n return param.enum.map(option => (\n typeof option === 'object'\n ? option\n : { code: option }\n ))\n }\n\n if (param.raw) {\n return []\n }\n\n if (!searchTargets[param]) {\n console.error('cannot find target for', param)\n }\n\n if (param === 'behaviour') {\n return searchTargets.behaviour.context[context]\n }\n\n return searchTargets[param]\n }, [searchTargets])\n\n const identifiers = useMemo(() => {\n return [\n ...Object.keys(keycodesIndexed),\n ...Object.keys(keymap.defines || {})\n ]\n }, [keycodesIndexed, keymap.defines])\n\n return (\n <SearchContext.Provider value={{ behaviorParameters, getSearchTargets, mergedGlyphs, sources, identifiers }}>\n {children}\n </SearchContext.Provider>\n )\n}\n\nexport default Context\n","import PropTypes from 'prop-types'\n\nconst bindShape = {}\n\nexport const value = PropTypes.string.isRequired\nexport const params = PropTypes.arrayOf(PropTypes.shape(bindShape))\n\nbindShape.value = value\nbindShape.params = params\n\nexport const binding = PropTypes.shape(bindShape)\n","import PropTypes from 'prop-types'\nimport { binding } from '../Binding/bindingPropTypes'\n\nexport const combo = PropTypes.shape({\n index: PropTypes.number,\n name: PropTypes.string,\n properties: PropTypes.shape({\n bindings: PropTypes.shape({\n parsed: PropTypes.arrayOf(binding).isRequired\n }).isRequired,\n 'key-positions': PropTypes.shape({\n parsed: PropTypes.arrayOf(PropTypes.number).isRequired\n }).isRequired\n })\n})\n","import PropTypes from 'prop-types'\nimport { binding } from './Binding/bindingPropTypes'\nimport { combo } from './Combos/comboPropTypes'\n\nexport const layer = PropTypes.shape({\n index: PropTypes.number,\n name: PropTypes.string,\n properties: PropTypes.shape({\n bindings: PropTypes.shape({\n parsed: PropTypes.arrayOf(binding).isRequired\n }).isRequired,\n 'sensor-bindings': PropTypes.shape({\n parsed: PropTypes.arrayOf(binding).isRequired\n })\n })\n})\n\nexport const keymap = PropTypes.shape({\n layers: PropTypes.arrayOf(layer).isRequired,\n combos: PropTypes.arrayOf(combo)\n})\n","\nexport function sanityCheckLayout (layout) {\n return {\n layoutMissingPositions: sanityCheckPosiitions(layout)\n // overlappedPositions: sanityCheckOverlappingPositions(layout),\n // unorderedRows: sanityCheckRowOrdering(layout),\n // undereredColumns: sanityCheckColumnOrdering(layout)\n }\n}\n\nfunction sanityCheckPosiitions (layout) {\n const noKeyHasPosition = layout.every(key => (\n key.row === undefined &&\n key.col === undefined\n ))\n\n return noKeyHasPosition\n ? ['Layout in info.json has no row/col definitions. Generated keymap files will not be nicely formatted.']\n : []\n}\n\nfunction sanityCheckOverlappingPositions (layout) {\n const errors = []\n const keysByPosition = layout.reduce((acc, key, i) => {\n const { row, col } = key\n const position = `(${row},${col})`\n\n if (row !== undefined && col !== undefined) {\n acc[position] = [...(acc[position] || []), i]\n }\n\n return acc\n }, {})\n\n for (const group of Object.values(keysByPosition)) {\n if (group.length <= 1) {\n continue\n }\n\n const { row, col } = layout[group[0]]\n for (const index of group) {\n errors.push({\n location: `Layout JSON [${index}]`,\n position: { row, col }\n })\n }\n }\n\n return errors\n}\n\nfunction sanityCheckRowOrdering (layout) {\n let currentRow = -Infinity\n const errors = []\n\n for (const index of layout.keys()) {\n const { row } = layout[index]\n if (row === undefined) {\n continue\n }\n\n if (row < currentRow) {\n errors.push({ location: `Layout JSON [${index}]` })\n } else {\n currentRow = row\n }\n }\n\n return errors\n}\n\nfunction sanityCheckColumnOrdering (layout) {\n let currentRow = 0\n let currentCol = -Infinity\n const errors = []\n\n for (const index of layout.keys()) {\n const { row, col } = layout[index]\n if (row === undefined || col === undefined) {\n continue\n }\n\n if (currentRow !== row) {\n currentRow = row\n currentCol = -Infinity\n }\n\n if (col < currentCol) {\n errors.push({ location: `Layout JSON [${index}]` })\n } else {\n currentCol = col\n }\n }\n\n return errors\n}\n","import groupBy from 'lodash/groupBy'\n\nimport { sanityCheckLayout } from './sanity-checks-layout'\nimport reservedIdentifiers from 'zmk-data/data/extracted-data/zmk-reserved-identifiers.json'\n\nconst selectName = item => item.name\nconst selectBind = item => item.labels[0]\nconst selectLabel = item => item.properties.label?.parsed\n\nexport function sanityCheck (keymap, layout) {\n return {\n nodeNames: sanityCheckNodeNames(keymap),\n nodeLabels: sanityCheckNodeLabels(keymap),\n nodeReferences: sanityCheckNodeReferences(keymap),\n deprecations: sanityCheckDeprecations(keymap),\n ...sanityCheckLayout(layout)\n }\n}\n\nfunction getDuplicatesBy (collection, key) {\n const itemsByKey = groupBy(collection, key)\n return Object.values(itemsByKey)\n .filter(group => group.length > 1)\n}\n\nfunction doesNameSuggestPassword (name) {\n const patterns = [\n /(^|[\\b_])pass(word)?([\\b_]|$)/\n ]\n return patterns.some(pattern => name.match(pattern))\n}\n\nfunction sanityCheckNodeNames (keymap) {\n const layerNames = getLayerNodeNames(keymap.layers)\n const comboNames = getComboNodeNames(keymap.combos)\n const macroNames = getMacroNodeNames(keymap.macros)\n const behaviorNames = getBehaviorNodeNames(keymap.behaviors)\n\n const duplicates = [\n ...getDuplicatesBy(layerNames, 'name'),\n ...getDuplicatesBy(comboNames, 'name'),\n ...getDuplicatesBy(macroNames, 'name'),\n ...getDuplicatesBy(behaviorNames, 'name')\n ]\n\n const redefined = [\n ...layerNames.filter(layer => reservedIdentifiers.includes(layer.name)),\n ...comboNames.filter(combo => reservedIdentifiers.includes(combo.name)),\n ...macroNames.filter(macro => reservedIdentifiers.includes(macro.name)),\n ...behaviorNames.filter(behavior => reservedIdentifiers.includes(behavior.name))\n ]\n\n const passwordMacros = [\n ...macroNames.filter(macro => doesNameSuggestPassword(macro.name))\n ]\n\n return { duplicates, redefined, passwordMacros }\n}\n\nfunction sanityCheckNodeLabels (keymap) {\n const duplicates = getDuplicatesBy([].concat(\n getLayerLabels(keymap.layers),\n getMacroLabels(keymap.macros),\n getBehaviorLabels(keymap.behaviors)\n ), 'label')\n\n return { duplicates }\n}\n\nfunction sanityCheckNodeReferences (keymap) {\n const nodesByRef = groupBy([].concat(\n getMacroReferences(keymap.macros),\n getBehaviorReferences(keymap.behaviors)\n ), 'ref')\n\n const duplicates = Object.values(nodesByRef).reduce((duplicates, nodes) => {\n if (nodes.length > 1) {\n duplicates.push(nodes)\n }\n\n return duplicates\n }, [])\n\n return { duplicates }\n}\n\nfunction sanityCheckDeprecations (keymap) {\n const resetBindings = [\n ...keymap.layers.reduce((deprecations, layer, i) => {\n layer.properties.bindings?.parsed?.forEach((binding, j) => {\n if (binding.value === '&reset') {\n deprecations.push({\n location: `Keymap - Layer #${i} (${layer.name}) - Key position ${j}`,\n path: `keymap.layers[${i}].bindings[${j}]`,\n name: '&reset'\n })\n }\n })\n\n return deprecations\n }, []),\n ...keymap.macros.reduce((deprecations, macro, i) => {\n macro.properties.bindings.parsed.forEach((binding, j) => {\n if (binding.value === '&reset') {\n deprecations.push({\n location: `Macros - Macro #${i} (${macro.name}) - Binding position ${j}`,\n path: `keymap.macros[${i}].properties.bindings[${j}].parsed`,\n name: '&reset'\n })\n }\n })\n\n return deprecations\n }, []),\n ...keymap.combos.reduce((deprecations, combos, i) => {\n combos.properties.bindings.parsed.forEach((binding, j) => {\n if (binding.value === '&reset') {\n deprecations.push({\n location: `Combos - Combo #${i} (${combos.name})`,\n path: `keymap.combos[${i}].bindings[${j}]`,\n name: '&reset'\n })\n }\n })\n\n return deprecations\n }, []),\n ...keymap.behaviors.reduce((deprecations, behavior, i) => {\n // TODO: should I try to handle this more generically?\n // Not all behaviors will have bindings, not all behaviors will be actual\n // ZMK behaviors that the editor can recognize, which means there may not\n // be a parsed `bindings` property to inspect.\n // Additionally, by only looking for `bindings` we're ignoring the layer\n // node's `sensor-bindings` property.\n behavior.properties.bindings?.parsed?.forEach((binding, j) => {\n if (binding.value === '&reset' || binding === '&reset') {\n deprecations.push({\n location: `Behaviors - Behavior #${i} (${behavior.name}) - Bind position ${j}`,\n path: `keymap.behaviors[${i}].parsed.bindings[${j}].parsed`,\n name: '&reset'\n })\n }\n })\n\n return deprecations\n }, [])\n ]\n\n return { resetBindings }\n}\n\nfunction getLayerNodeNames (layers) {\n return layers.map((layer, i) => ({\n location: `Keymap - Layer #${i} (${layer.name})`,\n path: `keymap.layers[${i}]`,\n name: selectName(layer)\n }))\n}\n\nfunction getLayerLabels (layers) {\n return layers.reduce((labels, layer, i) => {\n const label = selectLabel(layer)\n if (label) {\n labels.push({\n location: `Keymap - Layer #${i} (${layer.name})`,\n path: `keymap.layers[${i}].label`,\n label\n })\n }\n\n return labels\n }, [])\n}\n\nfunction getComboNodeNames (combos) {\n return combos.map((combo, i) => ({\n location: `Combos - Combo #${i} (${combo.name})`,\n path: `combos[${i}].name`,\n name: combo.name\n }))\n}\n\nfunction getMacroNodeNames (macros) {\n return macros.map((macro, i) => ({\n location: `Macros - Macro #${i} (${selectName(macro)})`,\n path: `macros[${i}].name`,\n name: selectName(macro)\n }))\n}\n\nfunction getMacroLabels (macros) {\n return macros.reduce((labels, macro, i) => {\n if (macro.label) {\n labels.push({\n location: `Macros - Macro #${i} (${selectLabel(macro)}) - Label`,\n path: `macros[${i}].label`,\n label: selectLabel(macro)\n })\n }\n\n return labels\n }, [])\n}\n\nfunction getMacroReferences (macros) {\n return macros.map((macro, i) => ({\n location: `Macros > Macro #${i} (${selectBind(macro)})`,\n path: `macros[${i}].name`,\n ref: selectBind(macro)\n }))\n}\n\nfunction getBehaviorNodeNames (behaviors) {\n return behaviors.map((behavior, i) => ({\n location: `Behaviors - Behavior #${i} (${selectBind(behavior)}) - Name`,\n path: `behaviors[${i}].name`,\n name: selectName(behavior)\n }))\n}\n\nfunction getBehaviorLabels (behaviors) {\n return behaviors.reduce((labels, behavior, i) => {\n const label = selectLabel(behavior)\n const ref = selectBind(behavior)\n if (label) {\n labels.push({\n location: `Behaviors - Behavior #${i} (${ref}) - Label`,\n path: `behaviors[${i}].label`,\n label\n })\n }\n\n return labels\n }, [])\n}\n\nfunction getBehaviorReferences (behaviors) {\n return behaviors.map((behavior, i) => ({\n location: `Behaviors - Behavior #${i} (${selectBind(behavior)}) - Bind`,\n path: `behaviors[${i}].bind`,\n ref: selectBind(behavior)\n }))\n}\n","import compact from 'lodash/compact'\nimport { Fragment, lazy, Suspense, useContext, useMemo, useState } from 'react'\nimport { useSelector } from 'react-redux'\n\nimport Context from './Context'\nimport * as keymapProptypes from './keymapPropTypes'\nimport styles from './styles.module.css'\nimport { sanityCheck } from './Warnings/sanity-checks'\nimport { LayoutContext } from '../Contexts/Layout'\n\nconst Behaviors = lazy(() => import('./Behaviors/Behaviors'))\nconst ComboEditor = lazy(() => import('./Combos/ComboEditor'))\nconst LayerEditor = lazy(() => import('./Layers/LayerEditor'))\nconst MacroEditor = lazy(() => import('./Macros/MacroEditor'))\nconst Warnings = lazy(() => import('./Warnings/Warnings'))\n\n// import github from '../Sources/Github/api'\n\n// function useFeatures () {\n// const [features, setFeatures] = useState({ betaFeatures: [] })\n// useEffect(() => {\n// (async function () {\n// setFeatures(await github.fetchAvailableFeatures())\n// })()\n// }, [setFeatures])\n\n// return features\n// }\n\n// import LayoutEditor from './Layout/LayoutEditor'\n\nfunction Tabs ({ text, tabs, defaultTab, children }) {\n const [activeTab, setActiveTab] = useState(defaultTab)\n\n return (\n <>\n <h3 style={{ display: 'inline' }}>{text}</h3>\n <ul className={styles.editorModeTabs}>\n {tabs.map(({ name: tab, tabClasses = [] }, i) => (\n <li\n key={i}\n onClick={() => setActiveTab(i)}\n className={compact([\n activeTab === i && styles.activeEditTab,\n ...tabClasses\n ]).join(' ')}\n >\n {tab}\n </li>\n ))}\n </ul>\n <Suspense>\n {children[activeTab]}\n </Suspense>\n </>\n )\n}\n\nconst selectKeymap = state => state.keyboard.keymap\n\nfunction Keyboard (props) {\n const keymap = useSelector(selectKeymap)\n const { layout } = useContext(LayoutContext)\n const sanityChecks = useMemo(() => sanityCheck(keymap, layout), [keymap, layout])\n const warningCount = useMemo(() => {\n const { nodeNames, nodeLabels, nodeReferences, deprecations, layoutMissingPositions } = sanityChecks\n return (\n nodeNames.duplicates.length +\n nodeNames.redefined.length +\n nodeNames.passwordMacros.length +\n nodeLabels.duplicates.length +\n nodeReferences.duplicates.length +\n deprecations.resetBindings.length +\n layoutMissingPositions.length\n )\n }, [sanityChecks])\n\n const tabs = compact([\n { name: 'layers', component: <LayerEditor /> },\n { name: 'combos', component: <ComboEditor /> },\n { name: 'macros', component: <MacroEditor /> },\n { name: <span className={styles.beta}>behaviors</span>, component: <Behaviors /> },\n warningCount > 0 && ({\n name: `warnings (${warningCount})`,\n tabClasses: [styles.warningTab],\n component: <Warnings sanityChecks={sanityChecks} />\n })\n ])\n\n const defaultTab = 0\n\n return (\n <Context keymap={keymap}>\n <Tabs text=\"Editor mode:\" tabs={tabs} defaultTab={defaultTab}>\n {tabs.map((tab, i) => (\n <Fragment key={i}>\n {tab.component}\n </Fragment>\n ))}\n </Tabs>\n </Context>\n )\n}\n\nKeyboard.propTypes = {\n keymap: keymapProptypes.keymap\n}\n\nexport default Keyboard\n","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import Icon from './Common/Icon'\n\nimport style from './styles.module.css'\n\nconst repositoryUrl = 'https://github.com/nickcoutsos/keymap-editor'\n\nexport default function GitHubLink () {\n return (\n <div className={style.wrapper}>\n <label>Need help? Open an issue:</label>\n <a className={style.githubLink} target=\"_blank\" rel=\"noreferrer\" href={repositoryUrl}>\n <Icon collection=\"brands\" name=\"github\" />/nickcoutsos/keymap-editor\n </a>\n </div>\n )\n}\n","import PropTypes from 'prop-types'\n\nimport DialogBox from '../Common/DialogBox'\nimport Icon from '../Common/Icon'\nimport Modal from '../Common/Modal'\n\nconst styles = {\n description: {\n fontStyle: 'italic',\n fontSize: '90%'\n }\n}\n\nfunction Settings (props) {\n const { settings, onUpdate, onClose } = props\n\n function handleUpdateSetting (key, value) {\n onUpdate({ ...settings, [key]: value })\n }\n\n return (\n <Modal onDismiss={onClose}>\n <DialogBox onDismiss={onClose}>\n <h1>Settings</h1>\n\n <h2>Keycode glyphs</h2>\n\n <h3>\n <label htmlFor=\"enable-unicode-glyphs\">\n <input\n id=\"enable-unicode-glyphs\"\n type=\"checkbox\"\n checked={settings.unicodeGlyphs}\n onChange={e => (\n handleUpdateSetting('unicodeGlyphs', e.target.checked)\n )}\n />\n Use Unicode Glyphs\n </label>\n </h3>\n <p style={styles.description}>\n Use unicode glyphs for visual representations of keycodes\n like <code>Enter</code> (⮐), <code>Right Arrow</code> (⏵), etc. You\n can disable this if the symbols don't render correctly.\n </p>\n\n <h3>\n <label htmlFor=\"platform-specific-glyphs\">\n Platform specific glyphs\n <select\n id=\"platform-specific-glyphs\"\n value={settings.platformGlyphs || 'auto'}\n onChange={e => (\n handleUpdateSetting('platformGlyphs', e.target.value)\n )}\n >\n <option value=\"auto\">Automatic</option>\n <option value=\"win\">Windows</option>\n <option value=\"mac\">macOS</option>\n </select>\n </label>\n </h3>\n <p style={styles.description}>\n Render symbols specific to your platform. E.g., render left/right meta\n key as <Icon name=\"windows fa-brands\" /> for Windows, or\n ⌘ for macOS.\n </p>\n </DialogBox>\n </Modal>\n )\n}\n\nSettings.propTypes = {\n settings: PropTypes.object.isRequired,\n onUpdate: PropTypes.func.isRequired,\n onClose: PropTypes.func.isRequired\n}\n\nSettings.defaultProps = {\n settings: {}\n}\n\nexport default Settings\n","import DialogBox from '../Common/DialogBox'\nimport Modal from '../Common/Modal'\nimport { KeymapLayoutResources } from './support'\n\nfunction SuggestAutoLayoutTweak (props) {\n return (\n <Modal>\n <DialogBox {...props}>\n <h2>This layout was Auto-Generated</h2>\n <p>\n Hi there! There wasn't a layout definition to accompany your keymap\n file, so the keymap editor tried to generate one automatically in a\n last-ditch effort to help you get into the app.\n </p>\n <p>\n This layout definition was (or will be) saved when you first save\n keymap changes with the keymap editor, so remember that if there are\n any tweaks you'd like to make to improve it you can do so by editing\n the <code>info.json</code> file.\n </p>\n {KeymapLayoutResources}\n </DialogBox>\n </Modal>\n )\n}\n\nSuggestAutoLayoutTweak.propTypes = {}\n\nexport default SuggestAutoLayoutTweak\n","import PropTypes from 'prop-types'\n\nimport DialogBox from '../Common/DialogBox'\nimport Modal from '../Common/Modal'\nimport { GeneralHelpOfferCopy } from './support'\n\nfunction KeymapBindingsUsePreprocessorMacros (props) {\n const { onDismiss } = props\n\n return (\n <Modal>\n <DialogBox onDismiss={onDismiss}>\n <h2>Could not parse keymap</h2>\n <p>\n It looks like some bindings in your keymap are using custom pre-processor\n macros which isn't supported by the Keymap Editor. These macros make\n it difficult both to resolve bindings to behaviors and parameters, as\n well as to generate modified keymap code that is consistent with your\n original intentions.\n </p>\n <p>\n Please either continue editing your keymap by hand with these helpers\n or if you would like to use this editor, rewrite the keymap to use\n ZMK's syntax directly.\n </p>\n {GeneralHelpOfferCopy}\n </DialogBox>\n </Modal>\n )\n}\n\nKeymapBindingsUsePreprocessorMacros.propTypes = {\n onDismiss: PropTypes.func.isRequired\n}\n\nexport default KeymapBindingsUsePreprocessorMacros\n","import PropTypes from 'prop-types'\n\nimport DialogBox from '../Common/DialogBox'\nimport Modal from '../Common/Modal'\nimport { GeneralHelpOfferCopy } from './support'\n\nfunction KeymapParsingFailed (props) {\n const { onDismiss } = props\n\n return (\n <Modal>\n <DialogBox onDismiss={onDismiss}>\n <h2>Could not parse keymap</h2>\n <p>\n Something went wrong while trying to parse your keymap. It's hard to\n say what exactly, because I wasn't expecting this.\n </p>\n <p>\n A common occurrence here is keymaps using a variety of pre-processor\n macros to define layers/combos/etc.\n </p>\n {GeneralHelpOfferCopy}\n </DialogBox>\n </Modal>\n )\n}\n\nKeymapParsingFailed.propTypes = {\n onDismiss: PropTypes.func.isRequired\n}\n\nexport default KeymapParsingFailed\n","import PropTypes from 'prop-types'\n\nimport DialogBox from '../Common/DialogBox'\nimport Modal from '../Common/Modal'\n\nfunction KeymapUsingMiryoku (props) {\n const { onDismiss } = props\n\n return (\n <Modal>\n <DialogBox onDismiss={onDismiss}>\n <h2>Could not parse Miryoku keymap</h2>\n <p>\n It looks like your keyboard is built using Miryoku to manage the\n configuration and keymap. Parsing and editing keymaps that use this\n syntax is unsupported by the Keymap Editor.\n </p>\n <p>\n Please either continue editing your keymap by hand with these helpers\n or if you would like to use this editor, rewrite the keymap to use\n ZMK's syntax directly.\n </p>\n </DialogBox>\n </Modal>\n )\n}\n\nKeymapUsingMiryoku.propTypes = {\n onDismiss: PropTypes.func.isRequired\n}\n\nexport default KeymapUsingMiryoku\n","import PropTypes from 'prop-types'\n\nimport DialogBox from '../Common/DialogBox'\nimport Modal from '../Common/Modal'\nimport { GitHubIssuesLink } from './support'\n\nfunction MissingRootNode (props) {\n const { onDismiss } = props\n\n return (\n <Modal>\n <DialogBox onDismiss={onDismiss}>\n <h2>Could not parse keymap</h2>\n <p>\n Missing devicetree root node.\n </p>\n <p>\n The keymap editor was unable to find a devicetree root node in your\n keymap. This means that either something is wrong with the parser or\n something is wrong with your keymap's syntax.\n </p>\n <p>\n If you've been using the keymap editor succesfully up to now it's\n possible that it has introduced an error in the keymap file. Please\n reach out for support at {GitHubIssuesLink}.\n </p>\n </DialogBox>\n </Modal>\n )\n}\n\nMissingRootNode.propTypes = {\n onDismiss: PropTypes.func.isRequired\n}\n\nexport default MissingRootNode\n","import PropTypes from 'prop-types'\n\nimport DialogBox from '../Common/DialogBox'\nimport Modal from '../Common/Modal'\n\nfunction ZmkNodefreeConfig (props) {\n const { onDismiss } = props\n\n return (\n <Modal>\n <DialogBox onDismiss={onDismiss}>\n <h2>Could not parse keymap</h2>\n <p>\n Detected use of <code>zmk-nodefree-config</code>\n </p>\n <p>\n It looks like your keymap is built using helper functions from the\n zmk-nodefree-config library to replace devicetree syntax. Parsing and\n editing keymaps that use this syntax is unsupported by the Keymap\n Editor.\n </p>\n <p>\n Please either continue editing your keymap by hand with these helpers\n or if you would like to use this editor, rewrite the keymap to use\n ZMK's syntax directly.\n </p>\n </DialogBox>\n </Modal>\n )\n}\n\nZmkNodefreeConfig.propTypes = {\n onDismiss: PropTypes.func.isRequired\n}\n\nexport default ZmkNodefreeConfig\n","import compact from 'lodash/compact'\nimport * as config from '../config'\n\nexport const sourceChoices = compact([\n config.enableDemo && {\n id: 'demo',\n name: 'Demo Keyboard',\n description: 'Play around with a sample keymap'\n },\n config.enableLocal && {\n id: 'local',\n name: 'Local',\n description: 'Hello, me',\n collapsible: false\n },\n config.enableGitHub && {\n id: 'github',\n name: 'GitHub',\n description: 'Integrate with a GitHub repo, leveraging GitHub actions to compile firmware',\n collapsible: true\n },\n config.enableClipboard && {\n id: 'clipboard',\n name: 'Clipboard',\n description: 'Read and write keymap data directly from your clipboard',\n isBeta: true\n },\n config.enableFileSystem && window.showOpenFilePicker && {\n id: 'filesystem',\n name: 'File System',\n description: 'Read and write keymap files on your local filesystem',\n isBeta: true\n }\n])\n\nconst selectedSource = localStorage.getItem('selectedSource')\nconst onlySource = sourceChoices.length === 1 ? sourceChoices[0].id : null\n\nexport const defaultSource = onlySource || (\n sourceChoices.find(source => source.id === selectedSource)\n ? selectedSource\n : sourceChoices[0].id\n)\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import classNames from 'classnames'\nimport find from 'lodash/find'\nimport PropTypes from 'prop-types'\nimport { lazy, Suspense, useCallback, useEffect, useRef, useState } from 'react'\n\nimport Icon from '../Common/Icon'\nimport useClickOutsideHandler from '../Common/hooks/use-click-outside-handler'\nimport useToggle from '../Common/hooks/use-toggle'\nimport SuggestAutoLayoutTweak from '../Dialogs/SuggestAutoLayoutTweak'\nimport { Button, Select } from './Controls'\nimport { getErrorDialog } from './errors'\nimport { sourceChoices, defaultSource } from './sources'\nimport styles from './styles.module.css'\nimport { useSelector } from 'react-redux'\n\nconst LocalPicker = lazy(() => import('./Local/Picker'))\nconst DemoPicker = lazy(() => import('./Demo/Picker'))\nconst GithubPicker = lazy(() => import('./Github/Picker'))\nconst ClipboardPicker = lazy(() => import('./Clipboard/Picker'))\nconst FileSystemPicker = lazy(() => import('./FileSystem/FileSystemPicker'))\n\nconst keyboardSelector = state => state.keyboard\n\nfunction KeyboardPicker (props) {\n const { onSelect } = props\n const wrapperRef = useRef()\n const keyboard = useSelector(keyboardSelector)\n const [source, setSource] = useState(defaultSource)\n const [{ autoGenerated }, setLayoutInfo] = useState({ autoGenerated: false })\n const [showDialog, setShowDialog] = useState(null)\n const closeDialog = useCallback(() => setShowDialog(null), [setShowDialog])\n const [isExpanded, , setExpanded, setCompact] = useToggle(true)\n const showLayoutHelp = useCallback(() => {\n setShowDialog({\n component: SuggestAutoLayoutTweak,\n onClose: closeDialog\n })\n }, [setShowDialog, closeDialog])\n\n const selectedSource = find(sourceChoices, { id: source })\n\n useClickOutsideHandler(wrapperRef, setCompact, (\n selectedSource?.collapsible === true &&\n keyboard &&\n isExpanded\n ))\n\n const handleSelectSource = useCallback(choice => {\n onSelect({ source: choice.id, keyboard: null })\n setSource(choice.id)\n }, [setSource, onSelect])\n\n const handleKeyboardSelected = useCallback(function (event) {\n const { warningFlags = [] } = event.keymap\n const { autoGenerated = false } = event.layoutMetadata || {}\n const error = getErrorDialog(warningFlags)\n\n if (error) {\n setShowDialog({ component: error, onClose: closeDialog })\n onSelect({ source, keyboard: null })\n return\n }\n\n setLayoutInfo({ autoGenerated })\n onSelect({ source, ...event })\n }, [onSelect, source, setShowDialog, closeDialog])\n\n const handleError = useCallback(function ({ dialog, dialogProps }) {\n setShowDialog({ component: dialog, dialogProps, onClose: closeDialog })\n onSelect({ source, keyboard: null })\n }, [setShowDialog, closeDialog, onSelect, source])\n\n useEffect(() => {\n localStorage.setItem('selectedSource', source)\n }, [source])\n\n return (\n <div\n ref={wrapperRef}\n className={classNames(styles.wrapper, { [styles.compact]: !isExpanded })}\n >\n {isExpanded && (\n <Select\n label=\"Source\"\n value={selectedSource}\n options={sourceChoices}\n onChange={handleSelectSource}\n getOptionLabel={option => option.name}\n getOptionValue={option => option.id}\n formatOptionLabel={(option, { context }) => (\n context === 'value'\n ? option.name\n : (\n <>\n <div>{option.name}{option.isBeta && <Beta />}</div>\n <div className={styles.sourceDescription}><sub>{option.description}</sub></div>\n </>\n )\n )}\n />\n )}\n\n {showDialog?.component && <showDialog.component {...showDialog.dialogProps || {}} onDismiss={showDialog.onClose} />}\n\n <Suspense>\n {source === 'local' && <LocalPicker onError={handleError} onSelect={handleKeyboardSelected} />}\n {source === 'demo' && <DemoPicker onSelect={handleKeyboardSelected} />}\n {source === 'github' && (\n <GithubPicker\n expanded={isExpanded}\n onSelect={handleKeyboardSelected}\n onError={handleError}\n onExpand={setExpanded}\n />\n )}\n {source === 'clipboard' && <ClipboardPicker onSelect={handleKeyboardSelected} onError={handleError} />}\n {source === 'filesystem' && <FileSystemPicker onSelect={handleKeyboardSelected} onError={handleError} />}\n </Suspense>\n\n {autoGenerated && (\n <Button onClick={showLayoutHelp}>\n <Icon name=\"warning\" /> Layout wrong?\n </Button>\n )}\n </div>\n )\n}\n\nfunction Beta () {\n const style = {\n color: 'white',\n backgroundColor: 'var(--error-highlight)',\n fontSize: '12px',\n fontWeight: 'bold',\n padding: '1px 3px',\n margin: '2px',\n borderRadius: '6px',\n verticalAlign: 'top'\n }\n return (\n <span style={style}>beta</span>\n )\n}\n\nKeyboardPicker.propTypes = {\n onSelect: PropTypes.func.isRequired\n}\n\nexport default KeyboardPicker\n","import { useEffect } from 'react'\n\nexport default function useClickOutsideHandler (ref, callback, enabled = true) {\n useEffect(() => {\n if (enabled) {\n const handleClick = event => {\n const isInDocument = document.body.contains(event.target)\n const isInWrapper = ref.current.contains(event.target)\n if (isInDocument && !isInWrapper) {\n callback()\n }\n }\n\n document.body.addEventListener('click', handleClick)\n return () => document.body.removeEventListener('click', handleClick)\n }\n }, [ref, enabled, callback])\n}\n","import KeymapBindingsUsePreprocessorMacros from '../Dialogs/KeymapBindingsUsePreprocessorMacros'\nimport KeymapParsingFailed from '../Dialogs/KeymapParsingFailed'\nimport KeymapUsingMiryoku from '../Dialogs/KeymapUsingMiryoku'\nimport MissingRootNode from '../Dialogs/MissingRootNode'\nimport ZmkNodefreeConfig from '../Dialogs/ZmkNodefreeConfig'\n\nexport function getErrorDialog (warningFlags) {\n switch (warningFlags[0]) {\n case 'USING_ZMK_NODEFREE_MACROS':\n return ZmkNodefreeConfig\n case 'USING_MIRYOKU_DTSI':\n return KeymapUsingMiryoku\n case 'USING_NON_ZMK_MACRO':\n return KeymapBindingsUsePreprocessorMacros\n case 'KEYMAP_PARSING_FAILED':\n return KeymapParsingFailed\n case 'MISSING_ROOT_NODE':\n return MissingRootNode\n default:\n return null\n }\n}\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./unexpected-error.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./unexpected-error.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import PropTypes from 'prop-types'\n\nimport { apiBaseUrl } from '../config'\nimport Link from '../Common/Link'\nimport Modal from '../Common/Modal'\nimport DialogBox from '../Common/DialogBox'\nimport IconButton from '../Common/IconButton'\n\nimport styles from './unexpected-error.module.css'\nimport { useEffect, useState } from 'react'\n\nfunction formatStackFrame (frame) {\n return ` ${frame.fileName}:${frame.lineNumber}:${frame.columnNumber}`\n}\n\nfunction formatErrorText (error, stack = []) {\n return `\n${error.name}\n\n${error.message}\n\n${stack.map(formatStackFrame).join('\\n')}\n`.trim()\n}\n\nconst newGithubIssue = (\n <Link external href=\"https://github.com/nickcoutsos/keymap-editor/issues/new\">\n new issue\n </Link>\n)\n\nasync function reportError (error, stacktrace) {\n const url = `${apiBaseUrl}/v2/events/client-errors`\n const body = JSON.stringify({\n error: error.toString(),\n stacktrace\n })\n\n const response = await fetch(url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body\n })\n\n if (!response.ok) {\n console.error('Failed to submit error report', response)\n }\n}\n\nfunction UnexpectedError ({ error }) {\n const [stack, setStack] = useState([])\n const [formattedError, setFormattedError] = useState('')\n const [copied, setCopied] = useState(false)\n\n useEffect(() => {\n async function parseStack () {\n const StackTrace = await import('stacktrace-js')\n const stacktrace = await StackTrace.fromError(error)\n setStack(stacktrace)\n reportError(error, stacktrace)\n }\n\n parseStack()\n }, [setStack, error])\n\n useEffect(() => {\n setFormattedError(formatErrorText(error, stack))\n }, [error, stack])\n\n useEffect(() => {\n if (copied) {\n setTimeout(() => {\n setCopied(false)\n }, 3000)\n }\n }, [copied, setCopied])\n\n function copyErrorText () {\n const backTicks = '```'\n const text = `${backTicks}\\n${formattedError}\\n${backTicks}`\n navigator.clipboard.writeText(text)\n .then(() => setCopied(true))\n }\n\n return (\n <Modal>\n <DialogBox dismissText={false} style={{ maxWidth: '700px' }}>\n <h2>Unexpected error</h2>\n <p>\n Something unexpected happened and the keymap editor app cannot\n recover. Please consider taking a moment to open a {newGithubIssue}\n with the details below to help me investigate and improve the app.\n </p>\n <div className={styles.stackTrace}>\n <pre>{formattedError}</pre>\n <IconButton\n icon=\"copy\"\n title=\"Copy error text\"\n className={styles.button}\n onClick={copyErrorText}\n />\n {copied && (\n <div className={styles.copyMessage}>Copied!</div>\n )}\n </div>\n </DialogBox>\n </Modal>\n )\n}\n\nUnexpectedError.propTypes = {\n error: PropTypes.instanceOf(Error).isRequired\n}\n\nexport default UnexpectedError\n","import React from 'react'\nimport UnexpectedError from './Dialogs/UnexpectedError'\n\nexport default class ErrorBoundary extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n error: null\n }\n }\n\n static getDerivedStateFromError (error) {\n return { error }\n }\n\n render () {\n const { children } = this.props\n const { error } = this.state\n\n if (error) {\n return <UnexpectedError error={error} />\n }\n\n return children\n }\n}\n","import PropTypes from 'prop-types'\n\nimport DialogBox from '../Common/DialogBox'\nimport Modal from '../Common/Modal'\nimport { GitHubIssuesLink } from './support'\n\nfunction KeymapSaveFailed (props) {\n const { onDismiss } = props\n return (\n <Modal>\n <DialogBox onDismiss={onDismiss}>\n <h2>Failed to save keymap changes</h2>\n <p>\n Sorry, an unexpected error occurred while trying to save your keymap.\n </p>\n <p>\n Please try again or raise an issue if the problem persists and I'll\n try to work it out with you. Seriously I can only get this right if I\n know what's wrong, and in some cases that comes down to people using\n this editor in more advanced ways than I myself have.\n </p>\n <p>\n {GitHubIssuesLink}\n </p>\n </DialogBox>\n </Modal>\n )\n}\n\nKeymapSaveFailed.propTypes = {\n onDismiss: PropTypes.func.isRequired\n}\n\nexport default KeymapSaveFailed\n","import '@fortawesome/fontawesome-free/css/all.min.css'\n\nimport { useCallback, useEffect } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\n\nimport './App.css'\nimport { SettingsContext } from './providers'\n\nimport IconButton from './Common/IconButton'\nimport Keyboard from './Keyboard/Keyboard'\nimport GitHubLink from './GitHubLink'\nimport Settings from './Dialogs/Settings'\nimport SourcePicker from './Sources/SourcePicker'\nimport github from './Sources/Github/api'\n\nimport ErrorBoundary from './ErrorBoundary'\nimport KeymapSaveFailed from './Dialogs/KeymapSaveFailed'\nimport { DefinitionsContextProvider } from './Contexts/Definitions'\nimport { LayoutContextProvider } from './Contexts/Layout'\n\nfunction App () {\n const state = useSelector(state => state)\n const dispatch = useDispatch()\n const {\n sourceOther,\n keyboard,\n saveError,\n theme,\n settingsVisible,\n experimentalSettings\n } = state\n\n // useEffect(() => {\n // (async function () {\n // console.log('loading devicetree parser')\n // const { getParser } = await import('devicetree')\n // const parser = await getParser()\n // const tree = parser.parse('/ {};')\n // console.log(tree, tree.rootNode.toString())\n // })()\n // }, [])\n\n useEffect(() => {\n if (!sourceOther?.github) {\n dispatch({ type: 'GITHUB_BUILD_UPDATE', build: null })\n return\n }\n\n function handler (run) {\n if (run.head_branch === sourceOther.github.branch) {\n dispatch({ type: 'GITHUB_BUILD_UPDATE', build: run })\n }\n }\n\n ;(async function () {\n const { repository, branch } = sourceOther.github\n handler(await github.fetchBuildStatus(repository, branch))\n })()\n\n github.on('build-update', handler)\n return () => github.off('build-update', handler)\n }, [sourceOther, dispatch])\n\n const handleKeyboardSelected = useCallback(function (event) {\n const { source, layout, keymap, sensors = [], ...other } = event\n\n if (!keymap) {\n dispatch({ type: 'CLEAR_KEYBOARD_SELECTION' })\n return\n }\n\n dispatch({\n type: 'SELECT_KEYBOARD',\n source,\n sourceOther: other,\n layout,\n keymap,\n sensors\n })\n }, [dispatch])\n\n const handleUpdateSettings = useCallback(function (settings) {\n dispatch({ type: 'SETTINGS_UPDATE', settings })\n }, [dispatch])\n\n const openSettingsDialog = useCallback(\n () => dispatch({ type: 'SETTINGS_OPEN' }),\n [dispatch]\n )\n\n return (\n <>\n <ErrorBoundary>\n <SettingsContext.Provider value={{\n settings: experimentalSettings,\n openSettingsDialog\n }}>\n <SourcePicker onSelect={handleKeyboardSelected} />\n\n <div id=\"settings-bar\">\n <IconButton\n id=\"light-mode\"\n title=\"Toggle theme\"\n icon={{\n light: 'sun',\n dark: 'moon',\n system: 'circle-half-stroke'\n }[theme] || 'circle-half-stroke'}\n onClick={() => dispatch({ type: 'CYCLE_THEME' })}\n />\n\n <IconButton\n id=\"settings-button\"\n icon=\"cog\"\n onClick={openSettingsDialog}\n />\n {settingsVisible && (\n <Settings\n settings={experimentalSettings}\n onUpdate={handleUpdateSettings}\n onClose={() => dispatch({ type: 'SETTINGS_CLOSE' })}\n />\n )}\n </div>\n\n <DefinitionsContextProvider>\n {keyboard && (\n <LayoutContextProvider layout={keyboard.layout}>\n <Keyboard\n keymap={keyboard.keymap}\n sensors={keyboard.sensors}\n />\n </LayoutContextProvider>\n )}\n {saveError && (\n <KeymapSaveFailed onDismiss={() => dispatch({ type: 'CLEAR_SAVE_ERROR' })} />\n )}\n </DefinitionsContextProvider>\n </SettingsContext.Provider>\n </ErrorBoundary>\n <GitHubLink />\n\n {/* <div style={{\n position: 'absolute',\n bottom: '10px',\n left: '50%',\n transform: 'translateX(-50%)'\n }}>\n <Icon name=\"warning\" style={{ color: 'gold', backgroundColor: '#555', padding: '6px', margin: '5px', borderRadius: '100%' }} />\n <Link external href=\"https://www.githubstatus.com/incidents/rcnl10p4hywg\">\n Note: Experiencing GitHub API issues, keymap loading/saving may fail\n </Link>\n </div> */}\n </>\n )\n}\n\nexport default App\n","import cloneDeep from 'lodash/cloneDeep'\nimport get from 'lodash/get'\nimport pick from 'lodash/pick'\n\nimport { stripLegacyProperties } from './keymap'\n\nfunction init () {\n const settings = JSON.parse(\n localStorage.getItem('experimental-settings') || '{}'\n )\n\n return {\n definitions: null,\n source: null,\n sourceOther: null,\n keyboard: null,\n _unmodifiedKeymap: null,\n saving: null,\n saveError: null,\n settingsVisible: null,\n commitDialogOpen: false,\n theme: JSON.parse(localStorage.getItem('theme' || '\"system\"')),\n experimentalSettings: {\n unicodeGlyphs: get(settings, 'unicodeGlyphs', true),\n platformGlyphs: get(settings, 'platformGlyphs', 'auto'),\n enableBehaviorEditing: get(settings, 'enableBehaviorEditing', false)\n },\n latestBuild: null\n }\n}\n\nexport const INITIAL_STATE = init()\n\nexport default function reducer (state, action) {\n const { type } = action\n\n switch (type) {\n case 'INITIALIZE':\n return init()\n\n case 'DEFINITIONS_SET':\n return { ...state, definitions: action.definitions }\n\n case 'CLEAR_KEYBOARD_SELECTION':\n return { ...state, keyboard: null }\n\n case 'SELECT_KEYBOARD':\n return selectKeyboard(state, action)\n\n case 'COMMIT_DIALOG_OPEN':\n return { ...state, commitDialogOpen: true }\n\n case 'COMMIT_DIALOG_CLOSE':\n return { ...state, commitDialogOpen: false }\n\n case 'GITHUB_BUILD_UPDATE':\n return { ...state, latestBuild: action.build }\n\n case 'KEYMAP_SAVE_START':\n return { ...state, saving: true, saveError: false }\n\n case 'KEYMAP_SAVE_SUCCESS':\n return keymapSaveSuccess(state, action)\n\n case 'KEYMAP_SAVE_FAILURE':\n return {\n ...state,\n saving: false,\n saveError: true\n }\n\n case 'CLEAR_SAVE_ERROR':\n return { ...state, saveError: null }\n\n case 'SETTINGS_OPEN':\n return { ...state, settingsVisible: true }\n\n case 'SETTINGS_CLOSE':\n return { ...state, settingsVisible: false }\n\n case 'SETTINGS_UPDATE':\n localStorage.setItem('experimental-settings', JSON.stringify(action.settings))\n return { ...state, experimentalSettings: action.settings }\n\n case 'CYCLE_THEME':\n return cycleTheme(state, action)\n\n default:\n return state\n }\n}\n\n// Here we can adapt the payload to account for API changes\nfunction selectKeyboard (state, action) {\n const { keyboard } = state\n const newKeyboardState = pick(action, ['layout', 'keymap', 'sensors'])\n\n stripLegacyProperties(newKeyboardState.keymap)\n\n return {\n ...state,\n source: action.source,\n sourceOther: action.sourceOther,\n keyboard: { ...keyboard, ...newKeyboardState },\n _unmodifiedKeymap: cloneDeep(newKeyboardState.keymap)\n }\n}\n\nfunction keymapSaveSuccess (state, action) {\n const newKeymapState = { ...action.keymap }\n\n stripLegacyProperties(newKeymapState)\n\n return {\n ...state,\n saving: false,\n unsaved: false,\n keyboard: {\n ...state.keyboard,\n keymap: newKeymapState\n },\n _unmodifiedKeymap: newKeymapState\n }\n}\n\nfunction cycleTheme (state, action) {\n const themes = ['light', 'dark', 'system']\n const index = themes.indexOf(state.theme)\n const theme = themes.at((index + 1) % themes.length)\n localStorage.setItem('theme', `\"${theme}\"`)\n document.body.dataset.theme = theme\n return { ...state, theme }\n}\n","import { combineReducers, configureStore } from '@reduxjs/toolkit'\n\nimport appReducer, { INITIAL_STATE } from './appReducer'\nimport layersReducer from './Keyboard/Layers/layersSlice'\nimport combosReducer from './Keyboard/Combos/combosSlice'\nimport macrosReducer from './Keyboard/Macros/macrosSlice'\nimport behaviorsReducer from './Keyboard/Behaviors/behaviorsSlice'\n\nconst keyboardReducer = combineReducers({\n layout: (state = []) => state,\n sensors: (state = []) => state,\n keymap: combineReducers({\n warningFlags: (state = []) => state,\n defines: (state = []) => state,\n headers: (state = []) => state,\n chosen: (state = {}) => state,\n behaviors: behaviorsReducer,\n layers: layersReducer,\n combos: combosReducer,\n macros: macrosReducer\n })\n})\n\nfunction rootReducer (state, action) {\n const newState = appReducer(state, action)\n return {\n ...newState,\n keyboard: newState.keyboard && {\n ...newState.keyboard,\n ...keyboardReducer(newState.keyboard, action)\n }\n }\n}\n\nconst store = configureStore({\n reducer: rootReducer,\n preloadedState: INITIAL_STATE\n})\n\nexport default store\n","import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport { Provider } from 'react-redux'\n\nimport './index.css'\nimport App from './App'\n\nimport { INITIAL_STATE } from './appReducer'\nimport store from './store'\n\ndocument.body.dataset.theme = INITIAL_STATE.theme\n\nconst root = ReactDOM.createRoot(document.getElementById('app-root'))\n\nroot.render(\n <React.StrictMode>\n <Provider store={store}>\n <App />\n </Provider>\n </React.StrictMode>\n)\n","import map from 'lodash/map'\n\nconst DEFAULT_SIZE = 65\nconst DEFAULT_PADDING = 5\n\nexport function getComputedParams (position, size, rotation = {}) {\n return {\n x: position.x * (DEFAULT_SIZE + DEFAULT_PADDING),\n y: position.y * (DEFAULT_SIZE + DEFAULT_PADDING),\n u: size.u * DEFAULT_SIZE + DEFAULT_PADDING * (size.u - 1),\n h: size.h * DEFAULT_SIZE + DEFAULT_PADDING * (size.h - 1),\n rx: (position.x - (rotation.x || position.x)) * -(DEFAULT_SIZE + DEFAULT_PADDING),\n ry: (position.y - (rotation.y || position.y)) * -(DEFAULT_SIZE + DEFAULT_PADDING),\n a: rotation.a || 0\n }\n}\n\nexport function getKeyStyles (position, size, rotation) {\n const { x, y, u, h, a, rx, ry } = getComputedParams(position, size, rotation)\n\n return {\n top: `${y}px`,\n left: `${x}px`,\n width: `${u}px`,\n height: `${h}px`,\n transformOrigin: `${rx}px ${ry}px`,\n transform: `rotate(${a || 0}deg)`\n }\n}\n\nexport function transformKeyPolygon (position, size, rotation) {\n const { x, y, u, h, a, rx, ry } = getComputedParams(position, size, rotation)\n\n const points = [\n { x: 0, y: 0 },\n { x: u, y: 0 },\n { x: u, y: h },\n { x: 0, y: h }\n ]\n\n function translate (point) {\n return {\n x: point.x + x,\n y: point.y + y\n }\n }\n\n function rotate (point) {\n const x = point.x - rx\n const y = point.y - ry\n const angle = Math.PI * a / 180\n\n return {\n x: rx + x * Math.cos(angle) - y * Math.sin(angle),\n y: ry + y * Math.cos(angle) + x * Math.sin(angle)\n }\n }\n\n return points.map(rotate).map(translate)\n}\n\nexport function getKeyBoundingBox (position, size, rotation) {\n const transformed = transformKeyPolygon(position, size, rotation)\n const xValues = map(transformed, 'x')\n const yValues = map(transformed, 'y')\n const min = {\n x: Math.min(...xValues),\n y: Math.min(...yValues)\n }\n const max = {\n x: Math.max(...xValues),\n y: Math.max(...yValues)\n }\n\n return { min, max }\n}\n","import compact from 'lodash/compact'\n\nfunction shortestAlias (aliases) {\n return [...aliases]\n .sort((a, b) => a.length - b.length)[0]\n}\n\nconst fnPattern = /^(.+?)\\((code)\\)$/\n\nexport function normalizeZmkKeycodes (keycodes) {\n return keycodes.reduce((keycodes, keycode) => {\n const { description, context, symbol, faIcon, modifiers = [] } = keycode\n const aliases = keycode.names.filter(name => !name.match(fnPattern))\n const name = shortestAlias(aliases)\n const fnCode = keycode.names.map(name => name.match(fnPattern)).filter(v => !!v)[0]\n const base = {\n name,\n aliases,\n description,\n context,\n faIcon,\n symbol: symbol || name,\n modifiers,\n params: []\n }\n\n for (const code of aliases) {\n keycodes.push(Object.assign({}, base, {\n code,\n isModifier: !!fnCode\n }))\n }\n\n if (fnCode) {\n keycodes.push(Object.assign({}, base, {\n code: fnCode[1],\n params: fnCode[2].split(',')\n }))\n }\n\n return keycodes\n }, [])\n}\n\nexport function getMergedGlyphs (glyphs, options) {\n return compact([\n glyphs.basic,\n options.unicode && glyphs.unicode,\n options.platform === 'mac' && glyphs.platforms.mac,\n options.platform === 'win' && glyphs.platforms.win\n ]).reduce((glyphs, collection) => {\n for (const overlay of collection) {\n const aliases = overlay.names.filter(name => !name.match(fnPattern))\n const name = shortestAlias(aliases)\n\n if (!glyphs[name]) {\n glyphs[name] = {}\n }\n\n glyphs[name].symbol = glyphs[name].symbol || overlay.symbol\n glyphs[name].faIcon = glyphs[name].faIcon || overlay.faIcon\n }\n return glyphs\n }, {})\n}\n","import find from 'lodash/find'\nimport get from 'lodash/get'\nimport pick from 'lodash/pick'\n\nexport function stripLegacyProperties (keymap) {\n keymap.layers = keymap.layers.map(layer => (\n pick(layer, ['index', 'name', 'labels', 'properties'])\n ))\n\n keymap.combos = keymap.combos.map(combo => (\n pick(combo, ['index', 'name', 'labels', 'properties'])\n ))\n\n keymap.behaviors = keymap.behaviors.map(behavior => (\n pick(behavior, ['index', 'name', 'labels', 'properties', 'params'])\n ))\n\n keymap.macros = keymap.macros.map(macro => (\n pick(macro, ['index', 'name', 'labels', 'properties'])\n ))\n}\n\nexport function getBindingSlots (binding, behaviorParameters) {\n const { value, params } = binding\n const base = behaviorParameters[value] || []\n const additional = getAdditionalParams(params, base)\n return [...base, ...additional]\n}\n\nfunction getAdditionalParams (parsedParams, slots) {\n const firstParsedParam = get(parsedParams, '[0]', {})\n const firstSlot = get(slots, '[0]')\n\n if (firstSlot?.enum) {\n const match = { code: firstParsedParam.value }\n const source = find(firstSlot.enum, match)\n if (source?.additionalParams) {\n return source.additionalParams\n }\n }\n\n return []\n}\n","import { createContext } from 'react'\n\nexport const SearchContext = createContext({\n getSearchTargets: null\n})\n\nexport const SettingsContext = createContext({\n settings: null,\n openSettingsDialog: null\n})\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root {\\n --bg: white;\\n --bg-rgb: 255,255,255;\\n --fg: black;\\n\\t--dark-red: #910e0e;\\n\\t--dark-blue: #6d99c6;\\n --error-highlight: rgb(179, 60, 60);\\n --selection: rgb(60, 179, 113);\\n --hover-selection: rgba(60, 179, 113, 0.85);\\n --delete: rgb(179, 60, 72);\\n --delete-faint: rgba(179, 60, 72, 0.6);\\n --link: royalblue;\\n --link-hover: #6d99c6;\\n --key-bg-base: #f2f2f2;\\n --key-bg-hover: white;\\n --key-bg-highlight: sandybrown;\\n --key-color-base: hsl(0, 0%, 30%);\\n --key-color-extreme: #313131;\\n --key-color-hover: white;\\n --code-bg: rgba(0, 0, 0, 0.15);\\n}\\nhtml {\\n font-family: sans-serif;\\n}\\nhtml, body {\\n\\twidth: 100vw;\\n\\theight: 100vh;\\n\\toverflow: auto;\\n\\tpadding: 0;\\n\\tmargin: 0;\\n background-color: var(--bg);\\n color: var(--fg);\\n\\n transition: 300ms ease-in-out;\\n transition-property: color, background-color, border-color;\\n}\\n\\nh1, h2, h3, h4, h5, h6 {\\n font-family: Quicksand, avenir, sans-serif;\\n}\\n\\nbody[data-theme=\\\"dark\\\"] {\\n color-scheme: dark;\\n --fg: white;\\n --bg: hsl(211, 31.9%, 13%);\\n --bg-rgb: 17,34,51;\\n --dialog-bg: hsl(210, 30%, 17%);\\n --key-bg-base: hsl(208.2, 23%, 25%);\\n --key-color-base: hsl(0, 0%, 90%);\\n --key-color-extreme: #e7e7e7;\\n}\\n@media (prefers-color-scheme: dark) {\\n body[data-theme=\\\"system\\\"] {\\n color-scheme: dark;\\n --fg: white;\\n --bg: hsl(211, 31.9%, 13%);\\n --bg-rgb: 17,34,51;\\n --dialog-bg: hsl(210, 30%, 17%);\\n --key-bg-base: hsl(208.2, 23%, 25%);\\n --key-color-base: hsl(0, 0%, 90%);\\n --key-color-extreme: #e7e7e7;\\n }\\n}\\n\\nh3 {\\n margin-bottom: 10px;\\n}\\n\\na { color: var(--link) }\\na:hover { color: var(--link-hover) }\\n\\ncode {\\n background-color: var(--code-bg);\\n border-radius: 2px;\\n padding: .15em .3em .05em;\\n}\\n\\np {\\n line-height: 1.3rem;\\n}\\n\\n#actions {\\n\\tposition: absolute;\\n display: flex;\\n\\tbottom: 5px;\\n\\tright: 5px;\\n gap: 4px;\\n}\\n\\n#actions button {\\n display: inline-block;\\n cursor: pointer;\\n background-color: var(--hover-selection);\\n color: white;\\n\\n font-size: 16px;\\n border: none;\\n border-radius: 5px;\\n padding: 0 5px;\\n\\n height: 30px;\\n line-height: 30px;\\n vertical-align: middle;\\n}\\n\\n#actions button[disabled] {\\n filter: saturate(20%);\\n opacity: .5;\\n cursor: not-allowed;\\n}\\n\\n#settings-bar {\\n position: absolute;\\n z-index: 5;\\n top: 10px;\\n right: 10px;\\n}\\n\\n#settings-bar button {\\n background: none;\\n color: var(--fg);\\n border: none;\\n}\\n#settings-bar button:hover {\\n cursor: pointer;\\n color: royalblue;\\n}\\n\\n.fa-delete-right::before {\\n content: '\\\\f55a';\\n transform-origin: center;\\n transform: rotateZ(180deg);\\n display: inline-block;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/App.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,WAAW;EACX,qBAAqB;EACrB,WAAW;CACZ,mBAAmB;CACnB,oBAAoB;EACnB,mCAAmC;EACnC,8BAA8B;EAC9B,2CAA2C;EAC3C,0BAA0B;EAC1B,sCAAsC;EACtC,iBAAiB;EACjB,qBAAqB;EACrB,sBAAsB;EACtB,qBAAqB;EACrB,8BAA8B;EAC9B,iCAAiC;EACjC,4BAA4B;EAC5B,wBAAwB;EACxB,8BAA8B;AAChC;AACA;EACE,uBAAuB;AACzB;AACA;CACC,YAAY;CACZ,aAAa;CACb,cAAc;CACd,UAAU;CACV,SAAS;EACR,2BAA2B;EAC3B,gBAAgB;;EAEhB,6BAA6B;EAC7B,0DAA0D;AAC5D;;AAEA;EACE,0CAA0C;AAC5C;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,0BAA0B;EAC1B,kBAAkB;EAClB,+BAA+B;EAC/B,mCAAmC;EACnC,iCAAiC;EACjC,4BAA4B;AAC9B;AACA;EACE;IACE,kBAAkB;IAClB,WAAW;IACX,0BAA0B;IAC1B,kBAAkB;IAClB,+BAA+B;IAC/B,mCAAmC;IACnC,iCAAiC;IACjC,4BAA4B;EAC9B;AACF;;AAEA;EACE,mBAAmB;AACrB;;AAEA,IAAI,mBAAmB;AACvB,UAAU,yBAAyB;;AAEnC;EACE,gCAAgC;EAChC,kBAAkB;EAClB,yBAAyB;AAC3B;;AAEA;EACE,mBAAmB;AACrB;;AAEA;CACC,kBAAkB;EACjB,aAAa;CACd,WAAW;CACX,UAAU;EACT,QAAQ;AACV;;AAEA;EACE,qBAAqB;EACrB,eAAe;EACf,wCAAwC;EACxC,YAAY;;EAEZ,eAAe;EACf,YAAY;EACZ,kBAAkB;EAClB,cAAc;;EAEd,YAAY;EACZ,iBAAiB;EACjB,sBAAsB;AACxB;;AAEA;EACE,qBAAqB;EACrB,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;EAClB,UAAU;EACV,SAAS;EACT,WAAW;AACb;;AAEA;EACE,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;AACd;AACA;EACE,eAAe;EACf,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;EAChB,wBAAwB;EACxB,0BAA0B;EAC1B,qBAAqB;AACvB\",\"sourcesContent\":[\":root {\\n --bg: white;\\n --bg-rgb: 255,255,255;\\n --fg: black;\\n\\t--dark-red: #910e0e;\\n\\t--dark-blue: #6d99c6;\\n --error-highlight: rgb(179, 60, 60);\\n --selection: rgb(60, 179, 113);\\n --hover-selection: rgba(60, 179, 113, 0.85);\\n --delete: rgb(179, 60, 72);\\n --delete-faint: rgba(179, 60, 72, 0.6);\\n --link: royalblue;\\n --link-hover: #6d99c6;\\n --key-bg-base: #f2f2f2;\\n --key-bg-hover: white;\\n --key-bg-highlight: sandybrown;\\n --key-color-base: hsl(0, 0%, 30%);\\n --key-color-extreme: #313131;\\n --key-color-hover: white;\\n --code-bg: rgba(0, 0, 0, 0.15);\\n}\\nhtml {\\n font-family: sans-serif;\\n}\\nhtml, body {\\n\\twidth: 100vw;\\n\\theight: 100vh;\\n\\toverflow: auto;\\n\\tpadding: 0;\\n\\tmargin: 0;\\n background-color: var(--bg);\\n color: var(--fg);\\n\\n transition: 300ms ease-in-out;\\n transition-property: color, background-color, border-color;\\n}\\n\\nh1, h2, h3, h4, h5, h6 {\\n font-family: Quicksand, avenir, sans-serif;\\n}\\n\\nbody[data-theme=\\\"dark\\\"] {\\n color-scheme: dark;\\n --fg: white;\\n --bg: hsl(211, 31.9%, 13%);\\n --bg-rgb: 17,34,51;\\n --dialog-bg: hsl(210, 30%, 17%);\\n --key-bg-base: hsl(208.2, 23%, 25%);\\n --key-color-base: hsl(0, 0%, 90%);\\n --key-color-extreme: #e7e7e7;\\n}\\n@media (prefers-color-scheme: dark) {\\n body[data-theme=\\\"system\\\"] {\\n color-scheme: dark;\\n --fg: white;\\n --bg: hsl(211, 31.9%, 13%);\\n --bg-rgb: 17,34,51;\\n --dialog-bg: hsl(210, 30%, 17%);\\n --key-bg-base: hsl(208.2, 23%, 25%);\\n --key-color-base: hsl(0, 0%, 90%);\\n --key-color-extreme: #e7e7e7;\\n }\\n}\\n\\nh3 {\\n margin-bottom: 10px;\\n}\\n\\na { color: var(--link) }\\na:hover { color: var(--link-hover) }\\n\\ncode {\\n background-color: var(--code-bg);\\n border-radius: 2px;\\n padding: .15em .3em .05em;\\n}\\n\\np {\\n line-height: 1.3rem;\\n}\\n\\n#actions {\\n\\tposition: absolute;\\n display: flex;\\n\\tbottom: 5px;\\n\\tright: 5px;\\n gap: 4px;\\n}\\n\\n#actions button {\\n display: inline-block;\\n cursor: pointer;\\n background-color: var(--hover-selection);\\n color: white;\\n\\n font-size: 16px;\\n border: none;\\n border-radius: 5px;\\n padding: 0 5px;\\n\\n height: 30px;\\n line-height: 30px;\\n vertical-align: middle;\\n}\\n\\n#actions button[disabled] {\\n filter: saturate(20%);\\n opacity: .5;\\n cursor: not-allowed;\\n}\\n\\n#settings-bar {\\n position: absolute;\\n z-index: 5;\\n top: 10px;\\n right: 10px;\\n}\\n\\n#settings-bar button {\\n background: none;\\n color: var(--fg);\\n border: none;\\n}\\n#settings-bar button:hover {\\n cursor: pointer;\\n color: royalblue;\\n}\\n\\n.fa-delete-right::before {\\n content: '\\\\f55a';\\n transform-origin: center;\\n transform: rotateZ(180deg);\\n display: inline-block;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"body {\\n margin: 0;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\ncode {\\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\\n monospace;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/index.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,SAAS;EACT,mCAAmC;EACnC,kCAAkC;AACpC;;AAEA;EACE;aACW;AACb\",\"sourcesContent\":[\"body {\\n margin: 0;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\ncode {\\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\\n monospace;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ZpdcqlK42OntJos3eGw0 {\\n background-color: var(--dialog-bg, var(--bg));\\n padding: 20px 40px;\\n max-width: 500px;\\n box-shadow: 0px 10px 25px rgba(0, 0, 0, 0.4);\\n border-radius: 3px;\\n border: 0.25px solid rgba(0, 0, 0, 0.4);\\n}\\n\\n.ZpdcqlK42OntJos3eGw0 > h2:first-child {\\n margin-top: 0;\\n}\\n\\n.ZpdcqlK42OntJos3eGw0 p, .ZpdcqlK42OntJos3eGw0 ul {\\n font-family: sans-serif;\\n line-height: 1.3rem;\\n}\\n\\n.Mywg1Gw3bKMc9Kd9qcEO {\\n display: block;\\n margin: 0 auto;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/Common/dialog-box.module.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,6CAA6C;EAC7C,kBAAkB;EAClB,gBAAgB;EAChB,4CAA4C;EAC5C,kBAAkB;EAClB,uCAAuC;AACzC;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,uBAAuB;EACvB,mBAAmB;AACrB;;AAEA;EACE,cAAc;EACd,cAAc;AAChB\",\"sourcesContent\":[\".dialog {\\n background-color: var(--dialog-bg, var(--bg));\\n padding: 20px 40px;\\n max-width: 500px;\\n box-shadow: 0px 10px 25px rgba(0, 0, 0, 0.4);\\n border-radius: 3px;\\n border: 0.25px solid rgba(0, 0, 0, 0.4);\\n}\\n\\n.dialog > h2:first-child {\\n margin-top: 0;\\n}\\n\\n.dialog p, .dialog ul {\\n font-family: sans-serif;\\n line-height: 1.3rem;\\n}\\n\\n.button {\\n display: block;\\n margin: 0 auto;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"dialog\": \"ZpdcqlK42OntJos3eGw0\",\n\t\"button\": \"Mywg1Gw3bKMc9Kd9qcEO\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".J2R67AQeCK_aC1DKFCMJ {\\n margin: 4px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/Common/link.module.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,WAAW;AACb\",\"sourcesContent\":[\".icon {\\n margin: 4px;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"icon\": \"J2R67AQeCK_aC1DKFCMJ\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".Q5veln3l3laVkuNPs5dQ {\\n position: relative;\\n}\\n\\n.Q5veln3l3laVkuNPs5dQ pre {\\n white-space: pre;\\n background-color: var(--code-bg);\\n color: var(--key-color-base);\\n padding: 10px;\\n max-height: 320px;\\n overflow: scroll;\\n}\\n\\n.dqzgBwJ1Rq0XgMqeAKe7 {\\n position: absolute;\\n top: 15px;\\n right: 15px;\\n padding: 4px 7px;\\n color: var(--key-color-base);\\n background-color: var(--key-bg-base);\\n border: 1px solid var(--key-color-base);\\n border-radius: 3px;\\n}\\n.dqzgBwJ1Rq0XgMqeAKe7:hover {\\n cursor: pointer;\\n background-color: var(--selection);\\n border: var(--selection);\\n color: white;\\n}\\n\\n.YV2lKA9hbJpP4Vs4udw8 {\\n position: absolute;\\n top: 5px;\\n right: 0px;\\n background-color: var(--selection);\\n color: white;\\n padding: 10px;\\n border-radius: 2px;\\n cursor: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/Dialogs/unexpected-error.module.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,kBAAkB;AACpB;;AAEA;EACE,gBAAgB;EAChB,gCAAgC;EAChC,4BAA4B;EAC5B,aAAa;EACb,iBAAiB;EACjB,gBAAgB;AAClB;;AAEA;EACE,kBAAkB;EAClB,SAAS;EACT,WAAW;EACX,gBAAgB;EAChB,4BAA4B;EAC5B,oCAAoC;EACpC,uCAAuC;EACvC,kBAAkB;AACpB;AACA;EACE,eAAe;EACf,kCAAkC;EAClC,wBAAwB;EACxB,YAAY;AACd;;AAEA;EACE,kBAAkB;EAClB,QAAQ;EACR,UAAU;EACV,kCAAkC;EAClC,YAAY;EACZ,aAAa;EACb,kBAAkB;EAClB,YAAY;AACd\",\"sourcesContent\":[\".stackTrace {\\n position: relative;\\n}\\n\\n.stackTrace pre {\\n white-space: pre;\\n background-color: var(--code-bg);\\n color: var(--key-color-base);\\n padding: 10px;\\n max-height: 320px;\\n overflow: scroll;\\n}\\n\\n.button {\\n position: absolute;\\n top: 15px;\\n right: 15px;\\n padding: 4px 7px;\\n color: var(--key-color-base);\\n background-color: var(--key-bg-base);\\n border: 1px solid var(--key-color-base);\\n border-radius: 3px;\\n}\\n.button:hover {\\n cursor: pointer;\\n background-color: var(--selection);\\n border: var(--selection);\\n color: white;\\n}\\n\\n.copyMessage {\\n position: absolute;\\n top: 5px;\\n right: 0px;\\n background-color: var(--selection);\\n color: white;\\n padding: 10px;\\n border-radius: 2px;\\n cursor: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"stackTrace\": \"Q5veln3l3laVkuNPs5dQ\",\n\t\"button\": \"dqzgBwJ1Rq0XgMqeAKe7\",\n\t\"copyMessage\": \"YV2lKA9hbJpP4Vs4udw8\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".D0BH39_6wwiclW8aKuoi {\\n display: inline-flex;\\n list-style-type: none;\\n margin: 0;\\n padding: 0;\\n}\\n.D0BH39_6wwiclW8aKuoi li {\\n cursor: pointer;\\n padding: 5px;\\n margin: 5px;\\n border-radius: 4px;\\n font-variant: small-caps;\\n}\\n.D0BH39_6wwiclW8aKuoi li.xwo6V7AWCmy8CDvuTwRg {\\n background-color: var(--selection);\\n color: white;\\n cursor: default;\\n}\\n\\n.nVbskEoaGxWf96qEgtxz {\\n position: absolute;\\n}\\n.nVbskEoaGxWf96qEgtxz > * {\\n width: 100% !important;\\n height: 100% !important;\\n}\\n\\n.Ae2s0eqIVhebTEcJGc3F {\\n position: relative\\n}\\n.Ae2s0eqIVhebTEcJGc3F::after {\\n content: 'beta';\\n background-color: var(--error-highlight);\\n color: white;\\n font-size: 12px;\\n font-weight: bold;\\n padding: 1px 3px;\\n border-radius: 6px;\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(60%, -60%) rotate(13deg);\\n}\\n.xwo6V7AWCmy8CDvuTwRg .Ae2s0eqIVhebTEcJGc3F::after {\\n background-color: white;\\n color: var(--selection);\\n border: 1px solid var(--selection);\\n}\\n.sQQ0qFjHptJbQ8qvuXGa {\\n color: var(--error-highlight);\\n}\\n.D0BH39_6wwiclW8aKuoi li.xwo6V7AWCmy8CDvuTwRg.sQQ0qFjHptJbQ8qvuXGa {\\n background-color: var(--error-highlight);\\n color: white;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/Keyboard/styles.module.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,oBAAoB;EACpB,qBAAqB;EACrB,SAAS;EACT,UAAU;AACZ;AACA;EACE,eAAe;EACf,YAAY;EACZ,WAAW;EACX,kBAAkB;EAClB,wBAAwB;AAC1B;AACA;EACE,kCAAkC;EAClC,YAAY;EACZ,eAAe;AACjB;;AAEA;EACE,kBAAkB;AACpB;AACA;EACE,sBAAsB;EACtB,uBAAuB;AACzB;;AAEA;EACE;AACF;AACA;EACE,eAAe;EACf,wCAAwC;EACxC,YAAY;EACZ,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,kBAAkB;EAClB,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,6CAA6C;AAC/C;AACA;EACE,uBAAuB;EACvB,uBAAuB;EACvB,kCAAkC;AACpC;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,wCAAwC;EACxC,YAAY;AACd\",\"sourcesContent\":[\".editorModeTabs {\\n display: inline-flex;\\n list-style-type: none;\\n margin: 0;\\n padding: 0;\\n}\\n.editorModeTabs li {\\n cursor: pointer;\\n padding: 5px;\\n margin: 5px;\\n border-radius: 4px;\\n font-variant: small-caps;\\n}\\n.editorModeTabs li.activeEditTab {\\n background-color: var(--selection);\\n color: white;\\n cursor: default;\\n}\\n\\n.placer {\\n position: absolute;\\n}\\n.placer > * {\\n width: 100% !important;\\n height: 100% !important;\\n}\\n\\n.beta {\\n position: relative\\n}\\n.beta::after {\\n content: 'beta';\\n background-color: var(--error-highlight);\\n color: white;\\n font-size: 12px;\\n font-weight: bold;\\n padding: 1px 3px;\\n border-radius: 6px;\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(60%, -60%) rotate(13deg);\\n}\\n.activeEditTab .beta::after {\\n background-color: white;\\n color: var(--selection);\\n border: 1px solid var(--selection);\\n}\\n.warningTab {\\n color: var(--error-highlight);\\n}\\n.editorModeTabs li.activeEditTab.warningTab {\\n background-color: var(--error-highlight);\\n color: white;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"editorModeTabs\": \"D0BH39_6wwiclW8aKuoi\",\n\t\"activeEditTab\": \"xwo6V7AWCmy8CDvuTwRg\",\n\t\"placer\": \"nVbskEoaGxWf96qEgtxz\",\n\t\"beta\": \"Ae2s0eqIVhebTEcJGc3F\",\n\t\"warningTab\": \"sQQ0qFjHptJbQ8qvuXGa\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".hY07j_e1kQx0WX5BwG6I {\\n display: flex;\\n flex-direction: row;\\n align-items: end;\\n gap: 5px;\\n margin: 5px;\\n height: 58px;\\n}\\n\\n._0h266lacmB1N_qDdQcy {\\n align-items: center;\\n}\\n\\n.hY07j_e1kQx0WX5BwG6I button {\\n height: 38px;\\n}\\n\\n.xwu_0RR7bcAhL2xRBstH {\\n font-style: italic;\\n max-width: 250px;\\n opacity: 0.6;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/Sources/styles.module.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,aAAa;EACb,mBAAmB;EACnB,gBAAgB;EAChB,QAAQ;EACR,WAAW;EACX,YAAY;AACd;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,YAAY;AACd\",\"sourcesContent\":[\".wrapper {\\n display: flex;\\n flex-direction: row;\\n align-items: end;\\n gap: 5px;\\n margin: 5px;\\n height: 58px;\\n}\\n\\n.compact {\\n align-items: center;\\n}\\n\\n.wrapper button {\\n height: 38px;\\n}\\n\\n.sourceDescription {\\n font-style: italic;\\n max-width: 250px;\\n opacity: 0.6;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"wrapper\": \"hY07j_e1kQx0WX5BwG6I\",\n\t\"compact\": \"_0h266lacmB1N_qDdQcy\",\n\t\"sourceDescription\": \"xwu_0RR7bcAhL2xRBstH\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n._vWNIXMkemQax9rkCJQh {\\n display: inline-block;\\n position: absolute;\\n z-index: 100;\\n bottom: 5px;\\n left: 5px;\\n}\\n\\n._vWNIXMkemQax9rkCJQh label {\\n font-size: 75%;\\n font-style: italic;\\n display: block;\\n padding: 0 10px;\\n}\\n\\n.qiC2NrujE4ebqmHjzq0_ {\\n display: inline-block;\\n font-size: 110%;\\n font-style: italic;\\n background-color: var(--code-bg);\\n border-radius: 20px;\\n padding: 5px 10px;\\n text-decoration: none;\\n\\n color: royalblue;\\n}\\n.qiC2NrujE4ebqmHjzq0_:hover {\\n background-color: royalblue;\\n color: white;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/styles.module.css\"],\"names\":[],\"mappings\":\";AACA;EACE,qBAAqB;EACrB,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,SAAS;AACX;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,qBAAqB;EACrB,eAAe;EACf,kBAAkB;EAClB,gCAAgC;EAChC,mBAAmB;EACnB,iBAAiB;EACjB,qBAAqB;;EAErB,gBAAgB;AAClB;AACA;EACE,2BAA2B;EAC3B,YAAY;AACd\",\"sourcesContent\":[\"\\n.wrapper {\\n display: inline-block;\\n position: absolute;\\n z-index: 100;\\n bottom: 5px;\\n left: 5px;\\n}\\n\\n.wrapper label {\\n font-size: 75%;\\n font-style: italic;\\n display: block;\\n padding: 0 10px;\\n}\\n\\n.githubLink {\\n display: inline-block;\\n font-size: 110%;\\n font-style: italic;\\n background-color: var(--code-bg);\\n border-radius: 20px;\\n padding: 5px 10px;\\n text-decoration: none;\\n\\n color: royalblue;\\n}\\n.githubLink:hover {\\n background-color: royalblue;\\n color: white;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"wrapper\": \"_vWNIXMkemQax9rkCJQh\",\n\t\"githubLink\": \"qiC2NrujE4ebqmHjzq0_\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./styles.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","var map = {\n\t\"./catalog\": [\n\t\t51785\n\t],\n\t\"./catalog.json\": [\n\t\t51785\n\t],\n\t\"./keys_ar\": [\n\t\t73810,\n\t\t6392\n\t],\n\t\"./keys_ar.json\": [\n\t\t73810,\n\t\t6392\n\t],\n\t\"./keys_ar_102\": [\n\t\t78381,\n\t\t8017\n\t],\n\t\"./keys_ar_102.json\": [\n\t\t78381,\n\t\t8017\n\t],\n\t\"./keys_ar_azerty\": [\n\t\t56724,\n\t\t2650\n\t],\n\t\"./keys_ar_azerty.json\": [\n\t\t56724,\n\t\t2650\n\t],\n\t\"./keys_as\": [\n\t\t68045,\n\t\t9082\n\t],\n\t\"./keys_as.json\": [\n\t\t68045,\n\t\t9082\n\t],\n\t\"./keys_az\": [\n\t\t21708,\n\t\t8070\n\t],\n\t\"./keys_az.json\": [\n\t\t21708,\n\t\t8070\n\t],\n\t\"./keys_az_cyrillic\": [\n\t\t7200,\n\t\t8242\n\t],\n\t\"./keys_az_cyrillic.json\": [\n\t\t7200,\n\t\t8242\n\t],\n\t\"./keys_az_standard\": [\n\t\t2498,\n\t\t3647\n\t],\n\t\"./keys_az_standard.json\": [\n\t\t2498,\n\t\t3647\n\t],\n\t\"./keys_ba\": [\n\t\t24745,\n\t\t5332\n\t],\n\t\"./keys_ba.json\": [\n\t\t24745,\n\t\t5332\n\t],\n\t\"./keys_be\": [\n\t\t80468,\n\t\t308\n\t],\n\t\"./keys_be.json\": [\n\t\t80468,\n\t\t308\n\t],\n\t\"./keys_bg\": [\n\t\t87317,\n\t\t2408\n\t],\n\t\"./keys_bg.json\": [\n\t\t87317,\n\t\t2408\n\t],\n\t\"./keys_bg_latin\": [\n\t\t80885,\n\t\t421\n\t],\n\t\"./keys_bg_latin.json\": [\n\t\t80885,\n\t\t421\n\t],\n\t\"./keys_bg_phonetic\": [\n\t\t10220,\n\t\t4595\n\t],\n\t\"./keys_bg_phonetic.json\": [\n\t\t10220,\n\t\t4595\n\t],\n\t\"./keys_bm\": [\n\t\t71350,\n\t\t8956\n\t],\n\t\"./keys_bm.json\": [\n\t\t71350,\n\t\t8956\n\t],\n\t\"./keys_bn\": [\n\t\t99691,\n\t\t1480\n\t],\n\t\"./keys_bn.json\": [\n\t\t99691,\n\t\t1480\n\t],\n\t\"./keys_bn_inscript\": [\n\t\t31658,\n\t\t9142\n\t],\n\t\"./keys_bn_inscript.json\": [\n\t\t31658,\n\t\t9142\n\t],\n\t\"./keys_bo\": [\n\t\t29692,\n\t\t3282\n\t],\n\t\"./keys_bo.json\": [\n\t\t29692,\n\t\t3282\n\t],\n\t\"./keys_bs\": [\n\t\t5396,\n\t\t1315\n\t],\n\t\"./keys_bs.json\": [\n\t\t5396,\n\t\t1315\n\t],\n\t\"./keys_bug\": [\n\t\t15317,\n\t\t4443\n\t],\n\t\"./keys_bug.json\": [\n\t\t15317,\n\t\t4443\n\t],\n\t\"./keys_chr\": [\n\t\t8250,\n\t\t6943\n\t],\n\t\"./keys_chr.json\": [\n\t\t8250,\n\t\t6943\n\t],\n\t\"./keys_chr_phonetic\": [\n\t\t6221,\n\t\t4688\n\t],\n\t\"./keys_chr_phonetic.json\": [\n\t\t6221,\n\t\t4688\n\t],\n\t\"./keys_ckb\": [\n\t\t29448,\n\t\t1936\n\t],\n\t\"./keys_ckb.json\": [\n\t\t29448,\n\t\t1936\n\t],\n\t\"./keys_cs\": [\n\t\t98019,\n\t\t8207\n\t],\n\t\"./keys_cs.json\": [\n\t\t98019,\n\t\t8207\n\t],\n\t\"./keys_cs_programmers\": [\n\t\t7578,\n\t\t3735\n\t],\n\t\"./keys_cs_programmers.json\": [\n\t\t7578,\n\t\t3735\n\t],\n\t\"./keys_cs_qwerty\": [\n\t\t58733,\n\t\t2659\n\t],\n\t\"./keys_cs_qwerty.json\": [\n\t\t58733,\n\t\t2659\n\t],\n\t\"./keys_da\": [\n\t\t81460,\n\t\t6691\n\t],\n\t\"./keys_da.json\": [\n\t\t81460,\n\t\t6691\n\t],\n\t\"./keys_de\": [\n\t\t68013,\n\t\t3359\n\t],\n\t\"./keys_de.json\": [\n\t\t68013,\n\t\t3359\n\t],\n\t\"./keys_de_belgian\": [\n\t\t69798,\n\t\t9619\n\t],\n\t\"./keys_de_belgian.json\": [\n\t\t69798,\n\t\t9619\n\t],\n\t\"./keys_de_belgian_period\": [\n\t\t12991,\n\t\t1808\n\t],\n\t\"./keys_de_belgian_period.json\": [\n\t\t12991,\n\t\t1808\n\t],\n\t\"./keys_de_ibm\": [\n\t\t85155,\n\t\t1507\n\t],\n\t\"./keys_de_ibm.json\": [\n\t\t85155,\n\t\t1507\n\t],\n\t\"./keys_de_swiss\": [\n\t\t57153,\n\t\t6184\n\t],\n\t\"./keys_de_swiss.json\": [\n\t\t57153,\n\t\t6184\n\t],\n\t\"./keys_dsb\": [\n\t\t93859,\n\t\t9616\n\t],\n\t\"./keys_dsb.json\": [\n\t\t93859,\n\t\t9616\n\t],\n\t\"./keys_dsb_extended\": [\n\t\t45816,\n\t\t7686\n\t],\n\t\"./keys_dsb_extended.json\": [\n\t\t45816,\n\t\t7686\n\t],\n\t\"./keys_dv\": [\n\t\t60573,\n\t\t5485\n\t],\n\t\"./keys_dv.json\": [\n\t\t60573,\n\t\t5485\n\t],\n\t\"./keys_dvorak\": [\n\t\t17499,\n\t\t6157\n\t],\n\t\"./keys_dvorak.json\": [\n\t\t17499,\n\t\t6157\n\t],\n\t\"./keys_dvorak_left\": [\n\t\t5085,\n\t\t8793\n\t],\n\t\"./keys_dvorak_left.json\": [\n\t\t5085,\n\t\t8793\n\t],\n\t\"./keys_dvorak_right\": [\n\t\t43474,\n\t\t3362\n\t],\n\t\"./keys_dvorak_right.json\": [\n\t\t43474,\n\t\t3362\n\t],\n\t\"./keys_dyu\": [\n\t\t56817,\n\t\t749\n\t],\n\t\"./keys_dyu.json\": [\n\t\t56817,\n\t\t749\n\t],\n\t\"./keys_dz\": [\n\t\t3461,\n\t\t3893\n\t],\n\t\"./keys_dz.json\": [\n\t\t3461,\n\t\t3893\n\t],\n\t\"./keys_el\": [\n\t\t82182,\n\t\t1545\n\t],\n\t\"./keys_el.json\": [\n\t\t82182,\n\t\t1545\n\t],\n\t\"./keys_el_220\": [\n\t\t74695,\n\t\t3743\n\t],\n\t\"./keys_el_220.json\": [\n\t\t74695,\n\t\t3743\n\t],\n\t\"./keys_el_319\": [\n\t\t43615,\n\t\t4263\n\t],\n\t\"./keys_el_319.json\": [\n\t\t43615,\n\t\t4263\n\t],\n\t\"./keys_el_latin\": [\n\t\t61897,\n\t\t8971\n\t],\n\t\"./keys_el_latin.json\": [\n\t\t61897,\n\t\t8971\n\t],\n\t\"./keys_el_latin_220\": [\n\t\t52401,\n\t\t7603\n\t],\n\t\"./keys_el_latin_220.json\": [\n\t\t52401,\n\t\t7603\n\t],\n\t\"./keys_el_latin_319\": [\n\t\t70286,\n\t\t5821\n\t],\n\t\"./keys_el_latin_319.json\": [\n\t\t70286,\n\t\t5821\n\t],\n\t\"./keys_el_polytonic\": [\n\t\t19430,\n\t\t4296\n\t],\n\t\"./keys_el_polytonic.json\": [\n\t\t19430,\n\t\t4296\n\t],\n\t\"./keys_en_gb\": [\n\t\t85702,\n\t\t7495\n\t],\n\t\"./keys_en_gb.json\": [\n\t\t85702,\n\t\t7495\n\t],\n\t\"./keys_en_gb_extended\": [\n\t\t30206,\n\t\t1343\n\t],\n\t\"./keys_en_gb_extended.json\": [\n\t\t30206,\n\t\t1343\n\t],\n\t\"./keys_en_india\": [\n\t\t28440,\n\t\t8302\n\t],\n\t\"./keys_en_india.json\": [\n\t\t28440,\n\t\t8302\n\t],\n\t\"./keys_es\": [\n\t\t68633,\n\t\t771\n\t],\n\t\"./keys_es.json\": [\n\t\t68633,\n\t\t771\n\t],\n\t\"./keys_es_latin_american\": [\n\t\t67356,\n\t\t6429\n\t],\n\t\"./keys_es_latin_american.json\": [\n\t\t67356,\n\t\t6429\n\t],\n\t\"./keys_es_variation\": [\n\t\t73173,\n\t\t3033\n\t],\n\t\"./keys_es_variation.json\": [\n\t\t73173,\n\t\t3033\n\t],\n\t\"./keys_et\": [\n\t\t76498,\n\t\t7022\n\t],\n\t\"./keys_et.json\": [\n\t\t76498,\n\t\t7022\n\t],\n\t\"./keys_fa\": [\n\t\t76451,\n\t\t8599\n\t],\n\t\"./keys_fa.json\": [\n\t\t76451,\n\t\t8599\n\t],\n\t\"./keys_fa_standard\": [\n\t\t79355,\n\t\t819\n\t],\n\t\"./keys_fa_standard.json\": [\n\t\t79355,\n\t\t819\n\t],\n\t\"./keys_fi\": [\n\t\t36863,\n\t\t8706\n\t],\n\t\"./keys_fi.json\": [\n\t\t36863,\n\t\t8706\n\t],\n\t\"./keys_fi_sami\": [\n\t\t58592,\n\t\t9866\n\t],\n\t\"./keys_fi_sami.json\": [\n\t\t58592,\n\t\t9866\n\t],\n\t\"./keys_fo\": [\n\t\t48622,\n\t\t9586\n\t],\n\t\"./keys_fo.json\": [\n\t\t48622,\n\t\t9586\n\t],\n\t\"./keys_fr\": [\n\t\t50955,\n\t\t7554\n\t],\n\t\"./keys_fr.json\": [\n\t\t50955,\n\t\t7554\n\t],\n\t\"./keys_fr_belgian\": [\n\t\t39330,\n\t\t8855\n\t],\n\t\"./keys_fr_belgian.json\": [\n\t\t39330,\n\t\t8855\n\t],\n\t\"./keys_fr_belgian_period\": [\n\t\t17494,\n\t\t7950\n\t],\n\t\"./keys_fr_belgian_period.json\": [\n\t\t17494,\n\t\t7950\n\t],\n\t\"./keys_fr_canadian_french\": [\n\t\t74301,\n\t\t4491\n\t],\n\t\"./keys_fr_canadian_french.json\": [\n\t\t74301,\n\t\t4491\n\t],\n\t\"./keys_fr_canadian_standard\": [\n\t\t76297,\n\t\t8251\n\t],\n\t\"./keys_fr_canadian_standard.json\": [\n\t\t76297,\n\t\t8251\n\t],\n\t\"./keys_fr_swiss\": [\n\t\t41417,\n\t\t1514\n\t],\n\t\"./keys_fr_swiss.json\": [\n\t\t41417,\n\t\t1514\n\t],\n\t\"./keys_ga\": [\n\t\t47467,\n\t\t8185\n\t],\n\t\"./keys_ga.json\": [\n\t\t47467,\n\t\t8185\n\t],\n\t\"./keys_gd\": [\n\t\t50596,\n\t\t6457\n\t],\n\t\"./keys_gd.json\": [\n\t\t50596,\n\t\t6457\n\t],\n\t\"./keys_gn\": [\n\t\t78996,\n\t\t4289\n\t],\n\t\"./keys_gn.json\": [\n\t\t78996,\n\t\t4289\n\t],\n\t\"./keys_got\": [\n\t\t45327,\n\t\t9893\n\t],\n\t\"./keys_got.json\": [\n\t\t45327,\n\t\t9893\n\t],\n\t\"./keys_gu\": [\n\t\t21372,\n\t\t2787\n\t],\n\t\"./keys_gu.json\": [\n\t\t21372,\n\t\t2787\n\t],\n\t\"./keys_ha\": [\n\t\t28061,\n\t\t2982\n\t],\n\t\"./keys_ha.json\": [\n\t\t28061,\n\t\t2982\n\t],\n\t\"./keys_haw\": [\n\t\t63525,\n\t\t3618\n\t],\n\t\"./keys_haw.json\": [\n\t\t63525,\n\t\t3618\n\t],\n\t\"./keys_he\": [\n\t\t2357,\n\t\t7446\n\t],\n\t\"./keys_he.json\": [\n\t\t2357,\n\t\t7446\n\t],\n\t\"./keys_he_standard\": [\n\t\t58311,\n\t\t7108\n\t],\n\t\"./keys_he_standard.json\": [\n\t\t58311,\n\t\t7108\n\t],\n\t\"./keys_hi\": [\n\t\t55225,\n\t\t6688\n\t],\n\t\"./keys_hi.json\": [\n\t\t55225,\n\t\t6688\n\t],\n\t\"./keys_hi_traditional\": [\n\t\t48923,\n\t\t8119\n\t],\n\t\"./keys_hi_traditional.json\": [\n\t\t48923,\n\t\t8119\n\t],\n\t\"./keys_hu\": [\n\t\t4526,\n\t\t4156\n\t],\n\t\"./keys_hu.json\": [\n\t\t4526,\n\t\t4156\n\t],\n\t\"./keys_hu_101\": [\n\t\t3013,\n\t\t3322\n\t],\n\t\"./keys_hu_101.json\": [\n\t\t3013,\n\t\t3322\n\t],\n\t\"./keys_hy\": [\n\t\t15584,\n\t\t2015\n\t],\n\t\"./keys_hy.json\": [\n\t\t15584,\n\t\t2015\n\t],\n\t\"./keys_hy_phonetic\": [\n\t\t28860,\n\t\t9136\n\t],\n\t\"./keys_hy_phonetic.json\": [\n\t\t28860,\n\t\t9136\n\t],\n\t\"./keys_ig\": [\n\t\t4055,\n\t\t7892\n\t],\n\t\"./keys_ig.json\": [\n\t\t4055,\n\t\t7892\n\t],\n\t\"./keys_is\": [\n\t\t87591,\n\t\t5604\n\t],\n\t\"./keys_is.json\": [\n\t\t87591,\n\t\t5604\n\t],\n\t\"./keys_it\": [\n\t\t24277,\n\t\t4465\n\t],\n\t\"./keys_it.json\": [\n\t\t24277,\n\t\t4465\n\t],\n\t\"./keys_it_142\": [\n\t\t83333,\n\t\t833\n\t],\n\t\"./keys_it_142.json\": [\n\t\t83333,\n\t\t833\n\t],\n\t\"./keys_iu\": [\n\t\t79407,\n\t\t5840\n\t],\n\t\"./keys_iu.json\": [\n\t\t79407,\n\t\t5840\n\t],\n\t\"./keys_iu_latin\": [\n\t\t90290,\n\t\t9176\n\t],\n\t\"./keys_iu_latin.json\": [\n\t\t90290,\n\t\t9176\n\t],\n\t\"./keys_jv\": [\n\t\t83271,\n\t\t6710\n\t],\n\t\"./keys_jv.json\": [\n\t\t83271,\n\t\t6710\n\t],\n\t\"./keys_ka\": [\n\t\t36196,\n\t\t3687\n\t],\n\t\"./keys_ka.json\": [\n\t\t36196,\n\t\t3687\n\t],\n\t\"./keys_ka_ergonomic\": [\n\t\t76892,\n\t\t9698\n\t],\n\t\"./keys_ka_ergonomic.json\": [\n\t\t76892,\n\t\t9698\n\t],\n\t\"./keys_ka_qwerty\": [\n\t\t84211,\n\t\t2621\n\t],\n\t\"./keys_ka_qwerty.json\": [\n\t\t84211,\n\t\t2621\n\t],\n\t\"./keys_khb\": [\n\t\t93128,\n\t\t5842\n\t],\n\t\"./keys_khb.json\": [\n\t\t93128,\n\t\t5842\n\t],\n\t\"./keys_khb_tai_le\": [\n\t\t16011,\n\t\t539\n\t],\n\t\"./keys_khb_tai_le.json\": [\n\t\t16011,\n\t\t539\n\t],\n\t\"./keys_kk\": [\n\t\t81713,\n\t\t951\n\t],\n\t\"./keys_kk.json\": [\n\t\t81713,\n\t\t951\n\t],\n\t\"./keys_kl\": [\n\t\t87006,\n\t\t7303\n\t],\n\t\"./keys_kl.json\": [\n\t\t87006,\n\t\t7303\n\t],\n\t\"./keys_km\": [\n\t\t86151,\n\t\t6794\n\t],\n\t\"./keys_km.json\": [\n\t\t86151,\n\t\t6794\n\t],\n\t\"./keys_km_nida\": [\n\t\t91831,\n\t\t3268\n\t],\n\t\"./keys_km_nida.json\": [\n\t\t91831,\n\t\t3268\n\t],\n\t\"./keys_kn\": [\n\t\t88868,\n\t\t8709\n\t],\n\t\"./keys_kn.json\": [\n\t\t88868,\n\t\t8709\n\t],\n\t\"./keys_ko\": [\n\t\t96130,\n\t\t8427\n\t],\n\t\"./keys_ko.json\": [\n\t\t96130,\n\t\t8427\n\t],\n\t\"./keys_ky\": [\n\t\t49911,\n\t\t9244\n\t],\n\t\"./keys_ky.json\": [\n\t\t49911,\n\t\t9244\n\t],\n\t\"./keys_la_old_italic\": [\n\t\t72596,\n\t\t8438\n\t],\n\t\"./keys_la_old_italic.json\": [\n\t\t72596,\n\t\t8438\n\t],\n\t\"./keys_lb\": [\n\t\t6012,\n\t\t5606\n\t],\n\t\"./keys_lb.json\": [\n\t\t6012,\n\t\t5606\n\t],\n\t\"./keys_lis\": [\n\t\t86353,\n\t\t8945\n\t],\n\t\"./keys_lis.json\": [\n\t\t86353,\n\t\t8945\n\t],\n\t\"./keys_lis_standard\": [\n\t\t70912,\n\t\t4887\n\t],\n\t\"./keys_lis_standard.json\": [\n\t\t70912,\n\t\t4887\n\t],\n\t\"./keys_lo\": [\n\t\t34659,\n\t\t398\n\t],\n\t\"./keys_lo.json\": [\n\t\t34659,\n\t\t398\n\t],\n\t\"./keys_lt\": [\n\t\t92979,\n\t\t7771\n\t],\n\t\"./keys_lt.json\": [\n\t\t92979,\n\t\t7771\n\t],\n\t\"./keys_lt_ibm\": [\n\t\t90075,\n\t\t129\n\t],\n\t\"./keys_lt_ibm.json\": [\n\t\t90075,\n\t\t129\n\t],\n\t\"./keys_lt_standard\": [\n\t\t70040,\n\t\t3746\n\t],\n\t\"./keys_lt_standard.json\": [\n\t\t70040,\n\t\t3746\n\t],\n\t\"./keys_lv\": [\n\t\t25622,\n\t\t1671\n\t],\n\t\"./keys_lv.json\": [\n\t\t25622,\n\t\t1671\n\t],\n\t\"./keys_lv_qwerty\": [\n\t\t70689,\n\t\t6777\n\t],\n\t\"./keys_lv_qwerty.json\": [\n\t\t70689,\n\t\t6777\n\t],\n\t\"./keys_lv_standard\": [\n\t\t68148,\n\t\t9081\n\t],\n\t\"./keys_lv_standard.json\": [\n\t\t68148,\n\t\t9081\n\t],\n\t\"./keys_man\": [\n\t\t95287,\n\t\t1156\n\t],\n\t\"./keys_man.json\": [\n\t\t95287,\n\t\t1156\n\t],\n\t\"./keys_mi\": [\n\t\t97585,\n\t\t9512\n\t],\n\t\"./keys_mi.json\": [\n\t\t97585,\n\t\t9512\n\t],\n\t\"./keys_mk\": [\n\t\t8069,\n\t\t8041\n\t],\n\t\"./keys_mk.json\": [\n\t\t8069,\n\t\t8041\n\t],\n\t\"./keys_ml\": [\n\t\t79302,\n\t\t1547\n\t],\n\t\"./keys_ml.json\": [\n\t\t79302,\n\t\t1547\n\t],\n\t\"./keys_mn\": [\n\t\t78647,\n\t\t389\n\t],\n\t\"./keys_mn.json\": [\n\t\t78647,\n\t\t389\n\t],\n\t\"./keys_mn_phags_pa\": [\n\t\t94641,\n\t\t3194\n\t],\n\t\"./keys_mn_phags_pa.json\": [\n\t\t94641,\n\t\t3194\n\t],\n\t\"./keys_mn_traditional\": [\n\t\t1301,\n\t\t8568\n\t],\n\t\"./keys_mn_traditional.json\": [\n\t\t1301,\n\t\t8568\n\t],\n\t\"./keys_mr\": [\n\t\t28928,\n\t\t2247\n\t],\n\t\"./keys_mr.json\": [\n\t\t28928,\n\t\t2247\n\t],\n\t\"./keys_mt\": [\n\t\t5848,\n\t\t7568\n\t],\n\t\"./keys_mt.json\": [\n\t\t5848,\n\t\t7568\n\t],\n\t\"./keys_mt_101\": [\n\t\t10244,\n\t\t3880\n\t],\n\t\"./keys_mt_101.json\": [\n\t\t10244,\n\t\t3880\n\t],\n\t\"./keys_my\": [\n\t\t14052,\n\t\t5015\n\t],\n\t\"./keys_my.json\": [\n\t\t14052,\n\t\t5015\n\t],\n\t\"./keys_nb\": [\n\t\t56360,\n\t\t4919\n\t],\n\t\"./keys_nb.json\": [\n\t\t56360,\n\t\t4919\n\t],\n\t\"./keys_nb_sami\": [\n\t\t96408,\n\t\t8636\n\t],\n\t\"./keys_nb_sami.json\": [\n\t\t96408,\n\t\t8636\n\t],\n\t\"./keys_ne\": [\n\t\t97192,\n\t\t4892\n\t],\n\t\"./keys_ne.json\": [\n\t\t97192,\n\t\t4892\n\t],\n\t\"./keys_nl\": [\n\t\t37853,\n\t\t6415\n\t],\n\t\"./keys_nl.json\": [\n\t\t37853,\n\t\t6415\n\t],\n\t\"./keys_nl_period\": [\n\t\t80045,\n\t\t2271\n\t],\n\t\"./keys_nl_period.json\": [\n\t\t80045,\n\t\t2271\n\t],\n\t\"./keys_non\": [\n\t\t50248,\n\t\t5991\n\t],\n\t\"./keys_non.json\": [\n\t\t50248,\n\t\t5991\n\t],\n\t\"./keys_nso\": [\n\t\t34757,\n\t\t8307\n\t],\n\t\"./keys_nso.json\": [\n\t\t34757,\n\t\t8307\n\t],\n\t\"./keys_or\": [\n\t\t40914,\n\t\t2383\n\t],\n\t\"./keys_or.json\": [\n\t\t40914,\n\t\t2383\n\t],\n\t\"./keys_pa\": [\n\t\t51095,\n\t\t9989\n\t],\n\t\"./keys_pa.json\": [\n\t\t51095,\n\t\t9989\n\t],\n\t\"./keys_pl\": [\n\t\t91654,\n\t\t8391\n\t],\n\t\"./keys_pl.json\": [\n\t\t91654,\n\t\t8391\n\t],\n\t\"./keys_pl_programmers\": [\n\t\t188,\n\t\t920\n\t],\n\t\"./keys_pl_programmers.json\": [\n\t\t188,\n\t\t920\n\t],\n\t\"./keys_ps\": [\n\t\t65138,\n\t\t6049\n\t],\n\t\"./keys_ps.json\": [\n\t\t65138,\n\t\t6049\n\t],\n\t\"./keys_pt\": [\n\t\t33474,\n\t\t4821\n\t],\n\t\"./keys_pt.json\": [\n\t\t33474,\n\t\t4821\n\t],\n\t\"./keys_pt_abnt\": [\n\t\t84986,\n\t\t1872\n\t],\n\t\"./keys_pt_abnt.json\": [\n\t\t84986,\n\t\t1872\n\t],\n\t\"./keys_pt_abnt2\": [\n\t\t50167,\n\t\t9112\n\t],\n\t\"./keys_pt_abnt2.json\": [\n\t\t50167,\n\t\t9112\n\t],\n\t\"./keys_ro\": [\n\t\t35695,\n\t\t68\n\t],\n\t\"./keys_ro.json\": [\n\t\t35695,\n\t\t68\n\t],\n\t\"./keys_ro_programmers\": [\n\t\t53693,\n\t\t4795\n\t],\n\t\"./keys_ro_programmers.json\": [\n\t\t53693,\n\t\t4795\n\t],\n\t\"./keys_ru\": [\n\t\t62672,\n\t\t8986\n\t],\n\t\"./keys_ru.json\": [\n\t\t62672,\n\t\t8986\n\t],\n\t\"./keys_ru_phonetic\": [\n\t\t48927,\n\t\t7292\n\t],\n\t\"./keys_ru_phonetic.json\": [\n\t\t48927,\n\t\t7292\n\t],\n\t\"./keys_sah\": [\n\t\t75234,\n\t\t7289\n\t],\n\t\"./keys_sah.json\": [\n\t\t75234,\n\t\t7289\n\t],\n\t\"./keys_sat\": [\n\t\t767,\n\t\t9414\n\t],\n\t\"./keys_sat.json\": [\n\t\t767,\n\t\t9414\n\t],\n\t\"./keys_se\": [\n\t\t31828,\n\t\t8019\n\t],\n\t\"./keys_se.json\": [\n\t\t31828,\n\t\t8019\n\t],\n\t\"./keys_se_finland_sweden\": [\n\t\t44292,\n\t\t8699\n\t],\n\t\"./keys_se_finland_sweden.json\": [\n\t\t44292,\n\t\t8699\n\t],\n\t\"./keys_si\": [\n\t\t39915,\n\t\t9707\n\t],\n\t\"./keys_si.json\": [\n\t\t39915,\n\t\t9707\n\t],\n\t\"./keys_sk\": [\n\t\t49999,\n\t\t7803\n\t],\n\t\"./keys_sk.json\": [\n\t\t49999,\n\t\t7803\n\t],\n\t\"./keys_sk_qwerty\": [\n\t\t92153,\n\t\t1720\n\t],\n\t\"./keys_sk_qwerty.json\": [\n\t\t92153,\n\t\t1720\n\t],\n\t\"./keys_sl\": [\n\t\t11998,\n\t\t5715\n\t],\n\t\"./keys_sl.json\": [\n\t\t11998,\n\t\t5715\n\t],\n\t\"./keys_so\": [\n\t\t32727,\n\t\t9193\n\t],\n\t\"./keys_so.json\": [\n\t\t32727,\n\t\t9193\n\t],\n\t\"./keys_sq\": [\n\t\t93752,\n\t\t8173\n\t],\n\t\"./keys_sq.json\": [\n\t\t93752,\n\t\t8173\n\t],\n\t\"./keys_sr\": [\n\t\t45358,\n\t\t2231\n\t],\n\t\"./keys_sr.json\": [\n\t\t45358,\n\t\t2231\n\t],\n\t\"./keys_sr_latin\": [\n\t\t80121,\n\t\t578\n\t],\n\t\"./keys_sr_latin.json\": [\n\t\t80121,\n\t\t578\n\t],\n\t\"./keys_srb\": [\n\t\t929,\n\t\t5354\n\t],\n\t\"./keys_srb.json\": [\n\t\t929,\n\t\t5354\n\t],\n\t\"./keys_sv\": [\n\t\t74243,\n\t\t8649\n\t],\n\t\"./keys_sv.json\": [\n\t\t74243,\n\t\t8649\n\t],\n\t\"./keys_sv_sami\": [\n\t\t26330,\n\t\t4717\n\t],\n\t\"./keys_sv_sami.json\": [\n\t\t26330,\n\t\t4717\n\t],\n\t\"./keys_syr\": [\n\t\t20591,\n\t\t4777\n\t],\n\t\"./keys_syr.json\": [\n\t\t20591,\n\t\t4777\n\t],\n\t\"./keys_syr_phonetic\": [\n\t\t85609,\n\t\t2619\n\t],\n\t\"./keys_syr_phonetic.json\": [\n\t\t85609,\n\t\t2619\n\t],\n\t\"./keys_ta\": [\n\t\t17843,\n\t\t4036\n\t],\n\t\"./keys_ta.json\": [\n\t\t17843,\n\t\t4036\n\t],\n\t\"./keys_te\": [\n\t\t69130,\n\t\t4824\n\t],\n\t\"./keys_te.json\": [\n\t\t69130,\n\t\t4824\n\t],\n\t\"./keys_tg\": [\n\t\t79797,\n\t\t3393\n\t],\n\t\"./keys_tg.json\": [\n\t\t79797,\n\t\t3393\n\t],\n\t\"./keys_th\": [\n\t\t70732,\n\t\t6684\n\t],\n\t\"./keys_th.json\": [\n\t\t70732,\n\t\t6684\n\t],\n\t\"./keys_th_pattachote\": [\n\t\t85219,\n\t\t422\n\t],\n\t\"./keys_th_pattachote.json\": [\n\t\t85219,\n\t\t422\n\t],\n\t\"./keys_tk\": [\n\t\t31794,\n\t\t2275\n\t],\n\t\"./keys_tk.json\": [\n\t\t31794,\n\t\t2275\n\t],\n\t\"./keys_tmh\": [\n\t\t89416,\n\t\t2835\n\t],\n\t\"./keys_tmh.json\": [\n\t\t89416,\n\t\t2835\n\t],\n\t\"./keys_tmh_extended\": [\n\t\t33866,\n\t\t8110\n\t],\n\t\"./keys_tmh_extended.json\": [\n\t\t33866,\n\t\t8110\n\t],\n\t\"./keys_tn\": [\n\t\t79848,\n\t\t4257\n\t],\n\t\"./keys_tn.json\": [\n\t\t79848,\n\t\t4257\n\t],\n\t\"./keys_tr\": [\n\t\t32066,\n\t\t5303\n\t],\n\t\"./keys_tr.json\": [\n\t\t32066,\n\t\t5303\n\t],\n\t\"./keys_tr_f\": [\n\t\t77176,\n\t\t4670\n\t],\n\t\"./keys_tr_f.json\": [\n\t\t77176,\n\t\t4670\n\t],\n\t\"./keys_tt\": [\n\t\t13069,\n\t\t7305\n\t],\n\t\"./keys_tt.json\": [\n\t\t13069,\n\t\t7305\n\t],\n\t\"./keys_tzm\": [\n\t\t93917,\n\t\t814\n\t],\n\t\"./keys_tzm.json\": [\n\t\t93917,\n\t\t814\n\t],\n\t\"./keys_ug\": [\n\t\t29436,\n\t\t3474\n\t],\n\t\"./keys_ug.json\": [\n\t\t29436,\n\t\t3474\n\t],\n\t\"./keys_uk\": [\n\t\t18936,\n\t\t2602\n\t],\n\t\"./keys_uk.json\": [\n\t\t18936,\n\t\t2602\n\t],\n\t\"./keys_uk_enhanced\": [\n\t\t60895,\n\t\t7228\n\t],\n\t\"./keys_uk_enhanced.json\": [\n\t\t60895,\n\t\t7228\n\t],\n\t\"./keys_ur\": [\n\t\t48883,\n\t\t8216\n\t],\n\t\"./keys_ur.json\": [\n\t\t48883,\n\t\t8216\n\t],\n\t\"./keys_us_international\": [\n\t\t61141,\n\t\t2947\n\t],\n\t\"./keys_us_international.json\": [\n\t\t61141,\n\t\t2947\n\t],\n\t\"./keys_uz\": [\n\t\t8196,\n\t\t7080\n\t],\n\t\"./keys_uz.json\": [\n\t\t8196,\n\t\t7080\n\t],\n\t\"./keys_vi\": [\n\t\t88305,\n\t\t7994\n\t],\n\t\"./keys_vi.json\": [\n\t\t88305,\n\t\t7994\n\t],\n\t\"./keys_wo\": [\n\t\t97528,\n\t\t7069\n\t],\n\t\"./keys_wo.json\": [\n\t\t97528,\n\t\t7069\n\t],\n\t\"./keys_yo\": [\n\t\t8962,\n\t\t5998\n\t],\n\t\"./keys_yo.json\": [\n\t\t8962,\n\t\t5998\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 34366;\nmodule.exports = webpackAsyncContext;"],"names":["options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","undefined","DialogBox","props","dismissText","classes","onDismiss","children","rest","className","styles","join","onClick","faCollections","brands","default","regular","light","solid","round","Icon","name","collection","iconProps","groupClass","iconClass","propTypes","PropTypes","defaultProps","IconButton","icon","text","Link","href","external","showExternal","properties","Object","assign","rel","target","isRequired","wrapper","position","top","left","width","height","backgroundColor","backdropFilter","zIndex","display","justifyContent","alignItems","centerOnly","background","pointerEvents","content","Modal","useRef","handleClick","useCallback","e","current","contains","stopPropagation","style","ReactDOM","ref","document","getElementById","useModalState","useState","isOpen","setIsOpen","event","useToggle","initialState","toggleState","setToggleState","state","i","DefinitionsContext","createContext","keycodes","behaviours","behaviors","behaviorBinds","glyphs","selectDefinitions","definitions","DefinitionsContextProvider","useSelector","dispatch","useDispatch","useEffect","Promise","all","loadKeycodes","loadBehaviourBindings","schemas","cloneDeep","bindings","indexed","keyBy","context","none","filter","macros","encoders","byContext","type","Provider","value","behaviorSchemas","behaviorBindings","keycodeGlyphs","normalizeZmkKeycodes","LayoutContext","layout","bindingCount","wrapperDimensions","wrapperStyle","LayoutContextProvider","useMemo","length","getWrapperDimensions","getWrapperStyle","GitHubIssuesLink","GitHubWikiLayoutsLink","layoutToolsLink","DiscordProfileLink","GeneralHelpOfferCopy","KeymapLayoutResources","selectBehaviors","keyboard","keymap","selectNodePhandleArrays","node","compatible","parsed","raw","replace","selectNodeCompatible","schema","keys","reduce","phandleArrays","prop","propSchema","propValues","push","behaviorsSlice","createSlice","reducers","addBehavior","action","payload","behavior","updateBehavior","behaviorIndex","omit","deleteBehavior","splice","extraReducers","builder","addCase","layerIndexChanged","makeLayerIndexChangeReducer","actions","selectCombos","combos","combosSlice","updateComboBinding","comboIndex","updateComboKeypositions","keyPositions","createCombo","labels","params","renameCombo","index","deleteCombo","customizeCombo","combo","comboBindingsReducer","positionMapping","layers","newIndex","makeLayerParamsIterator","selectLayerParamsFromBinding","binding","behaviorParameters","getBindingSlots","layerParams","param","createAction","currentIndex","targetIndex","searchContext","definitionsContext","layerIndices","map","bothBefore","bothAfter","betweenOldAndNew","createLayerIndexMapping","sources","defaultSelectPhandleArrays","selectPhandleArrays","defines","selectedIndex","get","Number","isNaN","toString","_isPlaceholder","DEFAULT_BIND_BEHAVIOUR","selectLayers","layersSlice","createLayer","times","createEmptyBinding","updateLayerMetadata","layerIndex","label","renameLayer","repositionLayer","layer","replacementIndex","deleteLayer","updateKeyBinding","bindIndex","updateSensorBindings","sensorIndex","undefinedStart","indexOf","rebindTransparentToKeyPress","rebindTransparentToNone","rebindNoneToKeypress","rebindNoneToTransparent","rebindEmptyKeypressToTransparent","rebindEmptyKeypressToNone","selectMacros","macrosSlice","addMacro","deleteMacro","updateMacroBindings","customizeMacroOptions","macroIndex","getLayoutPolygons","scale","key","transformKeyPolygon","x","y","u","w","h","rx","ry","a","r","getKeyBoundingBox","max","Math","layoutOrBBox","overrides","bbox","Array","isArray","margin","padding","Control","lineHeight","Button","darkModePreference","window","matchMedia","invertedThemeColors","colors","Select","extraChildren","theme","isDark","matches","fontSize","color","container","baseStyles","menu","components","MenuList","c","isSearchable","primary25","websocketUrl","config","API","url","startsWith","headers","this","token","Authorization","axios","response","status","console","error","emit","initializing","initEvents","installationUrl","URLSearchParams","location","search","beginLoginFlow","setTimeout","localStorage","auth_token","history","replaceState","pathname","_request","data","suspended","installations","installation","suspended_at","warn","username","repositories","repoInstallationMap","bufferedMessages","send","message","socket","readyState","WebSocket","OPEN","log","onopen","Date","shift","flush","setInterval","JSON","stringify","onclose","onerror","err","onmessage","parse","workflow_run","on","fetchAvailableFeatures","removeItem","installationId","find","id","html_url","every","some","repository_selection","repo","encodeURIComponent","full_name","repository","branch","URL","query","set","layouts","info","defaultLayout","preferredLayout","chosen","layoutMetadata","keyboards","defaultKeymap","sensors","isGitHubAuthorized","betaFeatures","features","experimentalSettings","enableBehaviorEditing","method","EventEmitter","api","parseBoolean","val","includes","toLowerCase","apiBaseUrl","process","githubAppName","enableGitHub","enableLocal","enableDemo","enableClipboard","enableFileSystem","useLocaleDefinitions","loadedLocales","setLoadedLocales","locales","acc","header","localeCatalog","loaded","locale","filename","useContext","settings","SettingsContext","localeKeycodes","mergedGlyphs","isMac","navigator","platform","isWin","getMergedGlyphs","unicode","platformGlyphs","extendedBehaviours","customBehaviors","code","mergeBehaviorOverlays","behaviorOverlays","fullList","description","bind","displayName","macro","resolveBehaviorParams","availableLayers","isEmpty","keycodesList","keycode","keycodesIndexed","glyph","aliases","alias","symbol","faIcon","modifiers","behavioursByContext","searchTargets","behaviour","getSearchTargets","enum","option","identifiers","bindShape","sanityCheckPosiitions","row","col","selectName","item","selectBind","selectLabel","getDuplicatesBy","itemsByKey","groupBy","values","group","sanityCheckNodeNames","layerNames","path","comboNames","macroNames","behaviorNames","getBehaviorNodeNames","duplicates","redefined","reservedIdentifiers","passwordMacros","pattern","match","sanityCheckNodeLabels","concat","getBehaviorLabels","sanityCheckNodeReferences","nodesByRef","getBehaviorReferences","nodes","sanityCheckDeprecations","resetBindings","deprecations","forEach","j","Behaviors","lazy","ComboEditor","LayerEditor","MacroEditor","Warnings","Tabs","tabs","defaultTab","activeTab","setActiveTab","tab","tabClasses","compact","Suspense","selectKeymap","Keyboard","sanityChecks","nodeNames","nodeLabels","nodeReferences","layoutMissingPositions","sanityCheckLayout","sanityCheck","warningCount","component","Fragment","keymapProptypes","repositoryUrl","GitHubLink","fontStyle","Settings","onUpdate","onClose","handleUpdateSetting","htmlFor","checked","unicodeGlyphs","onChange","SuggestAutoLayoutTweak","KeymapBindingsUsePreprocessorMacros","KeymapParsingFailed","KeymapUsingMiryoku","MissingRootNode","ZmkNodefreeConfig","sourceChoices","collapsible","isBeta","showOpenFilePicker","selectedSource","getItem","defaultSource","source","LocalPicker","DemoPicker","GithubPicker","ClipboardPicker","FileSystemPicker","keyboardSelector","KeyboardPicker","onSelect","wrapperRef","setSource","autoGenerated","setLayoutInfo","showDialog","setShowDialog","closeDialog","isExpanded","setExpanded","setCompact","showLayoutHelp","callback","enabled","isInDocument","body","isInWrapper","addEventListener","removeEventListener","useClickOutsideHandler","handleSelectSource","choice","handleKeyboardSelected","warningFlags","getErrorDialog","handleError","dialog","dialogProps","setItem","classNames","getOptionLabel","getOptionValue","formatOptionLabel","Beta","onError","expanded","onExpand","fontWeight","borderRadius","verticalAlign","formatStackFrame","frame","fileName","lineNumber","columnNumber","newGithubIssue","reportError","stacktrace","fetch","ok","UnexpectedError","stack","setStack","formattedError","setFormattedError","copied","setCopied","StackTrace","fromError","parseStack","trim","formatErrorText","maxWidth","title","clipboard","writeText","then","Error","ErrorBoundary","React","KeymapSaveFailed","sourceOther","saveError","settingsVisible","github","handler","run","head_branch","build","other","handleUpdateSettings","openSettingsDialog","SourcePicker","dark","system","Definitions","Layout","init","_unmodifiedKeymap","saving","commitDialogOpen","latestBuild","INITIAL_STATE","keyboardReducer","combineReducers","behaviorsReducer","layersReducer","combosReducer","macrosReducer","configureStore","reducer","newState","newKeyboardState","pick","stripLegacyProperties","selectKeyboard","newKeymapState","unsaved","keymapSaveSuccess","themes","at","dataset","cycleTheme","appReducer","preloadedState","render","store","DEFAULT_SIZE","DEFAULT_PADDING","getComputedParams","size","rotation","getKeyStyles","transformOrigin","transform","point","angle","PI","cos","sin","transformed","xValues","yValues","min","shortestAlias","sort","b","fnPattern","names","fnCode","v","base","isModifier","split","basic","platforms","mac","win","overlay","additional","parsedParams","slots","firstParsedParam","firstSlot","additionalParams","getAdditionalParams","SearchContext","___CSS_LOADER_EXPORT___","module","locals","webpackAsyncContext","req","__webpack_require__","o","resolve","ids","slice","t","exports"],"sourceRoot":""} \ No newline at end of file
diff --git a/runtime.a40c24775970b5e2279a.js b/runtime.a40c24775970b5e2279a.js
new file mode 100644
index 0000000..a4266f0
--- /dev/null
+++ b/runtime.a40c24775970b5e2279a.js
@@ -0,0 +1,2 @@
+!function(){"use strict";var e,c,s,a,o,d={},l={};function y(e){var c=l[e];if(void 0!==c)return c.exports;var s=l[e]={id:e,loaded:!1,exports:{}};return d[e].call(s.exports,s,s.exports,y),s.loaded=!0,s.exports}y.m=d,e=[],y.O=function(c,s,a,o){if(!s){var d=1/0;for(b=0;b<e.length;b++){s=e[b][0],a=e[b][1],o=e[b][2];for(var l=!0,k=0;k<s.length;k++)(!1&o||d>=o)&&Object.keys(y.O).every((function(e){return y.O[e](s[k])}))?s.splice(k--,1):(l=!1,o<d&&(d=o));if(l){e.splice(b--,1);var f=a();void 0!==f&&(c=f)}}return c}o=o||0;for(var b=e.length;b>0&&e[b-1][2]>o;b--)e[b]=e[b-1];e[b]=[s,a,o]},y.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return y.d(c,{a:c}),c},s=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},y.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);y.r(o);var d={};c=c||[null,s({}),s([]),s(s)];for(var l=2&a&&e;"object"==typeof l&&!~c.indexOf(l);l=s(l))Object.getOwnPropertyNames(l).forEach((function(c){d[c]=function(){return e[c]}}));return d.default=function(){return e},y.d(o,d),o},y.d=function(e,c){for(var s in c)y.o(c,s)&&!y.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:c[s]})},y.f={},y.e=function(e){return Promise.all(Object.keys(y.f).reduce((function(c,s){return y.f[s](e,c),c}),[]))},y.u=function(e){return({68:"locales/keys_ro-keycodes",129:"locales/keys_lt_ibm-keycodes",308:"locales/keys_be-keycodes",389:"locales/keys_mn-keycodes",398:"locales/keys_lo-keycodes",421:"locales/keys_bg_latin-keycodes",422:"locales/keys_th_pattachote-keycodes",539:"locales/keys_khb_tai_le-keycodes",578:"locales/keys_sr_latin-keycodes",749:"locales/keys_dyu-keycodes",771:"locales/keys_es-keycodes",814:"locales/keys_tzm-keycodes",819:"locales/keys_fa_standard-keycodes",833:"locales/keys_it_142-keycodes",920:"locales/keys_pl_programmers-keycodes",951:"locales/keys_kk-keycodes",1156:"locales/keys_man-keycodes",1315:"locales/keys_bs-keycodes",1343:"locales/keys_en_gb_extended-keycodes",1480:"locales/keys_bn-keycodes",1507:"locales/keys_de_ibm-keycodes",1514:"locales/keys_fr_swiss-keycodes",1545:"locales/keys_el-keycodes",1547:"locales/keys_ml-keycodes",1671:"locales/keys_lv-keycodes",1720:"locales/keys_sk_qwerty-keycodes",1808:"locales/keys_de_belgian_period-keycodes",1872:"locales/keys_pt_abnt-keycodes",1936:"locales/keys_ckb-keycodes",2015:"locales/keys_hy-keycodes",2231:"locales/keys_sr-keycodes",2247:"locales/keys_mr-keycodes",2271:"locales/keys_nl_period-keycodes",2275:"locales/keys_tk-keycodes",2383:"locales/keys_or-keycodes",2408:"locales/keys_bg-keycodes",2602:"locales/keys_uk-keycodes",2619:"locales/keys_syr_phonetic-keycodes",2621:"locales/keys_ka_qwerty-keycodes",2650:"locales/keys_ar_azerty-keycodes",2659:"locales/keys_cs_qwerty-keycodes",2787:"locales/keys_gu-keycodes",2835:"locales/keys_tmh-keycodes",2947:"locales/keys_us_international-keycodes",2982:"locales/keys_ha-keycodes",3033:"locales/keys_es_variation-keycodes",3194:"locales/keys_mn_phags_pa-keycodes",3268:"locales/keys_km_nida-keycodes",3282:"locales/keys_bo-keycodes",3322:"locales/keys_hu_101-keycodes",3359:"locales/keys_de-keycodes",3362:"locales/keys_dvorak_right-keycodes",3393:"locales/keys_tg-keycodes",3474:"locales/keys_ug-keycodes",3618:"locales/keys_haw-keycodes",3647:"locales/keys_az_standard-keycodes",3687:"locales/keys_ka-keycodes",3735:"locales/keys_cs_programmers-keycodes",3743:"locales/keys_el_220-keycodes",3746:"locales/keys_lt_standard-keycodes",3880:"locales/keys_mt_101-keycodes",3893:"locales/keys_dz-keycodes",4036:"locales/keys_ta-keycodes",4156:"locales/keys_hu-keycodes",4257:"locales/keys_tn-keycodes",4263:"locales/keys_el_319-keycodes",4289:"locales/keys_gn-keycodes",4296:"locales/keys_el_polytonic-keycodes",4443:"locales/keys_bug-keycodes",4465:"locales/keys_it-keycodes",4491:"locales/keys_fr_canadian_french-keycodes",4595:"locales/keys_bg_phonetic-keycodes",4670:"locales/keys_tr_f-keycodes",4688:"locales/keys_chr_phonetic-keycodes",4717:"locales/keys_sv_sami-keycodes",4777:"locales/keys_syr-keycodes",4795:"locales/keys_ro_programmers-keycodes",4821:"locales/keys_pt-keycodes",4824:"locales/keys_te-keycodes",4887:"locales/keys_lis_standard-keycodes",4892:"locales/keys_ne-keycodes",4919:"locales/keys_nb-keycodes",5015:"locales/keys_my-keycodes",5303:"locales/keys_tr-keycodes",5332:"locales/keys_ba-keycodes",5354:"locales/keys_srb-keycodes",5485:"locales/keys_dv-keycodes",5604:"locales/keys_is-keycodes",5606:"locales/keys_lb-keycodes",5715:"locales/keys_sl-keycodes",5821:"locales/keys_el_latin_319-keycodes",5840:"locales/keys_iu-keycodes",5842:"locales/keys_khb-keycodes",5991:"locales/keys_non-keycodes",5998:"locales/keys_yo-keycodes",6049:"locales/keys_ps-keycodes",6157:"locales/keys_dvorak-keycodes",6184:"locales/keys_de_swiss-keycodes",6392:"locales/keys_ar-keycodes",6415:"locales/keys_nl-keycodes",6429:"locales/keys_es_latin_american-keycodes",6457:"locales/keys_gd-keycodes",6684:"locales/keys_th-keycodes",6688:"locales/keys_hi-keycodes",6691:"locales/keys_da-keycodes",6710:"locales/keys_jv-keycodes",6777:"locales/keys_lv_qwerty-keycodes",6794:"locales/keys_km-keycodes",6943:"locales/keys_chr-keycodes",7022:"locales/keys_et-keycodes",7069:"locales/keys_wo-keycodes",7080:"locales/keys_uz-keycodes",7108:"locales/keys_he_standard-keycodes",7228:"locales/keys_uk_enhanced-keycodes",7289:"locales/keys_sah-keycodes",7292:"locales/keys_ru_phonetic-keycodes",7303:"locales/keys_kl-keycodes",7305:"locales/keys_tt-keycodes",7446:"locales/keys_he-keycodes",7495:"locales/keys_en_gb-keycodes",7554:"locales/keys_fr-keycodes",7568:"locales/keys_mt-keycodes",7603:"locales/keys_el_latin_220-keycodes",7686:"locales/keys_dsb_extended-keycodes",7771:"locales/keys_lt-keycodes",7803:"locales/keys_sk-keycodes",7892:"locales/keys_ig-keycodes",7950:"locales/keys_fr_belgian_period-keycodes",7994:"locales/keys_vi-keycodes",8017:"locales/keys_ar_102-keycodes",8019:"locales/keys_se-keycodes",8041:"locales/keys_mk-keycodes",8070:"locales/keys_az-keycodes",8110:"locales/keys_tmh_extended-keycodes",8119:"locales/keys_hi_traditional-keycodes",8173:"locales/keys_sq-keycodes",8185:"locales/keys_ga-keycodes",8207:"locales/keys_cs-keycodes",8216:"locales/keys_ur-keycodes",8242:"locales/keys_az_cyrillic-keycodes",8251:"locales/keys_fr_canadian_standard-keycodes",8302:"locales/keys_en_india-keycodes",8307:"locales/keys_nso-keycodes",8391:"locales/keys_pl-keycodes",8427:"locales/keys_ko-keycodes",8438:"locales/keys_la_old_italic-keycodes",8568:"locales/keys_mn_traditional-keycodes",8599:"locales/keys_fa-keycodes",8636:"locales/keys_nb_sami-keycodes",8649:"locales/keys_sv-keycodes",8699:"locales/keys_se_finland_sweden-keycodes",8706:"locales/keys_fi-keycodes",8709:"locales/keys_kn-keycodes",8793:"locales/keys_dvorak_left-keycodes",8855:"locales/keys_fr_belgian-keycodes",8945:"locales/keys_lis-keycodes",8956:"locales/keys_bm-keycodes",8971:"locales/keys_el_latin-keycodes",8986:"locales/keys_ru-keycodes",9081:"locales/keys_lv_standard-keycodes",9082:"locales/keys_as-keycodes",9112:"locales/keys_pt_abnt2-keycodes",9136:"locales/keys_hy_phonetic-keycodes",9142:"locales/keys_bn_inscript-keycodes",9176:"locales/keys_iu_latin-keycodes",9193:"locales/keys_so-keycodes",9244:"locales/keys_ky-keycodes",9414:"locales/keys_sat-keycodes",9512:"locales/keys_mi-keycodes",9586:"locales/keys_fo-keycodes",9616:"locales/keys_dsb-keycodes",9619:"locales/keys_de_belgian-keycodes",9698:"locales/keys_ka_ergonomic-keycodes",9707:"locales/keys_si-keycodes",9866:"locales/keys_fi_sami-keycodes",9893:"locales/keys_got-keycodes",9989:"locales/keys_pa-keycodes"}[e]||e)+"."+{68:"7b17882894d827d4a691",129:"93e9e7b55ff4db1b45f4",308:"e7d0c13e3ecc92b49444",389:"606dc039dbee5e7de1d4",398:"c8c541aaf844eeda8149",401:"bdae6943931998cef4fd",421:"dbb2c1733f9a7579098e",422:"666bd3a0ce35c4a274ff",539:"f13efc888eac2aa8e903",542:"b08e94331b5e117681ac",578:"04d1220d52840040f60b",727:"2919567394fbd9d07a87",749:"76b287374b8ae5f7a06c",771:"476e9ba05219d84921f3",814:"4764231c07fa0d0a04f6",819:"0795ba54cbc82dd190cf",833:"46444cf657dcf1bb1593",920:"dc595b5183e9c47ff557",951:"f0042702141cbb2ccabf",1040:"668a24817c3f3941bb2c",1156:"bb15c7631776a604bdb7",1315:"0db48f03173200e045f2",1343:"8f70c7bbb298f625412f",1480:"dd1c948a8c44aac28b53",1507:"8cada04b0e43007bb4be",1514:"649b8ed65f356fa690ac",1545:"b152a1976be0001bfb43",1547:"c246a45983470f77e595",1671:"6bdbbb20361914659d30",1720:"3328c6b7c20fbf918852",1808:"abb32a6fe65c55952158",1872:"719fd6d2cfbc98065faa",1936:"8e41309b9c19de95960a",2015:"1189ea9050bf52385110",2231:"5080f1cbf58c1317f585",2247:"3459beb60f5e45f7a659",2271:"b737428706ade1ab91ed",2275:"6c3d70cbc0a2a960dede",2383:"45d4631f706b18beb2d9",2408:"49d33aa415e8f4992f21",2602:"d7b17cf5cd894ba30b64",2619:"5153da3fbe85b2f1f7f8",2621:"bd9a8dabd0cd755853b5",2650:"a829372aef4170ca51a4",2659:"c36d1660242da4a6482d",2787:"23f639d1d9e06f080ea7",2835:"551ed1eddb65a0855ec0",2946:"972b1c0cded5c7511836",2947:"2b19227a71dd755ae4b6",2982:"36e9273f2ce6ff4f4673",3033:"b26fcf2e16e386fb33b1",3194:"8a08d0da753f48f7f95e",3268:"f3f0e12f35d6ede0f40f",3282:"01584f37d4d33ad63efb",3322:"7ebaf8ec7ac148f4669d",3359:"2b1b7a00d5f5a3f3d4d7",3362:"4b171d128973788c904e",3393:"2b68325532554cc8d8ba",3474:"d8e51748742a2c676e34",3618:"d8420dbaf5d768e5d2d4",3647:"6703ed839e825c8771d3",3687:"e750c133ca55d5c6e548",3735:"c9d93c92c6c0423a5416",3743:"ebb2429d5bbde92909c4",3746:"a4deb37dc8a93b498757",3880:"fcaa03e1df43df95ab97",3893:"c7df98614033002329af",4036:"909dd7500874d97524c9",4156:"b9b13036d2669cc053d2",4257:"f5fd10e05ad3d0536453",4263:"931dcb76dcb966d4c80f",4289:"fa48da5f908e2f1c31fc",4296:"6398e9a1092dbd966cd4",4443:"3d9b42bc9254f6af0784",4465:"f4574a240d1cc776a64d",4491:"85813c1f613b510d8c53",4595:"32f60188d0eaea679456",4670:"c00667ffdde3a68622ab",4688:"31df1ae6ad5f78bd01fc",4717:"abfe395f6284ad19bfcd",4777:"2224cbda2741be9da336",4795:"ed0ccd39951359fbbbca",4821:"ddd40fd58db42a579031",4824:"0a6f4db1962949f69a35",4887:"f052ae8bfdfdb1d513db",4892:"960290e8d85e0b47f102",4919:"4a12c76edfa94312b0ea",5015:"0f3a2242ea9f9a42c4f9",5303:"a4497d24307a9897e5b5",5332:"777b50e4b114b352d258",5354:"2e00aaedbbdc1642bb92",5485:"55a0ec07c8abbfe214b4",5604:"f11c3e2dd4430602f243",5606:"8cfe7dc5f09ec96ea95e",5634:"f56c2bafa5e611ff718e",5715:"4ef9b548b6cfc7c605f9",5821:"a4f5e6f31f799696cdaf",5840:"7e4e574c1214010c07dc",5842:"f7c89fd7bf3602a3399e",5858:"bf34e04d013932522f46",5991:"512b59c58af9c82a47d5",5998:"91c971fb3f5767c3d295",6049:"a62bb2191cc0eecda711",6157:"8b93a87cbbec10359b5d",6184:"732ddeb1a32a40e2fc3a",6392:"fa88aea6ab27afd6da50",6415:"627e38aee29608a5d6d2",6429:"b9b3578a604e51fa3455",6457:"ba688263a9c85e9843e1",6684:"1274b7cfa9914c7663c9",6688:"5d24e1f96d6a6cfefcb0",6691:"b6cb655f0aa7dcd8787b",6710:"69f4ed313d19455e88f9",6777:"dab38c8f01434d45eb86",6794:"aa4330a831430380f7ca",6849:"70f9d65fd8ccf67cb94c",6943:"9c0653724d1cbfa9ed86",7022:"9ece5bc0d21090bf91ad",7069:"9929a74e7e92648a0f87",7080:"f083c93705b5e80e4a4e",7108:"906eeacc617750894b22",7198:"aec09ef07d003f7d7a91",7228:"0a7f301444940610aa3a",7289:"2fcc4bbd19c8e23bcfd9",7292:"364542469a1dd2fd041b",7303:"8f0ef5a9295943353ecf",7305:"ac74249c913980666520",7406:"11b0b86fb5919cd2d239",7446:"f26521f672e3d94f3c62",7495:"cb22512c8cea97bbcf19",7553:"b6c1ba6d52fa85ac8595",7554:"bdf065db03088c4a4a5d",7568:"d9f3ad26c7b8b70fc1ec",7603:"d2d72bb470a9b2e1ede0",7686:"940990bf96e9413b2e9b",7771:"9942586e9e23d5059127",7803:"8760edf191caa0f69869",7892:"86c938c7b27b9a67ef50",7950:"6fb177a4414f9a190484",7994:"c160e150f1431807c681",8017:"837d18f3c4fcf868010b",8019:"02f2f252639bb1d459b6",8041:"dae4eea51cfd6e1fbef3",8070:"27f10e0739c78ab95d16",8110:"c132517c950a214d5731",8119:"58eb56bfeb45579c084c",8173:"1776ba2cbbdeb9918f9c",8185:"ece0dc278594eee67cb1",8207:"7e346d396cf1e067b94f",8216:"bd2ef62dab7ca40f6d44",8242:"3891fea81cc045034ad4",8251:"7bcdee9a73a0eb39baaa",8302:"6b483d8d7739ff515b8f",8307:"e12dd0aad5e6a036ed3b",8371:"f3862461b21b77cd6730",8381:"8f645ca9725922cd6c71",8391:"eb08511c704d549f8237",8427:"409e29315cd91dfb038b",8438:"41a503f1b2737d035a74",8568:"bf0989c363612ba74ac9",8573:"8abff79303ed4e093d95",8599:"1c088737758fa51d0a0a",8636:"48c3cab70569554b8655",8649:"519f8992d7c5b42bf4e1",8699:"6d4b2f405c48cf71aa4b",8706:"db5988f190774b8ecd7e",8709:"edbea20e0b917271d7a2",8793:"9639129fefdac959af3a",8855:"38f81f640e33d713ea2c",8873:"75782887b6b9e72b1dc9",8945:"d5a920b4e65ee30d8356",8956:"b025b7e50cad64b75370",8971:"f906bba2b2b7e87a8ae0",8986:"4ad17334f3ef911b6b0b",9081:"b6c8611601548f3554f7",9082:"35cb59b22a293243df26",9112:"7ebcaf2caf566e7902b8",9136:"3249d48fcb94ad9e44a1",9142:"8933a018c2a618e987a4",9176:"2557b40f7b4fcef345a9",9193:"e2b545b8ea15c0016312",9244:"0e4e64562de0635942ff",9414:"b9aecaa9ab601ffcc6b4",9512:"dc6d783fb73d92e5a7fb",9586:"01151d539dca32e61272",9616:"0a4f102b3e946346e2d6",9619:"b044962c66577434486e",9657:"6f4e9f754310b1969c2f",9698:"41ef3f798533a2b1c7cf",9707:"bbda1adb51b744127204",9866:"110121669330cd9e737c",9893:"4ff6eee70cdc1c6e3325",9989:"e7d2ba9eda5b0ac31cac"}[e]+".js"},y.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),y.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)},a={},o="app:",y.l=function(e,c,s,d){if(a[e])a[e].push(c);else{var l,k;if(void 0!==s)for(var f=document.getElementsByTagName("script"),b=0;b<f.length;b++){var t=f[b];if(t.getAttribute("src")==e||t.getAttribute("data-webpack")==o+s){l=t;break}}l||(k=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,y.nc&&l.setAttribute("nonce",y.nc),l.setAttribute("data-webpack",o+s),l.src=e),a[e]=[c];var _=function(c,s){l.onerror=l.onload=null,clearTimeout(n);var o=a[e];if(delete a[e],l.parentNode&&l.parentNode.removeChild(l),o&&o.forEach((function(e){return e(s)})),c)return c(s)},n=setTimeout(_.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=_.bind(null,l.onerror),l.onload=_.bind(null,l.onload),k&&document.head.appendChild(l)}},y.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},y.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},function(){var e;y.g.importScripts&&(e=y.g.location+"");var c=y.g.document;if(!e&&c&&(c.currentScript&&(e=c.currentScript.src),!e)){var s=c.getElementsByTagName("script");s.length&&(e=s[s.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),y.p=e}(),function(){y.b=document.baseURI||self.location.href;var e={3666:0};y.f.j=function(c,s){var a=y.o(e,c)?e[c]:void 0;if(0!==a)if(a)s.push(a[2]);else if(3666!=c){var o=new Promise((function(s,o){a=e[c]=[s,o]}));s.push(a[2]=o);var d=y.p+y.u(c),l=new Error;y.l(d,(function(s){if(y.o(e,c)&&(0!==(a=e[c])&&(e[c]=void 0),a)){var o=s&&("load"===s.type?"missing":s.type),d=s&&s.target&&s.target.src;l.message="Loading chunk "+c+" failed.\n("+o+": "+d+")",l.name="ChunkLoadError",l.type=o,l.request=d,a[1](l)}}),"chunk-"+c,c)}else e[c]=0},y.O.j=function(c){return 0===e[c]};var c=function(c,s){var a,o,d=s[0],l=s[1],k=s[2],f=0;if(d.some((function(c){return 0!==e[c]}))){for(a in l)y.o(l,a)&&(y.m[a]=l[a]);if(k)var b=k(y)}for(c&&c(s);f<d.length;f++)o=d[f],y.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return y.O(b)},s=self.webpackChunkapp=self.webpackChunkapp||[];s.forEach(c.bind(null,0)),s.push=c.bind(null,s.push.bind(s))}(),y.nc=void 0}();
+//# sourceMappingURL=runtime.a40c24775970b5e2279a.js.map \ No newline at end of file
diff --git a/runtime.a40c24775970b5e2279a.js.map b/runtime.a40c24775970b5e2279a.js.map
new file mode 100644
index 0000000..9f3a94d
--- /dev/null
+++ b/runtime.a40c24775970b5e2279a.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"runtime.a40c24775970b5e2279a.js","mappings":"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AO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KA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","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///webpack/runtime/create fake namespace object","webpack:///webpack/runtime/load script","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/node module decorator","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/runtime/nonce"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"app:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"68\":\"locales/keys_ro-keycodes\",\"129\":\"locales/keys_lt_ibm-keycodes\",\"308\":\"locales/keys_be-keycodes\",\"389\":\"locales/keys_mn-keycodes\",\"398\":\"locales/keys_lo-keycodes\",\"421\":\"locales/keys_bg_latin-keycodes\",\"422\":\"locales/keys_th_pattachote-keycodes\",\"539\":\"locales/keys_khb_tai_le-keycodes\",\"578\":\"locales/keys_sr_latin-keycodes\",\"749\":\"locales/keys_dyu-keycodes\",\"771\":\"locales/keys_es-keycodes\",\"814\":\"locales/keys_tzm-keycodes\",\"819\":\"locales/keys_fa_standard-keycodes\",\"833\":\"locales/keys_it_142-keycodes\",\"920\":\"locales/keys_pl_programmers-keycodes\",\"951\":\"locales/keys_kk-keycodes\",\"1156\":\"locales/keys_man-keycodes\",\"1315\":\"locales/keys_bs-keycodes\",\"1343\":\"locales/keys_en_gb_extended-keycodes\",\"1480\":\"locales/keys_bn-keycodes\",\"1507\":\"locales/keys_de_ibm-keycodes\",\"1514\":\"locales/keys_fr_swiss-keycodes\",\"1545\":\"locales/keys_el-keycodes\",\"1547\":\"locales/keys_ml-keycodes\",\"1671\":\"locales/keys_lv-keycodes\",\"1720\":\"locales/keys_sk_qwerty-keycodes\",\"1808\":\"locales/keys_de_belgian_period-keycodes\",\"1872\":\"locales/keys_pt_abnt-keycodes\",\"1936\":\"locales/keys_ckb-keycodes\",\"2015\":\"locales/keys_hy-keycodes\",\"2231\":\"locales/keys_sr-keycodes\",\"2247\":\"locales/keys_mr-keycodes\",\"2271\":\"locales/keys_nl_period-keycodes\",\"2275\":\"locales/keys_tk-keycodes\",\"2383\":\"locales/keys_or-keycodes\",\"2408\":\"locales/keys_bg-keycodes\",\"2602\":\"locales/keys_uk-keycodes\",\"2619\":\"locales/keys_syr_phonetic-keycodes\",\"2621\":\"locales/keys_ka_qwerty-keycodes\",\"2650\":\"locales/keys_ar_azerty-keycodes\",\"2659\":\"locales/keys_cs_qwerty-keycodes\",\"2787\":\"locales/keys_gu-keycodes\",\"2835\":\"locales/keys_tmh-keycodes\",\"2947\":\"locales/keys_us_international-keycodes\",\"2982\":\"locales/keys_ha-keycodes\",\"3033\":\"locales/keys_es_variation-keycodes\",\"3194\":\"locales/keys_mn_phags_pa-keycodes\",\"3268\":\"locales/keys_km_nida-keycodes\",\"3282\":\"locales/keys_bo-keycodes\",\"3322\":\"locales/keys_hu_101-keycodes\",\"3359\":\"locales/keys_de-keycodes\",\"3362\":\"locales/keys_dvorak_right-keycodes\",\"3393\":\"locales/keys_tg-keycodes\",\"3474\":\"locales/keys_ug-keycodes\",\"3618\":\"locales/keys_haw-keycodes\",\"3647\":\"locales/keys_az_standard-keycodes\",\"3687\":\"locales/keys_ka-keycodes\",\"3735\":\"locales/keys_cs_programmers-keycodes\",\"3743\":\"locales/keys_el_220-keycodes\",\"3746\":\"locales/keys_lt_standard-keycodes\",\"3880\":\"locales/keys_mt_101-keycodes\",\"3893\":\"locales/keys_dz-keycodes\",\"4036\":\"locales/keys_ta-keycodes\",\"4156\":\"locales/keys_hu-keycodes\",\"4257\":\"locales/keys_tn-keycodes\",\"4263\":\"locales/keys_el_319-keycodes\",\"4289\":\"locales/keys_gn-keycodes\",\"4296\":\"locales/keys_el_polytonic-keycodes\",\"4443\":\"locales/keys_bug-keycodes\",\"4465\":\"locales/keys_it-keycodes\",\"4491\":\"locales/keys_fr_canadian_french-keycodes\",\"4595\":\"locales/keys_bg_phonetic-keycodes\",\"4670\":\"locales/keys_tr_f-keycodes\",\"4688\":\"locales/keys_chr_phonetic-keycodes\",\"4717\":\"locales/keys_sv_sami-keycodes\",\"4777\":\"locales/keys_syr-keycodes\",\"4795\":\"locales/keys_ro_programmers-keycodes\",\"4821\":\"locales/keys_pt-keycodes\",\"4824\":\"locales/keys_te-keycodes\",\"4887\":\"locales/keys_lis_standard-keycodes\",\"4892\":\"locales/keys_ne-keycodes\",\"4919\":\"locales/keys_nb-keycodes\",\"5015\":\"locales/keys_my-keycodes\",\"5303\":\"locales/keys_tr-keycodes\",\"5332\":\"locales/keys_ba-keycodes\",\"5354\":\"locales/keys_srb-keycodes\",\"5485\":\"locales/keys_dv-keycodes\",\"5604\":\"locales/keys_is-keycodes\",\"5606\":\"locales/keys_lb-keycodes\",\"5715\":\"locales/keys_sl-keycodes\",\"5821\":\"locales/keys_el_latin_319-keycodes\",\"5840\":\"locales/keys_iu-keycodes\",\"5842\":\"locales/keys_khb-keycodes\",\"5991\":\"locales/keys_non-keycodes\",\"5998\":\"locales/keys_yo-keycodes\",\"6049\":\"locales/keys_ps-keycodes\",\"6157\":\"locales/keys_dvorak-keycodes\",\"6184\":\"locales/keys_de_swiss-keycodes\",\"6392\":\"locales/keys_ar-keycodes\",\"6415\":\"locales/keys_nl-keycodes\",\"6429\":\"locales/keys_es_latin_american-keycodes\",\"6457\":\"locales/keys_gd-keycodes\",\"6684\":\"locales/keys_th-keycodes\",\"6688\":\"locales/keys_hi-keycodes\",\"6691\":\"locales/keys_da-keycodes\",\"6710\":\"locales/keys_jv-keycodes\",\"6777\":\"locales/keys_lv_qwerty-keycodes\",\"6794\":\"locales/keys_km-keycodes\",\"6943\":\"locales/keys_chr-keycodes\",\"7022\":\"locales/keys_et-keycodes\",\"7069\":\"locales/keys_wo-keycodes\",\"7080\":\"locales/keys_uz-keycodes\",\"7108\":\"locales/keys_he_standard-keycodes\",\"7228\":\"locales/keys_uk_enhanced-keycodes\",\"7289\":\"locales/keys_sah-keycodes\",\"7292\":\"locales/keys_ru_phonetic-keycodes\",\"7303\":\"locales/keys_kl-keycodes\",\"7305\":\"locales/keys_tt-keycodes\",\"7446\":\"locales/keys_he-keycodes\",\"7495\":\"locales/keys_en_gb-keycodes\",\"7554\":\"locales/keys_fr-keycodes\",\"7568\":\"locales/keys_mt-keycodes\",\"7603\":\"locales/keys_el_latin_220-keycodes\",\"7686\":\"locales/keys_dsb_extended-keycodes\",\"7771\":\"locales/keys_lt-keycodes\",\"7803\":\"locales/keys_sk-keycodes\",\"7892\":\"locales/keys_ig-keycodes\",\"7950\":\"locales/keys_fr_belgian_period-keycodes\",\"7994\":\"locales/keys_vi-keycodes\",\"8017\":\"locales/keys_ar_102-keycodes\",\"8019\":\"locales/keys_se-keycodes\",\"8041\":\"locales/keys_mk-keycodes\",\"8070\":\"locales/keys_az-keycodes\",\"8110\":\"locales/keys_tmh_extended-keycodes\",\"8119\":\"locales/keys_hi_traditional-keycodes\",\"8173\":\"locales/keys_sq-keycodes\",\"8185\":\"locales/keys_ga-keycodes\",\"8207\":\"locales/keys_cs-keycodes\",\"8216\":\"locales/keys_ur-keycodes\",\"8242\":\"locales/keys_az_cyrillic-keycodes\",\"8251\":\"locales/keys_fr_canadian_standard-keycodes\",\"8302\":\"locales/keys_en_india-keycodes\",\"8307\":\"locales/keys_nso-keycodes\",\"8391\":\"locales/keys_pl-keycodes\",\"8427\":\"locales/keys_ko-keycodes\",\"8438\":\"locales/keys_la_old_italic-keycodes\",\"8568\":\"locales/keys_mn_traditional-keycodes\",\"8599\":\"locales/keys_fa-keycodes\",\"8636\":\"locales/keys_nb_sami-keycodes\",\"8649\":\"locales/keys_sv-keycodes\",\"8699\":\"locales/keys_se_finland_sweden-keycodes\",\"8706\":\"locales/keys_fi-keycodes\",\"8709\":\"locales/keys_kn-keycodes\",\"8793\":\"locales/keys_dvorak_left-keycodes\",\"8855\":\"locales/keys_fr_belgian-keycodes\",\"8945\":\"locales/keys_lis-keycodes\",\"8956\":\"locales/keys_bm-keycodes\",\"8971\":\"locales/keys_el_latin-keycodes\",\"8986\":\"locales/keys_ru-keycodes\",\"9081\":\"locales/keys_lv_standard-keycodes\",\"9082\":\"locales/keys_as-keycodes\",\"9112\":\"locales/keys_pt_abnt2-keycodes\",\"9136\":\"locales/keys_hy_phonetic-keycodes\",\"9142\":\"locales/keys_bn_inscript-keycodes\",\"9176\":\"locales/keys_iu_latin-keycodes\",\"9193\":\"locales/keys_so-keycodes\",\"9244\":\"locales/keys_ky-keycodes\",\"9414\":\"locales/keys_sat-keycodes\",\"9512\":\"locales/keys_mi-keycodes\",\"9586\":\"locales/keys_fo-keycodes\",\"9616\":\"locales/keys_dsb-keycodes\",\"9619\":\"locales/keys_de_belgian-keycodes\",\"9698\":\"locales/keys_ka_ergonomic-keycodes\",\"9707\":\"locales/keys_si-keycodes\",\"9866\":\"locales/keys_fi_sami-keycodes\",\"9893\":\"locales/keys_got-keycodes\",\"9989\":\"locales/keys_pa-keycodes\"}[chunkId] || chunkId) + \".\" + {\"68\":\"7b17882894d827d4a691\",\"129\":\"93e9e7b55ff4db1b45f4\",\"308\":\"e7d0c13e3ecc92b49444\",\"389\":\"606dc039dbee5e7de1d4\",\"398\":\"c8c541aaf844eeda8149\",\"401\":\"bdae6943931998cef4fd\",\"421\":\"dbb2c1733f9a7579098e\",\"422\":\"666bd3a0ce35c4a274ff\",\"539\":\"f13efc888eac2aa8e903\",\"542\":\"b08e94331b5e117681ac\",\"578\":\"04d1220d52840040f60b\",\"727\":\"2919567394fbd9d07a87\",\"749\":\"76b287374b8ae5f7a06c\",\"771\":\"476e9ba05219d84921f3\",\"814\":\"4764231c07fa0d0a04f6\",\"819\":\"0795ba54cbc82dd190cf\",\"833\":\"46444cf657dcf1bb1593\",\"920\":\"dc595b5183e9c47ff557\",\"951\":\"f0042702141cbb2ccabf\",\"1040\":\"668a24817c3f3941bb2c\",\"1156\":\"bb15c7631776a604bdb7\",\"1315\":\"0db48f03173200e045f2\",\"1343\":\"8f70c7bbb298f625412f\",\"1480\":\"dd1c948a8c44aac28b53\",\"1507\":\"8cada04b0e43007bb4be\",\"1514\":\"649b8ed65f356fa690ac\",\"1545\":\"b152a1976be0001bfb43\",\"1547\":\"c246a45983470f77e595\",\"1671\":\"6bdbbb20361914659d30\",\"1720\":\"3328c6b7c20fbf918852\",\"1808\":\"abb32a6fe65c55952158\",\"1872\":\"719fd6d2cfbc98065faa\",\"1936\":\"8e41309b9c19de95960a\",\"2015\":\"1189ea9050bf52385110\",\"2231\":\"5080f1cbf58c1317f585\",\"2247\":\"3459beb60f5e45f7a659\",\"2271\":\"b737428706ade1ab91ed\",\"2275\":\"6c3d70cbc0a2a960dede\",\"2383\":\"45d4631f706b18beb2d9\",\"2408\":\"49d33aa415e8f4992f21\",\"2602\":\"d7b17cf5cd894ba30b64\",\"2619\":\"5153da3fbe85b2f1f7f8\",\"2621\":\"bd9a8dabd0cd755853b5\",\"2650\":\"a829372aef4170ca51a4\",\"2659\":\"c36d1660242da4a6482d\",\"2787\":\"23f639d1d9e06f080ea7\",\"2835\":\"551ed1eddb65a0855ec0\",\"2946\":\"972b1c0cded5c7511836\",\"2947\":\"2b19227a71dd755ae4b6\",\"2982\":\"36e9273f2ce6ff4f4673\",\"3033\":\"b26fcf2e16e386fb33b1\",\"3194\":\"8a08d0da753f48f7f95e\",\"3268\":\"f3f0e12f35d6ede0f40f\",\"3282\":\"01584f37d4d33ad63efb\",\"3322\":\"7ebaf8ec7ac148f4669d\",\"3359\":\"2b1b7a00d5f5a3f3d4d7\",\"3362\":\"4b171d128973788c904e\",\"3393\":\"2b68325532554cc8d8ba\",\"3474\":\"d8e51748742a2c676e34\",\"3618\":\"d8420dbaf5d768e5d2d4\",\"3647\":\"6703ed839e825c8771d3\",\"3687\":\"e750c133ca55d5c6e548\",\"3735\":\"c9d93c92c6c0423a5416\",\"3743\":\"ebb2429d5bbde92909c4\",\"3746\":\"a4deb37dc8a93b498757\",\"3880\":\"fcaa03e1df43df95ab97\",\"3893\":\"c7df98614033002329af\",\"4036\":\"909dd7500874d97524c9\",\"4156\":\"b9b13036d2669cc053d2\",\"4257\":\"f5fd10e05ad3d0536453\",\"4263\":\"931dcb76dcb966d4c80f\",\"4289\":\"fa48da5f908e2f1c31fc\",\"4296\":\"6398e9a1092dbd966cd4\",\"4443\":\"3d9b42bc9254f6af0784\",\"4465\":\"f4574a240d1cc776a64d\",\"4491\":\"85813c1f613b510d8c53\",\"4595\":\"32f60188d0eaea679456\",\"4670\":\"c00667ffdde3a68622ab\",\"4688\":\"31df1ae6ad5f78bd01fc\",\"4717\":\"abfe395f6284ad19bfcd\",\"4777\":\"2224cbda2741be9da336\",\"4795\":\"ed0ccd39951359fbbbca\",\"4821\":\"ddd40fd58db42a579031\",\"4824\":\"0a6f4db1962949f69a35\",\"4887\":\"f052ae8bfdfdb1d513db\",\"4892\":\"960290e8d85e0b47f102\",\"4919\":\"4a12c76edfa94312b0ea\",\"5015\":\"0f3a2242ea9f9a42c4f9\",\"5303\":\"a4497d24307a9897e5b5\",\"5332\":\"777b50e4b114b352d258\",\"5354\":\"2e00aaedbbdc1642bb92\",\"5485\":\"55a0ec07c8abbfe214b4\",\"5604\":\"f11c3e2dd4430602f243\",\"5606\":\"8cfe7dc5f09ec96ea95e\",\"5634\":\"f56c2bafa5e611ff718e\",\"5715\":\"4ef9b548b6cfc7c605f9\",\"5821\":\"a4f5e6f31f799696cdaf\",\"5840\":\"7e4e574c1214010c07dc\",\"5842\":\"f7c89fd7bf3602a3399e\",\"5858\":\"bf34e04d013932522f46\",\"5991\":\"512b59c58af9c82a47d5\",\"5998\":\"91c971fb3f5767c3d295\",\"6049\":\"a62bb2191cc0eecda711\",\"6157\":\"8b93a87cbbec10359b5d\",\"6184\":\"732ddeb1a32a40e2fc3a\",\"6392\":\"fa88aea6ab27afd6da50\",\"6415\":\"627e38aee29608a5d6d2\",\"6429\":\"b9b3578a604e51fa3455\",\"6457\":\"ba688263a9c85e9843e1\",\"6684\":\"1274b7cfa9914c7663c9\",\"6688\":\"5d24e1f96d6a6cfefcb0\",\"6691\":\"b6cb655f0aa7dcd8787b\",\"6710\":\"69f4ed313d19455e88f9\",\"6777\":\"dab38c8f01434d45eb86\",\"6794\":\"aa4330a831430380f7ca\",\"6849\":\"70f9d65fd8ccf67cb94c\",\"6943\":\"9c0653724d1cbfa9ed86\",\"7022\":\"9ece5bc0d21090bf91ad\",\"7069\":\"9929a74e7e92648a0f87\",\"7080\":\"f083c93705b5e80e4a4e\",\"7108\":\"906eeacc617750894b22\",\"7198\":\"aec09ef07d003f7d7a91\",\"7228\":\"0a7f301444940610aa3a\",\"7289\":\"2fcc4bbd19c8e23bcfd9\",\"7292\":\"364542469a1dd2fd041b\",\"7303\":\"8f0ef5a9295943353ecf\",\"7305\":\"ac74249c913980666520\",\"7406\":\"11b0b86fb5919cd2d239\",\"7446\":\"f26521f672e3d94f3c62\",\"7495\":\"cb22512c8cea97bbcf19\",\"7553\":\"b6c1ba6d52fa85ac8595\",\"7554\":\"bdf065db03088c4a4a5d\",\"7568\":\"d9f3ad26c7b8b70fc1ec\",\"7603\":\"d2d72bb470a9b2e1ede0\",\"7686\":\"940990bf96e9413b2e9b\",\"7771\":\"9942586e9e23d5059127\",\"7803\":\"8760edf191caa0f69869\",\"7892\":\"86c938c7b27b9a67ef50\",\"7950\":\"6fb177a4414f9a190484\",\"7994\":\"c160e150f1431807c681\",\"8017\":\"837d18f3c4fcf868010b\",\"8019\":\"02f2f252639bb1d459b6\",\"8041\":\"dae4eea51cfd6e1fbef3\",\"8070\":\"27f10e0739c78ab95d16\",\"8110\":\"c132517c950a214d5731\",\"8119\":\"58eb56bfeb45579c084c\",\"8173\":\"1776ba2cbbdeb9918f9c\",\"8185\":\"ece0dc278594eee67cb1\",\"8207\":\"7e346d396cf1e067b94f\",\"8216\":\"bd2ef62dab7ca40f6d44\",\"8242\":\"3891fea81cc045034ad4\",\"8251\":\"7bcdee9a73a0eb39baaa\",\"8302\":\"6b483d8d7739ff515b8f\",\"8307\":\"e12dd0aad5e6a036ed3b\",\"8371\":\"f3862461b21b77cd6730\",\"8381\":\"8f645ca9725922cd6c71\",\"8391\":\"eb08511c704d549f8237\",\"8427\":\"409e29315cd91dfb038b\",\"8438\":\"41a503f1b2737d035a74\",\"8568\":\"bf0989c363612ba74ac9\",\"8573\":\"8abff79303ed4e093d95\",\"8599\":\"1c088737758fa51d0a0a\",\"8636\":\"48c3cab70569554b8655\",\"8649\":\"519f8992d7c5b42bf4e1\",\"8699\":\"6d4b2f405c48cf71aa4b\",\"8706\":\"db5988f190774b8ecd7e\",\"8709\":\"edbea20e0b917271d7a2\",\"8793\":\"9639129fefdac959af3a\",\"8855\":\"38f81f640e33d713ea2c\",\"8873\":\"75782887b6b9e72b1dc9\",\"8945\":\"d5a920b4e65ee30d8356\",\"8956\":\"b025b7e50cad64b75370\",\"8971\":\"f906bba2b2b7e87a8ae0\",\"8986\":\"4ad17334f3ef911b6b0b\",\"9081\":\"b6c8611601548f3554f7\",\"9082\":\"35cb59b22a293243df26\",\"9112\":\"7ebcaf2caf566e7902b8\",\"9136\":\"3249d48fcb94ad9e44a1\",\"9142\":\"8933a018c2a618e987a4\",\"9176\":\"2557b40f7b4fcef345a9\",\"9193\":\"e2b545b8ea15c0016312\",\"9244\":\"0e4e64562de0635942ff\",\"9414\":\"b9aecaa9ab601ffcc6b4\",\"9512\":\"dc6d783fb73d92e5a7fb\",\"9586\":\"01151d539dca32e61272\",\"9616\":\"0a4f102b3e946346e2d6\",\"9619\":\"b044962c66577434486e\",\"9657\":\"6f4e9f754310b1969c2f\",\"9698\":\"41ef3f798533a2b1c7cf\",\"9707\":\"bbda1adb51b744127204\",\"9866\":\"110121669330cd9e737c\",\"9893\":\"4ff6eee70cdc1c6e3325\",\"9989\":\"e7d2ba9eda5b0ac31cac\"}[chunkId] + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3666: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(3666 != chunkId) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkapp\"] = self[\"webpackChunkapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","loaded","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","getPrototypeOf","obj","__proto__","t","value","mode","this","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","window","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal"],"sourceRoot":""} \ No newline at end of file