@qr-platform/qr-code.js
Version:
QRCode.js is a professional JavaScript/TypeScript library for creating customized QR codes, offering a blend of simplicity and sophistication. With versatile styling options—dot shapes, colors, gradients, embedded images, borders, and text—it enables you
1 lines • 217 kB
JavaScript
import e from"@xmldom/xmldom";import{fileTypeFromBuffer as t}from"file-type";import o from"image-size";const r={width:500,height:500};class n{constructor(){this.buffer=[],this.length=0}getBuffer(){return this.buffer}getLengthInBits(){return this.length}toString(){let e="";for(let t=0;t<this.getLengthInBits();t+=1)e+=this.getBit(t)?"1":"0";return e}getBit(e){return 1==(this.buffer[~~(e/8)]>>>7-e%8&1)}put(e,t){for(let o=0;o<t;o+=1)this.putBit(1==(e>>>t-o-1&1))}putBit(e){this.length==8*this.buffer.length&&this.buffer.push(0),e&&(this.buffer[~~(this.length/8)]|=128>>>this.length%8),this.length+=1}}var i,s,a;!function(e){e[e.L=1]="L",e[e.M=0]="M",e[e.Q=3]="Q",e[e.H=2]="H"}(i||(i={}));class d{constructor(){throw new Error("error")}static glog(e){if(e<1)throw new Error("log("+e+")");return d.LOG_TABLE[e]}static gexp(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return d.EXP_TABLE[e]}}d.initialize=(()=>{d.EXP_TABLE=[],d.LOG_TABLE=[];for(let e=0;e<256;e+=1)d.EXP_TABLE.push(e<8?1<<e:d.EXP_TABLE[e-4]^d.EXP_TABLE[e-5]^d.EXP_TABLE[e-6]^d.EXP_TABLE[e-8]),d.LOG_TABLE.push(0);for(let e=0;e<255;e+=1)d.LOG_TABLE[d.EXP_TABLE[e]]=e})();class l{constructor(e,t=0){let o=0;for(;o<e.length&&0==e[o];)o+=1;this.num=[];const r=e.length-o;for(let t=0;t<r;t+=1)this.num.push(e[o+t]);for(let e=0;e<t;e+=1)this.num.push(0)}getAt(e){return this.num[e]}getLength(){return this.num.length}toString(){let e="";for(let t=0;t<this.getLength();t+=1)t>0&&(e+=","),e+=this.getAt(t);return e.toString()}toLogString(){let e="";for(let t=0;t<this.getLength();t+=1)t>0&&(e+=","),e+=d.glog(this.getAt(t));return e.toString()}multiply(e){const t=[],o=this.getLength()+e.getLength()-1;for(let e=0;e<o;e+=1)t.push(0);for(let o=0;o<this.getLength();o+=1)for(let r=0;r<e.getLength();r+=1)t[o+r]^=d.gexp(d.glog(this.getAt(o))+d.glog(e.getAt(r)));return new l(t)}mod(e){if(this.getLength()-e.getLength()<0)return this;const t=d.glog(this.getAt(0))-d.glog(e.getAt(0)),o=[];for(let e=0;e<this.getLength();e+=1)o.push(this.getAt(e));for(let r=0;r<e.getLength();r+=1)o[r]^=d.gexp(d.glog(e.getAt(r))+t);return new l(o).mod(e)}}!function(e){e[e.MODE_NUMBER=1]="MODE_NUMBER",e[e.MODE_ALPHA_NUM=2]="MODE_ALPHA_NUM",e[e.MODE_8BIT_BYTE=4]="MODE_8BIT_BYTE",e[e.MODE_KANJI=8]="MODE_KANJI"}(s||(s={}));class c{constructor(e,t){this.mode=e,this.data=t}getMode(){return this.mode}getData(){return this.data}getLengthInBits(e){if(1<=e&&e<10)switch(this.mode){case s.MODE_NUMBER:return 10;case s.MODE_ALPHA_NUM:return 9;case s.MODE_8BIT_BYTE:case s.MODE_KANJI:return 8;default:throw new Error("mode:"+this.mode)}else if(e<27)switch(this.mode){case s.MODE_NUMBER:return 12;case s.MODE_ALPHA_NUM:return 11;case s.MODE_8BIT_BYTE:return 16;case s.MODE_KANJI:return 10;default:throw new Error("mode:"+this.mode)}else{if(!(e<41))throw new Error("typeNumber:"+e);switch(this.mode){case s.MODE_NUMBER:return 14;case s.MODE_ALPHA_NUM:return 13;case s.MODE_8BIT_BYTE:return 16;case s.MODE_KANJI:return 12;default:throw new Error("mode:"+this.mode)}}}}class u extends c{constructor(e,t){super(s.MODE_8BIT_BYTE,e),this.stringToBytes=t}write(e){this.stringToBytes(this.getData()).forEach((t=>e.put(t,8)))}getLength(){return this.stringToBytes(this.getData()).length}}class h extends c{constructor(e){super(s.MODE_ALPHA_NUM,e)}write(e){const t=this.getData();let o=0;for(;o+1<t.length;)e.put(45*h.getCode(t.charAt(o))+h.getCode(t.charAt(o+1)),11),o+=2;o<t.length&&e.put(h.getCode(t.charAt(o)),6)}getLength(){return this.getData().length}static getCode(e){if("0"<=e&&e<="9")return e.charCodeAt(0)-"0".charCodeAt(0);if("A"<=e&&e<="Z")return e.charCodeAt(0)-"A".charCodeAt(0)+10;switch(e){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw new Error("illegal char :"+e)}}}class p extends c{constructor(e,t){super(s.MODE_KANJI,e),this.stringToBytes=t}write(e){const t=this.stringToBytes(this.getData());let o=0;for(;o+1<t.length;){let r=(255&t[o])<<8|255&t[o+1];if(33088<=r&&r<=40956)r-=33088;else{if(!(57408<=r&&r<=60351))throw new Error("illegal char at "+(o+1)+"/"+r);r-=49472}r=192*(r>>>8&255)+(255&r),e.put(r,13),o+=2}if(o<t.length)throw new Error("illegal char at "+(o+1))}getLength(){return this.stringToBytes(this.getData()).length/2}}class m extends c{constructor(e){super(s.MODE_NUMBER,e)}write(e){const t=this.getData();let o=0;for(;o+2<t.length;)e.put(m.strToNum(t.substring(o,o+3)),10),o+=3;o<t.length&&(t.length-o==1?e.put(m.strToNum(t.substring(o,o+1)),4):t.length-o==2&&e.put(m.strToNum(t.substring(o,o+2)),7))}getLength(){return this.getData().length}static strToNum(e){let t=0;for(let o=0;o<e.length;o+=1)t=10*t+m.chatToNum(e.charAt(o));return t}static chatToNum(e){if("0"<=e&&e<="9")return e.charCodeAt(0)-"0".charCodeAt(0);throw new Error("illegal char :"+e)}}!function(e){e[e.PATTERN000=0]="PATTERN000",e[e.PATTERN001=1]="PATTERN001",e[e.PATTERN010=2]="PATTERN010",e[e.PATTERN011=3]="PATTERN011",e[e.PATTERN100=4]="PATTERN100",e[e.PATTERN101=5]="PATTERN101",e[e.PATTERN110=6]="PATTERN110",e[e.PATTERN111=7]="PATTERN111"}(a||(a={}));class g{constructor(){throw new Error("error")}static getPatternPosition(e){return g.PATTERN_POSITION_TABLE[e-1]}static getMaxLength(e,t,o){const r=e-1;let n=0,a=0;switch(o){case i.L:n=0;break;case i.M:n=1;break;case i.Q:n=2;break;case i.H:n=3;break;default:throw new Error("e:"+o)}switch(t){case s.MODE_NUMBER:a=0;break;case s.MODE_ALPHA_NUM:a=1;break;case s.MODE_8BIT_BYTE:a=2;break;case s.MODE_KANJI:a=3;break;default:throw new Error("m:"+t)}return g.MAX_LENGTH[r][n][a]}static getErrorCorrectPolynomial(e){let t=new l([1]);for(let o=0;o<e;o+=1)t=t.multiply(new l([1,d.gexp(o)]));return t}static getMaskFunc(e){switch(e){case a.PATTERN000:return(e,t)=>(e+t)%2==0;case a.PATTERN001:return(e,t)=>e%2==0;case a.PATTERN010:return(e,t)=>t%3==0;case a.PATTERN011:return(e,t)=>(e+t)%3==0;case a.PATTERN100:return(e,t)=>(~~(e/2)+~~(t/3))%2==0;case a.PATTERN101:return(e,t)=>e*t%2+e*t%3==0;case a.PATTERN110:return(e,t)=>(e*t%2+e*t%3)%2==0;case a.PATTERN111:return(e,t)=>(e*t%3+(e+t)%2)%2==0;default:throw new Error("mask:"+e)}}static getLostPoint(e){const t=e.getModuleCount();let o=0;for(let r=0;r<t;r+=1)for(let n=0;n<t;n+=1){let i=0;const s=e.isDark(r,n);for(let o=-1;o<=1;o+=1)if(!(r+o<0||t<=r+o))for(let a=-1;a<=1;a+=1)n+a<0||t<=n+a||0==o&&0==a||s==e.isDark(r+o,n+a)&&(i+=1);i>5&&(o+=3+i-5)}for(let r=0;r<t-1;r+=1)for(let n=0;n<t-1;n+=1){let t=0;e.isDark(r,n)&&(t+=1),e.isDark(r+1,n)&&(t+=1),e.isDark(r,n+1)&&(t+=1),e.isDark(r+1,n+1)&&(t+=1),0!=t&&4!=t||(o+=3)}for(let r=0;r<t;r+=1)for(let n=0;n<t-6;n+=1)e.isDark(r,n)&&!e.isDark(r,n+1)&&e.isDark(r,n+2)&&e.isDark(r,n+3)&&e.isDark(r,n+4)&&!e.isDark(r,n+5)&&e.isDark(r,n+6)&&(o+=40);for(let r=0;r<t;r+=1)for(let n=0;n<t-6;n+=1)e.isDark(n,r)&&!e.isDark(n+1,r)&&e.isDark(n+2,r)&&e.isDark(n+3,r)&&e.isDark(n+4,r)&&!e.isDark(n+5,r)&&e.isDark(n+6,r)&&(o+=40);let r=0;for(let o=0;o<t;o+=1)for(let n=0;n<t;n+=1)e.isDark(n,o)&&(r+=1);return o+=10*(Math.abs(100*r/t/t-50)/5),o}static getBCHTypeInfo(e){let t=e<<10;for(;g.getBCHDigit(t)-g.getBCHDigit(g.G15)>=0;)t^=g.G15<<g.getBCHDigit(t)-g.getBCHDigit(g.G15);return(e<<10|t)^g.G15_MASK}static getBCHTypeNumber(e){let t=e<<12;for(;g.getBCHDigit(t)-g.getBCHDigit(g.G18)>=0;)t^=g.G18<<g.getBCHDigit(t)-g.getBCHDigit(g.G18);return e<<12|t}static getBCHDigit(e){let t=0;for(;0!=e;)t+=1,e>>>=1;return t}}g.PATTERN_POSITION_TABLE=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],g.MAX_LENGTH=[[[41,25,17,10],[34,20,14,8],[27,16,11,7],[17,10,7,4]],[[77,47,32,20],[63,38,26,16],[48,29,20,12],[34,20,14,8]],[[127,77,53,32],[101,61,42,26],[77,47,32,20],[58,35,24,15]],[[187,114,78,48],[149,90,62,38],[111,67,46,28],[82,50,34,21]],[[255,154,106,65],[202,122,84,52],[144,87,60,37],[106,64,44,27]],[[322,195,134,82],[255,154,106,65],[178,108,74,45],[139,84,58,36]],[[370,224,154,95],[293,178,122,75],[207,125,86,53],[154,93,64,39]],[[461,279,192,118],[365,221,152,93],[259,157,108,66],[202,122,84,52]],[[552,335,230,141],[432,262,180,111],[312,189,130,80],[235,143,98,60]],[[652,395,271,167],[513,311,213,131],[364,221,151,93],[288,174,119,74]]],g.G15=1335,g.G18=7973,g.G15_MASK=21522;class f{constructor(e,t){this.totalCount=e,this.dataCount=t}getDataCount(){return this.dataCount}getTotalCount(){return this.totalCount}static getRSBlocks(e,t){const o=f.getRsBlockTable(e,t),r=o.length/3,n=[];for(let e=0;e<r;e+=1){const t=o[3*e+0],r=o[3*e+1],i=o[3*e+2];for(let e=0;e<t;e+=1)n.push(new f(r,i))}return n}static getRsBlockTable(e,t){switch(t){case i.L:return f.RS_BLOCK_TABLE[4*(e-1)+0];case i.M:return f.RS_BLOCK_TABLE[4*(e-1)+1];case i.Q:return f.RS_BLOCK_TABLE[4*(e-1)+2];case i.H:return f.RS_BLOCK_TABLE[4*(e-1)+3]}throw new Error("tn:"+e+"/ecl:"+t)}}f.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];const b=Array(41).fill(0).map(((e,t)=>t));var y,O;!function(e){e.L="L",e.M="M",e.Q="Q",e.H="H"}(y||(y={})),function(e){e.numeric="numeric",e.alphanumeric="alphanumeric",e.byte="byte",e.kanji="kanji",e.unicode="unicode"}(O||(O={}));class C{constructor(e=0,t=y.L){this.modules=[],this.moduleCount=0,this.typeNumber=e,this.errorCorrectLevel=i[t],this.qrDataList=[]}getTypeNumber(){return this.typeNumber}setTypeNumber(e){this.typeNumber=e}getErrorCorrectLevel(){return this.errorCorrectLevel}setErrorCorrectLevel(e){this.errorCorrectLevel=e}clearData(){this.qrDataList=[]}addData(e,t=O.byte){if(e instanceof c)this.qrDataList.push(e);else{if("string"!=typeof e)throw new Error(typeof e);switch(t){case O.numeric:this.qrDataList.push(new m(e));break;case O.alphanumeric:this.qrDataList.push(new h(e));break;case O.byte:this.qrDataList.push(new u(e,C.stringToBytesFuncs.default));break;case O.unicode:this.qrDataList.push(new u(e,C.stringToBytesFuncs.UTF8));break;case O.kanji:this.qrDataList.push(new p(e,C.stringToBytesFuncs.SJIS));break;default:throw new Error("mode:"+t)}}}isDark(e,t){return!(!this.modules[e]||null==this.modules[e][t])&&this.modules[e][t]}getModuleCount(){return this.moduleCount}make(){if(this.typeNumber<1){let e=1;for(;e<40;e++){const t=f.getRSBlocks(e,this.errorCorrectLevel),o=new n;this.qrDataList.forEach((t=>{o.put(t.getMode(),4),o.put(t.getLength(),t.getLengthInBits(e)),t.write(o)}));const r=t.reduce(((e,t)=>e+t.getDataCount()),0);if(o.getLengthInBits()<=8*r)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())}getBestMaskPattern(){let e=0,t=0;for(let o=0;o<8;o+=1){this.makeImpl(!0,o);const r=g.getLostPoint(this);(0==o||e>r)&&(e=r,t=o)}return t}makeImpl(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=[];for(let e=0;e<this.moduleCount;e+=1){this.modules.push([]);for(let t=0;t<this.moduleCount;t+=1)this.modules[e].push(null)}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),this.typeNumber>=7&&this.setupTypeNumber(e);const o=C.createData(this.typeNumber,this.errorCorrectLevel,this.qrDataList);this.mapData(o,t)}mapData(e,t){let o=-1,r=this.moduleCount-1,n=7,i=0;const s=g.getMaskFunc(t);for(let t=this.moduleCount-1;t>0;t-=2)for(6==t&&(t-=1);;){for(let o=0;o<2;o+=1)if(null==this.modules[r][t-o]){let a=!1;i<e.length&&(a=1==(e[i]>>>n&1));s(r,t-o)&&(a=!a),this.modules[r][t-o]=a,n-=1,-1==n&&(i+=1,n=7)}if(r+=o,r<0||this.moduleCount<=r){r-=o,o=-o;break}}}setupPositionAdjustPattern(){const e=g.getPatternPosition(this.typeNumber);e.forEach((t=>{e.forEach((e=>{if(null==this.modules[t][e])for(let o=-2;o<=2;o+=1)for(let r=-2;r<=2;r+=1)this.modules[t+o][e+r]=-2==o||2==o||-2==r||2==r||0==o&&0==r}))}))}setupPositionProbePattern(e,t){for(let o=-1;o<=7;o+=1)for(let r=-1;r<=7;r+=1)e+o<=-1||this.moduleCount<=e+o||t+r<=-1||this.moduleCount<=t+r||(this.modules[e+o][t+r]=0<=o&&o<=6&&(0==r||6==r)||0<=r&&r<=6&&(0==o||6==o)||2<=o&&o<=4&&2<=r&&r<=4)}setupTimingPattern(){for(let e=8;e<this.moduleCount-8;e+=1)null==this.modules[e][6]&&(this.modules[e][6]=e%2==0);for(let e=8;e<this.moduleCount-8;e+=1)null==this.modules[6][e]&&(this.modules[6][e]=e%2==0)}setupTypeNumber(e){const t=g.getBCHTypeNumber(this.typeNumber);for(let o=0;o<18;o+=1)this.modules[~~(o/3)][o%3+this.moduleCount-8-3]=!e&&1==(t>>o&1);for(let o=0;o<18;o+=1)this.modules[o%3+this.moduleCount-8-3][~~(o/3)]=!e&&1==(t>>o&1)}setupTypeInfo(e,t){const o=this.errorCorrectLevel<<3|t,r=g.getBCHTypeInfo(o);for(let t=0;t<15;t+=1){const o=!e&&1==(r>>t&1);t<6?this.modules[t][8]=o:t<8?this.modules[t+1][8]=o:this.modules[this.moduleCount-15+t][8]=o}for(let t=0;t<15;t+=1){const o=!e&&1==(r>>t&1);t<8?this.modules[8][this.moduleCount-t-1]=o:t<9?this.modules[8][15-t-1+1]=o:this.modules[8][15-t-1]=o}this.modules[this.moduleCount-8][8]=!e}static createData(e,t,o){const r=f.getRSBlocks(e,t),i=new n;o.forEach((t=>{i.put(t.getMode(),4),i.put(t.getLength(),t.getLengthInBits(e)),t.write(i)}));const s=r.reduce(((e,t)=>e+t.getDataCount()),0);if(i.getLengthInBits()>8*s)throw new Error("code length overflow. ("+i.getLengthInBits()+">"+8*s+")");for(i.getLengthInBits()+4<=8*s&&i.put(0,4);i.getLengthInBits()%8!=0;)i.putBit(!1);for(;!(i.getLengthInBits()>=8*s||(i.put(C.PAD0,8),i.getLengthInBits()>=8*s));)i.put(C.PAD1,8);return C.createBytes(i,r)}static createBytes(e,t){let o=0,r=0,n=0;const i=new Array(t.length).map((e=>[])),s=new Array(t.length).map((e=>[]));function a(e){const t=[];for(let o=0;o<e;o+=1)t.push(0);return t}for(let d=0;d<t.length;d+=1){const c=t[d].getDataCount(),u=t[d].getTotalCount()-c;r=Math.max(r,c),n=Math.max(n,u),i[d]=a(c);for(let t=0;t<i[d].length;t+=1)i[d][t]=255&e.getBuffer()[t+o];o+=c;const h=g.getErrorCorrectPolynomial(u),p=new l(i[d],h.getLength()-1).mod(h);s[d]=a(h.getLength()-1);for(let e=0;e<s[d].length;e+=1){const t=e+p.getLength()-s[d].length;s[d][e]=t>=0?p.getAt(t):0}}const d=a(t.reduce(((e,t)=>e+t.getTotalCount()),0));let c=0;for(let e=0;e<r;e+=1)for(let o=0;o<t.length;o+=1)e<i[o].length&&(d[c]=i[o][e],c+=1);for(let e=0;e<n;e+=1)for(let o=0;o<t.length;o+=1)e<s[o].length&&(d[c]=s[o][e],c+=1);return d}}C.stringToBytesFuncs={default(e){const t=[];for(let o=0;o<e.length;o+=1){const r=e.charCodeAt(o);t.push(255&r)}return t}},C.PAD0=236,C.PAD1=17;const S=e=>!!e&&"object"==typeof e&&!Array.isArray(e);function k(e,t=!1){const o=e.split("").reverse().join("");return t?o.toLocaleUpperCase():o}function w(e,...t){if(!t.length)return e;const o=t.shift();return void 0!==o&&S(e)&&S(o)?(e={...e},Object.keys(o).forEach((t=>{const r=e[t],n=o[t];Array.isArray(r)&&Array.isArray(n)?e[t]=n:S(r)&&S(n)?e[t]=w({...r},n):e[t]=n})),w(e,...t)):e}k("rq",!0),k("-",!0),k("talp",!0),k("mrof",!0),k("a".repeat(6)+"#",!0);const v="top",A="bottom",T="left",q="right";const I=e=>"number"==typeof e?e:parseInt(e.replace("%",""),10),Z=(e,t="0%")=>e?e.endsWith("%")?e:e+"%":t,D="text",x="image",W=(e,t)=>!e?.decorations?.[t]?.disabled,V=e=>{if("string"==typeof e)return e;const{fontFace:t="Helvetica",fontSize:o=20,fontColor:r="#ffffff",letterSpacing:n=1,textTransform:i="uppercase",fontWeight:s="bold"}=e||{};return`font-weight: ${s}; text-transform: ${i}; font-size: ${o}px; font-family: ${t}; fill: ${r}; letter-spacing: ${n}px;`};const j=({document:e,position:t,rotate:o,flip:r,thickness:n,height:i,width:s,round:a,offset:d=0,curveAdjustment:l=0,curveRadius:c,outerBorderPadding:u=0,instanceId:h})=>{const p=Math.min(s,i),m=e.createElementNS("http://www.w3.org/2000/svg","path"),g=(e=>{if(e>=50)return 1;const t=[{R:0,P:0},{R:5,P:0},{R:10,P:.12},{R:15,P:.2},{R:20,P:.32},{R:25,P:.44},{R:30,P:.56},{R:35,P:.65},{R:40,P:.78},{R:45,P:.9},{R:50,P:1}],o=t.find((t=>e<=t.R))||t[0],r=t.find((t=>e>t.R))||t[t.length-1],{R:n,P:i}=o,{R:s,P:a}=r;return i+(e-n)/(s-n)*(a-i)})("string"==typeof a?I(a):a),f=void 0!==c?function(e){let t;return t="number"==typeof e?e:"string"==typeof e?(e.includes("%"),parseFloat(e)):0,t=Math.min(Math.max(t,0),50),.5+t/50*.5}(c):g,b=(p-n-2*u-10*l*2)/2*f,y=((e,t,o,r)=>{const n=o/2,i=r/2;let s="";return e&&(s+=`rotate(${e}, ${n}, ${i}) `),t&&(s+=`translate(${n}, ${i}) scale(1, -1) translate(${-n}, ${-i}) `),s.trim()})(o,r,s,i);m.setAttribute("id",`${t}-text-path-${h}`),m.setAttribute("transform",y);const{startX:O,startY:C,pathWidth:S}=((e,t,o,r,n={})=>{let i=t/2,s=t/2+r,a=e-t;return o&&(a-=2*o,i+=o,s+=o),i+=n.left||0,s+=n.top||0,{startX:i,startY:s,pathWidth:a}})(p,n,u,d);return m.setAttribute("d",((e,t,o,r)=>`\n M${e},${t+r}\n a${r},${r} 0 0 1 ${r},${-r}\n h${o-2*r}\n a${r},${r} 0 0 1 ${r},${r}\n `)(O,C,S,b)),m},R=({document:e,thickness:t,value:o,svg:r,position:n,height:i,width:s,round:a,style:d,offset:l=0,curveAdjustment:c=0,curveDisabled:u=!1,outerBorderPadding:h=0,curveRadius:p,instanceId:m,noBorderThickness:g,enabledBorders:f})=>{let b=0,y=!1;if(n===q?b=90:n===A?y=!u:n===T&&(b=270),u){const a=e.createElementNS("http://www.w3.org/2000/svg","text");let c=s/2,u=(i-Math.min(s,i)+t)/2+2*h+l-(i-s>0?0:(s-i)/2);if(n===A?u=i-2*h-t/2-l:n===v&&(u=2*h+t/2+l),n===v||n===A){let e=0;!f[T]&&f[q]?e=-(t-g)/2:f[T]&&!f[q]&&(e=(t-g)/2),c+=e}else if(n===T||n===q){let e=0;!f[v]&&f[A]?e=n===T?(t-g)/2:-(t-g)/2:f[v]&&!f[A]&&(e=n===T?-(t-g)/2:(t-g)/2),c+=e}let p="";0!==b&&(p+=`rotate(${b}, ${s/2}, ${i/2}) `),a.setAttribute("x",c.toString()),a.setAttribute("y",u.toString()),a.setAttribute("text-anchor","middle"),a.setAttribute("dominant-baseline","middle"),p&&a.setAttribute("transform",p.trim()),a.textContent=o;const m=V(d);a.setAttribute("style",m),r.appendChild(a)}else{let u=r.getElementsByTagName("defs")[0];u||(u=e.createElementNS("http://www.w3.org/2000/svg","defs"),r.appendChild(u));const O=j({document:e,position:n,rotate:b,flip:y,thickness:t,height:i,width:s,round:a,offset:l,curveAdjustment:c,outerBorderPadding:h,curveRadius:p,instanceId:m}),{x:C,y:S}=function(e,t,o,r){let n=0,i=0;const s=(t-o)/2;return r.left&&r.right&&r.top&&r.bottom?(n=0,i=0):"top"===e||"bottom"===e?!r.left&&r.right?n=-s:(r.left&&!r.right||r.left&&r.right)&&(n=s):"left"!==e&&"right"!==e||(!r.top&&r.bottom?r.left&&r.right?(n="left"===e?2*+s:0,i=-s):n="left"===e?+s:-s:r.top&&!r.bottom?r.left&&r.right?(n="left"===e?0:2*s,i=-s):n=0:r.top&&r.bottom?i=r.left&&r.right?2*+s:+s:(n=r.left&&r.right?2*+s:+s,i=r.left&&r.right?2*-s:-s)),{x:n,y:i}}(n,t,g,f);if(0!==C||0!==S){const e=`${O.getAttribute("transform")||""} translate(${C}, ${S})`.trim();O.setAttribute("transform",e)}u.appendChild(O),r.appendChild((({document:e,value:t,position:o,style:r,instanceId:n})=>{const i=e.createElementNS("http://www.w3.org/2000/svg","text"),s=e.createElementNS("http://www.w3.org/2000/svg","textPath");s.setAttribute("href",`#${o}-text-path-${n}`),s.setAttribute("text-anchor","middle"),s.setAttribute("startOffset","50%"),s.textContent=t,s.setAttribute("alignment-baseline","middle");const a=V(r);return i.setAttribute("style",a),i.appendChild(s),i})({document:e,position:n,value:o,style:d,instanceId:m}))}},M=({document:e,thickness:t,value:o,svg:r,position:n,height:i,width:s,offset:a=0,style:d})=>{const l=e.createElementNS("http://www.w3.org/2000/svg","image"),c=Math.min(s,i);let u=(s-c+t)/2,h=(i-c+t)/2+a;n===v?u+=(c-t)/2:n===q?(u+=c-t,h+=(c-t)/2):n===A?(u+=(c-t)/2,h+=c-t):n===T&&(h+=(c-t)/2),l.setAttribute("href",o||""),l.setAttribute("x",`${u}`),l.setAttribute("y",`${h}`),l.setAttribute("style",d?.toString()||""),r.appendChild(l)};var B,Y,J,G,X,E,F;function L(e){const t={...e};if(!t.colorStops||!t.colorStops.length)throw new Error("Field 'colorStops' is required in gradient");return t.rotation?t.rotation=Number(t.rotation):t.rotation=0,t.colorStops=t.colorStops.map((e=>({...e,offset:Number(e.offset)}))),t}function P(e){const t={...e};if(t.imageOptions={...t.imageOptions,imageSize:Math.min(1,Number(t.imageOptions?.imageSize))||1,margin:Number(t.imageOptions?.margin)||0,padding:Number(t.imageOptions?.padding)||0},t.imageOptions.mode==F.overlay&&(t.imageOptions.margin=0),t.dotsOptions={...t.dotsOptions},t.dotsOptions.gradient&&(t.dotsOptions.gradient=L(t.dotsOptions.gradient)),t.dotsOptions.size=Math.round(Math.max(0,t.dotsOptions.size)||10),t.cornersSquareOptions&&(t.cornersSquareOptions={...t.cornersSquareOptions},t.cornersSquareOptions.gradient&&(t.cornersSquareOptions.gradient=L(t.cornersSquareOptions.gradient))),t.cornersDotOptions&&(t.cornersDotOptions={...t.cornersDotOptions},t.cornersDotOptions.gradient&&(t.cornersDotOptions.gradient=L(t.cornersDotOptions.gradient))),t.backgroundOptions&&(t.backgroundOptions={...t.backgroundOptions},t.backgroundOptions.gradient&&(t.backgroundOptions.gradient=L(t.backgroundOptions.gradient))),t.borderOptions&&t.borderOptions.decorations){const e=["top","bottom","left","right"];for(const o of e){let e=t.borderOptions.decorations[o];e||(t.borderOptions.decorations[o]={enableText:!1,value:void 0},e=t.borderOptions.decorations[o]),!1===e.enableText?e.value=void 0:!0===e.enableText?null!==e.value&&void 0!==e.value||(e.value=""):void 0===e.enableText&&(e.value&&"string"==typeof e.value&&!1!==e.enableText&&""!==e.value.trim()?e.enableText=!0:(e.enableText=!1,e.value=void 0))}}return"undefined"==typeof document||t.document||(t.document=document),t}!function(e){e.radial="radial",e.linear="linear"}(B||(B={})),function(e){e.svg="svg",e.png="png",e.jpeg="jpeg",e.webp="webp"}(Y||(Y={})),function(e){e.dot="dot",e.randomDot="random-dot",e.rounded="rounded",e.extraRounded="extra-rounded",e.verticalLine="vertical-line",e.horizontalLine="horizontal-line",e.classy="classy",e.classyRounded="classy-rounded",e.square="square",e.smallSquare="small-square",e.tinySquare="tiny-square",e.star="star",e.plus="plus",e.diamond="diamond"}(J||(J={})),function(e){e.dot="dot",e.square="square",e.heart="heart",e.rounded="rounded",e.classy="classy",e.outpoint="outpoint",e.inpoint="inpoint"}(G||(G={})),function(e){e.dot="dot",e.square="square",e.rounded="rounded",e.classy="classy",e.outpoint="outpoint",e.inpoint="inpoint"}(X||(X={})),function(e){e.square="square",e.circle="circle"}(E||(E={})),function(e){e.center="center",e.overlay="overlay",e.background="background"}(F||(F={}));const N={[y.L]:.07,[y.M]:.15,[y.Q]:.25,[y.H]:.3};class z{constructor(e="",t={}){if(e instanceof z)return e;const o=function(e){let t={r:0,g:0,b:0},o=1,r=null,n=null,i=null,s=!1,a=!1;"string"==typeof e&&(e=function(e){const t=/^\s+/,o=/\s+$/;e=e.replace(t,"").replace(o,"").toLowerCase();let r,n=!1;if(z.names[e])e=z.names[e],n=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};if(r=ye.rgb.exec(e))return{r:r[1],g:r[2],b:r[3]};if(r=ye.rgba.exec(e))return{r:r[1],g:r[2],b:r[3],a:r[4]};if(r=ye.hsl.exec(e))return{h:r[1],s:r[2],l:r[3]};if(r=ye.hsla.exec(e))return{h:r[1],s:r[2],l:r[3],a:r[4]};if(r=ye.hsv.exec(e))return{h:r[1],s:r[2],v:r[3]};if(r=ye.hsva.exec(e))return{h:r[1],s:r[2],v:r[3],a:r[4]};if(r=ye.hex8.exec(e))return{r:pe(r[1]),g:pe(r[2]),b:pe(r[3]),a:be(r[4]),format:n?"name":"hex8"};if(r=ye.hex6.exec(e))return{r:pe(r[1]),g:pe(r[2]),b:pe(r[3]),format:n?"name":"hex"};if(r=ye.hex4.exec(e))return{r:pe(r[1]+""+r[1]),g:pe(r[2]+""+r[2]),b:pe(r[3]+""+r[3]),a:be(r[4]+""+r[4]),format:n?"name":"hex8"};if(r=ye.hex3.exec(e))return{r:pe(r[1]+""+r[1]),g:pe(r[2]+""+r[2]),b:pe(r[3]+""+r[3]),format:n?"name":"hex"};return!1}(e));"object"==typeof e&&(Oe(e.r)&&Oe(e.g)&&Oe(e.b)?(d=e.r,l=e.g,c=e.b,t={r:255*ue(d,255),g:255*ue(l,255),b:255*ue(c,255)},s=!0,a="%"===String(e.r).slice(-1)?"prgb":"rgb"):Oe(e.h)&&Oe(e.s)&&Oe(e.v)?(r=ge(e.s),n=ge(e.v),t=function(e,t,o){e=6*ue(e,360),t=ue(t,100),o=ue(o,100);const r=Math.floor(e),n=e-r,i=o*(1-t),s=o*(1-n*t),a=o*(1-(1-n)*t),d=r%6,l=[o,s,i,i,a,o][d],c=[a,o,o,s,i,i][d],u=[i,i,a,o,o,qw][d];return{r:255*l,g:255*c,b:255*u}}(e.h,r,n),s=!0,a="hsv"):Oe(e.h)&&Oe(e.s)&&Oe(e.l)&&(r=ge(e.s),i=ge(e.l),t=function(e,t,o){let r,n,i;function s(e,t,o){return o<0&&(o+=1),o>1&&(o-=1),o<1/6?e+6*(t-e)*o:o<.5?t:o<2/3?e+(t-e)*(2/3-o)*6:e}if(e=ue(e,360),t=ue(t,100),o=ue(o,100),0===t)r=n=i=o;else{const a=o<.5?o*(1+t):o+t-o*t,d=2*o-a;r=s(d,a,e+1/3),n=s(d,a,e),i=s(d,a,e-1/3)}return{r:255*r,g:255*n,b:255*i}}(e.h,r,i),s=!0,a="hsl"),e.hasOwnProperty("a")&&(o=e.a));var d,l,c;return o=ce(o),{ok:s,format:e.format||a,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:o}}(e);this._originalInput=e,this._r=o.r,this._g=o.g,this._b=o.b,this._a=o.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||o.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=o.ok}isDark(){return this.getBrightness()<128}isLight(){return!this.isDark()}isValid(){return this._ok}getOriginalInput(){return this._originalInput}getFormat(){return this._format}getAlpha(){return this._a}getBrightness(){const e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3}getLuminance(){const e=this.toRgb(),t=e.r/255,o=e.g/255,r=e.b/255;return.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))}setAlpha(e){return this._a=ce(e),this._roundA=Math.round(100*this._a)/100,this}toHsv(){const e=H(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}}toHsvString(){const e=H(this._r,this._g,this._b),t=Math.round(360*e.h),o=Math.round(100*e.s),r=Math.round(100*e.v);return 1==this._a?`hsv(${t}, ${o}%, ${r}%)`:`hsva(${t}, ${o}%, ${r}%, ${this._roundA})`}toHsl(){const e=U(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}}toHslString(){const e=U(this._r,this._g,this._b),t=Math.round(360*e.h),o=Math.round(100*e.s),r=Math.round(100*e.l);return 1==this._a?`hsl(${t}, ${o}%, ${r}%)`:`hsla(${t}, ${o}%, ${r}%, ${this._roundA})`}toHex(e){return _(this._r,this._g,this._b,e)}toHexString(e){return"#"+this.toHex(e)}toHex8(e){return function(e,t,o,r,n){const i=[me(Math.round(e).toString(16)),me(Math.round(t).toString(16)),me(Math.round(o).toString(16)),me(fe(r))];if(n&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)&&i[3].charAt(0)==i[3].charAt(1))return i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0)+i[3].charAt(0);return i.join("")}(this._r,this._g,this._b,this._a,e)}toHex8String(e){return"#"+this.toHex8(e)}toRgb(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}}toRgbString(){return 1==this._a?`rgb(${Math.round(this._r)}, ${Math.round(this._g)}, ${Math.round(this._b)})`:`rgba(${Math.round(this._r)}, ${Math.round(this._g)}, ${Math.round(this._b)}, ${this._roundA})`}toPercentageRgb(){return{r:Math.round(100*ue(this._r,255))+"%",g:Math.round(100*ue(this._g,255))+"%",b:Math.round(100*ue(this._b,255))+"%",a:this._a}}toPercentageRgbString(){return 1==this._a?`rgb(${Math.round(100*ue(this._r,255))}%, ${Math.round(100*ue(this._g,255))}%, ${Math.round(100*ue(this._b,255))}%)`:`rgba(${Math.round(100*ue(this._r,255))}%, ${Math.round(100*ue(this._g,255))}%, ${Math.round(100*ue(this._b,255))}%, ${this._roundA})`}toName(){return 0===this._a?"transparent":!(this._a<1)&&(z.hexNames[_(this._r,this._g,this._b,!0)]||!1)}toFilter(e){const t="#"+K(this._r,this._g,this._b,this._a);let o=t;const r=this._gradientType?"GradientType = 1, ":"";if(e){const t=new z(e);o="#"+K(t._r,t._g,t._b,t._a)}return`progid:DXImageTransform.Microsoft.gradient(${r}startColorstr=${t},endColorstr=${o})`}toString(e){const t=!!e;e=e||this._format;let o=!1;const r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(o=this.toRgbString()),"prgb"===e&&(o=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(o=this.toHexString()),"hex3"===e&&(o=this.toHexString(!0)),"hex4"===e&&(o=this.toHex8String(!0)),"hex8"===e&&(o=this.toHex8String()),"name"===e&&(o=this.toName()),"hsl"===e&&(o=this.toHslString()),"hsv"===e&&(o=this.toHsvString()),o||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()}clone(){return new z(this.toString())}_applyModification(e,...t){const o=e(this,...t);return this._r=o._r,this._g=o._g,this._b=o._b,this.setAlpha(o._a),this}lighten(...e){return this._applyModification(te,...e)}brighten(...e){return this._applyModification(oe,...e)}darken(...e){return this._applyModification(re,...e)}desaturate(...e){return this._applyModification(Q,...e)}saturate(...e){return this._applyModification($,...e)}greyscale(...e){return this._applyModification(ee,...e)}spin(...e){return this._applyModification(ne,...e)}_applyCombination(e,...t){return e(this,...t)}analogous(...e){return this._applyCombination(de,...e)}complement(...e){return this._applyCombination(ie,...e)}monochromatic(...e){return this._applyCombination(le,...e)}splitcomplement(...e){return this._applyCombination(ae,...e)}triad(){return this._applyCombination(se,3)}tetrad(){return this._applyCombination(se,4)}static fromRatio(e,t){if("object"==typeof e){const t={};for(const o in e)e.hasOwnProperty(o)&&(t[o]="a"===o?e[o]:ge(e[o]));e=t}return new z(e,t)}static equals(e,t){return!(!e||!t)&&new z(e).toRgbString()===new z(t).toRgbString()}static random(){return z.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})}static mix(e,t,o){o=0===o?0:o||50;const r=new z(e).toRgb(),n=new z(t).toRgb(),i=o/100,s={r:(n.r-r.r)*i+r.r,g:(n.g-r.g)*i+r.g,b:(n.b-r.b)*i+r.b,a:(n.a-r.a)*i+r.a};return new z(s)}static readability(e,t){const o=new z(e),r=new z(t);return(Math.max(o.getLuminance(),r.getLuminance())+.05)/(Math.min(o.getLuminance(),r.getLuminance())+.05)}static isReadable(e,t,o){const r=z.readability(e,t);let n=!1;const i=function(e){let t,o;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),o=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==o&&"large"!==o&&(o="small");return{level:t,size:o}}(o);switch(i.level+i.size){case"AAsmall":case"AAAlarge":n=r>=4.5;break;case"AAlarge":n=r>=3;break;case"AAAsmall":n=r>=7}return n}static mostReadable(e,t,o={}){let r,n=null,i=0;const{includeFallbackColors:s,level:a,size:d}=o;for(const o of t)r=z.readability(e,o),r>i&&(i=r,n=new z(o));return z.isReadable(e,n,{level:a,size:d})||!s?n:(o.includeFallbackColors=!1,z.mostReadable(e,["#fff","#000"],o))}}function U(e,t,o){e=ue(e,255),t=ue(t,255),o=ue(o,255);const r=Math.max(e,t,o),n=Math.min(e,t,o);let i,s;const a=(r+n)/2;if(r==n)i=s=0;else{const d=r-n;switch(s=a>.5?d/(2-r-n):d/(r+n),r){case e:i=(t-o)/d+(t<o?6:0);break;case t:i=(o-e)/d+2;break;case o:i=(e-t)/d+4}i/=6}return{h:i,s,l:a}}function H(e,t,o){e=ue(e,255),t=ue(t,255),o=ue(o,255);const r=Math.max(e,t,o),n=Math.min(e,t,o);let i;const s=r,a=r-n,d=0===r?0:a/r;if(r==n)i=0;else{switch(r){case e:i=(t-o)/a+(t<o?6:0);break;case t:i=(o-e)/a+2;break;case o:i=(e-t)/a+4}i/=6}return{h:i,s:d,v:s}}function _(e,t,o,r){const n=[me(Math.round(e).toString(16)),me(Math.round(t).toString(16)),me(Math.round(o).toString(16))];return r&&n[0].charAt(0)==n[0].charAt(1)&&n[1].charAt(0)==n[1].charAt(1)&&n[2].charAt(0)==n[2].charAt(1)?n[0].charAt(0)+n[1].charAt(0)+n[2].charAt(0):n.join("")}function K(e,t,o,r){return[me(fe(r)),me(Math.round(e).toString(16)),me(Math.round(t).toString(16)),me(Math.round(o).toString(16))].join("")}function Q(e,t){t=0===t?0:t||10;const o=new z(e).toHsl();return o.s-=t/100,o.s=he(o.s),new z(o)}function $(e,t){t=0===t?0:t||10;const o=new z(e).toHsl();return o.s+=t/100,o.s=he(o.s),new z(o)}function ee(e){return new z(e).desaturate(100)}function te(e,t){t=0===t?0:t||10;const o=new z(e).toHsl();return o.l+=t/100,o.l=he(o.l),new z(o)}function oe(e,t){t=0===t?0:t||10;const o=new z(e).toRgb();return o.r=Math.max(0,Math.min(255,o.r-Math.round(-t/100*255))),o.g=Math.max(0,Math.min(255,o.g-Math.round(-t/100*255))),o.b=Math.max(0,Math.min(255,o.b-Math.round(-t/100*255))),new z(o)}function re(e,t){t=0===t?0:t||10;const o=new z(e).toHsl();return o.l-=t/100,o.l=he(o.l),new z(o)}function ne(e,t){const o=new z(e).toHsl(),r=(o.h+t)%360;return o.h=r<0?360+r:r,new z(o)}z.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},z.hexNames=function(e){const t={};for(const o in e)e.hasOwnProperty(o)&&(t[e[o]]=o);return t}(z.names);const ie=e=>{const t=new z(e).toHsl();return t.h=(t.h+180)%360,new z(t)},se=(e,t)=>{if(isNaN(t)||t<=0)throw new Error("Argument to polyad must be a positive number");const o=new z(e).toHsl(),r=[new z(e)],n=360/t;for(let e=1;e<t;e++)r.push(new z({h:(o.h+e*n)%360,s:o.s,l:o.l}));return r};function ae(e){const t=new z(e).toHsl(),o=t.h;return[new z(e),new z({h:(o+72)%360,s:t.s,l:t.l}),new z({h:(o+216)%360,s:t.s,l:t.l})]}function de(e,t,o){t=t||6,o=o||30;const r=new z(e).toHsl(),n=360/o,i=[new z(e)];for(r.h=(r.h-(n*t>>1)+720)%360;--t;)r.h=(r.h+n)%360,i.push(new z(r));return i}function le(e,t){t=t||6;const o=new z(e).toHsv(),r=o.h,n=o.s;let i=o.v;const s=[],a=1/t;for(;t--;)s.push(new z({h:r,s:n,v:i})),i=(i+a)%1;return s}function ce(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function ue(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");const o=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=Math.min(t,Math.max(0,parseFloat(e))),o&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function he(e){return Math.min(1,Math.max(0,e))}function pe(e){return parseInt(e,16)}function me(e){return 1==e.length?"0"+e:""+e}function ge(e){return e<=1&&(e=100*e+"%"),e}function fe(e){return Math.round(255*parseFloat(e)).toString(16)}function be(e){return pe(e)/255}const ye=(()=>{const e="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",t=`[\\s|\\(]+(${e})[,|\\s]+(${e})[,|\\s]+(${e})\\s*\\)?`,o=`[\\s|\\(]+(${e})[,|\\s]+(${e})[,|\\s]+(${e})[,|\\s]+(${e})\\s*\\)?`;return{CSS_UNIT:new RegExp(e),rgb:new RegExp("rgb"+t),rgba:new RegExp("rgba"+o),hsl:new RegExp("hsl"+t),hsla:new RegExp("hsla"+o),hsv:new RegExp("hsv"+t),hsva:new RegExp("hsva"+o),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}})();function Oe(e){return!!ye.CSS_UNIT.exec(e)}function Ce(e,t){e.decorations||(e.decorations={}),["top","right","bottom","left"].forEach((o=>{e.decorations[o]||(e.decorations[o]={}),e.decorations[o].style||(e.decorations[o].style={}),e.decorations[o].style.fontColor=t}))}function Se(e){const t={};if((e.primaryColor||e.dotsGradient)&&(t.dotsOptions={...t.dotsOptions,...e.primaryColor&&{color:e.primaryColor},...e.dotsGradient&&{gradient:e.dotsGradient}}),(e.secondaryColor||e.cornersGradient)&&(t.cornersSquareOptions={...t.cornersSquareOptions,...e.secondaryColor&&{color:e.secondaryColor},...e.cornersGradient&&{gradient:e.cornersGradient}},t.cornersDotOptions={...t.cornersDotOptions,...e.secondaryColor&&{color:e.secondaryColor}}),(e.thirdColor||e.cornersDotGradient)&&(t.cornersDotOptions={...t.cornersDotOptions,...e.thirdColor&&{color:e.thirdColor},...e.cornersDotGradient&&{gradient:e.cornersDotGradient}}),(e.backgroundColor||e.backgroundGradient)&&(t.backgroundOptions={...t.backgroundOptions,...e.backgroundColor&&{color:e.backgroundColor},...e.backgroundGradient&&{gradient:e.backgroundGradient}}),e.dotShape&&(t.dotsOptions={...t.dotsOptions,type:e.dotShape}),e.cornerSquareShape&&(t.cornersSquareOptions={...t.cornersSquareOptions,type:e.cornerSquareShape}),e.cornerDotShape&&(t.cornersDotOptions={...t.cornersDotOptions,type:e.cornerDotShape}),e.logo&&(t.image=e.logo),(void 0!==e.logoSize||e.logoMode||void 0!==e.logoMargin||e.logoBackgroundColor||void 0!==e.logoPadding||void 0!==e.logoRadius)&&(t.imageOptions={...t.imageOptions,...void 0!==e.logoSize&&{imageSize:e.logoSize},...e.logoMode&&{mode:e.logoMode},...void 0!==e.logoMargin&&{margin:e.logoMargin},...e.logoBackgroundColor&&{backgroundColor:e.logoBackgroundColor},...void 0!==e.logoPadding&&{padding:e.logoPadding},...void 0!==e.logoRadius&&{radius:e.logoRadius}}),e.borderColor||void 0!==e.borderThickness||void 0!==e.borderRadius||e.borderInnerColor||void 0!==e.borderInnerThickness||void 0!==e.borderInnerRadius||e.borderOuterColor||void 0!==e.borderOuterThickness||e.borderTextTop||e.borderTextRight||e.borderTextBottom||e.borderTextLeft||e.borderFontFace||void 0!==e.borderFontSize||e.borderFontColor||void 0!==e.borderLetterSpacing||e.borderTextTransform||e.borderFontWeight){t.borderOptions||(t.borderOptions={hasBorder:!0});const o=t.borderOptions;e.borderColor&&(o.color=e.borderColor),void 0!==e.borderThickness&&(o.thickness=e.borderThickness),void 0!==e.borderRadius&&(o.radius=String(e.borderRadius)),void 0===e.borderInnerColor&&void 0===e.borderInnerThickness||(o.borderInner||(o.borderInner={}),void 0!==e.borderInnerColor&&(o.borderInner.color=e.borderInnerColor),void 0!==e.borderInnerThickness&&(o.borderInner.thickness=e.borderInnerThickness)),void 0!==e.borderInnerRadius&&(o.inner||(o.inner={}),o.inner.radius=String(e.borderInnerRadius)),void 0===e.borderOuterColor&&void 0===e.borderOuterThickness||(o.borderOuter||(o.borderOuter={}),void 0!==e.borderOuterColor&&(o.borderOuter.color=e.borderOuterColor),void 0!==e.borderOuterThickness&&(o.borderOuter.thickness=e.borderOuterThickness));const r={};e.borderFontFace&&(r.fontFace=e.borderFontFace),void 0!==e.borderFontSize&&(r.fontSize=e.borderFontSize),e.borderFontColor&&(r.fontColor=e.borderFontColor),void 0!==e.borderLetterSpacing&&(r.letterSpacing=e.borderLetterSpacing),e.borderTextTransform&&(r.textTransform=e.borderTextTransform),e.borderFontWeight&&(r.fontWeight=e.borderFontWeight),o.decorations||(o.decorations={});const n=o.decorations?JSON.parse(JSON.stringify(o.decorations)):{};let i=!1;Object.keys(r).length>0&&(i=!0,["top","right","bottom","left"].forEach((e=>{n[e]||(n[e]={}),n[e].style||(n[e].style={}),n[e].style={...n[e].style,...r}}))),["top","right","bottom","left"].forEach((t=>{const o=`borderText${t.charAt(0).toUpperCase()+t.slice(1)}`,s=e[o];void 0!==s?(n[t]||(n[t]={}),n[t]={...n[t],value:s,enableText:!0,style:{...n[t]?.style||{},...r}},i=!0):n[t]?.value&&Object.keys(r).length>0&&!n[t]?.style&&(n[t].style||(n[t].style={}),n[t].style={...n[t].style,...r},i=!0)})),i&&(o.decorations=n)}if(!!(e.primaryColor||e.secondaryColor||e.thirdColor||e.backgroundColor)){t.borderOptions||(t.borderOptions={hasBorder:!0});const o=t.borderOptions;if(e.secondaryColor&&!e.borderColor){const t=new z(e.secondaryColor).isDark();o.color=new z(e.primaryColor).darken(t?-12:12).toString()}if(e.thirdColor&&!e.borderInnerColor&&(o.borderInner||(o.borderInner={}),o.borderInner.color=new z(e.thirdColor).darken(2).toString()),e.primaryColor&&!e.borderOuterColor&&(o.borderOuter=o.borderOuter||{},o.borderOuter.color=new z(e.primaryColor).darken(2).toString()),e.backgroundColor&&!e.borderFontColor&&o.color){const t=new z(e.backgroundColor),r=new z(o.color),n=z.readability(t,r),i=t.isDark();if(n<2){Ce(o,(i?t.lighten(15):t.darken(15)).toString())}else{Ce(o,(i?t.lighten(20):t.lighten(10)).toString())}}}return t}function ke(e){const t=[];return void 0!==e.logoSize&&("number"!=typeof e.logoSize||e.logoSize<0||e.logoSize>1)&&t.push("logoSize must be a number between 0 and 1."),{isValid:0===t.length,errors:t}}class we{constructor(){}close(){}}class ve extends we{constructor(e){super(),this.istream=e,this.buffer=0,this.buflen=0}readByte(){for(;this.buflen<8;){const e=this.istream.readByte();if(-1==e){if(0==this.buflen)return-1;throw new Error("unexpected end of file./"+this.buflen)}if(e=="=".charCodeAt(0))return this.buflen=0,-1;ve.isWhitespace(e)||(this.buffer=this.buffer<<6|ve.decode(e),this.buflen+=6)}const e=this.buffer>>>this.buflen-8&255;return this.buflen-=8,e}static isWhitespace(e){return e=="\v".charCodeAt(0)||e=="\t".charCodeAt(0)||e=="\r".charCodeAt(0)||e=="\n".charCodeAt(0)}static decode(e){if("A".charCodeAt(0)<=e&&e<="Z".charCodeAt(0))return e-"A".charCodeAt(0);if("a".charCodeAt(0)<=e&&e<="z".charCodeAt(0))return e-"a".charCodeAt(0)+26;if("0".charCodeAt(0)<=e&&e<="9".charCodeAt(0))return e-"0".charCodeAt(0)+52;if(e=="+".charCodeAt(0))return 62;if(e=="/".charCodeAt(0))return 63;throw new Error("c:"+e)}}class Ae extends we{constructor(e){super(),this.bytes=e,this.pos=0}readByte(){if(this.pos<this.bytes.length){const e=this.bytes[this.pos];return this.pos+=1,e}return-1}}(function(e,t){const o=(()=>{const o=new ve(new Ae(function(e){const t=[];for(let o=0;o<e.length;o+=1)t.push(e.charCodeAt(o));return t}(e))),r=()=>{const e=o.readByte();if(-1==e)throw new Error("eof");return e};let n=0;const i={};for(;;){const e=o.readByte();if(-1==e)break;const t=r(),s=r()<<8|r();i[String.fromCharCode(e<<8|t)]=s,n+=1}if(n!=t)throw new Error(n+"!="+t);return i})(),r="?".charCodeAt(0)})("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MIWC4zCGguQwh4LlMIiC5jCJgucwioLoMIuC6TCMguowjYLrMI6C7DCPgu0wkILuMJGC7zCSgvAwk4LxMJuBSjCcgUswnYFUMJ6BVTChg0AwooNBMKODQjCkg0MwpYNEMKaDRTCng0YwqINHMKmDSDCqg0kwq4NKMKyDSzCtg0wwroNNMK+DTjCwg08wsYNQMLKDUTCzg1IwtINTMLWDVDC2g1Uwt4NWMLiDVzC5g1gwuoNZMLuDWjC8g1swvYNcML6DXTC/g14wwINfMMGDYDDCg2Eww4NiMMSDYzDFg2QwxoNlMMeDZjDIg2cwyYNoMMqDaTDLg2owzINrMM2DbDDOg20wz4NuMNCDbzDRg3Aw0oNxMNODcjDUg3Mw1YN0MNaDdTDXg3Yw2IN3MNmDeDDag3kw24N6MNyDezDdg3ww3oN9MN+DfjDgg4Aw4YOBMOKDgjDjg4Mw5IOEMOWDhTDmg4Yw54OHMOiDiDDpg4kw6oOKMOuDizDsg4ww7YONMO6DjjDvg48w8IOQMPGDkTDyg5Iw84OTMPSDlDD1g5Uw9oOWMPuBRTD8gVsw/YFSMP6BU04AiOpOAZKaTgOOtU4HlpxOCI/kTgmOT04Kj+NOC4m6Tg2Vc04Ol15OEJigThGJTk4Uio5OFZihThaQok4XmcBOGIt1ThmVuE4ej+VOIZe8TiaVwE4qmKJOLZKGTjGYo04yi/hONpikTjiK2045kk9OO47lTjyYpU4/mKZOQpinTkOUVE5Fi3ZOS5RWTk2T4U5OjMFOT5ZSTlXlaE5WmKhOV4/mTliYqU5ZibNOXYvjTl6M7k5fludOYpukTnGXkE5zk/tOfoqjToCLVE6CmKpOhZirToaXuU6Il1xOiZGIToqYrU6LjpZOjJPxTo6YsE6RiV1OkozdTpSM3E6ViOROmJhqTpmYaU6bjbFOnIifTp6YsU6fmLJOoJizTqGWU06imLROpIzwTqWI5U