next-chessground 1.4.6 → 1.4.8
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 +3 -3
- package/dist/index.js +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -32,4 +32,4 @@
|
|
|
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 de="function"==typeof Symbol&&Symbol.for,me=de?Symbol.for("react.element"):60103,fe=de?Symbol.for("react.portal"):60106,be=de?Symbol.for("react.fragment"):60107,ye=de?Symbol.for("react.strict_mode"):60108,Ie=de?Symbol.for("react.profiler"):60114,ke=de?Symbol.for("react.provider"):60109,we=de?Symbol.for("react.context"):60110,Ce=de?Symbol.for("react.async_mode"):60111,ve=de?Symbol.for("react.concurrent_mode"):60111,Se=de?Symbol.for("react.forward_ref"):60112,Ee=de?Symbol.for("react.suspense"):60113,xe=de?Symbol.for("react.suspense_list"):60120,Ve=de?Symbol.for("react.memo"):60115,Ne=de?Symbol.for("react.lazy"):60116,Me=de?Symbol.for("react.block"):60121,Be=de?Symbol.for("react.fundamental"):60117,je=de?Symbol.for("react.responder"):60118,De=de?Symbol.for("react.scope"):60119;function Te(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case me:switch(e=e.type){case Ce:case ve:case be:case Ie:case ye:case Ee:return e;default:switch(e=e&&e.$$typeof){case we:case Se:case Ne:case Ve:case ke:return e;default:return t}}case fe:return t}}}function Qe(e){return Te(e)===ve}var Ze={AsyncMode:Ce,ConcurrentMode:ve,ContextConsumer:we,ContextProvider:ke,Element:me,ForwardRef:Se,Fragment:be,Lazy:Ne,Memo:Ve,Portal:fe,Profiler:Ie,StrictMode:ye,Suspense:Ee,isAsyncMode:function(e){return Qe(e)||Te(e)===Ce},isConcurrentMode:Qe,isContextConsumer:function(e){return Te(e)===we},isContextProvider:function(e){return Te(e)===ke},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===me},isForwardRef:function(e){return Te(e)===Se},isFragment:function(e){return Te(e)===be},isLazy:function(e){return Te(e)===Ne},isMemo:function(e){return Te(e)===Ve},isPortal:function(e){return Te(e)===fe},isProfiler:function(e){return Te(e)===Ie},isStrictMode:function(e){return Te(e)===ye},isSuspense:function(e){return Te(e)===Ee},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===be||e===ve||e===Ie||e===ye||e===Ee||e===xe||"object"==typeof e&&null!==e&&(e.$$typeof===Ne||e.$$typeof===Ve||e.$$typeof===ke||e.$$typeof===we||e.$$typeof===Se||e.$$typeof===Be||e.$$typeof===je||e.$$typeof===De||e.$$typeof===Me)},typeOf:Te},Pe=l(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,x=o,V=d,N=g,M=A,B=i,j=r,D=h,T=!1;function Q(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=x,t.Lazy=V,t.Memo=N,t.Portal=M,t.Profiler=B,t.StrictMode=j,t.Suspense=D,t.isAsyncMode=function(e){return T||(T=!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.")),Q(e)||I(e)===c},t.isConcurrentMode=Q,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}()}),Oe=l(function(e){"production"===process.env.NODE_ENV?e.exports=Ze:e.exports=Pe}),Ue=Object.getOwnPropertySymbols,qe=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable;var Ke=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]))qe.call(n,i)&&(o[i]=n[i]);if(Ue){A=Ue(n);for(var s=0;s<A.length;s++)Je.call(n,A[s])&&(o[A[s]]=n[A[s]])}}return o},Ge="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Re=function(){};if("production"!==process.env.NODE_ENV){var Fe=Ge,Le={},ze=Function.call.bind(Object.prototype.hasOwnProperty);Re=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}}function We(e,t,n,A,o){if("production"!==process.env.NODE_ENV)for(var r in e)if(ze(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,Fe)}catch(e){i=e}if(!i||i instanceof Error||Re((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 Le)){Le[i.message]=!0;var a=o?o():"";Re("Failed "+n+" type: "+i.message+(null!=a?a:""))}}}We.resetWarningCache=function(){"production"!==process.env.NODE_ENV&&(Le={})};var Ye=We,_e=Function.call.bind(Object.prototype.hasOwnProperty),He=function(){};function Xe(){return null}"production"!==process.env.NODE_ENV&&(He=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}});var $e=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(Xe),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+"]",Ge);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 Oe.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(_e(s,c)){var u=e(s,c,A,o,r+"."+c,Ge);if(u instanceof Error)return u}return null})},oneOf:function(e){if(!Array.isArray(e))return"production"!==process.env.NODE_ENV&&He(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."),Xe;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&&He("Invalid argument supplied to oneOfType, expected an instance of array."),Xe;for(var t=0;t<e.length;t++){var n=e[t];if("function"!=typeof n)return He("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+h(n)+" at index "+t+"."),Xe}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,Ge))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,Ge);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=Ke({},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,Ge);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!==Ge){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&&(He("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=Ye,o.resetWarningCache=Ye.resetWarningCache,o.PropTypes=o,o};function et(){}function tt(){}tt.resetWarningCache=et;var nt=l(function(e){if("production"!==process.env.NODE_ENV){var t=Oe;e.exports=$e(t.isElement,!0)}else e.exports=function(){function e(e,t,n,A,o,r){if(r!==Ge){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:tt,resetWarningCache:et};return n.PropTypes=n,n}()});const At=["white","black"],ot=["a","b","c","d","e","f","g","h"],rt=["1","2","3","4","5","6","7","8"],it=[...rt].reverse(),st=Array.prototype.concat(...ot.map(e=>rt.map(t=>e+t))),at=e=>st[8*e[0]+e[1]],ct=e=>[e.charCodeAt(0)-97,e.charCodeAt(1)-49],lt=st.map(ct);const ut=()=>{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}}},ht=e=>"white"===e?"black":"white",pt=(e,t)=>{const n=e[0]-t[0],A=e[1]-t[1];return n*n+A*A},gt=(e,t)=>e.role===t.role&&e.color===t.color,dt=(e,t,n,A)=>[(t?e[0]:7-e[0])*n,(t?7-e[1]:e[1])*A],mt=e=>{const t=e.width/8,n=e.height/8;return(e,A)=>dt(e,A,t,n)},ft=(e,t)=>dt(e,t,100,100),bt=(e,t)=>{e.style.transform=`translate(${t[0]}px,${t[1]}px)`},yt=(e,t)=>{e.style.transform=`translate(${t[0]}%,${t[1]}%)`},It=(e,t)=>{e.style.visibility=t?"visible":"hidden"},kt=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},wt=e=>2===e.buttons||2===e.button,Ct=(e,t)=>{const n=document.createElement(e);return t&&(n.className=t),n};function vt(e,t,n){const A=ct(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 St(e,t){return Math.abs(e-t)}const Et=(e,t,n,A)=>{const o=St(e,n),r=St(t,A);return 1===o&&2===r||2===o&&1===r},xt=(e,t,n,A)=>St(e,n)===St(t,A),Vt=(e,t,n,A)=>e===n||t===A,Nt=(e,t,n,A)=>xt(e,t,n,A)||Vt(e,t,n,A);function Mt(e,t,n){const A=e.get(t);if(!A)return[];const o=ct(t),r=A.role,i="pawn"===r?(s=A.color,(e,t,n,A)=>St(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?Et:"bishop"===r?xt:"rook"===r?Vt:"queen"===r?Nt:function(e,t,n){return(A,o,r,i)=>St(A,r)<2&&St(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(ct(o)[0]);return A}(e,A.color),n);var s;return lt.filter(e=>(o[0]!==e[0]||o[1]!==e[1])&&i(o[0],o[1],e[0],e[1])).map(at)}function Bt(e,...t){e&&setTimeout(()=>e(...t),1)}function jt(e){e.premovable.current&&(e.premovable.current=void 0,Bt(e.premovable.events.unset))}function Dt(e){const t=e.predroppable;t.current&&(t.current=void 0,Bt(t.events.unset))}function Tt(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&&Jt(e),Bt(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=ct(t),r=ct(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=at([7,r[1]]):2===r[0]&&(n=at([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(at([6,r[1]]),A),e.pieces.set(at([5,r[1]]),i)):(e.pieces.set(at([2,r[1]]),A),e.pieces.set(at([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,Bt(e.events.change),r||!0}function Qt(e,t,n,A){if(e.pieces.has(n)){if(!A)return!1;e.pieces.delete(n)}return Bt(e.events.dropNewPiece,t,n),e.pieces.set(n,t),e.lastMove=[n],e.check=void 0,Bt(e.events.change),e.movable.dests=void 0,e.turnColor=ht(e.turnColor),!0}function Zt(e,t,n){const A=Tt(e,t,n);return A&&(e.movable.dests=void 0,e.turnColor=ht(e.turnColor),e.animation.current=void 0),A}function Pt(e,t,n){if(Gt(e,t,n)){const A=Zt(e,t,n);if(A){const o=e.hold.stop();Jt(e);const r={premove:!1,ctrlKey:e.stats.ctrlKey,holdTime:o};return!0!==A&&(r.captured=A),Bt(e.movable.events.after,t,n,r),!0}}else if(function(e,t,n){return t!==n&&Rt(e,t)&&Mt(e.pieces,t,e.premovable.castle).includes(n)}(e,t,n))return function(e,t,n,A){Dt(e),e.premovable.current=[t,n],Bt(e.premovable.events.set,t,n,A)}(e,t,n,{ctrlKey:e.stats.ctrlKey}),Jt(e),!0;return Jt(e),!1}function Ot(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),Qt(e,o,n,A),Bt(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){jt(e),e.predroppable.current={role:t,key:n},Bt(e.predroppable.events.set,t,n)}(e,o.role,n):(jt(e),Dt(e)),e.pieces.delete(t),Jt(e)}function Ut(e,t,n){if(Bt(e.events.select,t),e.selected){if(e.selected===t&&!e.draggable.enabled)return Jt(e),void e.hold.cancel();if((e.selectable.enabled||n)&&e.selected!==t&&Pt(e,e.selected,t))return void(e.stats.dragged=!1)}(Kt(e,t)||Rt(e,t))&&(qt(e,t),e.hold.start())}function qt(e,t){e.selected=t,Rt(e,t)?e.premovable.dests=Mt(e.pieces,t,e.premovable.castle):e.premovable.dests=void 0}function Jt(e){e.selected=void 0,e.premovable.dests=void 0,e.hold.cancel()}function Kt(e,t){const n=e.pieces.get(t);return!!n&&("both"===e.movable.color||e.movable.color===n.color&&e.turnColor===n.color)}function Gt(e,t,n){var A,o;return t!==n&&Kt(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 Rt(e,t){const n=e.pieces.get(t);return!!n&&e.premovable.enabled&&e.movable.color===n.color&&e.turnColor!==n.color}function Ft(e){const t=e.premovable.current;if(!t)return!1;const n=t[0],A=t[1];let o=!1;if(Gt(e,n,A)){const t=Zt(e,n,A);if(t){const r={premove:!0};!0!==t&&(r.captured=t),Bt(e.movable.events.after,n,A,r),o=!0}}return jt(e),o}function Lt(e){jt(e),Dt(e),Jt(e)}function zt(e){e.movable.color=e.movable.dests=e.animation.current=void 0,Lt(e)}function Wt(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?at([A,o]):void 0}function Yt(e){return"white"===e.orientation}const _t="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR",Ht={p:"pawn",r:"rook",n:"knight",b:"bishop",q:"queen",k:"king"},Xt={pawn:"p",rook:"r",knight:"n",bishop:"b",queen:"q",king:"k"};function $t(e){"start"===e&&(e=_t);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(at([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(at([A,n]),{role:Ht[e],color:o===e?"black":"white"}),++A}}}return t}function en(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=[]),tn(e,t),t.fen&&(e.pieces=$t(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&&qt(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 tn(e,t){for(const n in t)nn(e[n])&&nn(t[n])?tn(e[n],t[n]):e[n]=t[n]}function nn(e){return"object"==typeof e}function An(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,rn(t,n));for(const e of st)a=t.pieces.get(e),c=s.get(e),a?c?gt(a,c.piece)||(r.push(c),i.push(rn(e,a))):i.push(rn(e,a)):c&&r.push(c);for(const e of i)c=sn(e,r.filter(t=>gt(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||an(t,performance.now())}else t.dom.redraw();return A}(e,t):on(e,t)}function on(e,t){const n=e(t);return t.dom.redraw(),n}function rn(e,t){return{key:e,pos:ct(e),piece:t}}function sn(e,t){return t.sort((t,n)=>pt(e.pos,t.pos)-pt(e.pos,n.pos))[0]}function an(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())=>an(e,t))}}const cn=["green","red","blue","yellow"];function ln(e,t){if(t.touches&&t.touches.length>1)return;t.stopPropagation(),t.preventDefault(),t.ctrlKey?Jt(e):Lt(e);const n=kt(t),A=Wt(n,Yt(e),e.dom.bounds());A&&(e.drawable.current={orig:A,pos:n,brush:dn(t),snapToValidMove:e.drawable.defaultSnapToValidMove},un(e))}function un(e){requestAnimationFrame(()=>{const t=e.drawable.current;if(t){const n=Wt(t.pos,Yt(e),e.dom.bounds());n||(t.snapToValidMove=!1);const A=t.snapToValidMove?function(e,t,n,A){const o=ct(e),r=lt.filter(e=>Nt(o[0],o[1],e[0],e[1])||Et(o[0],o[1],e[0],e[1])),i=r.map(e=>vt(at(e),n,A)).map(e=>pt(t,e)),[,s]=i.reduce((e,t,n)=>e[0]<t?e:[t,n],[i[0],0]);return at(r[s])}(t.orig,t.pos,Yt(e),e.dom.bounds()):n;A!==t.mouseSq&&(t.mouseSq=A,t.dest=A!==t.orig?A:void 0,e.dom.redrawNow()),un(e)}})}function hn(e,t){e.drawable.current&&(e.drawable.current.pos=kt(t))}function pn(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);mn(e)}(e.drawable,t),gn(e))}function gn(e){e.drawable.current&&(e.drawable.current=void 0,e.dom.redraw())}function dn(e){var t;const n=(e.shiftKey||e.ctrlKey)&&wt(e),A=e.altKey||e.metaKey||(null===(t=e.getModifierState)||void 0===t?void 0:t.call(e,"AltGraph"));return cn[(n?1:0)+(A?2:0)]}function mn(e){e.onChange&&e.onChange(e.shapes)}function fn(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=kt(t),o=Wt(A,Yt(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(),mn(e.drawable))}(e),!1===t.cancelable||t.touches&&e.movable.color&&!r&&!i&&!function(e,t){const n=Yt(e),A=e.dom.bounds(),o=Math.pow(A.width/8,2);for(const r in e.pieces){const e=vt(r,n,A);if(pt(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&&Gt(e,e.selected,o)?An(e=>Ut(e,o),e):Ut(e,o);const c=e.selected===o,l=Cn(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}`,bt(s,mt(n)(ct(o),Yt(e))),It(s,!0)),bn(e)}else s&&jt(e),a&&Dt(e);e.dom.redraw()}function bn(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&>(A,n.piece)){if(!n.started&&pt(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();bt(n.element,[n.pos[0]-t.left-t.width/16,n.pos[1]-t.top-t.height/16])}}else kn(e);bn(e)})}function yn(e,t){e.draggable.current&&(!t.touches||t.touches.length<2)&&(e.draggable.current.pos=kt(t))}function In(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);jt(e),Dt(e);const A=Wt(kt(t)||n.pos,Yt(e),e.dom.bounds());A&&n.started&&n.orig!==A?n.newPiece?Ot(e,n.orig,A,n.force):(e.stats.ctrlKey=t.ctrlKey,Pt(e,n.orig,A)&&(e.stats.dragged=!0)):n.newPiece?e.pieces.delete(n.orig):e.draggable.deleteOnDropOff&&!A&&(e.pieces.delete(n.orig),Bt(e.events.change)),(n.orig!==n.previouslySelected||n.orig!==A&&A)&&e.selectable.enabled||Jt(e),wn(e),e.draggable.current=void 0,e.dom.redraw()}function kn(e){const t=e.draggable.current;t&&(t.newPiece&&e.pieces.delete(t.orig),e.draggable.current=void 0,Jt(e),wn(e),e.dom.redraw())}function wn(e){const t=e.dom.elements;t.ghost&&It(t.ghost,!1)}function Cn(e,t){let n=e.dom.elements.board.firstChild;for(;n;){if(n.cgKey===t&&"PIECE"===n.tagName)return n;n=n.nextSibling}}function vn(e,t){e.exploding&&(t?e.exploding.stage=t:e.exploding=void 0,e.dom.redraw())}function Sn(e,t){function n(){!function(e){e.orientation=ht(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?An:on)(e=>en(e,t),e)},state:e,getFen:()=>{return t=e.pieces,it.map(e=>ot.map(n=>{const A=t.get(n+e);if(A){const e=Xt[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){An(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?An(e=>Ut(e,t,n),e):e.selected&&(Jt(e),e.dom.redraw())},move(t,n){An(e=>Tt(e,t,n),e)},newPiece(t,n){An(e=>Qt(e,t,n),e)},playPremove(){if(e.premovable.current){if(An(Ft,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)&&Qt(e,{role:n.role,color:e.movable.color},n.key)&&(Bt(e.movable.events.afterNewPiece,n.role,n.key,{premove:!1,predrop:!0}),A=!0);return Dt(e),A}(e,t);return e.dom.redraw(),n}return!1},cancelPremove(){on(jt,e)},cancelPredrop(){on(Dt,e)},cancelMove(){on(e=>{Lt(e),kn(e)},e)},stop(){on(e=>{zt(e),kn(e)},e)},explode(t){!function(e,t){e.exploding={stage:1,keys:t},e.dom.redraw(),setTimeout(()=>{vn(e,2),setTimeout(()=>vn(e,void 0),120)},120)}(e,t)},setAutoShapes(t){on(e=>e.drawable.autoShapes=t,e)},setShapes(t){on(e=>e.drawable.shapes=t,e)},getKeyAtDomPos:t=>Wt(t,Yt(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=kt(n);e.draggable.current={orig:o,piece:t,origPos:r,pos:r,started:!0,element:()=>Cn(e,o),originTarget:n.target,newPiece:!0,force:!!A},bn(e)}(e,t,n,A)},destroy(){zt(e),e.dom.unbind&&e.dom.unbind(),e.dom.destroyed=!0}}}function En(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function xn(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:Nn(e,i,!1,s)}));r&&a.push({shape:r,current:!0,hash:Nn(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=Pn(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(Tn(t))}(A,a,l),Vn(e,a.filter(e=>!e.shape.customSvg),A.brushes,i,u),Vn(e,a.filter(e=>e.shape.customSvg),A.brushes,i,h)}function Vn(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(Dn(e,s,n,A,r))}function Nn({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&&Mn(A),o&&Bn(o),r&&jn(r)].filter(e=>e).join(",")}function Mn(e){return[e.color,e.role,e.scale].filter(e=>e).join(",")}function Bn(e){return""+(e.lineWidth||"")}function jn(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 Dn(e,{shape:t,current:n,hash:A},o,r,i){let s;if(t.customSvg){const n=Zn(ct(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=Qn(En("g"),{transform:`translate(${s},${a})`}),l=Qn(En("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=qn(t,A),r=A.width/8*(n.scale||1),i=n.color[0]+("knight"===n.role?"n":n.role[0]).toUpperCase();return Qn(En("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,Zn(ct(t.orig),e.orientation),t.piece,i);else{const A=Zn(ct(t.orig),e.orientation);if(t.dest){let a=o[t.brush];t.modifiers&&(a=Pn(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=qn(t,r),a=qn(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 Qn(En("line"),{stroke:e.color,"stroke-width":On(e,A,r),"stroke-linecap":"round","marker-end":"url(#arrowhead-"+e.key+")",opacity:Un(e,A),x1:s[0],y1:s[1],x2:a[0]-h,y2:a[1]-p})}(a,A,Zn(ct(t.dest),e.orientation),n,(r.get(t.dest)||0)>1,i)}else s=function(e,t,n,A){const o=qn(t,A),r=function(e){const t=e.width/512;return[3*t,4*t]}(A),i=(A.width+A.height)/32;return Qn(En("circle"),{stroke:e.color,"stroke-width":r[n?0:1],fill:"none",opacity:Un(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 Tn(e){const t=Qn(En("marker"),{id:"arrowhead-"+e.key,orient:"auto",markerWidth:4,markerHeight:8,refX:2.05,refY:2.01});return t.appendChild(Qn(En("path"),{d:"M0,0 V4 L3,2 Z",fill:e.color})),t.setAttribute("cgKey",e.key),t}function Qn(e,t){for(const n in t)e.setAttribute(n,t[n]);return e}function Zn(e,t){return"white"===t?e:[7-e[0],7-e[1]]}function Pn(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 On(e,t,n){return(e.lineWidth||10)*(t?.85:1)/512*n.width}function Un(e,t){return(e.opacity||1)*(t?.9:1)}function qn(e,t){return[(e[0]+.5)*t.width/8,(7.5-e[1])*t.height/8]}function Jn(e,t){const n=Ct("coords",t);let A;for(const t of e)A=Ct("coord"),A.textContent=t,n.appendChild(A);return n}function Kn(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?kn(e):e.drawable.current?gn(e):t.shiftKey||wt(t)?e.drawable.enabled&&ln(e,t):e.viewOnly||(e.dropmode.active?function(e,t){if(!e.dropmode.active)return;jt(e),Dt(e);const n=e.dropmode.piece;if(n){e.pieces.set("a0",n);const A=kt(t),o=A&&Wt(A,Yt(e),e.dom.bounds());o&&Ot(e,"a0",o)}e.dom.redraw()}(e,t):fn(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 Gn(e,t,n,A){return e.addEventListener(t,n,A),()=>e.removeEventListener(t,n,A)}function Rn(e,t,n){return A=>{e.drawable.current?e.drawable.enabled&&n(e,A):e.viewOnly||t(e,A)}}function Fn(e){const t=Yt(e),n=e.dom.relative?ft:mt(e.dom.bounds()),A=e.dom.relative?yt:bt,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)Hn(n,t,"last-move");e.check&&e.highlight.check&&Hn(n,e.check,"check");if(e.selected&&(Hn(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)Hn(n,t,"move-dest"+(e.pieces.has(t)?" oc":""));const o=e.premovable.dests;if(o)for(const t of o)Hn(n,t,"premove-dest"+(e.pieces.has(t)?" oc":""))}const A=e.premovable.current;if(A)for(const e of A)Hn(n,e,"current-premove");else e.predroppable.current&&Hn(n,e.predroppable.current.key,"current-premove");const o=e.exploding;if(o)for(const e of o.keys)Hn(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,Ln(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(ct(d),t)),m.cgDragging=!1),!I&&m.cgFading&&(m.cgFading=!1,m.classList.remove("fading")),f){if(y&&m.cgAnimating&&b===_n(f)){const e=ct(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(ct(d),t)),e.addPieceZIndex&&(m.style.zIndex=Yn(ct(d),t)));b!==_n(f)||I&&m.cgFading?I&&b===_n(I)?(m.classList.add("fading"),m.cgFading=!0):Xn(p,b,m):u.add(d)}else Xn(p,b,m);else if(zn(m)){const e=m.className;l.get(d)===e?h.add(d):Xn(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(ct(e),t);if(v)v.cgKey=e,A(v,i);else{const t=Ct("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(_n(a)),w=k&&k.pop(),w){w.cgKey=i,w.cgFading&&(w.classList.remove("fading"),w.cgFading=!1);const o=ct(i);e.addPieceZIndex&&(w.style.zIndex=Yn(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=_n(a),s=Ct("piece",r),c=ct(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=Yn(c,t)),o.appendChild(s)}for(const t of p.values())Wn(e,t);for(const t of g.values())Wn(e,t)}function Ln(e){return"PIECE"===e.tagName}function zn(e){return"SQUARE"===e.tagName}function Wn(e,t){for(const n of t)e.dom.elements.board.removeChild(n)}function Yn(e,t){let n=2+8*e[1]+(7-e[0]);return t&&(n=67-n),n+""}function _n(e){return`${e.color} ${e.role}`}function Hn(e,t,n){const A=e.get(t);A?e.set(t,`${A} ${n}`):e.set(t,n)}function Xn(e,t,n){const A=e.get(t);A?A.push(n):e.set(t,[n])}function $n(e,t){const n={pieces:$t(_t),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:ut()};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 At)e.classList.toggle("orientation-"+n,t.orientation===n);e.classList.toggle("manipulable",!t.viewOnly);const A=Ct("cg-helper");e.appendChild(A);const o=Ct("cg-container");A.appendChild(o);const r=Ct("cg-board");let i,s,a;if(o.appendChild(r),t.drawable.visible&&!n&&(i=Qn(En("svg"),{class:"cg-shapes"}),i.appendChild(En("defs")),i.appendChild(En("g")),s=Qn(En("svg"),{class:"cg-custom-svgs"}),s.appendChild(En("g")),o.appendChild(i),o.appendChild(s)),t.coordinates){const e="black"===t.orientation?" black":"";o.appendChild(Jn(rt,"ranks"+e)),o.appendChild(Jn(ot,"files"+e))}return t.draggable.showGhost&&!n&&(a=Ct("piece","ghost"),It(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=>{Fn(a),!e&&o.svg&&xn(a,o.svg,o.customSvg)},s=()=>{r.clear(),function(e){if(e.dom.relative)return;const t=Yt(e),n=mt(e.dom.bounds());let A=e.dom.elements.board.firstChild;for(;A;)(Ln(A)&&!A.cgAnimating||zn(A))&&bt(A,n(ct(A.cgKey),t)),A=A.nextSibling}(a),o.svg&&xn(a,o.svg,o.customSvg)},a=n;return a.dom={elements:o,bounds:r,redraw:eA(i),redrawNow:i,unbind:t,relative:A},a.drawable.prevSvgHash="",i(!1),Kn(a,s),t||(a.dom.unbind=function(e,t){const n=[];if(e.dom.relative||!e.resizable||"ResizeObserver"in window||n.push(Gn(document.body,"chessground.resize",t)),!e.viewOnly){const t=Rn(e,yn,hn),A=Rn(e,In,pn);for(const e of["touchmove","mousemove"])n.push(Gn(document,e,t));for(const e of["touchend","mouseup"])n.push(Gn(document,e,A));const o=()=>e.dom.bounds.clear();n.push(Gn(document,"scroll",o,{capture:!0,passive:!0})),n.push(Gn(window,"resize",o,{passive:!0}))}return()=>n.forEach(e=>e())}(a,s)),a.events.insert&&a.events.insert(o),a}return en(n,t||{}),Sn(A(),A)}function eA(e){let t=!1;return()=>{t||(t=!0,requestAnimationFrame(()=>{e(),t=!1}))}}class tA extends o.default.Component{buildConfigFromProps(e){const t={events:{}};return Object.keys(tA.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=$n(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=$n(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.jsx("div",{ref:e=>this.el=e,...t})}}ge(tA,"types",{width:nt.oneOfType([nt.string,nt.number]),height:nt.oneOfType([nt.string,nt.number]),fen:nt.string,orientation:nt.string,turnColor:nt.string,check:nt.string,lastMove:nt.array,selected:nt.string,coordinates:nt.bool,autoCastle:nt.bool,viewOnly:nt.bool,disableContextMenu:nt.bool,resizable:nt.bool,addPieceZIndex:nt.bool,hightlight:nt.object,animation:nt.object,movable:nt.object,premovable:nt.object,predroppable:nt.object,draggable:nt.object,selectable:nt.object,onChange:nt.func,onMove:nt.func,onDropNewPiece:nt.func,onSelect:nt.func,items:nt.object,drawable:nt.object}),ge(tA,"defaultProps",{coordinates:!1,resizable:!0,hightlight:{lastMove:!0,check:!0}});const nA=e=>{try{new Audio(e).play()}catch{return()=>{}}},AA=e=>{if("silent"===e)return!1;switch(e){case"lisp":return nA("data:audio/ogg;base64,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");case"piano":return nA("data:audio/ogg;base64,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");case"sfx":return nA("data:audio/ogg;base64,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");default:return nA("data:audio/ogg;base64,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")}};var oA="object"==typeof global&&global&&global.Object===Object&&global,rA="object"==typeof self&&self&&self.Object===Object&&self,iA=oA||rA||Function("return this")(),sA=iA.Symbol,aA=Object.prototype,cA=aA.hasOwnProperty,lA=aA.toString,uA=sA?sA.toStringTag:void 0;var hA=Object.prototype.toString;var pA=sA?sA.toStringTag:void 0;function gA(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":pA&&pA in Object(e)?function(e){var t=cA.call(e,uA),n=e[uA];try{e[uA]=void 0;var A=!0}catch(e){}var o=lA.call(e);return A&&(t?e[uA]=n:delete e[uA]),o}(e):function(e){return hA.call(e)}(e)}function dA(e){return null!=e&&"object"==typeof e}var mA=Array.isArray;function fA(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function bA(e){if(!fA(e))return!1;var t=gA(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var yA,IA=iA["__core-js_shared__"],kA=(yA=/[^.]+$/.exec(IA&&IA.keys&&IA.keys.IE_PROTO||""))?"Symbol(src)_1."+yA:"";var wA=Function.prototype.toString;function CA(e){if(null!=e){try{return wA.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var vA=/^\[object .+?Constructor\]$/,SA=Function.prototype,EA=Object.prototype,xA=SA.toString,VA=EA.hasOwnProperty,NA=RegExp("^"+xA.call(VA).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function MA(e){return!(!fA(e)||(t=e,kA&&kA in t))&&(bA(e)?NA:vA).test(CA(e));var t}function BA(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return MA(n)?n:void 0}var jA=BA(iA,"WeakMap");function DA(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var TA=Object.prototype;function QA(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||TA)}function ZA(e){return dA(e)&&"[object Arguments]"==gA(e)}var PA=Object.prototype,OA=PA.hasOwnProperty,UA=PA.propertyIsEnumerable,qA=ZA(function(){return arguments}())?ZA:function(e){return dA(e)&&OA.call(e,"callee")&&!UA.call(e,"callee")};var JA="object"==typeof exports&&exports&&!exports.nodeType&&exports,KA=JA&&"object"==typeof module&&module&&!module.nodeType&&module,GA=KA&&KA.exports===JA?iA.Buffer:void 0,RA=(GA?GA.isBuffer:void 0)||function(){return!1},FA={};FA["[object Float32Array]"]=FA["[object Float64Array]"]=FA["[object Int8Array]"]=FA["[object Int16Array]"]=FA["[object Int32Array]"]=FA["[object Uint8Array]"]=FA["[object Uint8ClampedArray]"]=FA["[object Uint16Array]"]=FA["[object Uint32Array]"]=!0,FA["[object Arguments]"]=FA["[object Array]"]=FA["[object ArrayBuffer]"]=FA["[object Boolean]"]=FA["[object DataView]"]=FA["[object Date]"]=FA["[object Error]"]=FA["[object Function]"]=FA["[object Map]"]=FA["[object Number]"]=FA["[object Object]"]=FA["[object RegExp]"]=FA["[object Set]"]=FA["[object String]"]=FA["[object WeakMap]"]=!1;var LA,zA="object"==typeof exports&&exports&&!exports.nodeType&&exports,WA=zA&&"object"==typeof module&&module&&!module.nodeType&&module,YA=WA&&WA.exports===zA&&oA.process,_A=function(){try{var e=WA&&WA.require&&WA.require("util").types;return e||YA&&YA.binding&&YA.binding("util")}catch(e){}}(),HA=_A&&_A.isTypedArray,XA=HA?(LA=HA,function(e){return LA(e)}):function(e){return dA(e)&&DA(e.length)&&!!FA[gA(e)]};var $A=function(e,t){return function(n){return e(t(n))}}(Object.keys,Object),eo=$A,to=Object.prototype.hasOwnProperty;var no=BA(iA,"Map"),Ao=BA(iA,"DataView"),oo=BA(iA,"Promise"),ro=BA(iA,"Set"),io="[object Map]",so="[object Promise]",ao="[object Set]",co="[object WeakMap]",lo="[object DataView]",uo=CA(Ao),ho=CA(no),po=CA(oo),go=CA(ro),mo=CA(jA),fo=gA;(Ao&&fo(new Ao(new ArrayBuffer(1)))!=lo||no&&fo(new no)!=io||oo&&fo(oo.resolve())!=so||ro&&fo(new ro)!=ao||jA&&fo(new jA)!=co)&&(fo=function(e){var t=gA(e),n="[object Object]"==t?e.constructor:void 0,A=n?CA(n):"";if(A)switch(A){case uo:return lo;case ho:return io;case po:return so;case go:return ao;case mo:return co}return t});var bo=fo,yo=Object.prototype.hasOwnProperty;function Io(e){if(null==e)return!0;if(function(e){return null!=e&&DA(e.length)&&!bA(e)}(e)&&(mA(e)||"string"==typeof e||"function"==typeof e.splice||RA(e)||XA(e)||qA(e)))return!e.length;var t=bo(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(QA(e))return!function(e){if(!QA(e))return eo(e);var t=[];for(var n in Object(e))to.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e).length;for(var n in e)if(yo.call(e,n))return!1;return!0}const ko=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]&&Io(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 wo=(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 Co=e=>Ae(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),vo=(e,t,n=!1)=>{if(!Co(e.fen()))return{free:!1};const A=new Map,o="w"===e.turn()?"white":"black";P.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 So=l(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 x();e.preventDefault();const{pageX:t,pageY:n}=S(e);"number"==typeof a&&"number"==typeof l&&(p(t-a-m),d(n-l-b))}function x(){return s(!1)}const{children:V,replace:N=!1,className:M,header:B,footer:j,scrollable:D=!0,draggable:T=!1,width:Q,closeButton:Z,closeButtonPosition:P,portal:O=!1}=A;let U=["pure-modal-backdrop"],q=["pure-modal",o],J=["panel-body"];M&&(q=q.concat(M)),D?J=J.concat("scrollable"):(U=U.concat("scrollable"),q=q.concat("auto-height")),T&&(U=U.concat("backdrop-overflow-hidden"));const K=t().createElement("div",{className:U.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:Q}},t().createElement(i,{replace:N,header:B,footer:j,onDragStart:T?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:T?x:void 0,onClose:v,bodyClass:J.join(" "),closeButton:Z,closeButtonPosition:P},V)));return O?(0,n.createPortal)(K,document.body):K}o(494);const a=t().memo(s)})(),r})())(o.default,r.default)}),Eo=c(So);const xo=({role:t,color:n,highlighted:A,selectPiece:o})=>{const r="bin"===t;return e.jsx("div",{className:p("edit-square border border-gray-300 rounded",A&&"bg-orange-300"),children:e.jsx("piece",{className:p("spare-piece",t,n,r&&"next-trash"),onClick:()=>{"function"==typeof o&&o({role:t,color:n})}})})},Vo=({isOpen:t,hide:n,onPromote:A,color:o="white"})=>{const r=e=>{A(e),n()};return e.jsx(Eo,{closeButton:"",isOpen:t,onClose:n,children:e.jsxs("div",{className:"promote flex gap-2 py-1.5 justify-center",children:[e.jsx(xo,{color:o,role:"queen",selectPiece:()=>r("q")}),e.jsx(xo,{color:o,role:"rook",selectPiece:()=>r("r")}),e.jsx(xo,{color:o,role:"bishop",selectPiece:()=>r("b")}),e.jsx(xo,{color:o,role:"knight",selectPiece:()=>r("n")})]})})},No=(n,A)=>{const{theme:o}=he(),{isOpen:r,show:i,hide:s}=pe(),{chess:a,fen:c,turnColor:l,lastMove:u,orientation:h,promotion:g,onMove:d,onPromote:m,onUndo:f}=ue(n),b=async(e,t,A)=>{const r=A?.promotion||g;if(!d(e,t,r)){return wo(a,e,t)&&!r&&i(),!1}return o.playSounds&&AA(o.sounds),"function"==typeof n.onMove&&await n.onMove(a),!0},{onSetPremove:y,onUnsetPremove:I,onPlayPremove:k,onCancelPremove:w,onPremovePromotion:C}=(e=>{const n=t.useRef(null),A=t.useCallback((e,t,A)=>{n.current={orig:e,dest:t,promotion:A?.promotion||null}},[]),o=t.useCallback(()=>{n.current=null},[]),r=t.useCallback(()=>"q",[]);return{onSetPremove:A,onUnsetPremove:o,onPlayPremove:t.useCallback(async()=>{if(n.current){const{orig:t,dest:A,promotion:o}=n.current,r={orig:t,dest:A,promotion:o};n.current=null;const i={promotion:r.promotion||"q"};return await e(r.orig,r.dest,i)}return!1},[e]),onCancelPremove:t.useCallback(()=>!!n.current&&(n.current=null,!0),[]),onPremovePromotion:r}})(b),v=t.useRef(),S=async(e,t,n)=>{if(n){const A={promotion:n};return await b(e,t,A)}return await b(e,t)},E=async()=>(v.current?.board&&v.current.board.cancelPremove(),await k());t.useImperativeHandle(A,()=>({board:v.current?.board,chess:a,undo:f,move:S,playPremove:E,cancelPremove:w}));t.useEffect(()=>{"function"==typeof n.setPromoting&&n.setPromoting(r)},[r]),t.useEffect(()=>{"function"==typeof n.onFenChange&&n.onFenChange(c)},[c]);const x=n.premoves?{enabled:!0,showDests:!0,castle:!0,events:{set:y,unset:I},promote:C}:{enabled:!1};return e.jsxs("div",{className:p("chessground",o.highlight&&"highlight",o.board,o.pieces),children:[e.jsx(tA,{ref:v,coordinates:o.coordinates,onMove:b,fen:c,turnColor:l,lastMove:u,orientation:h,movable:vo(a,h,n.premoves),premovable:x,...ko(n)}),e.jsx(Vo,{isOpen:r,hide:s,color:l,onPromote:async e=>{if(!m(e))return!1;o.playSounds&&AA(o.sounds),"function"==typeof n.onMove&&await n.onMove(a)}})]})};var Mo=t.forwardRef(No);const Bo=e=>{try{return"w"===e.split(" ")[1]?"white":"black"}catch{return"white"}},jo=e=>{const[n,A]=t.useState((e=>{try{return e.orientation?e.orientation:e.fen?Bo(e.fen):"white"}catch{return"white"}})(e));return t.useEffect(()=>{e.reset&&A(Bo(e.fen))},[e.reset]),[n,()=>{A(e=>"white"===e?"black":"white")}]},Do=()=>{const{theme:t,handleChange:n}=he();return e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Board"}),e.jsxs("select",{name:"board",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:t.board,onChange:n,children:[e.jsx("option",{value:"green",children:"Green"}),e.jsx("option",{value:"brown",children:"Brown"}),e.jsx("option",{value:"ruby",children:"Ruby"}),e.jsx("option",{value:"purple",children:"Purple"}),e.jsx("option",{value:"teal",children:"Teal"})]})]})},To=()=>{const{theme:t,handleChecked:n}=he();return e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Coordinates"}),e.jsx("div",{className:"flex",children:e.jsx("input",{name:"coordinates",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:t.coordinates,onChange:n})})]})},Qo=()=>{const{theme:t,handleChecked:n}=he();return e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Highlight moves"}),e.jsx("div",{className:"flex",children:e.jsx("input",{name:"highlight",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:t.highlight,onChange:n})})]})},Zo=()=>{const{theme:t,handleChange:n}=he();return e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Pieces"}),e.jsxs("select",{name:"pieces",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:t.pieces,onChange:n,children:[e.jsx("option",{value:"cburnett",children:"Cburnett"}),e.jsx("option",{value:"neo",children:"Neo"}),e.jsx("option",{value:"alpha",children:"Alpha"}),e.jsx("option",{value:"bases",children:"Bases"}),e.jsx("option",{value:"classic",children:"Classic"})]})]})},Po=()=>{const{theme:t,handleChecked:n}=he();return e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Play sounds"}),e.jsx("div",{className:"flex",children:e.jsx("input",{name:"playSounds",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:t.playSounds,onChange:n})})]})},Oo=()=>{const{theme:t,handleChange:n}=he();return e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Sounds"}),e.jsxs("select",{name:"sounds",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:t.sounds,onChange:n,children:[e.jsx("option",{value:"robot",children:"Robot"}),e.jsx("option",{value:"piano",children:"Piano"}),e.jsx("option",{value:"lisp",children:"Lisp"}),e.jsx("option",{value:"sfx",children:"SFX"})]})]})},Uo=()=>{const{isOpen:t,show:n,hide:A}=pe();return e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"next-button next-settings",title:"Settings",onClick:n,children:e.jsx("i",{className:"next-cog"})}),e.jsx(Eo,{header:"Settings",isOpen:t,onClose:A,children:e.jsxs("div",{className:"grid grid-cols-2 gap-3 items-center text-sm",children:[e.jsx(Zo,{}),e.jsx(Do,{}),e.jsx(Qo,{}),e.jsx(Po,{}),e.jsx(Oo,{}),e.jsx(To,{})]})})]})},qo=t=>e.jsx("button",{type:"button",className:"next-button next-flip",title:"Flip board",...t,children:e.jsx("i",{className:"next-sync"})}),Jo=({flip:t,readOnly:n})=>n?null:e.jsxs("div",{className:"chessground-footer text-gray-400 flex flex-row-reverse gap-2 py-1.5",children:[e.jsx(Uo,{}),e.jsx(qo,{onClick:t})]}),Ko=(t,n)=>{const[A,o]=jo(t);return e.jsx(h,{children:e.jsxs("div",{className:"next-chessground",children:[e.jsx(Mo,{...t,ref:n,orientation:A}),e.jsx(Jo,{flip:o,readOnly:t.readOnly})]})})};var Go=t.forwardRef(Ko);const Ro=t=>{const{theme:n}=he();return e.jsx("div",{className:p("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.jsx(xo,{highlighted:r,role:t,color:A,...n},`${t}-${A}`)})(n,t))})},Fo=e=>{const t=new Map;return t.set(e,null),t},Lo=({onChange:n})=>{const[A,o]=t.useState("w"),[r,i]=t.useState("-");t.useEffect(()=>{"function"==typeof n&&n([A,r].join(" "))},[A,r]);const s=e=>{const{value:t}=e.target;o(t)},a=e=>{const{value:t}=e.target;i(((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:"-"})(r,t))};return e.jsxs("div",{className:"flex flex-col gap-2 w-full",children:[e.jsxs("div",{className:"flex gap-2 w-full",children:[e.jsxs("div",{children:[e.jsx("input",{defaultChecked:!0,className:"mx-1",type:"radio",id:"white-radio",name:"side-to-move",value:"w",onChange:s}),e.jsx("label",{htmlFor:"white-radio",children:"White to move"})]}),e.jsxs("div",{children:[e.jsx("input",{className:"mx-1",type:"radio",id:"black-radio",name:"side-to-move",value:"b",onChange:s}),e.jsx("label",{htmlFor:"black-radio",children:"Black to move"})]})]}),e.jsxs("div",{className:"flex flex-col gap-2 w-full",children:[e.jsxs("div",{className:"flex w-full gap-4",children:[e.jsx("div",{children:e.jsx("span",{children:"White can"})}),e.jsxs("div",{children:[e.jsx("input",{className:"mx-1",type:"checkbox",id:"white-short-castle",value:"K",onChange:a}),e.jsx("label",{htmlFor:"white-short-castle",children:"O-O"})]}),e.jsxs("div",{children:[e.jsx("input",{className:"mx-1",type:"checkbox",id:"white-long-castle",value:"Q",onChange:a}),e.jsx("label",{htmlFor:"white-long-castle",children:"O-O-O"})]})]}),e.jsxs("div",{className:"flex w-full gap-4",children:[e.jsx("div",{children:e.jsx("span",{children:"Black can"})}),e.jsxs("div",{children:[e.jsx("input",{className:"mx-1",type:"checkbox",id:"black-short-castle",value:"k",onChange:a}),e.jsx("label",{htmlFor:"black-short-castle",children:"O-O"})]}),e.jsxs("div",{children:[e.jsx("input",{className:"mx-1",type:"checkbox",id:"black-long-castle",value:"q",onChange:a}),e.jsx("label",{htmlFor:"black-long-castle",children:"O-O-O"})]})]})]})]})},zo=(n,A)=>{const[o,r]=t.useState(n.fen||le.emptyFen),[i,s]=t.useState({role:null,color:null});t.useEffect(()=>{n.fen&&r(n.fen)},[n.fen]),t.useEffect(()=>{"function"==typeof n.onSelect&&n.onSelect(o)},[o]);return e.jsx(h,{children:e.jsxs("div",{className:"next-chessground gap-2",children:[e.jsx(Ro,{selected:i,selectPiece:s,color:"black"}),e.jsx(Mo,{...n,ref:A,fen:o,onSelect:e=>{const t=o.split(" ");t.shift();const n=t.join(" "),s=((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(Fo(n)),e.getFen();const A=e.state.pieces.get(n);return A?A.role===t.role&&A.color===t.color?(e.setPieces(Fo(n)),e.getFen()):(e.setPieces(Fo(n)),e.newPiece(t,n),e.getFen()):(e.newPiece(t,n),e.getFen())})(A.current.board,i,e),a=[s,n].join(" ");r(a)},editing:!0,skipValidation:!0}),e.jsx(Ro,{selected:i,selectPiece:s,color:"white"}),e.jsx(Lo,{onChange:e=>{const t=[o.split(" ")[0],e,"- 0 1"].join(" ");r(t)}})]})})};var Wo=t.forwardRef(zo);function Yo(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))}}Yo(".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");Yo(".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");Yo("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");Yo(".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");Yo("*,\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");Yo(".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");Yo("/**\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");Yo(".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"),exports.NextChessground=Go,exports.NextEditor=Wo,exports.Stockfish=class{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=le.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")}},exports.constants=le,exports.default=Go,exports.isValidFen=Co,exports.useChess=ue,exports.useChessground=he;
|
|
35
|
+
*/(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var de="function"==typeof Symbol&&Symbol.for,me=de?Symbol.for("react.element"):60103,fe=de?Symbol.for("react.portal"):60106,be=de?Symbol.for("react.fragment"):60107,ye=de?Symbol.for("react.strict_mode"):60108,Ie=de?Symbol.for("react.profiler"):60114,ke=de?Symbol.for("react.provider"):60109,we=de?Symbol.for("react.context"):60110,Ce=de?Symbol.for("react.async_mode"):60111,ve=de?Symbol.for("react.concurrent_mode"):60111,Se=de?Symbol.for("react.forward_ref"):60112,Ee=de?Symbol.for("react.suspense"):60113,xe=de?Symbol.for("react.suspense_list"):60120,Ve=de?Symbol.for("react.memo"):60115,Ne=de?Symbol.for("react.lazy"):60116,Me=de?Symbol.for("react.block"):60121,Be=de?Symbol.for("react.fundamental"):60117,je=de?Symbol.for("react.responder"):60118,De=de?Symbol.for("react.scope"):60119;function Te(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case me:switch(e=e.type){case Ce:case ve:case be:case Ie:case ye:case Ee:return e;default:switch(e=e&&e.$$typeof){case we:case Se:case Ne:case Ve:case ke:return e;default:return t}}case fe:return t}}}function Qe(e){return Te(e)===ve}var Ze={AsyncMode:Ce,ConcurrentMode:ve,ContextConsumer:we,ContextProvider:ke,Element:me,ForwardRef:Se,Fragment:be,Lazy:Ne,Memo:Ve,Portal:fe,Profiler:Ie,StrictMode:ye,Suspense:Ee,isAsyncMode:function(e){return Qe(e)||Te(e)===Ce},isConcurrentMode:Qe,isContextConsumer:function(e){return Te(e)===we},isContextProvider:function(e){return Te(e)===ke},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===me},isForwardRef:function(e){return Te(e)===Se},isFragment:function(e){return Te(e)===be},isLazy:function(e){return Te(e)===Ne},isMemo:function(e){return Te(e)===Ve},isPortal:function(e){return Te(e)===fe},isProfiler:function(e){return Te(e)===Ie},isStrictMode:function(e){return Te(e)===ye},isSuspense:function(e){return Te(e)===Ee},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===be||e===ve||e===Ie||e===ye||e===Ee||e===xe||"object"==typeof e&&null!==e&&(e.$$typeof===Ne||e.$$typeof===Ve||e.$$typeof===ke||e.$$typeof===we||e.$$typeof===Se||e.$$typeof===Be||e.$$typeof===je||e.$$typeof===De||e.$$typeof===Me)},typeOf:Te},Pe=l(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,x=o,V=d,N=g,M=A,B=i,j=r,D=h,T=!1;function Q(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=x,t.Lazy=V,t.Memo=N,t.Portal=M,t.Profiler=B,t.StrictMode=j,t.Suspense=D,t.isAsyncMode=function(e){return T||(T=!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.")),Q(e)||I(e)===c},t.isConcurrentMode=Q,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}()}),Oe=l(function(e){"production"===process.env.NODE_ENV?e.exports=Ze:e.exports=Pe}),Ue=Object.getOwnPropertySymbols,qe=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable;var Ke=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]))qe.call(n,i)&&(o[i]=n[i]);if(Ue){A=Ue(n);for(var s=0;s<A.length;s++)Je.call(n,A[s])&&(o[A[s]]=n[A[s]])}}return o},Ge="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Re=function(){};if("production"!==process.env.NODE_ENV){var Fe=Ge,Le={},ze=Function.call.bind(Object.prototype.hasOwnProperty);Re=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}}}function We(e,t,n,A,o){if("production"!==process.env.NODE_ENV)for(var r in e)if(ze(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,Fe)}catch(e){i=e}if(!i||i instanceof Error||Re((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 Le)){Le[i.message]=!0;var a=o?o():"";Re("Failed "+n+" type: "+i.message+(null!=a?a:""))}}}We.resetWarningCache=function(){"production"!==process.env.NODE_ENV&&(Le={})};var Ye=We,_e=Function.call.bind(Object.prototype.hasOwnProperty),He=function(){};function Xe(){return null}"production"!==process.env.NODE_ENV&&(He=function(e){var t="Warning: "+e;"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(e){}});var $e=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(Xe),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+"]",Ge);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 Oe.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(_e(s,c)){var u=e(s,c,A,o,r+"."+c,Ge);if(u instanceof Error)return u}return null})},oneOf:function(e){if(!Array.isArray(e))return"production"!==process.env.NODE_ENV&&He(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."),Xe;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&&He("Invalid argument supplied to oneOfType, expected an instance of array."),Xe;for(var t=0;t<e.length;t++){var n=e[t];if("function"!=typeof n)return He("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+h(n)+" at index "+t+"."),Xe}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,Ge))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,Ge);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=Ke({},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,Ge);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!==Ge){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&&(He("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=Ye,o.resetWarningCache=Ye.resetWarningCache,o.PropTypes=o,o};function et(){}function tt(){}tt.resetWarningCache=et;var nt=l(function(e){if("production"!==process.env.NODE_ENV){var t=Oe;e.exports=$e(t.isElement,!0)}else e.exports=function(){function e(e,t,n,A,o,r){if(r!==Ge){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:tt,resetWarningCache:et};return n.PropTypes=n,n}()});const At=["white","black"],ot=["a","b","c","d","e","f","g","h"],rt=["1","2","3","4","5","6","7","8"],it=[...rt].reverse(),st=Array.prototype.concat(...ot.map(e=>rt.map(t=>e+t))),at=e=>st[8*e[0]+e[1]],ct=e=>[e.charCodeAt(0)-97,e.charCodeAt(1)-49],lt=st.map(ct);const ut=()=>{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}}},ht=e=>"white"===e?"black":"white",pt=(e,t)=>{const n=e[0]-t[0],A=e[1]-t[1];return n*n+A*A},gt=(e,t)=>e.role===t.role&&e.color===t.color,dt=(e,t,n,A)=>[(t?e[0]:7-e[0])*n,(t?7-e[1]:e[1])*A],mt=e=>{const t=e.width/8,n=e.height/8;return(e,A)=>dt(e,A,t,n)},ft=(e,t)=>dt(e,t,100,100),bt=(e,t)=>{e.style.transform=`translate(${t[0]}px,${t[1]}px)`},yt=(e,t)=>{e.style.transform=`translate(${t[0]}%,${t[1]}%)`},It=(e,t)=>{e.style.visibility=t?"visible":"hidden"},kt=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},wt=e=>2===e.buttons||2===e.button,Ct=(e,t)=>{const n=document.createElement(e);return t&&(n.className=t),n};function vt(e,t,n){const A=ct(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 St(e,t){return Math.abs(e-t)}const Et=(e,t,n,A)=>{const o=St(e,n),r=St(t,A);return 1===o&&2===r||2===o&&1===r},xt=(e,t,n,A)=>St(e,n)===St(t,A),Vt=(e,t,n,A)=>e===n||t===A,Nt=(e,t,n,A)=>xt(e,t,n,A)||Vt(e,t,n,A);function Mt(e,t,n){const A=e.get(t);if(!A)return[];const o=ct(t),r=A.role,i="pawn"===r?(s=A.color,(e,t,n,A)=>St(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?Et:"bishop"===r?xt:"rook"===r?Vt:"queen"===r?Nt:function(e,t,n){return(A,o,r,i)=>St(A,r)<2&&St(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(ct(o)[0]);return A}(e,A.color),n);var s;return lt.filter(e=>(o[0]!==e[0]||o[1]!==e[1])&&i(o[0],o[1],e[0],e[1])).map(at)}function Bt(e,...t){e&&setTimeout(()=>e(...t),1)}function jt(e){e.premovable.current&&(e.premovable.current=void 0,Bt(e.premovable.events.unset))}function Dt(e){const t=e.predroppable;t.current&&(t.current=void 0,Bt(t.events.unset))}function Tt(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&&Jt(e),Bt(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=ct(t),r=ct(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=at([7,r[1]]):2===r[0]&&(n=at([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(at([6,r[1]]),A),e.pieces.set(at([5,r[1]]),i)):(e.pieces.set(at([2,r[1]]),A),e.pieces.set(at([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,Bt(e.events.change),r||!0}function Qt(e,t,n,A){if(e.pieces.has(n)){if(!A)return!1;e.pieces.delete(n)}return Bt(e.events.dropNewPiece,t,n),e.pieces.set(n,t),e.lastMove=[n],e.check=void 0,Bt(e.events.change),e.movable.dests=void 0,e.turnColor=ht(e.turnColor),!0}function Zt(e,t,n){const A=Tt(e,t,n);return A&&(e.movable.dests=void 0,e.turnColor=ht(e.turnColor),e.animation.current=void 0),A}function Pt(e,t,n){if(Gt(e,t,n)){const A=Zt(e,t,n);if(A){const o=e.hold.stop();Jt(e);const r={premove:!1,ctrlKey:e.stats.ctrlKey,holdTime:o};return!0!==A&&(r.captured=A),Bt(e.movable.events.after,t,n,r),!0}}else if(function(e,t,n){return t!==n&&Rt(e,t)&&Mt(e.pieces,t,e.premovable.castle).includes(n)}(e,t,n))return function(e,t,n,A){Dt(e),e.premovable.current=[t,n],Bt(e.premovable.events.set,t,n,A)}(e,t,n,{ctrlKey:e.stats.ctrlKey}),Jt(e),!0;return Jt(e),!1}function Ot(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),Qt(e,o,n,A),Bt(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){jt(e),e.predroppable.current={role:t,key:n},Bt(e.predroppable.events.set,t,n)}(e,o.role,n):(jt(e),Dt(e)),e.pieces.delete(t),Jt(e)}function Ut(e,t,n){if(Bt(e.events.select,t),e.selected){if(e.selected===t&&!e.draggable.enabled)return Jt(e),void e.hold.cancel();if((e.selectable.enabled||n)&&e.selected!==t&&Pt(e,e.selected,t))return void(e.stats.dragged=!1)}(Kt(e,t)||Rt(e,t))&&(qt(e,t),e.hold.start())}function qt(e,t){e.selected=t,Rt(e,t)?e.premovable.dests=Mt(e.pieces,t,e.premovable.castle):e.premovable.dests=void 0}function Jt(e){e.selected=void 0,e.premovable.dests=void 0,e.hold.cancel()}function Kt(e,t){const n=e.pieces.get(t);return!!n&&("both"===e.movable.color||e.movable.color===n.color&&e.turnColor===n.color)}function Gt(e,t,n){var A,o;return t!==n&&Kt(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 Rt(e,t){const n=e.pieces.get(t);return!!n&&e.premovable.enabled&&e.movable.color===n.color&&e.turnColor!==n.color}function Ft(e){const t=e.premovable.current;if(!t)return!1;const n=t[0],A=t[1];let o=!1;if(Gt(e,n,A)){const t=Zt(e,n,A);if(t){const r={premove:!0};!0!==t&&(r.captured=t),Bt(e.movable.events.after,n,A,r),o=!0}}return jt(e),o}function Lt(e){jt(e),Dt(e),Jt(e)}function zt(e){e.movable.color=e.movable.dests=e.animation.current=void 0,Lt(e)}function Wt(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?at([A,o]):void 0}function Yt(e){return"white"===e.orientation}const _t="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR",Ht={p:"pawn",r:"rook",n:"knight",b:"bishop",q:"queen",k:"king"},Xt={pawn:"p",rook:"r",knight:"n",bishop:"b",queen:"q",king:"k"};function $t(e){"start"===e&&(e=_t);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(at([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(at([A,n]),{role:Ht[e],color:o===e?"black":"white"}),++A}}}return t}function en(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=[]),tn(e,t),t.fen&&(e.pieces=$t(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&&qt(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 tn(e,t){for(const n in t)nn(e[n])&&nn(t[n])?tn(e[n],t[n]):e[n]=t[n]}function nn(e){return"object"==typeof e}function An(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,rn(t,n));for(const e of st)a=t.pieces.get(e),c=s.get(e),a?c?gt(a,c.piece)||(r.push(c),i.push(rn(e,a))):i.push(rn(e,a)):c&&r.push(c);for(const e of i)c=sn(e,r.filter(t=>gt(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||an(t,performance.now())}else t.dom.redraw();return A}(e,t):on(e,t)}function on(e,t){const n=e(t);return t.dom.redraw(),n}function rn(e,t){return{key:e,pos:ct(e),piece:t}}function sn(e,t){return t.sort((t,n)=>pt(e.pos,t.pos)-pt(e.pos,n.pos))[0]}function an(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())=>an(e,t))}}const cn=["green","red","blue","yellow"];function ln(e,t){if(t.touches&&t.touches.length>1)return;t.stopPropagation(),t.preventDefault(),t.ctrlKey?Jt(e):Lt(e);const n=kt(t),A=Wt(n,Yt(e),e.dom.bounds());A&&(e.drawable.current={orig:A,pos:n,brush:dn(t),snapToValidMove:e.drawable.defaultSnapToValidMove},un(e))}function un(e){requestAnimationFrame(()=>{const t=e.drawable.current;if(t){const n=Wt(t.pos,Yt(e),e.dom.bounds());n||(t.snapToValidMove=!1);const A=t.snapToValidMove?function(e,t,n,A){const o=ct(e),r=lt.filter(e=>Nt(o[0],o[1],e[0],e[1])||Et(o[0],o[1],e[0],e[1])),i=r.map(e=>vt(at(e),n,A)).map(e=>pt(t,e)),[,s]=i.reduce((e,t,n)=>e[0]<t?e:[t,n],[i[0],0]);return at(r[s])}(t.orig,t.pos,Yt(e),e.dom.bounds()):n;A!==t.mouseSq&&(t.mouseSq=A,t.dest=A!==t.orig?A:void 0,e.dom.redrawNow()),un(e)}})}function hn(e,t){e.drawable.current&&(e.drawable.current.pos=kt(t))}function pn(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);mn(e)}(e.drawable,t),gn(e))}function gn(e){e.drawable.current&&(e.drawable.current=void 0,e.dom.redraw())}function dn(e){var t;const n=(e.shiftKey||e.ctrlKey)&&wt(e),A=e.altKey||e.metaKey||(null===(t=e.getModifierState)||void 0===t?void 0:t.call(e,"AltGraph"));return cn[(n?1:0)+(A?2:0)]}function mn(e){e.onChange&&e.onChange(e.shapes)}function fn(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=kt(t),o=Wt(A,Yt(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(),mn(e.drawable))}(e),!1===t.cancelable||t.touches&&e.movable.color&&!r&&!i&&!function(e,t){const n=Yt(e),A=e.dom.bounds(),o=Math.pow(A.width/8,2);for(const r in e.pieces){const e=vt(r,n,A);if(pt(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&&Gt(e,e.selected,o)?An(e=>Ut(e,o),e):Ut(e,o);const c=e.selected===o,l=Cn(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}`,bt(s,mt(n)(ct(o),Yt(e))),It(s,!0)),bn(e)}else s&&jt(e),a&&Dt(e);e.dom.redraw()}function bn(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&>(A,n.piece)){if(!n.started&&pt(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();bt(n.element,[n.pos[0]-t.left-t.width/16,n.pos[1]-t.top-t.height/16])}}else kn(e);bn(e)})}function yn(e,t){e.draggable.current&&(!t.touches||t.touches.length<2)&&(e.draggable.current.pos=kt(t))}function In(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);jt(e),Dt(e);const A=Wt(kt(t)||n.pos,Yt(e),e.dom.bounds());A&&n.started&&n.orig!==A?n.newPiece?Ot(e,n.orig,A,n.force):(e.stats.ctrlKey=t.ctrlKey,Pt(e,n.orig,A)&&(e.stats.dragged=!0)):n.newPiece?e.pieces.delete(n.orig):e.draggable.deleteOnDropOff&&!A&&(e.pieces.delete(n.orig),Bt(e.events.change)),(n.orig!==n.previouslySelected||n.orig!==A&&A)&&e.selectable.enabled||Jt(e),wn(e),e.draggable.current=void 0,e.dom.redraw()}function kn(e){const t=e.draggable.current;t&&(t.newPiece&&e.pieces.delete(t.orig),e.draggable.current=void 0,Jt(e),wn(e),e.dom.redraw())}function wn(e){const t=e.dom.elements;t.ghost&&It(t.ghost,!1)}function Cn(e,t){let n=e.dom.elements.board.firstChild;for(;n;){if(n.cgKey===t&&"PIECE"===n.tagName)return n;n=n.nextSibling}}function vn(e,t){e.exploding&&(t?e.exploding.stage=t:e.exploding=void 0,e.dom.redraw())}function Sn(e,t){function n(){!function(e){e.orientation=ht(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?An:on)(e=>en(e,t),e)},state:e,getFen:()=>{return t=e.pieces,it.map(e=>ot.map(n=>{const A=t.get(n+e);if(A){const e=Xt[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){An(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?An(e=>Ut(e,t,n),e):e.selected&&(Jt(e),e.dom.redraw())},move(t,n){An(e=>Tt(e,t,n),e)},newPiece(t,n){An(e=>Qt(e,t,n),e)},playPremove(){if(e.premovable.current){if(An(Ft,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)&&Qt(e,{role:n.role,color:e.movable.color},n.key)&&(Bt(e.movable.events.afterNewPiece,n.role,n.key,{premove:!1,predrop:!0}),A=!0);return Dt(e),A}(e,t);return e.dom.redraw(),n}return!1},cancelPremove(){on(jt,e)},cancelPredrop(){on(Dt,e)},cancelMove(){on(e=>{Lt(e),kn(e)},e)},stop(){on(e=>{zt(e),kn(e)},e)},explode(t){!function(e,t){e.exploding={stage:1,keys:t},e.dom.redraw(),setTimeout(()=>{vn(e,2),setTimeout(()=>vn(e,void 0),120)},120)}(e,t)},setAutoShapes(t){on(e=>e.drawable.autoShapes=t,e)},setShapes(t){on(e=>e.drawable.shapes=t,e)},getKeyAtDomPos:t=>Wt(t,Yt(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=kt(n);e.draggable.current={orig:o,piece:t,origPos:r,pos:r,started:!0,element:()=>Cn(e,o),originTarget:n.target,newPiece:!0,force:!!A},bn(e)}(e,t,n,A)},destroy(){zt(e),e.dom.unbind&&e.dom.unbind(),e.dom.destroyed=!0}}}function En(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function xn(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:Nn(e,i,!1,s)}));r&&a.push({shape:r,current:!0,hash:Nn(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=Pn(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(Tn(t))}(A,a,l),Vn(e,a.filter(e=>!e.shape.customSvg),A.brushes,i,u),Vn(e,a.filter(e=>e.shape.customSvg),A.brushes,i,h)}function Vn(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(Dn(e,s,n,A,r))}function Nn({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&&Mn(A),o&&Bn(o),r&&jn(r)].filter(e=>e).join(",")}function Mn(e){return[e.color,e.role,e.scale].filter(e=>e).join(",")}function Bn(e){return""+(e.lineWidth||"")}function jn(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 Dn(e,{shape:t,current:n,hash:A},o,r,i){let s;if(t.customSvg){const n=Zn(ct(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=Qn(En("g"),{transform:`translate(${s},${a})`}),l=Qn(En("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=qn(t,A),r=A.width/8*(n.scale||1),i=n.color[0]+("knight"===n.role?"n":n.role[0]).toUpperCase();return Qn(En("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,Zn(ct(t.orig),e.orientation),t.piece,i);else{const A=Zn(ct(t.orig),e.orientation);if(t.dest){let a=o[t.brush];t.modifiers&&(a=Pn(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=qn(t,r),a=qn(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 Qn(En("line"),{stroke:e.color,"stroke-width":On(e,A,r),"stroke-linecap":"round","marker-end":"url(#arrowhead-"+e.key+")",opacity:Un(e,A),x1:s[0],y1:s[1],x2:a[0]-h,y2:a[1]-p})}(a,A,Zn(ct(t.dest),e.orientation),n,(r.get(t.dest)||0)>1,i)}else s=function(e,t,n,A){const o=qn(t,A),r=function(e){const t=e.width/512;return[3*t,4*t]}(A),i=(A.width+A.height)/32;return Qn(En("circle"),{stroke:e.color,"stroke-width":r[n?0:1],fill:"none",opacity:Un(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 Tn(e){const t=Qn(En("marker"),{id:"arrowhead-"+e.key,orient:"auto",markerWidth:4,markerHeight:8,refX:2.05,refY:2.01});return t.appendChild(Qn(En("path"),{d:"M0,0 V4 L3,2 Z",fill:e.color})),t.setAttribute("cgKey",e.key),t}function Qn(e,t){for(const n in t)e.setAttribute(n,t[n]);return e}function Zn(e,t){return"white"===t?e:[7-e[0],7-e[1]]}function Pn(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 On(e,t,n){return(e.lineWidth||10)*(t?.85:1)/512*n.width}function Un(e,t){return(e.opacity||1)*(t?.9:1)}function qn(e,t){return[(e[0]+.5)*t.width/8,(7.5-e[1])*t.height/8]}function Jn(e,t){const n=Ct("coords",t);let A;for(const t of e)A=Ct("coord"),A.textContent=t,n.appendChild(A);return n}function Kn(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?kn(e):e.drawable.current?gn(e):t.shiftKey||wt(t)?e.drawable.enabled&&ln(e,t):e.viewOnly||(e.dropmode.active?function(e,t){if(!e.dropmode.active)return;jt(e),Dt(e);const n=e.dropmode.piece;if(n){e.pieces.set("a0",n);const A=kt(t),o=A&&Wt(A,Yt(e),e.dom.bounds());o&&Ot(e,"a0",o)}e.dom.redraw()}(e,t):fn(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 Gn(e,t,n,A){return e.addEventListener(t,n,A),()=>e.removeEventListener(t,n,A)}function Rn(e,t,n){return A=>{e.drawable.current?e.drawable.enabled&&n(e,A):e.viewOnly||t(e,A)}}function Fn(e){const t=Yt(e),n=e.dom.relative?ft:mt(e.dom.bounds()),A=e.dom.relative?yt:bt,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)Hn(n,t,"last-move");e.check&&e.highlight.check&&Hn(n,e.check,"check");if(e.selected&&(Hn(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)Hn(n,t,"move-dest"+(e.pieces.has(t)?" oc":""));const o=e.premovable.dests;if(o)for(const t of o)Hn(n,t,"premove-dest"+(e.pieces.has(t)?" oc":""))}const A=e.premovable.current;if(A)for(const e of A)Hn(n,e,"current-premove");else e.predroppable.current&&Hn(n,e.predroppable.current.key,"current-premove");const o=e.exploding;if(o)for(const e of o.keys)Hn(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,Ln(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(ct(d),t)),m.cgDragging=!1),!I&&m.cgFading&&(m.cgFading=!1,m.classList.remove("fading")),f){if(y&&m.cgAnimating&&b===_n(f)){const e=ct(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(ct(d),t)),e.addPieceZIndex&&(m.style.zIndex=Yn(ct(d),t)));b!==_n(f)||I&&m.cgFading?I&&b===_n(I)?(m.classList.add("fading"),m.cgFading=!0):Xn(p,b,m):u.add(d)}else Xn(p,b,m);else if(zn(m)){const e=m.className;l.get(d)===e?h.add(d):Xn(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(ct(e),t);if(v)v.cgKey=e,A(v,i);else{const t=Ct("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(_n(a)),w=k&&k.pop(),w){w.cgKey=i,w.cgFading&&(w.classList.remove("fading"),w.cgFading=!1);const o=ct(i);e.addPieceZIndex&&(w.style.zIndex=Yn(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=_n(a),s=Ct("piece",r),c=ct(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=Yn(c,t)),o.appendChild(s)}for(const t of p.values())Wn(e,t);for(const t of g.values())Wn(e,t)}function Ln(e){return"PIECE"===e.tagName}function zn(e){return"SQUARE"===e.tagName}function Wn(e,t){for(const n of t)e.dom.elements.board.removeChild(n)}function Yn(e,t){let n=2+8*e[1]+(7-e[0]);return t&&(n=67-n),n+""}function _n(e){return`${e.color} ${e.role}`}function Hn(e,t,n){const A=e.get(t);A?e.set(t,`${A} ${n}`):e.set(t,n)}function Xn(e,t,n){const A=e.get(t);A?A.push(n):e.set(t,[n])}function $n(e,t){const n={pieces:$t(_t),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:ut()};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 At)e.classList.toggle("orientation-"+n,t.orientation===n);e.classList.toggle("manipulable",!t.viewOnly);const A=Ct("cg-helper");e.appendChild(A);const o=Ct("cg-container");A.appendChild(o);const r=Ct("cg-board");let i,s,a;if(o.appendChild(r),t.drawable.visible&&!n&&(i=Qn(En("svg"),{class:"cg-shapes"}),i.appendChild(En("defs")),i.appendChild(En("g")),s=Qn(En("svg"),{class:"cg-custom-svgs"}),s.appendChild(En("g")),o.appendChild(i),o.appendChild(s)),t.coordinates){const e="black"===t.orientation?" black":"";o.appendChild(Jn(rt,"ranks"+e)),o.appendChild(Jn(ot,"files"+e))}return t.draggable.showGhost&&!n&&(a=Ct("piece","ghost"),It(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=>{Fn(a),!e&&o.svg&&xn(a,o.svg,o.customSvg)},s=()=>{r.clear(),function(e){if(e.dom.relative)return;const t=Yt(e),n=mt(e.dom.bounds());let A=e.dom.elements.board.firstChild;for(;A;)(Ln(A)&&!A.cgAnimating||zn(A))&&bt(A,n(ct(A.cgKey),t)),A=A.nextSibling}(a),o.svg&&xn(a,o.svg,o.customSvg)},a=n;return a.dom={elements:o,bounds:r,redraw:eA(i),redrawNow:i,unbind:t,relative:A},a.drawable.prevSvgHash="",i(!1),Kn(a,s),t||(a.dom.unbind=function(e,t){const n=[];if(e.dom.relative||!e.resizable||"ResizeObserver"in window||n.push(Gn(document.body,"chessground.resize",t)),!e.viewOnly){const t=Rn(e,yn,hn),A=Rn(e,In,pn);for(const e of["touchmove","mousemove"])n.push(Gn(document,e,t));for(const e of["touchend","mouseup"])n.push(Gn(document,e,A));const o=()=>e.dom.bounds.clear();n.push(Gn(document,"scroll",o,{capture:!0,passive:!0})),n.push(Gn(window,"resize",o,{passive:!0}))}return()=>n.forEach(e=>e())}(a,s)),a.events.insert&&a.events.insert(o),a}return en(n,t||{}),Sn(A(),A)}function eA(e){let t=!1;return()=>{t||(t=!0,requestAnimationFrame(()=>{e(),t=!1}))}}class tA extends o.default.Component{buildConfigFromProps(e){const t={events:{}};return Object.keys(tA.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=$n(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=$n(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.jsx("div",{ref:e=>this.el=e,...t})}}ge(tA,"types",{width:nt.oneOfType([nt.string,nt.number]),height:nt.oneOfType([nt.string,nt.number]),fen:nt.string,orientation:nt.string,turnColor:nt.string,check:nt.string,lastMove:nt.array,selected:nt.string,coordinates:nt.bool,autoCastle:nt.bool,viewOnly:nt.bool,disableContextMenu:nt.bool,resizable:nt.bool,addPieceZIndex:nt.bool,hightlight:nt.object,animation:nt.object,movable:nt.object,premovable:nt.object,predroppable:nt.object,draggable:nt.object,selectable:nt.object,onChange:nt.func,onMove:nt.func,onDropNewPiece:nt.func,onSelect:nt.func,items:nt.object,drawable:nt.object}),ge(tA,"defaultProps",{coordinates:!1,resizable:!0,hightlight:{lastMove:!0,check:!0}});const nA=e=>{try{new Audio(e).play()}catch{return()=>{}}},AA=e=>{if("silent"===e)return!1;switch(e){case"lisp":return nA("data:audio/ogg;base64,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");case"piano":return nA("data:audio/ogg;base64,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");case"sfx":return nA("data:audio/ogg;base64,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");default:return nA("data:audio/ogg;base64,T2dnUwACAAAAAAAAAAAIYSkIAAAAAH4uDGIBHgF2b3JiaXMAAAAAAUSsAAAAAAAAAHcBAAAAAAC4AU9nZ1MAAAAAAAAAAAAACGEpCAEAAACrxufeEKj//////////////////8kDdm9yYmlzNAAAAFhpcGguT3JnIGxpYlZvcmJpcyBJIDIwMjAwNzA0IChSZWR1Y2luZyBFbnZpcm9ubWVudCkDAAAAHgAAAFRJVExFPVdvb2RlbiBwaWVjZSAtIHNoYXJwIGhpdCcAAABDb3B5cmlnaHQ9Q29weXJpZ2h0IDIwMDAsIFNvdW5kZG9ncy5jb20TAAAAU29mdHdhcmU9QXdDKysgdjIuMQEFdm9yYmlzKUJDVgEACAAAADFMIMWA0JBVAAAQAABgJCkOk2ZJKaWUoSh5mJRISSmllMUwiZiUicUYY4wxxhhjjDHGGGOMIDRkFQAABACAKAmOo+ZJas45ZxgnjnKgOWlOOKcgB4pR4DkJwvUmY26mtKZrbs4pJQgNWQUAAAIAQEghhRRSSCGFFGKIIYYYYoghhxxyyCGnnHIKKqigggoyyCCDTDLppJNOOumoo4466ii00EILLbTSSkwx1VZjrr0GXXxzzjnnnHPOOeecc84JQkNWAQAgAAAEQgYZZBBCCCGFFFKIKaaYcgoyyIDQkFUAACAAgAAAAABHkRRJsRTLsRzN0SRP8ixREzXRM0VTVE1VVVVVdV1XdmXXdnXXdn1ZmIVbuH1ZuIVb2IVd94VhGIZhGIZhGIZh+H3f933f930gNGQVACABAKAjOZbjKaIiGqLiOaIDhIasAgBkAAAEACAJkiIpkqNJpmZqrmmbtmirtm3LsizLsgyEhqwCAAABAAQAAAAAAKBpmqZpmqZpmqZpmqZpmqZpmqZpmmZZlmVZlmVZlmVZlmVZlmVZlmVZlmVZlmVZlmVZlmVZlmVZlmVZQGjIKgBAAgBAx3Ecx3EkRVIkx3IsBwgNWQUAyAAACABAUizFcjRHczTHczzHczxHdETJlEzN9EwPCA1ZBQAAAgAIAAAAAABAMRzFcRzJ0SRPUi3TcjVXcz3Xc03XdV1XVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYHQkFUAAAQAACGdZpZqgAgzkGEgNGQVAIAAAAAYoQhDDAgNWQUAAAQAAIih5CCa0JrzzTkOmuWgqRSb08GJVJsnuamYm3POOeecbM4Z45xzzinKmcWgmdCac85JDJqloJnQmnPOeRKbB62p0ppzzhnnnA7GGWGcc85p0poHqdlYm3POWdCa5qi5FJtzzomUmye1uVSbc84555xzzjnnnHPOqV6czsE54Zxzzonam2u5CV2cc875ZJzuzQnhnHPOOeecc84555xzzglCQ1YBAEAAAARh2BjGnYIgfY4GYhQhpiGTHnSPDpOgMcgppB6NjkZKqYNQUhknpXSC0JBVAAAgAACEEFJIIYUUUkghhRRSSCGGGGKIIaeccgoqqKSSiirKKLPMMssss8wyy6zDzjrrsMMQQwwxtNJKLDXVVmONteaec645SGultdZaK6WUUkoppSA0ZBUAAAIAQCBkkEEGGYUUUkghhphyyimnoIIKCA1ZBQAAAgAIAAAA8CTPER3RER3RER3RER3RER3P8RxREiVREiXRMi1TMz1VVFVXdm1Zl3Xbt4Vd2HXf133f141fF4ZlWZZlWZZlWZZlWZZlWZZlCUJDVgEAIAAAAEIIIYQUUkghhZRijDHHnINOQgmB0JBVAAAgAIAAAAAAR3EUx5EcyZEkS7IkTdIszfI0T/M00RNFUTRNUxVd0RV10xZlUzZd0zVl01Vl1XZl2bZlW7d9WbZ93/d93/d93/d93/d939d1IDRkFQAgAQCgIzmSIimSIjmO40iSBISGrAIAZAAABACgKI7iOI4jSZIkWZImeZZniZqpmZ7pqaIKhIasAgAAAQAEAAAAAACgaIqnmIqniIrniI4oiZZpiZqquaJsyq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7rukBoyCoAQAIAQEdyJEdyJEVSJEVyJAcIDVkFAMgAAAgAwDEcQ1Ikx7IsTfM0T/M00RM90TM9VXRFFwgNWQUAAAIACAAAAAAAwJAMS7EczdEkUVIt1VI11VItVVQ9VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV1TRN0zSB0JCVAAAZAAAjQQYZhBCKcpBCbj1YCDHmJAWhOQahxBiEpxAzDDkNInSQQSc9uJI5wwzz4FIoFURMg40lN44gDcKmXEnlOAhCQ1YEAFEAAIAxyDHEGHLOScmgRM4xCZ2UyDknpZPSSSktlhgzKSWmEmPjnKPSScmklBhLip2kEmOJrQAAgAAHAIAAC6HQkBUBQBQAAGIMUgophZRSzinmkFLKMeUcUko5p5xTzjkIHYTKMQadgxAppRxTzinHHITMQeWcg9BBKAAAIMABACDAQig0ZEUAECcA4HAkz5M0SxQlSxNFzxRl1xNN15U0zTQ1UVRVyxNV1VRV2xZNVbYlTRNNTfRUVRNFVRVV05ZNVbVtzzRl2VRV3RZV1bZl2xZ+V5Z13zNNWRZV1dZNVbV115Z9X9ZtXZg0zTQ1UVRVTRRV1VRV2zZV17Y1UXRVUVVlWVRVWXZlWfdVV9Z9SxRV1VNN2RVVVbZV2fVtVZZ94XRVXVdl2fdVWRZ+W9eF4fZ94RhV1dZN19V1VZZ9YdZlYbd13yhpmmlqoqiqmiiqqqmqtm2qrq1bouiqoqrKsmeqrqzKsq+rrmzrmiiqrqiqsiyqqiyrsqz7qizrtqiquq3KsrCbrqvrtu8LwyzrunCqrq6rsuz7qizruq3rxnHrujB8pinLpqvquqm6um7runHMtm0co6rqvirLwrDKsu/rui+0dSFRVXXdlF3jV2VZ921fd55b94WybTu/rfvKceu60vg5z28cubZtHLNuG7+t+8bzKz9hOI6lZ5q2baqqrZuqq+uybivDrOtCUVV9XZVl3zddWRdu3zeOW9eNoqrquirLvrDKsjHcxm8cuzAcXds2jlvXnbKtC31jyPcJz2vbxnH7OuP2daOvDAnHjwAAgAEHAIAAE8pAoSErAoA4AQAGIecUUxAqxSB0EFLqIKRUMQYhc05KxRyUUEpqIZTUKsYgVI5JyJyTEkpoKZTSUgehpVBKa6GU1lJrsabUYu0gpBZKaS2U0lpqqcbUWowRYxAy56RkzkkJpbQWSmktc05K56CkDkJKpaQUS0otVsxJyaCj0kFIqaQSU0mptVBKa6WkFktKMbYUW24x1hxKaS2kEltJKcYUU20txpojxiBkzknJnJMSSmktlNJa5ZiUDkJKmYOSSkqtlZJSzJyT0kFIqYOOSkkptpJKTKGU1kpKsYVSWmwx1pxSbDWU0lpJKcaSSmwtxlpbTLV1EFoLpbQWSmmttVZraq3GUEprJaUYS0qxtRZrbjHmGkppraQSW0mpxRZbji3GmlNrNabWam4x5hpbbT3WmnNKrdbUUo0txppjbb3VmnvvIKQWSmktlNJiai3G1mKtoZTWSiqxlZJabDHm2lqMOZTSYkmpxZJSjC3GmltsuaaWamwx5ppSi7Xm2nNsNfbUWqwtxppTS7XWWnOPufVWAADAgAMAQIAJZaDQkJUAQBQAAEGIUs5JaRByzDkqCULMOSepckxCKSlVzEEIJbXOOSkpxdY5CCWlFksqLcVWaykptRZrLQAAoMABACDABk2JxQEKDVkJAEQBACDGIMQYhAYZpRiD0BikFGMQIqUYc05KpRRjzknJGHMOQioZY85BKCmEUEoqKYUQSkklpQIAAAocAAACbNCUWByg0JAVAUAUAABgDGIMMYYgdFQyKhGETEonqYEQWgutddZSa6XFzFpqrbTYQAithdYySyXG1FpmrcSYWisAAOzAAQDswEIoNGQlAJAHAEAYoxRjzjlnEGLMOegcNAgx5hyEDirGnIMOQggVY85BCCGEzDkIIYQQQuYchBBCCKGDEEIIpZTSQQghhFJK6SCEEEIppXQQQgihlFIKAAAqcAAACLBRZHOCkaBCQ1YCAHkAAIAxSjkHoZRGKcYglJJSoxRjEEpJqXIMQikpxVY5B6GUlFrsIJTSWmw1dhBKaS3GWkNKrcVYa64hpdZirDXX1FqMteaaa0otxlprzbkAANwFBwCwAxtFNicYCSo0ZCUAkAcAgCCkFGOMMYYUYoox55xDCCnFmHPOKaYYc84555RijDnnnHOMMeecc845xphzzjnnHHPOOeecc44555xzzjnnnHPOOeecc84555xzzgkAACpwAAAIsFFkc4KRoEJDVgIAqQAAABFWYowxxhgbCDHGGGOMMUYSYowxxhhjbDHGGGOMMcaYYowxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGFtrrbXWWmuttdZaa6211lprrQBAvwoHAP8HG1ZHOCkaCyw0ZCUAEA4AABjDmHOOOQYdhIYp6KSEDkIIoUNKOSglhFBKKSlzTkpKpaSUWkqZc1JSKiWlllLqIKTUWkottdZaByWl1lJqrbXWOgiltNRaa6212EFIKaXWWostxlBKSq212GKMNYZSUmqtxdhirDGk0lJsLcYYY6yhlNZaazHGGGstKbXWYoy1xlprSam11mKLNdZaCwDgbnAAgEiwcYaVpLPC0eBCQ1YCACEBAARCjDnnnHMQQgghUoox56CDEEIIIURKMeYcdBBCCCGEjDHnoIMQQgghhJAx5hx0EEIIIYQQOucchBBCCKGEUkrnHHQQQgghlFBC6SCEEEIIoYRSSikdhBBCKKGEUkopJYQQQgmllFJKKaWEEEIIoYQSSimllBBCCKWUUkoppZQSQgghlFJKKaWUUkIIoZRQSimllFJKCCGEUkoppZRSSgkhhFBKKaWUUkopIYQSSimllFJKKaUAAIADBwCAACPoJKPKImw04cIDUGjISgCADAAAcdhq6ynWyCDFnISWS4SQchBiLhFSijlHsWVIGcUY1ZQxpRRTUmvonGKMUU+dY0oxw6yUVkookYLScqy1dswBAAAgCAAwECEzgUABFBjIAIADhAQpAKCwwNAxXAQE5BIyCgwKx4Rz0mkDABCEyAyRiFgMEhOqgaJiOgBYXGDIB4AMjY20iwvoMsAFXdx1IIQgBCGIxQEUkICDE2544g1PuMEJOkWlDgIAAAAAAAEAHgAAkg0gIiKaOY4Ojw+QEJERkhKTE5QAAAAAAOABgA8AgCQFiIiIZo6jw+MDJERkhKTE5AQlAAAAAAAAAAAACAgIAAAAAAAEAAAACAhPZ2dTAATBGAAAAAAAAAhhKQgCAAAAGly5fAkvMNbTzNDMycC8gs3D8+YPldxz98FFrEO8c/QSGyH3AP15jfmdTJU2/NMoL9mfZo6+xmWXT9lBAtyC2Q/bl7xUndsyZV8Xynnn49/0Mcm2A+tliMtK7ae1dpxZDy320PAJBZLvq45OAPpolOhjZK546CDc4fVp8nSew87TOXTTwbSCZFkrrY2UdEBn41KY3b5k7l9PA+Fq/XJ2Zvv13/VVtq3m57NSULg9PquKi8yWS0cak7HtMP5pZdnoBXJqKowX+O2/f6LSnO70nQipCrApufb1/rGOqwoASkm0kaf3auOD9n/99SLXZc9gUeKhgEPT3F3q5WXiB6NWme1mv9d7UJ8sDvbLLv1OxUB2W3Xx2YvpE9ncIUyyr/iqrL73lS1Ch1Bchas38EL62syrH/jzDPbJVIDFkUkKPIiTBgBeSFzkXunoeS1qooUnvrc5YMObWcBY1RQxyppJSzHJe+p14Z935rupePz+kV0ZX/73It9lM2Wh8LPEw0iShSDs67jIPS8pqQsFzxjgoyIwQPuDfTanjXIfok9Hp3GsCpJBmDLrQq2z+pphlmpTJVMeb5rTSFtqJym9ZfkJg4uROC9+JB+m6xHHknBRySB+4s3Wal4jXRqNYcRs30cjrsH8VtPApEUBXFdky02fBTq5ZQrMw4LC/YRoNMvItDEDpbVZnB0WLbWxk38wkJoGLQAMVMAG3jY8UKoAFQD2G4oE3UiyHZj6Mbbl6WhIphDkZghlaPf3vCfIYehtPsuH5eb50wtZk3YhK3LPGXMcg122XVEgAio9HKGc70Pm3bW3L/6dw3Ukx6NEjPrqIj8B7JDxqr9sl1U8UGFcWyF33Ud/qm9ddH2mKaJ4kk3VfIl+QL4V6XUjgcsonE8/LY9gX0D4byIGpdySXh6E6OG6FSk2aec6Z30Tmf0LOd4JByZzuVihFn3TxXJBAvpOGPbHAb1gVJUlk2gKJ9o+iSbBG9gAvjXsZGEFHxJIyz7DO2rbBEiTir6p8oVjivPb9669cnWTzqc/zUz7wzhqe3f448pAjVFTD+fIyqWQrSnM2VHDrxc6aRd/c3R3S5g7rpACFwWo3JEp711QbZQRHAQFJTCyq10K6xTQCf0dCtxcxKxIqV6GFzu9ydw5IbVrfLMo5YmIUNnSnB+W/i5VWuns6nV6ZP2AhPp0jDBd6AajGb9ZKjNDZxKHgcJAvnaIozmgwpQwRZ89wHTtOVHzvIPuplh6yBXLSwGE5XOvFB1dB8qbAH417NSvAwSAfV+D4UgQnsS0scSQ1U5R8PWDqZmXqn+dd/rywW13prfmJSRl2VdL/pUx3svlqmKAe/7eLd0/cwxKBBsupOMKC81KarBtE1C3i69Xx/XWhPcw0+F7YKvsuwVGdwleJD5JogD7zXZLH3dWm8jSEemzH7C6QAjB/ujgkxT8KnfPJG/cbbuvPzMcsfJwx6uHhszs0DalsVdqNtZ110ezrJ/cbLdNZbJDvygHG2wIKTQ1S0DzTKGe7u9gwpsukC4xEsFwsEHwAH41jKleFIEBzGf5QKpxAGO4AhVJFppkCm7tvbQ7nv4kNd+ms/tm+K3zq7QWn5TMVnxpk408Gf7RPBGuralHopheeWWhAgfhxX4LnrGMJcV1tnumJ1HWGKGXVWhPhw4tiwVGx6aaqCOzeEgXnCajzXtf3a4DDrKBXa4oqUfLnZgmlYtCvn4N75rBDC31IZ6qLoj414XtwkSlbNf2KXuZlauv+x9sfVfVrYBlE9BMeI1cNO8w/1hb3swd+lp+L7jmoFTqjqUQ+wqNBJ5lvJ3lDQG0gZsDVrd09ROoqoqJ0E4oCuATZXI42eYvJV598dX/Vy480GX68JcPTk8fPjyjXvJsJc/251/HQMFXJ7q4KP248OKiFOCvUo9Lnq0CJgDTx9XnJbgdvYhKKGnestaY7lUgWGL66yJo8jJb8myllGAAsljKRO5hCgMXE+TPXgGcU8zMtF9gHaDxALxyfhU/XtowhdfzALwSCPyZCKaZp7Kn5MnUeoZjs7qnAHeRn1/PwLMbAMem6+MDAA==")}};var oA="object"==typeof global&&global&&global.Object===Object&&global,rA="object"==typeof self&&self&&self.Object===Object&&self,iA=oA||rA||Function("return this")(),sA=iA.Symbol,aA=Object.prototype,cA=aA.hasOwnProperty,lA=aA.toString,uA=sA?sA.toStringTag:void 0;var hA=Object.prototype.toString;var pA=sA?sA.toStringTag:void 0;function gA(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":pA&&pA in Object(e)?function(e){var t=cA.call(e,uA),n=e[uA];try{e[uA]=void 0;var A=!0}catch(e){}var o=lA.call(e);return A&&(t?e[uA]=n:delete e[uA]),o}(e):function(e){return hA.call(e)}(e)}function dA(e){return null!=e&&"object"==typeof e}var mA=Array.isArray;function fA(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function bA(e){if(!fA(e))return!1;var t=gA(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}var yA,IA=iA["__core-js_shared__"],kA=(yA=/[^.]+$/.exec(IA&&IA.keys&&IA.keys.IE_PROTO||""))?"Symbol(src)_1."+yA:"";var wA=Function.prototype.toString;function CA(e){if(null!=e){try{return wA.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var vA=/^\[object .+?Constructor\]$/,SA=Function.prototype,EA=Object.prototype,xA=SA.toString,VA=EA.hasOwnProperty,NA=RegExp("^"+xA.call(VA).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function MA(e){return!(!fA(e)||(t=e,kA&&kA in t))&&(bA(e)?NA:vA).test(CA(e));var t}function BA(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return MA(n)?n:void 0}var jA=BA(iA,"WeakMap");function DA(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}var TA=Object.prototype;function QA(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||TA)}function ZA(e){return dA(e)&&"[object Arguments]"==gA(e)}var PA=Object.prototype,OA=PA.hasOwnProperty,UA=PA.propertyIsEnumerable,qA=ZA(function(){return arguments}())?ZA:function(e){return dA(e)&&OA.call(e,"callee")&&!UA.call(e,"callee")};var JA="object"==typeof exports&&exports&&!exports.nodeType&&exports,KA=JA&&"object"==typeof module&&module&&!module.nodeType&&module,GA=KA&&KA.exports===JA?iA.Buffer:void 0,RA=(GA?GA.isBuffer:void 0)||function(){return!1},FA={};FA["[object Float32Array]"]=FA["[object Float64Array]"]=FA["[object Int8Array]"]=FA["[object Int16Array]"]=FA["[object Int32Array]"]=FA["[object Uint8Array]"]=FA["[object Uint8ClampedArray]"]=FA["[object Uint16Array]"]=FA["[object Uint32Array]"]=!0,FA["[object Arguments]"]=FA["[object Array]"]=FA["[object ArrayBuffer]"]=FA["[object Boolean]"]=FA["[object DataView]"]=FA["[object Date]"]=FA["[object Error]"]=FA["[object Function]"]=FA["[object Map]"]=FA["[object Number]"]=FA["[object Object]"]=FA["[object RegExp]"]=FA["[object Set]"]=FA["[object String]"]=FA["[object WeakMap]"]=!1;var LA,zA="object"==typeof exports&&exports&&!exports.nodeType&&exports,WA=zA&&"object"==typeof module&&module&&!module.nodeType&&module,YA=WA&&WA.exports===zA&&oA.process,_A=function(){try{var e=WA&&WA.require&&WA.require("util").types;return e||YA&&YA.binding&&YA.binding("util")}catch(e){}}(),HA=_A&&_A.isTypedArray,XA=HA?(LA=HA,function(e){return LA(e)}):function(e){return dA(e)&&DA(e.length)&&!!FA[gA(e)]};var $A=function(e,t){return function(n){return e(t(n))}}(Object.keys,Object),eo=$A,to=Object.prototype.hasOwnProperty;var no=BA(iA,"Map"),Ao=BA(iA,"DataView"),oo=BA(iA,"Promise"),ro=BA(iA,"Set"),io="[object Map]",so="[object Promise]",ao="[object Set]",co="[object WeakMap]",lo="[object DataView]",uo=CA(Ao),ho=CA(no),po=CA(oo),go=CA(ro),mo=CA(jA),fo=gA;(Ao&&fo(new Ao(new ArrayBuffer(1)))!=lo||no&&fo(new no)!=io||oo&&fo(oo.resolve())!=so||ro&&fo(new ro)!=ao||jA&&fo(new jA)!=co)&&(fo=function(e){var t=gA(e),n="[object Object]"==t?e.constructor:void 0,A=n?CA(n):"";if(A)switch(A){case uo:return lo;case ho:return io;case po:return so;case go:return ao;case mo:return co}return t});var bo=fo,yo=Object.prototype.hasOwnProperty;function Io(e){if(null==e)return!0;if(function(e){return null!=e&&DA(e.length)&&!bA(e)}(e)&&(mA(e)||"string"==typeof e||"function"==typeof e.splice||RA(e)||XA(e)||qA(e)))return!e.length;var t=bo(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(QA(e))return!function(e){if(!QA(e))return eo(e);var t=[];for(var n in Object(e))to.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e).length;for(var n in e)if(yo.call(e,n))return!1;return!0}const ko=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]&&Io(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.viewOnly=!0,t.draggable=!1,t.movable={free:!1},t.drawable={enabled:!1},t.selectable={enabled:!1}),e.readOnly&&(t.draggable=!1,t.movable={free:!1},t.drawable={enabled:!1},t.selectable={enabled:!1},t.coordinates=!1),t};var wo=(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 Co=e=>Ae(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),vo=(e,t,n=!1)=>{if(!Co(e.fen()))return{free:!1};const A=new Map,o="w"===e.turn()?"white":"black";P.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 So=l(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 x();e.preventDefault();const{pageX:t,pageY:n}=S(e);"number"==typeof a&&"number"==typeof l&&(p(t-a-m),d(n-l-b))}function x(){return s(!1)}const{children:V,replace:N=!1,className:M,header:B,footer:j,scrollable:D=!0,draggable:T=!1,width:Q,closeButton:Z,closeButtonPosition:P,portal:O=!1}=A;let U=["pure-modal-backdrop"],q=["pure-modal",o],J=["panel-body"];M&&(q=q.concat(M)),D?J=J.concat("scrollable"):(U=U.concat("scrollable"),q=q.concat("auto-height")),T&&(U=U.concat("backdrop-overflow-hidden"));const K=t().createElement("div",{className:U.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:Q}},t().createElement(i,{replace:N,header:B,footer:j,onDragStart:T?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:T?x:void 0,onClose:v,bodyClass:J.join(" "),closeButton:Z,closeButtonPosition:P},V)));return O?(0,n.createPortal)(K,document.body):K}o(494);const a=t().memo(s)})(),r})())(o.default,r.default)}),Eo=c(So);const xo=({role:t,color:n,highlighted:A,selectPiece:o})=>{const r="bin"===t;return e.jsx("div",{className:p("edit-square border border-gray-300 rounded",A&&"bg-orange-300"),children:e.jsx("piece",{className:p("spare-piece",t,n,r&&"next-trash"),onClick:()=>{"function"==typeof o&&o({role:t,color:n})}})})},Vo=({isOpen:t,hide:n,onPromote:A,color:o="white"})=>{const r=e=>{A(e),n()};return e.jsx(Eo,{closeButton:"",isOpen:t,onClose:n,children:e.jsxs("div",{className:"promote flex gap-2 py-1.5 justify-center",children:[e.jsx(xo,{color:o,role:"queen",selectPiece:()=>r("q")}),e.jsx(xo,{color:o,role:"rook",selectPiece:()=>r("r")}),e.jsx(xo,{color:o,role:"bishop",selectPiece:()=>r("b")}),e.jsx(xo,{color:o,role:"knight",selectPiece:()=>r("n")})]})})},No=(n,A)=>{const{theme:o}=he(),{isOpen:r,show:i,hide:s}=pe(),{chess:a,fen:c,turnColor:l,lastMove:u,orientation:h,promotion:g,onMove:d,onPromote:m,onUndo:f}=ue(n),b=async(e,t,A)=>{const r=A?.promotion||g;if(!d(e,t,r)){return wo(a,e,t)&&!r&&i(),!1}return o.playSounds&&AA(o.sounds),"function"==typeof n.onMove&&await n.onMove(a),!0},{onSetPremove:y,onUnsetPremove:I,onPlayPremove:k,onCancelPremove:w,onPremovePromotion:C}=(e=>{const n=t.useRef(null),A=t.useCallback((e,t,A)=>{n.current={orig:e,dest:t,promotion:A?.promotion||null}},[]),o=t.useCallback(()=>{n.current=null},[]),r=t.useCallback(()=>"q",[]);return{onSetPremove:A,onUnsetPremove:o,onPlayPremove:t.useCallback(async()=>{if(n.current){const{orig:t,dest:A,promotion:o}=n.current,r={orig:t,dest:A,promotion:o};n.current=null;const i={promotion:r.promotion||"q"};return await e(r.orig,r.dest,i)}return!1},[e]),onCancelPremove:t.useCallback(()=>!!n.current&&(n.current=null,!0),[]),onPremovePromotion:r}})(b),v=t.useRef(),S=async(e,t,n)=>{if(n){const A={promotion:n};return await b(e,t,A)}return await b(e,t)},E=async()=>(v.current?.board&&v.current.board.cancelPremove(),await k());t.useImperativeHandle(A,()=>({board:v.current?.board,chess:a,undo:f,move:S,playPremove:E,cancelPremove:w}));t.useEffect(()=>{"function"==typeof n.setPromoting&&n.setPromoting(r)},[r]),t.useEffect(()=>{"function"==typeof n.onFenChange&&n.onFenChange(c)},[c]);const x=n.premoves?{enabled:!0,showDests:!0,castle:!0,events:{set:y,unset:I},promote:C}:{enabled:!1};return e.jsxs("div",{className:p("chessground",o.highlight&&"highlight",o.board,o.pieces),children:[e.jsx(tA,{ref:v,coordinates:o.coordinates,onMove:b,fen:c,turnColor:l,lastMove:u,orientation:h,movable:vo(a,h,n.premoves),premovable:x,...ko(n)}),e.jsx(Vo,{isOpen:r,hide:s,color:l,onPromote:async e=>{if(!m(e))return!1;o.playSounds&&AA(o.sounds),"function"==typeof n.onMove&&await n.onMove(a)}})]})};var Mo=t.forwardRef(No);const Bo=e=>{try{return"w"===e.split(" ")[1]?"white":"black"}catch{return"white"}},jo=e=>{const[n,A]=t.useState((e=>{try{return e.orientation?e.orientation:e.fen?Bo(e.fen):"white"}catch{return"white"}})(e));return t.useEffect(()=>{e.reset&&A(Bo(e.fen))},[e.reset]),[n,()=>{A(e=>"white"===e?"black":"white")}]},Do=()=>{const{theme:t,handleChange:n}=he();return e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Board"}),e.jsxs("select",{name:"board",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:t.board,onChange:n,children:[e.jsx("option",{value:"green",children:"Green"}),e.jsx("option",{value:"brown",children:"Brown"}),e.jsx("option",{value:"ruby",children:"Ruby"}),e.jsx("option",{value:"purple",children:"Purple"}),e.jsx("option",{value:"teal",children:"Teal"})]})]})},To=()=>{const{theme:t,handleChecked:n}=he();return e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Coordinates"}),e.jsx("div",{className:"flex",children:e.jsx("input",{name:"coordinates",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:t.coordinates,onChange:n})})]})},Qo=()=>{const{theme:t,handleChecked:n}=he();return e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Highlight moves"}),e.jsx("div",{className:"flex",children:e.jsx("input",{name:"highlight",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:t.highlight,onChange:n})})]})},Zo=()=>{const{theme:t,handleChange:n}=he();return e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Pieces"}),e.jsxs("select",{name:"pieces",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:t.pieces,onChange:n,children:[e.jsx("option",{value:"cburnett",children:"Cburnett"}),e.jsx("option",{value:"neo",children:"Neo"}),e.jsx("option",{value:"alpha",children:"Alpha"}),e.jsx("option",{value:"bases",children:"Bases"}),e.jsx("option",{value:"classic",children:"Classic"})]})]})},Po=()=>{const{theme:t,handleChecked:n}=he();return e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Play sounds"}),e.jsx("div",{className:"flex",children:e.jsx("input",{name:"playSounds",type:"checkbox",className:"checkbox rounded border border-gray-300",defaultChecked:t.playSounds,onChange:n})})]})},Oo=()=>{const{theme:t,handleChange:n}=he();return e.jsxs(e.Fragment,{children:[e.jsx("div",{children:"Sounds"}),e.jsxs("select",{name:"sounds",className:"bg-white border border-gray-300 px-2 py-1.5 w-full text-gray-800 rounded",defaultValue:t.sounds,onChange:n,children:[e.jsx("option",{value:"robot",children:"Robot"}),e.jsx("option",{value:"piano",children:"Piano"}),e.jsx("option",{value:"lisp",children:"Lisp"}),e.jsx("option",{value:"sfx",children:"SFX"})]})]})},Uo=()=>{const{isOpen:t,show:n,hide:A}=pe();return e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"next-button next-settings",title:"Settings",onClick:n,children:e.jsx("i",{className:"next-cog"})}),e.jsx(Eo,{header:"Settings",isOpen:t,onClose:A,children:e.jsxs("div",{className:"grid grid-cols-2 gap-3 items-center text-sm",children:[e.jsx(Zo,{}),e.jsx(Do,{}),e.jsx(Qo,{}),e.jsx(Po,{}),e.jsx(Oo,{}),e.jsx(To,{})]})})]})},qo=t=>e.jsx("button",{type:"button",className:"next-button next-flip",title:"Flip board",...t,children:e.jsx("i",{className:"next-sync"})}),Jo=({flip:t,readOnly:n})=>n?null:e.jsxs("div",{className:"chessground-footer text-gray-400 flex flex-row-reverse gap-2 py-1.5",children:[e.jsx(Uo,{}),e.jsx(qo,{onClick:t})]}),Ko=(t,n)=>{const[A,o]=jo(t);return e.jsx(h,{children:e.jsxs("div",{className:"next-chessground",children:[e.jsx(Mo,{...t,ref:n,orientation:A}),e.jsx(Jo,{flip:o,readOnly:t.readOnly})]})})};var Go=t.forwardRef(Ko);const Ro=t=>{const{theme:n}=he();return e.jsx("div",{className:p("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.jsx(xo,{highlighted:r,role:t,color:A,...n},`${t}-${A}`)})(n,t))})},Fo=e=>{const t=new Map;return t.set(e,null),t},Lo=({onChange:n})=>{const[A,o]=t.useState("w"),[r,i]=t.useState("-");t.useEffect(()=>{"function"==typeof n&&n([A,r].join(" "))},[A,r]);const s=e=>{const{value:t}=e.target;o(t)},a=e=>{const{value:t}=e.target;i(((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:"-"})(r,t))};return e.jsxs("div",{className:"flex flex-col gap-2 w-full",children:[e.jsxs("div",{className:"flex gap-2 w-full",children:[e.jsxs("div",{children:[e.jsx("input",{defaultChecked:!0,className:"mx-1",type:"radio",id:"white-radio",name:"side-to-move",value:"w",onChange:s}),e.jsx("label",{htmlFor:"white-radio",children:"White to move"})]}),e.jsxs("div",{children:[e.jsx("input",{className:"mx-1",type:"radio",id:"black-radio",name:"side-to-move",value:"b",onChange:s}),e.jsx("label",{htmlFor:"black-radio",children:"Black to move"})]})]}),e.jsxs("div",{className:"flex flex-col gap-2 w-full",children:[e.jsxs("div",{className:"flex w-full gap-4",children:[e.jsx("div",{children:e.jsx("span",{children:"White can"})}),e.jsxs("div",{children:[e.jsx("input",{className:"mx-1",type:"checkbox",id:"white-short-castle",value:"K",onChange:a}),e.jsx("label",{htmlFor:"white-short-castle",children:"O-O"})]}),e.jsxs("div",{children:[e.jsx("input",{className:"mx-1",type:"checkbox",id:"white-long-castle",value:"Q",onChange:a}),e.jsx("label",{htmlFor:"white-long-castle",children:"O-O-O"})]})]}),e.jsxs("div",{className:"flex w-full gap-4",children:[e.jsx("div",{children:e.jsx("span",{children:"Black can"})}),e.jsxs("div",{children:[e.jsx("input",{className:"mx-1",type:"checkbox",id:"black-short-castle",value:"k",onChange:a}),e.jsx("label",{htmlFor:"black-short-castle",children:"O-O"})]}),e.jsxs("div",{children:[e.jsx("input",{className:"mx-1",type:"checkbox",id:"black-long-castle",value:"q",onChange:a}),e.jsx("label",{htmlFor:"black-long-castle",children:"O-O-O"})]})]})]})]})},zo=(n,A)=>{const[o,r]=t.useState(n.fen||le.emptyFen),[i,s]=t.useState({role:null,color:null});t.useEffect(()=>{n.fen&&r(n.fen)},[n.fen]),t.useEffect(()=>{"function"==typeof n.onSelect&&n.onSelect(o)},[o]);return e.jsx(h,{children:e.jsxs("div",{className:"next-chessground gap-2",children:[e.jsx(Ro,{selected:i,selectPiece:s,color:"black"}),e.jsx(Mo,{...n,ref:A,fen:o,onSelect:e=>{const t=o.split(" ");t.shift();const n=t.join(" "),s=((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(Fo(n)),e.getFen();const A=e.state.pieces.get(n);return A?A.role===t.role&&A.color===t.color?(e.setPieces(Fo(n)),e.getFen()):(e.setPieces(Fo(n)),e.newPiece(t,n),e.getFen()):(e.newPiece(t,n),e.getFen())})(A.current.board,i,e),a=[s,n].join(" ");r(a)},editing:!0,skipValidation:!0}),e.jsx(Ro,{selected:i,selectPiece:s,color:"white"}),e.jsx(Lo,{onChange:e=>{const t=[o.split(" ")[0],e,"- 0 1"].join(" ");r(t)}})]})})};var Wo=t.forwardRef(zo);function Yo(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))}}Yo(".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,iVBORw0KGgoAAAANSUhEUgAABAAAAAQABAMAAACNMzawAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAoAAAAKAAFDgsw8AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAABhQTFRFlXqwl3uyl3yzmX214NXq4tjt49ju5tvxH/WnVgAADqBJREFUeNrt3btVW1EUBmEHU5tboASV4Op8W6AEUwFyBcKBXzwECvbSOlzNOP/WSfb8Ek7Ety+jf6dt6L/2/tL3mfkvP/L79sMDOP3M79tTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuPz2A02Hot95f+j4F5PbDA+gTeO+eAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyew7DA9yGvvfXvk8Buf3wAPoE3rungNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcfnoAp8PQb72/9H0KyO2HB9An8N49BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hyGB7gNfe+vfZ8CcvvhAfQJvHdPAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2FJDbU0BuTwG5PQXk9hSQ21NAbk8BuT0F5PYUkNtTQG5PAbk9BeT2lw7gWEC37S8cwNNDAd22v3AAjwV0454GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J774QEehn7r/aXvU0BuPzyAPoH37ikgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3J4CcnsKyO0pILengNyeAnJ7CsjtKSC3p4DcngJyewrI7Skgt6eA3P7SARwXH/CxgK/rLxzA08PaA179/u37CwfwuPiAHwv4yp4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J4GwO1pANyeBsDtaQDcngbA7WkA3J67YcDfh374/mkb+oP8fRYH3AAs9sMDmH6C9w1gtacBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALfnkw/AsYCv6/ncA9CAXNvzuQegbxDX9jQAbk8D4PY0AG5PA+D2NABuTwPg9jQAbk8D4PY0AG5PA+D2NABuTwPg9jQAbk8D4PY0AG5PA+D2NABuTwPg9jQAbk8D4PY0AG5PA+D2NABuTwPg9jQAbk8D4PY0AG5PA+D2NABuTwPg9jQAbk8D4PY0AG5PA+D2NABuTwPg9jQAbk8D4PY0AG5PA+D2NABuTwPg9jQAbk8D4PY0AG5PA+D2NABuTwPg9jQAbk8D4PY0AG5PA+D2NABuTwPg9jQAbk8D4PY0AG5PA+D2NABuTwPg9twPA74bHvA2fP+w9v3T3t9n5wE3IEM/PIDVn+B9g5h6GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwexoAt6cBcHsaALenAXB7GgC3pwFwe64c4HHxABwbgNEBTAPcu7/9AeG6Ae7d3/43CBoA9zcIGgD3nxA0AO4/IWgA3P+HQAPg/j8EGgD1AHx0AA2AwdMAqAfggwNoABSeBkA9AO8fQAPg8DQA6gF49wAaAImnAVAPwHsH0ABYPA2AegDeOYAGQONpANQDcP4AGgCPpwFQD8DZA2gARJ4GQD0A5w6gATB5GgD1AJw5gAZA5WkA1APw9gAaAJenAVAPwJsDaABkngZAPQCvD6ABsHkaAPUAvDqABkDnaQDUA/DyABoAn6cBUA/AiwNoAISeBkA9AM8PoAEwehoA9QA8O4AGQOlpANQD8P8AGgCnpwFQD8C/A2gApJ4GQD0Afw+gAbB6GgD1APw5gAZA62kA1APw+wAaAK+nAXD/tiANgPu3BWkA3D8uSgPg/nFRGgD3rwvTALh/XZgGwO1pANyeBsDtfwE/g8u1a15o2AAAAABJRU5ErkJggg==');\n}\n.teal .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,CjxzdmcgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgIHhtbG5zOng9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiICB2aWV3Qm94PSIwIDAgOCA4IiAgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPjxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9IiMxYzcyYWQiLz48ZyBpZD0iYSI+ICA8ZyBpZD0iYiI+ICAgIDxnIGlkPSJjIj4gICAgICA8ZyBpZD0iZCI+ICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjZTNlYmYzIiBpZD0iZSIvPiAgICAgICAgPHVzZSB4PSIyIiBocmVmPSIjZSIgeDpocmVmPSIjZSIvPiAgICAgIDwvZz4gICAgICA8dXNlIHg9IjQiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+ICAgIDwvZz4gICAgPHVzZSB4PSIxIiB5PSIxIiBocmVmPSIjYyIgeDpocmVmPSIjYyIvPiAgPC9nPiAgPHVzZSB5PSIyIiBocmVmPSIjYiIgeDpocmVmPSIjYiIvPjwvZz48dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+PC9zdmc+');\n}\n");Yo(".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");Yo("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");Yo(".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");Yo("*,\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");Yo(".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");Yo("/**\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");Yo(".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"),exports.NextChessground=Go,exports.NextEditor=Wo,exports.Stockfish=class{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=le.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")}},exports.constants=le,exports.default=Go,exports.isValidFen=Co,exports.useChess=ue,exports.useChessground=he;
|