@pjaudiomv/qrcode-svg 1.0.2 → 1.0.3
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/README.md +8 -10
- package/dist/qrcode.js +0 -2
- package/package.json +2 -3
- package/dist/qrcode.js.map +0 -1
- package/src/qrcode.d.ts +0 -49
- package/src/qrcode.js +0 -1679
package/README.md
CHANGED
|
@@ -167,20 +167,18 @@ Output with `defs` and `use` elements
|
|
|
167
167
|
</html>
|
|
168
168
|
```
|
|
169
169
|
|
|
170
|
-
##
|
|
170
|
+
## Credits & lineage
|
|
171
171
|
|
|
172
|
-
|
|
172
|
+
This package is a modernized (ESM-only, browser-only, Vite-built, typed) fork of the `qrcode-svg` library. Full lineage:
|
|
173
173
|
|
|
174
|
-
|
|
174
|
+
- Originally created by [papnkukn/qrcode-svg](https://github.com/papnkukn/qrcode-svg).
|
|
175
|
+
- Forked and deobfuscated by [leMaik/qrcode-svg](https://github.com/leMaik/qrcode-svg/)
|
|
176
|
+
- This fork (`@pjaudiomv/qrcode-svg`) drops the Node CLI, `save()`/`fs` usage, and the ASCII helper; converts to ESM; adds Vite + Vitest + TypeScript declarations.
|
|
175
177
|
|
|
176
|
-
Thanks to
|
|
178
|
+
Thanks to [davidshimjs](https://github.com/davidshimjs/qrcodejs) for the base library, and to [Kazuhiko Arase](http://www.d-project.com/) for the original QR Code in JavaScript algorithm.
|
|
177
179
|
|
|
178
180
|
## Legal notice
|
|
179
181
|
|
|
180
|
-
|
|
181
|
-
Licensed under the MIT license:
|
|
182
|
-
http://www.opensource.org/licenses/mit-license.php
|
|
182
|
+
Licensed under the [MIT license](https://opensource.org/license/mit).
|
|
183
183
|
|
|
184
|
-
The word "QR Code" is registered trademark of DENSO WAVE INCORPORATED
|
|
185
|
-
http://www.denso-wave.com/qrcode/faqpatent-e.html
|
|
186
|
-
```
|
|
184
|
+
The word "QR Code" is a registered trademark of [DENSO WAVE INCORPORATED](https://www.qrcode.com/en/patent.html).
|
package/dist/qrcode.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pjaudiomv/qrcode-svg",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "A simple QR Code generator in pure JavaScript (browser, ESM)",
|
|
5
5
|
"author": "pjaudiomv",
|
|
6
6
|
"license": "MIT",
|
|
@@ -17,8 +17,7 @@
|
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
"files": [
|
|
20
|
-
"dist"
|
|
21
|
-
"src"
|
|
20
|
+
"dist"
|
|
22
21
|
],
|
|
23
22
|
"sideEffects": false,
|
|
24
23
|
"scripts": {
|
package/dist/qrcode.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"qrcode.js","names":[],"sources":["../src/qrcode.js"],"sourcesContent":["/**\n * @fileoverview\n * - modified davidshimjs/qrcodejs library for use in node.js\n * - Using the 'QRCode for Javascript library'\n * - Fixed dataset of 'QRCode for Javascript library' for support full-spec.\n * - this library has no dependencies.\n *\n * @version 0.9.1 (2016-02-12)\n * @author davidshimjs, papnkukn\n * @see <a href=\"http://www.d-project.com/\" target=\"_blank\">http://www.d-project.com/</a>\n * @see <a href=\"http://jeromeetienne.github.com/jquery-qrcode/\" target=\"_blank\">http://jeromeetienne.github.com/jquery-qrcode/</a>\n * @see <a href=\"https://github.com/davidshimjs/qrcodejs\" target=\"_blank\">https://github.com/davidshimjs/qrcodejs</a>\n */\n\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n\n//---------------------------------------------------------------------\n// QR8bitByte\n//---------------------------------------------------------------------\n\nfunction QR8bitByte(data) {\n this.mode = QRMode.MODE_8BIT_BYTE\n this.data = data\n this.parsedData = []\n\n // Added to support UTF-8 Characters\n for (let i = 0, l = this.data.length; i < l; i++) {\n const byteArray = []\n const code = this.data.charCodeAt(i)\n\n if (code > 0x10000) {\n byteArray[0] = 0xf0 | ((code & 0x1c0000) >>> 18)\n byteArray[1] = 0x80 | ((code & 0x3f000) >>> 12)\n byteArray[2] = 0x80 | ((code & 0xfc0) >>> 6)\n byteArray[3] = 0x80 | (code & 0x3f)\n } else if (code > 0x800) {\n byteArray[0] = 0xe0 | ((code & 0xf000) >>> 12)\n byteArray[1] = 0x80 | ((code & 0xfc0) >>> 6)\n byteArray[2] = 0x80 | (code & 0x3f)\n } else if (code > 0x80) {\n byteArray[0] = 0xc0 | ((code & 0x7c0) >>> 6)\n byteArray[1] = 0x80 | (code & 0x3f)\n } else {\n byteArray[0] = code\n }\n\n this.parsedData.push(byteArray)\n }\n\n this.parsedData = Array.prototype.concat.apply([], this.parsedData)\n\n if (this.parsedData.length != this.data.length) {\n this.parsedData.unshift(191)\n this.parsedData.unshift(187)\n this.parsedData.unshift(239)\n }\n}\n\nQR8bitByte.prototype = {\n getLength: function (buffer) {\n return this.parsedData.length\n },\n write: function (buffer) {\n for (let i = 0, l = this.parsedData.length; i < l; i++) {\n buffer.put(this.parsedData[i], 8)\n }\n },\n}\n\n//---------------------------------------------------------------------\n// QRCodeModel\n//---------------------------------------------------------------------\n\nfunction QRCodeModel(typeNumber, errorCorrectLevel) {\n this.typeNumber = typeNumber\n this.errorCorrectLevel = errorCorrectLevel\n this.modules = null\n this.moduleCount = 0\n this.dataCache = null\n this.dataList = []\n}\n\nQRCodeModel.prototype = {\n addData: function (data) {\n const newData = new QR8bitByte(data)\n this.dataList.push(newData)\n this.dataCache = null\n },\n\n isDark: function (row, col) {\n if (\n row < 0 ||\n this.moduleCount <= row ||\n col < 0 ||\n this.moduleCount <= col\n ) {\n throw new Error(row + ',' + col)\n }\n return this.modules[row][col]\n },\n\n getModuleCount: function () {\n return this.moduleCount\n },\n\n make: function () {\n // Calculate automatically typeNumber if provided is < 1\n if (this.typeNumber < 1) {\n let typeNumber = 1\n for (typeNumber = 1; typeNumber < 40; typeNumber++) {\n const rsBlocks = QRRSBlock.getRSBlocks(\n typeNumber,\n this.errorCorrectLevel,\n )\n\n const buffer = new QRBitBuffer()\n let totalDataCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount\n }\n\n for (var i = 0; i < this.dataList.length; i++) {\n const data = this.dataList[i]\n buffer.put(data.mode, 4)\n buffer.put(\n data.getLength(),\n QRUtil.getLengthInBits(data.mode, typeNumber),\n )\n data.write(buffer)\n }\n if (buffer.getLengthInBits() <= totalDataCount * 8) break\n }\n this.typeNumber = typeNumber\n }\n this.makeImpl(false, this.getBestMaskPattern())\n },\n\n makeImpl: function (test, maskPattern) {\n this.moduleCount = this.typeNumber * 4 + 17\n this.modules = new Array(this.moduleCount)\n\n for (let row = 0; row < this.moduleCount; row++) {\n this.modules[row] = new Array(this.moduleCount)\n\n for (let col = 0; col < this.moduleCount; col++) {\n this.modules[row][col] = null //(col + row) % 3;\n }\n }\n\n this.setupPositionProbePattern(0, 0)\n this.setupPositionProbePattern(this.moduleCount - 7, 0)\n this.setupPositionProbePattern(0, this.moduleCount - 7)\n this.setupPositionAdjustPattern()\n this.setupTimingPattern()\n this.setupTypeInfo(test, maskPattern)\n\n if (this.typeNumber >= 7) {\n this.setupTypeNumber(test)\n }\n\n if (this.dataCache == null) {\n this.dataCache = QRCodeModel.createData(\n this.typeNumber,\n this.errorCorrectLevel,\n this.dataList,\n )\n }\n\n this.mapData(this.dataCache, maskPattern)\n },\n\n setupPositionProbePattern: function (row, col) {\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || this.moduleCount <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || this.moduleCount <= col + c) continue\n\n if (\n (0 <= r && r <= 6 && (c == 0 || c == 6)) ||\n (0 <= c && c <= 6 && (r == 0 || r == 6)) ||\n (2 <= r && r <= 4 && 2 <= c && c <= 4)\n ) {\n this.modules[row + r][col + c] = true\n } else {\n this.modules[row + r][col + c] = false\n }\n }\n }\n },\n\n getBestMaskPattern: function () {\n let minLostPoint = 0\n let pattern = 0\n\n for (let i = 0; i < 8; i++) {\n this.makeImpl(true, i)\n\n const lostPoint = QRUtil.getLostPoint(this)\n\n if (i == 0 || minLostPoint > lostPoint) {\n minLostPoint = lostPoint\n pattern = i\n }\n }\n\n return pattern\n },\n\n createMovieClip: function (target_mc, instance_name, depth) {\n const qr_mc = target_mc.createEmptyMovieClip(instance_name, depth)\n const cs = 1\n\n this.make()\n\n for (let row = 0; row < this.modules.length; row++) {\n const y = row * cs\n\n for (let col = 0; col < this.modules[row].length; col++) {\n const x = col * cs\n const dark = this.modules[row][col]\n\n if (dark) {\n qr_mc.beginFill(0, 100)\n qr_mc.moveTo(x, y)\n qr_mc.lineTo(x + cs, y)\n qr_mc.lineTo(x + cs, y + cs)\n qr_mc.lineTo(x, y + cs)\n qr_mc.endFill()\n }\n }\n }\n\n return qr_mc\n },\n\n setupTimingPattern: function () {\n for (let r = 8; r < this.moduleCount - 8; r++) {\n if (this.modules[r][6] != null) {\n continue\n }\n this.modules[r][6] = r % 2 == 0\n }\n\n for (let c = 8; c < this.moduleCount - 8; c++) {\n if (this.modules[6][c] != null) {\n continue\n }\n this.modules[6][c] = c % 2 == 0\n }\n },\n\n setupPositionAdjustPattern: function () {\n const pos = QRUtil.getPatternPosition(this.typeNumber)\n\n for (let i = 0; i < pos.length; i++) {\n for (let j = 0; j < pos.length; j++) {\n const row = pos[i]\n const col = pos[j]\n\n if (this.modules[row][col] != null) {\n continue\n }\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (\n r == -2 ||\n r == 2 ||\n c == -2 ||\n c == 2 ||\n (r == 0 && c == 0)\n ) {\n this.modules[row + r][col + c] = true\n } else {\n this.modules[row + r][col + c] = false\n }\n }\n }\n }\n }\n },\n\n setupTypeNumber: function (test) {\n const bits = QRUtil.getBCHTypeNumber(this.typeNumber)\n\n for (var i = 0; i < 18; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n this.modules[Math.floor(i / 3)][\n (i % 3) + this.moduleCount - 8 - 3\n ] = mod\n }\n\n for (var i = 0; i < 18; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n this.modules[(i % 3) + this.moduleCount - 8 - 3][\n Math.floor(i / 3)\n ] = mod\n }\n },\n\n setupTypeInfo: function (test, maskPattern) {\n const data = (this.errorCorrectLevel << 3) | maskPattern\n const bits = QRUtil.getBCHTypeInfo(data)\n\n // vertical\n for (var i = 0; i < 15; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n\n if (i < 6) {\n this.modules[i][8] = mod\n } else if (i < 8) {\n this.modules[i + 1][8] = mod\n } else {\n this.modules[this.moduleCount - 15 + i][8] = mod\n }\n }\n\n // horizontal\n for (var i = 0; i < 15; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n\n if (i < 8) {\n this.modules[8][this.moduleCount - i - 1] = mod\n } else if (i < 9) {\n this.modules[8][15 - i - 1 + 1] = mod\n } else {\n this.modules[8][15 - i - 1] = mod\n }\n }\n\n // fixed module\n this.modules[this.moduleCount - 8][8] = !test\n },\n\n mapData: function (data, maskPattern) {\n let inc = -1\n let row = this.moduleCount - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = this.moduleCount - 1; col > 0; col -= 2) {\n if (col == 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (this.modules[row][col - c] == null) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = ((data[byteIndex] >>> bitIndex) & 1) == 1\n }\n\n const mask = QRUtil.getMask(maskPattern, row, col - c)\n\n if (mask) {\n dark = !dark\n }\n\n this.modules[row][col - c] = dark\n bitIndex--\n\n if (bitIndex == -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || this.moduleCount <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n },\n}\n\nQRCodeModel.PAD0 = 0xec\nQRCodeModel.PAD1 = 0x11\n\nQRCodeModel.createData = function (typeNumber, errorCorrectLevel, dataList) {\n const rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel)\n\n const buffer = new QRBitBuffer()\n\n for (var i = 0; i < dataList.length; i++) {\n const data = dataList[i]\n buffer.put(data.mode, 4)\n buffer.put(\n data.getLength(),\n QRUtil.getLengthInBits(data.mode, typeNumber),\n )\n data.write(buffer)\n }\n\n // calc num max data.\n let totalDataCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount\n }\n\n if (buffer.getLengthInBits() > totalDataCount * 8) {\n throw new Error(\n 'code length overflow. (' +\n buffer.getLengthInBits() +\n '>' +\n totalDataCount * 8 +\n ')',\n )\n }\n\n // end code\n if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n buffer.put(0, 4)\n }\n\n // padding\n while (buffer.getLengthInBits() % 8 != 0) {\n buffer.putBit(false)\n }\n\n // padding\n while (true) {\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break\n }\n buffer.put(QRCodeModel.PAD0, 8)\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break\n }\n buffer.put(QRCodeModel.PAD1, 8)\n }\n\n return QRCodeModel.createBytes(buffer, rsBlocks)\n}\n\nQRCodeModel.createBytes = function (buffer, rsBlocks) {\n let offset = 0\n\n let maxDcCount = 0\n let maxEcCount = 0\n\n const dcdata = new Array(rsBlocks.length)\n const ecdata = new Array(rsBlocks.length)\n\n for (var r = 0; r < rsBlocks.length; r++) {\n const dcCount = rsBlocks[r].dataCount\n const ecCount = rsBlocks[r].totalCount - dcCount\n\n maxDcCount = Math.max(maxDcCount, dcCount)\n maxEcCount = Math.max(maxEcCount, ecCount)\n\n dcdata[r] = new Array(dcCount)\n\n for (var i = 0; i < dcdata[r].length; i++) {\n dcdata[r][i] = 0xff & buffer.buffer[i + offset]\n }\n offset += dcCount\n\n const rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount)\n const rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1)\n\n const modPoly = rawPoly.mod(rsPoly)\n ecdata[r] = new Array(rsPoly.getLength() - 1)\n for (var i = 0; i < ecdata[r].length; i++) {\n const modIndex = i + modPoly.getLength() - ecdata[r].length\n ecdata[r][i] = modIndex >= 0 ? modPoly.get(modIndex) : 0\n }\n }\n\n let totalCodeCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalCodeCount += rsBlocks[i].totalCount\n }\n\n const data = new Array(totalCodeCount)\n let index = 0\n\n for (var i = 0; i < maxDcCount; i++) {\n for (var r = 0; r < rsBlocks.length; r++) {\n if (i < dcdata[r].length) {\n data[index++] = dcdata[r][i]\n }\n }\n }\n\n for (var i = 0; i < maxEcCount; i++) {\n for (var r = 0; r < rsBlocks.length; r++) {\n if (i < ecdata[r].length) {\n data[index++] = ecdata[r][i]\n }\n }\n }\n\n return data\n}\n\n//---------------------------------------------------------------------\n// QRMode\n//---------------------------------------------------------------------\n\nvar QRMode = {\n MODE_NUMBER: 1 << 0,\n MODE_ALPHA_NUM: 1 << 1,\n MODE_8BIT_BYTE: 1 << 2,\n MODE_KANJI: 1 << 3,\n}\n\n//---------------------------------------------------------------------\n// QRErrorCorrectLevel\n//---------------------------------------------------------------------\n\nconst QRErrorCorrectLevel = {\n L: 1,\n M: 0,\n Q: 3,\n H: 2,\n}\n\n//---------------------------------------------------------------------\n// QRMaskPattern\n//---------------------------------------------------------------------\n\nconst QRMaskPattern = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7,\n}\n\n//---------------------------------------------------------------------\n// QRUtil\n//---------------------------------------------------------------------\n\nvar QRUtil = {\n PATTERN_POSITION_TABLE: [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170],\n ],\n\n G15:\n (1 << 10) |\n (1 << 8) |\n (1 << 5) |\n (1 << 4) |\n (1 << 2) |\n (1 << 1) |\n (1 << 0),\n G18:\n (1 << 12) |\n (1 << 11) |\n (1 << 10) |\n (1 << 9) |\n (1 << 8) |\n (1 << 5) |\n (1 << 2) |\n (1 << 0),\n G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1),\n\n getBCHTypeInfo: function (data) {\n let d = data << 10\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n d ^=\n QRUtil.G15 <<\n (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15))\n }\n return ((data << 10) | d) ^ QRUtil.G15_MASK\n },\n\n getBCHTypeNumber: function (data) {\n let d = data << 12\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n d ^=\n QRUtil.G18 <<\n (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18))\n }\n return (data << 12) | d\n },\n\n getBCHDigit: function (data) {\n let digit = 0\n\n while (data != 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n },\n\n getPatternPosition: function (typeNumber) {\n return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]\n },\n\n getMask: function (maskPattern, i, j) {\n switch (maskPattern) {\n case QRMaskPattern.PATTERN000:\n return (i + j) % 2 == 0\n case QRMaskPattern.PATTERN001:\n return i % 2 == 0\n case QRMaskPattern.PATTERN010:\n return j % 3 == 0\n case QRMaskPattern.PATTERN011:\n return (i + j) % 3 == 0\n case QRMaskPattern.PATTERN100:\n return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0\n case QRMaskPattern.PATTERN101:\n return ((i * j) % 2) + ((i * j) % 3) == 0\n case QRMaskPattern.PATTERN110:\n return (((i * j) % 2) + ((i * j) % 3)) % 2 == 0\n case QRMaskPattern.PATTERN111:\n return (((i * j) % 3) + ((i + j) % 2)) % 2 == 0\n\n default:\n throw new Error('bad maskPattern:' + maskPattern)\n }\n },\n\n getErrorCorrectPolynomial: function (errorCorrectLength) {\n let a = new QRPolynomial([1], 0)\n\n for (let i = 0; i < errorCorrectLength; i++) {\n a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0))\n }\n\n return a\n },\n\n getLengthInBits: function (mode, type) {\n if (1 <= type && type < 10) {\n // 1 - 9\n\n switch (mode) {\n case QRMode.MODE_NUMBER:\n return 10\n case QRMode.MODE_ALPHA_NUM:\n return 9\n case QRMode.MODE_8BIT_BYTE:\n return 8\n case QRMode.MODE_KANJI:\n return 8\n default:\n throw new Error('mode:' + mode)\n }\n } else if (type < 27) {\n // 10 - 26\n\n switch (mode) {\n case QRMode.MODE_NUMBER:\n return 12\n case QRMode.MODE_ALPHA_NUM:\n return 11\n case QRMode.MODE_8BIT_BYTE:\n return 16\n case QRMode.MODE_KANJI:\n return 10\n default:\n throw new Error('mode:' + mode)\n }\n } else if (type < 41) {\n // 27 - 40\n\n switch (mode) {\n case QRMode.MODE_NUMBER:\n return 14\n case QRMode.MODE_ALPHA_NUM:\n return 13\n case QRMode.MODE_8BIT_BYTE:\n return 16\n case QRMode.MODE_KANJI:\n return 12\n default:\n throw new Error('mode:' + mode)\n }\n } else {\n throw new Error('type:' + type)\n }\n },\n\n getLostPoint: function (qrCode) {\n const moduleCount = qrCode.getModuleCount()\n\n let lostPoint = 0\n\n // LEVEL1\n\n for (var row = 0; row < moduleCount; row++) {\n for (var col = 0; col < moduleCount; col++) {\n let sameCount = 0\n const dark = qrCode.isDark(row, col)\n\n for (let r = -1; r <= 1; r++) {\n if (row + r < 0 || moduleCount <= row + r) {\n continue\n }\n\n for (let c = -1; c <= 1; c++) {\n if (col + c < 0 || moduleCount <= col + c) {\n continue\n }\n\n if (r == 0 && c == 0) {\n continue\n }\n\n if (dark == qrCode.isDark(row + r, col + c)) {\n sameCount++\n }\n }\n }\n\n if (sameCount > 5) {\n lostPoint += 3 + sameCount - 5\n }\n }\n }\n\n // LEVEL2\n\n for (var row = 0; row < moduleCount - 1; row++) {\n for (var col = 0; col < moduleCount - 1; col++) {\n let count = 0\n if (qrCode.isDark(row, col)) count++\n if (qrCode.isDark(row + 1, col)) count++\n if (qrCode.isDark(row, col + 1)) count++\n if (qrCode.isDark(row + 1, col + 1)) count++\n if (count == 0 || count == 4) {\n lostPoint += 3\n }\n }\n }\n\n // LEVEL3\n\n for (var row = 0; row < moduleCount; row++) {\n for (var col = 0; col < moduleCount - 6; col++) {\n if (\n qrCode.isDark(row, col) &&\n !qrCode.isDark(row, col + 1) &&\n qrCode.isDark(row, col + 2) &&\n qrCode.isDark(row, col + 3) &&\n qrCode.isDark(row, col + 4) &&\n !qrCode.isDark(row, col + 5) &&\n qrCode.isDark(row, col + 6)\n ) {\n lostPoint += 40\n }\n }\n }\n\n for (var col = 0; col < moduleCount; col++) {\n for (var row = 0; row < moduleCount - 6; row++) {\n if (\n qrCode.isDark(row, col) &&\n !qrCode.isDark(row + 1, col) &&\n qrCode.isDark(row + 2, col) &&\n qrCode.isDark(row + 3, col) &&\n qrCode.isDark(row + 4, col) &&\n !qrCode.isDark(row + 5, col) &&\n qrCode.isDark(row + 6, col)\n ) {\n lostPoint += 40\n }\n }\n }\n\n // LEVEL4\n\n let darkCount = 0\n\n for (var col = 0; col < moduleCount; col++) {\n for (var row = 0; row < moduleCount; row++) {\n if (qrCode.isDark(row, col)) {\n darkCount++\n }\n }\n }\n\n const ratio =\n Math.abs((100 * darkCount) / moduleCount / moduleCount - 50) / 5\n lostPoint += ratio * 10\n\n return lostPoint\n },\n}\n\n//---------------------------------------------------------------------\n// QRMath\n//---------------------------------------------------------------------\n\nvar QRMath = {\n glog: function (n) {\n if (n < 1) {\n throw new Error('glog(' + n + ')')\n }\n\n return QRMath.LOG_TABLE[n]\n },\n\n gexp: function (n) {\n while (n < 0) {\n n += 255\n }\n\n while (n >= 256) {\n n -= 255\n }\n\n return QRMath.EXP_TABLE[n]\n },\n\n EXP_TABLE: new Array(256),\n\n LOG_TABLE: new Array(256),\n}\n\nfor (var i = 0; i < 8; i++) {\n QRMath.EXP_TABLE[i] = 1 << i\n}\nfor (var i = 8; i < 256; i++) {\n QRMath.EXP_TABLE[i] =\n QRMath.EXP_TABLE[i - 4] ^\n QRMath.EXP_TABLE[i - 5] ^\n QRMath.EXP_TABLE[i - 6] ^\n QRMath.EXP_TABLE[i - 8]\n}\nfor (var i = 0; i < 255; i++) {\n QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i\n}\n\n//---------------------------------------------------------------------\n// QRPolynomial\n//---------------------------------------------------------------------\n\nfunction QRPolynomial(num, shift) {\n if (num.length == undefined) {\n throw new Error(num.length + '/' + shift)\n }\n\n let offset = 0\n\n while (offset < num.length && num[offset] == 0) {\n offset++\n }\n\n this.num = new Array(num.length - offset + shift)\n for (let i = 0; i < num.length - offset; i++) {\n this.num[i] = num[i + offset]\n }\n}\n\nQRPolynomial.prototype = {\n get: function (index) {\n return this.num[index]\n },\n\n getLength: function () {\n return this.num.length\n },\n\n multiply: function (e) {\n const num = new Array(this.getLength() + e.getLength() - 1)\n\n for (let i = 0; i < this.getLength(); i++) {\n for (let j = 0; j < e.getLength(); j++) {\n num[i + j] ^= QRMath.gexp(\n QRMath.glog(this.get(i)) + QRMath.glog(e.get(j)),\n )\n }\n }\n\n return new QRPolynomial(num, 0)\n },\n\n mod: function (e) {\n if (this.getLength() - e.getLength() < 0) {\n return this\n }\n\n const ratio = QRMath.glog(this.get(0)) - QRMath.glog(e.get(0))\n\n const num = new Array(this.getLength())\n\n for (var i = 0; i < this.getLength(); i++) {\n num[i] = this.get(i)\n }\n\n for (var i = 0; i < e.getLength(); i++) {\n num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio)\n }\n\n // recursive call\n return new QRPolynomial(num, 0).mod(e)\n },\n}\n\n//---------------------------------------------------------------------\n// QRRSBlock\n//---------------------------------------------------------------------\n\nfunction QRRSBlock(totalCount, dataCount) {\n this.totalCount = totalCount\n this.dataCount = dataCount\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [\n // L\n // M\n // Q\n // H\n\n // 1\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n\n // 2\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n\n // 3\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n\n // 4\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n\n // 5\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n\n // 6\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n\n // 7\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n\n // 8\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n\n // 9\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n\n // 10\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n\n // 11\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n\n // 12\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n\n // 13\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n\n // 14\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n\n // 15\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12],\n\n // 16\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n\n // 17\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n\n // 18\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n\n // 19\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n\n // 20\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n\n // 21\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n\n // 22\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n\n // 23\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n\n // 24\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n\n // 25\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n\n // 26\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n\n // 27\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n\n // 28\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n\n // 29\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n\n // 30\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n\n // 31\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n\n // 32\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n\n // 33\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n\n // 34\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n\n // 35\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n\n // 36\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n\n // 37\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n\n // 38\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n\n // 39\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n\n // 40\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16],\n]\n\nQRRSBlock.getRSBlocks = function (typeNumber, errorCorrectLevel) {\n const rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel)\n\n if (rsBlock == undefined) {\n throw new Error(\n 'bad rs block @ typeNumber:' +\n typeNumber +\n '/errorCorrectLevel:' +\n errorCorrectLevel,\n )\n }\n\n const length = rsBlock.length / 3\n\n const list = []\n\n for (let i = 0; i < length; i++) {\n const count = rsBlock[i * 3 + 0]\n const totalCount = rsBlock[i * 3 + 1]\n const dataCount = rsBlock[i * 3 + 2]\n\n for (let j = 0; j < count; j++) {\n list.push(new QRRSBlock(totalCount, dataCount))\n }\n }\n\n return list\n}\n\nQRRSBlock.getRsBlockTable = function (typeNumber, errorCorrectLevel) {\n switch (errorCorrectLevel) {\n case QRErrorCorrectLevel.L:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0]\n case QRErrorCorrectLevel.M:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1]\n case QRErrorCorrectLevel.Q:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2]\n case QRErrorCorrectLevel.H:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3]\n default:\n return undefined\n }\n}\n\n//---------------------------------------------------------------------\n// QRBitBuffer\n//---------------------------------------------------------------------\n\nfunction QRBitBuffer() {\n this.buffer = []\n this.length = 0\n}\n\nQRBitBuffer.prototype = {\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - (index % 8))) & 1) == 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) == 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= 0x80 >>> (this.length % 8)\n }\n\n this.length++\n },\n}\n\nconst QRCodeLimitLength = [\n [17, 14, 11, 7],\n [32, 26, 20, 14],\n [53, 42, 32, 24],\n [78, 62, 46, 34],\n [106, 84, 60, 44],\n [134, 106, 74, 58],\n [154, 122, 86, 64],\n [192, 152, 108, 84],\n [230, 180, 130, 98],\n [271, 213, 151, 119],\n [321, 251, 177, 137],\n [367, 287, 203, 155],\n [425, 331, 241, 177],\n [458, 362, 258, 194],\n [520, 412, 292, 220],\n [586, 450, 322, 250],\n [644, 504, 364, 280],\n [718, 560, 394, 310],\n [792, 624, 442, 338],\n [858, 666, 482, 382],\n [929, 711, 509, 403],\n [1003, 779, 565, 439],\n [1091, 857, 611, 461],\n [1171, 911, 661, 511],\n [1273, 997, 715, 535],\n [1367, 1059, 751, 593],\n [1465, 1125, 805, 625],\n [1528, 1190, 868, 658],\n [1628, 1264, 908, 698],\n [1732, 1370, 982, 742],\n [1840, 1452, 1030, 790],\n [1952, 1538, 1112, 842],\n [2068, 1628, 1168, 898],\n [2188, 1722, 1228, 958],\n [2303, 1809, 1283, 983],\n [2431, 1911, 1351, 1051],\n [2563, 1989, 1423, 1093],\n [2699, 2099, 1499, 1139],\n [2809, 2213, 1579, 1219],\n [2953, 2331, 1663, 1273],\n]\n\n/** Constructor */\nfunction QRCode(options) {\n const instance = this\n\n //Default options\n this.options = {\n padding: 4,\n width: 256,\n height: 256,\n typeNumber: 4,\n color: '#000000',\n background: '#ffffff',\n ecl: 'M',\n }\n\n //In case the options is string\n if (typeof options === 'string') {\n options = {\n content: options,\n }\n }\n\n //Merge options\n if (options) {\n for (const i in options) {\n this.options[i] = options[i]\n }\n }\n\n if (typeof this.options.content !== 'string') {\n throw new Error(\"Expected 'content' as string!\")\n }\n\n if (\n this.options.content.length ===\n 0 /* || this.options.content.length > 7089 */\n ) {\n throw new Error(\"Expected 'content' to be non-empty!\")\n }\n\n if (!(this.options.padding >= 0)) {\n throw new Error(\"Expected 'padding' value to be non-negative!\")\n }\n\n if (!(this.options.width > 0) || !(this.options.height > 0)) {\n throw new Error(\n \"Expected 'width' or 'height' value to be higher than zero!\",\n )\n }\n\n //Gets the error correction level\n function _getErrorCorrectLevel(ecl) {\n switch (ecl) {\n case 'L':\n return QRErrorCorrectLevel.L\n\n case 'M':\n return QRErrorCorrectLevel.M\n\n case 'Q':\n return QRErrorCorrectLevel.Q\n\n case 'H':\n return QRErrorCorrectLevel.H\n\n default:\n throw new Error('Unknwon error correction level: ' + ecl)\n }\n }\n\n //Get type number\n function _getTypeNumber(content, ecl) {\n const length = _getUTF8Length(content)\n\n let type = 1\n let limit = 0\n for (let i = 0, len = QRCodeLimitLength.length; i <= len; i++) {\n const table = QRCodeLimitLength[i]\n if (!table) {\n throw new Error(\n 'Content too long: expected ' +\n limit +\n ' but got ' +\n length,\n )\n }\n\n switch (ecl) {\n case 'L':\n limit = table[0]\n break\n\n case 'M':\n limit = table[1]\n break\n\n case 'Q':\n limit = table[2]\n break\n\n case 'H':\n limit = table[3]\n break\n\n default:\n throw new Error('Unknwon error correction level: ' + ecl)\n }\n\n if (length <= limit) {\n break\n }\n\n type++\n }\n\n if (type > QRCodeLimitLength.length) {\n throw new Error('Content too long')\n }\n\n return type\n }\n\n //Gets text length\n function _getUTF8Length(content) {\n const result = encodeURI(content)\n .toString()\n .replace(/\\%[0-9a-fA-F]{2}/g, 'a')\n return result.length + (result.length != content ? 3 : 0)\n }\n\n //Generate QR Code matrix\n const content = this.options.content\n const type = _getTypeNumber(content, this.options.ecl)\n const ecl = _getErrorCorrectLevel(this.options.ecl)\n this.qrcode = new QRCodeModel(type, ecl)\n this.qrcode.addData(content)\n this.qrcode.make()\n}\n\n/** Generates QR Code as SVG image */\nQRCode.prototype.svg = function (opt) {\n const options = this.options || {}\n const modules = this.qrcode.modules\n\n if (typeof opt == 'undefined') {\n opt = { container: options.container || 'svg' }\n }\n\n //Apply new lines and indents in SVG?\n const pretty =\n typeof options.pretty != 'undefined' ? !!options.pretty : true\n\n const indent = pretty ? ' ' : ''\n const EOL = pretty ? '\\r\\n' : ''\n const width = options.width\n const height = options.height\n const length = modules.length\n const xsize = width / (length + 2 * options.padding)\n const ysize = height / (length + 2 * options.padding)\n\n //Join (union, merge) rectangles into one shape?\n const join =\n opt.container == 'path-data' ||\n (typeof options.join != 'undefined' ? !!options.join : false)\n\n //Swap the X and Y modules, pull request #2\n const swap = typeof options.swap != 'undefined' ? !!options.swap : false\n\n //Apply <?xml...?> declaration in SVG?\n const xmlDeclaration =\n typeof options.xmlDeclaration != 'undefined'\n ? !!options.xmlDeclaration\n : true\n\n //Populate with predefined shape instead of \"rect\" elements, thanks to @kkocdko\n const predefined =\n typeof options.predefined != 'undefined' ? !!options.predefined : false\n const defs = predefined\n ? indent +\n '<defs><path id=\"qrmodule\" d=\"M0 0 h' +\n ysize +\n ' v' +\n xsize +\n ' H0 z\" style=\"fill:' +\n options.color +\n ';shape-rendering:crispEdges;\" /></defs>' +\n EOL\n : ''\n\n //Background rectangle\n const bgrect =\n indent +\n '<rect x=\"0\" y=\"0\" width=\"' +\n width +\n '\" height=\"' +\n height +\n '\" style=\"fill:' +\n options.background +\n ';shape-rendering:crispEdges;\"/>' +\n EOL\n\n //Rectangles representing modules\n let modrect = ''\n let pathdata = ''\n\n for (let y = 0; y < length; y++) {\n for (let x = 0; x < length; x++) {\n const module = modules[x][y]\n if (module) {\n let px = x * xsize + options.padding * xsize\n let py = y * ysize + options.padding * ysize\n\n //Some users have had issues with the QR Code, thanks to @danioso for the solution\n if (swap) {\n const t = px\n px = py\n py = t\n }\n\n if (join) {\n //Module as a part of svg path data, thanks to @danioso\n let w = xsize + px\n let h = ysize + py\n\n px = Number.isInteger(px) ? Number(px) : px.toFixed(2)\n py = Number.isInteger(py) ? Number(py) : py.toFixed(2)\n w = Number.isInteger(w) ? Number(w) : w.toFixed(2)\n h = Number.isInteger(h) ? Number(h) : h.toFixed(2)\n\n pathdata +=\n 'M' +\n px +\n ',' +\n py +\n ' V' +\n h +\n ' H' +\n w +\n ' V' +\n py +\n ' H' +\n px +\n ' Z '\n } else if (predefined) {\n //Module as a predefined shape, thanks to @kkocdko\n modrect +=\n indent +\n '<use x=\"' +\n px.toString() +\n '\" y=\"' +\n py.toString() +\n '\" href=\"#qrmodule\" />' +\n EOL\n } else {\n //Module as rectangle element\n modrect +=\n indent +\n '<rect x=\"' +\n px.toString() +\n '\" y=\"' +\n py.toString() +\n '\" width=\"' +\n xsize +\n '\" height=\"' +\n ysize +\n '\" style=\"fill:' +\n options.color +\n ';shape-rendering:crispEdges;\"/>' +\n EOL\n }\n }\n }\n }\n\n if (join) {\n modrect =\n indent +\n '<path x=\"0\" y=\"0\" style=\"fill:' +\n options.color +\n ';shape-rendering:crispEdges;\" d=\"' +\n pathdata +\n '\" />'\n }\n\n let svg = ''\n switch (opt.container) {\n //Wrapped in SVG document\n case 'svg':\n if (xmlDeclaration) {\n svg += '<?xml version=\"1.0\" standalone=\"yes\"?>' + EOL\n }\n svg +=\n '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"' +\n width +\n '\" height=\"' +\n height +\n '\">' +\n EOL\n svg += defs + bgrect + modrect\n svg += '</svg>'\n break\n\n //Viewbox for responsive use in a browser, thanks to @danioso\n case 'svg-viewbox':\n if (xmlDeclaration) {\n svg += '<?xml version=\"1.0\" standalone=\"yes\"?>' + EOL\n }\n svg +=\n '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 ' +\n width +\n ' ' +\n height +\n '\">' +\n EOL\n svg += defs + bgrect + modrect\n svg += '</svg>'\n break\n\n //Wrapped in group element\n case 'g':\n svg += '<g width=\"' + width + '\" height=\"' + height + '\">' + EOL\n svg += defs + bgrect + modrect\n svg += '</g>'\n break\n\n //SVG path data only\n case 'path-data':\n svg = pathdata\n break\n\n //Without a container\n default: //Clear indents on each line\n svg += (defs + bgrect + modrect).replace(/^\\s+/, '')\n break\n }\n\n return svg\n}\n\nexport default QRCode\n"],"mappings":";AAkCA,SAAS,EAAW,GAAM;AAGtB,CAFA,KAAK,OAAO,EAAO,gBACnB,KAAK,OAAO,GACZ,KAAK,aAAa,EAAE;AAGpB,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK;EAC9C,IAAM,IAAY,EAAE,EACd,IAAO,KAAK,KAAK,WAAW,EAAE;AAkBpC,EAhBI,IAAO,SACP,EAAU,KAAK,OAAS,IAAO,aAAc,IAC7C,EAAU,KAAK,OAAS,IAAO,YAAa,IAC5C,EAAU,KAAK,OAAS,IAAO,UAAW,GAC1C,EAAU,KAAK,MAAQ,IAAO,MACvB,IAAO,QACd,EAAU,KAAK,OAAS,IAAO,WAAY,IAC3C,EAAU,KAAK,OAAS,IAAO,UAAW,GAC1C,EAAU,KAAK,MAAQ,IAAO,MACvB,IAAO,OACd,EAAU,KAAK,OAAS,IAAO,UAAW,GAC1C,EAAU,KAAK,MAAQ,IAAO,MAE9B,EAAU,KAAK,GAGnB,KAAK,WAAW,KAAK,EAAU;;AAKnC,CAFA,KAAK,aAAa,MAAM,UAAU,OAAO,MAAM,EAAE,EAAE,KAAK,WAAW,EAE/D,KAAK,WAAW,UAAU,KAAK,KAAK,WACpC,KAAK,WAAW,QAAQ,IAAI,EAC5B,KAAK,WAAW,QAAQ,IAAI,EAC5B,KAAK,WAAW,QAAQ,IAAI;;AAIpC,EAAW,YAAY;CACnB,WAAW,SAAU,GAAQ;AACzB,SAAO,KAAK,WAAW;;CAE3B,OAAO,SAAU,GAAQ;AACrB,OAAK,IAAI,IAAI,GAAG,IAAI,KAAK,WAAW,QAAQ,IAAI,GAAG,IAC/C,GAAO,IAAI,KAAK,WAAW,IAAI,EAAE;;CAG5C;AAMD,SAAS,EAAY,GAAY,GAAmB;AAMhD,CALA,KAAK,aAAa,GAClB,KAAK,oBAAoB,GACzB,KAAK,UAAU,MACf,KAAK,cAAc,GACnB,KAAK,YAAY,MACjB,KAAK,WAAW,EAAE;;AAGtB,EAAY,YAAY;CACpB,SAAS,SAAU,GAAM;EACrB,IAAM,IAAU,IAAI,EAAW,EAAK;AAEpC,EADA,KAAK,SAAS,KAAK,EAAQ,EAC3B,KAAK,YAAY;;CAGrB,QAAQ,SAAU,GAAK,GAAK;AACxB,MACI,IAAM,KACN,KAAK,eAAe,KACpB,IAAM,KACN,KAAK,eAAe,EAEpB,OAAU,MAAM,IAAM,MAAM,EAAI;AAEpC,SAAO,KAAK,QAAQ,GAAK;;CAG7B,gBAAgB,WAAY;AACxB,SAAO,KAAK;;CAGhB,MAAM,WAAY;AAEd,MAAI,KAAK,aAAa,GAAG;GACrB,IAAI,IAAa;AACjB,QAAK,IAAa,GAAG,IAAa,IAAI,KAAc;IAChD,IAAM,IAAW,EAAU,YACvB,GACA,KAAK,kBACR,EAEK,IAAS,IAAI,GAAa,EAC5B,IAAiB;AACrB,SAAK,IAAI,IAAI,GAAG,IAAI,EAAS,QAAQ,IACjC,MAAkB,EAAS,GAAG;AAGlC,SAAK,IAAI,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,KAAK;KAC3C,IAAM,IAAO,KAAK,SAAS;AAM3B,KALA,EAAO,IAAI,EAAK,MAAM,EAAE,EACxB,EAAO,IACH,EAAK,WAAW,EAChB,EAAO,gBAAgB,EAAK,MAAM,EAAW,CAChD,EACD,EAAK,MAAM,EAAO;;AAEtB,QAAI,EAAO,iBAAiB,IAAI,IAAiB,EAAG;;AAExD,QAAK,aAAa;;AAEtB,OAAK,SAAS,IAAO,KAAK,oBAAoB,CAAC;;CAGnD,UAAU,SAAU,GAAM,GAAa;AAEnC,EADA,KAAK,cAAc,KAAK,aAAa,IAAI,IACzC,KAAK,UAAc,MAAM,KAAK,YAAY;AAE1C,OAAK,IAAI,IAAM,GAAG,IAAM,KAAK,aAAa,KAAO;AAC7C,QAAK,QAAQ,KAAW,MAAM,KAAK,YAAY;AAE/C,QAAK,IAAI,IAAM,GAAG,IAAM,KAAK,aAAa,IACtC,MAAK,QAAQ,GAAK,KAAO;;AAuBjC,EAnBA,KAAK,0BAA0B,GAAG,EAAE,EACpC,KAAK,0BAA0B,KAAK,cAAc,GAAG,EAAE,EACvD,KAAK,0BAA0B,GAAG,KAAK,cAAc,EAAE,EACvD,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,EACzB,KAAK,cAAc,GAAM,EAAY,EAEjC,KAAK,cAAc,KACnB,KAAK,gBAAgB,EAAK,EAG9B,AACI,KAAK,cAAY,EAAY,WACzB,KAAK,YACL,KAAK,mBACL,KAAK,SACR,EAGL,KAAK,QAAQ,KAAK,WAAW,EAAY;;CAG7C,2BAA2B,SAAU,GAAK,GAAK;AAC3C,OAAK,IAAI,IAAI,IAAI,KAAK,GAAG,IACjB,WAAM,KAAK,MAAM,KAAK,eAAe,IAAM,GAE/C,MAAK,IAAI,IAAI,IAAI,KAAK,GAAG,IACjB,KAAM,KAAK,MAAM,KAAK,eAAe,IAAM,MAG1C,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MACpC,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,MACpC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAEpC,KAAK,QAAQ,IAAM,GAAG,IAAM,KAAK,KAEjC,KAAK,QAAQ,IAAM,GAAG,IAAM,KAAK;;CAMjD,oBAAoB,WAAY;EAC5B,IAAI,IAAe,GACf,IAAU;AAEd,OAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK;AACxB,QAAK,SAAS,IAAM,EAAE;GAEtB,IAAM,IAAY,EAAO,aAAa,KAAK;AAE3C,IAAI,KAAK,KAAK,IAAe,OACzB,IAAe,GACf,IAAU;;AAIlB,SAAO;;CAGX,iBAAiB,SAAU,GAAW,GAAe,GAAO;EACxD,IAAM,IAAQ,EAAU,qBAAqB,GAAe,EAAM;AAGlE,OAAK,MAAM;AAEX,OAAK,IAAI,IAAM,GAAG,IAAM,KAAK,QAAQ,QAAQ,KAAO;GAChD,IAAM,IAAI,IAAM;AAEhB,QAAK,IAAI,IAAM,GAAG,IAAM,KAAK,QAAQ,GAAK,QAAQ,KAAO;IACrD,IAAM,IAAI,IAAM;AAGhB,IAFa,KAAK,QAAQ,GAAK,OAG3B,EAAM,UAAU,GAAG,IAAI,EACvB,EAAM,OAAO,GAAG,EAAE,EAClB,EAAM,OAAO,IAAI,GAAI,EAAE,EACvB,EAAM,OAAO,IAAI,GAAI,IAAI,EAAG,EAC5B,EAAM,OAAO,GAAG,IAAI,EAAG,EACvB,EAAM,SAAS;;;AAK3B,SAAO;;CAGX,oBAAoB,WAAY;AAC5B,OAAK,IAAI,IAAI,GAAG,IAAI,KAAK,cAAc,GAAG,IAClC,MAAK,QAAQ,GAAG,OAGpB,KAAK,QAAQ,GAAG,KAAK,IAAI,KAAK;AAGlC,OAAK,IAAI,IAAI,GAAG,IAAI,KAAK,cAAc,GAAG,IAClC,MAAK,QAAQ,GAAG,OAGpB,KAAK,QAAQ,GAAG,KAAK,IAAI,KAAK;;CAItC,4BAA4B,WAAY;EACpC,IAAM,IAAM,EAAO,mBAAmB,KAAK,WAAW;AAEtD,OAAK,IAAI,IAAI,GAAG,IAAI,EAAI,QAAQ,IAC5B,MAAK,IAAI,IAAI,GAAG,IAAI,EAAI,QAAQ,KAAK;GACjC,IAAM,IAAM,EAAI,IACV,IAAM,EAAI;AAEZ,YAAK,QAAQ,GAAK,MAAQ,KAI9B,MAAK,IAAI,IAAI,IAAI,KAAK,GAAG,IACrB,MAAK,IAAI,IAAI,IAAI,KAAK,GAAG,IACrB,CACI,KAAK,MACL,KAAK,KACL,KAAK,MACL,KAAK,KACJ,KAAK,KAAK,KAAK,IAEhB,KAAK,QAAQ,IAAM,GAAG,IAAM,KAAK,KAEjC,KAAK,QAAQ,IAAM,GAAG,IAAM,KAAK;;;CAQzD,iBAAiB,SAAU,GAAM;EAC7B,IAAM,IAAO,EAAO,iBAAiB,KAAK,WAAW;AAErD,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK;GACzB,IAAI,IAAM,CAAC,MAAU,KAAQ,IAAK,MAAM;AACxC,QAAK,QAAQ,KAAK,MAAM,IAAI,EAAE,EACzB,IAAI,IAAK,KAAK,cAAc,IAAI,KACjC;;AAGR,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK;GACzB,IAAI,IAAM,CAAC,MAAU,KAAQ,IAAK,MAAM;AACxC,QAAK,QAAS,IAAI,IAAK,KAAK,cAAc,IAAI,GAC1C,KAAK,MAAM,IAAI,EAAE,IACjB;;;CAIZ,eAAe,SAAU,GAAM,GAAa;EACxC,IAAM,IAAQ,KAAK,qBAAqB,IAAK,GACvC,IAAO,EAAO,eAAe,EAAK;AAGxC,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK;GACzB,IAAI,IAAM,CAAC,MAAU,KAAQ,IAAK,MAAM;AAExC,GAAI,IAAI,IACJ,KAAK,QAAQ,GAAG,KAAK,IACd,IAAI,IACX,KAAK,QAAQ,IAAI,GAAG,KAAK,IAEzB,KAAK,QAAQ,KAAK,cAAc,KAAK,GAAG,KAAK;;AAKrD,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK;GACzB,IAAI,IAAM,CAAC,MAAU,KAAQ,IAAK,MAAM;AAExC,GAAI,IAAI,IACJ,KAAK,QAAQ,GAAG,KAAK,cAAc,IAAI,KAAK,IACrC,IAAI,IACX,KAAK,QAAQ,GAAG,KAAK,IAAI,IAAI,KAAK,IAElC,KAAK,QAAQ,GAAG,KAAK,IAAI,KAAK;;AAKtC,OAAK,QAAQ,KAAK,cAAc,GAAG,KAAK,CAAC;;CAG7C,SAAS,SAAU,GAAM,GAAa;EAClC,IAAI,IAAM,IACN,IAAM,KAAK,cAAc,GACzB,IAAW,GACX,IAAY;AAEhB,OAAK,IAAI,IAAM,KAAK,cAAc,GAAG,IAAM,GAAG,KAAO,EAGjD,MAFI,KAAO,KAAG,OAED;AACT,QAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IACnB,KAAI,KAAK,QAAQ,GAAK,IAAM,MAAM,MAAM;IACpC,IAAI,IAAO;AAeX,IAbI,IAAY,EAAK,WACjB,KAAS,EAAK,OAAe,IAAY,MAAM,IAGtC,EAAO,QAAQ,GAAa,GAAK,IAAM,EAAE,KAGlD,IAAO,CAAC,IAGZ,KAAK,QAAQ,GAAK,IAAM,KAAK,GAC7B,KAEI,KAAY,OACZ,KACA,IAAW;;AAOvB,OAFA,KAAO,GAEH,IAAM,KAAK,KAAK,eAAe,GAAK;AAEpC,IADA,KAAO,GACP,IAAM,CAAC;AACP;;;;CAKnB,EAED,EAAY,OAAO,KACnB,EAAY,OAAO,IAEnB,EAAY,aAAa,SAAU,GAAY,GAAmB,GAAU;CACxE,IAAM,IAAW,EAAU,YAAY,GAAY,EAAkB,EAE/D,IAAS,IAAI,GAAa;AAEhC,MAAK,IAAI,IAAI,GAAG,IAAI,EAAS,QAAQ,KAAK;EACtC,IAAM,IAAO,EAAS;AAMtB,EALA,EAAO,IAAI,EAAK,MAAM,EAAE,EACxB,EAAO,IACH,EAAK,WAAW,EAChB,EAAO,gBAAgB,EAAK,MAAM,EAAW,CAChD,EACD,EAAK,MAAM,EAAO;;CAItB,IAAI,IAAiB;AACrB,MAAK,IAAI,IAAI,GAAG,IAAI,EAAS,QAAQ,IACjC,MAAkB,EAAS,GAAG;AAGlC,KAAI,EAAO,iBAAiB,GAAG,IAAiB,EAC5C,OAAU,MACN,4BACI,EAAO,iBAAiB,GACxB,MACA,IAAiB,IACjB,IACP;AASL,MALI,EAAO,iBAAiB,GAAG,KAAK,IAAiB,KACjD,EAAO,IAAI,GAAG,EAAE,EAIb,EAAO,iBAAiB,GAAG,KAAK,GACnC,GAAO,OAAO,GAAM;AAIxB,QAII,EAHI,EAAO,iBAAiB,IAAI,IAAiB,MAGjD,EAAO,IAAI,EAAY,MAAM,EAAE,EAE3B,EAAO,iBAAiB,IAAI,IAAiB,KAGjD,GAAO,IAAI,EAAY,MAAM,EAAE;AAGnC,QAAO,EAAY,YAAY,GAAQ,EAAS;GAGpD,EAAY,cAAc,SAAU,GAAQ,GAAU;CAClD,IAAI,IAAS,GAET,IAAa,GACb,IAAa,GAEX,IAAa,MAAM,EAAS,OAAO,EACnC,IAAa,MAAM,EAAS,OAAO;AAEzC,MAAK,IAAI,IAAI,GAAG,IAAI,EAAS,QAAQ,KAAK;EACtC,IAAM,IAAU,EAAS,GAAG,WACtB,IAAU,EAAS,GAAG,aAAa;AAKzC,EAHA,IAAa,KAAK,IAAI,GAAY,EAAQ,EAC1C,IAAa,KAAK,IAAI,GAAY,EAAQ,EAE1C,EAAO,KAAS,MAAM,EAAQ;AAE9B,OAAK,IAAI,IAAI,GAAG,IAAI,EAAO,GAAG,QAAQ,IAClC,GAAO,GAAG,KAAK,MAAO,EAAO,OAAO,IAAI;AAE5C,OAAU;EAEV,IAAM,IAAS,EAAO,0BAA0B,EAAQ,EAGlD,IAFU,IAAI,EAAa,EAAO,IAAI,EAAO,WAAW,GAAG,EAAE,CAE3C,IAAI,EAAO;AACnC,IAAO,KAAS,MAAM,EAAO,WAAW,GAAG,EAAE;AAC7C,OAAK,IAAI,IAAI,GAAG,IAAI,EAAO,GAAG,QAAQ,KAAK;GACvC,IAAM,IAAW,IAAI,EAAQ,WAAW,GAAG,EAAO,GAAG;AACrD,KAAO,GAAG,KAAK,KAAY,IAAI,EAAQ,IAAI,EAAS,GAAG;;;CAI/D,IAAI,IAAiB;AACrB,MAAK,IAAI,IAAI,GAAG,IAAI,EAAS,QAAQ,IACjC,MAAkB,EAAS,GAAG;CAGlC,IAAM,IAAW,MAAM,EAAe,EAClC,IAAQ;AAEZ,MAAK,IAAI,IAAI,GAAG,IAAI,GAAY,IAC5B,MAAK,IAAI,IAAI,GAAG,IAAI,EAAS,QAAQ,IACjC,CAAI,IAAI,EAAO,GAAG,WACd,EAAK,OAAW,EAAO,GAAG;AAKtC,MAAK,IAAI,IAAI,GAAG,IAAI,GAAY,IAC5B,MAAK,IAAI,IAAI,GAAG,IAAI,EAAS,QAAQ,IACjC,CAAI,IAAI,EAAO,GAAG,WACd,EAAK,OAAW,EAAO,GAAG;AAKtC,QAAO;;AA4WX,KAAK,IArWD,IAAS;CACT,aAAa;CACb,gBAAgB;CAChB,gBAAgB;CAChB,YAAY;CACf,EAMK,IAAsB;CACxB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACN,EAMK,IAAgB;CAClB,YAAY;CACZ,YAAY;CACZ,YAAY;CACZ,YAAY;CACZ,YAAY;CACZ,YAAY;CACZ,YAAY;CACZ,YAAY;CACf,EAMG,IAAS;CACT,wBAAwB;EACpB,EAAE;EACF,CAAC,GAAG,GAAG;EACP,CAAC,GAAG,GAAG;EACP,CAAC,GAAG,GAAG;EACP,CAAC,GAAG,GAAG;EACP,CAAC,GAAG,GAAG;EACP;GAAC;GAAG;GAAI;GAAG;EACX;GAAC;GAAG;GAAI;GAAG;EACX;GAAC;GAAG;GAAI;GAAG;EACX;GAAC;GAAG;GAAI;GAAG;EACX;GAAC;GAAG;GAAI;GAAG;EACX;GAAC;GAAG;GAAI;GAAG;EACX;GAAC;GAAG;GAAI;GAAG;EACX;GAAC;GAAG;GAAI;GAAI;GAAG;EACf;GAAC;GAAG;GAAI;GAAI;GAAG;EACf;GAAC;GAAG;GAAI;GAAI;GAAG;EACf;GAAC;GAAG;GAAI;GAAI;GAAG;EACf;GAAC;GAAG;GAAI;GAAI;GAAG;EACf;GAAC;GAAG;GAAI;GAAI;GAAG;EACf;GAAC;GAAG;GAAI;GAAI;GAAG;EACf;GAAC;GAAG;GAAI;GAAI;GAAI;GAAG;EACnB;GAAC;GAAG;GAAI;GAAI;GAAI;GAAG;EACnB;GAAC;GAAG;GAAI;GAAI;GAAI;GAAI;EACpB;GAAC;GAAG;GAAI;GAAI;GAAI;GAAI;EACpB;GAAC;GAAG;GAAI;GAAI;GAAI;GAAI;EACpB;GAAC;GAAG;GAAI;GAAI;GAAI;GAAI;EACpB;GAAC;GAAG;GAAI;GAAI;GAAI;GAAI;EACpB;GAAC;GAAG;GAAI;GAAI;GAAI;GAAI;GAAI;EACxB;GAAC;GAAG;GAAI;GAAI;GAAI;GAAK;GAAI;EACzB;GAAC;GAAG;GAAI;GAAI;GAAI;GAAK;GAAI;EACzB;GAAC;GAAG;GAAI;GAAI;GAAI;GAAK;GAAI;EACzB;GAAC;GAAG;GAAI;GAAI;GAAI;GAAK;GAAI;EACzB;GAAC;GAAG;GAAI;GAAI;GAAI;GAAK;GAAI;EACzB;GAAC;GAAG;GAAI;GAAI;GAAI;GAAK;GAAI;EACzB;GAAC;GAAG;GAAI;GAAI;GAAI;GAAK;GAAK;GAAI;EAC9B;GAAC;GAAG;GAAI;GAAI;GAAI;GAAK;GAAK;GAAI;EAC9B;GAAC;GAAG;GAAI;GAAI;GAAI;GAAK;GAAK;GAAI;EAC9B;GAAC;GAAG;GAAI;GAAI;GAAI;GAAK;GAAK;GAAI;EAC9B;GAAC;GAAG;GAAI;GAAI;GAAI;GAAK;GAAK;GAAI;EAC9B;GAAC;GAAG;GAAI;GAAI;GAAI;GAAK;GAAK;GAAI;EACjC;CAED,KACI;CAOJ,KACI;CAQJ,UAAU;CAEV,gBAAgB,SAAU,GAAM;EAC5B,IAAI,IAAI,KAAQ;AAChB,SAAO,EAAO,YAAY,EAAE,GAAG,EAAO,YAAY,EAAO,IAAI,IAAI,GAC7D,MACI,EAAO,OACN,EAAO,YAAY,EAAE,GAAG,EAAO,YAAY,EAAO,IAAI;AAE/D,UAAS,KAAQ,KAAM,KAAK,EAAO;;CAGvC,kBAAkB,SAAU,GAAM;EAC9B,IAAI,IAAI,KAAQ;AAChB,SAAO,EAAO,YAAY,EAAE,GAAG,EAAO,YAAY,EAAO,IAAI,IAAI,GAC7D,MACI,EAAO,OACN,EAAO,YAAY,EAAE,GAAG,EAAO,YAAY,EAAO,IAAI;AAE/D,SAAQ,KAAQ,KAAM;;CAG1B,aAAa,SAAU,GAAM;EACzB,IAAI,IAAQ;AAEZ,SAAO,KAAQ,GAEX,CADA,KACA,OAAU;AAGd,SAAO;;CAGX,oBAAoB,SAAU,GAAY;AACtC,SAAO,EAAO,uBAAuB,IAAa;;CAGtD,SAAS,SAAU,GAAa,GAAG,GAAG;AAClC,UAAQ,GAAR;GACI,KAAK,EAAc,WACf,SAAQ,IAAI,KAAK,KAAK;GAC1B,KAAK,EAAc,WACf,QAAO,IAAI,KAAK;GACpB,KAAK,EAAc,WACf,QAAO,IAAI,KAAK;GACpB,KAAK,EAAc,WACf,SAAQ,IAAI,KAAK,KAAK;GAC1B,KAAK,EAAc,WACf,SAAQ,KAAK,MAAM,IAAI,EAAE,GAAG,KAAK,MAAM,IAAI,EAAE,IAAI,KAAK;GAC1D,KAAK,EAAc,WACf,QAAS,IAAI,IAAK,IAAO,IAAI,IAAK,KAAM;GAC5C,KAAK,EAAc,WACf,SAAU,IAAI,IAAK,IAAO,IAAI,IAAK,KAAM,KAAK;GAClD,KAAK,EAAc,WACf,SAAU,IAAI,IAAK,KAAO,IAAI,KAAK,KAAM,KAAK;GAElD,QACI,OAAU,MAAM,qBAAqB,EAAY;;;CAI7D,2BAA2B,SAAU,GAAoB;EACrD,IAAI,IAAI,IAAI,EAAa,CAAC,EAAE,EAAE,EAAE;AAEhC,OAAK,IAAI,IAAI,GAAG,IAAI,GAAoB,IACpC,KAAI,EAAE,SAAS,IAAI,EAAa,CAAC,GAAG,EAAO,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;AAG5D,SAAO;;CAGX,iBAAiB,SAAU,GAAM,GAAM;AACnC,MAAI,KAAK,KAAQ,IAAO,GAGpB,SAAQ,GAAR;GACI,KAAK,EAAO,YACR,QAAO;GACX,KAAK,EAAO,eACR,QAAO;GACX,KAAK,EAAO,eACR,QAAO;GACX,KAAK,EAAO,WACR,QAAO;GACX,QACI,OAAU,MAAM,UAAU,EAAK;;WAEhC,IAAO,GAGd,SAAQ,GAAR;GACI,KAAK,EAAO,YACR,QAAO;GACX,KAAK,EAAO,eACR,QAAO;GACX,KAAK,EAAO,eACR,QAAO;GACX,KAAK,EAAO,WACR,QAAO;GACX,QACI,OAAU,MAAM,UAAU,EAAK;;WAEhC,IAAO,GAGd,SAAQ,GAAR;GACI,KAAK,EAAO,YACR,QAAO;GACX,KAAK,EAAO,eACR,QAAO;GACX,KAAK,EAAO,eACR,QAAO;GACX,KAAK,EAAO,WACR,QAAO;GACX,QACI,OAAU,MAAM,UAAU,EAAK;;MAGvC,OAAU,MAAM,UAAU,EAAK;;CAIvC,cAAc,SAAU,GAAQ;EAC5B,IAAM,IAAc,EAAO,gBAAgB,EAEvC,IAAY;AAIhB,OAAK,IAAI,IAAM,GAAG,IAAM,GAAa,IACjC,MAAK,IAAI,IAAM,GAAG,IAAM,GAAa,KAAO;GACxC,IAAI,IAAY,GACV,IAAO,EAAO,OAAO,GAAK,EAAI;AAEpC,QAAK,IAAI,IAAI,IAAI,KAAK,GAAG,IACjB,WAAM,IAAI,KAAK,KAAe,IAAM,GAIxC,MAAK,IAAI,IAAI,IAAI,KAAK,GAAG,IACjB,KAAM,IAAI,KAAK,KAAe,IAAM,KAIpC,KAAK,KAAK,KAAK,KAIf,KAAQ,EAAO,OAAO,IAAM,GAAG,IAAM,EAAE,IACvC;AAKZ,GAAI,IAAY,MACZ,KAAa,IAAI,IAAY;;AAOzC,OAAK,IAAI,IAAM,GAAG,IAAM,IAAc,GAAG,IACrC,MAAK,IAAI,IAAM,GAAG,IAAM,IAAc,GAAG,KAAO;GAC5C,IAAI,IAAQ;AAKZ,GAJI,EAAO,OAAO,GAAK,EAAI,IAAE,KACzB,EAAO,OAAO,IAAM,GAAG,EAAI,IAAE,KAC7B,EAAO,OAAO,GAAK,IAAM,EAAE,IAAE,KAC7B,EAAO,OAAO,IAAM,GAAG,IAAM,EAAE,IAAE,MACjC,KAAS,KAAK,KAAS,OACvB,KAAa;;AAOzB,OAAK,IAAI,IAAM,GAAG,IAAM,GAAa,IACjC,MAAK,IAAI,IAAM,GAAG,IAAM,IAAc,GAAG,IACrC,CACI,EAAO,OAAO,GAAK,EAAI,IACvB,CAAC,EAAO,OAAO,GAAK,IAAM,EAAE,IAC5B,EAAO,OAAO,GAAK,IAAM,EAAE,IAC3B,EAAO,OAAO,GAAK,IAAM,EAAE,IAC3B,EAAO,OAAO,GAAK,IAAM,EAAE,IAC3B,CAAC,EAAO,OAAO,GAAK,IAAM,EAAE,IAC5B,EAAO,OAAO,GAAK,IAAM,EAAE,KAE3B,KAAa;AAKzB,OAAK,IAAI,IAAM,GAAG,IAAM,GAAa,IACjC,MAAK,IAAI,IAAM,GAAG,IAAM,IAAc,GAAG,IACrC,CACI,EAAO,OAAO,GAAK,EAAI,IACvB,CAAC,EAAO,OAAO,IAAM,GAAG,EAAI,IAC5B,EAAO,OAAO,IAAM,GAAG,EAAI,IAC3B,EAAO,OAAO,IAAM,GAAG,EAAI,IAC3B,EAAO,OAAO,IAAM,GAAG,EAAI,IAC3B,CAAC,EAAO,OAAO,IAAM,GAAG,EAAI,IAC5B,EAAO,OAAO,IAAM,GAAG,EAAI,KAE3B,KAAa;EAOzB,IAAI,IAAY;AAEhB,OAAK,IAAI,IAAM,GAAG,IAAM,GAAa,IACjC,MAAK,IAAI,IAAM,GAAG,IAAM,GAAa,IACjC,CAAI,EAAO,OAAO,GAAK,EAAI,IACvB;EAKZ,IAAM,IACF,KAAK,IAAK,MAAM,IAAa,IAAc,IAAc,GAAG,GAAG;AAGnE,SAFA,KAAa,IAAQ,IAEd;;CAEd,EAMG,IAAS;CACT,MAAM,SAAU,GAAG;AACf,MAAI,IAAI,EACJ,OAAU,MAAM,UAAU,IAAI,IAAI;AAGtC,SAAO,EAAO,UAAU;;CAG5B,MAAM,SAAU,GAAG;AACf,SAAO,IAAI,GACP,MAAK;AAGT,SAAO,KAAK,KACR,MAAK;AAGT,SAAO,EAAO,UAAU;;CAG5B,WAAe,MAAM,IAAI;CAEzB,WAAe,MAAM,IAAI;CAC5B,EAEQ,IAAI,GAAG,IAAI,GAAG,IACnB,GAAO,UAAU,KAAK,KAAK;AAE/B,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,IACrB,GAAO,UAAU,KACb,EAAO,UAAU,IAAI,KACrB,EAAO,UAAU,IAAI,KACrB,EAAO,UAAU,IAAI,KACrB,EAAO,UAAU,IAAI;AAE7B,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,IACrB,GAAO,UAAU,EAAO,UAAU,MAAM;AAO5C,SAAS,EAAa,GAAK,GAAO;AAC9B,KAAI,EAAI,UAAU,KACd,OAAU,MAAM,EAAI,SAAS,MAAM,EAAM;CAG7C,IAAI,IAAS;AAEb,QAAO,IAAS,EAAI,UAAU,EAAI,MAAW,GACzC;AAGJ,MAAK,MAAU,MAAM,EAAI,SAAS,IAAS,EAAM;AACjD,MAAK,IAAI,IAAI,GAAG,IAAI,EAAI,SAAS,GAAQ,IACrC,MAAK,IAAI,KAAK,EAAI,IAAI;;AAI9B,EAAa,YAAY;CACrB,KAAK,SAAU,GAAO;AAClB,SAAO,KAAK,IAAI;;CAGpB,WAAW,WAAY;AACnB,SAAO,KAAK,IAAI;;CAGpB,UAAU,SAAU,GAAG;EACnB,IAAM,IAAU,MAAM,KAAK,WAAW,GAAG,EAAE,WAAW,GAAG,EAAE;AAE3D,OAAK,IAAI,IAAI,GAAG,IAAI,KAAK,WAAW,EAAE,IAClC,MAAK,IAAI,IAAI,GAAG,IAAI,EAAE,WAAW,EAAE,IAC/B,GAAI,IAAI,MAAM,EAAO,KACjB,EAAO,KAAK,KAAK,IAAI,EAAE,CAAC,GAAG,EAAO,KAAK,EAAE,IAAI,EAAE,CAAC,CACnD;AAIT,SAAO,IAAI,EAAa,GAAK,EAAE;;CAGnC,KAAK,SAAU,GAAG;AACd,MAAI,KAAK,WAAW,GAAG,EAAE,WAAW,GAAG,EACnC,QAAO;EAGX,IAAM,IAAQ,EAAO,KAAK,KAAK,IAAI,EAAE,CAAC,GAAG,EAAO,KAAK,EAAE,IAAI,EAAE,CAAC,EAExD,IAAU,MAAM,KAAK,WAAW,CAAC;AAEvC,OAAK,IAAI,IAAI,GAAG,IAAI,KAAK,WAAW,EAAE,IAClC,GAAI,KAAK,KAAK,IAAI,EAAE;AAGxB,OAAK,IAAI,IAAI,GAAG,IAAI,EAAE,WAAW,EAAE,IAC/B,GAAI,MAAM,EAAO,KAAK,EAAO,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,EAAM;AAIxD,SAAO,IAAI,EAAa,GAAK,EAAE,CAAC,IAAI,EAAE;;CAE7C;AAMD,SAAS,EAAU,GAAY,GAAW;AAEtC,CADA,KAAK,aAAa,GAClB,KAAK,YAAY;;AAGrB,EAAU,iBAAiB;CAOvB;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAE;CAGV;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAG;CAGX;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAG;CAGX;EAAC;EAAG;EAAK;EAAG;CACZ;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAE;CAGV;EAAC;EAAG;EAAK;EAAI;CACb;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CAGtB;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAG;CAGX;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAG;CACX;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CAGtB;EAAC;EAAG;EAAK;EAAG;CACZ;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CAGtB;EAAC;EAAG;EAAK;EAAI;CACb;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CAGtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CAGtB;EAAC;EAAG;EAAK;EAAG;CACZ;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CAGtB;EAAC;EAAG;EAAK;EAAI;EAAG;EAAK;EAAG;CACxB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CAGtB;EAAC;EAAG;EAAK;EAAI;CACb;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CAGvB;EAAC;EAAG;EAAK;EAAK;EAAG;EAAK;EAAI;CAC1B;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CAGvB;EAAC;EAAG;EAAK;EAAI;EAAG;EAAK;EAAG;CACxB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAI;EAAI;EAAG;CAGZ;EAAC;EAAG;EAAK;EAAI;EAAG;EAAK;EAAG;CACxB;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CACvB;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CAGvB;EAAC;EAAG;EAAK;EAAK;EAAG;EAAK;EAAI;CAC1B;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CACvB;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CACvB;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CAGvB;EAAC;EAAG;EAAK;EAAK;EAAG;EAAK;EAAI;CAC1B;EAAC;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;CACtB;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CACvB;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CAGvB;EAAC;EAAG;EAAK;EAAK;EAAG;EAAK;EAAI;CAC1B;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CACvB;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CAGvB;EAAC;EAAG;EAAK;EAAK;EAAG;EAAK;EAAI;CAC1B;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAGxB;EAAC;EAAG;EAAK;EAAK;EAAG;EAAK;EAAI;CAC1B;EAAC;EAAI;EAAI;EAAG;CACZ;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CAGvB;EAAC;EAAG;EAAK;EAAK;EAAG;EAAK;EAAI;CAC1B;EAAC;EAAI;EAAI;EAAG;CACZ;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAG;CAGZ;EAAC;EAAG;EAAK;EAAK;EAAG;EAAK;EAAI;CAC1B;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAGxB;EAAC;EAAG;EAAK;EAAK;EAAG;EAAK;EAAI;CAC1B;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CAGvB;EAAC;EAAG;EAAK;EAAK;EAAG;EAAK;EAAI;CAC1B;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CACvB;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAGxB;EAAC;EAAI;EAAK;EAAK;EAAG;EAAK;EAAI;CAC3B;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CAGvB;EAAC;EAAG;EAAK;EAAK;EAAG;EAAK;EAAI;CAC1B;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CACvB;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAGxB;EAAC;EAAG;EAAK;EAAK;EAAI;EAAK;EAAI;CAC3B;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CACvB;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAGxB;EAAC;EAAG;EAAK;EAAK;EAAG;EAAK;EAAI;CAC1B;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CACvB;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAGxB;EAAC;EAAG;EAAK;EAAK;EAAI;EAAK;EAAI;CAC3B;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAGxB;EAAC;EAAI;EAAK;EAAK;EAAG;EAAK;EAAI;CAC3B;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAGxB;EAAC;EAAI;EAAK;EAAI;CACd;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAGxB;EAAC;EAAI;EAAK;EAAK;EAAG;EAAK;EAAI;CAC3B;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAGxB;EAAC;EAAI;EAAK;EAAK;EAAG;EAAK;EAAI;CAC3B;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CAGvB;EAAC;EAAI;EAAK;EAAK;EAAG;EAAK;EAAI;CAC3B;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAGxB;EAAC;EAAG;EAAK;EAAK;EAAI;EAAK;EAAI;CAC3B;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;CAGvB;EAAC;EAAI;EAAK;EAAK;EAAG;EAAK;EAAI;CAC3B;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAGxB;EAAC;EAAG;EAAK;EAAK;EAAI;EAAK;EAAI;CAC3B;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAGxB;EAAC;EAAI;EAAK;EAAK;EAAG;EAAK;EAAI;CAC3B;EAAC;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;CACvB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAGxB;EAAC;EAAI;EAAK;EAAK;EAAG;EAAK;EAAI;CAC3B;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CACxB;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAG;CAC3B,EAED,EAAU,cAAc,SAAU,GAAY,GAAmB;CAC7D,IAAM,IAAU,EAAU,gBAAgB,GAAY,EAAkB;AAExE,KAAI,KAAW,KACX,OAAU,MACN,+BACI,IACA,wBACA,EACP;CAGL,IAAM,IAAS,EAAQ,SAAS,GAE1B,IAAO,EAAE;AAEf,MAAK,IAAI,IAAI,GAAG,IAAI,GAAQ,KAAK;EAC7B,IAAM,IAAQ,EAAQ,IAAI,IAAI,IACxB,IAAa,EAAQ,IAAI,IAAI,IAC7B,IAAY,EAAQ,IAAI,IAAI;AAElC,OAAK,IAAI,IAAI,GAAG,IAAI,GAAO,IACvB,GAAK,KAAK,IAAI,EAAU,GAAY,EAAU,CAAC;;AAIvD,QAAO;GAGX,EAAU,kBAAkB,SAAU,GAAY,GAAmB;AACjE,SAAQ,GAAR;EACI,KAAK,EAAoB,EACrB,QAAO,EAAU,gBAAgB,IAAa,KAAK,IAAI;EAC3D,KAAK,EAAoB,EACrB,QAAO,EAAU,gBAAgB,IAAa,KAAK,IAAI;EAC3D,KAAK,EAAoB,EACrB,QAAO,EAAU,gBAAgB,IAAa,KAAK,IAAI;EAC3D,KAAK,EAAoB,EACrB,QAAO,EAAU,gBAAgB,IAAa,KAAK,IAAI;EAC3D,QACI;;;AAQZ,SAAS,IAAc;AAEnB,CADA,KAAK,SAAS,EAAE,EAChB,KAAK,SAAS;;AAGlB,EAAY,YAAY;CACpB,KAAK,SAAU,GAAO;EAClB,IAAM,IAAW,KAAK,MAAM,IAAQ,EAAE;AACtC,UAAS,KAAK,OAAO,OAAe,IAAK,IAAQ,IAAO,MAAM;;CAGlE,KAAK,SAAU,GAAK,GAAQ;AACxB,OAAK,IAAI,IAAI,GAAG,IAAI,GAAQ,IACxB,MAAK,QAAS,MAAS,IAAS,IAAI,IAAM,MAAM,EAAE;;CAI1D,iBAAiB,WAAY;AACzB,SAAO,KAAK;;CAGhB,QAAQ,SAAU,GAAK;EACnB,IAAM,IAAW,KAAK,MAAM,KAAK,SAAS,EAAE;AAS5C,EARI,KAAK,OAAO,UAAU,KACtB,KAAK,OAAO,KAAK,EAAE,EAGnB,MACA,KAAK,OAAO,MAAa,QAAU,KAAK,SAAS,IAGrD,KAAK;;CAEZ;AAED,IAAM,IAAoB;CACtB;EAAC;EAAI;EAAI;EAAI;EAAE;CACf;EAAC;EAAI;EAAI;EAAI;EAAG;CAChB;EAAC;EAAI;EAAI;EAAI;EAAG;CAChB;EAAC;EAAI;EAAI;EAAI;EAAG;CAChB;EAAC;EAAK;EAAI;EAAI;EAAG;CACjB;EAAC;EAAK;EAAK;EAAI;EAAG;CAClB;EAAC;EAAK;EAAK;EAAI;EAAG;CAClB;EAAC;EAAK;EAAK;EAAK;EAAG;CACnB;EAAC;EAAK;EAAK;EAAK;EAAG;CACnB;EAAC;EAAK;EAAK;EAAK;EAAI;CACpB;EAAC;EAAK;EAAK;EAAK;EAAI;CACpB;EAAC;EAAK;EAAK;EAAK;EAAI;CACpB;EAAC;EAAK;EAAK;EAAK;EAAI;CACpB;EAAC;EAAK;EAAK;EAAK;EAAI;CACpB;EAAC;EAAK;EAAK;EAAK;EAAI;CACpB;EAAC;EAAK;EAAK;EAAK;EAAI;CACpB;EAAC;EAAK;EAAK;EAAK;EAAI;CACpB;EAAC;EAAK;EAAK;EAAK;EAAI;CACpB;EAAC;EAAK;EAAK;EAAK;EAAI;CACpB;EAAC;EAAK;EAAK;EAAK;EAAI;CACpB;EAAC;EAAK;EAAK;EAAK;EAAI;CACpB;EAAC;EAAM;EAAK;EAAK;EAAI;CACrB;EAAC;EAAM;EAAK;EAAK;EAAI;CACrB;EAAC;EAAM;EAAK;EAAK;EAAI;CACrB;EAAC;EAAM;EAAK;EAAK;EAAI;CACrB;EAAC;EAAM;EAAM;EAAK;EAAI;CACtB;EAAC;EAAM;EAAM;EAAK;EAAI;CACtB;EAAC;EAAM;EAAM;EAAK;EAAI;CACtB;EAAC;EAAM;EAAM;EAAK;EAAI;CACtB;EAAC;EAAM;EAAM;EAAK;EAAI;CACtB;EAAC;EAAM;EAAM;EAAM;EAAI;CACvB;EAAC;EAAM;EAAM;EAAM;EAAI;CACvB;EAAC;EAAM;EAAM;EAAM;EAAI;CACvB;EAAC;EAAM;EAAM;EAAM;EAAI;CACvB;EAAC;EAAM;EAAM;EAAM;EAAI;CACvB;EAAC;EAAM;EAAM;EAAM;EAAK;CACxB;EAAC;EAAM;EAAM;EAAM;EAAK;CACxB;EAAC;EAAM;EAAM;EAAM;EAAK;CACxB;EAAC;EAAM;EAAM;EAAM;EAAK;CACxB;EAAC;EAAM;EAAM;EAAM;EAAK;CAC3B;AAGD,SAAS,EAAO,GAAS;AAsBrB,KAlBA,KAAK,UAAU;EACX,SAAS;EACT,OAAO;EACP,QAAQ;EACR,YAAY;EACZ,OAAO;EACP,YAAY;EACZ,KAAK;EACR,EAGG,OAAO,KAAY,aACnB,IAAU,EACN,SAAS,GACZ,GAID,EACA,MAAK,IAAM,KAAK,EACZ,MAAK,QAAQ,KAAK,EAAQ;AAIlC,KAAI,OAAO,KAAK,QAAQ,WAAY,SAChC,OAAU,MAAM,gCAAgC;AAGpD,KACI,KAAK,QAAQ,QAAQ,WACrB,EAEA,OAAU,MAAM,sCAAsC;AAG1D,KAAI,EAAE,KAAK,QAAQ,WAAW,GAC1B,OAAU,MAAM,+CAA+C;AAGnE,KAAI,EAAE,KAAK,QAAQ,QAAQ,MAAM,EAAE,KAAK,QAAQ,SAAS,GACrD,OAAU,MACN,6DACH;CAIL,SAAS,EAAsB,GAAK;AAChC,UAAQ,GAAR;GACI,KAAK,IACD,QAAO,EAAoB;GAE/B,KAAK,IACD,QAAO,EAAoB;GAE/B,KAAK,IACD,QAAO,EAAoB;GAE/B,KAAK,IACD,QAAO,EAAoB;GAE/B,QACI,OAAU,MAAM,qCAAqC,EAAI;;;CAKrE,SAAS,EAAe,GAAS,GAAK;EAClC,IAAM,IAAS,EAAe,EAAQ,EAElC,IAAO,GACP,IAAQ;AACZ,OAAK,IAAI,IAAI,GAAG,IAAM,EAAkB,QAAQ,KAAK,GAAK,KAAK;GAC3D,IAAM,IAAQ,EAAkB;AAChC,OAAI,CAAC,EACD,OAAU,MACN,gCACI,IACA,cACA,EACP;AAGL,WAAQ,GAAR;IACI,KAAK;AACD,SAAQ,EAAM;AACd;IAEJ,KAAK;AACD,SAAQ,EAAM;AACd;IAEJ,KAAK;AACD,SAAQ,EAAM;AACd;IAEJ,KAAK;AACD,SAAQ,EAAM;AACd;IAEJ,QACI,OAAU,MAAM,qCAAqC,EAAI;;AAGjE,OAAI,KAAU,EACV;AAGJ;;AAGJ,MAAI,IAAO,EAAkB,OACzB,OAAU,MAAM,mBAAmB;AAGvC,SAAO;;CAIX,SAAS,EAAe,GAAS;EAC7B,IAAM,IAAS,UAAU,EAAQ,CAC5B,UAAU,CACV,QAAQ,qBAAqB,IAAI;AACtC,SAAO,EAAO,UAAU,EAAO,UAAU,IAAc,IAAJ;;CAIvD,IAAM,IAAU,KAAK,QAAQ;AAK7B,CAFA,KAAK,SAAS,IAAI,EAFL,EAAe,GAAS,KAAK,QAAQ,IAAI,EAC1C,EAAsB,KAAK,QAAQ,IAAI,CACX,EACxC,KAAK,OAAO,QAAQ,EAAQ,EAC5B,KAAK,OAAO,MAAM;;AAItB,EAAO,UAAU,MAAM,SAAU,GAAK;CAClC,IAAM,IAAU,KAAK,WAAW,EAAE,EAC5B,IAAU,KAAK,OAAO;AAE5B,CAAW,MAAO,WACd,IAAM,EAAE,WAAW,EAAQ,aAAa,OAAO;CAInD,IAAM,IACK,EAAQ,WAAU,SAAiC,KAAnB,CAAC,CAAC,EAAQ,QAE/C,IAAS,IAAS,OAAO,IACzB,IAAM,IAAS,SAAS,IACxB,IAAQ,EAAQ,OAChB,IAAS,EAAQ,QACjB,IAAS,EAAQ,QACjB,IAAQ,KAAS,IAAS,IAAI,EAAQ,UACtC,IAAQ,KAAU,IAAS,IAAI,EAAQ,UAGvC,IACF,EAAI,aAAa,gBACT,EAAQ,SAAQ,SAA+B,KAAjB,CAAC,CAAC,EAAQ,OAG9C,IAAc,EAAQ,SAAQ,SAA+B,KAAjB,CAAC,CAAC,EAAQ,MAGtD,IACK,EAAQ,mBAAkB,SAE3B,KADA,CAAC,CAAC,EAAQ,gBAId,IACK,EAAQ,eAAc,SAAqC,KAAvB,CAAC,CAAC,EAAQ,YACnD,IAAO,IACP,IACA,2CACA,IACA,OACA,IACA,0BACA,EAAQ,QACR,6CACA,IACA,IAGA,IACF,IACA,mCACA,IACA,iBACA,IACA,qBACA,EAAQ,aACR,qCACA,GAGA,IAAU,IACV,IAAW;AAEf,MAAK,IAAI,IAAI,GAAG,IAAI,GAAQ,IACxB,MAAK,IAAI,IAAI,GAAG,IAAI,GAAQ,IAExB,KADe,EAAQ,GAAG,IACd;EACR,IAAI,IAAK,IAAI,IAAQ,EAAQ,UAAU,GACnC,IAAK,IAAI,IAAQ,EAAQ,UAAU;AAGvC,MAAI,GAAM;GACN,IAAM,IAAI;AAEV,GADA,IAAK,GACL,IAAK;;AAGT,MAAI,GAAM;GAEN,IAAI,IAAI,IAAQ,GACZ,IAAI,IAAQ;AAOhB,GALA,IAAK,OAAO,UAAU,EAAG,GAAG,OAAO,EAAG,GAAG,EAAG,QAAQ,EAAE,EACtD,IAAK,OAAO,UAAU,EAAG,GAAG,OAAO,EAAG,GAAG,EAAG,QAAQ,EAAE,EACtD,IAAI,OAAO,UAAU,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,EAClD,IAAI,OAAO,UAAU,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,EAElD,KACI,MACA,IACA,MACA,IACA,OACA,IACA,OACA,IACA,OACA,IACA,OACA,IACA;SACG,IAEP,KACI,IACA,cACA,EAAG,UAAU,GACb,YACA,EAAG,UAAU,GACb,6BACA,IAGJ,KACI,IACA,eACA,EAAG,UAAU,GACb,YACA,EAAG,UAAU,GACb,gBACA,IACA,iBACA,IACA,qBACA,EAAQ,QACR,qCACA;;AAMpB,CAAI,MACA,IACI,IACA,wCACA,EAAQ,QACR,wCACA,IACA;CAGR,IAAI,IAAM;AACV,SAAQ,EAAI,WAAZ;EAEI,KAAK;AAYD,GAXI,MACA,KAAO,+CAA2C,IAEtD,KACI,uEACA,IACA,iBACA,IACA,QACA,GACJ,KAAO,IAAO,IAAS,GACvB,KAAO;AACP;EAGJ,KAAK;AAYD,GAXI,MACA,KAAO,+CAA2C,IAEtD,KACI,6EACA,IACA,MACA,IACA,QACA,GACJ,KAAO,IAAO,IAAS,GACvB,KAAO;AACP;EAGJ,KAAK;AAGD,GAFA,KAAO,gBAAe,IAAQ,iBAAe,IAAS,QAAO,GAC7D,KAAO,IAAO,IAAS,GACvB,KAAO;AACP;EAGJ,KAAK;AACD,OAAM;AACN;EAGJ;AACI,SAAQ,IAAO,IAAS,GAAS,QAAQ,QAAQ,GAAG;AACpD;;AAGR,QAAO"}
|
package/src/qrcode.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
export type ErrorCorrectionLevel = 'L' | 'M' | 'Q' | 'H'
|
|
2
|
-
|
|
3
|
-
export type Container =
|
|
4
|
-
| 'svg'
|
|
5
|
-
| 'svg-viewbox'
|
|
6
|
-
| 'g'
|
|
7
|
-
| 'none'
|
|
8
|
-
| 'path-data'
|
|
9
|
-
|
|
10
|
-
export interface QRCodeOptions {
|
|
11
|
-
/** QR Code content (required). */
|
|
12
|
-
content: string
|
|
13
|
-
/** White-space padding in modules. Default: `4`. */
|
|
14
|
-
padding?: number
|
|
15
|
-
/** Image width in pixels. Default: `256`. */
|
|
16
|
-
width?: number
|
|
17
|
-
/** Image height in pixels. Default: `256`. */
|
|
18
|
-
height?: number
|
|
19
|
-
/** Foreground color. Default: `'#000000'`. */
|
|
20
|
-
color?: string
|
|
21
|
-
/** Background color. Default: `'#ffffff'`. */
|
|
22
|
-
background?: string
|
|
23
|
-
/** Error correction level. Default: `'M'`. */
|
|
24
|
-
ecl?: ErrorCorrectionLevel
|
|
25
|
-
/** Join modules into a single `<path>` element. Default: `false`. */
|
|
26
|
-
join?: boolean
|
|
27
|
-
/** Use `<defs>`/`<use>` for module shapes. Default: `false`. */
|
|
28
|
-
predefined?: boolean
|
|
29
|
-
/** Pretty-print the SVG output. Default: `true`. */
|
|
30
|
-
pretty?: boolean
|
|
31
|
-
/** Swap X and Y (workaround for some readers). Default: `false`. */
|
|
32
|
-
swap?: boolean
|
|
33
|
-
/** Prepend the `<?xml ... ?>` declaration. Default: `true`. */
|
|
34
|
-
xmlDeclaration?: boolean
|
|
35
|
-
/** Wrapper element. Default: `'svg'`. */
|
|
36
|
-
container?: Container
|
|
37
|
-
/** QR version hint. Default: `4`. */
|
|
38
|
-
typeNumber?: number
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export interface SvgOptions {
|
|
42
|
-
container?: Container
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export default class QRCode {
|
|
46
|
-
constructor(options: QRCodeOptions | string)
|
|
47
|
-
options: Required<Pick<QRCodeOptions, 'padding' | 'width' | 'height' | 'color' | 'background' | 'ecl' | 'typeNumber'>> & QRCodeOptions
|
|
48
|
-
svg(options?: SvgOptions): string
|
|
49
|
-
}
|