{"version":3,"sources":["webpack://_N_E/./node_modules/qrcode.react/lib/index.js","webpack://_N_E/./node_modules/qr.js/lib/QRCode.js","webpack://_N_E/./node_modules/qr.js/lib/util.js","webpack://_N_E/./node_modules/qr.js/lib/ErrorCorrectLevel.js","webpack://_N_E/./node_modules/qr.js/lib/math.js","webpack://_N_E/./node_modules/qr.js/lib/Polynomial.js","webpack://_N_E/./node_modules/qr.js/lib/8BitByte.js","webpack://_N_E/./node_modules/qr.js/lib/mode.js","webpack://_N_E/./node_modules/qr.js/lib/RSBlock.js","webpack://_N_E/./node_modules/qr.js/lib/BitBuffer.js"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_extends","Object","assign","target","i","arguments","length","source","key","hasOwnProperty","call","apply","this","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_classCallCheck","instance","Constructor","TypeError","_defineProperties","props","descriptor","configurable","writable","_createClass","protoProps","staticProps","_possibleConstructorReturn","self","_assertThisInitialized","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","ReferenceError","_inherits","subClass","superClass","create","value","_setPrototypeOf","p","React","QRCodeImpl","ErrorCorrectLevel","convertStr","str","out","charcode","charCodeAt","String","fromCharCode","DEFAULT_PROPS","size","level","bgColor","fgColor","includeMargin","generatePath","modules","margin","undefined","ops","row","y","start","cell","x","concat","join","excavateModules","excavation","slice","map","h","w","getImageSettings","cells","imageSettings","numCells","defaultSize","Math","floor","scale","width","height","excavate","floorX","floorY","ceil","SUPPORTS_PATH2D","Path2D","addPath","e","QRCodeCanvas","_React$PureComponent","_getPrototypeOf2","_this","_len","args","Array","_key","imgLoaded","setState","_image","complete","handleImageLoad","update","nextProps","_this$props$imageSett","_nextProps$imageSetti","src","_this$props","qrcode","addData","make","_canvas","canvas","ctx","getContext","calculatedImageSettings","pixelRatio","window","devicePixelRatio","fillStyle","fillRect","fill","rdx","cdx","state","drawImage","_this2","_this$props2","style","otherProps","canvasStyle","img","imgSrc","createElement","display","onLoad","ref","_ref","Fragment","_ref2","PureComponent","QRCodeSVG","_React$PureComponent2","_this$props3","image","xlinkHref","preserveAspectRatio","fgPath","shapeRendering","viewBox","d","QRCode","renderAs","Component","defaultProps","module","exports","BitByte","RSBlock","BitBuffer","util","Polynomial","typeNumber","errorCorrectLevel","moduleCount","dataCache","dataList","proto","data","newData","isDark","col","Error","getModuleCount","rsBlocks","getRSBlocks","buffer","totalDataCount","dataCount","put","mode","getLength","getLengthInBits","write","makeImpl","getBestMaskPattern","test","maskPattern","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","r","c","minLostPoint","pattern","lostPoint","getLostPoint","createMovieClip","target_mc","instance_name","depth","qr_mc","createEmptyMovieClip","beginFill","moveTo","lineTo","endFill","pos","getPatternPosition","j","bits","getBCHTypeNumber","mod","getBCHTypeInfo","inc","bitIndex","byteIndex","dark","getMask","PAD0","PAD1","putBit","createBytes","offset","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","ecCount","totalCount","max","rsPoly","getErrorCorrectPolynomial","modPoly","modIndex","get","totalCodeCount","index","Mode","math","QRMaskPattern","QRUtil","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","getBCHDigit","digit","errorCorrectLength","a","multiply","gexp","type","MODE_NUMBER","MODE_ALPHA_NUM","MODE_8BIT_BYTE","MODE_KANJI","qrCode","sameCount","count","darkCount","abs","L","M","Q","H","QRMath","glog","n","LOG_TABLE","EXP_TABLE","QRPolynomial","num","shift","ratio","QR8bitByte","ECL","QRRSBlock","RS_BLOCK_TABLE","rsBlock","getRsBlockTable","list","QRBitBuffer","bufIndex","bit"],"mappings":"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","file":"static/chunks/044d6422961e9f18d238beb7f21a92f20f44bb7c.d790b585e5e63a3ef4e1.js","sourcesContent":["'use strict';\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar React = require('react');\n\nvar PropTypes = require('prop-types'); // qr.js doesn't handle error level of zero (M) so we need to do it right,\n// thus the deep require.\n\n\nvar QRCodeImpl = require('qr.js/lib/QRCode');\n\nvar ErrorCorrectLevel = require('qr.js/lib/ErrorCorrectLevel'); // TODO: pull this off of the QRCode class type so it matches.\n\n\n// Convert from UTF-16, forcing the use of byte-mode encoding in our QR Code.\n// This allows us to encode Hanji, Kanji, emoji, etc. Ideally we'd do more\n// detection and not resort to byte-mode if possible, but we're trading off\n// a smaller library for a smaller amount of data we can potentially encode.\n// Based on http://jonisalonen.com/2012/from-utf-16-to-utf-8-in-javascript/\nfunction convertStr(str) {\n var out = '';\n\n for (var i = 0; i < str.length; i++) {\n var charcode = str.charCodeAt(i);\n\n if (charcode < 0x0080) {\n out += String.fromCharCode(charcode);\n } else if (charcode < 0x0800) {\n out += String.fromCharCode(0xc0 | charcode >> 6);\n out += String.fromCharCode(0x80 | charcode & 0x3f);\n } else if (charcode < 0xd800 || charcode >= 0xe000) {\n out += String.fromCharCode(0xe0 | charcode >> 12);\n out += String.fromCharCode(0x80 | charcode >> 6 & 0x3f);\n out += String.fromCharCode(0x80 | charcode & 0x3f);\n } else {\n // This is a surrogate pair, so we'll reconsitute the pieces and work\n // from that\n i++;\n charcode = 0x10000 + ((charcode & 0x3ff) << 10 | str.charCodeAt(i) & 0x3ff);\n out += String.fromCharCode(0xf0 | charcode >> 18);\n out += String.fromCharCode(0x80 | charcode >> 12 & 0x3f);\n out += String.fromCharCode(0x80 | charcode >> 6 & 0x3f);\n out += String.fromCharCode(0x80 | charcode & 0x3f);\n }\n }\n\n return out;\n}\n\nvar DEFAULT_PROPS = {\n size: 128,\n level: 'L',\n bgColor: '#FFFFFF',\n fgColor: '#000000',\n includeMargin: false\n};\nvar PROP_TYPES = process.env.NODE_ENV !== 'production' ? {\n value: PropTypes.string.isRequired,\n size: PropTypes.number,\n level: PropTypes.oneOf(['L', 'M', 'Q', 'H']),\n bgColor: PropTypes.string,\n fgColor: PropTypes.string,\n includeMargin: PropTypes.bool,\n imageSettings: PropTypes.shape({\n src: PropTypes.string.isRequired,\n height: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n excavate: PropTypes.bool,\n x: PropTypes.number,\n y: PropTypes.number\n })\n} : {};\nvar MARGIN_SIZE = 4; // This is *very* rough estimate of max amount of QRCode allowed to be covered.\n// It is \"wrong\" in a lot of ways (area is a terrible way to estimate, it\n// really should be number of modules covered), but if for some reason we don't\n// get an explicit height or width, I'd rather default to something than throw.\n\nvar DEFAULT_IMG_SCALE = 0.1;\n\nfunction generatePath(modules) {\n var margin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var ops = [];\n modules.forEach(function (row, y) {\n var start = null;\n row.forEach(function (cell, x) {\n if (!cell && start !== null) {\n // M0 0h7v1H0z injects the space with the move and drops the comma,\n // saving a char per operation\n ops.push(\"M\".concat(start + margin, \" \").concat(y + margin, \"h\").concat(x - start, \"v1H\").concat(start + margin, \"z\"));\n start = null;\n return;\n } // end of row, clean up or skip\n\n\n if (x === row.length - 1) {\n if (!cell) {\n // We would have closed the op above already so this can only mean\n // 2+ light modules in a row.\n return;\n }\n\n if (start === null) {\n // Just a single dark module.\n ops.push(\"M\".concat(x + margin, \",\").concat(y + margin, \" h1v1H\").concat(x + margin, \"z\"));\n } else {\n // Otherwise finish the current line.\n ops.push(\"M\".concat(start + margin, \",\").concat(y + margin, \" h\").concat(x + 1 - start, \"v1H\").concat(start + margin, \"z\"));\n }\n\n return;\n }\n\n if (cell && start === null) {\n start = x;\n }\n });\n });\n return ops.join('');\n} // We could just do this in generatePath, except that we want to support\n// non-Path2D canvas, so we need to keep it an explicit step.\n\n\nfunction excavateModules(modules, excavation) {\n return modules.slice().map(function (row, y) {\n if (y < excavation.y || y >= excavation.y + excavation.h) {\n return row;\n }\n\n return row.map(function (cell, x) {\n if (x < excavation.x || x >= excavation.x + excavation.w) {\n return cell;\n }\n\n return false;\n });\n });\n}\n\nfunction getImageSettings(props, cells) {\n var imageSettings = props.imageSettings,\n size = props.size,\n includeMargin = props.includeMargin;\n\n if (imageSettings == null) {\n return null;\n }\n\n var margin = includeMargin ? MARGIN_SIZE : 0;\n var numCells = cells.length + margin * 2;\n var defaultSize = Math.floor(size * DEFAULT_IMG_SCALE);\n var scale = numCells / size;\n var w = (imageSettings.width || defaultSize) * scale;\n var h = (imageSettings.height || defaultSize) * scale;\n var x = imageSettings.x == null ? cells.length / 2 - w / 2 : imageSettings.x * scale;\n var y = imageSettings.y == null ? cells.length / 2 - h / 2 : imageSettings.y * scale;\n var excavation = null;\n\n if (imageSettings.excavate) {\n var floorX = Math.floor(x);\n var floorY = Math.floor(y);\n var ceilW = Math.ceil(w + x - floorX);\n var ceilH = Math.ceil(h + y - floorY);\n excavation = {\n x: floorX,\n y: floorY,\n w: ceilW,\n h: ceilH\n };\n }\n\n return {\n x: x,\n y: y,\n h: h,\n w: w,\n excavation: excavation\n };\n} // For canvas we're going to switch our drawing mode based on whether or not\n// the environment supports Path2D. We only need the constructor to be\n// supported, but Edge doesn't actually support the path (string) type\n// argument. Luckily it also doesn't support the addPath() method. We can\n// treat that as the same thing.\n\n\nvar SUPPORTS_PATH2D = function () {\n try {\n new Path2D().addPath(new Path2D());\n } catch (e) {\n return false;\n }\n\n return true;\n}();\n\nvar QRCodeCanvas =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(QRCodeCanvas, _React$PureComponent);\n\n function QRCodeCanvas() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, QRCodeCanvas);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(QRCodeCanvas)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_canvas\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_image\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n imgLoaded: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleImageLoad\", function () {\n _this.setState({\n imgLoaded: true\n });\n });\n\n return _this;\n }\n\n _createClass(QRCodeCanvas, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this._image && this._image.complete) {\n this.handleImageLoad();\n }\n\n this.update();\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props$imageSett, _nextProps$imageSetti;\n\n var currentSrc = (_this$props$imageSett = this.props.imageSettings) === null || _this$props$imageSett === void 0 ? void 0 : _this$props$imageSett.src;\n var nextSrc = (_nextProps$imageSetti = nextProps.imageSettings) === null || _nextProps$imageSetti === void 0 ? void 0 : _nextProps$imageSetti.src;\n\n if (currentSrc !== nextSrc) {\n this.setState({\n imgLoaded: false\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.update();\n }\n }, {\n key: \"update\",\n value: function update() {\n var _this$props = this.props,\n value = _this$props.value,\n size = _this$props.size,\n level = _this$props.level,\n bgColor = _this$props.bgColor,\n fgColor = _this$props.fgColor,\n includeMargin = _this$props.includeMargin,\n imageSettings = _this$props.imageSettings; // We'll use type===-1 to force QRCode to automatically pick the best type\n\n var qrcode = new QRCodeImpl(-1, ErrorCorrectLevel[level]);\n qrcode.addData(convertStr(value));\n qrcode.make();\n\n if (this._canvas != null) {\n var canvas = this._canvas;\n var ctx = canvas.getContext('2d');\n\n if (!ctx) {\n return;\n }\n\n var cells = qrcode.modules;\n\n if (cells === null) {\n return;\n }\n\n var margin = includeMargin ? MARGIN_SIZE : 0;\n var numCells = cells.length + margin * 2;\n var calculatedImageSettings = getImageSettings(this.props, cells);\n\n if (imageSettings != null && calculatedImageSettings != null) {\n if (calculatedImageSettings.excavation != null) {\n cells = excavateModules(cells, calculatedImageSettings.excavation);\n }\n } // We're going to scale this so that the number of drawable units\n // matches the number of cells. This avoids rounding issues, but does\n // result in some potentially unwanted single pixel issues between\n // blocks, only in environments that don't support Path2D.\n\n\n var pixelRatio = window.devicePixelRatio || 1;\n canvas.height = canvas.width = size * pixelRatio;\n var scale = size / numCells * pixelRatio;\n ctx.scale(scale, scale); // Draw solid background, only paint dark modules.\n\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, numCells, numCells);\n ctx.fillStyle = fgColor;\n\n if (SUPPORTS_PATH2D) {\n // $FlowFixMe: Path2D c'tor doesn't support args yet.\n ctx.fill(new Path2D(generatePath(cells, margin)));\n } else {\n cells.forEach(function (row, rdx) {\n row.forEach(function (cell, cdx) {\n if (cell) {\n ctx.fillRect(cdx + margin, rdx + margin, 1, 1);\n }\n });\n });\n }\n\n if (this.state.imgLoaded && this._image && calculatedImageSettings != null) {\n ctx.drawImage(this._image, calculatedImageSettings.x + margin, calculatedImageSettings.y + margin, calculatedImageSettings.w, calculatedImageSettings.h);\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n value = _this$props2.value,\n size = _this$props2.size,\n level = _this$props2.level,\n bgColor = _this$props2.bgColor,\n fgColor = _this$props2.fgColor,\n style = _this$props2.style,\n includeMargin = _this$props2.includeMargin,\n imageSettings = _this$props2.imageSettings,\n otherProps = _objectWithoutProperties(_this$props2, [\"value\", \"size\", \"level\", \"bgColor\", \"fgColor\", \"style\", \"includeMargin\", \"imageSettings\"]);\n\n var canvasStyle = _objectSpread({\n height: size,\n width: size\n }, style);\n\n var img = null;\n var imgSrc = imageSettings && imageSettings.src;\n\n if (imageSettings != null && imgSrc != null) {\n img = React.createElement(\"img\", {\n src: imgSrc,\n style: {\n display: 'none'\n },\n onLoad: this.handleImageLoad,\n ref: function ref(_ref) {\n return _this2._image = _ref;\n }\n });\n }\n\n return React.createElement(React.Fragment, null, React.createElement(\"canvas\", _extends({\n style: canvasStyle,\n height: size,\n width: size,\n ref: function ref(_ref2) {\n return _this2._canvas = _ref2;\n }\n }, otherProps)), img);\n }\n }]);\n\n return QRCodeCanvas;\n}(React.PureComponent);\n\n_defineProperty(QRCodeCanvas, \"defaultProps\", DEFAULT_PROPS);\n\nif (process.env.NODE_ENV !== 'production') {\n QRCodeCanvas.propTypes = PROP_TYPES;\n}\n\nvar QRCodeSVG =\n/*#__PURE__*/\nfunction (_React$PureComponent2) {\n _inherits(QRCodeSVG, _React$PureComponent2);\n\n function QRCodeSVG() {\n _classCallCheck(this, QRCodeSVG);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(QRCodeSVG).apply(this, arguments));\n }\n\n _createClass(QRCodeSVG, [{\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n value = _this$props3.value,\n size = _this$props3.size,\n level = _this$props3.level,\n bgColor = _this$props3.bgColor,\n fgColor = _this$props3.fgColor,\n includeMargin = _this$props3.includeMargin,\n imageSettings = _this$props3.imageSettings,\n otherProps = _objectWithoutProperties(_this$props3, [\"value\", \"size\", \"level\", \"bgColor\", \"fgColor\", \"includeMargin\", \"imageSettings\"]); // We'll use type===-1 to force QRCode to automatically pick the best type\n\n\n var qrcode = new QRCodeImpl(-1, ErrorCorrectLevel[level]);\n qrcode.addData(convertStr(value));\n qrcode.make();\n var cells = qrcode.modules;\n\n if (cells === null) {\n return null;\n }\n\n var margin = includeMargin ? MARGIN_SIZE : 0;\n var numCells = cells.length + margin * 2;\n var calculatedImageSettings = getImageSettings(this.props, cells);\n var image = null;\n\n if (imageSettings != null && calculatedImageSettings != null) {\n if (calculatedImageSettings.excavation != null) {\n cells = excavateModules(cells, calculatedImageSettings.excavation);\n }\n\n image = React.createElement(\"image\", {\n xlinkHref: imageSettings.src,\n height: calculatedImageSettings.h,\n width: calculatedImageSettings.w,\n x: calculatedImageSettings.x + margin,\n y: calculatedImageSettings.y + margin,\n preserveAspectRatio: \"none\"\n });\n } // Drawing strategy: instead of a rect per module, we're going to create a\n // single path for the dark modules and layer that on top of a light rect,\n // for a total of 2 DOM nodes. We pay a bit more in string concat but that's\n // way faster than DOM ops.\n // For level 1, 441 nodes -> 2\n // For level 40, 31329 -> 2\n\n\n var fgPath = generatePath(cells, margin);\n return React.createElement(\"svg\", _extends({\n shapeRendering: \"crispEdges\",\n height: size,\n width: size,\n viewBox: \"0 0 \".concat(numCells, \" \").concat(numCells)\n }, otherProps), React.createElement(\"path\", {\n fill: bgColor,\n d: \"M0,0 h\".concat(numCells, \"v\").concat(numCells, \"H0z\")\n }), React.createElement(\"path\", {\n fill: fgColor,\n d: fgPath\n }), image);\n }\n }]);\n\n return QRCodeSVG;\n}(React.PureComponent);\n\n_defineProperty(QRCodeSVG, \"defaultProps\", DEFAULT_PROPS);\n\nif (process.env.NODE_ENV !== 'production') {\n QRCodeSVG.propTypes = PROP_TYPES;\n}\n\nvar QRCode = function QRCode(props) {\n var renderAs = props.renderAs,\n otherProps = _objectWithoutProperties(props, [\"renderAs\"]);\n\n var Component = renderAs === 'svg' ? QRCodeSVG : QRCodeCanvas;\n return React.createElement(Component, otherProps);\n};\n\nQRCode.defaultProps = _objectSpread({\n renderAs: 'canvas'\n}, DEFAULT_PROPS);\nmodule.exports = QRCode;","var BitByte = require('./8BitByte');\nvar RSBlock = require('./RSBlock');\nvar BitBuffer = require('./BitBuffer');\nvar util = require('./util');\nvar Polynomial = require('./Polynomial');\n\nfunction QRCode(typeNumber, errorCorrectLevel) {\n\tthis.typeNumber = typeNumber;\n\tthis.errorCorrectLevel = errorCorrectLevel;\n\tthis.modules = null;\n\tthis.moduleCount = 0;\n\tthis.dataCache = null;\n\tthis.dataList = [];\n}\n\n// for client side minification\nvar proto = QRCode.prototype;\n\nproto.addData = function(data) {\n\tvar newData = new BitByte(data);\n\tthis.dataList.push(newData);\n\tthis.dataCache = null;\n};\n\nproto.isDark = function(row, col) {\n\tif (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {\n\t\tthrow new Error(row + \",\" + col);\n\t}\n\treturn this.modules[row][col];\n};\n\nproto.getModuleCount = function() {\n\treturn this.moduleCount;\n};\n\nproto.make = function() {\n\t// Calculate automatically typeNumber if provided is < 1\n\tif (this.typeNumber < 1 ){\n\t\tvar typeNumber = 1;\n\t\tfor (typeNumber = 1; typeNumber < 40; typeNumber++) {\n\t\t\tvar rsBlocks = RSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);\n\n\t\t\tvar buffer = new BitBuffer();\n\t\t\tvar totalDataCount = 0;\n\t\t\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\t\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < this.dataList.length; i++) {\n\t\t\t\tvar data = this.dataList[i];\n\t\t\t\tbuffer.put(data.mode, 4);\n\t\t\t\tbuffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber) );\n\t\t\t\tdata.write(buffer);\n\t\t\t}\n\t\t\tif (buffer.getLengthInBits() <= totalDataCount * 8)\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.typeNumber = typeNumber;\n\t}\n\tthis.makeImpl(false, this.getBestMaskPattern() );\n};\n\nproto.makeImpl = function(test, maskPattern) {\n\t\n\tthis.moduleCount = this.typeNumber * 4 + 17;\n\tthis.modules = new Array(this.moduleCount);\n\t\n\tfor (var row = 0; row < this.moduleCount; row++) {\n\t\t\n\t\tthis.modules[row] = new Array(this.moduleCount);\n\t\t\n\t\tfor (var col = 0; col < this.moduleCount; col++) {\n\t\t\tthis.modules[row][col] = null;//(col + row) % 3;\n\t\t}\n\t}\n\n\tthis.setupPositionProbePattern(0, 0);\n\tthis.setupPositionProbePattern(this.moduleCount - 7, 0);\n\tthis.setupPositionProbePattern(0, this.moduleCount - 7);\n\tthis.setupPositionAdjustPattern();\n\tthis.setupTimingPattern();\n\tthis.setupTypeInfo(test, maskPattern);\n\t\n\tif (this.typeNumber >= 7) {\n\t\tthis.setupTypeNumber(test);\n\t}\n\n\tif (this.dataCache == null) {\n\t\tthis.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);\n\t}\n\n\tthis.mapData(this.dataCache, maskPattern);\n};\n\nproto.setupPositionProbePattern = function(row, col) {\n\t\n\tfor (var r = -1; r <= 7; r++) {\n\t\t\n\t\tif (row + r <= -1 || this.moduleCount <= row + r) continue;\n\t\t\n\t\tfor (var c = -1; c <= 7; c++) {\n\t\t\t\n\t\t\tif (col + c <= -1 || this.moduleCount <= col + c) continue;\n\t\t\t\n\t\t\tif ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n\t\t\t\t\t|| (0 <= c && c <= 6 && (r == 0 || r == 6) )\n\t\t\t\t\t|| (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t} else {\n\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t}\n\t\t}\t\t\n\t}\t\t\n};\n\nproto.getBestMaskPattern = function() {\n\n\tvar minLostPoint = 0;\n\tvar pattern = 0;\n\n\tfor (var i = 0; i < 8; i++) {\n\t\t\n\t\tthis.makeImpl(true, i);\n\n\t\tvar lostPoint = util.getLostPoint(this);\n\n\t\tif (i == 0 || minLostPoint > lostPoint) {\n\t\t\tminLostPoint = lostPoint;\n\t\t\tpattern = i;\n\t\t}\n\t}\n\n\treturn pattern;\n};\n\nproto.createMovieClip = function(target_mc, instance_name, depth) {\n\n\tvar qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);\n\tvar cs = 1;\n\n\tthis.make();\n\n\tfor (var row = 0; row < this.modules.length; row++) {\n\t\t\n\t\tvar y = row * cs;\n\t\t\n\t\tfor (var col = 0; col < this.modules[row].length; col++) {\n\n\t\t\tvar x = col * cs;\n\t\t\tvar dark = this.modules[row][col];\n\t\t\n\t\t\tif (dark) {\n\t\t\t\tqr_mc.beginFill(0, 100);\n\t\t\t\tqr_mc.moveTo(x, y);\n\t\t\t\tqr_mc.lineTo(x + cs, y);\n\t\t\t\tqr_mc.lineTo(x + cs, y + cs);\n\t\t\t\tqr_mc.lineTo(x, y + cs);\n\t\t\t\tqr_mc.endFill();\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn qr_mc;\n};\n\nproto.setupTimingPattern = function() {\n\t\n\tfor (var r = 8; r < this.moduleCount - 8; r++) {\n\t\tif (this.modules[r][6] != null) {\n\t\t\tcontinue;\n\t\t}\n\t\tthis.modules[r][6] = (r % 2 == 0);\n\t}\n\n\tfor (var c = 8; c < this.moduleCount - 8; c++) {\n\t\tif (this.modules[6][c] != null) {\n\t\t\tcontinue;\n\t\t}\n\t\tthis.modules[6][c] = (c % 2 == 0);\n\t}\n};\n\nproto.setupPositionAdjustPattern = function() {\n\n\tvar pos = util.getPatternPosition(this.typeNumber);\n\t\n\tfor (var i = 0; i < pos.length; i++) {\n\t\n\t\tfor (var j = 0; j < pos.length; j++) {\n\t\t\n\t\t\tvar row = pos[i];\n\t\t\tvar col = pos[j];\n\t\t\t\n\t\t\tif (this.modules[row][col] != null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tfor (var r = -2; r <= 2; r++) {\n\t\t\t\n\t\t\t\tfor (var c = -2; c <= 2; c++) {\n\t\t\t\t\n\t\t\t\t\tif (r == -2 || r == 2 || c == -2 || c == 2\n\t\t\t\t\t\t\t|| (r == 0 && c == 0) ) {\n\t\t\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nproto.setupTypeNumber = function(test) {\n\n\tvar bits = util.getBCHTypeNumber(this.typeNumber);\n\n\tfor (var i = 0; i < 18; i++) {\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\tthis.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;\n\t}\n\n\tfor (var i = 0; i < 18; i++) {\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\tthis.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n\t}\n};\n\nproto.setupTypeInfo = function(test, maskPattern) {\n\n\tvar data = (this.errorCorrectLevel << 3) | maskPattern;\n\tvar bits = util.getBCHTypeInfo(data);\n\n\t// vertical\t\t\n\tfor (var i = 0; i < 15; i++) {\n\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\n\t\tif (i < 6) {\n\t\t\tthis.modules[i][8] = mod;\n\t\t} else if (i < 8) {\n\t\t\tthis.modules[i + 1][8] = mod;\n\t\t} else {\n\t\t\tthis.modules[this.moduleCount - 15 + i][8] = mod;\n\t\t}\n\t}\n\n\t// horizontal\n\tfor (var i = 0; i < 15; i++) {\n\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\t\n\t\tif (i < 8) {\n\t\t\tthis.modules[8][this.moduleCount - i - 1] = mod;\n\t\t} else if (i < 9) {\n\t\t\tthis.modules[8][15 - i - 1 + 1] = mod;\n\t\t} else {\n\t\t\tthis.modules[8][15 - i - 1] = mod;\n\t\t}\n\t}\n\n\t// fixed module\n\tthis.modules[this.moduleCount - 8][8] = (!test);\n};\n\nproto.mapData = function(data, maskPattern) {\n\t\n\tvar inc = -1;\n\tvar row = this.moduleCount - 1;\n\tvar bitIndex = 7;\n\tvar byteIndex = 0;\n\t\n\tfor (var col = this.moduleCount - 1; col > 0; col -= 2) {\n\n\t\tif (col == 6) col--;\n\n\t\twhile (true) {\n\n\t\t\tfor (var c = 0; c < 2; c++) {\n\t\t\t\t\n\t\t\t\tif (this.modules[row][col - c] == null) {\n\t\t\t\t\t\n\t\t\t\t\tvar dark = false;\n\n\t\t\t\t\tif (byteIndex < data.length) {\n\t\t\t\t\t\tdark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar mask = util.getMask(maskPattern, row, col - c);\n\n\t\t\t\t\tif (mask) {\n\t\t\t\t\t\tdark = !dark;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.modules[row][col - c] = dark;\n\t\t\t\t\tbitIndex--;\n\n\t\t\t\t\tif (bitIndex == -1) {\n\t\t\t\t\t\tbyteIndex++;\n\t\t\t\t\t\tbitIndex = 7;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\trow += inc;\n\n\t\t\tif (row < 0 || this.moduleCount <= row) {\n\t\t\t\trow -= inc;\n\t\t\t\tinc = -inc;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n};\n\nQRCode.PAD0 = 0xEC;\nQRCode.PAD1 = 0x11;\n\nQRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {\n\t\n\tvar rsBlocks = RSBlock.getRSBlocks(typeNumber, errorCorrectLevel);\n\t\n\tvar buffer = new BitBuffer();\n\t\n\tfor (var i = 0; i < dataList.length; i++) {\n\t\tvar data = dataList[i];\n\t\tbuffer.put(data.mode, 4);\n\t\tbuffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber) );\n\t\tdata.write(buffer);\n\t}\n\n\t// calc num max data.\n\tvar totalDataCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t}\n\n\tif (buffer.getLengthInBits() > totalDataCount * 8) {\n\t\tthrow new Error(\"code length overflow. (\"\n\t\t\t+ buffer.getLengthInBits()\n\t\t\t+ \">\"\n\t\t\t+ totalDataCount * 8\n\t\t\t+ \")\");\n\t}\n\n\t// end code\n\tif (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n\t\tbuffer.put(0, 4);\n\t}\n\n\t// padding\n\twhile (buffer.getLengthInBits() % 8 != 0) {\n\t\tbuffer.putBit(false);\n\t}\n\n\t// padding\n\twhile (true) {\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD0, 8);\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD1, 8);\n\t}\n\n\treturn QRCode.createBytes(buffer, rsBlocks);\n};\n\nQRCode.createBytes = function(buffer, rsBlocks) {\n\n\tvar offset = 0;\n\t\n\tvar maxDcCount = 0;\n\tvar maxEcCount = 0;\n\t\n\tvar dcdata = new Array(rsBlocks.length);\n\tvar ecdata = new Array(rsBlocks.length);\n\t\n\tfor (var r = 0; r < rsBlocks.length; r++) {\n\n\t\tvar dcCount = rsBlocks[r].dataCount;\n\t\tvar ecCount = rsBlocks[r].totalCount - dcCount;\n\n\t\tmaxDcCount = Math.max(maxDcCount, dcCount);\n\t\tmaxEcCount = Math.max(maxEcCount, ecCount);\n\t\t\n\t\tdcdata[r] = new Array(dcCount);\n\t\t\n\t\tfor (var i = 0; i < dcdata[r].length; i++) {\n\t\t\tdcdata[r][i] = 0xff & buffer.buffer[i + offset];\n\t\t}\n\t\toffset += dcCount;\n\t\t\n\t\tvar rsPoly = util.getErrorCorrectPolynomial(ecCount);\n\t\tvar rawPoly = new Polynomial(dcdata[r], rsPoly.getLength() - 1);\n\n\t\tvar modPoly = rawPoly.mod(rsPoly);\n\t\tecdata[r] = new Array(rsPoly.getLength() - 1);\n\t\tfor (var i = 0; i < ecdata[r].length; i++) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length;\n\t\t\tecdata[r][i] = (modIndex >= 0)? modPoly.get(modIndex) : 0;\n\t\t}\n\n\t}\n\t\n\tvar totalCodeCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalCodeCount += rsBlocks[i].totalCount;\n\t}\n\n\tvar data = new Array(totalCodeCount);\n\tvar index = 0;\n\n\tfor (var i = 0; i < maxDcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < dcdata[r].length) {\n\t\t\t\tdata[index++] = dcdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (var i = 0; i < maxEcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < ecdata[r].length) {\n\t\t\t\tdata[index++] = ecdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn data;\n};\n\nmodule.exports = QRCode;\n\n","var Mode = require('./mode');\nvar Polynomial = require('./Polynomial');\nvar math = require('./math');\n\nvar QRMaskPattern = {\n\tPATTERN000 : 0,\n\tPATTERN001 : 1,\n\tPATTERN010 : 2,\n\tPATTERN011 : 3,\n\tPATTERN100 : 4,\n\tPATTERN101 : 5,\n\tPATTERN110 : 6,\n\tPATTERN111 : 7\n};\n\nvar QRUtil = {\n\n PATTERN_POSITION_TABLE : [\n\t [],\n\t [6, 18],\n\t [6, 22],\n\t [6, 26],\n\t [6, 30],\n\t [6, 34],\n\t [6, 22, 38],\n\t [6, 24, 42],\n\t [6, 26, 46],\n\t [6, 28, 50],\n\t [6, 30, 54],\t\t\n\t [6, 32, 58],\n\t [6, 34, 62],\n\t [6, 26, 46, 66],\n\t [6, 26, 48, 70],\n\t [6, 26, 50, 74],\n\t [6, 30, 54, 78],\n\t [6, 30, 56, 82],\n\t [6, 30, 58, 86],\n\t [6, 34, 62, 90],\n\t [6, 28, 50, 72, 94],\n\t [6, 26, 50, 74, 98],\n\t [6, 30, 54, 78, 102],\n\t [6, 28, 54, 80, 106],\n\t [6, 32, 58, 84, 110],\n\t [6, 30, 58, 86, 114],\n\t [6, 34, 62, 90, 118],\n\t [6, 26, 50, 74, 98, 122],\n\t [6, 30, 54, 78, 102, 126],\n\t [6, 26, 52, 78, 104, 130],\n\t [6, 30, 56, 82, 108, 134],\n\t [6, 34, 60, 86, 112, 138],\n\t [6, 30, 58, 86, 114, 142],\n\t [6, 34, 62, 90, 118, 146],\n\t [6, 30, 54, 78, 102, 126, 150],\n\t [6, 24, 50, 76, 102, 128, 154],\n\t [6, 28, 54, 80, 106, 132, 158],\n\t [6, 32, 58, 84, 110, 136, 162],\n\t [6, 26, 54, 82, 110, 138, 166],\n\t [6, 30, 58, 86, 114, 142, 170]\n ],\n\n G15 : (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),\n G18 : (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),\n G15_MASK : (1 << 14) | (1 << 12) | (1 << 10)\t| (1 << 4) | (1 << 1),\n\n getBCHTypeInfo : function(data) {\n\t var d = data << 10;\n\t while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n\t\t d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) ) ); \t\n\t }\n\t return ( (data << 10) | d) ^ QRUtil.G15_MASK;\n },\n\n getBCHTypeNumber : function(data) {\n\t var d = data << 12;\n\t while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n\t\t d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) ) ); \t\n\t }\n\t return (data << 12) | d;\n },\n\n getBCHDigit : function(data) {\n\n\t var digit = 0;\n\n\t while (data != 0) {\n\t\t digit++;\n\t\t data >>>= 1;\n\t }\n\n\t return digit;\n },\n\n getPatternPosition : function(typeNumber) {\n\t return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];\n },\n\n getMask : function(maskPattern, i, j) {\n\t \n\t switch (maskPattern) {\n\t\t \n\t case QRMaskPattern.PATTERN000 : return (i + j) % 2 == 0;\n\t case QRMaskPattern.PATTERN001 : return i % 2 == 0;\n\t case QRMaskPattern.PATTERN010 : return j % 3 == 0;\n\t case QRMaskPattern.PATTERN011 : return (i + j) % 3 == 0;\n\t case QRMaskPattern.PATTERN100 : return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0;\n\t case QRMaskPattern.PATTERN101 : return (i * j) % 2 + (i * j) % 3 == 0;\n\t case QRMaskPattern.PATTERN110 : return ( (i * j) % 2 + (i * j) % 3) % 2 == 0;\n\t case QRMaskPattern.PATTERN111 : return ( (i * j) % 3 + (i + j) % 2) % 2 == 0;\n\n\t default :\n\t\t throw new Error(\"bad maskPattern:\" + maskPattern);\n\t }\n },\n\n getErrorCorrectPolynomial : function(errorCorrectLength) {\n\n\t var a = new Polynomial([1], 0);\n\n\t for (var i = 0; i < errorCorrectLength; i++) {\n\t\t a = a.multiply(new Polynomial([1, math.gexp(i)], 0) );\n\t }\n\n\t return a;\n },\n\n getLengthInBits : function(mode, type) {\n\n\t if (1 <= type && type < 10) {\n\n\t\t // 1 - 9\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 10;\n\t\t case Mode.MODE_ALPHA_NUM \t: return 9;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 8;\n\t\t case Mode.MODE_KANJI \t: return 8;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else if (type < 27) {\n\n\t\t // 10 - 26\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 12;\n\t\t case Mode.MODE_ALPHA_NUM \t: return 11;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 16;\n\t\t case Mode.MODE_KANJI \t: return 10;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else if (type < 41) {\n\n\t\t // 27 - 40\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 14;\n\t\t case Mode.MODE_ALPHA_NUM\t: return 13;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 16;\n\t\t case Mode.MODE_KANJI \t: return 12;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else {\n\t\t throw new Error(\"type:\" + type);\n\t }\n },\n\n getLostPoint : function(qrCode) {\n\t \n\t var moduleCount = qrCode.getModuleCount();\n\t \n\t var lostPoint = 0;\n\t \n\t // LEVEL1\n\t \n\t for (var row = 0; row < moduleCount; row++) {\n\n\t\t for (var col = 0; col < moduleCount; col++) {\n\n\t\t\t var sameCount = 0;\n\t\t\t var dark = qrCode.isDark(row, col);\n\n\t\t\t\tfor (var r = -1; r <= 1; r++) {\n\n\t\t\t\t if (row + r < 0 || moduleCount <= row + r) {\n\t\t\t\t\t continue;\n\t\t\t\t }\n\n\t\t\t\t for (var c = -1; c <= 1; c++) {\n\n\t\t\t\t\t if (col + c < 0 || moduleCount <= col + c) {\n\t\t\t\t\t\t continue;\n\t\t\t\t\t }\n\n\t\t\t\t\t if (r == 0 && c == 0) {\n\t\t\t\t\t\t continue;\n\t\t\t\t\t }\n\n\t\t\t\t\t if (dark == qrCode.isDark(row + r, col + c) ) {\n\t\t\t\t\t\t sameCount++;\n\t\t\t\t\t }\n\t\t\t\t }\n\t\t\t }\n\n\t\t\t if (sameCount > 5) {\n\t\t\t\t lostPoint += (3 + sameCount - 5);\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL2\n\n\t for (var row = 0; row < moduleCount - 1; row++) {\n\t\t for (var col = 0; col < moduleCount - 1; col++) {\n\t\t\t var count = 0;\n\t\t\t if (qrCode.isDark(row, col ) ) count++;\n\t\t\t if (qrCode.isDark(row + 1, col ) ) count++;\n\t\t\t if (qrCode.isDark(row, col + 1) ) count++;\n\t\t\t if (qrCode.isDark(row + 1, col + 1) ) count++;\n\t\t\t if (count == 0 || count == 4) {\n\t\t\t\t lostPoint += 3;\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL3\n\n\t for (var row = 0; row < moduleCount; row++) {\n\t\t for (var col = 0; col < moduleCount - 6; col++) {\n\t\t\t if (qrCode.isDark(row, col)\n\t\t\t\t\t && !qrCode.isDark(row, col + 1)\n\t\t\t\t\t && qrCode.isDark(row, col + 2)\n\t\t\t\t\t && qrCode.isDark(row, col + 3)\n\t\t\t\t\t && qrCode.isDark(row, col + 4)\n\t\t\t\t\t && !qrCode.isDark(row, col + 5)\n\t\t\t\t\t && qrCode.isDark(row, col + 6) ) {\n\t\t\t\t lostPoint += 40;\n\t\t\t }\n\t\t }\n\t }\n\n\t for (var col = 0; col < moduleCount; col++) {\n\t\t for (var row = 0; row < moduleCount - 6; row++) {\n\t\t\t if (qrCode.isDark(row, col)\n\t\t\t\t\t && !qrCode.isDark(row + 1, col)\n\t\t\t\t\t && qrCode.isDark(row + 2, col)\n\t\t\t\t\t && qrCode.isDark(row + 3, col)\n\t\t\t\t\t && qrCode.isDark(row + 4, col)\n\t\t\t\t\t && !qrCode.isDark(row + 5, col)\n\t\t\t\t\t && qrCode.isDark(row + 6, col) ) {\n\t\t\t\t lostPoint += 40;\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL4\n\t \n\t var darkCount = 0;\n\n\t for (var col = 0; col < moduleCount; col++) {\n\t\t for (var row = 0; row < moduleCount; row++) {\n\t\t\t if (qrCode.isDark(row, col) ) {\n\t\t\t\t darkCount++;\n\t\t\t }\n\t\t }\n\t }\n\t \n\t var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n\t lostPoint += ratio * 10;\n\n\t return lostPoint;\t\t\n }\n};\n\nmodule.exports = QRUtil;\n","module.exports = {\n\tL : 1,\n\tM : 0,\n\tQ : 3,\n\tH : 2\n};\n\n","var QRMath = {\n\n\tglog : function(n) {\n\t\n\t\tif (n < 1) {\n\t\t\tthrow new Error(\"glog(\" + n + \")\");\n\t\t}\n\t\t\n\t\treturn QRMath.LOG_TABLE[n];\n\t},\n\t\n\tgexp : function(n) {\n\t\n\t\twhile (n < 0) {\n\t\t\tn += 255;\n\t\t}\n\t\n\t\twhile (n >= 256) {\n\t\t\tn -= 255;\n\t\t}\n\t\n\t\treturn QRMath.EXP_TABLE[n];\n\t},\n\t\n\tEXP_TABLE : new Array(256),\n\t\n\tLOG_TABLE : new Array(256)\n\n};\n\t\nfor (var i = 0; i < 8; i++) {\n\tQRMath.EXP_TABLE[i] = 1 << i;\n}\nfor (var i = 8; i < 256; i++) {\n\tQRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4]\n\t\t^ QRMath.EXP_TABLE[i - 5]\n\t\t^ QRMath.EXP_TABLE[i - 6]\n\t\t^ QRMath.EXP_TABLE[i - 8];\n}\nfor (var i = 0; i < 255; i++) {\n\tQRMath.LOG_TABLE[QRMath.EXP_TABLE[i] ] = i;\n}\n\nmodule.exports = QRMath;\n","var math = require('./math');\n\nfunction QRPolynomial(num, shift) {\n\n\tif (num.length == undefined) {\n\t\tthrow new Error(num.length + \"/\" + shift);\n\t}\n\n\tvar offset = 0;\n\n\twhile (offset < num.length && num[offset] == 0) {\n\t\toffset++;\n\t}\n\n\tthis.num = new Array(num.length - offset + shift);\n\tfor (var i = 0; i < num.length - offset; i++) {\n\t\tthis.num[i] = num[i + offset];\n\t}\n}\n\nQRPolynomial.prototype = {\n\n\tget : function(index) {\n\t\treturn this.num[index];\n\t},\n\t\n\tgetLength : function() {\n\t\treturn this.num.length;\n\t},\n\t\n\tmultiply : function(e) {\n\t\n\t\tvar num = new Array(this.getLength() + e.getLength() - 1);\n\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tfor (var j = 0; j < e.getLength(); j++) {\n\t\t\t\tnum[i + j] ^= math.gexp(math.glog(this.get(i) ) + math.glog(e.get(j) ) );\n\t\t\t}\n\t\t}\n\t\n\t\treturn new QRPolynomial(num, 0);\n\t},\n\t\n\tmod : function(e) {\n\t\n\t\tif (this.getLength() - e.getLength() < 0) {\n\t\t\treturn this;\n\t\t}\n\t\n\t\tvar ratio = math.glog(this.get(0) ) - math.glog(e.get(0) );\n\t\n\t\tvar num = new Array(this.getLength() );\n\t\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tnum[i] = this.get(i);\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < e.getLength(); i++) {\n\t\t\tnum[i] ^= math.gexp(math.glog(e.get(i) ) + ratio);\n\t\t}\n\t\n\t\t// recursive call\n\t\treturn new QRPolynomial(num, 0).mod(e);\n\t}\n};\n\nmodule.exports = QRPolynomial;\n","var mode = require('./mode');\n\nfunction QR8bitByte(data) {\n\tthis.mode = mode.MODE_8BIT_BYTE;\n\tthis.data = data;\n}\n\nQR8bitByte.prototype = {\n\n\tgetLength : function(buffer) {\n\t\treturn this.data.length;\n\t},\n\t\n\twrite : function(buffer) {\n\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t// not JIS ...\n\t\t\tbuffer.put(this.data.charCodeAt(i), 8);\n\t\t}\n\t}\n};\n\nmodule.exports = QR8bitByte;\n\n","module.exports = {\n\tMODE_NUMBER :\t\t1 << 0,\n\tMODE_ALPHA_NUM : \t1 << 1,\n\tMODE_8BIT_BYTE : \t1 << 2,\n\tMODE_KANJI :\t\t1 << 3\n};\n","// ErrorCorrectLevel\nvar ECL = require('./ErrorCorrectLevel');\n\nfunction QRRSBlock(totalCount, dataCount) {\n\tthis.totalCount = totalCount;\n\tthis.dataCount = dataCount;\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [\n\n\t// L\n\t// M\n\t// Q\n\t// H\n\n\t// 1\n\t[1, 26, 19],\n\t[1, 26, 16],\n\t[1, 26, 13],\n\t[1, 26, 9],\n\t\n\t// 2\n\t[1, 44, 34],\n\t[1, 44, 28],\n\t[1, 44, 22],\n\t[1, 44, 16],\n\n\t// 3\n\t[1, 70, 55],\n\t[1, 70, 44],\n\t[2, 35, 17],\n\t[2, 35, 13],\n\n\t// 4\t\t\n\t[1, 100, 80],\n\t[2, 50, 32],\n\t[2, 50, 24],\n\t[4, 25, 9],\n\t\n\t// 5\n\t[1, 134, 108],\n\t[2, 67, 43],\n\t[2, 33, 15, 2, 34, 16],\n\t[2, 33, 11, 2, 34, 12],\n\t\n\t// 6\n\t[2, 86, 68],\n\t[4, 43, 27],\n\t[4, 43, 19],\n\t[4, 43, 15],\n\t\n\t// 7\t\t\n\t[2, 98, 78],\n\t[4, 49, 31],\n\t[2, 32, 14, 4, 33, 15],\n\t[4, 39, 13, 1, 40, 14],\n\t\n\t// 8\n\t[2, 121, 97],\n\t[2, 60, 38, 2, 61, 39],\n\t[4, 40, 18, 2, 41, 19],\n\t[4, 40, 14, 2, 41, 15],\n\t\n\t// 9\n\t[2, 146, 116],\n\t[3, 58, 36, 2, 59, 37],\n\t[4, 36, 16, 4, 37, 17],\n\t[4, 36, 12, 4, 37, 13],\n\t\n\t// 10\t\t\n\t[2, 86, 68, 2, 87, 69],\n\t[4, 69, 43, 1, 70, 44],\n\t[6, 43, 19, 2, 44, 20],\n\t[6, 43, 15, 2, 44, 16],\n\n\t// 11\n\t[4, 101, 81],\n\t[1, 80, 50, 4, 81, 51],\n\t[4, 50, 22, 4, 51, 23],\n\t[3, 36, 12, 8, 37, 13],\n\n\t// 12\n\t[2, 116, 92, 2, 117, 93],\n\t[6, 58, 36, 2, 59, 37],\n\t[4, 46, 20, 6, 47, 21],\n\t[7, 42, 14, 4, 43, 15],\n\n\t// 13\n\t[4, 133, 107],\n\t[8, 59, 37, 1, 60, 38],\n\t[8, 44, 20, 4, 45, 21],\n\t[12, 33, 11, 4, 34, 12],\n\n\t// 14\n\t[3, 145, 115, 1, 146, 116],\n\t[4, 64, 40, 5, 65, 41],\n\t[11, 36, 16, 5, 37, 17],\n\t[11, 36, 12, 5, 37, 13],\n\n\t// 15\n\t[5, 109, 87, 1, 110, 88],\n\t[5, 65, 41, 5, 66, 42],\n\t[5, 54, 24, 7, 55, 25],\n\t[11, 36, 12],\n\n\t// 16\n\t[5, 122, 98, 1, 123, 99],\n\t[7, 73, 45, 3, 74, 46],\n\t[15, 43, 19, 2, 44, 20],\n\t[3, 45, 15, 13, 46, 16],\n\n\t// 17\n\t[1, 135, 107, 5, 136, 108],\n\t[10, 74, 46, 1, 75, 47],\n\t[1, 50, 22, 15, 51, 23],\n\t[2, 42, 14, 17, 43, 15],\n\n\t// 18\n\t[5, 150, 120, 1, 151, 121],\n\t[9, 69, 43, 4, 70, 44],\n\t[17, 50, 22, 1, 51, 23],\n\t[2, 42, 14, 19, 43, 15],\n\n\t// 19\n\t[3, 141, 113, 4, 142, 114],\n\t[3, 70, 44, 11, 71, 45],\n\t[17, 47, 21, 4, 48, 22],\n\t[9, 39, 13, 16, 40, 14],\n\n\t// 20\n\t[3, 135, 107, 5, 136, 108],\n\t[3, 67, 41, 13, 68, 42],\n\t[15, 54, 24, 5, 55, 25],\n\t[15, 43, 15, 10, 44, 16],\n\n\t// 21\n\t[4, 144, 116, 4, 145, 117],\n\t[17, 68, 42],\n\t[17, 50, 22, 6, 51, 23],\n\t[19, 46, 16, 6, 47, 17],\n\n\t// 22\n\t[2, 139, 111, 7, 140, 112],\n\t[17, 74, 46],\n\t[7, 54, 24, 16, 55, 25],\n\t[34, 37, 13],\n\n\t// 23\n\t[4, 151, 121, 5, 152, 122],\n\t[4, 75, 47, 14, 76, 48],\n\t[11, 54, 24, 14, 55, 25],\n\t[16, 45, 15, 14, 46, 16],\n\n\t// 24\n\t[6, 147, 117, 4, 148, 118],\n\t[6, 73, 45, 14, 74, 46],\n\t[11, 54, 24, 16, 55, 25],\n\t[30, 46, 16, 2, 47, 17],\n\n\t// 25\n\t[8, 132, 106, 4, 133, 107],\n\t[8, 75, 47, 13, 76, 48],\n\t[7, 54, 24, 22, 55, 25],\n\t[22, 45, 15, 13, 46, 16],\n\n\t// 26\n\t[10, 142, 114, 2, 143, 115],\n\t[19, 74, 46, 4, 75, 47],\n\t[28, 50, 22, 6, 51, 23],\n\t[33, 46, 16, 4, 47, 17],\n\n\t// 27\n\t[8, 152, 122, 4, 153, 123],\n\t[22, 73, 45, 3, 74, 46],\n\t[8, 53, 23, 26, 54, 24],\n\t[12, 45, 15, 28, 46, 16],\n\n\t// 28\n\t[3, 147, 117, 10, 148, 118],\n\t[3, 73, 45, 23, 74, 46],\n\t[4, 54, 24, 31, 55, 25],\n\t[11, 45, 15, 31, 46, 16],\n\n\t// 29\n\t[7, 146, 116, 7, 147, 117],\n\t[21, 73, 45, 7, 74, 46],\n\t[1, 53, 23, 37, 54, 24],\n\t[19, 45, 15, 26, 46, 16],\n\n\t// 30\n\t[5, 145, 115, 10, 146, 116],\n\t[19, 75, 47, 10, 76, 48],\n\t[15, 54, 24, 25, 55, 25],\n\t[23, 45, 15, 25, 46, 16],\n\n\t// 31\n\t[13, 145, 115, 3, 146, 116],\n\t[2, 74, 46, 29, 75, 47],\n\t[42, 54, 24, 1, 55, 25],\n\t[23, 45, 15, 28, 46, 16],\n\n\t// 32\n\t[17, 145, 115],\n\t[10, 74, 46, 23, 75, 47],\n\t[10, 54, 24, 35, 55, 25],\n\t[19, 45, 15, 35, 46, 16],\n\n\t// 33\n\t[17, 145, 115, 1, 146, 116],\n\t[14, 74, 46, 21, 75, 47],\n\t[29, 54, 24, 19, 55, 25],\n\t[11, 45, 15, 46, 46, 16],\n\n\t// 34\n\t[13, 145, 115, 6, 146, 116],\n\t[14, 74, 46, 23, 75, 47],\n\t[44, 54, 24, 7, 55, 25],\n\t[59, 46, 16, 1, 47, 17],\n\n\t// 35\n\t[12, 151, 121, 7, 152, 122],\n\t[12, 75, 47, 26, 76, 48],\n\t[39, 54, 24, 14, 55, 25],\n\t[22, 45, 15, 41, 46, 16],\n\n\t// 36\n\t[6, 151, 121, 14, 152, 122],\n\t[6, 75, 47, 34, 76, 48],\n\t[46, 54, 24, 10, 55, 25],\n\t[2, 45, 15, 64, 46, 16],\n\n\t// 37\n\t[17, 152, 122, 4, 153, 123],\n\t[29, 74, 46, 14, 75, 47],\n\t[49, 54, 24, 10, 55, 25],\n\t[24, 45, 15, 46, 46, 16],\n\n\t// 38\n\t[4, 152, 122, 18, 153, 123],\n\t[13, 74, 46, 32, 75, 47],\n\t[48, 54, 24, 14, 55, 25],\n\t[42, 45, 15, 32, 46, 16],\n\n\t// 39\n\t[20, 147, 117, 4, 148, 118],\n\t[40, 75, 47, 7, 76, 48],\n\t[43, 54, 24, 22, 55, 25],\n\t[10, 45, 15, 67, 46, 16],\n\n\t// 40\n\t[19, 148, 118, 6, 149, 119],\n\t[18, 75, 47, 31, 76, 48],\n\t[34, 54, 24, 34, 55, 25],\n\t[20, 45, 15, 61, 46, 16]\n];\n\nQRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {\n\t\n\tvar rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);\n\t\n\tif (rsBlock == undefined) {\n\t\tthrow new Error(\"bad rs block @ typeNumber:\" + typeNumber + \"/errorCorrectLevel:\" + errorCorrectLevel);\n\t}\n\n\tvar length = rsBlock.length / 3;\n\t\n\tvar list = new Array();\n\t\n\tfor (var i = 0; i < length; i++) {\n\n\t\tvar count = rsBlock[i * 3 + 0];\n\t\tvar totalCount = rsBlock[i * 3 + 1];\n\t\tvar dataCount = rsBlock[i * 3 + 2];\n\n\t\tfor (var j = 0; j < count; j++) {\n\t\t\tlist.push(new QRRSBlock(totalCount, dataCount) );\t\n\t\t}\n\t}\n\t\n\treturn list;\n}\n\nQRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {\n\n\tswitch(errorCorrectLevel) {\n\tcase ECL.L :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n\tcase ECL.M :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n\tcase ECL.Q :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n\tcase ECL.H :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n\tdefault :\n\t\treturn undefined;\n\t}\n}\n\nmodule.exports = QRRSBlock;\n","function QRBitBuffer() {\n\tthis.buffer = new Array();\n\tthis.length = 0;\n}\n\nQRBitBuffer.prototype = {\n\n\tget : function(index) {\n\t\tvar bufIndex = Math.floor(index / 8);\n\t\treturn ( (this.buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n\t},\n\t\n\tput : function(num, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tthis.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n\t\t}\n\t},\n\t\n\tgetLengthInBits : function() {\n\t\treturn this.length;\n\t},\n\t\n\tputBit : function(bit) {\n\t\n\t\tvar bufIndex = Math.floor(this.length / 8);\n\t\tif (this.buffer.length <= bufIndex) {\n\t\t\tthis.buffer.push(0);\n\t\t}\n\t\n\t\tif (bit) {\n\t\t\tthis.buffer[bufIndex] |= (0x80 >>> (this.length % 8) );\n\t\t}\n\t\n\t\tthis.length++;\n\t}\n};\n\nmodule.exports = QRBitBuffer;\n"],"sourceRoot":""}