id-scanner-lib 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-scanner.js","sources":["../node_modules/jsqr/dist/jsQR.js","../src/utils/camera.ts","../src/scanner/qr-scanner.ts","../src/utils/image-processing.ts","../src/scanner/barcode-scanner.ts","../src/id-recognition/id-detector.ts","../node_modules/regenerator-runtime/runtime.js","../node_modules/tesseract.js/src/utils/getId.js","../node_modules/tesseract.js/src/createJob.js","../node_modules/tesseract.js/src/utils/log.js","../node_modules/tesseract.js/src/createScheduler.js","../node_modules/tesseract.js/src/utils/getEnvironment.js","../node_modules/tesseract.js/src/utils/resolvePaths.js","../node_modules/tesseract.js/src/constants/OEM.js","../node_modules/tesseract.js/src/constants/defaultOptions.js","../node_modules/tesseract.js/src/worker/node/defaultOptions.js","../node_modules/tesseract.js/src/worker/node/spawnWorker.js","../node_modules/tesseract.js/src/worker/node/terminateWorker.js","../node_modules/tesseract.js/src/worker/node/onMessage.js","../node_modules/tesseract.js/src/worker/node/send.js","../node_modules/webidl-conversions/lib/index.js","../node_modules/whatwg-url/lib/utils.js","../node_modules/tr46/index.js","../node_modules/whatwg-url/lib/url-state-machine.js","../node_modules/whatwg-url/lib/URL-impl.js","../node_modules/whatwg-url/lib/URL.js","../node_modules/whatwg-url/lib/public-api.js","../node_modules/node-fetch/lib/index.mjs","../node_modules/is-url/index.js","../node_modules/tesseract.js/src/worker/node/loadImage.js","../node_modules/tesseract.js/src/worker/node/index.js","../node_modules/tesseract.js/src/createWorker.js","../node_modules/tesseract.js/src/Tesseract.js","../node_modules/tesseract.js/src/constants/languages.js","../node_modules/tesseract.js/src/constants/PSM.js","../node_modules/tesseract.js/src/index.js","../src/id-recognition/ocr-processor.ts","../src/id-recognition/data-extractor.ts","../src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"jsQR\"] = factory();\n\telse\n\t\troot[\"jsQR\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (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/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\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.l = 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// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 3);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BitMatrix = /** @class */ (function () {\n function BitMatrix(data, width) {\n this.width = width;\n this.height = data.length / width;\n this.data = data;\n }\n BitMatrix.createEmpty = function (width, height) {\n return new BitMatrix(new Uint8ClampedArray(width * height), width);\n };\n BitMatrix.prototype.get = function (x, y) {\n if (x < 0 || x >= this.width || y < 0 || y >= this.height) {\n return false;\n }\n return !!this.data[y * this.width + x];\n };\n BitMatrix.prototype.set = function (x, y, v) {\n this.data[y * this.width + x] = v ? 1 : 0;\n };\n BitMatrix.prototype.setRegion = function (left, top, width, height, v) {\n for (var y = top; y < top + height; y++) {\n for (var x = left; x < left + width; x++) {\n this.set(x, y, !!v);\n }\n }\n };\n return BitMatrix;\n}());\nexports.BitMatrix = BitMatrix;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GenericGFPoly_1 = __webpack_require__(2);\nfunction addOrSubtractGF(a, b) {\n return a ^ b; // tslint:disable-line:no-bitwise\n}\nexports.addOrSubtractGF = addOrSubtractGF;\nvar GenericGF = /** @class */ (function () {\n function GenericGF(primitive, size, genBase) {\n this.primitive = primitive;\n this.size = size;\n this.generatorBase = genBase;\n this.expTable = new Array(this.size);\n this.logTable = new Array(this.size);\n var x = 1;\n for (var i = 0; i < this.size; i++) {\n this.expTable[i] = x;\n x = x * 2;\n if (x >= this.size) {\n x = (x ^ this.primitive) & (this.size - 1); // tslint:disable-line:no-bitwise\n }\n }\n for (var i = 0; i < this.size - 1; i++) {\n this.logTable[this.expTable[i]] = i;\n }\n this.zero = new GenericGFPoly_1.default(this, Uint8ClampedArray.from([0]));\n this.one = new GenericGFPoly_1.default(this, Uint8ClampedArray.from([1]));\n }\n GenericGF.prototype.multiply = function (a, b) {\n if (a === 0 || b === 0) {\n return 0;\n }\n return this.expTable[(this.logTable[a] + this.logTable[b]) % (this.size - 1)];\n };\n GenericGF.prototype.inverse = function (a) {\n if (a === 0) {\n throw new Error(\"Can't invert 0\");\n }\n return this.expTable[this.size - this.logTable[a] - 1];\n };\n GenericGF.prototype.buildMonomial = function (degree, coefficient) {\n if (degree < 0) {\n throw new Error(\"Invalid monomial degree less than 0\");\n }\n if (coefficient === 0) {\n return this.zero;\n }\n var coefficients = new Uint8ClampedArray(degree + 1);\n coefficients[0] = coefficient;\n return new GenericGFPoly_1.default(this, coefficients);\n };\n GenericGF.prototype.log = function (a) {\n if (a === 0) {\n throw new Error(\"Can't take log(0)\");\n }\n return this.logTable[a];\n };\n GenericGF.prototype.exp = function (a) {\n return this.expTable[a];\n };\n return GenericGF;\n}());\nexports.default = GenericGF;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GenericGF_1 = __webpack_require__(1);\nvar GenericGFPoly = /** @class */ (function () {\n function GenericGFPoly(field, coefficients) {\n if (coefficients.length === 0) {\n throw new Error(\"No coefficients.\");\n }\n this.field = field;\n var coefficientsLength = coefficients.length;\n if (coefficientsLength > 1 && coefficients[0] === 0) {\n // Leading term must be non-zero for anything except the constant polynomial \"0\"\n var firstNonZero = 1;\n while (firstNonZero < coefficientsLength && coefficients[firstNonZero] === 0) {\n firstNonZero++;\n }\n if (firstNonZero === coefficientsLength) {\n this.coefficients = field.zero.coefficients;\n }\n else {\n this.coefficients = new Uint8ClampedArray(coefficientsLength - firstNonZero);\n for (var i = 0; i < this.coefficients.length; i++) {\n this.coefficients[i] = coefficients[firstNonZero + i];\n }\n }\n }\n else {\n this.coefficients = coefficients;\n }\n }\n GenericGFPoly.prototype.degree = function () {\n return this.coefficients.length - 1;\n };\n GenericGFPoly.prototype.isZero = function () {\n return this.coefficients[0] === 0;\n };\n GenericGFPoly.prototype.getCoefficient = function (degree) {\n return this.coefficients[this.coefficients.length - 1 - degree];\n };\n GenericGFPoly.prototype.addOrSubtract = function (other) {\n var _a;\n if (this.isZero()) {\n return other;\n }\n if (other.isZero()) {\n return this;\n }\n var smallerCoefficients = this.coefficients;\n var largerCoefficients = other.coefficients;\n if (smallerCoefficients.length > largerCoefficients.length) {\n _a = [largerCoefficients, smallerCoefficients], smallerCoefficients = _a[0], largerCoefficients = _a[1];\n }\n var sumDiff = new Uint8ClampedArray(largerCoefficients.length);\n var lengthDiff = largerCoefficients.length - smallerCoefficients.length;\n for (var i = 0; i < lengthDiff; i++) {\n sumDiff[i] = largerCoefficients[i];\n }\n for (var i = lengthDiff; i < largerCoefficients.length; i++) {\n sumDiff[i] = GenericGF_1.addOrSubtractGF(smallerCoefficients[i - lengthDiff], largerCoefficients[i]);\n }\n return new GenericGFPoly(this.field, sumDiff);\n };\n GenericGFPoly.prototype.multiply = function (scalar) {\n if (scalar === 0) {\n return this.field.zero;\n }\n if (scalar === 1) {\n return this;\n }\n var size = this.coefficients.length;\n var product = new Uint8ClampedArray(size);\n for (var i = 0; i < size; i++) {\n product[i] = this.field.multiply(this.coefficients[i], scalar);\n }\n return new GenericGFPoly(this.field, product);\n };\n GenericGFPoly.prototype.multiplyPoly = function (other) {\n if (this.isZero() || other.isZero()) {\n return this.field.zero;\n }\n var aCoefficients = this.coefficients;\n var aLength = aCoefficients.length;\n var bCoefficients = other.coefficients;\n var bLength = bCoefficients.length;\n var product = new Uint8ClampedArray(aLength + bLength - 1);\n for (var i = 0; i < aLength; i++) {\n var aCoeff = aCoefficients[i];\n for (var j = 0; j < bLength; j++) {\n product[i + j] = GenericGF_1.addOrSubtractGF(product[i + j], this.field.multiply(aCoeff, bCoefficients[j]));\n }\n }\n return new GenericGFPoly(this.field, product);\n };\n GenericGFPoly.prototype.multiplyByMonomial = function (degree, coefficient) {\n if (degree < 0) {\n throw new Error(\"Invalid degree less than 0\");\n }\n if (coefficient === 0) {\n return this.field.zero;\n }\n var size = this.coefficients.length;\n var product = new Uint8ClampedArray(size + degree);\n for (var i = 0; i < size; i++) {\n product[i] = this.field.multiply(this.coefficients[i], coefficient);\n }\n return new GenericGFPoly(this.field, product);\n };\n GenericGFPoly.prototype.evaluateAt = function (a) {\n var result = 0;\n if (a === 0) {\n // Just return the x^0 coefficient\n return this.getCoefficient(0);\n }\n var size = this.coefficients.length;\n if (a === 1) {\n // Just the sum of the coefficients\n this.coefficients.forEach(function (coefficient) {\n result = GenericGF_1.addOrSubtractGF(result, coefficient);\n });\n return result;\n }\n result = this.coefficients[0];\n for (var i = 1; i < size; i++) {\n result = GenericGF_1.addOrSubtractGF(this.field.multiply(a, result), this.coefficients[i]);\n }\n return result;\n };\n return GenericGFPoly;\n}());\nexports.default = GenericGFPoly;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binarizer_1 = __webpack_require__(4);\nvar decoder_1 = __webpack_require__(5);\nvar extractor_1 = __webpack_require__(11);\nvar locator_1 = __webpack_require__(12);\nfunction scan(matrix) {\n var locations = locator_1.locate(matrix);\n if (!locations) {\n return null;\n }\n for (var _i = 0, locations_1 = locations; _i < locations_1.length; _i++) {\n var location_1 = locations_1[_i];\n var extracted = extractor_1.extract(matrix, location_1);\n var decoded = decoder_1.decode(extracted.matrix);\n if (decoded) {\n return {\n binaryData: decoded.bytes,\n data: decoded.text,\n chunks: decoded.chunks,\n version: decoded.version,\n location: {\n topRightCorner: extracted.mappingFunction(location_1.dimension, 0),\n topLeftCorner: extracted.mappingFunction(0, 0),\n bottomRightCorner: extracted.mappingFunction(location_1.dimension, location_1.dimension),\n bottomLeftCorner: extracted.mappingFunction(0, location_1.dimension),\n topRightFinderPattern: location_1.topRight,\n topLeftFinderPattern: location_1.topLeft,\n bottomLeftFinderPattern: location_1.bottomLeft,\n bottomRightAlignmentPattern: location_1.alignmentPattern,\n },\n };\n }\n }\n return null;\n}\nvar defaultOptions = {\n inversionAttempts: \"attemptBoth\",\n};\nfunction jsQR(data, width, height, providedOptions) {\n if (providedOptions === void 0) { providedOptions = {}; }\n var options = defaultOptions;\n Object.keys(options || {}).forEach(function (opt) {\n options[opt] = providedOptions[opt] || options[opt];\n });\n var shouldInvert = options.inversionAttempts === \"attemptBoth\" || options.inversionAttempts === \"invertFirst\";\n var tryInvertedFirst = options.inversionAttempts === \"onlyInvert\" || options.inversionAttempts === \"invertFirst\";\n var _a = binarizer_1.binarize(data, width, height, shouldInvert), binarized = _a.binarized, inverted = _a.inverted;\n var result = scan(tryInvertedFirst ? inverted : binarized);\n if (!result && (options.inversionAttempts === \"attemptBoth\" || options.inversionAttempts === \"invertFirst\")) {\n result = scan(tryInvertedFirst ? binarized : inverted);\n }\n return result;\n}\njsQR.default = jsQR;\nexports.default = jsQR;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BitMatrix_1 = __webpack_require__(0);\nvar REGION_SIZE = 8;\nvar MIN_DYNAMIC_RANGE = 24;\nfunction numBetween(value, min, max) {\n return value < min ? min : value > max ? max : value;\n}\n// Like BitMatrix but accepts arbitry Uint8 values\nvar Matrix = /** @class */ (function () {\n function Matrix(width, height) {\n this.width = width;\n this.data = new Uint8ClampedArray(width * height);\n }\n Matrix.prototype.get = function (x, y) {\n return this.data[y * this.width + x];\n };\n Matrix.prototype.set = function (x, y, value) {\n this.data[y * this.width + x] = value;\n };\n return Matrix;\n}());\nfunction binarize(data, width, height, returnInverted) {\n if (data.length !== width * height * 4) {\n throw new Error(\"Malformed data passed to binarizer.\");\n }\n // Convert image to greyscale\n var greyscalePixels = new Matrix(width, height);\n for (var x = 0; x < width; x++) {\n for (var y = 0; y < height; y++) {\n var r = data[((y * width + x) * 4) + 0];\n var g = data[((y * width + x) * 4) + 1];\n var b = data[((y * width + x) * 4) + 2];\n greyscalePixels.set(x, y, 0.2126 * r + 0.7152 * g + 0.0722 * b);\n }\n }\n var horizontalRegionCount = Math.ceil(width / REGION_SIZE);\n var verticalRegionCount = Math.ceil(height / REGION_SIZE);\n var blackPoints = new Matrix(horizontalRegionCount, verticalRegionCount);\n for (var verticalRegion = 0; verticalRegion < verticalRegionCount; verticalRegion++) {\n for (var hortizontalRegion = 0; hortizontalRegion < horizontalRegionCount; hortizontalRegion++) {\n var sum = 0;\n var min = Infinity;\n var max = 0;\n for (var y = 0; y < REGION_SIZE; y++) {\n for (var x = 0; x < REGION_SIZE; x++) {\n var pixelLumosity = greyscalePixels.get(hortizontalRegion * REGION_SIZE + x, verticalRegion * REGION_SIZE + y);\n sum += pixelLumosity;\n min = Math.min(min, pixelLumosity);\n max = Math.max(max, pixelLumosity);\n }\n }\n var average = sum / (Math.pow(REGION_SIZE, 2));\n if (max - min <= MIN_DYNAMIC_RANGE) {\n // If variation within the block is low, assume this is a block with only light or only\n // dark pixels. In that case we do not want to use the average, as it would divide this\n // low contrast area into black and white pixels, essentially creating data out of noise.\n //\n // Default the blackpoint for these blocks to be half the min - effectively white them out\n average = min / 2;\n if (verticalRegion > 0 && hortizontalRegion > 0) {\n // Correct the \"white background\" assumption for blocks that have neighbors by comparing\n // the pixels in this block to the previously calculated black points. This is based on\n // the fact that dark barcode symbology is always surrounded by some amount of light\n // background for which reasonable black point estimates were made. The bp estimated at\n // the boundaries is used for the interior.\n // The (min < bp) is arbitrary but works better than other heuristics that were tried.\n var averageNeighborBlackPoint = (blackPoints.get(hortizontalRegion, verticalRegion - 1) +\n (2 * blackPoints.get(hortizontalRegion - 1, verticalRegion)) +\n blackPoints.get(hortizontalRegion - 1, verticalRegion - 1)) / 4;\n if (min < averageNeighborBlackPoint) {\n average = averageNeighborBlackPoint;\n }\n }\n }\n blackPoints.set(hortizontalRegion, verticalRegion, average);\n }\n }\n var binarized = BitMatrix_1.BitMatrix.createEmpty(width, height);\n var inverted = null;\n if (returnInverted) {\n inverted = BitMatrix_1.BitMatrix.createEmpty(width, height);\n }\n for (var verticalRegion = 0; verticalRegion < verticalRegionCount; verticalRegion++) {\n for (var hortizontalRegion = 0; hortizontalRegion < horizontalRegionCount; hortizontalRegion++) {\n var left = numBetween(hortizontalRegion, 2, horizontalRegionCount - 3);\n var top_1 = numBetween(verticalRegion, 2, verticalRegionCount - 3);\n var sum = 0;\n for (var xRegion = -2; xRegion <= 2; xRegion++) {\n for (var yRegion = -2; yRegion <= 2; yRegion++) {\n sum += blackPoints.get(left + xRegion, top_1 + yRegion);\n }\n }\n var threshold = sum / 25;\n for (var xRegion = 0; xRegion < REGION_SIZE; xRegion++) {\n for (var yRegion = 0; yRegion < REGION_SIZE; yRegion++) {\n var x = hortizontalRegion * REGION_SIZE + xRegion;\n var y = verticalRegion * REGION_SIZE + yRegion;\n var lum = greyscalePixels.get(x, y);\n binarized.set(x, y, lum <= threshold);\n if (returnInverted) {\n inverted.set(x, y, !(lum <= threshold));\n }\n }\n }\n }\n }\n if (returnInverted) {\n return { binarized: binarized, inverted: inverted };\n }\n return { binarized: binarized };\n}\nexports.binarize = binarize;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BitMatrix_1 = __webpack_require__(0);\nvar decodeData_1 = __webpack_require__(6);\nvar reedsolomon_1 = __webpack_require__(9);\nvar version_1 = __webpack_require__(10);\n// tslint:disable:no-bitwise\nfunction numBitsDiffering(x, y) {\n var z = x ^ y;\n var bitCount = 0;\n while (z) {\n bitCount++;\n z &= z - 1;\n }\n return bitCount;\n}\nfunction pushBit(bit, byte) {\n return (byte << 1) | bit;\n}\n// tslint:enable:no-bitwise\nvar FORMAT_INFO_TABLE = [\n { bits: 0x5412, formatInfo: { errorCorrectionLevel: 1, dataMask: 0 } },\n { bits: 0x5125, formatInfo: { errorCorrectionLevel: 1, dataMask: 1 } },\n { bits: 0x5E7C, formatInfo: { errorCorrectionLevel: 1, dataMask: 2 } },\n { bits: 0x5B4B, formatInfo: { errorCorrectionLevel: 1, dataMask: 3 } },\n { bits: 0x45F9, formatInfo: { errorCorrectionLevel: 1, dataMask: 4 } },\n { bits: 0x40CE, formatInfo: { errorCorrectionLevel: 1, dataMask: 5 } },\n { bits: 0x4F97, formatInfo: { errorCorrectionLevel: 1, dataMask: 6 } },\n { bits: 0x4AA0, formatInfo: { errorCorrectionLevel: 1, dataMask: 7 } },\n { bits: 0x77C4, formatInfo: { errorCorrectionLevel: 0, dataMask: 0 } },\n { bits: 0x72F3, formatInfo: { errorCorrectionLevel: 0, dataMask: 1 } },\n { bits: 0x7DAA, formatInfo: { errorCorrectionLevel: 0, dataMask: 2 } },\n { bits: 0x789D, formatInfo: { errorCorrectionLevel: 0, dataMask: 3 } },\n { bits: 0x662F, formatInfo: { errorCorrectionLevel: 0, dataMask: 4 } },\n { bits: 0x6318, formatInfo: { errorCorrectionLevel: 0, dataMask: 5 } },\n { bits: 0x6C41, formatInfo: { errorCorrectionLevel: 0, dataMask: 6 } },\n { bits: 0x6976, formatInfo: { errorCorrectionLevel: 0, dataMask: 7 } },\n { bits: 0x1689, formatInfo: { errorCorrectionLevel: 3, dataMask: 0 } },\n { bits: 0x13BE, formatInfo: { errorCorrectionLevel: 3, dataMask: 1 } },\n { bits: 0x1CE7, formatInfo: { errorCorrectionLevel: 3, dataMask: 2 } },\n { bits: 0x19D0, formatInfo: { errorCorrectionLevel: 3, dataMask: 3 } },\n { bits: 0x0762, formatInfo: { errorCorrectionLevel: 3, dataMask: 4 } },\n { bits: 0x0255, formatInfo: { errorCorrectionLevel: 3, dataMask: 5 } },\n { bits: 0x0D0C, formatInfo: { errorCorrectionLevel: 3, dataMask: 6 } },\n { bits: 0x083B, formatInfo: { errorCorrectionLevel: 3, dataMask: 7 } },\n { bits: 0x355F, formatInfo: { errorCorrectionLevel: 2, dataMask: 0 } },\n { bits: 0x3068, formatInfo: { errorCorrectionLevel: 2, dataMask: 1 } },\n { bits: 0x3F31, formatInfo: { errorCorrectionLevel: 2, dataMask: 2 } },\n { bits: 0x3A06, formatInfo: { errorCorrectionLevel: 2, dataMask: 3 } },\n { bits: 0x24B4, formatInfo: { errorCorrectionLevel: 2, dataMask: 4 } },\n { bits: 0x2183, formatInfo: { errorCorrectionLevel: 2, dataMask: 5 } },\n { bits: 0x2EDA, formatInfo: { errorCorrectionLevel: 2, dataMask: 6 } },\n { bits: 0x2BED, formatInfo: { errorCorrectionLevel: 2, dataMask: 7 } },\n];\nvar DATA_MASKS = [\n function (p) { return ((p.y + p.x) % 2) === 0; },\n function (p) { return (p.y % 2) === 0; },\n function (p) { return p.x % 3 === 0; },\n function (p) { return (p.y + p.x) % 3 === 0; },\n function (p) { return (Math.floor(p.y / 2) + Math.floor(p.x / 3)) % 2 === 0; },\n function (p) { return ((p.x * p.y) % 2) + ((p.x * p.y) % 3) === 0; },\n function (p) { return ((((p.y * p.x) % 2) + (p.y * p.x) % 3) % 2) === 0; },\n function (p) { return ((((p.y + p.x) % 2) + (p.y * p.x) % 3) % 2) === 0; },\n];\nfunction buildFunctionPatternMask(version) {\n var dimension = 17 + 4 * version.versionNumber;\n var matrix = BitMatrix_1.BitMatrix.createEmpty(dimension, dimension);\n matrix.setRegion(0, 0, 9, 9, true); // Top left finder pattern + separator + format\n matrix.setRegion(dimension - 8, 0, 8, 9, true); // Top right finder pattern + separator + format\n matrix.setRegion(0, dimension - 8, 9, 8, true); // Bottom left finder pattern + separator + format\n // Alignment patterns\n for (var _i = 0, _a = version.alignmentPatternCenters; _i < _a.length; _i++) {\n var x = _a[_i];\n for (var _b = 0, _c = version.alignmentPatternCenters; _b < _c.length; _b++) {\n var y = _c[_b];\n if (!(x === 6 && y === 6 || x === 6 && y === dimension - 7 || x === dimension - 7 && y === 6)) {\n matrix.setRegion(x - 2, y - 2, 5, 5, true);\n }\n }\n }\n matrix.setRegion(6, 9, 1, dimension - 17, true); // Vertical timing pattern\n matrix.setRegion(9, 6, dimension - 17, 1, true); // Horizontal timing pattern\n if (version.versionNumber > 6) {\n matrix.setRegion(dimension - 11, 0, 3, 6, true); // Version info, top right\n matrix.setRegion(0, dimension - 11, 6, 3, true); // Version info, bottom left\n }\n return matrix;\n}\nfunction readCodewords(matrix, version, formatInfo) {\n var dataMask = DATA_MASKS[formatInfo.dataMask];\n var dimension = matrix.height;\n var functionPatternMask = buildFunctionPatternMask(version);\n var codewords = [];\n var currentByte = 0;\n var bitsRead = 0;\n // Read columns in pairs, from right to left\n var readingUp = true;\n for (var columnIndex = dimension - 1; columnIndex > 0; columnIndex -= 2) {\n if (columnIndex === 6) { // Skip whole column with vertical alignment pattern;\n columnIndex--;\n }\n for (var i = 0; i < dimension; i++) {\n var y = readingUp ? dimension - 1 - i : i;\n for (var columnOffset = 0; columnOffset < 2; columnOffset++) {\n var x = columnIndex - columnOffset;\n if (!functionPatternMask.get(x, y)) {\n bitsRead++;\n var bit = matrix.get(x, y);\n if (dataMask({ y: y, x: x })) {\n bit = !bit;\n }\n currentByte = pushBit(bit, currentByte);\n if (bitsRead === 8) { // Whole bytes\n codewords.push(currentByte);\n bitsRead = 0;\n currentByte = 0;\n }\n }\n }\n }\n readingUp = !readingUp;\n }\n return codewords;\n}\nfunction readVersion(matrix) {\n var dimension = matrix.height;\n var provisionalVersion = Math.floor((dimension - 17) / 4);\n if (provisionalVersion <= 6) { // 6 and under dont have version info in the QR code\n return version_1.VERSIONS[provisionalVersion - 1];\n }\n var topRightVersionBits = 0;\n for (var y = 5; y >= 0; y--) {\n for (var x = dimension - 9; x >= dimension - 11; x--) {\n topRightVersionBits = pushBit(matrix.get(x, y), topRightVersionBits);\n }\n }\n var bottomLeftVersionBits = 0;\n for (var x = 5; x >= 0; x--) {\n for (var y = dimension - 9; y >= dimension - 11; y--) {\n bottomLeftVersionBits = pushBit(matrix.get(x, y), bottomLeftVersionBits);\n }\n }\n var bestDifference = Infinity;\n var bestVersion;\n for (var _i = 0, VERSIONS_1 = version_1.VERSIONS; _i < VERSIONS_1.length; _i++) {\n var version = VERSIONS_1[_i];\n if (version.infoBits === topRightVersionBits || version.infoBits === bottomLeftVersionBits) {\n return version;\n }\n var difference = numBitsDiffering(topRightVersionBits, version.infoBits);\n if (difference < bestDifference) {\n bestVersion = version;\n bestDifference = difference;\n }\n difference = numBitsDiffering(bottomLeftVersionBits, version.infoBits);\n if (difference < bestDifference) {\n bestVersion = version;\n bestDifference = difference;\n }\n }\n // We can tolerate up to 3 bits of error since no two version info codewords will\n // differ in less than 8 bits.\n if (bestDifference <= 3) {\n return bestVersion;\n }\n}\nfunction readFormatInformation(matrix) {\n var topLeftFormatInfoBits = 0;\n for (var x = 0; x <= 8; x++) {\n if (x !== 6) { // Skip timing pattern bit\n topLeftFormatInfoBits = pushBit(matrix.get(x, 8), topLeftFormatInfoBits);\n }\n }\n for (var y = 7; y >= 0; y--) {\n if (y !== 6) { // Skip timing pattern bit\n topLeftFormatInfoBits = pushBit(matrix.get(8, y), topLeftFormatInfoBits);\n }\n }\n var dimension = matrix.height;\n var topRightBottomRightFormatInfoBits = 0;\n for (var y = dimension - 1; y >= dimension - 7; y--) { // bottom left\n topRightBottomRightFormatInfoBits = pushBit(matrix.get(8, y), topRightBottomRightFormatInfoBits);\n }\n for (var x = dimension - 8; x < dimension; x++) { // top right\n topRightBottomRightFormatInfoBits = pushBit(matrix.get(x, 8), topRightBottomRightFormatInfoBits);\n }\n var bestDifference = Infinity;\n var bestFormatInfo = null;\n for (var _i = 0, FORMAT_INFO_TABLE_1 = FORMAT_INFO_TABLE; _i < FORMAT_INFO_TABLE_1.length; _i++) {\n var _a = FORMAT_INFO_TABLE_1[_i], bits = _a.bits, formatInfo = _a.formatInfo;\n if (bits === topLeftFormatInfoBits || bits === topRightBottomRightFormatInfoBits) {\n return formatInfo;\n }\n var difference = numBitsDiffering(topLeftFormatInfoBits, bits);\n if (difference < bestDifference) {\n bestFormatInfo = formatInfo;\n bestDifference = difference;\n }\n if (topLeftFormatInfoBits !== topRightBottomRightFormatInfoBits) { // also try the other option\n difference = numBitsDiffering(topRightBottomRightFormatInfoBits, bits);\n if (difference < bestDifference) {\n bestFormatInfo = formatInfo;\n bestDifference = difference;\n }\n }\n }\n // Hamming distance of the 32 masked codes is 7, by construction, so <= 3 bits differing means we found a match\n if (bestDifference <= 3) {\n return bestFormatInfo;\n }\n return null;\n}\nfunction getDataBlocks(codewords, version, ecLevel) {\n var ecInfo = version.errorCorrectionLevels[ecLevel];\n var dataBlocks = [];\n var totalCodewords = 0;\n ecInfo.ecBlocks.forEach(function (block) {\n for (var i = 0; i < block.numBlocks; i++) {\n dataBlocks.push({ numDataCodewords: block.dataCodewordsPerBlock, codewords: [] });\n totalCodewords += block.dataCodewordsPerBlock + ecInfo.ecCodewordsPerBlock;\n }\n });\n // In some cases the QR code will be malformed enough that we pull off more or less than we should.\n // If we pull off less there's nothing we can do.\n // If we pull off more we can safely truncate\n if (codewords.length < totalCodewords) {\n return null;\n }\n codewords = codewords.slice(0, totalCodewords);\n var shortBlockSize = ecInfo.ecBlocks[0].dataCodewordsPerBlock;\n // Pull codewords to fill the blocks up to the minimum size\n for (var i = 0; i < shortBlockSize; i++) {\n for (var _i = 0, dataBlocks_1 = dataBlocks; _i < dataBlocks_1.length; _i++) {\n var dataBlock = dataBlocks_1[_i];\n dataBlock.codewords.push(codewords.shift());\n }\n }\n // If there are any large blocks, pull codewords to fill the last element of those\n if (ecInfo.ecBlocks.length > 1) {\n var smallBlockCount = ecInfo.ecBlocks[0].numBlocks;\n var largeBlockCount = ecInfo.ecBlocks[1].numBlocks;\n for (var i = 0; i < largeBlockCount; i++) {\n dataBlocks[smallBlockCount + i].codewords.push(codewords.shift());\n }\n }\n // Add the rest of the codewords to the blocks. These are the error correction codewords.\n while (codewords.length > 0) {\n for (var _a = 0, dataBlocks_2 = dataBlocks; _a < dataBlocks_2.length; _a++) {\n var dataBlock = dataBlocks_2[_a];\n dataBlock.codewords.push(codewords.shift());\n }\n }\n return dataBlocks;\n}\nfunction decodeMatrix(matrix) {\n var version = readVersion(matrix);\n if (!version) {\n return null;\n }\n var formatInfo = readFormatInformation(matrix);\n if (!formatInfo) {\n return null;\n }\n var codewords = readCodewords(matrix, version, formatInfo);\n var dataBlocks = getDataBlocks(codewords, version, formatInfo.errorCorrectionLevel);\n if (!dataBlocks) {\n return null;\n }\n // Count total number of data bytes\n var totalBytes = dataBlocks.reduce(function (a, b) { return a + b.numDataCodewords; }, 0);\n var resultBytes = new Uint8ClampedArray(totalBytes);\n var resultIndex = 0;\n for (var _i = 0, dataBlocks_3 = dataBlocks; _i < dataBlocks_3.length; _i++) {\n var dataBlock = dataBlocks_3[_i];\n var correctedBytes = reedsolomon_1.decode(dataBlock.codewords, dataBlock.codewords.length - dataBlock.numDataCodewords);\n if (!correctedBytes) {\n return null;\n }\n for (var i = 0; i < dataBlock.numDataCodewords; i++) {\n resultBytes[resultIndex++] = correctedBytes[i];\n }\n }\n try {\n return decodeData_1.decode(resultBytes, version.versionNumber);\n }\n catch (_a) {\n return null;\n }\n}\nfunction decode(matrix) {\n if (matrix == null) {\n return null;\n }\n var result = decodeMatrix(matrix);\n if (result) {\n return result;\n }\n // Decoding didn't work, try mirroring the QR across the topLeft -> bottomRight line.\n for (var x = 0; x < matrix.width; x++) {\n for (var y = x + 1; y < matrix.height; y++) {\n if (matrix.get(x, y) !== matrix.get(y, x)) {\n matrix.set(x, y, !matrix.get(x, y));\n matrix.set(y, x, !matrix.get(y, x));\n }\n }\n }\n return decodeMatrix(matrix);\n}\nexports.decode = decode;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// tslint:disable:no-bitwise\nvar BitStream_1 = __webpack_require__(7);\nvar shiftJISTable_1 = __webpack_require__(8);\nvar Mode;\n(function (Mode) {\n Mode[\"Numeric\"] = \"numeric\";\n Mode[\"Alphanumeric\"] = \"alphanumeric\";\n Mode[\"Byte\"] = \"byte\";\n Mode[\"Kanji\"] = \"kanji\";\n Mode[\"ECI\"] = \"eci\";\n})(Mode = exports.Mode || (exports.Mode = {}));\nvar ModeByte;\n(function (ModeByte) {\n ModeByte[ModeByte[\"Terminator\"] = 0] = \"Terminator\";\n ModeByte[ModeByte[\"Numeric\"] = 1] = \"Numeric\";\n ModeByte[ModeByte[\"Alphanumeric\"] = 2] = \"Alphanumeric\";\n ModeByte[ModeByte[\"Byte\"] = 4] = \"Byte\";\n ModeByte[ModeByte[\"Kanji\"] = 8] = \"Kanji\";\n ModeByte[ModeByte[\"ECI\"] = 7] = \"ECI\";\n // StructuredAppend = 0x3,\n // FNC1FirstPosition = 0x5,\n // FNC1SecondPosition = 0x9,\n})(ModeByte || (ModeByte = {}));\nfunction decodeNumeric(stream, size) {\n var bytes = [];\n var text = \"\";\n var characterCountSize = [10, 12, 14][size];\n var length = stream.readBits(characterCountSize);\n // Read digits in groups of 3\n while (length >= 3) {\n var num = stream.readBits(10);\n if (num >= 1000) {\n throw new Error(\"Invalid numeric value above 999\");\n }\n var a = Math.floor(num / 100);\n var b = Math.floor(num / 10) % 10;\n var c = num % 10;\n bytes.push(48 + a, 48 + b, 48 + c);\n text += a.toString() + b.toString() + c.toString();\n length -= 3;\n }\n // If the number of digits aren't a multiple of 3, the remaining digits are special cased.\n if (length === 2) {\n var num = stream.readBits(7);\n if (num >= 100) {\n throw new Error(\"Invalid numeric value above 99\");\n }\n var a = Math.floor(num / 10);\n var b = num % 10;\n bytes.push(48 + a, 48 + b);\n text += a.toString() + b.toString();\n }\n else if (length === 1) {\n var num = stream.readBits(4);\n if (num >= 10) {\n throw new Error(\"Invalid numeric value above 9\");\n }\n bytes.push(48 + num);\n text += num.toString();\n }\n return { bytes: bytes, text: text };\n}\nvar AlphanumericCharacterCodes = [\n \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\",\n \"9\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\",\n \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\",\n \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\",\n \" \", \"$\", \"%\", \"*\", \"+\", \"-\", \".\", \"/\", \":\",\n];\nfunction decodeAlphanumeric(stream, size) {\n var bytes = [];\n var text = \"\";\n var characterCountSize = [9, 11, 13][size];\n var length = stream.readBits(characterCountSize);\n while (length >= 2) {\n var v = stream.readBits(11);\n var a = Math.floor(v / 45);\n var b = v % 45;\n bytes.push(AlphanumericCharacterCodes[a].charCodeAt(0), AlphanumericCharacterCodes[b].charCodeAt(0));\n text += AlphanumericCharacterCodes[a] + AlphanumericCharacterCodes[b];\n length -= 2;\n }\n if (length === 1) {\n var a = stream.readBits(6);\n bytes.push(AlphanumericCharacterCodes[a].charCodeAt(0));\n text += AlphanumericCharacterCodes[a];\n }\n return { bytes: bytes, text: text };\n}\nfunction decodeByte(stream, size) {\n var bytes = [];\n var text = \"\";\n var characterCountSize = [8, 16, 16][size];\n var length = stream.readBits(characterCountSize);\n for (var i = 0; i < length; i++) {\n var b = stream.readBits(8);\n bytes.push(b);\n }\n try {\n text += decodeURIComponent(bytes.map(function (b) { return \"%\" + (\"0\" + b.toString(16)).substr(-2); }).join(\"\"));\n }\n catch (_a) {\n // failed to decode\n }\n return { bytes: bytes, text: text };\n}\nfunction decodeKanji(stream, size) {\n var bytes = [];\n var text = \"\";\n var characterCountSize = [8, 10, 12][size];\n var length = stream.readBits(characterCountSize);\n for (var i = 0; i < length; i++) {\n var k = stream.readBits(13);\n var c = (Math.floor(k / 0xC0) << 8) | (k % 0xC0);\n if (c < 0x1F00) {\n c += 0x8140;\n }\n else {\n c += 0xC140;\n }\n bytes.push(c >> 8, c & 0xFF);\n text += String.fromCharCode(shiftJISTable_1.shiftJISTable[c]);\n }\n return { bytes: bytes, text: text };\n}\nfunction decode(data, version) {\n var _a, _b, _c, _d;\n var stream = new BitStream_1.BitStream(data);\n // There are 3 'sizes' based on the version. 1-9 is small (0), 10-26 is medium (1) and 27-40 is large (2).\n var size = version <= 9 ? 0 : version <= 26 ? 1 : 2;\n var result = {\n text: \"\",\n bytes: [],\n chunks: [],\n version: version,\n };\n while (stream.available() >= 4) {\n var mode = stream.readBits(4);\n if (mode === ModeByte.Terminator) {\n return result;\n }\n else if (mode === ModeByte.ECI) {\n if (stream.readBits(1) === 0) {\n result.chunks.push({\n type: Mode.ECI,\n assignmentNumber: stream.readBits(7),\n });\n }\n else if (stream.readBits(1) === 0) {\n result.chunks.push({\n type: Mode.ECI,\n assignmentNumber: stream.readBits(14),\n });\n }\n else if (stream.readBits(1) === 0) {\n result.chunks.push({\n type: Mode.ECI,\n assignmentNumber: stream.readBits(21),\n });\n }\n else {\n // ECI data seems corrupted\n result.chunks.push({\n type: Mode.ECI,\n assignmentNumber: -1,\n });\n }\n }\n else if (mode === ModeByte.Numeric) {\n var numericResult = decodeNumeric(stream, size);\n result.text += numericResult.text;\n (_a = result.bytes).push.apply(_a, numericResult.bytes);\n result.chunks.push({\n type: Mode.Numeric,\n text: numericResult.text,\n });\n }\n else if (mode === ModeByte.Alphanumeric) {\n var alphanumericResult = decodeAlphanumeric(stream, size);\n result.text += alphanumericResult.text;\n (_b = result.bytes).push.apply(_b, alphanumericResult.bytes);\n result.chunks.push({\n type: Mode.Alphanumeric,\n text: alphanumericResult.text,\n });\n }\n else if (mode === ModeByte.Byte) {\n var byteResult = decodeByte(stream, size);\n result.text += byteResult.text;\n (_c = result.bytes).push.apply(_c, byteResult.bytes);\n result.chunks.push({\n type: Mode.Byte,\n bytes: byteResult.bytes,\n text: byteResult.text,\n });\n }\n else if (mode === ModeByte.Kanji) {\n var kanjiResult = decodeKanji(stream, size);\n result.text += kanjiResult.text;\n (_d = result.bytes).push.apply(_d, kanjiResult.bytes);\n result.chunks.push({\n type: Mode.Kanji,\n bytes: kanjiResult.bytes,\n text: kanjiResult.text,\n });\n }\n }\n // If there is no data left, or the remaining bits are all 0, then that counts as a termination marker\n if (stream.available() === 0 || stream.readBits(stream.available()) === 0) {\n return result;\n }\n}\nexports.decode = decode;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// tslint:disable:no-bitwise\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BitStream = /** @class */ (function () {\n function BitStream(bytes) {\n this.byteOffset = 0;\n this.bitOffset = 0;\n this.bytes = bytes;\n }\n BitStream.prototype.readBits = function (numBits) {\n if (numBits < 1 || numBits > 32 || numBits > this.available()) {\n throw new Error(\"Cannot read \" + numBits.toString() + \" bits\");\n }\n var result = 0;\n // First, read remainder from current byte\n if (this.bitOffset > 0) {\n var bitsLeft = 8 - this.bitOffset;\n var toRead = numBits < bitsLeft ? numBits : bitsLeft;\n var bitsToNotRead = bitsLeft - toRead;\n var mask = (0xFF >> (8 - toRead)) << bitsToNotRead;\n result = (this.bytes[this.byteOffset] & mask) >> bitsToNotRead;\n numBits -= toRead;\n this.bitOffset += toRead;\n if (this.bitOffset === 8) {\n this.bitOffset = 0;\n this.byteOffset++;\n }\n }\n // Next read whole bytes\n if (numBits > 0) {\n while (numBits >= 8) {\n result = (result << 8) | (this.bytes[this.byteOffset] & 0xFF);\n this.byteOffset++;\n numBits -= 8;\n }\n // Finally read a partial byte\n if (numBits > 0) {\n var bitsToNotRead = 8 - numBits;\n var mask = (0xFF >> bitsToNotRead) << bitsToNotRead;\n result = (result << numBits) | ((this.bytes[this.byteOffset] & mask) >> bitsToNotRead);\n this.bitOffset += numBits;\n }\n }\n return result;\n };\n BitStream.prototype.available = function () {\n return 8 * (this.bytes.length - this.byteOffset) - this.bitOffset;\n };\n return BitStream;\n}());\nexports.BitStream = BitStream;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shiftJISTable = {\n 0x20: 0x0020,\n 0x21: 0x0021,\n 0x22: 0x0022,\n 0x23: 0x0023,\n 0x24: 0x0024,\n 0x25: 0x0025,\n 0x26: 0x0026,\n 0x27: 0x0027,\n 0x28: 0x0028,\n 0x29: 0x0029,\n 0x2A: 0x002A,\n 0x2B: 0x002B,\n 0x2C: 0x002C,\n 0x2D: 0x002D,\n 0x2E: 0x002E,\n 0x2F: 0x002F,\n 0x30: 0x0030,\n 0x31: 0x0031,\n 0x32: 0x0032,\n 0x33: 0x0033,\n 0x34: 0x0034,\n 0x35: 0x0035,\n 0x36: 0x0036,\n 0x37: 0x0037,\n 0x38: 0x0038,\n 0x39: 0x0039,\n 0x3A: 0x003A,\n 0x3B: 0x003B,\n 0x3C: 0x003C,\n 0x3D: 0x003D,\n 0x3E: 0x003E,\n 0x3F: 0x003F,\n 0x40: 0x0040,\n 0x41: 0x0041,\n 0x42: 0x0042,\n 0x43: 0x0043,\n 0x44: 0x0044,\n 0x45: 0x0045,\n 0x46: 0x0046,\n 0x47: 0x0047,\n 0x48: 0x0048,\n 0x49: 0x0049,\n 0x4A: 0x004A,\n 0x4B: 0x004B,\n 0x4C: 0x004C,\n 0x4D: 0x004D,\n 0x4E: 0x004E,\n 0x4F: 0x004F,\n 0x50: 0x0050,\n 0x51: 0x0051,\n 0x52: 0x0052,\n 0x53: 0x0053,\n 0x54: 0x0054,\n 0x55: 0x0055,\n 0x56: 0x0056,\n 0x57: 0x0057,\n 0x58: 0x0058,\n 0x59: 0x0059,\n 0x5A: 0x005A,\n 0x5B: 0x005B,\n 0x5C: 0x00A5,\n 0x5D: 0x005D,\n 0x5E: 0x005E,\n 0x5F: 0x005F,\n 0x60: 0x0060,\n 0x61: 0x0061,\n 0x62: 0x0062,\n 0x63: 0x0063,\n 0x64: 0x0064,\n 0x65: 0x0065,\n 0x66: 0x0066,\n 0x67: 0x0067,\n 0x68: 0x0068,\n 0x69: 0x0069,\n 0x6A: 0x006A,\n 0x6B: 0x006B,\n 0x6C: 0x006C,\n 0x6D: 0x006D,\n 0x6E: 0x006E,\n 0x6F: 0x006F,\n 0x70: 0x0070,\n 0x71: 0x0071,\n 0x72: 0x0072,\n 0x73: 0x0073,\n 0x74: 0x0074,\n 0x75: 0x0075,\n 0x76: 0x0076,\n 0x77: 0x0077,\n 0x78: 0x0078,\n 0x79: 0x0079,\n 0x7A: 0x007A,\n 0x7B: 0x007B,\n 0x7C: 0x007C,\n 0x7D: 0x007D,\n 0x7E: 0x203E,\n 0x8140: 0x3000,\n 0x8141: 0x3001,\n 0x8142: 0x3002,\n 0x8143: 0xFF0C,\n 0x8144: 0xFF0E,\n 0x8145: 0x30FB,\n 0x8146: 0xFF1A,\n 0x8147: 0xFF1B,\n 0x8148: 0xFF1F,\n 0x8149: 0xFF01,\n 0x814A: 0x309B,\n 0x814B: 0x309C,\n 0x814C: 0x00B4,\n 0x814D: 0xFF40,\n 0x814E: 0x00A8,\n 0x814F: 0xFF3E,\n 0x8150: 0xFFE3,\n 0x8151: 0xFF3F,\n 0x8152: 0x30FD,\n 0x8153: 0x30FE,\n 0x8154: 0x309D,\n 0x8155: 0x309E,\n 0x8156: 0x3003,\n 0x8157: 0x4EDD,\n 0x8158: 0x3005,\n 0x8159: 0x3006,\n 0x815A: 0x3007,\n 0x815B: 0x30FC,\n 0x815C: 0x2015,\n 0x815D: 0x2010,\n 0x815E: 0xFF0F,\n 0x815F: 0x005C,\n 0x8160: 0x301C,\n 0x8161: 0x2016,\n 0x8162: 0xFF5C,\n 0x8163: 0x2026,\n 0x8164: 0x2025,\n 0x8165: 0x2018,\n 0x8166: 0x2019,\n 0x8167: 0x201C,\n 0x8168: 0x201D,\n 0x8169: 0xFF08,\n 0x816A: 0xFF09,\n 0x816B: 0x3014,\n 0x816C: 0x3015,\n 0x816D: 0xFF3B,\n 0x816E: 0xFF3D,\n 0x816F: 0xFF5B,\n 0x8170: 0xFF5D,\n 0x8171: 0x3008,\n 0x8172: 0x3009,\n 0x8173: 0x300A,\n 0x8174: 0x300B,\n 0x8175: 0x300C,\n 0x8176: 0x300D,\n 0x8177: 0x300E,\n 0x8178: 0x300F,\n 0x8179: 0x3010,\n 0x817A: 0x3011,\n 0x817B: 0xFF0B,\n 0x817C: 0x2212,\n 0x817D: 0x00B1,\n 0x817E: 0x00D7,\n 0x8180: 0x00F7,\n 0x8181: 0xFF1D,\n 0x8182: 0x2260,\n 0x8183: 0xFF1C,\n 0x8184: 0xFF1E,\n 0x8185: 0x2266,\n 0x8186: 0x2267,\n 0x8187: 0x221E,\n 0x8188: 0x2234,\n 0x8189: 0x2642,\n 0x818A: 0x2640,\n 0x818B: 0x00B0,\n 0x818C: 0x2032,\n 0x818D: 0x2033,\n 0x818E: 0x2103,\n 0x818F: 0xFFE5,\n 0x8190: 0xFF04,\n 0x8191: 0x00A2,\n 0x8192: 0x00A3,\n 0x8193: 0xFF05,\n 0x8194: 0xFF03,\n 0x8195: 0xFF06,\n 0x8196: 0xFF0A,\n 0x8197: 0xFF20,\n 0x8198: 0x00A7,\n 0x8199: 0x2606,\n 0x819A: 0x2605,\n 0x819B: 0x25CB,\n 0x819C: 0x25CF,\n 0x819D: 0x25CE,\n 0x819E: 0x25C7,\n 0x819F: 0x25C6,\n 0x81A0: 0x25A1,\n 0x81A1: 0x25A0,\n 0x81A2: 0x25B3,\n 0x81A3: 0x25B2,\n 0x81A4: 0x25BD,\n 0x81A5: 0x25BC,\n 0x81A6: 0x203B,\n 0x81A7: 0x3012,\n 0x81A8: 0x2192,\n 0x81A9: 0x2190,\n 0x81AA: 0x2191,\n 0x81AB: 0x2193,\n 0x81AC: 0x3013,\n 0x81B8: 0x2208,\n 0x81B9: 0x220B,\n 0x81BA: 0x2286,\n 0x81BB: 0x2287,\n 0x81BC: 0x2282,\n 0x81BD: 0x2283,\n 0x81BE: 0x222A,\n 0x81BF: 0x2229,\n 0x81C8: 0x2227,\n 0x81C9: 0x2228,\n 0x81CA: 0x00AC,\n 0x81CB: 0x21D2,\n 0x81CC: 0x21D4,\n 0x81CD: 0x2200,\n 0x81CE: 0x2203,\n 0x81DA: 0x2220,\n 0x81DB: 0x22A5,\n 0x81DC: 0x2312,\n 0x81DD: 0x2202,\n 0x81DE: 0x2207,\n 0x81DF: 0x2261,\n 0x81E0: 0x2252,\n 0x81E1: 0x226A,\n 0x81E2: 0x226B,\n 0x81E3: 0x221A,\n 0x81E4: 0x223D,\n 0x81E5: 0x221D,\n 0x81E6: 0x2235,\n 0x81E7: 0x222B,\n 0x81E8: 0x222C,\n 0x81F0: 0x212B,\n 0x81F1: 0x2030,\n 0x81F2: 0x266F,\n 0x81F3: 0x266D,\n 0x81F4: 0x266A,\n 0x81F5: 0x2020,\n 0x81F6: 0x2021,\n 0x81F7: 0x00B6,\n 0x81FC: 0x25EF,\n 0x824F: 0xFF10,\n 0x8250: 0xFF11,\n 0x8251: 0xFF12,\n 0x8252: 0xFF13,\n 0x8253: 0xFF14,\n 0x8254: 0xFF15,\n 0x8255: 0xFF16,\n 0x8256: 0xFF17,\n 0x8257: 0xFF18,\n 0x8258: 0xFF19,\n 0x8260: 0xFF21,\n 0x8261: 0xFF22,\n 0x8262: 0xFF23,\n 0x8263: 0xFF24,\n 0x8264: 0xFF25,\n 0x8265: 0xFF26,\n 0x8266: 0xFF27,\n 0x8267: 0xFF28,\n 0x8268: 0xFF29,\n 0x8269: 0xFF2A,\n 0x826A: 0xFF2B,\n 0x826B: 0xFF2C,\n 0x826C: 0xFF2D,\n 0x826D: 0xFF2E,\n 0x826E: 0xFF2F,\n 0x826F: 0xFF30,\n 0x8270: 0xFF31,\n 0x8271: 0xFF32,\n 0x8272: 0xFF33,\n 0x8273: 0xFF34,\n 0x8274: 0xFF35,\n 0x8275: 0xFF36,\n 0x8276: 0xFF37,\n 0x8277: 0xFF38,\n 0x8278: 0xFF39,\n 0x8279: 0xFF3A,\n 0x8281: 0xFF41,\n 0x8282: 0xFF42,\n 0x8283: 0xFF43,\n 0x8284: 0xFF44,\n 0x8285: 0xFF45,\n 0x8286: 0xFF46,\n 0x8287: 0xFF47,\n 0x8288: 0xFF48,\n 0x8289: 0xFF49,\n 0x828A: 0xFF4A,\n 0x828B: 0xFF4B,\n 0x828C: 0xFF4C,\n 0x828D: 0xFF4D,\n 0x828E: 0xFF4E,\n 0x828F: 0xFF4F,\n 0x8290: 0xFF50,\n 0x8291: 0xFF51,\n 0x8292: 0xFF52,\n 0x8293: 0xFF53,\n 0x8294: 0xFF54,\n 0x8295: 0xFF55,\n 0x8296: 0xFF56,\n 0x8297: 0xFF57,\n 0x8298: 0xFF58,\n 0x8299: 0xFF59,\n 0x829A: 0xFF5A,\n 0x829F: 0x3041,\n 0x82A0: 0x3042,\n 0x82A1: 0x3043,\n 0x82A2: 0x3044,\n 0x82A3: 0x3045,\n 0x82A4: 0x3046,\n 0x82A5: 0x3047,\n 0x82A6: 0x3048,\n 0x82A7: 0x3049,\n 0x82A8: 0x304A,\n 0x82A9: 0x304B,\n 0x82AA: 0x304C,\n 0x82AB: 0x304D,\n 0x82AC: 0x304E,\n 0x82AD: 0x304F,\n 0x82AE: 0x3050,\n 0x82AF: 0x3051,\n 0x82B0: 0x3052,\n 0x82B1: 0x3053,\n 0x82B2: 0x3054,\n 0x82B3: 0x3055,\n 0x82B4: 0x3056,\n 0x82B5: 0x3057,\n 0x82B6: 0x3058,\n 0x82B7: 0x3059,\n 0x82B8: 0x305A,\n 0x82B9: 0x305B,\n 0x82BA: 0x305C,\n 0x82BB: 0x305D,\n 0x82BC: 0x305E,\n 0x82BD: 0x305F,\n 0x82BE: 0x3060,\n 0x82BF: 0x3061,\n 0x82C0: 0x3062,\n 0x82C1: 0x3063,\n 0x82C2: 0x3064,\n 0x82C3: 0x3065,\n 0x82C4: 0x3066,\n 0x82C5: 0x3067,\n 0x82C6: 0x3068,\n 0x82C7: 0x3069,\n 0x82C8: 0x306A,\n 0x82C9: 0x306B,\n 0x82CA: 0x306C,\n 0x82CB: 0x306D,\n 0x82CC: 0x306E,\n 0x82CD: 0x306F,\n 0x82CE: 0x3070,\n 0x82CF: 0x3071,\n 0x82D0: 0x3072,\n 0x82D1: 0x3073,\n 0x82D2: 0x3074,\n 0x82D3: 0x3075,\n 0x82D4: 0x3076,\n 0x82D5: 0x3077,\n 0x82D6: 0x3078,\n 0x82D7: 0x3079,\n 0x82D8: 0x307A,\n 0x82D9: 0x307B,\n 0x82DA: 0x307C,\n 0x82DB: 0x307D,\n 0x82DC: 0x307E,\n 0x82DD: 0x307F,\n 0x82DE: 0x3080,\n 0x82DF: 0x3081,\n 0x82E0: 0x3082,\n 0x82E1: 0x3083,\n 0x82E2: 0x3084,\n 0x82E3: 0x3085,\n 0x82E4: 0x3086,\n 0x82E5: 0x3087,\n 0x82E6: 0x3088,\n 0x82E7: 0x3089,\n 0x82E8: 0x308A,\n 0x82E9: 0x308B,\n 0x82EA: 0x308C,\n 0x82EB: 0x308D,\n 0x82EC: 0x308E,\n 0x82ED: 0x308F,\n 0x82EE: 0x3090,\n 0x82EF: 0x3091,\n 0x82F0: 0x3092,\n 0x82F1: 0x3093,\n 0x8340: 0x30A1,\n 0x8341: 0x30A2,\n 0x8342: 0x30A3,\n 0x8343: 0x30A4,\n 0x8344: 0x30A5,\n 0x8345: 0x30A6,\n 0x8346: 0x30A7,\n 0x8347: 0x30A8,\n 0x8348: 0x30A9,\n 0x8349: 0x30AA,\n 0x834A: 0x30AB,\n 0x834B: 0x30AC,\n 0x834C: 0x30AD,\n 0x834D: 0x30AE,\n 0x834E: 0x30AF,\n 0x834F: 0x30B0,\n 0x8350: 0x30B1,\n 0x8351: 0x30B2,\n 0x8352: 0x30B3,\n 0x8353: 0x30B4,\n 0x8354: 0x30B5,\n 0x8355: 0x30B6,\n 0x8356: 0x30B7,\n 0x8357: 0x30B8,\n 0x8358: 0x30B9,\n 0x8359: 0x30BA,\n 0x835A: 0x30BB,\n 0x835B: 0x30BC,\n 0x835C: 0x30BD,\n 0x835D: 0x30BE,\n 0x835E: 0x30BF,\n 0x835F: 0x30C0,\n 0x8360: 0x30C1,\n 0x8361: 0x30C2,\n 0x8362: 0x30C3,\n 0x8363: 0x30C4,\n 0x8364: 0x30C5,\n 0x8365: 0x30C6,\n 0x8366: 0x30C7,\n 0x8367: 0x30C8,\n 0x8368: 0x30C9,\n 0x8369: 0x30CA,\n 0x836A: 0x30CB,\n 0x836B: 0x30CC,\n 0x836C: 0x30CD,\n 0x836D: 0x30CE,\n 0x836E: 0x30CF,\n 0x836F: 0x30D0,\n 0x8370: 0x30D1,\n 0x8371: 0x30D2,\n 0x8372: 0x30D3,\n 0x8373: 0x30D4,\n 0x8374: 0x30D5,\n 0x8375: 0x30D6,\n 0x8376: 0x30D7,\n 0x8377: 0x30D8,\n 0x8378: 0x30D9,\n 0x8379: 0x30DA,\n 0x837A: 0x30DB,\n 0x837B: 0x30DC,\n 0x837C: 0x30DD,\n 0x837D: 0x30DE,\n 0x837E: 0x30DF,\n 0x8380: 0x30E0,\n 0x8381: 0x30E1,\n 0x8382: 0x30E2,\n 0x8383: 0x30E3,\n 0x8384: 0x30E4,\n 0x8385: 0x30E5,\n 0x8386: 0x30E6,\n 0x8387: 0x30E7,\n 0x8388: 0x30E8,\n 0x8389: 0x30E9,\n 0x838A: 0x30EA,\n 0x838B: 0x30EB,\n 0x838C: 0x30EC,\n 0x838D: 0x30ED,\n 0x838E: 0x30EE,\n 0x838F: 0x30EF,\n 0x8390: 0x30F0,\n 0x8391: 0x30F1,\n 0x8392: 0x30F2,\n 0x8393: 0x30F3,\n 0x8394: 0x30F4,\n 0x8395: 0x30F5,\n 0x8396: 0x30F6,\n 0x839F: 0x0391,\n 0x83A0: 0x0392,\n 0x83A1: 0x0393,\n 0x83A2: 0x0394,\n 0x83A3: 0x0395,\n 0x83A4: 0x0396,\n 0x83A5: 0x0397,\n 0x83A6: 0x0398,\n 0x83A7: 0x0399,\n 0x83A8: 0x039A,\n 0x83A9: 0x039B,\n 0x83AA: 0x039C,\n 0x83AB: 0x039D,\n 0x83AC: 0x039E,\n 0x83AD: 0x039F,\n 0x83AE: 0x03A0,\n 0x83AF: 0x03A1,\n 0x83B0: 0x03A3,\n 0x83B1: 0x03A4,\n 0x83B2: 0x03A5,\n 0x83B3: 0x03A6,\n 0x83B4: 0x03A7,\n 0x83B5: 0x03A8,\n 0x83B6: 0x03A9,\n 0x83BF: 0x03B1,\n 0x83C0: 0x03B2,\n 0x83C1: 0x03B3,\n 0x83C2: 0x03B4,\n 0x83C3: 0x03B5,\n 0x83C4: 0x03B6,\n 0x83C5: 0x03B7,\n 0x83C6: 0x03B8,\n 0x83C7: 0x03B9,\n 0x83C8: 0x03BA,\n 0x83C9: 0x03BB,\n 0x83CA: 0x03BC,\n 0x83CB: 0x03BD,\n 0x83CC: 0x03BE,\n 0x83CD: 0x03BF,\n 0x83CE: 0x03C0,\n 0x83CF: 0x03C1,\n 0x83D0: 0x03C3,\n 0x83D1: 0x03C4,\n 0x83D2: 0x03C5,\n 0x83D3: 0x03C6,\n 0x83D4: 0x03C7,\n 0x83D5: 0x03C8,\n 0x83D6: 0x03C9,\n 0x8440: 0x0410,\n 0x8441: 0x0411,\n 0x8442: 0x0412,\n 0x8443: 0x0413,\n 0x8444: 0x0414,\n 0x8445: 0x0415,\n 0x8446: 0x0401,\n 0x8447: 0x0416,\n 0x8448: 0x0417,\n 0x8449: 0x0418,\n 0x844A: 0x0419,\n 0x844B: 0x041A,\n 0x844C: 0x041B,\n 0x844D: 0x041C,\n 0x844E: 0x041D,\n 0x844F: 0x041E,\n 0x8450: 0x041F,\n 0x8451: 0x0420,\n 0x8452: 0x0421,\n 0x8453: 0x0422,\n 0x8454: 0x0423,\n 0x8455: 0x0424,\n 0x8456: 0x0425,\n 0x8457: 0x0426,\n 0x8458: 0x0427,\n 0x8459: 0x0428,\n 0x845A: 0x0429,\n 0x845B: 0x042A,\n 0x845C: 0x042B,\n 0x845D: 0x042C,\n 0x845E: 0x042D,\n 0x845F: 0x042E,\n 0x8460: 0x042F,\n 0x8470: 0x0430,\n 0x8471: 0x0431,\n 0x8472: 0x0432,\n 0x8473: 0x0433,\n 0x8474: 0x0434,\n 0x8475: 0x0435,\n 0x8476: 0x0451,\n 0x8477: 0x0436,\n 0x8478: 0x0437,\n 0x8479: 0x0438,\n 0x847A: 0x0439,\n 0x847B: 0x043A,\n 0x847C: 0x043B,\n 0x847D: 0x043C,\n 0x847E: 0x043D,\n 0x8480: 0x043E,\n 0x8481: 0x043F,\n 0x8482: 0x0440,\n 0x8483: 0x0441,\n 0x8484: 0x0442,\n 0x8485: 0x0443,\n 0x8486: 0x0444,\n 0x8487: 0x0445,\n 0x8488: 0x0446,\n 0x8489: 0x0447,\n 0x848A: 0x0448,\n 0x848B: 0x0449,\n 0x848C: 0x044A,\n 0x848D: 0x044B,\n 0x848E: 0x044C,\n 0x848F: 0x044D,\n 0x8490: 0x044E,\n 0x8491: 0x044F,\n 0x849F: 0x2500,\n 0x84A0: 0x2502,\n 0x84A1: 0x250C,\n 0x84A2: 0x2510,\n 0x84A3: 0x2518,\n 0x84A4: 0x2514,\n 0x84A5: 0x251C,\n 0x84A6: 0x252C,\n 0x84A7: 0x2524,\n 0x84A8: 0x2534,\n 0x84A9: 0x253C,\n 0x84AA: 0x2501,\n 0x84AB: 0x2503,\n 0x84AC: 0x250F,\n 0x84AD: 0x2513,\n 0x84AE: 0x251B,\n 0x84AF: 0x2517,\n 0x84B0: 0x2523,\n 0x84B1: 0x2533,\n 0x84B2: 0x252B,\n 0x84B3: 0x253B,\n 0x84B4: 0x254B,\n 0x84B5: 0x2520,\n 0x84B6: 0x252F,\n 0x84B7: 0x2528,\n 0x84B8: 0x2537,\n 0x84B9: 0x253F,\n 0x84BA: 0x251D,\n 0x84BB: 0x2530,\n 0x84BC: 0x2525,\n 0x84BD: 0x2538,\n 0x84BE: 0x2542,\n 0x889F: 0x4E9C,\n 0x88A0: 0x5516,\n 0x88A1: 0x5A03,\n 0x88A2: 0x963F,\n 0x88A3: 0x54C0,\n 0x88A4: 0x611B,\n 0x88A5: 0x6328,\n 0x88A6: 0x59F6,\n 0x88A7: 0x9022,\n 0x88A8: 0x8475,\n 0x88A9: 0x831C,\n 0x88AA: 0x7A50,\n 0x88AB: 0x60AA,\n 0x88AC: 0x63E1,\n 0x88AD: 0x6E25,\n 0x88AE: 0x65ED,\n 0x88AF: 0x8466,\n 0x88B0: 0x82A6,\n 0x88B1: 0x9BF5,\n 0x88B2: 0x6893,\n 0x88B3: 0x5727,\n 0x88B4: 0x65A1,\n 0x88B5: 0x6271,\n 0x88B6: 0x5B9B,\n 0x88B7: 0x59D0,\n 0x88B8: 0x867B,\n 0x88B9: 0x98F4,\n 0x88BA: 0x7D62,\n 0x88BB: 0x7DBE,\n 0x88BC: 0x9B8E,\n 0x88BD: 0x6216,\n 0x88BE: 0x7C9F,\n 0x88BF: 0x88B7,\n 0x88C0: 0x5B89,\n 0x88C1: 0x5EB5,\n 0x88C2: 0x6309,\n 0x88C3: 0x6697,\n 0x88C4: 0x6848,\n 0x88C5: 0x95C7,\n 0x88C6: 0x978D,\n 0x88C7: 0x674F,\n 0x88C8: 0x4EE5,\n 0x88C9: 0x4F0A,\n 0x88CA: 0x4F4D,\n 0x88CB: 0x4F9D,\n 0x88CC: 0x5049,\n 0x88CD: 0x56F2,\n 0x88CE: 0x5937,\n 0x88CF: 0x59D4,\n 0x88D0: 0x5A01,\n 0x88D1: 0x5C09,\n 0x88D2: 0x60DF,\n 0x88D3: 0x610F,\n 0x88D4: 0x6170,\n 0x88D5: 0x6613,\n 0x88D6: 0x6905,\n 0x88D7: 0x70BA,\n 0x88D8: 0x754F,\n 0x88D9: 0x7570,\n 0x88DA: 0x79FB,\n 0x88DB: 0x7DAD,\n 0x88DC: 0x7DEF,\n 0x88DD: 0x80C3,\n 0x88DE: 0x840E,\n 0x88DF: 0x8863,\n 0x88E0: 0x8B02,\n 0x88E1: 0x9055,\n 0x88E2: 0x907A,\n 0x88E3: 0x533B,\n 0x88E4: 0x4E95,\n 0x88E5: 0x4EA5,\n 0x88E6: 0x57DF,\n 0x88E7: 0x80B2,\n 0x88E8: 0x90C1,\n 0x88E9: 0x78EF,\n 0x88EA: 0x4E00,\n 0x88EB: 0x58F1,\n 0x88EC: 0x6EA2,\n 0x88ED: 0x9038,\n 0x88EE: 0x7A32,\n 0x88EF: 0x8328,\n 0x88F0: 0x828B,\n 0x88F1: 0x9C2F,\n 0x88F2: 0x5141,\n 0x88F3: 0x5370,\n 0x88F4: 0x54BD,\n 0x88F5: 0x54E1,\n 0x88F6: 0x56E0,\n 0x88F7: 0x59FB,\n 0x88F8: 0x5F15,\n 0x88F9: 0x98F2,\n 0x88FA: 0x6DEB,\n 0x88FB: 0x80E4,\n 0x88FC: 0x852D,\n 0x8940: 0x9662,\n 0x8941: 0x9670,\n 0x8942: 0x96A0,\n 0x8943: 0x97FB,\n 0x8944: 0x540B,\n 0x8945: 0x53F3,\n 0x8946: 0x5B87,\n 0x8947: 0x70CF,\n 0x8948: 0x7FBD,\n 0x8949: 0x8FC2,\n 0x894A: 0x96E8,\n 0x894B: 0x536F,\n 0x894C: 0x9D5C,\n 0x894D: 0x7ABA,\n 0x894E: 0x4E11,\n 0x894F: 0x7893,\n 0x8950: 0x81FC,\n 0x8951: 0x6E26,\n 0x8952: 0x5618,\n 0x8953: 0x5504,\n 0x8954: 0x6B1D,\n 0x8955: 0x851A,\n 0x8956: 0x9C3B,\n 0x8957: 0x59E5,\n 0x8958: 0x53A9,\n 0x8959: 0x6D66,\n 0x895A: 0x74DC,\n 0x895B: 0x958F,\n 0x895C: 0x5642,\n 0x895D: 0x4E91,\n 0x895E: 0x904B,\n 0x895F: 0x96F2,\n 0x8960: 0x834F,\n 0x8961: 0x990C,\n 0x8962: 0x53E1,\n 0x8963: 0x55B6,\n 0x8964: 0x5B30,\n 0x8965: 0x5F71,\n 0x8966: 0x6620,\n 0x8967: 0x66F3,\n 0x8968: 0x6804,\n 0x8969: 0x6C38,\n 0x896A: 0x6CF3,\n 0x896B: 0x6D29,\n 0x896C: 0x745B,\n 0x896D: 0x76C8,\n 0x896E: 0x7A4E,\n 0x896F: 0x9834,\n 0x8970: 0x82F1,\n 0x8971: 0x885B,\n 0x8972: 0x8A60,\n 0x8973: 0x92ED,\n 0x8974: 0x6DB2,\n 0x8975: 0x75AB,\n 0x8976: 0x76CA,\n 0x8977: 0x99C5,\n 0x8978: 0x60A6,\n 0x8979: 0x8B01,\n 0x897A: 0x8D8A,\n 0x897B: 0x95B2,\n 0x897C: 0x698E,\n 0x897D: 0x53AD,\n 0x897E: 0x5186,\n 0x8980: 0x5712,\n 0x8981: 0x5830,\n 0x8982: 0x5944,\n 0x8983: 0x5BB4,\n 0x8984: 0x5EF6,\n 0x8985: 0x6028,\n 0x8986: 0x63A9,\n 0x8987: 0x63F4,\n 0x8988: 0x6CBF,\n 0x8989: 0x6F14,\n 0x898A: 0x708E,\n 0x898B: 0x7114,\n 0x898C: 0x7159,\n 0x898D: 0x71D5,\n 0x898E: 0x733F,\n 0x898F: 0x7E01,\n 0x8990: 0x8276,\n 0x8991: 0x82D1,\n 0x8992: 0x8597,\n 0x8993: 0x9060,\n 0x8994: 0x925B,\n 0x8995: 0x9D1B,\n 0x8996: 0x5869,\n 0x8997: 0x65BC,\n 0x8998: 0x6C5A,\n 0x8999: 0x7525,\n 0x899A: 0x51F9,\n 0x899B: 0x592E,\n 0x899C: 0x5965,\n 0x899D: 0x5F80,\n 0x899E: 0x5FDC,\n 0x899F: 0x62BC,\n 0x89A0: 0x65FA,\n 0x89A1: 0x6A2A,\n 0x89A2: 0x6B27,\n 0x89A3: 0x6BB4,\n 0x89A4: 0x738B,\n 0x89A5: 0x7FC1,\n 0x89A6: 0x8956,\n 0x89A7: 0x9D2C,\n 0x89A8: 0x9D0E,\n 0x89A9: 0x9EC4,\n 0x89AA: 0x5CA1,\n 0x89AB: 0x6C96,\n 0x89AC: 0x837B,\n 0x89AD: 0x5104,\n 0x89AE: 0x5C4B,\n 0x89AF: 0x61B6,\n 0x89B0: 0x81C6,\n 0x89B1: 0x6876,\n 0x89B2: 0x7261,\n 0x89B3: 0x4E59,\n 0x89B4: 0x4FFA,\n 0x89B5: 0x5378,\n 0x89B6: 0x6069,\n 0x89B7: 0x6E29,\n 0x89B8: 0x7A4F,\n 0x89B9: 0x97F3,\n 0x89BA: 0x4E0B,\n 0x89BB: 0x5316,\n 0x89BC: 0x4EEE,\n 0x89BD: 0x4F55,\n 0x89BE: 0x4F3D,\n 0x89BF: 0x4FA1,\n 0x89C0: 0x4F73,\n 0x89C1: 0x52A0,\n 0x89C2: 0x53EF,\n 0x89C3: 0x5609,\n 0x89C4: 0x590F,\n 0x89C5: 0x5AC1,\n 0x89C6: 0x5BB6,\n 0x89C7: 0x5BE1,\n 0x89C8: 0x79D1,\n 0x89C9: 0x6687,\n 0x89CA: 0x679C,\n 0x89CB: 0x67B6,\n 0x89CC: 0x6B4C,\n 0x89CD: 0x6CB3,\n 0x89CE: 0x706B,\n 0x89CF: 0x73C2,\n 0x89D0: 0x798D,\n 0x89D1: 0x79BE,\n 0x89D2: 0x7A3C,\n 0x89D3: 0x7B87,\n 0x89D4: 0x82B1,\n 0x89D5: 0x82DB,\n 0x89D6: 0x8304,\n 0x89D7: 0x8377,\n 0x89D8: 0x83EF,\n 0x89D9: 0x83D3,\n 0x89DA: 0x8766,\n 0x89DB: 0x8AB2,\n 0x89DC: 0x5629,\n 0x89DD: 0x8CA8,\n 0x89DE: 0x8FE6,\n 0x89DF: 0x904E,\n 0x89E0: 0x971E,\n 0x89E1: 0x868A,\n 0x89E2: 0x4FC4,\n 0x89E3: 0x5CE8,\n 0x89E4: 0x6211,\n 0x89E5: 0x7259,\n 0x89E6: 0x753B,\n 0x89E7: 0x81E5,\n 0x89E8: 0x82BD,\n 0x89E9: 0x86FE,\n 0x89EA: 0x8CC0,\n 0x89EB: 0x96C5,\n 0x89EC: 0x9913,\n 0x89ED: 0x99D5,\n 0x89EE: 0x4ECB,\n 0x89EF: 0x4F1A,\n 0x89F0: 0x89E3,\n 0x89F1: 0x56DE,\n 0x89F2: 0x584A,\n 0x89F3: 0x58CA,\n 0x89F4: 0x5EFB,\n 0x89F5: 0x5FEB,\n 0x89F6: 0x602A,\n 0x89F7: 0x6094,\n 0x89F8: 0x6062,\n 0x89F9: 0x61D0,\n 0x89FA: 0x6212,\n 0x89FB: 0x62D0,\n 0x89FC: 0x6539,\n 0x8A40: 0x9B41,\n 0x8A41: 0x6666,\n 0x8A42: 0x68B0,\n 0x8A43: 0x6D77,\n 0x8A44: 0x7070,\n 0x8A45: 0x754C,\n 0x8A46: 0x7686,\n 0x8A47: 0x7D75,\n 0x8A48: 0x82A5,\n 0x8A49: 0x87F9,\n 0x8A4A: 0x958B,\n 0x8A4B: 0x968E,\n 0x8A4C: 0x8C9D,\n 0x8A4D: 0x51F1,\n 0x8A4E: 0x52BE,\n 0x8A4F: 0x5916,\n 0x8A50: 0x54B3,\n 0x8A51: 0x5BB3,\n 0x8A52: 0x5D16,\n 0x8A53: 0x6168,\n 0x8A54: 0x6982,\n 0x8A55: 0x6DAF,\n 0x8A56: 0x788D,\n 0x8A57: 0x84CB,\n 0x8A58: 0x8857,\n 0x8A59: 0x8A72,\n 0x8A5A: 0x93A7,\n 0x8A5B: 0x9AB8,\n 0x8A5C: 0x6D6C,\n 0x8A5D: 0x99A8,\n 0x8A5E: 0x86D9,\n 0x8A5F: 0x57A3,\n 0x8A60: 0x67FF,\n 0x8A61: 0x86CE,\n 0x8A62: 0x920E,\n 0x8A63: 0x5283,\n 0x8A64: 0x5687,\n 0x8A65: 0x5404,\n 0x8A66: 0x5ED3,\n 0x8A67: 0x62E1,\n 0x8A68: 0x64B9,\n 0x8A69: 0x683C,\n 0x8A6A: 0x6838,\n 0x8A6B: 0x6BBB,\n 0x8A6C: 0x7372,\n 0x8A6D: 0x78BA,\n 0x8A6E: 0x7A6B,\n 0x8A6F: 0x899A,\n 0x8A70: 0x89D2,\n 0x8A71: 0x8D6B,\n 0x8A72: 0x8F03,\n 0x8A73: 0x90ED,\n 0x8A74: 0x95A3,\n 0x8A75: 0x9694,\n 0x8A76: 0x9769,\n 0x8A77: 0x5B66,\n 0x8A78: 0x5CB3,\n 0x8A79: 0x697D,\n 0x8A7A: 0x984D,\n 0x8A7B: 0x984E,\n 0x8A7C: 0x639B,\n 0x8A7D: 0x7B20,\n 0x8A7E: 0x6A2B,\n 0x8A80: 0x6A7F,\n 0x8A81: 0x68B6,\n 0x8A82: 0x9C0D,\n 0x8A83: 0x6F5F,\n 0x8A84: 0x5272,\n 0x8A85: 0x559D,\n 0x8A86: 0x6070,\n 0x8A87: 0x62EC,\n 0x8A88: 0x6D3B,\n 0x8A89: 0x6E07,\n 0x8A8A: 0x6ED1,\n 0x8A8B: 0x845B,\n 0x8A8C: 0x8910,\n 0x8A8D: 0x8F44,\n 0x8A8E: 0x4E14,\n 0x8A8F: 0x9C39,\n 0x8A90: 0x53F6,\n 0x8A91: 0x691B,\n 0x8A92: 0x6A3A,\n 0x8A93: 0x9784,\n 0x8A94: 0x682A,\n 0x8A95: 0x515C,\n 0x8A96: 0x7AC3,\n 0x8A97: 0x84B2,\n 0x8A98: 0x91DC,\n 0x8A99: 0x938C,\n 0x8A9A: 0x565B,\n 0x8A9B: 0x9D28,\n 0x8A9C: 0x6822,\n 0x8A9D: 0x8305,\n 0x8A9E: 0x8431,\n 0x8A9F: 0x7CA5,\n 0x8AA0: 0x5208,\n 0x8AA1: 0x82C5,\n 0x8AA2: 0x74E6,\n 0x8AA3: 0x4E7E,\n 0x8AA4: 0x4F83,\n 0x8AA5: 0x51A0,\n 0x8AA6: 0x5BD2,\n 0x8AA7: 0x520A,\n 0x8AA8: 0x52D8,\n 0x8AA9: 0x52E7,\n 0x8AAA: 0x5DFB,\n 0x8AAB: 0x559A,\n 0x8AAC: 0x582A,\n 0x8AAD: 0x59E6,\n 0x8AAE: 0x5B8C,\n 0x8AAF: 0x5B98,\n 0x8AB0: 0x5BDB,\n 0x8AB1: 0x5E72,\n 0x8AB2: 0x5E79,\n 0x8AB3: 0x60A3,\n 0x8AB4: 0x611F,\n 0x8AB5: 0x6163,\n 0x8AB6: 0x61BE,\n 0x8AB7: 0x63DB,\n 0x8AB8: 0x6562,\n 0x8AB9: 0x67D1,\n 0x8ABA: 0x6853,\n 0x8ABB: 0x68FA,\n 0x8ABC: 0x6B3E,\n 0x8ABD: 0x6B53,\n 0x8ABE: 0x6C57,\n 0x8ABF: 0x6F22,\n 0x8AC0: 0x6F97,\n 0x8AC1: 0x6F45,\n 0x8AC2: 0x74B0,\n 0x8AC3: 0x7518,\n 0x8AC4: 0x76E3,\n 0x8AC5: 0x770B,\n 0x8AC6: 0x7AFF,\n 0x8AC7: 0x7BA1,\n 0x8AC8: 0x7C21,\n 0x8AC9: 0x7DE9,\n 0x8ACA: 0x7F36,\n 0x8ACB: 0x7FF0,\n 0x8ACC: 0x809D,\n 0x8ACD: 0x8266,\n 0x8ACE: 0x839E,\n 0x8ACF: 0x89B3,\n 0x8AD0: 0x8ACC,\n 0x8AD1: 0x8CAB,\n 0x8AD2: 0x9084,\n 0x8AD3: 0x9451,\n 0x8AD4: 0x9593,\n 0x8AD5: 0x9591,\n 0x8AD6: 0x95A2,\n 0x8AD7: 0x9665,\n 0x8AD8: 0x97D3,\n 0x8AD9: 0x9928,\n 0x8ADA: 0x8218,\n 0x8ADB: 0x4E38,\n 0x8ADC: 0x542B,\n 0x8ADD: 0x5CB8,\n 0x8ADE: 0x5DCC,\n 0x8ADF: 0x73A9,\n 0x8AE0: 0x764C,\n 0x8AE1: 0x773C,\n 0x8AE2: 0x5CA9,\n 0x8AE3: 0x7FEB,\n 0x8AE4: 0x8D0B,\n 0x8AE5: 0x96C1,\n 0x8AE6: 0x9811,\n 0x8AE7: 0x9854,\n 0x8AE8: 0x9858,\n 0x8AE9: 0x4F01,\n 0x8AEA: 0x4F0E,\n 0x8AEB: 0x5371,\n 0x8AEC: 0x559C,\n 0x8AED: 0x5668,\n 0x8AEE: 0x57FA,\n 0x8AEF: 0x5947,\n 0x8AF0: 0x5B09,\n 0x8AF1: 0x5BC4,\n 0x8AF2: 0x5C90,\n 0x8AF3: 0x5E0C,\n 0x8AF4: 0x5E7E,\n 0x8AF5: 0x5FCC,\n 0x8AF6: 0x63EE,\n 0x8AF7: 0x673A,\n 0x8AF8: 0x65D7,\n 0x8AF9: 0x65E2,\n 0x8AFA: 0x671F,\n 0x8AFB: 0x68CB,\n 0x8AFC: 0x68C4,\n 0x8B40: 0x6A5F,\n 0x8B41: 0x5E30,\n 0x8B42: 0x6BC5,\n 0x8B43: 0x6C17,\n 0x8B44: 0x6C7D,\n 0x8B45: 0x757F,\n 0x8B46: 0x7948,\n 0x8B47: 0x5B63,\n 0x8B48: 0x7A00,\n 0x8B49: 0x7D00,\n 0x8B4A: 0x5FBD,\n 0x8B4B: 0x898F,\n 0x8B4C: 0x8A18,\n 0x8B4D: 0x8CB4,\n 0x8B4E: 0x8D77,\n 0x8B4F: 0x8ECC,\n 0x8B50: 0x8F1D,\n 0x8B51: 0x98E2,\n 0x8B52: 0x9A0E,\n 0x8B53: 0x9B3C,\n 0x8B54: 0x4E80,\n 0x8B55: 0x507D,\n 0x8B56: 0x5100,\n 0x8B57: 0x5993,\n 0x8B58: 0x5B9C,\n 0x8B59: 0x622F,\n 0x8B5A: 0x6280,\n 0x8B5B: 0x64EC,\n 0x8B5C: 0x6B3A,\n 0x8B5D: 0x72A0,\n 0x8B5E: 0x7591,\n 0x8B5F: 0x7947,\n 0x8B60: 0x7FA9,\n 0x8B61: 0x87FB,\n 0x8B62: 0x8ABC,\n 0x8B63: 0x8B70,\n 0x8B64: 0x63AC,\n 0x8B65: 0x83CA,\n 0x8B66: 0x97A0,\n 0x8B67: 0x5409,\n 0x8B68: 0x5403,\n 0x8B69: 0x55AB,\n 0x8B6A: 0x6854,\n 0x8B6B: 0x6A58,\n 0x8B6C: 0x8A70,\n 0x8B6D: 0x7827,\n 0x8B6E: 0x6775,\n 0x8B6F: 0x9ECD,\n 0x8B70: 0x5374,\n 0x8B71: 0x5BA2,\n 0x8B72: 0x811A,\n 0x8B73: 0x8650,\n 0x8B74: 0x9006,\n 0x8B75: 0x4E18,\n 0x8B76: 0x4E45,\n 0x8B77: 0x4EC7,\n 0x8B78: 0x4F11,\n 0x8B79: 0x53CA,\n 0x8B7A: 0x5438,\n 0x8B7B: 0x5BAE,\n 0x8B7C: 0x5F13,\n 0x8B7D: 0x6025,\n 0x8B7E: 0x6551,\n 0x8B80: 0x673D,\n 0x8B81: 0x6C42,\n 0x8B82: 0x6C72,\n 0x8B83: 0x6CE3,\n 0x8B84: 0x7078,\n 0x8B85: 0x7403,\n 0x8B86: 0x7A76,\n 0x8B87: 0x7AAE,\n 0x8B88: 0x7B08,\n 0x8B89: 0x7D1A,\n 0x8B8A: 0x7CFE,\n 0x8B8B: 0x7D66,\n 0x8B8C: 0x65E7,\n 0x8B8D: 0x725B,\n 0x8B8E: 0x53BB,\n 0x8B8F: 0x5C45,\n 0x8B90: 0x5DE8,\n 0x8B91: 0x62D2,\n 0x8B92: 0x62E0,\n 0x8B93: 0x6319,\n 0x8B94: 0x6E20,\n 0x8B95: 0x865A,\n 0x8B96: 0x8A31,\n 0x8B97: 0x8DDD,\n 0x8B98: 0x92F8,\n 0x8B99: 0x6F01,\n 0x8B9A: 0x79A6,\n 0x8B9B: 0x9B5A,\n 0x8B9C: 0x4EA8,\n 0x8B9D: 0x4EAB,\n 0x8B9E: 0x4EAC,\n 0x8B9F: 0x4F9B,\n 0x8BA0: 0x4FA0,\n 0x8BA1: 0x50D1,\n 0x8BA2: 0x5147,\n 0x8BA3: 0x7AF6,\n 0x8BA4: 0x5171,\n 0x8BA5: 0x51F6,\n 0x8BA6: 0x5354,\n 0x8BA7: 0x5321,\n 0x8BA8: 0x537F,\n 0x8BA9: 0x53EB,\n 0x8BAA: 0x55AC,\n 0x8BAB: 0x5883,\n 0x8BAC: 0x5CE1,\n 0x8BAD: 0x5F37,\n 0x8BAE: 0x5F4A,\n 0x8BAF: 0x602F,\n 0x8BB0: 0x6050,\n 0x8BB1: 0x606D,\n 0x8BB2: 0x631F,\n 0x8BB3: 0x6559,\n 0x8BB4: 0x6A4B,\n 0x8BB5: 0x6CC1,\n 0x8BB6: 0x72C2,\n 0x8BB7: 0x72ED,\n 0x8BB8: 0x77EF,\n 0x8BB9: 0x80F8,\n 0x8BBA: 0x8105,\n 0x8BBB: 0x8208,\n 0x8BBC: 0x854E,\n 0x8BBD: 0x90F7,\n 0x8BBE: 0x93E1,\n 0x8BBF: 0x97FF,\n 0x8BC0: 0x9957,\n 0x8BC1: 0x9A5A,\n 0x8BC2: 0x4EF0,\n 0x8BC3: 0x51DD,\n 0x8BC4: 0x5C2D,\n 0x8BC5: 0x6681,\n 0x8BC6: 0x696D,\n 0x8BC7: 0x5C40,\n 0x8BC8: 0x66F2,\n 0x8BC9: 0x6975,\n 0x8BCA: 0x7389,\n 0x8BCB: 0x6850,\n 0x8BCC: 0x7C81,\n 0x8BCD: 0x50C5,\n 0x8BCE: 0x52E4,\n 0x8BCF: 0x5747,\n 0x8BD0: 0x5DFE,\n 0x8BD1: 0x9326,\n 0x8BD2: 0x65A4,\n 0x8BD3: 0x6B23,\n 0x8BD4: 0x6B3D,\n 0x8BD5: 0x7434,\n 0x8BD6: 0x7981,\n 0x8BD7: 0x79BD,\n 0x8BD8: 0x7B4B,\n 0x8BD9: 0x7DCA,\n 0x8BDA: 0x82B9,\n 0x8BDB: 0x83CC,\n 0x8BDC: 0x887F,\n 0x8BDD: 0x895F,\n 0x8BDE: 0x8B39,\n 0x8BDF: 0x8FD1,\n 0x8BE0: 0x91D1,\n 0x8BE1: 0x541F,\n 0x8BE2: 0x9280,\n 0x8BE3: 0x4E5D,\n 0x8BE4: 0x5036,\n 0x8BE5: 0x53E5,\n 0x8BE6: 0x533A,\n 0x8BE7: 0x72D7,\n 0x8BE8: 0x7396,\n 0x8BE9: 0x77E9,\n 0x8BEA: 0x82E6,\n 0x8BEB: 0x8EAF,\n 0x8BEC: 0x99C6,\n 0x8BED: 0x99C8,\n 0x8BEE: 0x99D2,\n 0x8BEF: 0x5177,\n 0x8BF0: 0x611A,\n 0x8BF1: 0x865E,\n 0x8BF2: 0x55B0,\n 0x8BF3: 0x7A7A,\n 0x8BF4: 0x5076,\n 0x8BF5: 0x5BD3,\n 0x8BF6: 0x9047,\n 0x8BF7: 0x9685,\n 0x8BF8: 0x4E32,\n 0x8BF9: 0x6ADB,\n 0x8BFA: 0x91E7,\n 0x8BFB: 0x5C51,\n 0x8BFC: 0x5C48,\n 0x8C40: 0x6398,\n 0x8C41: 0x7A9F,\n 0x8C42: 0x6C93,\n 0x8C43: 0x9774,\n 0x8C44: 0x8F61,\n 0x8C45: 0x7AAA,\n 0x8C46: 0x718A,\n 0x8C47: 0x9688,\n 0x8C48: 0x7C82,\n 0x8C49: 0x6817,\n 0x8C4A: 0x7E70,\n 0x8C4B: 0x6851,\n 0x8C4C: 0x936C,\n 0x8C4D: 0x52F2,\n 0x8C4E: 0x541B,\n 0x8C4F: 0x85AB,\n 0x8C50: 0x8A13,\n 0x8C51: 0x7FA4,\n 0x8C52: 0x8ECD,\n 0x8C53: 0x90E1,\n 0x8C54: 0x5366,\n 0x8C55: 0x8888,\n 0x8C56: 0x7941,\n 0x8C57: 0x4FC2,\n 0x8C58: 0x50BE,\n 0x8C59: 0x5211,\n 0x8C5A: 0x5144,\n 0x8C5B: 0x5553,\n 0x8C5C: 0x572D,\n 0x8C5D: 0x73EA,\n 0x8C5E: 0x578B,\n 0x8C5F: 0x5951,\n 0x8C60: 0x5F62,\n 0x8C61: 0x5F84,\n 0x8C62: 0x6075,\n 0x8C63: 0x6176,\n 0x8C64: 0x6167,\n 0x8C65: 0x61A9,\n 0x8C66: 0x63B2,\n 0x8C67: 0x643A,\n 0x8C68: 0x656C,\n 0x8C69: 0x666F,\n 0x8C6A: 0x6842,\n 0x8C6B: 0x6E13,\n 0x8C6C: 0x7566,\n 0x8C6D: 0x7A3D,\n 0x8C6E: 0x7CFB,\n 0x8C6F: 0x7D4C,\n 0x8C70: 0x7D99,\n 0x8C71: 0x7E4B,\n 0x8C72: 0x7F6B,\n 0x8C73: 0x830E,\n 0x8C74: 0x834A,\n 0x8C75: 0x86CD,\n 0x8C76: 0x8A08,\n 0x8C77: 0x8A63,\n 0x8C78: 0x8B66,\n 0x8C79: 0x8EFD,\n 0x8C7A: 0x981A,\n 0x8C7B: 0x9D8F,\n 0x8C7C: 0x82B8,\n 0x8C7D: 0x8FCE,\n 0x8C7E: 0x9BE8,\n 0x8C80: 0x5287,\n 0x8C81: 0x621F,\n 0x8C82: 0x6483,\n 0x8C83: 0x6FC0,\n 0x8C84: 0x9699,\n 0x8C85: 0x6841,\n 0x8C86: 0x5091,\n 0x8C87: 0x6B20,\n 0x8C88: 0x6C7A,\n 0x8C89: 0x6F54,\n 0x8C8A: 0x7A74,\n 0x8C8B: 0x7D50,\n 0x8C8C: 0x8840,\n 0x8C8D: 0x8A23,\n 0x8C8E: 0x6708,\n 0x8C8F: 0x4EF6,\n 0x8C90: 0x5039,\n 0x8C91: 0x5026,\n 0x8C92: 0x5065,\n 0x8C93: 0x517C,\n 0x8C94: 0x5238,\n 0x8C95: 0x5263,\n 0x8C96: 0x55A7,\n 0x8C97: 0x570F,\n 0x8C98: 0x5805,\n 0x8C99: 0x5ACC,\n 0x8C9A: 0x5EFA,\n 0x8C9B: 0x61B2,\n 0x8C9C: 0x61F8,\n 0x8C9D: 0x62F3,\n 0x8C9E: 0x6372,\n 0x8C9F: 0x691C,\n 0x8CA0: 0x6A29,\n 0x8CA1: 0x727D,\n 0x8CA2: 0x72AC,\n 0x8CA3: 0x732E,\n 0x8CA4: 0x7814,\n 0x8CA5: 0x786F,\n 0x8CA6: 0x7D79,\n 0x8CA7: 0x770C,\n 0x8CA8: 0x80A9,\n 0x8CA9: 0x898B,\n 0x8CAA: 0x8B19,\n 0x8CAB: 0x8CE2,\n 0x8CAC: 0x8ED2,\n 0x8CAD: 0x9063,\n 0x8CAE: 0x9375,\n 0x8CAF: 0x967A,\n 0x8CB0: 0x9855,\n 0x8CB1: 0x9A13,\n 0x8CB2: 0x9E78,\n 0x8CB3: 0x5143,\n 0x8CB4: 0x539F,\n 0x8CB5: 0x53B3,\n 0x8CB6: 0x5E7B,\n 0x8CB7: 0x5F26,\n 0x8CB8: 0x6E1B,\n 0x8CB9: 0x6E90,\n 0x8CBA: 0x7384,\n 0x8CBB: 0x73FE,\n 0x8CBC: 0x7D43,\n 0x8CBD: 0x8237,\n 0x8CBE: 0x8A00,\n 0x8CBF: 0x8AFA,\n 0x8CC0: 0x9650,\n 0x8CC1: 0x4E4E,\n 0x8CC2: 0x500B,\n 0x8CC3: 0x53E4,\n 0x8CC4: 0x547C,\n 0x8CC5: 0x56FA,\n 0x8CC6: 0x59D1,\n 0x8CC7: 0x5B64,\n 0x8CC8: 0x5DF1,\n 0x8CC9: 0x5EAB,\n 0x8CCA: 0x5F27,\n 0x8CCB: 0x6238,\n 0x8CCC: 0x6545,\n 0x8CCD: 0x67AF,\n 0x8CCE: 0x6E56,\n 0x8CCF: 0x72D0,\n 0x8CD0: 0x7CCA,\n 0x8CD1: 0x88B4,\n 0x8CD2: 0x80A1,\n 0x8CD3: 0x80E1,\n 0x8CD4: 0x83F0,\n 0x8CD5: 0x864E,\n 0x8CD6: 0x8A87,\n 0x8CD7: 0x8DE8,\n 0x8CD8: 0x9237,\n 0x8CD9: 0x96C7,\n 0x8CDA: 0x9867,\n 0x8CDB: 0x9F13,\n 0x8CDC: 0x4E94,\n 0x8CDD: 0x4E92,\n 0x8CDE: 0x4F0D,\n 0x8CDF: 0x5348,\n 0x8CE0: 0x5449,\n 0x8CE1: 0x543E,\n 0x8CE2: 0x5A2F,\n 0x8CE3: 0x5F8C,\n 0x8CE4: 0x5FA1,\n 0x8CE5: 0x609F,\n 0x8CE6: 0x68A7,\n 0x8CE7: 0x6A8E,\n 0x8CE8: 0x745A,\n 0x8CE9: 0x7881,\n 0x8CEA: 0x8A9E,\n 0x8CEB: 0x8AA4,\n 0x8CEC: 0x8B77,\n 0x8CED: 0x9190,\n 0x8CEE: 0x4E5E,\n 0x8CEF: 0x9BC9,\n 0x8CF0: 0x4EA4,\n 0x8CF1: 0x4F7C,\n 0x8CF2: 0x4FAF,\n 0x8CF3: 0x5019,\n 0x8CF4: 0x5016,\n 0x8CF5: 0x5149,\n 0x8CF6: 0x516C,\n 0x8CF7: 0x529F,\n 0x8CF8: 0x52B9,\n 0x8CF9: 0x52FE,\n 0x8CFA: 0x539A,\n 0x8CFB: 0x53E3,\n 0x8CFC: 0x5411,\n 0x8D40: 0x540E,\n 0x8D41: 0x5589,\n 0x8D42: 0x5751,\n 0x8D43: 0x57A2,\n 0x8D44: 0x597D,\n 0x8D45: 0x5B54,\n 0x8D46: 0x5B5D,\n 0x8D47: 0x5B8F,\n 0x8D48: 0x5DE5,\n 0x8D49: 0x5DE7,\n 0x8D4A: 0x5DF7,\n 0x8D4B: 0x5E78,\n 0x8D4C: 0x5E83,\n 0x8D4D: 0x5E9A,\n 0x8D4E: 0x5EB7,\n 0x8D4F: 0x5F18,\n 0x8D50: 0x6052,\n 0x8D51: 0x614C,\n 0x8D52: 0x6297,\n 0x8D53: 0x62D8,\n 0x8D54: 0x63A7,\n 0x8D55: 0x653B,\n 0x8D56: 0x6602,\n 0x8D57: 0x6643,\n 0x8D58: 0x66F4,\n 0x8D59: 0x676D,\n 0x8D5A: 0x6821,\n 0x8D5B: 0x6897,\n 0x8D5C: 0x69CB,\n 0x8D5D: 0x6C5F,\n 0x8D5E: 0x6D2A,\n 0x8D5F: 0x6D69,\n 0x8D60: 0x6E2F,\n 0x8D61: 0x6E9D,\n 0x8D62: 0x7532,\n 0x8D63: 0x7687,\n 0x8D64: 0x786C,\n 0x8D65: 0x7A3F,\n 0x8D66: 0x7CE0,\n 0x8D67: 0x7D05,\n 0x8D68: 0x7D18,\n 0x8D69: 0x7D5E,\n 0x8D6A: 0x7DB1,\n 0x8D6B: 0x8015,\n 0x8D6C: 0x8003,\n 0x8D6D: 0x80AF,\n 0x8D6E: 0x80B1,\n 0x8D6F: 0x8154,\n 0x8D70: 0x818F,\n 0x8D71: 0x822A,\n 0x8D72: 0x8352,\n 0x8D73: 0x884C,\n 0x8D74: 0x8861,\n 0x8D75: 0x8B1B,\n 0x8D76: 0x8CA2,\n 0x8D77: 0x8CFC,\n 0x8D78: 0x90CA,\n 0x8D79: 0x9175,\n 0x8D7A: 0x9271,\n 0x8D7B: 0x783F,\n 0x8D7C: 0x92FC,\n 0x8D7D: 0x95A4,\n 0x8D7E: 0x964D,\n 0x8D80: 0x9805,\n 0x8D81: 0x9999,\n 0x8D82: 0x9AD8,\n 0x8D83: 0x9D3B,\n 0x8D84: 0x525B,\n 0x8D85: 0x52AB,\n 0x8D86: 0x53F7,\n 0x8D87: 0x5408,\n 0x8D88: 0x58D5,\n 0x8D89: 0x62F7,\n 0x8D8A: 0x6FE0,\n 0x8D8B: 0x8C6A,\n 0x8D8C: 0x8F5F,\n 0x8D8D: 0x9EB9,\n 0x8D8E: 0x514B,\n 0x8D8F: 0x523B,\n 0x8D90: 0x544A,\n 0x8D91: 0x56FD,\n 0x8D92: 0x7A40,\n 0x8D93: 0x9177,\n 0x8D94: 0x9D60,\n 0x8D95: 0x9ED2,\n 0x8D96: 0x7344,\n 0x8D97: 0x6F09,\n 0x8D98: 0x8170,\n 0x8D99: 0x7511,\n 0x8D9A: 0x5FFD,\n 0x8D9B: 0x60DA,\n 0x8D9C: 0x9AA8,\n 0x8D9D: 0x72DB,\n 0x8D9E: 0x8FBC,\n 0x8D9F: 0x6B64,\n 0x8DA0: 0x9803,\n 0x8DA1: 0x4ECA,\n 0x8DA2: 0x56F0,\n 0x8DA3: 0x5764,\n 0x8DA4: 0x58BE,\n 0x8DA5: 0x5A5A,\n 0x8DA6: 0x6068,\n 0x8DA7: 0x61C7,\n 0x8DA8: 0x660F,\n 0x8DA9: 0x6606,\n 0x8DAA: 0x6839,\n 0x8DAB: 0x68B1,\n 0x8DAC: 0x6DF7,\n 0x8DAD: 0x75D5,\n 0x8DAE: 0x7D3A,\n 0x8DAF: 0x826E,\n 0x8DB0: 0x9B42,\n 0x8DB1: 0x4E9B,\n 0x8DB2: 0x4F50,\n 0x8DB3: 0x53C9,\n 0x8DB4: 0x5506,\n 0x8DB5: 0x5D6F,\n 0x8DB6: 0x5DE6,\n 0x8DB7: 0x5DEE,\n 0x8DB8: 0x67FB,\n 0x8DB9: 0x6C99,\n 0x8DBA: 0x7473,\n 0x8DBB: 0x7802,\n 0x8DBC: 0x8A50,\n 0x8DBD: 0x9396,\n 0x8DBE: 0x88DF,\n 0x8DBF: 0x5750,\n 0x8DC0: 0x5EA7,\n 0x8DC1: 0x632B,\n 0x8DC2: 0x50B5,\n 0x8DC3: 0x50AC,\n 0x8DC4: 0x518D,\n 0x8DC5: 0x6700,\n 0x8DC6: 0x54C9,\n 0x8DC7: 0x585E,\n 0x8DC8: 0x59BB,\n 0x8DC9: 0x5BB0,\n 0x8DCA: 0x5F69,\n 0x8DCB: 0x624D,\n 0x8DCC: 0x63A1,\n 0x8DCD: 0x683D,\n 0x8DCE: 0x6B73,\n 0x8DCF: 0x6E08,\n 0x8DD0: 0x707D,\n 0x8DD1: 0x91C7,\n 0x8DD2: 0x7280,\n 0x8DD3: 0x7815,\n 0x8DD4: 0x7826,\n 0x8DD5: 0x796D,\n 0x8DD6: 0x658E,\n 0x8DD7: 0x7D30,\n 0x8DD8: 0x83DC,\n 0x8DD9: 0x88C1,\n 0x8DDA: 0x8F09,\n 0x8DDB: 0x969B,\n 0x8DDC: 0x5264,\n 0x8DDD: 0x5728,\n 0x8DDE: 0x6750,\n 0x8DDF: 0x7F6A,\n 0x8DE0: 0x8CA1,\n 0x8DE1: 0x51B4,\n 0x8DE2: 0x5742,\n 0x8DE3: 0x962A,\n 0x8DE4: 0x583A,\n 0x8DE5: 0x698A,\n 0x8DE6: 0x80B4,\n 0x8DE7: 0x54B2,\n 0x8DE8: 0x5D0E,\n 0x8DE9: 0x57FC,\n 0x8DEA: 0x7895,\n 0x8DEB: 0x9DFA,\n 0x8DEC: 0x4F5C,\n 0x8DED: 0x524A,\n 0x8DEE: 0x548B,\n 0x8DEF: 0x643E,\n 0x8DF0: 0x6628,\n 0x8DF1: 0x6714,\n 0x8DF2: 0x67F5,\n 0x8DF3: 0x7A84,\n 0x8DF4: 0x7B56,\n 0x8DF5: 0x7D22,\n 0x8DF6: 0x932F,\n 0x8DF7: 0x685C,\n 0x8DF8: 0x9BAD,\n 0x8DF9: 0x7B39,\n 0x8DFA: 0x5319,\n 0x8DFB: 0x518A,\n 0x8DFC: 0x5237,\n 0x8E40: 0x5BDF,\n 0x8E41: 0x62F6,\n 0x8E42: 0x64AE,\n 0x8E43: 0x64E6,\n 0x8E44: 0x672D,\n 0x8E45: 0x6BBA,\n 0x8E46: 0x85A9,\n 0x8E47: 0x96D1,\n 0x8E48: 0x7690,\n 0x8E49: 0x9BD6,\n 0x8E4A: 0x634C,\n 0x8E4B: 0x9306,\n 0x8E4C: 0x9BAB,\n 0x8E4D: 0x76BF,\n 0x8E4E: 0x6652,\n 0x8E4F: 0x4E09,\n 0x8E50: 0x5098,\n 0x8E51: 0x53C2,\n 0x8E52: 0x5C71,\n 0x8E53: 0x60E8,\n 0x8E54: 0x6492,\n 0x8E55: 0x6563,\n 0x8E56: 0x685F,\n 0x8E57: 0x71E6,\n 0x8E58: 0x73CA,\n 0x8E59: 0x7523,\n 0x8E5A: 0x7B97,\n 0x8E5B: 0x7E82,\n 0x8E5C: 0x8695,\n 0x8E5D: 0x8B83,\n 0x8E5E: 0x8CDB,\n 0x8E5F: 0x9178,\n 0x8E60: 0x9910,\n 0x8E61: 0x65AC,\n 0x8E62: 0x66AB,\n 0x8E63: 0x6B8B,\n 0x8E64: 0x4ED5,\n 0x8E65: 0x4ED4,\n 0x8E66: 0x4F3A,\n 0x8E67: 0x4F7F,\n 0x8E68: 0x523A,\n 0x8E69: 0x53F8,\n 0x8E6A: 0x53F2,\n 0x8E6B: 0x55E3,\n 0x8E6C: 0x56DB,\n 0x8E6D: 0x58EB,\n 0x8E6E: 0x59CB,\n 0x8E6F: 0x59C9,\n 0x8E70: 0x59FF,\n 0x8E71: 0x5B50,\n 0x8E72: 0x5C4D,\n 0x8E73: 0x5E02,\n 0x8E74: 0x5E2B,\n 0x8E75: 0x5FD7,\n 0x8E76: 0x601D,\n 0x8E77: 0x6307,\n 0x8E78: 0x652F,\n 0x8E79: 0x5B5C,\n 0x8E7A: 0x65AF,\n 0x8E7B: 0x65BD,\n 0x8E7C: 0x65E8,\n 0x8E7D: 0x679D,\n 0x8E7E: 0x6B62,\n 0x8E80: 0x6B7B,\n 0x8E81: 0x6C0F,\n 0x8E82: 0x7345,\n 0x8E83: 0x7949,\n 0x8E84: 0x79C1,\n 0x8E85: 0x7CF8,\n 0x8E86: 0x7D19,\n 0x8E87: 0x7D2B,\n 0x8E88: 0x80A2,\n 0x8E89: 0x8102,\n 0x8E8A: 0x81F3,\n 0x8E8B: 0x8996,\n 0x8E8C: 0x8A5E,\n 0x8E8D: 0x8A69,\n 0x8E8E: 0x8A66,\n 0x8E8F: 0x8A8C,\n 0x8E90: 0x8AEE,\n 0x8E91: 0x8CC7,\n 0x8E92: 0x8CDC,\n 0x8E93: 0x96CC,\n 0x8E94: 0x98FC,\n 0x8E95: 0x6B6F,\n 0x8E96: 0x4E8B,\n 0x8E97: 0x4F3C,\n 0x8E98: 0x4F8D,\n 0x8E99: 0x5150,\n 0x8E9A: 0x5B57,\n 0x8E9B: 0x5BFA,\n 0x8E9C: 0x6148,\n 0x8E9D: 0x6301,\n 0x8E9E: 0x6642,\n 0x8E9F: 0x6B21,\n 0x8EA0: 0x6ECB,\n 0x8EA1: 0x6CBB,\n 0x8EA2: 0x723E,\n 0x8EA3: 0x74BD,\n 0x8EA4: 0x75D4,\n 0x8EA5: 0x78C1,\n 0x8EA6: 0x793A,\n 0x8EA7: 0x800C,\n 0x8EA8: 0x8033,\n 0x8EA9: 0x81EA,\n 0x8EAA: 0x8494,\n 0x8EAB: 0x8F9E,\n 0x8EAC: 0x6C50,\n 0x8EAD: 0x9E7F,\n 0x8EAE: 0x5F0F,\n 0x8EAF: 0x8B58,\n 0x8EB0: 0x9D2B,\n 0x8EB1: 0x7AFA,\n 0x8EB2: 0x8EF8,\n 0x8EB3: 0x5B8D,\n 0x8EB4: 0x96EB,\n 0x8EB5: 0x4E03,\n 0x8EB6: 0x53F1,\n 0x8EB7: 0x57F7,\n 0x8EB8: 0x5931,\n 0x8EB9: 0x5AC9,\n 0x8EBA: 0x5BA4,\n 0x8EBB: 0x6089,\n 0x8EBC: 0x6E7F,\n 0x8EBD: 0x6F06,\n 0x8EBE: 0x75BE,\n 0x8EBF: 0x8CEA,\n 0x8EC0: 0x5B9F,\n 0x8EC1: 0x8500,\n 0x8EC2: 0x7BE0,\n 0x8EC3: 0x5072,\n 0x8EC4: 0x67F4,\n 0x8EC5: 0x829D,\n 0x8EC6: 0x5C61,\n 0x8EC7: 0x854A,\n 0x8EC8: 0x7E1E,\n 0x8EC9: 0x820E,\n 0x8ECA: 0x5199,\n 0x8ECB: 0x5C04,\n 0x8ECC: 0x6368,\n 0x8ECD: 0x8D66,\n 0x8ECE: 0x659C,\n 0x8ECF: 0x716E,\n 0x8ED0: 0x793E,\n 0x8ED1: 0x7D17,\n 0x8ED2: 0x8005,\n 0x8ED3: 0x8B1D,\n 0x8ED4: 0x8ECA,\n 0x8ED5: 0x906E,\n 0x8ED6: 0x86C7,\n 0x8ED7: 0x90AA,\n 0x8ED8: 0x501F,\n 0x8ED9: 0x52FA,\n 0x8EDA: 0x5C3A,\n 0x8EDB: 0x6753,\n 0x8EDC: 0x707C,\n 0x8EDD: 0x7235,\n 0x8EDE: 0x914C,\n 0x8EDF: 0x91C8,\n 0x8EE0: 0x932B,\n 0x8EE1: 0x82E5,\n 0x8EE2: 0x5BC2,\n 0x8EE3: 0x5F31,\n 0x8EE4: 0x60F9,\n 0x8EE5: 0x4E3B,\n 0x8EE6: 0x53D6,\n 0x8EE7: 0x5B88,\n 0x8EE8: 0x624B,\n 0x8EE9: 0x6731,\n 0x8EEA: 0x6B8A,\n 0x8EEB: 0x72E9,\n 0x8EEC: 0x73E0,\n 0x8EED: 0x7A2E,\n 0x8EEE: 0x816B,\n 0x8EEF: 0x8DA3,\n 0x8EF0: 0x9152,\n 0x8EF1: 0x9996,\n 0x8EF2: 0x5112,\n 0x8EF3: 0x53D7,\n 0x8EF4: 0x546A,\n 0x8EF5: 0x5BFF,\n 0x8EF6: 0x6388,\n 0x8EF7: 0x6A39,\n 0x8EF8: 0x7DAC,\n 0x8EF9: 0x9700,\n 0x8EFA: 0x56DA,\n 0x8EFB: 0x53CE,\n 0x8EFC: 0x5468,\n 0x8F40: 0x5B97,\n 0x8F41: 0x5C31,\n 0x8F42: 0x5DDE,\n 0x8F43: 0x4FEE,\n 0x8F44: 0x6101,\n 0x8F45: 0x62FE,\n 0x8F46: 0x6D32,\n 0x8F47: 0x79C0,\n 0x8F48: 0x79CB,\n 0x8F49: 0x7D42,\n 0x8F4A: 0x7E4D,\n 0x8F4B: 0x7FD2,\n 0x8F4C: 0x81ED,\n 0x8F4D: 0x821F,\n 0x8F4E: 0x8490,\n 0x8F4F: 0x8846,\n 0x8F50: 0x8972,\n 0x8F51: 0x8B90,\n 0x8F52: 0x8E74,\n 0x8F53: 0x8F2F,\n 0x8F54: 0x9031,\n 0x8F55: 0x914B,\n 0x8F56: 0x916C,\n 0x8F57: 0x96C6,\n 0x8F58: 0x919C,\n 0x8F59: 0x4EC0,\n 0x8F5A: 0x4F4F,\n 0x8F5B: 0x5145,\n 0x8F5C: 0x5341,\n 0x8F5D: 0x5F93,\n 0x8F5E: 0x620E,\n 0x8F5F: 0x67D4,\n 0x8F60: 0x6C41,\n 0x8F61: 0x6E0B,\n 0x8F62: 0x7363,\n 0x8F63: 0x7E26,\n 0x8F64: 0x91CD,\n 0x8F65: 0x9283,\n 0x8F66: 0x53D4,\n 0x8F67: 0x5919,\n 0x8F68: 0x5BBF,\n 0x8F69: 0x6DD1,\n 0x8F6A: 0x795D,\n 0x8F6B: 0x7E2E,\n 0x8F6C: 0x7C9B,\n 0x8F6D: 0x587E,\n 0x8F6E: 0x719F,\n 0x8F6F: 0x51FA,\n 0x8F70: 0x8853,\n 0x8F71: 0x8FF0,\n 0x8F72: 0x4FCA,\n 0x8F73: 0x5CFB,\n 0x8F74: 0x6625,\n 0x8F75: 0x77AC,\n 0x8F76: 0x7AE3,\n 0x8F77: 0x821C,\n 0x8F78: 0x99FF,\n 0x8F79: 0x51C6,\n 0x8F7A: 0x5FAA,\n 0x8F7B: 0x65EC,\n 0x8F7C: 0x696F,\n 0x8F7D: 0x6B89,\n 0x8F7E: 0x6DF3,\n 0x8F80: 0x6E96,\n 0x8F81: 0x6F64,\n 0x8F82: 0x76FE,\n 0x8F83: 0x7D14,\n 0x8F84: 0x5DE1,\n 0x8F85: 0x9075,\n 0x8F86: 0x9187,\n 0x8F87: 0x9806,\n 0x8F88: 0x51E6,\n 0x8F89: 0x521D,\n 0x8F8A: 0x6240,\n 0x8F8B: 0x6691,\n 0x8F8C: 0x66D9,\n 0x8F8D: 0x6E1A,\n 0x8F8E: 0x5EB6,\n 0x8F8F: 0x7DD2,\n 0x8F90: 0x7F72,\n 0x8F91: 0x66F8,\n 0x8F92: 0x85AF,\n 0x8F93: 0x85F7,\n 0x8F94: 0x8AF8,\n 0x8F95: 0x52A9,\n 0x8F96: 0x53D9,\n 0x8F97: 0x5973,\n 0x8F98: 0x5E8F,\n 0x8F99: 0x5F90,\n 0x8F9A: 0x6055,\n 0x8F9B: 0x92E4,\n 0x8F9C: 0x9664,\n 0x8F9D: 0x50B7,\n 0x8F9E: 0x511F,\n 0x8F9F: 0x52DD,\n 0x8FA0: 0x5320,\n 0x8FA1: 0x5347,\n 0x8FA2: 0x53EC,\n 0x8FA3: 0x54E8,\n 0x8FA4: 0x5546,\n 0x8FA5: 0x5531,\n 0x8FA6: 0x5617,\n 0x8FA7: 0x5968,\n 0x8FA8: 0x59BE,\n 0x8FA9: 0x5A3C,\n 0x8FAA: 0x5BB5,\n 0x8FAB: 0x5C06,\n 0x8FAC: 0x5C0F,\n 0x8FAD: 0x5C11,\n 0x8FAE: 0x5C1A,\n 0x8FAF: 0x5E84,\n 0x8FB0: 0x5E8A,\n 0x8FB1: 0x5EE0,\n 0x8FB2: 0x5F70,\n 0x8FB3: 0x627F,\n 0x8FB4: 0x6284,\n 0x8FB5: 0x62DB,\n 0x8FB6: 0x638C,\n 0x8FB7: 0x6377,\n 0x8FB8: 0x6607,\n 0x8FB9: 0x660C,\n 0x8FBA: 0x662D,\n 0x8FBB: 0x6676,\n 0x8FBC: 0x677E,\n 0x8FBD: 0x68A2,\n 0x8FBE: 0x6A1F,\n 0x8FBF: 0x6A35,\n 0x8FC0: 0x6CBC,\n 0x8FC1: 0x6D88,\n 0x8FC2: 0x6E09,\n 0x8FC3: 0x6E58,\n 0x8FC4: 0x713C,\n 0x8FC5: 0x7126,\n 0x8FC6: 0x7167,\n 0x8FC7: 0x75C7,\n 0x8FC8: 0x7701,\n 0x8FC9: 0x785D,\n 0x8FCA: 0x7901,\n 0x8FCB: 0x7965,\n 0x8FCC: 0x79F0,\n 0x8FCD: 0x7AE0,\n 0x8FCE: 0x7B11,\n 0x8FCF: 0x7CA7,\n 0x8FD0: 0x7D39,\n 0x8FD1: 0x8096,\n 0x8FD2: 0x83D6,\n 0x8FD3: 0x848B,\n 0x8FD4: 0x8549,\n 0x8FD5: 0x885D,\n 0x8FD6: 0x88F3,\n 0x8FD7: 0x8A1F,\n 0x8FD8: 0x8A3C,\n 0x8FD9: 0x8A54,\n 0x8FDA: 0x8A73,\n 0x8FDB: 0x8C61,\n 0x8FDC: 0x8CDE,\n 0x8FDD: 0x91A4,\n 0x8FDE: 0x9266,\n 0x8FDF: 0x937E,\n 0x8FE0: 0x9418,\n 0x8FE1: 0x969C,\n 0x8FE2: 0x9798,\n 0x8FE3: 0x4E0A,\n 0x8FE4: 0x4E08,\n 0x8FE5: 0x4E1E,\n 0x8FE6: 0x4E57,\n 0x8FE7: 0x5197,\n 0x8FE8: 0x5270,\n 0x8FE9: 0x57CE,\n 0x8FEA: 0x5834,\n 0x8FEB: 0x58CC,\n 0x8FEC: 0x5B22,\n 0x8FED: 0x5E38,\n 0x8FEE: 0x60C5,\n 0x8FEF: 0x64FE,\n 0x8FF0: 0x6761,\n 0x8FF1: 0x6756,\n 0x8FF2: 0x6D44,\n 0x8FF3: 0x72B6,\n 0x8FF4: 0x7573,\n 0x8FF5: 0x7A63,\n 0x8FF6: 0x84B8,\n 0x8FF7: 0x8B72,\n 0x8FF8: 0x91B8,\n 0x8FF9: 0x9320,\n 0x8FFA: 0x5631,\n 0x8FFB: 0x57F4,\n 0x8FFC: 0x98FE,\n 0x9040: 0x62ED,\n 0x9041: 0x690D,\n 0x9042: 0x6B96,\n 0x9043: 0x71ED,\n 0x9044: 0x7E54,\n 0x9045: 0x8077,\n 0x9046: 0x8272,\n 0x9047: 0x89E6,\n 0x9048: 0x98DF,\n 0x9049: 0x8755,\n 0x904A: 0x8FB1,\n 0x904B: 0x5C3B,\n 0x904C: 0x4F38,\n 0x904D: 0x4FE1,\n 0x904E: 0x4FB5,\n 0x904F: 0x5507,\n 0x9050: 0x5A20,\n 0x9051: 0x5BDD,\n 0x9052: 0x5BE9,\n 0x9053: 0x5FC3,\n 0x9054: 0x614E,\n 0x9055: 0x632F,\n 0x9056: 0x65B0,\n 0x9057: 0x664B,\n 0x9058: 0x68EE,\n 0x9059: 0x699B,\n 0x905A: 0x6D78,\n 0x905B: 0x6DF1,\n 0x905C: 0x7533,\n 0x905D: 0x75B9,\n 0x905E: 0x771F,\n 0x905F: 0x795E,\n 0x9060: 0x79E6,\n 0x9061: 0x7D33,\n 0x9062: 0x81E3,\n 0x9063: 0x82AF,\n 0x9064: 0x85AA,\n 0x9065: 0x89AA,\n 0x9066: 0x8A3A,\n 0x9067: 0x8EAB,\n 0x9068: 0x8F9B,\n 0x9069: 0x9032,\n 0x906A: 0x91DD,\n 0x906B: 0x9707,\n 0x906C: 0x4EBA,\n 0x906D: 0x4EC1,\n 0x906E: 0x5203,\n 0x906F: 0x5875,\n 0x9070: 0x58EC,\n 0x9071: 0x5C0B,\n 0x9072: 0x751A,\n 0x9073: 0x5C3D,\n 0x9074: 0x814E,\n 0x9075: 0x8A0A,\n 0x9076: 0x8FC5,\n 0x9077: 0x9663,\n 0x9078: 0x976D,\n 0x9079: 0x7B25,\n 0x907A: 0x8ACF,\n 0x907B: 0x9808,\n 0x907C: 0x9162,\n 0x907D: 0x56F3,\n 0x907E: 0x53A8,\n 0x9080: 0x9017,\n 0x9081: 0x5439,\n 0x9082: 0x5782,\n 0x9083: 0x5E25,\n 0x9084: 0x63A8,\n 0x9085: 0x6C34,\n 0x9086: 0x708A,\n 0x9087: 0x7761,\n 0x9088: 0x7C8B,\n 0x9089: 0x7FE0,\n 0x908A: 0x8870,\n 0x908B: 0x9042,\n 0x908C: 0x9154,\n 0x908D: 0x9310,\n 0x908E: 0x9318,\n 0x908F: 0x968F,\n 0x9090: 0x745E,\n 0x9091: 0x9AC4,\n 0x9092: 0x5D07,\n 0x9093: 0x5D69,\n 0x9094: 0x6570,\n 0x9095: 0x67A2,\n 0x9096: 0x8DA8,\n 0x9097: 0x96DB,\n 0x9098: 0x636E,\n 0x9099: 0x6749,\n 0x909A: 0x6919,\n 0x909B: 0x83C5,\n 0x909C: 0x9817,\n 0x909D: 0x96C0,\n 0x909E: 0x88FE,\n 0x909F: 0x6F84,\n 0x90A0: 0x647A,\n 0x90A1: 0x5BF8,\n 0x90A2: 0x4E16,\n 0x90A3: 0x702C,\n 0x90A4: 0x755D,\n 0x90A5: 0x662F,\n 0x90A6: 0x51C4,\n 0x90A7: 0x5236,\n 0x90A8: 0x52E2,\n 0x90A9: 0x59D3,\n 0x90AA: 0x5F81,\n 0x90AB: 0x6027,\n 0x90AC: 0x6210,\n 0x90AD: 0x653F,\n 0x90AE: 0x6574,\n 0x90AF: 0x661F,\n 0x90B0: 0x6674,\n 0x90B1: 0x68F2,\n 0x90B2: 0x6816,\n 0x90B3: 0x6B63,\n 0x90B4: 0x6E05,\n 0x90B5: 0x7272,\n 0x90B6: 0x751F,\n 0x90B7: 0x76DB,\n 0x90B8: 0x7CBE,\n 0x90B9: 0x8056,\n 0x90BA: 0x58F0,\n 0x90BB: 0x88FD,\n 0x90BC: 0x897F,\n 0x90BD: 0x8AA0,\n 0x90BE: 0x8A93,\n 0x90BF: 0x8ACB,\n 0x90C0: 0x901D,\n 0x90C1: 0x9192,\n 0x90C2: 0x9752,\n 0x90C3: 0x9759,\n 0x90C4: 0x6589,\n 0x90C5: 0x7A0E,\n 0x90C6: 0x8106,\n 0x90C7: 0x96BB,\n 0x90C8: 0x5E2D,\n 0x90C9: 0x60DC,\n 0x90CA: 0x621A,\n 0x90CB: 0x65A5,\n 0x90CC: 0x6614,\n 0x90CD: 0x6790,\n 0x90CE: 0x77F3,\n 0x90CF: 0x7A4D,\n 0x90D0: 0x7C4D,\n 0x90D1: 0x7E3E,\n 0x90D2: 0x810A,\n 0x90D3: 0x8CAC,\n 0x90D4: 0x8D64,\n 0x90D5: 0x8DE1,\n 0x90D6: 0x8E5F,\n 0x90D7: 0x78A9,\n 0x90D8: 0x5207,\n 0x90D9: 0x62D9,\n 0x90DA: 0x63A5,\n 0x90DB: 0x6442,\n 0x90DC: 0x6298,\n 0x90DD: 0x8A2D,\n 0x90DE: 0x7A83,\n 0x90DF: 0x7BC0,\n 0x90E0: 0x8AAC,\n 0x90E1: 0x96EA,\n 0x90E2: 0x7D76,\n 0x90E3: 0x820C,\n 0x90E4: 0x8749,\n 0x90E5: 0x4ED9,\n 0x90E6: 0x5148,\n 0x90E7: 0x5343,\n 0x90E8: 0x5360,\n 0x90E9: 0x5BA3,\n 0x90EA: 0x5C02,\n 0x90EB: 0x5C16,\n 0x90EC: 0x5DDD,\n 0x90ED: 0x6226,\n 0x90EE: 0x6247,\n 0x90EF: 0x64B0,\n 0x90F0: 0x6813,\n 0x90F1: 0x6834,\n 0x90F2: 0x6CC9,\n 0x90F3: 0x6D45,\n 0x90F4: 0x6D17,\n 0x90F5: 0x67D3,\n 0x90F6: 0x6F5C,\n 0x90F7: 0x714E,\n 0x90F8: 0x717D,\n 0x90F9: 0x65CB,\n 0x90FA: 0x7A7F,\n 0x90FB: 0x7BAD,\n 0x90FC: 0x7DDA,\n 0x9140: 0x7E4A,\n 0x9141: 0x7FA8,\n 0x9142: 0x817A,\n 0x9143: 0x821B,\n 0x9144: 0x8239,\n 0x9145: 0x85A6,\n 0x9146: 0x8A6E,\n 0x9147: 0x8CCE,\n 0x9148: 0x8DF5,\n 0x9149: 0x9078,\n 0x914A: 0x9077,\n 0x914B: 0x92AD,\n 0x914C: 0x9291,\n 0x914D: 0x9583,\n 0x914E: 0x9BAE,\n 0x914F: 0x524D,\n 0x9150: 0x5584,\n 0x9151: 0x6F38,\n 0x9152: 0x7136,\n 0x9153: 0x5168,\n 0x9154: 0x7985,\n 0x9155: 0x7E55,\n 0x9156: 0x81B3,\n 0x9157: 0x7CCE,\n 0x9158: 0x564C,\n 0x9159: 0x5851,\n 0x915A: 0x5CA8,\n 0x915B: 0x63AA,\n 0x915C: 0x66FE,\n 0x915D: 0x66FD,\n 0x915E: 0x695A,\n 0x915F: 0x72D9,\n 0x9160: 0x758F,\n 0x9161: 0x758E,\n 0x9162: 0x790E,\n 0x9163: 0x7956,\n 0x9164: 0x79DF,\n 0x9165: 0x7C97,\n 0x9166: 0x7D20,\n 0x9167: 0x7D44,\n 0x9168: 0x8607,\n 0x9169: 0x8A34,\n 0x916A: 0x963B,\n 0x916B: 0x9061,\n 0x916C: 0x9F20,\n 0x916D: 0x50E7,\n 0x916E: 0x5275,\n 0x916F: 0x53CC,\n 0x9170: 0x53E2,\n 0x9171: 0x5009,\n 0x9172: 0x55AA,\n 0x9173: 0x58EE,\n 0x9174: 0x594F,\n 0x9175: 0x723D,\n 0x9176: 0x5B8B,\n 0x9177: 0x5C64,\n 0x9178: 0x531D,\n 0x9179: 0x60E3,\n 0x917A: 0x60F3,\n 0x917B: 0x635C,\n 0x917C: 0x6383,\n 0x917D: 0x633F,\n 0x917E: 0x63BB,\n 0x9180: 0x64CD,\n 0x9181: 0x65E9,\n 0x9182: 0x66F9,\n 0x9183: 0x5DE3,\n 0x9184: 0x69CD,\n 0x9185: 0x69FD,\n 0x9186: 0x6F15,\n 0x9187: 0x71E5,\n 0x9188: 0x4E89,\n 0x9189: 0x75E9,\n 0x918A: 0x76F8,\n 0x918B: 0x7A93,\n 0x918C: 0x7CDF,\n 0x918D: 0x7DCF,\n 0x918E: 0x7D9C,\n 0x918F: 0x8061,\n 0x9190: 0x8349,\n 0x9191: 0x8358,\n 0x9192: 0x846C,\n 0x9193: 0x84BC,\n 0x9194: 0x85FB,\n 0x9195: 0x88C5,\n 0x9196: 0x8D70,\n 0x9197: 0x9001,\n 0x9198: 0x906D,\n 0x9199: 0x9397,\n 0x919A: 0x971C,\n 0x919B: 0x9A12,\n 0x919C: 0x50CF,\n 0x919D: 0x5897,\n 0x919E: 0x618E,\n 0x919F: 0x81D3,\n 0x91A0: 0x8535,\n 0x91A1: 0x8D08,\n 0x91A2: 0x9020,\n 0x91A3: 0x4FC3,\n 0x91A4: 0x5074,\n 0x91A5: 0x5247,\n 0x91A6: 0x5373,\n 0x91A7: 0x606F,\n 0x91A8: 0x6349,\n 0x91A9: 0x675F,\n 0x91AA: 0x6E2C,\n 0x91AB: 0x8DB3,\n 0x91AC: 0x901F,\n 0x91AD: 0x4FD7,\n 0x91AE: 0x5C5E,\n 0x91AF: 0x8CCA,\n 0x91B0: 0x65CF,\n 0x91B1: 0x7D9A,\n 0x91B2: 0x5352,\n 0x91B3: 0x8896,\n 0x91B4: 0x5176,\n 0x91B5: 0x63C3,\n 0x91B6: 0x5B58,\n 0x91B7: 0x5B6B,\n 0x91B8: 0x5C0A,\n 0x91B9: 0x640D,\n 0x91BA: 0x6751,\n 0x91BB: 0x905C,\n 0x91BC: 0x4ED6,\n 0x91BD: 0x591A,\n 0x91BE: 0x592A,\n 0x91BF: 0x6C70,\n 0x91C0: 0x8A51,\n 0x91C1: 0x553E,\n 0x91C2: 0x5815,\n 0x91C3: 0x59A5,\n 0x91C4: 0x60F0,\n 0x91C5: 0x6253,\n 0x91C6: 0x67C1,\n 0x91C7: 0x8235,\n 0x91C8: 0x6955,\n 0x91C9: 0x9640,\n 0x91CA: 0x99C4,\n 0x91CB: 0x9A28,\n 0x91CC: 0x4F53,\n 0x91CD: 0x5806,\n 0x91CE: 0x5BFE,\n 0x91CF: 0x8010,\n 0x91D0: 0x5CB1,\n 0x91D1: 0x5E2F,\n 0x91D2: 0x5F85,\n 0x91D3: 0x6020,\n 0x91D4: 0x614B,\n 0x91D5: 0x6234,\n 0x91D6: 0x66FF,\n 0x91D7: 0x6CF0,\n 0x91D8: 0x6EDE,\n 0x91D9: 0x80CE,\n 0x91DA: 0x817F,\n 0x91DB: 0x82D4,\n 0x91DC: 0x888B,\n 0x91DD: 0x8CB8,\n 0x91DE: 0x9000,\n 0x91DF: 0x902E,\n 0x91E0: 0x968A,\n 0x91E1: 0x9EDB,\n 0x91E2: 0x9BDB,\n 0x91E3: 0x4EE3,\n 0x91E4: 0x53F0,\n 0x91E5: 0x5927,\n 0x91E6: 0x7B2C,\n 0x91E7: 0x918D,\n 0x91E8: 0x984C,\n 0x91E9: 0x9DF9,\n 0x91EA: 0x6EDD,\n 0x91EB: 0x7027,\n 0x91EC: 0x5353,\n 0x91ED: 0x5544,\n 0x91EE: 0x5B85,\n 0x91EF: 0x6258,\n 0x91F0: 0x629E,\n 0x91F1: 0x62D3,\n 0x91F2: 0x6CA2,\n 0x91F3: 0x6FEF,\n 0x91F4: 0x7422,\n 0x91F5: 0x8A17,\n 0x91F6: 0x9438,\n 0x91F7: 0x6FC1,\n 0x91F8: 0x8AFE,\n 0x91F9: 0x8338,\n 0x91FA: 0x51E7,\n 0x91FB: 0x86F8,\n 0x91FC: 0x53EA,\n 0x9240: 0x53E9,\n 0x9241: 0x4F46,\n 0x9242: 0x9054,\n 0x9243: 0x8FB0,\n 0x9244: 0x596A,\n 0x9245: 0x8131,\n 0x9246: 0x5DFD,\n 0x9247: 0x7AEA,\n 0x9248: 0x8FBF,\n 0x9249: 0x68DA,\n 0x924A: 0x8C37,\n 0x924B: 0x72F8,\n 0x924C: 0x9C48,\n 0x924D: 0x6A3D,\n 0x924E: 0x8AB0,\n 0x924F: 0x4E39,\n 0x9250: 0x5358,\n 0x9251: 0x5606,\n 0x9252: 0x5766,\n 0x9253: 0x62C5,\n 0x9254: 0x63A2,\n 0x9255: 0x65E6,\n 0x9256: 0x6B4E,\n 0x9257: 0x6DE1,\n 0x9258: 0x6E5B,\n 0x9259: 0x70AD,\n 0x925A: 0x77ED,\n 0x925B: 0x7AEF,\n 0x925C: 0x7BAA,\n 0x925D: 0x7DBB,\n 0x925E: 0x803D,\n 0x925F: 0x80C6,\n 0x9260: 0x86CB,\n 0x9261: 0x8A95,\n 0x9262: 0x935B,\n 0x9263: 0x56E3,\n 0x9264: 0x58C7,\n 0x9265: 0x5F3E,\n 0x9266: 0x65AD,\n 0x9267: 0x6696,\n 0x9268: 0x6A80,\n 0x9269: 0x6BB5,\n 0x926A: 0x7537,\n 0x926B: 0x8AC7,\n 0x926C: 0x5024,\n 0x926D: 0x77E5,\n 0x926E: 0x5730,\n 0x926F: 0x5F1B,\n 0x9270: 0x6065,\n 0x9271: 0x667A,\n 0x9272: 0x6C60,\n 0x9273: 0x75F4,\n 0x9274: 0x7A1A,\n 0x9275: 0x7F6E,\n 0x9276: 0x81F4,\n 0x9277: 0x8718,\n 0x9278: 0x9045,\n 0x9279: 0x99B3,\n 0x927A: 0x7BC9,\n 0x927B: 0x755C,\n 0x927C: 0x7AF9,\n 0x927D: 0x7B51,\n 0x927E: 0x84C4,\n 0x9280: 0x9010,\n 0x9281: 0x79E9,\n 0x9282: 0x7A92,\n 0x9283: 0x8336,\n 0x9284: 0x5AE1,\n 0x9285: 0x7740,\n 0x9286: 0x4E2D,\n 0x9287: 0x4EF2,\n 0x9288: 0x5B99,\n 0x9289: 0x5FE0,\n 0x928A: 0x62BD,\n 0x928B: 0x663C,\n 0x928C: 0x67F1,\n 0x928D: 0x6CE8,\n 0x928E: 0x866B,\n 0x928F: 0x8877,\n 0x9290: 0x8A3B,\n 0x9291: 0x914E,\n 0x9292: 0x92F3,\n 0x9293: 0x99D0,\n 0x9294: 0x6A17,\n 0x9295: 0x7026,\n 0x9296: 0x732A,\n 0x9297: 0x82E7,\n 0x9298: 0x8457,\n 0x9299: 0x8CAF,\n 0x929A: 0x4E01,\n 0x929B: 0x5146,\n 0x929C: 0x51CB,\n 0x929D: 0x558B,\n 0x929E: 0x5BF5,\n 0x929F: 0x5E16,\n 0x92A0: 0x5E33,\n 0x92A1: 0x5E81,\n 0x92A2: 0x5F14,\n 0x92A3: 0x5F35,\n 0x92A4: 0x5F6B,\n 0x92A5: 0x5FB4,\n 0x92A6: 0x61F2,\n 0x92A7: 0x6311,\n 0x92A8: 0x66A2,\n 0x92A9: 0x671D,\n 0x92AA: 0x6F6E,\n 0x92AB: 0x7252,\n 0x92AC: 0x753A,\n 0x92AD: 0x773A,\n 0x92AE: 0x8074,\n 0x92AF: 0x8139,\n 0x92B0: 0x8178,\n 0x92B1: 0x8776,\n 0x92B2: 0x8ABF,\n 0x92B3: 0x8ADC,\n 0x92B4: 0x8D85,\n 0x92B5: 0x8DF3,\n 0x92B6: 0x929A,\n 0x92B7: 0x9577,\n 0x92B8: 0x9802,\n 0x92B9: 0x9CE5,\n 0x92BA: 0x52C5,\n 0x92BB: 0x6357,\n 0x92BC: 0x76F4,\n 0x92BD: 0x6715,\n 0x92BE: 0x6C88,\n 0x92BF: 0x73CD,\n 0x92C0: 0x8CC3,\n 0x92C1: 0x93AE,\n 0x92C2: 0x9673,\n 0x92C3: 0x6D25,\n 0x92C4: 0x589C,\n 0x92C5: 0x690E,\n 0x92C6: 0x69CC,\n 0x92C7: 0x8FFD,\n 0x92C8: 0x939A,\n 0x92C9: 0x75DB,\n 0x92CA: 0x901A,\n 0x92CB: 0x585A,\n 0x92CC: 0x6802,\n 0x92CD: 0x63B4,\n 0x92CE: 0x69FB,\n 0x92CF: 0x4F43,\n 0x92D0: 0x6F2C,\n 0x92D1: 0x67D8,\n 0x92D2: 0x8FBB,\n 0x92D3: 0x8526,\n 0x92D4: 0x7DB4,\n 0x92D5: 0x9354,\n 0x92D6: 0x693F,\n 0x92D7: 0x6F70,\n 0x92D8: 0x576A,\n 0x92D9: 0x58F7,\n 0x92DA: 0x5B2C,\n 0x92DB: 0x7D2C,\n 0x92DC: 0x722A,\n 0x92DD: 0x540A,\n 0x92DE: 0x91E3,\n 0x92DF: 0x9DB4,\n 0x92E0: 0x4EAD,\n 0x92E1: 0x4F4E,\n 0x92E2: 0x505C,\n 0x92E3: 0x5075,\n 0x92E4: 0x5243,\n 0x92E5: 0x8C9E,\n 0x92E6: 0x5448,\n 0x92E7: 0x5824,\n 0x92E8: 0x5B9A,\n 0x92E9: 0x5E1D,\n 0x92EA: 0x5E95,\n 0x92EB: 0x5EAD,\n 0x92EC: 0x5EF7,\n 0x92ED: 0x5F1F,\n 0x92EE: 0x608C,\n 0x92EF: 0x62B5,\n 0x92F0: 0x633A,\n 0x92F1: 0x63D0,\n 0x92F2: 0x68AF,\n 0x92F3: 0x6C40,\n 0x92F4: 0x7887,\n 0x92F5: 0x798E,\n 0x92F6: 0x7A0B,\n 0x92F7: 0x7DE0,\n 0x92F8: 0x8247,\n 0x92F9: 0x8A02,\n 0x92FA: 0x8AE6,\n 0x92FB: 0x8E44,\n 0x92FC: 0x9013,\n 0x9340: 0x90B8,\n 0x9341: 0x912D,\n 0x9342: 0x91D8,\n 0x9343: 0x9F0E,\n 0x9344: 0x6CE5,\n 0x9345: 0x6458,\n 0x9346: 0x64E2,\n 0x9347: 0x6575,\n 0x9348: 0x6EF4,\n 0x9349: 0x7684,\n 0x934A: 0x7B1B,\n 0x934B: 0x9069,\n 0x934C: 0x93D1,\n 0x934D: 0x6EBA,\n 0x934E: 0x54F2,\n 0x934F: 0x5FB9,\n 0x9350: 0x64A4,\n 0x9351: 0x8F4D,\n 0x9352: 0x8FED,\n 0x9353: 0x9244,\n 0x9354: 0x5178,\n 0x9355: 0x586B,\n 0x9356: 0x5929,\n 0x9357: 0x5C55,\n 0x9358: 0x5E97,\n 0x9359: 0x6DFB,\n 0x935A: 0x7E8F,\n 0x935B: 0x751C,\n 0x935C: 0x8CBC,\n 0x935D: 0x8EE2,\n 0x935E: 0x985B,\n 0x935F: 0x70B9,\n 0x9360: 0x4F1D,\n 0x9361: 0x6BBF,\n 0x9362: 0x6FB1,\n 0x9363: 0x7530,\n 0x9364: 0x96FB,\n 0x9365: 0x514E,\n 0x9366: 0x5410,\n 0x9367: 0x5835,\n 0x9368: 0x5857,\n 0x9369: 0x59AC,\n 0x936A: 0x5C60,\n 0x936B: 0x5F92,\n 0x936C: 0x6597,\n 0x936D: 0x675C,\n 0x936E: 0x6E21,\n 0x936F: 0x767B,\n 0x9370: 0x83DF,\n 0x9371: 0x8CED,\n 0x9372: 0x9014,\n 0x9373: 0x90FD,\n 0x9374: 0x934D,\n 0x9375: 0x7825,\n 0x9376: 0x783A,\n 0x9377: 0x52AA,\n 0x9378: 0x5EA6,\n 0x9379: 0x571F,\n 0x937A: 0x5974,\n 0x937B: 0x6012,\n 0x937C: 0x5012,\n 0x937D: 0x515A,\n 0x937E: 0x51AC,\n 0x9380: 0x51CD,\n 0x9381: 0x5200,\n 0x9382: 0x5510,\n 0x9383: 0x5854,\n 0x9384: 0x5858,\n 0x9385: 0x5957,\n 0x9386: 0x5B95,\n 0x9387: 0x5CF6,\n 0x9388: 0x5D8B,\n 0x9389: 0x60BC,\n 0x938A: 0x6295,\n 0x938B: 0x642D,\n 0x938C: 0x6771,\n 0x938D: 0x6843,\n 0x938E: 0x68BC,\n 0x938F: 0x68DF,\n 0x9390: 0x76D7,\n 0x9391: 0x6DD8,\n 0x9392: 0x6E6F,\n 0x9393: 0x6D9B,\n 0x9394: 0x706F,\n 0x9395: 0x71C8,\n 0x9396: 0x5F53,\n 0x9397: 0x75D8,\n 0x9398: 0x7977,\n 0x9399: 0x7B49,\n 0x939A: 0x7B54,\n 0x939B: 0x7B52,\n 0x939C: 0x7CD6,\n 0x939D: 0x7D71,\n 0x939E: 0x5230,\n 0x939F: 0x8463,\n 0x93A0: 0x8569,\n 0x93A1: 0x85E4,\n 0x93A2: 0x8A0E,\n 0x93A3: 0x8B04,\n 0x93A4: 0x8C46,\n 0x93A5: 0x8E0F,\n 0x93A6: 0x9003,\n 0x93A7: 0x900F,\n 0x93A8: 0x9419,\n 0x93A9: 0x9676,\n 0x93AA: 0x982D,\n 0x93AB: 0x9A30,\n 0x93AC: 0x95D8,\n 0x93AD: 0x50CD,\n 0x93AE: 0x52D5,\n 0x93AF: 0x540C,\n 0x93B0: 0x5802,\n 0x93B1: 0x5C0E,\n 0x93B2: 0x61A7,\n 0x93B3: 0x649E,\n 0x93B4: 0x6D1E,\n 0x93B5: 0x77B3,\n 0x93B6: 0x7AE5,\n 0x93B7: 0x80F4,\n 0x93B8: 0x8404,\n 0x93B9: 0x9053,\n 0x93BA: 0x9285,\n 0x93BB: 0x5CE0,\n 0x93BC: 0x9D07,\n 0x93BD: 0x533F,\n 0x93BE: 0x5F97,\n 0x93BF: 0x5FB3,\n 0x93C0: 0x6D9C,\n 0x93C1: 0x7279,\n 0x93C2: 0x7763,\n 0x93C3: 0x79BF,\n 0x93C4: 0x7BE4,\n 0x93C5: 0x6BD2,\n 0x93C6: 0x72EC,\n 0x93C7: 0x8AAD,\n 0x93C8: 0x6803,\n 0x93C9: 0x6A61,\n 0x93CA: 0x51F8,\n 0x93CB: 0x7A81,\n 0x93CC: 0x6934,\n 0x93CD: 0x5C4A,\n 0x93CE: 0x9CF6,\n 0x93CF: 0x82EB,\n 0x93D0: 0x5BC5,\n 0x93D1: 0x9149,\n 0x93D2: 0x701E,\n 0x93D3: 0x5678,\n 0x93D4: 0x5C6F,\n 0x93D5: 0x60C7,\n 0x93D6: 0x6566,\n 0x93D7: 0x6C8C,\n 0x93D8: 0x8C5A,\n 0x93D9: 0x9041,\n 0x93DA: 0x9813,\n 0x93DB: 0x5451,\n 0x93DC: 0x66C7,\n 0x93DD: 0x920D,\n 0x93DE: 0x5948,\n 0x93DF: 0x90A3,\n 0x93E0: 0x5185,\n 0x93E1: 0x4E4D,\n 0x93E2: 0x51EA,\n 0x93E3: 0x8599,\n 0x93E4: 0x8B0E,\n 0x93E5: 0x7058,\n 0x93E6: 0x637A,\n 0x93E7: 0x934B,\n 0x93E8: 0x6962,\n 0x93E9: 0x99B4,\n 0x93EA: 0x7E04,\n 0x93EB: 0x7577,\n 0x93EC: 0x5357,\n 0x93ED: 0x6960,\n 0x93EE: 0x8EDF,\n 0x93EF: 0x96E3,\n 0x93F0: 0x6C5D,\n 0x93F1: 0x4E8C,\n 0x93F2: 0x5C3C,\n 0x93F3: 0x5F10,\n 0x93F4: 0x8FE9,\n 0x93F5: 0x5302,\n 0x93F6: 0x8CD1,\n 0x93F7: 0x8089,\n 0x93F8: 0x8679,\n 0x93F9: 0x5EFF,\n 0x93FA: 0x65E5,\n 0x93FB: 0x4E73,\n 0x93FC: 0x5165,\n 0x9440: 0x5982,\n 0x9441: 0x5C3F,\n 0x9442: 0x97EE,\n 0x9443: 0x4EFB,\n 0x9444: 0x598A,\n 0x9445: 0x5FCD,\n 0x9446: 0x8A8D,\n 0x9447: 0x6FE1,\n 0x9448: 0x79B0,\n 0x9449: 0x7962,\n 0x944A: 0x5BE7,\n 0x944B: 0x8471,\n 0x944C: 0x732B,\n 0x944D: 0x71B1,\n 0x944E: 0x5E74,\n 0x944F: 0x5FF5,\n 0x9450: 0x637B,\n 0x9451: 0x649A,\n 0x9452: 0x71C3,\n 0x9453: 0x7C98,\n 0x9454: 0x4E43,\n 0x9455: 0x5EFC,\n 0x9456: 0x4E4B,\n 0x9457: 0x57DC,\n 0x9458: 0x56A2,\n 0x9459: 0x60A9,\n 0x945A: 0x6FC3,\n 0x945B: 0x7D0D,\n 0x945C: 0x80FD,\n 0x945D: 0x8133,\n 0x945E: 0x81BF,\n 0x945F: 0x8FB2,\n 0x9460: 0x8997,\n 0x9461: 0x86A4,\n 0x9462: 0x5DF4,\n 0x9463: 0x628A,\n 0x9464: 0x64AD,\n 0x9465: 0x8987,\n 0x9466: 0x6777,\n 0x9467: 0x6CE2,\n 0x9468: 0x6D3E,\n 0x9469: 0x7436,\n 0x946A: 0x7834,\n 0x946B: 0x5A46,\n 0x946C: 0x7F75,\n 0x946D: 0x82AD,\n 0x946E: 0x99AC,\n 0x946F: 0x4FF3,\n 0x9470: 0x5EC3,\n 0x9471: 0x62DD,\n 0x9472: 0x6392,\n 0x9473: 0x6557,\n 0x9474: 0x676F,\n 0x9475: 0x76C3,\n 0x9476: 0x724C,\n 0x9477: 0x80CC,\n 0x9478: 0x80BA,\n 0x9479: 0x8F29,\n 0x947A: 0x914D,\n 0x947B: 0x500D,\n 0x947C: 0x57F9,\n 0x947D: 0x5A92,\n 0x947E: 0x6885,\n 0x9480: 0x6973,\n 0x9481: 0x7164,\n 0x9482: 0x72FD,\n 0x9483: 0x8CB7,\n 0x9484: 0x58F2,\n 0x9485: 0x8CE0,\n 0x9486: 0x966A,\n 0x9487: 0x9019,\n 0x9488: 0x877F,\n 0x9489: 0x79E4,\n 0x948A: 0x77E7,\n 0x948B: 0x8429,\n 0x948C: 0x4F2F,\n 0x948D: 0x5265,\n 0x948E: 0x535A,\n 0x948F: 0x62CD,\n 0x9490: 0x67CF,\n 0x9491: 0x6CCA,\n 0x9492: 0x767D,\n 0x9493: 0x7B94,\n 0x9494: 0x7C95,\n 0x9495: 0x8236,\n 0x9496: 0x8584,\n 0x9497: 0x8FEB,\n 0x9498: 0x66DD,\n 0x9499: 0x6F20,\n 0x949A: 0x7206,\n 0x949B: 0x7E1B,\n 0x949C: 0x83AB,\n 0x949D: 0x99C1,\n 0x949E: 0x9EA6,\n 0x949F: 0x51FD,\n 0x94A0: 0x7BB1,\n 0x94A1: 0x7872,\n 0x94A2: 0x7BB8,\n 0x94A3: 0x8087,\n 0x94A4: 0x7B48,\n 0x94A5: 0x6AE8,\n 0x94A6: 0x5E61,\n 0x94A7: 0x808C,\n 0x94A8: 0x7551,\n 0x94A9: 0x7560,\n 0x94AA: 0x516B,\n 0x94AB: 0x9262,\n 0x94AC: 0x6E8C,\n 0x94AD: 0x767A,\n 0x94AE: 0x9197,\n 0x94AF: 0x9AEA,\n 0x94B0: 0x4F10,\n 0x94B1: 0x7F70,\n 0x94B2: 0x629C,\n 0x94B3: 0x7B4F,\n 0x94B4: 0x95A5,\n 0x94B5: 0x9CE9,\n 0x94B6: 0x567A,\n 0x94B7: 0x5859,\n 0x94B8: 0x86E4,\n 0x94B9: 0x96BC,\n 0x94BA: 0x4F34,\n 0x94BB: 0x5224,\n 0x94BC: 0x534A,\n 0x94BD: 0x53CD,\n 0x94BE: 0x53DB,\n 0x94BF: 0x5E06,\n 0x94C0: 0x642C,\n 0x94C1: 0x6591,\n 0x94C2: 0x677F,\n 0x94C3: 0x6C3E,\n 0x94C4: 0x6C4E,\n 0x94C5: 0x7248,\n 0x94C6: 0x72AF,\n 0x94C7: 0x73ED,\n 0x94C8: 0x7554,\n 0x94C9: 0x7E41,\n 0x94CA: 0x822C,\n 0x94CB: 0x85E9,\n 0x94CC: 0x8CA9,\n 0x94CD: 0x7BC4,\n 0x94CE: 0x91C6,\n 0x94CF: 0x7169,\n 0x94D0: 0x9812,\n 0x94D1: 0x98EF,\n 0x94D2: 0x633D,\n 0x94D3: 0x6669,\n 0x94D4: 0x756A,\n 0x94D5: 0x76E4,\n 0x94D6: 0x78D0,\n 0x94D7: 0x8543,\n 0x94D8: 0x86EE,\n 0x94D9: 0x532A,\n 0x94DA: 0x5351,\n 0x94DB: 0x5426,\n 0x94DC: 0x5983,\n 0x94DD: 0x5E87,\n 0x94DE: 0x5F7C,\n 0x94DF: 0x60B2,\n 0x94E0: 0x6249,\n 0x94E1: 0x6279,\n 0x94E2: 0x62AB,\n 0x94E3: 0x6590,\n 0x94E4: 0x6BD4,\n 0x94E5: 0x6CCC,\n 0x94E6: 0x75B2,\n 0x94E7: 0x76AE,\n 0x94E8: 0x7891,\n 0x94E9: 0x79D8,\n 0x94EA: 0x7DCB,\n 0x94EB: 0x7F77,\n 0x94EC: 0x80A5,\n 0x94ED: 0x88AB,\n 0x94EE: 0x8AB9,\n 0x94EF: 0x8CBB,\n 0x94F0: 0x907F,\n 0x94F1: 0x975E,\n 0x94F2: 0x98DB,\n 0x94F3: 0x6A0B,\n 0x94F4: 0x7C38,\n 0x94F5: 0x5099,\n 0x94F6: 0x5C3E,\n 0x94F7: 0x5FAE,\n 0x94F8: 0x6787,\n 0x94F9: 0x6BD8,\n 0x94FA: 0x7435,\n 0x94FB: 0x7709,\n 0x94FC: 0x7F8E,\n 0x9540: 0x9F3B,\n 0x9541: 0x67CA,\n 0x9542: 0x7A17,\n 0x9543: 0x5339,\n 0x9544: 0x758B,\n 0x9545: 0x9AED,\n 0x9546: 0x5F66,\n 0x9547: 0x819D,\n 0x9548: 0x83F1,\n 0x9549: 0x8098,\n 0x954A: 0x5F3C,\n 0x954B: 0x5FC5,\n 0x954C: 0x7562,\n 0x954D: 0x7B46,\n 0x954E: 0x903C,\n 0x954F: 0x6867,\n 0x9550: 0x59EB,\n 0x9551: 0x5A9B,\n 0x9552: 0x7D10,\n 0x9553: 0x767E,\n 0x9554: 0x8B2C,\n 0x9555: 0x4FF5,\n 0x9556: 0x5F6A,\n 0x9557: 0x6A19,\n 0x9558: 0x6C37,\n 0x9559: 0x6F02,\n 0x955A: 0x74E2,\n 0x955B: 0x7968,\n 0x955C: 0x8868,\n 0x955D: 0x8A55,\n 0x955E: 0x8C79,\n 0x955F: 0x5EDF,\n 0x9560: 0x63CF,\n 0x9561: 0x75C5,\n 0x9562: 0x79D2,\n 0x9563: 0x82D7,\n 0x9564: 0x9328,\n 0x9565: 0x92F2,\n 0x9566: 0x849C,\n 0x9567: 0x86ED,\n 0x9568: 0x9C2D,\n 0x9569: 0x54C1,\n 0x956A: 0x5F6C,\n 0x956B: 0x658C,\n 0x956C: 0x6D5C,\n 0x956D: 0x7015,\n 0x956E: 0x8CA7,\n 0x956F: 0x8CD3,\n 0x9570: 0x983B,\n 0x9571: 0x654F,\n 0x9572: 0x74F6,\n 0x9573: 0x4E0D,\n 0x9574: 0x4ED8,\n 0x9575: 0x57E0,\n 0x9576: 0x592B,\n 0x9577: 0x5A66,\n 0x9578: 0x5BCC,\n 0x9579: 0x51A8,\n 0x957A: 0x5E03,\n 0x957B: 0x5E9C,\n 0x957C: 0x6016,\n 0x957D: 0x6276,\n 0x957E: 0x6577,\n 0x9580: 0x65A7,\n 0x9581: 0x666E,\n 0x9582: 0x6D6E,\n 0x9583: 0x7236,\n 0x9584: 0x7B26,\n 0x9585: 0x8150,\n 0x9586: 0x819A,\n 0x9587: 0x8299,\n 0x9588: 0x8B5C,\n 0x9589: 0x8CA0,\n 0x958A: 0x8CE6,\n 0x958B: 0x8D74,\n 0x958C: 0x961C,\n 0x958D: 0x9644,\n 0x958E: 0x4FAE,\n 0x958F: 0x64AB,\n 0x9590: 0x6B66,\n 0x9591: 0x821E,\n 0x9592: 0x8461,\n 0x9593: 0x856A,\n 0x9594: 0x90E8,\n 0x9595: 0x5C01,\n 0x9596: 0x6953,\n 0x9597: 0x98A8,\n 0x9598: 0x847A,\n 0x9599: 0x8557,\n 0x959A: 0x4F0F,\n 0x959B: 0x526F,\n 0x959C: 0x5FA9,\n 0x959D: 0x5E45,\n 0x959E: 0x670D,\n 0x959F: 0x798F,\n 0x95A0: 0x8179,\n 0x95A1: 0x8907,\n 0x95A2: 0x8986,\n 0x95A3: 0x6DF5,\n 0x95A4: 0x5F17,\n 0x95A5: 0x6255,\n 0x95A6: 0x6CB8,\n 0x95A7: 0x4ECF,\n 0x95A8: 0x7269,\n 0x95A9: 0x9B92,\n 0x95AA: 0x5206,\n 0x95AB: 0x543B,\n 0x95AC: 0x5674,\n 0x95AD: 0x58B3,\n 0x95AE: 0x61A4,\n 0x95AF: 0x626E,\n 0x95B0: 0x711A,\n 0x95B1: 0x596E,\n 0x95B2: 0x7C89,\n 0x95B3: 0x7CDE,\n 0x95B4: 0x7D1B,\n 0x95B5: 0x96F0,\n 0x95B6: 0x6587,\n 0x95B7: 0x805E,\n 0x95B8: 0x4E19,\n 0x95B9: 0x4F75,\n 0x95BA: 0x5175,\n 0x95BB: 0x5840,\n 0x95BC: 0x5E63,\n 0x95BD: 0x5E73,\n 0x95BE: 0x5F0A,\n 0x95BF: 0x67C4,\n 0x95C0: 0x4E26,\n 0x95C1: 0x853D,\n 0x95C2: 0x9589,\n 0x95C3: 0x965B,\n 0x95C4: 0x7C73,\n 0x95C5: 0x9801,\n 0x95C6: 0x50FB,\n 0x95C7: 0x58C1,\n 0x95C8: 0x7656,\n 0x95C9: 0x78A7,\n 0x95CA: 0x5225,\n 0x95CB: 0x77A5,\n 0x95CC: 0x8511,\n 0x95CD: 0x7B86,\n 0x95CE: 0x504F,\n 0x95CF: 0x5909,\n 0x95D0: 0x7247,\n 0x95D1: 0x7BC7,\n 0x95D2: 0x7DE8,\n 0x95D3: 0x8FBA,\n 0x95D4: 0x8FD4,\n 0x95D5: 0x904D,\n 0x95D6: 0x4FBF,\n 0x95D7: 0x52C9,\n 0x95D8: 0x5A29,\n 0x95D9: 0x5F01,\n 0x95DA: 0x97AD,\n 0x95DB: 0x4FDD,\n 0x95DC: 0x8217,\n 0x95DD: 0x92EA,\n 0x95DE: 0x5703,\n 0x95DF: 0x6355,\n 0x95E0: 0x6B69,\n 0x95E1: 0x752B,\n 0x95E2: 0x88DC,\n 0x95E3: 0x8F14,\n 0x95E4: 0x7A42,\n 0x95E5: 0x52DF,\n 0x95E6: 0x5893,\n 0x95E7: 0x6155,\n 0x95E8: 0x620A,\n 0x95E9: 0x66AE,\n 0x95EA: 0x6BCD,\n 0x95EB: 0x7C3F,\n 0x95EC: 0x83E9,\n 0x95ED: 0x5023,\n 0x95EE: 0x4FF8,\n 0x95EF: 0x5305,\n 0x95F0: 0x5446,\n 0x95F1: 0x5831,\n 0x95F2: 0x5949,\n 0x95F3: 0x5B9D,\n 0x95F4: 0x5CF0,\n 0x95F5: 0x5CEF,\n 0x95F6: 0x5D29,\n 0x95F7: 0x5E96,\n 0x95F8: 0x62B1,\n 0x95F9: 0x6367,\n 0x95FA: 0x653E,\n 0x95FB: 0x65B9,\n 0x95FC: 0x670B,\n 0x9640: 0x6CD5,\n 0x9641: 0x6CE1,\n 0x9642: 0x70F9,\n 0x9643: 0x7832,\n 0x9644: 0x7E2B,\n 0x9645: 0x80DE,\n 0x9646: 0x82B3,\n 0x9647: 0x840C,\n 0x9648: 0x84EC,\n 0x9649: 0x8702,\n 0x964A: 0x8912,\n 0x964B: 0x8A2A,\n 0x964C: 0x8C4A,\n 0x964D: 0x90A6,\n 0x964E: 0x92D2,\n 0x964F: 0x98FD,\n 0x9650: 0x9CF3,\n 0x9651: 0x9D6C,\n 0x9652: 0x4E4F,\n 0x9653: 0x4EA1,\n 0x9654: 0x508D,\n 0x9655: 0x5256,\n 0x9656: 0x574A,\n 0x9657: 0x59A8,\n 0x9658: 0x5E3D,\n 0x9659: 0x5FD8,\n 0x965A: 0x5FD9,\n 0x965B: 0x623F,\n 0x965C: 0x66B4,\n 0x965D: 0x671B,\n 0x965E: 0x67D0,\n 0x965F: 0x68D2,\n 0x9660: 0x5192,\n 0x9661: 0x7D21,\n 0x9662: 0x80AA,\n 0x9663: 0x81A8,\n 0x9664: 0x8B00,\n 0x9665: 0x8C8C,\n 0x9666: 0x8CBF,\n 0x9667: 0x927E,\n 0x9668: 0x9632,\n 0x9669: 0x5420,\n 0x966A: 0x982C,\n 0x966B: 0x5317,\n 0x966C: 0x50D5,\n 0x966D: 0x535C,\n 0x966E: 0x58A8,\n 0x966F: 0x64B2,\n 0x9670: 0x6734,\n 0x9671: 0x7267,\n 0x9672: 0x7766,\n 0x9673: 0x7A46,\n 0x9674: 0x91E6,\n 0x9675: 0x52C3,\n 0x9676: 0x6CA1,\n 0x9677: 0x6B86,\n 0x9678: 0x5800,\n 0x9679: 0x5E4C,\n 0x967A: 0x5954,\n 0x967B: 0x672C,\n 0x967C: 0x7FFB,\n 0x967D: 0x51E1,\n 0x967E: 0x76C6,\n 0x9680: 0x6469,\n 0x9681: 0x78E8,\n 0x9682: 0x9B54,\n 0x9683: 0x9EBB,\n 0x9684: 0x57CB,\n 0x9685: 0x59B9,\n 0x9686: 0x6627,\n 0x9687: 0x679A,\n 0x9688: 0x6BCE,\n 0x9689: 0x54E9,\n 0x968A: 0x69D9,\n 0x968B: 0x5E55,\n 0x968C: 0x819C,\n 0x968D: 0x6795,\n 0x968E: 0x9BAA,\n 0x968F: 0x67FE,\n 0x9690: 0x9C52,\n 0x9691: 0x685D,\n 0x9692: 0x4EA6,\n 0x9693: 0x4FE3,\n 0x9694: 0x53C8,\n 0x9695: 0x62B9,\n 0x9696: 0x672B,\n 0x9697: 0x6CAB,\n 0x9698: 0x8FC4,\n 0x9699: 0x4FAD,\n 0x969A: 0x7E6D,\n 0x969B: 0x9EBF,\n 0x969C: 0x4E07,\n 0x969D: 0x6162,\n 0x969E: 0x6E80,\n 0x969F: 0x6F2B,\n 0x96A0: 0x8513,\n 0x96A1: 0x5473,\n 0x96A2: 0x672A,\n 0x96A3: 0x9B45,\n 0x96A4: 0x5DF3,\n 0x96A5: 0x7B95,\n 0x96A6: 0x5CAC,\n 0x96A7: 0x5BC6,\n 0x96A8: 0x871C,\n 0x96A9: 0x6E4A,\n 0x96AA: 0x84D1,\n 0x96AB: 0x7A14,\n 0x96AC: 0x8108,\n 0x96AD: 0x5999,\n 0x96AE: 0x7C8D,\n 0x96AF: 0x6C11,\n 0x96B0: 0x7720,\n 0x96B1: 0x52D9,\n 0x96B2: 0x5922,\n 0x96B3: 0x7121,\n 0x96B4: 0x725F,\n 0x96B5: 0x77DB,\n 0x96B6: 0x9727,\n 0x96B7: 0x9D61,\n 0x96B8: 0x690B,\n 0x96B9: 0x5A7F,\n 0x96BA: 0x5A18,\n 0x96BB: 0x51A5,\n 0x96BC: 0x540D,\n 0x96BD: 0x547D,\n 0x96BE: 0x660E,\n 0x96BF: 0x76DF,\n 0x96C0: 0x8FF7,\n 0x96C1: 0x9298,\n 0x96C2: 0x9CF4,\n 0x96C3: 0x59EA,\n 0x96C4: 0x725D,\n 0x96C5: 0x6EC5,\n 0x96C6: 0x514D,\n 0x96C7: 0x68C9,\n 0x96C8: 0x7DBF,\n 0x96C9: 0x7DEC,\n 0x96CA: 0x9762,\n 0x96CB: 0x9EBA,\n 0x96CC: 0x6478,\n 0x96CD: 0x6A21,\n 0x96CE: 0x8302,\n 0x96CF: 0x5984,\n 0x96D0: 0x5B5F,\n 0x96D1: 0x6BDB,\n 0x96D2: 0x731B,\n 0x96D3: 0x76F2,\n 0x96D4: 0x7DB2,\n 0x96D5: 0x8017,\n 0x96D6: 0x8499,\n 0x96D7: 0x5132,\n 0x96D8: 0x6728,\n 0x96D9: 0x9ED9,\n 0x96DA: 0x76EE,\n 0x96DB: 0x6762,\n 0x96DC: 0x52FF,\n 0x96DD: 0x9905,\n 0x96DE: 0x5C24,\n 0x96DF: 0x623B,\n 0x96E0: 0x7C7E,\n 0x96E1: 0x8CB0,\n 0x96E2: 0x554F,\n 0x96E3: 0x60B6,\n 0x96E4: 0x7D0B,\n 0x96E5: 0x9580,\n 0x96E6: 0x5301,\n 0x96E7: 0x4E5F,\n 0x96E8: 0x51B6,\n 0x96E9: 0x591C,\n 0x96EA: 0x723A,\n 0x96EB: 0x8036,\n 0x96EC: 0x91CE,\n 0x96ED: 0x5F25,\n 0x96EE: 0x77E2,\n 0x96EF: 0x5384,\n 0x96F0: 0x5F79,\n 0x96F1: 0x7D04,\n 0x96F2: 0x85AC,\n 0x96F3: 0x8A33,\n 0x96F4: 0x8E8D,\n 0x96F5: 0x9756,\n 0x96F6: 0x67F3,\n 0x96F7: 0x85AE,\n 0x96F8: 0x9453,\n 0x96F9: 0x6109,\n 0x96FA: 0x6108,\n 0x96FB: 0x6CB9,\n 0x96FC: 0x7652,\n 0x9740: 0x8AED,\n 0x9741: 0x8F38,\n 0x9742: 0x552F,\n 0x9743: 0x4F51,\n 0x9744: 0x512A,\n 0x9745: 0x52C7,\n 0x9746: 0x53CB,\n 0x9747: 0x5BA5,\n 0x9748: 0x5E7D,\n 0x9749: 0x60A0,\n 0x974A: 0x6182,\n 0x974B: 0x63D6,\n 0x974C: 0x6709,\n 0x974D: 0x67DA,\n 0x974E: 0x6E67,\n 0x974F: 0x6D8C,\n 0x9750: 0x7336,\n 0x9751: 0x7337,\n 0x9752: 0x7531,\n 0x9753: 0x7950,\n 0x9754: 0x88D5,\n 0x9755: 0x8A98,\n 0x9756: 0x904A,\n 0x9757: 0x9091,\n 0x9758: 0x90F5,\n 0x9759: 0x96C4,\n 0x975A: 0x878D,\n 0x975B: 0x5915,\n 0x975C: 0x4E88,\n 0x975D: 0x4F59,\n 0x975E: 0x4E0E,\n 0x975F: 0x8A89,\n 0x9760: 0x8F3F,\n 0x9761: 0x9810,\n 0x9762: 0x50AD,\n 0x9763: 0x5E7C,\n 0x9764: 0x5996,\n 0x9765: 0x5BB9,\n 0x9766: 0x5EB8,\n 0x9767: 0x63DA,\n 0x9768: 0x63FA,\n 0x9769: 0x64C1,\n 0x976A: 0x66DC,\n 0x976B: 0x694A,\n 0x976C: 0x69D8,\n 0x976D: 0x6D0B,\n 0x976E: 0x6EB6,\n 0x976F: 0x7194,\n 0x9770: 0x7528,\n 0x9771: 0x7AAF,\n 0x9772: 0x7F8A,\n 0x9773: 0x8000,\n 0x9774: 0x8449,\n 0x9775: 0x84C9,\n 0x9776: 0x8981,\n 0x9777: 0x8B21,\n 0x9778: 0x8E0A,\n 0x9779: 0x9065,\n 0x977A: 0x967D,\n 0x977B: 0x990A,\n 0x977C: 0x617E,\n 0x977D: 0x6291,\n 0x977E: 0x6B32,\n 0x9780: 0x6C83,\n 0x9781: 0x6D74,\n 0x9782: 0x7FCC,\n 0x9783: 0x7FFC,\n 0x9784: 0x6DC0,\n 0x9785: 0x7F85,\n 0x9786: 0x87BA,\n 0x9787: 0x88F8,\n 0x9788: 0x6765,\n 0x9789: 0x83B1,\n 0x978A: 0x983C,\n 0x978B: 0x96F7,\n 0x978C: 0x6D1B,\n 0x978D: 0x7D61,\n 0x978E: 0x843D,\n 0x978F: 0x916A,\n 0x9790: 0x4E71,\n 0x9791: 0x5375,\n 0x9792: 0x5D50,\n 0x9793: 0x6B04,\n 0x9794: 0x6FEB,\n 0x9795: 0x85CD,\n 0x9796: 0x862D,\n 0x9797: 0x89A7,\n 0x9798: 0x5229,\n 0x9799: 0x540F,\n 0x979A: 0x5C65,\n 0x979B: 0x674E,\n 0x979C: 0x68A8,\n 0x979D: 0x7406,\n 0x979E: 0x7483,\n 0x979F: 0x75E2,\n 0x97A0: 0x88CF,\n 0x97A1: 0x88E1,\n 0x97A2: 0x91CC,\n 0x97A3: 0x96E2,\n 0x97A4: 0x9678,\n 0x97A5: 0x5F8B,\n 0x97A6: 0x7387,\n 0x97A7: 0x7ACB,\n 0x97A8: 0x844E,\n 0x97A9: 0x63A0,\n 0x97AA: 0x7565,\n 0x97AB: 0x5289,\n 0x97AC: 0x6D41,\n 0x97AD: 0x6E9C,\n 0x97AE: 0x7409,\n 0x97AF: 0x7559,\n 0x97B0: 0x786B,\n 0x97B1: 0x7C92,\n 0x97B2: 0x9686,\n 0x97B3: 0x7ADC,\n 0x97B4: 0x9F8D,\n 0x97B5: 0x4FB6,\n 0x97B6: 0x616E,\n 0x97B7: 0x65C5,\n 0x97B8: 0x865C,\n 0x97B9: 0x4E86,\n 0x97BA: 0x4EAE,\n 0x97BB: 0x50DA,\n 0x97BC: 0x4E21,\n 0x97BD: 0x51CC,\n 0x97BE: 0x5BEE,\n 0x97BF: 0x6599,\n 0x97C0: 0x6881,\n 0x97C1: 0x6DBC,\n 0x97C2: 0x731F,\n 0x97C3: 0x7642,\n 0x97C4: 0x77AD,\n 0x97C5: 0x7A1C,\n 0x97C6: 0x7CE7,\n 0x97C7: 0x826F,\n 0x97C8: 0x8AD2,\n 0x97C9: 0x907C,\n 0x97CA: 0x91CF,\n 0x97CB: 0x9675,\n 0x97CC: 0x9818,\n 0x97CD: 0x529B,\n 0x97CE: 0x7DD1,\n 0x97CF: 0x502B,\n 0x97D0: 0x5398,\n 0x97D1: 0x6797,\n 0x97D2: 0x6DCB,\n 0x97D3: 0x71D0,\n 0x97D4: 0x7433,\n 0x97D5: 0x81E8,\n 0x97D6: 0x8F2A,\n 0x97D7: 0x96A3,\n 0x97D8: 0x9C57,\n 0x97D9: 0x9E9F,\n 0x97DA: 0x7460,\n 0x97DB: 0x5841,\n 0x97DC: 0x6D99,\n 0x97DD: 0x7D2F,\n 0x97DE: 0x985E,\n 0x97DF: 0x4EE4,\n 0x97E0: 0x4F36,\n 0x97E1: 0x4F8B,\n 0x97E2: 0x51B7,\n 0x97E3: 0x52B1,\n 0x97E4: 0x5DBA,\n 0x97E5: 0x601C,\n 0x97E6: 0x73B2,\n 0x97E7: 0x793C,\n 0x97E8: 0x82D3,\n 0x97E9: 0x9234,\n 0x97EA: 0x96B7,\n 0x97EB: 0x96F6,\n 0x97EC: 0x970A,\n 0x97ED: 0x9E97,\n 0x97EE: 0x9F62,\n 0x97EF: 0x66A6,\n 0x97F0: 0x6B74,\n 0x97F1: 0x5217,\n 0x97F2: 0x52A3,\n 0x97F3: 0x70C8,\n 0x97F4: 0x88C2,\n 0x97F5: 0x5EC9,\n 0x97F6: 0x604B,\n 0x97F7: 0x6190,\n 0x97F8: 0x6F23,\n 0x97F9: 0x7149,\n 0x97FA: 0x7C3E,\n 0x97FB: 0x7DF4,\n 0x97FC: 0x806F,\n 0x9840: 0x84EE,\n 0x9841: 0x9023,\n 0x9842: 0x932C,\n 0x9843: 0x5442,\n 0x9844: 0x9B6F,\n 0x9845: 0x6AD3,\n 0x9846: 0x7089,\n 0x9847: 0x8CC2,\n 0x9848: 0x8DEF,\n 0x9849: 0x9732,\n 0x984A: 0x52B4,\n 0x984B: 0x5A41,\n 0x984C: 0x5ECA,\n 0x984D: 0x5F04,\n 0x984E: 0x6717,\n 0x984F: 0x697C,\n 0x9850: 0x6994,\n 0x9851: 0x6D6A,\n 0x9852: 0x6F0F,\n 0x9853: 0x7262,\n 0x9854: 0x72FC,\n 0x9855: 0x7BED,\n 0x9856: 0x8001,\n 0x9857: 0x807E,\n 0x9858: 0x874B,\n 0x9859: 0x90CE,\n 0x985A: 0x516D,\n 0x985B: 0x9E93,\n 0x985C: 0x7984,\n 0x985D: 0x808B,\n 0x985E: 0x9332,\n 0x985F: 0x8AD6,\n 0x9860: 0x502D,\n 0x9861: 0x548C,\n 0x9862: 0x8A71,\n 0x9863: 0x6B6A,\n 0x9864: 0x8CC4,\n 0x9865: 0x8107,\n 0x9866: 0x60D1,\n 0x9867: 0x67A0,\n 0x9868: 0x9DF2,\n 0x9869: 0x4E99,\n 0x986A: 0x4E98,\n 0x986B: 0x9C10,\n 0x986C: 0x8A6B,\n 0x986D: 0x85C1,\n 0x986E: 0x8568,\n 0x986F: 0x6900,\n 0x9870: 0x6E7E,\n 0x9871: 0x7897,\n 0x9872: 0x8155,\n 0x989F: 0x5F0C,\n 0x98A0: 0x4E10,\n 0x98A1: 0x4E15,\n 0x98A2: 0x4E2A,\n 0x98A3: 0x4E31,\n 0x98A4: 0x4E36,\n 0x98A5: 0x4E3C,\n 0x98A6: 0x4E3F,\n 0x98A7: 0x4E42,\n 0x98A8: 0x4E56,\n 0x98A9: 0x4E58,\n 0x98AA: 0x4E82,\n 0x98AB: 0x4E85,\n 0x98AC: 0x8C6B,\n 0x98AD: 0x4E8A,\n 0x98AE: 0x8212,\n 0x98AF: 0x5F0D,\n 0x98B0: 0x4E8E,\n 0x98B1: 0x4E9E,\n 0x98B2: 0x4E9F,\n 0x98B3: 0x4EA0,\n 0x98B4: 0x4EA2,\n 0x98B5: 0x4EB0,\n 0x98B6: 0x4EB3,\n 0x98B7: 0x4EB6,\n 0x98B8: 0x4ECE,\n 0x98B9: 0x4ECD,\n 0x98BA: 0x4EC4,\n 0x98BB: 0x4EC6,\n 0x98BC: 0x4EC2,\n 0x98BD: 0x4ED7,\n 0x98BE: 0x4EDE,\n 0x98BF: 0x4EED,\n 0x98C0: 0x4EDF,\n 0x98C1: 0x4EF7,\n 0x98C2: 0x4F09,\n 0x98C3: 0x4F5A,\n 0x98C4: 0x4F30,\n 0x98C5: 0x4F5B,\n 0x98C6: 0x4F5D,\n 0x98C7: 0x4F57,\n 0x98C8: 0x4F47,\n 0x98C9: 0x4F76,\n 0x98CA: 0x4F88,\n 0x98CB: 0x4F8F,\n 0x98CC: 0x4F98,\n 0x98CD: 0x4F7B,\n 0x98CE: 0x4F69,\n 0x98CF: 0x4F70,\n 0x98D0: 0x4F91,\n 0x98D1: 0x4F6F,\n 0x98D2: 0x4F86,\n 0x98D3: 0x4F96,\n 0x98D4: 0x5118,\n 0x98D5: 0x4FD4,\n 0x98D6: 0x4FDF,\n 0x98D7: 0x4FCE,\n 0x98D8: 0x4FD8,\n 0x98D9: 0x4FDB,\n 0x98DA: 0x4FD1,\n 0x98DB: 0x4FDA,\n 0x98DC: 0x4FD0,\n 0x98DD: 0x4FE4,\n 0x98DE: 0x4FE5,\n 0x98DF: 0x501A,\n 0x98E0: 0x5028,\n 0x98E1: 0x5014,\n 0x98E2: 0x502A,\n 0x98E3: 0x5025,\n 0x98E4: 0x5005,\n 0x98E5: 0x4F1C,\n 0x98E6: 0x4FF6,\n 0x98E7: 0x5021,\n 0x98E8: 0x5029,\n 0x98E9: 0x502C,\n 0x98EA: 0x4FFE,\n 0x98EB: 0x4FEF,\n 0x98EC: 0x5011,\n 0x98ED: 0x5006,\n 0x98EE: 0x5043,\n 0x98EF: 0x5047,\n 0x98F0: 0x6703,\n 0x98F1: 0x5055,\n 0x98F2: 0x5050,\n 0x98F3: 0x5048,\n 0x98F4: 0x505A,\n 0x98F5: 0x5056,\n 0x98F6: 0x506C,\n 0x98F7: 0x5078,\n 0x98F8: 0x5080,\n 0x98F9: 0x509A,\n 0x98FA: 0x5085,\n 0x98FB: 0x50B4,\n 0x98FC: 0x50B2,\n 0x9940: 0x50C9,\n 0x9941: 0x50CA,\n 0x9942: 0x50B3,\n 0x9943: 0x50C2,\n 0x9944: 0x50D6,\n 0x9945: 0x50DE,\n 0x9946: 0x50E5,\n 0x9947: 0x50ED,\n 0x9948: 0x50E3,\n 0x9949: 0x50EE,\n 0x994A: 0x50F9,\n 0x994B: 0x50F5,\n 0x994C: 0x5109,\n 0x994D: 0x5101,\n 0x994E: 0x5102,\n 0x994F: 0x5116,\n 0x9950: 0x5115,\n 0x9951: 0x5114,\n 0x9952: 0x511A,\n 0x9953: 0x5121,\n 0x9954: 0x513A,\n 0x9955: 0x5137,\n 0x9956: 0x513C,\n 0x9957: 0x513B,\n 0x9958: 0x513F,\n 0x9959: 0x5140,\n 0x995A: 0x5152,\n 0x995B: 0x514C,\n 0x995C: 0x5154,\n 0x995D: 0x5162,\n 0x995E: 0x7AF8,\n 0x995F: 0x5169,\n 0x9960: 0x516A,\n 0x9961: 0x516E,\n 0x9962: 0x5180,\n 0x9963: 0x5182,\n 0x9964: 0x56D8,\n 0x9965: 0x518C,\n 0x9966: 0x5189,\n 0x9967: 0x518F,\n 0x9968: 0x5191,\n 0x9969: 0x5193,\n 0x996A: 0x5195,\n 0x996B: 0x5196,\n 0x996C: 0x51A4,\n 0x996D: 0x51A6,\n 0x996E: 0x51A2,\n 0x996F: 0x51A9,\n 0x9970: 0x51AA,\n 0x9971: 0x51AB,\n 0x9972: 0x51B3,\n 0x9973: 0x51B1,\n 0x9974: 0x51B2,\n 0x9975: 0x51B0,\n 0x9976: 0x51B5,\n 0x9977: 0x51BD,\n 0x9978: 0x51C5,\n 0x9979: 0x51C9,\n 0x997A: 0x51DB,\n 0x997B: 0x51E0,\n 0x997C: 0x8655,\n 0x997D: 0x51E9,\n 0x997E: 0x51ED,\n 0x9980: 0x51F0,\n 0x9981: 0x51F5,\n 0x9982: 0x51FE,\n 0x9983: 0x5204,\n 0x9984: 0x520B,\n 0x9985: 0x5214,\n 0x9986: 0x520E,\n 0x9987: 0x5227,\n 0x9988: 0x522A,\n 0x9989: 0x522E,\n 0x998A: 0x5233,\n 0x998B: 0x5239,\n 0x998C: 0x524F,\n 0x998D: 0x5244,\n 0x998E: 0x524B,\n 0x998F: 0x524C,\n 0x9990: 0x525E,\n 0x9991: 0x5254,\n 0x9992: 0x526A,\n 0x9993: 0x5274,\n 0x9994: 0x5269,\n 0x9995: 0x5273,\n 0x9996: 0x527F,\n 0x9997: 0x527D,\n 0x9998: 0x528D,\n 0x9999: 0x5294,\n 0x999A: 0x5292,\n 0x999B: 0x5271,\n 0x999C: 0x5288,\n 0x999D: 0x5291,\n 0x999E: 0x8FA8,\n 0x999F: 0x8FA7,\n 0x99A0: 0x52AC,\n 0x99A1: 0x52AD,\n 0x99A2: 0x52BC,\n 0x99A3: 0x52B5,\n 0x99A4: 0x52C1,\n 0x99A5: 0x52CD,\n 0x99A6: 0x52D7,\n 0x99A7: 0x52DE,\n 0x99A8: 0x52E3,\n 0x99A9: 0x52E6,\n 0x99AA: 0x98ED,\n 0x99AB: 0x52E0,\n 0x99AC: 0x52F3,\n 0x99AD: 0x52F5,\n 0x99AE: 0x52F8,\n 0x99AF: 0x52F9,\n 0x99B0: 0x5306,\n 0x99B1: 0x5308,\n 0x99B2: 0x7538,\n 0x99B3: 0x530D,\n 0x99B4: 0x5310,\n 0x99B5: 0x530F,\n 0x99B6: 0x5315,\n 0x99B7: 0x531A,\n 0x99B8: 0x5323,\n 0x99B9: 0x532F,\n 0x99BA: 0x5331,\n 0x99BB: 0x5333,\n 0x99BC: 0x5338,\n 0x99BD: 0x5340,\n 0x99BE: 0x5346,\n 0x99BF: 0x5345,\n 0x99C0: 0x4E17,\n 0x99C1: 0x5349,\n 0x99C2: 0x534D,\n 0x99C3: 0x51D6,\n 0x99C4: 0x535E,\n 0x99C5: 0x5369,\n 0x99C6: 0x536E,\n 0x99C7: 0x5918,\n 0x99C8: 0x537B,\n 0x99C9: 0x5377,\n 0x99CA: 0x5382,\n 0x99CB: 0x5396,\n 0x99CC: 0x53A0,\n 0x99CD: 0x53A6,\n 0x99CE: 0x53A5,\n 0x99CF: 0x53AE,\n 0x99D0: 0x53B0,\n 0x99D1: 0x53B6,\n 0x99D2: 0x53C3,\n 0x99D3: 0x7C12,\n 0x99D4: 0x96D9,\n 0x99D5: 0x53DF,\n 0x99D6: 0x66FC,\n 0x99D7: 0x71EE,\n 0x99D8: 0x53EE,\n 0x99D9: 0x53E8,\n 0x99DA: 0x53ED,\n 0x99DB: 0x53FA,\n 0x99DC: 0x5401,\n 0x99DD: 0x543D,\n 0x99DE: 0x5440,\n 0x99DF: 0x542C,\n 0x99E0: 0x542D,\n 0x99E1: 0x543C,\n 0x99E2: 0x542E,\n 0x99E3: 0x5436,\n 0x99E4: 0x5429,\n 0x99E5: 0x541D,\n 0x99E6: 0x544E,\n 0x99E7: 0x548F,\n 0x99E8: 0x5475,\n 0x99E9: 0x548E,\n 0x99EA: 0x545F,\n 0x99EB: 0x5471,\n 0x99EC: 0x5477,\n 0x99ED: 0x5470,\n 0x99EE: 0x5492,\n 0x99EF: 0x547B,\n 0x99F0: 0x5480,\n 0x99F1: 0x5476,\n 0x99F2: 0x5484,\n 0x99F3: 0x5490,\n 0x99F4: 0x5486,\n 0x99F5: 0x54C7,\n 0x99F6: 0x54A2,\n 0x99F7: 0x54B8,\n 0x99F8: 0x54A5,\n 0x99F9: 0x54AC,\n 0x99FA: 0x54C4,\n 0x99FB: 0x54C8,\n 0x99FC: 0x54A8,\n 0x9A40: 0x54AB,\n 0x9A41: 0x54C2,\n 0x9A42: 0x54A4,\n 0x9A43: 0x54BE,\n 0x9A44: 0x54BC,\n 0x9A45: 0x54D8,\n 0x9A46: 0x54E5,\n 0x9A47: 0x54E6,\n 0x9A48: 0x550F,\n 0x9A49: 0x5514,\n 0x9A4A: 0x54FD,\n 0x9A4B: 0x54EE,\n 0x9A4C: 0x54ED,\n 0x9A4D: 0x54FA,\n 0x9A4E: 0x54E2,\n 0x9A4F: 0x5539,\n 0x9A50: 0x5540,\n 0x9A51: 0x5563,\n 0x9A52: 0x554C,\n 0x9A53: 0x552E,\n 0x9A54: 0x555C,\n 0x9A55: 0x5545,\n 0x9A56: 0x5556,\n 0x9A57: 0x5557,\n 0x9A58: 0x5538,\n 0x9A59: 0x5533,\n 0x9A5A: 0x555D,\n 0x9A5B: 0x5599,\n 0x9A5C: 0x5580,\n 0x9A5D: 0x54AF,\n 0x9A5E: 0x558A,\n 0x9A5F: 0x559F,\n 0x9A60: 0x557B,\n 0x9A61: 0x557E,\n 0x9A62: 0x5598,\n 0x9A63: 0x559E,\n 0x9A64: 0x55AE,\n 0x9A65: 0x557C,\n 0x9A66: 0x5583,\n 0x9A67: 0x55A9,\n 0x9A68: 0x5587,\n 0x9A69: 0x55A8,\n 0x9A6A: 0x55DA,\n 0x9A6B: 0x55C5,\n 0x9A6C: 0x55DF,\n 0x9A6D: 0x55C4,\n 0x9A6E: 0x55DC,\n 0x9A6F: 0x55E4,\n 0x9A70: 0x55D4,\n 0x9A71: 0x5614,\n 0x9A72: 0x55F7,\n 0x9A73: 0x5616,\n 0x9A74: 0x55FE,\n 0x9A75: 0x55FD,\n 0x9A76: 0x561B,\n 0x9A77: 0x55F9,\n 0x9A78: 0x564E,\n 0x9A79: 0x5650,\n 0x9A7A: 0x71DF,\n 0x9A7B: 0x5634,\n 0x9A7C: 0x5636,\n 0x9A7D: 0x5632,\n 0x9A7E: 0x5638,\n 0x9A80: 0x566B,\n 0x9A81: 0x5664,\n 0x9A82: 0x562F,\n 0x9A83: 0x566C,\n 0x9A84: 0x566A,\n 0x9A85: 0x5686,\n 0x9A86: 0x5680,\n 0x9A87: 0x568A,\n 0x9A88: 0x56A0,\n 0x9A89: 0x5694,\n 0x9A8A: 0x568F,\n 0x9A8B: 0x56A5,\n 0x9A8C: 0x56AE,\n 0x9A8D: 0x56B6,\n 0x9A8E: 0x56B4,\n 0x9A8F: 0x56C2,\n 0x9A90: 0x56BC,\n 0x9A91: 0x56C1,\n 0x9A92: 0x56C3,\n 0x9A93: 0x56C0,\n 0x9A94: 0x56C8,\n 0x9A95: 0x56CE,\n 0x9A96: 0x56D1,\n 0x9A97: 0x56D3,\n 0x9A98: 0x56D7,\n 0x9A99: 0x56EE,\n 0x9A9A: 0x56F9,\n 0x9A9B: 0x5700,\n 0x9A9C: 0x56FF,\n 0x9A9D: 0x5704,\n 0x9A9E: 0x5709,\n 0x9A9F: 0x5708,\n 0x9AA0: 0x570B,\n 0x9AA1: 0x570D,\n 0x9AA2: 0x5713,\n 0x9AA3: 0x5718,\n 0x9AA4: 0x5716,\n 0x9AA5: 0x55C7,\n 0x9AA6: 0x571C,\n 0x9AA7: 0x5726,\n 0x9AA8: 0x5737,\n 0x9AA9: 0x5738,\n 0x9AAA: 0x574E,\n 0x9AAB: 0x573B,\n 0x9AAC: 0x5740,\n 0x9AAD: 0x574F,\n 0x9AAE: 0x5769,\n 0x9AAF: 0x57C0,\n 0x9AB0: 0x5788,\n 0x9AB1: 0x5761,\n 0x9AB2: 0x577F,\n 0x9AB3: 0x5789,\n 0x9AB4: 0x5793,\n 0x9AB5: 0x57A0,\n 0x9AB6: 0x57B3,\n 0x9AB7: 0x57A4,\n 0x9AB8: 0x57AA,\n 0x9AB9: 0x57B0,\n 0x9ABA: 0x57C3,\n 0x9ABB: 0x57C6,\n 0x9ABC: 0x57D4,\n 0x9ABD: 0x57D2,\n 0x9ABE: 0x57D3,\n 0x9ABF: 0x580A,\n 0x9AC0: 0x57D6,\n 0x9AC1: 0x57E3,\n 0x9AC2: 0x580B,\n 0x9AC3: 0x5819,\n 0x9AC4: 0x581D,\n 0x9AC5: 0x5872,\n 0x9AC6: 0x5821,\n 0x9AC7: 0x5862,\n 0x9AC8: 0x584B,\n 0x9AC9: 0x5870,\n 0x9ACA: 0x6BC0,\n 0x9ACB: 0x5852,\n 0x9ACC: 0x583D,\n 0x9ACD: 0x5879,\n 0x9ACE: 0x5885,\n 0x9ACF: 0x58B9,\n 0x9AD0: 0x589F,\n 0x9AD1: 0x58AB,\n 0x9AD2: 0x58BA,\n 0x9AD3: 0x58DE,\n 0x9AD4: 0x58BB,\n 0x9AD5: 0x58B8,\n 0x9AD6: 0x58AE,\n 0x9AD7: 0x58C5,\n 0x9AD8: 0x58D3,\n 0x9AD9: 0x58D1,\n 0x9ADA: 0x58D7,\n 0x9ADB: 0x58D9,\n 0x9ADC: 0x58D8,\n 0x9ADD: 0x58E5,\n 0x9ADE: 0x58DC,\n 0x9ADF: 0x58E4,\n 0x9AE0: 0x58DF,\n 0x9AE1: 0x58EF,\n 0x9AE2: 0x58FA,\n 0x9AE3: 0x58F9,\n 0x9AE4: 0x58FB,\n 0x9AE5: 0x58FC,\n 0x9AE6: 0x58FD,\n 0x9AE7: 0x5902,\n 0x9AE8: 0x590A,\n 0x9AE9: 0x5910,\n 0x9AEA: 0x591B,\n 0x9AEB: 0x68A6,\n 0x9AEC: 0x5925,\n 0x9AED: 0x592C,\n 0x9AEE: 0x592D,\n 0x9AEF: 0x5932,\n 0x9AF0: 0x5938,\n 0x9AF1: 0x593E,\n 0x9AF2: 0x7AD2,\n 0x9AF3: 0x5955,\n 0x9AF4: 0x5950,\n 0x9AF5: 0x594E,\n 0x9AF6: 0x595A,\n 0x9AF7: 0x5958,\n 0x9AF8: 0x5962,\n 0x9AF9: 0x5960,\n 0x9AFA: 0x5967,\n 0x9AFB: 0x596C,\n 0x9AFC: 0x5969,\n 0x9B40: 0x5978,\n 0x9B41: 0x5981,\n 0x9B42: 0x599D,\n 0x9B43: 0x4F5E,\n 0x9B44: 0x4FAB,\n 0x9B45: 0x59A3,\n 0x9B46: 0x59B2,\n 0x9B47: 0x59C6,\n 0x9B48: 0x59E8,\n 0x9B49: 0x59DC,\n 0x9B4A: 0x598D,\n 0x9B4B: 0x59D9,\n 0x9B4C: 0x59DA,\n 0x9B4D: 0x5A25,\n 0x9B4E: 0x5A1F,\n 0x9B4F: 0x5A11,\n 0x9B50: 0x5A1C,\n 0x9B51: 0x5A09,\n 0x9B52: 0x5A1A,\n 0x9B53: 0x5A40,\n 0x9B54: 0x5A6C,\n 0x9B55: 0x5A49,\n 0x9B56: 0x5A35,\n 0x9B57: 0x5A36,\n 0x9B58: 0x5A62,\n 0x9B59: 0x5A6A,\n 0x9B5A: 0x5A9A,\n 0x9B5B: 0x5ABC,\n 0x9B5C: 0x5ABE,\n 0x9B5D: 0x5ACB,\n 0x9B5E: 0x5AC2,\n 0x9B5F: 0x5ABD,\n 0x9B60: 0x5AE3,\n 0x9B61: 0x5AD7,\n 0x9B62: 0x5AE6,\n 0x9B63: 0x5AE9,\n 0x9B64: 0x5AD6,\n 0x9B65: 0x5AFA,\n 0x9B66: 0x5AFB,\n 0x9B67: 0x5B0C,\n 0x9B68: 0x5B0B,\n 0x9B69: 0x5B16,\n 0x9B6A: 0x5B32,\n 0x9B6B: 0x5AD0,\n 0x9B6C: 0x5B2A,\n 0x9B6D: 0x5B36,\n 0x9B6E: 0x5B3E,\n 0x9B6F: 0x5B43,\n 0x9B70: 0x5B45,\n 0x9B71: 0x5B40,\n 0x9B72: 0x5B51,\n 0x9B73: 0x5B55,\n 0x9B74: 0x5B5A,\n 0x9B75: 0x5B5B,\n 0x9B76: 0x5B65,\n 0x9B77: 0x5B69,\n 0x9B78: 0x5B70,\n 0x9B79: 0x5B73,\n 0x9B7A: 0x5B75,\n 0x9B7B: 0x5B78,\n 0x9B7C: 0x6588,\n 0x9B7D: 0x5B7A,\n 0x9B7E: 0x5B80,\n 0x9B80: 0x5B83,\n 0x9B81: 0x5BA6,\n 0x9B82: 0x5BB8,\n 0x9B83: 0x5BC3,\n 0x9B84: 0x5BC7,\n 0x9B85: 0x5BC9,\n 0x9B86: 0x5BD4,\n 0x9B87: 0x5BD0,\n 0x9B88: 0x5BE4,\n 0x9B89: 0x5BE6,\n 0x9B8A: 0x5BE2,\n 0x9B8B: 0x5BDE,\n 0x9B8C: 0x5BE5,\n 0x9B8D: 0x5BEB,\n 0x9B8E: 0x5BF0,\n 0x9B8F: 0x5BF6,\n 0x9B90: 0x5BF3,\n 0x9B91: 0x5C05,\n 0x9B92: 0x5C07,\n 0x9B93: 0x5C08,\n 0x9B94: 0x5C0D,\n 0x9B95: 0x5C13,\n 0x9B96: 0x5C20,\n 0x9B97: 0x5C22,\n 0x9B98: 0x5C28,\n 0x9B99: 0x5C38,\n 0x9B9A: 0x5C39,\n 0x9B9B: 0x5C41,\n 0x9B9C: 0x5C46,\n 0x9B9D: 0x5C4E,\n 0x9B9E: 0x5C53,\n 0x9B9F: 0x5C50,\n 0x9BA0: 0x5C4F,\n 0x9BA1: 0x5B71,\n 0x9BA2: 0x5C6C,\n 0x9BA3: 0x5C6E,\n 0x9BA4: 0x4E62,\n 0x9BA5: 0x5C76,\n 0x9BA6: 0x5C79,\n 0x9BA7: 0x5C8C,\n 0x9BA8: 0x5C91,\n 0x9BA9: 0x5C94,\n 0x9BAA: 0x599B,\n 0x9BAB: 0x5CAB,\n 0x9BAC: 0x5CBB,\n 0x9BAD: 0x5CB6,\n 0x9BAE: 0x5CBC,\n 0x9BAF: 0x5CB7,\n 0x9BB0: 0x5CC5,\n 0x9BB1: 0x5CBE,\n 0x9BB2: 0x5CC7,\n 0x9BB3: 0x5CD9,\n 0x9BB4: 0x5CE9,\n 0x9BB5: 0x5CFD,\n 0x9BB6: 0x5CFA,\n 0x9BB7: 0x5CED,\n 0x9BB8: 0x5D8C,\n 0x9BB9: 0x5CEA,\n 0x9BBA: 0x5D0B,\n 0x9BBB: 0x5D15,\n 0x9BBC: 0x5D17,\n 0x9BBD: 0x5D5C,\n 0x9BBE: 0x5D1F,\n 0x9BBF: 0x5D1B,\n 0x9BC0: 0x5D11,\n 0x9BC1: 0x5D14,\n 0x9BC2: 0x5D22,\n 0x9BC3: 0x5D1A,\n 0x9BC4: 0x5D19,\n 0x9BC5: 0x5D18,\n 0x9BC6: 0x5D4C,\n 0x9BC7: 0x5D52,\n 0x9BC8: 0x5D4E,\n 0x9BC9: 0x5D4B,\n 0x9BCA: 0x5D6C,\n 0x9BCB: 0x5D73,\n 0x9BCC: 0x5D76,\n 0x9BCD: 0x5D87,\n 0x9BCE: 0x5D84,\n 0x9BCF: 0x5D82,\n 0x9BD0: 0x5DA2,\n 0x9BD1: 0x5D9D,\n 0x9BD2: 0x5DAC,\n 0x9BD3: 0x5DAE,\n 0x9BD4: 0x5DBD,\n 0x9BD5: 0x5D90,\n 0x9BD6: 0x5DB7,\n 0x9BD7: 0x5DBC,\n 0x9BD8: 0x5DC9,\n 0x9BD9: 0x5DCD,\n 0x9BDA: 0x5DD3,\n 0x9BDB: 0x5DD2,\n 0x9BDC: 0x5DD6,\n 0x9BDD: 0x5DDB,\n 0x9BDE: 0x5DEB,\n 0x9BDF: 0x5DF2,\n 0x9BE0: 0x5DF5,\n 0x9BE1: 0x5E0B,\n 0x9BE2: 0x5E1A,\n 0x9BE3: 0x5E19,\n 0x9BE4: 0x5E11,\n 0x9BE5: 0x5E1B,\n 0x9BE6: 0x5E36,\n 0x9BE7: 0x5E37,\n 0x9BE8: 0x5E44,\n 0x9BE9: 0x5E43,\n 0x9BEA: 0x5E40,\n 0x9BEB: 0x5E4E,\n 0x9BEC: 0x5E57,\n 0x9BED: 0x5E54,\n 0x9BEE: 0x5E5F,\n 0x9BEF: 0x5E62,\n 0x9BF0: 0x5E64,\n 0x9BF1: 0x5E47,\n 0x9BF2: 0x5E75,\n 0x9BF3: 0x5E76,\n 0x9BF4: 0x5E7A,\n 0x9BF5: 0x9EBC,\n 0x9BF6: 0x5E7F,\n 0x9BF7: 0x5EA0,\n 0x9BF8: 0x5EC1,\n 0x9BF9: 0x5EC2,\n 0x9BFA: 0x5EC8,\n 0x9BFB: 0x5ED0,\n 0x9BFC: 0x5ECF,\n 0x9C40: 0x5ED6,\n 0x9C41: 0x5EE3,\n 0x9C42: 0x5EDD,\n 0x9C43: 0x5EDA,\n 0x9C44: 0x5EDB,\n 0x9C45: 0x5EE2,\n 0x9C46: 0x5EE1,\n 0x9C47: 0x5EE8,\n 0x9C48: 0x5EE9,\n 0x9C49: 0x5EEC,\n 0x9C4A: 0x5EF1,\n 0x9C4B: 0x5EF3,\n 0x9C4C: 0x5EF0,\n 0x9C4D: 0x5EF4,\n 0x9C4E: 0x5EF8,\n 0x9C4F: 0x5EFE,\n 0x9C50: 0x5F03,\n 0x9C51: 0x5F09,\n 0x9C52: 0x5F5D,\n 0x9C53: 0x5F5C,\n 0x9C54: 0x5F0B,\n 0x9C55: 0x5F11,\n 0x9C56: 0x5F16,\n 0x9C57: 0x5F29,\n 0x9C58: 0x5F2D,\n 0x9C59: 0x5F38,\n 0x9C5A: 0x5F41,\n 0x9C5B: 0x5F48,\n 0x9C5C: 0x5F4C,\n 0x9C5D: 0x5F4E,\n 0x9C5E: 0x5F2F,\n 0x9C5F: 0x5F51,\n 0x9C60: 0x5F56,\n 0x9C61: 0x5F57,\n 0x9C62: 0x5F59,\n 0x9C63: 0x5F61,\n 0x9C64: 0x5F6D,\n 0x9C65: 0x5F73,\n 0x9C66: 0x5F77,\n 0x9C67: 0x5F83,\n 0x9C68: 0x5F82,\n 0x9C69: 0x5F7F,\n 0x9C6A: 0x5F8A,\n 0x9C6B: 0x5F88,\n 0x9C6C: 0x5F91,\n 0x9C6D: 0x5F87,\n 0x9C6E: 0x5F9E,\n 0x9C6F: 0x5F99,\n 0x9C70: 0x5F98,\n 0x9C71: 0x5FA0,\n 0x9C72: 0x5FA8,\n 0x9C73: 0x5FAD,\n 0x9C74: 0x5FBC,\n 0x9C75: 0x5FD6,\n 0x9C76: 0x5FFB,\n 0x9C77: 0x5FE4,\n 0x9C78: 0x5FF8,\n 0x9C79: 0x5FF1,\n 0x9C7A: 0x5FDD,\n 0x9C7B: 0x60B3,\n 0x9C7C: 0x5FFF,\n 0x9C7D: 0x6021,\n 0x9C7E: 0x6060,\n 0x9C80: 0x6019,\n 0x9C81: 0x6010,\n 0x9C82: 0x6029,\n 0x9C83: 0x600E,\n 0x9C84: 0x6031,\n 0x9C85: 0x601B,\n 0x9C86: 0x6015,\n 0x9C87: 0x602B,\n 0x9C88: 0x6026,\n 0x9C89: 0x600F,\n 0x9C8A: 0x603A,\n 0x9C8B: 0x605A,\n 0x9C8C: 0x6041,\n 0x9C8D: 0x606A,\n 0x9C8E: 0x6077,\n 0x9C8F: 0x605F,\n 0x9C90: 0x604A,\n 0x9C91: 0x6046,\n 0x9C92: 0x604D,\n 0x9C93: 0x6063,\n 0x9C94: 0x6043,\n 0x9C95: 0x6064,\n 0x9C96: 0x6042,\n 0x9C97: 0x606C,\n 0x9C98: 0x606B,\n 0x9C99: 0x6059,\n 0x9C9A: 0x6081,\n 0x9C9B: 0x608D,\n 0x9C9C: 0x60E7,\n 0x9C9D: 0x6083,\n 0x9C9E: 0x609A,\n 0x9C9F: 0x6084,\n 0x9CA0: 0x609B,\n 0x9CA1: 0x6096,\n 0x9CA2: 0x6097,\n 0x9CA3: 0x6092,\n 0x9CA4: 0x60A7,\n 0x9CA5: 0x608B,\n 0x9CA6: 0x60E1,\n 0x9CA7: 0x60B8,\n 0x9CA8: 0x60E0,\n 0x9CA9: 0x60D3,\n 0x9CAA: 0x60B4,\n 0x9CAB: 0x5FF0,\n 0x9CAC: 0x60BD,\n 0x9CAD: 0x60C6,\n 0x9CAE: 0x60B5,\n 0x9CAF: 0x60D8,\n 0x9CB0: 0x614D,\n 0x9CB1: 0x6115,\n 0x9CB2: 0x6106,\n 0x9CB3: 0x60F6,\n 0x9CB4: 0x60F7,\n 0x9CB5: 0x6100,\n 0x9CB6: 0x60F4,\n 0x9CB7: 0x60FA,\n 0x9CB8: 0x6103,\n 0x9CB9: 0x6121,\n 0x9CBA: 0x60FB,\n 0x9CBB: 0x60F1,\n 0x9CBC: 0x610D,\n 0x9CBD: 0x610E,\n 0x9CBE: 0x6147,\n 0x9CBF: 0x613E,\n 0x9CC0: 0x6128,\n 0x9CC1: 0x6127,\n 0x9CC2: 0x614A,\n 0x9CC3: 0x613F,\n 0x9CC4: 0x613C,\n 0x9CC5: 0x612C,\n 0x9CC6: 0x6134,\n 0x9CC7: 0x613D,\n 0x9CC8: 0x6142,\n 0x9CC9: 0x6144,\n 0x9CCA: 0x6173,\n 0x9CCB: 0x6177,\n 0x9CCC: 0x6158,\n 0x9CCD: 0x6159,\n 0x9CCE: 0x615A,\n 0x9CCF: 0x616B,\n 0x9CD0: 0x6174,\n 0x9CD1: 0x616F,\n 0x9CD2: 0x6165,\n 0x9CD3: 0x6171,\n 0x9CD4: 0x615F,\n 0x9CD5: 0x615D,\n 0x9CD6: 0x6153,\n 0x9CD7: 0x6175,\n 0x9CD8: 0x6199,\n 0x9CD9: 0x6196,\n 0x9CDA: 0x6187,\n 0x9CDB: 0x61AC,\n 0x9CDC: 0x6194,\n 0x9CDD: 0x619A,\n 0x9CDE: 0x618A,\n 0x9CDF: 0x6191,\n 0x9CE0: 0x61AB,\n 0x9CE1: 0x61AE,\n 0x9CE2: 0x61CC,\n 0x9CE3: 0x61CA,\n 0x9CE4: 0x61C9,\n 0x9CE5: 0x61F7,\n 0x9CE6: 0x61C8,\n 0x9CE7: 0x61C3,\n 0x9CE8: 0x61C6,\n 0x9CE9: 0x61BA,\n 0x9CEA: 0x61CB,\n 0x9CEB: 0x7F79,\n 0x9CEC: 0x61CD,\n 0x9CED: 0x61E6,\n 0x9CEE: 0x61E3,\n 0x9CEF: 0x61F6,\n 0x9CF0: 0x61FA,\n 0x9CF1: 0x61F4,\n 0x9CF2: 0x61FF,\n 0x9CF3: 0x61FD,\n 0x9CF4: 0x61FC,\n 0x9CF5: 0x61FE,\n 0x9CF6: 0x6200,\n 0x9CF7: 0x6208,\n 0x9CF8: 0x6209,\n 0x9CF9: 0x620D,\n 0x9CFA: 0x620C,\n 0x9CFB: 0x6214,\n 0x9CFC: 0x621B,\n 0x9D40: 0x621E,\n 0x9D41: 0x6221,\n 0x9D42: 0x622A,\n 0x9D43: 0x622E,\n 0x9D44: 0x6230,\n 0x9D45: 0x6232,\n 0x9D46: 0x6233,\n 0x9D47: 0x6241,\n 0x9D48: 0x624E,\n 0x9D49: 0x625E,\n 0x9D4A: 0x6263,\n 0x9D4B: 0x625B,\n 0x9D4C: 0x6260,\n 0x9D4D: 0x6268,\n 0x9D4E: 0x627C,\n 0x9D4F: 0x6282,\n 0x9D50: 0x6289,\n 0x9D51: 0x627E,\n 0x9D52: 0x6292,\n 0x9D53: 0x6293,\n 0x9D54: 0x6296,\n 0x9D55: 0x62D4,\n 0x9D56: 0x6283,\n 0x9D57: 0x6294,\n 0x9D58: 0x62D7,\n 0x9D59: 0x62D1,\n 0x9D5A: 0x62BB,\n 0x9D5B: 0x62CF,\n 0x9D5C: 0x62FF,\n 0x9D5D: 0x62C6,\n 0x9D5E: 0x64D4,\n 0x9D5F: 0x62C8,\n 0x9D60: 0x62DC,\n 0x9D61: 0x62CC,\n 0x9D62: 0x62CA,\n 0x9D63: 0x62C2,\n 0x9D64: 0x62C7,\n 0x9D65: 0x629B,\n 0x9D66: 0x62C9,\n 0x9D67: 0x630C,\n 0x9D68: 0x62EE,\n 0x9D69: 0x62F1,\n 0x9D6A: 0x6327,\n 0x9D6B: 0x6302,\n 0x9D6C: 0x6308,\n 0x9D6D: 0x62EF,\n 0x9D6E: 0x62F5,\n 0x9D6F: 0x6350,\n 0x9D70: 0x633E,\n 0x9D71: 0x634D,\n 0x9D72: 0x641C,\n 0x9D73: 0x634F,\n 0x9D74: 0x6396,\n 0x9D75: 0x638E,\n 0x9D76: 0x6380,\n 0x9D77: 0x63AB,\n 0x9D78: 0x6376,\n 0x9D79: 0x63A3,\n 0x9D7A: 0x638F,\n 0x9D7B: 0x6389,\n 0x9D7C: 0x639F,\n 0x9D7D: 0x63B5,\n 0x9D7E: 0x636B,\n 0x9D80: 0x6369,\n 0x9D81: 0x63BE,\n 0x9D82: 0x63E9,\n 0x9D83: 0x63C0,\n 0x9D84: 0x63C6,\n 0x9D85: 0x63E3,\n 0x9D86: 0x63C9,\n 0x9D87: 0x63D2,\n 0x9D88: 0x63F6,\n 0x9D89: 0x63C4,\n 0x9D8A: 0x6416,\n 0x9D8B: 0x6434,\n 0x9D8C: 0x6406,\n 0x9D8D: 0x6413,\n 0x9D8E: 0x6426,\n 0x9D8F: 0x6436,\n 0x9D90: 0x651D,\n 0x9D91: 0x6417,\n 0x9D92: 0x6428,\n 0x9D93: 0x640F,\n 0x9D94: 0x6467,\n 0x9D95: 0x646F,\n 0x9D96: 0x6476,\n 0x9D97: 0x644E,\n 0x9D98: 0x652A,\n 0x9D99: 0x6495,\n 0x9D9A: 0x6493,\n 0x9D9B: 0x64A5,\n 0x9D9C: 0x64A9,\n 0x9D9D: 0x6488,\n 0x9D9E: 0x64BC,\n 0x9D9F: 0x64DA,\n 0x9DA0: 0x64D2,\n 0x9DA1: 0x64C5,\n 0x9DA2: 0x64C7,\n 0x9DA3: 0x64BB,\n 0x9DA4: 0x64D8,\n 0x9DA5: 0x64C2,\n 0x9DA6: 0x64F1,\n 0x9DA7: 0x64E7,\n 0x9DA8: 0x8209,\n 0x9DA9: 0x64E0,\n 0x9DAA: 0x64E1,\n 0x9DAB: 0x62AC,\n 0x9DAC: 0x64E3,\n 0x9DAD: 0x64EF,\n 0x9DAE: 0x652C,\n 0x9DAF: 0x64F6,\n 0x9DB0: 0x64F4,\n 0x9DB1: 0x64F2,\n 0x9DB2: 0x64FA,\n 0x9DB3: 0x6500,\n 0x9DB4: 0x64FD,\n 0x9DB5: 0x6518,\n 0x9DB6: 0x651C,\n 0x9DB7: 0x6505,\n 0x9DB8: 0x6524,\n 0x9DB9: 0x6523,\n 0x9DBA: 0x652B,\n 0x9DBB: 0x6534,\n 0x9DBC: 0x6535,\n 0x9DBD: 0x6537,\n 0x9DBE: 0x6536,\n 0x9DBF: 0x6538,\n 0x9DC0: 0x754B,\n 0x9DC1: 0x6548,\n 0x9DC2: 0x6556,\n 0x9DC3: 0x6555,\n 0x9DC4: 0x654D,\n 0x9DC5: 0x6558,\n 0x9DC6: 0x655E,\n 0x9DC7: 0x655D,\n 0x9DC8: 0x6572,\n 0x9DC9: 0x6578,\n 0x9DCA: 0x6582,\n 0x9DCB: 0x6583,\n 0x9DCC: 0x8B8A,\n 0x9DCD: 0x659B,\n 0x9DCE: 0x659F,\n 0x9DCF: 0x65AB,\n 0x9DD0: 0x65B7,\n 0x9DD1: 0x65C3,\n 0x9DD2: 0x65C6,\n 0x9DD3: 0x65C1,\n 0x9DD4: 0x65C4,\n 0x9DD5: 0x65CC,\n 0x9DD6: 0x65D2,\n 0x9DD7: 0x65DB,\n 0x9DD8: 0x65D9,\n 0x9DD9: 0x65E0,\n 0x9DDA: 0x65E1,\n 0x9DDB: 0x65F1,\n 0x9DDC: 0x6772,\n 0x9DDD: 0x660A,\n 0x9DDE: 0x6603,\n 0x9DDF: 0x65FB,\n 0x9DE0: 0x6773,\n 0x9DE1: 0x6635,\n 0x9DE2: 0x6636,\n 0x9DE3: 0x6634,\n 0x9DE4: 0x661C,\n 0x9DE5: 0x664F,\n 0x9DE6: 0x6644,\n 0x9DE7: 0x6649,\n 0x9DE8: 0x6641,\n 0x9DE9: 0x665E,\n 0x9DEA: 0x665D,\n 0x9DEB: 0x6664,\n 0x9DEC: 0x6667,\n 0x9DED: 0x6668,\n 0x9DEE: 0x665F,\n 0x9DEF: 0x6662,\n 0x9DF0: 0x6670,\n 0x9DF1: 0x6683,\n 0x9DF2: 0x6688,\n 0x9DF3: 0x668E,\n 0x9DF4: 0x6689,\n 0x9DF5: 0x6684,\n 0x9DF6: 0x6698,\n 0x9DF7: 0x669D,\n 0x9DF8: 0x66C1,\n 0x9DF9: 0x66B9,\n 0x9DFA: 0x66C9,\n 0x9DFB: 0x66BE,\n 0x9DFC: 0x66BC,\n 0x9E40: 0x66C4,\n 0x9E41: 0x66B8,\n 0x9E42: 0x66D6,\n 0x9E43: 0x66DA,\n 0x9E44: 0x66E0,\n 0x9E45: 0x663F,\n 0x9E46: 0x66E6,\n 0x9E47: 0x66E9,\n 0x9E48: 0x66F0,\n 0x9E49: 0x66F5,\n 0x9E4A: 0x66F7,\n 0x9E4B: 0x670F,\n 0x9E4C: 0x6716,\n 0x9E4D: 0x671E,\n 0x9E4E: 0x6726,\n 0x9E4F: 0x6727,\n 0x9E50: 0x9738,\n 0x9E51: 0x672E,\n 0x9E52: 0x673F,\n 0x9E53: 0x6736,\n 0x9E54: 0x6741,\n 0x9E55: 0x6738,\n 0x9E56: 0x6737,\n 0x9E57: 0x6746,\n 0x9E58: 0x675E,\n 0x9E59: 0x6760,\n 0x9E5A: 0x6759,\n 0x9E5B: 0x6763,\n 0x9E5C: 0x6764,\n 0x9E5D: 0x6789,\n 0x9E5E: 0x6770,\n 0x9E5F: 0x67A9,\n 0x9E60: 0x677C,\n 0x9E61: 0x676A,\n 0x9E62: 0x678C,\n 0x9E63: 0x678B,\n 0x9E64: 0x67A6,\n 0x9E65: 0x67A1,\n 0x9E66: 0x6785,\n 0x9E67: 0x67B7,\n 0x9E68: 0x67EF,\n 0x9E69: 0x67B4,\n 0x9E6A: 0x67EC,\n 0x9E6B: 0x67B3,\n 0x9E6C: 0x67E9,\n 0x9E6D: 0x67B8,\n 0x9E6E: 0x67E4,\n 0x9E6F: 0x67DE,\n 0x9E70: 0x67DD,\n 0x9E71: 0x67E2,\n 0x9E72: 0x67EE,\n 0x9E73: 0x67B9,\n 0x9E74: 0x67CE,\n 0x9E75: 0x67C6,\n 0x9E76: 0x67E7,\n 0x9E77: 0x6A9C,\n 0x9E78: 0x681E,\n 0x9E79: 0x6846,\n 0x9E7A: 0x6829,\n 0x9E7B: 0x6840,\n 0x9E7C: 0x684D,\n 0x9E7D: 0x6832,\n 0x9E7E: 0x684E,\n 0x9E80: 0x68B3,\n 0x9E81: 0x682B,\n 0x9E82: 0x6859,\n 0x9E83: 0x6863,\n 0x9E84: 0x6877,\n 0x9E85: 0x687F,\n 0x9E86: 0x689F,\n 0x9E87: 0x688F,\n 0x9E88: 0x68AD,\n 0x9E89: 0x6894,\n 0x9E8A: 0x689D,\n 0x9E8B: 0x689B,\n 0x9E8C: 0x6883,\n 0x9E8D: 0x6AAE,\n 0x9E8E: 0x68B9,\n 0x9E8F: 0x6874,\n 0x9E90: 0x68B5,\n 0x9E91: 0x68A0,\n 0x9E92: 0x68BA,\n 0x9E93: 0x690F,\n 0x9E94: 0x688D,\n 0x9E95: 0x687E,\n 0x9E96: 0x6901,\n 0x9E97: 0x68CA,\n 0x9E98: 0x6908,\n 0x9E99: 0x68D8,\n 0x9E9A: 0x6922,\n 0x9E9B: 0x6926,\n 0x9E9C: 0x68E1,\n 0x9E9D: 0x690C,\n 0x9E9E: 0x68CD,\n 0x9E9F: 0x68D4,\n 0x9EA0: 0x68E7,\n 0x9EA1: 0x68D5,\n 0x9EA2: 0x6936,\n 0x9EA3: 0x6912,\n 0x9EA4: 0x6904,\n 0x9EA5: 0x68D7,\n 0x9EA6: 0x68E3,\n 0x9EA7: 0x6925,\n 0x9EA8: 0x68F9,\n 0x9EA9: 0x68E0,\n 0x9EAA: 0x68EF,\n 0x9EAB: 0x6928,\n 0x9EAC: 0x692A,\n 0x9EAD: 0x691A,\n 0x9EAE: 0x6923,\n 0x9EAF: 0x6921,\n 0x9EB0: 0x68C6,\n 0x9EB1: 0x6979,\n 0x9EB2: 0x6977,\n 0x9EB3: 0x695C,\n 0x9EB4: 0x6978,\n 0x9EB5: 0x696B,\n 0x9EB6: 0x6954,\n 0x9EB7: 0x697E,\n 0x9EB8: 0x696E,\n 0x9EB9: 0x6939,\n 0x9EBA: 0x6974,\n 0x9EBB: 0x693D,\n 0x9EBC: 0x6959,\n 0x9EBD: 0x6930,\n 0x9EBE: 0x6961,\n 0x9EBF: 0x695E,\n 0x9EC0: 0x695D,\n 0x9EC1: 0x6981,\n 0x9EC2: 0x696A,\n 0x9EC3: 0x69B2,\n 0x9EC4: 0x69AE,\n 0x9EC5: 0x69D0,\n 0x9EC6: 0x69BF,\n 0x9EC7: 0x69C1,\n 0x9EC8: 0x69D3,\n 0x9EC9: 0x69BE,\n 0x9ECA: 0x69CE,\n 0x9ECB: 0x5BE8,\n 0x9ECC: 0x69CA,\n 0x9ECD: 0x69DD,\n 0x9ECE: 0x69BB,\n 0x9ECF: 0x69C3,\n 0x9ED0: 0x69A7,\n 0x9ED1: 0x6A2E,\n 0x9ED2: 0x6991,\n 0x9ED3: 0x69A0,\n 0x9ED4: 0x699C,\n 0x9ED5: 0x6995,\n 0x9ED6: 0x69B4,\n 0x9ED7: 0x69DE,\n 0x9ED8: 0x69E8,\n 0x9ED9: 0x6A02,\n 0x9EDA: 0x6A1B,\n 0x9EDB: 0x69FF,\n 0x9EDC: 0x6B0A,\n 0x9EDD: 0x69F9,\n 0x9EDE: 0x69F2,\n 0x9EDF: 0x69E7,\n 0x9EE0: 0x6A05,\n 0x9EE1: 0x69B1,\n 0x9EE2: 0x6A1E,\n 0x9EE3: 0x69ED,\n 0x9EE4: 0x6A14,\n 0x9EE5: 0x69EB,\n 0x9EE6: 0x6A0A,\n 0x9EE7: 0x6A12,\n 0x9EE8: 0x6AC1,\n 0x9EE9: 0x6A23,\n 0x9EEA: 0x6A13,\n 0x9EEB: 0x6A44,\n 0x9EEC: 0x6A0C,\n 0x9EED: 0x6A72,\n 0x9EEE: 0x6A36,\n 0x9EEF: 0x6A78,\n 0x9EF0: 0x6A47,\n 0x9EF1: 0x6A62,\n 0x9EF2: 0x6A59,\n 0x9EF3: 0x6A66,\n 0x9EF4: 0x6A48,\n 0x9EF5: 0x6A38,\n 0x9EF6: 0x6A22,\n 0x9EF7: 0x6A90,\n 0x9EF8: 0x6A8D,\n 0x9EF9: 0x6AA0,\n 0x9EFA: 0x6A84,\n 0x9EFB: 0x6AA2,\n 0x9EFC: 0x6AA3,\n 0x9F40: 0x6A97,\n 0x9F41: 0x8617,\n 0x9F42: 0x6ABB,\n 0x9F43: 0x6AC3,\n 0x9F44: 0x6AC2,\n 0x9F45: 0x6AB8,\n 0x9F46: 0x6AB3,\n 0x9F47: 0x6AAC,\n 0x9F48: 0x6ADE,\n 0x9F49: 0x6AD1,\n 0x9F4A: 0x6ADF,\n 0x9F4B: 0x6AAA,\n 0x9F4C: 0x6ADA,\n 0x9F4D: 0x6AEA,\n 0x9F4E: 0x6AFB,\n 0x9F4F: 0x6B05,\n 0x9F50: 0x8616,\n 0x9F51: 0x6AFA,\n 0x9F52: 0x6B12,\n 0x9F53: 0x6B16,\n 0x9F54: 0x9B31,\n 0x9F55: 0x6B1F,\n 0x9F56: 0x6B38,\n 0x9F57: 0x6B37,\n 0x9F58: 0x76DC,\n 0x9F59: 0x6B39,\n 0x9F5A: 0x98EE,\n 0x9F5B: 0x6B47,\n 0x9F5C: 0x6B43,\n 0x9F5D: 0x6B49,\n 0x9F5E: 0x6B50,\n 0x9F5F: 0x6B59,\n 0x9F60: 0x6B54,\n 0x9F61: 0x6B5B,\n 0x9F62: 0x6B5F,\n 0x9F63: 0x6B61,\n 0x9F64: 0x6B78,\n 0x9F65: 0x6B79,\n 0x9F66: 0x6B7F,\n 0x9F67: 0x6B80,\n 0x9F68: 0x6B84,\n 0x9F69: 0x6B83,\n 0x9F6A: 0x6B8D,\n 0x9F6B: 0x6B98,\n 0x9F6C: 0x6B95,\n 0x9F6D: 0x6B9E,\n 0x9F6E: 0x6BA4,\n 0x9F6F: 0x6BAA,\n 0x9F70: 0x6BAB,\n 0x9F71: 0x6BAF,\n 0x9F72: 0x6BB2,\n 0x9F73: 0x6BB1,\n 0x9F74: 0x6BB3,\n 0x9F75: 0x6BB7,\n 0x9F76: 0x6BBC,\n 0x9F77: 0x6BC6,\n 0x9F78: 0x6BCB,\n 0x9F79: 0x6BD3,\n 0x9F7A: 0x6BDF,\n 0x9F7B: 0x6BEC,\n 0x9F7C: 0x6BEB,\n 0x9F7D: 0x6BF3,\n 0x9F7E: 0x6BEF,\n 0x9F80: 0x9EBE,\n 0x9F81: 0x6C08,\n 0x9F82: 0x6C13,\n 0x9F83: 0x6C14,\n 0x9F84: 0x6C1B,\n 0x9F85: 0x6C24,\n 0x9F86: 0x6C23,\n 0x9F87: 0x6C5E,\n 0x9F88: 0x6C55,\n 0x9F89: 0x6C62,\n 0x9F8A: 0x6C6A,\n 0x9F8B: 0x6C82,\n 0x9F8C: 0x6C8D,\n 0x9F8D: 0x6C9A,\n 0x9F8E: 0x6C81,\n 0x9F8F: 0x6C9B,\n 0x9F90: 0x6C7E,\n 0x9F91: 0x6C68,\n 0x9F92: 0x6C73,\n 0x9F93: 0x6C92,\n 0x9F94: 0x6C90,\n 0x9F95: 0x6CC4,\n 0x9F96: 0x6CF1,\n 0x9F97: 0x6CD3,\n 0x9F98: 0x6CBD,\n 0x9F99: 0x6CD7,\n 0x9F9A: 0x6CC5,\n 0x9F9B: 0x6CDD,\n 0x9F9C: 0x6CAE,\n 0x9F9D: 0x6CB1,\n 0x9F9E: 0x6CBE,\n 0x9F9F: 0x6CBA,\n 0x9FA0: 0x6CDB,\n 0x9FA1: 0x6CEF,\n 0x9FA2: 0x6CD9,\n 0x9FA3: 0x6CEA,\n 0x9FA4: 0x6D1F,\n 0x9FA5: 0x884D,\n 0x9FA6: 0x6D36,\n 0x9FA7: 0x6D2B,\n 0x9FA8: 0x6D3D,\n 0x9FA9: 0x6D38,\n 0x9FAA: 0x6D19,\n 0x9FAB: 0x6D35,\n 0x9FAC: 0x6D33,\n 0x9FAD: 0x6D12,\n 0x9FAE: 0x6D0C,\n 0x9FAF: 0x6D63,\n 0x9FB0: 0x6D93,\n 0x9FB1: 0x6D64,\n 0x9FB2: 0x6D5A,\n 0x9FB3: 0x6D79,\n 0x9FB4: 0x6D59,\n 0x9FB5: 0x6D8E,\n 0x9FB6: 0x6D95,\n 0x9FB7: 0x6FE4,\n 0x9FB8: 0x6D85,\n 0x9FB9: 0x6DF9,\n 0x9FBA: 0x6E15,\n 0x9FBB: 0x6E0A,\n 0x9FBC: 0x6DB5,\n 0x9FBD: 0x6DC7,\n 0x9FBE: 0x6DE6,\n 0x9FBF: 0x6DB8,\n 0x9FC0: 0x6DC6,\n 0x9FC1: 0x6DEC,\n 0x9FC2: 0x6DDE,\n 0x9FC3: 0x6DCC,\n 0x9FC4: 0x6DE8,\n 0x9FC5: 0x6DD2,\n 0x9FC6: 0x6DC5,\n 0x9FC7: 0x6DFA,\n 0x9FC8: 0x6DD9,\n 0x9FC9: 0x6DE4,\n 0x9FCA: 0x6DD5,\n 0x9FCB: 0x6DEA,\n 0x9FCC: 0x6DEE,\n 0x9FCD: 0x6E2D,\n 0x9FCE: 0x6E6E,\n 0x9FCF: 0x6E2E,\n 0x9FD0: 0x6E19,\n 0x9FD1: 0x6E72,\n 0x9FD2: 0x6E5F,\n 0x9FD3: 0x6E3E,\n 0x9FD4: 0x6E23,\n 0x9FD5: 0x6E6B,\n 0x9FD6: 0x6E2B,\n 0x9FD7: 0x6E76,\n 0x9FD8: 0x6E4D,\n 0x9FD9: 0x6E1F,\n 0x9FDA: 0x6E43,\n 0x9FDB: 0x6E3A,\n 0x9FDC: 0x6E4E,\n 0x9FDD: 0x6E24,\n 0x9FDE: 0x6EFF,\n 0x9FDF: 0x6E1D,\n 0x9FE0: 0x6E38,\n 0x9FE1: 0x6E82,\n 0x9FE2: 0x6EAA,\n 0x9FE3: 0x6E98,\n 0x9FE4: 0x6EC9,\n 0x9FE5: 0x6EB7,\n 0x9FE6: 0x6ED3,\n 0x9FE7: 0x6EBD,\n 0x9FE8: 0x6EAF,\n 0x9FE9: 0x6EC4,\n 0x9FEA: 0x6EB2,\n 0x9FEB: 0x6ED4,\n 0x9FEC: 0x6ED5,\n 0x9FED: 0x6E8F,\n 0x9FEE: 0x6EA5,\n 0x9FEF: 0x6EC2,\n 0x9FF0: 0x6E9F,\n 0x9FF1: 0x6F41,\n 0x9FF2: 0x6F11,\n 0x9FF3: 0x704C,\n 0x9FF4: 0x6EEC,\n 0x9FF5: 0x6EF8,\n 0x9FF6: 0x6EFE,\n 0x9FF7: 0x6F3F,\n 0x9FF8: 0x6EF2,\n 0x9FF9: 0x6F31,\n 0x9FFA: 0x6EEF,\n 0x9FFB: 0x6F32,\n 0x9FFC: 0x6ECC,\n 0xA1: 0xFF61,\n 0xA2: 0xFF62,\n 0xA3: 0xFF63,\n 0xA4: 0xFF64,\n 0xA5: 0xFF65,\n 0xA6: 0xFF66,\n 0xA7: 0xFF67,\n 0xA8: 0xFF68,\n 0xA9: 0xFF69,\n 0xAA: 0xFF6A,\n 0xAB: 0xFF6B,\n 0xAC: 0xFF6C,\n 0xAD: 0xFF6D,\n 0xAE: 0xFF6E,\n 0xAF: 0xFF6F,\n 0xB0: 0xFF70,\n 0xB1: 0xFF71,\n 0xB2: 0xFF72,\n 0xB3: 0xFF73,\n 0xB4: 0xFF74,\n 0xB5: 0xFF75,\n 0xB6: 0xFF76,\n 0xB7: 0xFF77,\n 0xB8: 0xFF78,\n 0xB9: 0xFF79,\n 0xBA: 0xFF7A,\n 0xBB: 0xFF7B,\n 0xBC: 0xFF7C,\n 0xBD: 0xFF7D,\n 0xBE: 0xFF7E,\n 0xBF: 0xFF7F,\n 0xC0: 0xFF80,\n 0xC1: 0xFF81,\n 0xC2: 0xFF82,\n 0xC3: 0xFF83,\n 0xC4: 0xFF84,\n 0xC5: 0xFF85,\n 0xC6: 0xFF86,\n 0xC7: 0xFF87,\n 0xC8: 0xFF88,\n 0xC9: 0xFF89,\n 0xCA: 0xFF8A,\n 0xCB: 0xFF8B,\n 0xCC: 0xFF8C,\n 0xCD: 0xFF8D,\n 0xCE: 0xFF8E,\n 0xCF: 0xFF8F,\n 0xD0: 0xFF90,\n 0xD1: 0xFF91,\n 0xD2: 0xFF92,\n 0xD3: 0xFF93,\n 0xD4: 0xFF94,\n 0xD5: 0xFF95,\n 0xD6: 0xFF96,\n 0xD7: 0xFF97,\n 0xD8: 0xFF98,\n 0xD9: 0xFF99,\n 0xDA: 0xFF9A,\n 0xDB: 0xFF9B,\n 0xDC: 0xFF9C,\n 0xDD: 0xFF9D,\n 0xDE: 0xFF9E,\n 0xDF: 0xFF9F,\n 0xE040: 0x6F3E,\n 0xE041: 0x6F13,\n 0xE042: 0x6EF7,\n 0xE043: 0x6F86,\n 0xE044: 0x6F7A,\n 0xE045: 0x6F78,\n 0xE046: 0x6F81,\n 0xE047: 0x6F80,\n 0xE048: 0x6F6F,\n 0xE049: 0x6F5B,\n 0xE04A: 0x6FF3,\n 0xE04B: 0x6F6D,\n 0xE04C: 0x6F82,\n 0xE04D: 0x6F7C,\n 0xE04E: 0x6F58,\n 0xE04F: 0x6F8E,\n 0xE050: 0x6F91,\n 0xE051: 0x6FC2,\n 0xE052: 0x6F66,\n 0xE053: 0x6FB3,\n 0xE054: 0x6FA3,\n 0xE055: 0x6FA1,\n 0xE056: 0x6FA4,\n 0xE057: 0x6FB9,\n 0xE058: 0x6FC6,\n 0xE059: 0x6FAA,\n 0xE05A: 0x6FDF,\n 0xE05B: 0x6FD5,\n 0xE05C: 0x6FEC,\n 0xE05D: 0x6FD4,\n 0xE05E: 0x6FD8,\n 0xE05F: 0x6FF1,\n 0xE060: 0x6FEE,\n 0xE061: 0x6FDB,\n 0xE062: 0x7009,\n 0xE063: 0x700B,\n 0xE064: 0x6FFA,\n 0xE065: 0x7011,\n 0xE066: 0x7001,\n 0xE067: 0x700F,\n 0xE068: 0x6FFE,\n 0xE069: 0x701B,\n 0xE06A: 0x701A,\n 0xE06B: 0x6F74,\n 0xE06C: 0x701D,\n 0xE06D: 0x7018,\n 0xE06E: 0x701F,\n 0xE06F: 0x7030,\n 0xE070: 0x703E,\n 0xE071: 0x7032,\n 0xE072: 0x7051,\n 0xE073: 0x7063,\n 0xE074: 0x7099,\n 0xE075: 0x7092,\n 0xE076: 0x70AF,\n 0xE077: 0x70F1,\n 0xE078: 0x70AC,\n 0xE079: 0x70B8,\n 0xE07A: 0x70B3,\n 0xE07B: 0x70AE,\n 0xE07C: 0x70DF,\n 0xE07D: 0x70CB,\n 0xE07E: 0x70DD,\n 0xE080: 0x70D9,\n 0xE081: 0x7109,\n 0xE082: 0x70FD,\n 0xE083: 0x711C,\n 0xE084: 0x7119,\n 0xE085: 0x7165,\n 0xE086: 0x7155,\n 0xE087: 0x7188,\n 0xE088: 0x7166,\n 0xE089: 0x7162,\n 0xE08A: 0x714C,\n 0xE08B: 0x7156,\n 0xE08C: 0x716C,\n 0xE08D: 0x718F,\n 0xE08E: 0x71FB,\n 0xE08F: 0x7184,\n 0xE090: 0x7195,\n 0xE091: 0x71A8,\n 0xE092: 0x71AC,\n 0xE093: 0x71D7,\n 0xE094: 0x71B9,\n 0xE095: 0x71BE,\n 0xE096: 0x71D2,\n 0xE097: 0x71C9,\n 0xE098: 0x71D4,\n 0xE099: 0x71CE,\n 0xE09A: 0x71E0,\n 0xE09B: 0x71EC,\n 0xE09C: 0x71E7,\n 0xE09D: 0x71F5,\n 0xE09E: 0x71FC,\n 0xE09F: 0x71F9,\n 0xE0A0: 0x71FF,\n 0xE0A1: 0x720D,\n 0xE0A2: 0x7210,\n 0xE0A3: 0x721B,\n 0xE0A4: 0x7228,\n 0xE0A5: 0x722D,\n 0xE0A6: 0x722C,\n 0xE0A7: 0x7230,\n 0xE0A8: 0x7232,\n 0xE0A9: 0x723B,\n 0xE0AA: 0x723C,\n 0xE0AB: 0x723F,\n 0xE0AC: 0x7240,\n 0xE0AD: 0x7246,\n 0xE0AE: 0x724B,\n 0xE0AF: 0x7258,\n 0xE0B0: 0x7274,\n 0xE0B1: 0x727E,\n 0xE0B2: 0x7282,\n 0xE0B3: 0x7281,\n 0xE0B4: 0x7287,\n 0xE0B5: 0x7292,\n 0xE0B6: 0x7296,\n 0xE0B7: 0x72A2,\n 0xE0B8: 0x72A7,\n 0xE0B9: 0x72B9,\n 0xE0BA: 0x72B2,\n 0xE0BB: 0x72C3,\n 0xE0BC: 0x72C6,\n 0xE0BD: 0x72C4,\n 0xE0BE: 0x72CE,\n 0xE0BF: 0x72D2,\n 0xE0C0: 0x72E2,\n 0xE0C1: 0x72E0,\n 0xE0C2: 0x72E1,\n 0xE0C3: 0x72F9,\n 0xE0C4: 0x72F7,\n 0xE0C5: 0x500F,\n 0xE0C6: 0x7317,\n 0xE0C7: 0x730A,\n 0xE0C8: 0x731C,\n 0xE0C9: 0x7316,\n 0xE0CA: 0x731D,\n 0xE0CB: 0x7334,\n 0xE0CC: 0x732F,\n 0xE0CD: 0x7329,\n 0xE0CE: 0x7325,\n 0xE0CF: 0x733E,\n 0xE0D0: 0x734E,\n 0xE0D1: 0x734F,\n 0xE0D2: 0x9ED8,\n 0xE0D3: 0x7357,\n 0xE0D4: 0x736A,\n 0xE0D5: 0x7368,\n 0xE0D6: 0x7370,\n 0xE0D7: 0x7378,\n 0xE0D8: 0x7375,\n 0xE0D9: 0x737B,\n 0xE0DA: 0x737A,\n 0xE0DB: 0x73C8,\n 0xE0DC: 0x73B3,\n 0xE0DD: 0x73CE,\n 0xE0DE: 0x73BB,\n 0xE0DF: 0x73C0,\n 0xE0E0: 0x73E5,\n 0xE0E1: 0x73EE,\n 0xE0E2: 0x73DE,\n 0xE0E3: 0x74A2,\n 0xE0E4: 0x7405,\n 0xE0E5: 0x746F,\n 0xE0E6: 0x7425,\n 0xE0E7: 0x73F8,\n 0xE0E8: 0x7432,\n 0xE0E9: 0x743A,\n 0xE0EA: 0x7455,\n 0xE0EB: 0x743F,\n 0xE0EC: 0x745F,\n 0xE0ED: 0x7459,\n 0xE0EE: 0x7441,\n 0xE0EF: 0x745C,\n 0xE0F0: 0x7469,\n 0xE0F1: 0x7470,\n 0xE0F2: 0x7463,\n 0xE0F3: 0x746A,\n 0xE0F4: 0x7476,\n 0xE0F5: 0x747E,\n 0xE0F6: 0x748B,\n 0xE0F7: 0x749E,\n 0xE0F8: 0x74A7,\n 0xE0F9: 0x74CA,\n 0xE0FA: 0x74CF,\n 0xE0FB: 0x74D4,\n 0xE0FC: 0x73F1,\n 0xE140: 0x74E0,\n 0xE141: 0x74E3,\n 0xE142: 0x74E7,\n 0xE143: 0x74E9,\n 0xE144: 0x74EE,\n 0xE145: 0x74F2,\n 0xE146: 0x74F0,\n 0xE147: 0x74F1,\n 0xE148: 0x74F8,\n 0xE149: 0x74F7,\n 0xE14A: 0x7504,\n 0xE14B: 0x7503,\n 0xE14C: 0x7505,\n 0xE14D: 0x750C,\n 0xE14E: 0x750E,\n 0xE14F: 0x750D,\n 0xE150: 0x7515,\n 0xE151: 0x7513,\n 0xE152: 0x751E,\n 0xE153: 0x7526,\n 0xE154: 0x752C,\n 0xE155: 0x753C,\n 0xE156: 0x7544,\n 0xE157: 0x754D,\n 0xE158: 0x754A,\n 0xE159: 0x7549,\n 0xE15A: 0x755B,\n 0xE15B: 0x7546,\n 0xE15C: 0x755A,\n 0xE15D: 0x7569,\n 0xE15E: 0x7564,\n 0xE15F: 0x7567,\n 0xE160: 0x756B,\n 0xE161: 0x756D,\n 0xE162: 0x7578,\n 0xE163: 0x7576,\n 0xE164: 0x7586,\n 0xE165: 0x7587,\n 0xE166: 0x7574,\n 0xE167: 0x758A,\n 0xE168: 0x7589,\n 0xE169: 0x7582,\n 0xE16A: 0x7594,\n 0xE16B: 0x759A,\n 0xE16C: 0x759D,\n 0xE16D: 0x75A5,\n 0xE16E: 0x75A3,\n 0xE16F: 0x75C2,\n 0xE170: 0x75B3,\n 0xE171: 0x75C3,\n 0xE172: 0x75B5,\n 0xE173: 0x75BD,\n 0xE174: 0x75B8,\n 0xE175: 0x75BC,\n 0xE176: 0x75B1,\n 0xE177: 0x75CD,\n 0xE178: 0x75CA,\n 0xE179: 0x75D2,\n 0xE17A: 0x75D9,\n 0xE17B: 0x75E3,\n 0xE17C: 0x75DE,\n 0xE17D: 0x75FE,\n 0xE17E: 0x75FF,\n 0xE180: 0x75FC,\n 0xE181: 0x7601,\n 0xE182: 0x75F0,\n 0xE183: 0x75FA,\n 0xE184: 0x75F2,\n 0xE185: 0x75F3,\n 0xE186: 0x760B,\n 0xE187: 0x760D,\n 0xE188: 0x7609,\n 0xE189: 0x761F,\n 0xE18A: 0x7627,\n 0xE18B: 0x7620,\n 0xE18C: 0x7621,\n 0xE18D: 0x7622,\n 0xE18E: 0x7624,\n 0xE18F: 0x7634,\n 0xE190: 0x7630,\n 0xE191: 0x763B,\n 0xE192: 0x7647,\n 0xE193: 0x7648,\n 0xE194: 0x7646,\n 0xE195: 0x765C,\n 0xE196: 0x7658,\n 0xE197: 0x7661,\n 0xE198: 0x7662,\n 0xE199: 0x7668,\n 0xE19A: 0x7669,\n 0xE19B: 0x766A,\n 0xE19C: 0x7667,\n 0xE19D: 0x766C,\n 0xE19E: 0x7670,\n 0xE19F: 0x7672,\n 0xE1A0: 0x7676,\n 0xE1A1: 0x7678,\n 0xE1A2: 0x767C,\n 0xE1A3: 0x7680,\n 0xE1A4: 0x7683,\n 0xE1A5: 0x7688,\n 0xE1A6: 0x768B,\n 0xE1A7: 0x768E,\n 0xE1A8: 0x7696,\n 0xE1A9: 0x7693,\n 0xE1AA: 0x7699,\n 0xE1AB: 0x769A,\n 0xE1AC: 0x76B0,\n 0xE1AD: 0x76B4,\n 0xE1AE: 0x76B8,\n 0xE1AF: 0x76B9,\n 0xE1B0: 0x76BA,\n 0xE1B1: 0x76C2,\n 0xE1B2: 0x76CD,\n 0xE1B3: 0x76D6,\n 0xE1B4: 0x76D2,\n 0xE1B5: 0x76DE,\n 0xE1B6: 0x76E1,\n 0xE1B7: 0x76E5,\n 0xE1B8: 0x76E7,\n 0xE1B9: 0x76EA,\n 0xE1BA: 0x862F,\n 0xE1BB: 0x76FB,\n 0xE1BC: 0x7708,\n 0xE1BD: 0x7707,\n 0xE1BE: 0x7704,\n 0xE1BF: 0x7729,\n 0xE1C0: 0x7724,\n 0xE1C1: 0x771E,\n 0xE1C2: 0x7725,\n 0xE1C3: 0x7726,\n 0xE1C4: 0x771B,\n 0xE1C5: 0x7737,\n 0xE1C6: 0x7738,\n 0xE1C7: 0x7747,\n 0xE1C8: 0x775A,\n 0xE1C9: 0x7768,\n 0xE1CA: 0x776B,\n 0xE1CB: 0x775B,\n 0xE1CC: 0x7765,\n 0xE1CD: 0x777F,\n 0xE1CE: 0x777E,\n 0xE1CF: 0x7779,\n 0xE1D0: 0x778E,\n 0xE1D1: 0x778B,\n 0xE1D2: 0x7791,\n 0xE1D3: 0x77A0,\n 0xE1D4: 0x779E,\n 0xE1D5: 0x77B0,\n 0xE1D6: 0x77B6,\n 0xE1D7: 0x77B9,\n 0xE1D8: 0x77BF,\n 0xE1D9: 0x77BC,\n 0xE1DA: 0x77BD,\n 0xE1DB: 0x77BB,\n 0xE1DC: 0x77C7,\n 0xE1DD: 0x77CD,\n 0xE1DE: 0x77D7,\n 0xE1DF: 0x77DA,\n 0xE1E0: 0x77DC,\n 0xE1E1: 0x77E3,\n 0xE1E2: 0x77EE,\n 0xE1E3: 0x77FC,\n 0xE1E4: 0x780C,\n 0xE1E5: 0x7812,\n 0xE1E6: 0x7926,\n 0xE1E7: 0x7820,\n 0xE1E8: 0x792A,\n 0xE1E9: 0x7845,\n 0xE1EA: 0x788E,\n 0xE1EB: 0x7874,\n 0xE1EC: 0x7886,\n 0xE1ED: 0x787C,\n 0xE1EE: 0x789A,\n 0xE1EF: 0x788C,\n 0xE1F0: 0x78A3,\n 0xE1F1: 0x78B5,\n 0xE1F2: 0x78AA,\n 0xE1F3: 0x78AF,\n 0xE1F4: 0x78D1,\n 0xE1F5: 0x78C6,\n 0xE1F6: 0x78CB,\n 0xE1F7: 0x78D4,\n 0xE1F8: 0x78BE,\n 0xE1F9: 0x78BC,\n 0xE1FA: 0x78C5,\n 0xE1FB: 0x78CA,\n 0xE1FC: 0x78EC,\n 0xE240: 0x78E7,\n 0xE241: 0x78DA,\n 0xE242: 0x78FD,\n 0xE243: 0x78F4,\n 0xE244: 0x7907,\n 0xE245: 0x7912,\n 0xE246: 0x7911,\n 0xE247: 0x7919,\n 0xE248: 0x792C,\n 0xE249: 0x792B,\n 0xE24A: 0x7940,\n 0xE24B: 0x7960,\n 0xE24C: 0x7957,\n 0xE24D: 0x795F,\n 0xE24E: 0x795A,\n 0xE24F: 0x7955,\n 0xE250: 0x7953,\n 0xE251: 0x797A,\n 0xE252: 0x797F,\n 0xE253: 0x798A,\n 0xE254: 0x799D,\n 0xE255: 0x79A7,\n 0xE256: 0x9F4B,\n 0xE257: 0x79AA,\n 0xE258: 0x79AE,\n 0xE259: 0x79B3,\n 0xE25A: 0x79B9,\n 0xE25B: 0x79BA,\n 0xE25C: 0x79C9,\n 0xE25D: 0x79D5,\n 0xE25E: 0x79E7,\n 0xE25F: 0x79EC,\n 0xE260: 0x79E1,\n 0xE261: 0x79E3,\n 0xE262: 0x7A08,\n 0xE263: 0x7A0D,\n 0xE264: 0x7A18,\n 0xE265: 0x7A19,\n 0xE266: 0x7A20,\n 0xE267: 0x7A1F,\n 0xE268: 0x7980,\n 0xE269: 0x7A31,\n 0xE26A: 0x7A3B,\n 0xE26B: 0x7A3E,\n 0xE26C: 0x7A37,\n 0xE26D: 0x7A43,\n 0xE26E: 0x7A57,\n 0xE26F: 0x7A49,\n 0xE270: 0x7A61,\n 0xE271: 0x7A62,\n 0xE272: 0x7A69,\n 0xE273: 0x9F9D,\n 0xE274: 0x7A70,\n 0xE275: 0x7A79,\n 0xE276: 0x7A7D,\n 0xE277: 0x7A88,\n 0xE278: 0x7A97,\n 0xE279: 0x7A95,\n 0xE27A: 0x7A98,\n 0xE27B: 0x7A96,\n 0xE27C: 0x7AA9,\n 0xE27D: 0x7AC8,\n 0xE27E: 0x7AB0,\n 0xE280: 0x7AB6,\n 0xE281: 0x7AC5,\n 0xE282: 0x7AC4,\n 0xE283: 0x7ABF,\n 0xE284: 0x9083,\n 0xE285: 0x7AC7,\n 0xE286: 0x7ACA,\n 0xE287: 0x7ACD,\n 0xE288: 0x7ACF,\n 0xE289: 0x7AD5,\n 0xE28A: 0x7AD3,\n 0xE28B: 0x7AD9,\n 0xE28C: 0x7ADA,\n 0xE28D: 0x7ADD,\n 0xE28E: 0x7AE1,\n 0xE28F: 0x7AE2,\n 0xE290: 0x7AE6,\n 0xE291: 0x7AED,\n 0xE292: 0x7AF0,\n 0xE293: 0x7B02,\n 0xE294: 0x7B0F,\n 0xE295: 0x7B0A,\n 0xE296: 0x7B06,\n 0xE297: 0x7B33,\n 0xE298: 0x7B18,\n 0xE299: 0x7B19,\n 0xE29A: 0x7B1E,\n 0xE29B: 0x7B35,\n 0xE29C: 0x7B28,\n 0xE29D: 0x7B36,\n 0xE29E: 0x7B50,\n 0xE29F: 0x7B7A,\n 0xE2A0: 0x7B04,\n 0xE2A1: 0x7B4D,\n 0xE2A2: 0x7B0B,\n 0xE2A3: 0x7B4C,\n 0xE2A4: 0x7B45,\n 0xE2A5: 0x7B75,\n 0xE2A6: 0x7B65,\n 0xE2A7: 0x7B74,\n 0xE2A8: 0x7B67,\n 0xE2A9: 0x7B70,\n 0xE2AA: 0x7B71,\n 0xE2AB: 0x7B6C,\n 0xE2AC: 0x7B6E,\n 0xE2AD: 0x7B9D,\n 0xE2AE: 0x7B98,\n 0xE2AF: 0x7B9F,\n 0xE2B0: 0x7B8D,\n 0xE2B1: 0x7B9C,\n 0xE2B2: 0x7B9A,\n 0xE2B3: 0x7B8B,\n 0xE2B4: 0x7B92,\n 0xE2B5: 0x7B8F,\n 0xE2B6: 0x7B5D,\n 0xE2B7: 0x7B99,\n 0xE2B8: 0x7BCB,\n 0xE2B9: 0x7BC1,\n 0xE2BA: 0x7BCC,\n 0xE2BB: 0x7BCF,\n 0xE2BC: 0x7BB4,\n 0xE2BD: 0x7BC6,\n 0xE2BE: 0x7BDD,\n 0xE2BF: 0x7BE9,\n 0xE2C0: 0x7C11,\n 0xE2C1: 0x7C14,\n 0xE2C2: 0x7BE6,\n 0xE2C3: 0x7BE5,\n 0xE2C4: 0x7C60,\n 0xE2C5: 0x7C00,\n 0xE2C6: 0x7C07,\n 0xE2C7: 0x7C13,\n 0xE2C8: 0x7BF3,\n 0xE2C9: 0x7BF7,\n 0xE2CA: 0x7C17,\n 0xE2CB: 0x7C0D,\n 0xE2CC: 0x7BF6,\n 0xE2CD: 0x7C23,\n 0xE2CE: 0x7C27,\n 0xE2CF: 0x7C2A,\n 0xE2D0: 0x7C1F,\n 0xE2D1: 0x7C37,\n 0xE2D2: 0x7C2B,\n 0xE2D3: 0x7C3D,\n 0xE2D4: 0x7C4C,\n 0xE2D5: 0x7C43,\n 0xE2D6: 0x7C54,\n 0xE2D7: 0x7C4F,\n 0xE2D8: 0x7C40,\n 0xE2D9: 0x7C50,\n 0xE2DA: 0x7C58,\n 0xE2DB: 0x7C5F,\n 0xE2DC: 0x7C64,\n 0xE2DD: 0x7C56,\n 0xE2DE: 0x7C65,\n 0xE2DF: 0x7C6C,\n 0xE2E0: 0x7C75,\n 0xE2E1: 0x7C83,\n 0xE2E2: 0x7C90,\n 0xE2E3: 0x7CA4,\n 0xE2E4: 0x7CAD,\n 0xE2E5: 0x7CA2,\n 0xE2E6: 0x7CAB,\n 0xE2E7: 0x7CA1,\n 0xE2E8: 0x7CA8,\n 0xE2E9: 0x7CB3,\n 0xE2EA: 0x7CB2,\n 0xE2EB: 0x7CB1,\n 0xE2EC: 0x7CAE,\n 0xE2ED: 0x7CB9,\n 0xE2EE: 0x7CBD,\n 0xE2EF: 0x7CC0,\n 0xE2F0: 0x7CC5,\n 0xE2F1: 0x7CC2,\n 0xE2F2: 0x7CD8,\n 0xE2F3: 0x7CD2,\n 0xE2F4: 0x7CDC,\n 0xE2F5: 0x7CE2,\n 0xE2F6: 0x9B3B,\n 0xE2F7: 0x7CEF,\n 0xE2F8: 0x7CF2,\n 0xE2F9: 0x7CF4,\n 0xE2FA: 0x7CF6,\n 0xE2FB: 0x7CFA,\n 0xE2FC: 0x7D06,\n 0xE340: 0x7D02,\n 0xE341: 0x7D1C,\n 0xE342: 0x7D15,\n 0xE343: 0x7D0A,\n 0xE344: 0x7D45,\n 0xE345: 0x7D4B,\n 0xE346: 0x7D2E,\n 0xE347: 0x7D32,\n 0xE348: 0x7D3F,\n 0xE349: 0x7D35,\n 0xE34A: 0x7D46,\n 0xE34B: 0x7D73,\n 0xE34C: 0x7D56,\n 0xE34D: 0x7D4E,\n 0xE34E: 0x7D72,\n 0xE34F: 0x7D68,\n 0xE350: 0x7D6E,\n 0xE351: 0x7D4F,\n 0xE352: 0x7D63,\n 0xE353: 0x7D93,\n 0xE354: 0x7D89,\n 0xE355: 0x7D5B,\n 0xE356: 0x7D8F,\n 0xE357: 0x7D7D,\n 0xE358: 0x7D9B,\n 0xE359: 0x7DBA,\n 0xE35A: 0x7DAE,\n 0xE35B: 0x7DA3,\n 0xE35C: 0x7DB5,\n 0xE35D: 0x7DC7,\n 0xE35E: 0x7DBD,\n 0xE35F: 0x7DAB,\n 0xE360: 0x7E3D,\n 0xE361: 0x7DA2,\n 0xE362: 0x7DAF,\n 0xE363: 0x7DDC,\n 0xE364: 0x7DB8,\n 0xE365: 0x7D9F,\n 0xE366: 0x7DB0,\n 0xE367: 0x7DD8,\n 0xE368: 0x7DDD,\n 0xE369: 0x7DE4,\n 0xE36A: 0x7DDE,\n 0xE36B: 0x7DFB,\n 0xE36C: 0x7DF2,\n 0xE36D: 0x7DE1,\n 0xE36E: 0x7E05,\n 0xE36F: 0x7E0A,\n 0xE370: 0x7E23,\n 0xE371: 0x7E21,\n 0xE372: 0x7E12,\n 0xE373: 0x7E31,\n 0xE374: 0x7E1F,\n 0xE375: 0x7E09,\n 0xE376: 0x7E0B,\n 0xE377: 0x7E22,\n 0xE378: 0x7E46,\n 0xE379: 0x7E66,\n 0xE37A: 0x7E3B,\n 0xE37B: 0x7E35,\n 0xE37C: 0x7E39,\n 0xE37D: 0x7E43,\n 0xE37E: 0x7E37,\n 0xE380: 0x7E32,\n 0xE381: 0x7E3A,\n 0xE382: 0x7E67,\n 0xE383: 0x7E5D,\n 0xE384: 0x7E56,\n 0xE385: 0x7E5E,\n 0xE386: 0x7E59,\n 0xE387: 0x7E5A,\n 0xE388: 0x7E79,\n 0xE389: 0x7E6A,\n 0xE38A: 0x7E69,\n 0xE38B: 0x7E7C,\n 0xE38C: 0x7E7B,\n 0xE38D: 0x7E83,\n 0xE38E: 0x7DD5,\n 0xE38F: 0x7E7D,\n 0xE390: 0x8FAE,\n 0xE391: 0x7E7F,\n 0xE392: 0x7E88,\n 0xE393: 0x7E89,\n 0xE394: 0x7E8C,\n 0xE395: 0x7E92,\n 0xE396: 0x7E90,\n 0xE397: 0x7E93,\n 0xE398: 0x7E94,\n 0xE399: 0x7E96,\n 0xE39A: 0x7E8E,\n 0xE39B: 0x7E9B,\n 0xE39C: 0x7E9C,\n 0xE39D: 0x7F38,\n 0xE39E: 0x7F3A,\n 0xE39F: 0x7F45,\n 0xE3A0: 0x7F4C,\n 0xE3A1: 0x7F4D,\n 0xE3A2: 0x7F4E,\n 0xE3A3: 0x7F50,\n 0xE3A4: 0x7F51,\n 0xE3A5: 0x7F55,\n 0xE3A6: 0x7F54,\n 0xE3A7: 0x7F58,\n 0xE3A8: 0x7F5F,\n 0xE3A9: 0x7F60,\n 0xE3AA: 0x7F68,\n 0xE3AB: 0x7F69,\n 0xE3AC: 0x7F67,\n 0xE3AD: 0x7F78,\n 0xE3AE: 0x7F82,\n 0xE3AF: 0x7F86,\n 0xE3B0: 0x7F83,\n 0xE3B1: 0x7F88,\n 0xE3B2: 0x7F87,\n 0xE3B3: 0x7F8C,\n 0xE3B4: 0x7F94,\n 0xE3B5: 0x7F9E,\n 0xE3B6: 0x7F9D,\n 0xE3B7: 0x7F9A,\n 0xE3B8: 0x7FA3,\n 0xE3B9: 0x7FAF,\n 0xE3BA: 0x7FB2,\n 0xE3BB: 0x7FB9,\n 0xE3BC: 0x7FAE,\n 0xE3BD: 0x7FB6,\n 0xE3BE: 0x7FB8,\n 0xE3BF: 0x8B71,\n 0xE3C0: 0x7FC5,\n 0xE3C1: 0x7FC6,\n 0xE3C2: 0x7FCA,\n 0xE3C3: 0x7FD5,\n 0xE3C4: 0x7FD4,\n 0xE3C5: 0x7FE1,\n 0xE3C6: 0x7FE6,\n 0xE3C7: 0x7FE9,\n 0xE3C8: 0x7FF3,\n 0xE3C9: 0x7FF9,\n 0xE3CA: 0x98DC,\n 0xE3CB: 0x8006,\n 0xE3CC: 0x8004,\n 0xE3CD: 0x800B,\n 0xE3CE: 0x8012,\n 0xE3CF: 0x8018,\n 0xE3D0: 0x8019,\n 0xE3D1: 0x801C,\n 0xE3D2: 0x8021,\n 0xE3D3: 0x8028,\n 0xE3D4: 0x803F,\n 0xE3D5: 0x803B,\n 0xE3D6: 0x804A,\n 0xE3D7: 0x8046,\n 0xE3D8: 0x8052,\n 0xE3D9: 0x8058,\n 0xE3DA: 0x805A,\n 0xE3DB: 0x805F,\n 0xE3DC: 0x8062,\n 0xE3DD: 0x8068,\n 0xE3DE: 0x8073,\n 0xE3DF: 0x8072,\n 0xE3E0: 0x8070,\n 0xE3E1: 0x8076,\n 0xE3E2: 0x8079,\n 0xE3E3: 0x807D,\n 0xE3E4: 0x807F,\n 0xE3E5: 0x8084,\n 0xE3E6: 0x8086,\n 0xE3E7: 0x8085,\n 0xE3E8: 0x809B,\n 0xE3E9: 0x8093,\n 0xE3EA: 0x809A,\n 0xE3EB: 0x80AD,\n 0xE3EC: 0x5190,\n 0xE3ED: 0x80AC,\n 0xE3EE: 0x80DB,\n 0xE3EF: 0x80E5,\n 0xE3F0: 0x80D9,\n 0xE3F1: 0x80DD,\n 0xE3F2: 0x80C4,\n 0xE3F3: 0x80DA,\n 0xE3F4: 0x80D6,\n 0xE3F5: 0x8109,\n 0xE3F6: 0x80EF,\n 0xE3F7: 0x80F1,\n 0xE3F8: 0x811B,\n 0xE3F9: 0x8129,\n 0xE3FA: 0x8123,\n 0xE3FB: 0x812F,\n 0xE3FC: 0x814B,\n 0xE440: 0x968B,\n 0xE441: 0x8146,\n 0xE442: 0x813E,\n 0xE443: 0x8153,\n 0xE444: 0x8151,\n 0xE445: 0x80FC,\n 0xE446: 0x8171,\n 0xE447: 0x816E,\n 0xE448: 0x8165,\n 0xE449: 0x8166,\n 0xE44A: 0x8174,\n 0xE44B: 0x8183,\n 0xE44C: 0x8188,\n 0xE44D: 0x818A,\n 0xE44E: 0x8180,\n 0xE44F: 0x8182,\n 0xE450: 0x81A0,\n 0xE451: 0x8195,\n 0xE452: 0x81A4,\n 0xE453: 0x81A3,\n 0xE454: 0x815F,\n 0xE455: 0x8193,\n 0xE456: 0x81A9,\n 0xE457: 0x81B0,\n 0xE458: 0x81B5,\n 0xE459: 0x81BE,\n 0xE45A: 0x81B8,\n 0xE45B: 0x81BD,\n 0xE45C: 0x81C0,\n 0xE45D: 0x81C2,\n 0xE45E: 0x81BA,\n 0xE45F: 0x81C9,\n 0xE460: 0x81CD,\n 0xE461: 0x81D1,\n 0xE462: 0x81D9,\n 0xE463: 0x81D8,\n 0xE464: 0x81C8,\n 0xE465: 0x81DA,\n 0xE466: 0x81DF,\n 0xE467: 0x81E0,\n 0xE468: 0x81E7,\n 0xE469: 0x81FA,\n 0xE46A: 0x81FB,\n 0xE46B: 0x81FE,\n 0xE46C: 0x8201,\n 0xE46D: 0x8202,\n 0xE46E: 0x8205,\n 0xE46F: 0x8207,\n 0xE470: 0x820A,\n 0xE471: 0x820D,\n 0xE472: 0x8210,\n 0xE473: 0x8216,\n 0xE474: 0x8229,\n 0xE475: 0x822B,\n 0xE476: 0x8238,\n 0xE477: 0x8233,\n 0xE478: 0x8240,\n 0xE479: 0x8259,\n 0xE47A: 0x8258,\n 0xE47B: 0x825D,\n 0xE47C: 0x825A,\n 0xE47D: 0x825F,\n 0xE47E: 0x8264,\n 0xE480: 0x8262,\n 0xE481: 0x8268,\n 0xE482: 0x826A,\n 0xE483: 0x826B,\n 0xE484: 0x822E,\n 0xE485: 0x8271,\n 0xE486: 0x8277,\n 0xE487: 0x8278,\n 0xE488: 0x827E,\n 0xE489: 0x828D,\n 0xE48A: 0x8292,\n 0xE48B: 0x82AB,\n 0xE48C: 0x829F,\n 0xE48D: 0x82BB,\n 0xE48E: 0x82AC,\n 0xE48F: 0x82E1,\n 0xE490: 0x82E3,\n 0xE491: 0x82DF,\n 0xE492: 0x82D2,\n 0xE493: 0x82F4,\n 0xE494: 0x82F3,\n 0xE495: 0x82FA,\n 0xE496: 0x8393,\n 0xE497: 0x8303,\n 0xE498: 0x82FB,\n 0xE499: 0x82F9,\n 0xE49A: 0x82DE,\n 0xE49B: 0x8306,\n 0xE49C: 0x82DC,\n 0xE49D: 0x8309,\n 0xE49E: 0x82D9,\n 0xE49F: 0x8335,\n 0xE4A0: 0x8334,\n 0xE4A1: 0x8316,\n 0xE4A2: 0x8332,\n 0xE4A3: 0x8331,\n 0xE4A4: 0x8340,\n 0xE4A5: 0x8339,\n 0xE4A6: 0x8350,\n 0xE4A7: 0x8345,\n 0xE4A8: 0x832F,\n 0xE4A9: 0x832B,\n 0xE4AA: 0x8317,\n 0xE4AB: 0x8318,\n 0xE4AC: 0x8385,\n 0xE4AD: 0x839A,\n 0xE4AE: 0x83AA,\n 0xE4AF: 0x839F,\n 0xE4B0: 0x83A2,\n 0xE4B1: 0x8396,\n 0xE4B2: 0x8323,\n 0xE4B3: 0x838E,\n 0xE4B4: 0x8387,\n 0xE4B5: 0x838A,\n 0xE4B6: 0x837C,\n 0xE4B7: 0x83B5,\n 0xE4B8: 0x8373,\n 0xE4B9: 0x8375,\n 0xE4BA: 0x83A0,\n 0xE4BB: 0x8389,\n 0xE4BC: 0x83A8,\n 0xE4BD: 0x83F4,\n 0xE4BE: 0x8413,\n 0xE4BF: 0x83EB,\n 0xE4C0: 0x83CE,\n 0xE4C1: 0x83FD,\n 0xE4C2: 0x8403,\n 0xE4C3: 0x83D8,\n 0xE4C4: 0x840B,\n 0xE4C5: 0x83C1,\n 0xE4C6: 0x83F7,\n 0xE4C7: 0x8407,\n 0xE4C8: 0x83E0,\n 0xE4C9: 0x83F2,\n 0xE4CA: 0x840D,\n 0xE4CB: 0x8422,\n 0xE4CC: 0x8420,\n 0xE4CD: 0x83BD,\n 0xE4CE: 0x8438,\n 0xE4CF: 0x8506,\n 0xE4D0: 0x83FB,\n 0xE4D1: 0x846D,\n 0xE4D2: 0x842A,\n 0xE4D3: 0x843C,\n 0xE4D4: 0x855A,\n 0xE4D5: 0x8484,\n 0xE4D6: 0x8477,\n 0xE4D7: 0x846B,\n 0xE4D8: 0x84AD,\n 0xE4D9: 0x846E,\n 0xE4DA: 0x8482,\n 0xE4DB: 0x8469,\n 0xE4DC: 0x8446,\n 0xE4DD: 0x842C,\n 0xE4DE: 0x846F,\n 0xE4DF: 0x8479,\n 0xE4E0: 0x8435,\n 0xE4E1: 0x84CA,\n 0xE4E2: 0x8462,\n 0xE4E3: 0x84B9,\n 0xE4E4: 0x84BF,\n 0xE4E5: 0x849F,\n 0xE4E6: 0x84D9,\n 0xE4E7: 0x84CD,\n 0xE4E8: 0x84BB,\n 0xE4E9: 0x84DA,\n 0xE4EA: 0x84D0,\n 0xE4EB: 0x84C1,\n 0xE4EC: 0x84C6,\n 0xE4ED: 0x84D6,\n 0xE4EE: 0x84A1,\n 0xE4EF: 0x8521,\n 0xE4F0: 0x84FF,\n 0xE4F1: 0x84F4,\n 0xE4F2: 0x8517,\n 0xE4F3: 0x8518,\n 0xE4F4: 0x852C,\n 0xE4F5: 0x851F,\n 0xE4F6: 0x8515,\n 0xE4F7: 0x8514,\n 0xE4F8: 0x84FC,\n 0xE4F9: 0x8540,\n 0xE4FA: 0x8563,\n 0xE4FB: 0x8558,\n 0xE4FC: 0x8548,\n 0xE540: 0x8541,\n 0xE541: 0x8602,\n 0xE542: 0x854B,\n 0xE543: 0x8555,\n 0xE544: 0x8580,\n 0xE545: 0x85A4,\n 0xE546: 0x8588,\n 0xE547: 0x8591,\n 0xE548: 0x858A,\n 0xE549: 0x85A8,\n 0xE54A: 0x856D,\n 0xE54B: 0x8594,\n 0xE54C: 0x859B,\n 0xE54D: 0x85EA,\n 0xE54E: 0x8587,\n 0xE54F: 0x859C,\n 0xE550: 0x8577,\n 0xE551: 0x857E,\n 0xE552: 0x8590,\n 0xE553: 0x85C9,\n 0xE554: 0x85BA,\n 0xE555: 0x85CF,\n 0xE556: 0x85B9,\n 0xE557: 0x85D0,\n 0xE558: 0x85D5,\n 0xE559: 0x85DD,\n 0xE55A: 0x85E5,\n 0xE55B: 0x85DC,\n 0xE55C: 0x85F9,\n 0xE55D: 0x860A,\n 0xE55E: 0x8613,\n 0xE55F: 0x860B,\n 0xE560: 0x85FE,\n 0xE561: 0x85FA,\n 0xE562: 0x8606,\n 0xE563: 0x8622,\n 0xE564: 0x861A,\n 0xE565: 0x8630,\n 0xE566: 0x863F,\n 0xE567: 0x864D,\n 0xE568: 0x4E55,\n 0xE569: 0x8654,\n 0xE56A: 0x865F,\n 0xE56B: 0x8667,\n 0xE56C: 0x8671,\n 0xE56D: 0x8693,\n 0xE56E: 0x86A3,\n 0xE56F: 0x86A9,\n 0xE570: 0x86AA,\n 0xE571: 0x868B,\n 0xE572: 0x868C,\n 0xE573: 0x86B6,\n 0xE574: 0x86AF,\n 0xE575: 0x86C4,\n 0xE576: 0x86C6,\n 0xE577: 0x86B0,\n 0xE578: 0x86C9,\n 0xE579: 0x8823,\n 0xE57A: 0x86AB,\n 0xE57B: 0x86D4,\n 0xE57C: 0x86DE,\n 0xE57D: 0x86E9,\n 0xE57E: 0x86EC,\n 0xE580: 0x86DF,\n 0xE581: 0x86DB,\n 0xE582: 0x86EF,\n 0xE583: 0x8712,\n 0xE584: 0x8706,\n 0xE585: 0x8708,\n 0xE586: 0x8700,\n 0xE587: 0x8703,\n 0xE588: 0x86FB,\n 0xE589: 0x8711,\n 0xE58A: 0x8709,\n 0xE58B: 0x870D,\n 0xE58C: 0x86F9,\n 0xE58D: 0x870A,\n 0xE58E: 0x8734,\n 0xE58F: 0x873F,\n 0xE590: 0x8737,\n 0xE591: 0x873B,\n 0xE592: 0x8725,\n 0xE593: 0x8729,\n 0xE594: 0x871A,\n 0xE595: 0x8760,\n 0xE596: 0x875F,\n 0xE597: 0x8778,\n 0xE598: 0x874C,\n 0xE599: 0x874E,\n 0xE59A: 0x8774,\n 0xE59B: 0x8757,\n 0xE59C: 0x8768,\n 0xE59D: 0x876E,\n 0xE59E: 0x8759,\n 0xE59F: 0x8753,\n 0xE5A0: 0x8763,\n 0xE5A1: 0x876A,\n 0xE5A2: 0x8805,\n 0xE5A3: 0x87A2,\n 0xE5A4: 0x879F,\n 0xE5A5: 0x8782,\n 0xE5A6: 0x87AF,\n 0xE5A7: 0x87CB,\n 0xE5A8: 0x87BD,\n 0xE5A9: 0x87C0,\n 0xE5AA: 0x87D0,\n 0xE5AB: 0x96D6,\n 0xE5AC: 0x87AB,\n 0xE5AD: 0x87C4,\n 0xE5AE: 0x87B3,\n 0xE5AF: 0x87C7,\n 0xE5B0: 0x87C6,\n 0xE5B1: 0x87BB,\n 0xE5B2: 0x87EF,\n 0xE5B3: 0x87F2,\n 0xE5B4: 0x87E0,\n 0xE5B5: 0x880F,\n 0xE5B6: 0x880D,\n 0xE5B7: 0x87FE,\n 0xE5B8: 0x87F6,\n 0xE5B9: 0x87F7,\n 0xE5BA: 0x880E,\n 0xE5BB: 0x87D2,\n 0xE5BC: 0x8811,\n 0xE5BD: 0x8816,\n 0xE5BE: 0x8815,\n 0xE5BF: 0x8822,\n 0xE5C0: 0x8821,\n 0xE5C1: 0x8831,\n 0xE5C2: 0x8836,\n 0xE5C3: 0x8839,\n 0xE5C4: 0x8827,\n 0xE5C5: 0x883B,\n 0xE5C6: 0x8844,\n 0xE5C7: 0x8842,\n 0xE5C8: 0x8852,\n 0xE5C9: 0x8859,\n 0xE5CA: 0x885E,\n 0xE5CB: 0x8862,\n 0xE5CC: 0x886B,\n 0xE5CD: 0x8881,\n 0xE5CE: 0x887E,\n 0xE5CF: 0x889E,\n 0xE5D0: 0x8875,\n 0xE5D1: 0x887D,\n 0xE5D2: 0x88B5,\n 0xE5D3: 0x8872,\n 0xE5D4: 0x8882,\n 0xE5D5: 0x8897,\n 0xE5D6: 0x8892,\n 0xE5D7: 0x88AE,\n 0xE5D8: 0x8899,\n 0xE5D9: 0x88A2,\n 0xE5DA: 0x888D,\n 0xE5DB: 0x88A4,\n 0xE5DC: 0x88B0,\n 0xE5DD: 0x88BF,\n 0xE5DE: 0x88B1,\n 0xE5DF: 0x88C3,\n 0xE5E0: 0x88C4,\n 0xE5E1: 0x88D4,\n 0xE5E2: 0x88D8,\n 0xE5E3: 0x88D9,\n 0xE5E4: 0x88DD,\n 0xE5E5: 0x88F9,\n 0xE5E6: 0x8902,\n 0xE5E7: 0x88FC,\n 0xE5E8: 0x88F4,\n 0xE5E9: 0x88E8,\n 0xE5EA: 0x88F2,\n 0xE5EB: 0x8904,\n 0xE5EC: 0x890C,\n 0xE5ED: 0x890A,\n 0xE5EE: 0x8913,\n 0xE5EF: 0x8943,\n 0xE5F0: 0x891E,\n 0xE5F1: 0x8925,\n 0xE5F2: 0x892A,\n 0xE5F3: 0x892B,\n 0xE5F4: 0x8941,\n 0xE5F5: 0x8944,\n 0xE5F6: 0x893B,\n 0xE5F7: 0x8936,\n 0xE5F8: 0x8938,\n 0xE5F9: 0x894C,\n 0xE5FA: 0x891D,\n 0xE5FB: 0x8960,\n 0xE5FC: 0x895E,\n 0xE640: 0x8966,\n 0xE641: 0x8964,\n 0xE642: 0x896D,\n 0xE643: 0x896A,\n 0xE644: 0x896F,\n 0xE645: 0x8974,\n 0xE646: 0x8977,\n 0xE647: 0x897E,\n 0xE648: 0x8983,\n 0xE649: 0x8988,\n 0xE64A: 0x898A,\n 0xE64B: 0x8993,\n 0xE64C: 0x8998,\n 0xE64D: 0x89A1,\n 0xE64E: 0x89A9,\n 0xE64F: 0x89A6,\n 0xE650: 0x89AC,\n 0xE651: 0x89AF,\n 0xE652: 0x89B2,\n 0xE653: 0x89BA,\n 0xE654: 0x89BD,\n 0xE655: 0x89BF,\n 0xE656: 0x89C0,\n 0xE657: 0x89DA,\n 0xE658: 0x89DC,\n 0xE659: 0x89DD,\n 0xE65A: 0x89E7,\n 0xE65B: 0x89F4,\n 0xE65C: 0x89F8,\n 0xE65D: 0x8A03,\n 0xE65E: 0x8A16,\n 0xE65F: 0x8A10,\n 0xE660: 0x8A0C,\n 0xE661: 0x8A1B,\n 0xE662: 0x8A1D,\n 0xE663: 0x8A25,\n 0xE664: 0x8A36,\n 0xE665: 0x8A41,\n 0xE666: 0x8A5B,\n 0xE667: 0x8A52,\n 0xE668: 0x8A46,\n 0xE669: 0x8A48,\n 0xE66A: 0x8A7C,\n 0xE66B: 0x8A6D,\n 0xE66C: 0x8A6C,\n 0xE66D: 0x8A62,\n 0xE66E: 0x8A85,\n 0xE66F: 0x8A82,\n 0xE670: 0x8A84,\n 0xE671: 0x8AA8,\n 0xE672: 0x8AA1,\n 0xE673: 0x8A91,\n 0xE674: 0x8AA5,\n 0xE675: 0x8AA6,\n 0xE676: 0x8A9A,\n 0xE677: 0x8AA3,\n 0xE678: 0x8AC4,\n 0xE679: 0x8ACD,\n 0xE67A: 0x8AC2,\n 0xE67B: 0x8ADA,\n 0xE67C: 0x8AEB,\n 0xE67D: 0x8AF3,\n 0xE67E: 0x8AE7,\n 0xE680: 0x8AE4,\n 0xE681: 0x8AF1,\n 0xE682: 0x8B14,\n 0xE683: 0x8AE0,\n 0xE684: 0x8AE2,\n 0xE685: 0x8AF7,\n 0xE686: 0x8ADE,\n 0xE687: 0x8ADB,\n 0xE688: 0x8B0C,\n 0xE689: 0x8B07,\n 0xE68A: 0x8B1A,\n 0xE68B: 0x8AE1,\n 0xE68C: 0x8B16,\n 0xE68D: 0x8B10,\n 0xE68E: 0x8B17,\n 0xE68F: 0x8B20,\n 0xE690: 0x8B33,\n 0xE691: 0x97AB,\n 0xE692: 0x8B26,\n 0xE693: 0x8B2B,\n 0xE694: 0x8B3E,\n 0xE695: 0x8B28,\n 0xE696: 0x8B41,\n 0xE697: 0x8B4C,\n 0xE698: 0x8B4F,\n 0xE699: 0x8B4E,\n 0xE69A: 0x8B49,\n 0xE69B: 0x8B56,\n 0xE69C: 0x8B5B,\n 0xE69D: 0x8B5A,\n 0xE69E: 0x8B6B,\n 0xE69F: 0x8B5F,\n 0xE6A0: 0x8B6C,\n 0xE6A1: 0x8B6F,\n 0xE6A2: 0x8B74,\n 0xE6A3: 0x8B7D,\n 0xE6A4: 0x8B80,\n 0xE6A5: 0x8B8C,\n 0xE6A6: 0x8B8E,\n 0xE6A7: 0x8B92,\n 0xE6A8: 0x8B93,\n 0xE6A9: 0x8B96,\n 0xE6AA: 0x8B99,\n 0xE6AB: 0x8B9A,\n 0xE6AC: 0x8C3A,\n 0xE6AD: 0x8C41,\n 0xE6AE: 0x8C3F,\n 0xE6AF: 0x8C48,\n 0xE6B0: 0x8C4C,\n 0xE6B1: 0x8C4E,\n 0xE6B2: 0x8C50,\n 0xE6B3: 0x8C55,\n 0xE6B4: 0x8C62,\n 0xE6B5: 0x8C6C,\n 0xE6B6: 0x8C78,\n 0xE6B7: 0x8C7A,\n 0xE6B8: 0x8C82,\n 0xE6B9: 0x8C89,\n 0xE6BA: 0x8C85,\n 0xE6BB: 0x8C8A,\n 0xE6BC: 0x8C8D,\n 0xE6BD: 0x8C8E,\n 0xE6BE: 0x8C94,\n 0xE6BF: 0x8C7C,\n 0xE6C0: 0x8C98,\n 0xE6C1: 0x621D,\n 0xE6C2: 0x8CAD,\n 0xE6C3: 0x8CAA,\n 0xE6C4: 0x8CBD,\n 0xE6C5: 0x8CB2,\n 0xE6C6: 0x8CB3,\n 0xE6C7: 0x8CAE,\n 0xE6C8: 0x8CB6,\n 0xE6C9: 0x8CC8,\n 0xE6CA: 0x8CC1,\n 0xE6CB: 0x8CE4,\n 0xE6CC: 0x8CE3,\n 0xE6CD: 0x8CDA,\n 0xE6CE: 0x8CFD,\n 0xE6CF: 0x8CFA,\n 0xE6D0: 0x8CFB,\n 0xE6D1: 0x8D04,\n 0xE6D2: 0x8D05,\n 0xE6D3: 0x8D0A,\n 0xE6D4: 0x8D07,\n 0xE6D5: 0x8D0F,\n 0xE6D6: 0x8D0D,\n 0xE6D7: 0x8D10,\n 0xE6D8: 0x9F4E,\n 0xE6D9: 0x8D13,\n 0xE6DA: 0x8CCD,\n 0xE6DB: 0x8D14,\n 0xE6DC: 0x8D16,\n 0xE6DD: 0x8D67,\n 0xE6DE: 0x8D6D,\n 0xE6DF: 0x8D71,\n 0xE6E0: 0x8D73,\n 0xE6E1: 0x8D81,\n 0xE6E2: 0x8D99,\n 0xE6E3: 0x8DC2,\n 0xE6E4: 0x8DBE,\n 0xE6E5: 0x8DBA,\n 0xE6E6: 0x8DCF,\n 0xE6E7: 0x8DDA,\n 0xE6E8: 0x8DD6,\n 0xE6E9: 0x8DCC,\n 0xE6EA: 0x8DDB,\n 0xE6EB: 0x8DCB,\n 0xE6EC: 0x8DEA,\n 0xE6ED: 0x8DEB,\n 0xE6EE: 0x8DDF,\n 0xE6EF: 0x8DE3,\n 0xE6F0: 0x8DFC,\n 0xE6F1: 0x8E08,\n 0xE6F2: 0x8E09,\n 0xE6F3: 0x8DFF,\n 0xE6F4: 0x8E1D,\n 0xE6F5: 0x8E1E,\n 0xE6F6: 0x8E10,\n 0xE6F7: 0x8E1F,\n 0xE6F8: 0x8E42,\n 0xE6F9: 0x8E35,\n 0xE6FA: 0x8E30,\n 0xE6FB: 0x8E34,\n 0xE6FC: 0x8E4A,\n 0xE740: 0x8E47,\n 0xE741: 0x8E49,\n 0xE742: 0x8E4C,\n 0xE743: 0x8E50,\n 0xE744: 0x8E48,\n 0xE745: 0x8E59,\n 0xE746: 0x8E64,\n 0xE747: 0x8E60,\n 0xE748: 0x8E2A,\n 0xE749: 0x8E63,\n 0xE74A: 0x8E55,\n 0xE74B: 0x8E76,\n 0xE74C: 0x8E72,\n 0xE74D: 0x8E7C,\n 0xE74E: 0x8E81,\n 0xE74F: 0x8E87,\n 0xE750: 0x8E85,\n 0xE751: 0x8E84,\n 0xE752: 0x8E8B,\n 0xE753: 0x8E8A,\n 0xE754: 0x8E93,\n 0xE755: 0x8E91,\n 0xE756: 0x8E94,\n 0xE757: 0x8E99,\n 0xE758: 0x8EAA,\n 0xE759: 0x8EA1,\n 0xE75A: 0x8EAC,\n 0xE75B: 0x8EB0,\n 0xE75C: 0x8EC6,\n 0xE75D: 0x8EB1,\n 0xE75E: 0x8EBE,\n 0xE75F: 0x8EC5,\n 0xE760: 0x8EC8,\n 0xE761: 0x8ECB,\n 0xE762: 0x8EDB,\n 0xE763: 0x8EE3,\n 0xE764: 0x8EFC,\n 0xE765: 0x8EFB,\n 0xE766: 0x8EEB,\n 0xE767: 0x8EFE,\n 0xE768: 0x8F0A,\n 0xE769: 0x8F05,\n 0xE76A: 0x8F15,\n 0xE76B: 0x8F12,\n 0xE76C: 0x8F19,\n 0xE76D: 0x8F13,\n 0xE76E: 0x8F1C,\n 0xE76F: 0x8F1F,\n 0xE770: 0x8F1B,\n 0xE771: 0x8F0C,\n 0xE772: 0x8F26,\n 0xE773: 0x8F33,\n 0xE774: 0x8F3B,\n 0xE775: 0x8F39,\n 0xE776: 0x8F45,\n 0xE777: 0x8F42,\n 0xE778: 0x8F3E,\n 0xE779: 0x8F4C,\n 0xE77A: 0x8F49,\n 0xE77B: 0x8F46,\n 0xE77C: 0x8F4E,\n 0xE77D: 0x8F57,\n 0xE77E: 0x8F5C,\n 0xE780: 0x8F62,\n 0xE781: 0x8F63,\n 0xE782: 0x8F64,\n 0xE783: 0x8F9C,\n 0xE784: 0x8F9F,\n 0xE785: 0x8FA3,\n 0xE786: 0x8FAD,\n 0xE787: 0x8FAF,\n 0xE788: 0x8FB7,\n 0xE789: 0x8FDA,\n 0xE78A: 0x8FE5,\n 0xE78B: 0x8FE2,\n 0xE78C: 0x8FEA,\n 0xE78D: 0x8FEF,\n 0xE78E: 0x9087,\n 0xE78F: 0x8FF4,\n 0xE790: 0x9005,\n 0xE791: 0x8FF9,\n 0xE792: 0x8FFA,\n 0xE793: 0x9011,\n 0xE794: 0x9015,\n 0xE795: 0x9021,\n 0xE796: 0x900D,\n 0xE797: 0x901E,\n 0xE798: 0x9016,\n 0xE799: 0x900B,\n 0xE79A: 0x9027,\n 0xE79B: 0x9036,\n 0xE79C: 0x9035,\n 0xE79D: 0x9039,\n 0xE79E: 0x8FF8,\n 0xE79F: 0x904F,\n 0xE7A0: 0x9050,\n 0xE7A1: 0x9051,\n 0xE7A2: 0x9052,\n 0xE7A3: 0x900E,\n 0xE7A4: 0x9049,\n 0xE7A5: 0x903E,\n 0xE7A6: 0x9056,\n 0xE7A7: 0x9058,\n 0xE7A8: 0x905E,\n 0xE7A9: 0x9068,\n 0xE7AA: 0x906F,\n 0xE7AB: 0x9076,\n 0xE7AC: 0x96A8,\n 0xE7AD: 0x9072,\n 0xE7AE: 0x9082,\n 0xE7AF: 0x907D,\n 0xE7B0: 0x9081,\n 0xE7B1: 0x9080,\n 0xE7B2: 0x908A,\n 0xE7B3: 0x9089,\n 0xE7B4: 0x908F,\n 0xE7B5: 0x90A8,\n 0xE7B6: 0x90AF,\n 0xE7B7: 0x90B1,\n 0xE7B8: 0x90B5,\n 0xE7B9: 0x90E2,\n 0xE7BA: 0x90E4,\n 0xE7BB: 0x6248,\n 0xE7BC: 0x90DB,\n 0xE7BD: 0x9102,\n 0xE7BE: 0x9112,\n 0xE7BF: 0x9119,\n 0xE7C0: 0x9132,\n 0xE7C1: 0x9130,\n 0xE7C2: 0x914A,\n 0xE7C3: 0x9156,\n 0xE7C4: 0x9158,\n 0xE7C5: 0x9163,\n 0xE7C6: 0x9165,\n 0xE7C7: 0x9169,\n 0xE7C8: 0x9173,\n 0xE7C9: 0x9172,\n 0xE7CA: 0x918B,\n 0xE7CB: 0x9189,\n 0xE7CC: 0x9182,\n 0xE7CD: 0x91A2,\n 0xE7CE: 0x91AB,\n 0xE7CF: 0x91AF,\n 0xE7D0: 0x91AA,\n 0xE7D1: 0x91B5,\n 0xE7D2: 0x91B4,\n 0xE7D3: 0x91BA,\n 0xE7D4: 0x91C0,\n 0xE7D5: 0x91C1,\n 0xE7D6: 0x91C9,\n 0xE7D7: 0x91CB,\n 0xE7D8: 0x91D0,\n 0xE7D9: 0x91D6,\n 0xE7DA: 0x91DF,\n 0xE7DB: 0x91E1,\n 0xE7DC: 0x91DB,\n 0xE7DD: 0x91FC,\n 0xE7DE: 0x91F5,\n 0xE7DF: 0x91F6,\n 0xE7E0: 0x921E,\n 0xE7E1: 0x91FF,\n 0xE7E2: 0x9214,\n 0xE7E3: 0x922C,\n 0xE7E4: 0x9215,\n 0xE7E5: 0x9211,\n 0xE7E6: 0x925E,\n 0xE7E7: 0x9257,\n 0xE7E8: 0x9245,\n 0xE7E9: 0x9249,\n 0xE7EA: 0x9264,\n 0xE7EB: 0x9248,\n 0xE7EC: 0x9295,\n 0xE7ED: 0x923F,\n 0xE7EE: 0x924B,\n 0xE7EF: 0x9250,\n 0xE7F0: 0x929C,\n 0xE7F1: 0x9296,\n 0xE7F2: 0x9293,\n 0xE7F3: 0x929B,\n 0xE7F4: 0x925A,\n 0xE7F5: 0x92CF,\n 0xE7F6: 0x92B9,\n 0xE7F7: 0x92B7,\n 0xE7F8: 0x92E9,\n 0xE7F9: 0x930F,\n 0xE7FA: 0x92FA,\n 0xE7FB: 0x9344,\n 0xE7FC: 0x932E,\n 0xE840: 0x9319,\n 0xE841: 0x9322,\n 0xE842: 0x931A,\n 0xE843: 0x9323,\n 0xE844: 0x933A,\n 0xE845: 0x9335,\n 0xE846: 0x933B,\n 0xE847: 0x935C,\n 0xE848: 0x9360,\n 0xE849: 0x937C,\n 0xE84A: 0x936E,\n 0xE84B: 0x9356,\n 0xE84C: 0x93B0,\n 0xE84D: 0x93AC,\n 0xE84E: 0x93AD,\n 0xE84F: 0x9394,\n 0xE850: 0x93B9,\n 0xE851: 0x93D6,\n 0xE852: 0x93D7,\n 0xE853: 0x93E8,\n 0xE854: 0x93E5,\n 0xE855: 0x93D8,\n 0xE856: 0x93C3,\n 0xE857: 0x93DD,\n 0xE858: 0x93D0,\n 0xE859: 0x93C8,\n 0xE85A: 0x93E4,\n 0xE85B: 0x941A,\n 0xE85C: 0x9414,\n 0xE85D: 0x9413,\n 0xE85E: 0x9403,\n 0xE85F: 0x9407,\n 0xE860: 0x9410,\n 0xE861: 0x9436,\n 0xE862: 0x942B,\n 0xE863: 0x9435,\n 0xE864: 0x9421,\n 0xE865: 0x943A,\n 0xE866: 0x9441,\n 0xE867: 0x9452,\n 0xE868: 0x9444,\n 0xE869: 0x945B,\n 0xE86A: 0x9460,\n 0xE86B: 0x9462,\n 0xE86C: 0x945E,\n 0xE86D: 0x946A,\n 0xE86E: 0x9229,\n 0xE86F: 0x9470,\n 0xE870: 0x9475,\n 0xE871: 0x9477,\n 0xE872: 0x947D,\n 0xE873: 0x945A,\n 0xE874: 0x947C,\n 0xE875: 0x947E,\n 0xE876: 0x9481,\n 0xE877: 0x947F,\n 0xE878: 0x9582,\n 0xE879: 0x9587,\n 0xE87A: 0x958A,\n 0xE87B: 0x9594,\n 0xE87C: 0x9596,\n 0xE87D: 0x9598,\n 0xE87E: 0x9599,\n 0xE880: 0x95A0,\n 0xE881: 0x95A8,\n 0xE882: 0x95A7,\n 0xE883: 0x95AD,\n 0xE884: 0x95BC,\n 0xE885: 0x95BB,\n 0xE886: 0x95B9,\n 0xE887: 0x95BE,\n 0xE888: 0x95CA,\n 0xE889: 0x6FF6,\n 0xE88A: 0x95C3,\n 0xE88B: 0x95CD,\n 0xE88C: 0x95CC,\n 0xE88D: 0x95D5,\n 0xE88E: 0x95D4,\n 0xE88F: 0x95D6,\n 0xE890: 0x95DC,\n 0xE891: 0x95E1,\n 0xE892: 0x95E5,\n 0xE893: 0x95E2,\n 0xE894: 0x9621,\n 0xE895: 0x9628,\n 0xE896: 0x962E,\n 0xE897: 0x962F,\n 0xE898: 0x9642,\n 0xE899: 0x964C,\n 0xE89A: 0x964F,\n 0xE89B: 0x964B,\n 0xE89C: 0x9677,\n 0xE89D: 0x965C,\n 0xE89E: 0x965E,\n 0xE89F: 0x965D,\n 0xE8A0: 0x965F,\n 0xE8A1: 0x9666,\n 0xE8A2: 0x9672,\n 0xE8A3: 0x966C,\n 0xE8A4: 0x968D,\n 0xE8A5: 0x9698,\n 0xE8A6: 0x9695,\n 0xE8A7: 0x9697,\n 0xE8A8: 0x96AA,\n 0xE8A9: 0x96A7,\n 0xE8AA: 0x96B1,\n 0xE8AB: 0x96B2,\n 0xE8AC: 0x96B0,\n 0xE8AD: 0x96B4,\n 0xE8AE: 0x96B6,\n 0xE8AF: 0x96B8,\n 0xE8B0: 0x96B9,\n 0xE8B1: 0x96CE,\n 0xE8B2: 0x96CB,\n 0xE8B3: 0x96C9,\n 0xE8B4: 0x96CD,\n 0xE8B5: 0x894D,\n 0xE8B6: 0x96DC,\n 0xE8B7: 0x970D,\n 0xE8B8: 0x96D5,\n 0xE8B9: 0x96F9,\n 0xE8BA: 0x9704,\n 0xE8BB: 0x9706,\n 0xE8BC: 0x9708,\n 0xE8BD: 0x9713,\n 0xE8BE: 0x970E,\n 0xE8BF: 0x9711,\n 0xE8C0: 0x970F,\n 0xE8C1: 0x9716,\n 0xE8C2: 0x9719,\n 0xE8C3: 0x9724,\n 0xE8C4: 0x972A,\n 0xE8C5: 0x9730,\n 0xE8C6: 0x9739,\n 0xE8C7: 0x973D,\n 0xE8C8: 0x973E,\n 0xE8C9: 0x9744,\n 0xE8CA: 0x9746,\n 0xE8CB: 0x9748,\n 0xE8CC: 0x9742,\n 0xE8CD: 0x9749,\n 0xE8CE: 0x975C,\n 0xE8CF: 0x9760,\n 0xE8D0: 0x9764,\n 0xE8D1: 0x9766,\n 0xE8D2: 0x9768,\n 0xE8D3: 0x52D2,\n 0xE8D4: 0x976B,\n 0xE8D5: 0x9771,\n 0xE8D6: 0x9779,\n 0xE8D7: 0x9785,\n 0xE8D8: 0x977C,\n 0xE8D9: 0x9781,\n 0xE8DA: 0x977A,\n 0xE8DB: 0x9786,\n 0xE8DC: 0x978B,\n 0xE8DD: 0x978F,\n 0xE8DE: 0x9790,\n 0xE8DF: 0x979C,\n 0xE8E0: 0x97A8,\n 0xE8E1: 0x97A6,\n 0xE8E2: 0x97A3,\n 0xE8E3: 0x97B3,\n 0xE8E4: 0x97B4,\n 0xE8E5: 0x97C3,\n 0xE8E6: 0x97C6,\n 0xE8E7: 0x97C8,\n 0xE8E8: 0x97CB,\n 0xE8E9: 0x97DC,\n 0xE8EA: 0x97ED,\n 0xE8EB: 0x9F4F,\n 0xE8EC: 0x97F2,\n 0xE8ED: 0x7ADF,\n 0xE8EE: 0x97F6,\n 0xE8EF: 0x97F5,\n 0xE8F0: 0x980F,\n 0xE8F1: 0x980C,\n 0xE8F2: 0x9838,\n 0xE8F3: 0x9824,\n 0xE8F4: 0x9821,\n 0xE8F5: 0x9837,\n 0xE8F6: 0x983D,\n 0xE8F7: 0x9846,\n 0xE8F8: 0x984F,\n 0xE8F9: 0x984B,\n 0xE8FA: 0x986B,\n 0xE8FB: 0x986F,\n 0xE8FC: 0x9870,\n 0xE940: 0x9871,\n 0xE941: 0x9874,\n 0xE942: 0x9873,\n 0xE943: 0x98AA,\n 0xE944: 0x98AF,\n 0xE945: 0x98B1,\n 0xE946: 0x98B6,\n 0xE947: 0x98C4,\n 0xE948: 0x98C3,\n 0xE949: 0x98C6,\n 0xE94A: 0x98E9,\n 0xE94B: 0x98EB,\n 0xE94C: 0x9903,\n 0xE94D: 0x9909,\n 0xE94E: 0x9912,\n 0xE94F: 0x9914,\n 0xE950: 0x9918,\n 0xE951: 0x9921,\n 0xE952: 0x991D,\n 0xE953: 0x991E,\n 0xE954: 0x9924,\n 0xE955: 0x9920,\n 0xE956: 0x992C,\n 0xE957: 0x992E,\n 0xE958: 0x993D,\n 0xE959: 0x993E,\n 0xE95A: 0x9942,\n 0xE95B: 0x9949,\n 0xE95C: 0x9945,\n 0xE95D: 0x9950,\n 0xE95E: 0x994B,\n 0xE95F: 0x9951,\n 0xE960: 0x9952,\n 0xE961: 0x994C,\n 0xE962: 0x9955,\n 0xE963: 0x9997,\n 0xE964: 0x9998,\n 0xE965: 0x99A5,\n 0xE966: 0x99AD,\n 0xE967: 0x99AE,\n 0xE968: 0x99BC,\n 0xE969: 0x99DF,\n 0xE96A: 0x99DB,\n 0xE96B: 0x99DD,\n 0xE96C: 0x99D8,\n 0xE96D: 0x99D1,\n 0xE96E: 0x99ED,\n 0xE96F: 0x99EE,\n 0xE970: 0x99F1,\n 0xE971: 0x99F2,\n 0xE972: 0x99FB,\n 0xE973: 0x99F8,\n 0xE974: 0x9A01,\n 0xE975: 0x9A0F,\n 0xE976: 0x9A05,\n 0xE977: 0x99E2,\n 0xE978: 0x9A19,\n 0xE979: 0x9A2B,\n 0xE97A: 0x9A37,\n 0xE97B: 0x9A45,\n 0xE97C: 0x9A42,\n 0xE97D: 0x9A40,\n 0xE97E: 0x9A43,\n 0xE980: 0x9A3E,\n 0xE981: 0x9A55,\n 0xE982: 0x9A4D,\n 0xE983: 0x9A5B,\n 0xE984: 0x9A57,\n 0xE985: 0x9A5F,\n 0xE986: 0x9A62,\n 0xE987: 0x9A65,\n 0xE988: 0x9A64,\n 0xE989: 0x9A69,\n 0xE98A: 0x9A6B,\n 0xE98B: 0x9A6A,\n 0xE98C: 0x9AAD,\n 0xE98D: 0x9AB0,\n 0xE98E: 0x9ABC,\n 0xE98F: 0x9AC0,\n 0xE990: 0x9ACF,\n 0xE991: 0x9AD1,\n 0xE992: 0x9AD3,\n 0xE993: 0x9AD4,\n 0xE994: 0x9ADE,\n 0xE995: 0x9ADF,\n 0xE996: 0x9AE2,\n 0xE997: 0x9AE3,\n 0xE998: 0x9AE6,\n 0xE999: 0x9AEF,\n 0xE99A: 0x9AEB,\n 0xE99B: 0x9AEE,\n 0xE99C: 0x9AF4,\n 0xE99D: 0x9AF1,\n 0xE99E: 0x9AF7,\n 0xE99F: 0x9AFB,\n 0xE9A0: 0x9B06,\n 0xE9A1: 0x9B18,\n 0xE9A2: 0x9B1A,\n 0xE9A3: 0x9B1F,\n 0xE9A4: 0x9B22,\n 0xE9A5: 0x9B23,\n 0xE9A6: 0x9B25,\n 0xE9A7: 0x9B27,\n 0xE9A8: 0x9B28,\n 0xE9A9: 0x9B29,\n 0xE9AA: 0x9B2A,\n 0xE9AB: 0x9B2E,\n 0xE9AC: 0x9B2F,\n 0xE9AD: 0x9B32,\n 0xE9AE: 0x9B44,\n 0xE9AF: 0x9B43,\n 0xE9B0: 0x9B4F,\n 0xE9B1: 0x9B4D,\n 0xE9B2: 0x9B4E,\n 0xE9B3: 0x9B51,\n 0xE9B4: 0x9B58,\n 0xE9B5: 0x9B74,\n 0xE9B6: 0x9B93,\n 0xE9B7: 0x9B83,\n 0xE9B8: 0x9B91,\n 0xE9B9: 0x9B96,\n 0xE9BA: 0x9B97,\n 0xE9BB: 0x9B9F,\n 0xE9BC: 0x9BA0,\n 0xE9BD: 0x9BA8,\n 0xE9BE: 0x9BB4,\n 0xE9BF: 0x9BC0,\n 0xE9C0: 0x9BCA,\n 0xE9C1: 0x9BB9,\n 0xE9C2: 0x9BC6,\n 0xE9C3: 0x9BCF,\n 0xE9C4: 0x9BD1,\n 0xE9C5: 0x9BD2,\n 0xE9C6: 0x9BE3,\n 0xE9C7: 0x9BE2,\n 0xE9C8: 0x9BE4,\n 0xE9C9: 0x9BD4,\n 0xE9CA: 0x9BE1,\n 0xE9CB: 0x9C3A,\n 0xE9CC: 0x9BF2,\n 0xE9CD: 0x9BF1,\n 0xE9CE: 0x9BF0,\n 0xE9CF: 0x9C15,\n 0xE9D0: 0x9C14,\n 0xE9D1: 0x9C09,\n 0xE9D2: 0x9C13,\n 0xE9D3: 0x9C0C,\n 0xE9D4: 0x9C06,\n 0xE9D5: 0x9C08,\n 0xE9D6: 0x9C12,\n 0xE9D7: 0x9C0A,\n 0xE9D8: 0x9C04,\n 0xE9D9: 0x9C2E,\n 0xE9DA: 0x9C1B,\n 0xE9DB: 0x9C25,\n 0xE9DC: 0x9C24,\n 0xE9DD: 0x9C21,\n 0xE9DE: 0x9C30,\n 0xE9DF: 0x9C47,\n 0xE9E0: 0x9C32,\n 0xE9E1: 0x9C46,\n 0xE9E2: 0x9C3E,\n 0xE9E3: 0x9C5A,\n 0xE9E4: 0x9C60,\n 0xE9E5: 0x9C67,\n 0xE9E6: 0x9C76,\n 0xE9E7: 0x9C78,\n 0xE9E8: 0x9CE7,\n 0xE9E9: 0x9CEC,\n 0xE9EA: 0x9CF0,\n 0xE9EB: 0x9D09,\n 0xE9EC: 0x9D08,\n 0xE9ED: 0x9CEB,\n 0xE9EE: 0x9D03,\n 0xE9EF: 0x9D06,\n 0xE9F0: 0x9D2A,\n 0xE9F1: 0x9D26,\n 0xE9F2: 0x9DAF,\n 0xE9F3: 0x9D23,\n 0xE9F4: 0x9D1F,\n 0xE9F5: 0x9D44,\n 0xE9F6: 0x9D15,\n 0xE9F7: 0x9D12,\n 0xE9F8: 0x9D41,\n 0xE9F9: 0x9D3F,\n 0xE9FA: 0x9D3E,\n 0xE9FB: 0x9D46,\n 0xE9FC: 0x9D48,\n 0xEA40: 0x9D5D,\n 0xEA41: 0x9D5E,\n 0xEA42: 0x9D64,\n 0xEA43: 0x9D51,\n 0xEA44: 0x9D50,\n 0xEA45: 0x9D59,\n 0xEA46: 0x9D72,\n 0xEA47: 0x9D89,\n 0xEA48: 0x9D87,\n 0xEA49: 0x9DAB,\n 0xEA4A: 0x9D6F,\n 0xEA4B: 0x9D7A,\n 0xEA4C: 0x9D9A,\n 0xEA4D: 0x9DA4,\n 0xEA4E: 0x9DA9,\n 0xEA4F: 0x9DB2,\n 0xEA50: 0x9DC4,\n 0xEA51: 0x9DC1,\n 0xEA52: 0x9DBB,\n 0xEA53: 0x9DB8,\n 0xEA54: 0x9DBA,\n 0xEA55: 0x9DC6,\n 0xEA56: 0x9DCF,\n 0xEA57: 0x9DC2,\n 0xEA58: 0x9DD9,\n 0xEA59: 0x9DD3,\n 0xEA5A: 0x9DF8,\n 0xEA5B: 0x9DE6,\n 0xEA5C: 0x9DED,\n 0xEA5D: 0x9DEF,\n 0xEA5E: 0x9DFD,\n 0xEA5F: 0x9E1A,\n 0xEA60: 0x9E1B,\n 0xEA61: 0x9E1E,\n 0xEA62: 0x9E75,\n 0xEA63: 0x9E79,\n 0xEA64: 0x9E7D,\n 0xEA65: 0x9E81,\n 0xEA66: 0x9E88,\n 0xEA67: 0x9E8B,\n 0xEA68: 0x9E8C,\n 0xEA69: 0x9E92,\n 0xEA6A: 0x9E95,\n 0xEA6B: 0x9E91,\n 0xEA6C: 0x9E9D,\n 0xEA6D: 0x9EA5,\n 0xEA6E: 0x9EA9,\n 0xEA6F: 0x9EB8,\n 0xEA70: 0x9EAA,\n 0xEA71: 0x9EAD,\n 0xEA72: 0x9761,\n 0xEA73: 0x9ECC,\n 0xEA74: 0x9ECE,\n 0xEA75: 0x9ECF,\n 0xEA76: 0x9ED0,\n 0xEA77: 0x9ED4,\n 0xEA78: 0x9EDC,\n 0xEA79: 0x9EDE,\n 0xEA7A: 0x9EDD,\n 0xEA7B: 0x9EE0,\n 0xEA7C: 0x9EE5,\n 0xEA7D: 0x9EE8,\n 0xEA7E: 0x9EEF,\n 0xEA80: 0x9EF4,\n 0xEA81: 0x9EF6,\n 0xEA82: 0x9EF7,\n 0xEA83: 0x9EF9,\n 0xEA84: 0x9EFB,\n 0xEA85: 0x9EFC,\n 0xEA86: 0x9EFD,\n 0xEA87: 0x9F07,\n 0xEA88: 0x9F08,\n 0xEA89: 0x76B7,\n 0xEA8A: 0x9F15,\n 0xEA8B: 0x9F21,\n 0xEA8C: 0x9F2C,\n 0xEA8D: 0x9F3E,\n 0xEA8E: 0x9F4A,\n 0xEA8F: 0x9F52,\n 0xEA90: 0x9F54,\n 0xEA91: 0x9F63,\n 0xEA92: 0x9F5F,\n 0xEA93: 0x9F60,\n 0xEA94: 0x9F61,\n 0xEA95: 0x9F66,\n 0xEA96: 0x9F67,\n 0xEA97: 0x9F6C,\n 0xEA98: 0x9F6A,\n 0xEA99: 0x9F77,\n 0xEA9A: 0x9F72,\n 0xEA9B: 0x9F76,\n 0xEA9C: 0x9F95,\n 0xEA9D: 0x9F9C,\n 0xEA9E: 0x9FA0,\n 0xEA9F: 0x582F,\n 0xEAA0: 0x69C7,\n 0xEAA1: 0x9059,\n 0xEAA2: 0x7464,\n 0xEAA3: 0x51DC,\n 0xEAA4: 0x7199,\n};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GenericGF_1 = __webpack_require__(1);\nvar GenericGFPoly_1 = __webpack_require__(2);\nfunction runEuclideanAlgorithm(field, a, b, R) {\n var _a;\n // Assume a's degree is >= b's\n if (a.degree() < b.degree()) {\n _a = [b, a], a = _a[0], b = _a[1];\n }\n var rLast = a;\n var r = b;\n var tLast = field.zero;\n var t = field.one;\n // Run Euclidean algorithm until r's degree is less than R/2\n while (r.degree() >= R / 2) {\n var rLastLast = rLast;\n var tLastLast = tLast;\n rLast = r;\n tLast = t;\n // Divide rLastLast by rLast, with quotient in q and remainder in r\n if (rLast.isZero()) {\n // Euclidean algorithm already terminated?\n return null;\n }\n r = rLastLast;\n var q = field.zero;\n var denominatorLeadingTerm = rLast.getCoefficient(rLast.degree());\n var dltInverse = field.inverse(denominatorLeadingTerm);\n while (r.degree() >= rLast.degree() && !r.isZero()) {\n var degreeDiff = r.degree() - rLast.degree();\n var scale = field.multiply(r.getCoefficient(r.degree()), dltInverse);\n q = q.addOrSubtract(field.buildMonomial(degreeDiff, scale));\n r = r.addOrSubtract(rLast.multiplyByMonomial(degreeDiff, scale));\n }\n t = q.multiplyPoly(tLast).addOrSubtract(tLastLast);\n if (r.degree() >= rLast.degree()) {\n return null;\n }\n }\n var sigmaTildeAtZero = t.getCoefficient(0);\n if (sigmaTildeAtZero === 0) {\n return null;\n }\n var inverse = field.inverse(sigmaTildeAtZero);\n return [t.multiply(inverse), r.multiply(inverse)];\n}\nfunction findErrorLocations(field, errorLocator) {\n // This is a direct application of Chien's search\n var numErrors = errorLocator.degree();\n if (numErrors === 1) {\n return [errorLocator.getCoefficient(1)];\n }\n var result = new Array(numErrors);\n var errorCount = 0;\n for (var i = 1; i < field.size && errorCount < numErrors; i++) {\n if (errorLocator.evaluateAt(i) === 0) {\n result[errorCount] = field.inverse(i);\n errorCount++;\n }\n }\n if (errorCount !== numErrors) {\n return null;\n }\n return result;\n}\nfunction findErrorMagnitudes(field, errorEvaluator, errorLocations) {\n // This is directly applying Forney's Formula\n var s = errorLocations.length;\n var result = new Array(s);\n for (var i = 0; i < s; i++) {\n var xiInverse = field.inverse(errorLocations[i]);\n var denominator = 1;\n for (var j = 0; j < s; j++) {\n if (i !== j) {\n denominator = field.multiply(denominator, GenericGF_1.addOrSubtractGF(1, field.multiply(errorLocations[j], xiInverse)));\n }\n }\n result[i] = field.multiply(errorEvaluator.evaluateAt(xiInverse), field.inverse(denominator));\n if (field.generatorBase !== 0) {\n result[i] = field.multiply(result[i], xiInverse);\n }\n }\n return result;\n}\nfunction decode(bytes, twoS) {\n var outputBytes = new Uint8ClampedArray(bytes.length);\n outputBytes.set(bytes);\n var field = new GenericGF_1.default(0x011D, 256, 0); // x^8 + x^4 + x^3 + x^2 + 1\n var poly = new GenericGFPoly_1.default(field, outputBytes);\n var syndromeCoefficients = new Uint8ClampedArray(twoS);\n var error = false;\n for (var s = 0; s < twoS; s++) {\n var evaluation = poly.evaluateAt(field.exp(s + field.generatorBase));\n syndromeCoefficients[syndromeCoefficients.length - 1 - s] = evaluation;\n if (evaluation !== 0) {\n error = true;\n }\n }\n if (!error) {\n return outputBytes;\n }\n var syndrome = new GenericGFPoly_1.default(field, syndromeCoefficients);\n var sigmaOmega = runEuclideanAlgorithm(field, field.buildMonomial(twoS, 1), syndrome, twoS);\n if (sigmaOmega === null) {\n return null;\n }\n var errorLocations = findErrorLocations(field, sigmaOmega[0]);\n if (errorLocations == null) {\n return null;\n }\n var errorMagnitudes = findErrorMagnitudes(field, sigmaOmega[1], errorLocations);\n for (var i = 0; i < errorLocations.length; i++) {\n var position = outputBytes.length - 1 - field.log(errorLocations[i]);\n if (position < 0) {\n return null;\n }\n outputBytes[position] = GenericGF_1.addOrSubtractGF(outputBytes[position], errorMagnitudes[i]);\n }\n return outputBytes;\n}\nexports.decode = decode;\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VERSIONS = [\n {\n infoBits: null,\n versionNumber: 1,\n alignmentPatternCenters: [],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 7,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 19 }],\n },\n {\n ecCodewordsPerBlock: 10,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 16 }],\n },\n {\n ecCodewordsPerBlock: 13,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 13 }],\n },\n {\n ecCodewordsPerBlock: 17,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 9 }],\n },\n ],\n },\n {\n infoBits: null,\n versionNumber: 2,\n alignmentPatternCenters: [6, 18],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 10,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 34 }],\n },\n {\n ecCodewordsPerBlock: 16,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 28 }],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 22 }],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 16 }],\n },\n ],\n },\n {\n infoBits: null,\n versionNumber: 3,\n alignmentPatternCenters: [6, 22],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 15,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 55 }],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 44 }],\n },\n {\n ecCodewordsPerBlock: 18,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 17 }],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 13 }],\n },\n ],\n },\n {\n infoBits: null,\n versionNumber: 4,\n alignmentPatternCenters: [6, 26],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 20,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 80 }],\n },\n {\n ecCodewordsPerBlock: 18,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 32 }],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 24 }],\n },\n {\n ecCodewordsPerBlock: 16,\n ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 9 }],\n },\n ],\n },\n {\n infoBits: null,\n versionNumber: 5,\n alignmentPatternCenters: [6, 30],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 108 }],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 43 }],\n },\n {\n ecCodewordsPerBlock: 18,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 15 },\n { numBlocks: 2, dataCodewordsPerBlock: 16 },\n ],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 11 },\n { numBlocks: 2, dataCodewordsPerBlock: 12 },\n ],\n },\n ],\n },\n {\n infoBits: null,\n versionNumber: 6,\n alignmentPatternCenters: [6, 34],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 18,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 68 }],\n },\n {\n ecCodewordsPerBlock: 16,\n ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 27 }],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 19 }],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 15 }],\n },\n ],\n },\n {\n infoBits: 0x07C94,\n versionNumber: 7,\n alignmentPatternCenters: [6, 22, 38],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 20,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 78 }],\n },\n {\n ecCodewordsPerBlock: 18,\n ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 31 }],\n },\n {\n ecCodewordsPerBlock: 18,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 14 },\n { numBlocks: 4, dataCodewordsPerBlock: 15 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 13 },\n { numBlocks: 1, dataCodewordsPerBlock: 14 },\n ],\n },\n ],\n },\n {\n infoBits: 0x085BC,\n versionNumber: 8,\n alignmentPatternCenters: [6, 24, 42],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 97 }],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 38 },\n { numBlocks: 2, dataCodewordsPerBlock: 39 },\n ],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 18 },\n { numBlocks: 2, dataCodewordsPerBlock: 19 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 14 },\n { numBlocks: 2, dataCodewordsPerBlock: 15 },\n ],\n },\n ],\n },\n {\n infoBits: 0x09A99,\n versionNumber: 9,\n alignmentPatternCenters: [6, 26, 46],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 116 }],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 36 },\n { numBlocks: 2, dataCodewordsPerBlock: 37 },\n ],\n },\n {\n ecCodewordsPerBlock: 20,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 16 },\n { numBlocks: 4, dataCodewordsPerBlock: 17 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 12 },\n { numBlocks: 4, dataCodewordsPerBlock: 13 },\n ],\n },\n ],\n },\n {\n infoBits: 0x0A4D3,\n versionNumber: 10,\n alignmentPatternCenters: [6, 28, 50],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 18,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 68 },\n { numBlocks: 2, dataCodewordsPerBlock: 69 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 43 },\n { numBlocks: 1, dataCodewordsPerBlock: 44 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 6, dataCodewordsPerBlock: 19 },\n { numBlocks: 2, dataCodewordsPerBlock: 20 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 6, dataCodewordsPerBlock: 15 },\n { numBlocks: 2, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x0BBF6,\n versionNumber: 11,\n alignmentPatternCenters: [6, 30, 54],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 20,\n ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 81 }],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 1, dataCodewordsPerBlock: 50 },\n { numBlocks: 4, dataCodewordsPerBlock: 51 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 22 },\n { numBlocks: 4, dataCodewordsPerBlock: 23 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 12 },\n { numBlocks: 8, dataCodewordsPerBlock: 13 },\n ],\n },\n ],\n },\n {\n infoBits: 0x0C762,\n versionNumber: 12,\n alignmentPatternCenters: [6, 32, 58],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 92 },\n { numBlocks: 2, dataCodewordsPerBlock: 93 },\n ],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 6, dataCodewordsPerBlock: 36 },\n { numBlocks: 2, dataCodewordsPerBlock: 37 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 20 },\n { numBlocks: 6, dataCodewordsPerBlock: 21 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 7, dataCodewordsPerBlock: 14 },\n { numBlocks: 4, dataCodewordsPerBlock: 15 },\n ],\n },\n ],\n },\n {\n infoBits: 0x0D847,\n versionNumber: 13,\n alignmentPatternCenters: [6, 34, 62],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 107 }],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 8, dataCodewordsPerBlock: 37 },\n { numBlocks: 1, dataCodewordsPerBlock: 38 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 8, dataCodewordsPerBlock: 20 },\n { numBlocks: 4, dataCodewordsPerBlock: 21 },\n ],\n },\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 12, dataCodewordsPerBlock: 11 },\n { numBlocks: 4, dataCodewordsPerBlock: 12 },\n ],\n },\n ],\n },\n {\n infoBits: 0x0E60D,\n versionNumber: 14,\n alignmentPatternCenters: [6, 26, 46, 66],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 115 },\n { numBlocks: 1, dataCodewordsPerBlock: 116 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 40 },\n { numBlocks: 5, dataCodewordsPerBlock: 41 },\n ],\n },\n {\n ecCodewordsPerBlock: 20,\n ecBlocks: [\n { numBlocks: 11, dataCodewordsPerBlock: 16 },\n { numBlocks: 5, dataCodewordsPerBlock: 17 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 11, dataCodewordsPerBlock: 12 },\n { numBlocks: 5, dataCodewordsPerBlock: 13 },\n ],\n },\n ],\n },\n {\n infoBits: 0x0F928,\n versionNumber: 15,\n alignmentPatternCenters: [6, 26, 48, 70],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 22,\n ecBlocks: [\n { numBlocks: 5, dataCodewordsPerBlock: 87 },\n { numBlocks: 1, dataCodewordsPerBlock: 88 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 5, dataCodewordsPerBlock: 41 },\n { numBlocks: 5, dataCodewordsPerBlock: 42 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 5, dataCodewordsPerBlock: 24 },\n { numBlocks: 7, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 11, dataCodewordsPerBlock: 12 },\n { numBlocks: 7, dataCodewordsPerBlock: 13 },\n ],\n },\n ],\n },\n {\n infoBits: 0x10B78,\n versionNumber: 16,\n alignmentPatternCenters: [6, 26, 50, 74],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 5, dataCodewordsPerBlock: 98 },\n { numBlocks: 1, dataCodewordsPerBlock: 99 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 7, dataCodewordsPerBlock: 45 },\n { numBlocks: 3, dataCodewordsPerBlock: 46 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [\n { numBlocks: 15, dataCodewordsPerBlock: 19 },\n { numBlocks: 2, dataCodewordsPerBlock: 20 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 15 },\n { numBlocks: 13, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x1145D,\n versionNumber: 17,\n alignmentPatternCenters: [6, 30, 54, 78],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 1, dataCodewordsPerBlock: 107 },\n { numBlocks: 5, dataCodewordsPerBlock: 108 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 10, dataCodewordsPerBlock: 46 },\n { numBlocks: 1, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 1, dataCodewordsPerBlock: 22 },\n { numBlocks: 15, dataCodewordsPerBlock: 23 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 14 },\n { numBlocks: 17, dataCodewordsPerBlock: 15 },\n ],\n },\n ],\n },\n {\n infoBits: 0x12A17,\n versionNumber: 18,\n alignmentPatternCenters: [6, 30, 56, 82],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 5, dataCodewordsPerBlock: 120 },\n { numBlocks: 1, dataCodewordsPerBlock: 121 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 9, dataCodewordsPerBlock: 43 },\n { numBlocks: 4, dataCodewordsPerBlock: 44 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 17, dataCodewordsPerBlock: 22 },\n { numBlocks: 1, dataCodewordsPerBlock: 23 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 14 },\n { numBlocks: 19, dataCodewordsPerBlock: 15 },\n ],\n },\n ],\n },\n {\n infoBits: 0x13532,\n versionNumber: 19,\n alignmentPatternCenters: [6, 30, 58, 86],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 113 },\n { numBlocks: 4, dataCodewordsPerBlock: 114 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 44 },\n { numBlocks: 11, dataCodewordsPerBlock: 45 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 17, dataCodewordsPerBlock: 21 },\n { numBlocks: 4, dataCodewordsPerBlock: 22 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 9, dataCodewordsPerBlock: 13 },\n { numBlocks: 16, dataCodewordsPerBlock: 14 },\n ],\n },\n ],\n },\n {\n infoBits: 0x149A6,\n versionNumber: 20,\n alignmentPatternCenters: [6, 34, 62, 90],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 107 },\n { numBlocks: 5, dataCodewordsPerBlock: 108 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 41 },\n { numBlocks: 13, dataCodewordsPerBlock: 42 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 15, dataCodewordsPerBlock: 24 },\n { numBlocks: 5, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 15, dataCodewordsPerBlock: 15 },\n { numBlocks: 10, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x15683,\n versionNumber: 21,\n alignmentPatternCenters: [6, 28, 50, 72, 94],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 116 },\n { numBlocks: 4, dataCodewordsPerBlock: 117 },\n ],\n },\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [{ numBlocks: 17, dataCodewordsPerBlock: 42 }],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 17, dataCodewordsPerBlock: 22 },\n { numBlocks: 6, dataCodewordsPerBlock: 23 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 19, dataCodewordsPerBlock: 16 },\n { numBlocks: 6, dataCodewordsPerBlock: 17 },\n ],\n },\n ],\n },\n {\n infoBits: 0x168C9,\n versionNumber: 22,\n alignmentPatternCenters: [6, 26, 50, 74, 98],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 111 },\n { numBlocks: 7, dataCodewordsPerBlock: 112 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [{ numBlocks: 17, dataCodewordsPerBlock: 46 }],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 7, dataCodewordsPerBlock: 24 },\n { numBlocks: 16, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 24,\n ecBlocks: [{ numBlocks: 34, dataCodewordsPerBlock: 13 }],\n },\n ],\n },\n {\n infoBits: 0x177EC,\n versionNumber: 23,\n alignmentPatternCenters: [6, 30, 54, 74, 102],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 121 },\n { numBlocks: 5, dataCodewordsPerBlock: 122 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 47 },\n { numBlocks: 14, dataCodewordsPerBlock: 48 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 11, dataCodewordsPerBlock: 24 },\n { numBlocks: 14, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 16, dataCodewordsPerBlock: 15 },\n { numBlocks: 14, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x18EC4,\n versionNumber: 24,\n alignmentPatternCenters: [6, 28, 54, 80, 106],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 6, dataCodewordsPerBlock: 117 },\n { numBlocks: 4, dataCodewordsPerBlock: 118 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 6, dataCodewordsPerBlock: 45 },\n { numBlocks: 14, dataCodewordsPerBlock: 46 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 11, dataCodewordsPerBlock: 24 },\n { numBlocks: 16, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 30, dataCodewordsPerBlock: 16 },\n { numBlocks: 2, dataCodewordsPerBlock: 17 },\n ],\n },\n ],\n },\n {\n infoBits: 0x191E1,\n versionNumber: 25,\n alignmentPatternCenters: [6, 32, 58, 84, 110],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 26,\n ecBlocks: [\n { numBlocks: 8, dataCodewordsPerBlock: 106 },\n { numBlocks: 4, dataCodewordsPerBlock: 107 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 8, dataCodewordsPerBlock: 47 },\n { numBlocks: 13, dataCodewordsPerBlock: 48 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 7, dataCodewordsPerBlock: 24 },\n { numBlocks: 22, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 22, dataCodewordsPerBlock: 15 },\n { numBlocks: 13, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x1AFAB,\n versionNumber: 26,\n alignmentPatternCenters: [6, 30, 58, 86, 114],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 10, dataCodewordsPerBlock: 114 },\n { numBlocks: 2, dataCodewordsPerBlock: 115 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 19, dataCodewordsPerBlock: 46 },\n { numBlocks: 4, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 28, dataCodewordsPerBlock: 22 },\n { numBlocks: 6, dataCodewordsPerBlock: 23 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 33, dataCodewordsPerBlock: 16 },\n { numBlocks: 4, dataCodewordsPerBlock: 17 },\n ],\n },\n ],\n },\n {\n infoBits: 0x1B08E,\n versionNumber: 27,\n alignmentPatternCenters: [6, 34, 62, 90, 118],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 8, dataCodewordsPerBlock: 122 },\n { numBlocks: 4, dataCodewordsPerBlock: 123 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 22, dataCodewordsPerBlock: 45 },\n { numBlocks: 3, dataCodewordsPerBlock: 46 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 8, dataCodewordsPerBlock: 23 },\n { numBlocks: 26, dataCodewordsPerBlock: 24 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 12, dataCodewordsPerBlock: 15 },\n { numBlocks: 28, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x1CC1A,\n versionNumber: 28,\n alignmentPatternCenters: [6, 26, 50, 74, 98, 122],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 117 },\n { numBlocks: 10, dataCodewordsPerBlock: 118 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 3, dataCodewordsPerBlock: 45 },\n { numBlocks: 23, dataCodewordsPerBlock: 46 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 24 },\n { numBlocks: 31, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 11, dataCodewordsPerBlock: 15 },\n { numBlocks: 31, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x1D33F,\n versionNumber: 29,\n alignmentPatternCenters: [6, 30, 54, 78, 102, 126],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 7, dataCodewordsPerBlock: 116 },\n { numBlocks: 7, dataCodewordsPerBlock: 117 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 21, dataCodewordsPerBlock: 45 },\n { numBlocks: 7, dataCodewordsPerBlock: 46 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 1, dataCodewordsPerBlock: 23 },\n { numBlocks: 37, dataCodewordsPerBlock: 24 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 19, dataCodewordsPerBlock: 15 },\n { numBlocks: 26, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x1ED75,\n versionNumber: 30,\n alignmentPatternCenters: [6, 26, 52, 78, 104, 130],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 5, dataCodewordsPerBlock: 115 },\n { numBlocks: 10, dataCodewordsPerBlock: 116 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 19, dataCodewordsPerBlock: 47 },\n { numBlocks: 10, dataCodewordsPerBlock: 48 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 15, dataCodewordsPerBlock: 24 },\n { numBlocks: 25, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 23, dataCodewordsPerBlock: 15 },\n { numBlocks: 25, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x1F250,\n versionNumber: 31,\n alignmentPatternCenters: [6, 30, 56, 82, 108, 134],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 13, dataCodewordsPerBlock: 115 },\n { numBlocks: 3, dataCodewordsPerBlock: 116 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 46 },\n { numBlocks: 29, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 42, dataCodewordsPerBlock: 24 },\n { numBlocks: 1, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 23, dataCodewordsPerBlock: 15 },\n { numBlocks: 28, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x209D5,\n versionNumber: 32,\n alignmentPatternCenters: [6, 34, 60, 86, 112, 138],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [{ numBlocks: 17, dataCodewordsPerBlock: 115 }],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 10, dataCodewordsPerBlock: 46 },\n { numBlocks: 23, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 10, dataCodewordsPerBlock: 24 },\n { numBlocks: 35, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 19, dataCodewordsPerBlock: 15 },\n { numBlocks: 35, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x216F0,\n versionNumber: 33,\n alignmentPatternCenters: [6, 30, 58, 86, 114, 142],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 17, dataCodewordsPerBlock: 115 },\n { numBlocks: 1, dataCodewordsPerBlock: 116 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 14, dataCodewordsPerBlock: 46 },\n { numBlocks: 21, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 29, dataCodewordsPerBlock: 24 },\n { numBlocks: 19, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 11, dataCodewordsPerBlock: 15 },\n { numBlocks: 46, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x228BA,\n versionNumber: 34,\n alignmentPatternCenters: [6, 34, 62, 90, 118, 146],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 13, dataCodewordsPerBlock: 115 },\n { numBlocks: 6, dataCodewordsPerBlock: 116 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 14, dataCodewordsPerBlock: 46 },\n { numBlocks: 23, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 44, dataCodewordsPerBlock: 24 },\n { numBlocks: 7, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 59, dataCodewordsPerBlock: 16 },\n { numBlocks: 1, dataCodewordsPerBlock: 17 },\n ],\n },\n ],\n },\n {\n infoBits: 0x2379F,\n versionNumber: 35,\n alignmentPatternCenters: [6, 30, 54, 78, 102, 126, 150],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 12, dataCodewordsPerBlock: 121 },\n { numBlocks: 7, dataCodewordsPerBlock: 122 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 12, dataCodewordsPerBlock: 47 },\n { numBlocks: 26, dataCodewordsPerBlock: 48 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 39, dataCodewordsPerBlock: 24 },\n { numBlocks: 14, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 22, dataCodewordsPerBlock: 15 },\n { numBlocks: 41, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x24B0B,\n versionNumber: 36,\n alignmentPatternCenters: [6, 24, 50, 76, 102, 128, 154],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 6, dataCodewordsPerBlock: 121 },\n { numBlocks: 14, dataCodewordsPerBlock: 122 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 6, dataCodewordsPerBlock: 47 },\n { numBlocks: 34, dataCodewordsPerBlock: 48 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 46, dataCodewordsPerBlock: 24 },\n { numBlocks: 10, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 2, dataCodewordsPerBlock: 15 },\n { numBlocks: 64, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x2542E,\n versionNumber: 37,\n alignmentPatternCenters: [6, 28, 54, 80, 106, 132, 158],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 17, dataCodewordsPerBlock: 122 },\n { numBlocks: 4, dataCodewordsPerBlock: 123 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 29, dataCodewordsPerBlock: 46 },\n { numBlocks: 14, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 49, dataCodewordsPerBlock: 24 },\n { numBlocks: 10, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 24, dataCodewordsPerBlock: 15 },\n { numBlocks: 46, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x26A64,\n versionNumber: 38,\n alignmentPatternCenters: [6, 32, 58, 84, 110, 136, 162],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 4, dataCodewordsPerBlock: 122 },\n { numBlocks: 18, dataCodewordsPerBlock: 123 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 13, dataCodewordsPerBlock: 46 },\n { numBlocks: 32, dataCodewordsPerBlock: 47 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 48, dataCodewordsPerBlock: 24 },\n { numBlocks: 14, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 42, dataCodewordsPerBlock: 15 },\n { numBlocks: 32, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x27541,\n versionNumber: 39,\n alignmentPatternCenters: [6, 26, 54, 82, 110, 138, 166],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 20, dataCodewordsPerBlock: 117 },\n { numBlocks: 4, dataCodewordsPerBlock: 118 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 40, dataCodewordsPerBlock: 47 },\n { numBlocks: 7, dataCodewordsPerBlock: 48 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 43, dataCodewordsPerBlock: 24 },\n { numBlocks: 22, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 10, dataCodewordsPerBlock: 15 },\n { numBlocks: 67, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n {\n infoBits: 0x28C69,\n versionNumber: 40,\n alignmentPatternCenters: [6, 30, 58, 86, 114, 142, 170],\n errorCorrectionLevels: [\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 19, dataCodewordsPerBlock: 118 },\n { numBlocks: 6, dataCodewordsPerBlock: 119 },\n ],\n },\n {\n ecCodewordsPerBlock: 28,\n ecBlocks: [\n { numBlocks: 18, dataCodewordsPerBlock: 47 },\n { numBlocks: 31, dataCodewordsPerBlock: 48 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 34, dataCodewordsPerBlock: 24 },\n { numBlocks: 34, dataCodewordsPerBlock: 25 },\n ],\n },\n {\n ecCodewordsPerBlock: 30,\n ecBlocks: [\n { numBlocks: 20, dataCodewordsPerBlock: 15 },\n { numBlocks: 61, dataCodewordsPerBlock: 16 },\n ],\n },\n ],\n },\n];\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BitMatrix_1 = __webpack_require__(0);\nfunction squareToQuadrilateral(p1, p2, p3, p4) {\n var dx3 = p1.x - p2.x + p3.x - p4.x;\n var dy3 = p1.y - p2.y + p3.y - p4.y;\n if (dx3 === 0 && dy3 === 0) { // Affine\n return {\n a11: p2.x - p1.x,\n a12: p2.y - p1.y,\n a13: 0,\n a21: p3.x - p2.x,\n a22: p3.y - p2.y,\n a23: 0,\n a31: p1.x,\n a32: p1.y,\n a33: 1,\n };\n }\n else {\n var dx1 = p2.x - p3.x;\n var dx2 = p4.x - p3.x;\n var dy1 = p2.y - p3.y;\n var dy2 = p4.y - p3.y;\n var denominator = dx1 * dy2 - dx2 * dy1;\n var a13 = (dx3 * dy2 - dx2 * dy3) / denominator;\n var a23 = (dx1 * dy3 - dx3 * dy1) / denominator;\n return {\n a11: p2.x - p1.x + a13 * p2.x,\n a12: p2.y - p1.y + a13 * p2.y,\n a13: a13,\n a21: p4.x - p1.x + a23 * p4.x,\n a22: p4.y - p1.y + a23 * p4.y,\n a23: a23,\n a31: p1.x,\n a32: p1.y,\n a33: 1,\n };\n }\n}\nfunction quadrilateralToSquare(p1, p2, p3, p4) {\n // Here, the adjoint serves as the inverse:\n var sToQ = squareToQuadrilateral(p1, p2, p3, p4);\n return {\n a11: sToQ.a22 * sToQ.a33 - sToQ.a23 * sToQ.a32,\n a12: sToQ.a13 * sToQ.a32 - sToQ.a12 * sToQ.a33,\n a13: sToQ.a12 * sToQ.a23 - sToQ.a13 * sToQ.a22,\n a21: sToQ.a23 * sToQ.a31 - sToQ.a21 * sToQ.a33,\n a22: sToQ.a11 * sToQ.a33 - sToQ.a13 * sToQ.a31,\n a23: sToQ.a13 * sToQ.a21 - sToQ.a11 * sToQ.a23,\n a31: sToQ.a21 * sToQ.a32 - sToQ.a22 * sToQ.a31,\n a32: sToQ.a12 * sToQ.a31 - sToQ.a11 * sToQ.a32,\n a33: sToQ.a11 * sToQ.a22 - sToQ.a12 * sToQ.a21,\n };\n}\nfunction times(a, b) {\n return {\n a11: a.a11 * b.a11 + a.a21 * b.a12 + a.a31 * b.a13,\n a12: a.a12 * b.a11 + a.a22 * b.a12 + a.a32 * b.a13,\n a13: a.a13 * b.a11 + a.a23 * b.a12 + a.a33 * b.a13,\n a21: a.a11 * b.a21 + a.a21 * b.a22 + a.a31 * b.a23,\n a22: a.a12 * b.a21 + a.a22 * b.a22 + a.a32 * b.a23,\n a23: a.a13 * b.a21 + a.a23 * b.a22 + a.a33 * b.a23,\n a31: a.a11 * b.a31 + a.a21 * b.a32 + a.a31 * b.a33,\n a32: a.a12 * b.a31 + a.a22 * b.a32 + a.a32 * b.a33,\n a33: a.a13 * b.a31 + a.a23 * b.a32 + a.a33 * b.a33,\n };\n}\nfunction extract(image, location) {\n var qToS = quadrilateralToSquare({ x: 3.5, y: 3.5 }, { x: location.dimension - 3.5, y: 3.5 }, { x: location.dimension - 6.5, y: location.dimension - 6.5 }, { x: 3.5, y: location.dimension - 3.5 });\n var sToQ = squareToQuadrilateral(location.topLeft, location.topRight, location.alignmentPattern, location.bottomLeft);\n var transform = times(sToQ, qToS);\n var matrix = BitMatrix_1.BitMatrix.createEmpty(location.dimension, location.dimension);\n var mappingFunction = function (x, y) {\n var denominator = transform.a13 * x + transform.a23 * y + transform.a33;\n return {\n x: (transform.a11 * x + transform.a21 * y + transform.a31) / denominator,\n y: (transform.a12 * x + transform.a22 * y + transform.a32) / denominator,\n };\n };\n for (var y = 0; y < location.dimension; y++) {\n for (var x = 0; x < location.dimension; x++) {\n var xValue = x + 0.5;\n var yValue = y + 0.5;\n var sourcePixel = mappingFunction(xValue, yValue);\n matrix.set(x, y, image.get(Math.floor(sourcePixel.x), Math.floor(sourcePixel.y)));\n }\n }\n return {\n matrix: matrix,\n mappingFunction: mappingFunction,\n };\n}\nexports.extract = extract;\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MAX_FINDERPATTERNS_TO_SEARCH = 4;\nvar MIN_QUAD_RATIO = 0.5;\nvar MAX_QUAD_RATIO = 1.5;\nvar distance = function (a, b) { return Math.sqrt(Math.pow((b.x - a.x), 2) + Math.pow((b.y - a.y), 2)); };\nfunction sum(values) {\n return values.reduce(function (a, b) { return a + b; });\n}\n// Takes three finder patterns and organizes them into topLeft, topRight, etc\nfunction reorderFinderPatterns(pattern1, pattern2, pattern3) {\n var _a, _b, _c, _d;\n // Find distances between pattern centers\n var oneTwoDistance = distance(pattern1, pattern2);\n var twoThreeDistance = distance(pattern2, pattern3);\n var oneThreeDistance = distance(pattern1, pattern3);\n var bottomLeft;\n var topLeft;\n var topRight;\n // Assume one closest to other two is B; A and C will just be guesses at first\n if (twoThreeDistance >= oneTwoDistance && twoThreeDistance >= oneThreeDistance) {\n _a = [pattern2, pattern1, pattern3], bottomLeft = _a[0], topLeft = _a[1], topRight = _a[2];\n }\n else if (oneThreeDistance >= twoThreeDistance && oneThreeDistance >= oneTwoDistance) {\n _b = [pattern1, pattern2, pattern3], bottomLeft = _b[0], topLeft = _b[1], topRight = _b[2];\n }\n else {\n _c = [pattern1, pattern3, pattern2], bottomLeft = _c[0], topLeft = _c[1], topRight = _c[2];\n }\n // Use cross product to figure out whether bottomLeft (A) and topRight (C) are correct or flipped in relation to topLeft (B)\n // This asks whether BC x BA has a positive z component, which is the arrangement we want. If it's negative, then\n // we've got it flipped around and should swap topRight and bottomLeft.\n if (((topRight.x - topLeft.x) * (bottomLeft.y - topLeft.y)) - ((topRight.y - topLeft.y) * (bottomLeft.x - topLeft.x)) < 0) {\n _d = [topRight, bottomLeft], bottomLeft = _d[0], topRight = _d[1];\n }\n return { bottomLeft: bottomLeft, topLeft: topLeft, topRight: topRight };\n}\n// Computes the dimension (number of modules on a side) of the QR Code based on the position of the finder patterns\nfunction computeDimension(topLeft, topRight, bottomLeft, matrix) {\n var moduleSize = (sum(countBlackWhiteRun(topLeft, bottomLeft, matrix, 5)) / 7 + // Divide by 7 since the ratio is 1:1:3:1:1\n sum(countBlackWhiteRun(topLeft, topRight, matrix, 5)) / 7 +\n sum(countBlackWhiteRun(bottomLeft, topLeft, matrix, 5)) / 7 +\n sum(countBlackWhiteRun(topRight, topLeft, matrix, 5)) / 7) / 4;\n if (moduleSize < 1) {\n throw new Error(\"Invalid module size\");\n }\n var topDimension = Math.round(distance(topLeft, topRight) / moduleSize);\n var sideDimension = Math.round(distance(topLeft, bottomLeft) / moduleSize);\n var dimension = Math.floor((topDimension + sideDimension) / 2) + 7;\n switch (dimension % 4) {\n case 0:\n dimension++;\n break;\n case 2:\n dimension--;\n break;\n }\n return { dimension: dimension, moduleSize: moduleSize };\n}\n// Takes an origin point and an end point and counts the sizes of the black white run from the origin towards the end point.\n// Returns an array of elements, representing the pixel size of the black white run.\n// Uses a variant of http://en.wikipedia.org/wiki/Bresenham's_line_algorithm\nfunction countBlackWhiteRunTowardsPoint(origin, end, matrix, length) {\n var switchPoints = [{ x: Math.floor(origin.x), y: Math.floor(origin.y) }];\n var steep = Math.abs(end.y - origin.y) > Math.abs(end.x - origin.x);\n var fromX;\n var fromY;\n var toX;\n var toY;\n if (steep) {\n fromX = Math.floor(origin.y);\n fromY = Math.floor(origin.x);\n toX = Math.floor(end.y);\n toY = Math.floor(end.x);\n }\n else {\n fromX = Math.floor(origin.x);\n fromY = Math.floor(origin.y);\n toX = Math.floor(end.x);\n toY = Math.floor(end.y);\n }\n var dx = Math.abs(toX - fromX);\n var dy = Math.abs(toY - fromY);\n var error = Math.floor(-dx / 2);\n var xStep = fromX < toX ? 1 : -1;\n var yStep = fromY < toY ? 1 : -1;\n var currentPixel = true;\n // Loop up until x == toX, but not beyond\n for (var x = fromX, y = fromY; x !== toX + xStep; x += xStep) {\n // Does current pixel mean we have moved white to black or vice versa?\n // Scanning black in state 0,2 and white in state 1, so if we find the wrong\n // color, advance to next state or end if we are in state 2 already\n var realX = steep ? y : x;\n var realY = steep ? x : y;\n if (matrix.get(realX, realY) !== currentPixel) {\n currentPixel = !currentPixel;\n switchPoints.push({ x: realX, y: realY });\n if (switchPoints.length === length + 1) {\n break;\n }\n }\n error += dy;\n if (error > 0) {\n if (y === toY) {\n break;\n }\n y += yStep;\n error -= dx;\n }\n }\n var distances = [];\n for (var i = 0; i < length; i++) {\n if (switchPoints[i] && switchPoints[i + 1]) {\n distances.push(distance(switchPoints[i], switchPoints[i + 1]));\n }\n else {\n distances.push(0);\n }\n }\n return distances;\n}\n// Takes an origin point and an end point and counts the sizes of the black white run in the origin point\n// along the line that intersects with the end point. Returns an array of elements, representing the pixel sizes\n// of the black white run. Takes a length which represents the number of switches from black to white to look for.\nfunction countBlackWhiteRun(origin, end, matrix, length) {\n var _a;\n var rise = end.y - origin.y;\n var run = end.x - origin.x;\n var towardsEnd = countBlackWhiteRunTowardsPoint(origin, end, matrix, Math.ceil(length / 2));\n var awayFromEnd = countBlackWhiteRunTowardsPoint(origin, { x: origin.x - run, y: origin.y - rise }, matrix, Math.ceil(length / 2));\n var middleValue = towardsEnd.shift() + awayFromEnd.shift() - 1; // Substract one so we don't double count a pixel\n return (_a = awayFromEnd.concat(middleValue)).concat.apply(_a, towardsEnd);\n}\n// Takes in a black white run and an array of expected ratios. Returns the average size of the run as well as the \"error\" -\n// that is the amount the run diverges from the expected ratio\nfunction scoreBlackWhiteRun(sequence, ratios) {\n var averageSize = sum(sequence) / sum(ratios);\n var error = 0;\n ratios.forEach(function (ratio, i) {\n error += Math.pow((sequence[i] - ratio * averageSize), 2);\n });\n return { averageSize: averageSize, error: error };\n}\n// Takes an X,Y point and an array of sizes and scores the point against those ratios.\n// For example for a finder pattern takes the ratio list of 1:1:3:1:1 and checks horizontal, vertical and diagonal ratios\n// against that.\nfunction scorePattern(point, ratios, matrix) {\n try {\n var horizontalRun = countBlackWhiteRun(point, { x: -1, y: point.y }, matrix, ratios.length);\n var verticalRun = countBlackWhiteRun(point, { x: point.x, y: -1 }, matrix, ratios.length);\n var topLeftPoint = {\n x: Math.max(0, point.x - point.y) - 1,\n y: Math.max(0, point.y - point.x) - 1,\n };\n var topLeftBottomRightRun = countBlackWhiteRun(point, topLeftPoint, matrix, ratios.length);\n var bottomLeftPoint = {\n x: Math.min(matrix.width, point.x + point.y) + 1,\n y: Math.min(matrix.height, point.y + point.x) + 1,\n };\n var bottomLeftTopRightRun = countBlackWhiteRun(point, bottomLeftPoint, matrix, ratios.length);\n var horzError = scoreBlackWhiteRun(horizontalRun, ratios);\n var vertError = scoreBlackWhiteRun(verticalRun, ratios);\n var diagDownError = scoreBlackWhiteRun(topLeftBottomRightRun, ratios);\n var diagUpError = scoreBlackWhiteRun(bottomLeftTopRightRun, ratios);\n var ratioError = Math.sqrt(horzError.error * horzError.error +\n vertError.error * vertError.error +\n diagDownError.error * diagDownError.error +\n diagUpError.error * diagUpError.error);\n var avgSize = (horzError.averageSize + vertError.averageSize + diagDownError.averageSize + diagUpError.averageSize) / 4;\n var sizeError = (Math.pow((horzError.averageSize - avgSize), 2) +\n Math.pow((vertError.averageSize - avgSize), 2) +\n Math.pow((diagDownError.averageSize - avgSize), 2) +\n Math.pow((diagUpError.averageSize - avgSize), 2)) / avgSize;\n return ratioError + sizeError;\n }\n catch (_a) {\n return Infinity;\n }\n}\nfunction recenterLocation(matrix, p) {\n var leftX = Math.round(p.x);\n while (matrix.get(leftX, Math.round(p.y))) {\n leftX--;\n }\n var rightX = Math.round(p.x);\n while (matrix.get(rightX, Math.round(p.y))) {\n rightX++;\n }\n var x = (leftX + rightX) / 2;\n var topY = Math.round(p.y);\n while (matrix.get(Math.round(x), topY)) {\n topY--;\n }\n var bottomY = Math.round(p.y);\n while (matrix.get(Math.round(x), bottomY)) {\n bottomY++;\n }\n var y = (topY + bottomY) / 2;\n return { x: x, y: y };\n}\nfunction locate(matrix) {\n var finderPatternQuads = [];\n var activeFinderPatternQuads = [];\n var alignmentPatternQuads = [];\n var activeAlignmentPatternQuads = [];\n var _loop_1 = function (y) {\n var length_1 = 0;\n var lastBit = false;\n var scans = [0, 0, 0, 0, 0];\n var _loop_2 = function (x) {\n var v = matrix.get(x, y);\n if (v === lastBit) {\n length_1++;\n }\n else {\n scans = [scans[1], scans[2], scans[3], scans[4], length_1];\n length_1 = 1;\n lastBit = v;\n // Do the last 5 color changes ~ match the expected ratio for a finder pattern? 1:1:3:1:1 of b:w:b:w:b\n var averageFinderPatternBlocksize = sum(scans) / 7;\n var validFinderPattern = Math.abs(scans[0] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize &&\n Math.abs(scans[1] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize &&\n Math.abs(scans[2] - 3 * averageFinderPatternBlocksize) < 3 * averageFinderPatternBlocksize &&\n Math.abs(scans[3] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize &&\n Math.abs(scans[4] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize &&\n !v; // And make sure the current pixel is white since finder patterns are bordered in white\n // Do the last 3 color changes ~ match the expected ratio for an alignment pattern? 1:1:1 of w:b:w\n var averageAlignmentPatternBlocksize = sum(scans.slice(-3)) / 3;\n var validAlignmentPattern = Math.abs(scans[2] - averageAlignmentPatternBlocksize) < averageAlignmentPatternBlocksize &&\n Math.abs(scans[3] - averageAlignmentPatternBlocksize) < averageAlignmentPatternBlocksize &&\n Math.abs(scans[4] - averageAlignmentPatternBlocksize) < averageAlignmentPatternBlocksize &&\n v; // Is the current pixel black since alignment patterns are bordered in black\n if (validFinderPattern) {\n // Compute the start and end x values of the large center black square\n var endX_1 = x - scans[3] - scans[4];\n var startX_1 = endX_1 - scans[2];\n var line = { startX: startX_1, endX: endX_1, y: y };\n // Is there a quad directly above the current spot? If so, extend it with the new line. Otherwise, create a new quad with\n // that line as the starting point.\n var matchingQuads = activeFinderPatternQuads.filter(function (q) {\n return (startX_1 >= q.bottom.startX && startX_1 <= q.bottom.endX) ||\n (endX_1 >= q.bottom.startX && startX_1 <= q.bottom.endX) ||\n (startX_1 <= q.bottom.startX && endX_1 >= q.bottom.endX && ((scans[2] / (q.bottom.endX - q.bottom.startX)) < MAX_QUAD_RATIO &&\n (scans[2] / (q.bottom.endX - q.bottom.startX)) > MIN_QUAD_RATIO));\n });\n if (matchingQuads.length > 0) {\n matchingQuads[0].bottom = line;\n }\n else {\n activeFinderPatternQuads.push({ top: line, bottom: line });\n }\n }\n if (validAlignmentPattern) {\n // Compute the start and end x values of the center black square\n var endX_2 = x - scans[4];\n var startX_2 = endX_2 - scans[3];\n var line = { startX: startX_2, y: y, endX: endX_2 };\n // Is there a quad directly above the current spot? If so, extend it with the new line. Otherwise, create a new quad with\n // that line as the starting point.\n var matchingQuads = activeAlignmentPatternQuads.filter(function (q) {\n return (startX_2 >= q.bottom.startX && startX_2 <= q.bottom.endX) ||\n (endX_2 >= q.bottom.startX && startX_2 <= q.bottom.endX) ||\n (startX_2 <= q.bottom.startX && endX_2 >= q.bottom.endX && ((scans[2] / (q.bottom.endX - q.bottom.startX)) < MAX_QUAD_RATIO &&\n (scans[2] / (q.bottom.endX - q.bottom.startX)) > MIN_QUAD_RATIO));\n });\n if (matchingQuads.length > 0) {\n matchingQuads[0].bottom = line;\n }\n else {\n activeAlignmentPatternQuads.push({ top: line, bottom: line });\n }\n }\n }\n };\n for (var x = -1; x <= matrix.width; x++) {\n _loop_2(x);\n }\n finderPatternQuads.push.apply(finderPatternQuads, activeFinderPatternQuads.filter(function (q) { return q.bottom.y !== y && q.bottom.y - q.top.y >= 2; }));\n activeFinderPatternQuads = activeFinderPatternQuads.filter(function (q) { return q.bottom.y === y; });\n alignmentPatternQuads.push.apply(alignmentPatternQuads, activeAlignmentPatternQuads.filter(function (q) { return q.bottom.y !== y; }));\n activeAlignmentPatternQuads = activeAlignmentPatternQuads.filter(function (q) { return q.bottom.y === y; });\n };\n for (var y = 0; y <= matrix.height; y++) {\n _loop_1(y);\n }\n finderPatternQuads.push.apply(finderPatternQuads, activeFinderPatternQuads.filter(function (q) { return q.bottom.y - q.top.y >= 2; }));\n alignmentPatternQuads.push.apply(alignmentPatternQuads, activeAlignmentPatternQuads);\n var finderPatternGroups = finderPatternQuads\n .filter(function (q) { return q.bottom.y - q.top.y >= 2; }) // All quads must be at least 2px tall since the center square is larger than a block\n .map(function (q) {\n var x = (q.top.startX + q.top.endX + q.bottom.startX + q.bottom.endX) / 4;\n var y = (q.top.y + q.bottom.y + 1) / 2;\n if (!matrix.get(Math.round(x), Math.round(y))) {\n return;\n }\n var lengths = [q.top.endX - q.top.startX, q.bottom.endX - q.bottom.startX, q.bottom.y - q.top.y + 1];\n var size = sum(lengths) / lengths.length;\n var score = scorePattern({ x: Math.round(x), y: Math.round(y) }, [1, 1, 3, 1, 1], matrix);\n return { score: score, x: x, y: y, size: size };\n })\n .filter(function (q) { return !!q; }) // Filter out any rejected quads from above\n .sort(function (a, b) { return a.score - b.score; })\n // Now take the top finder pattern options and try to find 2 other options with a similar size.\n .map(function (point, i, finderPatterns) {\n if (i > MAX_FINDERPATTERNS_TO_SEARCH) {\n return null;\n }\n var otherPoints = finderPatterns\n .filter(function (p, ii) { return i !== ii; })\n .map(function (p) { return ({ x: p.x, y: p.y, score: p.score + (Math.pow((p.size - point.size), 2)) / point.size, size: p.size }); })\n .sort(function (a, b) { return a.score - b.score; });\n if (otherPoints.length < 2) {\n return null;\n }\n var score = point.score + otherPoints[0].score + otherPoints[1].score;\n return { points: [point].concat(otherPoints.slice(0, 2)), score: score };\n })\n .filter(function (q) { return !!q; }) // Filter out any rejected finder patterns from above\n .sort(function (a, b) { return a.score - b.score; });\n if (finderPatternGroups.length === 0) {\n return null;\n }\n var _a = reorderFinderPatterns(finderPatternGroups[0].points[0], finderPatternGroups[0].points[1], finderPatternGroups[0].points[2]), topRight = _a.topRight, topLeft = _a.topLeft, bottomLeft = _a.bottomLeft;\n var alignment = findAlignmentPattern(matrix, alignmentPatternQuads, topRight, topLeft, bottomLeft);\n var result = [];\n if (alignment) {\n result.push({\n alignmentPattern: { x: alignment.alignmentPattern.x, y: alignment.alignmentPattern.y },\n bottomLeft: { x: bottomLeft.x, y: bottomLeft.y },\n dimension: alignment.dimension,\n topLeft: { x: topLeft.x, y: topLeft.y },\n topRight: { x: topRight.x, y: topRight.y },\n });\n }\n // We normally use the center of the quads as the location of the tracking points, which is optimal for most cases and will account\n // for a skew in the image. However, In some cases, a slight skew might not be real and instead be caused by image compression\n // errors and/or low resolution. For those cases, we'd be better off centering the point exactly in the middle of the black area. We\n // compute and return the location data for the naively centered points as it is little additional work and allows for multiple\n // attempts at decoding harder images.\n var midTopRight = recenterLocation(matrix, topRight);\n var midTopLeft = recenterLocation(matrix, topLeft);\n var midBottomLeft = recenterLocation(matrix, bottomLeft);\n var centeredAlignment = findAlignmentPattern(matrix, alignmentPatternQuads, midTopRight, midTopLeft, midBottomLeft);\n if (centeredAlignment) {\n result.push({\n alignmentPattern: { x: centeredAlignment.alignmentPattern.x, y: centeredAlignment.alignmentPattern.y },\n bottomLeft: { x: midBottomLeft.x, y: midBottomLeft.y },\n topLeft: { x: midTopLeft.x, y: midTopLeft.y },\n topRight: { x: midTopRight.x, y: midTopRight.y },\n dimension: centeredAlignment.dimension,\n });\n }\n if (result.length === 0) {\n return null;\n }\n return result;\n}\nexports.locate = locate;\nfunction findAlignmentPattern(matrix, alignmentPatternQuads, topRight, topLeft, bottomLeft) {\n var _a;\n // Now that we've found the three finder patterns we can determine the blockSize and the size of the QR code.\n // We'll use these to help find the alignment pattern but also later when we do the extraction.\n var dimension;\n var moduleSize;\n try {\n (_a = computeDimension(topLeft, topRight, bottomLeft, matrix), dimension = _a.dimension, moduleSize = _a.moduleSize);\n }\n catch (e) {\n return null;\n }\n // Now find the alignment pattern\n var bottomRightFinderPattern = {\n x: topRight.x - topLeft.x + bottomLeft.x,\n y: topRight.y - topLeft.y + bottomLeft.y,\n };\n var modulesBetweenFinderPatterns = ((distance(topLeft, bottomLeft) + distance(topLeft, topRight)) / 2 / moduleSize);\n var correctionToTopLeft = 1 - (3 / modulesBetweenFinderPatterns);\n var expectedAlignmentPattern = {\n x: topLeft.x + correctionToTopLeft * (bottomRightFinderPattern.x - topLeft.x),\n y: topLeft.y + correctionToTopLeft * (bottomRightFinderPattern.y - topLeft.y),\n };\n var alignmentPatterns = alignmentPatternQuads\n .map(function (q) {\n var x = (q.top.startX + q.top.endX + q.bottom.startX + q.bottom.endX) / 4;\n var y = (q.top.y + q.bottom.y + 1) / 2;\n if (!matrix.get(Math.floor(x), Math.floor(y))) {\n return;\n }\n var lengths = [q.top.endX - q.top.startX, q.bottom.endX - q.bottom.startX, (q.bottom.y - q.top.y + 1)];\n var size = sum(lengths) / lengths.length;\n var sizeScore = scorePattern({ x: Math.floor(x), y: Math.floor(y) }, [1, 1, 1], matrix);\n var score = sizeScore + distance({ x: x, y: y }, expectedAlignmentPattern);\n return { x: x, y: y, score: score };\n })\n .filter(function (v) { return !!v; })\n .sort(function (a, b) { return a.score - b.score; });\n // If there are less than 15 modules between finder patterns it's a version 1 QR code and as such has no alignmemnt pattern\n // so we can only use our best guess.\n var alignmentPattern = modulesBetweenFinderPatterns >= 15 && alignmentPatterns.length ? alignmentPatterns[0] : expectedAlignmentPattern;\n return { alignmentPattern: alignmentPattern, dimension: dimension };\n}\n\n\n/***/ })\n/******/ ])[\"default\"];\n});",null,null,null,null,null,"/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","module.exports = (prefix, cnt) => (\n `${prefix}-${cnt}-${Math.random().toString(16).slice(3, 8)}`\n);\n","const getId = require('./utils/getId');\n\nlet jobCounter = 0;\n\nmodule.exports = ({\n id: _id,\n action,\n payload = {},\n}) => {\n let id = _id;\n if (typeof id === 'undefined') {\n id = getId('Job', jobCounter);\n jobCounter += 1;\n }\n\n return {\n id,\n action,\n payload,\n };\n};\n","let logging = false;\n\nexports.logging = logging;\n\nexports.setLogging = (_logging) => {\n logging = _logging;\n};\n\nexports.log = (...args) => (logging ? console.log.apply(this, args) : null);\n","const createJob = require('./createJob');\nconst { log } = require('./utils/log');\nconst getId = require('./utils/getId');\n\nlet schedulerCounter = 0;\n\nmodule.exports = () => {\n const id = getId('Scheduler', schedulerCounter);\n const workers = {};\n const runningWorkers = {};\n let jobQueue = [];\n\n schedulerCounter += 1;\n\n const getQueueLen = () => jobQueue.length;\n const getNumWorkers = () => Object.keys(workers).length;\n\n const dequeue = () => {\n if (jobQueue.length !== 0) {\n const wIds = Object.keys(workers);\n for (let i = 0; i < wIds.length; i += 1) {\n if (typeof runningWorkers[wIds[i]] === 'undefined') {\n jobQueue[0](workers[wIds[i]]);\n break;\n }\n }\n }\n };\n\n const queue = (action, payload) => (\n new Promise((resolve, reject) => {\n const job = createJob({ action, payload });\n jobQueue.push(async (w) => {\n jobQueue.shift();\n runningWorkers[w.id] = job;\n try {\n resolve(await w[action].apply(this, [...payload, job.id]));\n } catch (err) {\n reject(err);\n } finally {\n delete runningWorkers[w.id];\n dequeue();\n }\n });\n log(`[${id}]: Add ${job.id} to JobQueue`);\n log(`[${id}]: JobQueue length=${jobQueue.length}`);\n dequeue();\n })\n );\n\n const addWorker = (w) => {\n workers[w.id] = w;\n log(`[${id}]: Add ${w.id}`);\n log(`[${id}]: Number of workers=${getNumWorkers()}`);\n dequeue();\n return w.id;\n };\n\n const addJob = async (action, ...payload) => {\n if (getNumWorkers() === 0) {\n throw Error(`[${id}]: You need to have at least one worker before adding jobs`);\n }\n return queue(action, payload);\n };\n\n const terminate = async () => {\n Object.keys(workers).forEach(async (wid) => {\n await workers[wid].terminate();\n });\n jobQueue = [];\n };\n\n return {\n addWorker,\n addJob,\n terminate,\n getQueueLen,\n getNumWorkers,\n };\n};\n","module.exports = (key) => {\n const env = {};\n\n if (typeof WorkerGlobalScope !== 'undefined') {\n env.type = 'webworker';\n } else if (typeof document === 'object') {\n env.type = 'browser';\n } else if (typeof process === 'object' && typeof require === 'function') {\n env.type = 'node';\n }\n\n if (typeof key === 'undefined') {\n return env;\n }\n\n return env[key];\n};\n","const isBrowser = require('./getEnvironment')('type') === 'browser';\n\nconst resolveURL = isBrowser ? s => (new URL(s, window.location.href)).href : s => s; // eslint-disable-line\n\nmodule.exports = (options) => {\n const opts = { ...options };\n ['corePath', 'workerPath', 'langPath'].forEach((key) => {\n if (options[key]) {\n opts[key] = resolveURL(opts[key]);\n }\n });\n return opts;\n};\n","/*\n * OEM = OCR Engine Mode, and there are 4 possible modes.\n *\n * By default tesseract.js uses LSTM_ONLY mode.\n *\n */\nmodule.exports = {\n TESSERACT_ONLY: 0,\n LSTM_ONLY: 1,\n TESSERACT_LSTM_COMBINED: 2,\n DEFAULT: 3,\n};\n","module.exports = {\n /*\n * Use BlobURL for worker script by default\n * TODO: remove this option\n *\n */\n workerBlobURL: true,\n logger: () => {},\n};\n","const path = require('path');\nconst defaultOptions = require('../../constants/defaultOptions');\n\n/*\n * Default options for node worker\n */\nmodule.exports = {\n ...defaultOptions,\n workerPath: path.join(__dirname, '..', '..', 'worker-script', 'node', 'index.js'),\n};\n","const { Worker } = require('worker_threads');\n\n/**\n * spawnWorker\n *\n * @name spawnWorker\n * @function fork a new process in node\n * @access public\n */\nmodule.exports = ({ workerPath }) => new Worker(workerPath);\n","/**\n * terminateWorker\n *\n * @name terminateWorker\n * @function kill worker\n * @access public\n */\nmodule.exports = (worker) => {\n worker.terminate();\n};\n","module.exports = (worker, handler) => {\n worker.on('message', handler);\n};\n","/**\n * send\n *\n * @name send\n * @function send packet to worker and create a job\n * @access public\n */\nmodule.exports = async (worker, packet) => {\n worker.postMessage(packet);\n};\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n return Math.floor(x);\n } else {\n return Math.round(x);\n }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n if (!typeOpts.unsigned) {\n --bitLength;\n }\n const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n const upperBound = Math.pow(2, bitLength) - 1;\n\n const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n return function(V, opts) {\n if (!opts) opts = {};\n\n let x = +V;\n\n if (opts.enforceRange) {\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite number\");\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(\"Argument is not in byte range\");\n }\n\n return x;\n }\n\n if (!isNaN(x) && opts.clamp) {\n x = evenRound(x);\n\n if (x < lowerBound) x = lowerBound;\n if (x > upperBound) x = upperBound;\n return x;\n }\n\n if (!Number.isFinite(x) || x === 0) {\n return 0;\n }\n\n x = sign(x) * Math.floor(Math.abs(x));\n x = x % moduloVal;\n\n if (!typeOpts.unsigned && x >= moduloBound) {\n return x - moduloVal;\n } else if (typeOpts.unsigned) {\n if (x < 0) {\n x += moduloVal;\n } else if (x === -0) { // don't return negative zero\n return 0;\n }\n }\n\n return x;\n }\n}\n\nconversions[\"void\"] = function () {\n return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n const x = +V;\n\n if (!Number.isFinite(x)) {\n throw new TypeError(\"Argument is not a finite floating-point value\");\n }\n\n return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n const x = +V;\n\n if (isNaN(x)) {\n throw new TypeError(\"Argument is NaN\");\n }\n\n return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n if (!opts) opts = {};\n\n if (opts.treatNullAsEmptyString && V === null) {\n return \"\";\n }\n\n return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n const x = String(V);\n let c = undefined;\n for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n if (c > 255) {\n throw new TypeError(\"Argument is not a valid bytestring\");\n }\n }\n\n return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n const S = String(V);\n const n = S.length;\n const U = [];\n for (let i = 0; i < n; ++i) {\n const c = S.charCodeAt(i);\n if (c < 0xD800 || c > 0xDFFF) {\n U.push(String.fromCodePoint(c));\n } else if (0xDC00 <= c && c <= 0xDFFF) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n if (i === n - 1) {\n U.push(String.fromCodePoint(0xFFFD));\n } else {\n const d = S.charCodeAt(i + 1);\n if (0xDC00 <= d && d <= 0xDFFF) {\n const a = c & 0x3FF;\n const b = d & 0x3FF;\n U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n ++i;\n } else {\n U.push(String.fromCodePoint(0xFFFD));\n }\n }\n }\n }\n\n return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n if (!(V instanceof Date)) {\n throw new TypeError(\"Argument is not a Date object\");\n }\n if (isNaN(V)) {\n return undefined;\n }\n\n return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n if (!(V instanceof RegExp)) {\n V = new RegExp(V);\n }\n\n return V;\n};\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n const keys = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keys.length; ++i) {\n Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n return wrapper[module.exports.implSymbol];\n};\n\n","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n TRANSITIONAL: 0,\n NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n var start = 0;\n var end = mappingTable.length - 1;\n\n while (start <= end) {\n var mid = Math.floor((start + end) / 2);\n\n var target = mappingTable[mid];\n if (target[0][0] <= val && target[0][1] >= val) {\n return target;\n } else if (target[0][0] > val) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n\n return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n return string\n // replace every surrogate pair with a BMP symbol\n .replace(regexAstralSymbols, '_')\n // then get the length\n .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n var hasError = false;\n var processed = \"\";\n\n var len = countSymbols(domain_name);\n for (var i = 0; i < len; ++i) {\n var codePoint = domain_name.codePointAt(i);\n var status = findStatus(codePoint);\n\n switch (status[1]) {\n case \"disallowed\":\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n break;\n case \"ignored\":\n break;\n case \"mapped\":\n processed += String.fromCodePoint.apply(String, status[2]);\n break;\n case \"deviation\":\n if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n processed += String.fromCodePoint.apply(String, status[2]);\n } else {\n processed += String.fromCodePoint(codePoint);\n }\n break;\n case \"valid\":\n processed += String.fromCodePoint(codePoint);\n break;\n case \"disallowed_STD3_mapped\":\n if (useSTD3) {\n hasError = true;\n processed += String.fromCodePoint(codePoint);\n } else {\n processed += String.fromCodePoint.apply(String, status[2]);\n }\n break;\n case \"disallowed_STD3_valid\":\n if (useSTD3) {\n hasError = true;\n }\n\n processed += String.fromCodePoint(codePoint);\n break;\n }\n }\n\n return {\n string: processed,\n error: hasError\n };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n if (label.substr(0, 4) === \"xn--\") {\n label = punycode.toUnicode(label);\n processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n }\n\n var error = false;\n\n if (normalize(label) !== label ||\n (label[3] === \"-\" && label[4] === \"-\") ||\n label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n label.indexOf(\".\") !== -1 ||\n label.search(combiningMarksRegex) === 0) {\n error = true;\n }\n\n var len = countSymbols(label);\n for (var i = 0; i < len; ++i) {\n var status = findStatus(label.codePointAt(i));\n if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n error = true;\n break;\n }\n }\n\n return {\n label: label,\n error: error\n };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n var result = mapChars(domain_name, useSTD3, processing_option);\n result.string = normalize(result.string);\n\n var labels = result.string.split(\".\");\n for (var i = 0; i < labels.length; ++i) {\n try {\n var validation = validateLabel(labels[i]);\n labels[i] = validation.label;\n result.error = result.error || validation.error;\n } catch(e) {\n result.error = true;\n }\n }\n\n return {\n string: labels.join(\".\"),\n error: result.error\n };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n var result = processing(domain_name, useSTD3, processing_option);\n var labels = result.string.split(\".\");\n labels = labels.map(function(l) {\n try {\n return punycode.toASCII(l);\n } catch(e) {\n result.error = true;\n return l;\n }\n });\n\n if (verifyDnsLength) {\n var total = labels.slice(0, labels.length - 1).join(\".\").length;\n if (total.length > 253 || total.length === 0) {\n result.error = true;\n }\n\n for (var i=0; i < labels.length; ++i) {\n if (labels.length > 63 || labels.length === 0) {\n result.error = true;\n break;\n }\n }\n }\n\n if (result.error) return null;\n return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n return {\n domain: result.string,\n error: result.error\n };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n ftp: 21,\r\n file: null,\r\n gopher: 70,\r\n http: 80,\r\n https: 443,\r\n ws: 80,\r\n wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n const c = input[idx];\r\n return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n buffer = buffer.toLowerCase();\r\n return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n let hex = c.toString(16).toUpperCase();\r\n if (hex.length === 1) {\r\n hex = \"0\" + hex;\r\n }\r\n\r\n return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n const buf = new Buffer(c);\r\n\r\n let str = \"\";\r\n\r\n for (let i = 0; i < buf.length; ++i) {\r\n str += percentEncode(buf[i]);\r\n }\r\n\r\n return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n const input = new Buffer(str);\r\n const output = [];\r\n for (let i = 0; i < input.length; ++i) {\r\n if (input[i] !== 37) {\r\n output.push(input[i]);\r\n } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n i += 2;\r\n } else {\r\n output.push(input[i]);\r\n }\r\n }\r\n return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n const cStr = String.fromCodePoint(c);\r\n\r\n if (encodeSetPredicate(c)) {\r\n return utf8PercentEncode(cStr);\r\n }\r\n\r\n return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n let R = 10;\r\n\r\n if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n input = input.substring(2);\r\n R = 16;\r\n } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n input = input.substring(1);\r\n R = 8;\r\n }\r\n\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n\r\n const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n if (regex.test(input)) {\r\n return failure;\r\n }\r\n\r\n return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n const parts = input.split(\".\");\r\n if (parts[parts.length - 1] === \"\") {\r\n if (parts.length > 1) {\r\n parts.pop();\r\n }\r\n }\r\n\r\n if (parts.length > 4) {\r\n return input;\r\n }\r\n\r\n const numbers = [];\r\n for (const part of parts) {\r\n if (part === \"\") {\r\n return input;\r\n }\r\n const n = parseIPv4Number(part);\r\n if (n === failure) {\r\n return input;\r\n }\r\n\r\n numbers.push(n);\r\n }\r\n\r\n for (let i = 0; i < numbers.length - 1; ++i) {\r\n if (numbers[i] > 255) {\r\n return failure;\r\n }\r\n }\r\n if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n return failure;\r\n }\r\n\r\n let ipv4 = numbers.pop();\r\n let counter = 0;\r\n\r\n for (const n of numbers) {\r\n ipv4 += n * Math.pow(256, 3 - counter);\r\n ++counter;\r\n }\r\n\r\n return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n let output = \"\";\r\n let n = address;\r\n\r\n for (let i = 1; i <= 4; ++i) {\r\n output = String(n % 256) + output;\r\n if (i !== 4) {\r\n output = \".\" + output;\r\n }\r\n n = Math.floor(n / 256);\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n let pieceIndex = 0;\r\n let compress = null;\r\n let pointer = 0;\r\n\r\n input = punycode.ucs2.decode(input);\r\n\r\n if (input[pointer] === 58) {\r\n if (input[pointer + 1] !== 58) {\r\n return failure;\r\n }\r\n\r\n pointer += 2;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n }\r\n\r\n while (pointer < input.length) {\r\n if (pieceIndex === 8) {\r\n return failure;\r\n }\r\n\r\n if (input[pointer] === 58) {\r\n if (compress !== null) {\r\n return failure;\r\n }\r\n ++pointer;\r\n ++pieceIndex;\r\n compress = pieceIndex;\r\n continue;\r\n }\r\n\r\n let value = 0;\r\n let length = 0;\r\n\r\n while (length < 4 && isASCIIHex(input[pointer])) {\r\n value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n ++pointer;\r\n ++length;\r\n }\r\n\r\n if (input[pointer] === 46) {\r\n if (length === 0) {\r\n return failure;\r\n }\r\n\r\n pointer -= length;\r\n\r\n if (pieceIndex > 6) {\r\n return failure;\r\n }\r\n\r\n let numbersSeen = 0;\r\n\r\n while (input[pointer] !== undefined) {\r\n let ipv4Piece = null;\r\n\r\n if (numbersSeen > 0) {\r\n if (input[pointer] === 46 && numbersSeen < 4) {\r\n ++pointer;\r\n } else {\r\n return failure;\r\n }\r\n }\r\n\r\n if (!isASCIIDigit(input[pointer])) {\r\n return failure;\r\n }\r\n\r\n while (isASCIIDigit(input[pointer])) {\r\n const number = parseInt(at(input, pointer));\r\n if (ipv4Piece === null) {\r\n ipv4Piece = number;\r\n } else if (ipv4Piece === 0) {\r\n return failure;\r\n } else {\r\n ipv4Piece = ipv4Piece * 10 + number;\r\n }\r\n if (ipv4Piece > 255) {\r\n return failure;\r\n }\r\n ++pointer;\r\n }\r\n\r\n address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n ++numbersSeen;\r\n\r\n if (numbersSeen === 2 || numbersSeen === 4) {\r\n ++pieceIndex;\r\n }\r\n }\r\n\r\n if (numbersSeen !== 4) {\r\n return failure;\r\n }\r\n\r\n break;\r\n } else if (input[pointer] === 58) {\r\n ++pointer;\r\n if (input[pointer] === undefined) {\r\n return failure;\r\n }\r\n } else if (input[pointer] !== undefined) {\r\n return failure;\r\n }\r\n\r\n address[pieceIndex] = value;\r\n ++pieceIndex;\r\n }\r\n\r\n if (compress !== null) {\r\n let swaps = pieceIndex - compress;\r\n pieceIndex = 7;\r\n while (pieceIndex !== 0 && swaps > 0) {\r\n const temp = address[compress + swaps - 1];\r\n address[compress + swaps - 1] = address[pieceIndex];\r\n address[pieceIndex] = temp;\r\n --pieceIndex;\r\n --swaps;\r\n }\r\n } else if (compress === null && pieceIndex !== 8) {\r\n return failure;\r\n }\r\n\r\n return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n let output = \"\";\r\n const seqResult = findLongestZeroSequence(address);\r\n const compress = seqResult.idx;\r\n let ignore0 = false;\r\n\r\n for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n if (ignore0 && address[pieceIndex] === 0) {\r\n continue;\r\n } else if (ignore0) {\r\n ignore0 = false;\r\n }\r\n\r\n if (compress === pieceIndex) {\r\n const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n output += separator;\r\n ignore0 = true;\r\n continue;\r\n }\r\n\r\n output += address[pieceIndex].toString(16);\r\n\r\n if (pieceIndex !== 7) {\r\n output += \":\";\r\n }\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n if (input[0] === \"[\") {\r\n if (input[input.length - 1] !== \"]\") {\r\n return failure;\r\n }\r\n\r\n return parseIPv6(input.substring(1, input.length - 1));\r\n }\r\n\r\n if (!isSpecialArg) {\r\n return parseOpaqueHost(input);\r\n }\r\n\r\n const domain = utf8PercentDecode(input);\r\n const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n if (asciiDomain === null) {\r\n return failure;\r\n }\r\n\r\n if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n return failure;\r\n }\r\n\r\n const ipv4Host = parseIPv4(asciiDomain);\r\n if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n return ipv4Host;\r\n }\r\n\r\n return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n return failure;\r\n }\r\n\r\n let output = \"\";\r\n const decoded = punycode.ucs2.decode(input);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n }\r\n return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n let maxIdx = null;\r\n let maxLen = 1; // only find elements > 1\r\n let currStart = null;\r\n let currLen = 0;\r\n\r\n for (let i = 0; i < arr.length; ++i) {\r\n if (arr[i] !== 0) {\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n currStart = null;\r\n currLen = 0;\r\n } else {\r\n if (currStart === null) {\r\n currStart = i;\r\n }\r\n ++currLen;\r\n }\r\n }\r\n\r\n // if trailing zeros\r\n if (currLen > maxLen) {\r\n maxIdx = currStart;\r\n maxLen = currLen;\r\n }\r\n\r\n return {\r\n idx: maxIdx,\r\n len: maxLen\r\n };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n if (typeof host === \"number\") {\r\n return serializeIPv4(host);\r\n }\r\n\r\n // IPv6 serializer\r\n if (host instanceof Array) {\r\n return \"[\" + serializeIPv6(host) + \"]\";\r\n }\r\n\r\n return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n const path = url.path;\r\n if (path.length === 0) {\r\n return;\r\n }\r\n if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n return;\r\n }\r\n\r\n path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n this.pointer = 0;\r\n this.input = input;\r\n this.base = base || null;\r\n this.encodingOverride = encodingOverride || \"utf-8\";\r\n this.stateOverride = stateOverride;\r\n this.url = url;\r\n this.failure = false;\r\n this.parseError = false;\r\n\r\n if (!this.url) {\r\n this.url = {\r\n scheme: \"\",\r\n username: \"\",\r\n password: \"\",\r\n host: null,\r\n port: null,\r\n path: [],\r\n query: null,\r\n fragment: null,\r\n\r\n cannotBeABaseURL: false\r\n };\r\n\r\n const res = trimControlChars(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n }\r\n\r\n const res = trimTabAndNewline(this.input);\r\n if (res !== this.input) {\r\n this.parseError = true;\r\n }\r\n this.input = res;\r\n\r\n this.state = stateOverride || \"scheme start\";\r\n\r\n this.buffer = \"\";\r\n this.atFlag = false;\r\n this.arrFlag = false;\r\n this.passwordTokenSeenFlag = false;\r\n\r\n this.input = punycode.ucs2.decode(this.input);\r\n\r\n for (; this.pointer <= this.input.length; ++this.pointer) {\r\n const c = this.input[this.pointer];\r\n const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n // exec state machine\r\n const ret = this[\"parse \" + this.state](c, cStr);\r\n if (!ret) {\r\n break; // terminate algorithm\r\n } else if (ret === failure) {\r\n this.failure = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n if (isASCIIAlpha(c)) {\r\n this.buffer += cStr.toLowerCase();\r\n this.state = \"scheme\";\r\n } else if (!this.stateOverride) {\r\n this.state = \"no scheme\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n this.buffer += cStr.toLowerCase();\r\n } else if (c === 58) {\r\n if (this.stateOverride) {\r\n if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n return false;\r\n }\r\n\r\n if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n return false;\r\n }\r\n\r\n if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n return false;\r\n }\r\n }\r\n this.url.scheme = this.buffer;\r\n this.buffer = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n if (this.url.scheme === \"file\") {\r\n if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file\";\r\n } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n this.state = \"special relative or authority\";\r\n } else if (isSpecial(this.url)) {\r\n this.state = \"special authority slashes\";\r\n } else if (this.input[this.pointer + 1] === 47) {\r\n this.state = \"path or authority\";\r\n ++this.pointer;\r\n } else {\r\n this.url.cannotBeABaseURL = true;\r\n this.url.path.push(\"\");\r\n this.state = \"cannot-be-a-base-URL path\";\r\n }\r\n } else if (!this.stateOverride) {\r\n this.buffer = \"\";\r\n this.state = \"no scheme\";\r\n this.pointer = -1;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n return failure;\r\n } else if (this.base.cannotBeABaseURL && c === 35) {\r\n this.url.scheme = this.base.scheme;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.url.cannotBeABaseURL = true;\r\n this.state = \"fragment\";\r\n } else if (this.base.scheme === \"file\") {\r\n this.state = \"file\";\r\n --this.pointer;\r\n } else {\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"relative\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n this.url.scheme = this.base.scheme;\r\n if (isNaN(c)) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 47) {\r\n this.state = \"relative slash\";\r\n } else if (c === 63) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n this.state = \"relative slash\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"special authority ignore slashes\";\r\n } else if (c === 47) {\r\n this.state = \"authority\";\r\n } else {\r\n this.url.username = this.base.username;\r\n this.url.password = this.base.password;\r\n this.url.host = this.base.host;\r\n this.url.port = this.base.port;\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n this.state = \"special authority ignore slashes\";\r\n ++this.pointer;\r\n } else {\r\n this.parseError = true;\r\n this.state = \"special authority ignore slashes\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n if (c !== 47 && c !== 92) {\r\n this.state = \"authority\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n if (c === 64) {\r\n this.parseError = true;\r\n if (this.atFlag) {\r\n this.buffer = \"%40\" + this.buffer;\r\n }\r\n this.atFlag = true;\r\n\r\n // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n const len = countSymbols(this.buffer);\r\n for (let pointer = 0; pointer < len; ++pointer) {\r\n const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n this.passwordTokenSeenFlag = true;\r\n continue;\r\n }\r\n const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n if (this.passwordTokenSeenFlag) {\r\n this.url.password += encodedCodePoints;\r\n } else {\r\n this.url.username += encodedCodePoints;\r\n }\r\n }\r\n this.buffer = \"\";\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n if (this.atFlag && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.pointer -= countSymbols(this.buffer) + 1;\r\n this.buffer = \"\";\r\n this.state = \"host\";\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n if (this.stateOverride && this.url.scheme === \"file\") {\r\n --this.pointer;\r\n this.state = \"file host\";\r\n } else if (c === 58 && !this.arrFlag) {\r\n if (this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"port\";\r\n if (this.stateOverride === \"hostname\") {\r\n return false;\r\n }\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92)) {\r\n --this.pointer;\r\n if (isSpecial(this.url) && this.buffer === \"\") {\r\n this.parseError = true;\r\n return failure;\r\n } else if (this.stateOverride && this.buffer === \"\" &&\r\n (includesCredentials(this.url) || this.url.port !== null)) {\r\n this.parseError = true;\r\n return false;\r\n }\r\n\r\n const host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n\r\n this.url.host = host;\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n } else {\r\n if (c === 91) {\r\n this.arrFlag = true;\r\n } else if (c === 93) {\r\n this.arrFlag = false;\r\n }\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n if (isASCIIDigit(c)) {\r\n this.buffer += cStr;\r\n } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n (isSpecial(this.url) && c === 92) ||\r\n this.stateOverride) {\r\n if (this.buffer !== \"\") {\r\n const port = parseInt(this.buffer);\r\n if (port > Math.pow(2, 16) - 1) {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n this.buffer = \"\";\r\n }\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n --this.pointer;\r\n } else {\r\n this.parseError = true;\r\n return failure;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n this.url.scheme = \"file\";\r\n\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file slash\";\r\n } else if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNaN(c)) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n } else if (c === 63) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n this.url.query = this.base.query;\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n this.url.host = this.base.host;\r\n this.url.path = this.base.path.slice();\r\n shortenPath(this.url);\r\n } else {\r\n this.parseError = true;\r\n }\r\n\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n } else {\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n if (c === 47 || c === 92) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"file host\";\r\n } else {\r\n if (this.base !== null && this.base.scheme === \"file\") {\r\n if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n this.url.path.push(this.base.path[0]);\r\n } else {\r\n this.url.host = this.base.host;\r\n }\r\n }\r\n this.state = \"path\";\r\n --this.pointer;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n --this.pointer;\r\n if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n this.parseError = true;\r\n this.state = \"path\";\r\n } else if (this.buffer === \"\") {\r\n this.url.host = \"\";\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n this.state = \"path start\";\r\n } else {\r\n let host = parseHost(this.buffer, isSpecial(this.url));\r\n if (host === failure) {\r\n return failure;\r\n }\r\n if (host === \"localhost\") {\r\n host = \"\";\r\n }\r\n this.url.host = host;\r\n\r\n if (this.stateOverride) {\r\n return false;\r\n }\r\n\r\n this.buffer = \"\";\r\n this.state = \"path start\";\r\n }\r\n } else {\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n if (isSpecial(this.url)) {\r\n if (c === 92) {\r\n this.parseError = true;\r\n }\r\n this.state = \"path\";\r\n\r\n if (c !== 47 && c !== 92) {\r\n --this.pointer;\r\n }\r\n } else if (!this.stateOverride && c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (!this.stateOverride && c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else if (c !== undefined) {\r\n this.state = \"path\";\r\n if (c !== 47) {\r\n --this.pointer;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n (!this.stateOverride && (c === 63 || c === 35))) {\r\n if (isSpecial(this.url) && c === 92) {\r\n this.parseError = true;\r\n }\r\n\r\n if (isDoubleDot(this.buffer)) {\r\n shortenPath(this.url);\r\n if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n }\r\n } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n !(isSpecial(this.url) && c === 92)) {\r\n this.url.path.push(\"\");\r\n } else if (!isSingleDot(this.buffer)) {\r\n if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n if (this.url.host !== \"\" && this.url.host !== null) {\r\n this.parseError = true;\r\n this.url.host = \"\";\r\n }\r\n this.buffer = this.buffer[0] + \":\";\r\n }\r\n this.url.path.push(this.buffer);\r\n }\r\n this.buffer = \"\";\r\n if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n this.parseError = true;\r\n this.url.path.shift();\r\n }\r\n }\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n }\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n if (c === 63) {\r\n this.url.query = \"\";\r\n this.state = \"query\";\r\n } else if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n } else {\r\n // TODO: Add: not a URL code point\r\n if (!isNaN(c) && c !== 37) {\r\n this.parseError = true;\r\n }\r\n\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n if (!isNaN(c)) {\r\n this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n this.encodingOverride = \"utf-8\";\r\n }\r\n\r\n const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n for (let i = 0; i < buffer.length; ++i) {\r\n if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n this.url.query += percentEncode(buffer[i]);\r\n } else {\r\n this.url.query += String.fromCodePoint(buffer[i]);\r\n }\r\n }\r\n\r\n this.buffer = \"\";\r\n if (c === 35) {\r\n this.url.fragment = \"\";\r\n this.state = \"fragment\";\r\n }\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.buffer += cStr;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n if (isNaN(c)) { // do nothing\r\n } else if (c === 0x0) {\r\n this.parseError = true;\r\n } else {\r\n // TODO: If c is not a URL code point and not \"%\", parse error.\r\n if (c === 37 &&\r\n (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n !isASCIIHex(this.input[this.pointer + 2]))) {\r\n this.parseError = true;\r\n }\r\n\r\n this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n let output = url.scheme + \":\";\r\n if (url.host !== null) {\r\n output += \"//\";\r\n\r\n if (url.username !== \"\" || url.password !== \"\") {\r\n output += url.username;\r\n if (url.password !== \"\") {\r\n output += \":\" + url.password;\r\n }\r\n output += \"@\";\r\n }\r\n\r\n output += serializeHost(url.host);\r\n\r\n if (url.port !== null) {\r\n output += \":\" + url.port;\r\n }\r\n } else if (url.host === null && url.scheme === \"file\") {\r\n output += \"//\";\r\n }\r\n\r\n if (url.cannotBeABaseURL) {\r\n output += url.path[0];\r\n } else {\r\n for (const string of url.path) {\r\n output += \"/\" + string;\r\n }\r\n }\r\n\r\n if (url.query !== null) {\r\n output += \"?\" + url.query;\r\n }\r\n\r\n if (!excludeFragment && url.fragment !== null) {\r\n output += \"#\" + url.fragment;\r\n }\r\n\r\n return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n let result = tuple.scheme + \"://\";\r\n result += serializeHost(tuple.host);\r\n\r\n if (tuple.port !== null) {\r\n result += \":\" + tuple.port;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n // https://url.spec.whatwg.org/#concept-url-origin\r\n switch (url.scheme) {\r\n case \"blob\":\r\n try {\r\n return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n } catch (e) {\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n case \"ftp\":\r\n case \"gopher\":\r\n case \"http\":\r\n case \"https\":\r\n case \"ws\":\r\n case \"wss\":\r\n return serializeOrigin({\r\n scheme: url.scheme,\r\n host: url.host,\r\n port: url.port\r\n });\r\n case \"file\":\r\n // spec says \"exercise to the reader\", chrome says \"file://\"\r\n return \"file://\";\r\n default:\r\n // serializing an opaque origin returns \"null\"\r\n return \"null\";\r\n }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n if (usm.failure) {\r\n return \"failure\";\r\n }\r\n\r\n return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n url.username = \"\";\r\n const decoded = punycode.ucs2.decode(username);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n url.password = \"\";\r\n const decoded = punycode.ucs2.decode(password);\r\n for (let i = 0; i < decoded.length; ++i) {\r\n url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n if (options === undefined) {\r\n options = {};\r\n }\r\n\r\n // We don't handle blobs, so this just delegates:\r\n return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n constructor(constructorArgs) {\n const url = constructorArgs[0];\n const base = constructorArgs[1];\n\n let parsedBase = null;\n if (base !== undefined) {\n parsedBase = usm.basicURLParse(base);\n if (parsedBase === \"failure\") {\n throw new TypeError(\"Invalid base URL\");\n }\n }\n\n const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n\n // TODO: query stuff\n }\n\n get href() {\n return usm.serializeURL(this._url);\n }\n\n set href(v) {\n const parsedURL = usm.basicURLParse(v);\n if (parsedURL === \"failure\") {\n throw new TypeError(\"Invalid URL\");\n }\n\n this._url = parsedURL;\n }\n\n get origin() {\n return usm.serializeURLOrigin(this._url);\n }\n\n get protocol() {\n return this._url.scheme + \":\";\n }\n\n set protocol(v) {\n usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n }\n\n get username() {\n return this._url.username;\n }\n\n set username(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setTheUsername(this._url, v);\n }\n\n get password() {\n return this._url.password;\n }\n\n set password(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n usm.setThePassword(this._url, v);\n }\n\n get host() {\n const url = this._url;\n\n if (url.host === null) {\n return \"\";\n }\n\n if (url.port === null) {\n return usm.serializeHost(url.host);\n }\n\n return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n }\n\n set host(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n }\n\n get hostname() {\n if (this._url.host === null) {\n return \"\";\n }\n\n return usm.serializeHost(this._url.host);\n }\n\n set hostname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n }\n\n get port() {\n if (this._url.port === null) {\n return \"\";\n }\n\n return usm.serializeInteger(this._url.port);\n }\n\n set port(v) {\n if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n return;\n }\n\n if (v === \"\") {\n this._url.port = null;\n } else {\n usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n }\n }\n\n get pathname() {\n if (this._url.cannotBeABaseURL) {\n return this._url.path[0];\n }\n\n if (this._url.path.length === 0) {\n return \"\";\n }\n\n return \"/\" + this._url.path.join(\"/\");\n }\n\n set pathname(v) {\n if (this._url.cannotBeABaseURL) {\n return;\n }\n\n this._url.path = [];\n usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n }\n\n get search() {\n if (this._url.query === null || this._url.query === \"\") {\n return \"\";\n }\n\n return \"?\" + this._url.query;\n }\n\n set search(v) {\n // TODO: query stuff\n\n const url = this._url;\n\n if (v === \"\") {\n url.query = null;\n return;\n }\n\n const input = v[0] === \"?\" ? v.substring(1) : v;\n url.query = \"\";\n usm.basicURLParse(input, { url, stateOverride: \"query\" });\n }\n\n get hash() {\n if (this._url.fragment === null || this._url.fragment === \"\") {\n return \"\";\n }\n\n return \"#\" + this._url.fragment;\n }\n\n set hash(v) {\n if (v === \"\") {\n this._url.fragment = null;\n return;\n }\n\n const input = v[0] === \"#\" ? v.substring(1) : v;\n this._url.fragment = \"\";\n usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n }\n\n toJSON() {\n return this.href;\n }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n if (!this || this[impl] || !(this instanceof URL)) {\n throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 2; ++i) {\n args[i] = arguments[i];\n }\n args[0] = conversions[\"USVString\"](args[0]);\n if (args[1] !== undefined) {\n args[1] = conversions[\"USVString\"](args[1]);\n }\n\n module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n const args = [];\n for (let i = 0; i < arguments.length && i < 0; ++i) {\n args[i] = arguments[i];\n }\n return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n get() {\n return this[impl].href;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].href = V;\n },\n enumerable: true,\n configurable: true\n});\n\nURL.prototype.toString = function () {\n if (!this || !module.exports.is(this)) {\n throw new TypeError(\"Illegal invocation\");\n }\n return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n get() {\n return this[impl].origin;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n get() {\n return this[impl].protocol;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].protocol = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n get() {\n return this[impl].username;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].username = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n get() {\n return this[impl].password;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].password = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n get() {\n return this[impl].host;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].host = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n get() {\n return this[impl].hostname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hostname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n get() {\n return this[impl].port;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].port = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n get() {\n return this[impl].pathname;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].pathname = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n get() {\n return this[impl].search;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].search = V;\n },\n enumerable: true,\n configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n get() {\n return this[impl].hash;\n },\n set(V) {\n V = conversions[\"USVString\"](V);\n this[impl].hash = V;\n },\n enumerable: true,\n configurable: true\n});\n\n\nmodule.exports = {\n is(obj) {\n return !!obj && obj[impl] instanceof Impl.implementation;\n },\n create(constructorArgs, privateData) {\n let obj = Object.create(URL.prototype);\n this.setup(obj, constructorArgs, privateData);\n return obj;\n },\n setup(obj, constructorArgs, privateData) {\n if (!privateData) privateData = {};\n privateData.wrapper = obj;\n\n obj[impl] = new Impl.implementation(constructorArgs, privateData);\n obj[impl][utils.wrapperSymbol] = obj;\n },\n interface: URL,\n expose: {\n Window: { URL: URL },\n Worker: { URL: URL }\n }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","import Stream from 'stream';\nimport http from 'http';\nimport Url from 'url';\nimport whatwgUrl from 'whatwg-url';\nimport https from 'https';\nimport zlib from 'zlib';\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = /<meta.+?charset=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// html4\n\tif (!res && str) {\n\t\tres = /<meta[\\s]+?http-equiv=(['\"])content-type\\1[\\s]+?content=(['\"])(.+?)\\2/i.exec(str);\n\t\tif (!res) {\n\t\t\tres = /<meta[\\s]+?content=(['\"])(.+?)\\1[\\s]+?http-equiv=(['\"])content-type\\3/i.exec(str);\n\t\t\tif (res) {\n\t\t\t\tres.pop(); // drop last quote\n\t\t\t}\n\t\t}\n\n\t\tif (res) {\n\t\t\tres = /charset=(.*)/i.exec(res.pop());\n\t\t}\n\t}\n\n\t// xml\n\tif (!res && str) {\n\t\tres = /<\\?xml.+?encoding=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// found charset\n\tif (res) {\n\t\tcharset = res.pop();\n\n\t\t// prevent decode issues when sites use incorrect encoding\n\t\t// ref: https://hsivonen.fi/encoding-menu/\n\t\tif (charset === 'gb2312' || charset === 'gbk') {\n\t\t\tcharset = 'gb18030';\n\t\t}\n\t}\n\n\t// turn raw buffers into a single utf-8 buffer\n\treturn convert(buffer, 'UTF-8', charset).toString();\n}\n\n/**\n * Detect a URLSearchParams object\n * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143\n *\n * @param Object obj Object to detect by type or brand\n * @return String\n */\nfunction isURLSearchParams(obj) {\n\t// Duck-typing as a necessary condition.\n\tif (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {\n\t\treturn false;\n\t}\n\n\t// Brand-checking and more duck-typing as optional condition.\n\treturn obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';\n}\n\n/**\n * Check if `obj` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} obj\n * @return {boolean}\n */\nfunction isBlob(obj) {\n\treturn typeof obj === 'object' && typeof obj.arrayBuffer === 'function' && typeof obj.type === 'string' && typeof obj.stream === 'function' && typeof obj.constructor === 'function' && typeof obj.constructor.name === 'string' && /^(Blob|File)$/.test(obj.constructor.name) && /^(Blob|File)$/.test(obj[Symbol.toStringTag]);\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @return Mixed\n */\nfunction clone(instance) {\n\tlet p1, p2;\n\tlet body = instance.body;\n\n\t// don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif (body instanceof Stream && typeof body.getBoundary !== 'function') {\n\t\t// tee instance body\n\t\tp1 = new PassThrough();\n\t\tp2 = new PassThrough();\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].body = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n}\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param Mixed instance Any options.body input\n */\nfunction extractContentType(body) {\n\tif (body === null) {\n\t\t// body is null\n\t\treturn null;\n\t} else if (typeof body === 'string') {\n\t\t// body is string\n\t\treturn 'text/plain;charset=UTF-8';\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t} else if (isBlob(body)) {\n\t\t// body is blob\n\t\treturn body.type || null;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn null;\n\t} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\treturn null;\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\treturn null;\n\t} else if (typeof body.getBoundary === 'function') {\n\t\t// detect form data input from form-data module\n\t\treturn `multipart/form-data;boundary=${body.getBoundary()}`;\n\t} else if (body instanceof Stream) {\n\t\t// body is stream\n\t\t// can't really do much about this\n\t\treturn null;\n\t} else {\n\t\t// Body constructor defaults other things to string\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n}\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param Body instance Instance of Body\n * @return Number? Number of bytes, or null if not possible\n */\nfunction getTotalBytes(instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\treturn 0;\n\t} else if (isBlob(body)) {\n\t\treturn body.size;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn body.length;\n\t} else if (body && typeof body.getLengthSync === 'function') {\n\t\t// detect form data input from form-data module\n\t\tif (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x\n\t\tbody.hasKnownLength && body.hasKnownLength()) {\n\t\t\t// 2.x\n\t\t\treturn body.getLengthSync();\n\t\t}\n\t\treturn null;\n\t} else {\n\t\t// body is stream\n\t\treturn null;\n\t}\n}\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param Body instance Instance of Body\n * @return Void\n */\nfunction writeToStream(dest, instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\tdest.end();\n\t} else if (isBlob(body)) {\n\t\tbody.stream().pipe(dest);\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\tdest.write(body);\n\t\tdest.end();\n\t} else {\n\t\t// body is stream\n\t\tbody.pipe(dest);\n\t}\n}\n\n// expose Promise\nBody.Promise = global.Promise;\n\n/**\n * headers.js\n *\n * Headers class offers convenient helpers\n */\n\nconst invalidTokenRegex = /[^\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]/;\nconst invalidHeaderCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\n\nfunction validateName(name) {\n\tname = `${name}`;\n\tif (invalidTokenRegex.test(name) || name === '') {\n\t\tthrow new TypeError(`${name} is not a legal HTTP header name`);\n\t}\n}\n\nfunction validateValue(value) {\n\tvalue = `${value}`;\n\tif (invalidHeaderCharRegex.test(value)) {\n\t\tthrow new TypeError(`${value} is not a legal HTTP header value`);\n\t}\n}\n\n/**\n * Find the key in the map object given a header name.\n *\n * Returns undefined if not found.\n *\n * @param String name Header name\n * @return String|Undefined\n */\nfunction find(map, name) {\n\tname = name.toLowerCase();\n\tfor (const key in map) {\n\t\tif (key.toLowerCase() === name) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst MAP = Symbol('map');\nclass Headers {\n\t/**\n * Headers class\n *\n * @param Object headers Response headers\n * @return Void\n */\n\tconstructor() {\n\t\tlet init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record<ByteString, ByteString>\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nconst isSameProtocol = function isSameProtocol(destination, original) {\n\tconst orig = new URL$1(original).protocol;\n\tconst dest = new URL$1(destination).protocol;\n\n\treturn orig === dest;\n};\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\tdestroyStream(request.body, error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(req, function (err) {\n\t\t\tif (signal && signal.aborted) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (parseInt(process.version.substring(1)) < 14) {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\treq.on('socket', function (s) {\n\t\t\t\ts.addListener('close', function (hadError) {\n\t\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\t\tconst hasDataListener = s.listenerCount('data') > 0;\n\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && hasDataListener && !hadError && !(signal && signal.aborted)) {\n\t\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.on('end', function () {\n\t\t\t\t\t// some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted.\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tlet socket;\n\n\trequest.on('socket', function (s) {\n\t\tsocket = s;\n\t});\n\n\trequest.on('response', function (response) {\n\t\tconst headers = response.headers;\n\n\t\tif (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) {\n\t\t\tresponse.once('close', function (hadError) {\n\t\t\t\t// tests for socket presence, as in some situations the\n\t\t\t\t// the 'socket' event is not triggered for the request\n\t\t\t\t// (happens in deno), avoids `TypeError`\n\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\tconst hasDataListener = socket && socket.listenerCount('data') > 0;\n\n\t\t\t\tif (hasDataListener && !hadError) {\n\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\terrorCallback(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction destroyStream(stream, err) {\n\tif (stream.destroy) {\n\t\tstream.destroy(err);\n\t} else {\n\t\t// node < 8\n\t\tstream.emit('error', err);\n\t\tstream.end();\n\t}\n}\n\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nexport default fetch;\nexport { Headers, Request, Response, FetchError, AbortError };\n","\n/**\n * Expose `isUrl`.\n */\n\nmodule.exports = isUrl;\n\n/**\n * RegExps.\n * A URL must match #1 and then at least one of #2/#3.\n * Use two levels of REs to avoid REDOS.\n */\n\nvar protocolAndDomainRE = /^(?:\\w+:)?\\/\\/(\\S+)$/;\n\nvar localhostDomainRE = /^localhost[\\:?\\d]*(?:[^\\:?\\d]\\S*)?$/\nvar nonLocalhostDomainRE = /^[^\\s\\.]+\\.\\S{2,}$/;\n\n/**\n * Loosely validate a URL `string`.\n *\n * @param {String} string\n * @return {Boolean}\n */\n\nfunction isUrl(string){\n if (typeof string !== 'string') {\n return false;\n }\n\n var match = string.match(protocolAndDomainRE);\n if (!match) {\n return false;\n }\n\n var everythingAfterProtocol = match[1];\n if (!everythingAfterProtocol) {\n return false;\n }\n\n if (localhostDomainRE.test(everythingAfterProtocol) ||\n nonLocalhostDomainRE.test(everythingAfterProtocol)) {\n return true;\n }\n\n return false;\n}\n","const util = require('util');\nconst fs = require('fs');\nconst fetch = require('node-fetch');\nconst isURL = require('is-url');\n\nconst readFile = util.promisify(fs.readFile);\n\n/**\n * loadImage\n *\n * @name loadImage\n * @function load image from different source\n * @access public\n */\nmodule.exports = async (image) => {\n let data = image;\n if (typeof image === 'undefined') {\n return image;\n }\n\n if (typeof image === 'string') {\n if (isURL(image) || image.startsWith('moz-extension://') || image.startsWith('chrome-extension://') || image.startsWith('file://')) {\n const resp = await fetch(image);\n data = await resp.arrayBuffer();\n } else if (/data:image\\/([a-zA-Z]*);base64,([^\"]*)/.test(image)) {\n data = Buffer.from(image.split(',')[1], 'base64');\n } else {\n data = await readFile(image);\n }\n } else if (Buffer.isBuffer(image)) {\n data = image;\n }\n\n return new Uint8Array(data);\n};\n","/**\n *\n * Tesseract Worker impl. for node (using child_process)\n *\n * @fileoverview Tesseract Worker impl. for node\n * @author Kevin Kwok <antimatter15@gmail.com>\n * @author Guillermo Webster <gui@mit.edu>\n * @author Jerome Wu <jeromewus@gmail.com>\n */\nconst defaultOptions = require('./defaultOptions');\nconst spawnWorker = require('./spawnWorker');\nconst terminateWorker = require('./terminateWorker');\nconst onMessage = require('./onMessage');\nconst send = require('./send');\nconst loadImage = require('./loadImage');\n\nmodule.exports = {\n defaultOptions,\n spawnWorker,\n terminateWorker,\n onMessage,\n send,\n loadImage,\n};\n","const resolvePaths = require('./utils/resolvePaths');\nconst createJob = require('./createJob');\nconst { log } = require('./utils/log');\nconst getId = require('./utils/getId');\nconst OEM = require('./constants/OEM');\nconst {\n defaultOptions,\n spawnWorker,\n terminateWorker,\n onMessage,\n loadImage,\n send,\n} = require('./worker/node');\n\nlet workerCounter = 0;\n\nmodule.exports = async (langs = 'eng', oem = OEM.LSTM_ONLY, _options = {}, config = {}) => {\n const id = getId('Worker', workerCounter);\n const {\n logger,\n errorHandler,\n ...options\n } = resolvePaths({\n ...defaultOptions,\n ..._options,\n });\n const promises = {};\n\n // Current langs, oem, and config file.\n // Used if the user ever re-initializes the worker using `worker.reinitialize`.\n const currentLangs = typeof langs === 'string' ? langs.split('+') : langs;\n let currentOem = oem;\n let currentConfig = config;\n const lstmOnlyCore = [OEM.DEFAULT, OEM.LSTM_ONLY].includes(oem) && !options.legacyCore;\n\n let workerResReject;\n let workerResResolve;\n const workerRes = new Promise((resolve, reject) => {\n workerResResolve = resolve;\n workerResReject = reject;\n });\n const workerError = (event) => { workerResReject(event.message); };\n\n let worker = spawnWorker(options);\n worker.onerror = workerError;\n\n workerCounter += 1;\n\n const startJob = ({ id: jobId, action, payload }) => (\n new Promise((resolve, reject) => {\n log(`[${id}]: Start ${jobId}, action=${action}`);\n // Using both `action` and `jobId` in case user provides non-unique `jobId`.\n const promiseId = `${action}-${jobId}`;\n promises[promiseId] = { resolve, reject };\n send(worker, {\n workerId: id,\n jobId,\n action,\n payload,\n });\n })\n );\n\n const load = () => (\n console.warn('`load` is depreciated and should be removed from code (workers now come pre-loaded)')\n );\n\n const loadInternal = (jobId) => (\n startJob(createJob({\n id: jobId, action: 'load', payload: { options: { lstmOnly: lstmOnlyCore, corePath: options.corePath, logging: options.logging } },\n }))\n );\n\n const writeText = (path, text, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'FS',\n payload: { method: 'writeFile', args: [path, text] },\n }))\n );\n\n const readText = (path, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'FS',\n payload: { method: 'readFile', args: [path, { encoding: 'utf8' }] },\n }))\n );\n\n const removeFile = (path, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'FS',\n payload: { method: 'unlink', args: [path] },\n }))\n );\n\n const FS = (method, args, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'FS',\n payload: { method, args },\n }))\n );\n\n const loadLanguageInternal = (_langs, jobId) => startJob(createJob({\n id: jobId,\n action: 'loadLanguage',\n payload: {\n langs: _langs,\n options: {\n langPath: options.langPath,\n dataPath: options.dataPath,\n cachePath: options.cachePath,\n cacheMethod: options.cacheMethod,\n gzip: options.gzip,\n lstmOnly: [OEM.DEFAULT, OEM.LSTM_ONLY].includes(currentOem)\n && !options.legacyLang,\n },\n },\n }));\n\n const initializeInternal = (_langs, _oem, _config, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'initialize',\n payload: { langs: _langs, oem: _oem, config: _config },\n }))\n );\n\n const reinitialize = (langs = 'eng', oem, config, jobId) => { // eslint-disable-line\n\n if (lstmOnlyCore && [OEM.TESSERACT_ONLY, OEM.TESSERACT_LSTM_COMBINED].includes(oem)) throw Error('Legacy model requested but code missing.');\n\n const _oem = oem || currentOem;\n currentOem = _oem;\n\n const _config = config || currentConfig;\n currentConfig = _config;\n\n // Only load langs that are not already loaded.\n // This logic fails if the user downloaded the LSTM-only English data for a language\n // and then uses `worker.reinitialize` to switch to the Legacy engine.\n // However, the correct data will still be downloaded after initialization fails\n // and this can be avoided entirely if the user loads the correct data ahead of time.\n const langsArr = typeof langs === 'string' ? langs.split('+') : langs;\n const _langs = langsArr.filter((x) => !currentLangs.includes(x));\n currentLangs.push(..._langs);\n\n if (_langs.length > 0) {\n return loadLanguageInternal(_langs, jobId)\n .then(() => initializeInternal(langs, _oem, _config, jobId));\n }\n\n return initializeInternal(langs, _oem, _config, jobId);\n };\n\n const setParameters = (params = {}, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'setParameters',\n payload: { params },\n }))\n );\n\n const recognize = async (image, opts = {}, output = {\n text: true,\n }, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'recognize',\n payload: { image: await loadImage(image), options: opts, output },\n }))\n );\n\n const detect = async (image, jobId) => {\n if (lstmOnlyCore) throw Error('`worker.detect` requires Legacy model, which was not loaded.');\n\n return startJob(createJob({\n id: jobId,\n action: 'detect',\n payload: { image: await loadImage(image) },\n }));\n };\n\n const terminate = async () => {\n if (worker !== null) {\n /*\n await startJob(createJob({\n id: jobId,\n action: 'terminate',\n }));\n */\n terminateWorker(worker);\n worker = null;\n }\n return Promise.resolve();\n };\n\n onMessage(worker, ({\n workerId, jobId, status, action, data,\n }) => {\n const promiseId = `${action}-${jobId}`;\n if (status === 'resolve') {\n log(`[${workerId}]: Complete ${jobId}`);\n promises[promiseId].resolve({ jobId, data });\n delete promises[promiseId];\n } else if (status === 'reject') {\n promises[promiseId].reject(data);\n delete promises[promiseId];\n if (action === 'load') workerResReject(data);\n if (errorHandler) {\n errorHandler(data);\n } else {\n throw Error(data);\n }\n } else if (status === 'progress') {\n logger({ ...data, userJobId: jobId });\n }\n });\n\n const resolveObj = {\n id,\n worker,\n load,\n writeText,\n readText,\n removeFile,\n FS,\n reinitialize,\n setParameters,\n recognize,\n detect,\n terminate,\n };\n\n loadInternal()\n .then(() => loadLanguageInternal(langs))\n .then(() => initializeInternal(langs, oem, config))\n .then(() => workerResResolve(resolveObj))\n .catch(() => {});\n\n return workerRes;\n};\n","const createWorker = require('./createWorker');\n\nconst recognize = async (image, langs, options) => {\n const worker = await createWorker(langs, 1, options);\n return worker.recognize(image)\n .finally(async () => {\n await worker.terminate();\n });\n};\n\nconst detect = async (image, options) => {\n const worker = await createWorker('osd', 0, options);\n return worker.detect(image)\n .finally(async () => {\n await worker.terminate();\n });\n};\n\nmodule.exports = {\n recognize,\n detect,\n};\n","/*\n * languages with existing tesseract traineddata\n * https://tesseract-ocr.github.io/tessdoc/Data-Files#data-files-for-version-400-november-29-2016\n */\n\n/**\n * @typedef {object} Languages\n * @property {string} AFR Afrikaans\n * @property {string} AMH Amharic\n * @property {string} ARA Arabic\n * @property {string} ASM Assamese\n * @property {string} AZE Azerbaijani\n * @property {string} AZE_CYRL Azerbaijani - Cyrillic\n * @property {string} BEL Belarusian\n * @property {string} BEN Bengali\n * @property {string} BOD Tibetan\n * @property {string} BOS Bosnian\n * @property {string} BUL Bulgarian\n * @property {string} CAT Catalan; Valencian\n * @property {string} CEB Cebuano\n * @property {string} CES Czech\n * @property {string} CHI_SIM Chinese - Simplified\n * @property {string} CHI_TRA Chinese - Traditional\n * @property {string} CHR Cherokee\n * @property {string} CYM Welsh\n * @property {string} DAN Danish\n * @property {string} DEU German\n * @property {string} DZO Dzongkha\n * @property {string} ELL Greek, Modern (1453-)\n * @property {string} ENG English\n * @property {string} ENM English, Middle (1100-1500)\n * @property {string} EPO Esperanto\n * @property {string} EST Estonian\n * @property {string} EUS Basque\n * @property {string} FAS Persian\n * @property {string} FIN Finnish\n * @property {string} FRA French\n * @property {string} FRK German Fraktur\n * @property {string} FRM French, Middle (ca. 1400-1600)\n * @property {string} GLE Irish\n * @property {string} GLG Galician\n * @property {string} GRC Greek, Ancient (-1453)\n * @property {string} GUJ Gujarati\n * @property {string} HAT Haitian; Haitian Creole\n * @property {string} HEB Hebrew\n * @property {string} HIN Hindi\n * @property {string} HRV Croatian\n * @property {string} HUN Hungarian\n * @property {string} IKU Inuktitut\n * @property {string} IND Indonesian\n * @property {string} ISL Icelandic\n * @property {string} ITA Italian\n * @property {string} ITA_OLD Italian - Old\n * @property {string} JAV Javanese\n * @property {string} JPN Japanese\n * @property {string} KAN Kannada\n * @property {string} KAT Georgian\n * @property {string} KAT_OLD Georgian - Old\n * @property {string} KAZ Kazakh\n * @property {string} KHM Central Khmer\n * @property {string} KIR Kirghiz; Kyrgyz\n * @property {string} KOR Korean\n * @property {string} KUR Kurdish\n * @property {string} LAO Lao\n * @property {string} LAT Latin\n * @property {string} LAV Latvian\n * @property {string} LIT Lithuanian\n * @property {string} MAL Malayalam\n * @property {string} MAR Marathi\n * @property {string} MKD Macedonian\n * @property {string} MLT Maltese\n * @property {string} MSA Malay\n * @property {string} MYA Burmese\n * @property {string} NEP Nepali\n * @property {string} NLD Dutch; Flemish\n * @property {string} NOR Norwegian\n * @property {string} ORI Oriya\n * @property {string} PAN Panjabi; Punjabi\n * @property {string} POL Polish\n * @property {string} POR Portuguese\n * @property {string} PUS Pushto; Pashto\n * @property {string} RON Romanian; Moldavian; Moldovan\n * @property {string} RUS Russian\n * @property {string} SAN Sanskrit\n * @property {string} SIN Sinhala; Sinhalese\n * @property {string} SLK Slovak\n * @property {string} SLV Slovenian\n * @property {string} SPA Spanish; Castilian\n * @property {string} SPA_OLD Spanish; Castilian - Old\n * @property {string} SQI Albanian\n * @property {string} SRP Serbian\n * @property {string} SRP_LATN Serbian - Latin\n * @property {string} SWA Swahili\n * @property {string} SWE Swedish\n * @property {string} SYR Syriac\n * @property {string} TAM Tamil\n * @property {string} TEL Telugu\n * @property {string} TGK Tajik\n * @property {string} TGL Tagalog\n * @property {string} THA Thai\n * @property {string} TIR Tigrinya\n * @property {string} TUR Turkish\n * @property {string} UIG Uighur; Uyghur\n * @property {string} UKR Ukrainian\n * @property {string} URD Urdu\n * @property {string} UZB Uzbek\n * @property {string} UZB_CYRL Uzbek - Cyrillic\n * @property {string} VIE Vietnamese\n * @property {string} YID Yiddish\n */\n\n/**\n * @type {Languages}\n */\nmodule.exports = {\n AFR: 'afr',\n AMH: 'amh',\n ARA: 'ara',\n ASM: 'asm',\n AZE: 'aze',\n AZE_CYRL: 'aze_cyrl',\n BEL: 'bel',\n BEN: 'ben',\n BOD: 'bod',\n BOS: 'bos',\n BUL: 'bul',\n CAT: 'cat',\n CEB: 'ceb',\n CES: 'ces',\n CHI_SIM: 'chi_sim',\n CHI_TRA: 'chi_tra',\n CHR: 'chr',\n CYM: 'cym',\n DAN: 'dan',\n DEU: 'deu',\n DZO: 'dzo',\n ELL: 'ell',\n ENG: 'eng',\n ENM: 'enm',\n EPO: 'epo',\n EST: 'est',\n EUS: 'eus',\n FAS: 'fas',\n FIN: 'fin',\n FRA: 'fra',\n FRK: 'frk',\n FRM: 'frm',\n GLE: 'gle',\n GLG: 'glg',\n GRC: 'grc',\n GUJ: 'guj',\n HAT: 'hat',\n HEB: 'heb',\n HIN: 'hin',\n HRV: 'hrv',\n HUN: 'hun',\n IKU: 'iku',\n IND: 'ind',\n ISL: 'isl',\n ITA: 'ita',\n ITA_OLD: 'ita_old',\n JAV: 'jav',\n JPN: 'jpn',\n KAN: 'kan',\n KAT: 'kat',\n KAT_OLD: 'kat_old',\n KAZ: 'kaz',\n KHM: 'khm',\n KIR: 'kir',\n KOR: 'kor',\n KUR: 'kur',\n LAO: 'lao',\n LAT: 'lat',\n LAV: 'lav',\n LIT: 'lit',\n MAL: 'mal',\n MAR: 'mar',\n MKD: 'mkd',\n MLT: 'mlt',\n MSA: 'msa',\n MYA: 'mya',\n NEP: 'nep',\n NLD: 'nld',\n NOR: 'nor',\n ORI: 'ori',\n PAN: 'pan',\n POL: 'pol',\n POR: 'por',\n PUS: 'pus',\n RON: 'ron',\n RUS: 'rus',\n SAN: 'san',\n SIN: 'sin',\n SLK: 'slk',\n SLV: 'slv',\n SPA: 'spa',\n SPA_OLD: 'spa_old',\n SQI: 'sqi',\n SRP: 'srp',\n SRP_LATN: 'srp_latn',\n SWA: 'swa',\n SWE: 'swe',\n SYR: 'syr',\n TAM: 'tam',\n TEL: 'tel',\n TGK: 'tgk',\n TGL: 'tgl',\n THA: 'tha',\n TIR: 'tir',\n TUR: 'tur',\n UIG: 'uig',\n UKR: 'ukr',\n URD: 'urd',\n UZB: 'uzb',\n UZB_CYRL: 'uzb_cyrl',\n VIE: 'vie',\n YID: 'yid',\n};\n","/*\n * PSM = Page Segmentation Mode\n */\nmodule.exports = {\n OSD_ONLY: '0',\n AUTO_OSD: '1',\n AUTO_ONLY: '2',\n AUTO: '3',\n SINGLE_COLUMN: '4',\n SINGLE_BLOCK_VERT_TEXT: '5',\n SINGLE_BLOCK: '6',\n SINGLE_LINE: '7',\n SINGLE_WORD: '8',\n CIRCLE_WORD: '9',\n SINGLE_CHAR: '10',\n SPARSE_TEXT: '11',\n SPARSE_TEXT_OSD: '12',\n RAW_LINE: '13',\n};\n","/**\n *\n * Entry point for tesseract.js, should be the entry when bundling.\n *\n * @fileoverview entry point for tesseract.js\n * @author Kevin Kwok <antimatter15@gmail.com>\n * @author Guillermo Webster <gui@mit.edu>\n * @author Jerome Wu <jeromewus@gmail.com>\n */\nrequire('regenerator-runtime/runtime');\nconst createScheduler = require('./createScheduler');\nconst createWorker = require('./createWorker');\nconst Tesseract = require('./Tesseract');\nconst languages = require('./constants/languages');\nconst OEM = require('./constants/OEM');\nconst PSM = require('./constants/PSM');\nconst { setLogging } = require('./utils/log');\n\nmodule.exports = {\n languages,\n OEM,\n PSM,\n createScheduler,\n createWorker,\n setLogging,\n ...Tesseract,\n};\n",null,null,null],"names":["this","undefined","require$$0","require$$1","require$$2","require","lib","URLImpl_1","URL","URL$1","require$$3","require$$4","require$$5","require$$6","require$$7","createWorker"],"mappings":"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MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;CAC1E,MAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;IACzE;CACD,EAAA,IAAI,UAAU,GAAG;CACjB,MAAI,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;CACpD,MAAI,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE;CAC5C,MAAI,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;CAC1C,MAAI,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;CAClD,MAAI,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;CAClF,MAAI,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;CACxE,MAAI,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;CAC9E,MAAI,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;IAC7E;GACD,SAAS,wBAAwB,CAAC,OAAO,EAAE;OACvC,IAAI,SAAS,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,aAAa;CAClD,MAAI,IAAI,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC;CACxE,MAAI,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;CACvC,MAAI,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;CACnD,MAAI,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;CACnD;OACI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;CACjF,UAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;WACd,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;CACrF,cAAY,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;CAC1B,cAAY,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;CAC3G,kBAAgB,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;CAC1D;CACA;CACA;CACA,MAAI,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;CACpD,MAAI,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;CACpD,MAAI,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC,EAAE;CACnC,UAAQ,MAAM,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;CACxD,UAAQ,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;CACxD;CACA,MAAI,OAAO,MAAM;CACjB;CACA,EAAA,SAAS,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;OAChD,IAAI,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC;CAClD,MAAI,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM;CACjC,MAAI,IAAI,mBAAmB,GAAG,wBAAwB,CAAC,OAAO,CAAC;OAC3D,IAAI,SAAS,GAAG,EAAE;OAClB,IAAI,WAAW,GAAG,CAAC;OACnB,IAAI,QAAQ,GAAG,CAAC;CACpB;OACI,IAAI,SAAS,GAAG,IAAI;CACxB,MAAI,KAAK,IAAI,WAAW,GAAG,SAAS,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE;CAC7E,UAAQ,IAAI,WAAW,KAAK,CAAC,EAAE;CAC/B,cAAY,WAAW,EAAE;CACzB;CACA,UAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;eAChC,IAAI,CAAC,GAAG,SAAS,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;CACrD,cAAY,KAAK,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,EAAE,YAAY,EAAE,EAAE;CACzE,kBAAgB,IAAI,CAAC,GAAG,WAAW,GAAG,YAAY;mBAClC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;CACpD,sBAAoB,QAAQ,EAAE;uBACV,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;CAC9C,sBAAoB,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;2BAC1B,GAAG,GAAG,CAAC,GAAG;CAClC;CACA,sBAAoB,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC;CAC3D,sBAAoB,IAAI,QAAQ,KAAK,CAAC,EAAE;CACxC,0BAAwB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;2BAC3B,QAAQ,GAAG,CAAC;2BACZ,WAAW,GAAG,CAAC;CACvC;CACA;CACA;CACA;WACQ,SAAS,GAAG,CAAC,SAAS;CAC9B;CACA,MAAI,OAAO,SAAS;CACpB;GACA,SAAS,WAAW,CAAC,MAAM,EAAE;CAC7B,MAAI,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM;CACjC,MAAI,IAAI,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,CAAC,CAAC;CAC7D,MAAI,IAAI,kBAAkB,IAAI,CAAC,EAAE;WACzB,OAAO,SAAS,CAAC,QAAQ,CAAC,kBAAkB,GAAG,CAAC,CAAC;CACzD;OACI,IAAI,mBAAmB,GAAG,CAAC;CAC/B,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;CACjC,UAAQ,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;CAC9D,cAAY,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,mBAAmB,CAAC;CAChF;CACA;OACI,IAAI,qBAAqB,GAAG,CAAC;CACjC,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;CACjC,UAAQ,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;CAC9D,cAAY,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,qBAAqB,CAAC;CACpF;CACA;OACI,IAAI,cAAc,GAAG,QAAQ;CACjC,MAAI,IAAI,WAAW;OACf,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,QAAQ,EAAE,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;CACpF,UAAQ,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC;CACpC,UAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,mBAAmB,IAAI,OAAO,CAAC,QAAQ,KAAK,qBAAqB,EAAE;CACpG,cAAY,OAAO,OAAO;CAC1B;WACQ,IAAI,UAAU,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,CAAC,QAAQ,CAAC;CAChF,UAAQ,IAAI,UAAU,GAAG,cAAc,EAAE;eAC7B,WAAW,GAAG,OAAO;eACrB,cAAc,GAAG,UAAU;CACvC;WACQ,UAAU,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,OAAO,CAAC,QAAQ,CAAC;CAC9E,UAAQ,IAAI,UAAU,GAAG,cAAc,EAAE;eAC7B,WAAW,GAAG,OAAO;eACrB,cAAc,GAAG,UAAU;CACvC;CACA;CACA;CACA;CACA,MAAI,IAAI,cAAc,IAAI,CAAC,EAAE;CAC7B,UAAQ,OAAO,WAAW;CAC1B;CACA;GACA,SAAS,qBAAqB,CAAC,MAAM,EAAE;OACnC,IAAI,qBAAqB,GAAG,CAAC;CACjC,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;CACjC,UAAQ,IAAI,CAAC,KAAK,CAAC,EAAE;CACrB,cAAY,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,qBAAqB,CAAC;CACpF;CACA;CACA,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;CACjC,UAAQ,IAAI,CAAC,KAAK,CAAC,EAAE;CACrB,cAAY,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,qBAAqB,CAAC;CACpF;CACA;CACA,MAAI,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM;OAC7B,IAAI,iCAAiC,GAAG,CAAC;CAC7C,MAAI,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;CACzD,UAAQ,iCAAiC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,iCAAiC,CAAC;CACxG;CACA,MAAI,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;CACpD,UAAQ,iCAAiC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,iCAAiC,CAAC;CACxG;OACI,IAAI,cAAc,GAAG,QAAQ;OAC7B,IAAI,cAAc,GAAG,IAAI;CAC7B,MAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,mBAAmB,GAAG,iBAAiB,EAAE,EAAE,GAAG,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;CACrG,UAAQ,IAAI,EAAE,GAAG,mBAAmB,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU;WAC5E,IAAI,IAAI,KAAK,qBAAqB,IAAI,IAAI,KAAK,iCAAiC,EAAE;CAC1F,cAAY,OAAO,UAAU;CAC7B;WACQ,IAAI,UAAU,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,IAAI,CAAC;CACtE,UAAQ,IAAI,UAAU,GAAG,cAAc,EAAE;eAC7B,cAAc,GAAG,UAAU;eAC3B,cAAc,GAAG,UAAU;CACvC;CACA,UAAQ,IAAI,qBAAqB,KAAK,iCAAiC,EAAE;CACzE,cAAY,UAAU,GAAG,gBAAgB,CAAC,iCAAiC,EAAE,IAAI,CAAC;CAClF,cAAY,IAAI,UAAU,GAAG,cAAc,EAAE;mBAC7B,cAAc,GAAG,UAAU;mBAC3B,cAAc,GAAG,UAAU;CAC3C;CACA;CACA;CACA;CACA,MAAI,IAAI,cAAc,IAAI,CAAC,EAAE;CAC7B,UAAQ,OAAO,cAAc;CAC7B;CACA,MAAI,OAAO,IAAI;CACf;CACA,EAAA,SAAS,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;OAChD,IAAI,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC;OACnD,IAAI,UAAU,GAAG,EAAE;OACnB,IAAI,cAAc,GAAG,CAAC;OACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;CAC7C,UAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;CAClD,cAAY,UAAU,CAAC,IAAI,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,qBAAqB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;eACjF,cAAc,IAAI,KAAK,CAAC,qBAAqB,GAAG,MAAM,CAAC,mBAAmB;CACtF;CACA,OAAK,CAAC;CACN;CACA;CACA;CACA,MAAI,IAAI,SAAS,CAAC,MAAM,GAAG,cAAc,EAAE;CAC3C,UAAQ,OAAO,IAAI;CACnB;OACI,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC;OAC9C,IAAI,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB;CACjE;CACA,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;CAC7C,UAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,UAAU,EAAE,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;CACpF,cAAY,IAAI,SAAS,GAAG,YAAY,CAAC,EAAE,CAAC;eAChC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;CACvD;CACA;CACA;OACI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;WAC5B,IAAI,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;WAClD,IAAI,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;CAC1D,UAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;CAClD,cAAY,UAAU,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;CAC7E;CACA;CACA;CACA,MAAI,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;CACjC,UAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,UAAU,EAAE,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;CACpF,cAAY,IAAI,SAAS,GAAG,YAAY,CAAC,EAAE,CAAC;eAChC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;CACvD;CACA;CACA,MAAI,OAAO,UAAU;CACrB;GACA,SAAS,YAAY,CAAC,MAAM,EAAE;CAC9B,MAAI,IAAI,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;OACjC,IAAI,CAAC,OAAO,EAAE;CAClB,UAAQ,OAAO,IAAI;CACnB;CACA,MAAI,IAAI,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC;OAC9C,IAAI,CAAC,UAAU,EAAE;CACrB,UAAQ,OAAO,IAAI;CACnB;OACI,IAAI,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC;CAC9D,MAAI,IAAI,UAAU,GAAG,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,oBAAoB,CAAC;OACnF,IAAI,CAAC,UAAU,EAAE;CACrB,UAAQ,OAAO,IAAI;CACnB;CACA;OACI,IAAI,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC;CAC7F,MAAI,IAAI,WAAW,GAAG,IAAI,iBAAiB,CAAC,UAAU,CAAC;OACnD,IAAI,WAAW,GAAG,CAAC;CACvB,MAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,UAAU,EAAE,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;CAChF,UAAQ,IAAI,SAAS,GAAG,YAAY,CAAC,EAAE,CAAC;WAChC,IAAI,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;WACvH,IAAI,CAAC,cAAc,EAAE;CAC7B,cAAY,OAAO,IAAI;CACvB;CACA,UAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE;eACjD,WAAW,CAAC,WAAW,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;CAC1D;CACA;CACA,MAAI,IAAI;WACA,OAAO,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC;CACtE;OACI,OAAO,EAAE,EAAE;CACf,UAAQ,OAAO,IAAI;CACnB;CACA;GACA,SAAS,MAAM,CAAC,MAAM,EAAE;CACxB,MAAI,IAAI,MAAM,IAAI,IAAI,EAAE;CACxB,UAAQ,OAAO,IAAI;CACnB;CACA,MAAI,IAAI,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;OACjC,IAAI,MAAM,EAAE;CAChB,UAAQ,OAAO,MAAM;CACrB;CACA;CACA,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;CAC3C,UAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACpD,cAAY,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;CACvD,kBAAgB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACnD,kBAAgB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACnD;CACA;CACA;CACA,MAAI,OAAO,YAAY,CAAC,MAAM,CAAC;CAC/B;GACA,OAAO,CAAC,MAAM,GAAG,MAAM;;;UAGhB;CACP;CACA,SAAO,SAAS,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE;;CAItD,EAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D;CACA,EAAA,IAAI,WAAW,GAAG,mBAAmB,CAAC,CAAC,CAAC;CACxC,EAAA,IAAI,eAAe,GAAG,mBAAmB,CAAC,CAAC,CAAC;CAC5C,EAAA,IAAI,IAAI;GACR,CAAC,UAAU,IAAI,EAAE;CACjB,MAAI,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS;CAC/B,MAAI,IAAI,CAAC,cAAc,CAAC,GAAG,cAAc;CACzC,MAAI,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM;CACzB,MAAI,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO;CAC3B,MAAI,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK;CACvB,GAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;CAC9C,EAAA,IAAI,QAAQ;GACZ,CAAC,UAAU,QAAQ,EAAE;OACjB,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY;OACnD,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS;OAC7C,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc;OACvD,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;OACvC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO;OACzC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;CACzC;CACA;CACA;CACA,GAAC,EAAE,QAAQ,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC;CAC/B,EAAA,SAAS,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE;OACjC,IAAI,KAAK,GAAG,EAAE;OACd,IAAI,IAAI,GAAG,EAAE;CACjB,MAAI,IAAI,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;OAC3C,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CACpD;CACA,MAAI,OAAO,MAAM,IAAI,CAAC,EAAE;WAChB,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;CACrC,UAAQ,IAAI,GAAG,IAAI,IAAI,EAAE;CACzB,cAAY,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC;CAC9D;WACQ,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;CACrC,UAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE;CACzC,UAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE;CACxB,UAAQ,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;CAC1C,UAAQ,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;WAClD,MAAM,IAAI,CAAC;CACnB;CACA;CACA,MAAI,IAAI,MAAM,KAAK,CAAC,EAAE;WACd,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CACpC,UAAQ,IAAI,GAAG,IAAI,GAAG,EAAE;CACxB,cAAY,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;CAC7D;WACQ,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;CACpC,UAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE;WAChB,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;WAC1B,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC3C;CACA,WAAS,IAAI,MAAM,KAAK,CAAC,EAAE;WACnB,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CACpC,UAAQ,IAAI,GAAG,IAAI,EAAE,EAAE;CACvB,cAAY,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC;CAC5D;CACA,UAAQ,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;CAC5B,UAAQ,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE;CAC9B;OACI,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;CACvC;CACA,EAAA,IAAI,0BAA0B,GAAG;CACjC,MAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CAC/C,MAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CAC/C,MAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CAC/C,MAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CAC/C,MAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC9C;CACD,EAAA,SAAS,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE;OACtC,IAAI,KAAK,GAAG,EAAE;OACd,IAAI,IAAI,GAAG,EAAE;CACjB,MAAI,IAAI,kBAAkB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;OAC1C,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CACpD,MAAI,OAAO,MAAM,IAAI,CAAC,EAAE;WAChB,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;WAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;CAClC,UAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;WACd,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;WACpG,IAAI,IAAI,0BAA0B,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC;WACrE,MAAM,IAAI,CAAC;CACnB;CACA,MAAI,IAAI,MAAM,KAAK,CAAC,EAAE;WACd,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CAClC,UAAQ,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CAC/D,UAAQ,IAAI,IAAI,0BAA0B,CAAC,CAAC,CAAC;CAC7C;OACI,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;CACvC;CACA,EAAA,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;OAC9B,IAAI,KAAK,GAAG,EAAE;OACd,IAAI,IAAI,GAAG,EAAE;CACjB,MAAI,IAAI,kBAAkB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;OAC1C,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CACpD,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;WAC7B,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CAClC,UAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;CACrB;CACA,MAAI,IAAI;CACR,UAAQ,IAAI,IAAI,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CACxH;OACI,OAAO,EAAE,EAAE;CACf;CACA;OACI,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;CACvC;CACA,EAAA,SAAS,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE;OAC/B,IAAI,KAAK,GAAG,EAAE;OACd,IAAI,IAAI,GAAG,EAAE;CACjB,MAAI,IAAI,kBAAkB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;OAC1C,IAAI,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CACpD,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;WAC7B,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;CACnC,UAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;CACxD,UAAQ,IAAI,CAAC,GAAG,MAAM,EAAE;eACZ,CAAC,IAAI,MAAM;CACvB;gBACa;eACD,CAAC,IAAI,MAAM;CACvB;WACQ,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;CACpC,UAAQ,IAAI,IAAI,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CACrE;OACI,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;CACvC;CACA,EAAA,SAAS,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;CAC/B,MAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;OAClB,IAAI,MAAM,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;CAChD;CACA,MAAI,IAAI,IAAI,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC;OACnD,IAAI,MAAM,GAAG;WACT,IAAI,EAAE,EAAE;WACR,KAAK,EAAE,EAAE;WACT,MAAM,EAAE,EAAE;WACV,OAAO,EAAE,OAAO;QACnB;CACL,MAAI,OAAO,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;WAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CACrC,UAAQ,IAAI,IAAI,KAAK,QAAQ,CAAC,UAAU,EAAE;CAC1C,cAAY,OAAO,MAAM;CACzB;CACA,eAAa,IAAI,IAAI,KAAK,QAAQ,CAAC,GAAG,EAAE;eAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;CAC1C,kBAAgB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;CACnC,sBAAoB,IAAI,EAAE,IAAI,CAAC,GAAG;CAClC,sBAAoB,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CACxD,mBAAiB,CAAC;CAClB;oBACiB,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;CAC/C,kBAAgB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;CACnC,sBAAoB,IAAI,EAAE,IAAI,CAAC,GAAG;CAClC,sBAAoB,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;CACzD,mBAAiB,CAAC;CAClB;oBACiB,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;CAC/C,kBAAgB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;CACnC,sBAAoB,IAAI,EAAE,IAAI,CAAC,GAAG;CAClC,sBAAoB,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;CACzD,mBAAiB,CAAC;CAClB;oBACiB;CACjB;CACA,kBAAgB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;CACnC,sBAAoB,IAAI,EAAE,IAAI,CAAC,GAAG;uBACd,gBAAgB,EAAE,EAAE;CACxC,mBAAiB,CAAC;CAClB;CACA;CACA,eAAa,IAAI,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE;eAChC,IAAI,aAAa,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;CAC3D,cAAY,MAAM,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI;CAC7C,cAAY,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC;CACnE,cAAY,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;CAC/B,kBAAgB,IAAI,EAAE,IAAI,CAAC,OAAO;CAClC,kBAAgB,IAAI,EAAE,aAAa,CAAC,IAAI;CACxC,eAAa,CAAC;CACd;CACA,eAAa,IAAI,IAAI,KAAK,QAAQ,CAAC,YAAY,EAAE;eACrC,IAAI,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC;CACrE,cAAY,MAAM,CAAC,IAAI,IAAI,kBAAkB,CAAC,IAAI;CAClD,cAAY,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC;CACxE,cAAY,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;CAC/B,kBAAgB,IAAI,EAAE,IAAI,CAAC,YAAY;CACvC,kBAAgB,IAAI,EAAE,kBAAkB,CAAC,IAAI;CAC7C,eAAa,CAAC;CACd;CACA,eAAa,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE;eAC7B,IAAI,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;CACrD,cAAY,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI;CAC1C,cAAY,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC;CAChE,cAAY,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;CAC/B,kBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI;CAC/B,kBAAgB,KAAK,EAAE,UAAU,CAAC,KAAK;CACvC,kBAAgB,IAAI,EAAE,UAAU,CAAC,IAAI;CACrC,eAAa,CAAC;CACd;CACA,eAAa,IAAI,IAAI,KAAK,QAAQ,CAAC,KAAK,EAAE;eAC9B,IAAI,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;CACvD,cAAY,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI;CAC3C,cAAY,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC;CACjE,cAAY,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;CAC/B,kBAAgB,IAAI,EAAE,IAAI,CAAC,KAAK;CAChC,kBAAgB,KAAK,EAAE,WAAW,CAAC,KAAK;CACxC,kBAAgB,IAAI,EAAE,WAAW,CAAC,IAAI;CACtC,eAAa,CAAC;CACd;CACA;CACA;CACA,MAAI,IAAI,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE;CAC/E,UAAQ,OAAO,MAAM;CACrB;CACA;GACA,OAAO,CAAC,MAAM,GAAG,MAAM;;;UAGhB;CACP;CACA,SAAO,SAAS,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE;;CAItD;CACA,EAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;GAC7D,IAAI,SAAS,kBAAkB,YAAY;CAC3C,MAAI,SAAS,SAAS,CAAC,KAAK,EAAE;CAC9B,UAAQ,IAAI,CAAC,UAAU,GAAG,CAAC;CAC3B,UAAQ,IAAI,CAAC,SAAS,GAAG,CAAC;CAC1B,UAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;CAC1B;OACI,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,OAAO,EAAE;CACtD,UAAQ,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE;CACvE,cAAY,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC;CAC1E;WACQ,IAAI,MAAM,GAAG,CAAC;CACtB;CACA,UAAQ,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;CAChC,cAAY,IAAI,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS;eACjC,IAAI,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ;CAChE,cAAY,IAAI,aAAa,GAAG,QAAQ,GAAG,MAAM;eACrC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,aAAa;CAC9D,cAAY,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,aAAa;eAC9D,OAAO,IAAI,MAAM;CAC7B,cAAY,IAAI,CAAC,SAAS,IAAI,MAAM;CACpC,cAAY,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;CACtC,kBAAgB,IAAI,CAAC,SAAS,GAAG,CAAC;mBAClB,IAAI,CAAC,UAAU,EAAE;CACjC;CACA;CACA;CACA,UAAQ,IAAI,OAAO,GAAG,CAAC,EAAE;CACzB,cAAY,OAAO,OAAO,IAAI,CAAC,EAAE;CACjC,kBAAgB,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;mBAC7D,IAAI,CAAC,UAAU,EAAE;mBACjB,OAAO,IAAI,CAAC;CAC5B;CACA;CACA,cAAY,IAAI,OAAO,GAAG,CAAC,EAAE;CAC7B,kBAAgB,IAAI,aAAa,GAAG,CAAC,GAAG,OAAO;mBAC/B,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,aAAa,KAAK,aAAa;mBACnD,MAAM,GAAG,CAAC,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,aAAa,CAAC;CACtG,kBAAgB,IAAI,CAAC,SAAS,IAAI,OAAO;CACzC;CACA;CACA,UAAQ,OAAO,MAAM;QAChB;CACL,MAAI,SAAS,CAAC,SAAS,CAAC,SAAS,GAAG,YAAY;CAChD,UAAQ,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS;QACpE;CACL,MAAI,OAAO,SAAS;CACpB,GAAC,EAAE,CAAC;GACJ,OAAO,CAAC,SAAS,GAAG,SAAS;;;UAGtB;CACP;CACA,SAAO,SAAS,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE;;CAItD,EAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;GAC7D,OAAO,CAAC,aAAa,GAAG;OACpB,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,IAAI,EAAE,MAAM;OACZ,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;OACd,MAAM,EAAE,MAAM;IACjB;;;UAGM;CACP;CACA,SAAO,SAAS,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE;;CAItD,EAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,EAAA,IAAI,WAAW,GAAG,mBAAmB,CAAC,CAAC,CAAC;CACxC,EAAA,IAAI,eAAe,GAAG,mBAAmB,CAAC,CAAC,CAAC;GAC5C,SAAS,qBAAqB,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;CAC/C,MAAI,IAAI,EAAE;CACV;OACI,IAAI,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;WACzB,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CACzC;OACI,IAAI,KAAK,GAAG,CAAC;OACb,IAAI,CAAC,GAAG,CAAC;CACb,MAAI,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI;CAC1B,MAAI,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG;CACrB;OACI,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;WACxB,IAAI,SAAS,GAAG,KAAK;WACrB,IAAI,SAAS,GAAG,KAAK;WACrB,KAAK,GAAG,CAAC;WACT,KAAK,GAAG,CAAC;CACjB;CACA,UAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;CAC5B;CACA,cAAY,OAAO,IAAI;CACvB;WACQ,CAAC,GAAG,SAAS;CACrB,UAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI;WAClB,IAAI,sBAAsB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;WACjE,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC;CAC9D,UAAQ,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;eAChD,IAAI,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE;CACxD,cAAY,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC;CAChF,cAAY,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;CACvE,cAAY,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;CAC5E;CACA,UAAQ,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC;WAClD,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;CAC1C,cAAY,OAAO,IAAI;CACvB;CACA;OACI,IAAI,gBAAgB,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;CAC9C,MAAI,IAAI,gBAAgB,KAAK,CAAC,EAAE;CAChC,UAAQ,OAAO,IAAI;CACnB;OACI,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;CACjD,MAAI,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CACrD;CACA,EAAA,SAAS,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE;CACjD;CACA,MAAI,IAAI,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE;CACzC,MAAI,IAAI,SAAS,KAAK,CAAC,EAAE;WACjB,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;CAC/C;CACA,MAAI,IAAI,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC;OACjC,IAAI,UAAU,GAAG,CAAC;CACtB,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;WAC3D,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;eAClC,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;CACjD,cAAY,UAAU,EAAE;CACxB;CACA;CACA,MAAI,IAAI,UAAU,KAAK,SAAS,EAAE;CAClC,UAAQ,OAAO,IAAI;CACnB;CACA,MAAI,OAAO,MAAM;CACjB;CACA,EAAA,SAAS,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE;CACpE;CACA,MAAI,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM;CACjC,MAAI,IAAI,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC;CAC7B,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;WACxB,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;WAChD,IAAI,WAAW,GAAG,CAAC;CAC3B,UAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;CACpC,cAAY,IAAI,CAAC,KAAK,CAAC,EAAE;mBACT,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;CACvI;CACA;WACQ,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;CACpG,UAAQ,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,EAAE;CACvC,cAAY,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;CAC5D;CACA;CACA,MAAI,OAAO,MAAM;CACjB;CACA,EAAA,SAAS,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;OACzB,IAAI,WAAW,GAAG,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC;CACzD,MAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;CAC1B,MAAI,IAAI,KAAK,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;OACpD,IAAI,IAAI,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC;CAC9D,MAAI,IAAI,oBAAoB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC;OACtD,IAAI,KAAK,GAAG,KAAK;CACrB,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;CACnC,UAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;WACpE,oBAAoB,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU;CAC9E,UAAQ,IAAI,UAAU,KAAK,CAAC,EAAE;eAClB,KAAK,GAAG,IAAI;CACxB;CACA;OACI,IAAI,CAAC,KAAK,EAAE;CAChB,UAAQ,OAAO,WAAW;CAC1B;OACI,IAAI,QAAQ,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC;CAC3E,MAAI,IAAI,UAAU,GAAG,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC;CAC/F,MAAI,IAAI,UAAU,KAAK,IAAI,EAAE;CAC7B,UAAQ,OAAO,IAAI;CACnB;OACI,IAAI,cAAc,GAAG,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACjE,MAAI,IAAI,cAAc,IAAI,IAAI,EAAE;CAChC,UAAQ,OAAO,IAAI;CACnB;CACA,MAAI,IAAI,eAAe,GAAG,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC;CACnF,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACpD,UAAQ,IAAI,QAAQ,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;CAC5E,UAAQ,IAAI,QAAQ,GAAG,CAAC,EAAE;CAC1B,cAAY,OAAO,IAAI;CACvB;CACA,UAAQ,WAAW,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;CACtG;CACA,MAAI,OAAO,WAAW;CACtB;GACA,OAAO,CAAC,MAAM,GAAG,MAAM;;;UAGhB;CACP;CACA,SAAO,SAAS,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE;;CAItD,EAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;GAC7D,OAAO,CAAC,QAAQ,GAAG;OACf;WACI,QAAQ,EAAE,IAAI;WACd,aAAa,EAAE,CAAC;WAChB,uBAAuB,EAAE,EAAE;CACnC,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,CAAC;CACtC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC;gBACzD;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,IAAI;WACd,aAAa,EAAE,CAAC;CACxB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;CACxC,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,IAAI;WACd,aAAa,EAAE,CAAC;CACxB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;CACxC,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,IAAI;WACd,aAAa,EAAE,CAAC;CACxB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;CACxC,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC;gBACzD;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,IAAI;WACd,aAAa,EAAE,CAAC;CACxB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;CACxC,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE,CAAC;gBAC3D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,IAAI;WACd,aAAa,EAAE,CAAC;CACxB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;CACxC,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,CAAC;WAChB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;CAC5C,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,CAAC;WAChB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;CAC5C,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,CAAC;WAChB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;CAC5C,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE,CAAC;gBAC3D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;WACjB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;CAC5C,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;WACjB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;CAC5C,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC1D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;WACjB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;CAC5C,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;WACjB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;CAC5C,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE,CAAC;gBAC3D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;WACjB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CAChD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;WACjB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CAChD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;WACjB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CAChD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;WACjB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CAChD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;WACjB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CAChD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;WACjB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CAChD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;WACjB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CAChD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CACpD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC3D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CACpD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC3D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC;gBAC3D;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;CACrD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;CACrD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;CACrD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;CACrD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC7C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;CACrD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;CACzD,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAChD;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;CAC1D,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;CAC1D,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAChD;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;CAC1D,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC7C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;CAC1D,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE,CAAC;gBAC5D;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;CAC1D,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC7C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;CAC1D,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC7C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CAC/D,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC7C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CAC/D,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAChD;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC3C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CAC/D,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC7C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CAC/D,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAChD;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CAC/D,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC7C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC9C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;OACD;WACI,QAAQ,EAAE,OAAO;WACjB,aAAa,EAAE,EAAE;CACzB,UAAQ,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CAC/D,UAAQ,qBAAqB,EAAE;eACnB;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;uBAC7C,EAAE,SAAS,EAAE,CAAC,EAAE,qBAAqB,EAAE,GAAG,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;eACD;mBACI,mBAAmB,EAAE,EAAE;CACvC,kBAAgB,QAAQ,EAAE;uBACN,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;uBAC5C,EAAE,SAAS,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE;oBAC/C;gBACJ;YACJ;QACJ;IACJ;;;UAGM;CACP;CACA,SAAO,SAAS,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE;;CAItD,EAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC7D,EAAA,IAAI,WAAW,GAAG,mBAAmB,CAAC,CAAC,CAAC;GACxC,SAAS,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CAC/C,MAAI,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;CACvC,MAAI,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;OACnC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;CAChC,UAAQ,OAAO;eACH,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;eAChB,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;eAChB,GAAG,EAAE,CAAC;eACN,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;eAChB,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;eAChB,GAAG,EAAE,CAAC;CAClB,cAAY,GAAG,EAAE,EAAE,CAAC,CAAC;CACrB,cAAY,GAAG,EAAE,EAAE,CAAC,CAAC;eACT,GAAG,EAAE,CAAC;YACT;CACT;YACS;WACD,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;WACrB,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;WACrB,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;WACrB,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;WACrB,IAAI,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;CAC/C,UAAQ,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,WAAW;CACvD,UAAQ,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,WAAW;CACvD,UAAQ,OAAO;CACf,cAAY,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;CACzC,cAAY,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;eAC7B,GAAG,EAAE,GAAG;CACpB,cAAY,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;CACzC,cAAY,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;eAC7B,GAAG,EAAE,GAAG;CACpB,cAAY,GAAG,EAAE,EAAE,CAAC,CAAC;CACrB,cAAY,GAAG,EAAE,EAAE,CAAC,CAAC;eACT,GAAG,EAAE,CAAC;YACT;CACT;CACA;GACA,SAAS,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CAC/C;CACA,MAAI,IAAI,IAAI,GAAG,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CACpD,MAAI,OAAO;CACX,UAAQ,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;CACtD,UAAQ,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;CACtD,UAAQ,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;CACtD,UAAQ,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;CACtD,UAAQ,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;CACtD,UAAQ,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;CACtD,UAAQ,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;CACtD,UAAQ,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;CACtD,UAAQ,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;QACjD;CACL;CACA,EAAA,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;CACrB,MAAI,OAAO;WACH,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG;WAClD,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG;WAClD,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG;WAClD,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG;WAClD,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG;WAClD,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG;WAClD,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG;WAClD,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG;WAClD,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG;QACrD;CACL;CACA,EAAA,SAAS,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE;CAClC,MAAI,IAAI,IAAI,GAAG,qBAAqB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;OACpM,IAAI,IAAI,GAAG,qBAAqB,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,UAAU,CAAC;OACrH,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;CACrC,MAAI,IAAI,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;CAC1F,MAAI,IAAI,eAAe,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;CAC1C,UAAQ,IAAI,WAAW,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG;CAC/E,UAAQ,OAAO;CACf,cAAY,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,IAAI,WAAW;CACpF,cAAY,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,IAAI,WAAW;YAC3E;QACJ;CACL,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;CACjD,UAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;CACrD,cAAY,IAAI,MAAM,GAAG,CAAC,GAAG,GAAG;CAChC,cAAY,IAAI,MAAM,GAAG,CAAC,GAAG,GAAG;eACpB,IAAI,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;CAC7D,cAAY,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7F;CACA;CACA,MAAI,OAAO;WACH,MAAM,EAAE,MAAM;WACd,eAAe,EAAE,eAAe;QACnC;CACL;GACA,OAAO,CAAC,OAAO,GAAG,OAAO;;;UAGlB;CACP;CACA,SAAO,SAAS,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE;;CAItD,EAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;GAC7D,IAAI,4BAA4B,GAAG,CAAC;GACpC,IAAI,cAAc,GAAG,GAAG;GACxB,IAAI,cAAc,GAAG,GAAG;GACxB,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;GACzG,SAAS,GAAG,CAAC,MAAM,EAAE;CACrB,MAAI,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;CAC3D;CACA;CACA,EAAA,SAAS,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;CAC7D,MAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CACtB;OACI,IAAI,cAAc,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;OACjD,IAAI,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;OACnD,IAAI,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CACvD,MAAI,IAAI,UAAU;CAClB,MAAI,IAAI,OAAO;CACf,MAAI,IAAI,QAAQ;CAChB;OACI,IAAI,gBAAgB,IAAI,cAAc,IAAI,gBAAgB,IAAI,gBAAgB,EAAE;CACpF,UAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;CAClG;YACS,IAAI,gBAAgB,IAAI,gBAAgB,IAAI,gBAAgB,IAAI,cAAc,EAAE;CACzF,UAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;CAClG;YACS;CACT,UAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;CAClG;CACA;CACA;CACA;CACA,MAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;WACvH,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;CACzE;CACA,MAAI,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;CAC3E;CACA;GACA,SAAS,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;CACjE,MAAI,IAAI,UAAU,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;CACjF,UAAQ,GAAG,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;CACjE,UAAQ,GAAG,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;CACnE,UAAQ,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;CACtE,MAAI,IAAI,UAAU,GAAG,CAAC,EAAE;CACxB,UAAQ,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC;CAC9C;CACA,MAAI,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC;CAC3E,MAAI,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC;CAC9E,MAAI,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC;OAClE,QAAQ,SAAS,GAAG,CAAC;CACzB,UAAQ,KAAK,CAAC;CACd,cAAY,SAAS,EAAE;eACX;CACZ,UAAQ,KAAK,CAAC;CACd,cAAY,SAAS,EAAE;eACX;CACZ;OACI,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE;CAC3D;CACA;CACA;CACA;GACA,SAAS,8BAA8B,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;OACjE,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;OACzE,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;CACvE,MAAI,IAAI,KAAK;CACb,MAAI,IAAI,KAAK;CACb,MAAI,IAAI,GAAG;CACX,MAAI,IAAI,GAAG;OACP,IAAI,KAAK,EAAE;WACP,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;WAC5B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;WAC5B,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;WACvB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;CAC/B;YACS;WACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;WAC5B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;WAC5B,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;WACvB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;CAC/B;OACI,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC;OAC9B,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC;OAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;OAC/B,IAAI,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE;OAChC,IAAI,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE;OAChC,IAAI,YAAY,GAAG,IAAI;CAC3B;CACA,MAAI,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,KAAK,GAAG,GAAG,KAAK,EAAE,CAAC,IAAI,KAAK,EAAE;CAClE;CACA;CACA;CACA,UAAQ,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC;CACjC,UAAQ,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC;WACzB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,YAAY,EAAE;eAC3C,YAAY,GAAG,CAAC,YAAY;CACxC,cAAY,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;eACzC,IAAI,YAAY,CAAC,MAAM,KAAK,MAAM,GAAG,CAAC,EAAE;mBACpC;CAChB;CACA;WACQ,KAAK,IAAI,EAAE;CACnB,UAAQ,IAAI,KAAK,GAAG,CAAC,EAAE;CACvB,cAAY,IAAI,CAAC,KAAK,GAAG,EAAE;mBACX;CAChB;eACY,CAAC,IAAI,KAAK;eACV,KAAK,IAAI,EAAE;CACvB;CACA;OACI,IAAI,SAAS,GAAG,EAAE;CACtB,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;CACrC,UAAQ,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;CACpD,cAAY,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1E;gBACa;CACb,cAAY,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;CAC7B;CACA;CACA,MAAI,OAAO,SAAS;CACpB;CACA;CACA;CACA;GACA,SAAS,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;CACzD,MAAI,IAAI,EAAE;OACN,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;OAC3B,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;CAC9B,MAAI,IAAI,UAAU,GAAG,8BAA8B,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;CAC/F,MAAI,IAAI,WAAW,GAAG,8BAA8B,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;CACtI,MAAI,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;CACnE,MAAI,OAAO,CAAC,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC;CAC9E;CACA;CACA;CACA,EAAA,SAAS,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE;OAC1C,IAAI,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;OAC7C,IAAI,KAAK,GAAG,CAAC;OACb,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE,CAAC,EAAE;CACvC,UAAQ,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,WAAW,GAAG,CAAC,CAAC;CACjE,OAAK,CAAC;OACF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE;CACrD;CACA;CACA;CACA;CACA,EAAA,SAAS,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;CAC7C,MAAI,IAAI;WACA,IAAI,aAAa,GAAG,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;WAC3F,IAAI,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;WACzF,IAAI,YAAY,GAAG;CAC3B,cAAY,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;CACjD,cAAY,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;YACxC;CACT,UAAQ,IAAI,qBAAqB,GAAG,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;WAC1F,IAAI,eAAe,GAAG;CAC9B,cAAY,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;CAC5D,cAAY,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;YACpD;CACT,UAAQ,IAAI,qBAAqB,GAAG,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;WAC7F,IAAI,SAAS,GAAG,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC;WACzD,IAAI,SAAS,GAAG,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC;WACvD,IAAI,aAAa,GAAG,kBAAkB,CAAC,qBAAqB,EAAE,MAAM,CAAC;WACrE,IAAI,WAAW,GAAG,kBAAkB,CAAC,qBAAqB,EAAE,MAAM,CAAC;CAC3E,UAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK;CACpE,cAAY,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK;CAC7C,cAAY,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK;CACrD,cAAY,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;WAC1C,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,IAAI,CAAC;CAC/H,UAAQ,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,OAAO,GAAG,CAAC,CAAC;eAC3D,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,OAAO,GAAG,CAAC,CAAC;eAC9C,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,WAAW,GAAG,OAAO,GAAG,CAAC,CAAC;CAC9D,cAAY,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,GAAG,OAAO,GAAG,CAAC,CAAC,IAAI,OAAO;WAC/D,OAAO,UAAU,GAAG,SAAS;CACrC;OACI,OAAO,EAAE,EAAE;CACf,UAAQ,OAAO,QAAQ;CACvB;CACA;CACA,EAAA,SAAS,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE;OACjC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/B,MAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;CAC/C,UAAQ,KAAK,EAAE;CACf;OACI,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,MAAI,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;CAChD,UAAQ,MAAM,EAAE;CAChB;OACI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC;OAC5B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9B,MAAI,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;CAC5C,UAAQ,IAAI,EAAE;CACd;OACI,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CACjC,MAAI,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;CAC/C,UAAQ,OAAO,EAAE;CACjB;OACI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,IAAI,CAAC;OAC5B,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;CACzB;GACA,SAAS,MAAM,CAAC,MAAM,EAAE;OACpB,IAAI,kBAAkB,GAAG,EAAE;OAC3B,IAAI,wBAAwB,GAAG,EAAE;OACjC,IAAI,qBAAqB,GAAG,EAAE;OAC9B,IAAI,2BAA2B,GAAG,EAAE;CACxC,MAAI,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;WACvB,IAAI,QAAQ,GAAG,CAAC;WAChB,IAAI,OAAO,GAAG,KAAK;CAC3B,UAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACnC,UAAQ,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;eACvB,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;CACpC,cAAY,IAAI,CAAC,KAAK,OAAO,EAAE;CAC/B,kBAAgB,QAAQ,EAAE;CAC1B;oBACiB;mBACD,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;mBAC1D,QAAQ,GAAG,CAAC;mBACZ,OAAO,GAAG,CAAC;CAC3B;mBACgB,IAAI,6BAA6B,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;CAClE,kBAAgB,IAAI,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,6BAA6B,CAAC,GAAG,6BAA6B;CAC3H,sBAAoB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,6BAA6B,CAAC,GAAG,6BAA6B;CACtG,sBAAoB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,6BAA6B,CAAC,GAAG,CAAC,GAAG,6BAA6B;CAC9G,sBAAoB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,6BAA6B,CAAC,GAAG,6BAA6B;CACtG,sBAAoB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,6BAA6B,CAAC,GAAG,6BAA6B;uBAClF,CAAC,CAAC,CAAC;CACvB;CACA,kBAAgB,IAAI,gCAAgC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;CAC/E,kBAAgB,IAAI,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,gCAAgC,CAAC,GAAG,gCAAgC;CACpI,sBAAoB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,gCAAgC,CAAC,GAAG,gCAAgC;CAC5G,sBAAoB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,gCAAgC,CAAC,GAAG,gCAAgC;CAC5G,sBAAoB,CAAC,CAAC;mBACN,IAAI,kBAAkB,EAAE;CACxC;CACA,sBAAoB,IAAI,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;uBACpC,IAAI,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;CACpD,sBAAoB,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE;CACvE;CACA;uBACoB,IAAI,aAAa,GAAG,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;CACrF,0BAAwB,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI;CACxF,+BAA6B,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;CACpF,+BAA6B,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,cAAc;mCACvH,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,CAAC;CACjG,uBAAqB,CAAC;CACtB,sBAAoB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;CAClD,0BAAwB,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI;CACtD;4BACyB;CACzB,0BAAwB,wBAAwB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;CAClF;CACA;mBACgB,IAAI,qBAAqB,EAAE;CAC3C;uBACoB,IAAI,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;uBACzB,IAAI,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;CACpD,sBAAoB,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;CACvE;CACA;uBACoB,IAAI,aAAa,GAAG,2BAA2B,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;CACxF,0BAAwB,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI;CACxF,+BAA6B,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;CACpF,+BAA6B,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,cAAc;mCACvH,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,CAAC;CACjG,uBAAqB,CAAC;CACtB,sBAAoB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;CAClD,0BAAwB,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI;CACtD;4BACyB;CACzB,0BAAwB,2BAA2B,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;CACrF;CACA;CACA;YACS;CACT,UAAQ,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;eACrC,OAAO,CAAC,CAAC,CAAC;CACtB;CACA,UAAQ,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;WAC1J,wBAAwB,GAAG,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;WACrG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,2BAA2B,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;WACtI,2BAA2B,GAAG,2BAA2B,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9G;CACL,MAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;WACrC,OAAO,CAAC,CAAC,CAAC;CAClB;CACA,MAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;OACtI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;OACpF,IAAI,mBAAmB,GAAG;YACrB,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CACnE,WAAS,GAAG,CAAC,UAAU,CAAC,EAAE;CAC1B,UAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;CACjF,UAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;WACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;eAC3C;CACZ;CACA,UAAQ,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;WACpG,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM;CAChD,UAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;CACjG,UAAQ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;QAClD;CACL,WAAS,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;CAC7C,WAAS,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;CAC3D;YACS,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE;CACjD,UAAQ,IAAI,CAAC,GAAG,4BAA4B,EAAE;CAC9C,cAAY,OAAO,IAAI;CACvB;WACQ,IAAI,WAAW,GAAG;CAC1B,eAAa,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;gBAC5C,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE;CAChJ,eAAa,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;CAChE,UAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;CACpC,cAAY,OAAO,IAAI;CACvB;CACA,UAAQ,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK;WACrE,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;QAC3E;CACL,WAAS,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;CAC7C,WAAS,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;CAC5D,MAAI,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;CAC1C,UAAQ,OAAO,IAAI;CACnB;OACI,IAAI,EAAE,GAAG,qBAAqB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU;CAClN,MAAI,IAAI,SAAS,GAAG,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;OAClG,IAAI,MAAM,GAAG,EAAE;OACf,IAAI,SAAS,EAAE;WACX,MAAM,CAAC,IAAI,CAAC;CACpB,cAAY,gBAAgB,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE;CAClG,cAAY,UAAU,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE;CAC5D,cAAY,SAAS,EAAE,SAAS,CAAC,SAAS;CAC1C,cAAY,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE;CACnD,cAAY,QAAQ,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE;CACtD,WAAS,CAAC;CACV;CACA;CACA;CACA;CACA;CACA;OACI,IAAI,WAAW,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC;OACpD,IAAI,UAAU,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC;OAClD,IAAI,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC;CAC5D,MAAI,IAAI,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC;OACnH,IAAI,iBAAiB,EAAE;WACnB,MAAM,CAAC,IAAI,CAAC;CACpB,cAAY,gBAAgB,EAAE,EAAE,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,EAAE;CAClH,cAAY,UAAU,EAAE,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE;CAClE,cAAY,OAAO,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE;CACzD,cAAY,QAAQ,EAAE,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE;CAC5D,cAAY,SAAS,EAAE,iBAAiB,CAAC,SAAS;CAClD,WAAS,CAAC;CACV;CACA,MAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;CAC7B,UAAQ,OAAO,IAAI;CACnB;CACA,MAAI,OAAO,MAAM;CACjB;GACA,OAAO,CAAC,MAAM,GAAG,MAAM;GACvB,SAAS,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE;CAC5F,MAAI,IAAI,EAAE;CACV;CACA;CACA,MAAI,IAAI,SAAS;CACjB,MAAI,IAAI,UAAU;CAClB,MAAI,IAAI;WACA,CAAC,EAAE,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC,SAAS,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU;CAC3H;OACI,OAAO,CAAC,EAAE;CACd,UAAQ,OAAO,IAAI;CACnB;CACA;OACI,IAAI,wBAAwB,GAAG;CACnC,UAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;CAChD,UAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;QAC3C;OACD,IAAI,4BAA4B,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;OACnH,IAAI,mBAAmB,GAAG,CAAC,IAAI,CAAC,GAAG,4BAA4B,CAAC;OAChE,IAAI,wBAAwB,GAAG;CACnC,UAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,mBAAmB,IAAI,wBAAwB,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CACrF,UAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,mBAAmB,IAAI,wBAAwB,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QAChF;OACD,IAAI,iBAAiB,GAAG;CAC5B,WAAS,GAAG,CAAC,UAAU,CAAC,EAAE;CAC1B,UAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;CACjF,UAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;WACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;eAC3C;CACZ;CACA,UAAQ,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE;WAC3F,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAC1C,UAAQ,IAAI,SAAS,GAAG,YAAY,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;CAC/F,UAAQ,IAAI,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,wBAAwB,CAAC;CAClF,UAAQ,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;QACtC;YACI,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;CAC5C,WAAS,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;CAC5D;CACA;CACA,MAAI,IAAI,gBAAgB,GAAG,4BAA4B,IAAI,EAAE,IAAI,iBAAiB,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,wBAAwB;OACvI,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE;CACvE;;;UAGO;aACG,CAAC,CAAC,SAAS,CAAC;CACtB,GAAC,CAAC,CAAA;;;;;;;;CCr3TF;;;;CAIG;CAgBH;;;;;;;;;;;;;;;;;;;;;;;;CAwBG;OACU,MAAM,CAAA;CAIjB;;;;CAIG;CACH,IAAA,WAAA,CAAoB,UAAyB,EAAE,EAAA;SAA3B,IAAO,CAAA,OAAA,GAAP,OAAO;SARnB,IAAM,CAAA,MAAA,GAAuB,IAAI;SACjC,IAAY,CAAA,YAAA,GAA4B,IAAI;SAQlD,IAAI,CAAC,OAAO,GAAG;CACb,YAAA,KAAK,EAAE,GAAG;CACV,YAAA,MAAM,EAAE,GAAG;CACX,YAAA,UAAU,EAAE,aAAa;CACzB,YAAA,GAAG;UACJ;;CAGH;;;;;;CAMG;KACH,MAAM,UAAU,CAAC,YAA8B,EAAA;CAC7C,QAAA,IAAI;CACF,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;CAEhC,YAAA,MAAM,WAAW,GAA2B;CAC1C,gBAAA,KAAK,EAAE;CACL,oBAAA,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;CACzB,oBAAA,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;CAC3B,oBAAA,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC;CAC1B;cACF;CAED,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC;aACpE,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM;CAEzC,YAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;CAC7B,gBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;CACrB,oBAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,GAAG,MAAK;CACxC,wBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;CACrB,4BAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;CACxB,4BAAA,OAAO,EAAE;;CAEb,qBAAC;;CAEL,aAAC,CAAC;;SACF,OAAO,KAAK,EAAE;CACd,YAAA,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;CAChC,YAAA,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC;;;CAI7B;;;;;;CAMG;KACH,YAAY,GAAA;SACV,IAAI,CAAC,IAAI,CAAC,YAAY;CAAE,YAAA,OAAO,IAAI;SAEnC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;SAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;CACnC,QAAA,IAAI,CAAC,GAAG;CAAE,YAAA,OAAO,IAAI;SAErB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU;SAC3C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW;SAC7C,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;CAEtC,QAAA,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;;CAG5D;;;;CAIG;KACH,OAAO,GAAA;CACL,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;CACf,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;CACtD,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;;CAGpB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;CACrB,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI;CAClC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;;;CAG7B;;CC1ID;;;;CAIG;CAmBH;;;;;;;;;;;;;;;;;;;;;;;;;CAyBG;OACU,SAAS,CAAA;CAKpB;;;;CAIG;CACH,IAAA,WAAA,CAAoB,UAA4B,EAAE,EAAA;SAA9B,IAAO,CAAA,OAAA,GAAP,OAAO;SARnB,IAAQ,CAAA,QAAA,GAAG,KAAK;SAChB,IAAS,CAAA,SAAA,GAAkB,IAAI;SAQrC,IAAI,CAAC,OAAO,GAAG;CACb,YAAA,YAAY,EAAE,GAAG;CACjB,YAAA,GAAG;UACJ;CAED,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE;;CAG5B;;;;;;;;CAQG;KACH,MAAM,KAAK,CAAC,YAA8B,EAAA;CACxC,QAAA,IAAI;aACF,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC;CAC1C,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;aACpB,IAAI,CAAC,IAAI,EAAE;;SACX,OAAO,KAAK,EAAE;CACd,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;iBACxB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;;;;CAKrF;;;;;;CAMG;KACK,IAAI,GAAA;SACV,IAAI,CAAC,IAAI,CAAC,QAAQ;aAAE;SAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;SAE5C,IAAI,SAAS,EAAE;CACb,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;aAEpE,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;iBAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;;SAIlC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;;CAGlF;;;;CAIG;KACH,IAAI,GAAA;CACF,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;CAErB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;CAClB,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;CAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;;CAGvB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;;CAExB;;CC/HD;;;;CAIG;CAEH;;;;;;;;;;;;;;;;;;CAkBG;OACU,cAAc,CAAA;CACzB;;;;;CAKG;KACH,OAAO,iBAAiB,CAAC,SAAoB,EAAA;SAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;CAC/C,QAAA,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK;CAC9B,QAAA,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;SAChC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;SAEnC,IAAI,GAAG,EAAE;aACP,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;;CAGnC,QAAA,OAAO,MAAM;;CAGf;;;;;CAKG;KACH,OAAO,iBAAiB,CAAC,MAAyB,EAAA;SAChD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;SACnC,OAAO,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI;;CAGzE;;;;;;;CAOG;KACH,OAAO,wBAAwB,CAAC,SAAoB,EAAE,UAAqB,GAAA,CAAC,EAAE,QAAA,GAAmB,CAAC,EAAA;SAChG,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;SAChD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;SAEnC,IAAI,GAAG,EAAE;CACP,YAAA,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;CACnE,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;;aAGzB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,QAAQ,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC;CAElE,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;;iBAEvC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC;;iBAEpE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC;;iBAE5E,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC;;;aAI9E,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;CAC/B,YAAA,OAAO,OAAO;;CAGhB,QAAA,OAAO,SAAS;;CAGlB;;;;;;CAMG;KACK,OAAO,QAAQ,CAAC,KAAa,EAAA;CACnC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;;CAG1C;;;;;;;CAOG;KACH,OAAO,WAAW,CAAC,SAAoB,EAAA;SACrC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;SAChD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;SAEnC,IAAI,GAAG,EAAE;CACP,YAAA,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;CACnE,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;CAEzB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;iBACvC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;CACrD,gBAAA,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;iBACd,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;iBAClB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;;;aAIpB,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;CAC/B,YAAA,OAAO,OAAO;;CAGhB,QAAA,OAAO,SAAS;;CAGlB;;;;;;;CAOG;CACH,IAAA,OAAO,MAAM,CAAC,SAAoB,EAAE,QAAgB,EAAE,SAAiB,EAAA;SACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;CAC/C,QAAA,MAAM,CAAC,KAAK,GAAG,QAAQ;CACvB,QAAA,MAAM,CAAC,MAAM,GAAG,SAAS;SACzB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;SAEnC,IAAI,GAAG,EAAE;aACP,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;aACpD,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC;CAC7F,YAAA,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC;;CAGpD,QAAA,OAAO,SAAS;;CAEnB;;CC5JD;;;;CAIG;CAmBH;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BG;OACU,cAAc,CAAA;CAKzB;;;;CAIG;CACH,IAAA,WAAA,CAAoB,UAAiC,EAAE,EAAA;SAAnC,IAAO,CAAA,OAAA,GAAP,OAAO;SARnB,IAAQ,CAAA,QAAA,GAAG,KAAK;SAChB,IAAS,CAAA,SAAA,GAAkB,IAAI;SAQrC,IAAI,CAAC,OAAO,GAAG;CACb,YAAA,YAAY,EAAE,GAAG;CACjB,YAAA,GAAG;UACJ;CAED,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE;;CAG5B;;;;;;;;CAQG;KACH,MAAM,KAAK,CAAC,YAA8B,EAAA;CACxC,QAAA,IAAI;aACF,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC;CAC1C,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;aACpB,IAAI,CAAC,IAAI,EAAE;;SACX,OAAO,KAAK,EAAE;CACd,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;iBACxB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;;;;CAKrF;;;;;;CAMG;KACK,IAAI,GAAA;SACV,IAAI,CAAC,IAAI,CAAC,QAAQ;aAAE;SAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;SAE5C,IAAI,SAAS,EAAE;CACb,YAAA,IAAI;;CAEF,gBAAA,MAAM,aAAa,GAAG,cAAc,CAAC,wBAAwB,CAC3D,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,EACrC,EAAE;CACF,gBAAA,EAAE;kBACH;;;;CAKD,gBAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;;aACjC,OAAO,KAAK,EAAE;CACd,gBAAA,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;;;SAIpC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;;CAGlF;;;;;;;CAOG;CACK,IAAA,aAAa,CAAC,SAAoB,EAAA;;;;CAKxC,QAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;;CAGzB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE;CACxB,YAAA,MAAM,UAAU,GAAG,eAAe,CAAC;CAEnC,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;CACvB,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;;;;CAKrC;;;;CAIG;KACH,IAAI,GAAA;CACF,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;CAErB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;CAClB,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;CAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;;CAGvB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;;CAExB;;CCnKD;;;;CAIG;CAMH;;;;;;;;;;;;;;;;;;;;;;;;CAwBG;OACU,cAAc,CAAA;CAKzB;;;;CAIG;CACH,IAAA,WAAA,CAAoB,UAA8C,EAAA;SAA9C,IAAU,CAAA,UAAA,GAAV,UAAU;SARtB,IAAS,CAAA,SAAA,GAAG,KAAK;SACjB,IAAW,CAAA,WAAA,GAAkB,IAAI;CAQvC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE;;CAG5B;;;;;;;CAOG;KACH,MAAM,KAAK,CAAC,YAA8B,EAAA;SACxC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC;CAC1C,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;SACrB,IAAI,CAAC,MAAM,EAAE;;CAGf;;;;;;CAMG;CACK,IAAA,MAAM,MAAM,GAAA;SAClB,IAAI,CAAC,IAAI,CAAC,SAAS;aAAE;SAErB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;SAE5C,IAAI,SAAS,EAAE;CACb,YAAA,IAAI;;;iBAGF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;CAEjD,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;CACnB,oBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;;;aAEzB,OAAO,KAAK,EAAE;CACd,gBAAA,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;;;CAIpC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC;;CAGhE;;;;;;;;CAQG;KACK,MAAM,YAAY,CAAC,SAAoB,EAAA;;SAE7C,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC;CACvD,QAAiB,cAAc,CAAC,wBAAwB,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE;;;;SAM1E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;SAEpC,IAAI,OAAO,EAAE;;CAEX,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG,CAAC;CACnD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;CAChD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,IAAI,CAAC,CAAC;CACvD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,IAAI,CAAC,CAAC;;CAGzD,YAAA,MAAM,OAAO,GAAG;CACd,gBAAA,EAAE,CAAC,EAAE,CAAC,EAAE;iBACR,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE;CACvB,gBAAA,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE;iBACvC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE;cACzB;;aAGD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;CAC/C,YAAA,MAAM,CAAC,KAAK,GAAG,SAAS;CACxB,YAAA,MAAM,CAAC,MAAM,GAAG,UAAU;aAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;aAEnC,IAAI,GAAG,EAAE;;iBAEP,MAAM,YAAY,GAAG,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC;iBAChE,GAAG,CAAC,SAAS,CACX,YAAY,EACZ,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAC3B,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,CAC5B;CAED,gBAAA,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC;iBAElE,OAAO;CACL,oBAAA,OAAO,EAAE,IAAI;qBACb,OAAO;qBACP;kBACD;;;CAIL,QAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;;CAG3B;;;;CAIG;KACH,IAAI,GAAA;CACF,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;CAEtB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;CACpB,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;CAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;;CAGzB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;;CAExB;;;;;;;;;;;;;;;;;CCnKD,EAAA,IAAI,OAAO,IAAI,UAAU,OAAO,EAAE;;CAGlC,IAAE,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS;CAC3B,IAAE,IAAI,MAAM,GAAG,EAAE,CAAC,cAAc;KAC9B,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,UAAU,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE;KAClG,IAAIC,WAAS,CAAC;KACd,IAAI,OAAO,GAAG,OAAO,MAAM,KAAK,UAAU,GAAG,MAAM,GAAG,EAAE;CAC1D,IAAE,IAAI,cAAc,GAAG,OAAO,CAAC,QAAQ,IAAI,YAAY;CACvD,IAAE,IAAI,mBAAmB,GAAG,OAAO,CAAC,aAAa,IAAI,iBAAiB;CACtE,IAAE,IAAI,iBAAiB,GAAG,OAAO,CAAC,WAAW,IAAI,eAAe;;KAE9D,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;CACnC,MAAI,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;SAC9B,KAAK,EAAE,KAAK;SACZ,UAAU,EAAE,IAAI;SAChB,YAAY,EAAE,IAAI;CACxB,QAAM,QAAQ,EAAE;CAChB,OAAK,CAAC;CACN,MAAI,OAAO,GAAG,CAAC,GAAG,CAAC;CACnB;CACA,IAAE,IAAI;CACN;CACA,MAAI,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;MACf,CAAC,OAAO,GAAG,EAAE;OACZ,MAAM,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;CACvC,QAAM,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;QACxB;CACL;;KAEE,SAAS,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;CACrD;CACA,MAAI,IAAI,cAAc,GAAG,OAAO,IAAI,OAAO,CAAC,SAAS,YAAY,SAAS,GAAG,OAAO,GAAG,SAAS;OAC5F,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC;OACvD,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;;CAEhD;CACA;CACA,MAAI,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;;CAE7F,MAAI,OAAO,SAAS;CACpB;CACA,IAAE,OAAO,CAAC,IAAI,GAAG,IAAI;;CAErB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;KACE,SAAS,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;CAClC,MAAI,IAAI;CACR,QAAM,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;QAClD,CAAC,OAAO,GAAG,EAAE;SACZ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE;CACxC;CACA;;KAEE,IAAI,sBAAsB,GAAG,gBAAgB;KAC7C,IAAI,sBAAsB,GAAG,gBAAgB;KAC7C,IAAI,iBAAiB,GAAG,WAAW;KACnC,IAAI,iBAAiB,GAAG,WAAW;;CAErC;CACA;KACE,IAAI,gBAAgB,GAAG,EAAE;;CAE3B;CACA;CACA;CACA;KACE,SAAS,SAAS,GAAG;KACrB,SAAS,iBAAiB,GAAG;KAC7B,SAAS,0BAA0B,GAAG;;CAExC;CACA;KACE,IAAI,iBAAiB,GAAG,EAAE;CAC5B,IAAE,MAAM,CAAC,iBAAiB,EAAE,cAAc,EAAE,YAAY;CACxD,MAAI,OAAO,IAAI;CACf,KAAG,CAAC;;CAEJ,IAAE,IAAI,QAAQ,GAAG,MAAM,CAAC,cAAc;CACtC,IAAE,IAAI,uBAAuB,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;CAC1E,IAAE,IAAI,uBAAuB;SACvB,uBAAuB,KAAK,EAAE;SAC9B,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,cAAc,CAAC,EAAE;CAC5D;CACA;OACI,iBAAiB,GAAG,uBAAuB;CAC/C;;CAEA,IAAE,IAAI,EAAE,GAAG,0BAA0B,CAAC,SAAS;OAC3C,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;CAC1D,IAAE,iBAAiB,CAAC,SAAS,GAAG,0BAA0B;CAC1D,IAAE,cAAc,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;CAC9F,IAAE,cAAc;CAChB,MAAI,0BAA0B;CAC9B,MAAI,aAAa;CACjB,MAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI;MAC/C;CACH,IAAE,iBAAiB,CAAC,WAAW,GAAG,MAAM;CACxC,MAAI,0BAA0B;CAC9B,MAAI,iBAAiB;OACjB;MACD;;CAEH;CACA;CACA,IAAE,SAAS,qBAAqB,CAAC,SAAS,EAAE;CAC5C,MAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,MAAM,EAAE;SACnD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,EAAE;WACtC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;CACxC,SAAO,CAAC;CACR,OAAK,CAAC;CACN;;CAEA,IAAE,OAAO,CAAC,mBAAmB,GAAG,SAAS,MAAM,EAAE;OAC7C,IAAI,IAAI,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,WAAW;CACjE,MAAI,OAAO;WACH,IAAI,KAAK,iBAAiB;CAClC;CACA;WACQ,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,MAAM;CAC5C,UAAQ,KAAK;MACV;;CAEH,IAAE,OAAO,CAAC,IAAI,GAAG,SAAS,MAAM,EAAE;CAClC,MAAI,IAAI,MAAM,CAAC,cAAc,EAAE;CAC/B,QAAM,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,0BAA0B,CAAC;CAC/D,OAAK,MAAM;CACX,QAAM,MAAM,CAAC,SAAS,GAAG,0BAA0B;CACnD,QAAM,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;CAC5D;OACI,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;CACxC,MAAI,OAAO,MAAM;MACd;;CAEH;CACA;CACA;CACA;CACA,IAAE,OAAO,CAAC,KAAK,GAAG,SAAS,GAAG,EAAE;CAChC,MAAI,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE;MACxB;;CAEH,IAAE,SAAS,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE;OAC7C,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE;CAClD,QAAM,IAAI,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC;CAC9D,QAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;CACnC,UAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;CAC1B,SAAO,MAAM;CACb,UAAQ,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG;CAC/B,UAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK;CAChC,UAAQ,IAAI,KAAK;eACL,OAAO,KAAK,KAAK,QAAQ;eACzB,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;CAC3C,YAAU,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,EAAE;eAC7D,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;cACvC,EAAE,SAAS,GAAG,EAAE;eACf,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC;CACjD,aAAW,CAAC;CACZ;;CAEA,UAAQ,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,EAAE;CACnE;CACA;CACA;CACA,YAAU,MAAM,CAAC,KAAK,GAAG,SAAS;aACxB,OAAO,CAAC,MAAM,CAAC;YAChB,EAAE,SAAS,KAAK,EAAE;CAC3B;CACA;aACU,OAAO,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;CACxD,WAAS,CAAC;CACV;CACA;;CAEA,MAAI,IAAI,eAAe;;CAEvB,MAAI,SAAS,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE;SAC5B,SAAS,0BAA0B,GAAG;WACpC,OAAO,IAAI,WAAW,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE;aAC/C,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC;CAC9C,WAAS,CAAC;CACV;;CAEA,QAAM,OAAO,eAAe;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,UAAQ,eAAe,GAAG,eAAe,CAAC,IAAI;CAC9C,YAAU,0BAA0B;CACpC;CACA;aACU;YACD,GAAG,0BAA0B,EAAE;CACxC;;CAEA;CACA;OACI,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;CACvD;;CAEA,IAAE,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC;KAC9C,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,mBAAmB,EAAE,YAAY;CACnE,MAAI,OAAO,IAAI;CACf,KAAG,CAAC;CACJ,IAAE,OAAO,CAAC,aAAa,GAAG,aAAa;;CAEvC;CACA;CACA;CACA,IAAE,OAAO,CAAC,KAAK,GAAG,SAAS,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE;OACzE,IAAI,WAAW,KAAK,MAAM,EAAE,WAAW,GAAG,OAAO;;CAErD,MAAI,IAAI,IAAI,GAAG,IAAI,aAAa;SAC1B,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC;SACzC;QACD;;CAEL,MAAI,OAAO,OAAO,CAAC,mBAAmB,CAAC,OAAO;CAC9C,UAAQ,IAAI;WACJ,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,MAAM,EAAE;CAC1C,YAAU,OAAO,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE;CACzD,WAAS,CAAC;MACP;;KAED,SAAS,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;OAChD,IAAI,KAAK,GAAG,sBAAsB;;CAEtC,MAAI,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE;CACxC,QAAM,IAAI,KAAK,KAAK,iBAAiB,EAAE;CACvC,UAAQ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;CACvD;;CAEA,QAAM,IAAI,KAAK,KAAK,iBAAiB,EAAE;CACvC,UAAQ,IAAI,MAAM,KAAK,OAAO,EAAE;CAChC,YAAU,MAAM,GAAG;CACnB;;CAEA;CACA;WACQ,OAAO,UAAU,EAAE;CAC3B;;CAEA,QAAM,OAAO,CAAC,MAAM,GAAG,MAAM;CAC7B,QAAM,OAAO,CAAC,GAAG,GAAG,GAAG;;SAEjB,OAAO,IAAI,EAAE;CACnB,UAAQ,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ;WAC/B,IAAI,QAAQ,EAAE;aACZ,IAAI,cAAc,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC;aAC3D,IAAI,cAAc,EAAE;CAC9B,cAAY,IAAI,cAAc,KAAK,gBAAgB,EAAE;CACrD,cAAY,OAAO,cAAc;CACjC;CACA;;CAEA,UAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;CACvC;CACA;aACU,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG;;CAEpD,WAAS,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;CAC/C,YAAU,IAAI,KAAK,KAAK,sBAAsB,EAAE;eACpC,KAAK,GAAG,iBAAiB;eACzB,MAAM,OAAO,CAAC,GAAG;CAC7B;;CAEA,YAAU,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC;;CAEhD,WAAS,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;aACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;CAC/C;;WAEQ,KAAK,GAAG,iBAAiB;;WAEzB,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;CACrD,UAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;CACtC;CACA;aACU,KAAK,GAAG,OAAO,CAAC;iBACZ;CACd,gBAAc,sBAAsB;;CAEpC,YAAU,IAAI,MAAM,CAAC,GAAG,KAAK,gBAAgB,EAAE;eACnC;CACZ;;CAEA,YAAU,OAAO;CACjB,cAAY,KAAK,EAAE,MAAM,CAAC,GAAG;eACjB,IAAI,EAAE,OAAO,CAAC;cACf;;CAEX,WAAS,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;aAClC,KAAK,GAAG,iBAAiB;CACnC;CACA;CACA,YAAU,OAAO,CAAC,MAAM,GAAG,OAAO;CAClC,YAAU,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG;CAClC;CACA;QACK;CACL;;CAEA;CACA;CACA;CACA;CACA,IAAE,SAAS,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE;CAClD,MAAI,IAAI,UAAU,GAAG,OAAO,CAAC,MAAM;OAC/B,IAAI,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;CAC9C,MAAI,IAAI,MAAM,KAAKA,WAAS,EAAE;CAC9B;CACA;CACA;CACA,QAAM,OAAO,CAAC,QAAQ,GAAG,IAAI;;CAE7B;SACM,IAAI,UAAU,KAAK,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;CACjE;CACA;CACA,UAAQ,OAAO,CAAC,MAAM,GAAG,QAAQ;CACjC,UAAQ,OAAO,CAAC,GAAG,GAAGA,WAAS;CAC/B,UAAQ,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC;;CAE9C,UAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;CACxC;CACA;CACA,YAAU,OAAO,gBAAgB;CACjC;CACA;CACA,QAAM,IAAI,UAAU,KAAK,QAAQ,EAAE;CACnC,UAAQ,OAAO,CAAC,MAAM,GAAG,OAAO;CAChC,UAAQ,OAAO,CAAC,GAAG,GAAG,IAAI,SAAS;CACnC,YAAU,mCAAmC,GAAG,UAAU,GAAG,UAAU,CAAC;CACxE;;CAEA,QAAM,OAAO,gBAAgB;CAC7B;;CAEA,MAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;;CAEjE,MAAI,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;CACjC,QAAM,OAAO,CAAC,MAAM,GAAG,OAAO;CAC9B,QAAM,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG;CAC9B,QAAM,OAAO,CAAC,QAAQ,GAAG,IAAI;CAC7B,QAAM,OAAO,gBAAgB;CAC7B;;CAEA,MAAI,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG;;OAErB,IAAI,EAAE,IAAI,EAAE;CAChB,QAAM,OAAO,CAAC,MAAM,GAAG,OAAO;SACxB,OAAO,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,kCAAkC,CAAC;CACrE,QAAM,OAAO,CAAC,QAAQ,GAAG,IAAI;CAC7B,QAAM,OAAO,gBAAgB;CAC7B;;CAEA,MAAI,IAAI,IAAI,CAAC,IAAI,EAAE;CACnB;CACA;SACM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK;;CAE/C;CACA,QAAM,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO;;CAErC;CACA;CACA;CACA;CACA;CACA;CACA,QAAM,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;CACvC,UAAQ,OAAO,CAAC,MAAM,GAAG,MAAM;CAC/B,UAAQ,OAAO,CAAC,GAAG,GAAGA,WAAS;CAC/B;;CAEA,OAAK,MAAM;CACX;CACA,QAAM,OAAO,IAAI;CACjB;;CAEA;CACA;CACA,MAAI,OAAO,CAAC,QAAQ,GAAG,IAAI;CAC3B,MAAI,OAAO,gBAAgB;CAC3B;;CAEA;CACA;KACE,qBAAqB,CAAC,EAAE,CAAC;;CAE3B,IAAE,MAAM,CAAC,EAAE,EAAE,iBAAiB,EAAE,WAAW,CAAC;;CAE5C;CACA;CACA;CACA;CACA;CACA,IAAE,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW;CACxC,MAAI,OAAO,IAAI;CACf,KAAG,CAAC;;CAEJ,IAAE,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,WAAW;CACpC,MAAI,OAAO,oBAAoB;CAC/B,KAAG,CAAC;;CAEJ,IAAE,SAAS,YAAY,CAAC,IAAI,EAAE;OAC1B,IAAI,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;;CAEnC,MAAI,IAAI,CAAC,IAAI,IAAI,EAAE;CACnB,QAAM,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;CAC9B;;CAEA,MAAI,IAAI,CAAC,IAAI,IAAI,EAAE;CACnB,QAAM,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;CAChC,QAAM,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;CAC9B;;CAEA,MAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;CAC/B;;CAEA,IAAE,SAAS,aAAa,CAAC,KAAK,EAAE;CAChC,MAAI,IAAI,MAAM,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE;CACvC,MAAI,MAAM,CAAC,IAAI,GAAG,QAAQ;OACtB,OAAO,MAAM,CAAC,GAAG;CACrB,MAAI,KAAK,CAAC,UAAU,GAAG,MAAM;CAC7B;;CAEA,IAAE,SAAS,OAAO,CAAC,WAAW,EAAE;CAChC;CACA;CACA;OACI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;CAC1C,MAAI,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC;CAC3C,MAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;CACpB;;CAEA,IAAE,OAAO,CAAC,IAAI,GAAG,SAAS,GAAG,EAAE;CAC/B,MAAI,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;OACxB,IAAI,IAAI,GAAG,EAAE;CACjB,MAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;CAC5B,QAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;CACpB;OACI,IAAI,CAAC,OAAO,EAAE;;CAElB;CACA;OACI,OAAO,SAAS,IAAI,GAAG;CAC3B,QAAM,OAAO,IAAI,CAAC,MAAM,EAAE;CAC1B,UAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;CAC5B,UAAQ,IAAI,GAAG,IAAI,MAAM,EAAE;CAC3B,YAAU,IAAI,CAAC,KAAK,GAAG,GAAG;CAC1B,YAAU,IAAI,CAAC,IAAI,GAAG,KAAK;CAC3B,YAAU,OAAO,IAAI;CACrB;CACA;;CAEA;CACA;CACA;CACA,QAAM,IAAI,CAAC,IAAI,GAAG,IAAI;CACtB,QAAM,OAAO,IAAI;QACZ;MACF;;CAEH,IAAE,SAAS,MAAM,CAAC,QAAQ,EAAE;OACxB,IAAI,QAAQ,EAAE;CAClB,QAAM,IAAI,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;SAC7C,IAAI,cAAc,EAAE;CAC1B,UAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;CAC5C;;CAEA,QAAM,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE;CAC/C,UAAQ,OAAO,QAAQ;CACvB;;SAEM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;WAC3B,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,GAAG,SAAS,IAAI,GAAG;CAC3C,YAAU,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE;eAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;CAC1C,gBAAc,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;CACtC,gBAAc,IAAI,CAAC,IAAI,GAAG,KAAK;CAC/B,gBAAc,OAAO,IAAI;CACzB;CACA;;CAEA,YAAU,IAAI,CAAC,KAAK,GAAGA,WAAS;CAChC,YAAU,IAAI,CAAC,IAAI,GAAG,IAAI;;CAE1B,YAAU,OAAO,IAAI;YACZ;;CAET,UAAQ,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI;CAC/B;CACA;;CAEA;CACA,MAAI,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;CAC/B;CACA,IAAE,OAAO,CAAC,MAAM,GAAG,MAAM;;KAEvB,SAAS,UAAU,GAAG;OACpB,OAAO,EAAE,KAAK,EAAEA,WAAS,EAAE,IAAI,EAAE,IAAI,EAAE;CAC3C;;KAEE,OAAO,CAAC,SAAS,GAAG;OAClB,WAAW,EAAE,OAAO;;CAExB,MAAI,KAAK,EAAE,SAAS,aAAa,EAAE;CACnC,QAAM,IAAI,CAAC,IAAI,GAAG,CAAC;CACnB,QAAM,IAAI,CAAC,IAAI,GAAG,CAAC;CACnB;CACA;SACM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAGA,WAAS;CACxC,QAAM,IAAI,CAAC,IAAI,GAAG,KAAK;CACvB,QAAM,IAAI,CAAC,QAAQ,GAAG,IAAI;;CAE1B,QAAM,IAAI,CAAC,MAAM,GAAG,MAAM;CAC1B,QAAM,IAAI,CAAC,GAAG,GAAGA,WAAS;;CAE1B,QAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC;;SAEtC,IAAI,CAAC,aAAa,EAAE;CAC1B,UAAQ,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE;CAC/B;aACU,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;CACpC,gBAAc,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;iBACvB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;CACtC,cAAY,IAAI,CAAC,IAAI,CAAC,GAAGA,WAAS;CAClC;CACA;CACA;QACK;;OAED,IAAI,EAAE,WAAW;CACrB,QAAM,IAAI,CAAC,IAAI,GAAG,IAAI;;SAEhB,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;CACxC,QAAM,IAAI,UAAU,GAAG,SAAS,CAAC,UAAU;CAC3C,QAAM,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;WAC/B,MAAM,UAAU,CAAC,GAAG;CAC5B;;SAEM,OAAO,IAAI,CAAC,IAAI;QACjB;;CAEL,MAAI,iBAAiB,EAAE,SAAS,SAAS,EAAE;CAC3C,QAAM,IAAI,IAAI,CAAC,IAAI,EAAE;CACrB,UAAQ,MAAM,SAAS;CACvB;;SAEM,IAAI,OAAO,GAAG,IAAI;CACxB,QAAM,SAAS,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE;CACnC,UAAQ,MAAM,CAAC,IAAI,GAAG,OAAO;CAC7B,UAAQ,MAAM,CAAC,GAAG,GAAG,SAAS;CAC9B,UAAQ,OAAO,CAAC,IAAI,GAAG,GAAG;;WAElB,IAAI,MAAM,EAAE;CACpB;CACA;CACA,YAAU,OAAO,CAAC,MAAM,GAAG,MAAM;CACjC,YAAU,OAAO,CAAC,GAAG,GAAGA,WAAS;CACjC;;WAEQ,OAAO,CAAC,EAAE,MAAM;CACxB;;CAEA,QAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;WACpD,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;CACtC,UAAQ,IAAI,MAAM,GAAG,KAAK,CAAC,UAAU;;CAErC,UAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;CACrC;CACA;CACA;CACA,YAAU,OAAO,MAAM,CAAC,KAAK,CAAC;CAC9B;;WAEQ,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;aAC7B,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC;aAC7C,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC;;CAE3D,YAAU,IAAI,QAAQ,IAAI,UAAU,EAAE;eAC1B,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE;iBAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;gBACpC,MAAM,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE;CACrD,gBAAc,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;CAC7C;;cAEW,MAAM,IAAI,QAAQ,EAAE;eACnB,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE;iBAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;CACjD;;cAEW,MAAM,IAAI,UAAU,EAAE;eACrB,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE;CAC9C,gBAAc,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;CAC7C;;CAEA,aAAW,MAAM;CACjB,cAAY,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;CACrE;CACA;CACA;QACK;;CAEL,MAAI,MAAM,EAAE,SAAS,IAAI,EAAE,GAAG,EAAE;CAChC,QAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;WACpD,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;CACtC,UAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI;CACrC,cAAY,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC;CAC5C,cAAY,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE;aAChC,IAAI,YAAY,GAAG,KAAK;aACxB;CACV;CACA;;CAEA,QAAM,IAAI,YAAY;cACX,IAAI,KAAK,OAAO;cAChB,IAAI,KAAK,UAAU,CAAC;CAC/B,YAAU,YAAY,CAAC,MAAM,IAAI,GAAG;CACpC,YAAU,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE;CAC1C;CACA;WACQ,YAAY,GAAG,IAAI;CAC3B;;SAEM,IAAI,MAAM,GAAG,YAAY,GAAG,YAAY,CAAC,UAAU,GAAG,EAAE;CAC9D,QAAM,MAAM,CAAC,IAAI,GAAG,IAAI;CACxB,QAAM,MAAM,CAAC,GAAG,GAAG,GAAG;;SAEhB,IAAI,YAAY,EAAE;CACxB,UAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;CAC5B,UAAQ,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,UAAU;CAC3C,UAAQ,OAAO,gBAAgB;CAC/B;;CAEA,QAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7B;;CAEL,MAAI,QAAQ,EAAE,SAAS,MAAM,EAAE,QAAQ,EAAE;CACzC,QAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;WAC3B,MAAM,MAAM,CAAC,GAAG;CACxB;;CAEA,QAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;CACjC,YAAU,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;CACtC,UAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG;CAC9B,SAAO,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;WACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG;CACzC,UAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ;CAC9B,UAAQ,IAAI,CAAC,IAAI,GAAG,KAAK;UAClB,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,EAAE;CACvD,UAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ;CAC5B;;CAEA,QAAM,OAAO,gBAAgB;QACxB;;CAEL,MAAI,MAAM,EAAE,SAAS,UAAU,EAAE;CACjC,QAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;WACpD,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;CACtC,UAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE;aACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC;aAC/C,aAAa,CAAC,KAAK,CAAC;CAC9B,YAAU,OAAO,gBAAgB;CACjC;CACA;QACK;;CAEL,MAAI,OAAO,EAAE,SAAS,MAAM,EAAE;CAC9B,QAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;WACpD,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;CACtC,UAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;CACrC,YAAU,IAAI,MAAM,GAAG,KAAK,CAAC,UAAU;CACvC,YAAU,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;CACvC,cAAY,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG;eACvB,aAAa,CAAC,KAAK,CAAC;CAChC;CACA,YAAU,OAAO,MAAM;CACvB;CACA;;CAEA;CACA;CACA,QAAM,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;QACzC;;OAED,aAAa,EAAE,SAAS,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE;SACrD,IAAI,CAAC,QAAQ,GAAG;CACtB,UAAQ,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;WAC1B,UAAU,EAAE,UAAU;CAC9B,UAAQ,OAAO,EAAE;UACV;;CAEP,QAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;CAClC;CACA;CACA,UAAQ,IAAI,CAAC,GAAG,GAAGA,WAAS;CAC5B;;CAEA,QAAM,OAAO,gBAAgB;CAC7B;MACG;;CAEH;CACA;CACA;CACA;CACA,IAAE,OAAO,OAAO;;IAEf;CACD;CACA;CACA;CACA;CACA,IAA+B,MAAM,CAAC,OAAO;CAC7C,GAAC,CAAC;;GAEF,IAAI;KACF,kBAAkB,GAAG,OAAO;IAC7B,CAAC,OAAO,oBAAoB,EAAE;CAC/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;CACtC,MAAI,UAAU,CAAC,kBAAkB,GAAG,OAAO;CAC3C,KAAG,MAAM;OACL,QAAQ,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC,OAAO,CAAC;CACpD;CACA,GAAA;;;;;;;;;;;CCxvBA,CAAA,KAAc,GAAG,CAAC,MAAM,EAAE,GAAG;IAC3B,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;GAC5D;;;;;;;;;;ECFD,MAAM,KAAK,GAAGC,YAAwB,EAAA;;EAEtC,IAAI,UAAU,GAAG,CAAC;;CAElB,CAAA,SAAc,GAAG,CAAC;IAChB,EAAE,EAAE,GAAG;CACT,GAAE,MAAM;IACN,OAAO,GAAG,EAAE;CACd,EAAC,KAAK;IACJ,IAAI,EAAE,GAAG,GAAG;CACd,GAAE,IAAI,OAAO,EAAE,KAAK,WAAW,EAAE;CACjC,KAAI,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC;MAC7B,UAAU,IAAI,CAAC;CACnB;;CAEA,GAAE,OAAO;CACT,KAAI,EAAE;CACN,KAAI,MAAM;CACV,KAAI,OAAO;KACR;GACF;;;;;;;;;;;ECpBD,IAAI,OAAO,GAAG,KAAK;;CAEnB,CAAA,GAAA,CAAA,OAAe,GAAG,OAAO;;CAEzB,CAAkB,GAAA,CAAA,UAAA,GAAG,CAAC,QAAQ,KAAK;IACjC,OAAO,GAAG,QAAQ;GACnB;;CAED,CAAA,GAAA,CAAA,GAAW,GAAG,CAAC,GAAG,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;;;;;;;;;;ECR3E,MAAM,SAAS,GAAGA,gBAAsB,EAAA;CACxC,CAAA,MAAM,EAAE,GAAG,EAAE,GAAGC,UAAsB,EAAA;EACtC,MAAM,KAAK,GAAGC,YAAwB,EAAA;;EAEtC,IAAI,gBAAgB,GAAG,CAAC;;CAExB,CAAA,eAAc,GAAG,MAAM;IACrB,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC;IAC/C,MAAM,OAAO,GAAG,EAAE;IAClB,MAAM,cAAc,GAAG,EAAE;IACzB,IAAI,QAAQ,GAAG,EAAE;;IAEjB,gBAAgB,IAAI,CAAC;;CAEvB,GAAE,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,MAAM;IACzC,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM;;IAEvD,MAAM,OAAO,GAAG,MAAM;CACxB,KAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;CACvC,OAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;UACvC,IAAI,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;CAC5D,WAAU,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B;CACV;CACA;CACA;KACG;;CAEH,GAAE,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO;CAChC,KAAI,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;QAC/B,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;CAChD,OAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;UACzB,QAAQ,CAAC,KAAK,EAAE;CACxB,SAAQ,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;CAClC,SAAQ,IAAI;YACF,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;WAC3D,CAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,GAAG,CAAC;CACrB,UAAS,SAAS;CAClB,WAAU,OAAO,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;CACrC,WAAU,OAAO,EAAE;CACnB;CACA,QAAO,CAAC;CACR,OAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;CAC/C,OAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;CACxD,OAAM,OAAO,EAAE;OACV;KACF;;CAEH,GAAE,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK;CAC3B,KAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;CACrB,KAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC/B,KAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;CACxD,KAAI,OAAO,EAAE;MACT,OAAO,CAAC,CAAC,EAAE;KACZ;;IAED,MAAM,MAAM,GAAG,OAAO,MAAM,EAAE,GAAG,OAAO,KAAK;CAC/C,KAAI,IAAI,aAAa,EAAE,KAAK,CAAC,EAAE;QACzB,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0DAA0D,CAAC,CAAC;CACrF;CACA,KAAI,OAAO,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;KAC9B;;IAED,MAAM,SAAS,GAAG,YAAY;MAC5B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK;CAChD,OAAM,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE;CACpC,MAAK,CAAC;MACF,QAAQ,GAAG,EAAE;KACd;;CAEH,GAAE,OAAO;CACT,KAAI,SAAS;CACb,KAAI,MAAM;CACV,KAAI,SAAS;CACb,KAAI,WAAW;CACf,KAAI,aAAa;KACd;GACF;;;;;;;;;;;;;;CC/ED,CAAc,cAAA,GAAG,CAAC,GAAG,KAAK;IACxB,MAAM,GAAG,GAAG,EAAE;;CAEhB,GAAE,IAAI,OAAO,iBAAiB,KAAK,WAAW,EAAE;CAChD,KAAI,GAAG,CAAC,IAAI,GAAG,WAAW;CAC1B,IAAG,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;CAC3C,KAAI,GAAG,CAAC,IAAI,GAAG,SAAS;KACrB,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAOC,eAAO,KAAK,UAAU,EAAE;CAC3E,KAAI,GAAG,CAAC,IAAI,GAAG,MAAM;CACrB;;CAEA,GAAE,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE;CAClC,KAAI,OAAO,GAAG;CACd;;CAEA,GAAE,OAAO,GAAG,CAAC,GAAG,CAAC;GAChB;;;;;;;;;;CChBD,CAAA,MAAM,SAAS,GAAGH,qBAAA,EAA2B,CAAC,MAAM,CAAC,KAAK,SAAS;;EAEnE,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;;CAErF,CAAc,YAAA,GAAG,CAAC,OAAO,KAAK;CAC9B,GAAE,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE;CAC7B,GAAE,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;CAC1D,KAAI,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;QAChB,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CACvC;CACA,IAAG,CAAC;CACJ,GAAE,OAAO,IAAI;GACZ;;;;;;;;;;;;;;;;;CCND,CAAA,GAAc,GAAG;IACf,cAAc,EAAE,CAAC;IACjB,SAAS,EAAE,CAAC;IACZ,uBAAuB,EAAE,CAAC;IAC1B,OAAO,EAAE,CAAC;GACX;;;;;;;;;;CCXD,CAAA,cAAc,GAAG;CACjB;CACA;CACA;CACA;CACA;IACE,aAAa,EAAE,IAAI;IACnB,MAAM,EAAE,MAAM,EAAE;GACjB;;;;;;;;;;ECRD,MAAM,IAAI,GAAG,UAAe;EAC5B,MAAM,cAAc,GAAGC,uBAAyC,EAAA;;CAEhE;CACA;CACA;CACA,CAAA,gBAAc,GAAG;CACjB,GAAE,GAAG,cAAc;CACnB,GAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,CAAC;GAClF;;;;;;;;;;CCTD,CAAA,MAAM,EAAE,MAAM,EAAE,GAAGD,YAAyB;;CAE5C;CACA;CACA;CACA;CACA;CACA;CACA;CACA,CAAc,WAAA,GAAG,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;CCF3D,CAAc,eAAA,GAAG,CAAC,MAAM,KAAK;IAC3B,MAAM,CAAC,SAAS,EAAE;GACnB;;;;;;;;;;CCTD,CAAA,SAAc,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;CACtC,GAAE,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;GAC9B;;;;;;;;;;;;;;;;;;CCKD,CAAA,IAAc,GAAG,OAAO,MAAM,EAAE,MAAM,KAAK;CAC3C,GAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;GAC3B;;;;;;;;;;;;;;;ECPD,IAAI,WAAW,GAAG,EAAE;CACpB,CAAAI,KAAc,GAAG,WAAW;;EAE5B,SAAS,IAAI,CAAC,CAAC,EAAE;MACb,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;CACzB;;EAEA,SAAS,SAAS,CAAC,CAAC,EAAE;CACtB;CACA,KAAI,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;CAC1C,SAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;CAC5B,MAAK,MAAM;CACX,SAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;CAC5B;CACA;;CAEA,CAAA,SAAS,sBAAsB,CAAC,SAAS,EAAE,QAAQ,EAAE;CACrD,KAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;CAC5B,SAAQ,EAAE,SAAS;CACnB;CACA,KAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC;CACtE,KAAI,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC;;MAE7C,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC;CAC/G,KAAI,MAAM,WAAW,GAAG,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;;CAEzH,KAAI,OAAO,SAAS,CAAC,EAAE,IAAI,EAAE;CAC7B,SAAQ,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE;;CAE5B,SAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;;CAElB,SAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;cACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;CACrC,iBAAgB,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC;CACtE;;CAEA,aAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;cACrC,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,GAAG,UAAU,EAAE;CAClD,iBAAgB,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC;CACpE;;CAEA,aAAY,OAAO,CAAC;CACpB;;UAEQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;CACrC,aAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;;CAE5B,aAAY,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,UAAU;CAC9C,aAAY,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,UAAU;CAC9C,aAAY,OAAO,CAAC;CACpB;;CAEA,SAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;CAC5C,aAAY,OAAO,CAAC;CACpB;;CAEA,SAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC7C,SAAQ,CAAC,GAAG,CAAC,GAAG,SAAS;;UAEjB,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,WAAW,EAAE;cACxC,OAAO,CAAC,GAAG,SAAS;CAChC,UAAS,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE;CACtC,aAAY,IAAI,CAAC,GAAG,CAAC,EAAE;gBACT,CAAC,IAAI,SAAS;CAC5B,cAAa,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE;CACjC,eAAc,OAAO,CAAC;CACtB;CACA;;CAEA,SAAQ,OAAO,CAAC;CAChB;CACA;;CAEA,CAAA,WAAW,CAAC,MAAM,CAAC,GAAG,YAAY;CAClC,KAAI,OAAO,SAAS;GACnB;;CAED,CAAA,WAAW,CAAC,SAAS,CAAC,GAAG,UAAU,GAAG,EAAE;MACpC,OAAO,CAAC,CAAC,GAAG;GACf;;CAED,CAAA,WAAW,CAAC,MAAM,CAAC,GAAG,sBAAsB,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CACpE,CAAA,WAAW,CAAC,OAAO,CAAC,GAAG,sBAAsB,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;CAEpE,CAAA,WAAW,CAAC,OAAO,CAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CACtE,CAAA,WAAW,CAAC,gBAAgB,CAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;CAE9E,CAAA,WAAW,CAAC,MAAM,CAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CACrE,CAAA,WAAW,CAAC,eAAe,CAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;CAE7E,CAAA,WAAW,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;CAC/F,CAAA,WAAW,CAAC,oBAAoB,CAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;;CAEvG,CAAA,WAAW,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,EAAE;CACrC,KAAI,MAAM,CAAC,GAAG,CAAC,CAAC;;MAEZ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;CAC7B,SAAQ,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC;CAC5E;;CAEA,KAAI,OAAO,CAAC;GACX;;CAED,CAAA,WAAW,CAAC,qBAAqB,CAAC,GAAG,UAAU,CAAC,EAAE;CAClD,KAAI,MAAM,CAAC,GAAG,CAAC,CAAC;;CAEhB,KAAI,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;CAClB,SAAQ,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC;CAC9C;;CAEA,KAAI,OAAO,CAAC;GACX;;CAED;CACA,CAAA,WAAW,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC;CAC5C,CAAA,WAAW,CAAC,oBAAoB,CAAC,GAAG,WAAW,CAAC,qBAAqB,CAAC;;EAEtE,WAAW,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE;CAC9C,KAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE;;MAEpB,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,IAAI,EAAE;CACnD,SAAQ,OAAO,EAAE;CACjB;;CAEA,KAAI,OAAO,MAAM,CAAC,CAAC,CAAC;GACnB;;EAED,WAAW,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE;CAC/C,KAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;MACnB,IAAI,CAAC,GAAG,SAAS;MACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,SAAS,EAAE,EAAE,CAAC,EAAE;CAC/D,SAAQ,IAAI,CAAC,GAAG,GAAG,EAAE;CACrB,aAAY,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC;CACrE;CACA;;CAEA,KAAI,OAAO,CAAC;GACX;;CAED,CAAA,WAAW,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,EAAE;CACxC,KAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;CACvB,KAAI,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM;MAClB,MAAM,CAAC,GAAG,EAAE;CAChB,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;UACxB,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;UACzB,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,EAAE;cAC1B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;WAClC,MAAM,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;cACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;CAChD,UAAS,MAAM;CACf,aAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;kBACb,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;CACpD,cAAa,MAAM;kBACH,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;kBAC7B,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;CAChD,qBAAoB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;CACvC,qBAAoB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;sBACnB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9E,qBAAoB,EAAE,CAAC;CACvB,kBAAiB,MAAM;sBACH,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;CACxD;CACA;CACA;CACA;;CAEA,KAAI,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;GACpB;;EAED,WAAW,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE;CACzC,KAAI,IAAI,EAAE,CAAC,YAAY,IAAI,CAAC,EAAE;CAC9B,SAAQ,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC;CAC5D;CACA,KAAI,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;CAClB,SAAQ,OAAO,SAAS;CACxB;;CAEA,KAAI,OAAO,CAAC;GACX;;EAED,WAAW,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE;CAC3C,KAAI,IAAI,EAAE,CAAC,YAAY,MAAM,CAAC,EAAE;CAChC,SAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC;CACzB;;CAEA,KAAI,OAAO,CAAC;GACX;;;;;;;;;;;;;CC1LD,EAAA,MAAA,CAAA,OAAA,CAAA,KAAA,GAAuB,SAAS,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE;KACpD,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC;CACjD,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;OACpC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5F;IACC;;GAED,MAA+B,CAAA,OAAA,CAAA,aAAA,GAAA,MAAM,CAAC,SAAS,CAAC;GAChD,MAA4B,CAAA,OAAA,CAAA,UAAA,GAAA,MAAM,CAAC,MAAM,CAAC;;GAE1C,MAAgC,CAAA,OAAA,CAAA,cAAA,GAAA,UAAU,IAAI,EAAE;KAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;IAC1C;;GAED,MAAgC,CAAA,OAAA,CAAA,cAAA,GAAA,UAAU,OAAO,EAAE;KACjD,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;IAC1C,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","x_google_ignoreList":[0,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}