next-chessground 1.4.4 → 1.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -32,4 +32,4 @@ import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import A,{create
32
32
  *
33
33
  * This source code is licensed under the MIT license found in the
34
34
  * LICENSE file in the root directory of this source tree.
35
- */(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var we="function"==typeof Symbol&&Symbol.for,Ce=we?Symbol.for("react.element"):60103,ve=we?Symbol.for("react.portal"):60106,Se=we?Symbol.for("react.fragment"):60107,Ee=we?Symbol.for("react.strict_mode"):60108,Ve=we?Symbol.for("react.profiler"):60114,Ne=we?Symbol.for("react.provider"):60109,Me=we?Symbol.for("react.context"):60110,xe=we?Symbol.for("react.async_mode"):60111,Be=we?Symbol.for("react.concurrent_mode"):60111,De=we?Symbol.for("react.forward_ref"):60112,Te=we?Symbol.for("react.suspense"):60113,Qe=we?Symbol.for("react.suspense_list"):60120,Ze=we?Symbol.for("react.memo"):60115,je=we?Symbol.for("react.lazy"):60116,Pe=we?Symbol.for("react.block"):60121,Ue=we?Symbol.for("react.fundamental"):60117,Oe=we?Symbol.for("react.responder"):60118,qe=we?Symbol.for("react.scope"):60119;function Je(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case Ce:switch(e=e.type){case xe:case Be:case Se:case Ve:case Ee:case Te:return e;default:switch(e=e&&e.$$typeof){case Me:case De:case je:case Ze:case Ne:return e;default:return t}}case ve:return t}}}function Ke(e){return Je(e)===Be}var Ge={AsyncMode:xe,ConcurrentMode:Be,ContextConsumer:Me,ContextProvider:Ne,Element:Ce,ForwardRef:De,Fragment:Se,Lazy:je,Memo:Ze,Portal:ve,Profiler:Ve,StrictMode:Ee,Suspense:Te,isAsyncMode:function(e){return Ke(e)||Je(e)===xe},isConcurrentMode:Ke,isContextConsumer:function(e){return Je(e)===Me},isContextProvider:function(e){return Je(e)===Ne},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===Ce},isForwardRef:function(e){return Je(e)===De},isFragment:function(e){return Je(e)===Se},isLazy:function(e){return Je(e)===je},isMemo:function(e){return Je(e)===Ze},isPortal:function(e){return Je(e)===ve},isProfiler:function(e){return Je(e)===Ve},isStrictMode:function(e){return Je(e)===Ee},isSuspense:function(e){return Je(e)===Te},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===Se||e===Be||e===Ve||e===Ee||e===Te||e===Qe||"object"==typeof e&&null!==e&&(e.$$typeof===je||e.$$typeof===Ze||e.$$typeof===Ne||e.$$typeof===Me||e.$$typeof===De||e.$$typeof===Ue||e.$$typeof===Oe||e.$$typeof===qe||e.$$typeof===Pe)},typeOf:Je},Re=f(function(e,t){"production"!==process.env.NODE_ENV&&function(){var e="function"==typeof Symbol&&Symbol.for,n=e?Symbol.for("react.element"):60103,A=e?Symbol.for("react.portal"):60106,o=e?Symbol.for("react.fragment"):60107,r=e?Symbol.for("react.strict_mode"):60108,i=e?Symbol.for("react.profiler"):60114,s=e?Symbol.for("react.provider"):60109,a=e?Symbol.for("react.context"):60110,c=e?Symbol.for("react.async_mode"):60111,l=e?Symbol.for("react.concurrent_mode"):60111,u=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,p=e?Symbol.for("react.suspense_list"):60120,g=e?Symbol.for("react.memo"):60115,d=e?Symbol.for("react.lazy"):60116,m=e?Symbol.for("react.block"):60121,f=e?Symbol.for("react.fundamental"):60117,b=e?Symbol.for("react.responder"):60118,y=e?Symbol.for("react.scope"):60119;function I(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:var p=e.type;switch(p){case c:case l:case o:case i:case r:case h:return p;default:var m=p&&p.$$typeof;switch(m){case a:case u:case d:case g:case s:return m;default:return t}}case A:return t}}}var k=c,w=l,C=a,v=s,S=n,E=u,V=o,N=d,M=g,x=A,B=i,D=r,T=h,Q=!1;function Z(e){return I(e)===l}t.AsyncMode=k,t.ConcurrentMode=w,t.ContextConsumer=C,t.ContextProvider=v,t.Element=S,t.ForwardRef=E,t.Fragment=V,t.Lazy=N,t.Memo=M,t.Portal=x,t.Profiler=B,t.StrictMode=D,t.Suspense=T,t.isAsyncMode=function(e){return Q||(Q=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),Z(e)||I(e)===c},t.isConcurrentMode=Z,t.isContextConsumer=function(e){return I(e)===a},t.isContextProvider=function(e){return I(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return I(e)===u},t.isFragment=function(e){return I(e)===o},t.isLazy=function(e){return I(e)===d},t.isMemo=function(e){return I(e)===g},t.isPortal=function(e){return I(e)===A},t.isProfiler=function(e){return I(e)===i},t.isStrictMode=function(e){return I(e)===r},t.isSuspense=function(e){return I(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===l||e===i||e===r||e===h||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===d||e.$$typeof===g||e.$$typeof===s||e.$$typeof===a||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===y||e.$$typeof===m)},t.typeOf=I}()}),Fe=f(function(e){"production"===process.env.NODE_ENV?e.exports=Ge:e.exports=Re}),Le=Object.getOwnPropertySymbols,ze=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable;var Ye=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var A=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==A.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(e){o[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,A,o=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),r=1;r<arguments.length;r++){for(var i in n=Object(arguments[r]))ze.call(n,i)&&(o[i]=n[i]);if(Le){A=Le(n);for(var s=0;s<A.length;s++)We.call(n,A[s])&&(o[A[s]]=n[A[s]])}}return o},_e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",He=function(){};if("production"!==process.env.NODE_ENV){var Xe=_e,$e={},et=Function.call.bind(Object.prototype.hasOwnProperty);He=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}}function tt(e,t,n,A,o){if("production"!==process.env.NODE_ENV)for(var r in e)if(et(e,r)){var i;try{if("function"!=typeof e[r]){var s=Error((A||"React class")+": "+n+" type `"+r+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[r]+"`.");throw s.name="Invariant Violation",s}i=e[r](t,r,A,n,null,Xe)}catch(e){i=e}if(!i||i instanceof Error||He((A||"React class")+": type specification of "+n+" `"+r+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof i+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),i instanceof Error&&!(i.message in $e)){$e[i.message]=!0;var a=o?o():"";He("Failed "+n+" type: "+i.message+(null!=a?a:""))}}}tt.resetWarningCache=function(){"production"!==process.env.NODE_ENV&&($e={})};var nt=tt,At=Function.call.bind(Object.prototype.hasOwnProperty),ot=function(){};function rt(){return null}"production"!==process.env.NODE_ENV&&(ot=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}});var it=function(e,t){var n="function"==typeof Symbol&&Symbol.iterator;var A="<<anonymous>>",o={array:a("array"),bool:a("boolean"),func:a("function"),number:a("number"),object:a("object"),string:a("string"),symbol:a("symbol"),any:s(rt),arrayOf:function(e){return s(function(t,n,A,o,r){if("function"!=typeof e)return new i("Property `"+r+"` of component `"+A+"` has invalid PropType notation inside arrayOf.");var s=t[n];if(!Array.isArray(s))return new i("Invalid "+o+" `"+r+"` of type `"+l(s)+"` supplied to `"+A+"`, expected an array.");for(var a=0;a<s.length;a++){var c=e(s,a,A,o,r+"["+a+"]",_e);if(c instanceof Error)return c}return null})},element:s(function(t,n,A,o,r){var s=t[n];return e(s)?null:new i("Invalid "+o+" `"+r+"` of type `"+l(s)+"` supplied to `"+A+"`, expected a single ReactElement.")}),elementType:s(function(e,t,n,A,o){var r=e[t];return Fe.isValidElementType(r)?null:new i("Invalid "+A+" `"+o+"` of type `"+l(r)+"` supplied to `"+n+"`, expected a single ReactElement type.")}),instanceOf:function(e){return s(function(t,n,o,r,s){if(!(t[n]instanceof e)){var a=e.name||A;return new i("Invalid "+r+" `"+s+"` of type `"+(((c=t[n]).constructor&&c.constructor.name?c.constructor.name:A)+"` supplied to `")+o+"`, expected instance of `"+a+"`.")}var c;return null})},node:s(function(e,t,n,A,o){return c(e[t])?null:new i("Invalid "+A+" `"+o+"` supplied to `"+n+"`, expected a ReactNode.")}),objectOf:function(e){return s(function(t,n,A,o,r){if("function"!=typeof e)return new i("Property `"+r+"` of component `"+A+"` has invalid PropType notation inside objectOf.");var s=t[n],a=l(s);if("object"!==a)return new i("Invalid "+o+" `"+r+"` of type `"+a+"` supplied to `"+A+"`, expected an object.");for(var c in s)if(At(s,c)){var u=e(s,c,A,o,r+"."+c,_e);if(u instanceof Error)return u}return null})},oneOf:function(e){if(!Array.isArray(e))return"production"!==process.env.NODE_ENV&&ot(arguments.length>1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),rt;return s(function(t,n,A,o,s){for(var a=t[n],c=0;c<e.length;c++)if(r(a,e[c]))return null;var l=JSON.stringify(e,function(e,t){return"symbol"===u(t)?String(t):t});return new i("Invalid "+o+" `"+s+"` of value `"+String(a)+"` supplied to `"+A+"`, expected one of "+l+".")})},oneOfType:function(e){if(!Array.isArray(e))return"production"!==process.env.NODE_ENV&&ot("Invalid argument supplied to oneOfType, expected an instance of array."),rt;for(var t=0;t<e.length;t++){var n=e[t];if("function"!=typeof n)return ot("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+h(n)+" at index "+t+"."),rt}return s(function(t,n,A,o,r){for(var s=0;s<e.length;s++)if(null==(0,e[s])(t,n,A,o,r,_e))return null;return new i("Invalid "+o+" `"+r+"` supplied to `"+A+"`.")})},shape:function(e){return s(function(t,n,A,o,r){var s=t[n],a=l(s);if("object"!==a)return new i("Invalid "+o+" `"+r+"` of type `"+a+"` supplied to `"+A+"`, expected `object`.");for(var c in e){var u=e[c];if(u){var h=u(s,c,A,o,r+"."+c,_e);if(h)return h}}return null})},exact:function(e){return s(function(t,n,A,o,r){var s=t[n],a=l(s);if("object"!==a)return new i("Invalid "+o+" `"+r+"` of type `"+a+"` supplied to `"+A+"`, expected `object`.");var c=Ye({},t[n],e);for(var u in c){var h=e[u];if(!h)return new i("Invalid "+o+" `"+r+"` key `"+u+"` supplied to `"+A+"`.\nBad object: "+JSON.stringify(t[n],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null," "));var p=h(s,u,A,o,r+"."+u,_e);if(p)return p}return null})}};function r(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function i(e){this.message=e,this.stack=""}function s(e){if("production"!==process.env.NODE_ENV)var n={},o=0;function r(r,s,a,c,l,u,h){if(c=c||A,u=u||a,h!==_e){if(t){var p=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw p.name="Invariant Violation",p}if("production"!==process.env.NODE_ENV&&"undefined"!=typeof console){var g=c+":"+a;!n[g]&&o<3&&(ot("You are manually calling a React.PropTypes validation function for the `"+u+"` prop on `"+c+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),n[g]=!0,o++)}}return null==s[a]?r?null===s[a]?new i("The "+l+" `"+u+"` is marked as required in `"+c+"`, but its value is `null`."):new i("The "+l+" `"+u+"` is marked as required in `"+c+"`, but its value is `undefined`."):null:e(s,a,c,l,u)}var s=r.bind(null,!1);return s.isRequired=r.bind(null,!0),s}function a(e){return s(function(t,n,A,o,r,s){var a=t[n];return l(a)!==e?new i("Invalid "+o+" `"+r+"` of type `"+u(a)+"` supplied to `"+A+"`, expected `"+e+"`."):null})}function c(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(c);if(null===t||e(t))return!0;var A=function(e){var t=e&&(n&&e[n]||e["@@iterator"]);if("function"==typeof t)return t}(t);if(!A)return!1;var o,r=A.call(t);if(A!==t.entries){for(;!(o=r.next()).done;)if(!c(o.value))return!1}else for(;!(o=r.next()).done;){var i=o.value;if(i&&!c(i[1]))return!1}return!0;default:return!1}}function l(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,t){return"symbol"===e||!!t&&("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}(t,e)?"symbol":t}function u(e){if(null==e)return""+e;var t=l(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function h(e){var t=u(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}return i.prototype=Error.prototype,o.checkPropTypes=nt,o.resetWarningCache=nt.resetWarningCache,o.PropTypes=o,o};function st(){}function at(){}at.resetWarningCache=st;var ct=f(function(e){if("production"!==process.env.NODE_ENV){var t=Fe;e.exports=it(t.isElement,!0)}else e.exports=function(){function e(e,t,n,A,o,r){if(r!==_e){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:at,resetWarningCache:st};return n.PropTypes=n,n}()});const lt=["white","black"],ut=["a","b","c","d","e","f","g","h"],ht=["1","2","3","4","5","6","7","8"],pt=[...ht].reverse(),gt=Array.prototype.concat(...ut.map(e=>ht.map(t=>e+t))),dt=e=>gt[8*e[0]+e[1]],mt=e=>[e.charCodeAt(0)-97,e.charCodeAt(1)-49],ft=gt.map(mt);const bt=()=>{let e;return{start(){e=performance.now()},cancel(){e=void 0},stop(){if(!e)return 0;const t=performance.now()-e;return e=void 0,t}}},yt=e=>"white"===e?"black":"white",It=(e,t)=>{const n=e[0]-t[0],A=e[1]-t[1];return n*n+A*A},kt=(e,t)=>e.role===t.role&&e.color===t.color,wt=(e,t,n,A)=>[(t?e[0]:7-e[0])*n,(t?7-e[1]:e[1])*A],Ct=e=>{const t=e.width/8,n=e.height/8;return(e,A)=>wt(e,A,t,n)},vt=(e,t)=>wt(e,t,100,100),St=(e,t)=>{e.style.transform=`translate(${t[0]}px,${t[1]}px)`},Et=(e,t)=>{e.style.transform=`translate(${t[0]}%,${t[1]}%)`},Vt=(e,t)=>{e.style.visibility=t?"visible":"hidden"},Nt=e=>{var t;return e.clientX||0===e.clientX?[e.clientX,e.clientY]:(null===(t=e.targetTouches)||void 0===t?void 0:t[0])?[e.targetTouches[0].clientX,e.targetTouches[0].clientY]:void 0},Mt=e=>2===e.buttons||2===e.button,xt=(e,t)=>{const n=document.createElement(e);return t&&(n.className=t),n};function Bt(e,t,n){const A=mt(e);return t||(A[0]=7-A[0],A[1]=7-A[1]),[n.left+n.width*A[0]/8+n.width/16,n.top+n.height*(7-A[1])/8+n.height/16]}function Dt(e,t){return Math.abs(e-t)}const Tt=(e,t,n,A)=>{const o=Dt(e,n),r=Dt(t,A);return 1===o&&2===r||2===o&&1===r},Qt=(e,t,n,A)=>Dt(e,n)===Dt(t,A),Zt=(e,t,n,A)=>e===n||t===A,jt=(e,t,n,A)=>Qt(e,t,n,A)||Zt(e,t,n,A);function Pt(e,t,n){const A=e.get(t);if(!A)return[];const o=mt(t),r=A.role,i="pawn"===r?(s=A.color,(e,t,n,A)=>Dt(e,n)<2&&("white"===s?A===t+1||t<=1&&A===t+2&&e===n:A===t-1||t>=6&&A===t-2&&e===n)):"knight"===r?Tt:"bishop"===r?Qt:"rook"===r?Zt:"queen"===r?jt:function(e,t,n){return(A,o,r,i)=>Dt(A,r)<2&&Dt(o,i)<2||n&&o===i&&o===("white"===e?0:7)&&(4===A&&(2===r&&t.includes(0)||6===r&&t.includes(7))||t.includes(r))}(A.color,function(e,t){const n="white"===t?"1":"8",A=[];for(const[o,r]of e)o[1]===n&&r.color===t&&"rook"===r.role&&A.push(mt(o)[0]);return A}(e,A.color),n);var s;return ft.filter(e=>(o[0]!==e[0]||o[1]!==e[1])&&i(o[0],o[1],e[0],e[1])).map(dt)}function Ut(e,...t){e&&setTimeout(()=>e(...t),1)}function Ot(e){e.premovable.current&&(e.premovable.current=void 0,Ut(e.premovable.events.unset))}function qt(e){const t=e.predroppable;t.current&&(t.current=void 0,Ut(t.events.unset))}function Jt(e,t,n){const A=e.pieces.get(t),o=e.pieces.get(n);if(t===n||!A)return!1;const r=o&&o.color!==A.color?o:void 0;return n===e.selected&&Wt(e),Ut(e.events.move,t,n,r),function(e,t,n){if(!e.autoCastle)return!1;const A=e.pieces.get(t);if(!A||"king"!==A.role)return!1;const o=mt(t),r=mt(n);if(0!==o[1]&&7!==o[1]||o[1]!==r[1])return!1;4!==o[0]||e.pieces.has(n)||(6===r[0]?n=dt([7,r[1]]):2===r[0]&&(n=dt([0,r[1]])));const i=e.pieces.get(n);return!(!i||i.color!==A.color||"rook"!==i.role||(e.pieces.delete(t),e.pieces.delete(n),o[0]<r[0]?(e.pieces.set(dt([6,r[1]]),A),e.pieces.set(dt([5,r[1]]),i)):(e.pieces.set(dt([2,r[1]]),A),e.pieces.set(dt([3,r[1]]),i)),0))}(e,t,n)||(e.pieces.set(n,A),e.pieces.delete(t)),e.lastMove=[t,n],e.check=void 0,Ut(e.events.change),r||!0}function Kt(e,t,n,A){if(e.pieces.has(n)){if(!A)return!1;e.pieces.delete(n)}return Ut(e.events.dropNewPiece,t,n),e.pieces.set(n,t),e.lastMove=[n],e.check=void 0,Ut(e.events.change),e.movable.dests=void 0,e.turnColor=yt(e.turnColor),!0}function Gt(e,t,n){const A=Jt(e,t,n);return A&&(e.movable.dests=void 0,e.turnColor=yt(e.turnColor),e.animation.current=void 0),A}function Rt(e,t,n){if(_t(e,t,n)){const A=Gt(e,t,n);if(A){const o=e.hold.stop();Wt(e);const r={premove:!1,ctrlKey:e.stats.ctrlKey,holdTime:o};return!0!==A&&(r.captured=A),Ut(e.movable.events.after,t,n,r),!0}}else if(function(e,t,n){return t!==n&&Ht(e,t)&&Pt(e.pieces,t,e.premovable.castle).includes(n)}(e,t,n))return function(e,t,n,A){qt(e),e.premovable.current=[t,n],Ut(e.premovable.events.set,t,n,A)}(e,t,n,{ctrlKey:e.stats.ctrlKey}),Wt(e),!0;return Wt(e),!1}function Ft(e,t,n,A){const o=e.pieces.get(t);o&&(function(e,t,n){const A=e.pieces.get(t);return!(!A||t!==n&&e.pieces.has(n)||"both"!==e.movable.color&&(e.movable.color!==A.color||e.turnColor!==A.color))}(e,t,n)||A)?(e.pieces.delete(t),Kt(e,o,n,A),Ut(e.movable.events.afterNewPiece,o.role,n,{premove:!1,predrop:!1})):o&&function(e,t,n){const A=e.pieces.get(t),o=e.pieces.get(n);return!!A&&(!o||o.color!==e.movable.color)&&e.predroppable.enabled&&("pawn"!==A.role||"1"!==n[1]&&"8"!==n[1])&&e.movable.color===A.color&&e.turnColor!==A.color}(e,t,n)?function(e,t,n){Ot(e),e.predroppable.current={role:t,key:n},Ut(e.predroppable.events.set,t,n)}(e,o.role,n):(Ot(e),qt(e)),e.pieces.delete(t),Wt(e)}function Lt(e,t,n){if(Ut(e.events.select,t),e.selected){if(e.selected===t&&!e.draggable.enabled)return Wt(e),void e.hold.cancel();if((e.selectable.enabled||n)&&e.selected!==t&&Rt(e,e.selected,t))return void(e.stats.dragged=!1)}(Yt(e,t)||Ht(e,t))&&(zt(e,t),e.hold.start())}function zt(e,t){e.selected=t,Ht(e,t)?e.premovable.dests=Pt(e.pieces,t,e.premovable.castle):e.premovable.dests=void 0}function Wt(e){e.selected=void 0,e.premovable.dests=void 0,e.hold.cancel()}function Yt(e,t){const n=e.pieces.get(t);return!!n&&("both"===e.movable.color||e.movable.color===n.color&&e.turnColor===n.color)}function _t(e,t,n){var A,o;return t!==n&&Yt(e,t)&&(e.movable.free||!!(null===(o=null===(A=e.movable.dests)||void 0===A?void 0:A.get(t))||void 0===o?void 0:o.includes(n)))}function Ht(e,t){const n=e.pieces.get(t);return!!n&&e.premovable.enabled&&e.movable.color===n.color&&e.turnColor!==n.color}function Xt(e){const t=e.premovable.current;if(!t)return!1;const n=t[0],A=t[1];let o=!1;if(_t(e,n,A)){const t=Gt(e,n,A);if(t){const r={premove:!0};!0!==t&&(r.captured=t),Ut(e.movable.events.after,n,A,r),o=!0}}return Ot(e),o}function $t(e){Ot(e),qt(e),Wt(e)}function en(e){e.movable.color=e.movable.dests=e.animation.current=void 0,$t(e)}function tn(e,t,n){let A=Math.floor(8*(e[0]-n.left)/n.width);t||(A=7-A);let o=7-Math.floor(8*(e[1]-n.top)/n.height);return t||(o=7-o),A>=0&&A<8&&o>=0&&o<8?dt([A,o]):void 0}function nn(e){return"white"===e.orientation}const An="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR",on={p:"pawn",r:"rook",n:"knight",b:"bishop",q:"queen",k:"king"},rn={pawn:"p",rook:"r",knight:"n",bishop:"b",queen:"q",king:"k"};function sn(e){"start"===e&&(e=An);const t=new Map;let n=7,A=0;for(const o of e)switch(o){case" ":return t;case"/":if(--n,n<0)return t;A=0;break;case"~":{const e=t.get(dt([A,n]));e&&(e.promoted=!0);break}default:{const e=o.charCodeAt(0);if(e<57)A+=e-48;else{const e=o.toLowerCase();t.set(dt([A,n]),{role:on[e],color:o===e?"black":"white"}),++A}}}return t}function an(e,t){var n,A;if((null===(n=t.movable)||void 0===n?void 0:n.dests)&&(e.movable.dests=void 0),(null===(A=t.drawable)||void 0===A?void 0:A.autoShapes)&&(e.drawable.autoShapes=[]),cn(e,t),t.fen&&(e.pieces=sn(t.fen),e.drawable.shapes=[]),"check"in t&&function(e,t){if(e.check=void 0,!0===t&&(t=e.turnColor),t)for(const[n,A]of e.pieces)"king"===A.role&&A.color===t&&(e.check=n)}(e,t.check||!1),"lastMove"in t&&!t.lastMove?e.lastMove=void 0:t.lastMove&&(e.lastMove=t.lastMove),e.selected&&zt(e,e.selected),(!e.animation.duration||e.animation.duration<100)&&(e.animation.enabled=!1),!e.movable.rookCastle&&e.movable.dests){const t="white"===e.movable.color?"1":"8",n="e"+t,A=e.movable.dests.get(n),o=e.pieces.get(n);if(!A||!o||"king"!==o.role)return;e.movable.dests.set(n,A.filter(e=>!(e==="a"+t&&A.includes("c"+t)||e==="h"+t&&A.includes("g"+t))))}}function cn(e,t){for(const n in t)ln(e[n])&&ln(t[n])?cn(e[n],t[n]):e[n]=t[n]}function ln(e){return"object"==typeof e}function un(e,t){return t.animation.enabled?function(e,t){const n=new Map(t.pieces),A=e(t),o=function(e,t){const n=new Map,A=[],o=new Map,r=[],i=[],s=new Map;let a,c,l;for(const[t,n]of e)s.set(t,pn(t,n));for(const e of gt)a=t.pieces.get(e),c=s.get(e),a?c?kt(a,c.piece)||(r.push(c),i.push(pn(e,a))):i.push(pn(e,a)):c&&r.push(c);for(const e of i)c=gn(e,r.filter(t=>kt(e.piece,t.piece))),c&&(l=[c.pos[0]-e.pos[0],c.pos[1]-e.pos[1]],n.set(e.key,l.concat(l)),A.push(c.key));for(const e of r)A.includes(e.key)||o.set(e.key,e.piece);return{anims:n,fadings:o}}(n,t);if(o.anims.size||o.fadings.size){const e=t.animation.current&&t.animation.current.start;t.animation.current={start:performance.now(),frequency:1/t.animation.duration,plan:o},e||dn(t,performance.now())}else t.dom.redraw();return A}(e,t):hn(e,t)}function hn(e,t){const n=e(t);return t.dom.redraw(),n}function pn(e,t){return{key:e,pos:mt(e),piece:t}}function gn(e,t){return t.sort((t,n)=>It(e.pos,t.pos)-It(e.pos,n.pos))[0]}function dn(e,t){const n=e.animation.current;if(void 0===n)return void(e.dom.destroyed||e.dom.redrawNow());const A=1-(t-n.start)*n.frequency;if(A<=0)e.animation.current=void 0,e.dom.redrawNow();else{const t=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1}(A);for(const e of n.plan.anims.values())e[2]=e[0]*t,e[3]=e[1]*t;e.dom.redrawNow(!0),requestAnimationFrame((t=performance.now())=>dn(e,t))}}const mn=["green","red","blue","yellow"];function fn(e,t){if(t.touches&&t.touches.length>1)return;t.stopPropagation(),t.preventDefault(),t.ctrlKey?Wt(e):$t(e);const n=Nt(t),A=tn(n,nn(e),e.dom.bounds());A&&(e.drawable.current={orig:A,pos:n,brush:wn(t),snapToValidMove:e.drawable.defaultSnapToValidMove},bn(e))}function bn(e){requestAnimationFrame(()=>{const t=e.drawable.current;if(t){const n=tn(t.pos,nn(e),e.dom.bounds());n||(t.snapToValidMove=!1);const A=t.snapToValidMove?function(e,t,n,A){const o=mt(e),r=ft.filter(e=>jt(o[0],o[1],e[0],e[1])||Tt(o[0],o[1],e[0],e[1])),i=r.map(e=>Bt(dt(e),n,A)).map(e=>It(t,e)),[,s]=i.reduce((e,t,n)=>e[0]<t?e:[t,n],[i[0],0]);return dt(r[s])}(t.orig,t.pos,nn(e),e.dom.bounds()):n;A!==t.mouseSq&&(t.mouseSq=A,t.dest=A!==t.orig?A:void 0,e.dom.redrawNow()),bn(e)}})}function yn(e,t){e.drawable.current&&(e.drawable.current.pos=Nt(t))}function In(e){const t=e.drawable.current;t&&(t.mouseSq&&function(e,t){const n=e=>e.orig===t.orig&&e.dest===t.dest,A=e.shapes.find(n);A&&(e.shapes=e.shapes.filter(e=>!n(e)));A&&A.brush===t.brush||e.shapes.push(t);Cn(e)}(e.drawable,t),kn(e))}function kn(e){e.drawable.current&&(e.drawable.current=void 0,e.dom.redraw())}function wn(e){var t;const n=(e.shiftKey||e.ctrlKey)&&Mt(e),A=e.altKey||e.metaKey||(null===(t=e.getModifierState)||void 0===t?void 0:t.call(e,"AltGraph"));return mn[(n?1:0)+(A?2:0)]}function Cn(e){e.onChange&&e.onChange(e.shapes)}function vn(e,t){if(!t.isTrusted||void 0!==t.button&&0!==t.button)return;if(t.touches&&t.touches.length>1)return;const n=e.dom.bounds(),A=Nt(t),o=tn(A,nn(e),n);if(!o)return;const r=e.pieces.get(o),i=e.selected;i||!e.drawable.enabled||!e.drawable.eraseOnClick&&r&&r.color===e.turnColor||function(e){e.drawable.shapes.length&&(e.drawable.shapes=[],e.dom.redraw(),Cn(e.drawable))}(e),!1===t.cancelable||t.touches&&e.movable.color&&!r&&!i&&!function(e,t){const n=nn(e),A=e.dom.bounds(),o=Math.pow(A.width/8,2);for(const r in e.pieces){const e=Bt(r,n,A);if(It(e,t)<=o)return!0}return!1}(e,A)||t.preventDefault();const s=!!e.premovable.current,a=!!e.predroppable.current;e.stats.ctrlKey=t.ctrlKey,e.selected&&_t(e,e.selected,o)?un(e=>Lt(e,o),e):Lt(e,o);const c=e.selected===o,l=xn(e,o);if(r&&l&&c&&function(e,t){const n=e.pieces.get(t);return!!n&&e.draggable.enabled&&("both"===e.movable.color||e.movable.color===n.color&&(e.turnColor===n.color||e.premovable.enabled))}(e,o)){e.draggable.current={orig:o,piece:r,origPos:A,pos:A,started:e.draggable.autoDistance&&e.stats.dragged,element:l,previouslySelected:i,originTarget:t.target},l.cgDragging=!0,l.classList.add("dragging");const s=e.dom.elements.ghost;s&&(s.className=`ghost ${r.color} ${r.role}`,St(s,Ct(n)(mt(o),nn(e))),Vt(s,!0)),Sn(e)}else s&&Ot(e),a&&qt(e);e.dom.redraw()}function Sn(e){requestAnimationFrame(()=>{var t;const n=e.draggable.current;if(!n)return;(null===(t=e.animation.current)||void 0===t?void 0:t.plan.anims.has(n.orig))&&(e.animation.current=void 0);const A=e.pieces.get(n.orig);if(A&&kt(A,n.piece)){if(!n.started&&It(n.pos,n.origPos)>=Math.pow(e.draggable.distance,2)&&(n.started=!0),n.started){if("function"==typeof n.element){const e=n.element();if(!e)return;e.cgDragging=!0,e.classList.add("dragging"),n.element=e}const t=e.dom.bounds();St(n.element,[n.pos[0]-t.left-t.width/16,n.pos[1]-t.top-t.height/16])}}else Nn(e);Sn(e)})}function En(e,t){e.draggable.current&&(!t.touches||t.touches.length<2)&&(e.draggable.current.pos=Nt(t))}function Vn(e,t){const n=e.draggable.current;if(!n)return;if("touchend"===t.type&&!1!==t.cancelable&&t.preventDefault(),"touchend"===t.type&&n.originTarget!==t.target&&!n.newPiece)return void(e.draggable.current=void 0);Ot(e),qt(e);const A=tn(Nt(t)||n.pos,nn(e),e.dom.bounds());A&&n.started&&n.orig!==A?n.newPiece?Ft(e,n.orig,A,n.force):(e.stats.ctrlKey=t.ctrlKey,Rt(e,n.orig,A)&&(e.stats.dragged=!0)):n.newPiece?e.pieces.delete(n.orig):e.draggable.deleteOnDropOff&&!A&&(e.pieces.delete(n.orig),Ut(e.events.change)),(n.orig!==n.previouslySelected||n.orig!==A&&A)&&e.selectable.enabled||Wt(e),Mn(e),e.draggable.current=void 0,e.dom.redraw()}function Nn(e){const t=e.draggable.current;t&&(t.newPiece&&e.pieces.delete(t.orig),e.draggable.current=void 0,Wt(e),Mn(e),e.dom.redraw())}function Mn(e){const t=e.dom.elements;t.ghost&&Vt(t.ghost,!1)}function xn(e,t){let n=e.dom.elements.board.firstChild;for(;n;){if(n.cgKey===t&&"PIECE"===n.tagName)return n;n=n.nextSibling}}function Bn(e,t){e.exploding&&(t?e.exploding.stage=t:e.exploding=void 0,e.dom.redraw())}function Dn(e,t){function n(){!function(e){e.orientation=yt(e.orientation),e.animation.current=e.draggable.current=e.selected=void 0}(e),t()}return{set(t){t.orientation&&t.orientation!==e.orientation&&n(),(t.fen?un:hn)(e=>an(e,t),e)},state:e,getFen:()=>{return t=e.pieces,pt.map(e=>ut.map(n=>{const A=t.get(n+e);if(A){const e=rn[A.role];return"white"===A.color?e.toUpperCase():e}return"1"}).join("")).join("/").replace(/1{2,}/g,e=>e.length.toString());var t},toggleOrientation:n,setPieces(t){un(e=>function(e,t){for(const[n,A]of t)A?e.pieces.set(n,A):e.pieces.delete(n)}(e,t),e)},selectSquare(t,n){t?un(e=>Lt(e,t,n),e):e.selected&&(Wt(e),e.dom.redraw())},move(t,n){un(e=>Jt(e,t,n),e)},newPiece(t,n){un(e=>Kt(e,t,n),e)},playPremove(){if(e.premovable.current){if(un(Xt,e))return!0;e.dom.redraw()}return!1},playPredrop(t){if(e.predroppable.current){const n=function(e,t){const n=e.predroppable.current;let A=!1;if(!n)return!1;t(n)&&Kt(e,{role:n.role,color:e.movable.color},n.key)&&(Ut(e.movable.events.afterNewPiece,n.role,n.key,{premove:!1,predrop:!0}),A=!0);return qt(e),A}(e,t);return e.dom.redraw(),n}return!1},cancelPremove(){hn(Ot,e)},cancelPredrop(){hn(qt,e)},cancelMove(){hn(e=>{$t(e),Nn(e)},e)},stop(){hn(e=>{en(e),Nn(e)},e)},explode(t){!function(e,t){e.exploding={stage:1,keys:t},e.dom.redraw(),setTimeout(()=>{Bn(e,2),setTimeout(()=>Bn(e,void 0),120)},120)}(e,t)},setAutoShapes(t){hn(e=>e.drawable.autoShapes=t,e)},setShapes(t){hn(e=>e.drawable.shapes=t,e)},getKeyAtDomPos:t=>tn(t,nn(e),e.dom.bounds()),redrawAll:t,dragNewPiece(t,n,A){!function(e,t,n,A){const o="a0";e.pieces.set(o,t),e.dom.redraw();const r=Nt(n);e.draggable.current={orig:o,piece:t,origPos:r,pos:r,started:!0,element:()=>xn(e,o),originTarget:n.target,newPiece:!0,force:!!A},Sn(e)}(e,t,n,A)},destroy(){en(e),e.dom.unbind&&e.dom.unbind(),e.dom.destroyed=!0}}}function Tn(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function Qn(e,t,n){const A=e.drawable,o=A.current,r=o&&o.mouseSq?o:void 0,i=new Map,s=e.dom.bounds();for(const e of A.shapes.concat(A.autoShapes).concat(r?[r]:[]))e.dest&&i.set(e.dest,(i.get(e.dest)||0)+1);const a=A.shapes.concat(A.autoShapes).map(e=>({shape:e,current:!1,hash:jn(e,i,!1,s)}));r&&a.push({shape:r,current:!0,hash:jn(r,i,!0,s)});const c=a.map(e=>e.hash).join(";");if(c===e.drawable.prevSvgHash)return;e.drawable.prevSvgHash=c;const l=t.querySelector("defs"),u=t.querySelector("g"),h=n.querySelector("g");!function(e,t,n){const A=new Map;let o;for(const n of t)n.shape.dest&&(o=e.brushes[n.shape.brush],n.shape.modifiers&&(o=Rn(o,n.shape.modifiers)),A.set(o.key,o));const r=new Set;let i=n.firstChild;for(;i;)r.add(i.getAttribute("cgKey")),i=i.nextSibling;for(const[e,t]of A.entries())r.has(e)||n.appendChild(Jn(t))}(A,a,l),Zn(e,a.filter(e=>!e.shape.customSvg),A.brushes,i,u),Zn(e,a.filter(e=>e.shape.customSvg),A.brushes,i,h)}function Zn(e,t,n,A,o){const r=e.dom.bounds(),i=new Map,s=[];for(const e of t)i.set(e.hash,!1);let a,c=o.firstChild;for(;c;)a=c.getAttribute("cgHash"),i.has(a)?i.set(a,!0):s.push(c),c=c.nextSibling;for(const e of s)o.removeChild(e);for(const s of t)i.get(s.hash)||o.appendChild(qn(e,s,n,A,r))}function jn({orig:e,dest:t,brush:n,piece:A,modifiers:o,customSvg:r},i,s,a){return[a.width,a.height,s,e,t,n,t&&(i.get(t)||0)>1,A&&Pn(A),o&&Un(o),r&&On(r)].filter(e=>e).join(",")}function Pn(e){return[e.color,e.role,e.scale].filter(e=>e).join(",")}function Un(e){return""+(e.lineWidth||"")}function On(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)>>>0;return"custom-"+t.toString()}function qn(e,{shape:t,current:n,hash:A},o,r,i){let s;if(t.customSvg){const n=Gn(mt(t.orig),e.orientation);s=function(e,t,n){const{width:A,height:o}=n,r=A/8,i=o/8,s=t[0]*r,a=(7-t[1])*i,c=Kn(Tn("g"),{transform:`translate(${s},${a})`}),l=Kn(Tn("svg"),{width:r,height:i,viewBox:"0 0 100 100"});return c.appendChild(l),l.innerHTML=e,c}(t.customSvg,n,i)}else if(t.piece)s=function(e,t,n,A){const o=zn(t,A),r=A.width/8*(n.scale||1),i=n.color[0]+("knight"===n.role?"n":n.role[0]).toUpperCase();return Kn(Tn("image"),{className:`${n.role} ${n.color}`,x:o[0]-r/2,y:o[1]-r/2,width:r,height:r,href:e+i+".svg"})}(e.drawable.pieces.baseUrl,Gn(mt(t.orig),e.orientation),t.piece,i);else{const A=Gn(mt(t.orig),e.orientation);if(t.dest){let a=o[t.brush];t.modifiers&&(a=Rn(a,t.modifiers)),s=function(e,t,n,A,o,r){const i=function(e,t){return(t?20:10)/512*e.width}(r,o&&!A),s=zn(t,r),a=zn(n,r),c=a[0]-s[0],l=a[1]-s[1],u=Math.atan2(l,c),h=Math.cos(u)*i,p=Math.sin(u)*i;return Kn(Tn("line"),{stroke:e.color,"stroke-width":Fn(e,A,r),"stroke-linecap":"round","marker-end":"url(#arrowhead-"+e.key+")",opacity:Ln(e,A),x1:s[0],y1:s[1],x2:a[0]-h,y2:a[1]-p})}(a,A,Gn(mt(t.dest),e.orientation),n,(r.get(t.dest)||0)>1,i)}else s=function(e,t,n,A){const o=zn(t,A),r=function(e){const t=e.width/512;return[3*t,4*t]}(A),i=(A.width+A.height)/32;return Kn(Tn("circle"),{stroke:e.color,"stroke-width":r[n?0:1],fill:"none",opacity:Ln(e,n),cx:o[0],cy:o[1],r:i-r[1]/2})}(o[t.brush],A,n,i)}return s.setAttribute("cgHash",A),s}function Jn(e){const t=Kn(Tn("marker"),{id:"arrowhead-"+e.key,orient:"auto",markerWidth:4,markerHeight:8,refX:2.05,refY:2.01});return t.appendChild(Kn(Tn("path"),{d:"M0,0 V4 L3,2 Z",fill:e.color})),t.setAttribute("cgKey",e.key),t}function Kn(e,t){for(const n in t)e.setAttribute(n,t[n]);return e}function Gn(e,t){return"white"===t?e:[7-e[0],7-e[1]]}function Rn(e,t){return{color:e.color,opacity:Math.round(10*e.opacity)/10,lineWidth:Math.round(t.lineWidth||e.lineWidth),key:[e.key,t.lineWidth].filter(e=>e).join("")}}function Fn(e,t,n){return(e.lineWidth||10)*(t?.85:1)/512*n.width}function Ln(e,t){return(e.opacity||1)*(t?.9:1)}function zn(e,t){return[(e[0]+.5)*t.width/8,(7.5-e[1])*t.height/8]}function Wn(e,t){const n=xt("coords",t);let A;for(const t of e)A=xt("coord"),A.textContent=t,n.appendChild(A);return n}function Yn(e,t){const n=e.dom.elements.board;if(!e.dom.relative&&e.resizable&&"ResizeObserver"in window){new window.ResizeObserver(t).observe(n)}if(e.viewOnly)return;const A=function(e){return t=>{e.draggable.current?Nn(e):e.drawable.current?kn(e):t.shiftKey||Mt(t)?e.drawable.enabled&&fn(e,t):e.viewOnly||(e.dropmode.active?function(e,t){if(!e.dropmode.active)return;Ot(e),qt(e);const n=e.dropmode.piece;if(n){e.pieces.set("a0",n);const A=Nt(t),o=A&&tn(A,nn(e),e.dom.bounds());o&&Ft(e,"a0",o)}e.dom.redraw()}(e,t):vn(e,t))}}(e);n.addEventListener("touchstart",A,{passive:!1}),n.addEventListener("mousedown",A,{passive:!1}),(e.disableContextMenu||e.drawable.enabled)&&n.addEventListener("contextmenu",e=>e.preventDefault())}function _n(e,t,n,A){return e.addEventListener(t,n,A),()=>e.removeEventListener(t,n,A)}function Hn(e,t,n){return A=>{e.drawable.current?e.drawable.enabled&&n(e,A):e.viewOnly||t(e,A)}}function Xn(e){const t=nn(e),n=e.dom.relative?vt:Ct(e.dom.bounds()),A=e.dom.relative?Et:St,o=e.dom.elements.board,r=e.pieces,i=e.animation.current,s=i?i.plan.anims:new Map,a=i?i.plan.fadings:new Map,c=e.draggable.current,l=function(e){var t;const n=new Map;if(e.lastMove&&e.highlight.lastMove)for(const t of e.lastMove)oA(n,t,"last-move");e.check&&e.highlight.check&&oA(n,e.check,"check");if(e.selected&&(oA(n,e.selected,"selected"),e.movable.showDests)){const A=null===(t=e.movable.dests)||void 0===t?void 0:t.get(e.selected);if(A)for(const t of A)oA(n,t,"move-dest"+(e.pieces.has(t)?" oc":""));const o=e.premovable.dests;if(o)for(const t of o)oA(n,t,"premove-dest"+(e.pieces.has(t)?" oc":""))}const A=e.premovable.current;if(A)for(const e of A)oA(n,e,"current-premove");else e.predroppable.current&&oA(n,e.predroppable.current.key,"current-premove");const o=e.exploding;if(o)for(const e of o.keys)oA(n,e,"exploding"+o.stage);return n}(e),u=new Set,h=new Set,p=new Map,g=new Map;let d,m,f,b,y,I,k,w,C,v;for(m=o.firstChild;m;){if(d=m.cgKey,$n(m))if(f=r.get(d),y=s.get(d),I=a.get(d),b=m.cgPiece,!m.cgDragging||c&&c.orig===d||(m.classList.remove("dragging"),A(m,n(mt(d),t)),m.cgDragging=!1),!I&&m.cgFading&&(m.cgFading=!1,m.classList.remove("fading")),f){if(y&&m.cgAnimating&&b===AA(f)){const e=mt(d);e[0]+=y[2],e[1]+=y[3],m.classList.add("anim"),A(m,n(e,t))}else m.cgAnimating&&(m.cgAnimating=!1,m.classList.remove("anim"),A(m,n(mt(d),t)),e.addPieceZIndex&&(m.style.zIndex=nA(mt(d),t)));b!==AA(f)||I&&m.cgFading?I&&b===AA(I)?(m.classList.add("fading"),m.cgFading=!0):rA(p,b,m):u.add(d)}else rA(p,b,m);else if(eA(m)){const e=m.className;l.get(d)===e?h.add(d):rA(g,e,m)}m=m.nextSibling}for(const[e,r]of l)if(!h.has(e)){C=g.get(r),v=C&&C.pop();const i=n(mt(e),t);if(v)v.cgKey=e,A(v,i);else{const t=xt("square",r);t.cgKey=e,A(t,i),o.insertBefore(t,o.firstChild)}}for(const[i,a]of r)if(y=s.get(i),!u.has(i))if(k=p.get(AA(a)),w=k&&k.pop(),w){w.cgKey=i,w.cgFading&&(w.classList.remove("fading"),w.cgFading=!1);const o=mt(i);e.addPieceZIndex&&(w.style.zIndex=nA(o,t)),y&&(w.cgAnimating=!0,w.classList.add("anim"),o[0]+=y[2],o[1]+=y[3]),A(w,n(o,t))}else{const r=AA(a),s=xt("piece",r),c=mt(i);s.cgPiece=r,s.cgKey=i,y&&(s.cgAnimating=!0,c[0]+=y[2],c[1]+=y[3]),A(s,n(c,t)),e.addPieceZIndex&&(s.style.zIndex=nA(c,t)),o.appendChild(s)}for(const t of p.values())tA(e,t);for(const t of g.values())tA(e,t)}function $n(e){return"PIECE"===e.tagName}function eA(e){return"SQUARE"===e.tagName}function tA(e,t){for(const n of t)e.dom.elements.board.removeChild(n)}function nA(e,t){let n=2+8*e[1]+(7-e[0]);return t&&(n=67-n),n+""}function AA(e){return`${e.color} ${e.role}`}function oA(e,t,n){const A=e.get(t);A?e.set(t,`${A} ${n}`):e.set(t,n)}function rA(e,t,n){const A=e.get(t);A?A.push(n):e.set(t,[n])}function iA(e,t){const n={pieces:sn(An),orientation:"white",turnColor:"white",coordinates:!0,autoCastle:!0,viewOnly:!1,disableContextMenu:!1,resizable:!0,addPieceZIndex:!1,pieceKey:!1,highlight:{lastMove:!0,check:!0},animation:{enabled:!0,duration:200},movable:{free:!0,color:"both",showDests:!0,events:{},rookCastle:!0},premovable:{enabled:!0,showDests:!0,castle:!0,events:{}},predroppable:{enabled:!1,events:{}},draggable:{enabled:!0,distance:3,autoDistance:!0,showGhost:!0,deleteOnDropOff:!1},dropmode:{active:!1},selectable:{enabled:!0},stats:{dragged:!("ontouchstart"in window)},events:{},drawable:{enabled:!0,visible:!0,defaultSnapToValidMove:!0,eraseOnClick:!0,shapes:[],autoShapes:[],brushes:{green:{key:"g",color:"#15781B",opacity:1,lineWidth:10},red:{key:"r",color:"#882020",opacity:1,lineWidth:10},blue:{key:"b",color:"#003088",opacity:1,lineWidth:10},yellow:{key:"y",color:"#e68f00",opacity:1,lineWidth:10},paleBlue:{key:"pb",color:"#003088",opacity:.4,lineWidth:15},paleGreen:{key:"pg",color:"#15781B",opacity:.4,lineWidth:15},paleRed:{key:"pr",color:"#882020",opacity:.4,lineWidth:15},paleGrey:{key:"pgr",color:"#4a4a4a",opacity:.35,lineWidth:15}},pieces:{baseUrl:"https://lichess1.org/assets/piece/cburnett/"},prevSvgHash:""},hold:bt()};function A(){const t="dom"in n?n.dom.unbind:void 0,A=n.viewOnly&&!n.drawable.visible,o=function(e,t,n){e.innerHTML="",e.classList.add("cg-wrap");for(const n of lt)e.classList.toggle("orientation-"+n,t.orientation===n);e.classList.toggle("manipulable",!t.viewOnly);const A=xt("cg-helper");e.appendChild(A);const o=xt("cg-container");A.appendChild(o);const r=xt("cg-board");let i,s,a;if(o.appendChild(r),t.drawable.visible&&!n&&(i=Kn(Tn("svg"),{class:"cg-shapes"}),i.appendChild(Tn("defs")),i.appendChild(Tn("g")),s=Kn(Tn("svg"),{class:"cg-custom-svgs"}),s.appendChild(Tn("g")),o.appendChild(i),o.appendChild(s)),t.coordinates){const e="black"===t.orientation?" black":"";o.appendChild(Wn(ht,"ranks"+e)),o.appendChild(Wn(ut,"files"+e))}return t.draggable.showGhost&&!n&&(a=xt("piece","ghost"),Vt(a,!1),o.appendChild(a)),{board:r,container:o,ghost:a,svg:i,customSvg:s}}(e,n,A),r=function(e){let t;const n=()=>(void 0===t&&(t=e()),t);return n.clear=()=>{t=void 0},n}(()=>o.board.getBoundingClientRect()),i=e=>{Xn(a),!e&&o.svg&&Qn(a,o.svg,o.customSvg)},s=()=>{r.clear(),function(e){if(e.dom.relative)return;const t=nn(e),n=Ct(e.dom.bounds());let A=e.dom.elements.board.firstChild;for(;A;)($n(A)&&!A.cgAnimating||eA(A))&&St(A,n(mt(A.cgKey),t)),A=A.nextSibling}(a),o.svg&&Qn(a,o.svg,o.customSvg)},a=n;return a.dom={elements:o,bounds:r,redraw:sA(i),redrawNow:i,unbind:t,relative:A},a.drawable.prevSvgHash="",i(!1),Yn(a,s),t||(a.dom.unbind=function(e,t){const n=[];if(e.dom.relative||!e.resizable||"ResizeObserver"in window||n.push(_n(document.body,"chessground.resize",t)),!e.viewOnly){const t=Hn(e,En,yn),A=Hn(e,Vn,In);for(const e of["touchmove","mousemove"])n.push(_n(document,e,t));for(const e of["touchend","mouseup"])n.push(_n(document,e,A));const o=()=>e.dom.bounds.clear();n.push(_n(document,"scroll",o,{capture:!0,passive:!0})),n.push(_n(window,"resize",o,{passive:!0}))}return()=>n.forEach(e=>e())}(a,s)),a.events.insert&&a.events.insert(o),a}return an(n,t||{}),Dn(A(),A)}function sA(e){let t=!1;return()=>{t||(t=!0,requestAnimationFrame(()=>{e(),t=!1}))}}class aA extends A.Component{buildConfigFromProps(e){const t={events:{}};return Object.keys(aA.types).forEach(n=>{const A=e[n];if(void 0!==A){const e=n.match(/^on([A-Z]\S*)/);e?t.events[e[1].toLowerCase()]=A:t[n]=A}}),t}componentDidMount(){this.board=iA(this.el,this.buildConfigFromProps(this.props)),this.props.shapes&&this.board.setShapes(this.props.shapes)}componentDidUpdate(){this.board=iA(this.el,this.buildConfigFromProps(this.props)),this.props.shapes&&this.board.setShapes(this.props.shapes)}render(){const t={style:{...this.props.style}};return this.props.width&&(t.style.width=this.props.width),this.props.height&&(t.style.height=this.props.height),e("div",{ref:e=>this.el=e,...t})}}ke(aA,"types",{width:ct.oneOfType([ct.string,ct.number]),height:ct.oneOfType([ct.string,ct.number]),fen:ct.string,orientation:ct.string,turnColor:ct.string,check:ct.string,lastMove:ct.array,selected:ct.string,coordinates:ct.bool,autoCastle:ct.bool,viewOnly:ct.bool,disableContextMenu:ct.bool,resizable:ct.bool,addPieceZIndex:ct.bool,hightlight:ct.object,animation:ct.object,movable:ct.object,premovable:ct.object,predroppable:ct.object,draggable:ct.object,selectable:ct.object,onChange:ct.func,onMove:ct.func,onDropNewPiece:ct.func,onSelect:ct.func,items:ct.object,drawable:ct.object}),ke(aA,"defaultProps",{coordinates:!1,resizable:!0,hightlight:{lastMove:!0,check:!0}});const cA=e=>{try{new Audio(e).play()}catch{return()=>{}}},lA=e=>{if("silent"===e)return!1;switch(e){case"lisp":return cA("data:audio/ogg;base64,T2dnUwACAAAAAAAAAADiDSg6AAAAACfTO4oBHgF2b3JiaXMAAAAAAkSsAAD/////AA0CAP////+4AU9nZ1MAAAAAAAAAAAAA4g0oOgEAAAAymRe+EkD/////////////////////PAN2b3JiaXMNAAAATGF2ZjU4LjI5LjEwMAEAAAAfAAAAZW5jb2Rlcj1MYXZjNTguNTQuMTAwIGxpYnZvcmJpcwEFdm9yYmlzKUJDVgEACAAAgCJMGMSA0JBVAAAQAACgrDeWe8i99957gahHFHuIvffee+OsR9B6iLn33nvuvacae8u9995zIDRkFQAABACAKQiacuBC6r33HhnmEVEaKse99x4ZhYkwlBmFPZXaWushk9xC6j3nHggNWQUAAAIAQAghhBRSSCGFFFJIIYUUUkgppZhiiimmmGLKKaccc8wxxyCDDjropJNQQgkppFBKKqmklFJKLdZac+69B91z70H4IIQQQgghhBBCCCGEEEIIQkNWAQAgAAAEQgghZBBCCCGEFFJIIaaYYsopp4DQkFUAACAAgAAAAABJkRTLsRzN0RzN8RzPESVREiXRMi3TUjVTMz1VVEXVVFVXVV1dd23Vdm3Vlm3XVm3Vdm3VVm1Ztm3btm3btm3btm3btm3btm0gNGQVACABAKAjOZIjKZIiKZLjOJIEhIasAgBkAAAEAKAoiuM4juRIjiVpkmZ5lmeJmqiZmuipngqEhqwCAAABAAQAAAAAAOB4iud4jmd5kud4jmd5mqdpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpmqZpQGjIKgBAAgBAx3Ecx3Ecx3EcR3IkBwgNWQUAyAAACABAUiTHcixHczTHczxHdETHdEzJlFTJtVwLCA1ZBQAAAgAIAAAAAABAEyxFUzzHkzzPEzXP0zTNE01RNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE3TNE1TFIHQkFUAAAQAACGdZpZqgAgzkGEgNGQVAIAAAAAYoQhDDAgNWQUAAAQAAIih5CCa0JrzzTkOmuWgqRSb08GJVJsnuamYm3POOeecbM4Z45xzzinKmcWgmdCac85JDJqloJnQmnPOeRKbB62p0ppzzhnnnA7GGWGcc85p0poHqdlYm3POWdCa5qi5FJtzzomUmye1uVSbc84555xzzjnnnHPOqV6czsE54Zxzzonam2u5CV2cc875ZJzuzQnhnHPOOeecc84555xzzglCQ1YBAEAAAARh2BjGnYIgfY4GYhQhpiGTHnSPDpOgMcgppB6NjkZKqYNQUhknpXSC0JBVAAAgAACEEFJIIYUUUkghhRRSSCGGGGKIIaeccgoqqKSSiirKKLPMMssss8wyy6zDzjrrsMMQQwwxtNJKLDXVVmONteaec645SGultdZaK6WUUkoppSA0ZBUAAAIAQCBkkEEGGYUUUkghhphyyimnoIIKCA1ZBQAAAgAIAAAA8CTPER3RER3RER3RER3RER3P8RxREiVREiXRMi1TMz1VVFVXdm1Zl3Xbt4Vd2HXf133f141fF4ZlWZZlWZZlWZZlWZZlWZZlCUJDVgEAIAAAAEIIIYQUUkghhZRijDHHnINOQgmB0JBVAAAgAIAAAAAAR3EUx5EcyZEkS7IkTdIszfI0T/M00RNFUTRNUxVd0RV10xZlUzZd0zVl01Vl1XZl2bZlW7d9WbZ93/d93/d93/d93/d939d1IDRkFQAgAQCgIzmSIimSIjmO40iSBISGrAIAZAAABACgKI7iOI4jSZIkWZImeZZniZqpmZ7pqaIKhIasAgAAAQAEAAAAAACgaIqnmIqniIrniI4oiZZpiZqquaJsyq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7rukBoyCoAQAIAQEdyJEdyJEVSJEVyJAcIDVkFAMgAAAgAwDEcQ1Ikx7IsTfM0T/M00RM90TM9VXRFFwgNWQUAAAIACAAAAAAAwJAMS7EczdEkUVIt1VI11VItVVQ9VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV1TRN0zSB0JCVAAAZAADDtOTScs+NoEgqR7XWklHlJMUcGoqgglZzDRU0iEmLIWIKISYxlg46ppzUGlMpGXNUc2whVIhJDTqmUikGLQhCQ1YIAKEZAA7HASTLAiRLAwAAAAAAAABJ0wDN8wDL8wAAAAAAAABA0jTA8jRA8zwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRNAzTPAzTPAwAAAAAAAADN8wBPFAFPFAEAAAAAAADA8jzAEz3AE0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxNAzTPAzTPAwAAAAAAAADL8wBPFAHPEwEAAAAAAABA8zzAE0XAE0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABDgAAARZCoSErAoA4AQCHJEGSIEnQNIBkWdA0aBpMEyBZFjQNmgbTBAAAAAAAAAAAAEDyNGgaNA2iCJA0D5oGTYMoAgAAAAAAAAAAACBpGjQNmgZRBEiaBk2DpkEUAQAAAAAAAAAAANBME6IIUYRpAjzThChCFGGaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIABBwCAABPKQKEhKwKAOAEAh6JYFgAAOJJjWQAA4DiSZQEAgGVZoggAAJaliSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAEHAIAAE8pAoSErAYAoAACHolgWcBzLAo5jWUCSLAtgWQDNA2gaQBQBgAAAgAIHAIAAGzQlFgcoNGQlABAFAOBQFMvSNFHkOJalaaLIkSxL00SRZWma55kmNM3zTBGi53mmCc/zPNOEaYqiqgJRNE0BAAAFDgAAATZoSiwOUGjISgAgJADA4TiW5Xmi6HmiaJqqynEsy/NEURRNU1VVleNolueJoiiapqqqKsvSNM8TRVE0TVVVXWia54miKJqmqrouPM/zRFEUTVNVXRee53miKIqmqaquC1EURdM0TVVVVdcFomiapqmqquq6QBRF0zRVVVVdF4iiKJqmqqqu6wLTNE1VVVXXlV2Aaaqqqrqu6wJUVVVd13VlGaCqquq6rivLANd1XdeVZVkG4Lqu68qyLAAA4MABACDACDrJqLIIG0248AAUGrIiAIgCAACMYUoxpQxjEkIKoWFMQkghZFJSKimlCkIqJZVSQUilpFIySi2lllIFIZWSSqkgpFJSKQUAgB04AIAdWAiFhqwEAPIAAAhjlGKMMeckQkox5pxzEiGlGHPOOakUY84555yUkjHnnHNOSumYc845J6VkzDnnnJNSOuecc85JKaV0zjnnpJRSQugcdFJKKZ1zDkIBAEAFDgAAATaKbE4wElRoyEoAIBUAwOA4lqVpnieKpmlJkqZ5nueJpqpqkqRpnieKpqmqPM/zRFEUTVNVeZ7niaIomqaqcl1RFEXTNE1VJcuiaIqmqaqqC9M0TdNUVdeFaZqmaaqq68K2VVVVXdd1Yduqqqqu68rAdV3XdWUZyK7ruq4sCwAAT3AAACqwYXWEk6KxwEJDVgIAGQAAhDEIKYQQUsggpBBCSCmFkAAAgAEHAIAAE8pAoSErAYBUAACAEGuttdZaaw1j1lprrbXWEuestdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbVWACB2hQPAToQNqyOcFI0FFhqyEgAIBwAAjEGIMegklFJKhRBj0ElIpbUYK4QYg1BKSq21mDznHIRSWmotxuQ55yCk1FqMMSbXQkgppZZii7G4FkIqKbXWYqzJGJVSai22GGvtxaiUSksxxhhrMMbm1FqMMdZaizE6txJLjDHGWoQRxsUWY6y11yKMEbLF0lqttQZjjLG5tdhqzbkYI4yuLbVWa80FAJg8OABAJdg4w0rSWeFocKEhKwGA3AAAAiGlGGPMOeeccw5CCKlSjDnnHIQQQgihlFJSpRhzzjkIIYRQQimlpIwx5hyEEEIIpZRSSmkpZcw5CCGEUEoppZTSUuuccxBCCKWUUkopJaXUOecghFBKKaWUUkpKLYQQQiihlFJKKaWUlFJKIYRQSimllFJKKamllEIIpZRSSimllFJSSimFEEIppZRSSimlpJRaK6WUUkoppZRSSkkttZRSKKWUUkoppZSSWkoppVJKKaWUUkopJaXUUkqllFJKKaWUUkpLqaWUSimllFJKKaWUlFJKKaVUSimllFJKKSml1FpKKaWUSimllFJaaymlllIqpZRSSimltNRaay21lEoppZRSSmmttZRSSimVUkoppZRSAADQgQMAQIARlRZipxlXHoEjChkmoEJDVgIAZAAADKOUUkktRYIipRiklkIlFXNQUooocw5SrKlCziDmJJWKMYSUg1QyB5VSzEEKIWVMKQatlRg6xpijmGoqoWMMAAAAQQAAgZAJBAqgwEAGABwgJEgBAIUFhg4RIkCMAgPj4tIGACAIkRkiEbEYJCZUA0XFdACwuMCQDwAZGhtpFxfQZYALurjrQAhBCEIQiwMoIAEHJ9zwxBuecIMTdIpKHQgAAAAAgAMAPAAAJBtAREQ0cxwdHh8gISIjJCUmJygCAAAAAAAHAB8AAEkKEBERzRxHh8cHSIjICEmJyQlKAAAggAAAAAAACCAAAQEBAAAAAIAAAAAAAQFPZ2dTAATALgAAAAAAAOINKDoCAAAAUbETtR1CPj04Qz3/C/8Z/yz/MP89/zv/N/82/zP/Nf8eSswNzdElh/C/NkzGDzEFv+vp9/Fq5TyGSjgozNHN/qQTTtChNeEWV8wM0Lt7DW07EBKh+4Uyvk/w9TX5YvyueRVRAKQVX//j8fhmG26Ls+L8P56G79pwW3wAnPgIDiBUUK0gP5DagMgQhgrn+S5kE8Y+vzd2NLQhFt9nuv/JivcA7BU//m18/OXHvhP3jPf/XEaWqX05XpEzVATD0INA5UraqZQgDAIjRwOHq/lxxBPCE4SOGCx0JerXdMoRAOQl99XM37YtnJfcVzN/bVv4FMFKEYKKzWYIGkajYWhEGEVSEJGCIAiCIO8/CX/CD417LLrLSe4A/IH/ND3K39d3M+MNBP88PPLH+u64vlNOyO8rAHLctDepaSdwhSiiIOgGgXqXUXQTFcliEYM0HmRsFI+1J1aAza23D3SWb4b38ffPy05n+WZ6n//gFqS75zexALYy2cWKVdsWEu4VKCoTBjEjlg+qKFHUqlW72AGCqMoU6mWOagD6Wdbh8s3GQ9MyPLSaEqXPsg6Wbz4e6GweOrhWovwM1aqa2siiGgIAoO/wFVtsNFmWIR0VAAAAAABjpyHa7eBGB5CiqWQA4v32buB1nOH6izY0VA2SxLCpKPIm0gm2UdR6jBEjRyiGKYMAwBJBVNiytsBk1VNVZar4tWmTBUDFW0QEJksUPbKMwmAVIKviXeJZZgDIikJZbi+WZVlWGHiCMLBFHNWUHIQaAJ7PZ6UAJksOChRGlmUStC5hYMNkgBLIjR1EBQ5CxehjxtiJBTfLsizL5MCoAACgGYYACWAArDCIlTIWTxFsAID25EsWcl4BCtUNhbBsRmHwctX2N43JgJKdwNpM8wmXAl5ZnchlN7Y58BNADagJ9lht3LqMaQb8USNqwv0BAAAA9u7M1mTZzLB0JBIVAAAAgFwEACBLRgIebOA02FJIAlW4JHT0NWHazw25pZbtmd0zaG5a9lp0pvrTpaECYLHzM4v7l8++/fDFR/tXm82ULGkefHY6nE4q8Ki57gpkWADgyAIvYTeUGLTmlV2/BBntuAwnw6gqGkF37a16imLNCBUGGY8sHKyZBYhNctxhPFTcswoZhZlgkISC6wELlIBFKLwUnqMPRQEJzQA0AGJkFAo3dhANjEALEbaZlwmZRBmAZb0n80hOFIJkqshREilm78tbe/Nm3OjsPOdVcgA1ljYxvU1eVuiE2iGuKxLWqWZqrAUwD/5WxwB+Sb3A49mOidUyfwKF9XJJvZD7PY1tpg/9/IsFCu3lBwCQ+vDhw/j0p+PVughLF1BsdVcqlmFZg4oBAAAAQGoAwEvDEH6/9Wh2XW0/e/H53V3Ifd/quRBhIekpDP0LAGzbHXG/uBxGZDz31mCauAb0MOsv4PnWkzt/98uIVppV8+/zV9M+iWppT/3OEufuf395K10nGmcXaPIw0fOe4Kl4ypkuFtPre9OH3HDYkxTSOfz6M8P0dCVJ7dbM8vYWWTWVDQ5Ex8IJPd3TjC7yMI2WtLmnEkB0kvGyLtRoNQxdZCxGeQeIyLNPTy0M9G73Hq6gb+62jYqnLANYBdL0yLS1SUqwk34Ko5FCGWD9PnehSD1PDbnFV+t+/N2ztrA6UW67XgYTJj3LGQ+hB/7YfBHHe7gIKVwe463nkZvG5klcz7R1rT3k/Uxuqv28PwAApFP/PTXDV/nh5cNy44I7gFw12Ko4yyRRg2IAAAAASg0A+BnNy84Yr3OpoN6vvpuh39ufMT0lT+6d2JxKap5OP9u0r1OgEd3r9lMLAQBO2gFgiLxUcfYh8/VfDwNy1lEJE53pqZ4jrmd+Z9xrUqwZVbqHlqn/KXpy2PDtvnr3CDThrHXm67H0nucqfJqcDeA0msP4rez1Qk+bBPhNRdOdjIo9UOyBqJLpwaR1J4xw9iyV1lRNUdWTdRWQDD6b7rduwaGG8a/vxwDeMTi/HvRhAyRVxCQzTaKU4QoTQObwVkBbmKwF40YPQ8rQNey/T+Ik2JFBlgEM7Oc3IWPBdBFUI8mTYp5tPgxMKJkWAN6nfMFjG0c34i+PtBV4vX3KB3leJncl/XKFTUi7fwAAc33EtT9v/c+Xl29+WOwjsytTxSk2qaoKAACgFACwa7W82vY9+Ds/jIst4PLK7wZAyCDEa+WjbE4v3k94GXf3+qtnDttY5K5z1zuLpQMcdVy34F2sWVQenc6mLzf7B9NnuqtfTrP6OU7UNvn1q2tfx6d+r+l9200PgJrvn9oHrtqPpvd358kDqHTeaXw2fG2N7lgn6rBZJaHHroHNiu7O+sD9g8IFMPSml66CKoDJ6l6Z05VxTubAcFiozZjZnOybypr3L14TWDAN2Sm4BbX4Krq6sw7dqwjP433BOpypnZX7c+ihIIELdo6dxcIjpMLXe3ImxjNq5frSBD+0E6W2u+tmtv6vlxpNOrpDusWxHcy9dWT1QMi8CEYACACeh3yh9cxH90wXYwrr6t1Dvul6jsk9y6UvU1DIuT/V6mkJAMy72y/W74oy+tDsFa+VyZUrMQZVFQAAYLynCgDgm8nSt03RrXU74g71ZtdanXH+7meeBJ5uv/OcX9vHydXdWm7mlVowDE+lp6iTOhu+VKrWejrJAgpmGSg6kPAhfPiw8eky+Px6eK3Pe56iGDC7KDpPfYZSJzp9X3Dv8IIe+WTvQ59vVYXaHtrU9MU0P7bM23KckC7X3GQBcMJLPX5ysnaU55ysYYi6k67d9TWt7sw5XTS8VQwJWSzSytne2pyCBHJnqj5X088RCT17poE5xZ10kWxqsww8t0sf8o7791q879lojpDL/Vk1y54vyQSC4HOduGPa9kevnpIww3VsGNSeziTvo9PtznxCwNkWPdsrwXsBPuQKAB6H/MXKeZW7u708TCF435BfuF1j5nb68GhbdLik+wcAYOiPxy+rv9/v/9ob+8hsMSxbxTKqqhgAAEATAPhtxeyM7mDGcdmXjE7dmyEAAEoQUvBM7g8OTy1OqK6nRxd/te/6djt/UL3bkGQxq58/L/NqOM3n+wZqWsMusmZTePMZDz6Pyvq60t/0TK2fGaF/ckBSwxNnLc8wPb8/BLLMOL/+TMQmd+3zP8enSyP0bVHVo+0c6M4Zc86m6f+karrgUFd8MtV21vgRs5y562v6dE5DFfkMFt2ju0acbHpYr2a6iivZnTx3amigJzncCdkU8Um1aq7Hp2YwFAPkb/aRfqxjHEgjIQNZ1xh7KB1Rkd1ebqLTJ2gY9TZ/w19R2VnSRkSWkryuty6fNOvDUM8w+WpudEuzgQNeh/wjy7kZ3Ptc+rGFdvXGIb9ZO21yf/ND30Yq4eN9T0xMBwCJ/+544mupUINUbKUqthhGVVUAAID/m1UAQCXGILXnzYZlw/nA1/2Dz/3d98fvQdLeYti9cfunb4LHl8nXT1/x8tP3Tce2gFO/2pXT0DMes+T0Hf3OMyp9pmiVzHzt5/4lPrmMhBO32VGZJ3mus2nz6r6mdn8rN8E6c2oSVZydQ5Ins7chu+GFAiqlmvTpac6h80+z5yWnpjfZldTkf3rqVA7PoWao2nm4ACfDdde/8fZNZZkZKq6t/FWZiubkFnutFJPMNXFV55NDVWQDmn1tmfB8N9s4N5WnU4cXsbzST4sgIDUVg9oCy6PQVUjxtTfRu0q631F7virHmVaSaGrabNpyiUw+OHJzLf1CRbfeAQqehvwS5RmNG2nFFD6uacgvWZ7BujkemOD+VOtEAAAyTqbKu2vr4zDsbO5Xlq3EsqyqqgAAAKKuqwoA+NLs49XPPMmk8awXiJ5/x9Xnu5cuUGl/fOjz1Z2OG7+93r3n03xpvk9DifOhaCB7jmmcddSpovSr+jqDlfE6m1CripdZVSvJ4+umf1kUntYEmy3bVxsfSlTDj/CaXi+C7pxMOIk6+5fcs1nbiXRQZhLYOSdZzqxXOfaxkhntDdDPYOWg7nfDURcJZwpiuIbqLq6DaAqqWs0uHH5sJEQjLfP+44zAOVlNU02eY9ivOpoLIJ3k/Kmu3v3vdCj1RdP7yXRiWcC0fu31ukvqPpmp1fO3x7Z5/n6Ptl4U7yJddKbSXthCo59e0jSaR6OVf0ck+xtOdw5pCgA+hnzR9paYMVcMsXXxlSFfpr43uFNgpAnG/Yl6IwGg0Vysq/e/e51r790tj4DKVVU5V2JUVREAAAD1KKEKILPkSx/f7ZSX6/Lx+8X5yUVzm6/a3uIDPhTAL741n7v75DKtRqHY1fnLEtwUwPSQ+Ab+9OpTRc3ePjudPNaQ5zHvPyvvlpv/S94XvgpQnGQKg/ez/zdd2T3P9lQV2Yx3nor2nE0/Zp9Dt5MVEEXWOkVnbSaZpcbPmnkaZuWQWZ1kneu6c0hO5ZUY7qiev1xF5qo1mZP532k2g8U1K/OrnW/mfjx6sHMn+55ahq5NnZyHzN15J06onDfpk9crWPvWPa5peCg6Ijq2lZUCzLbS2ltXxe/hfb5z6DmVgb2aork5cGZc3QEHoVIYBdqnkMpVcpWn4z6pAx6GfKVlf1TNszBuYAz52ebd1XxbxBFdH9yTAO+jHzrvPHtVTYatqmJUFQEAAABgMVNVM9IoaG6NRUvrrLX/N4OXibaE2MDce1/IyU4dvzxE/mY7y66Y9ifH74/TJF+U6th3ovexgAKuGjMLMgis7ClLdJxkT0WV9T7XnbGEobPoKUZRWKDhybU0Muj9amoxme9c1jWbm9ovuyfnfFQmnK+WXYfDtodImGKFZzM8wNLgujqpHJhnG9ErI877e+HIPa1p6Ley9xlI9/lWOvu8D8zZPe3dXoZqprv/X9N5pibp6Vi7SCoTYKDfnn6fYZ61Z5l9EmowvYODMUv9m2UB0mTemO5dwG7z4bFgTyDyZv98DXBk1p2mkwPfA8EJKB6G/O8oX5oADhCG/O8oH5oADjAYJCAb2UgAAAAAAAAAAAAAACCIxtgbmHEfBpZpL+uyLkNalp8mHGyAXpcwAFwAAAMAQNWAgh4A");case"piano":return cA("data:audio/ogg;base64,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");case"sfx":return cA("data:audio/ogg;base64,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");default:return cA("data:audio/ogg;base64,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")}};var uA="object"==typeof global&&global&&global.Object===Object&&global,hA="object"==typeof self&&self&&self.Object===Object&&self,pA=uA||hA||Function("return this")(),gA=pA.Symbol,dA=Object.prototype,mA=dA.hasOwnProperty,fA=dA.toString,bA=gA?gA.toStringTag:void 0;var yA=Object.prototype.toString;var IA=gA?gA.toStringTag:void 0;function kA(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":IA&&IA in Object(e)?function(e){var t=mA.call(e,bA),n=e[bA];try{e[bA]=void 0;var A=!0}catch(e){}var o=fA.call(e);return A&&(t?e[bA]=n:delete e[bA]),o}(e):function(e){return yA.call(e)}(e)}function wA(e){return null!=e&&"object"==typeof e}var CA=Array.isArray;function vA(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function SA(e){if(!vA(e))return!1;var t=kA(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var EA,VA=pA["__core-js_shared__"],NA=(EA=/[^.]+$/.exec(VA&&VA.keys&&VA.keys.IE_PROTO||""))?"Symbol(src)_1."+EA:"";var MA=Function.prototype.toString;function xA(e){if(null!=e){try{return MA.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var BA=/^\[object .+?Constructor\]$/,DA=Function.prototype,TA=Object.prototype,QA=DA.toString,ZA=TA.hasOwnProperty,jA=RegExp("^"+QA.call(ZA).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function PA(e){return!(!vA(e)||(t=e,NA&&NA in t))&&(SA(e)?jA:BA).test(xA(e));var t}function UA(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return PA(n)?n:void 0}var OA=UA(pA,"WeakMap");function qA(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var JA=Object.prototype;function KA(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||JA)}function GA(e){return wA(e)&&"[object Arguments]"==kA(e)}var RA=Object.prototype,FA=RA.hasOwnProperty,LA=RA.propertyIsEnumerable,zA=GA(function(){return arguments}())?GA:function(e){return wA(e)&&FA.call(e,"callee")&&!LA.call(e,"callee")};var WA="object"==typeof exports&&exports&&!exports.nodeType&&exports,YA=WA&&"object"==typeof module&&module&&!module.nodeType&&module,_A=YA&&YA.exports===WA?pA.Buffer:void 0,HA=(_A?_A.isBuffer:void 0)||function(){return!1},XA={};XA["[object Float32Array]"]=XA["[object Float64Array]"]=XA["[object Int8Array]"]=XA["[object Int16Array]"]=XA["[object Int32Array]"]=XA["[object Uint8Array]"]=XA["[object Uint8ClampedArray]"]=XA["[object Uint16Array]"]=XA["[object Uint32Array]"]=!0,XA["[object Arguments]"]=XA["[object Array]"]=XA["[object ArrayBuffer]"]=XA["[object Boolean]"]=XA["[object DataView]"]=XA["[object Date]"]=XA["[object Error]"]=XA["[object Function]"]=XA["[object Map]"]=XA["[object Number]"]=XA["[object Object]"]=XA["[object RegExp]"]=XA["[object Set]"]=XA["[object String]"]=XA["[object WeakMap]"]=!1;var $A,eo="object"==typeof exports&&exports&&!exports.nodeType&&exports,to=eo&&"object"==typeof module&&module&&!module.nodeType&&module,no=to&&to.exports===eo&&uA.process,Ao=function(){try{var e=to&&to.require&&to.require("util").types;return e||no&&no.binding&&no.binding("util")}catch(e){}}(),oo=Ao&&Ao.isTypedArray,ro=oo?($A=oo,function(e){return $A(e)}):function(e){return wA(e)&&qA(e.length)&&!!XA[kA(e)]};var io=function(e,t){return function(n){return e(t(n))}}(Object.keys,Object),so=io,ao=Object.prototype.hasOwnProperty;var co=UA(pA,"Map"),lo=UA(pA,"DataView"),uo=UA(pA,"Promise"),ho=UA(pA,"Set"),po="[object Map]",go="[object Promise]",mo="[object Set]",fo="[object WeakMap]",bo="[object DataView]",yo=xA(lo),Io=xA(co),ko=xA(uo),wo=xA(ho),Co=xA(OA),vo=kA;(lo&&vo(new lo(new ArrayBuffer(1)))!=bo||co&&vo(new co)!=po||uo&&vo(uo.resolve())!=go||ho&&vo(new ho)!=mo||OA&&vo(new OA)!=fo)&&(vo=function(e){var t=kA(e),n="[object Object]"==t?e.constructor:void 0,A=n?xA(n):"";if(A)switch(A){case yo:return bo;case Io:return po;case ko:return go;case wo:return mo;case Co:return fo}return t});var So=vo,Eo=Object.prototype.hasOwnProperty;function Vo(e){if(null==e)return!0;if(function(e){return null!=e&&qA(e.length)&&!SA(e)}(e)&&(CA(e)||"string"==typeof e||"function"==typeof e.splice||HA(e)||ro(e)||zA(e)))return!e.length;var t=So(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(KA(e))return!function(e){if(!KA(e))return so(e);var t=[];for(var n in Object(e))ao.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e).length;for(var n in e)if(Eo.call(e,n))return!1;return!0}const No=e=>{const t={};e.orientation&&(t.orientation=e.orientation,"w"===t.orientation&&(t.orientation="white"),"b"===t.orientation&&(t.orientation="black"));const n=["shapes","onSelect","drawable","lastMove"];for(const A of n)void 0!==e[A]&&null!==e[A]&&("function"!=typeof e[A]&&"object"==typeof e[A]&&Vo(e[A])||(t[A]=e[A]));return!1===e.drawable&&(t.drawable={enabled:!1}),t.shapes&&(t.shapes=(e=>{try{return e.forEach(e=>{e.dest=e.dest.replace(/\]/g,"")}),e}catch{return e}})(t.shapes)),e.editing&&(t.movable={free:!1},t.drawable={enabled:!1},t.selectable={enabled:!0}),e.viewOnly&&(t.draggable=!1,t.movable={free:!1},t.drawable={enabled:!1}),e.readOnly&&(t.draggable=!1,t.movable={free:!1},t.drawable={enabled:!1},t.coordinates=!1),t};var Mo=(e,t,n)=>{try{const A=e.get(t);return"p"===A.type&&("w"===A.color&&"8"===n[1]||"b"===A.color&&"1"===n[1])}catch{return!1}};const xo=e=>le(e)&&(e=>{if(!e)return!1;const t=e.split(" ")[0];return 1===(t.match(/k/g)||[]).length&&1===(t.match(/K/g)||[]).length})(e),Bo=(e,t,n=!1)=>{if(!xo(e.fen()))return{free:!1};const A=new Map,o="w"===e.turn()?"white":"black";R.forEach(t=>{const n=e.moves({square:t,verbose:!0});n.length&&A.set(t,n.map(e=>e.to))});const r={color:o,dests:A,free:!1};return n&&t&&t!==o&&(r.color=t,r.dests=new Map),r};var Do=f(function(e,t){e.exports=((e,t)=>(()=>{var n={494:()=>{},156:t=>{t.exports=e},111:e=>{e.exports=t}},A={};function o(e){var t=A[e];if(void 0!==t)return t.exports;var r=A[e]={exports:{}};return n[e](r,r.exports,o),r.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{o.r(r),o.d(r,{default:()=>a});var e=o(156),t=o.n(e),n=o(111);function A(e){const{children:n,replace:A,bodyClass:o,header:r,footer:i,onDragStart:s,onDragEnd:a,onClose:c,closeButton:l,closeButtonPosition:u}=e;return A?n:t().createElement("div",{className:"panel panel-default "+("bottom"===u?"additional-row":"")},t().createElement("div",{className:"panel-heading",onTouchStart:s,onMouseDown:s,onTouchEnd:a,onMouseUp:a},r&&t().createElement("h3",{className:"panel-title"},r)),t().createElement("div",{className:o},n),i&&t().createElement("div",{className:"panel-footer"},i),t().createElement("div",{className:"close",onClick:c,style:{position:"header"===u?"absolute":"static",margin:"bottom"===u?"10px auto":""}},l))}A.defaultProps={closeButton:"×",closeButtonPosition:"header",replace:!1,draggable:!1};const i=A;function s(A){let o=Math.random().toString();const[r,s]=(0,e.useState)(!1),[a,c]=(0,e.useState)(null),[l,u]=(0,e.useState)(null),[h,p]=(0,e.useState)(0),[g,d]=(0,e.useState)(0),[m,f]=(0,e.useState)(0),[b,y]=(0,e.useState)(0),{isOpen:I,onClose:k}=A,w=(0,e.useCallback)(()=>{document.body.classList.remove("body-modal-fix")},[]);(0,e.useEffect)(()=>(I&&(document.addEventListener("keydown",C),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),document.body.classList.add("body-modal-fix")),()=>{document.querySelector(".pure-modal")||(document.removeEventListener("keydown",C),w(),c(null),u(null),p(0),d(0),f(0),y(0))}),[I]);const C=(0,e.useCallback)(e=>{const t=document.querySelectorAll(".pure-modal"),n=t.length>1,A=t[t.length-1];return!(n&&!A.className.includes(o)||"Escape"!==e.key||!document.activeElement||(v(e),0))},[v,o]);if(!I)return null;function v(e){e&&(e.stopPropagation(),e.preventDefault()),null==k||k({isPassive:Boolean(e)})}function S(e){return e instanceof TouchEvent&&e.changedTouches.length>0?{pageX:e.changedTouches[0].pageX,pageY:e.changedTouches[0].pageY}:e instanceof MouseEvent?{pageX:e.pageX,pageY:e.pageY}:{pageX:0,pageY:0}}function E(e){if(e instanceof TouchEvent&&e.changedTouches&&e.changedTouches.length>1)return V();e.preventDefault();const{pageX:t,pageY:n}=S(e);"number"==typeof a&&"number"==typeof l&&(p(t-a-m),d(n-l-b))}function V(){return s(!1)}const{children:N,replace:M=!1,className:x,header:B,footer:D,scrollable:T=!0,draggable:Q=!1,width:Z,closeButton:j,closeButtonPosition:P,portal:U=!1}=A;let O=["pure-modal-backdrop"],q=["pure-modal",o],J=["panel-body"];x&&(q=q.concat(x)),T?J=J.concat("scrollable"):(O=O.concat("scrollable"),q=q.concat("auto-height")),Q&&(O=O.concat("backdrop-overflow-hidden"));const K=t().createElement("div",{className:O.join(" "),onMouseDown:function(e){if(e){if(!e.target.classList.contains("pure-modal-backdrop"))return;e.stopPropagation(),e.preventDefault()}v(e)},onTouchMove:r?E:void 0,onMouseMove:r?E:void 0},t().createElement("div",{className:q.join(" "),style:{transform:`translate(${h}px, ${g}px)`,transition:"none",width:Z}},t().createElement(i,{replace:M,header:B,footer:D,onDragStart:Q?function(e){if(e instanceof TouchEvent&&e.changedTouches&&e.changedTouches.length>1)return;e.preventDefault();const{pageX:t,pageY:n}=S(e),{top:A,left:o}=e.currentTarget.getBoundingClientRect();s(!0),c("number"==typeof a?a:o),u("number"==typeof l?l:A),f(t-o),y(n-A)}:void 0,onDragEnd:Q?V:void 0,onClose:v,bodyClass:J.join(" "),closeButton:j,closeButtonPosition:P},N)));return U?(0,n.createPortal)(K,document.body):K}o(494);const a=t().memo(s)})(),r})())(A,h)}),To=m(Do);const Qo=({role:t,color:n,highlighted:A,selectPiece:o})=>{const r="bin"===t;return e("div",{className:I("edit-square border border-gray-300 rounded",A&&"bg-orange-300"),children:e("piece",{className:I("spare-piece",t,n,r&&"next-trash"),onClick:()=>{"function"==typeof o&&o({role:t,color:n})}})})},Zo=({isOpen:n,hide:A,onPromote:o,color:r="white"})=>{const i=e=>{o(e),A()};return e(To,{closeButton:"",isOpen:n,onClose:A,children:t("div",{className:"promote flex gap-2 py-1.5 justify-center",children:[e(Qo,{color:r,role:"queen",selectPiece:()=>i("q")}),e(Qo,{color:r,role:"rook",selectPiece:()=>i("r")}),e(Qo,{color:r,role:"bishop",selectPiece:()=>i("b")}),e(Qo,{color:r,role:"knight",selectPiece:()=>i("n")})]})})},jo=(n,A)=>{const{theme:o}=ye(),{isOpen:r,show:s,hide:l}=Ie(),{chess:h,fen:p,turnColor:g,lastMove:d,orientation:m,promotion:f,onMove:b,onPromote:y,onUndo:k}=be(n),w=async(e,t,A)=>{const r=A?.promotion||f;if(!b(e,t,r)){return Mo(h,e,t)&&!r&&s(),!1}return o.playSounds&&lA(o.sounds),"function"==typeof n.onMove&&await n.onMove(h),!0},{onSetPremove:C,onUnsetPremove:v,onPlayPremove:S,onCancelPremove:E,onPremovePromotion:V}=(e=>{const t=a(null),n=c((e,n,A)=>{t.current={orig:e,dest:n,promotion:A?.promotion||null}},[]),A=c(()=>{t.current=null},[]),o=c(()=>"q",[]);return{onSetPremove:n,onUnsetPremove:A,onPlayPremove:c(async()=>{if(t.current){const{orig:n,dest:A,promotion:o}=t.current,r={orig:n,dest:A,promotion:o};t.current=null;const i={promotion:r.promotion||"q"};return await e(r.orig,r.dest,i)}return!1},[e]),onCancelPremove:c(()=>!!t.current&&(t.current=null,!0),[]),onPremovePromotion:o}})(w),N=a(),M=async(e,t,n)=>{if(n){const A={promotion:n};return await w(e,t,A)}return await w(e,t)};u(A,()=>({board:N.current?.board,chess:h,undo:k,move:M,playPremove:S,cancelPremove:E}));i(()=>{"function"==typeof n.setPromoting&&n.setPromoting(r)},[r]),i(()=>{"function"==typeof n.onFenChange&&n.onFenChange(p)},[p]);const x=n.premoves?{enabled:!0,showDests:!0,castle:!0,events:{set:C,unset:v},promote:V}:{enabled:!1};return t("div",{className:I("chessground",o.highlight&&"highlight",o.board,o.pieces),children:[e(aA,{ref:N,coordinates:o.coordinates,onMove:w,fen:p,turnColor:g,lastMove:d,orientation:m,movable:Bo(h,m,n.premoves),premovable:x,...No(n)}),e(Zo,{isOpen:r,hide:l,color:g,onPromote:async e=>{if(!y(e))return!1;o.playSounds&&lA(o.sounds),"function"==typeof n.onMove&&await n.onMove(h)}})]})};var Po=l(jo);const Uo=e=>{try{return"w"===e.split(" ")[1]?"white":"black"}catch{return"white"}},Oo=e=>{const[t,n]=r((e=>{try{return e.orientation?e.orientation:e.fen?Uo(e.fen):"white"}catch{return"white"}})(e));return i(()=>{e.reset&&n(Uo(e.fen))},[e.reset]),[t,()=>{n(e=>"white"===e?"black":"white")}]},qo=()=>{const{theme:A,handleChange:o}=ye();return t(n,{children:[e("div",{children:"Board"}),t("select",{name:"board",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:A.board,onChange:o,children:[e("option",{value:"green",children:"Green"}),e("option",{value:"brown",children:"Brown"}),e("option",{value:"ruby",children:"Ruby"}),e("option",{value:"purple",children:"Purple"}),e("option",{value:"teal",children:"Teal"})]})]})},Jo=()=>{const{theme:A,handleChecked:o}=ye();return t(n,{children:[e("div",{children:"Coordinates"}),e("div",{className:"flex",children:e("input",{name:"coordinates",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:A.coordinates,onChange:o})})]})},Ko=()=>{const{theme:A,handleChecked:o}=ye();return t(n,{children:[e("div",{children:"Highlight moves"}),e("div",{className:"flex",children:e("input",{name:"highlight",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:A.highlight,onChange:o})})]})},Go=()=>{const{theme:A,handleChange:o}=ye();return t(n,{children:[e("div",{children:"Pieces"}),t("select",{name:"pieces",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:A.pieces,onChange:o,children:[e("option",{value:"cburnett",children:"Cburnett"}),e("option",{value:"neo",children:"Neo"}),e("option",{value:"alpha",children:"Alpha"}),e("option",{value:"bases",children:"Bases"}),e("option",{value:"classic",children:"Classic"})]})]})},Ro=()=>{const{theme:A,handleChecked:o}=ye();return t(n,{children:[e("div",{children:"Play sounds"}),e("div",{className:"flex",children:e("input",{name:"playSounds",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:A.playSounds,onChange:o})})]})},Fo=()=>{const{theme:A,handleChange:o}=ye();return t(n,{children:[e("div",{children:"Sounds"}),t("select",{name:"sounds",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:A.sounds,onChange:o,children:[e("option",{value:"robot",children:"Robot"}),e("option",{value:"piano",children:"Piano"}),e("option",{value:"lisp",children:"Lisp"}),e("option",{value:"sfx",children:"SFX"})]})]})},Lo=()=>{const{isOpen:A,show:o,hide:r}=Ie();return t(n,{children:[e("button",{type:"button",className:"next-button next-settings",title:"Settings",onClick:o,children:e("i",{className:"next-cog"})}),e(To,{header:"Settings",isOpen:A,onClose:r,children:t("div",{className:"grid grid-cols-2 gap-3 items-center text-sm",children:[e(Go,{}),e(qo,{}),e(Ko,{}),e(Ro,{}),e(Fo,{}),e(Jo,{})]})})]})},zo=t=>e("button",{type:"button",className:"next-button next-flip",title:"Flip board",...t,children:e("i",{className:"next-sync"})}),Wo=({flip:n,readOnly:A})=>A?null:t("div",{className:"chessground-footer text-gray-400 flex flex-row-reverse gap-2 py-1.5",children:[e(Lo,{}),e(zo,{onClick:n})]});var Yo=l((n,A)=>{const[o,r]=Oo(n);return e(y,{children:t("div",{className:"next-chessground",children:[e(Po,{...n,ref:A,orientation:o}),e(Wo,{flip:r,readOnly:n.readOnly})]})})});const _o=t=>{const{theme:n}=ye();return e("div",{className:I("spare-pieces flex gap-2",n.pieces),children:["bin","pawn","knight","bishop","rook","queen","king"].map(n=>((t,n)=>{const{color:A="white",selected:o={role:null,color:null}}=n,r=t===o.role&&A===o.color;return e(Qo,{highlighted:r,role:t,color:A,...n},`${t}-${A}`)})(n,t))})},Ho=e=>{const t=new Map;return t.set(e,null),t},Xo=({onChange:n})=>{const[A,o]=r("w"),[s,a]=r("-");i(()=>{"function"==typeof n&&n([A,s].join(" "))},[A,s]);const c=e=>{const{value:t}=e.target;o(t)},l=e=>{const{value:t}=e.target;a(((e,t)=>{if(!t)return e;const n=["K","Q","k","q"].map(n=>n!==t?e.includes(n)?n:"":e.includes(t)?"":t).join("");return n.length?n:"-"})(s,t))};return t("div",{className:"flex flex-col gap-2 w-full",children:[t("div",{className:"flex gap-2 w-full",children:[t("div",{children:[e("input",{defaultChecked:!0,className:"mx-1",type:"radio",id:"white-radio",name:"side-to-move",value:"w",onChange:c}),e("label",{htmlFor:"white-radio",children:"White to move"})]}),t("div",{children:[e("input",{className:"mx-1",type:"radio",id:"black-radio",name:"side-to-move",value:"b",onChange:c}),e("label",{htmlFor:"black-radio",children:"Black to move"})]})]}),t("div",{className:"flex flex-col gap-2 w-full",children:[t("div",{className:"flex w-full gap-4",children:[e("div",{children:e("span",{children:"White can"})}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"white-short-castle",value:"K",onChange:l}),e("label",{htmlFor:"white-short-castle",children:"O-O"})]}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"white-long-castle",value:"Q",onChange:l}),e("label",{htmlFor:"white-long-castle",children:"O-O-O"})]})]}),t("div",{className:"flex w-full gap-4",children:[e("div",{children:e("span",{children:"Black can"})}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"black-short-castle",value:"k",onChange:l}),e("label",{htmlFor:"black-short-castle",children:"O-O"})]}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"black-long-castle",value:"q",onChange:l}),e("label",{htmlFor:"black-long-castle",children:"O-O-O"})]})]})]})]})},$o=(n,A)=>{const[o,s]=r(n.fen||fe.emptyFen),[a,c]=r({role:null,color:null});i(()=>{n.fen&&s(n.fen)},[n.fen]),i(()=>{"function"==typeof n.onSelect&&n.onSelect(o)},[o]);return e(y,{children:t("div",{className:"next-chessground gap-2",children:[e(_o,{selected:a,selectPiece:c,color:"black"}),e(Po,{...n,ref:A,fen:o,onSelect:e=>{const t=o.split(" ");t.shift();const n=t.join(" "),r=((e,t,n)=>{if(!e)throw new Error("Chessground is not defined");if(!t||!t.role||!t.color)return e.getFen();if("bin"===t.role)return e.setPieces(Ho(n)),e.getFen();const A=e.state.pieces.get(n);return A?A.role===t.role&&A.color===t.color?(e.setPieces(Ho(n)),e.getFen()):(e.setPieces(Ho(n)),e.newPiece(t,n),e.getFen()):(e.newPiece(t,n),e.getFen())})(A.current.board,a,e),i=[r,n].join(" ");s(i)},editing:!0,skipValidation:!0}),e(_o,{selected:a,selectPiece:c,color:"white"}),e(Xo,{onChange:e=>{const t=[o.split(" ")[0],e,"- 0 1"].join(" ");s(t)}})]})})};var er=l($o);class tr{constructor(e){if("undefined"==typeof window)return!1;if(!window.chessEngineWorker){const t=e??process.env.STOCKFISH_PATH;window.chessEngineWorker=new Worker(t)}this.skillLevel=20,this.maxDepth=40,this.resolveTimeout=null,this.isAnalyzing=!1,this.fen=fe.initialFen}getTurnFromFen(e){return e.split(" ")[1]}normalizeScoreValue(e){const{fen:t}=this;return"b"===this.getTurnFromFen(t)?-1*e:e}isInfoMessage(e){return!(!e||!e.data)&&e.data.startsWith("info")}setSkillLevel(){window.chessEngineWorker.postMessage("setoption name Skill Level value "+this.skillLevel),window.chessEngineWorker.postMessage("setoption name Skill Level Maximum Error value 5000"),window.chessEngineWorker.postMessage("setoption name Skill Level Probability value 1")}async init(){await this.use_uci(),await this.is_ready(),this.setSkillLevel()}getScoreFromInfo(e){if(e.startsWith("info depth 0")){const t=e.split(" "),n=t[4],A=this.normalizeScoreValue(Number(t[5]));return this.isAnalyzing=!1,{type:n,value:A}}if(e.startsWith("info depth ")){const t=e.split(" ");return{type:t[8],value:this.normalizeScoreValue(Number(t[9]))}}return{type:"cp",value:0}}parseData(e){const t=e.split(" ")[2];let n="";e.indexOf(" pv ")>-1&&(n=e.split(" pv ")[1].split(" bmc ")[0]);return{depth:t,pv:n,score:this.getScoreFromInfo(e)}}use_uci(){return new Promise(e=>{window.chessEngineWorker.postMessage("uci"),window.chessEngineWorker.onmessage=t=>{"uciok"===t.data&&e(t)}})}is_ready(){return new Promise(e=>{window.chessEngineWorker.postMessage("isready"),window.chessEngineWorker.onmessage=t=>{"readyok"===t.data&&e(t)}})}set_position(e){return new Promise(t=>{this.fen=e,window.chessEngineWorker.postMessage("position fen "+e),t()})}async new_position(e){await this.stop(),await this.is_ready(),this.set_position(e),this.go_infinite()}set_multipv(e){window.chessEngineWorker.postMessage("setoption name MultiPV value "+e)}get_score(e,t=15){return new Promise(n=>{window.chessEngineWorker.postMessage("position fen "+e),window.chessEngineWorker.postMessage("go depth 15"),window.chessEngineWorker.onmessage=e=>{if(e.data.startsWith("info depth "+t)){const t=e.data.split(" "),A=t[8],o=Number(t[9]);n({type:A,value:o})}else if(e.data.startsWith("info depth 0")){const t=e.data.split(" "),A=t[4],o=Number(t[5]);n({type:A,value:o})}}})}go_depth(e){return new Promise(t=>{window.chessEngineWorker.postMessage("go depth "+e),window.chessEngineWorker.onmessage=e=>{e.data.startsWith("bestmove")&&t(e.data)}})}go_time(e){return new Promise(t=>{window.chessEngineWorker.postMessage("go movetime "+e),window.chessEngineWorker.onmessage=e=>{e.data.startsWith("bestmove")&&t(e.data)}})}go_infinite(e){window.chessEngineWorker.postMessage("go infinite"),this.isAnalyzing=!0,window.chessEngineWorker.onmessage=t=>{if(this.isInfoMessage(t)&&"function"==typeof e){const n=this.parseData(t.data);n.depth>this.maxDepth&&this.stop(),e(n)}}}stop(){return new Promise(e=>{this.isAnalyzing||e(),window.chessEngineWorker.postMessage("stop"),window.chessEngineWorker.onmessage=t=>{t.data.startsWith("bestmove")&&(this.isAnalyzing=!1,e(t.data))}})}quit(){window.chessEngineWorker.postMessage("quit")}}function nr(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var A=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&A.firstChild?A.insertBefore(o,A.firstChild):A.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}nr(".brown .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgeG1sbnM6eD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgIHZpZXdCb3g9IjAgMCA4IDgiICBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgZmlsbD0iI2I1ODg2MyIvPjxnIGlkPSJhIj4gIDxnIGlkPSJiIj4gICAgPGcgaWQ9ImMiPiAgICAgIDxnIGlkPSJkIj4gICAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IiNmMGQ5YjUiIGlkPSJlIi8+ICAgICAgICA8dXNlIHg9IjIiIGhyZWY9IiNlIiB4OmhyZWY9IiNlIi8+ICAgICAgPC9nPiAgICAgIDx1c2UgeD0iNCIgaHJlZj0iI2QiIHg6aHJlZj0iI2QiLz4gICAgPC9nPiAgICA8dXNlIHg9IjEiIHk9IjEiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+ICA8L2c+ICA8dXNlIHk9IjIiIGhyZWY9IiNiIiB4OmhyZWY9IiNiIi8+PC9nPjx1c2UgeT0iNCIgaHJlZj0iI2EiIHg6aHJlZj0iI2EiLz48L3N2Zz4=');\n}\n.green .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgeG1sbnM6eD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgIHZpZXdCb3g9IjAgMCA4IDgiICBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgZmlsbD0iIzc3OTU1NiIvPjxnIGlkPSJhIj4gIDxnIGlkPSJiIj4gICAgPGcgaWQ9ImMiPiAgICAgIDxnIGlkPSJkIj4gICAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IiNFQkVDRDAiIGlkPSJlIi8+ICAgICAgICA8dXNlIHg9IjIiIGhyZWY9IiNlIiB4OmhyZWY9IiNlIi8+ICAgICAgPC9nPiAgICAgIDx1c2UgeD0iNCIgaHJlZj0iI2QiIHg6aHJlZj0iI2QiLz4gICAgPC9nPiAgICA8dXNlIHg9IjEiIHk9IjEiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+ICA8L2c+ICA8dXNlIHk9IjIiIGhyZWY9IiNiIiB4OmhyZWY9IiNiIi8+PC9nPjx1c2UgeT0iNCIgaHJlZj0iI2EiIHg6aHJlZj0iI2EiLz48L3N2Zz4=');\n}\n.ruby .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,CjxzdmcgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgIHhtbG5zOng9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiICB2aWV3Qm94PSIwIDAgOCA4IiAgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPjxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9IiM4QjI2MzUiLz48ZyBpZD0iYSI+ICA8ZyBpZD0iYiI+ICAgIDxnIGlkPSJjIj4gICAgICA8ZyBpZD0iZCI+ICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjRDJENEM4IiBpZD0iZSIvPiAgICAgICAgPHVzZSB4PSIyIiBocmVmPSIjZSIgeDpocmVmPSIjZSIvPiAgICAgIDwvZz4gICAgICA8dXNlIHg9IjQiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+ICAgIDwvZz4gICAgPHVzZSB4PSIxIiB5PSIxIiBocmVmPSIjYyIgeDpocmVmPSIjYyIvPiAgPC9nPiAgPHVzZSB5PSIyIiBocmVmPSIjYiIgeDpocmVmPSIjYiIvPjwvZz48dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+PC9zdmc+');\n}\n.purple .cg-wrap cg-board {\n background-image: url('data:image/png;base64,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');\n}\n.teal .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,CjxzdmcgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgIHhtbG5zOng9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiICB2aWV3Qm94PSIwIDAgOCA4IiAgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPjxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9IiMxYzcyYWQiLz48ZyBpZD0iYSI+ICA8ZyBpZD0iYiI+ICAgIDxnIGlkPSJjIj4gICAgICA8ZyBpZD0iZCI+ICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjZTNlYmYzIiBpZD0iZSIvPiAgICAgICAgPHVzZSB4PSIyIiBocmVmPSIjZSIgeDpocmVmPSIjZSIvPiAgICAgIDwvZz4gICAgICA8dXNlIHg9IjQiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+ICAgIDwvZz4gICAgPHVzZSB4PSIxIiB5PSIxIiBocmVmPSIjYyIgeDpocmVmPSIjYyIvPiAgPC9nPiAgPHVzZSB5PSIyIiBocmVmPSIjYiIgeDpocmVmPSIjYiIvPjwvZz48dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+PC9zdmc+');\n}\n");nr(".next-chessground .chessground {\n grid-area: board;\n position: relative;\n display: block;\n height: 0;\n padding-bottom: 100%;\n padding-right: 100%;\n width: 100%;\n border-radius: 0.25rem;\n overflow: hidden;\n}\n\n.next-chessground .cg-wrap {\n display: table;\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.next-chessground cg-helper {\n position: absolute;\n width: 12.5%;\n padding-bottom: 12.5%;\n display: table;\n bottom: 0;\n}\n\n.next-chessground cg-container {\n position: absolute;\n width: 800%;\n height: 800%;\n display: block;\n bottom: 0;\n}\n\n.next-chessground cg-board {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n line-height: 0;\n background-size: cover;\n cursor: pointer;\n}\n\n.next-chessground cg-board square {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n pointer-events: none;\n}\n.next-chessground .highlight cg-board square.last-move {\n will-change: transform;\n background-color: rgba(246, 246, 130, 0.5);\n}\n.next-chessground .highlight .correct cg-board square.last-move {\n background-color: rgba(155, 240, 0, 0.4);\n}\n.next-chessground .highlight .incorrect cg-board square.last-move {\n background-color: rgba(240, 0, 0, 0.4);\n}\n\n.next-chessground cg-board square.check {\n background: radial-gradient(\n ellipse at center,\n rgba(255, 0, 0, 1) 0%,\n rgba(231, 0, 0, 1) 25%,\n rgba(169, 0, 0, 0) 89%,\n rgba(158, 0, 0, 0) 100%\n );\n}\n.next-chessground cg-board square.current-premove {\n background-color: rgba(20, 30, 85, 0.5);\n}\n.next-chessground cg-board piece {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n background-size: cover;\n z-index: 2;\n will-change: transform;\n pointer-events: none;\n}\n.next-chessground cg-board piece.dragging {\n cursor: move;\n z-index: 9;\n}\n.next-chessground cg-board piece.anim {\n z-index: 8;\n}\n.next-chessground cg-board piece.fading {\n z-index: 1;\n opacity: 0.5;\n}\n.next-chessground cg-board piece.ghost {\n opacity: 0.3;\n}\n.next-chessground .cg-wrap svg {\n overflow: hidden;\n position: relative;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 2;\n opacity: 0.6;\n}\n.next-chessground .cg-wrap svg image {\n opacity: 0.5;\n}\n\n.next-chessground .spare-pieces {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.next-chessground .spare-piece {\n top: 0;\n left: 0;\n padding-bottom: 100%;\n padding-left: 100%;\n position: absolute;\n background-size: contain;\n background-position: 0% -100%;\n cursor: pointer;\n}\n.next-chessground .edit-square {\n display: table;\n position: relative;\n width: 14.285%;\n padding-bottom: 13.285%;\n}\n.next-chessground .promote .edit-square {\n width: 20%;\n padding-bottom: 20%;\n}\n");nr("coords {\n position: absolute;\n display: flex;\n pointer-events: none;\n user-select: none;\n color: #fff;\n font-weight: bold;\n font-size: 0.5rem;\n opacity: 0.8;\n}\n.coords-no coords {\n display: none;\n}\n@media (min-width: 640px) {\n coords {\n font-size: 0.75rem;\n }\n}\ncoords.ranks {\n flex-flow: column-reverse;\n top: 0;\n right: 0;\n height: 100%;\n width: 0.8em;\n}\ncoords.ranks.black {\n flex-flow: column;\n}\ncoords.files {\n bottom: 0;\n left: 0;\n flex-flow: row;\n width: 100%;\n}\ncoords.files.black {\n flex-flow: row-reverse;\n}\ncoords.files coord {\n padding-left: 4px;\n}\ncoords coord {\n flex: 1 1 auto;\n}\n\n.orientation-white .files coord:nth-child(2n + 1),\n.orientation-white .ranks coord:nth-child(2n),\n.orientation-black .files coord:nth-child(2n),\n.orientation-black .ranks coord:nth-child(2n + 1) {\n color: #fff;\n}\n.orientation-white .files coord:nth-child(2n),\n.orientation-white .ranks coord:nth-child(2n + 1),\n.orientation-black .files coord:nth-child(2n + 1),\n.orientation-black .ranks coord:nth-child(2n) {\n color: #779556;\n}\n");nr(".next-chessground .next-cog {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBmaWxsPSIjOUY5REIwIiBkPSJNNDg3LjQgMzE1LjdsLTQyLjYtMjQuNmM0LjMtMjMuMiA0LjMtNDcgMC03MC4ybDQyLjYtMjQuNmM0LjktMi44IDcuMS04LjYgNS41LTE0LTExLjEtMzUuNi0zMC02Ny44LTU0LjctOTQuNi0zLjgtNC4xLTEwLTUuMS0xNC44LTIuM0wzODAuOCAxMTBjLTE3LjktMTUuNC0zOC41LTI3LjMtNjAuOC0zNS4xVjI1LjhjMC01LjYtMy45LTEwLjUtOS40LTExLjctMzYuNy04LjItNzQuMy03LjgtMTA5LjIgMC01LjUgMS4yLTkuNCA2LjEtOS40IDExLjdWNzVjLTIyLjIgNy45LTQyLjggMTkuOC02MC44IDM1LjFMODguNyA4NS41Yy00LjktMi44LTExLTEuOS0xNC44IDIuMy0yNC43IDI2LjctNDMuNiA1OC45LTU0LjcgOTQuNi0xLjcgNS40LjYgMTEuMiA1LjUgMTRMNjcuMyAyMjFjLTQuMyAyMy4yLTQuMyA0NyAwIDcwLjJsLTQyLjYgMjQuNmMtNC45IDIuOC03LjEgOC42LTUuNSAxNCAxMS4xIDM1LjYgMzAgNjcuOCA1NC43IDk0LjYgMy44IDQuMSAxMCA1LjEgMTQuOCAyLjNsNDIuNi0yNC42YzE3LjkgMTUuNCAzOC41IDI3LjMgNjAuOCAzNS4xdjQ5LjJjMCA1LjYgMy45IDEwLjUgOS40IDExLjcgMzYuNyA4LjIgNzQuMyA3LjggMTA5LjIgMCA1LjUtMS4yIDkuNC02LjEgOS40LTExLjd2LTQ5LjJjMjIuMi03LjkgNDIuOC0xOS44IDYwLjgtMzUuMWw0Mi42IDI0LjZjNC45IDIuOCAxMSAxLjkgMTQuOC0yLjMgMjQuNy0yNi43IDQzLjYtNTguOSA1NC43LTk0LjYgMS41LTUuNS0uNy0xMS4zLTUuNi0xNC4xek0yNTYgMzM2Yy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHoiLz48L3N2Zz4=');\n}\n.next-chessground .next-sync {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBmaWxsPSIjOUY5REIwIiBkPSJNMzcwLjcyIDEzMy4yOEMzMzkuNDU4IDEwNC4wMDggMjk4Ljg4OCA4Ny45NjIgMjU1Ljg0OCA4OGMtNzcuNDU4LjA2OC0xNDQuMzI4IDUzLjE3OC0xNjIuNzkxIDEyNi44NS0xLjM0NCA1LjM2My02LjEyMiA5LjE1LTExLjY1MSA5LjE1SDI0LjEwM2MtNy40OTggMC0xMy4xOTQtNi44MDctMTEuODA3LTE0LjE3NkMzMy45MzMgOTQuOTI0IDEzNC44MTMgOCAyNTYgOGM2Ni40NDggMCAxMjYuNzkxIDI2LjEzNiAxNzEuMzE1IDY4LjY4NUw0NjMuMDMgNDAuOTdDNDc4LjE0OSAyNS44NTEgNTA0IDM2LjU1OSA1MDQgNTcuOTQxVjE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMzQ1Ljk0MWMtMjEuMzgyIDAtMzIuMDktMjUuODUxLTE2Ljk3MS00MC45NzFsNDEuNzUtNDEuNzQ5ek0zMiAyOTZoMTM0LjA1OWMyMS4zODIgMCAzMi4wOSAyNS44NTEgMTYuOTcxIDQwLjk3MWwtNDEuNzUgNDEuNzVjMzEuMjYyIDI5LjI3MyA3MS44MzUgNDUuMzE5IDExNC44NzYgNDUuMjggNzcuNDE4LS4wNyAxNDQuMzE1LTUzLjE0NCAxNjIuNzg3LTEyNi44NDkgMS4zNDQtNS4zNjMgNi4xMjItOS4xNSAxMS42NTEtOS4xNWg1Ny4zMDRjNy40OTggMCAxMy4xOTQgNi44MDcgMTEuODA3IDE0LjE3NkM0NzguMDY3IDQxNy4wNzYgMzc3LjE4NyA1MDQgMjU2IDUwNGMtNjYuNDQ4IDAtMTI2Ljc5MS0yNi4xMzYtMTcxLjMxNS02OC42ODVMNDguOTcgNDcxLjAzQzMzLjg1MSA0ODYuMTQ5IDggNDc1LjQ0MSA4IDQ1NC4wNTlWMzIwYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNHoiLz48L3N2Zz4=');\n}\n.next-chessground .next-trash {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii05NiAtOTYgNjQwIDY0MCI+PHBhdGggZD0iTTI2OCA0MTZoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6TTQzMiA4MGgtODIuNDFsLTM0LTU2LjdBNDggNDggMCAwIDAgMjc0LjQxIDBIMTczLjU5YTQ4IDQ4IDAgMCAwLTQxLjE2IDIzLjNMOTguNDEgODBIMTZBMTYgMTYgMCAwIDAgMCA5NnYxNmExNiAxNiAwIDAgMCAxNiAxNmgxNnYzMzZhNDggNDggMCAwIDAgNDggNDhoMjg4YTQ4IDQ4IDAgMCAwIDQ4LTQ4VjEyOGgxNmExNiAxNiAwIDAgMCAxNi0xNlY5NmExNiAxNiAwIDAgMC0xNi0xNnpNMTcxLjg0IDUwLjkxQTYgNiAwIDAgMSAxNzcgNDhoOTRhNiA2IDAgMCAxIDUuMTUgMi45MUwyOTMuNjEgODBIMTU0LjM5ek0zNjggNDY0SDgwVjEyOGgyODh6bS0yMTItNDhoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6Ii8+PC9zdmc+');\n}\n");nr("*,\n::after,\n::before {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n}\n\n.next-chessground {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n}\n.next-chessground .checkbox {\n display: flex;\n margin: 0;\n align-items: center;\n padding-left: 0.25rem;\n width: 2.75rem;\n height: 1.75rem;\n outline: none;\n appearance: none;\n transition: 0.2s ease-in-out;\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n cursor: pointer;\n}\n.next-chessground .checkbox:before {\n background-color: rgba(156, 163, 175);\n width: 1rem;\n height: 1rem;\n border-radius: 999px;\n content: '';\n transition: 0.2s ease-in-out;\n}\n.next-chessground .checkbox:checked:before {\n background-color: rgba(4, 120, 87);\n transform: translate(1rem, 0);\n}\n.next-chessground .next-button {\n background-color: transparent;\n background-image: none;\n cursor: pointer;\n display: flex;\n outline: none;\n\n padding: 0;\n line-height: inherit;\n color: inherit;\n font-size: 100%;\n}\n.next-chessground .next-button:focus {\n outline: none;\n}\n");nr(".pure-modal {\n box-shadow: rgba(0, 0, 0, 0.5) 0px 5px 15px 0px;\n color: rgba(55, 65, 81);\n}\n.pure-modal-backdrop {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n.backdrop-overflow-hidden {\n overflow: hidden !important;\n}\n.pure-modal-backdrop .pure-modal {\n width: 300px;\n max-width: 100%;\n box-sizing: border-box;\n transition: all 0.2s ease-in-out;\n max-height: 100%;\n}\n.pure-modal.auto-height {\n position: static;\n}\n.pure-modal-backdrop.scrollable {\n overflow-y: auto;\n}\n.pure-modal-backdrop .panel {\n display: grid;\n grid-template-rows: repeat(3, min-content);\n}\n.pure-modal-backdrop:not(.scrollable) .panel {\n grid-template-rows: min-content minmax(0, 1fr) min-content;\n max-height: -moz-available;\n max-height: -webkit-fill-available;\n max-height: fill-available;\n height: 100%;\n}\n.pure-modal > * > * {\n flex: 0 0 auto;\n}\n.pure-modal > * > .scrollable {\n overflow-x: hidden;\n overflow-scrolling: touch;\n}\n@media (max-width: 480px) {\n .pure-modal-backdrop .pure-modal {\n width: 100%;\n }\n}\n.pure-modal .panel-body {\n background-color: #fff;\n}\n.pure-modal .panel-heading {\n background: #f0f0f0;\n}\n.pure-modal .panel-title {\n padding: 12px 45px 12px 15px;\n margin: 0;\n}\n.pure-modal .close {\n right: 6px;\n top: 6px;\n z-index: 1;\n width: 30px;\n height: 30px;\n border-radius: 15px;\n text-align: center;\n line-height: 30px;\n cursor: pointer;\n font-size: 1.85rem;\n}\n.pure-modal .panel-heading .close:hover {\n color: #000;\n}\n.pure-modal .panel-body {\n padding: 15px;\n}\n.pure-modal .panel-footer {\n padding: 12px 45px 12px 15px;\n background: #f0f0f0;\n}\n.pure-modal .panel-body,\n.pure-modal .panel-footer,\n.pure-modal .panel-title {\n word-break: break-all;\n}\n.pure-modal-backdrop .additional-row,\n.pure-modal-backdrop:not(.scrollable) .additional-row {\n display: grid;\n grid-template-rows: min-content minmax(0, 1fr) min-content min-content;\n}\n");nr("/**\n * Cburnett\n */\n.cburnett piece.pawn.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wP.svg');\n}\n.cburnett piece.bishop.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wB.svg');\n}\n.cburnett piece.knight.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wN.svg');\n}\n.cburnett piece.rook.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wR.svg');\n}\n.cburnett piece.queen.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wQ.svg');\n}\n.cburnett piece.king.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wK.svg');\n}\n.cburnett piece.pawn.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bP.svg');\n}\n.cburnett piece.bishop.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bB.svg');\n}\n.cburnett piece.knight.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bN.svg');\n}\n.cburnett piece.rook.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bR.svg');\n}\n.cburnett piece.queen.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bQ.svg');\n}\n.cburnett piece.king.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bK.svg');\n}\n\n/**\n * Classic\n */\n.classic piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wp.png');\n}\n.classic piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wb.png');\n}\n.classic piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wn.png');\n}\n.classic piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wr.png');\n}\n.classic piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wq.png');\n}\n.classic piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wk.png');\n}\n.classic piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bp.png');\n}\n.classic piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bb.png');\n}\n.classic piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bn.png');\n}\n.classic piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/br.png');\n}\n.classic piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bq.png');\n}\n.classic piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bk.png');\n}\n\n/**\n * Neo\n */\n.neo piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wp.png');\n}\n.neo piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wb.png');\n}\n.neo piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wn.png');\n}\n.neo piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wr.png');\n}\n.neo piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wq.png');\n}\n.neo piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wk.png');\n}\n.neo piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bp.png');\n}\n.neo piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bb.png');\n}\n.neo piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bn.png');\n}\n.neo piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/br.png');\n}\n.neo piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bq.png');\n}\n.neo piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bk.png');\n}\n\n/**\n * Alpha\n */\n.alpha piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wp.png');\n}\n.alpha piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wb.png');\n}\n.alpha piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wn.png');\n}\n.alpha piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wr.png');\n}\n.alpha piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wq.png');\n}\n.alpha piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wk.png');\n}\n.alpha piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bp.png');\n}\n.alpha piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bb.png');\n}\n.alpha piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bn.png');\n}\n.alpha piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/br.png');\n}\n.alpha piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bq.png');\n}\n.alpha piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bk.png');\n}\n\n/**\n * Bases\n */\n.bases piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wp.png');\n}\n.bases piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wb.png');\n}\n.bases piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wn.png');\n}\n.bases piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wr.png');\n}\n.bases piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wq.png');\n}\n.bases piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wk.png');\n}\n.bases piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bp.png');\n}\n.bases piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bb.png');\n}\n.bases piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bn.png');\n}\n.bases piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/br.png');\n}\n.bases piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bq.png');\n}\n.bases piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bk.png');\n}\n");nr(".flex {\n display: flex;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-row-reverse {\n flex-direction: row-reverse;\n}\n.grid {\n display: grid;\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.w-full {\n width: 100%;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.px-2 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-resize {\n cursor: nesw-resize;\n}\n.outline-none,\n.outline-none:focus {\n outline: none;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-gray-400 {\n color: rgba(156, 163, 175);\n}\n.text-gray-800 {\n color: rgba(31, 41, 55);\n}\n.bg-white {\n background-color: #fff;\n}\n.bg-orange-300 {\n background-color: #fbd38d;\n}\n.border {\n border-width: 1px;\n border-style: solid;\n}\n.border-gray-300 {\n border-color: rgba(209, 213, 219);\n}\n.rounded {\n border-radius: 0.25rem;\n}\n");export{Yo as NextChessground,er as NextEditor,tr as Stockfish,fe as constants,Yo as default,xo as isValidFen,be as useChess,ye as useChessground};
35
+ */(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var we="function"==typeof Symbol&&Symbol.for,Ce=we?Symbol.for("react.element"):60103,ve=we?Symbol.for("react.portal"):60106,Se=we?Symbol.for("react.fragment"):60107,Ee=we?Symbol.for("react.strict_mode"):60108,Ve=we?Symbol.for("react.profiler"):60114,Ne=we?Symbol.for("react.provider"):60109,Me=we?Symbol.for("react.context"):60110,xe=we?Symbol.for("react.async_mode"):60111,Be=we?Symbol.for("react.concurrent_mode"):60111,De=we?Symbol.for("react.forward_ref"):60112,Te=we?Symbol.for("react.suspense"):60113,Qe=we?Symbol.for("react.suspense_list"):60120,Ze=we?Symbol.for("react.memo"):60115,je=we?Symbol.for("react.lazy"):60116,Pe=we?Symbol.for("react.block"):60121,Ue=we?Symbol.for("react.fundamental"):60117,Oe=we?Symbol.for("react.responder"):60118,qe=we?Symbol.for("react.scope"):60119;function Je(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case Ce:switch(e=e.type){case xe:case Be:case Se:case Ve:case Ee:case Te:return e;default:switch(e=e&&e.$$typeof){case Me:case De:case je:case Ze:case Ne:return e;default:return t}}case ve:return t}}}function Ke(e){return Je(e)===Be}var Ge={AsyncMode:xe,ConcurrentMode:Be,ContextConsumer:Me,ContextProvider:Ne,Element:Ce,ForwardRef:De,Fragment:Se,Lazy:je,Memo:Ze,Portal:ve,Profiler:Ve,StrictMode:Ee,Suspense:Te,isAsyncMode:function(e){return Ke(e)||Je(e)===xe},isConcurrentMode:Ke,isContextConsumer:function(e){return Je(e)===Me},isContextProvider:function(e){return Je(e)===Ne},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===Ce},isForwardRef:function(e){return Je(e)===De},isFragment:function(e){return Je(e)===Se},isLazy:function(e){return Je(e)===je},isMemo:function(e){return Je(e)===Ze},isPortal:function(e){return Je(e)===ve},isProfiler:function(e){return Je(e)===Ve},isStrictMode:function(e){return Je(e)===Ee},isSuspense:function(e){return Je(e)===Te},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===Se||e===Be||e===Ve||e===Ee||e===Te||e===Qe||"object"==typeof e&&null!==e&&(e.$$typeof===je||e.$$typeof===Ze||e.$$typeof===Ne||e.$$typeof===Me||e.$$typeof===De||e.$$typeof===Ue||e.$$typeof===Oe||e.$$typeof===qe||e.$$typeof===Pe)},typeOf:Je},Re=f(function(e,t){"production"!==process.env.NODE_ENV&&function(){var e="function"==typeof Symbol&&Symbol.for,n=e?Symbol.for("react.element"):60103,A=e?Symbol.for("react.portal"):60106,o=e?Symbol.for("react.fragment"):60107,r=e?Symbol.for("react.strict_mode"):60108,i=e?Symbol.for("react.profiler"):60114,s=e?Symbol.for("react.provider"):60109,a=e?Symbol.for("react.context"):60110,c=e?Symbol.for("react.async_mode"):60111,l=e?Symbol.for("react.concurrent_mode"):60111,u=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,p=e?Symbol.for("react.suspense_list"):60120,g=e?Symbol.for("react.memo"):60115,d=e?Symbol.for("react.lazy"):60116,m=e?Symbol.for("react.block"):60121,f=e?Symbol.for("react.fundamental"):60117,b=e?Symbol.for("react.responder"):60118,y=e?Symbol.for("react.scope"):60119;function I(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:var p=e.type;switch(p){case c:case l:case o:case i:case r:case h:return p;default:var m=p&&p.$$typeof;switch(m){case a:case u:case d:case g:case s:return m;default:return t}}case A:return t}}}var k=c,w=l,C=a,v=s,S=n,E=u,V=o,N=d,M=g,x=A,B=i,D=r,T=h,Q=!1;function Z(e){return I(e)===l}t.AsyncMode=k,t.ConcurrentMode=w,t.ContextConsumer=C,t.ContextProvider=v,t.Element=S,t.ForwardRef=E,t.Fragment=V,t.Lazy=N,t.Memo=M,t.Portal=x,t.Profiler=B,t.StrictMode=D,t.Suspense=T,t.isAsyncMode=function(e){return Q||(Q=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),Z(e)||I(e)===c},t.isConcurrentMode=Z,t.isContextConsumer=function(e){return I(e)===a},t.isContextProvider=function(e){return I(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return I(e)===u},t.isFragment=function(e){return I(e)===o},t.isLazy=function(e){return I(e)===d},t.isMemo=function(e){return I(e)===g},t.isPortal=function(e){return I(e)===A},t.isProfiler=function(e){return I(e)===i},t.isStrictMode=function(e){return I(e)===r},t.isSuspense=function(e){return I(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===l||e===i||e===r||e===h||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===d||e.$$typeof===g||e.$$typeof===s||e.$$typeof===a||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===y||e.$$typeof===m)},t.typeOf=I}()}),Fe=f(function(e){"production"===process.env.NODE_ENV?e.exports=Ge:e.exports=Re}),Le=Object.getOwnPropertySymbols,ze=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable;var Ye=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var A=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==A.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(e){o[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,A,o=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),r=1;r<arguments.length;r++){for(var i in n=Object(arguments[r]))ze.call(n,i)&&(o[i]=n[i]);if(Le){A=Le(n);for(var s=0;s<A.length;s++)We.call(n,A[s])&&(o[A[s]]=n[A[s]])}}return o},_e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",He=function(){};if("production"!==process.env.NODE_ENV){var Xe=_e,$e={},et=Function.call.bind(Object.prototype.hasOwnProperty);He=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}}function tt(e,t,n,A,o){if("production"!==process.env.NODE_ENV)for(var r in e)if(et(e,r)){var i;try{if("function"!=typeof e[r]){var s=Error((A||"React class")+": "+n+" type `"+r+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[r]+"`.");throw s.name="Invariant Violation",s}i=e[r](t,r,A,n,null,Xe)}catch(e){i=e}if(!i||i instanceof Error||He((A||"React class")+": type specification of "+n+" `"+r+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof i+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),i instanceof Error&&!(i.message in $e)){$e[i.message]=!0;var a=o?o():"";He("Failed "+n+" type: "+i.message+(null!=a?a:""))}}}tt.resetWarningCache=function(){"production"!==process.env.NODE_ENV&&($e={})};var nt=tt,At=Function.call.bind(Object.prototype.hasOwnProperty),ot=function(){};function rt(){return null}"production"!==process.env.NODE_ENV&&(ot=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}});var it=function(e,t){var n="function"==typeof Symbol&&Symbol.iterator;var A="<<anonymous>>",o={array:a("array"),bool:a("boolean"),func:a("function"),number:a("number"),object:a("object"),string:a("string"),symbol:a("symbol"),any:s(rt),arrayOf:function(e){return s(function(t,n,A,o,r){if("function"!=typeof e)return new i("Property `"+r+"` of component `"+A+"` has invalid PropType notation inside arrayOf.");var s=t[n];if(!Array.isArray(s))return new i("Invalid "+o+" `"+r+"` of type `"+l(s)+"` supplied to `"+A+"`, expected an array.");for(var a=0;a<s.length;a++){var c=e(s,a,A,o,r+"["+a+"]",_e);if(c instanceof Error)return c}return null})},element:s(function(t,n,A,o,r){var s=t[n];return e(s)?null:new i("Invalid "+o+" `"+r+"` of type `"+l(s)+"` supplied to `"+A+"`, expected a single ReactElement.")}),elementType:s(function(e,t,n,A,o){var r=e[t];return Fe.isValidElementType(r)?null:new i("Invalid "+A+" `"+o+"` of type `"+l(r)+"` supplied to `"+n+"`, expected a single ReactElement type.")}),instanceOf:function(e){return s(function(t,n,o,r,s){if(!(t[n]instanceof e)){var a=e.name||A;return new i("Invalid "+r+" `"+s+"` of type `"+(((c=t[n]).constructor&&c.constructor.name?c.constructor.name:A)+"` supplied to `")+o+"`, expected instance of `"+a+"`.")}var c;return null})},node:s(function(e,t,n,A,o){return c(e[t])?null:new i("Invalid "+A+" `"+o+"` supplied to `"+n+"`, expected a ReactNode.")}),objectOf:function(e){return s(function(t,n,A,o,r){if("function"!=typeof e)return new i("Property `"+r+"` of component `"+A+"` has invalid PropType notation inside objectOf.");var s=t[n],a=l(s);if("object"!==a)return new i("Invalid "+o+" `"+r+"` of type `"+a+"` supplied to `"+A+"`, expected an object.");for(var c in s)if(At(s,c)){var u=e(s,c,A,o,r+"."+c,_e);if(u instanceof Error)return u}return null})},oneOf:function(e){if(!Array.isArray(e))return"production"!==process.env.NODE_ENV&&ot(arguments.length>1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),rt;return s(function(t,n,A,o,s){for(var a=t[n],c=0;c<e.length;c++)if(r(a,e[c]))return null;var l=JSON.stringify(e,function(e,t){return"symbol"===u(t)?String(t):t});return new i("Invalid "+o+" `"+s+"` of value `"+String(a)+"` supplied to `"+A+"`, expected one of "+l+".")})},oneOfType:function(e){if(!Array.isArray(e))return"production"!==process.env.NODE_ENV&&ot("Invalid argument supplied to oneOfType, expected an instance of array."),rt;for(var t=0;t<e.length;t++){var n=e[t];if("function"!=typeof n)return ot("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+h(n)+" at index "+t+"."),rt}return s(function(t,n,A,o,r){for(var s=0;s<e.length;s++)if(null==(0,e[s])(t,n,A,o,r,_e))return null;return new i("Invalid "+o+" `"+r+"` supplied to `"+A+"`.")})},shape:function(e){return s(function(t,n,A,o,r){var s=t[n],a=l(s);if("object"!==a)return new i("Invalid "+o+" `"+r+"` of type `"+a+"` supplied to `"+A+"`, expected `object`.");for(var c in e){var u=e[c];if(u){var h=u(s,c,A,o,r+"."+c,_e);if(h)return h}}return null})},exact:function(e){return s(function(t,n,A,o,r){var s=t[n],a=l(s);if("object"!==a)return new i("Invalid "+o+" `"+r+"` of type `"+a+"` supplied to `"+A+"`, expected `object`.");var c=Ye({},t[n],e);for(var u in c){var h=e[u];if(!h)return new i("Invalid "+o+" `"+r+"` key `"+u+"` supplied to `"+A+"`.\nBad object: "+JSON.stringify(t[n],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null," "));var p=h(s,u,A,o,r+"."+u,_e);if(p)return p}return null})}};function r(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function i(e){this.message=e,this.stack=""}function s(e){if("production"!==process.env.NODE_ENV)var n={},o=0;function r(r,s,a,c,l,u,h){if(c=c||A,u=u||a,h!==_e){if(t){var p=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw p.name="Invariant Violation",p}if("production"!==process.env.NODE_ENV&&"undefined"!=typeof console){var g=c+":"+a;!n[g]&&o<3&&(ot("You are manually calling a React.PropTypes validation function for the `"+u+"` prop on `"+c+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),n[g]=!0,o++)}}return null==s[a]?r?null===s[a]?new i("The "+l+" `"+u+"` is marked as required in `"+c+"`, but its value is `null`."):new i("The "+l+" `"+u+"` is marked as required in `"+c+"`, but its value is `undefined`."):null:e(s,a,c,l,u)}var s=r.bind(null,!1);return s.isRequired=r.bind(null,!0),s}function a(e){return s(function(t,n,A,o,r,s){var a=t[n];return l(a)!==e?new i("Invalid "+o+" `"+r+"` of type `"+u(a)+"` supplied to `"+A+"`, expected `"+e+"`."):null})}function c(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(c);if(null===t||e(t))return!0;var A=function(e){var t=e&&(n&&e[n]||e["@@iterator"]);if("function"==typeof t)return t}(t);if(!A)return!1;var o,r=A.call(t);if(A!==t.entries){for(;!(o=r.next()).done;)if(!c(o.value))return!1}else for(;!(o=r.next()).done;){var i=o.value;if(i&&!c(i[1]))return!1}return!0;default:return!1}}function l(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,t){return"symbol"===e||!!t&&("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}(t,e)?"symbol":t}function u(e){if(null==e)return""+e;var t=l(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function h(e){var t=u(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}return i.prototype=Error.prototype,o.checkPropTypes=nt,o.resetWarningCache=nt.resetWarningCache,o.PropTypes=o,o};function st(){}function at(){}at.resetWarningCache=st;var ct=f(function(e){if("production"!==process.env.NODE_ENV){var t=Fe;e.exports=it(t.isElement,!0)}else e.exports=function(){function e(e,t,n,A,o,r){if(r!==_e){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:at,resetWarningCache:st};return n.PropTypes=n,n}()});const lt=["white","black"],ut=["a","b","c","d","e","f","g","h"],ht=["1","2","3","4","5","6","7","8"],pt=[...ht].reverse(),gt=Array.prototype.concat(...ut.map(e=>ht.map(t=>e+t))),dt=e=>gt[8*e[0]+e[1]],mt=e=>[e.charCodeAt(0)-97,e.charCodeAt(1)-49],ft=gt.map(mt);const bt=()=>{let e;return{start(){e=performance.now()},cancel(){e=void 0},stop(){if(!e)return 0;const t=performance.now()-e;return e=void 0,t}}},yt=e=>"white"===e?"black":"white",It=(e,t)=>{const n=e[0]-t[0],A=e[1]-t[1];return n*n+A*A},kt=(e,t)=>e.role===t.role&&e.color===t.color,wt=(e,t,n,A)=>[(t?e[0]:7-e[0])*n,(t?7-e[1]:e[1])*A],Ct=e=>{const t=e.width/8,n=e.height/8;return(e,A)=>wt(e,A,t,n)},vt=(e,t)=>wt(e,t,100,100),St=(e,t)=>{e.style.transform=`translate(${t[0]}px,${t[1]}px)`},Et=(e,t)=>{e.style.transform=`translate(${t[0]}%,${t[1]}%)`},Vt=(e,t)=>{e.style.visibility=t?"visible":"hidden"},Nt=e=>{var t;return e.clientX||0===e.clientX?[e.clientX,e.clientY]:(null===(t=e.targetTouches)||void 0===t?void 0:t[0])?[e.targetTouches[0].clientX,e.targetTouches[0].clientY]:void 0},Mt=e=>2===e.buttons||2===e.button,xt=(e,t)=>{const n=document.createElement(e);return t&&(n.className=t),n};function Bt(e,t,n){const A=mt(e);return t||(A[0]=7-A[0],A[1]=7-A[1]),[n.left+n.width*A[0]/8+n.width/16,n.top+n.height*(7-A[1])/8+n.height/16]}function Dt(e,t){return Math.abs(e-t)}const Tt=(e,t,n,A)=>{const o=Dt(e,n),r=Dt(t,A);return 1===o&&2===r||2===o&&1===r},Qt=(e,t,n,A)=>Dt(e,n)===Dt(t,A),Zt=(e,t,n,A)=>e===n||t===A,jt=(e,t,n,A)=>Qt(e,t,n,A)||Zt(e,t,n,A);function Pt(e,t,n){const A=e.get(t);if(!A)return[];const o=mt(t),r=A.role,i="pawn"===r?(s=A.color,(e,t,n,A)=>Dt(e,n)<2&&("white"===s?A===t+1||t<=1&&A===t+2&&e===n:A===t-1||t>=6&&A===t-2&&e===n)):"knight"===r?Tt:"bishop"===r?Qt:"rook"===r?Zt:"queen"===r?jt:function(e,t,n){return(A,o,r,i)=>Dt(A,r)<2&&Dt(o,i)<2||n&&o===i&&o===("white"===e?0:7)&&(4===A&&(2===r&&t.includes(0)||6===r&&t.includes(7))||t.includes(r))}(A.color,function(e,t){const n="white"===t?"1":"8",A=[];for(const[o,r]of e)o[1]===n&&r.color===t&&"rook"===r.role&&A.push(mt(o)[0]);return A}(e,A.color),n);var s;return ft.filter(e=>(o[0]!==e[0]||o[1]!==e[1])&&i(o[0],o[1],e[0],e[1])).map(dt)}function Ut(e,...t){e&&setTimeout(()=>e(...t),1)}function Ot(e){e.premovable.current&&(e.premovable.current=void 0,Ut(e.premovable.events.unset))}function qt(e){const t=e.predroppable;t.current&&(t.current=void 0,Ut(t.events.unset))}function Jt(e,t,n){const A=e.pieces.get(t),o=e.pieces.get(n);if(t===n||!A)return!1;const r=o&&o.color!==A.color?o:void 0;return n===e.selected&&Wt(e),Ut(e.events.move,t,n,r),function(e,t,n){if(!e.autoCastle)return!1;const A=e.pieces.get(t);if(!A||"king"!==A.role)return!1;const o=mt(t),r=mt(n);if(0!==o[1]&&7!==o[1]||o[1]!==r[1])return!1;4!==o[0]||e.pieces.has(n)||(6===r[0]?n=dt([7,r[1]]):2===r[0]&&(n=dt([0,r[1]])));const i=e.pieces.get(n);return!(!i||i.color!==A.color||"rook"!==i.role||(e.pieces.delete(t),e.pieces.delete(n),o[0]<r[0]?(e.pieces.set(dt([6,r[1]]),A),e.pieces.set(dt([5,r[1]]),i)):(e.pieces.set(dt([2,r[1]]),A),e.pieces.set(dt([3,r[1]]),i)),0))}(e,t,n)||(e.pieces.set(n,A),e.pieces.delete(t)),e.lastMove=[t,n],e.check=void 0,Ut(e.events.change),r||!0}function Kt(e,t,n,A){if(e.pieces.has(n)){if(!A)return!1;e.pieces.delete(n)}return Ut(e.events.dropNewPiece,t,n),e.pieces.set(n,t),e.lastMove=[n],e.check=void 0,Ut(e.events.change),e.movable.dests=void 0,e.turnColor=yt(e.turnColor),!0}function Gt(e,t,n){const A=Jt(e,t,n);return A&&(e.movable.dests=void 0,e.turnColor=yt(e.turnColor),e.animation.current=void 0),A}function Rt(e,t,n){if(_t(e,t,n)){const A=Gt(e,t,n);if(A){const o=e.hold.stop();Wt(e);const r={premove:!1,ctrlKey:e.stats.ctrlKey,holdTime:o};return!0!==A&&(r.captured=A),Ut(e.movable.events.after,t,n,r),!0}}else if(function(e,t,n){return t!==n&&Ht(e,t)&&Pt(e.pieces,t,e.premovable.castle).includes(n)}(e,t,n))return function(e,t,n,A){qt(e),e.premovable.current=[t,n],Ut(e.premovable.events.set,t,n,A)}(e,t,n,{ctrlKey:e.stats.ctrlKey}),Wt(e),!0;return Wt(e),!1}function Ft(e,t,n,A){const o=e.pieces.get(t);o&&(function(e,t,n){const A=e.pieces.get(t);return!(!A||t!==n&&e.pieces.has(n)||"both"!==e.movable.color&&(e.movable.color!==A.color||e.turnColor!==A.color))}(e,t,n)||A)?(e.pieces.delete(t),Kt(e,o,n,A),Ut(e.movable.events.afterNewPiece,o.role,n,{premove:!1,predrop:!1})):o&&function(e,t,n){const A=e.pieces.get(t),o=e.pieces.get(n);return!!A&&(!o||o.color!==e.movable.color)&&e.predroppable.enabled&&("pawn"!==A.role||"1"!==n[1]&&"8"!==n[1])&&e.movable.color===A.color&&e.turnColor!==A.color}(e,t,n)?function(e,t,n){Ot(e),e.predroppable.current={role:t,key:n},Ut(e.predroppable.events.set,t,n)}(e,o.role,n):(Ot(e),qt(e)),e.pieces.delete(t),Wt(e)}function Lt(e,t,n){if(Ut(e.events.select,t),e.selected){if(e.selected===t&&!e.draggable.enabled)return Wt(e),void e.hold.cancel();if((e.selectable.enabled||n)&&e.selected!==t&&Rt(e,e.selected,t))return void(e.stats.dragged=!1)}(Yt(e,t)||Ht(e,t))&&(zt(e,t),e.hold.start())}function zt(e,t){e.selected=t,Ht(e,t)?e.premovable.dests=Pt(e.pieces,t,e.premovable.castle):e.premovable.dests=void 0}function Wt(e){e.selected=void 0,e.premovable.dests=void 0,e.hold.cancel()}function Yt(e,t){const n=e.pieces.get(t);return!!n&&("both"===e.movable.color||e.movable.color===n.color&&e.turnColor===n.color)}function _t(e,t,n){var A,o;return t!==n&&Yt(e,t)&&(e.movable.free||!!(null===(o=null===(A=e.movable.dests)||void 0===A?void 0:A.get(t))||void 0===o?void 0:o.includes(n)))}function Ht(e,t){const n=e.pieces.get(t);return!!n&&e.premovable.enabled&&e.movable.color===n.color&&e.turnColor!==n.color}function Xt(e){const t=e.premovable.current;if(!t)return!1;const n=t[0],A=t[1];let o=!1;if(_t(e,n,A)){const t=Gt(e,n,A);if(t){const r={premove:!0};!0!==t&&(r.captured=t),Ut(e.movable.events.after,n,A,r),o=!0}}return Ot(e),o}function $t(e){Ot(e),qt(e),Wt(e)}function en(e){e.movable.color=e.movable.dests=e.animation.current=void 0,$t(e)}function tn(e,t,n){let A=Math.floor(8*(e[0]-n.left)/n.width);t||(A=7-A);let o=7-Math.floor(8*(e[1]-n.top)/n.height);return t||(o=7-o),A>=0&&A<8&&o>=0&&o<8?dt([A,o]):void 0}function nn(e){return"white"===e.orientation}const An="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR",on={p:"pawn",r:"rook",n:"knight",b:"bishop",q:"queen",k:"king"},rn={pawn:"p",rook:"r",knight:"n",bishop:"b",queen:"q",king:"k"};function sn(e){"start"===e&&(e=An);const t=new Map;let n=7,A=0;for(const o of e)switch(o){case" ":return t;case"/":if(--n,n<0)return t;A=0;break;case"~":{const e=t.get(dt([A,n]));e&&(e.promoted=!0);break}default:{const e=o.charCodeAt(0);if(e<57)A+=e-48;else{const e=o.toLowerCase();t.set(dt([A,n]),{role:on[e],color:o===e?"black":"white"}),++A}}}return t}function an(e,t){var n,A;if((null===(n=t.movable)||void 0===n?void 0:n.dests)&&(e.movable.dests=void 0),(null===(A=t.drawable)||void 0===A?void 0:A.autoShapes)&&(e.drawable.autoShapes=[]),cn(e,t),t.fen&&(e.pieces=sn(t.fen),e.drawable.shapes=[]),"check"in t&&function(e,t){if(e.check=void 0,!0===t&&(t=e.turnColor),t)for(const[n,A]of e.pieces)"king"===A.role&&A.color===t&&(e.check=n)}(e,t.check||!1),"lastMove"in t&&!t.lastMove?e.lastMove=void 0:t.lastMove&&(e.lastMove=t.lastMove),e.selected&&zt(e,e.selected),(!e.animation.duration||e.animation.duration<100)&&(e.animation.enabled=!1),!e.movable.rookCastle&&e.movable.dests){const t="white"===e.movable.color?"1":"8",n="e"+t,A=e.movable.dests.get(n),o=e.pieces.get(n);if(!A||!o||"king"!==o.role)return;e.movable.dests.set(n,A.filter(e=>!(e==="a"+t&&A.includes("c"+t)||e==="h"+t&&A.includes("g"+t))))}}function cn(e,t){for(const n in t)ln(e[n])&&ln(t[n])?cn(e[n],t[n]):e[n]=t[n]}function ln(e){return"object"==typeof e}function un(e,t){return t.animation.enabled?function(e,t){const n=new Map(t.pieces),A=e(t),o=function(e,t){const n=new Map,A=[],o=new Map,r=[],i=[],s=new Map;let a,c,l;for(const[t,n]of e)s.set(t,pn(t,n));for(const e of gt)a=t.pieces.get(e),c=s.get(e),a?c?kt(a,c.piece)||(r.push(c),i.push(pn(e,a))):i.push(pn(e,a)):c&&r.push(c);for(const e of i)c=gn(e,r.filter(t=>kt(e.piece,t.piece))),c&&(l=[c.pos[0]-e.pos[0],c.pos[1]-e.pos[1]],n.set(e.key,l.concat(l)),A.push(c.key));for(const e of r)A.includes(e.key)||o.set(e.key,e.piece);return{anims:n,fadings:o}}(n,t);if(o.anims.size||o.fadings.size){const e=t.animation.current&&t.animation.current.start;t.animation.current={start:performance.now(),frequency:1/t.animation.duration,plan:o},e||dn(t,performance.now())}else t.dom.redraw();return A}(e,t):hn(e,t)}function hn(e,t){const n=e(t);return t.dom.redraw(),n}function pn(e,t){return{key:e,pos:mt(e),piece:t}}function gn(e,t){return t.sort((t,n)=>It(e.pos,t.pos)-It(e.pos,n.pos))[0]}function dn(e,t){const n=e.animation.current;if(void 0===n)return void(e.dom.destroyed||e.dom.redrawNow());const A=1-(t-n.start)*n.frequency;if(A<=0)e.animation.current=void 0,e.dom.redrawNow();else{const t=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1}(A);for(const e of n.plan.anims.values())e[2]=e[0]*t,e[3]=e[1]*t;e.dom.redrawNow(!0),requestAnimationFrame((t=performance.now())=>dn(e,t))}}const mn=["green","red","blue","yellow"];function fn(e,t){if(t.touches&&t.touches.length>1)return;t.stopPropagation(),t.preventDefault(),t.ctrlKey?Wt(e):$t(e);const n=Nt(t),A=tn(n,nn(e),e.dom.bounds());A&&(e.drawable.current={orig:A,pos:n,brush:wn(t),snapToValidMove:e.drawable.defaultSnapToValidMove},bn(e))}function bn(e){requestAnimationFrame(()=>{const t=e.drawable.current;if(t){const n=tn(t.pos,nn(e),e.dom.bounds());n||(t.snapToValidMove=!1);const A=t.snapToValidMove?function(e,t,n,A){const o=mt(e),r=ft.filter(e=>jt(o[0],o[1],e[0],e[1])||Tt(o[0],o[1],e[0],e[1])),i=r.map(e=>Bt(dt(e),n,A)).map(e=>It(t,e)),[,s]=i.reduce((e,t,n)=>e[0]<t?e:[t,n],[i[0],0]);return dt(r[s])}(t.orig,t.pos,nn(e),e.dom.bounds()):n;A!==t.mouseSq&&(t.mouseSq=A,t.dest=A!==t.orig?A:void 0,e.dom.redrawNow()),bn(e)}})}function yn(e,t){e.drawable.current&&(e.drawable.current.pos=Nt(t))}function In(e){const t=e.drawable.current;t&&(t.mouseSq&&function(e,t){const n=e=>e.orig===t.orig&&e.dest===t.dest,A=e.shapes.find(n);A&&(e.shapes=e.shapes.filter(e=>!n(e)));A&&A.brush===t.brush||e.shapes.push(t);Cn(e)}(e.drawable,t),kn(e))}function kn(e){e.drawable.current&&(e.drawable.current=void 0,e.dom.redraw())}function wn(e){var t;const n=(e.shiftKey||e.ctrlKey)&&Mt(e),A=e.altKey||e.metaKey||(null===(t=e.getModifierState)||void 0===t?void 0:t.call(e,"AltGraph"));return mn[(n?1:0)+(A?2:0)]}function Cn(e){e.onChange&&e.onChange(e.shapes)}function vn(e,t){if(!t.isTrusted||void 0!==t.button&&0!==t.button)return;if(t.touches&&t.touches.length>1)return;const n=e.dom.bounds(),A=Nt(t),o=tn(A,nn(e),n);if(!o)return;const r=e.pieces.get(o),i=e.selected;i||!e.drawable.enabled||!e.drawable.eraseOnClick&&r&&r.color===e.turnColor||function(e){e.drawable.shapes.length&&(e.drawable.shapes=[],e.dom.redraw(),Cn(e.drawable))}(e),!1===t.cancelable||t.touches&&e.movable.color&&!r&&!i&&!function(e,t){const n=nn(e),A=e.dom.bounds(),o=Math.pow(A.width/8,2);for(const r in e.pieces){const e=Bt(r,n,A);if(It(e,t)<=o)return!0}return!1}(e,A)||t.preventDefault();const s=!!e.premovable.current,a=!!e.predroppable.current;e.stats.ctrlKey=t.ctrlKey,e.selected&&_t(e,e.selected,o)?un(e=>Lt(e,o),e):Lt(e,o);const c=e.selected===o,l=xn(e,o);if(r&&l&&c&&function(e,t){const n=e.pieces.get(t);return!!n&&e.draggable.enabled&&("both"===e.movable.color||e.movable.color===n.color&&(e.turnColor===n.color||e.premovable.enabled))}(e,o)){e.draggable.current={orig:o,piece:r,origPos:A,pos:A,started:e.draggable.autoDistance&&e.stats.dragged,element:l,previouslySelected:i,originTarget:t.target},l.cgDragging=!0,l.classList.add("dragging");const s=e.dom.elements.ghost;s&&(s.className=`ghost ${r.color} ${r.role}`,St(s,Ct(n)(mt(o),nn(e))),Vt(s,!0)),Sn(e)}else s&&Ot(e),a&&qt(e);e.dom.redraw()}function Sn(e){requestAnimationFrame(()=>{var t;const n=e.draggable.current;if(!n)return;(null===(t=e.animation.current)||void 0===t?void 0:t.plan.anims.has(n.orig))&&(e.animation.current=void 0);const A=e.pieces.get(n.orig);if(A&&kt(A,n.piece)){if(!n.started&&It(n.pos,n.origPos)>=Math.pow(e.draggable.distance,2)&&(n.started=!0),n.started){if("function"==typeof n.element){const e=n.element();if(!e)return;e.cgDragging=!0,e.classList.add("dragging"),n.element=e}const t=e.dom.bounds();St(n.element,[n.pos[0]-t.left-t.width/16,n.pos[1]-t.top-t.height/16])}}else Nn(e);Sn(e)})}function En(e,t){e.draggable.current&&(!t.touches||t.touches.length<2)&&(e.draggable.current.pos=Nt(t))}function Vn(e,t){const n=e.draggable.current;if(!n)return;if("touchend"===t.type&&!1!==t.cancelable&&t.preventDefault(),"touchend"===t.type&&n.originTarget!==t.target&&!n.newPiece)return void(e.draggable.current=void 0);Ot(e),qt(e);const A=tn(Nt(t)||n.pos,nn(e),e.dom.bounds());A&&n.started&&n.orig!==A?n.newPiece?Ft(e,n.orig,A,n.force):(e.stats.ctrlKey=t.ctrlKey,Rt(e,n.orig,A)&&(e.stats.dragged=!0)):n.newPiece?e.pieces.delete(n.orig):e.draggable.deleteOnDropOff&&!A&&(e.pieces.delete(n.orig),Ut(e.events.change)),(n.orig!==n.previouslySelected||n.orig!==A&&A)&&e.selectable.enabled||Wt(e),Mn(e),e.draggable.current=void 0,e.dom.redraw()}function Nn(e){const t=e.draggable.current;t&&(t.newPiece&&e.pieces.delete(t.orig),e.draggable.current=void 0,Wt(e),Mn(e),e.dom.redraw())}function Mn(e){const t=e.dom.elements;t.ghost&&Vt(t.ghost,!1)}function xn(e,t){let n=e.dom.elements.board.firstChild;for(;n;){if(n.cgKey===t&&"PIECE"===n.tagName)return n;n=n.nextSibling}}function Bn(e,t){e.exploding&&(t?e.exploding.stage=t:e.exploding=void 0,e.dom.redraw())}function Dn(e,t){function n(){!function(e){e.orientation=yt(e.orientation),e.animation.current=e.draggable.current=e.selected=void 0}(e),t()}return{set(t){t.orientation&&t.orientation!==e.orientation&&n(),(t.fen?un:hn)(e=>an(e,t),e)},state:e,getFen:()=>{return t=e.pieces,pt.map(e=>ut.map(n=>{const A=t.get(n+e);if(A){const e=rn[A.role];return"white"===A.color?e.toUpperCase():e}return"1"}).join("")).join("/").replace(/1{2,}/g,e=>e.length.toString());var t},toggleOrientation:n,setPieces(t){un(e=>function(e,t){for(const[n,A]of t)A?e.pieces.set(n,A):e.pieces.delete(n)}(e,t),e)},selectSquare(t,n){t?un(e=>Lt(e,t,n),e):e.selected&&(Wt(e),e.dom.redraw())},move(t,n){un(e=>Jt(e,t,n),e)},newPiece(t,n){un(e=>Kt(e,t,n),e)},playPremove(){if(e.premovable.current){if(un(Xt,e))return!0;e.dom.redraw()}return!1},playPredrop(t){if(e.predroppable.current){const n=function(e,t){const n=e.predroppable.current;let A=!1;if(!n)return!1;t(n)&&Kt(e,{role:n.role,color:e.movable.color},n.key)&&(Ut(e.movable.events.afterNewPiece,n.role,n.key,{premove:!1,predrop:!0}),A=!0);return qt(e),A}(e,t);return e.dom.redraw(),n}return!1},cancelPremove(){hn(Ot,e)},cancelPredrop(){hn(qt,e)},cancelMove(){hn(e=>{$t(e),Nn(e)},e)},stop(){hn(e=>{en(e),Nn(e)},e)},explode(t){!function(e,t){e.exploding={stage:1,keys:t},e.dom.redraw(),setTimeout(()=>{Bn(e,2),setTimeout(()=>Bn(e,void 0),120)},120)}(e,t)},setAutoShapes(t){hn(e=>e.drawable.autoShapes=t,e)},setShapes(t){hn(e=>e.drawable.shapes=t,e)},getKeyAtDomPos:t=>tn(t,nn(e),e.dom.bounds()),redrawAll:t,dragNewPiece(t,n,A){!function(e,t,n,A){const o="a0";e.pieces.set(o,t),e.dom.redraw();const r=Nt(n);e.draggable.current={orig:o,piece:t,origPos:r,pos:r,started:!0,element:()=>xn(e,o),originTarget:n.target,newPiece:!0,force:!!A},Sn(e)}(e,t,n,A)},destroy(){en(e),e.dom.unbind&&e.dom.unbind(),e.dom.destroyed=!0}}}function Tn(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function Qn(e,t,n){const A=e.drawable,o=A.current,r=o&&o.mouseSq?o:void 0,i=new Map,s=e.dom.bounds();for(const e of A.shapes.concat(A.autoShapes).concat(r?[r]:[]))e.dest&&i.set(e.dest,(i.get(e.dest)||0)+1);const a=A.shapes.concat(A.autoShapes).map(e=>({shape:e,current:!1,hash:jn(e,i,!1,s)}));r&&a.push({shape:r,current:!0,hash:jn(r,i,!0,s)});const c=a.map(e=>e.hash).join(";");if(c===e.drawable.prevSvgHash)return;e.drawable.prevSvgHash=c;const l=t.querySelector("defs"),u=t.querySelector("g"),h=n.querySelector("g");!function(e,t,n){const A=new Map;let o;for(const n of t)n.shape.dest&&(o=e.brushes[n.shape.brush],n.shape.modifiers&&(o=Rn(o,n.shape.modifiers)),A.set(o.key,o));const r=new Set;let i=n.firstChild;for(;i;)r.add(i.getAttribute("cgKey")),i=i.nextSibling;for(const[e,t]of A.entries())r.has(e)||n.appendChild(Jn(t))}(A,a,l),Zn(e,a.filter(e=>!e.shape.customSvg),A.brushes,i,u),Zn(e,a.filter(e=>e.shape.customSvg),A.brushes,i,h)}function Zn(e,t,n,A,o){const r=e.dom.bounds(),i=new Map,s=[];for(const e of t)i.set(e.hash,!1);let a,c=o.firstChild;for(;c;)a=c.getAttribute("cgHash"),i.has(a)?i.set(a,!0):s.push(c),c=c.nextSibling;for(const e of s)o.removeChild(e);for(const s of t)i.get(s.hash)||o.appendChild(qn(e,s,n,A,r))}function jn({orig:e,dest:t,brush:n,piece:A,modifiers:o,customSvg:r},i,s,a){return[a.width,a.height,s,e,t,n,t&&(i.get(t)||0)>1,A&&Pn(A),o&&Un(o),r&&On(r)].filter(e=>e).join(",")}function Pn(e){return[e.color,e.role,e.scale].filter(e=>e).join(",")}function Un(e){return""+(e.lineWidth||"")}function On(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)>>>0;return"custom-"+t.toString()}function qn(e,{shape:t,current:n,hash:A},o,r,i){let s;if(t.customSvg){const n=Gn(mt(t.orig),e.orientation);s=function(e,t,n){const{width:A,height:o}=n,r=A/8,i=o/8,s=t[0]*r,a=(7-t[1])*i,c=Kn(Tn("g"),{transform:`translate(${s},${a})`}),l=Kn(Tn("svg"),{width:r,height:i,viewBox:"0 0 100 100"});return c.appendChild(l),l.innerHTML=e,c}(t.customSvg,n,i)}else if(t.piece)s=function(e,t,n,A){const o=zn(t,A),r=A.width/8*(n.scale||1),i=n.color[0]+("knight"===n.role?"n":n.role[0]).toUpperCase();return Kn(Tn("image"),{className:`${n.role} ${n.color}`,x:o[0]-r/2,y:o[1]-r/2,width:r,height:r,href:e+i+".svg"})}(e.drawable.pieces.baseUrl,Gn(mt(t.orig),e.orientation),t.piece,i);else{const A=Gn(mt(t.orig),e.orientation);if(t.dest){let a=o[t.brush];t.modifiers&&(a=Rn(a,t.modifiers)),s=function(e,t,n,A,o,r){const i=function(e,t){return(t?20:10)/512*e.width}(r,o&&!A),s=zn(t,r),a=zn(n,r),c=a[0]-s[0],l=a[1]-s[1],u=Math.atan2(l,c),h=Math.cos(u)*i,p=Math.sin(u)*i;return Kn(Tn("line"),{stroke:e.color,"stroke-width":Fn(e,A,r),"stroke-linecap":"round","marker-end":"url(#arrowhead-"+e.key+")",opacity:Ln(e,A),x1:s[0],y1:s[1],x2:a[0]-h,y2:a[1]-p})}(a,A,Gn(mt(t.dest),e.orientation),n,(r.get(t.dest)||0)>1,i)}else s=function(e,t,n,A){const o=zn(t,A),r=function(e){const t=e.width/512;return[3*t,4*t]}(A),i=(A.width+A.height)/32;return Kn(Tn("circle"),{stroke:e.color,"stroke-width":r[n?0:1],fill:"none",opacity:Ln(e,n),cx:o[0],cy:o[1],r:i-r[1]/2})}(o[t.brush],A,n,i)}return s.setAttribute("cgHash",A),s}function Jn(e){const t=Kn(Tn("marker"),{id:"arrowhead-"+e.key,orient:"auto",markerWidth:4,markerHeight:8,refX:2.05,refY:2.01});return t.appendChild(Kn(Tn("path"),{d:"M0,0 V4 L3,2 Z",fill:e.color})),t.setAttribute("cgKey",e.key),t}function Kn(e,t){for(const n in t)e.setAttribute(n,t[n]);return e}function Gn(e,t){return"white"===t?e:[7-e[0],7-e[1]]}function Rn(e,t){return{color:e.color,opacity:Math.round(10*e.opacity)/10,lineWidth:Math.round(t.lineWidth||e.lineWidth),key:[e.key,t.lineWidth].filter(e=>e).join("")}}function Fn(e,t,n){return(e.lineWidth||10)*(t?.85:1)/512*n.width}function Ln(e,t){return(e.opacity||1)*(t?.9:1)}function zn(e,t){return[(e[0]+.5)*t.width/8,(7.5-e[1])*t.height/8]}function Wn(e,t){const n=xt("coords",t);let A;for(const t of e)A=xt("coord"),A.textContent=t,n.appendChild(A);return n}function Yn(e,t){const n=e.dom.elements.board;if(!e.dom.relative&&e.resizable&&"ResizeObserver"in window){new window.ResizeObserver(t).observe(n)}if(e.viewOnly)return;const A=function(e){return t=>{e.draggable.current?Nn(e):e.drawable.current?kn(e):t.shiftKey||Mt(t)?e.drawable.enabled&&fn(e,t):e.viewOnly||(e.dropmode.active?function(e,t){if(!e.dropmode.active)return;Ot(e),qt(e);const n=e.dropmode.piece;if(n){e.pieces.set("a0",n);const A=Nt(t),o=A&&tn(A,nn(e),e.dom.bounds());o&&Ft(e,"a0",o)}e.dom.redraw()}(e,t):vn(e,t))}}(e);n.addEventListener("touchstart",A,{passive:!1}),n.addEventListener("mousedown",A,{passive:!1}),(e.disableContextMenu||e.drawable.enabled)&&n.addEventListener("contextmenu",e=>e.preventDefault())}function _n(e,t,n,A){return e.addEventListener(t,n,A),()=>e.removeEventListener(t,n,A)}function Hn(e,t,n){return A=>{e.drawable.current?e.drawable.enabled&&n(e,A):e.viewOnly||t(e,A)}}function Xn(e){const t=nn(e),n=e.dom.relative?vt:Ct(e.dom.bounds()),A=e.dom.relative?Et:St,o=e.dom.elements.board,r=e.pieces,i=e.animation.current,s=i?i.plan.anims:new Map,a=i?i.plan.fadings:new Map,c=e.draggable.current,l=function(e){var t;const n=new Map;if(e.lastMove&&e.highlight.lastMove)for(const t of e.lastMove)oA(n,t,"last-move");e.check&&e.highlight.check&&oA(n,e.check,"check");if(e.selected&&(oA(n,e.selected,"selected"),e.movable.showDests)){const A=null===(t=e.movable.dests)||void 0===t?void 0:t.get(e.selected);if(A)for(const t of A)oA(n,t,"move-dest"+(e.pieces.has(t)?" oc":""));const o=e.premovable.dests;if(o)for(const t of o)oA(n,t,"premove-dest"+(e.pieces.has(t)?" oc":""))}const A=e.premovable.current;if(A)for(const e of A)oA(n,e,"current-premove");else e.predroppable.current&&oA(n,e.predroppable.current.key,"current-premove");const o=e.exploding;if(o)for(const e of o.keys)oA(n,e,"exploding"+o.stage);return n}(e),u=new Set,h=new Set,p=new Map,g=new Map;let d,m,f,b,y,I,k,w,C,v;for(m=o.firstChild;m;){if(d=m.cgKey,$n(m))if(f=r.get(d),y=s.get(d),I=a.get(d),b=m.cgPiece,!m.cgDragging||c&&c.orig===d||(m.classList.remove("dragging"),A(m,n(mt(d),t)),m.cgDragging=!1),!I&&m.cgFading&&(m.cgFading=!1,m.classList.remove("fading")),f){if(y&&m.cgAnimating&&b===AA(f)){const e=mt(d);e[0]+=y[2],e[1]+=y[3],m.classList.add("anim"),A(m,n(e,t))}else m.cgAnimating&&(m.cgAnimating=!1,m.classList.remove("anim"),A(m,n(mt(d),t)),e.addPieceZIndex&&(m.style.zIndex=nA(mt(d),t)));b!==AA(f)||I&&m.cgFading?I&&b===AA(I)?(m.classList.add("fading"),m.cgFading=!0):rA(p,b,m):u.add(d)}else rA(p,b,m);else if(eA(m)){const e=m.className;l.get(d)===e?h.add(d):rA(g,e,m)}m=m.nextSibling}for(const[e,r]of l)if(!h.has(e)){C=g.get(r),v=C&&C.pop();const i=n(mt(e),t);if(v)v.cgKey=e,A(v,i);else{const t=xt("square",r);t.cgKey=e,A(t,i),o.insertBefore(t,o.firstChild)}}for(const[i,a]of r)if(y=s.get(i),!u.has(i))if(k=p.get(AA(a)),w=k&&k.pop(),w){w.cgKey=i,w.cgFading&&(w.classList.remove("fading"),w.cgFading=!1);const o=mt(i);e.addPieceZIndex&&(w.style.zIndex=nA(o,t)),y&&(w.cgAnimating=!0,w.classList.add("anim"),o[0]+=y[2],o[1]+=y[3]),A(w,n(o,t))}else{const r=AA(a),s=xt("piece",r),c=mt(i);s.cgPiece=r,s.cgKey=i,y&&(s.cgAnimating=!0,c[0]+=y[2],c[1]+=y[3]),A(s,n(c,t)),e.addPieceZIndex&&(s.style.zIndex=nA(c,t)),o.appendChild(s)}for(const t of p.values())tA(e,t);for(const t of g.values())tA(e,t)}function $n(e){return"PIECE"===e.tagName}function eA(e){return"SQUARE"===e.tagName}function tA(e,t){for(const n of t)e.dom.elements.board.removeChild(n)}function nA(e,t){let n=2+8*e[1]+(7-e[0]);return t&&(n=67-n),n+""}function AA(e){return`${e.color} ${e.role}`}function oA(e,t,n){const A=e.get(t);A?e.set(t,`${A} ${n}`):e.set(t,n)}function rA(e,t,n){const A=e.get(t);A?A.push(n):e.set(t,[n])}function iA(e,t){const n={pieces:sn(An),orientation:"white",turnColor:"white",coordinates:!0,autoCastle:!0,viewOnly:!1,disableContextMenu:!1,resizable:!0,addPieceZIndex:!1,pieceKey:!1,highlight:{lastMove:!0,check:!0},animation:{enabled:!0,duration:200},movable:{free:!0,color:"both",showDests:!0,events:{},rookCastle:!0},premovable:{enabled:!0,showDests:!0,castle:!0,events:{}},predroppable:{enabled:!1,events:{}},draggable:{enabled:!0,distance:3,autoDistance:!0,showGhost:!0,deleteOnDropOff:!1},dropmode:{active:!1},selectable:{enabled:!0},stats:{dragged:!("ontouchstart"in window)},events:{},drawable:{enabled:!0,visible:!0,defaultSnapToValidMove:!0,eraseOnClick:!0,shapes:[],autoShapes:[],brushes:{green:{key:"g",color:"#15781B",opacity:1,lineWidth:10},red:{key:"r",color:"#882020",opacity:1,lineWidth:10},blue:{key:"b",color:"#003088",opacity:1,lineWidth:10},yellow:{key:"y",color:"#e68f00",opacity:1,lineWidth:10},paleBlue:{key:"pb",color:"#003088",opacity:.4,lineWidth:15},paleGreen:{key:"pg",color:"#15781B",opacity:.4,lineWidth:15},paleRed:{key:"pr",color:"#882020",opacity:.4,lineWidth:15},paleGrey:{key:"pgr",color:"#4a4a4a",opacity:.35,lineWidth:15}},pieces:{baseUrl:"https://lichess1.org/assets/piece/cburnett/"},prevSvgHash:""},hold:bt()};function A(){const t="dom"in n?n.dom.unbind:void 0,A=n.viewOnly&&!n.drawable.visible,o=function(e,t,n){e.innerHTML="",e.classList.add("cg-wrap");for(const n of lt)e.classList.toggle("orientation-"+n,t.orientation===n);e.classList.toggle("manipulable",!t.viewOnly);const A=xt("cg-helper");e.appendChild(A);const o=xt("cg-container");A.appendChild(o);const r=xt("cg-board");let i,s,a;if(o.appendChild(r),t.drawable.visible&&!n&&(i=Kn(Tn("svg"),{class:"cg-shapes"}),i.appendChild(Tn("defs")),i.appendChild(Tn("g")),s=Kn(Tn("svg"),{class:"cg-custom-svgs"}),s.appendChild(Tn("g")),o.appendChild(i),o.appendChild(s)),t.coordinates){const e="black"===t.orientation?" black":"";o.appendChild(Wn(ht,"ranks"+e)),o.appendChild(Wn(ut,"files"+e))}return t.draggable.showGhost&&!n&&(a=xt("piece","ghost"),Vt(a,!1),o.appendChild(a)),{board:r,container:o,ghost:a,svg:i,customSvg:s}}(e,n,A),r=function(e){let t;const n=()=>(void 0===t&&(t=e()),t);return n.clear=()=>{t=void 0},n}(()=>o.board.getBoundingClientRect()),i=e=>{Xn(a),!e&&o.svg&&Qn(a,o.svg,o.customSvg)},s=()=>{r.clear(),function(e){if(e.dom.relative)return;const t=nn(e),n=Ct(e.dom.bounds());let A=e.dom.elements.board.firstChild;for(;A;)($n(A)&&!A.cgAnimating||eA(A))&&St(A,n(mt(A.cgKey),t)),A=A.nextSibling}(a),o.svg&&Qn(a,o.svg,o.customSvg)},a=n;return a.dom={elements:o,bounds:r,redraw:sA(i),redrawNow:i,unbind:t,relative:A},a.drawable.prevSvgHash="",i(!1),Yn(a,s),t||(a.dom.unbind=function(e,t){const n=[];if(e.dom.relative||!e.resizable||"ResizeObserver"in window||n.push(_n(document.body,"chessground.resize",t)),!e.viewOnly){const t=Hn(e,En,yn),A=Hn(e,Vn,In);for(const e of["touchmove","mousemove"])n.push(_n(document,e,t));for(const e of["touchend","mouseup"])n.push(_n(document,e,A));const o=()=>e.dom.bounds.clear();n.push(_n(document,"scroll",o,{capture:!0,passive:!0})),n.push(_n(window,"resize",o,{passive:!0}))}return()=>n.forEach(e=>e())}(a,s)),a.events.insert&&a.events.insert(o),a}return an(n,t||{}),Dn(A(),A)}function sA(e){let t=!1;return()=>{t||(t=!0,requestAnimationFrame(()=>{e(),t=!1}))}}class aA extends A.Component{buildConfigFromProps(e){const t={events:{}};return Object.keys(aA.types).forEach(n=>{const A=e[n];if(void 0!==A){const e=n.match(/^on([A-Z]\S*)/);e?t.events[e[1].toLowerCase()]=A:t[n]=A}}),t}componentDidMount(){this.board=iA(this.el,this.buildConfigFromProps(this.props)),this.props.shapes&&this.board.setShapes(this.props.shapes)}componentDidUpdate(e){const t=this.buildConfigFromProps(this.props);this.props.fen===e.fen&&delete t.fen,this.board?this.board.set(t):this.board=iA(this.el,t),this.props.shapes&&this.board.setShapes(this.props.shapes)}render(){const t={style:{...this.props.style}};return this.props.width&&(t.style.width=this.props.width),this.props.height&&(t.style.height=this.props.height),e("div",{ref:e=>this.el=e,...t})}}ke(aA,"types",{width:ct.oneOfType([ct.string,ct.number]),height:ct.oneOfType([ct.string,ct.number]),fen:ct.string,orientation:ct.string,turnColor:ct.string,check:ct.string,lastMove:ct.array,selected:ct.string,coordinates:ct.bool,autoCastle:ct.bool,viewOnly:ct.bool,disableContextMenu:ct.bool,resizable:ct.bool,addPieceZIndex:ct.bool,hightlight:ct.object,animation:ct.object,movable:ct.object,premovable:ct.object,predroppable:ct.object,draggable:ct.object,selectable:ct.object,onChange:ct.func,onMove:ct.func,onDropNewPiece:ct.func,onSelect:ct.func,items:ct.object,drawable:ct.object}),ke(aA,"defaultProps",{coordinates:!1,resizable:!0,hightlight:{lastMove:!0,check:!0}});const cA=e=>{try{new Audio(e).play()}catch{return()=>{}}},lA=e=>{if("silent"===e)return!1;switch(e){case"lisp":return cA("data:audio/ogg;base64,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");case"piano":return cA("data:audio/ogg;base64,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");case"sfx":return cA("data:audio/ogg;base64,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");default:return cA("data:audio/ogg;base64,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")}};var uA="object"==typeof global&&global&&global.Object===Object&&global,hA="object"==typeof self&&self&&self.Object===Object&&self,pA=uA||hA||Function("return this")(),gA=pA.Symbol,dA=Object.prototype,mA=dA.hasOwnProperty,fA=dA.toString,bA=gA?gA.toStringTag:void 0;var yA=Object.prototype.toString;var IA=gA?gA.toStringTag:void 0;function kA(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":IA&&IA in Object(e)?function(e){var t=mA.call(e,bA),n=e[bA];try{e[bA]=void 0;var A=!0}catch(e){}var o=fA.call(e);return A&&(t?e[bA]=n:delete e[bA]),o}(e):function(e){return yA.call(e)}(e)}function wA(e){return null!=e&&"object"==typeof e}var CA=Array.isArray;function vA(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function SA(e){if(!vA(e))return!1;var t=kA(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var EA,VA=pA["__core-js_shared__"],NA=(EA=/[^.]+$/.exec(VA&&VA.keys&&VA.keys.IE_PROTO||""))?"Symbol(src)_1."+EA:"";var MA=Function.prototype.toString;function xA(e){if(null!=e){try{return MA.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var BA=/^\[object .+?Constructor\]$/,DA=Function.prototype,TA=Object.prototype,QA=DA.toString,ZA=TA.hasOwnProperty,jA=RegExp("^"+QA.call(ZA).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function PA(e){return!(!vA(e)||(t=e,NA&&NA in t))&&(SA(e)?jA:BA).test(xA(e));var t}function UA(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return PA(n)?n:void 0}var OA=UA(pA,"WeakMap");function qA(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var JA=Object.prototype;function KA(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||JA)}function GA(e){return wA(e)&&"[object Arguments]"==kA(e)}var RA=Object.prototype,FA=RA.hasOwnProperty,LA=RA.propertyIsEnumerable,zA=GA(function(){return arguments}())?GA:function(e){return wA(e)&&FA.call(e,"callee")&&!LA.call(e,"callee")};var WA="object"==typeof exports&&exports&&!exports.nodeType&&exports,YA=WA&&"object"==typeof module&&module&&!module.nodeType&&module,_A=YA&&YA.exports===WA?pA.Buffer:void 0,HA=(_A?_A.isBuffer:void 0)||function(){return!1},XA={};XA["[object Float32Array]"]=XA["[object Float64Array]"]=XA["[object Int8Array]"]=XA["[object Int16Array]"]=XA["[object Int32Array]"]=XA["[object Uint8Array]"]=XA["[object Uint8ClampedArray]"]=XA["[object Uint16Array]"]=XA["[object Uint32Array]"]=!0,XA["[object Arguments]"]=XA["[object Array]"]=XA["[object ArrayBuffer]"]=XA["[object Boolean]"]=XA["[object DataView]"]=XA["[object Date]"]=XA["[object Error]"]=XA["[object Function]"]=XA["[object Map]"]=XA["[object Number]"]=XA["[object Object]"]=XA["[object RegExp]"]=XA["[object Set]"]=XA["[object String]"]=XA["[object WeakMap]"]=!1;var $A,eo="object"==typeof exports&&exports&&!exports.nodeType&&exports,to=eo&&"object"==typeof module&&module&&!module.nodeType&&module,no=to&&to.exports===eo&&uA.process,Ao=function(){try{var e=to&&to.require&&to.require("util").types;return e||no&&no.binding&&no.binding("util")}catch(e){}}(),oo=Ao&&Ao.isTypedArray,ro=oo?($A=oo,function(e){return $A(e)}):function(e){return wA(e)&&qA(e.length)&&!!XA[kA(e)]};var io=function(e,t){return function(n){return e(t(n))}}(Object.keys,Object),so=io,ao=Object.prototype.hasOwnProperty;var co=UA(pA,"Map"),lo=UA(pA,"DataView"),uo=UA(pA,"Promise"),ho=UA(pA,"Set"),po="[object Map]",go="[object Promise]",mo="[object Set]",fo="[object WeakMap]",bo="[object DataView]",yo=xA(lo),Io=xA(co),ko=xA(uo),wo=xA(ho),Co=xA(OA),vo=kA;(lo&&vo(new lo(new ArrayBuffer(1)))!=bo||co&&vo(new co)!=po||uo&&vo(uo.resolve())!=go||ho&&vo(new ho)!=mo||OA&&vo(new OA)!=fo)&&(vo=function(e){var t=kA(e),n="[object Object]"==t?e.constructor:void 0,A=n?xA(n):"";if(A)switch(A){case yo:return bo;case Io:return po;case ko:return go;case wo:return mo;case Co:return fo}return t});var So=vo,Eo=Object.prototype.hasOwnProperty;function Vo(e){if(null==e)return!0;if(function(e){return null!=e&&qA(e.length)&&!SA(e)}(e)&&(CA(e)||"string"==typeof e||"function"==typeof e.splice||HA(e)||ro(e)||zA(e)))return!e.length;var t=So(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(KA(e))return!function(e){if(!KA(e))return so(e);var t=[];for(var n in Object(e))ao.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e).length;for(var n in e)if(Eo.call(e,n))return!1;return!0}const No=e=>{const t={};e.orientation&&(t.orientation=e.orientation,"w"===t.orientation&&(t.orientation="white"),"b"===t.orientation&&(t.orientation="black"));const n=["shapes","onSelect","drawable","lastMove"];for(const A of n)void 0!==e[A]&&null!==e[A]&&("function"!=typeof e[A]&&"object"==typeof e[A]&&Vo(e[A])||(t[A]=e[A]));return!1===e.drawable&&(t.drawable={enabled:!1}),t.shapes&&(t.shapes=(e=>{try{return e.forEach(e=>{e.dest=e.dest.replace(/\]/g,"")}),e}catch{return e}})(t.shapes)),e.editing&&(t.movable={free:!1},t.drawable={enabled:!1},t.selectable={enabled:!0}),e.viewOnly&&(t.draggable=!1,t.movable={free:!1},t.drawable={enabled:!1}),e.readOnly&&(t.draggable=!1,t.movable={free:!1},t.drawable={enabled:!1},t.coordinates=!1),t};var Mo=(e,t,n)=>{try{const A=e.get(t);return"p"===A.type&&("w"===A.color&&"8"===n[1]||"b"===A.color&&"1"===n[1])}catch{return!1}};const xo=e=>le(e)&&(e=>{if(!e)return!1;const t=e.split(" ")[0];return 1===(t.match(/k/g)||[]).length&&1===(t.match(/K/g)||[]).length})(e),Bo=(e,t,n=!1)=>{if(!xo(e.fen()))return{free:!1};const A=new Map,o="w"===e.turn()?"white":"black";R.forEach(t=>{const n=e.moves({square:t,verbose:!0});n.length&&A.set(t,n.map(e=>e.to))});const r={color:o,dests:A,free:!1};return n&&t&&t!==o&&(r.color=t,r.dests=new Map),r};var Do=f(function(e,t){e.exports=((e,t)=>(()=>{var n={494:()=>{},156:t=>{t.exports=e},111:e=>{e.exports=t}},A={};function o(e){var t=A[e];if(void 0!==t)return t.exports;var r=A[e]={exports:{}};return n[e](r,r.exports,o),r.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{o.r(r),o.d(r,{default:()=>a});var e=o(156),t=o.n(e),n=o(111);function A(e){const{children:n,replace:A,bodyClass:o,header:r,footer:i,onDragStart:s,onDragEnd:a,onClose:c,closeButton:l,closeButtonPosition:u}=e;return A?n:t().createElement("div",{className:"panel panel-default "+("bottom"===u?"additional-row":"")},t().createElement("div",{className:"panel-heading",onTouchStart:s,onMouseDown:s,onTouchEnd:a,onMouseUp:a},r&&t().createElement("h3",{className:"panel-title"},r)),t().createElement("div",{className:o},n),i&&t().createElement("div",{className:"panel-footer"},i),t().createElement("div",{className:"close",onClick:c,style:{position:"header"===u?"absolute":"static",margin:"bottom"===u?"10px auto":""}},l))}A.defaultProps={closeButton:"×",closeButtonPosition:"header",replace:!1,draggable:!1};const i=A;function s(A){let o=Math.random().toString();const[r,s]=(0,e.useState)(!1),[a,c]=(0,e.useState)(null),[l,u]=(0,e.useState)(null),[h,p]=(0,e.useState)(0),[g,d]=(0,e.useState)(0),[m,f]=(0,e.useState)(0),[b,y]=(0,e.useState)(0),{isOpen:I,onClose:k}=A,w=(0,e.useCallback)(()=>{document.body.classList.remove("body-modal-fix")},[]);(0,e.useEffect)(()=>(I&&(document.addEventListener("keydown",C),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),document.body.classList.add("body-modal-fix")),()=>{document.querySelector(".pure-modal")||(document.removeEventListener("keydown",C),w(),c(null),u(null),p(0),d(0),f(0),y(0))}),[I]);const C=(0,e.useCallback)(e=>{const t=document.querySelectorAll(".pure-modal"),n=t.length>1,A=t[t.length-1];return!(n&&!A.className.includes(o)||"Escape"!==e.key||!document.activeElement||(v(e),0))},[v,o]);if(!I)return null;function v(e){e&&(e.stopPropagation(),e.preventDefault()),null==k||k({isPassive:Boolean(e)})}function S(e){return e instanceof TouchEvent&&e.changedTouches.length>0?{pageX:e.changedTouches[0].pageX,pageY:e.changedTouches[0].pageY}:e instanceof MouseEvent?{pageX:e.pageX,pageY:e.pageY}:{pageX:0,pageY:0}}function E(e){if(e instanceof TouchEvent&&e.changedTouches&&e.changedTouches.length>1)return V();e.preventDefault();const{pageX:t,pageY:n}=S(e);"number"==typeof a&&"number"==typeof l&&(p(t-a-m),d(n-l-b))}function V(){return s(!1)}const{children:N,replace:M=!1,className:x,header:B,footer:D,scrollable:T=!0,draggable:Q=!1,width:Z,closeButton:j,closeButtonPosition:P,portal:U=!1}=A;let O=["pure-modal-backdrop"],q=["pure-modal",o],J=["panel-body"];x&&(q=q.concat(x)),T?J=J.concat("scrollable"):(O=O.concat("scrollable"),q=q.concat("auto-height")),Q&&(O=O.concat("backdrop-overflow-hidden"));const K=t().createElement("div",{className:O.join(" "),onMouseDown:function(e){if(e){if(!e.target.classList.contains("pure-modal-backdrop"))return;e.stopPropagation(),e.preventDefault()}v(e)},onTouchMove:r?E:void 0,onMouseMove:r?E:void 0},t().createElement("div",{className:q.join(" "),style:{transform:`translate(${h}px, ${g}px)`,transition:"none",width:Z}},t().createElement(i,{replace:M,header:B,footer:D,onDragStart:Q?function(e){if(e instanceof TouchEvent&&e.changedTouches&&e.changedTouches.length>1)return;e.preventDefault();const{pageX:t,pageY:n}=S(e),{top:A,left:o}=e.currentTarget.getBoundingClientRect();s(!0),c("number"==typeof a?a:o),u("number"==typeof l?l:A),f(t-o),y(n-A)}:void 0,onDragEnd:Q?V:void 0,onClose:v,bodyClass:J.join(" "),closeButton:j,closeButtonPosition:P},N)));return U?(0,n.createPortal)(K,document.body):K}o(494);const a=t().memo(s)})(),r})())(A,h)}),To=m(Do);const Qo=({role:t,color:n,highlighted:A,selectPiece:o})=>{const r="bin"===t;return e("div",{className:I("edit-square border border-gray-300 rounded",A&&"bg-orange-300"),children:e("piece",{className:I("spare-piece",t,n,r&&"next-trash"),onClick:()=>{"function"==typeof o&&o({role:t,color:n})}})})},Zo=({isOpen:n,hide:A,onPromote:o,color:r="white"})=>{const i=e=>{o(e),A()};return e(To,{closeButton:"",isOpen:n,onClose:A,children:t("div",{className:"promote flex gap-2 py-1.5 justify-center",children:[e(Qo,{color:r,role:"queen",selectPiece:()=>i("q")}),e(Qo,{color:r,role:"rook",selectPiece:()=>i("r")}),e(Qo,{color:r,role:"bishop",selectPiece:()=>i("b")}),e(Qo,{color:r,role:"knight",selectPiece:()=>i("n")})]})})},jo=(n,A)=>{const{theme:o}=ye(),{isOpen:r,show:s,hide:l}=Ie(),{chess:h,fen:p,turnColor:g,lastMove:d,orientation:m,promotion:f,onMove:b,onPromote:y,onUndo:k}=be(n),w=async(e,t,A)=>{const r=A?.promotion||f;if(!b(e,t,r)){return Mo(h,e,t)&&!r&&s(),!1}return o.playSounds&&lA(o.sounds),"function"==typeof n.onMove&&await n.onMove(h),!0},{onSetPremove:C,onUnsetPremove:v,onPlayPremove:S,onCancelPremove:E,onPremovePromotion:V}=(e=>{const t=a(null),n=c((e,n,A)=>{t.current={orig:e,dest:n,promotion:A?.promotion||null}},[]),A=c(()=>{t.current=null},[]),o=c(()=>"q",[]);return{onSetPremove:n,onUnsetPremove:A,onPlayPremove:c(async()=>{if(t.current){const{orig:n,dest:A,promotion:o}=t.current,r={orig:n,dest:A,promotion:o};t.current=null;const i={promotion:r.promotion||"q"};return await e(r.orig,r.dest,i)}return!1},[e]),onCancelPremove:c(()=>!!t.current&&(t.current=null,!0),[]),onPremovePromotion:o}})(w),N=a(),M=async(e,t,n)=>{if(n){const A={promotion:n};return await w(e,t,A)}return await w(e,t)},x=async()=>(N.current?.board&&N.current.board.cancelPremove(),await S());u(A,()=>({board:N.current?.board,chess:h,undo:k,move:M,playPremove:x,cancelPremove:E}));i(()=>{"function"==typeof n.setPromoting&&n.setPromoting(r)},[r]),i(()=>{"function"==typeof n.onFenChange&&n.onFenChange(p)},[p]);const B=n.premoves?{enabled:!0,showDests:!0,castle:!0,events:{set:C,unset:v},promote:V}:{enabled:!1};return t("div",{className:I("chessground",o.highlight&&"highlight",o.board,o.pieces),children:[e(aA,{ref:N,coordinates:o.coordinates,onMove:w,fen:p,turnColor:g,lastMove:d,orientation:m,movable:Bo(h,m,n.premoves),premovable:B,...No(n)}),e(Zo,{isOpen:r,hide:l,color:g,onPromote:async e=>{if(!y(e))return!1;o.playSounds&&lA(o.sounds),"function"==typeof n.onMove&&await n.onMove(h)}})]})};var Po=l(jo);const Uo=e=>{try{return"w"===e.split(" ")[1]?"white":"black"}catch{return"white"}},Oo=e=>{const[t,n]=r((e=>{try{return e.orientation?e.orientation:e.fen?Uo(e.fen):"white"}catch{return"white"}})(e));return i(()=>{e.reset&&n(Uo(e.fen))},[e.reset]),[t,()=>{n(e=>"white"===e?"black":"white")}]},qo=()=>{const{theme:A,handleChange:o}=ye();return t(n,{children:[e("div",{children:"Board"}),t("select",{name:"board",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:A.board,onChange:o,children:[e("option",{value:"green",children:"Green"}),e("option",{value:"brown",children:"Brown"}),e("option",{value:"ruby",children:"Ruby"}),e("option",{value:"purple",children:"Purple"}),e("option",{value:"teal",children:"Teal"})]})]})},Jo=()=>{const{theme:A,handleChecked:o}=ye();return t(n,{children:[e("div",{children:"Coordinates"}),e("div",{className:"flex",children:e("input",{name:"coordinates",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:A.coordinates,onChange:o})})]})},Ko=()=>{const{theme:A,handleChecked:o}=ye();return t(n,{children:[e("div",{children:"Highlight moves"}),e("div",{className:"flex",children:e("input",{name:"highlight",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:A.highlight,onChange:o})})]})},Go=()=>{const{theme:A,handleChange:o}=ye();return t(n,{children:[e("div",{children:"Pieces"}),t("select",{name:"pieces",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:A.pieces,onChange:o,children:[e("option",{value:"cburnett",children:"Cburnett"}),e("option",{value:"neo",children:"Neo"}),e("option",{value:"alpha",children:"Alpha"}),e("option",{value:"bases",children:"Bases"}),e("option",{value:"classic",children:"Classic"})]})]})},Ro=()=>{const{theme:A,handleChecked:o}=ye();return t(n,{children:[e("div",{children:"Play sounds"}),e("div",{className:"flex",children:e("input",{name:"playSounds",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:A.playSounds,onChange:o})})]})},Fo=()=>{const{theme:A,handleChange:o}=ye();return t(n,{children:[e("div",{children:"Sounds"}),t("select",{name:"sounds",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:A.sounds,onChange:o,children:[e("option",{value:"robot",children:"Robot"}),e("option",{value:"piano",children:"Piano"}),e("option",{value:"lisp",children:"Lisp"}),e("option",{value:"sfx",children:"SFX"})]})]})},Lo=()=>{const{isOpen:A,show:o,hide:r}=Ie();return t(n,{children:[e("button",{type:"button",className:"next-button next-settings",title:"Settings",onClick:o,children:e("i",{className:"next-cog"})}),e(To,{header:"Settings",isOpen:A,onClose:r,children:t("div",{className:"grid grid-cols-2 gap-3 items-center text-sm",children:[e(Go,{}),e(qo,{}),e(Ko,{}),e(Ro,{}),e(Fo,{}),e(Jo,{})]})})]})},zo=t=>e("button",{type:"button",className:"next-button next-flip",title:"Flip board",...t,children:e("i",{className:"next-sync"})}),Wo=({flip:n,readOnly:A})=>A?null:t("div",{className:"chessground-footer text-gray-400 flex flex-row-reverse gap-2 py-1.5",children:[e(Lo,{}),e(zo,{onClick:n})]});var Yo=l((n,A)=>{const[o,r]=Oo(n);return e(y,{children:t("div",{className:"next-chessground",children:[e(Po,{...n,ref:A,orientation:o}),e(Wo,{flip:r,readOnly:n.readOnly})]})})});const _o=t=>{const{theme:n}=ye();return e("div",{className:I("spare-pieces flex gap-2",n.pieces),children:["bin","pawn","knight","bishop","rook","queen","king"].map(n=>((t,n)=>{const{color:A="white",selected:o={role:null,color:null}}=n,r=t===o.role&&A===o.color;return e(Qo,{highlighted:r,role:t,color:A,...n},`${t}-${A}`)})(n,t))})},Ho=e=>{const t=new Map;return t.set(e,null),t},Xo=({onChange:n})=>{const[A,o]=r("w"),[s,a]=r("-");i(()=>{"function"==typeof n&&n([A,s].join(" "))},[A,s]);const c=e=>{const{value:t}=e.target;o(t)},l=e=>{const{value:t}=e.target;a(((e,t)=>{if(!t)return e;const n=["K","Q","k","q"].map(n=>n!==t?e.includes(n)?n:"":e.includes(t)?"":t).join("");return n.length?n:"-"})(s,t))};return t("div",{className:"flex flex-col gap-2 w-full",children:[t("div",{className:"flex gap-2 w-full",children:[t("div",{children:[e("input",{defaultChecked:!0,className:"mx-1",type:"radio",id:"white-radio",name:"side-to-move",value:"w",onChange:c}),e("label",{htmlFor:"white-radio",children:"White to move"})]}),t("div",{children:[e("input",{className:"mx-1",type:"radio",id:"black-radio",name:"side-to-move",value:"b",onChange:c}),e("label",{htmlFor:"black-radio",children:"Black to move"})]})]}),t("div",{className:"flex flex-col gap-2 w-full",children:[t("div",{className:"flex w-full gap-4",children:[e("div",{children:e("span",{children:"White can"})}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"white-short-castle",value:"K",onChange:l}),e("label",{htmlFor:"white-short-castle",children:"O-O"})]}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"white-long-castle",value:"Q",onChange:l}),e("label",{htmlFor:"white-long-castle",children:"O-O-O"})]})]}),t("div",{className:"flex w-full gap-4",children:[e("div",{children:e("span",{children:"Black can"})}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"black-short-castle",value:"k",onChange:l}),e("label",{htmlFor:"black-short-castle",children:"O-O"})]}),t("div",{children:[e("input",{className:"mx-1",type:"checkbox",id:"black-long-castle",value:"q",onChange:l}),e("label",{htmlFor:"black-long-castle",children:"O-O-O"})]})]})]})]})},$o=(n,A)=>{const[o,s]=r(n.fen||fe.emptyFen),[a,c]=r({role:null,color:null});i(()=>{n.fen&&s(n.fen)},[n.fen]),i(()=>{"function"==typeof n.onSelect&&n.onSelect(o)},[o]);return e(y,{children:t("div",{className:"next-chessground gap-2",children:[e(_o,{selected:a,selectPiece:c,color:"black"}),e(Po,{...n,ref:A,fen:o,onSelect:e=>{const t=o.split(" ");t.shift();const n=t.join(" "),r=((e,t,n)=>{if(!e)throw new Error("Chessground is not defined");if(!t||!t.role||!t.color)return e.getFen();if("bin"===t.role)return e.setPieces(Ho(n)),e.getFen();const A=e.state.pieces.get(n);return A?A.role===t.role&&A.color===t.color?(e.setPieces(Ho(n)),e.getFen()):(e.setPieces(Ho(n)),e.newPiece(t,n),e.getFen()):(e.newPiece(t,n),e.getFen())})(A.current.board,a,e),i=[r,n].join(" ");s(i)},editing:!0,skipValidation:!0}),e(_o,{selected:a,selectPiece:c,color:"white"}),e(Xo,{onChange:e=>{const t=[o.split(" ")[0],e,"- 0 1"].join(" ");s(t)}})]})})};var er=l($o);class tr{constructor(e){if("undefined"==typeof window)return!1;if(!window.chessEngineWorker){const t=e??process.env.STOCKFISH_PATH;window.chessEngineWorker=new Worker(t)}this.skillLevel=20,this.maxDepth=40,this.resolveTimeout=null,this.isAnalyzing=!1,this.fen=fe.initialFen}getTurnFromFen(e){return e.split(" ")[1]}normalizeScoreValue(e){const{fen:t}=this;return"b"===this.getTurnFromFen(t)?-1*e:e}isInfoMessage(e){return!(!e||!e.data)&&e.data.startsWith("info")}setSkillLevel(){window.chessEngineWorker.postMessage("setoption name Skill Level value "+this.skillLevel),window.chessEngineWorker.postMessage("setoption name Skill Level Maximum Error value 5000"),window.chessEngineWorker.postMessage("setoption name Skill Level Probability value 1")}async init(){await this.use_uci(),await this.is_ready(),this.setSkillLevel()}getScoreFromInfo(e){if(e.startsWith("info depth 0")){const t=e.split(" "),n=t[4],A=this.normalizeScoreValue(Number(t[5]));return this.isAnalyzing=!1,{type:n,value:A}}if(e.startsWith("info depth ")){const t=e.split(" ");return{type:t[8],value:this.normalizeScoreValue(Number(t[9]))}}return{type:"cp",value:0}}parseData(e){const t=e.split(" ")[2];let n="";e.indexOf(" pv ")>-1&&(n=e.split(" pv ")[1].split(" bmc ")[0]);return{depth:t,pv:n,score:this.getScoreFromInfo(e)}}use_uci(){return new Promise(e=>{window.chessEngineWorker.postMessage("uci"),window.chessEngineWorker.onmessage=t=>{"uciok"===t.data&&e(t)}})}is_ready(){return new Promise(e=>{window.chessEngineWorker.postMessage("isready"),window.chessEngineWorker.onmessage=t=>{"readyok"===t.data&&e(t)}})}set_position(e){return new Promise(t=>{this.fen=e,window.chessEngineWorker.postMessage("position fen "+e),t()})}async new_position(e){await this.stop(),await this.is_ready(),this.set_position(e),this.go_infinite()}set_multipv(e){window.chessEngineWorker.postMessage("setoption name MultiPV value "+e)}get_score(e,t=15){return new Promise(n=>{window.chessEngineWorker.postMessage("position fen "+e),window.chessEngineWorker.postMessage("go depth 15"),window.chessEngineWorker.onmessage=e=>{if(e.data.startsWith("info depth "+t)){const t=e.data.split(" "),A=t[8],o=Number(t[9]);n({type:A,value:o})}else if(e.data.startsWith("info depth 0")){const t=e.data.split(" "),A=t[4],o=Number(t[5]);n({type:A,value:o})}}})}go_depth(e){return new Promise(t=>{window.chessEngineWorker.postMessage("go depth "+e),window.chessEngineWorker.onmessage=e=>{e.data.startsWith("bestmove")&&t(e.data)}})}go_time(e){return new Promise(t=>{window.chessEngineWorker.postMessage("go movetime "+e),window.chessEngineWorker.onmessage=e=>{e.data.startsWith("bestmove")&&t(e.data)}})}go_infinite(e){window.chessEngineWorker.postMessage("go infinite"),this.isAnalyzing=!0,window.chessEngineWorker.onmessage=t=>{if(this.isInfoMessage(t)&&"function"==typeof e){const n=this.parseData(t.data);n.depth>this.maxDepth&&this.stop(),e(n)}}}stop(){return new Promise(e=>{this.isAnalyzing||e(),window.chessEngineWorker.postMessage("stop"),window.chessEngineWorker.onmessage=t=>{t.data.startsWith("bestmove")&&(this.isAnalyzing=!1,e(t.data))}})}quit(){window.chessEngineWorker.postMessage("quit")}}function nr(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var A=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&A.firstChild?A.insertBefore(o,A.firstChild):A.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}nr(".brown .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgeG1sbnM6eD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgIHZpZXdCb3g9IjAgMCA4IDgiICBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgZmlsbD0iI2I1ODg2MyIvPjxnIGlkPSJhIj4gIDxnIGlkPSJiIj4gICAgPGcgaWQ9ImMiPiAgICAgIDxnIGlkPSJkIj4gICAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IiNmMGQ5YjUiIGlkPSJlIi8+ICAgICAgICA8dXNlIHg9IjIiIGhyZWY9IiNlIiB4OmhyZWY9IiNlIi8+ICAgICAgPC9nPiAgICAgIDx1c2UgeD0iNCIgaHJlZj0iI2QiIHg6aHJlZj0iI2QiLz4gICAgPC9nPiAgICA8dXNlIHg9IjEiIHk9IjEiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+ICA8L2c+ICA8dXNlIHk9IjIiIGhyZWY9IiNiIiB4OmhyZWY9IiNiIi8+PC9nPjx1c2UgeT0iNCIgaHJlZj0iI2EiIHg6aHJlZj0iI2EiLz48L3N2Zz4=');\n}\n.green .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgeG1sbnM6eD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgIHZpZXdCb3g9IjAgMCA4IDgiICBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgZmlsbD0iIzc3OTU1NiIvPjxnIGlkPSJhIj4gIDxnIGlkPSJiIj4gICAgPGcgaWQ9ImMiPiAgICAgIDxnIGlkPSJkIj4gICAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IiNFQkVDRDAiIGlkPSJlIi8+ICAgICAgICA8dXNlIHg9IjIiIGhyZWY9IiNlIiB4OmhyZWY9IiNlIi8+ICAgICAgPC9nPiAgICAgIDx1c2UgeD0iNCIgaHJlZj0iI2QiIHg6aHJlZj0iI2QiLz4gICAgPC9nPiAgICA8dXNlIHg9IjEiIHk9IjEiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+ICA8L2c+ICA8dXNlIHk9IjIiIGhyZWY9IiNiIiB4OmhyZWY9IiNiIi8+PC9nPjx1c2UgeT0iNCIgaHJlZj0iI2EiIHg6aHJlZj0iI2EiLz48L3N2Zz4=');\n}\n.ruby .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,CjxzdmcgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgIHhtbG5zOng9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiICB2aWV3Qm94PSIwIDAgOCA4IiAgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPjxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9IiM4QjI2MzUiLz48ZyBpZD0iYSI+ICA8ZyBpZD0iYiI+ICAgIDxnIGlkPSJjIj4gICAgICA8ZyBpZD0iZCI+ICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjRDJENEM4IiBpZD0iZSIvPiAgICAgICAgPHVzZSB4PSIyIiBocmVmPSIjZSIgeDpocmVmPSIjZSIvPiAgICAgIDwvZz4gICAgICA8dXNlIHg9IjQiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+ICAgIDwvZz4gICAgPHVzZSB4PSIxIiB5PSIxIiBocmVmPSIjYyIgeDpocmVmPSIjYyIvPiAgPC9nPiAgPHVzZSB5PSIyIiBocmVmPSIjYiIgeDpocmVmPSIjYiIvPjwvZz48dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+PC9zdmc+');\n}\n.purple .cg-wrap cg-board {\n background-image: url('data:image/png;base64,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');\n}\n.teal .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,CjxzdmcgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgIHhtbG5zOng9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiICB2aWV3Qm94PSIwIDAgOCA4IiAgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPjxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9IiMxYzcyYWQiLz48ZyBpZD0iYSI+ICA8ZyBpZD0iYiI+ICAgIDxnIGlkPSJjIj4gICAgICA8ZyBpZD0iZCI+ICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjZTNlYmYzIiBpZD0iZSIvPiAgICAgICAgPHVzZSB4PSIyIiBocmVmPSIjZSIgeDpocmVmPSIjZSIvPiAgICAgIDwvZz4gICAgICA8dXNlIHg9IjQiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+ICAgIDwvZz4gICAgPHVzZSB4PSIxIiB5PSIxIiBocmVmPSIjYyIgeDpocmVmPSIjYyIvPiAgPC9nPiAgPHVzZSB5PSIyIiBocmVmPSIjYiIgeDpocmVmPSIjYiIvPjwvZz48dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+PC9zdmc+');\n}\n");nr(".next-chessground .chessground {\n grid-area: board;\n position: relative;\n display: block;\n height: 0;\n padding-bottom: 100%;\n padding-right: 100%;\n width: 100%;\n border-radius: 0.25rem;\n overflow: hidden;\n}\n\n.next-chessground .cg-wrap {\n display: table;\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.next-chessground cg-helper {\n position: absolute;\n width: 12.5%;\n padding-bottom: 12.5%;\n display: table;\n bottom: 0;\n}\n\n.next-chessground cg-container {\n position: absolute;\n width: 800%;\n height: 800%;\n display: block;\n bottom: 0;\n}\n\n.next-chessground cg-board {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n line-height: 0;\n background-size: cover;\n cursor: pointer;\n}\n\n.next-chessground cg-board square {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n pointer-events: none;\n}\n.next-chessground cg-board square.selected {\n background-color: rgba(246, 246, 130, 0.8);\n}\n.next-chessground .highlight cg-board square.last-move {\n will-change: transform;\n background-color: rgba(246, 246, 130, 0.5);\n}\n.next-chessground .highlight .correct cg-board square.last-move {\n background-color: rgba(155, 240, 0, 0.4);\n}\n.next-chessground .highlight .incorrect cg-board square.last-move {\n background-color: rgba(240, 0, 0, 0.4);\n}\n\n.next-chessground cg-board square.check {\n background: radial-gradient(\n ellipse at center,\n rgba(255, 0, 0, 1) 0%,\n rgba(231, 0, 0, 1) 25%,\n rgba(169, 0, 0, 0) 89%,\n rgba(158, 0, 0, 0) 100%\n );\n}\n.next-chessground cg-board square.current-premove {\n background-color: rgba(235, 97, 80, 0.8);\n}\n.next-chessground cg-board piece {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n background-size: cover;\n z-index: 2;\n will-change: transform;\n pointer-events: none;\n}\n.next-chessground cg-board piece.dragging {\n cursor: move;\n z-index: 9;\n}\n.next-chessground cg-board piece.anim {\n z-index: 8;\n}\n.next-chessground cg-board piece.fading {\n z-index: 1;\n opacity: 0.5;\n}\n.next-chessground cg-board piece.ghost {\n opacity: 0.3;\n}\n.next-chessground .cg-wrap svg {\n overflow: hidden;\n position: relative;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 2;\n opacity: 0.6;\n}\n.next-chessground .cg-wrap svg image {\n opacity: 0.5;\n}\n\n.next-chessground .spare-pieces {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.next-chessground .spare-piece {\n top: 0;\n left: 0;\n padding-bottom: 100%;\n padding-left: 100%;\n position: absolute;\n background-size: contain;\n background-position: 0% -100%;\n cursor: pointer;\n}\n.next-chessground .edit-square {\n display: table;\n position: relative;\n width: 14.285%;\n padding-bottom: 13.285%;\n}\n.next-chessground .promote .edit-square {\n width: 20%;\n padding-bottom: 20%;\n}\n");nr("coords {\n position: absolute;\n display: flex;\n pointer-events: none;\n user-select: none;\n color: #fff;\n font-weight: bold;\n font-size: 0.5rem;\n opacity: 0.8;\n}\n.coords-no coords {\n display: none;\n}\n@media (min-width: 640px) {\n coords {\n font-size: 0.75rem;\n }\n}\ncoords.ranks {\n flex-flow: column-reverse;\n top: 0;\n right: 0;\n height: 100%;\n width: 0.8em;\n}\ncoords.ranks.black {\n flex-flow: column;\n}\ncoords.files {\n bottom: 0;\n left: 0;\n flex-flow: row;\n width: 100%;\n}\ncoords.files.black {\n flex-flow: row-reverse;\n}\ncoords.files coord {\n padding-left: 4px;\n}\ncoords coord {\n flex: 1 1 auto;\n}\n\n.orientation-white .files coord:nth-child(2n + 1),\n.orientation-white .ranks coord:nth-child(2n),\n.orientation-black .files coord:nth-child(2n),\n.orientation-black .ranks coord:nth-child(2n + 1) {\n color: #fff;\n}\n.orientation-white .files coord:nth-child(2n),\n.orientation-white .ranks coord:nth-child(2n + 1),\n.orientation-black .files coord:nth-child(2n + 1),\n.orientation-black .ranks coord:nth-child(2n) {\n color: #779556;\n}\n");nr(".next-chessground .next-cog {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBmaWxsPSIjOUY5REIwIiBkPSJNNDg3LjQgMzE1LjdsLTQyLjYtMjQuNmM0LjMtMjMuMiA0LjMtNDcgMC03MC4ybDQyLjYtMjQuNmM0LjktMi44IDcuMS04LjYgNS41LTE0LTExLjEtMzUuNi0zMC02Ny44LTU0LjctOTQuNi0zLjgtNC4xLTEwLTUuMS0xNC44LTIuM0wzODAuOCAxMTBjLTE3LjktMTUuNC0zOC41LTI3LjMtNjAuOC0zNS4xVjI1LjhjMC01LjYtMy45LTEwLjUtOS40LTExLjctMzYuNy04LjItNzQuMy03LjgtMTA5LjIgMC01LjUgMS4yLTkuNCA2LjEtOS40IDExLjdWNzVjLTIyLjIgNy45LTQyLjggMTkuOC02MC44IDM1LjFMODguNyA4NS41Yy00LjktMi44LTExLTEuOS0xNC44IDIuMy0yNC43IDI2LjctNDMuNiA1OC45LTU0LjcgOTQuNi0xLjcgNS40LjYgMTEuMiA1LjUgMTRMNjcuMyAyMjFjLTQuMyAyMy4yLTQuMyA0NyAwIDcwLjJsLTQyLjYgMjQuNmMtNC45IDIuOC03LjEgOC42LTUuNSAxNCAxMS4xIDM1LjYgMzAgNjcuOCA1NC43IDk0LjYgMy44IDQuMSAxMCA1LjEgMTQuOCAyLjNsNDIuNi0yNC42YzE3LjkgMTUuNCAzOC41IDI3LjMgNjAuOCAzNS4xdjQ5LjJjMCA1LjYgMy45IDEwLjUgOS40IDExLjcgMzYuNyA4LjIgNzQuMyA3LjggMTA5LjIgMCA1LjUtMS4yIDkuNC02LjEgOS40LTExLjd2LTQ5LjJjMjIuMi03LjkgNDIuOC0xOS44IDYwLjgtMzUuMWw0Mi42IDI0LjZjNC45IDIuOCAxMSAxLjkgMTQuOC0yLjMgMjQuNy0yNi43IDQzLjYtNTguOSA1NC43LTk0LjYgMS41LTUuNS0uNy0xMS4zLTUuNi0xNC4xek0yNTYgMzM2Yy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHoiLz48L3N2Zz4=');\n}\n.next-chessground .next-sync {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBmaWxsPSIjOUY5REIwIiBkPSJNMzcwLjcyIDEzMy4yOEMzMzkuNDU4IDEwNC4wMDggMjk4Ljg4OCA4Ny45NjIgMjU1Ljg0OCA4OGMtNzcuNDU4LjA2OC0xNDQuMzI4IDUzLjE3OC0xNjIuNzkxIDEyNi44NS0xLjM0NCA1LjM2My02LjEyMiA5LjE1LTExLjY1MSA5LjE1SDI0LjEwM2MtNy40OTggMC0xMy4xOTQtNi44MDctMTEuODA3LTE0LjE3NkMzMy45MzMgOTQuOTI0IDEzNC44MTMgOCAyNTYgOGM2Ni40NDggMCAxMjYuNzkxIDI2LjEzNiAxNzEuMzE1IDY4LjY4NUw0NjMuMDMgNDAuOTdDNDc4LjE0OSAyNS44NTEgNTA0IDM2LjU1OSA1MDQgNTcuOTQxVjE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMzQ1Ljk0MWMtMjEuMzgyIDAtMzIuMDktMjUuODUxLTE2Ljk3MS00MC45NzFsNDEuNzUtNDEuNzQ5ek0zMiAyOTZoMTM0LjA1OWMyMS4zODIgMCAzMi4wOSAyNS44NTEgMTYuOTcxIDQwLjk3MWwtNDEuNzUgNDEuNzVjMzEuMjYyIDI5LjI3MyA3MS44MzUgNDUuMzE5IDExNC44NzYgNDUuMjggNzcuNDE4LS4wNyAxNDQuMzE1LTUzLjE0NCAxNjIuNzg3LTEyNi44NDkgMS4zNDQtNS4zNjMgNi4xMjItOS4xNSAxMS42NTEtOS4xNWg1Ny4zMDRjNy40OTggMCAxMy4xOTQgNi44MDcgMTEuODA3IDE0LjE3NkM0NzguMDY3IDQxNy4wNzYgMzc3LjE4NyA1MDQgMjU2IDUwNGMtNjYuNDQ4IDAtMTI2Ljc5MS0yNi4xMzYtMTcxLjMxNS02OC42ODVMNDguOTcgNDcxLjAzQzMzLjg1MSA0ODYuMTQ5IDggNDc1LjQ0MSA4IDQ1NC4wNTlWMzIwYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNHoiLz48L3N2Zz4=');\n}\n.next-chessground .next-trash {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii05NiAtOTYgNjQwIDY0MCI+PHBhdGggZD0iTTI2OCA0MTZoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6TTQzMiA4MGgtODIuNDFsLTM0LTU2LjdBNDggNDggMCAwIDAgMjc0LjQxIDBIMTczLjU5YTQ4IDQ4IDAgMCAwLTQxLjE2IDIzLjNMOTguNDEgODBIMTZBMTYgMTYgMCAwIDAgMCA5NnYxNmExNiAxNiAwIDAgMCAxNiAxNmgxNnYzMzZhNDggNDggMCAwIDAgNDggNDhoMjg4YTQ4IDQ4IDAgMCAwIDQ4LTQ4VjEyOGgxNmExNiAxNiAwIDAgMCAxNi0xNlY5NmExNiAxNiAwIDAgMC0xNi0xNnpNMTcxLjg0IDUwLjkxQTYgNiAwIDAgMSAxNzcgNDhoOTRhNiA2IDAgMCAxIDUuMTUgMi45MUwyOTMuNjEgODBIMTU0LjM5ek0zNjggNDY0SDgwVjEyOGgyODh6bS0yMTItNDhoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6Ii8+PC9zdmc+');\n}\n");nr("*,\n::after,\n::before {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n}\n\n.next-chessground {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n}\n.next-chessground .checkbox {\n display: flex;\n margin: 0;\n align-items: center;\n padding-left: 0.25rem;\n width: 2.75rem;\n height: 1.75rem;\n outline: none;\n appearance: none;\n transition: 0.2s ease-in-out;\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n cursor: pointer;\n}\n.next-chessground .checkbox:before {\n background-color: rgba(156, 163, 175);\n width: 1rem;\n height: 1rem;\n border-radius: 999px;\n content: '';\n transition: 0.2s ease-in-out;\n}\n.next-chessground .checkbox:checked:before {\n background-color: rgba(4, 120, 87);\n transform: translate(1rem, 0);\n}\n.next-chessground .next-button {\n background-color: transparent;\n background-image: none;\n cursor: pointer;\n display: flex;\n outline: none;\n\n padding: 0;\n line-height: inherit;\n color: inherit;\n font-size: 100%;\n}\n.next-chessground .next-button:focus {\n outline: none;\n}\n");nr(".pure-modal {\n box-shadow: rgba(0, 0, 0, 0.5) 0px 5px 15px 0px;\n color: rgba(55, 65, 81);\n}\n.pure-modal-backdrop {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n.backdrop-overflow-hidden {\n overflow: hidden !important;\n}\n.pure-modal-backdrop .pure-modal {\n width: 300px;\n max-width: 100%;\n box-sizing: border-box;\n transition: all 0.2s ease-in-out;\n max-height: 100%;\n}\n.pure-modal.auto-height {\n position: static;\n}\n.pure-modal-backdrop.scrollable {\n overflow-y: auto;\n}\n.pure-modal-backdrop .panel {\n display: grid;\n grid-template-rows: repeat(3, min-content);\n}\n.pure-modal-backdrop:not(.scrollable) .panel {\n grid-template-rows: min-content minmax(0, 1fr) min-content;\n max-height: -moz-available;\n max-height: -webkit-fill-available;\n max-height: fill-available;\n height: 100%;\n}\n.pure-modal > * > * {\n flex: 0 0 auto;\n}\n.pure-modal > * > .scrollable {\n overflow-x: hidden;\n overflow-scrolling: touch;\n}\n@media (max-width: 480px) {\n .pure-modal-backdrop .pure-modal {\n width: 100%;\n }\n}\n.pure-modal .panel-body {\n background-color: #fff;\n}\n.pure-modal .panel-heading {\n background: #f0f0f0;\n}\n.pure-modal .panel-title {\n padding: 12px 45px 12px 15px;\n margin: 0;\n}\n.pure-modal .close {\n right: 6px;\n top: 6px;\n z-index: 1;\n width: 30px;\n height: 30px;\n border-radius: 15px;\n text-align: center;\n line-height: 30px;\n cursor: pointer;\n font-size: 1.85rem;\n}\n.pure-modal .panel-heading .close:hover {\n color: #000;\n}\n.pure-modal .panel-body {\n padding: 15px;\n}\n.pure-modal .panel-footer {\n padding: 12px 45px 12px 15px;\n background: #f0f0f0;\n}\n.pure-modal .panel-body,\n.pure-modal .panel-footer,\n.pure-modal .panel-title {\n word-break: break-all;\n}\n.pure-modal-backdrop .additional-row,\n.pure-modal-backdrop:not(.scrollable) .additional-row {\n display: grid;\n grid-template-rows: min-content minmax(0, 1fr) min-content min-content;\n}\n");nr("/**\n * Cburnett\n */\n.cburnett piece.pawn.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wP.svg');\n}\n.cburnett piece.bishop.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wB.svg');\n}\n.cburnett piece.knight.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wN.svg');\n}\n.cburnett piece.rook.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wR.svg');\n}\n.cburnett piece.queen.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wQ.svg');\n}\n.cburnett piece.king.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wK.svg');\n}\n.cburnett piece.pawn.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bP.svg');\n}\n.cburnett piece.bishop.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bB.svg');\n}\n.cburnett piece.knight.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bN.svg');\n}\n.cburnett piece.rook.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bR.svg');\n}\n.cburnett piece.queen.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bQ.svg');\n}\n.cburnett piece.king.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bK.svg');\n}\n\n/**\n * Classic\n */\n.classic piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wp.png');\n}\n.classic piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wb.png');\n}\n.classic piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wn.png');\n}\n.classic piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wr.png');\n}\n.classic piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wq.png');\n}\n.classic piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wk.png');\n}\n.classic piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bp.png');\n}\n.classic piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bb.png');\n}\n.classic piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bn.png');\n}\n.classic piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/br.png');\n}\n.classic piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bq.png');\n}\n.classic piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bk.png');\n}\n\n/**\n * Neo\n */\n.neo piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wp.png');\n}\n.neo piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wb.png');\n}\n.neo piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wn.png');\n}\n.neo piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wr.png');\n}\n.neo piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wq.png');\n}\n.neo piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wk.png');\n}\n.neo piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bp.png');\n}\n.neo piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bb.png');\n}\n.neo piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bn.png');\n}\n.neo piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/br.png');\n}\n.neo piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bq.png');\n}\n.neo piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bk.png');\n}\n\n/**\n * Alpha\n */\n.alpha piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wp.png');\n}\n.alpha piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wb.png');\n}\n.alpha piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wn.png');\n}\n.alpha piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wr.png');\n}\n.alpha piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wq.png');\n}\n.alpha piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wk.png');\n}\n.alpha piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bp.png');\n}\n.alpha piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bb.png');\n}\n.alpha piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bn.png');\n}\n.alpha piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/br.png');\n}\n.alpha piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bq.png');\n}\n.alpha piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bk.png');\n}\n\n/**\n * Bases\n */\n.bases piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wp.png');\n}\n.bases piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wb.png');\n}\n.bases piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wn.png');\n}\n.bases piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wr.png');\n}\n.bases piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wq.png');\n}\n.bases piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wk.png');\n}\n.bases piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bp.png');\n}\n.bases piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bb.png');\n}\n.bases piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bn.png');\n}\n.bases piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/br.png');\n}\n.bases piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bq.png');\n}\n.bases piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bk.png');\n}\n");nr(".flex {\n display: flex;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-row-reverse {\n flex-direction: row-reverse;\n}\n.grid {\n display: grid;\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.w-full {\n width: 100%;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.px-2 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-resize {\n cursor: nesw-resize;\n}\n.outline-none,\n.outline-none:focus {\n outline: none;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-gray-400 {\n color: rgba(156, 163, 175);\n}\n.text-gray-800 {\n color: rgba(31, 41, 55);\n}\n.bg-white {\n background-color: #fff;\n}\n.bg-orange-300 {\n background-color: #fbd38d;\n}\n.border {\n border-width: 1px;\n border-style: solid;\n}\n.border-gray-300 {\n border-color: rgba(209, 213, 219);\n}\n.rounded {\n border-radius: 0.25rem;\n}\n");export{Yo as NextChessground,er as NextEditor,tr as Stockfish,fe as constants,Yo as default,xo as isValidFen,be as useChess,ye as useChessground};