{"version":3,"sources":["webpack:///./node_modules/@progress/kendo-ui/js/kendo.dataviz.core.js","webpack:///./node_modules/@progress/kendo-ui/js/kendo.dataviz.qrcode.js","webpack:///./node_modules/@progress/kendo-ui/js/kendo.dataviz.barcode.js","webpack:///./node_modules/@progress/kendo-ui/js/kendo.dataviz.map.js","webpack:///./node_modules/@progress/kendo-ui/js/kendo.dataviz.themes.js","webpack:///./node_modules/@progress/kendo-ui/js/kendo.dataviz.gauge.js","webpack:///./node_modules/@progress/kendo-ui/js/kendo.dataviz.diagram.js","webpack:///./node_modules/@progress/kendo-ui/js/kendo.dataviz.js","webpack:///./node_modules/@progress/kendo-ui/js/kendo.dataviz.stock.js","webpack:///./node_modules/@progress/kendo-ui/js/kendo.dataviz.treemap.js","webpack:///./node_modules/@progress/kendo-ui/js/kendo.dataviz.chart.js","webpack:///./node_modules/@progress/kendo-ui/js/kendo.dataviz.sparkline.js"],"names":["module","exports","modules","installedModules","__webpack_require__","moduleId","id","loaded","call","m","c","p","0","3","Error","1145","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","f","define","apply","undefined","1146","1147","1056","1129","1171","$","kendo","window","extend","draw","drawing","dataviz","Widget","ui","Box2D","terminator","NUMERIC","ALPHA_NUMERIC","BYTE","powersOfTwo","powersOfTwoResult","generatorPolynomials","irregularAlignmentPatternsStartDistance","15","16","18","19","22","24","26","28","30","31","32","33","36","37","39","40","versionsCodewordsInformation","L","groups","totalDataCodewords","errorCodewordsPerBlock","M","Q","H","finderPattern","alignmentPattern","errorCorrectionPatterns","formatMaskPattern","formatGeneratorPolynomial","versionGeneratorPolynomial","paddingCodewords","finderPatternValue","maskPatternConditions","row","column","Math","floor","numberRegex","alphaPattern","alphaExclusiveSet","alphaRegex","RegExp","alphaNumericRegex","byteRegex","initMinNumericBeforeAlpha","initMinNumericBeforeByte","initMinAlphaBeforeByte","minNumericBeforeAlpha","minNumericBeforeByte","minAlphaBeforeByte","round","IMAGE","SWISS_QR","crossPattern","squarePattern","DEFAULT_LOGO_SIZE","toDecimal","value","parseInt","toBitsString","length","result","Number","toString","Array","join","splitInto","str","n","idx","push","substring","QRDataMode","Class","getVersionIndex","version","getBitsCharacterCount","mode","this","bitsInCharacterCount","getModeCountString","modeIndicator","encode","getStringBitsLength","getValue","modes","character","parts","i","inputLength","mod3","characters","charAt","code","charCodeAt","modeInstances","FreeCellVisitor","matrix","that","startColumn","dir","move","getNextCell","getNextRemainderCell","fillFunctionCell","matrices","bit","x","y","fillDataCell","fillData","blocks","block","codewordIdx","cell","cellVisitor","blockIdx","j","splice","padDataString","dataString","dataBitsCount","terminatorIndex","paddingCodewordIndex","generatePowersOfTwo","power","xorPolynomials","multiplyPolynomials","generateGeneratorPolynomials","maxErrorCorrectionCodeWordsCount","firstPolynomial","secondPolynomial","multiplyByConstant","polynomial","generateErrorCodewords","data","errorCodewordsCount","divisor","generator","concat","generatorPolynomial","steps","errorCodewords","getBlocks","dataStream","versionCodewordsInformation","dataBlock","blockCodewordsCount","groupBlocksCount","messagePolynomial","codeword","codewordStart","dataBlocks","errorBlocks","versionGroups","groupIdx","chooseMode","previousMode","modeString","numeric","exec","numericMatch","alpha","alphaMatch","alphaNumeric","alphaNumericMatch","test","getModes","substr","nextMode","getDataCodewordsCount","ceil","getVersion","dataCodewordsCount","errorCorrectionLevel","getDataString","encodeFormatInformation","format","encodedString","formatNumber","encodeBCH","codeLength","generatorNumber","polynomialLength","valueNumber","valueString","dividePolynomials","numberX","numberY","yLength","xLength","getNumberAt","initMatrices","addFormatInformation","formatString","encodeVersionInformation","addVersionInformation","quotient","mod","x1","y1","x2","y2","addCentricPattern","pattern","size","addFinderSeparator","direction","nextX","nextY","addFinderPatterns","addAlignmentPatterns","startDistance","distance","pointsCount","points","addTimingFunctions","scoreMaskMatrixes","scores","previousBits","darkModules","patterns","adjacentSameBits","k","scoreFinderPatternOccurance","scoreAdjacentSameBits","minIdx","total","min","MAX_VALUE","calculateDarkModulesRatioScore","rowColumn","adjacentBits","percent","mod5","previous","abs","next","score","EncodingResult","IsoEncoder","getEncodingResult","inputString","UTF8Encoder","encodingMode","fn","prototype","utfBOM","initialModeCountStringLength","dataLength","encodeCharacter","bytesCount","getBytesCount","bc","significantOnes","ranges","QRCodeDataEncoder","encoding","toLowerCase","indexOf","encodeData","encoder","encodingResult","versionInformation","optimalMatrix","QRCodeDefaults","DEFAULT_SIZE","QUIET_ZONE_LENGTH","DEFAULT_ERROR_CORRECTION_LEVEL","DEFAULT_BACKGROUND","DEFAULT_DARK_MODULE_COLOR","MIN_BASE_UNIT_SIZE","QRCode","init","element","options","wrapper","addClass","surfaceWrap","css","appendTo","surface","Surface","create","type","renderAs","setOptions","redraw","_getSize","width","height","clear","resize","createVisual","visual","getSize","dimensions","_resize","_render","exportVisual","baseUnit","quietZoneSize","dataSize","contentSize","_value","border","padding","borderWidth","Group","errorCorrection","_calculateBaseUnit","append","_renderBackground","_renderMatrix","_hasCustomLogo","_renderLogo","_isSwiss","_renderSwissCode","qrSize","image","imageRect","center","logoSize","_getLogoSize","logoUrl","overlay","imageUrl","position","geometry","Rect","Point","Size","Image","max","crossSize","crossOffset","start","_renderShape","color","step","path","MultiPath","fill","stroke","moveTo","lineTo","close","matrixSize","box","unpad","Path","fromRect","toRect","background","name","defautLogoSize","ExportMixin","plugin","deepExtend","QRCodeFunctions","QRCodeFields","jQuery","1141","inArray","isPlainObject","geom","util","defined","TextBox","DEFAULT_WIDTH","DEFAULT_HEIGHT","DEFAULT_QUIETZONE_LENGTH","alphanumericRegex","InvalidCharacterErrorTemplate","getNext","index","count","Encoding","quietZoneLength","addQuietZone","initValue","addData","addCheckSum","invalidCharacterError","encodings","code39Base","minBaseUnitLength","addStart","addCharacter","pushCheckSum","addStop","prepareValues","charData","characterMap","addBase","code39ExtendedBase","addExtended","extendedMappings","shiftCharacters","String","fromCharCode","dataCharacter","specialAsciiCodes","shiftValuesAsciiCodes","code39","checkSumMod","minRatio","maxRatio","gapWidth","splitCharacter","patternString","minBaseUnit","ratio","minHeight","getBaseUnit","parseFloat","toFixed","minWidth","getBaseWidth","replace","split","characterLength","addPattern","START","addCharacterGap","patternMappings","code39extended","SHIFT0","SHIFT1","SHIFT2","SHIFT3","code93","cCheckSumTotal","kCheckSumTotal","values","setBaseUnit","checkSumLength","TERMINATION_BAR","checkValues","_getCheckValues","checksum","_findCharacterByValue","cValue","kValue","wightedSum","weightedValue","code93extended","state128","is","pushState","state128AB","FNC4","states","_initMoves","isCode","encodingState","_moves","maxLength","numberMatch","match","_moveFNC","shiftKey","_shiftState","_moveState","fnc","previousState","key","SHIFT","shifted","MOVE","states128","A","B","C","next4","dependentStates","_initSubStates","subState","_getSubState","_initSubState","state","_pushStart","pushData","subStates","_getAll","FNC1","startState","startAI","endAI","current","nextStart","separatorLength","regexSeparators","getBySeparator","getByLength","ai","validate","getAI","unsupportedAIError","end","applicationIdentifiers","multiKey","ids","code128Base","_initStates","checkSum","totalUnits","getNextState","temp","STOP","code128a","code128b","code128c","code128","msiBase","startStopLength","checkSumFunction","checkSums","checkSumType","Modulo10","evenSum","oddSum","odd","Modulo11","weight","checkValue","weightedSum","Modulo11Modulo10","mod11Value","Modulo10Modulo10","mod10Value","msimod10","msimod11","msimod1110","msimod1010","code11","kCheckSumMinLength","DASH_VALUE","DASH","getWeightedSum","isNaN","postnet","VALID_CODE_LENGTHS","DIGIT_SEPARATOR","baseHeight","pop","ean13","calculateChecksum","leftKey","leftPart","rightPart","addPieces","addSide","middle","keyTable","slice","digits","reverse","arrToAdd","limitedHeight","even","ean8","Barcode","_setOptions","setSize","textToDisplay","textHeight","textOptions","text","textMargin","getSpacing","margin","contentBox","barHeight","_getBackground","visible","measureText","font","top","bottom","_getText","_bandsGroup","_getBands","item","group","rect","fromPoints","dashType","_textbox","align","vAlign","reflow","renderVisual","left","right","1069","1079","1104","1123","1128","1157","1158","1159","1160","1161","1162","1163","1164","1165","1166","1167","1168","1169","1178","1179","1180","1181","1130","1155","1156","1148","1149","1150","1151","1152","1153","1154","1050","1051","1105","1117","1118","1122","1124","1125","1126","1127","1131","1132","1133","1134","1135","1136","1137","1138","1139","1140","1175","1176","1177","1182","math","proxy","isArray","outerHeight","_outerHeight","outerWidth","_outerWidth","template","HierarchicalDataSource","getter","NS","CHANGE","DATA_BOUND","ITEM_CREATED","MOUSEOVER_NS","MOUSELEAVE_NS","UNDEFINED","TreeMap","destroy","empty","_initTheme","_setLayout","_originalOptions","_initDataSource","_attachEvents","notify","theme","autoBind","textField","valueField","colorField","events","themes","themeName","themeOptions","treeMap","on","_mouseover","_mouseleave","_resizeHandler","onResize","_layout","SliceAndDice","_view","SliceAndDiceView","Squarified","SquarifiedView","dataSource","_dataChangeHandler","_onDataChange","bind","fetch","setDataSource","unbind","e","node","items","root","_getByUid","uid","children","Query","_sortForGrouping","_wrapItem","htmlSize","compute","coord","_setColors","render","_cleanItems","createRoot","_root","_colorIdx","load","trigger","angular","elements","find","colorRange","colors","colorIdx","colorsByLength","leafNodes","dataItem","hasChildren","_contentSize","view","renderHeight","wrap","getField","level","attr","getByUid","findByUid","target","hasClass","_removeActiveState","removeClass","off","unbindResize","rootElement","_resizeItems","child","childElement","titleSize","filter","setItemSize","_setEvents","leaf","tree","layoutChildren","parentArea","totalArea","itemsArea","area","minimumSideValue","layoutHorizontal","firstElement","tail","squarify","initElement","computeDim","worstAspectRatio","newCoords","layoutRow","dim","layoutLast","w","layoutV","layoutH","orientation","layoutVertical","layoutChange","areaSum","maxArea","minArea","rootCoord","newRootCoord","_totalArea","ans","offset","_clean","title","_createTitle","_compile","_createWrap","innerWidth","rootWrap","htmlElement","_createLeaf","_createTile","toggleClass","_tileColorBrightness","toggle","html","tile","_itemCoordinates","coordinates","_renderTemplate","titleTemplate","colorBrightness","vertical","sliceAndDice","field","get","minRGBtoDecimal","rgbToDecimal","maxRGBtoDecimal","isDarker","rgbColor","r","colorByIndex","g","b","buildColorFromRGB","minColor","maxColor","currentStep","decimalToRgb","colorToRGB","rgbToHex","number","toUpperCase","colorLength","rgb","brightness","sqrt","pow","1142","1143","1144","1172","1173","1174"],"mappings":"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","file":"js/chunk-vendors~cb37063a.e38d1a96.js","sourcesContent":["module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1145);\n\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n\tmodule.exports = function() { throw new Error(\"define cannot be used indirect\"); };\r\n\n\n/***/ }),\n\n/***/ 1145:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(f, define){\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n\t __webpack_require__(1146),\n\t __webpack_require__(1147)\n\t ], __WEBPACK_AMD_DEFINE_FACTORY__ = (f), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t})(function(){\n\n\tvar __meta__ = { // jshint ignore:line\n\t id: \"dataviz.core\",\n\t name: \"Core\",\n\t description: \"The DataViz core functions\",\n\t category: \"dataviz\",\n\t depends: [ \"core\", \"drawing\" ],\n\t hidden: true\n\t};\n\n\t}, __webpack_require__(3));\n\n/***/ }),\n\n/***/ 1146:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"./dataviz/core/kendo-core\");\n\n/***/ }),\n\n/***/ 1147:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"./dataviz/core/core\");\n\n/***/ })\n\n/******/ });","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1171);\n\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n\tmodule.exports = function() { throw new Error(\"define cannot be used indirect\"); };\r\n\n\n/***/ }),\n\n/***/ 1056:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"./kendo.drawing\");\n\n/***/ }),\n\n/***/ 1129:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"./kendo.dataviz.core\");\n\n/***/ }),\n\n/***/ 1171:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(f, define){\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(1129), __webpack_require__(1056) ], __WEBPACK_AMD_DEFINE_FACTORY__ = (f), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t})(function(){\n\n\tvar __meta__ = { // jshint ignore:line\n\t id: \"dataviz.qrcode\",\n\t name: \"QRCode\",\n\t category: \"dataviz\",\n\t description: \"QRCode widget.\",\n\t depends: [ \"dataviz.core\", \"drawing\" ]\n\t};\n\n\t(function ($, undefined) {\n\t var kendo = window.kendo,\n\t extend = $.extend,\n\t draw = kendo.drawing,\n\t dataviz = kendo.dataviz,\n\t Widget = kendo.ui.Widget,\n\t Box2D = dataviz.Box2D,\n\t terminator = \"0000\",\n\t NUMERIC = \"numeric\",\n\t ALPHA_NUMERIC = \"alphanumeric\",\n\t BYTE = \"byte\",\n\t powersOfTwo = {\"1\": 0},\n\t powersOfTwoResult = {\"0\": 1},\n\t generatorPolynomials = [[1,0],[1,25,0]],\n\t irregularAlignmentPatternsStartDistance = {15:20,16:20,18:24,19:24,22:20,24:22,26:24,28:20,30:20,31:24,32:28,33:24,36:18,37:22,39:20,40:24},\n\t versionsCodewordsInformation = [{L:{groups:[[1,19]],totalDataCodewords:19,errorCodewordsPerBlock:7},M:{groups:[[1,16]],totalDataCodewords:16,errorCodewordsPerBlock:10},Q:{groups:[[1,13]],totalDataCodewords:13,errorCodewordsPerBlock:13},H:{groups:[[1,9]],totalDataCodewords:9,errorCodewordsPerBlock:17}},{L:{groups:[[1,34]],totalDataCodewords:34,errorCodewordsPerBlock:10},M:{groups:[[1,28]],totalDataCodewords:28,errorCodewordsPerBlock:16},Q:{groups:[[1,22]],totalDataCodewords:22,errorCodewordsPerBlock:22},H:{groups:[[1,16]],totalDataCodewords:16,errorCodewordsPerBlock:28}},{L:{groups:[[1,55]],totalDataCodewords:55,errorCodewordsPerBlock:15},M:{groups:[[1,44]],totalDataCodewords:44,errorCodewordsPerBlock:26},Q:{groups:[[2,17]],totalDataCodewords:34,errorCodewordsPerBlock:18},H:{groups:[[2,13]],totalDataCodewords:26,errorCodewordsPerBlock:22}},{L:{groups:[[1,80]],totalDataCodewords:80,errorCodewordsPerBlock:20},M:{groups:[[2,32]],totalDataCodewords:64,errorCodewordsPerBlock:18},Q:{groups:[[2,24]],totalDataCodewords:48,errorCodewordsPerBlock:26},H:{groups:[[4,9]],totalDataCodewords:36,errorCodewordsPerBlock:16}},{L:{groups:[[1,108]],totalDataCodewords:108,errorCodewordsPerBlock:26},M:{groups:[[2,43]],totalDataCodewords:86,errorCodewordsPerBlock:24},Q:{groups:[[2,15],[2,16]],totalDataCodewords:62,errorCodewordsPerBlock:18},H:{groups:[[2,11],[2,12]],totalDataCodewords:46,errorCodewordsPerBlock:22}},{L:{groups:[[2,68]],totalDataCodewords:136,errorCodewordsPerBlock:18},M:{groups:[[4,27]],totalDataCodewords:108,errorCodewordsPerBlock:16},Q:{groups:[[4,19]],totalDataCodewords:76,errorCodewordsPerBlock:24},H:{groups:[[4,15]],totalDataCodewords:60,errorCodewordsPerBlock:28}},{L:{groups:[[2,78]],totalDataCodewords:156,errorCodewordsPerBlock:20},M:{groups:[[4,31]],totalDataCodewords:124,errorCodewordsPerBlock:18},Q:{groups:[[2,14],[4,15]],totalDataCodewords:88,errorCodewordsPerBlock:18},H:{groups:[[4,13],[1,14]],totalDataCodewords:66,errorCodewordsPerBlock:26}},{L:{groups:[[2,97]],totalDataCodewords:194,errorCodewordsPerBlock:24},M:{groups:[[2,38],[2,39]],totalDataCodewords:154,errorCodewordsPerBlock:22},Q:{groups:[[4,18],[2,19]],totalDataCodewords:110,errorCodewordsPerBlock:22},H:{groups:[[4,14],[2,15]],totalDataCodewords:86,errorCodewordsPerBlock:26}},{L:{groups:[[2,116]],totalDataCodewords:232,errorCodewordsPerBlock:30},M:{groups:[[3,36],[2,37]],totalDataCodewords:182,errorCodewordsPerBlock:22},Q:{groups:[[4,16],[4,17]],totalDataCodewords:132,errorCodewordsPerBlock:20},H:{groups:[[4,12],[4,13]],totalDataCodewords:100,errorCodewordsPerBlock:24}},{L:{groups:[[2,68],[2,69]],totalDataCodewords:274,errorCodewordsPerBlock:18},M:{groups:[[4,43],[1,44]],totalDataCodewords:216,errorCodewordsPerBlock:26},Q:{groups:[[6,19],[2,20]],totalDataCodewords:154,errorCodewordsPerBlock:24},H:{groups:[[6,15],[2,16]],totalDataCodewords:122,errorCodewordsPerBlock:28}},{L:{groups:[[4,81]],totalDataCodewords:324,errorCodewordsPerBlock:20},M:{groups:[[1,50],[4,51]],totalDataCodewords:254,errorCodewordsPerBlock:30},Q:{groups:[[4,22],[4,23]],totalDataCodewords:180,errorCodewordsPerBlock:28},H:{groups:[[3,12],[8,13]],totalDataCodewords:140,errorCodewordsPerBlock:24}},{L:{groups:[[2,92],[2,93]],totalDataCodewords:370,errorCodewordsPerBlock:24},M:{groups:[[6,36],[2,37]],totalDataCodewords:290,errorCodewordsPerBlock:22},Q:{groups:[[4,20],[6,21]],totalDataCodewords:206,errorCodewordsPerBlock:26},H:{groups:[[7,14],[4,15]],totalDataCodewords:158,errorCodewordsPerBlock:28}},{L:{groups:[[4,107]],totalDataCodewords:428,errorCodewordsPerBlock:26},M:{groups:[[8,37],[1,38]],totalDataCodewords:334,errorCodewordsPerBlock:22},Q:{groups:[[8,20],[4,21]],totalDataCodewords:244,errorCodewordsPerBlock:24},H:{groups:[[12,11],[4,12]],totalDataCodewords:180,errorCodewordsPerBlock:22}},{L:{groups:[[3,115],[1,116]],totalDataCodewords:461,errorCodewordsPerBlock:30},M:{groups:[[4,40],[5,41]],totalDataCodewords:365,errorCodewordsPerBlock:24},Q:{groups:[[11,16],[5,17]],totalDataCodewords:261,errorCodewordsPerBlock:20},H:{groups:[[11,12],[5,13]],totalDataCodewords:197,errorCodewordsPerBlock:24}},{L:{groups:[[5,87],[1,88]],totalDataCodewords:523,errorCodewordsPerBlock:22},M:{groups:[[5,41],[5,42]],totalDataCodewords:415,errorCodewordsPerBlock:24},Q:{groups:[[5,24],[7,25]],totalDataCodewords:295,errorCodewordsPerBlock:30},H:{groups:[[11,12],[7,13]],totalDataCodewords:223,errorCodewordsPerBlock:24}},{L:{groups:[[5,98],[1,99]],totalDataCodewords:589,errorCodewordsPerBlock:24},M:{groups:[[7,45],[3,46]],totalDataCodewords:453,errorCodewordsPerBlock:28},Q:{groups:[[15,19],[2,20]],totalDataCodewords:325,errorCodewordsPerBlock:24},H:{groups:[[3,15],[13,16]],totalDataCodewords:253,errorCodewordsPerBlock:30}},{L:{groups:[[1,107],[5,108]],totalDataCodewords:647,errorCodewordsPerBlock:28},M:{groups:[[10,46],[1,47]],totalDataCodewords:507,errorCodewordsPerBlock:28},Q:{groups:[[1,22],[15,23]],totalDataCodewords:367,errorCodewordsPerBlock:28},H:{groups:[[2,14],[17,15]],totalDataCodewords:283,errorCodewordsPerBlock:28}},{L:{groups:[[5,120],[1,121]],totalDataCodewords:721,errorCodewordsPerBlock:30},M:{groups:[[9,43],[4,44]],totalDataCodewords:563,errorCodewordsPerBlock:26},Q:{groups:[[17,22],[1,23]],totalDataCodewords:397,errorCodewordsPerBlock:28},H:{groups:[[2,14],[19,15]],totalDataCodewords:313,errorCodewordsPerBlock:28}},{L:{groups:[[3,113],[4,114]],totalDataCodewords:795,errorCodewordsPerBlock:28},M:{groups:[[3,44],[11,45]],totalDataCodewords:627,errorCodewordsPerBlock:26},Q:{groups:[[17,21],[4,22]],totalDataCodewords:445,errorCodewordsPerBlock:26},H:{groups:[[9,13],[16,14]],totalDataCodewords:341,errorCodewordsPerBlock:26}},{L:{groups:[[3,107],[5,108]],totalDataCodewords:861,errorCodewordsPerBlock:28},M:{groups:[[3,41],[13,42]],totalDataCodewords:669,errorCodewordsPerBlock:26},Q:{groups:[[15,24],[5,25]],totalDataCodewords:485,errorCodewordsPerBlock:30},H:{groups:[[15,15],[10,16]],totalDataCodewords:385,errorCodewordsPerBlock:28}},{L:{groups:[[4,116],[4,117]],totalDataCodewords:932,errorCodewordsPerBlock:28},M:{groups:[[17,42]],totalDataCodewords:714,errorCodewordsPerBlock:26},Q:{groups:[[17,22],[6,23]],totalDataCodewords:512,errorCodewordsPerBlock:28},H:{groups:[[19,16],[6,17]],totalDataCodewords:406,errorCodewordsPerBlock:30}},{L:{groups:[[2,111],[7,112]],totalDataCodewords:1006,errorCodewordsPerBlock:28},M:{groups:[[17,46]],totalDataCodewords:782,errorCodewordsPerBlock:28},Q:{groups:[[7,24],[16,25]],totalDataCodewords:568,errorCodewordsPerBlock:30},H:{groups:[[34,13]],totalDataCodewords:442,errorCodewordsPerBlock:24}},{L:{groups:[[4,121],[5,122]],totalDataCodewords:1094,errorCodewordsPerBlock:30},M:{groups:[[4,47],[14,48]],totalDataCodewords:860,errorCodewordsPerBlock:28},Q:{groups:[[11,24],[14,25]],totalDataCodewords:614,errorCodewordsPerBlock:30},H:{groups:[[16,15],[14,16]],totalDataCodewords:464,errorCodewordsPerBlock:30}},{L:{groups:[[6,117],[4,118]],totalDataCodewords:1174,errorCodewordsPerBlock:30},M:{groups:[[6,45],[14,46]],totalDataCodewords:914,errorCodewordsPerBlock:28},Q:{groups:[[11,24],[16,25]],totalDataCodewords:664,errorCodewordsPerBlock:30},H:{groups:[[30,16],[2,17]],totalDataCodewords:514,errorCodewordsPerBlock:30}},{L:{groups:[[8,106],[4,107]],totalDataCodewords:1276,errorCodewordsPerBlock:26},M:{groups:[[8,47],[13,48]],totalDataCodewords:1000,errorCodewordsPerBlock:28},Q:{groups:[[7,24],[22,25]],totalDataCodewords:718,errorCodewordsPerBlock:30},H:{groups:[[22,15],[13,16]],totalDataCodewords:538,errorCodewordsPerBlock:30}},{L:{groups:[[10,114],[2,115]],totalDataCodewords:1370,errorCodewordsPerBlock:28},M:{groups:[[19,46],[4,47]],totalDataCodewords:1062,errorCodewordsPerBlock:28},Q:{groups:[[28,22],[6,23]],totalDataCodewords:754,errorCodewordsPerBlock:28},H:{groups:[[33,16],[4,17]],totalDataCodewords:596,errorCodewordsPerBlock:30}},{L:{groups:[[8,122],[4,123]],totalDataCodewords:1468,errorCodewordsPerBlock:30},M:{groups:[[22,45],[3,46]],totalDataCodewords:1128,errorCodewordsPerBlock:28},Q:{groups:[[8,23],[26,24]],totalDataCodewords:808,errorCodewordsPerBlock:30},H:{groups:[[12,15],[28,16]],totalDataCodewords:628,errorCodewordsPerBlock:30}},{L:{groups:[[3,117],[10,118]],totalDataCodewords:1531,errorCodewordsPerBlock:30},M:{groups:[[3,45],[23,46]],totalDataCodewords:1193,errorCodewordsPerBlock:28},Q:{groups:[[4,24],[31,25]],totalDataCodewords:871,errorCodewordsPerBlock:30},H:{groups:[[11,15],[31,16]],totalDataCodewords:661,errorCodewordsPerBlock:30}},{L:{groups:[[7,116],[7,117]],totalDataCodewords:1631,errorCodewordsPerBlock:30},M:{groups:[[21,45],[7,46]],totalDataCodewords:1267,errorCodewordsPerBlock:28},Q:{groups:[[1,23],[37,24]],totalDataCodewords:911,errorCodewordsPerBlock:30},H:{groups:[[19,15],[26,16]],totalDataCodewords:701,errorCodewordsPerBlock:30}},{L:{groups:[[5,115],[10,116]],totalDataCodewords:1735,errorCodewordsPerBlock:30},M:{groups:[[19,47],[10,48]],totalDataCodewords:1373,errorCodewordsPerBlock:28},Q:{groups:[[15,24],[25,25]],totalDataCodewords:985,errorCodewordsPerBlock:30},H:{groups:[[23,15],[25,16]],totalDataCodewords:745,errorCodewordsPerBlock:30}},{L:{groups:[[13,115],[3,116]],totalDataCodewords:1843,errorCodewordsPerBlock:30},M:{groups:[[2,46],[29,47]],totalDataCodewords:1455,errorCodewordsPerBlock:28},Q:{groups:[[42,24],[1,25]],totalDataCodewords:1033,errorCodewordsPerBlock:30},H:{groups:[[23,15],[28,16]],totalDataCodewords:793,errorCodewordsPerBlock:30}},{L:{groups:[[17,115]],totalDataCodewords:1955,errorCodewordsPerBlock:30},M:{groups:[[10,46],[23,47]],totalDataCodewords:1541,errorCodewordsPerBlock:28},Q:{groups:[[10,24],[35,25]],totalDataCodewords:1115,errorCodewordsPerBlock:30},H:{groups:[[19,15],[35,16]],totalDataCodewords:845,errorCodewordsPerBlock:30}},{L:{groups:[[17,115],[1,116]],totalDataCodewords:2071,errorCodewordsPerBlock:30},M:{groups:[[14,46],[21,47]],totalDataCodewords:1631,errorCodewordsPerBlock:28},Q:{groups:[[29,24],[19,25]],totalDataCodewords:1171,errorCodewordsPerBlock:30},H:{groups:[[11,15],[46,16]],totalDataCodewords:901,errorCodewordsPerBlock:30}},{L:{groups:[[13,115],[6,116]],totalDataCodewords:2191,errorCodewordsPerBlock:30},M:{groups:[[14,46],[23,47]],totalDataCodewords:1725,errorCodewordsPerBlock:28},Q:{groups:[[44,24],[7,25]],totalDataCodewords:1231,errorCodewordsPerBlock:30},H:{groups:[[59,16],[1,17]],totalDataCodewords:961,errorCodewordsPerBlock:30}},{L:{groups:[[12,121],[7,122]],totalDataCodewords:2306,errorCodewordsPerBlock:30},M:{groups:[[12,47],[26,48]],totalDataCodewords:1812,errorCodewordsPerBlock:28},Q:{groups:[[39,24],[14,25]],totalDataCodewords:1286,errorCodewordsPerBlock:30},H:{groups:[[22,15],[41,16]],totalDataCodewords:986,errorCodewordsPerBlock:30}},{L:{groups:[[6,121],[14,122]],totalDataCodewords:2434,errorCodewordsPerBlock:30},M:{groups:[[6,47],[34,48]],totalDataCodewords:1914,errorCodewordsPerBlock:28},Q:{groups:[[46,24],[10,25]],totalDataCodewords:1354,errorCodewordsPerBlock:30},H:{groups:[[2,15],[64,16]],totalDataCodewords:1054,errorCodewordsPerBlock:30}},{L:{groups:[[17,122],[4,123]],totalDataCodewords:2566,errorCodewordsPerBlock:30},M:{groups:[[29,46],[14,47]],totalDataCodewords:1992,errorCodewordsPerBlock:28},Q:{groups:[[49,24],[10,25]],totalDataCodewords:1426,errorCodewordsPerBlock:30},H:{groups:[[24,15],[46,16]],totalDataCodewords:1096,errorCodewordsPerBlock:30}},{L:{groups:[[4,122],[18,123]],totalDataCodewords:2702,errorCodewordsPerBlock:30},M:{groups:[[13,46],[32,47]],totalDataCodewords:2102,errorCodewordsPerBlock:28},Q:{groups:[[48,24],[14,25]],totalDataCodewords:1502,errorCodewordsPerBlock:30},H:{groups:[[42,15],[32,16]],totalDataCodewords:1142,errorCodewordsPerBlock:30}},{L:{groups:[[20,117],[4,118]],totalDataCodewords:2812,errorCodewordsPerBlock:30},M:{groups:[[40,47],[7,48]],totalDataCodewords:2216,errorCodewordsPerBlock:28},Q:{groups:[[43,24],[22,25]],totalDataCodewords:1582,errorCodewordsPerBlock:30},H:{groups:[[10,15],[67,16]],totalDataCodewords:1222,errorCodewordsPerBlock:30}},{L:{groups:[[19,118],[6,119]],totalDataCodewords:2956,errorCodewordsPerBlock:30},M:{groups:[[18,47],[31,48]],totalDataCodewords:2334,errorCodewordsPerBlock:28},Q:{groups:[[34,24],[34,25]],totalDataCodewords:1666,errorCodewordsPerBlock:30},H:{groups:[[20,15],[61,16]],totalDataCodewords:1276,errorCodewordsPerBlock:30}}],\n\t finderPattern = [1,0,1,1,1],\n\t alignmentPattern = [1,0,1],\n\t errorCorrectionPatterns = {L: \"01\", M: \"00\", Q: \"11\", H: \"10\"},\n\t formatMaskPattern = \"101010000010010\",\n\t formatGeneratorPolynomial = \"10100110111\",\n\t versionGeneratorPolynomial = \"1111100100101\",\n\t paddingCodewords = [\"11101100\", \"00010001\"],\n\t finderPatternValue = 93,\n\t maskPatternConditions = [\n\t function(row,column){return (row + column) % 2 === 0;},\n\t function(row){return row % 2 === 0;},\n\t function(row,column){return column % 3 === 0;},\n\t function(row,column){return (row + column) % 3 === 0;},\n\t function(row,column){return (Math.floor(row/2) + Math.floor(column/3)) % 2 === 0;},\n\t function(row,column){return ((row * column) % 2) + ((row * column) % 3) === 0;},\n\t function(row,column){return (((row * column) % 2) + ((row * column) % 3)) % 2 === 0;},\n\t function(row,column){return (((row + column) % 2) + ((row * column) % 3)) % 2 === 0;}\n\t ],\n\t numberRegex = /^\\d+/,\n\t alphaPattern = \"A-Z0-9 $%*+./:-\",\n\t alphaExclusiveSet = \"A-Z $%*+./:-\",\n\t alphaRegex = new RegExp(\"^[\" + alphaExclusiveSet + \"]+\"),\n\t alphaNumericRegex = new RegExp(\"^[\" + alphaPattern+ \"]+\"),\n\t byteRegex = new RegExp(\"^[^\" + alphaPattern+ \"]+\"),\n\t initMinNumericBeforeAlpha = 8,\n\t initMinNumericBeforeByte = 5,\n\t initMinAlphaBeforeByte = 8,\n\t minNumericBeforeAlpha = 17,\n\t minNumericBeforeByte = 9,\n\t minAlphaBeforeByte = 16,\n\t round = Math.round,\n\t IMAGE = \"image\",\n\t SWISS_QR = \"swiss\",\n\t crossPattern = [[0,1],[1,1],[1,2],[2,2],[2,1],[3,1],[3,0],[2,0],[2,-1],[1,-1],[1,0]],\n\t squarePattern = [[0,1],[1,1],[1,0]],\n\t DEFAULT_LOGO_SIZE = 7;\n\n\t function toDecimal(value){\n\t return parseInt(value, 2);\n\t }\n\n\t function toBitsString(value, length){\n\t var result = Number(value).toString(2);\n\t if(result.length < length){\n\t result = new Array(length - result.length + 1).join(0) + result;\n\t }\n\t return result;\n\t }\n\n\t function splitInto(str, n){\n\t var result = [],\n\t idx = 0;\n\t while(idx < str.length){\n\t result.push(str.substring(idx, idx + n));\n\t idx+= n;\n\t }\n\t return result;\n\t }\n\n\t var QRDataMode = kendo.Class.extend({\n\t getVersionIndex: function(version){\n\t if(version < 10){\n\t return 0;\n\t }\n\t else if(version > 26){\n\t return 2;\n\t }\n\n\t return 1;\n\t },\n\t getBitsCharacterCount: function(version){\n\t var mode = this;\n\t return mode.bitsInCharacterCount[mode.getVersionIndex(version || 40)];\n\t },\n\t getModeCountString: function(length, version){\n\t var mode = this;\n\t return mode.modeIndicator + toBitsString(length, mode.getBitsCharacterCount(version));\n\t },\n\t encode: function(){},\n\t getStringBitsLength: function(){},\n\t getValue: function(){},\n\t modeIndicator: \"\",\n\t bitsInCharacterCount: []\n\t });\n\n\t var modes = {};\n\t modes[NUMERIC] = QRDataMode.extend({\n\t bitsInCharacterCount: [10, 12, 14],\n\t modeIndicator: \"0001\",\n\t getValue: function(character){\n\t return parseInt(character, 10);\n\t },\n\t encode: function(str, version){\n\t var mode = this,\n\t parts = splitInto(str, 3),\n\t result = mode.getModeCountString(str.length, version);\n\n\t for(var i = 0; i < parts.length - 1; i++){\n\t result += toBitsString(parts[i], 10);\n\t }\n\t return result + toBitsString(parts[i], 1 + 3 * parts[i].length);\n\t },\n\t getStringBitsLength: function(inputLength, version){\n\t var mod3 = inputLength % 3;\n\t return 4 + this.getBitsCharacterCount(version) + 10 * Math.floor(inputLength / 3) + 3 * mod3 + (mod3 === 0 ? 0 : 1);\n\t }\n\t });\n\n\t modes[ALPHA_NUMERIC] = QRDataMode.extend({\n\t characters: {\"0\":0,\"1\": 1,\"2\": 2,\"3\": 3,\"4\": 4,\"5\": 5,\"6\": 6,\"7\": 7,\"8\": 8,\"9\": 9,\"A\": 10,\"B\": 11,\"C\": 12,\"D\": 13,\"E\": 14,\"F\": 15,\"G\": 16,\"H\": 17,\"I\": 18,\"J\": 19,\"K\": 20,\"L\": 21,\"M\": 22,\"N\": 23,\"O\": 24,\"P\": 25,\"Q\": 26,\"R\": 27,\"S\": 28,\"T\": 29,\"U\": 30,\"V\": 31,\"W\": 32,\"X\": 33,\"Y\": 34,\"Z\": 35,\" \": 36,\"$\": 37,\"%\": 38,\"*\": 39,\"+\": 40,\"-\": 41,\".\": 42,\"/\": 43,\":\": 44},\n\t bitsInCharacterCount: [9,11,13],\n\t modeIndicator: \"0010\",\n\t getValue: function(character){\n\t return this.characters[character];\n\t },\n\t encode: function(str, version){\n\t var mode = this,\n\t parts = splitInto(str, 2),\n\t result = mode.getModeCountString(str.length, version),\n\t value;\n\t for(var i = 0; i < parts.length - 1; i++){\n\t value = 45 * mode.getValue(parts[i].charAt(0)) + mode.getValue(parts[i].charAt(1));\n\t result += toBitsString(value, 11);\n\t }\n\t value = parts[i].length == 2 ?\n\t 45 * mode.getValue(parts[i].charAt(0)) + mode.getValue(parts[i].charAt(1)) :\n\t mode.getValue(parts[i].charAt(0));\n\t return result + toBitsString(value, 1 + 5 * parts[i].length);\n\t },\n\t getStringBitsLength: function(inputLength, version){\n\t return 4 + this.getBitsCharacterCount(version) + 11 * Math.floor(inputLength / 2) + 6 * (inputLength % 2);\n\t }\n\t });\n\n\t modes[BYTE] = QRDataMode.extend({\n\t bitsInCharacterCount: [8,16,16],\n\t modeIndicator: \"0100\",\n\t getValue: function(character){\n\t var code = character.charCodeAt(0);\n\t if(code <= 127 || (160 <= code && code <= 255)){\n\t return code;\n\t }\n\t else{\n\t throw new Error(\"Unsupported character: \" + character);\n\t }\n\t },\n\t encode: function(str, version){\n\t var mode = this,\n\t result = mode.getModeCountString(str.length, version);\n\n\t for(var i = 0; i < str.length; i++){\n\t result += toBitsString(mode.getValue(str.charAt(i)), 8);\n\t }\n\t return result;\n\t },\n\t getStringBitsLength: function(inputLength, version){\n\t return 4 + this.getBitsCharacterCount(version) + 8 * inputLength;\n\t }\n\t });\n\n\t var modeInstances = {};\n\t for(var mode in modes){\n\t modeInstances[mode] = new modes[mode]();\n\t }\n\n\t var FreeCellVisitor = function (matrix){\n\t var that = this,\n\t row = matrix.length - 1,\n\t column = matrix.length - 1,\n\t startColumn = column,\n\t dir = -1,\n\t c = 0;\n\t that.move = function(){\n\t row += dir * c;\n\t c^=1;\n\t column = startColumn - c;\n\t };\n\t that.getNextCell = function(){\n\t while(matrix[row][column] !== undefined){\n\t that.move();\n\t if(row < 0 || row >= matrix.length){\n\t dir = -dir;\n\t startColumn-= startColumn != 8 ? 2 : 3;\n\t column = startColumn;\n\t row = dir < 0 ? matrix.length - 1 : 0;\n\t }\n\t }\n\t return {row: row, column: column};\n\t };\n\t that.getNextRemainderCell = function(){\n\t that.move();\n\t if(matrix[row][column] === undefined){\n\t return {row: row, column: column};\n\t }\n\t };\n\t };\n\n\t function fillFunctionCell(matrices, bit, x, y){\n\t for(var i = 0; i< matrices.length;i++){\n\t matrices[i][x][y] = bit;\n\t }\n\t }\n\n\t function fillDataCell(matrices, bit, x, y){\n\t for(var i = 0; i < maskPatternConditions.length;i++){\n\t matrices[i][x][y] = maskPatternConditions[i](x,y) ? bit ^ 1 : parseInt(bit, 10);\n\t }\n\t }\n\n\t var fillData = function (matrices, blocks){\n\t var cellVisitor = new FreeCellVisitor(matrices[0]),\n\t block,\n\t codewordIdx,\n\t cell;\n\n\t for(var blockIdx = 0; blockIdx < blocks.length;blockIdx++){\n\t block = blocks[blockIdx];\n\t codewordIdx = 0;\n\t while(block.length > 0){\n\t for(var i = 0; i< block.length; i++){\n\t for(var j = 0; j < 8;j++){\n\t cell = cellVisitor.getNextCell();\n\t fillDataCell(matrices, block[i][codewordIdx].charAt(j), cell.row, cell.column);\n\t }\n\t }\n\n\t codewordIdx++;\n\t while(block[0] && codewordIdx == block[0].length){\n\t block.splice(0,1);\n\t }\n\t }\n\t }\n\n\t while((cell = cellVisitor.getNextRemainderCell())){\n\t fillDataCell(matrices, 0, cell.row, cell.column);\n\t }\n\t };\n\n\t var padDataString = function (dataString, totalDataCodewords){\n\t var dataBitsCount = totalDataCodewords * 8,\n\t terminatorIndex = 0,\n\t paddingCodewordIndex = 0;\n\t while(dataString.length < dataBitsCount && terminatorIndex < terminator.length){\n\t dataString+=terminator.charAt(terminatorIndex++);\n\t }\n\n\t if(dataString.length % 8 !== 0){\n\t dataString+= new Array(9 - dataString.length % 8).join(\"0\");\n\t }\n\n\t while(dataString.length < dataBitsCount){\n\t dataString+= paddingCodewords[paddingCodewordIndex];\n\t paddingCodewordIndex ^= 1;\n\t }\n\t return dataString;\n\t };\n\n\t function generatePowersOfTwo(){\n\t var result;\n\t for(var power = 1; power < 255; power++){\n\n\t result = powersOfTwoResult[power - 1] * 2;\n\t if(result > 255){\n\t result = result ^ 285;\n\t }\n\n\t powersOfTwoResult[power] = result;\n\t powersOfTwo[result] = power;\n\t }\n\n\t result = (powersOfTwoResult[power - 1] * 2) ^ 285;\n\t powersOfTwoResult[power] = result;\n\t powersOfTwoResult[-1] = 0;\n\t }\n\n\t var xorPolynomials = function (x,y){\n\t var result = [],\n\t idx = x.length - 2;\n\t for(var i = idx; i>=0; i--){\n\t result[i] = x[i] ^ y[i];\n\t }\n\n\t return result;\n\t };\n\n\t var multiplyPolynomials = function (x, y){\n\t var result = [];\n\t for(var i = 0; i < x.length; i++){\n\t for(var j = 0; j < y.length; j++){\n\t if(result[i+j] === undefined){\n\t result[i+j] = (x[i] + (y[j] >= 0 ? y[j] : 0)) % 255;\n\t }\n\t else{\n\t result[i+j] = powersOfTwo[powersOfTwoResult[result[i+j]] ^ powersOfTwoResult[(x[i] + y[j]) % 255]];\n\t }\n\t }\n\t }\n\n\t return result;\n\t };\n\n\t function generateGeneratorPolynomials(){\n\t var maxErrorCorrectionCodeWordsCount = 68;\n\t for(var idx = 2; idx <= maxErrorCorrectionCodeWordsCount; idx++){\n\t var firstPolynomial = generatorPolynomials[idx - 1],\n\t secondPolynomial = [idx, 0];\n\t generatorPolynomials[idx] = multiplyPolynomials(firstPolynomial, secondPolynomial);\n\t }\n\t }\n\n\t //possibly generate on demand\n\t generatePowersOfTwo();\n\t generateGeneratorPolynomials();\n\n\t function multiplyByConstant(polynomial, power){\n\t var result = [],\n\t idx = polynomial.length - 1;\n\t do{\n\t result[idx] = powersOfTwoResult[(polynomial[idx] + power) % 255];\n\t idx--;\n\t }while(polynomial[idx] !== undefined);\n\n\t return result;\n\t }\n\n\t var generateErrorCodewords = function (data, errorCodewordsCount){\n\t var generator = generatorPolynomials[errorCodewordsCount - 1],\n\t result = new Array(errorCodewordsCount).concat(data),\n\t generatorPolynomial = new Array(result.length - generator.length).concat(generator),\n\t steps = data.length,\n\t errorCodewords = [],\n\t divisor,\n\t idx;\n\n\t for(idx = 0; idx < steps; idx++){\n\t divisor = multiplyByConstant(generatorPolynomial, powersOfTwo[result[result.length - 1]]);\n\t generatorPolynomial.splice(0,1);\n\n\t result = xorPolynomials(divisor, result);\n\t }\n\n\t for(idx = result.length - 1; idx >= 0;idx--){\n\t errorCodewords[errorCodewordsCount - 1 - idx] = toBitsString(result[idx], 8);\n\t }\n\n\t return errorCodewords;\n\t };\n\n\t var getBlocks = function (dataStream, versionCodewordsInformation){\n\t var codewordStart = 0,\n\t dataBlocks = [],\n\t errorBlocks = [],\n\t dataBlock,\n\t versionGroups = versionCodewordsInformation.groups,\n\t blockCodewordsCount,\n\t groupBlocksCount,\n\t messagePolynomial,\n\t codeword;\n\n\t for(var groupIdx = 0; groupIdx < versionGroups.length; groupIdx++){\n\t groupBlocksCount = versionGroups[groupIdx][0];\n\t for(var blockIdx = 0; blockIdx < groupBlocksCount;blockIdx++){\n\t blockCodewordsCount = versionGroups[groupIdx][1];\n\t dataBlock = [];\n\t messagePolynomial = [];\n\t for(var codewordIdx = 1; codewordIdx <= blockCodewordsCount; codewordIdx++){\n\t codeword = dataStream.substring(codewordStart, codewordStart + 8);\n\t dataBlock.push(codeword);\n\t messagePolynomial[blockCodewordsCount - codewordIdx] = toDecimal(codeword);\n\t codewordStart+=8;\n\t }\n\t dataBlocks.push(dataBlock);\n\t errorBlocks.push(generateErrorCodewords(messagePolynomial,\n\t versionCodewordsInformation.errorCodewordsPerBlock));\n\t }\n\t }\n\t return [dataBlocks, errorBlocks];\n\t };\n\n\t var chooseMode = function (str, minNumericBeforeAlpha, minNumericBeforeByte, minAlphaBeforeByte, previousMode){\n\t var numeric = numberRegex.exec(str),\n\t numericMatch = numeric ? numeric[0] : \"\",\n\t alpha = alphaRegex.exec(str),\n\t alphaMatch = alpha ? alpha[0] : \"\",\n\t alphaNumeric = alphaNumericRegex.exec(str),\n\t alphaNumericMatch = alphaNumeric ? alphaNumeric[0] : \"\",\n\t mode,\n\t modeString;\n\n\t if(numericMatch && (numericMatch.length >= minNumericBeforeAlpha ||\n\t str.length == numericMatch.length || (numericMatch.length >= minNumericBeforeByte &&\n\t !alphaNumericRegex.test(str.charAt(numericMatch.length))))){\n\t mode = NUMERIC;\n\t modeString = numericMatch;\n\t }\n\t else if(alphaNumericMatch && (str.length == alphaNumericMatch.length ||\n\t alphaNumericMatch.length >= minAlphaBeforeByte || previousMode == ALPHA_NUMERIC)){\n\t mode = ALPHA_NUMERIC;\n\t modeString = numericMatch || alphaMatch;\n\t }\n\t else {\n\t mode = BYTE;\n\t if(alphaNumericMatch){\n\t modeString = alphaNumericMatch + byteRegex.exec(str.substring(alphaNumericMatch.length))[0];\n\t }\n\t else{\n\t modeString = byteRegex.exec(str)[0];\n\t }\n\t }\n\n\t return {\n\t mode: mode,\n\t modeString: modeString\n\t };\n\t };\n\n\t var getModes = function (str){\n\t var modes = [],\n\t previousMode,\n\t idx = 0;\n\t modes.push(chooseMode(str, initMinNumericBeforeAlpha, initMinNumericBeforeByte, initMinAlphaBeforeByte, previousMode));\n\t previousMode = modes[0].mode;\n\t str = str.substr(modes[0].modeString.length);\n\n\t while(str.length > 0){\n\t var nextMode = chooseMode(str, minNumericBeforeAlpha, minNumericBeforeByte, minAlphaBeforeByte, previousMode);\n\t if(nextMode.mode != previousMode){\n\t previousMode = nextMode.mode;\n\t modes.push(nextMode);\n\t idx++;\n\t }\n\t else{\n\t modes[idx].modeString += nextMode.modeString;\n\t }\n\t str = str.substr(nextMode.modeString.length);\n\t }\n\n\t return modes;\n\t };\n\n\t var getDataCodewordsCount = function (modes){\n\t var length = 0,\n\t mode;\n\t for(var i = 0; i < modes.length; i++){\n\t mode = modeInstances[modes[i].mode];\n\t length+= mode.getStringBitsLength(modes[i].modeString.length);\n\t }\n\n\t return Math.ceil(length / 8);\n\t };\n\n\t var getVersion = function (dataCodewordsCount, errorCorrectionLevel){\n\t var x = 0,\n\t y = versionsCodewordsInformation.length - 1,\n\t version = Math.floor(versionsCodewordsInformation.length / 2);\n\n\t do{\n\t if(dataCodewordsCount < versionsCodewordsInformation[version][errorCorrectionLevel].totalDataCodewords){\n\t y = version;\n\t }\n\t else{\n\t x = version;\n\t }\n\t version = x + Math.floor((y - x) / 2);\n\n\t }while(y - x > 1);\n\n\t if(dataCodewordsCount <= versionsCodewordsInformation[x][errorCorrectionLevel].totalDataCodewords){\n\t return version + 1;\n\t }\n\t return y + 1;\n\t };\n\n\t var getDataString = function (modes, version){\n\t var dataString = \"\",\n\t mode;\n\t for(var i = 0; i < modes.length; i++){\n\t mode = modeInstances[modes[i].mode];\n\t dataString+= mode.encode(modes[i].modeString, version);\n\t }\n\n\t return dataString;\n\t };\n\n\t //fix case all zeros\n\t var encodeFormatInformation = function (format){\n\t var formatNumber = toDecimal(format),\n\t encodedString,\n\t result = \"\";\n\t if(formatNumber === 0){\n\t return \"101010000010010\";\n\t }\n\t else{\n\t encodedString = encodeBCH(toDecimal(format), formatGeneratorPolynomial, 15);\n\t }\n\t for(var i = 0; i < encodedString.length; i++){\n\t result += encodedString.charAt(i) ^ formatMaskPattern.charAt(i);\n\t }\n\n\t return result;\n\t };\n\n\t var encodeBCH = function (value, generatorPolynomial, codeLength){\n\t var generatorNumber = toDecimal(generatorPolynomial),\n\t polynomialLength = generatorPolynomial.length - 1,\n\t valueNumber = value << polynomialLength,\n\t length = codeLength - polynomialLength,\n\t valueString = toBitsString(value, length),\n\t result = dividePolynomials(valueNumber, generatorNumber);\n\t result = valueString + toBitsString(result, polynomialLength);\n\t return result;\n\t };\n\n\t var dividePolynomials = function (numberX,numberY){\n\t var yLength = numberY.toString(2).length,\n\t xLength = numberX.toString(2).length;\n\t do{\n\t numberX ^= numberY << xLength - yLength;\n\t xLength = numberX.toString(2).length;\n\t }\n\t while(xLength >= yLength);\n\n\t return numberX;\n\t };\n\n\t function getNumberAt(str, idx){\n\t return parseInt(str.charAt(idx), 10);\n\t }\n\n\t var initMatrices = function (version){\n\t var matrices = [],\n\t modules = 17 + 4 * version;\n\t for(var i = 0; i < maskPatternConditions.length; i++){\n\t matrices[i] = new Array(modules);\n\t for(var j = 0; j < modules; j++){\n\t matrices[i][j] = new Array(modules);\n\t }\n\t }\n\n\t return matrices;\n\t };\n\n\t var addFormatInformation =function (matrices, formatString){\n\t var matrix = matrices[0],\n\t x,\n\t y,\n\t idx = 0,\n\t length = formatString.length;\n\n\t for(x=0, y=8; x <= 8;x++){\n\t if(x!== 6){\n\t fillFunctionCell(matrices, getNumberAt(formatString, length - 1 - idx++), x, y);\n\t }\n\t }\n\n\t for(x=8, y=7; y>=0;y--){\n\t if(y!== 6){\n\t fillFunctionCell(matrices, getNumberAt(formatString, length - 1 - idx++), x, y);\n\t }\n\t }\n\t idx=0;\n\t for(y = matrix.length - 1, x = 8; y >= matrix.length - 8;y--){\n\t fillFunctionCell(matrices,getNumberAt(formatString, length - 1 - idx++), x, y);\n\t }\n\n\t fillFunctionCell(matrices, 1, matrix.length - 8, 8);\n\n\t for(x = matrix.length - 7, y = 8; x < matrix.length;x++){\n\t fillFunctionCell(matrices, getNumberAt(formatString, length - 1 - idx++), x, y);\n\t }\n\t };\n\n\t var encodeVersionInformation = function (version){\n\t return encodeBCH(version, versionGeneratorPolynomial, 18);\n\t };\n\n\t var addVersionInformation = function (matrices, dataString){\n\t var matrix = matrices[0],\n\t modules = matrix.length,\n\t x1 = 0,\n\t y1 = modules - 11,\n\t x2 = modules - 11,\n\t y2 = 0,\n\t quotient,\n\t mod,\n\t value;\n\n\t for(var idx =0; idx < dataString.length; idx++){\n\t quotient = Math.floor(idx / 3);\n\t mod = idx % 3;\n\t value = getNumberAt(dataString, dataString.length - idx - 1);\n\t fillFunctionCell(matrices, value, x1 + quotient, y1 + mod);\n\t fillFunctionCell(matrices, value, x2 + mod, y2 + quotient);\n\t }\n\t };\n\n\t var addCentricPattern = function (matrices, pattern, x, y){\n\t var size = pattern.length + 2,\n\t length = pattern.length + 1,\n\t value;\n\n\t for(var i = 0; i < pattern.length; i++){\n\t for(var j = i; j < size - i; j++){\n\t value = pattern[i];\n\t fillFunctionCell(matrices, value, x + j, y + i);\n\t fillFunctionCell(matrices, value, x + i, y + j);\n\t fillFunctionCell(matrices, value, x + length - j, y + length - i);\n\t fillFunctionCell(matrices, value, x + length - i, y + length - j);\n\t }\n\t }\n\t };\n\n\t var addFinderSeparator = function (matrices, direction, x, y){\n\t var nextX = x,\n\t nextY = y,\n\t matrix = matrices[0];\n\t do{\n\t fillFunctionCell(matrices, 0, nextX, y);\n\t fillFunctionCell(matrices, 0, x, nextY);\n\t nextX+= direction[0];\n\t nextY+= direction[1];\n\t }\n\t while(nextX >=0 && nextX < matrix.length);\n\t };\n\n\t var addFinderPatterns = function (matrices){\n\t var modules = matrices[0].length;\n\t addCentricPattern(matrices, finderPattern, 0, 0);\n\t addFinderSeparator(matrices, [-1,-1], 7,7);\n\t addCentricPattern(matrices, finderPattern, modules - 7, 0);\n\t addFinderSeparator(matrices, [1,-1], modules - 8, 7);\n\t addCentricPattern(matrices, finderPattern, 0 , modules - 7);\n\t addFinderSeparator(matrices, [-1,1],7, modules - 8);\n\t };\n\n\t var addAlignmentPatterns = function (matrices, version){\n\t if(version < 2) {\n\t return;\n\t }\n\n\t var matrix = matrices[0],\n\t modules = matrix.length,\n\t pointsCount = Math.floor(version / 7),\n\t points = [6],\n\t startDistance,\n\t distance,\n\t idx = 0;\n\n\t if((startDistance = irregularAlignmentPatternsStartDistance[version])){\n\t distance = (modules - 13 - startDistance) / pointsCount;\n\t }\n\t else{\n\t startDistance = distance = (modules - 13) / (pointsCount + 1);\n\t }\n\t points.push(points[idx++] + startDistance);\n\t while((points[idx] + distance) < modules){\n\t points.push(points[idx++] + distance);\n\t }\n\t for(var i = 0; i < points.length;i++){\n\t for(var j = 0; j < points.length; j++){\n\t if(matrix[points[i]][points[j]] === undefined){\n\t addCentricPattern(matrices, alignmentPattern, points[i] - 2, points[j] - 2);\n\t }\n\t }\n\t }\n\t };\n\n\t var addTimingFunctions = function (matrices){\n\t var row = 6,\n\t column = 6,\n\t value = 1,\n\t modules = matrices[0].length;\n\t for(var i = 8; i < modules - 8;i++){\n\t fillFunctionCell(matrices, value, row, i);\n\t fillFunctionCell(matrices, value, i, column);\n\t value ^= 1;\n\t }\n\t };\n\n\t var scoreMaskMatrixes = function (matrices){\n\t var scores = [],\n\t previousBits = [],\n\t darkModules = [],\n\t patterns = [],\n\t adjacentSameBits = [],\n\t matrix,\n\t i,\n\t row = 0,\n\t column = 1,\n\t modules = matrices[0].length;\n\n\n\t for(i = 0; i < matrices.length; i++){\n\t scores[i] = 0;\n\t darkModules[i] = 0;\n\t adjacentSameBits[i] = [0,0];\n\t patterns[i] = [0, 0];\n\t previousBits[i] = [];\n\t }\n\t for(i = 0; i < modules; i++){\n\t for(var j = 0; j < modules; j++){\n\t for(var k = 0; k < matrices.length; k++){\n\t matrix = matrices[k];\n\t darkModules[k]+= parseInt(matrix[i][j], 10);\n\t if(previousBits[k][row] === matrix[i][j] && i + 1 < modules && j - 1 >= 0 &&\n\t matrix[i + 1][j] == previousBits[k][row] && matrix[i + 1][j - 1] == previousBits[k][row]){\n\t scores[k]+=3;\n\t }\n\t scoreFinderPatternOccurance(k, patterns, scores, row, matrix[i][j]);\n\t scoreFinderPatternOccurance(k, patterns, scores, column, matrix[j][i]);\n\t scoreAdjacentSameBits(k,scores,previousBits,matrix[i][j],adjacentSameBits,row);\n\t scoreAdjacentSameBits(k,scores,previousBits,matrix[j][i],adjacentSameBits,column);\n\t }\n\t }\n\t }\n\t var total = modules * modules,\n\t minIdx,\n\t min = Number.MAX_VALUE;\n\n\t for(i = 0; i < scores.length; i++){\n\t scores[i]+= calculateDarkModulesRatioScore(darkModules[i], total);\n\t if(scores[i] < min){\n\t min = scores[i];\n\t minIdx = i;\n\t }\n\t }\n\n\t return minIdx;\n\t };\n\n\t function scoreFinderPatternOccurance(idx, patterns, scores, rowColumn, bit){\n\t patterns[idx][rowColumn] = ((patterns[idx][rowColumn] << 1) ^ bit) % 128;\n\t if(patterns[idx][rowColumn] == finderPatternValue){\n\t scores[idx] += 40;\n\t }\n\t }\n\n\t function scoreAdjacentSameBits(idx, scores, previousBits, bit, adjacentBits, rowColumn){\n\t if(previousBits[idx][rowColumn] == bit){\n\t adjacentBits[idx][rowColumn]++;\n\t }\n\t else{\n\t previousBits[idx][rowColumn] = bit;\n\t if(adjacentBits[idx][rowColumn] >= 5){\n\t scores[idx]+= 3 + adjacentBits[idx][rowColumn] - 5;\n\t }\n\t adjacentBits[idx][rowColumn] = 1;\n\t }\n\t }\n\n\t function calculateDarkModulesRatioScore(darkModules, total){\n\t var percent = Math.floor((darkModules / total) * 100),\n\t mod5 = percent % 5,\n\t previous = Math.abs(percent - mod5 - 50),\n\t next = Math.abs(percent + 5 - mod5 - 50),\n\t score = 10 * Math.min(previous / 5, next / 5);\n\t return score;\n\t }\n\n\t var EncodingResult = function(dataString, version){\n\t this.dataString = dataString;\n\t this.version = version;\n\t };\n\n\t var IsoEncoder = function(){\n\t this.getEncodingResult = function(inputString, errorCorrectionLevel){\n\t var modes = getModes(inputString),\n\t dataCodewordsCount = getDataCodewordsCount(modes),\n\t version = getVersion(dataCodewordsCount, errorCorrectionLevel),\n\t dataString = getDataString(modes, version);\n\n\t return new EncodingResult(dataString, version);\n\t };\n\t };\n\n\t var UTF8Encoder = function(){\n\t this.mode = modeInstances[this.encodingMode];\n\t };\n\n\t UTF8Encoder.fn = UTF8Encoder.prototype = {\n\t encodingMode: BYTE,\n\t utfBOM: \"111011111011101110111111\",\n\t initialModeCountStringLength: 20,\n\t getEncodingResult: function(inputString, errorCorrectionLevel){\n\t var that = this,\n\t data = that.encode(inputString),\n\t dataCodewordsCount = that.getDataCodewordsCount(data),\n\t version = getVersion(dataCodewordsCount, errorCorrectionLevel),\n\t dataString = that.mode.getModeCountString(data.length / 8, version) + data;\n\n\t return new EncodingResult(dataString, version);\n\t },\n\t getDataCodewordsCount: function(data){\n\t var that = this,\n\t dataLength = data.length,\n\t dataCodewordsCount = Math.ceil(( that.initialModeCountStringLength + dataLength) / 8);\n\n\t return dataCodewordsCount;\n\t },\n\t encode: function(str){\n\t var that = this,\n\t result = that.utfBOM;\n\t for(var i = 0; i < str.length; i++){\n\t result += that.encodeCharacter(str.charCodeAt(i));\n\t }\n\t return result;\n\t },\n\t encodeCharacter: function(code){\n\t var bytesCount = this.getBytesCount(code),\n\t bc = bytesCount - 1,\n\t result = \"\";\n\n\t if(bytesCount == 1){\n\t result = toBitsString(code, 8);\n\t }\n\t else{\n\t var significantOnes = 8 - bytesCount;\n\n\t for(var i = 0; i < bc; i++){\n\t result = toBitsString(code >> (i * 6) & 63 | 128, 8) + result;\n\t }\n\n\t result = ((code >> bc * 6) | ((255 >> significantOnes) << significantOnes)).toString(2) + result;\n\t }\n\t return result;\n\t },\n\t getBytesCount: function(code){\n\t var ranges = this.ranges;\n\t for(var i = 0; i < ranges.length;i++){\n\t if(code < ranges[i]){\n\t return i + 1;\n\t }\n\t }\n\t },\n\t ranges: [128,2048,65536,2097152,67108864]\n\t };\n\n\t var QRCodeDataEncoder = function(encoding){\n\t if(encoding && encoding.toLowerCase().indexOf(\"utf_8\") >= 0){\n\t return new UTF8Encoder();\n\t }\n\t else{\n\t return new IsoEncoder();\n\t }\n\t };\n\n\t var encodeData = function (inputString, errorCorrectionLevel, encoding){\n\t var encoder = new QRCodeDataEncoder(encoding),\n\t encodingResult = encoder.getEncodingResult(inputString, errorCorrectionLevel),\n\t version = encodingResult.version,\n\t versionInformation = versionsCodewordsInformation[version - 1][errorCorrectionLevel],\n\t dataString = padDataString(encodingResult.dataString, versionInformation.totalDataCodewords),\n\t blocks = getBlocks(dataString, versionInformation),\n\t matrices = initMatrices(version);\n\n\t addFinderPatterns(matrices);\n\t addAlignmentPatterns(matrices, version);\n\t addTimingFunctions(matrices);\n\n\t if(version >= 7){\n\t addVersionInformation(matrices, toBitsString(0, 18));\n\t }\n\n\t addFormatInformation(matrices, toBitsString(0, 15));\n\t fillData(matrices, blocks);\n\n\t var minIdx = scoreMaskMatrixes(matrices),\n\t optimalMatrix = matrices[minIdx];\n\n\t if(version >= 7){\n\t addVersionInformation([optimalMatrix], encodeVersionInformation(version));\n\t }\n\n\t var formatString = errorCorrectionPatterns[errorCorrectionLevel] + toBitsString(minIdx, 3);\n\t addFormatInformation([optimalMatrix], encodeFormatInformation(formatString));\n\n\t return optimalMatrix;\n\t };\n\n\t var QRCodeDefaults= {\n\t DEFAULT_SIZE: 200,\n\t QUIET_ZONE_LENGTH: 4,\n\t DEFAULT_ERROR_CORRECTION_LEVEL:\"L\",\n\t DEFAULT_BACKGROUND: \"#fff\",\n\t DEFAULT_DARK_MODULE_COLOR: \"#000\",\n\t MIN_BASE_UNIT_SIZE: 1\n\t };\n\n\t var QRCode = Widget.extend({\n\t init: function (element, options) {\n\t var that = this;\n\n\t Widget.fn.init.call(that, element, options);\n\n\t that.element = $(element);\n\t that.wrapper = that.element;\n\t that.element.addClass(\"k-qrcode\");\n\t that.surfaceWrap = $(\"
\").css(\"position\", \"relative\").appendTo(this.element);\n\t that.surface = draw.Surface.create(that.surfaceWrap, {\n\t type: that.options.renderAs\n\t });\n\t that.setOptions(options);\n\t },\n\n\t redraw: function(){\n\t var size = this._getSize();\n\n\t this.surfaceWrap.css({\n\t width: size,\n\t height: size\n\t });\n\t this.surface.clear();\n\t this.surface.resize();\n\n\t this.createVisual();\n\t this.surface.draw(this.visual);\n\t },\n\n\t getSize: function() {\n\t return kendo.dimensions(this.element);\n\t },\n\n\t _resize: function() {\n\t this.redraw();\n\t },\n\n\t createVisual: function() {\n\t this.visual = this._render();\n\t },\n\n\t exportVisual: function() {\n\t return this._render();\n\t },\n\n\t _render: function() {\n\t var that = this,\n\t value = that._value,\n\t baseUnit,\n\t border = that.options.border || {},\n\t padding = that.options.padding || 0,\n\t borderWidth = border.width || 0,\n\t quietZoneSize,\n\t matrix,\n\t size,\n\t dataSize,\n\t contentSize;\n\n\t border.width = borderWidth;\n\n\t var visual = new draw.Group();\n\n\t if (value){\n\t matrix = encodeData(value, that.options.errorCorrection, that.options.encoding);\n\t size = that._getSize();\n\t contentSize = size - 2 * (borderWidth + padding);\n\t baseUnit = that._calculateBaseUnit(contentSize, matrix.length);\n\t dataSize = matrix.length * baseUnit;\n\t quietZoneSize = borderWidth + padding + (contentSize - dataSize) / 2;\n\n\t visual.append(that._renderBackground(size, border));\n\t visual.append(that._renderMatrix(matrix, baseUnit, quietZoneSize));\n\t if (that._hasCustomLogo()) {\n\t visual.append(that._renderLogo(size, baseUnit));\n\t } else if (that._isSwiss()){\n\t visual.append(that._renderSwissCode(size, baseUnit));\n\t }\n\t }\n\n\t return visual;\n\t },\n\n\t _renderLogo: function name(qrSize, baseUnit) {\n\t var image;\n\t var imageRect;\n\t var center = round(qrSize / 2);\n\t var logoSize = this._getLogoSize(baseUnit * DEFAULT_LOGO_SIZE);\n\t var logoUrl = this.options.overlay.imageUrl;\n\t var position = {\n\t x: center - logoSize.width / 2,\n\t y: center - logoSize.height / 2\n\t };\n\n\t imageRect = new kendo.geometry.Rect(\n\t new kendo.geometry.Point(position.x, position.y),\n\t new kendo.geometry.Size(logoSize.width, logoSize.height)\n\t );\n\n\t image = new draw.Image(logoUrl, imageRect);\n\t return image;\n\t },\n\n\t _renderSwissCode: function (qrSize, baseUnit) {\n\t var logoSize = this._getLogoSize(baseUnit * DEFAULT_LOGO_SIZE);\n\t logoSize = Math.max(logoSize.width, logoSize.height);\n\t var crossSize = logoSize / 4;\n\t var crossOffset = crossSize / 2;\n\t var center = qrSize / 2;\n\t var start = {};\n\t var visual = new draw.Group();\n\n\t start.x = start.y = Math.ceil(center - baseUnit - logoSize / 2);\n\t visual.append(this._renderShape(start, Math.ceil(logoSize + baseUnit * 2), squarePattern, \"#fff\"));\n\n\t start.x = start.y = center - logoSize / 2;\n\t visual.append(this._renderShape(start, logoSize, squarePattern, this.options.color));\n\n\t start.x = center + crossOffset - logoSize / 2;\n\t start.y = center + crossOffset + crossSize - logoSize / 2;\n\t visual.append(this._renderShape(start, crossSize, crossPattern, \"#fff\"));\n\n\t return visual;\n\t },\n\n\t _renderShape: function (start, step, pattern, color) {\n\t var path = new draw.MultiPath({\n\t fill: {\n\t color: color\n\t },\n\t stroke: null\n\t });\n\n\t path.moveTo(start.x, start.y);\n\t for (var i = 0; i < pattern.length; i++) {\n\t path.lineTo(start.x + step * pattern[i][0], start.y + step * pattern[i][1]);\n\t }\n\t path.close();\n\n\t return path;\n\t },\n\n\t _getSize: function(){\n\t var that = this,\n\t size;\n\n\t if (that.options.size){\n\t size = parseInt(that.options.size, 10);\n\t } else {\n\t var element = that.element,\n\t min = Math.min(element.width(), element.height());\n\n\t if (min > 0){\n\t size = min;\n\t } else {\n\t size = QRCodeDefaults.DEFAULT_SIZE;\n\t }\n\t }\n\n\t return size;\n\t },\n\n\t _calculateBaseUnit: function(size, matrixSize){\n\t var baseUnit = Math.floor(size/ matrixSize);\n\n\t if(baseUnit < QRCodeDefaults.MIN_BASE_UNIT_SIZE){\n\t throw new Error(\"Insufficient size.\");\n\t }\n\n\t if(baseUnit * matrixSize >= size &&\n\t baseUnit - 1 >= QRCodeDefaults.MIN_BASE_UNIT_SIZE){\n\t baseUnit--;\n\t }\n\n\t return baseUnit;\n\t },\n\n\t _renderMatrix: function(matrix, baseUnit, quietZoneSize){\n\t var path = new draw.MultiPath({\n\t fill: {\n\t color: this.options.color\n\t },\n\t stroke: null\n\t });\n\n\t for (var row = 0; row < matrix.length; row++){\n\t var y = quietZoneSize + row * baseUnit;\n\t var column = 0;\n\n\t while (column < matrix.length){\n\t while (matrix[row][column] === 0 && column < matrix.length){\n\t column++;\n\t }\n\n\t if (column < matrix.length){\n\t var x = column;\n\t while (matrix[row][column] == 1){\n\t column++;\n\t }\n\n\t var x1 = round(quietZoneSize + x * baseUnit);\n\t var y1 = round(y);\n\t var x2 = round(quietZoneSize + column * baseUnit);\n\t var y2 = round(y + baseUnit);\n\n\t path.moveTo(x1, y1)\n\t .lineTo(x1, y2)\n\t .lineTo(x2, y2)\n\t .lineTo(x2, y1)\n\t .close();\n\t }\n\t }\n\t }\n\n\t return path;\n\t },\n\n\t _renderBackground: function (size, border) {\n\t var box = new Box2D(0,0, size, size).unpad(border.width / 2);\n\t return draw.Path.fromRect(box.toRect(), {\n\t fill: {\n\t color: this.options.background\n\t },\n\t stroke: {\n\t color: border.color,\n\t width: border.width\n\t }\n\t });\n\t },\n\n\t setOptions: function (options) {\n\t var that = this;\n\t options = options || {};\n\t that.options = extend(that.options, options);\n\t if (options.value !== undefined) {\n\t that._value = that.options.value + \"\";\n\t }\n\t that.redraw();\n\t },\n\t value: function(value){\n\t var that = this;\n\t if (value === undefined) {\n\t return that._value;\n\t }\n\t that._value = value + \"\";\n\t that.redraw();\n\t },\n\t options: {\n\t name: \"QRCode\",\n\t renderAs: \"svg\",\n\t encoding: \"ISO_8859_1\",\n\t value: \"\",\n\t errorCorrection: QRCodeDefaults.DEFAULT_ERROR_CORRECTION_LEVEL,\n\t background: QRCodeDefaults.DEFAULT_BACKGROUND,\n\t color: QRCodeDefaults.DEFAULT_DARK_MODULE_COLOR,\n\t size: \"\",\n\t padding: 0,\n\t border: {\n\t color: \"\",\n\t width: 0\n\t },\n\t overlay: {\n\t type: IMAGE,\n\t imageUrl: \"\",\n\t width: 0,\n\t height: 0\n\t }\n\t },\n\n\t _hasCustomLogo: function () {\n\t return !!this.options.overlay.imageUrl;\n\t },\n\n\t _isSwiss: function () {\n\t return this.options.overlay.type === SWISS_QR;\n\t },\n\n\t _getLogoSize: function (defautLogoSize) {\n\t var width = this.options.overlay.width;\n\t var height = this.options.overlay.height;\n\n\t if (!width && !height) {\n\t width = height = defautLogoSize;\n\t } else if (width && !height) {\n\t height = width;\n\t } else if (!width && height) {\n\t width = height;\n\t }\n\n\t return {\n\t width: width,\n\t height: height\n\t };\n\t }\n\t });\n\n\t dataviz.ExportMixin.extend(QRCode.fn);\n\t dataviz.ui.plugin(QRCode);\n\n\t kendo.deepExtend(dataviz, {\n\t QRCode: QRCode,\n\t QRCodeDefaults: QRCodeDefaults,\n\t QRCodeFunctions: {\n\t FreeCellVisitor: FreeCellVisitor,\n\t fillData: fillData,\n\t padDataString: padDataString,\n\t generateErrorCodewords: generateErrorCodewords,\n\t xorPolynomials: xorPolynomials,\n\t getBlocks: getBlocks,\n\t multiplyPolynomials: multiplyPolynomials,\n\t chooseMode: chooseMode,\n\t getModes: getModes,\n\t getDataCodewordsCount: getDataCodewordsCount,\n\t getVersion: getVersion,\n\t getDataString: getDataString,\n\t encodeFormatInformation: encodeFormatInformation,\n\t encodeBCH: encodeBCH,\n\t dividePolynomials: dividePolynomials,\n\t initMatrices: initMatrices,\n\t addFormatInformation: addFormatInformation,\n\t encodeVersionInformation: encodeVersionInformation,\n\t addVersionInformation: addVersionInformation,\n\t addCentricPattern: addCentricPattern,\n\t addFinderSeparator: addFinderSeparator,\n\t addFinderPatterns: addFinderPatterns,\n\t addAlignmentPatterns: addAlignmentPatterns,\n\t addTimingFunctions: addTimingFunctions,\n\t scoreMaskMatrixes: scoreMaskMatrixes,\n\t encodeData: encodeData,\n\t UTF8Encoder: UTF8Encoder\n\t },\n\t QRCodeFields: {\n\t modes: modeInstances,\n\t powersOfTwo: powersOfTwo,\n\t powersOfTwoResult: powersOfTwoResult,\n\t generatorPolynomials: generatorPolynomials\n\t }\n\t });\n\n\t})(window.kendo.jQuery);\n\n\treturn window.kendo;\n\n\t}, __webpack_require__(3));\n\n\n/***/ })\n\n/******/ });","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1141);\n\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n\tmodule.exports = function() { throw new Error(\"define cannot be used indirect\"); };\r\n\n\n/***/ }),\n\n/***/ 1056:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"./kendo.drawing\");\n\n/***/ }),\n\n/***/ 1129:\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"./kendo.dataviz.core\");\n\n/***/ }),\n\n/***/ 1141:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(f, define){\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(1129), __webpack_require__(1056) ], __WEBPACK_AMD_DEFINE_FACTORY__ = (f), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t})(function(){\n\n\tvar __meta__ = { // jshint ignore:line\n\t id: \"dataviz.barcode\",\n\t name: \"Barcode\",\n\t category: \"dataviz\",\n\t description: \"Barcode widget\",\n\t depends: [ \"dataviz.core\" ]\n\t};\n\n\t(function ($, undefined) {\n\t var kendo = window.kendo,\n\t Widget = kendo.ui.Widget,\n\n\t extend = $.extend,\n\t deepExtend = kendo.deepExtend,\n\t inArray = $.inArray,\n\t isPlainObject = $.isPlainObject,\n\n\t draw = kendo.drawing,\n\t geom = kendo.geometry,\n\t util = kendo.drawing.util,\n\t defined = util.defined,\n\t dataviz = kendo.dataviz,\n\t Box2D = dataviz.Box2D,\n\t TextBox = dataviz.TextBox,\n\t DEFAULT_WIDTH = 300,\n\t DEFAULT_HEIGHT = 100,\n\t DEFAULT_QUIETZONE_LENGTH = 10,\n\t numberRegex = /^\\d+$/,\n\t alphanumericRegex = /^[a-z0-9]+$/i,\n\t InvalidCharacterErrorTemplate = \"Character '{0}' is not valid for symbology {1}\";\n\n\t function getNext(value, index, count){\n\t return value.substring(index, index + count);\n\t }\n\n\t var Encoding = kendo.Class.extend({\n\t init: function (options) {\n\t this.setOptions(options);\n\t },\n\t setOptions: function(options){\n\t var that = this;\n\t that.options = extend({}, that.options, options);\n\t that.quietZoneLength = that.options.addQuietZone ? 2 * that.options.quietZoneLength : 0;\n\t },\n\t encode: function (value, width, height) {\n\t var that = this;\n\t if (defined(value)) {\n\t value+='';\n\t }\n\n\t that.initValue(value, width, height);\n\n\t if (that.options.addQuietZone) {\n\t that.addQuietZone();\n\t }\n\n\t that.addData();\n\n\t if (that.options.addQuietZone) {\n\t that.addQuietZone();\n\t }\n\n\t return {\n\t baseUnit: that.baseUnit,\n\t pattern: that.pattern\n\t };\n\t },\n\t options: {\n\t quietZoneLength: DEFAULT_QUIETZONE_LENGTH,\n\t addQuietZone: true,\n\t addCheckSum: true\n\t },\n\t initValue: function () {},\n\t addQuietZone: function () {\n\t this.pattern.push(this.options.quietZoneLength || DEFAULT_QUIETZONE_LENGTH);\n\t },\n\t addData: function () {\n\t },\n\t invalidCharacterError: function(character){\n\t throw new Error(kendo.format(InvalidCharacterErrorTemplate, character, this.name));\n\t }\n\t });\n\n\t var encodings = {};\n\n\t var code39Base = Encoding.extend({\n\t minBaseUnitLength: 0.7,\n\t addData: function(){\n\t var that = this,\n\t value = that.value;\n\n\t that.addStart();\n\n\t for(var idx = 0; idx < value.length; idx++){\n\t that.addCharacter(value.charAt(idx));\n\t }\n\n\t if(that.options.addCheckSum){\n\t that.pushCheckSum();\n\t }\n\n\t that.addStop();\n\t that.prepareValues();\n\t },\n\t addCharacter: function(character){\n\t var that = this,\n\t charData = that.characterMap[character];\n\t if(!charData){\n\t that.invalidCharacterError(character);\n\t }\n\t that.addBase(charData);\n\t },\n\t addBase: function(){}\n\t });\n\n\t var code39ExtendedBase = {\n\t addCharacter: function(character){\n\t var that = this;\n\t if(that.characterMap[character]){\n\t that.addBase(that.characterMap[character]);\n\t }\n\t else if(character.charCodeAt(0) > 127){\n\t that.invalidCharacterError(character);\n\t }\n\t else{\n\t that.addExtended(character.charCodeAt(0));\n\t }\n\t },\n\t addExtended: function(code){\n\t var that = this,\n\t patterns;\n\t for(var i = 0; i < that.extendedMappings.length; i++){\n\t if((patterns = that.extendedMappings[i].call(that, code))){\n\t for(var j = 0; j < patterns.length; j++){\n\t that.addBase(patterns[j]);\n\t }\n\t that.dataLength+= patterns.length - 1;\n\t return;\n\t }\n\t }\n\t },\n\t extendedMappings: [\n\t function(code){\n\t if(97 <= code && code <= 122){\n\t var that = this;\n\t return [that.characterMap[that.shiftCharacters[0]], that.characterMap[String.fromCharCode(code - 32)]];\n\t }\n\t },\n\t function(code){\n\t if(33 <= code && code <= 58){\n\t var that = this;\n\t return [that.characterMap[that.shiftCharacters[1]], that.characterMap[String.fromCharCode(code + 32)]];\n\t }\n\t },\n\t function(code){\n\t if(1 <= code && code <= 26){\n\t var that = this;\n\t return [that.characterMap[that.shiftCharacters[2]], that.characterMap[String.fromCharCode(code + 64)]];\n\t }\n\t },\n\t function(code){\n\t var that = this,\n\t result,\n\t dataCharacter;\n\t if(!that.specialAsciiCodes[code]){\n\t dataCharacter = Math.floor(code / 32) * 6 + (code - 27) % 32 + 64;\n\t result = [that.characterMap[that.shiftCharacters[3]], that.characterMap[String.fromCharCode(dataCharacter)]];\n\t }\n\t else{\n\t result = [];\n\t for(var i = 0; i < that.specialAsciiCodes[code].length; i++){\n\t result.push(that.characterMap[that.shiftCharacters[3]]);\n\t result.push(that.characterMap[that.specialAsciiCodes[code][i]]);\n\t }\n\t }\n\n\t return result;\n\t }\n\t ],\n\t specialAsciiCodes: {\n\t \"0\": [\"U\"],\n\t \"64\": [\"V\"],\n\t \"96\": [\"W\"],\n\t \"127\": [\"T\",\"X\",\"Y\",\"Z\"]\n\t },\n\t shiftValuesAsciiCodes:{\n\t \"39\": 36,\n\t \"40\": 47,\n\t \"41\": 43,\n\t \"42\": 37\n\t },\n\t characterMap: {\n\t \"+\": false,\n\t \"/\": false,\n\t \"$\": false,\n\t \"%\": false\n\t },\n\t shiftCharacters: [\"SHIFT0\", \"SHIFT1\", \"SHIFT2\", \"SHIFT3\"]\n\t };\n\n\t encodings.code39 = code39Base.extend({\n\t name: \"Code 39\",\n\t checkSumMod: 43,\n\t minRatio: 2.5,\n\t maxRatio: 3,\n\t gapWidth: 1,\n\t splitCharacter: \"|\",\n\t initValue: function (value, width, height) {\n\t var that = this;\n\t that.width = width;\n\t that.height = height;\n\t that.value = value;\n\t that.dataLength = value.length;\n\t that.pattern = [];\n\t that.patternString = \"\";\n\t },\n\t prepareValues: function(){\n\t var that = this,\n\t baseUnit,\n\t minBaseUnit = that.minBaseUnitLength,\n\t ratio = that.maxRatio,\n\t minRatio = that.minRatio,\n\t minHeight = Math.max(0.15 * that.width, 24);\n\t if (that.height < minHeight) {\n\t throw new Error(\"Insufficient Height. The minimum height for value: \" + that.value + \" is: \" + minHeight);\n\t }\n\n\t while((baseUnit = that.getBaseUnit(ratio)) < minBaseUnit && ratio > minRatio){\n\t ratio = parseFloat((ratio - 0.1).toFixed(1));\n\t }\n\n\t if(baseUnit < minBaseUnit){\n\t var minWidth = Math.ceil(that.getBaseWidth(minRatio) * minBaseUnit);\n\t throw new Error(\"Insufficient width. The minimum width for value: \" + that.value + \" is: \" + minWidth);\n\t }\n\n\t that.ratio = ratio;\n\t that.baseUnit = baseUnit;\n\t that.patternString = that.patternString.substring(0, that.patternString.length - 1);\n\t that.pattern = that.pattern.concat(that.patternString.replace(/ratio/g, ratio).split(that.splitCharacter));\n\t },\n\t getBaseUnit: function(ratio){\n\t return this.width / this.getBaseWidth(ratio);\n\t },\n\t getBaseWidth: function(ratio){\n\t var that = this,\n\t characterLength = 3 * (ratio + 2);\n\t return that.quietZoneLength + characterLength * (that.dataLength + 2) + that.gapWidth * (that.dataLength + 1);\n\t },\n\t addStart: function () {\n\t var that = this;\n\t that.addPattern(that.characterMap.START.pattern);\n\t that.addCharacterGap();\n\t },\n\t addBase: function(character){\n\t this.addPattern(character.pattern);\n\t this.addCharacterGap();\n\t },\n\t addStop: function () {\n\t this.addPattern(this.characterMap.START.pattern);\n\t },\n\t addPattern: function (pattern) {\n\t for (var i = 0; i < pattern.length; i++) {\n\t this.patternString+= this.patternMappings[pattern.charAt(i)];\n\t }\n\t },\n\t addCharacterGap: function () {\n\t var that = this;\n\t that.patternString+=that.gapWidth + that.splitCharacter;\n\t },\n\t patternMappings: {\n\t \"b\": \"1|\",\n\t \"w\": \"1|\",\n\t \"B\": \"ratio|\",\n\t \"W\": \"ratio|\"\n\t },\n\t characterMap: {\n\t \"0\":{\"pattern\":\"bwbWBwBwb\",\"value\":0},\n\t \"1\":{\"pattern\":\"BwbWbwbwB\",\"value\":1},\n\t \"2\":{\"pattern\":\"bwBWbwbwB\",\"value\":2},\n\t \"3\":{\"pattern\":\"BwBWbwbwb\",\"value\":3},\n\t \"4\":{\"pattern\":\"bwbWBwbwB\",\"value\":4},\n\t \"5\":{\"pattern\":\"BwbWBwbwb\",\"value\":5},\n\t \"6\":{\"pattern\":\"bwBWBwbwb\",\"value\":6},\n\t \"7\":{\"pattern\":\"bwbWbwBwB\",\"value\":7},\n\t \"8\":{\"pattern\":\"BwbWbwBwb\",\"value\":8},\n\t \"9\":{\"pattern\":\"bwBWbwBwb\",\"value\":9},\n\t \"A\":{\"pattern\":\"BwbwbWbwB\",\"value\":10},\n\t \"B\":{\"pattern\":\"bwBwbWbwB\",\"value\":11},\n\t \"C\":{\"pattern\":\"BwBwbWbwb\",\"value\":12},\n\t \"D\":{\"pattern\":\"bwbwBWbwB\",\"value\":13},\n\t \"E\":{\"pattern\":\"BwbwBWbwb\",\"value\":14},\n\t \"F\":{\"pattern\":\"bwBwBWbwb\",\"value\":15},\n\t \"G\":{\"pattern\":\"bwbwbWBwB\",\"value\":16},\n\t \"H\":{\"pattern\":\"BwbwbWBwb\",\"value\":17},\n\t \"I\":{\"pattern\":\"bwBwbWBwb\",\"value\":18},\n\t \"J\":{\"pattern\":\"bwbwBWBwb\",\"value\":19},\n\t \"K\":{\"pattern\":\"BwbwbwbWB\",\"value\":20},\n\t \"L\":{\"pattern\":\"bwBwbwbWB\",\"value\":21},\n\t \"M\":{\"pattern\":\"BwBwbwbWb\",\"value\":22},\n\t \"N\":{\"pattern\":\"bwbwBwbWB\",\"value\":23},\n\t \"O\":{\"pattern\":\"BwbwBwbWb\",\"value\":24},\n\t \"P\":{\"pattern\":\"bwBwBwbWb\",\"value\":25},\n\t \"Q\":{\"pattern\":\"bwbwbwBWB\",\"value\":26},\n\t \"R\":{\"pattern\":\"BwbwbwBWb\",\"value\":27},\n\t \"S\":{\"pattern\":\"bwBwbwBWb\",\"value\":28},\n\t \"T\":{\"pattern\":\"bwbwBwBWb\",\"value\":29},\n\t \"U\":{\"pattern\":\"BWbwbwbwB\",\"value\":30},\n\t \"V\":{\"pattern\":\"bWBwbwbwB\",\"value\":31},\n\t \"W\":{\"pattern\":\"BWBwbwbwb\",\"value\":32},\n\t \"X\":{\"pattern\":\"bWbwBwbwB\",\"value\":33},\n\t \"Y\":{\"pattern\":\"BWbwBwbwb\",\"value\":34},\n\t \"Z\":{\"pattern\":\"bWBwBwbwb\",\"value\":35},\n\t \"-\":{\"pattern\":\"bWbwbwBwB\",\"value\":36},\n\t \".\":{\"pattern\":\"BWbwbwBwb\",\"value\":37},\n\t \" \":{\"pattern\":\"bWBwbwBwb\",\"value\":38},\n\t \"$\":{\"pattern\":\"bWbWbWbwb\",\"value\":39},\n\t \"/\":{\"pattern\":\"bWbWbwbWb\",\"value\":40},\n\t \"+\":{\"pattern\":\"bWbwbWbWb\",\"value\":41},\n\t \"%\":{\"pattern\":\"bwbWbWbWb\",\"value\":42},\n\t START: { pattern: \"bWbwBwBwb\"}\n\t },\n\t options: {\n\t addCheckSum: false\n\t }\n\t });\n\n\t encodings.code39extended = encodings.code39.extend(deepExtend({}, code39ExtendedBase, {\n\t name: \"Code 39 extended\",\n\t characterMap: {\n\t SHIFT0: {\"pattern\":\"bWbwbWbWb\",\"value\":41},\n\t SHIFT1: {\"pattern\":\"bWbWbwbWb\",\"value\":40},\n\t SHIFT2: {\"pattern\":\"bWbWbWbwb\",\"value\":39},\n\t SHIFT3: {\"pattern\":\"bwbWbWbWb\",\"value\":42}\n\t }\n\t }));\n\n\t encodings.code93 = code39Base.extend({\n\t name: \"Code 93\",\n\t cCheckSumTotal: 20,\n\t kCheckSumTotal: 15,\n\t checkSumMod: 47,\n\t initValue: function(value, width, height){\n\t var that = this;\n\t that.value = value;\n\t that.width = width;\n\t that.height = height;\n\t that.pattern = [];\n\t that.values = [];\n\t that.dataLength = value.length;\n\t },\n\t prepareValues: function(){\n\t var that = this,\n\t minHeight = Math.max(0.15 * that.width, 24);\n\t if (that.height < minHeight) {\n\t throw new Error(\"Insufficient Height\");\n\t }\n\n\t that.setBaseUnit();\n\n\t if(that.baseUnit < that.minBaseUnitLength){\n\t throw new Error(\"Insufficient Width\");\n\t }\n\t },\n\t setBaseUnit: function(){\n\t var that = this,\n\t checkSumLength = 2;\n\t that.baseUnit = that.width / (9 * (that.dataLength + 2 + checkSumLength) + that.quietZoneLength + 1);\n\t },\n\t addStart: function(){\n\t var pattern = this.characterMap.START.pattern;\n\t this.addPattern(pattern);\n\t },\n\t addStop: function(){\n\t var that = this;\n\t that.addStart();\n\t that.pattern.push(that.characterMap.TERMINATION_BAR);\n\t },\n\t addBase: function(charData){\n\t this.addPattern(charData.pattern);\n\t this.values.push(charData.value);\n\t },\n\t pushCheckSum: function(){\n\t var that = this,\n\t checkValues = that._getCheckValues(),\n\t charData;\n\n\t that.checksum = checkValues.join(\"\");\n\t for(var i = 0; i < checkValues.length; i++){\n\t charData = that.characterMap[that._findCharacterByValue(checkValues[i])];\n\t that.addPattern(charData.pattern);\n\t }\n\t },\n\t _getCheckValues: function(){\n\t var that = this,\n\t values = that.values,\n\t length = values.length,\n\t wightedSum = 0,\n\t cValue,\n\t kValue,\n\t idx;\n\n\t for(idx = length - 1; idx >= 0; idx--){\n\t wightedSum += that.weightedValue(values[idx],length - idx, that.cCheckSumTotal);\n\t }\n\t cValue = wightedSum % that.checkSumMod;\n\n\t wightedSum = that.weightedValue(cValue, 1, that.kCheckSumTotal);\n\t for(idx = length - 1; idx >= 0; idx--){\n\t wightedSum += that.weightedValue(values[idx], length - idx + 1, that.kCheckSumTotal);\n\t }\n\n\t kValue = wightedSum % that.checkSumMod;\n\t return [cValue, kValue];\n\t },\n\t _findCharacterByValue: function (value) {\n\t for (var character in this.characterMap) {\n\t if (this.characterMap[character].value === value) {\n\t return character;\n\t }\n\t }\n\t },\n\t weightedValue: function(value, index, total){\n\t return (index % total || total) * value;\n\t },\n\t addPattern: function(pattern){\n\t var value;\n\n\t for(var i = 0; i < pattern.length; i++){\n\t value = parseInt(pattern.charAt(i),10);\n\t this.pattern.push(value);\n\t }\n\t },\n\t characterMap: {\n\t \"0\":{\"pattern\":\"131112\",\"value\":0},\n\t \"1\":{\"pattern\":\"111213\",\"value\":1},\n\t \"2\":{\"pattern\":\"111312\",\"value\":2},\n\t \"3\":{\"pattern\":\"111411\",\"value\":3},\n\t \"4\":{\"pattern\":\"121113\",\"value\":4},\n\t \"5\":{\"pattern\":\"121212\",\"value\":5},\n\t \"6\":{\"pattern\":\"121311\",\"value\":6},\n\t \"7\":{\"pattern\":\"111114\",\"value\":7},\n\t \"8\":{\"pattern\":\"131211\",\"value\":8},\n\t \"9\":{\"pattern\":\"141111\",\"value\":9},\n\t \"A\":{\"pattern\":\"211113\",\"value\":10},\n\t \"B\":{\"pattern\":\"211212\",\"value\":11},\n\t \"C\":{\"pattern\":\"211311\",\"value\":12},\n\t \"D\":{\"pattern\":\"221112\",\"value\":13},\n\t \"E\":{\"pattern\":\"221211\",\"value\":14},\n\t \"F\":{\"pattern\":\"231111\",\"value\":15},\n\t \"G\":{\"pattern\":\"112113\",\"value\":16},\n\t \"H\":{\"pattern\":\"112212\",\"value\":17},\n\t \"I\":{\"pattern\":\"112311\",\"value\":18},\n\t \"J\":{\"pattern\":\"122112\",\"value\":19},\n\t \"K\":{\"pattern\":\"132111\",\"value\":20},\n\t \"L\":{\"pattern\":\"111123\",\"value\":21},\n\t \"M\":{\"pattern\":\"111222\",\"value\":22},\n\t \"N\":{\"pattern\":\"111321\",\"value\":23},\n\t \"O\":{\"pattern\":\"121122\",\"value\":24},\n\t \"P\":{\"pattern\":\"131121\",\"value\":25},\n\t \"Q\":{\"pattern\":\"212112\",\"value\":26},\n\t \"R\":{\"pattern\":\"212211\",\"value\":27},\n\t \"S\":{\"pattern\":\"211122\",\"value\":28},\n\t \"T\":{\"pattern\":\"211221\",\"value\":29},\n\t \"U\":{\"pattern\":\"221121\",\"value\":30},\n\t \"V\":{\"pattern\":\"222111\",\"value\":31},\n\t \"W\":{\"pattern\":\"112122\",\"value\":32},\n\t \"X\":{\"pattern\":\"112221\",\"value\":33},\n\t \"Y\":{\"pattern\":\"122121\",\"value\":34},\n\t \"Z\":{\"pattern\":\"123111\",\"value\":35},\n\t \"-\":{\"pattern\":\"121131\",\"value\":36},\n\t \".\":{\"pattern\":\"311112\",\"value\":37},\n\t \" \":{\"pattern\":\"311211\",\"value\":38},\n\t \"$\":{\"pattern\":\"321111\",\"value\":39},\n\t \"/\":{\"pattern\":\"112131\",\"value\":40},\n\t \"+\":{\"pattern\":\"113121\",\"value\":41},\n\t \"%\":{\"pattern\":\"211131\",\"value\":42},\n\t SHIFT0:{\"pattern\":\"122211\",\"value\":46},\n\t SHIFT1:{\"pattern\":\"311121\",\"value\":45},\n\t SHIFT2:{\"pattern\":\"121221\",\"value\":43},\n\t SHIFT3:{\"pattern\":\"312111\",\"value\":44},\n\t START: {\"pattern\":\"111141\"},\n\t TERMINATION_BAR: \"1\"\n\t }\n\t });\n\n\t encodings.code93extended = encodings.code93.extend(deepExtend({}, code39ExtendedBase, {\n\t name: \"Code 93 extended\",\n\t pushCheckSum: function(){\n\t var that = this,\n\t checkValues = that._getCheckValues(),\n\t value;\n\n\t that.checksum = checkValues.join(\"\");\n\n\t for(var i = 0; i < checkValues.length; i++){\n\t value = checkValues[i];\n\t if(that.shiftValuesAsciiCodes[value]){\n\t that.addExtended(that.shiftValuesAsciiCodes[value]);\n\t }\n\t else{\n\t that.addPattern(that.characterMap[that._findCharacterByValue(value)].pattern);\n\t }\n\t }\n\t }\n\t }));\n\n\t var state128 = kendo.Class.extend({\n\t init: function(encoding){\n\t this.encoding = encoding;\n\t },\n\t addStart: function(){},\n\t is: function (){},\n\t move: function (){},\n\t pushState: function(){}\n\t });\n\n\t var state128AB = state128.extend({\n\t FNC4: \"FNC4\",\n\t init: function(encoding, states){\n\t var that = this;\n\t that.encoding = encoding;\n\t that.states = states;\n\t that._initMoves(states);\n\t },\n\t addStart: function(){\n\t this.encoding.addPattern(this.START);\n\t },\n\t is: function (value, index){\n\t var code = value.charCodeAt(index);\n\t return this.isCode(code);\n\t },\n\t move: function(encodingState){\n\t var that = this,\n\t idx = 0;\n\n\t while(!that._moves[idx].call(that, encodingState) && idx < that._moves.length){\n\t idx++;\n\t }\n\t },\n\t pushState: function(encodingState){\n\t var that = this,\n\t states = that.states,\n\t value = encodingState.value,\n\t maxLength = value.length,\n\t code;\n\n\t if(inArray(\"C\", states) >= 0){\n\t var numberMatch = value.substr(encodingState.index).match(/\\d{4,}/g);\n\t if(numberMatch){\n\t maxLength = value.indexOf(numberMatch[0], encodingState.index);\n\t }\n\t }\n\n\t while((code = encodingState.value.charCodeAt(encodingState.index)) >= 0 &&\n\t that.isCode(code) && encodingState.index < maxLength){\n\t that.encoding.addPattern(that.getValue(code));\n\t encodingState.index++;\n\t }\n\t },\n\t _initMoves: function(states){\n\t var that = this;\n\t that._moves = [];\n\n\t if(inArray(that.FNC4, states) >= 0){\n\t that._moves.push(that._moveFNC);\n\t }\n\n\t if(inArray(that.shiftKey, states) >= 0){\n\t that._moves.push(that._shiftState);\n\t }\n\t that._moves.push(that._moveState);\n\t },\n\t _moveFNC: function(encodingState){\n\t if(encodingState.fnc){\n\t encodingState.fnc = false;\n\t return encodingState.previousState == this.key;\n\t }\n\t },\n\t _shiftState: function(encodingState){\n\t var that = this;\n\t if(encodingState.previousState == that.shiftKey &&\n\t (encodingState.index + 1 >= encodingState.value.length ||\n\t that.encoding[that.shiftKey].is(encodingState.value, encodingState.index + 1))){\n\t that.encoding.addPattern(that.SHIFT);\n\t encodingState.shifted = true;\n\t return true;\n\t }\n\t },\n\t _moveState: function(){\n\t this.encoding.addPattern(this.MOVE);\n\t return true;\n\t },\n\t SHIFT: 98\n\t });\n\n\t var states128 = {};\n\n\t states128.A = state128AB.extend({\n\t key: \"A\",\n\t shiftKey: \"B\",\n\t isCode: function(code){\n\t return 0 <= code && code < 96;\n\t },\n\t getValue: function(code){\n\t if(code < 32){\n\t return code + 64;\n\t }\n\n\t return code - 32;\n\t },\n\t MOVE: 101,\n\t START: 103\n\t });\n\n\t states128.B = state128AB.extend({\n\t key: \"B\",\n\t shiftKey: \"A\",\n\t isCode: function(code){\n\t return 32 <= code && code < 128;\n\t },\n\t getValue: function(code){\n\t return code - 32;\n\t },\n\t MOVE: 100,\n\t START: 104\n\t });\n\n\t states128.C = state128.extend({\n\t key: \"C\",\n\t addStart: function(){\n\t this.encoding.addPattern(this.START);\n\t },\n\t is: function (value, index){\n\t var next4 = getNext(value, index, 4);\n\t return (index + 4 <= value.length || value.length == 2) && numberRegex.test(next4);\n\t },\n\t move: function (){\n\t this.encoding.addPattern(this.MOVE);\n\t },\n\t pushState: function(encodingState){\n\t var code;\n\t while(( code = getNext(encodingState.value, encodingState.index, 2)) &&\n\t numberRegex.test(code) && code.length == 2)\n\t {\n\t this.encoding.addPattern(parseInt(code, 10));\n\t encodingState.index+=2;\n\t }\n\t },\n\t getValue: function(code){\n\t return code;\n\t },\n\t MOVE: 99,\n\t START: 105\n\t });\n\n\t states128.FNC4 = state128.extend({\n\t key: \"FNC4\",\n\t dependentStates: [\"A\",\"B\"],\n\t init: function(encoding, states){\n\t this.encoding = encoding;\n\t this._initSubStates(states);\n\t },\n\t addStart: function(encodingState){\n\t var code = encodingState.value.charCodeAt(0) - 128,\n\t subState = this._getSubState(code);\n\n\t this.encoding[subState].addStart();\n\t },\n\t is: function(value, index){\n\t var code = value.charCodeAt(index);\n\t return this.isCode(code);\n\t },\n\t isCode: function(code){\n\t return 128 <= code && code < 256;\n\t },\n\t pushState: function(encodingState){\n\t var that = this,\n\t subState = that._initSubState(encodingState),\n\t encoding = that.encoding,\n\t length = subState.value.length;\n\t encodingState.index += length;\n\n\t if(length < 3){\n\t var code;\n\t for(; subState.index < length; subState.index++){\n\t code = subState.value.charCodeAt(subState.index);\n\t subState.state = that._getSubState(code);\n\t if(subState.previousState != subState.state){\n\t subState.previousState = subState.state;\n\t encoding[subState.state].move(subState);\n\t }\n\t encoding.addPattern(encoding[subState.state].MOVE);\n\t encoding.addPattern(encoding[subState.state].getValue(code));\n\t }\n\t }\n\t else{\n\t if(subState.state != subState.previousState){\n\t encoding[subState.state].move(subState);\n\t }\n\t that._pushStart(subState);\n\t encoding.pushData(subState, that.subStates);\n\t if(encodingState.index < encodingState.value.length){\n\t that._pushStart(subState);\n\t }\n\t }\n\n\t encodingState.fnc = true;\n\t encodingState.state = subState.state;\n\t },\n\t _pushStart: function(subState){\n\t var that = this;\n\t that.encoding.addPattern(that.encoding[subState.state].MOVE);\n\t that.encoding.addPattern(that.encoding[subState.state].MOVE);\n\t },\n\t _initSubState: function(encodingState){\n\t var that = this,\n\t subState = {\n\t value: that._getAll(encodingState.value, encodingState.index),\n\t index: 0\n\t };\n\t subState.state = that._getSubState(subState.value.charCodeAt(0));\n\t subState.previousState = encodingState.previousState == that.key ?\n\t subState.state : encodingState.previousState;\n\t return subState;\n\t },\n\t _initSubStates: function(states){\n\t var that = this;\n\t that.subStates = [];\n\t for(var i = 0; i < states.length; i++){\n\t if(inArray(states[i], that.dependentStates) >= 0){\n\t that.subStates.push(states[i]);\n\t }\n\t }\n\t },\n\t _getSubState: function(code){\n\t var that = this;\n\t for(var i = 0; i < that.subStates.length; i++){\n\t if(that.encoding[that.subStates[i]].isCode(code)){\n\t return that.subStates[i];\n\t }\n\t }\n\t },\n\t _getAll: function(value, index){\n\t var code,\n\t result = \"\";\n\t while((code = value.charCodeAt(index++)) && this.isCode(code)){\n\t result += String.fromCharCode(code - 128);\n\t }\n\t return result;\n\t }\n\t });\n\n\t states128.FNC1 = state128.extend({\n\t key: \"FNC1\",\n\t startState: \"C\",\n\t dependentStates: [\"C\",\"B\"],\n\t startAI: \"(\",\n\t endAI: \")\",\n\t init: function(encoding, states){\n\t this.encoding = encoding;\n\t this.states = states;\n\t },\n\t addStart: function(){\n\t this.encoding[this.startState].addStart();\n\t },\n\t is: function(){\n\t return inArray(this.key, this.states) >= 0;\n\t },\n\t pushState: function(encodingState){\n\t var that = this,\n\t encoding = that.encoding,\n\t value = encodingState.value.replace(/\\s/g, \"\"),\n\t regexSeparators = new RegExp(\"[\" + that.startAI + that.endAI + \"]\", \"g\"),\n\t index = encodingState.index,\n\t subState= {\n\t state: that.startState\n\t },\n\t current,\n\t nextStart,\n\t separatorLength;\n\n\t encoding.addPattern(that.START);\n\n\t while(true){\n\t subState.index = 0;\n\n\t separatorLength = value.charAt(index) === that.startAI ? 2 : 0;\n\t current = separatorLength > 0 ? that.getBySeparator(value, index) : that.getByLength(value, index);\n\t if(current.ai.length){\n\t nextStart = index + separatorLength + current.id.length + current.ai.length;\n\t }\n\t else{\n\t nextStart = value.indexOf(that.startAI, index + 1);\n\t if(nextStart < 0){\n\t if(index + current.ai.max + current.id.length + separatorLength < value.length){\n\t throw new Error(\"Separators are required after variable length identifiers\");\n\t }\n\t nextStart = value.length;\n\t }\n\t }\n\t subState.value = value.substring(index, nextStart).replace(regexSeparators, \"\");\n\t that.validate(current, subState.value);\n\n\t encoding.pushData(subState, that.dependentStates);\n\n\t if(nextStart >= value.length){\n\t break;\n\t }\n\n\t index = nextStart;\n\n\t if(subState.state != that.startState){\n\t encoding[that.startState].move(subState);\n\t subState.state = that.startState;\n\t }\n\n\t if(!current.ai.length){\n\t encoding.addPattern(that.START);\n\t }\n\t }\n\t encodingState.index = encodingState.value.length;\n\t },\n\t validate: function(current, value){\n\t var code = value.substr(current.id.length),\n\t ai = current.ai;\n\t if(!ai.type && !numberRegex.test(code)){\n\t throw new Error(\"Application identifier \" + current.id+ \" is numeric only but contains non numeric character(s).\");\n\t }\n\n\t if(ai.type == \"alphanumeric\" && !alphanumericRegex.test(code)){\n\t throw new Error(\"Application identifier \" + current.id+ \" is alphanumeric only but contains non alphanumeric character(s).\");\n\t }\n\n\t if(ai.length && ai.length !== code.length){\n\t throw new Error(\"Application identifier \" + current.id + \" must be \" + ai.length + \" characters long.\");\n\t }\n\n\t if(ai.min && ai.min > code.length){\n\t throw new Error(\"Application identifier \" + current.id + \" must be at least \" + ai.min + \" characters long.\");\n\t }\n\n\t if(ai.max && ai.max < code.length){\n\t throw new Error(\"Application identifier \" + current.id + \" must be at most \" + ai.max + \" characters long.\");\n\t }\n\t },\n\t getByLength: function(value, index){\n\t var that = this,\n\t id,\n\t ai;\n\t for(var i = 2; i <= 4; i++){\n\t id = getNext(value, index, i);\n\t ai = that.getAI(id) || that.getAI(id.substring(0, id.length - 1));\n\t if(ai){\n\t return {\n\t id: id,\n\t ai: ai\n\t };\n\t }\n\t }\n\t that.unsupportedAIError(id);\n\t },\n\t unsupportedAIError: function(id){\n\t throw new Error(kendo.format(\"'{0}' is not a supported Application Identifier\"),id);\n\t },\n\t getBySeparator: function(value, index){\n\t var that = this,\n\t start = value.indexOf(that.startAI, index),\n\t end = value.indexOf(that.endAI, start),\n\t id = value.substring(start + 1,end),\n\t ai = that.getAI(id) || that.getAI(id.substr(id.length - 1));\n\t if(!ai){\n\t that.unsupportedAIError(id);\n\t }\n\n\t return {\n\t ai: ai,\n\t id: id\n\t };\n\t },\n\t getAI: function(id){\n\t var ai = this.applicationIdentifiers,\n\t multiKey = ai.multiKey;\n\t if(ai[id]){\n\t return ai[id];\n\t }\n\n\t for(var i = 0; i < multiKey.length; i++){\n\t if(multiKey[i].ids && inArray(id, multiKey[i].ids) >= 0){\n\t return multiKey[i].type;\n\t }\n\t else if(multiKey[i].ranges){\n\t var ranges = multiKey[i].ranges;\n\t for(var j = 0; j < ranges.length; j++){\n\t if(ranges[j][0] <= id && id <= ranges[j][1]){\n\t return multiKey[i].type;\n\t }\n\t }\n\t }\n\t }\n\t },\n\t applicationIdentifiers: {\n\t \"22\": {max: 29, type: \"alphanumeric\"},\n\t \"402\": {length: 17},\n\t \"7004\": {max: 4, type: \"alphanumeric\"},\n\t \"242\": {max: 6, type: \"alphanumeric\"},\n\t \"8020\": {max: 25, type: \"alphanumeric\"},\n\t \"703\": { min: 3, max: 30, type: \"alphanumeric\"},\n\t \"8008\": { min: 8, max: 12, type: \"alphanumeric\"},\n\t \"253\": { min: 13, max: 17, type: \"alphanumeric\"},\n\t \"8003\": { min: 14, max: 30, type: \"alphanumeric\"},\n\t multiKey: [{\n\t ids: [\"15\", \"17\", \"8005\", \"8100\"],\n\t ranges: [\n\t [11, 13],\n\t [310, 316],\n\t [320, 336],\n\t [340, 369]\n\t ],\n\t type: { length: 6}\n\t },{\n\t ids: [\"240\", \"241\", \"250\", \"251\", \"400\", \"401\", \"403\", \"7002\", \"8004\", \"8007\", \"8110\"],\n\t ranges: [[90-99]],\n\t type: {max: 30, type: \"alphanumeric\"}\n\t },{\n\t ids: [\"7001\"],\n\t ranges: [[410, 414]],\n\t type: { length: 13}\n\t },{\n\t ids: [\"10\",\"21\", \"254\", \"420\", \"8002\"],\n\t type: {max: 20, type: \"alphanumeric\"}\n\t },{\n\t ids: [\"00\", \"8006\", \"8017\", \"8018\"],\n\t type: {length: 18}\n\t },{\n\t ids: [\"01\", \"02\", \"8001\"],\n\t type: { length: 14}\n\t },{\n\t ids: [\"422\"],\n\t ranges: [\n\t [424, 426]\n\t ],\n\t type: {length: 3}\n\t },{\n\t ids: [\"20\", \"8102\"],\n\t type: { length: 2}\n\t },{\n\t ids: [\"30\",\"37\"],\n\t type: {max: 8, type: \"alphanumeric\"}\n\t },{\n\t ids: [\"390\",\"392\"],\n\t type: {max: 15, type: \"alphanumeric\"}\n\t },{\n\t ids: [\"421\", \"423\"],\n\t type: { min: 3, max: 15, type: \"alphanumeric\"}\n\t }, {\n\t ids: [\"391\", \"393\"],\n\t type: { min: 3, max: 18, type: \"alphanumeric\"}\n\t },{\n\t ids: [\"7003\", \"8101\"],\n\t type: {length: 10}\n\t }]\n\t },\n\t START: 102\n\t });\n\n\t var code128Base = Encoding.extend({\n\t init: function (options) {\n\t Encoding.fn.init.call(this, options);\n\t this._initStates();\n\t },\n\t _initStates: function(){\n\t var that = this;\n\t for(var i = 0; i < that.states.length; i++){\n\t that[that.states[i]] = new states128[that.states[i]](that, that.states);\n\t }\n\t },\n\t initValue: function (value, width, height) {\n\t var that = this;\n\t that.pattern = [];\n\t that.value = value;\n\t that.width = width;\n\t that.height = height;\n\t that.checkSum = 0;\n\t that.totalUnits = 0;\n\t that.index = 0;\n\t that.position = 1;\n\t },\n\t addData: function(){\n\t var that = this,\n\t encodingState = {\n\t value: that.value,\n\t index: 0,\n\t state: \"\"\n\t };\n\t if(that.value.length === 0){\n\t return;\n\t }\n\n\t encodingState.state =\n\t encodingState.previousState = that.getNextState(encodingState, that.states);\n\n\t that.addStart(encodingState);\n\n\t that.pushData(encodingState, that.states);\n\n\t that.addCheckSum();\n\t that.addStop();\n\t that.setBaseUnit();\n\t },\n\t pushData: function(encodingState, states){\n\t var that = this;\n\t while(true){\n\t that[encodingState.state].pushState(encodingState);\n\t if(encodingState.index >= encodingState.value.length){\n\t break;\n\t }\n\n\t if(!encodingState.shifted){\n\t encodingState.previousState = encodingState.state;\n\t encodingState.state = that.getNextState(encodingState, states);\n\t that[encodingState.state].move(encodingState);\n\t }\n\t else{\n\t var temp = encodingState.state;\n\t encodingState.state = encodingState.previousState;\n\t encodingState.previousState = temp;\n\t encodingState.shifted = false;\n\t }\n\t }\n\t },\n\t addStart: function(encodingState){\n\t this[encodingState.state].addStart(encodingState);\n\t this.position = 1;\n\t },\n\t addCheckSum: function(){\n\t var that = this;\n\n\t that.checksum = that.checkSum % 103;\n\t that.addPattern(that.checksum);\n\t },\n\t addStop: function(){\n\t this.addPattern(this.STOP);\n\t },\n\t setBaseUnit: function(){\n\t var that = this;\n\t that.baseUnit = that.width / (that.totalUnits + that.quietZoneLength);\n\t },\n\t addPattern: function(code){\n\t var that = this,\n\t pattern = that.characterMap[code].toString(),\n\t value;\n\n\t for(var i = 0; i < pattern.length; i++){\n\t value = parseInt(pattern.charAt(i),10);\n\t that.pattern.push(value);\n\t that.totalUnits += value;\n\t }\n\t that.checkSum += code * that.position++;\n\t },\n\t getNextState: function(encodingState, states){\n\t for(var i = 0; i < states.length; i++){\n\t if(this[states[i]].is(encodingState.value, encodingState.index)){\n\t return states[i];\n\t }\n\t }\n\t this.invalidCharacterError(encodingState.value.charAt(encodingState.index));\n\t },\n\t characterMap: [\n\t 212222,222122,222221,121223,121322,131222,122213,122312,132212,221213,\n\t 221312,231212,112232,122132,122231,113222,123122,123221,223211,221132,\n\t 221231,213212,223112,312131,311222,321122,321221,312212,322112,322211,\n\t 212123,212321,232121,111323,131123,131321,112313,132113,132311,211313,\n\t 231113,231311,112133,112331,132131,113123,113321,133121,313121,211331,\n\t 231131,213113,213311,213131,311123,311321,331121,312113,312311,332111,\n\t 314111,221411,431111,111224,111422,121124,121421,141122,141221,112214,\n\t 112412,122114,122411,142112,142211,241211,221114,413111,241112,134111,\n\t 111242,121142,121241,114212,124112,124211,411212,421112,421211,212141,\n\t 214121,412121,111143,111341,131141,114113,114311,411113,411311,113141,\n\t 114131,311141,411131,211412,211214,211232,2331112\n\t ],\n\t STOP: 106\n\t });\n\n\t encodings.code128a = code128Base.extend({\n\t name: \"Code 128 A\",\n\t states: [\"A\"]\n\t });\n\n\n\t encodings.code128b = code128Base.extend({\n\t name: \"Code 128 B\",\n\t states: [\"B\"]\n\t });\n\n\t encodings.code128c = code128Base.extend({\n\t name: \"Code 128 C\",\n\t states: [\"C\"]\n\t });\n\n\t encodings.code128 = code128Base.extend({\n\t name: \"Code 128\",\n\t states: [\"C\", \"B\", \"A\", \"FNC4\"]\n\t });\n\n\t encodings[\"gs1-128\"] = code128Base.extend({\n\t name: \"Code GS1-128\",\n\t states: [\"FNC1\", \"C\", \"B\"]\n\t });\n\n\t var msiBase = Encoding.extend({\n\t initValue: function(value, width){\n\t var that = this;\n\t that.pattern = [];\n\t that.value = value;\n\t that.checkSumLength = 0;\n\t that.width = width;\n\t },\n\t setBaseUnit: function(){\n\t var that = this,\n\t startStopLength = 7;\n\n\t that.baseUnit = that.width /\n\t ( 12 * (that.value.length + that.checkSumLength) + that.quietZoneLength + startStopLength);\n\t },\n\t addData: function(){\n\t var that = this,\n\t value = that.value;\n\t that.addPattern(that.START);\n\n\t for(var i = 0; i < value.length; i++){\n\t that.addCharacter(value.charAt(i));\n\t }\n\n\t if(that.options.addCheckSum){\n\t that.addCheckSum();\n\t }\n\n\t that.addPattern(that.STOP);\n\t that.setBaseUnit();\n\t },\n\t addCharacter: function(character){\n\t var that = this,\n\t pattern = that.characterMap[character];\n\t if(!pattern){\n\t that.invalidCharacterError(character);\n\t }\n\t that.addPattern(pattern);\n\t },\n\t addPattern: function(pattern){\n\t for(var i = 0; i < pattern.length; i++){\n\t this.pattern.push(parseInt(pattern.charAt(i),10));\n\t }\n\t },\n\t addCheckSum: function(){\n\t var that = this,\n\t checkSumFunction = that.checkSums[that.checkSumType],\n\t checkValues;\n\n\t checkValues = checkSumFunction.call(that.checkSums, that.value);\n\n\t that.checksum = checkValues.join(\"\");\n\t for(var i = 0; i < checkValues.length; i++){\n\t that.checkSumLength++;\n\t that.addPattern(that.characterMap[checkValues[i]]);\n\t }\n\t },\n\t checkSums: {\n\t Modulo10: function(value){\n\t var checkValues = [0, \"\"],\n\t odd = value.length % 2,\n\t idx,\n\t evenSum,\n\t oddSum;\n\n\t for(idx = 0; idx < value.length; idx++){\n\t checkValues[(idx + odd) % 2] += parseInt(value.charAt(idx),10);\n\t }\n\n\t oddSum = checkValues[0];\n\t evenSum = (checkValues[1] * 2).toString();\n\n\t for(idx = 0; idx < evenSum.length; idx++){\n\t oddSum += parseInt(evenSum.charAt(idx),10);\n\t }\n\n\t return [(10 - (oddSum % 10)) % 10];\n\t },\n\t Modulo11: function(value){\n\t var weightedSum = 0,\n\t mod = 11,\n\t length = value.length,\n\t weight,\n\t checkValue;\n\n\t for(var i = 0; i < length; i++){\n\t weight = ((length - i) % 6 || 6) + 1;\n\t weightedSum += weight * value.charAt(i);\n\t }\n\t checkValue = (mod - weightedSum % mod) % mod;\n\t if(checkValue != 10){\n\t return [checkValue];\n\t }\n\t return [1, 0];\n\t },\n\t Modulo11Modulo10: function(value){\n\t var checkValues = this.Modulo11(value),\n\t mod11Value;\n\t mod11Value = value + checkValues[0];\n\n\t return checkValues.concat(this.Modulo10(mod11Value));\n\t },\n\t Modulo10Modulo10: function(value){\n\t var checkValues = this.Modulo10(value),\n\t mod10Value;\n\t mod10Value = value + checkValues[0];\n\n\t return checkValues.concat(this.Modulo10(mod10Value));\n\t }\n\t },\n\t characterMap: [\"12121212\", \"12121221\",\"12122112\", \"12122121\", \"12211212\", \"12211221\", \"12212112\", \"12212121\", \"21121212\", \"21121221\"],\n\t START: \"21\",\n\t STOP: \"121\",\n\t checkSumType: \"\"\n\t });\n\n\t encodings.msimod10 = msiBase.extend({\n\t name: \"MSI Modulo10\",\n\t checkSumType: \"Modulo10\"\n\t });\n\n\t encodings.msimod11 = msiBase.extend({\n\t name: \"MSI Modulo11\",\n\t checkSumType: \"Modulo11\"\n\t });\n\n\t encodings.msimod1110 = msiBase.extend({\n\t name: \"MSI Modulo11 Modulo10\",\n\t checkSumType: \"Modulo11Modulo10\"\n\t });\n\n\t encodings.msimod1010 = msiBase.extend({\n\t name: \"MSI Modulo10 Modulo10\",\n\t checkSumType: \"Modulo10Modulo10\"\n\t });\n\n\t encodings.code11 = Encoding.extend({\n\t name: \"Code 11\",\n\t cCheckSumTotal: 10,\n\t kCheckSumTotal: 9,\n\t kCheckSumMinLength: 10,\n\t checkSumMod: 11,\n\t DASH_VALUE: 10,\n\t DASH: \"-\",\n\t START: \"112211\",\n\t STOP: \"11221\",\n\t initValue: function(value, width){\n\t var that = this;\n\t that.pattern = [];\n\t that.value = value;\n\t that.width = width;\n\t that.totalUnits = 0;\n\t },\n\t addData: function(){\n\t var that = this;\n\t var value = that.value;\n\t that.addPattern(that.START);\n\n\t for(var i = 0; i < value.length; i++){\n\t that.addCharacter(value.charAt(i));\n\t }\n\n\t if(that.options.addCheckSum){\n\t that.addCheckSum();\n\t }\n\n\t that.addPattern(that.STOP);\n\t that.setBaseUnit();\n\t },\n\t setBaseUnit: function(){\n\t var that = this;\n\t that.baseUnit = that.width / (that.totalUnits + that.quietZoneLength);\n\t },\n\t addCheckSum: function(){\n\t var that = this,\n\t value = that.value,\n\t length = value.length,\n\t cValue;\n\n\t cValue = that.getWeightedSum(value, length, that.cCheckSumTotal) % that.checkSumMod;\n\t that.checksum = cValue + \"\";\n\t that.addPattern(that.characterMap[cValue]);\n\n\t length++;\n\t if(length >= that.kCheckSumMinLength){\n\t var kValue = (cValue + that.getWeightedSum(value, length, that.kCheckSumTotal)) % that.checkSumMod;\n\t that.checksum += kValue;\n\t that.addPattern(that.characterMap[kValue]);\n\t }\n\t },\n\t getWeightedSum: function(value, length, total){\n\t var weightedSum = 0;\n\t for(var i = 0; i < value.length; i++){\n\t weightedSum+= this.weightedValue(this.getValue(value.charAt(i)), length, i, total);\n\t }\n\n\t return weightedSum;\n\t },\n\t weightedValue: function(value, length, index, total){\n\t var weight = (length - index) % total || total;\n\t return weight * value;\n\t },\n\t getValue: function(character){\n\t var that = this;\n\t if(!isNaN(character)){\n\t return parseInt(character,10);\n\t }\n\t else if(character !== that.DASH){\n\t that.invalidCharacterError(character);\n\t }\n\t return that.DASH_VALUE;\n\t },\n\t addCharacter: function(character){\n\t var that = this,\n\t value = that.getValue(character),\n\t pattern = that.characterMap[value];\n\t that.addPattern(pattern);\n\t },\n\t addPattern: function(pattern){\n\t var value;\n\t for(var i = 0; i < pattern.length; i++){\n\t value = parseInt(pattern.charAt(i),10);\n\t this.pattern.push(value);\n\t this.totalUnits+=value;\n\t }\n\t },\n\t characterMap: [\"111121\", \"211121\", \"121121\", \"221111\", \"112121\", \"212111\", \"122111\", \"111221\", \"211211\", \"211111\", \"112111\"],\n\t options: {\n\t addCheckSum: true\n\t }\n\t });\n\n\t encodings.postnet = Encoding.extend({\n\t name: \"Postnet\",\n\t START: \"2\",\n\t VALID_CODE_LENGTHS: [5,9, 11],\n\t DIGIT_SEPARATOR: \"-\",\n\t initValue: function(value, width, height){\n\t var that = this;\n\t that.height = height;\n\t that.width = width;\n\t that.baseHeight = height /2;\n\t that.value = value.replace(new RegExp(that.DIGIT_SEPARATOR,\"g\"), \"\");\n\t that.pattern = [];\n\t that.validate(that.value);\n\t that.checkSum = 0;\n\t that.setBaseUnit();\n\t },\n\t addData: function(){\n\t var that = this,\n\t value = that.value;\n\t that.addPattern(that.START);\n\n\t for(var i = 0; i < value.length; i++){\n\t that.addCharacter(value.charAt(i));\n\t }\n\n\t if(that.options.addCheckSum){\n\t that.addCheckSum();\n\t }\n\n\t that.addPattern(that.START);\n\t that.pattern.pop();\n\t },\n\t addCharacter: function(character){\n\t var that = this,\n\t pattern = that.characterMap[character];\n\t that.checkSum+= parseInt(character,10);\n\t that.addPattern(pattern);\n\t },\n\t addCheckSum: function(){\n\t var that = this;\n\t that.checksum = (10 - (that.checkSum % 10)) % 10;\n\t that.addCharacter(that.checksum);\n\t },\n\t setBaseUnit: function(){\n\t var that=this,\n\t startStopLength = 3;\n\t that.baseUnit = that.width / ((that.value.length + 1) * 10 + startStopLength + that.quietZoneLength);\n\t },\n\t validate: function(value){\n\t var that = this;\n\n\t if(!numberRegex.test(value)){\n\t that.invalidCharacterError(value.match(/[^0-9]/)[0]);\n\t }\n\t if(inArray(value.length, that.VALID_CODE_LENGTHS) < 0){\n\t throw new Error(\"Invalid value length. Valid lengths for the Postnet symbology are \" + that.VALID_CODE_LENGTHS.join(\",\"));\n\t }\n\t },\n\t addPattern: function(pattern){\n\t var that = this,\n\t y1;\n\t for(var i = 0; i < pattern.length; i++){\n\t y1 = that.height - that.baseHeight * pattern.charAt(i);\n\t that.pattern.push({width: 1, y1: y1, y2: that.height});\n\t that.pattern.push(1);\n\t }\n\t },\n\t characterMap: [\"22111\", \"11122\", \"11212\", \"11221\", \"12112\", \"12121\", \"12211\", \"21112\", \"21121\", \"21211\"]\n\t });\n\n\t encodings.ean13 = Encoding.extend({\n\t initValue: function(value, width, height){\n\t value+=\"\";\n\n\t if(value.length!=12 || /\\D/.test(value)){\n\t throw new Error('The value of the \"EAN13\" encoding should be 12 symbols');\n\t }\n\n\t var that = this;\n\t that.pattern = [];\n\t that.options.height = height;\n\t that.baseUnit = width /(95 + that.quietZoneLength);\n\t that.value = value;\n\t that.checksum = that.calculateChecksum();\n\t that.leftKey = value[0];\n\t that.leftPart = value.substr(1,6);\n\t that.rightPart = value.substr(7)+that.checksum;\n\t },\n\t addData: function(){\n\t var that = this;\n\t that.addPieces(that.characterMap.start);\n\t that.addSide(that.leftPart,that.leftKey);\n\t that.addPieces(that.characterMap.middle);\n\t that.addSide(that.rightPart);\n\t that.addPieces(that.characterMap.start);\n\t },\n\t addSide:function(leftPart,key){\n\t var that = this;\n\t for(var i = 0; i < leftPart.length; i++){\n\t if(key && parseInt(that.keyTable[key].charAt(i),10)){\n\t that.addPieces(Array.prototype.slice.call(that.characterMap.digits[leftPart.charAt(i)]).reverse(),true);\n\t }else{\n\t that.addPieces(that.characterMap.digits[leftPart.charAt(i)],true);\n\t }\n\t }\n\t },\n\t addPieces:function(arrToAdd,limitedHeight){\n\t var that = this;\n\t for(var i=0;i