var e=256,t=285,n=new Uint8Array(e*2),r=new Uint8Array(e);(function(){let e=1;for(let i=0;i<255;i++)n[i]=e,r[e]=i,e<<=1,e&256&&(e^=t);for(let e=255;e<512;e++)n[e]=n[e-255]})();function i(e,t){return e===0||t===0?0:n[r[e]+r[t]]}function a(e,t){if(t===0)throw Error(`rs: divide by zero`);return e===0?0:n[(r[e]+255-r[t])%255]}function o(e,t){return e===0?0:n[r[e]*t%255]}function s(e){if(e===0)throw Error(`rs: inverse of zero`);return n[(255-r[e])%255]}function c(e,t){let n=new Uint8Array(e.length);for(let r=0;rn.length){let e=c(r,t);r=c(n,s(t)),n=e}n=l(n,c(r,t))}}let a=0;for(;at?null:n}function v(e,t){let n=e.length-1,r=[];for(let n=0;n<255;n++)if(d(e,o(2,n))===0){let e=(n-1+255)%255;ee.length-1-t),c=(()=>{let e=new Uint8Array([1]);for(let t of r)e=u(e,l(new Uint8Array([1]),new Uint8Array([o(2,t),0])));return e})(),f=new Uint8Array(t.length-1);for(let e=0;e=r.length);e++){if(r[e]!==2)continue;let t=r[2*e]|r[3*e]<<8|r[4*e]<<16|r[5*e]<<24;if(t<0||t>1e8||Math.ceil((t+6)/204)!==e)continue;let n=w(r,e);if(!n||n[0]!==77||n[1]!==2)continue;let i=n[2]|n[3]<<8|n[4]<<16|n[5]<<24;if(!(i<0||i+6>n.length))return n.slice(6,6+i)}for(let e=1;e<=i;e++){let t=w(r,e);if(!t||t[0]!==77||t[1]!==2)continue;let n=t[2]|t[3]<<8|t[4]<<16|t[5]<<24;if(!(n<0||n+6>t.length)&&Math.ceil((n+6)/204)===e)return t.slice(6,6+n)}return null}function w(e,t){if(e.lengthArray(n).fill(!1)),a=new Float64Array((n+1)*(r+1));for(let e=0;ee[i]?.[t]??!1,t,(e,t)=>r.push({cx:e,cy:i,modulePx:t}));let i=[];for(let a of r){if(a.cx<0||a.cx>=t)continue;let r=[];O(t=>e[t]?.[a.cx]??!1,n,(e,t)=>r.push({cy:e,modulePx:t}));let o=null;for(let e of r)Math.abs(e.cy-a.cy)>a.modulePx*5||(!o||Math.abs(e.cy-a.cy)=i||d<0||d>=a)return!1;c++,e[d][u]&&s++}if(s=i||d<0||d>=a||(u++,e[d][c]||l++)}return u>0&&l>=u*.5}function O(e,t,n){let r=[],i=0,a=e(0),o=0;for(;i<=t;){let s=i5&&r.shift(),r.length===5)){let[e,t,i,a,o]=r;if(!e.dark&&t.dark&&!i.dark&&a.dark&&!o.dark){let r=(e.len+t.len+i.len+a.len+o.len)/7;if(r>=1&&k(e.len,r,.5)&&k(t.len,r,.5)&&k(i.len,r*3,.8)&&k(a.len,r,.5)&&k(o.len,r,.5)){let e=i.start+i.len/2;n(Math.round(e),r)}}if(e.dark&&!t.dark&&i.dark&&!a.dark&&o.dark){let r=(e.len+t.len+i.len+a.len+o.len)/7;if(r>=1&&k(e.len,r,.5)&&k(t.len,r,.5)&&k(i.len,r*3,.8)&&k(a.len,r,.5)&&k(o.len,r,.5)){let e=i.start+i.len/2;n(Math.round(e),r)}}}i++}}function k(e,t,n){return Math.abs(e-t)<=t*n}function te(e){let t=[];for(let n of e){let e=!1;for(let r of t){let t=r[0];if((n.cx-t.cx)**2+(n.cy-t.cy)**2<=(t.modulePx*3)**2){r.push(n),e=!0;break}}e||t.push([n])}return t.map(e=>{let t=0,n=0,r=0;for(let i of e)t+=i.cx,n+=i.cy,r+=i.modulePx;return{cx:t/e.length,cy:n/e.length,modulePx:r/e.length}})}function ne(e){if(e.length<3)return null;let t=null,n=e.length;for(let r=0;rt.score)&&(t={TL:n,TR:o,BL:s,score:b})}if(!t)return null;let r=(t.TL.modulePx+t.TR.modulePx+t.BL.modulePx)/3;return{TL:{x:t.TL.cx,y:t.TL.cy},TR:{x:t.TR.cx,y:t.TR.cy},BL:{x:t.BL.cx,y:t.BL.cy},modulePx:r}}function re(e,t){if(e.length!==4||t.length!==4)return null;let n=[],r=[];for(let i=0;i<4;i++){let a=e[i].x,o=e[i].y,s=t[i].x,c=t[i].y;n.push([a,o,1,0,0,0,-a*s,-o*s]),r.push(s),n.push([0,0,0,a,o,1,-a*c,-o*c]),r.push(c)}let i=A(n,r);return i?[i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],1]:null}function A(e,t){let n=e.map((e,n)=>[...e,t[n]]);for(let e=0;e<8;e++){let t=e;for(let r=e+1;r<8;r++)Math.abs(n[r][e])>Math.abs(n[t][e])&&(t=r);if(Math.abs(n[t][e])<1e-12)return null;[n[e],n[t]]=[n[t],n[e]];for(let t=0;t<8;t++){if(t===e)continue;let r=n[t][e]/n[e][e];if(r!==0)for(let i=e;i<=8;i++)n[t][i]-=r*n[e][i]}}let r=Array(8);for(let e=0;e<8;e++)r[e]=n[e][8]/n[e][e];return r}function j(e,t,n){let r=e[6]*t+e[7]*n+e[8];return{x:(e[0]*t+e[1]*n+e[2])/r,y:(e[3]*t+e[4]*n+e[5])/r}}function M(e,t){let n=6.5,r=6.5,i=e-2-5+.5,a=e-2-5+.5;switch(t){case`TL`:return{x:n,y:r};case`TR`:return{x:i,y:r};case`BL`:return{x:n,y:a};case`BR`:return{x:i,y:a}}}function N(e,t,n,r,i){let a=[t,n,r,{x:t.x+(n.x-t.x)+(r.x-t.x),y:t.y+(n.y-t.y)+(r.y-t.y)}],o=re([M(i,`TL`),M(i,`TR`),M(i,`BL`),M(i,`BR`)],a);if(!o)return null;let s=Array.from({length:i},()=>Array(i).fill(!1)),c=e.length,l=e[0]?.length??0;for(let t=0;t=0&&a=0&&i=64&&o<=1024&&o!==i){let i=N(e,t,n,r,o);return i?{matrix:i,size:o}:null}return o<64||o>1024?{matrix:a,size:i}:{matrix:a,size:o}}function F(e){let t=0;for(let n=0;n<16;n++)e[2]?.[12+n]&&(t|=1<<15-n);return t}function I(e,t,n){let r=[];for(let i=2;i=n)return e;return B}function U(e){let t=0;return t+=W(e),t+=243,t+=16,t+=G(e),t+=K(e)-q(e),e*e-t}function W(e){return 4*e*2-16}function G(e){let t=e-22;return Math.max(0,2*t)}function K(e){return 729}function q(e){let t=Math.floor(e/2),n=11>=t-13&&11<=t+13,r=11>=t-13&&11<=t+13;return(n?27:0)+(r?27:0)}function J(e,t,n){for(let r=0;r<9;r++)for(let i=0;i<9;i++)e[t+r][n+i]=!1;let r=[[1,1,1,1,1,1,1],[1,0,0,0,0,0,1],[1,0,1,1,1,0,1],[1,0,1,1,1,0,1],[1,0,1,1,1,0,1],[1,0,0,0,0,0,1],[1,1,1,1,1,1,1]];for(let i=0;i<7;i++)for(let a=0;a<7;a++)e[t+1+i][n+1+a]=r[i][a]===1}function Y(e,t){J(e,2,2),J(e,2,t-2-9),J(e,t-2-9,2)}function ie(e,t){for(let n=0;n<16;n++)e[2][12+n]=(t>>15-n&1)==1}function ae(){return{row:2,colStart:12,colEnd:28}}function oe(e,t){let n=t-2-9;for(let t=11;t=0&&i=0&&o=n-2||t<2||t>=n-2||e<11&&t<11||e<11&&t>=n-11||e>=n-11&&t<11)return!0;let r=ae();if(e===r.row&&t>=r.colStart&&t=11&&t=11&&e=a-13&&e<=a+13&&t>=a-13&&t<=a+13}function ce(e){let t=new Uint8Array(6);t[0]=77,t[1]=2;let n=e.length;t[2]=n&255,t[3]=n>>8&255,t[4]=n>>16&255,t[5]=n>>24&255;let r=new Uint8Array(6+e.length);return r.set(t),r.set(e,6),r}function le(e){let t=Math.ceil(e.length/204),n=[];for(let r=0;r{let e=new Uint8Array(204);return e.set(t),e})();n.push(x(i,51))}let r=new Uint8Array(t*z);for(let e=0;e1e5)throw Error(`Mayan payload too large: ${e.length} bytes (max ${V})`);let t=H(e.length);if(t>1024)throw Error(`Mayan: symbol size ${t} exceeds max ${B}`);let n=Math.floor(t/2),{interleaved:r}=le(ce(e)),i=Array(r.length*8);for(let e=0;e>7-n&1)==1}let a=Array.from({length:t},()=>Array(t).fill(!1));Y(a,t),ie(a,t),oe(a,t),se(a,n,n);let o=0;for(let e=2;e