1ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved. 2ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 3ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// found in the LICENSE file. 4ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 5ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// Original code is licensed as follows: 7ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann/* 8ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * Copyright 2007 ZXing authors 9ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * 10ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * Licensed under the Apache License, Version 2.0 (the "License"); 11ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * you may not use this file except in compliance with the License. 12ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * You may obtain a copy of the License at 13ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * 14ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * http://www.apache.org/licenses/LICENSE-2.0 15ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * 16ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * Unless required by applicable law or agreed to in writing, software 17ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * distributed under the License is distributed on an "AS IS" BASIS, 18ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 19ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * See the License for the specific language governing permissions and 20ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann * limitations under the License. 21ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann */ 22ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 23ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "xfa/src/fxbarcode/barcode.h" 24ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "xfa/src/fxbarcode/utils.h" 25ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "xfa/src/fxbarcode/common/BC_CommonBitMatrix.h" 26ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "BC_QRCoderECB.h" 27ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "BC_QRCoderFormatInformation.h" 28ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "BC_QRCoderErrorCorrectionLevel.h" 29ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "BC_QRCoderBitVector.h" 30ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "BC_QRCoderECBlocks.h" 31ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "BC_QRCoderVersion.h" 32ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannconst int32_t CBC_QRCoderVersion::VERSION_DECODE_INFO[] = { 33ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 0x07C94, 0x085BC, 0x09A99, 0x0A4D3, 0x0BBF6, 0x0C762, 0x0D847, 34ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 0x0E60D, 0x0F928, 0x10B78, 0x1145D, 0x12A17, 0x13532, 0x149A6, 35ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 0x15683, 0x168C9, 0x177EC, 0x18EC4, 0x191E1, 0x1AFAB, 0x1B08E, 36ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 0x1CC1A, 0x1D33F, 0x1ED75, 0x1F250, 0x209D5, 0x216F0, 0x228BA, 37ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 0x2379F, 0x24B0B, 0x2542E, 0x26A64, 0x27541, 0x28C69}; 38ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCFX_PtrArray* CBC_QRCoderVersion::VERSION = NULL; 39ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CBC_QRCoderVersion::Initialize() { 40ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION = new CFX_PtrArray(); 41ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 42ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CBC_QRCoderVersion::Finalize() { 43ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann for (int32_t i = 0; i < VERSION->GetSize(); i++) { 44ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_QRCoderVersion* v = (CBC_QRCoderVersion*)(VERSION->GetAt(i)); 45ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann delete v; 46ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 47ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann delete VERSION; 48ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 49ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCBC_QRCoderVersion::CBC_QRCoderVersion(int32_t versionNumber, 50ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_QRCoderECBlocks* ecBlocks1, 51ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_QRCoderECBlocks* ecBlocks2, 52ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_QRCoderECBlocks* ecBlocks3, 53ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_QRCoderECBlocks* ecBlocks4) { 54ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_versionNumber = versionNumber; 55ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_ecBlocks.Add(ecBlocks1); 56ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_ecBlocks.Add(ecBlocks2); 57ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_ecBlocks.Add(ecBlocks3); 58ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_ecBlocks.Add(ecBlocks4); 59ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t total = 0; 60ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t ecCodeWords = ecBlocks1->GetECCodeWordsPerBlock(); 61ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_PtrArray* ecbArray = ecBlocks1->GetECBlocks(); 62ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann for (int32_t i = 0; i < ecbArray->GetSize(); i++) { 63ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_QRCoderECB* ecBlock = (CBC_QRCoderECB*)((*ecbArray)[i]); 64ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann total += ecBlock->GetCount() * (ecBlock->GetDataCodeWords() + ecCodeWords); 65ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 66ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_totalCodeWords = total; 67ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann switch (versionNumber) { 68ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 1: 69ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 70ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 2: 71ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 72ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(18); 73ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 74ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 3: 75ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 76ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(22); 77ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 78ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 4: 79ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 80ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(26); 81ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 82ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 5: 83ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 84ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(30); 85ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 86ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 6: 87ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 88ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(34); 89ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 90ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 7: 91ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 92ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(22); 93ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(38); 94ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 95ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 8: 96ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 97ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(24); 98ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(42); 99ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 100ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 9: 101ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 102ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(26); 103ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(46); 104ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 105ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 10: 106ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 107ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(28); 108ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(50); 109ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 110ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 11: 111ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 112ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(30); 113ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(54); 114ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 115ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 12: 116ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 117ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(32); 118ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(58); 119ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 120ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 13: 121ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 122ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(34); 123ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(62); 124ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 125ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 14: 126ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 127ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(26); 128ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(46); 129ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(66); 130ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 131ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 15: 132ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 133ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(26); 134ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(48); 135ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(70); 136ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 137ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 16: 138ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 139ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(26); 140ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(50); 141ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(74); 142ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 143ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 17: 144ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 145ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(30); 146ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(54); 147ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(78); 148ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 149ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 18: 150ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 151ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(30); 152ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(56); 153ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(82); 154ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 155ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 19: 156ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 157ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(30); 158ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(58); 159ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(86); 160ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 161ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 20: 162ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 163ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(34); 164ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(62); 165ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(90); 166ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 167ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 21: 168ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 169ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(28); 170ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(50); 171ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(72); 172ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(94); 173ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 174ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 22: 175ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 176ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(26); 177ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(50); 178ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(74); 179ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(98); 180ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 181ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 23: 182ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 183ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(30); 184ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(54); 185ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(74); 186ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(102); 187ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 188ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 24: 189ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 190ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(28); 191ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(54); 192ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(80); 193ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(106); 194ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 195ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 25: 196ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 197ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(32); 198ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(58); 199ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(84); 200ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(110); 201ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 202ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 26: 203ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 204ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(30); 205ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(58); 206ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(86); 207ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(114); 208ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 209ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 27: 210ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 211ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(34); 212ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(62); 213ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(90); 214ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(118); 215ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 216ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 28: 217ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 218ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(26); 219ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(50); 220ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(74); 221ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(98); 222ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(122); 223ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 224ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 29: 225ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 226ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(30); 227ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(54); 228ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(78); 229ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(102); 230ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(126); 231ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 232ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 30: 233ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 234ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(26); 235ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(52); 236ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(78); 237ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(104); 238ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(130); 239ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 240ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 31: 241ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 242ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(30); 243ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(56); 244ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(82); 245ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(108); 246ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(134); 247ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 248ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 32: 249ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 250ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(34); 251ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(60); 252ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(86); 253ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(112); 254ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(138); 255ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 256ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 33: 257ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 258ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(30); 259ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(58); 260ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(86); 261ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(114); 262ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(142); 263ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 264ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 34: 265ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 266ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(34); 267ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(62); 268ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(90); 269ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(118); 270ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(146); 271ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 272ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 35: 273ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 274ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(30); 275ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(54); 276ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(78); 277ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(102); 278ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(126); 279ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(150); 280ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 281ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 36: 282ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 283ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(24); 284ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(50); 285ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(76); 286ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(102); 287ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(128); 288ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(154); 289ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 290ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 37: 291ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 292ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(28); 293ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(54); 294ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(80); 295ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(106); 296ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(132); 297ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(158); 298ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 299ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 38: 300ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 301ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(32); 302ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(58); 303ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(84); 304ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(110); 305ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(136); 306ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(162); 307ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 308ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 39: 309ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 310ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(26); 311ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(54); 312ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(82); 313ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(110); 314ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(138); 315ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(166); 316ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 317ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann case 40: 318ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(6); 319ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(30); 320ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(58); 321ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(86); 322ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(114); 323ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(142); 324ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_alignmentPatternCenters.Add(170); 325ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann break; 326ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 327ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 328ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCBC_QRCoderVersion::~CBC_QRCoderVersion() { 329ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_ecBlocks.GetSize() != 0) { 330ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t itBeg = 0; 331ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t itEnd = m_ecBlocks.GetSize(); 332ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann while (itBeg != itEnd) { 333ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann delete ((CBC_QRCoderECBlocks*)(m_ecBlocks[itBeg])); 334ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann itBeg++; 335ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 336ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 337ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 338ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannint32_t CBC_QRCoderVersion::GetVersionNumber() { 339ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_versionNumber; 340ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 341ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCFX_Int32Array* CBC_QRCoderVersion::GetAlignmentPatternCenters() { 342ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return &m_alignmentPatternCenters; 343ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 344ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannint32_t CBC_QRCoderVersion::GetTotalCodeWords() { 345ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_totalCodeWords; 346ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 347ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannint32_t CBC_QRCoderVersion::GetDimensionForVersion() { 348ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return 17 + 4 * m_versionNumber; 349ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 350ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCBC_QRCoderECBlocks* CBC_QRCoderVersion::GetECBlocksForLevel( 351ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_QRCoderErrorCorrectionLevel* ecLevel) { 352ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return (CBC_QRCoderECBlocks*)m_ecBlocks[ecLevel->Ordinal()]; 353ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 354ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCBC_QRCoderVersion* CBC_QRCoderVersion::GetProvisionalVersionForDimension( 355ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t dimension, 356ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t& e) { 357ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if ((dimension % 4) != 1) { 358ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann e = BCExceptionRead; 359ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 360ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 361ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_QRCoderVersion* qcv = GetVersionForNumber((dimension - 17) >> 2, e); 362ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 363ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return qcv; 364ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 365ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCBC_QRCoderVersion* CBC_QRCoderVersion::DecodeVersionInformation( 366ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t versionBits, 367ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t& e) { 368ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t bestDifference = FXSYS_IntMax; 369ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t bestVersion = 0; 370ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann for (int32_t i = 0; i < 34; i++) { 371ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t targetVersion = VERSION_DECODE_INFO[i]; 372ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (targetVersion == versionBits) { 373ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_QRCoderVersion* qcv = GetVersionForNumber(i + 7, e); 374ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 375ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return qcv; 376ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 377ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t bitsDifference = CBC_QRCoderFormatInformation::NumBitsDiffering( 378ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann versionBits, targetVersion); 379ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (bitsDifference < bestDifference) { 380ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bestVersion = i + 7; 381ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bestDifference = bitsDifference; 382ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 383ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 384ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (bestDifference <= 3) { 385ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_QRCoderVersion* qcv = GetVersionForNumber(bestVersion, e); 386ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 387ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return qcv; 388ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 389ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return NULL; 390ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 391ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCBC_CommonBitMatrix* CBC_QRCoderVersion::BuildFunctionPattern(int32_t& e) { 392ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t dimension = GetDimensionForVersion(); 393ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CBC_CommonBitMatrix* bitMatrix = new CBC_CommonBitMatrix(); 394ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bitMatrix->Init(dimension); 395ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bitMatrix->SetRegion(0, 0, 9, 9, e); 396ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 397ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bitMatrix->SetRegion(dimension - 8, 0, 8, 9, e); 398ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 399ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bitMatrix->SetRegion(0, dimension - 8, 9, 8, e); 400ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 401ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t max = m_alignmentPatternCenters.GetSize(); 402ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann for (int32_t x = 0; x < max; x++) { 403ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t i = m_alignmentPatternCenters[x] - 2; 404ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann for (int32_t y = 0; y < max; y++) { 405ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if ((x == 0 && (y == 0 || y == max - 1)) || (x == max - 1 && y == 0)) { 406ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann continue; 407ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 408ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bitMatrix->SetRegion(m_alignmentPatternCenters[y] - 2, i, 5, 5, e); 409ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 410ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 411ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 412ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bitMatrix->SetRegion(6, 9, 1, dimension - 17, e); 413ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 414ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bitMatrix->SetRegion(9, 6, dimension - 17, 1, e); 415ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 416ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (m_versionNumber > 6) { 417ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bitMatrix->SetRegion(dimension - 11, 0, 3, 6, e); 418ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 419ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bitMatrix->SetRegion(0, dimension - 11, 6, 3, e); 420ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 421ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 422ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return bitMatrix; 423ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 424ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber( 425ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t versionNumber, 426ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t& e) { 427ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (VERSION->GetSize() == 0) { 428ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 429ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1, new CBC_QRCoderECBlocks(7, new CBC_QRCoderECB(1, 19)), 430ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(10, new CBC_QRCoderECB(1, 16)), 431ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(13, new CBC_QRCoderECB(1, 13)), 432ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(17, new CBC_QRCoderECB(1, 9)))); 433ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 434ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 2, new CBC_QRCoderECBlocks(10, new CBC_QRCoderECB(1, 34)), 435ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(16, new CBC_QRCoderECB(1, 28)), 436ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(1, 22)), 437ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(1, 16)))); 438ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 439ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 3, new CBC_QRCoderECBlocks(15, new CBC_QRCoderECB(1, 55)), 440ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(1, 44)), 441ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(18, new CBC_QRCoderECB(2, 17)), 442ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(2, 13)))); 443ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 444ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 4, new CBC_QRCoderECBlocks(20, new CBC_QRCoderECB(1, 80)), 445ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(18, new CBC_QRCoderECB(2, 32)), 446ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(2, 24)), 447ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(16, new CBC_QRCoderECB(4, 9)))); 448ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 449ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 5, new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(1, 108)), 450ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(2, 43)), 451ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(18, new CBC_QRCoderECB(2, 15), 452ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(2, 16)), 453ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(2, 11), 454ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(2, 12)))); 455ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 456ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 6, new CBC_QRCoderECBlocks(18, new CBC_QRCoderECB(2, 68)), 457ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(16, new CBC_QRCoderECB(4, 27)), 458ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(4, 19)), 459ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(4, 15)))); 460ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 461ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 7, new CBC_QRCoderECBlocks(20, new CBC_QRCoderECB(2, 78)), 462ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(18, new CBC_QRCoderECB(4, 31)), 463ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(18, new CBC_QRCoderECB(2, 14), 464ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 15)), 465ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(4, 13), 466ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(1, 14)))); 467ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 468ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 8, new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(2, 97)), 469ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(2, 38), 470ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(2, 39)), 471ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(4, 18), 472ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(2, 19)), 473ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(4, 14), 474ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(2, 15)))); 475ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 476ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 9, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(2, 116)), 477ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(3, 36), 478ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(2, 37)), 479ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(20, new CBC_QRCoderECB(4, 16), 480ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 17)), 481ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(4, 12), 482ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 13)))); 483ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 484ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 10, new CBC_QRCoderECBlocks(18, new CBC_QRCoderECB(2, 68), 485ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(2, 69)), 486ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(4, 43), 487ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(1, 44)), 488ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(6, 19), 489ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(2, 20)), 490ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(6, 15), 491ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(2, 16)))); 492ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 493ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 11, new CBC_QRCoderECBlocks(20, new CBC_QRCoderECB(4, 81)), 494ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(1, 50), 495ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 51)), 496ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(4, 22), 497ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 23)), 498ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(3, 12), 499ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(8, 13)))); 500ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 501ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 12, new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(2, 92), 502ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(2, 93)), 503ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(6, 36), 504ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(2, 37)), 505ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(4, 20), 506ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(6, 21)), 507ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(7, 14), 508ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 15)))); 509ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 510ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 13, new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(4, 107)), 511ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(8, 37), 512ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(1, 38)), 513ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(8, 20), 514ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 21)), 515ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(12, 11), 516ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 12)))); 517ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 518ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 14, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(3, 115), 519ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(1, 116)), 520ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(4, 40), 521ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(5, 41)), 522ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(20, new CBC_QRCoderECB(11, 16), 523ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(5, 17)), 524ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(11, 12), 525ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(5, 13)))); 526ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 527ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 15, new CBC_QRCoderECBlocks(22, new CBC_QRCoderECB(5, 87), 528ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(1, 88)), 529ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(5, 41), 530ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(5, 42)), 531ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(5, 24), 532ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(7, 25)), 533ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(11, 12), 534ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(7, 13)))); 535ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 536ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 16, new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(5, 98), 537ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(1, 99)), 538ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(7, 45), 539ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(3, 46)), 540ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(15, 19), 541ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(2, 20)), 542ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(3, 15), 543ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(13, 16)))); 544ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 545ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 17, new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(1, 107), 546ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(5, 108)), 547ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(10, 46), 548ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(1, 47)), 549ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(1, 22), 550ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(15, 23)), 551ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(2, 14), 552ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(17, 15)))); 553ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 554ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 18, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(5, 120), 555ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(1, 121)), 556ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(9, 43), 557ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 44)), 558ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(17, 22), 559ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(1, 23)), 560ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(2, 14), 561ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(19, 15)))); 562ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 563ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 19, new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(3, 113), 564ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 114)), 565ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(3, 44), 566ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(11, 45)), 567ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(17, 21), 568ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 22)), 569ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(9, 13), 570ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(16, 14)))); 571ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 572ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 20, new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(3, 107), 573ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(5, 108)), 574ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(3, 41), 575ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(13, 42)), 576ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(15, 24), 577ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(5, 25)), 578ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(15, 15), 579ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(10, 16)))); 580ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 581ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 21, new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(4, 116), 582ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 117)), 583ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(17, 42)), 584ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(17, 22), 585ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(6, 23)), 586ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(19, 16), 587ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(6, 17)))); 588ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 589ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 22, new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(2, 111), 590ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(7, 112)), 591ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(17, 46)), 592ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(7, 24), 593ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(16, 25)), 594ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(24, new CBC_QRCoderECB(34, 13)))); 595ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 596ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 23, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(4, 121), 597ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(5, 122)), 598ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(4, 47), 599ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(14, 48)), 600ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(11, 24), 601ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(14, 25)), 602ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(16, 15), 603ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(14, 16)))); 604ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 605ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 24, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(6, 117), 606ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 118)), 607ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(6, 45), 608ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(14, 46)), 609ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(11, 24), 610ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(16, 25)), 611ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(30, 16), 612ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(2, 17)))); 613ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 614ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 25, new CBC_QRCoderECBlocks(26, new CBC_QRCoderECB(8, 106), 615ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 107)), 616ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(8, 47), 617ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(13, 48)), 618ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(7, 24), 619ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(22, 25)), 620ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(22, 15), 621ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(13, 16)))); 622ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 623ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 26, new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(10, 114), 624ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(2, 115)), 625ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(19, 46), 626ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 47)), 627ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(28, 22), 628ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(6, 23)), 629ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(33, 16), 630ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 17)))); 631ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 632ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 27, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(8, 122), 633ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 123)), 634ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(22, 45), 635ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(3, 46)), 636ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(8, 23), 637ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(26, 24)), 638ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(12, 15), 639ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(28, 16)))); 640ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 641ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 28, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(3, 117), 642ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(10, 118)), 643ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(3, 45), 644ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(23, 46)), 645ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(4, 24), 646ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(31, 25)), 647ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(11, 15), 648ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(31, 16)))); 649ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 650ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 29, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(7, 116), 651ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(7, 117)), 652ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(21, 45), 653ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(7, 46)), 654ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(1, 23), 655ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(37, 24)), 656ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(19, 15), 657ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(26, 16)))); 658ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 659ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 30, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(5, 115), 660ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(10, 116)), 661ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(19, 47), 662ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(10, 48)), 663ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(15, 24), 664ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(25, 25)), 665ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(23, 15), 666ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(25, 16)))); 667ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 668ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 31, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(13, 115), 669ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(3, 116)), 670ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(2, 46), 671ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(29, 47)), 672ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(42, 24), 673ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(1, 25)), 674ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(23, 15), 675ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(28, 16)))); 676ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 677ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 32, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(17, 115)), 678ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(10, 46), 679ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(23, 47)), 680ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(10, 24), 681ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(35, 25)), 682ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(19, 15), 683ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(35, 16)))); 684ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 685ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 33, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(17, 115), 686ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(1, 116)), 687ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(14, 46), 688ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(21, 47)), 689ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(29, 24), 690ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(19, 25)), 691ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(11, 15), 692ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(46, 16)))); 693ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 694ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 34, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(13, 115), 695ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(6, 116)), 696ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(14, 46), 697ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(23, 47)), 698ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(44, 24), 699ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(7, 25)), 700ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(59, 16), 701ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(1, 17)))); 702ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 703ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 35, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(12, 121), 704ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(7, 122)), 705ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(12, 47), 706ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(26, 48)), 707ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(39, 24), 708ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(14, 25)), 709ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(22, 15), 710ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(41, 16)))); 711ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 712ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 36, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(6, 121), 713ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(14, 122)), 714ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(6, 47), 715ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(34, 48)), 716ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(46, 24), 717ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(10, 25)), 718ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(2, 15), 719ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(64, 16)))); 720ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 721ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 37, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(17, 122), 722ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 123)), 723ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(29, 46), 724ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(14, 47)), 725ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(49, 24), 726ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(10, 25)), 727ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(24, 15), 728ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(46, 16)))); 729ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 730ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 38, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(4, 122), 731ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(18, 123)), 732ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(13, 46), 733ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(32, 47)), 734ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(48, 24), 735ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(14, 25)), 736ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(42, 15), 737ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(32, 16)))); 738ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 739ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 39, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(20, 117), 740ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(4, 118)), 741ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(40, 47), 742ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(7, 48)), 743ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(43, 24), 744ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(22, 25)), 745ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(10, 15), 746ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(67, 16)))); 747ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann VERSION->Add(new CBC_QRCoderVersion( 748ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 40, new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(19, 118), 749ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(6, 119)), 750ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(28, new CBC_QRCoderECB(18, 47), 751ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(31, 48)), 752ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(34, 24), 753ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(34, 25)), 754ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECBlocks(30, new CBC_QRCoderECB(20, 15), 755ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann new CBC_QRCoderECB(61, 16)))); 756ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 757ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (versionNumber < 1 || versionNumber > 40) { 758ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann e = BCExceptionIllegalArgument; 759ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann BC_EXCEPTION_CHECK_ReturnValue(e, NULL); 760ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 761ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return (CBC_QRCoderVersion*)(*VERSION)[versionNumber - 1]; 762ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 763ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid CBC_QRCoderVersion::Destroy() { 764ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t i; 765ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann for (i = 0; i < VERSION->GetSize(); i++) { 766ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann delete ((CBC_QRCoderVersion*)(*VERSION)[i]); 767ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 768ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann} 769