rapid-spreadjs 1.0.192 → 1.0.194
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{index.cjs.js → index.cjs} +4 -3
- package/dist/index.cjs.map +1 -0
- package/dist/index.min.cjs +2 -0
- package/dist/index.min.cjs.map +1 -0
- package/dist/index.min.mjs +2 -0
- package/dist/index.min.mjs.map +1 -0
- package/dist/{index.esm.js → index.mjs} +4 -3
- package/dist/index.mjs.map +1 -0
- package/package.json +14 -4
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.cjs.min.js +0 -2
- package/dist/index.cjs.min.js.map +0 -1
- package/dist/index.esm.js.map +0 -1
- package/dist/index.esm.min.js +0 -2
- package/dist/index.esm.min.js.map +0 -1
- package/dist/types/ext-echarts.d.ts +0 -66
- package/dist/utils/ext-echarts-all.d.ts +0 -2394
- package/dist/utils/ext-echarts.d.ts +0 -39
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../node_modules/tslib/tslib.es6.js","../src/utils/common.ts","../src/utils/sheet.ts","../src/utils/business.ts","../src/utils/echarts-all.ts","../src/utils/echarts.ts","../src/utils/formula-other.ts","../src/utils/formula.ts","../src/utils/wookbook.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","/**\r\n * 公用工具函数属性\r\n */\r\nexport const CommonUtils = {\r\n /**\r\n * 获取文件的字节流对象\r\n * @param fileUrl 在线文件地址\r\n * @returns 文件的字节流对象\r\n */\r\n getFileBlob: async (fileUrl: string): Promise<Blob> | null => {\r\n // 获取文件响应结果\r\n const response = await fetch(fileUrl, { method: 'GET' });\r\n\r\n // 获取成功\r\n if (response.ok) {\r\n // 文件的字节流对象\r\n const blob = await response.blob();\r\n\r\n return blob;\r\n } else {\r\n return null;\r\n }\r\n },\r\n\r\n /**\r\n * 获取列的英文字母\r\n * @param colIndex 列的索引\r\n * @returns 返回英文字母\r\n */\r\n getColLetterName: (colIndex: number): string => {\r\n colIndex += 1;\r\n\r\n let letter = '';\r\n while (colIndex > 0) {\r\n const remainder = (colIndex - 1) % 26;\r\n letter = String.fromCharCode(remainder + 65) + letter;\r\n colIndex = Math.floor((colIndex - 1) / 26);\r\n }\r\n\r\n return letter.toUpperCase();\r\n },\r\n};\r\n","// 导入rapid-utils中的函数(注意:需要在tsconfig.json文件中设置moduleResolution为node,否则会提示:找不到模块“rapid-utils”。你的意思是要将 \"moduleResolution\" 选项设置为 \"nodenext\",还是要将别名添加到 \"paths\" 选项中?ts(2792))\r\nimport { forEachJson, orderByJson, groupByJson } from 'rapid-utils';\r\n// 导入单元格实体\r\nimport { CellModel, CellWatermarkModel, CellDateModel } from '../types/sheet';\r\nimport { CommonUtils } from '../utils/common';\r\n\r\n/**\r\n * SpreadJS工作表工具函数属性\r\n */\r\nexport const SheetUtils = {\r\n /**\r\n * 获取当前活动工作表选中的单元格集合\r\n * @param spread 工作簿对象\r\n * @returns 返回选中单元格的集合,格式如:[{ row: 0, col: 0, rowCount: 1, colCount: 1 }]\r\n */\r\n getActiveSheetSelectCells: (spread: any): CellModel[] => {\r\n const sheet = spread.getActiveSheet();\r\n\r\n const allCellObjs: CellModel[] = sheet.getSelections();\r\n\r\n return allCellObjs;\r\n },\r\n\r\n /**\r\n * 设置当前活动工作表某个或某些单元格范围为选中状态\r\n * @param spread 工作簿对象\r\n * @param cellObj 设置选中的单元格,格式如:{row:0,col:0,rowCount:1,colCount:1}\r\n */\r\n setActiveSheetSelectCells: (spread: any, cellObj: CellModel) => {\r\n const sheet = spread.getActiveSheet();\r\n\r\n sheet.setSelection(cellObj.row, cellObj.col, cellObj.rowCount, cellObj.colCount);\r\n },\r\n\r\n /**\r\n * 获取某工作表中某个范围中所有的单元格坐标对象集合\r\n * 该方法适用的场景如:手动选择了某个单元格范围,在这个范围中可能包含独立的单元格,也可能包含合并的单元格,这时候就需要用到如下方法获取到所有单元格对象\r\n * @param sheet 工作表实例\r\n * @param selectRange 单元格范围,格式如:{ row: 0, col: 0, rowCount: 2, colCount: 2 }\r\n * @param isMulColOrder 是否按照多列的顺序排序单元格(true:按照第一列从上到下、第二列从上到下……的顺序获取单元格数据、false:按照第一行从左到右、第二行从左到右……的顺序获取单元格数据)\r\n * @returns 返回数组集合,格式如:[{ row: 0, col: 0, rowCount: 1, colCount: 1 }]\r\n */\r\n getAllCellObjsByRange: (sheet: any, selectRange: CellModel, isMulColOrder: boolean = false): CellModel[] => {\r\n return SheetUtils.getAllCellObjsByRanges(sheet, [selectRange], isMulColOrder);\r\n },\r\n\r\n /**\r\n * 获取某工作表中多个范围集合中所有的单元格坐标对象集合\r\n * 该方法适用的场景如:手动选择了很多个单元格范围,在这些范围中可能包含独立的单元格,也可能包含合并的单元格,这时候就需要用到如下方法获取到所有单元格对象\r\n * @param sheet 工作表实例\r\n * @param selectRanges 单元格范围集合,格式如:[{ row: 0, col: 0, rowCount: 2, colCount: 2 }]\r\n * @param isMulColOrder 是否按照多列的顺序排序单元格(true:按照第一列从上到下、第二列从上到下……的顺序获取单元格数据、false:按照第一行从左到右、第二行从左到右……的顺序获取单元格数据)\r\n * @param isDoSelectRangesOrder 是否按照selectRanges范围中的所有单元格顺序进行获取并返回,默认为:false\r\n * @returns 返回数组集合,格式如:[{ row: 0, col: 0, rowCount: 1, colCount: 1 }]\r\n */\r\n getAllCellObjsByRanges: (sheet: any, selectRanges: CellModel[], isMulColOrder: boolean = false, isDoSelectRangesOrder = false): CellModel[] => {\r\n // 得到所有的单元格坐标对象集合,格式如:[{ row: 0, col: 0, rowCount: 1, colCount: 1 }]\r\n let allCellObjs: CellModel[] = [];\r\n\r\n selectRanges.forEach((item, index) => {\r\n // 得到当前item中所有合并的单元格对象集合\r\n let itemSpanCells = sheet.getSpans(item);\r\n itemSpanCells = orderByJson(itemSpanCells, !isMulColOrder ? ['row', 'col'] : ['col', 'row'], ['asc', 'asc']);\r\n itemSpanCells.forEach((itemSpanCell: CellModel) => {\r\n allCellObjs.push({\r\n row: itemSpanCell.row,\r\n col: itemSpanCell.col,\r\n rowCount: itemSpanCell.rowCount,\r\n colCount: itemSpanCell.colCount,\r\n });\r\n });\r\n\r\n if (item.row === undefined || item.col === undefined || item.rowCount === undefined || item.colCount === undefined) {\r\n throw new Error('row、col、rowCount、colCount is required.');\r\n }\r\n\r\n // 遍历item中涉及到的所有单元格\r\n for (let i = item.row; i < +item.row + item.rowCount; i++) {\r\n for (let j = item.col; j < item.col + item.colCount; j++) {\r\n const curSpanCellObj = sheet.getSpan(i, j);\r\n\r\n // 检查当前单元格是否为合并单元格\r\n if (curSpanCellObj == null) {\r\n allCellObjs.push({\r\n row: i,\r\n col: j,\r\n rowCount: 1,\r\n colCount: 1,\r\n });\r\n }\r\n }\r\n }\r\n });\r\n\r\n // 对所有单元格坐标对象集合进行排序\r\n if (!isDoSelectRangesOrder) {\r\n allCellObjs = orderByJson(allCellObjs, !isMulColOrder ? ['row', 'col'] : ['col', 'row'], ['asc', 'asc']);\r\n }\r\n\r\n return allCellObjs;\r\n },\r\n\r\n /**\r\n * 根据单元格范围字符串获取单元格对象集合\r\n * @param sheet 工作表实例\r\n * @param formulaStr 单元格范围字符串(如:B2:C3、Sheet1!B2:C3、=Sheet1!B2:C3、=Sheet1!B2:C3,Sheet1!B5:D6,Sheet1!B8:C9)\r\n * 返回数组集合,格式如:[{ col: 0, row: 0, rowCount: 1, colCount: 1 }]\r\n */\r\n getAllCellObjsByRangeStr: (sheet: any, formulaStr: string): CellModel[] => {\r\n // 得到所有的单元格坐标对象集合,格式如:[{ row: 0, col: 0, rowCount: 1, colCount: 1 }]\r\n let allCellObjs: CellModel[] = [];\r\n\r\n // 单元格选择的范围为多个范围\r\n if (formulaStr.indexOf(',') > -1) {\r\n // 将多范围字符串分离为单个范围的数组\r\n const formulaStrArr = formulaStr.split(',');\r\n formulaStrArr.forEach((item, index) => {\r\n // 得到每个范围的字符串\r\n const rangeStr = item.substring(item.lastIndexOf('!') + 1);\r\n\r\n allCellObjs.push(sheet.getRange(rangeStr));\r\n });\r\n }\r\n // 只有一个范围\r\n else {\r\n // 直接将范围字符串传给sheet.getRange即可\r\n allCellObjs.push(sheet.getRange(formulaStr));\r\n }\r\n\r\n return allCellObjs;\r\n },\r\n\r\n /**\r\n * 获取某工作表中所有的单元格坐标对象集合\r\n * @param sheet 工作表实例\r\n * @returns 返回数组集合,格式如:[{ col: 0, colCount: 2, row: 0, rowCount: 1 }]\r\n */\r\n getSheetAllCellObjs: (sheet: any): CellModel[] => {\r\n // 得到当前Sheet单元格范围\r\n const curSheetCellRange = [\r\n {\r\n row: 0,\r\n col: 0,\r\n rowCount: sheet.getRowCount(),\r\n colCount: sheet.getColumnCount(),\r\n },\r\n ];\r\n\r\n // 得到所有的单元格坐标对象集合,格式如:[{ col: 0, colCount: 2, row: 0, rowCount: 1 }]\r\n const allCellObjs = SheetUtils.getAllCellObjsByRanges(sheet, curSheetCellRange);\r\n\r\n return allCellObjs;\r\n },\r\n\r\n /**\r\n * 获取某工作表中选中的所有单元格坐标对象集合\r\n * @param sheet 工作表实例\r\n * @param isMulColOrder 是否按照多列的顺序排序单元格(true:按照第一列从上到下、第二列从上到下……的顺序获取单元格数据、false:按照第一行从左到右、第二行从左到右……的顺序获取单元格数据)\r\n * @returns 返回数组集合,格式如:[{ col: 0, row: 0, \"rowCount\": 1, \"colCount\": 1 }]\r\n */\r\n getSheetSelectCellObjs: (sheet: any, isMulColOrder: boolean = false): CellModel[] => {\r\n // 得到当前Sheet中选择的单元格范围集合\r\n const curSheetCellRange = sheet.getSelections();\r\n\r\n // 得到所有的单元格坐标对象集合,格式如:[{ col: 0, colCount: 2, row: 0, rowCount: 1 }]\r\n const allCellObjs = SheetUtils.getAllCellObjsByRanges(sheet, curSheetCellRange, isMulColOrder);\r\n\r\n return allCellObjs;\r\n },\r\n\r\n /**\r\n * 获取活动工作表中选中的所有单元格坐标对象集合\r\n * @param spread 工作簿实例\r\n * @param isMulColOrder 是否按照多列的顺序排序单元格(true:按照第一列从上到下、第二列从上到下……的顺序获取单元格数据、false:按照第一行从左到右、第二行从左到右……的顺序获取单元格数据)\r\n * @returns 返回数组集合,格式如:[{ col: 0, row: 0, \"rowCount\": 1, \"colCount\": 1 }]\r\n */\r\n getActiveSheetSelectCellObjs: (spread: any, isMulColOrder: boolean = false): CellModel[] => {\r\n // 当前活动的Sheet\r\n const sheet = spread.getActiveSheet();\r\n\r\n return SheetUtils.getSheetSelectCellObjs(sheet, isMulColOrder);\r\n },\r\n\r\n /**\r\n * 获取某工作表指定范围单元格的坐标对象集合(二维数组,格式如:[[{row:0……}],[{row:0……}]])\r\n * @param sheet 工作表实例\r\n * @param cellRange 单元格范围\r\n * @param groupType 分组字段属性(row或col),默认为:row\r\n * @returns 返回某工作表指定范围单元格的坐标对象集合(二维数组,格式如:[[{row:0……}],[{row:0……}]])\r\n */\r\n getSheetCellObjsByGroup: (sheet: any, cellRange: CellModel, groupType: 'row' | 'col' = 'row'): Array<Array<CellModel>> => {\r\n // 暂停绘制\r\n sheet.suspendPaint();\r\n\r\n const valCells = SheetUtils.getAllCellObjsByRange(sheet, cellRange);\r\n\r\n // 按照JSON数组中某个字段进行分组(groupType为row或col)\r\n const groupByCells = groupByJson(valCells, groupType);\r\n\r\n // 最终返回结果(二维数组)\r\n const retCells: Array<Array<any>> = [];\r\n\r\n // 遍历分组JSON对象(groupByCells的格式为:{key1: [cell1, cell2, ...], key2: [cell1, cell2, ...], ...})\r\n forEachJson(groupByCells, (curGroupCells: CellModel[], key, source) => {\r\n retCells.push(curGroupCells);\r\n });\r\n\r\n // 恢复绘制\r\n sheet.resumePaint();\r\n\r\n return retCells;\r\n },\r\n\r\n /**\r\n * 获取某工作表选中单元格的值集合\r\n * @param sheet 工作表实例\r\n * @param isMulColOrder 是否按照多列的顺序排序单元格(true:按照第一列从上到下、第二列从上到下……的顺序获取单元格数据、false:按照第一行从左到右、第二行从左到右……的顺序获取单元格数据)\r\n * @param nullUndefinedReplaceVal 如果单元格的值为null或undefined,则将其替换为该值(如果不传入该参数,则不替换)\r\n * @returns 返回选中单元格的值集合\r\n */\r\n getSheetSelectVals: (\r\n sheet: any,\r\n isMulColOrder: boolean = false,\r\n nullUndefinedReplaceVal?: number | string,\r\n ): (number | string | null | undefined)[] => {\r\n // 获取活动工作表选中单元格对象集合\r\n const selectCells = SheetUtils.getSheetSelectCellObjs(sheet, isMulColOrder);\r\n\r\n // 获取选中单元格的值集合\r\n let selectCellVals: (number | string | null | undefined)[] = [];\r\n selectCells.forEach((cell) => {\r\n let cellVal = sheet.getValue(cell.row, cell.col);\r\n\r\n // 如果cellVal为null或undefined,并且nullUndefinedReplaceVal不为null或undefined,则将cellVal替换为nullUndefinedReplaceVal\r\n if (nullUndefinedReplaceVal != null && nullUndefinedReplaceVal != undefined && (cellVal === null || cellVal === undefined)) {\r\n cellVal = nullUndefinedReplaceVal;\r\n }\r\n\r\n selectCellVals.push(cellVal);\r\n });\r\n\r\n return selectCellVals;\r\n },\r\n\r\n /**\r\n * 获取活动工作表选中单元格的值集合\r\n * @param spread 工作簿实例\r\n * @param isMulColOrder 是否按照多列的顺序排序单元格(true:按照第一列从上到下、第二列从上到下……的顺序获取单元格数据、false:按照第一行从左到右、第二行从左到右……的顺序获取单元格数据)\r\n * @param nullUndefinedReplaceVal 如果单元格的值为null或undefined,则将其替换为该值(如果不传入该参数,则不替换)\r\n * @returns 返回选中单元格的值集合\r\n */\r\n getActiveSheetSelectVals: (\r\n spread: any,\r\n isMulColOrder: boolean = false,\r\n nullUndefinedReplaceVal?: number | string,\r\n ): (number | string | null | undefined)[] => {\r\n // 获取当前活动工作表\r\n const sheet = spread.getActiveSheet();\r\n\r\n return SheetUtils.getSheetSelectVals(sheet, isMulColOrder, nullUndefinedReplaceVal);\r\n },\r\n\r\n /**\r\n * 获取某工作表指定范围单元格的值集合(二维数组,格式如:[[1,2,3],[4,5,6]])\r\n * @param sheet 工作表实例\r\n * @param cellRange 单元格范围\r\n * @param groupType 分组字段属性(row或col),默认为:row\r\n * @param nullUndefinedReplaceVal 如果单元格的值为null或undefined,则将其替换为该值(如果不传入该参数,则不替换)\r\n * @returns 返回某工作表指定范围单元格的值集合(二维数组,格式如:[[1,2,3],[4,5,6]])\r\n */\r\n getSheetRangeValsByGroup: (\r\n sheet: any,\r\n cellRange: CellModel,\r\n groupType: 'row' | 'col' = 'row',\r\n nullUndefinedReplaceVal?: number | string | boolean,\r\n ): Array<Array<any>> => {\r\n // 暂停绘制\r\n sheet.suspendPaint();\r\n\r\n const valCells = SheetUtils.getAllCellObjsByRange(sheet, cellRange);\r\n\r\n // 按照JSON数组中某个字段进行分组(groupType为row或col)\r\n const groupByCells = groupByJson(valCells, groupType);\r\n\r\n // 最终返回结果(二维数组)\r\n const retVals: Array<Array<any>> = [];\r\n\r\n // 遍历分组JSON对象(groupByCells的格式为:{key1: [cell1, cell2, ...], key2: [cell1, cell2, ...], ...})\r\n forEachJson(groupByCells, (curGroupCells: CellModel[], key, source) => {\r\n // 当前按照row或col分组的单元格的值集合\r\n const curVals: Array<any> = [];\r\n\r\n // 遍历当前分组的所有单元格\r\n forEachJson(curGroupCells, (item, index, source) => {\r\n let cellVal = sheet.getValue(item.row, item.col);\r\n\r\n // 如果cellVal为null或undefined,并且nullUndefinedReplaceVal不为null或undefined,则将cellVal替换为nullUndefinedReplaceVal\r\n if (nullUndefinedReplaceVal != null && nullUndefinedReplaceVal != undefined && (cellVal === null || cellVal === undefined)) {\r\n cellVal = nullUndefinedReplaceVal;\r\n }\r\n\r\n curVals.push(cellVal);\r\n });\r\n\r\n retVals.push(curVals);\r\n });\r\n\r\n // 恢复绘制\r\n sheet.resumePaint();\r\n\r\n return retVals;\r\n },\r\n\r\n /**\r\n * 获取单元格类型名称\r\n * @param GC GC对象\r\n * @param sheet 工作表实例\r\n * @param row 单元格行索引\r\n * @param col 单元格列索引\r\n * @returns 返回单元格类型名称,如:button、radio、checkbox、checkboxList、hyperLink、comboBox、date、dateRange、calc\r\n */\r\n getCellType: (GC: any, sheet: any, row: number, col: number): string | undefined => {\r\n let cellTypeName;\r\n\r\n // 先根据getCellType来获取\r\n const cellType = sheet.getCellType(row, col);\r\n\r\n if (cellType instanceof GC.Spread.Sheets.CellTypes.Button) {\r\n cellTypeName = 'button';\r\n } else if (cellType instanceof GC.Spread.Sheets.CellTypes.RadioButtonList) {\r\n cellTypeName = 'radio';\r\n } else if (cellType instanceof GC.Spread.Sheets.CellTypes.CheckBox) {\r\n cellTypeName = 'checkbox';\r\n } else if (cellType instanceof GC.Spread.Sheets.CellTypes.CheckBoxList) {\r\n cellTypeName = 'checkboxList';\r\n } else if (cellType instanceof GC.Spread.Sheets.CellTypes.HyperLink) {\r\n cellTypeName = 'hyperLink';\r\n } else if (cellType instanceof GC.Spread.Sheets.CellTypes.ComboBox) {\r\n cellTypeName = 'comboBox';\r\n }\r\n\r\n // 根据getStyle来获取\r\n if (cellTypeName == undefined || cellTypeName == null) {\r\n const cellStyle = sheet.getStyle(row, col);\r\n\r\n if (cellStyle && cellStyle.cellButtons && cellStyle.cellButtons.length > 0) {\r\n if (cellStyle.cellButtons[0].command == 'openDateTimePicker') {\r\n if (cellStyle.dropDowns && cellStyle.dropDowns.length > 0) {\r\n if (cellStyle.dropDowns[0].option.showDateRange) {\r\n cellTypeName = 'dateRange';\r\n } else {\r\n cellTypeName = 'date';\r\n }\r\n }\r\n } else if (cellStyle.cellButtons[0].command == 'openCalculator') {\r\n cellTypeName = 'calc';\r\n }\r\n }\r\n }\r\n\r\n return cellTypeName;\r\n },\r\n\r\n /**\r\n * 设置工作簿中所有工作表的缩放比例\r\n * @param spread 工作簿实例\r\n * @param scale 缩放比例,默认为:1(100%)\r\n */\r\n setSheetZoom: (spread: any, scale: number) => {\r\n // 暂停绘制\r\n spread.suspendPaint();\r\n\r\n const sheetCount = spread.getSheetCount();\r\n for (let i = 0; i < sheetCount; i++) {\r\n const sheet = spread.getSheet(i);\r\n\r\n sheet.zoom(scale);\r\n }\r\n\r\n // 恢复绘制\r\n spread.resumePaint();\r\n },\r\n\r\n /**\r\n * 设置当前活动工作表中选中的单元格背景颜色\r\n * @param spread 工作簿实例\r\n * @param color 背景颜色\r\n */\r\n setActiveSheetSelectBgColor: (spread: any, color: string) => {\r\n const sheet = spread.getActiveSheet();\r\n\r\n // 暂停绘制\r\n sheet.suspendPaint();\r\n\r\n //#region 方式1:通过getRange进行批量设置,推荐使用该方法来实现\r\n\r\n // 获取选择的多个单元格范围集合\r\n const selections = SheetUtils.getActiveSheetSelectCells(spread);\r\n\r\n // 循环每个选中的单元格范围\r\n selections.forEach((sel: CellModel) => {\r\n // 批量设置每个选中的单元格范围的背景颜色\r\n sheet.getRange(sel.row, sel.col, sel.rowCount, sel.colCount).backColor(color);\r\n });\r\n\r\n //#endregion\r\n\r\n //#region 方式2:通过getCell获取单元格样式对每个单元格进行设置,此方式效率相对较低,不推荐\r\n\r\n // // 当前活动的工作表中所有选择的单元格\r\n // const selectCells = SheetUtils.getActiveSheetSelectCellObjs(spread);\r\n\r\n // selectCells.forEach(item => {\r\n // // 获取单元格对象\r\n // const cellObj = sheet.getCell(item.row, item.col);\r\n\r\n // // 获取单元格样式\r\n // let cellStyle = sheet.getStyle(item.row, item.col);\r\n // if (!cellStyle) {\r\n // // 不存在样式则new一个\r\n // cellStyle = new GC.Spread.Sheets.Style();\r\n // }\r\n\r\n // // 设置单元格背景颜色\r\n // cellStyle.backColor = color;\r\n\r\n // // 重新设置单元格样式\r\n // cellObj.setStyle(cellStyle);\r\n // });\r\n\r\n //#endregion\r\n\r\n // 恢复绘制\r\n sheet.resumePaint();\r\n },\r\n\r\n /**\r\n * 设置某工作表中指定单元格背景颜色\r\n * @param sheet 工作表实例\r\n * @param cells 单元格集合\r\n * @param color 背景颜色\r\n */\r\n setSheetBgColor: (sheet: any, cells: CellModel[], color: string) => {\r\n // 暂停绘制\r\n sheet.suspendPaint();\r\n\r\n // 循环每个选中的单元格范围\r\n cells.forEach((sel: CellModel) => {\r\n // 批量设置每个选中的单元格范围的背景颜色\r\n sheet.getRange(sel.row, sel.col, sel.rowCount, sel.colCount).backColor(color);\r\n });\r\n\r\n // 恢复绘制\r\n sheet.resumePaint();\r\n },\r\n\r\n /**\r\n * 设置工作簿中所有工作表是否显示分页线\r\n * @param spread 工作簿实例\r\n * @param isShow 是否显示分页线(true:显示、false:不显示)\r\n */\r\n setSheetShowPrintPageLine: (spread: any, isShow: boolean) => {\r\n // 暂停绘制\r\n spread.suspendPaint();\r\n\r\n const sheetCount = spread.getSheetCount();\r\n for (let i = 0; i < sheetCount; i++) {\r\n const sheet = spread.getSheet(i);\r\n\r\n // 获取当前工作表是否显示分页线\r\n // var isVisible = sheet.isPrintLineVisible();\r\n\r\n sheet.isPrintLineVisible(isShow);\r\n }\r\n\r\n // 恢复绘制\r\n spread.resumePaint();\r\n },\r\n\r\n /**\r\n * 忽略工作工作表元格中指定字符串不显示,如:#DIV/0!、#VALUE!等\r\n * @param GC GC对象\r\n */\r\n ignoreSheetShowStrs: (GC: any) => {\r\n // 忽略的字符串集合\r\n const ignoreStrs: string[] = ['#DIV/0!', '#VALUE!', '#NAME?', '#N/A', '#NULL!', '#NUM!', '#REF!'];\r\n\r\n // paint对象\r\n const ignorePaint = GC.Spread.Sheets.CellTypes.Text.prototype.paint;\r\n\r\n // 重写paint函数\r\n GC.Spread.Sheets.CellTypes.Text.prototype.paint = function (ctx: any, value: any, x: any, y: any, w: any, h: any, style: any, options: any) {\r\n // 如果在忽略的字符串集合中有匹配的结果,则将其显示为空字符串\r\n if (ignoreStrs.some((item) => item == value)) {\r\n ignorePaint.call(this, ctx, '/', x, y, w, h, style, options);\r\n } else {\r\n ignorePaint.apply(this, arguments);\r\n }\r\n\r\n // // 或使用如下代码\r\n // if (ignoreStrs.some((item) => item == value)) {\r\n // \tvalue = '';\r\n // }\r\n // ignorePaint.apply(this, [ctx, value, x, y, w, h, style, options]);\r\n };\r\n },\r\n\r\n /**\r\n * 设置工作表显示辅助线(底部和右侧的辅助线)\r\n * @param sheet 工作表实例\r\n * @param width 宽度(像素)\r\n * @param height 高度(像素)\r\n * @param lineWidth 辅助线宽度(默认为:1像素)\r\n * @param colorStr 辅助线颜色(默认为:#409eff)\r\n * @param isHb 是否为横表(默认为:false)\r\n */\r\n setSheetAuxiliaryLine: (\r\n GC: any,\r\n sheet: any,\r\n width: number,\r\n height: number,\r\n lineWidth: number = 1,\r\n colorStr: string = '#409eff',\r\n isHb: boolean = false,\r\n ) => {\r\n // 创建底部和右侧的浮动对象\r\n let floatBottom = new GC.Spread.Sheets.FloatingObjects.FloatingObject(`floatLineBottom${isHb ? 'Hb' : ''}`, 0, height, width, lineWidth),\r\n floatRight = new GC.Spread.Sheets.FloatingObjects.FloatingObject(`floatLineRight${isHb ? 'Hb' : ''}`, width, 0, lineWidth, height);\r\n\r\n // 创建底部和右侧的div对象\r\n let divBottom = document.createElement('div'),\r\n divRight = document.createElement('div');\r\n\r\n // 设置底部div对象样式\r\n divBottom.style.width = `${width}px`;\r\n divBottom.style.height = '1px';\r\n divBottom.style.borderBottom = `${lineWidth}px dashed ${colorStr}`;\r\n\r\n // 设置右侧div对象样式\r\n divRight.style.width = '1px';\r\n divRight.style.height = `${height}px`;\r\n divRight.style.borderLeft = `${lineWidth}px dashed ${colorStr}`;\r\n\r\n // floatBottom.fixedPosition(true);\r\n // floatRight.fixedPosition(true);\r\n\r\n // 设置底部和右侧浮动对象不允许改变大小、不允许拖动和设置浮动对象的内容\r\n floatBottom.allowResize(false);\r\n floatBottom.allowMove(false);\r\n floatBottom.content(divBottom);\r\n floatRight.allowResize(false);\r\n floatRight.allowMove(false);\r\n floatRight.content(divRight);\r\n\r\n // 将浮动元素添加到工作表中\r\n sheet.floatingObjects.add(floatBottom);\r\n sheet.floatingObjects.add(floatRight);\r\n },\r\n\r\n /**\r\n * 设置当前活动工作表的水印和数据绑定是否显示\r\n * @param spread 工作簿实例\r\n * @param cells 数据绑定单元格配置集合([{ row: number; col: number; title: string; pathPrev: string; pathField: string }])\r\n * @param isShow 是否显示水印\r\n * @param isShowBindPath 是否显示数据绑定路径,默认为:true\r\n */\r\n setActiveSheetWatermark: (spread: any, cells: CellWatermarkModel[], isShowWatermark: boolean, isShowBindPath: boolean = true) => {\r\n if (cells == null || cells == undefined) {\r\n return;\r\n }\r\n\r\n const sheet = spread.getActiveSheet();\r\n\r\n // 暂停绘制\r\n sheet.suspendPaint();\r\n\r\n cells.forEach((cell: CellWatermarkModel) => {\r\n // 设置或移除水印标签\r\n sheet.getCell(cell.row, cell.col).watermark(isShowWatermark ? `{${cell.title}}` : undefined);\r\n\r\n // 设置或移除绑定路径\r\n sheet.setBindingPath(cell.row, cell.col, isShowBindPath ? `${cell.pathPrev}.${cell.pathField}` : undefined);\r\n });\r\n\r\n // 恢复绘制\r\n sheet.resumePaint();\r\n },\r\n\r\n /**\r\n\t * 设置某工作表中单元格为日期选择控件\r\n\t * @param GC GC对象\r\n\t * @param sheet 工作表实例\r\n\t * @param cells 单元格集合,格式如:[{\r\n\t\t\tdateFormat: 'yyyy-MM-dd',\r\n\t\t\trow: 0,\r\n\t\t\tcol: 0\r\n\t\t}]\r\n\t * @param isAutoSize 是否自适应单元格大小(默认为:true)\r\n\t * @param isRange 是否为范围选择(默认为:false,如果设置为true,则显示的格式为2026-05-06至2026-05-08【如果选择的范围内只有1天,则显示的格式为2026-05-06】)\r\n\t */\r\n setSheetCellDate: (GC: any, sheet: any, cells: CellDateModel[], isAutoSize: boolean = true, isRange: boolean = false) => {\r\n cells.forEach((item, index) => {\r\n // 先获取单元格样式,否则设置控件后样式会丢失\r\n let cellStyle = sheet.getStyle(item.row, item.col);\r\n if (!cellStyle) {\r\n cellStyle = new GC.Spread.Sheets.Style();\r\n }\r\n\r\n cellStyle.cellButtons = [\r\n {\r\n imageType: GC.Spread.Sheets.ButtonImageType.dropdown,\r\n command: 'openDateTimePicker',\r\n visibility: GC.Spread.Sheets.ButtonVisibility.onSelected,\r\n // 按钮宽度\r\n // width: 10,\r\n },\r\n ];\r\n cellStyle.dropDowns = [\r\n {\r\n type: GC.Spread.Sheets.DropDownType.dateTimePicker,\r\n option: {\r\n showTime: false,\r\n showDateRange: isRange,\r\n },\r\n },\r\n ];\r\n cellStyle.formatter = !isRange\r\n ? item.dateFormat\r\n : '=IF(ISBLANK(@), \"\", IF(TEXT(@.start, \"yyyy-mm-dd\")=TEXT(@.end, \"yyyy-mm-dd\"), TEXT(@.start, \"yyyy-mm-dd\"), TEXT(@.start, \"yyyy-mm-dd\")&\"至\"&TEXT(@.end, \"yyyy-mm-dd\")))';\r\n\r\n // 是否缩小以适应\r\n cellStyle.shrinkToFit = isAutoSize;\r\n\r\n // 设置单元格样式\r\n sheet.setStyle(item.row, item.col, cellStyle);\r\n });\r\n },\r\n\r\n /**\r\n * 根据单元格范围获取范围字符串\r\n * @param cellRange 单元格范围\r\n * @returns 返回范围字符串,如:A1:B2\r\n */\r\n getRangeStr: (cellRange: CellModel): string => {\r\n // 计算起始位置\r\n const startCol = CommonUtils.getColLetterName(cellRange.col);\r\n // 行索引转Excel行号(从1开始)\r\n const startRow = cellRange.row + 1;\r\n\r\n // 计算结束位置\r\n const endCol = CommonUtils.getColLetterName(cellRange.col + cellRange.colCount - 1);\r\n // 结束行号 = 起始行 + 行数\r\n const endRow = cellRange.row + cellRange.rowCount;\r\n\r\n return `${startCol}${startRow}:${endCol}${endRow}`;\r\n\r\n // // 或者使用SpreadJS提供的方法rangeToFormula\r\n // return GC.Spread.Sheets.CalcEngine.rangeToFormula(cellRange);\r\n },\r\n\r\n /**\r\n * 获取工作表中所有纯值、无值或公式单元格的范围选择字符串\r\n * @param sheet 工作表对象\r\n * @param getType 获取类型(1:纯值、2:无值、3:公式),默认为:1\r\n * @param range 单元格范围,格式为:{ row: number; col: number; rowCount: number; colCount: number }\r\n */\r\n getCellsRangeStr: (sheet: any, getType: number, range: { row: number; col: number; rowCount: number; colCount: number }): string => {\r\n // const range = { row: 0, col: 1, rowCount: sheet.getRowCount(), colCount: 77 };\r\n\r\n // 所有单元格对象集合\r\n const allCells = SheetUtils.getAllCellObjsByRanges(sheet, [range]);\r\n\r\n // 最终需要的单元格对象集合\r\n let retCells = [];\r\n\r\n // 遍历所有单元格\r\n allCells.forEach((cell) => {\r\n const value = sheet.getValue(cell.row, cell.col);\r\n const formula = sheet.getFormula(cell.row, cell.col);\r\n\r\n // 非公式+有值(非空) || 无值 || 公式\r\n if (\r\n (getType == 1 && !formula && value !== null && value !== undefined && value !== '') ||\r\n (getType == 2 && (value == null || value == undefined || value == '')) ||\r\n (getType == 3 && formula)\r\n ) {\r\n retCells.push(cell);\r\n\r\n // 如果为无值类型,则设置单元格格式为文本格式\r\n if (getType == 2 && (value == null || value == undefined || value == '')) {\r\n sheet.setFormatter(cell.row, cell.col, '@');\r\n }\r\n }\r\n });\r\n\r\n // 辅助函数:将列索引转为大写字母(如 0->A, 1->B, 26->AA)\r\n const indexToAlpha = (index) => {\r\n let alpha = '';\r\n while (index >= 0) {\r\n alpha = String.fromCharCode(65 + (index % 26)) + alpha;\r\n index = Math.floor(index / 26) - 1;\r\n if (index < 0) break;\r\n }\r\n return alpha;\r\n };\r\n\r\n // Sheet名称\r\n const sheetName = sheet.name();\r\n\r\n // 处理每个单元格/区域\r\n const cellStrings = retCells.map((cell) => {\r\n // 起始列字母\r\n const colAlpha = indexToAlpha(cell.col);\r\n // 起始行号(从1计数)\r\n const startRow = cell.row + 1;\r\n\r\n // 合并单元格只返回左上角单元格\r\n const isMerged = cell.rowCount > 1 || cell.colCount > 1;\r\n\r\n // 处理区域范围(合并单元格只返回左上角)\r\n if (isMerged) {\r\n return `${sheetName}!${colAlpha}${startRow}`;\r\n }\r\n // 处理单单元格\r\n else {\r\n return `${sheetName}!${colAlpha}${startRow}`;\r\n }\r\n });\r\n\r\n return '=' + cellStrings.join(',');\r\n },\r\n\r\n /**\r\n * 粘贴单元格的值\r\n * @param sheet 工作表对象\r\n * @param callFn 粘贴成功或失败的回调函数(该回调函数包含2个参数,第一个参数为是否粘贴成功,第二个参数为提示信息)\r\n */\r\n pasteCellValues: async (sheet, callFn?: (isSuccess: boolean, tipMsg: string) => void) => {\r\n // 检查浏览器是否支持Clipboard API\r\n if (!navigator.clipboard || !navigator.clipboard.readText) {\r\n // throw new Error(\"您的浏览器不支持剪贴板读取功能\");\r\n if (callFn != null && callFn != undefined && typeof callFn == 'function') {\r\n callFn(false, '您的浏览器不支持剪贴板读取功能!');\r\n }\r\n return;\r\n }\r\n\r\n // 请求剪贴板读取权限\r\n const permission = await navigator.permissions.query({\r\n name: 'clipboard-read' as PermissionName,\r\n });\r\n if (permission.state === 'denied') {\r\n // throw new Error(\"剪贴板读取权限被拒绝\");\r\n if (callFn != null && callFn != undefined && typeof callFn == 'function') {\r\n callFn(false, '剪贴板读取权限被拒绝!');\r\n }\r\n return;\r\n }\r\n\r\n /**\r\n * 解析从Excel复制的TSV格式数据,智能处理合并单元格导致的空列\r\n * @param data 剪贴板中的原始TSV数据\r\n * @returns 二维数组,代表行和列,已压缩合并单元格\r\n */\r\n function parseExcelData(data: string): string[][] {\r\n const result: string[][] = [];\r\n let currentRow: string[] = [];\r\n let currentCell = '';\r\n let insideQuotes = false;\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n const char = data[i];\r\n\r\n if (char === '\"') {\r\n if (insideQuotes && data[i + 1] === '\"') {\r\n currentCell += '\"';\r\n i++;\r\n } else {\r\n insideQuotes = !insideQuotes;\r\n }\r\n } else if (char === '\\t' && !insideQuotes) {\r\n // 遇到制表符,结束当前单元格\r\n currentRow.push(currentCell);\r\n currentCell = '';\r\n } else if ((char === '\\n' || char === '\\r') && !insideQuotes) {\r\n // 遇到换行符,结束当前行\r\n if (char === '\\r' && data[i + 1] === '\\n') {\r\n i++;\r\n }\r\n\r\n currentRow.push(currentCell);\r\n\r\n // 关键改进:压缩当前行,合并连续的空单元格\r\n const compressedRow = compressRow(currentRow);\r\n if (compressedRow.length > 0) {\r\n result.push(compressedRow);\r\n }\r\n\r\n currentRow = [];\r\n currentCell = '';\r\n } else {\r\n currentCell += char;\r\n }\r\n }\r\n\r\n // 处理最后一行\r\n if (currentCell !== '' || currentRow.length > 0) {\r\n currentRow.push(currentCell);\r\n const compressedRow = compressRow(currentRow);\r\n if (compressedRow.length > 0) {\r\n result.push(compressedRow);\r\n }\r\n }\r\n\r\n return result.filter((row) => row.some((cell) => cell.trim() !== ''));\r\n }\r\n /**\r\n * 压缩行数据:将连续的空单元格合并,只保留有内容的单元格\r\n * 例如:['','','测试'] 变为 ['测试']\r\n * ['A','','B','','C'] 变为 ['A','B','C']\r\n */\r\n function compressRow(row: string[]): string[] {\r\n const compressed: string[] = [];\r\n let emptyCount = 0;\r\n\r\n for (let i = 0; i < row.length; i++) {\r\n const cell = row[i].trim();\r\n\r\n if (cell === '') {\r\n emptyCount++;\r\n } else {\r\n // 如果之前有空单元格,且当前单元格有内容,且这不是行首\r\n if (emptyCount > 0 && compressed.length > 0) {\r\n // 保留一个空位置作为分隔,或者完全压缩取决于你的需求\r\n // compressed.push(''); // 如果需要保留分隔则取消注释\r\n }\r\n compressed.push(cell);\r\n emptyCount = 0;\r\n }\r\n }\r\n\r\n return compressed;\r\n }\r\n\r\n const allCells = SheetUtils.getSheetSelectCellObjs(sheet);\r\n const allCellsGroup = groupByJson(allCells, 'row');\r\n const allCellsEw: CellModel[][] = [];\r\n forEachJson(allCellsGroup, (value: CellModel[], key, source) => {\r\n allCellsEw.push(value);\r\n });\r\n\r\n // 读取剪贴板文本内容\r\n const clipboardText = await navigator.clipboard.readText();\r\n\r\n // 得到剪贴板中的二维数组值\r\n const clipboardData = parseExcelData(clipboardText);\r\n\r\n // 验证剪贴板的二维数组内容和框选的单元格二维数组是否一致\r\n let isRight = true;\r\n // if (allCellsEw.length != clipboardData.length) {\r\n // isRight = false;\r\n // } else {\r\n // for (let i = 0; i < allCellsEw.length; i++) {\r\n // const row = allCellsEw[i];\r\n // const clipboardRow = clipboardData[i];\r\n\r\n // if (row.length != clipboardRow.length) {\r\n // isRight = false;\r\n // break;\r\n // }\r\n // }\r\n // }\r\n if (!isRight && callFn != null && callFn != undefined && typeof callFn == 'function') {\r\n callFn(false, '复制的内容区域和框选的表格区域不一致!');\r\n return;\r\n }\r\n\r\n sheet.suspendPaint();\r\n\r\n for (let i = 0; i < allCellsEw.length; i++) {\r\n const row = allCellsEw[i];\r\n\r\n for (let j = 0; j < row.length; j++) {\r\n const cell = row[j];\r\n const cellValue = clipboardData[i][j];\r\n\r\n sheet.setValue(cell.row, cell.col, cellValue);\r\n\r\n // 检查内容是否有换行,有就启用单元格自动换行的配置\r\n if (cellValue && cellValue.includes('\\n')) {\r\n sheet.getCell(cell.row, cell.col).wordWrap(true);\r\n }\r\n }\r\n }\r\n\r\n sheet.resumePaint();\r\n\r\n if (callFn != null && callFn != undefined && typeof callFn == 'function') {\r\n callFn(true, '粘贴成功!');\r\n }\r\n },\r\n};\r\n","import { chunkJson, groupByJson, forEachJson, orderByJson, unionJson } from 'rapid-utils';\r\nimport { TestObjectAttrModel } from '../types/business';\r\nimport { SheetUtils } from '../utils/sheet';\r\nimport { CellModel } from '../types/sheet';\r\n\r\n/**\r\n * SpreadJS业务相关工具函数属性\r\n */\r\nexport const BusinessUtils = {\r\n /**\r\n * 创建检测对象属性单元格\r\n * @param gc GC对象\r\n * @param sheet 工作表实例\r\n * @param testObjectAttrs 检测对象属性配置集合\r\n * @param addRowIndex 添加检测对象属性区域的起始行索引,默认为:0\r\n * @param deleteRowsCount 删除的行数,默认为:0\r\n * @param isVertical 是否为纵表,默认为:true\r\n * @param valueAlign 值单元格对齐方式,默认为:left\r\n * @param valuePaddingLeft 值单元格的左边距,默认为:0(单位为像素)\r\n * @param contentColStartIndex 表格内容列起始索引,默认为:1\r\n * @param contentTotalColCount 表格内容列总数,默认为:77\r\n * @param addRowHeight 添加的表格行高,默认为:24(单位为像素)\r\n * @returns 返回生成的检测对象属性行单元格数组和行对象数组,格式如:{ allRowCells: [[{row:0,col:0}]], attrObjs: [[{fieldName:\"attr1\",title:\"属性1\",value:\"值1\"}]] }\r\n */\r\n createTestObjectAttrsCells: (\r\n gc: any,\r\n sheet: any,\r\n testObjectAttrs: TestObjectAttrModel[],\r\n addRowIndex: number = 0,\r\n deleteRowsCount: number = 0,\r\n isVertical: boolean = true,\r\n valueAlign: 'left' | 'center' | 'right' = 'left',\r\n valuePaddingLeft: number = 0,\r\n contentColStartIndex: number = 1,\r\n contentTotalColCount: number = 77,\r\n addRowHeight: number = 24,\r\n ): { allRowCells: any[][]; attrObjs: any[][] } => {\r\n if (!testObjectAttrs || testObjectAttrs.length === 0) {\r\n return;\r\n }\r\n\r\n // 标题单元格列数量(纵表为12列,横表待定)\r\n const titleCellColumnCount = isVertical ? 12 : 10;\r\n // 标题对应的值单元格列数量(纵表:第一个值单元格为26、第二个值单元格为27,纵表待定)\r\n const titleCellValColumnCount = isVertical ? 26 : testObjectAttrs.length == 2 ? 28 : 15;\r\n\r\n // 一行中检测对象属性的个数(纵表为2个,横表为3个)\r\n const rowTestObjectCount = isVertical ? 2 : 3;\r\n\r\n // 将测试对象属性数据进行分块\r\n const testObjectAttrsChunk = chunkJson(testObjectAttrs, rowTestObjectCount);\r\n\r\n // 暂停绘制\r\n sheet.suspendPaint();\r\n\r\n // 获取当前Sheet的行数\r\n const rowCount = sheet.getRowCount();\r\n\r\n // 如果添加检测对象属性区域的起始行索引超过了工作表的行数,则设置addRowIndex为工作表的行数\r\n if (addRowIndex > rowCount - 1) {\r\n addRowIndex = rowCount;\r\n }\r\n\r\n // 删除行\r\n if (deleteRowsCount > 0) {\r\n sheet.deleteRows(addRowIndex, deleteRowsCount);\r\n }\r\n\r\n /**\r\n * 设置单元格字体和大小\r\n * @param row\r\n * @param col\r\n * @param isValueCell 是否为值单元格,默认为:false\r\n */\r\n const setFontSizeFamily = (row: number, col: number, isValueCell: boolean = false) => {\r\n const cellObj = sheet.getCell(row, col);\r\n\r\n cellObj.fontFamily('宋体').fontSize('9pt').fontStyle('undefined').cellPadding(`0 0 0 ${valuePaddingLeft}`);\r\n\r\n // 值单元格的时候,居左显示\r\n if (isValueCell) {\r\n cellObj.hAlign(\r\n valueAlign == 'left'\r\n ? gc.Spread.Sheets.HorizontalAlign.left\r\n : valueAlign == 'center'\r\n ? gc.Spread.Sheets.HorizontalAlign.center\r\n : valueAlign == 'right'\r\n ? gc.Spread.Sheets.HorizontalAlign.right\r\n : gc.Spread.Sheets.HorizontalAlign.left,\r\n );\r\n }\r\n };\r\n\r\n // 返回所有单元格的二维数组\r\n let allRowCells: any[][] = [];\r\n\r\n for (let i = 0; i < testObjectAttrsChunk.length; i++) {\r\n let curRowCells: Array<{ row: number; col: number }> = [];\r\n\r\n const rowAttrArr = testObjectAttrsChunk[i] as TestObjectAttrModel[];\r\n\r\n // 获取总行数\r\n const totalRowCount: number = addRowIndex + i; //sheet.getRowCount();\r\n\r\n // 添加一行\r\n sheet.addRows(totalRowCount, 1);\r\n\r\n // 设置添加这一行的行高\r\n sheet.setRowHeight(totalRowCount, addRowHeight, gc.Spread.Sheets.SheetArea.viewport);\r\n\r\n // 获取添加这一行的区域范围\r\n const addRowRange = sheet.getRange(totalRowCount, 1, contentColStartIndex, contentTotalColCount, gc.Spread.Sheets.SheetArea.viewport);\r\n // 设置添加这一行区域中的边框样式(上下左右边框样式为粗线、中间的为细边框样式)\r\n addRowRange.setBorder(new gc.Spread.Sheets.LineBorder('#000', gc.Spread.Sheets.LineStyle.thin), { all: true });\r\n addRowRange.setBorder(new gc.Spread.Sheets.LineBorder('#000', gc.Spread.Sheets.LineStyle.medium), {\r\n left: true,\r\n right: true,\r\n top: i == 0,\r\n // bottom: i == testObjectAttrsChunk.length - 1\r\n bottom: false,\r\n });\r\n // 设置单元格水平和垂直居中\r\n addRowRange.hAlign(gc.Spread.Sheets.HorizontalAlign.center);\r\n addRowRange.vAlign(gc.Spread.Sheets.HorizontalAlign.center);\r\n\r\n // 合并第一个属性的标题列和值列,同时设置对应单元格的内容\r\n sheet.addSpan(totalRowCount, contentColStartIndex, 1, titleCellColumnCount, gc.Spread.Sheets.SheetArea.viewport);\r\n sheet.addSpan(\r\n totalRowCount,\r\n contentColStartIndex + titleCellColumnCount,\r\n 1,\r\n rowAttrArr.length > 1 ? titleCellValColumnCount : contentTotalColCount - titleCellColumnCount,\r\n gc.Spread.Sheets.SheetArea.viewport,\r\n );\r\n sheet.setValue(totalRowCount, contentColStartIndex, rowAttrArr[0].title);\r\n sheet.setValue(\r\n totalRowCount,\r\n contentColStartIndex + titleCellColumnCount,\r\n rowAttrArr[0].blindDisplayStatus != null && rowAttrArr[0].blindDisplayStatus != undefined && rowAttrArr[0].blindDisplayStatus == true\r\n ? '此处隐藏'\r\n : rowAttrArr[0].value,\r\n );\r\n // 启用单元格自动换行 和 自适应行高\r\n sheet.getCell(totalRowCount, contentColStartIndex).wordWrap(true);\r\n sheet.getCell(totalRowCount, contentColStartIndex + titleCellColumnCount).wordWrap(true);\r\n sheet.autoFitRow(totalRowCount);\r\n // if (sheet.getRowHeight(totalRowCount) < 31) {\r\n // sheet.setRowHeight(totalRowCount, 31);\r\n // }\r\n\r\n curRowCells.push({ row: totalRowCount, col: contentColStartIndex });\r\n curRowCells.push({ row: totalRowCount, col: contentColStartIndex + titleCellColumnCount });\r\n\r\n setFontSizeFamily(totalRowCount, contentColStartIndex);\r\n setFontSizeFamily(totalRowCount, contentColStartIndex + titleCellColumnCount, true);\r\n\r\n // 设置“此处隐藏”单元格的字体样式\r\n if (rowAttrArr[0].blindDisplayStatus != null && rowAttrArr[0].blindDisplayStatus != undefined && rowAttrArr[0].blindDisplayStatus == true) {\r\n sheet\r\n .getCell(totalRowCount, contentColStartIndex + titleCellColumnCount)\r\n .fontFamily('宋体')\r\n .fontSize('12px')\r\n .fontStyle('italic');\r\n }\r\n\r\n // 合并第二个属性的标题列和值列,同时设置对应单元格的内容\r\n if (rowAttrArr.length > 1) {\r\n const colIndexTitle = contentColStartIndex + titleCellColumnCount + titleCellValColumnCount;\r\n const colIndexValue = colIndexTitle + titleCellColumnCount;\r\n\r\n sheet.addSpan(totalRowCount, colIndexTitle, 1, titleCellColumnCount, gc.Spread.Sheets.SheetArea.viewport);\r\n sheet.addSpan(\r\n totalRowCount,\r\n colIndexValue,\r\n 1,\r\n // titleCellValColumnCount + 1 + (!isVertical && rowAttrArr.length == 2 ? titleCellColumnCount + titleCellValColumnCount + 1 : 0),\r\n testObjectAttrs.length == 2\r\n ? titleCellValColumnCount + 1\r\n : titleCellValColumnCount + 1 + (!isVertical && rowAttrArr.length == 2 ? titleCellColumnCount + titleCellValColumnCount + 1 : 0),\r\n gc.Spread.Sheets.SheetArea.viewport,\r\n );\r\n sheet.setValue(totalRowCount, colIndexTitle, rowAttrArr[1].title);\r\n sheet.setValue(\r\n totalRowCount,\r\n colIndexValue,\r\n rowAttrArr[1].blindDisplayStatus != null && rowAttrArr[1].blindDisplayStatus != undefined && rowAttrArr[1].blindDisplayStatus == true\r\n ? '此处隐藏'\r\n : rowAttrArr[1].value,\r\n );\r\n // 启用单元格自动换行 和 自适应行高\r\n sheet.getCell(totalRowCount, colIndexTitle).wordWrap(true);\r\n sheet.getCell(totalRowCount, colIndexValue).wordWrap(true);\r\n sheet.autoFitRow(totalRowCount);\r\n // if (sheet.getRowHeight(totalRowCount) < 31) {\r\n // sheet.setRowHeight(totalRowCount, 31);\r\n // }\r\n\r\n curRowCells.push({ row: totalRowCount, col: colIndexTitle });\r\n curRowCells.push({ row: totalRowCount, col: colIndexValue });\r\n\r\n setFontSizeFamily(totalRowCount, colIndexTitle);\r\n setFontSizeFamily(totalRowCount, colIndexValue, true);\r\n\r\n // 设置“此处隐藏”单元格的字体样式\r\n if (rowAttrArr[1].blindDisplayStatus != null && rowAttrArr[1].blindDisplayStatus != undefined && rowAttrArr[1].blindDisplayStatus == true) {\r\n sheet.getCell(totalRowCount, colIndexValue).fontFamily('宋体').fontSize('12px').fontStyle('italic');\r\n }\r\n }\r\n\r\n // 合并第三个属性的标题列和值列,同时设置对应单元格的内容\r\n if (rowAttrArr.length > 2) {\r\n const colIndexTitle =\r\n contentColStartIndex + titleCellColumnCount + titleCellValColumnCount + titleCellColumnCount + titleCellValColumnCount + 1;\r\n const colIndexValue = colIndexTitle + titleCellColumnCount;\r\n\r\n sheet.addSpan(totalRowCount, colIndexTitle, 1, titleCellColumnCount, gc.Spread.Sheets.SheetArea.viewport);\r\n sheet.addSpan(totalRowCount, colIndexValue, 1, titleCellValColumnCount + 1, gc.Spread.Sheets.SheetArea.viewport);\r\n sheet.setValue(totalRowCount, colIndexTitle, rowAttrArr[2].title);\r\n sheet.setValue(\r\n totalRowCount,\r\n colIndexValue,\r\n rowAttrArr[2].blindDisplayStatus != null && rowAttrArr[2].blindDisplayStatus != undefined && rowAttrArr[2].blindDisplayStatus == true\r\n ? '此处隐藏'\r\n : rowAttrArr[2].value,\r\n );\r\n // 启用单元格自动换行 和 自适应行高\r\n sheet.getCell(totalRowCount, colIndexTitle).wordWrap(true);\r\n sheet.getCell(totalRowCount, colIndexValue).wordWrap(true);\r\n sheet.autoFitRow(totalRowCount);\r\n // if (sheet.getRowHeight(totalRowCount) < 31) {\r\n // sheet.setRowHeight(totalRowCount, 31);\r\n // }\r\n\r\n curRowCells.push({ row: totalRowCount, col: colIndexTitle });\r\n curRowCells.push({ row: totalRowCount, col: colIndexValue });\r\n\r\n setFontSizeFamily(totalRowCount, colIndexTitle);\r\n setFontSizeFamily(totalRowCount, colIndexValue, true);\r\n\r\n // 设置“此处隐藏”单元格的字体样式\r\n if (rowAttrArr[2].blindDisplayStatus != null && rowAttrArr[2].blindDisplayStatus != undefined && rowAttrArr[2].blindDisplayStatus == true) {\r\n sheet.getCell(totalRowCount, colIndexValue).fontFamily('宋体').fontSize('12px').fontStyle('italic');\r\n }\r\n }\r\n\r\n // 将当前行的所有单元格添加到allRowCells数组中\r\n allRowCells.push(curRowCells);\r\n }\r\n\r\n // 恢复绘制\r\n sheet.resumePaint();\r\n\r\n return {\r\n allRowCells: allRowCells,\r\n attrObjs: testObjectAttrsChunk,\r\n };\r\n },\r\n /**\r\n * 获取检测对象属性值集合\r\n * @param sheet 工作表实例\r\n * @param testObjectAttrs 检测对象属性配置集合\r\n * @param addRowIndex 添加检测对象属性区域的起始行索引,默认为:0\r\n * @param isVertical 是否为纵表,默认为:true\r\n * @param contentColStartIndex 表格内容列起始索引,默认为:1\r\n * @param contentTotalColCount 表格内容列总数,默认为:77\r\n */\r\n getTestObjectAttrsVals: (\r\n sheet: any,\r\n testObjectAttrs: TestObjectAttrModel[],\r\n addRowIndex: number = 0,\r\n isVertical: boolean = true,\r\n contentColStartIndex: number = 1,\r\n contentTotalColCount: number = 77,\r\n ): TestObjectAttrModel[] => {\r\n // 一行中检测对象属性的个数(纵表为2个,横表为3个)\r\n const rowTestObjectCount = isVertical ? 2 : 3;\r\n\r\n // 将测试对象属性数据进行分块\r\n const testObjectAttrsChunk = chunkJson(testObjectAttrs, rowTestObjectCount);\r\n\r\n // 暂停绘制\r\n sheet.suspendPaint();\r\n\r\n // 所有单元格对象\r\n const allCells = SheetUtils.getAllCellObjsByRange(sheet, {\r\n row: addRowIndex,\r\n col: contentColStartIndex,\r\n rowCount: sheet.getRowCount(),\r\n colCount: contentTotalColCount,\r\n });\r\n // 将所有单元格对象进行分块\r\n const allCellsChunk = chunkJson(allCells, rowTestObjectCount * 2);\r\n\r\n // 将所有单元格对象按照testObjectAttrsChunk的结构进行组合\r\n const newAllCellsChunk = [];\r\n for (let i = 0; i < allCellsChunk.length; i++) {\r\n newAllCellsChunk.push(chunkJson(allCellsChunk[i], 2));\r\n }\r\n\r\n let retData: TestObjectAttrModel[] = [];\r\n\r\n for (let i = 0; i < testObjectAttrsChunk.length; i++) {\r\n const attrObjs = testObjectAttrsChunk[i] as TestObjectAttrModel[];\r\n\r\n for (let j = 0; j < attrObjs.length; j++) {\r\n const attrObj = attrObjs[j];\r\n\r\n retData.push({\r\n title: sheet.getValue(newAllCellsChunk[i][j][0].row, newAllCellsChunk[i][j][0].col), //attrObj.title,\r\n fieldName: attrObj.fieldName,\r\n value: sheet.getValue(newAllCellsChunk[i][j][1].row, newAllCellsChunk[i][j][1].col),\r\n });\r\n }\r\n }\r\n\r\n // 恢复绘制\r\n sheet.resumePaint();\r\n\r\n return retData;\r\n },\r\n /**\r\n * 动态创建循环行\r\n * @param GC GC对象\r\n * @param spread 工作簿实例\r\n * @param cellRange 单元格范围JSON对象,格式为:{row:0, col:0, rowCount:2, colCount:5}\r\n * @param curDefaultPointCount 本次默认点数\r\n * @param lastDefaultPointCount 上次默认点数,默认为:0(0代表首次创建)\r\n * @param isClearCreateCellsValue 是否清空创建的行单元格值,默认为:false\r\n * @param isAutoFillFirstCellNumber 是否自动填充第一个单元格为序号数字,默认为:false(当isClearCreateCellsValue=false时,该参数才有效)\r\n * @param created 创建完成后的回调函数,第一个参数为循环后的所有单元格范围对象(格式为:{row:0, col:0, rowCount:10, colCount:5}),第二个参数为所有循环行的单元格二维数组对象\r\n * @param rowHeight 创建的行高度,默认为:undefined(如果传了该参数,则新复制的行高为该参数指定的高度,否则为原始循环的行高)\r\n */\r\n dynamicCreateCyclicRows: (\r\n GC,\r\n spread,\r\n cellRange: { row: number; col: number; rowCount: number; colCount: number },\r\n curDefaultPointCount: number,\r\n lastDefaultPointCount = 0,\r\n isClearCreateCellsValue: boolean = false,\r\n isAutoFillFirstCellNumber: boolean = false,\r\n created: (cyclicCellsRange: { row: number; col: number; rowCount: number; colCount: number }, cyclicCells: CellModel[][]) => void = null,\r\n rowHeight?: number,\r\n ) => {\r\n // 不进行动态创建行\r\n if ((curDefaultPointCount <= 1 && lastDefaultPointCount == 0) || (curDefaultPointCount == lastDefaultPointCount && lastDefaultPointCount > 0)) {\r\n return;\r\n }\r\n\r\n // 获取当前工作表\r\n const sheet = spread.getActiveSheet();\r\n\r\n // 判断要循环的单元格最后一行是否为表格的末尾行,如果是,则在循环创建单元行的最后一行的时候,下边框线位细线样式\r\n const isCyclicLastRowIsSheetLastRow = cellRange.row + cellRange.rowCount == sheet.getRowCount();\r\n\r\n // 循环行的每一行原始高度\r\n let oldRowHeights: number[] = [];\r\n for (let i = cellRange.row; i <= cellRange.row + cellRange.rowCount - 1; i++) {\r\n oldRowHeights.push(sheet.getRowHeight(i));\r\n }\r\n\r\n /**\r\n * 添加行\r\n * @param addRowIndex 添加行的索引位置\r\n * @param addRowCount 添加行的数量\r\n * @param copyPointCount 复制点数的数量\r\n */\r\n const addRowsFun = (addRowIndex: number, addRowCount: number, copyPointCount: number) => {\r\n // 添加需要循环的总行数\r\n sheet.addRows(addRowIndex, addRowCount);\r\n\r\n // 设置添加行的行高\r\n let rowHeightIndex = 0;\r\n for (let i = addRowIndex; i <= addRowIndex + addRowCount; i++) {\r\n sheet.setRowHeight(\r\n i,\r\n rowHeight != null && rowHeight != undefined ? rowHeight : oldRowHeights[rowHeightIndex],\r\n GC.Spread.Sheets.SheetArea.viewport,\r\n );\r\n\r\n if (rowHeightIndex < oldRowHeights.length - 1) {\r\n rowHeightIndex++;\r\n } else {\r\n rowHeightIndex = 0;\r\n }\r\n }\r\n\r\n // 复制次数,每次复制到下方相邻位置\r\n for (let i = 1; i <= copyPointCount; i++) {\r\n // 计算目标起始行\r\n const targetRow = addRowIndex + (i - 1) * cellRange.rowCount;\r\n\r\n // 使用sheet.copyTo方法进行复制\r\n sheet.copyTo(\r\n cellRange.row, // 源起始行\r\n cellRange.col, // 源起始列\r\n\r\n targetRow, // 目标起始行\r\n cellRange.col, // 目标起始列\r\n\r\n cellRange.rowCount, // 源行数\r\n cellRange.colCount, // 源列数\r\n\r\n GC.Spread.Sheets.CopyToOptions.all, // 复制内容类型(值、样式、公式等)\r\n );\r\n\r\n // 使用命令的方式\r\n // // 定义源区域\r\n // var fromRange = [new GC.Spread.Sheets.Range(cellRange.row, cellRange.col, cellRange.rowCount, cellRange.colCount)];\r\n // // 定义目标区域\r\n // var toRange = [new GC.Spread.Sheets.Range(targetRow, cellRange.col, cellRange.rowCount, cellRange.colCount)];\r\n // // 执行复制命令\r\n // spread.commandManager().execute({\r\n // cmd: \"clipboardPaste\",\r\n // sheetName: sheet.name(), // 目标工作表名称\r\n // fromSheet: sheet, // 源工作表对象\r\n // fromRanges: fromRange, // 源区域数组\r\n // pastedRanges: toRange, // 目标区域数组\r\n // isCutting: false, // false 表示复制\r\n // clipboardText: \"\", // 留空\r\n // pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.all // 粘贴全部内容(数据、样式、公式等)\r\n // });\r\n }\r\n\r\n // 清空创建的行单元格值\r\n if (isClearCreateCellsValue) {\r\n // 获取添加行范围的所有单元格\r\n const addCells = SheetUtils.getAllCellObjsByRange(sheet, { row: addRowIndex, col: 1, rowCount: addRowCount, colCount: 77 });\r\n addCells.forEach((cell) => {\r\n sheet.setValue(cell.row, cell.col, '');\r\n });\r\n }\r\n };\r\n\r\n // 暂停绘制、计算、事件\r\n sheet.suspendPaint();\r\n sheet.suspendCalcService();\r\n sheet.suspendDirty();\r\n sheet.suspendEvent();\r\n\r\n // 当前默认点数<=1并且上一次默认点数>0的时候,则删除所有循环的行\r\n if (curDefaultPointCount <= 1 && lastDefaultPointCount > 0) {\r\n sheet.deleteRows(cellRange.row + cellRange.rowCount, (curDefaultPointCount - 1) * cellRange.rowCount);\r\n }\r\n // 当前默认点数>1并且上次默认点数>1的时候\r\n else if (curDefaultPointCount > 1 && lastDefaultPointCount > 1) {\r\n // 当前默认点数>上次默认点数时,则需要增加curDefaultPointCount-lastDefaultPointCount次循环\r\n if (curDefaultPointCount > lastDefaultPointCount) {\r\n addRowsFun(\r\n cellRange.row + lastDefaultPointCount * cellRange.rowCount,\r\n (curDefaultPointCount - lastDefaultPointCount) * cellRange.rowCount,\r\n curDefaultPointCount - lastDefaultPointCount,\r\n );\r\n }\r\n // 当前默认点数<上次默认点数时,则需要删除lastDefaultPointCount-curDefaultPointCount次循环所在的行\r\n else if (curDefaultPointCount < lastDefaultPointCount) {\r\n sheet.deleteRows(\r\n cellRange.row + cellRange.rowCount + (curDefaultPointCount - 1) * cellRange.rowCount,\r\n (lastDefaultPointCount - curDefaultPointCount) * cellRange.rowCount,\r\n );\r\n }\r\n }\r\n // 循环添加所有行\r\n else if (curDefaultPointCount > 1 && lastDefaultPointCount == 0) {\r\n addRowsFun(cellRange.row + cellRange.rowCount, (curDefaultPointCount - 1) * cellRange.rowCount, curDefaultPointCount - 1);\r\n }\r\n\r\n // 循环后的所有单元格范围\r\n const cyclicCellsRangeObj = sheet.getRange(\r\n cellRange.row,\r\n cellRange.col,\r\n curDefaultPointCount * cellRange.rowCount,\r\n cellRange.colCount > 77 ? 77 : cellRange.colCount,\r\n );\r\n\r\n // 判断要循环的单元格最后一行是否为表格的末尾行,如果是,则在循环创建单元行的最后一行的时候,下边框线位细线样式\r\n if (isCyclicLastRowIsSheetLastRow) {\r\n // 设置所有内边框线为细线样式\r\n cyclicCellsRangeObj.setBorder(new GC.Spread.Sheets.LineBorder('#000', GC.Spread.Sheets.LineStyle.thin), { inside: true });\r\n }\r\n\r\n // 循环后的所有单元格范围JSON对象\r\n const cyclicCellsRange = {\r\n row: cyclicCellsRangeObj.row,\r\n col: cyclicCellsRangeObj.col,\r\n rowCount: cyclicCellsRangeObj.rowCount,\r\n colCount: cyclicCellsRangeObj.colCount,\r\n };\r\n\r\n const allCells = SheetUtils.getAllCellObjsByRanges(sheet, [cyclicCellsRange]);\r\n const allCellsByRowObj = groupByJson(allCells, 'row');\r\n let allCellsByRow: Array<Array<CellModel>> = [];\r\n\r\n // 自动填充第一个单元格为序号数字\r\n if (!isClearCreateCellsValue) {\r\n if (isAutoFillFirstCellNumber) {\r\n forEachJson(allCellsByRowObj, (value, key, source) => {\r\n allCellsByRow.push(value);\r\n });\r\n\r\n let number = 0;\r\n allCellsByRow.forEach((rowCells, rowIndex) => {\r\n rowCells.forEach((rowCell, cellIndex) => {\r\n if (cellIndex == 0) {\r\n number++;\r\n sheet.setValue(rowCell.row, rowCell.col, number);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n // 恢复事件、计算、绘制\r\n sheet.resumeDirty();\r\n sheet.resumeEvent();\r\n sheet.resumeCalcService();\r\n sheet.resumePaint();\r\n\r\n // 创建完成后的回调函数\r\n if (created != null && created != undefined && typeof created === 'function') {\r\n created(cyclicCellsRange, allCellsByRow);\r\n }\r\n },\r\n /**\r\n * 显示超差提醒批注信息\r\n * @param spread 工作簿实例\r\n * @param cctxConfigs 超差提醒配置集合\r\n * @param cellRowIndex 发生改变值的单元格行索引\r\n * @param cellColIndex 发生改变值的单元格列索引\r\n * @param isValueChgedUse 是否为单元格值发生改变的时候调用\r\n * @param commentOptions 批注配置项,默认为:{color: '#E11010', size: 10, defaultTextIsSet: true, defaultText: '无效'}(color:批注颜色,size:批注大小,defaultTextIsSet:是否设置单元格默认值,defaultText:单元格默认值内容)\r\n */\r\n overRemindComments: (\r\n spread,\r\n cctxConfigs: any[],\r\n cellRowIndex: number,\r\n cellColIndex: number,\r\n isValueChgedUse: boolean = true,\r\n commentOptions: { color?: string; size?: number; defaultTextIsSet?: boolean; defaultText?: string } = {\r\n color: '#E11010',\r\n size: 10,\r\n defaultTextIsSet: true,\r\n defaultText: '无效',\r\n },\r\n ) => {\r\n if (!cctxConfigs || cctxConfigs.length == 0) {\r\n return;\r\n }\r\n\r\n const sheet = spread.getActiveSheet();\r\n\r\n spread.suspendPaint();\r\n spread.suspendCalcService();\r\n spread.suspendEvent();\r\n\r\n // //批注颜色、大小、是否设置单元格默认值、单元格默认值内容\r\n // let commentColor = color,\r\n // commentSize = 10,\r\n // commentDefaultTextIsSet = true,\r\n // commentDefaultText = '无效';\r\n let commentColor = commentOptions.color ? commentOptions.color : '#E11010',\r\n commentSize = commentOptions.size ? commentOptions.size : 10,\r\n commentDefaultTextIsSet = commentOptions.defaultTextIsSet ? commentOptions.defaultTextIsSet : true,\r\n commentDefaultText = commentOptions.defaultText ? commentOptions.defaultText : '无效';\r\n\r\n //将a~f这些字母替换为具体的值\r\n const replaceVar = (itemExp, varJsonObjs: Array<{ var: string; value: any }>) => {\r\n const letters = ['a', 'b', 'c', 'd', 'e', 'f'];\r\n\r\n letters.forEach((letter) => {\r\n if (itemExp.indexOf(letter) > -1) {\r\n const findVal = varJsonObjs.find((itemVar) => itemVar.var == letter).value;\r\n\r\n // 如果findVal为数字,则使用数字,否则使用字符串(加上双引号)\r\n const replaceVal = /^(-?\\d+)(\\.\\d+)?$/.test(findVal) ? findVal : `\"${findVal}\"`;\r\n\r\n itemExp = itemExp.replaceAll(letter, replaceVal);\r\n }\r\n });\r\n\r\n return itemExp;\r\n };\r\n\r\n //将1~100这些数字替换为具体的设置条件\r\n const replaceNum = (itemExp, conJsonArr: Array<any>) => {\r\n const nums = [];\r\n for (let iNum = 1; iNum <= 100; iNum++) {\r\n nums.push(iNum);\r\n }\r\n\r\n nums.forEach((num) => {\r\n if (itemExp.indexOf(num) > -1 && num <= conJsonArr.length) {\r\n //将条件公式【1 || (2 && 3)】中的数组替换为#1#的形式\r\n /**\r\n * 如下正则替换的原理为:将字符串中独立的数字66替换为Y\r\n * '78ab5c66d5566e4566f66g'.replace(new RegExp(`(?<!\\\\d)${66}(?!\\\\d)`, 'g'), 'Y') → '78ab5cYd5566e4566fYg'\r\n */\r\n itemExp = itemExp.replace(new RegExp(`(?<!\\\\d)${num}(?!\\\\d)`, 'g'), `#${num}#`);\r\n }\r\n });\r\n\r\n nums.forEach((num) => {\r\n if (itemExp.indexOf(num) > -1 && num <= conJsonArr.length) {\r\n //将条件公式中的#1#替换为具体的设置条件\r\n itemExp = itemExp.replaceAll(`#${num}#`, `(${conJsonArr[num - 1]})`);\r\n }\r\n });\r\n\r\n return itemExp;\r\n };\r\n\r\n //获取新的conJson配置集合\r\n const getConJsonArrNew = (conJsonArr: Array<any>, varJsonArr: Array<any>) => {\r\n let conJsonArrNew = [];\r\n\r\n conJsonArr.forEach((element) => {\r\n let newElement = element;\r\n\r\n //将abs替换为[###]\r\n newElement = newElement.replaceAll('jd(', '精度开始').replaceAll(')jd', '精度结束').replaceAll('abs', '[###]');\r\n\r\n //将a~f这些字母替换为具体的值\r\n newElement = replaceVar(newElement, varJsonArr);\r\n\r\n //将[###]替换为Math.abs\r\n newElement = newElement.replaceAll('[###]', 'Math.abs').replaceAll('精度开始', 'Number(').replaceAll('精度结束', ').toFixed(8)');\r\n\r\n //将设置条件添加到新的集合中\r\n conJsonArrNew.push(newElement);\r\n });\r\n\r\n return conJsonArrNew;\r\n };\r\n\r\n for (let i = 0; i < cctxConfigs.length; i++) {\r\n const item = cctxConfigs[i];\r\n\r\n //有前置条件\r\n if (item.isQz) {\r\n //获取所有值单元格集合,格式如:[{\"var\":\"a\",\"value\":10,\"row\":,……}]\r\n let varJsonArr = JSON.parse(item.varJson);\r\n\r\n //获取所有前置条件单元格集合,格式如:[{\"var\":\"a\",\"value\":10,\"row\":,……}]\r\n let qzCellJsonArr = JSON.parse(item.qzCellJson);\r\n\r\n const doEvent = () => {\r\n varJsonArr.forEach((element) => {\r\n element.value = sheet.getValue(element.row, element.col);\r\n });\r\n\r\n //获取所有设置条件集合\r\n let conJsonArr = JSON.parse(item.conJson),\r\n conJsonArrNew = getConJsonArrNew(conJsonArr, varJsonArr);\r\n\r\n qzCellJsonArr.forEach((element) => {\r\n element.value = sheet.getValue(element.row, element.col);\r\n });\r\n\r\n //获取所有前置条件公式集合,格式如:[{\"var\":\"a\",\"value\":10,\"row\":,……}]\r\n let qzGsJsonArr = JSON.parse(item.qzGsJson);\r\n qzGsJsonArr.forEach((element) => {\r\n element.value = sheet.getValue(element.row, element.col);\r\n });\r\n\r\n //循环所有前置公式\r\n //记录是否所有前置公式对应的条件都没有超差\r\n let isAllNotCc = true;\r\n for (let j = 0; j < qzGsJsonArr.length; j++) {\r\n // if (j == 11) debugger;\r\n // debugger;\r\n\r\n const itemQzgs = qzGsJsonArr[j];\r\n\r\n //当前公式中的前置条件\r\n let curGsQz = itemQzgs.qzFor.replaceAll('jd(', '精度开始').replaceAll(')jd', '精度结束').replaceAll('abs', '[###]');\r\n curGsQz = replaceVar(curGsQz, qzCellJsonArr);\r\n curGsQz = curGsQz.replaceAll('[###]', 'Math.abs').replaceAll('精度开始', 'Number(').replaceAll('精度结束', ').toFixed(8)');\r\n\r\n try {\r\n //满足其中一个前置条件时\r\n if (eval(curGsQz)) {\r\n //获取最终的条件公式\r\n const lastFor = replaceNum(itemQzgs.conFor, conJsonArrNew);\r\n\r\n try {\r\n //设置批注\r\n if (eval(lastFor)) {\r\n isAllNotCc = false;\r\n\r\n sheet.comments\r\n .add(item.row, item.col, itemQzgs.tipMsg)\r\n .indicatorColor(commentColor)\r\n .indicatorSize(commentSize)\r\n .fontSize('10pt')\r\n .width(250)\r\n .height(Math.ceil(item.tipMsg.length / 20) * 40);\r\n\r\n if (commentDefaultTextIsSet) {\r\n sheet.setValue(item.row, item.col, commentDefaultText);\r\n }\r\n }\r\n //取消批注\r\n else {\r\n sheet.comments.remove(item.row, item.col);\r\n\r\n if (commentDefaultTextIsSet) {\r\n const cellVal = sheet.getValue(item.row, item.col);\r\n if (cellVal == commentDefaultText) {\r\n sheet.setValue(item.row, item.col, '');\r\n }\r\n }\r\n }\r\n } catch (error) {\r\n //取消批注\r\n sheet.comments.remove(item.row, item.col);\r\n\r\n if (commentDefaultTextIsSet) {\r\n const cellVal = sheet.getValue(item.row, item.col);\r\n if (cellVal == commentDefaultText) {\r\n sheet.setValue(item.row, item.col, '');\r\n }\r\n }\r\n }\r\n\r\n // break;\r\n }\r\n } catch (error) {\r\n //\r\n }\r\n }\r\n\r\n //当所有公式条件都没有超差的时候,需要取消批注\r\n if (isAllNotCc) {\r\n //取消批注\r\n sheet.comments.remove(item.row, item.col);\r\n\r\n if (commentDefaultTextIsSet) {\r\n const cellVal = sheet.getValue(item.row, item.col);\r\n if (cellVal == commentDefaultText) {\r\n sheet.setValue(item.row, item.col, '');\r\n }\r\n }\r\n }\r\n };\r\n\r\n //如果当前改变值的单元格在varJsonArr集合中存在,则说明是修改的超差提醒配置的相关单元格\r\n if (isValueChgedUse) {\r\n if (\r\n varJsonArr.some((itemVar) => itemVar.row == cellRowIndex && itemVar.col == cellColIndex) ||\r\n qzCellJsonArr.some((itemVar) => itemVar.row == cellRowIndex && itemVar.col == cellColIndex)\r\n ) {\r\n doEvent();\r\n }\r\n } else {\r\n doEvent();\r\n }\r\n }\r\n\r\n //无前置条件\r\n else {\r\n //获取所有值单元格集合,格式如:[{\"var\":\"a\",\"value\":10,\"row\":,……}]\r\n let varJsonArr = JSON.parse(item.varJson);\r\n\r\n const doEvent = () => {\r\n varJsonArr.forEach((element) => {\r\n element.value = sheet.getValue(element.row, element.col);\r\n });\r\n\r\n //获取所有设置条件集合\r\n let conJsonArr = JSON.parse(item.conJson),\r\n conJsonArrNew = getConJsonArrNew(conJsonArr, varJsonArr);\r\n\r\n //获取最终的条件公式\r\n const lastFor = replaceNum(item.conFor, conJsonArrNew);\r\n\r\n try {\r\n //设置批注\r\n if (eval(lastFor)) {\r\n sheet.comments\r\n .add(item.row, item.col, item.tipMsg)\r\n .indicatorColor(commentColor)\r\n .indicatorSize(commentSize)\r\n .fontSize('10pt')\r\n .width(250)\r\n .height(Math.ceil(item.tipMsg.length / 20) * 40);\r\n\r\n if (commentDefaultTextIsSet) {\r\n sheet.setValue(item.row, item.col, commentDefaultText);\r\n }\r\n }\r\n //取消批注\r\n else {\r\n sheet.comments.remove(item.row, item.col);\r\n\r\n if (commentDefaultTextIsSet) {\r\n const cellVal = sheet.getValue(item.row, item.col);\r\n if (cellVal == commentDefaultText) {\r\n sheet.setValue(item.row, item.col, '');\r\n }\r\n }\r\n }\r\n } catch (error) {\r\n //取消批注\r\n sheet.comments.remove(item.row, item.col);\r\n\r\n if (commentDefaultTextIsSet) {\r\n const cellVal = sheet.getValue(item.row, item.col);\r\n if (cellVal == commentDefaultText) {\r\n sheet.setValue(item.row, item.col, '');\r\n }\r\n }\r\n }\r\n };\r\n\r\n //如果当前改变值的单元格在varJsonArr集合中存在,则说明是修改的超差提醒配置的相关单元格\r\n if (isValueChgedUse) {\r\n if (varJsonArr.some((itemVar) => itemVar.row == cellRowIndex && itemVar.col == cellColIndex)) {\r\n doEvent();\r\n }\r\n } else {\r\n doEvent();\r\n }\r\n }\r\n }\r\n\r\n spread.resumeEvent();\r\n spread.resumeCalcService();\r\n spread.resumePaint();\r\n },\r\n /**\r\n * 动态加载行(动态显示数据行和序号值)\r\n * @param GC GC对象\r\n * @param spread 工作簿实例\r\n * @param dynamicLoadRangeJson 动态加载的“试验结果”JSON数组范围,格式如:[{row: 1, col: 1, rowCount: 1, colCount: 1}]\r\n * @param headerRangeHeight 表头区域总高度\r\n * @param footerRangeHeight 表尾区域总高度\r\n * @param isEnable 是否启用动态加载行,默认为:true(true:启用动态加载行,false:不启用动态加载行)\r\n * @param ended 绘制完成后的回调函数,返回一个参数rowIndex,格式如:{hasValueIndex: [1, 2, 3], noValueIndex: [4, 5, 6]},hasValueIndex代表所有显示的行索引,noValueIndex代表所有隐藏的行索引\r\n * @param remainingHeight 剩余高度(针对纵表情况,工作表总高度-表头和表尾总高度>=remainingHeight,空白行不显示;<remainingHeight,空白行显示)\r\n * @param pageDir 页面方向(1:纵向、2:横向)\r\n * @param blankRowCellValue 空白行单元格值,默认为:空白\r\n * @returns 返回所有需要显示和隐藏的行索引结果对象,格式如:{hasValueIndex: [1, 2, 3], noValueIndex: [4, 5, 6]},hasValueIndex代表所有显示的行索引,noValueIndex代表所有隐藏的行索引\r\n */\r\n dynamicLoadRows: (\r\n GC: any,\r\n spread: any,\r\n dynamicLoadRangeJson: CellModel[],\r\n headerRangeHeight: number,\r\n footerRangeHeight: number,\r\n isEnable: boolean = true,\r\n ended: (rowIndex: { hasValueIndex: number[]; noValueIndex: number[] }) => void = null,\r\n remainingHeight: number = 500,\r\n pageDir: number = 1,\r\n blankRowCellValue: string = '空白',\r\n ): { hasValueIndex: number[]; noValueIndex: number[] } => {\r\n const sheet = spread.getActiveSheet();\r\n\r\n // 暂停绘制\r\n sheet.suspendPaint();\r\n\r\n // 获取所有单元格对象\r\n const cells = SheetUtils.getAllCellObjsByRanges(sheet, dynamicLoadRangeJson);\r\n\r\n // 设置所有行可见,原因是:如果再次执行的时候,第一次隐藏的行没有还原\r\n cells.forEach((item, index: number) => {\r\n sheet.setRowVisible(item.row, true);\r\n });\r\n\r\n // 获取按照row分组后的数据,格式如:{\"1\":[{row: 1, col: 43, rowCount: 1, colCount: 24}]}\r\n const cellsGroupByRow = groupByJson(cells, 'row');\r\n\r\n // 获取序号列的跨列数\r\n let seqColSpanCount = null;\r\n\r\n // 最终行索引Key对应的单元格对象集合(跨行的索引)\r\n let rowCells: {\r\n rowSpan?: number;\r\n rowIndexs?: number[]; //当前所包含的所有行索引\r\n rows?: { row?: number; rows?: number[]; cells?: CellModel[]; hasValue?: boolean }[];\r\n }[] = [];\r\n\r\n forEachJson(cellsGroupByRow, (cellItems: CellModel[], rowIndexKey: string, source) => {\r\n if (seqColSpanCount == null) {\r\n const seqSpans = sheet.getSpans(sheet.getCell(parseInt(rowIndexKey), 1));\r\n seqColSpanCount = seqSpans[0].colCount;\r\n }\r\n\r\n // 得到序号列的跨行单元格对象\r\n const seqColSpanObj = sheet.getSpans({ row: parseInt(rowIndexKey), col: 1, rowCount: cellItems[0].rowCount, colCount: seqColSpanCount })[0];\r\n\r\n // 当前序号跨行单元格对应的所有单元格中是否有值\r\n let curRowHasValue = false;\r\n\r\n // 当前所有行索引\r\n let curRowIndexs: number[] = [];\r\n\r\n for (let i = 0; i < cellItems.length; i++) {\r\n // 获取当前单元格对象\r\n const cell = cellItems[i];\r\n\r\n for (let j = cell.row; j < cell.row + cell.rowCount; j++) {\r\n if (!curRowIndexs.some((x) => x == j)) {\r\n curRowIndexs.push(j);\r\n }\r\n }\r\n\r\n // 获取当前单元格的值\r\n const cellValue = sheet.getValue(cell.row, cell.col);\r\n\r\n // 验证是否有值\r\n if (\r\n cellValue !== null &&\r\n cellValue !== undefined &&\r\n cellValue !== '' &&\r\n cellValue !== '/' &&\r\n cellValue !== '#VALUE!' &&\r\n !(cellValue instanceof GC.Spread.CalcEngine.CalcError)\r\n ) {\r\n curRowHasValue = true;\r\n break;\r\n }\r\n }\r\n\r\n let rowObjs = { row: parseInt(rowIndexKey), rows: curRowIndexs, cells: cellItems, hasValue: curRowHasValue };\r\n\r\n if (!rowCells.some((x) => x.rowSpan == seqColSpanObj.row)) {\r\n let rowIndexs: number[] = [];\r\n const seqColSpanRowSpan = sheet.getSpans({ row: seqColSpanObj.row, col: 1, rowCount: 1, colCount: 1 })[0];\r\n for (let i = 0; i < seqColSpanRowSpan.rowCount; i++) {\r\n rowIndexs.push(seqColSpanObj.row + i);\r\n }\r\n\r\n rowCells.push({\r\n rowSpan: seqColSpanObj.row,\r\n rowIndexs: rowIndexs,\r\n rows: [rowObjs],\r\n });\r\n } else {\r\n let curRow = rowCells.find((x) => x.rowSpan == seqColSpanObj.row);\r\n curRow.rows.push(rowObjs);\r\n }\r\n });\r\n\r\n // 有值和没有值的行索引集合\r\n let hasValueRows: number[] = [],\r\n noValueRows: number[] = [];\r\n // 有值的行索引(序号列使用)\r\n let hasValueRowsSer: number[] = [];\r\n\r\n rowCells.forEach((rowObj, index) => {\r\n if (rowObj.rows.some((x) => x.hasValue) && !hasValueRowsSer.some((x) => x == rowObj.rowSpan)) {\r\n hasValueRowsSer.push(rowObj.rowSpan);\r\n }\r\n\r\n if (rowObj.rows.some((x) => x.hasValue)) {\r\n // rowObj.rows.forEach(x => {\r\n // x.rows.forEach(rowIndex => {\r\n // if (!hasValueRows.some(hItem => hItem == rowIndex)) {\r\n // hasValueRows.push(rowIndex);\r\n // }\r\n // });\r\n // });\r\n rowObj.rowIndexs.forEach((rowIndex) => {\r\n if (!hasValueRows.some((hItem) => hItem == rowIndex)) {\r\n hasValueRows.push(rowIndex);\r\n }\r\n });\r\n } else {\r\n // rowObj.rows.forEach(x => {\r\n // x.rows.forEach(rowIndex => {\r\n // if (!noValueRows.some(hItem => hItem == rowIndex)) {\r\n // noValueRows.push(rowIndex);\r\n // }\r\n // });\r\n // });\r\n rowObj.rowIndexs.forEach((rowIndex) => {\r\n if (!noValueRows.some((hItem) => hItem == rowIndex)) {\r\n noValueRows.push(rowIndex);\r\n }\r\n });\r\n }\r\n });\r\n\r\n // 禁用的时候,将所有的序号重新设置\r\n if (!isEnable) {\r\n rowCells.forEach((rowObj, index) => {\r\n // 设置序号列单元格的值(1、2、3...的格式)\r\n sheet.setValue(rowObj.rowSpan, 1, index + 1);\r\n });\r\n }\r\n // 启用的时候\r\n else {\r\n let serNum: number = 0;\r\n hasValueRowsSer.forEach((rowIndex: number, index: number) => {\r\n const curVal = sheet.getValue(rowIndex, 1);\r\n\r\n // 检查第一个单元格的值是否包含非数字字符,有非数字字符的时候代表不填充序号\r\n if (!/^(?!\\d+$)[\\u4e00-\\u9fa5a-zA-Z0-9!@#$%^&*()_+[\\]{};':\",.\\/?\\\\|-]+$/.test(curVal)) {\r\n serNum++;\r\n\r\n // 设置序号列单元格的值(1、2、3...的格式)\r\n sheet.setValue(rowIndex, 1, serNum);\r\n }\r\n });\r\n }\r\n hasValueRows.forEach((rowIndex: number, index: number) => {\r\n // 设置行可见\r\n sheet.setRowVisible(rowIndex, true);\r\n });\r\n noValueRows.forEach((rowIndex: number) => {\r\n // 设置行不可见\r\n sheet.setRowVisible(rowIndex, false);\r\n });\r\n\r\n // // 处理单元格边框线的问题\r\n // const allRowIndex = orderByJson(unionJson(hasValueRows, noValueRows));\r\n // const rowRange = sheet.getRange(allRowIndex[0], 1, allRowIndex.length, 77);\r\n // rowRange.setBorder(new GC.Spread.Sheets.LineBorder('#000', GC.Spread.Sheets.LineStyle.thin), { all: true });\r\n // rowRange.setBorder(new GC.Spread.Sheets.LineBorder('#000', GC.Spread.Sheets.LineStyle.medium), {\r\n // left: true,\r\n // right: true,\r\n // top: false,\r\n // bottom: false,\r\n // });\r\n\r\n // 没有启用动态加载行的时候,将所有的行都显示出来\r\n if (!isEnable) {\r\n hasValueRows.forEach((rowIndex: number, index: number) => {\r\n // 设置行可见\r\n sheet.setRowVisible(rowIndex, true);\r\n });\r\n noValueRows.forEach((rowIndex: number) => {\r\n // 设置行可见\r\n sheet.setRowVisible(rowIndex, true);\r\n });\r\n }\r\n\r\n /** 创建空白行单元格 */\r\n const createBlackRowCell = () => {\r\n // 工作表总高度\r\n const sheetTotalHeight = pageDir == 1 ? 1055 : 615;\r\n\r\n // 之前已经创建的空白行索引\r\n let createBlackRowIndex: number = -1;\r\n\r\n // 获取所有可见行的总高度\r\n let allRowHeight: number = 0;\r\n for (let i = 0; i < sheet.getRowCount(); i++) {\r\n const curRowVisible = sheet.getRowVisible(i);\r\n const blankRowCell = sheet.getTag(i, 1);\r\n if (curRowVisible && (blankRowCell == null || blankRowCell == undefined || blankRowCell != 'BlankCell')) {\r\n allRowHeight += sheet.getRowHeight(i);\r\n }\r\n\r\n // 设置已创建的空白行索引\r\n if (blankRowCell == 'BlankCell') {\r\n createBlackRowIndex = i;\r\n }\r\n }\r\n\r\n // 针对纵表情况,工作表总高度-表头和表尾总高度>=remainingHeight,空白行不显示;<remainingHeight,空白行显示\r\n // 是否显示空白行\r\n let isShowBlankRow = true;\r\n if (pageDir == 1 && allRowHeight - headerRangeHeight - footerRangeHeight >= remainingHeight) {\r\n isShowBlankRow = false;\r\n }\r\n\r\n if (!isShowBlankRow) {\r\n // 设置行不可见\r\n // if (!isEnable || createBlackRowIndex != -1) {\r\n // sheet.setRowVisible(createBlackRowIndex, false);\r\n // }\r\n if (createBlackRowIndex != -1) {\r\n sheet.setRowVisible(createBlackRowIndex, false);\r\n }\r\n return;\r\n }\r\n\r\n // 获取到最后一行动态加载区域的行索引\r\n const lastRowIndex =\r\n rowCells[rowCells.length - 1].rowSpan +\r\n sheet.getSpans({ row: rowCells[rowCells.length - 1].rowSpan, col: 1, rowCount: 1, colCount: 1 })[0].rowCount -\r\n 1; // dynamicLoadRangeJson[0].row + dynamicLoadRangeJson[0].rowCount - 1;\r\n\r\n // 创建空白行\r\n if (allRowHeight < sheetTotalHeight) {\r\n // 获取空白行单元格的标签\r\n const blankRowCell = sheet.getTag(lastRowIndex + 1, 1);\r\n\r\n if (!blankRowCell || blankRowCell !== 'BlankCell') {\r\n // 添加一行、合并单元格\r\n sheet.addRows(lastRowIndex + 1, 1);\r\n sheet.addSpan(lastRowIndex + 1, 1, 1, 77);\r\n // 设置添加这一行的行高\r\n sheet.setRowHeight(lastRowIndex + 1, sheetTotalHeight - allRowHeight);\r\n // 获取添加这一行的区域范围\r\n const addRowRange = sheet.getRange(lastRowIndex + 1, 1, 1, 77);\r\n // 设置边框线\r\n addRowRange.setBorder(new GC.Spread.Sheets.LineBorder('#000', GC.Spread.Sheets.LineStyle.thin), { all: true });\r\n addRowRange.setBorder(new GC.Spread.Sheets.LineBorder('#000', GC.Spread.Sheets.LineStyle.medium), {\r\n left: true,\r\n right: true,\r\n top: false,\r\n bottom: false,\r\n });\r\n // 设置单元格水平和垂直居中\r\n addRowRange.hAlign(GC.Spread.Sheets.HorizontalAlign.center);\r\n addRowRange.vAlign(GC.Spread.Sheets.HorizontalAlign.center);\r\n\r\n sheet.setValue(lastRowIndex + 1, 1, blankRowCellValue);\r\n sheet.setTag(lastRowIndex + 1, 1, 'BlankCell');\r\n } else {\r\n // 设置添加这一行的行高\r\n sheet.setRowHeight(lastRowIndex + 1, sheetTotalHeight - allRowHeight);\r\n if (!isEnable) {\r\n sheet.setRowVisible(lastRowIndex + 1, false);\r\n } else {\r\n // 显示空白行单元格\r\n sheet.setRowVisible(lastRowIndex + 1, true);\r\n }\r\n }\r\n }\r\n // 隐藏空白行单元格\r\n else {\r\n const blankRowCell = sheet.getTag(lastRowIndex + 1, 1);\r\n // 如果空白行单元格标签存在,则隐藏\r\n if (!isEnable || (blankRowCell && blankRowCell == 'BlankCell')) {\r\n sheet.setRowVisible(lastRowIndex + 1, false);\r\n }\r\n }\r\n };\r\n\r\n createBlackRowCell();\r\n\r\n // 恢复绘制\r\n sheet.resumePaint();\r\n\r\n // 执行绘制完成后的回调函数\r\n if (ended != null && ended != undefined && typeof ended === 'function') {\r\n ended({ hasValueIndex: hasValueRows, noValueIndex: noValueRows });\r\n }\r\n\r\n return { hasValueIndex: hasValueRows, noValueIndex: noValueRows };\r\n },\r\n};\r\n","import * as math from 'mathjs';\r\nimport { type EChartsUtilsConfigModel } from '../types/echarts';\r\n\r\n/**\r\n * 公用方法,如:修约计算等\r\n */\r\nconst EChartsUtilsComm = {\r\n /**\r\n * 过滤二维数组,移除包含无效值的列\r\n * @param {Array[]} valueArr - 二维数组,例如:[['',2,3], [10,null,30]]\r\n * @param {Array} invalidValues - 无效值集合,默认为:[\"\", \"/\", null, undefined, 0]\r\n * @returns {Array[]} 过滤后的新二维数组\r\n */\r\n filterValues: (valueArr: any[][], invalidValues = ['', '/', null, undefined, 0]) => {\r\n if (!Array.isArray(valueArr) || valueArr.length === 0) {\r\n return [];\r\n }\r\n\r\n // 找出需要保留的列索引(该列在所有行中都是有效值)\r\n const validColumns = [];\r\n const columnCount = valueArr[0] ? valueArr[0].length : 0;\r\n\r\n for (let col = 0; col < columnCount; col++) {\r\n const isColumnValid = valueArr.every((row) => {\r\n const value = row[col];\r\n return !invalidValues.includes(value);\r\n });\r\n\r\n if (isColumnValid) {\r\n validColumns.push(col);\r\n }\r\n }\r\n\r\n // 构建结果数组,只保留有效的列\r\n return valueArr.map((row) => {\r\n return validColumns.map((colIndex) => row[colIndex]);\r\n });\r\n },\r\n /**\r\n * 计算常规修约\r\n * @param roundingVal 修约值\r\n * @param accuracy 修约精度\r\n * @return 返回修约结果\r\n */\r\n getRound: (roundingVal, accuracy) => {\r\n // 验证修约的值是否为负数,为负数的话,取绝对值进行修约\r\n const valIsNegative = roundingVal < 0;\r\n if (valIsNegative) {\r\n roundingVal = Math.abs(roundingVal);\r\n }\r\n\r\n // 修约精度为0的时候\r\n if (accuracy == 0) {\r\n // 得到字符串形式\r\n let inputValStr = roundingVal.toString();\r\n\r\n // 判断是否有小数点,没有则直接返回换算后的修约值\r\n if (inputValStr.indexOf('.') == -1) {\r\n return valIsNegative ? -roundingVal : roundingVal;\r\n }\r\n\r\n // 获取整数数字部分和小数部分字符串\r\n let intVal = parseInt(inputValStr.split('.')[0]);\r\n let decimalStr = inputValStr.split('.')[1];\r\n\r\n // 小数部分大于或等于0.5的话,就给整数部分加1后返回,否则返回整数部分\r\n if (parseFloat(`0.${decimalStr}`) >= 0.5) {\r\n return valIsNegative ? -(intVal + 1) : intVal + 1;\r\n } else {\r\n return valIsNegative ? -intVal : intVal;\r\n }\r\n }\r\n\r\n // 系数\r\n let coefficient = 1 / accuracy;\r\n\r\n // 换算后的修约值(=修约值*系数)\r\n // 注意:此处使用到了toFixed,目的是可能会存在精度的问题\r\n let roundingValCal = Number((roundingVal * coefficient).toFixed(8));\r\n\r\n /**\r\n * 计算修约结果函数\r\n * @param inputVal 换算后的修约值\r\n * @returns 返回修约结果\r\n */\r\n const calcRoundingRet = (inputVal: number): number => {\r\n // 得到字符串形式\r\n let inputValStr = inputVal.toString();\r\n\r\n // 判断是否有小数点,没有则直接返回换算后的修约值\r\n if (inputValStr.indexOf('.') == -1) {\r\n return inputVal;\r\n }\r\n\r\n // 获取整数数字部分和小数部分字符串\r\n let intVal = parseInt(inputValStr.split('.')[0]);\r\n let decimalStr = inputValStr.split('.')[1];\r\n\r\n // 获取小数部分的第一位数字\r\n let decimalStrFirst = parseInt(decimalStr.substring(0, 1));\r\n\r\n // 大于等于6的时候,入\r\n if (decimalStrFirst >= 6) {\r\n return intVal + 1;\r\n }\r\n // 小于等于4的时候,舍\r\n else if (decimalStrFirst <= 4) {\r\n return intVal;\r\n }\r\n\r\n // 小数部分为5,并且只有一位小数的时候,前面的整数部分如果是奇数则入,反之则舍\r\n else if (decimalStrFirst == 5 && decimalStr.length == 1) {\r\n return intVal % 2 != 0 ? intVal + 1 : intVal;\r\n }\r\n\r\n // 小数部分为5,并且小数位数大于一位的时候,则入\r\n else if (decimalStrFirst == 5 && decimalStr.length > 1) {\r\n return intVal + 1;\r\n }\r\n\r\n return inputVal;\r\n };\r\n\r\n // 返回最终修约结果(=修约结果/系数)\r\n const retNum = calcRoundingRet(roundingValCal) / coefficient;\r\n\r\n //获取修约精度中的小数位数\r\n let accuracyStr = accuracy + '';\r\n\r\n // 如果修约精度中没有小数,则直接返回\r\n if (accuracyStr.indexOf('.') == -1) {\r\n return valIsNegative ? -retNum : retNum;\r\n } else {\r\n const retNumStr = retNum + '';\r\n\r\n // 补位的0的字符串\r\n let zeroStr = '';\r\n\r\n // 结果为整数的时候,需要补充小数点后面的小数位数为0,如:34→34.0\r\n if (retNumStr.indexOf('.') == -1) {\r\n let zeroStr = '';\r\n for (let index = 0; index < accuracyStr.split('.')[1].length; index++) {\r\n zeroStr += '0';\r\n }\r\n\r\n return (valIsNegative ? '-' : '') + `${retNum}.${zeroStr}`;\r\n }\r\n // 结果为小数的时候,需要补充修约精度的位数,如:0.3修约精度为0.01,则最终应该返回0.30\r\n else {\r\n const xsPart = retNumStr.split('.')[1];\r\n\r\n if (accuracyStr.split('.')[1].length > xsPart.length) {\r\n for (let index = 0; index < accuracyStr.split('.')[1].length - xsPart.length; index++) {\r\n zeroStr += '0';\r\n }\r\n }\r\n\r\n return (valIsNegative ? '-' : '') + `${retNum}${zeroStr}`;\r\n }\r\n }\r\n },\r\n /**\r\n * 实现Excel中TREND(返回线性回归拟合线的一组纵坐标值[y值])公式的计算\r\n * @param x x轴数据集合\r\n * @param y y轴数据集合\r\n * @param xVal x轴的值\r\n * @returns\r\n */\r\n calcTrend: (x: Array<number>, y: Array<number>, xVal: number) => {\r\n let n = x.length;\r\n let sumX = 0,\r\n sumY = 0,\r\n sumXY = 0,\r\n sumXX = 0;\r\n for (let i = 0; i < n; i++) {\r\n sumX += x[i];\r\n sumY += y[i];\r\n sumXY += x[i] * y[i];\r\n sumXX += x[i] * x[i];\r\n }\r\n let slope = (n * sumXY - sumX * sumY) / (n * sumXX - sumX * sumX);\r\n let intercept = (sumY - slope * sumX) / n;\r\n\r\n let predictedY = slope * xVal + intercept;\r\n\r\n if (slope + '' == 'NaN') {\r\n return { y: '', gs: '', xl: '', jj: '' };\r\n }\r\n\r\n //返回y轴趋势数据,以及公式\r\n return { y: predictedY, gs: `${slope}*x+${intercept}`, xl: slope, jj: intercept };\r\n },\r\n /**\r\n * 过滤掉数组中的0、null、空字符串或/符号等,并返回新的数组\r\n * @param dataSource 原始数组\r\n */\r\n filterNullEmptyErrArray: (dataSource: Array<any>) => {\r\n let retArr = dataSource.filter(\r\n (item) => item != 0 && item != null && item != undefined && (item._error == null || item._error == undefined) && item != '/',\r\n );\r\n\r\n return retArr;\r\n },\r\n};\r\n\r\n/**\r\n * 所有统计图表的ECharts配置\r\n */\r\nexport const EChartsUtilsAll = {\r\n /**\r\n * 沥青混合料-目标配合比设计-毛体积密度\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart10: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineJson = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n let xDataSource = xDataArr[0],\r\n yDataSource = yDataArr[0];\r\n\r\n // 原始数据\r\n let dxsJs = chartExtJson != null ? chartExtJson.dxsJs : 5,\r\n xData: any[] = [],\r\n yData: any[] = [];\r\n\r\n // 处理原始数据为空的值,不然参与mathjs计算会报错\r\n xDataSource.forEach((item, index) => {\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(item)) {\r\n xData.push(item);\r\n } else {\r\n if (item == '/' || item == undefined || item == null || item == '') {\r\n item = 0;\r\n xData.push(item);\r\n }\r\n }\r\n });\r\n yDataSource.forEach((item, index) => {\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(item)) {\r\n yData.push(item);\r\n } else {\r\n if (item == '/' || item == undefined || item == null || item == '') {\r\n item = 0;\r\n yData.push(item);\r\n }\r\n }\r\n });\r\n\r\n // y轴没有任何数据的时候,不参与绘制图表\r\n if (yData.length == 0) {\r\n return;\r\n }\r\n\r\n // 检查x轴的数据有多少个0,大于1个的时候,就不绘制图形\r\n let zeroCount = 0;\r\n xData.forEach((item) => {\r\n if (item == 0) {\r\n zeroCount++;\r\n }\r\n });\r\n // if (zeroCount > 1) {\r\n // \treturn;\r\n // }\r\n\r\n if (dxsJs >= yData.length) {\r\n dxsJs = yData.length - 1;\r\n }\r\n\r\n let xMin = Math.min(...xData),\r\n xMax = Math.max(...xData),\r\n yMin = Math.min(...yData),\r\n yMax = Math.max(...yData),\r\n /*xAxisMax = 5.5,\r\n xAxisMin = 3.5,\r\n yAxisMax = 2.35,\r\n yAxisMin = 2.25,\r\n */\r\n xAxisMax = xMax,\r\n xAxisMin = xMin,\r\n yAxisMax = Number(EChartsUtilsComm.getRound(yMax + 0.05, 0.01)),\r\n yAxisMin = Number(EChartsUtilsComm.getRound(yMin - 0.05, 0.01)),\r\n seriesData = [],\r\n upperLimit = null, // 上限\r\n lowerLimit = null,\r\n showLine = true; // 是否显示辅助线\r\n\r\n let points: any = [];\r\n xData.forEach((item, index) => {\r\n points.push([item, yData[index]]);\r\n });\r\n\r\n // 构造范德蒙德矩阵的函数\r\n function vandermondeMatrix(x, N) {\r\n const matrix = [];\r\n for (let i = 0; i < x.length; i++) {\r\n const row = [];\r\n for (let j = 0; j <= N; j++) {\r\n // 注意这里从0到N,包含N\r\n row.push(math.pow(x[i], j));\r\n }\r\n matrix.push(row);\r\n }\r\n return math.matrix(matrix);\r\n }\r\n\r\n // 构造原始的范德蒙德矩阵\r\n const vandermonde_matrix = vandermondeMatrix(xData, dxsJs); // 注意这里N=4,因为我们从0开始计数\r\n\r\n // 使用最小二乘法求解\r\n const A = vandermonde_matrix;\r\n const AT = math.transpose(A);\r\n const ATA = math.multiply(AT, A);\r\n const ATb = math.multiply(AT, math.matrix(yData));\r\n\r\n // 解线性方程组\r\n // const result = math.lusolve(ATA, ATb);\r\n // const coefficients = result.valueOf();\r\n\r\n let result: any = null,\r\n coefficients: any = [];\r\n try {\r\n result = math.lusolve(ATA, ATb);\r\n coefficients = result.valueOf();\r\n } catch (err) {\r\n for (let index = 0; index < xData.length; index++) {\r\n coefficients.push([0]);\r\n }\r\n console.log('无法解决该线性系统');\r\n }\r\n\r\n function funequation(x) {\r\n let y = 0;\r\n coefficients.forEach((item, index) => {\r\n //fx^0\r\n //fx^0+ax^1\r\n //fx^0+ax^1+bx^2\r\n //fx^0+ax^1+bx^2+cx^3\r\n //fx^0+x^1+x^2+x^3+x^4\r\n y += item * x ** index;\r\n });\r\n return y;\r\n }\r\n // console.log('计算公式:', coefficients);\r\n\r\n function lagrangeInterpolation(points, x) {\r\n let result = 0;\r\n for (let i = 0; i < points.length; i++) {\r\n let term = points[i][1];\r\n let xi = points[i][0];\r\n for (let j = 0; j < points.length; j++) {\r\n if (j !== i) {\r\n let xj = points[j][0];\r\n term *= (x - xj) / (xi - xj);\r\n }\r\n }\r\n result += term;\r\n }\r\n return result;\r\n }\r\n let arrX = [];\r\n let arrY = [];\r\n for (let i = xMin; i <= xMax; i += 0.01) {\r\n let temp = Number(EChartsUtilsComm.getRound(i, 0.01));\r\n //arrY.push(lagrangeInterpolation(points, temp));\r\n arrY.push(funequation(temp));\r\n arrX.push(temp);\r\n }\r\n let max = Math.max(...arrY);\r\n\r\n // 找到最大值的索引\r\n let maxIndex = arrY.findIndex((value) => value === max);\r\n\r\n // console.log('最大点数据:', arrX[maxIndex], max);\r\n\r\n let title = '', // config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n arrX.forEach((item, index) => {\r\n if (xData.includes(item)) {\r\n seriesData.push({ value: [item, arrY[index]] });\r\n } else {\r\n seriesData.push({\r\n value: [item, arrY[index]],\r\n symbol: 'none',\r\n });\r\n }\r\n });\r\n // 计算峰值\r\n const peakvalue = [arrX[maxIndex], Number(EChartsUtilsComm.getRound(max, 0.001))],\r\n coordX = [peakvalue[0], yAxisMin];\r\n\r\n // console.log('x范围:', xMin, xMax);\r\n // 输出开始和结束范围\r\n if (chartExtJson != null) {\r\n if (chartExtJson.lqhhlKs != null && chartExtJson.lqhhlKs != undefined) {\r\n sheet.setValue(chartExtJson.lqhhlKs.row, chartExtJson.lqhhlKs.col, xMin);\r\n sheet.setValue(chartExtJson.lqhhlJs.row, chartExtJson.lqhhlJs.col, xMax);\r\n }\r\n if (chartExtJson.lqhhlSc1 != null && chartExtJson.lqhhlSc1 != undefined) {\r\n sheet.setValue(chartExtJson.lqhhlSc1.row, chartExtJson.lqhhlSc1.col, arrX[maxIndex]);\r\n }\r\n }\r\n\r\n let lineData = [];\r\n let pointData = [];\r\n if (showLine) {\r\n lineData = [\r\n [\r\n {\r\n coord: coordX,\r\n lineStyle: {\r\n color: '#333', // X轴\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: peakvalue,\r\n },\r\n ],\r\n ];\r\n pointData = [\r\n {\r\n xAxis: peakvalue[0],\r\n yAxis: peakvalue[1],\r\n symbolOffset: [0, 15],\r\n label: {\r\n show: true,\r\n color: '#000',\r\n formatter: function (data) {\r\n // 自定义标签内容\r\n if (Number(data.data.xAxis) == 0 && Number(data.data.yAxis) == 0) {\r\n return '';\r\n } else {\r\n return '( ' + data.data.xAxis + ',' + data.data.yAxis + ')';\r\n }\r\n //return '( ' + data.data.xAxis + ',' + data.data.yAxis + ')';\r\n },\r\n },\r\n itemStyle: { color: 'transparent' },\r\n },\r\n {\r\n xAxis: peakvalue[0],\r\n yAxis: yAxisMin,\r\n symbolOffset: [0, 40],\r\n label: {\r\n show: true,\r\n color: '#000',\r\n formatter: function (data) {\r\n // 自定义标签内容\r\n return 'a1';\r\n },\r\n },\r\n itemStyle: { color: 'transparent' },\r\n },\r\n ];\r\n }\r\n\r\n // 判断数据是否为/\r\n let yValIsAllNull = false;\r\n seriesData.forEach((item) => {\r\n yValIsAllNull = item.value.every((ele) => {\r\n return ele == 0;\r\n });\r\n });\r\n if (yValIsAllNull) {\r\n xAxisMin = null;\r\n xAxisMax = null;\r\n yAxisMin = null;\r\n yAxisMax = null;\r\n seriesData = [];\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,// 是否显示外边框线\r\n // borderColor: '#f00',// 外边框线颜色\r\n top: 10,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 10,\r\n bottom: !yValIsAllNull ? 16 : 20,\r\n containLabel: true,\r\n },\r\n // 提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n //console.log(datas,\" datas\")\r\n return datas && datas.length > 0\r\n ? datas[0].seriesName + '(' + datas[0].value[0] + ')' + ':' + Number(EChartsUtilsComm.getRound(datas[0].value[1], 0.001))\r\n : datas[0].data;\r\n },\r\n },\r\n // 顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n // 图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, // 显示\r\n },\r\n selectedMode: 'multiple', // 用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value',\r\n max: xAxisMax,\r\n min: xAxisMin,\r\n data: xData,\r\n axisTick: {\r\n alignWithLabel: true, // 使得刻度线和标签对齐\r\n },\r\n splitLine: { show: true },\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n max: yAxisMax,\r\n min: yAxisMin,\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 40 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', // '#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n // splitNumber: 10, // 设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n // 设置y轴箭头效果\r\n show: true, // y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, // 平滑的线条\r\n // 设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', // 符号类型\r\n symbolSize: 6, // 符号大小 lineJson.lineColor\r\n // 线条的颜色\r\n lineStyle: {\r\n color: lineJson[0].lineColor,\r\n // 线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n // 线条上数据点的颜色\r\n itemStyle: {\r\n color: lineJson[0].lineColor,\r\n },\r\n data: seriesData,\r\n markPoint: {\r\n data: pointData,\r\n },\r\n markLine: {\r\n symbol: ['none', 'none'], // 去掉箭头\r\n itemStyle: {\r\n lineStyle: {\r\n type: 'solid',\r\n color: '#333',\r\n width: 2,\r\n },\r\n },\r\n data: lineData,\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 沥青混合料-目标配合比设计-稳定度\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart11: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineJson = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n let xDataSource = xDataArr[0],\r\n yDataSource = yDataArr[0];\r\n\r\n // 原始数据\r\n let dxsJs = chartExtJson != null ? chartExtJson.dxsJs : 5,\r\n xData = [],\r\n yData = [];\r\n\r\n // 处理原始数据为空的值,不然参与mathjs计算会报错\r\n xDataSource.forEach((item, index) => {\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(item)) {\r\n xData.push(item);\r\n } else {\r\n if (item == '/' || item == undefined || item == null || item == '') {\r\n item = 0;\r\n xData.push(item);\r\n }\r\n }\r\n });\r\n yDataSource.forEach((item, index) => {\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(item)) {\r\n yData.push(item);\r\n } else {\r\n if (item == '/' || item == undefined || item == null || item == '') {\r\n item = 0;\r\n yData.push(item);\r\n }\r\n }\r\n });\r\n\r\n // y轴没有任何数据的时候,不参与绘制图表\r\n if (yData.length == 0) {\r\n return;\r\n }\r\n\r\n // 检查x轴的数据有多少个0,大于1个的时候,就不绘制图形\r\n let zeroCount = 0;\r\n xData.forEach((item) => {\r\n if (item == 0) {\r\n zeroCount++;\r\n }\r\n });\r\n // if (zeroCount > 1) {\r\n // \treturn;\r\n // }\r\n\r\n if (dxsJs >= yData.length) {\r\n dxsJs = yData.length - 1;\r\n }\r\n\r\n let xMin = Math.min(...xData),\r\n xMax = Math.max(...xData),\r\n yMin = Math.min(...yData),\r\n yMax = Math.max(...yData),\r\n xAxisMax = xMax,\r\n xAxisMin = xMin,\r\n yAxisMax = Math.ceil(yMax + 2),\r\n yAxisMin = Math.floor(yMin - 2),\r\n seriesData = [],\r\n upperLimit = null, // 上限\r\n lowerLimit = 7.5, // 下限\r\n showLine = true; // 是否显示辅助线\r\n\r\n // 获取单元格中的上限和下限\r\n if (chartExtJson != null) {\r\n if (chartExtJson.lqhhlSx != null && chartExtJson.lqhhlSx != undefined) {\r\n const curVal = sheet.getValue(chartExtJson.lqhhlSx.row, chartExtJson.lqhhlSx.col);\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(curVal)) {\r\n upperLimit = curVal;\r\n }\r\n }\r\n if (chartExtJson.lqhhlXx != null && chartExtJson.lqhhlXx != undefined) {\r\n const curVal = sheet.getValue(chartExtJson.lqhhlXx.row, chartExtJson.lqhhlXx.col);\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(curVal)) {\r\n lowerLimit = curVal;\r\n }\r\n }\r\n }\r\n\r\n if (upperLimit != null && upperLimit > yAxisMax) {\r\n yAxisMax = upperLimit + 2;\r\n }\r\n if (lowerLimit != null && lowerLimit > yAxisMax) {\r\n yAxisMin = lowerLimit - 2;\r\n }\r\n\r\n let points = [];\r\n xData.forEach((item, index) => {\r\n points.push([item, yData[index]]);\r\n });\r\n\r\n // 构造范德蒙德矩阵的函数\r\n function vandermondeMatrix(x, N) {\r\n const matrix = [];\r\n for (let i = 0; i < x.length; i++) {\r\n const row = [];\r\n for (let j = 0; j <= N; j++) {\r\n // 注意这里从0到N,包含N\r\n row.push(math.pow(x[i], j));\r\n }\r\n matrix.push(row);\r\n }\r\n return math.matrix(matrix);\r\n }\r\n\r\n // 构造原始的范德蒙德矩阵\r\n const vandermonde_matrix = vandermondeMatrix(xData, dxsJs); // 注意这里N=4,因为我们从0开始计数\r\n\r\n // 使用最小二乘法求解\r\n const A = vandermonde_matrix;\r\n const AT = math.transpose(A);\r\n const ATA = math.multiply(AT, A);\r\n const ATb = math.multiply(AT, math.matrix(yData));\r\n\r\n // 解线性方程组\r\n // const result = math.lusolve(ATA, ATb);\r\n // const coefficients = result.valueOf();\r\n\r\n let result: any = null,\r\n coefficients: any = [];\r\n try {\r\n result = math.lusolve(ATA, ATb);\r\n coefficients = result.valueOf();\r\n } catch (err) {\r\n for (let index = 0; index < xData.length; index++) {\r\n coefficients.push([0]);\r\n }\r\n console.log('无法解决该线性系统');\r\n }\r\n\r\n function funequation(x) {\r\n let y = 0;\r\n coefficients.forEach((item, index) => {\r\n //fx^0\r\n //fx^0+ax^1\r\n //fx^0+ax^1+bx^2\r\n //fx^0+ax^1+bx^2+cx^3\r\n //fx^0+x^1+x^2+x^3+x^4\r\n y += item * x ** index;\r\n });\r\n return y;\r\n }\r\n\r\n // console.log('计算公式:', coefficients);\r\n\r\n function lagrangeInterpolation(points, x) {\r\n let result = 0;\r\n for (let i = 0; i < points.length; i++) {\r\n let term = points[i][1];\r\n let xi = points[i][0];\r\n for (let j = 0; j < points.length; j++) {\r\n if (j !== i) {\r\n let xj = points[j][0];\r\n term *= (x - xj) / (xi - xj);\r\n }\r\n }\r\n result += term;\r\n }\r\n return result;\r\n }\r\n let arrX = [];\r\n let arrY = [];\r\n for (let i = xMin; i <= xMax; i += 0.01) {\r\n let temp = Number(EChartsUtilsComm.getRound(i, 0.01));\r\n // arrY.push(lagrangeInterpolation(points, temp));\r\n arrY.push(funequation(temp));\r\n arrX.push(temp);\r\n }\r\n let max = Math.max(...arrY);\r\n\r\n // 找到最大值的索引\r\n let maxIndex = arrY.findIndex((value) => value === max);\r\n\r\n // console.log('最大点数据:', arrX[maxIndex], max);\r\n\r\n let title = '', // config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n arrX.forEach((item, index) => {\r\n if (xData.includes(item)) {\r\n seriesData.push({ value: [item, arrY[index]] });\r\n } else {\r\n seriesData.push({\r\n value: [item, arrY[index]],\r\n symbol: 'none',\r\n });\r\n }\r\n });\r\n\r\n // 计算两条线段是否有交点\r\n function ifHaveIntersectionPoint(y1, y2, y3, y4) {\r\n if ((y1 >= y3 && y2 <= y4) || (y1 <= y3 && y2 >= y4)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n // 获取两点和香交线最接近的点\r\n function getIntersectionPoint(y1, y2, y) {\r\n if (Math.abs(y1 - y) > Math.abs(y2 - y)) {\r\n return 0;\r\n }\r\n return -1;\r\n }\r\n let upperIntersectionPoint = [],\r\n lowerIntersectionPoint = [];\r\n let upperIntersectionPointTrend = []; // 上限交点趋势(向上相交(1) 还是向下相交(0))\r\n let lowerIntersectionPointTrend = []; // 下限交点趋势\r\n arrX.forEach((item, index) => {\r\n if (index > 0) {\r\n // 上限交点\r\n if (upperLimit != null) {\r\n if (ifHaveIntersectionPoint(arrY[index - 1], arrY[index], upperLimit, upperLimit)) {\r\n let index1 = getIntersectionPoint(arrY[index - 1], arrY[index], upperLimit);\r\n // console.log(arrX[index + index1], arrY[index + index1]);\r\n upperIntersectionPoint.push([arrX[index + index1], arrY[index + index1]]);\r\n if (arrY[index - 1] > arrY[index]) {\r\n // 向下趋势\r\n upperIntersectionPointTrend.push(0);\r\n } else {\r\n upperIntersectionPointTrend.push(1);\r\n }\r\n }\r\n }\r\n // 下限交点\r\n if (lowerLimit != null) {\r\n if (ifHaveIntersectionPoint(arrY[index - 1], arrY[index], lowerLimit, lowerLimit)) {\r\n let index1 = getIntersectionPoint(arrY[index - 1], arrY[index], lowerLimit);\r\n // console.log(arrX[index + index1], arrY[index + index1]);\r\n lowerIntersectionPoint.push([arrX[index + index1], arrY[index + index1]]);\r\n if (arrY[index - 1] > arrY[index]) {\r\n // 向下趋势\r\n lowerIntersectionPointTrend.push(0);\r\n } else {\r\n lowerIntersectionPointTrend.push(1);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n let validX1 = xMin,\r\n validX2 = xMax;\r\n if (upperIntersectionPoint.length == 0 && lowerIntersectionPoint.length > 0) {\r\n // 上限无交点,下限有交点\r\n if (lowerIntersectionPointTrend[0] == 0) {\r\n // 下限向下相交\r\n validX1 = xMin;\r\n validX2 = lowerIntersectionPoint[0][0];\r\n } else {\r\n // 下限向上相交\r\n validX1 = lowerIntersectionPoint[0][0];\r\n if (lowerIntersectionPoint.length == 1) {\r\n // 只有一个交点\r\n validX2 = xMax;\r\n } else {\r\n validX2 = lowerIntersectionPoint[1][0];\r\n }\r\n }\r\n } else if (upperIntersectionPoint.length > 0 && lowerIntersectionPoint.length == 0) {\r\n // 上限有交点,下限无交点\r\n if (upperIntersectionPointTrend[0] == 0) {\r\n // 上限向下相交\r\n validX1 = upperIntersectionPoint[0][0];\r\n if (upperIntersectionPoint.length == 1) {\r\n // 只有一个交点\r\n validX2 = xMax;\r\n } else {\r\n validX2 = upperIntersectionPoint[1][0];\r\n }\r\n } else {\r\n // 上限向上相交\r\n validX1 = xMin;\r\n validX2 = upperIntersectionPoint[0][0];\r\n }\r\n } else if (upperIntersectionPoint.length > 0 && lowerIntersectionPoint.length > 0) {\r\n // 上下限都有交点,情况太多,我们只取中间\r\n if (upperIntersectionPointTrend[0] == 0) {\r\n // 上限向下相交\r\n validX1 = upperIntersectionPoint[0][0];\r\n validX2 = lowerIntersectionPoint[0][0];\r\n } else {\r\n // 上限向上相交\r\n validX1 = lowerIntersectionPoint[0][0];\r\n validX2 = upperIntersectionPoint[0][0];\r\n }\r\n }\r\n\r\n // console.log('x范围:', validX1, validX2);\r\n // 输出开始和结束范围\r\n if (chartExtJson != null) {\r\n if (chartExtJson.lqhhlKs != null && chartExtJson.lqhhlKs != undefined) {\r\n sheet.setValue(chartExtJson.lqhhlKs.row, chartExtJson.lqhhlKs.col, validX1);\r\n sheet.setValue(chartExtJson.lqhhlJs.row, chartExtJson.lqhhlJs.col, validX2);\r\n }\r\n if (chartExtJson.lqhhlSc1 != null && chartExtJson.lqhhlSc1 != undefined) {\r\n sheet.setValue(chartExtJson.lqhhlSc1.row, chartExtJson.lqhhlSc1.col, arrX[maxIndex]);\r\n }\r\n }\r\n\r\n // 峰值\r\n const peakvalue = [arrX[maxIndex], Number(EChartsUtilsComm.getRound(max, 0.001))];\r\n\r\n let lineData = [];\r\n let pointData = [];\r\n if (showLine) {\r\n lineData = [\r\n [\r\n {\r\n coord: [peakvalue[0], yAxisMin],\r\n lineStyle: {\r\n color: '#333', // X轴\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: peakvalue,\r\n },\r\n ],\r\n ];\r\n pointData = [\r\n {\r\n xAxis: peakvalue[0],\r\n yAxis: peakvalue[1],\r\n symbolOffset: [0, 15],\r\n label: {\r\n show: true,\r\n color: '#000',\r\n formatter: function (data) {\r\n // 自定义标签内容\r\n if (Number(data.data.xAxis) == 0 && Number(data.data.yAxis) == 0) {\r\n return '';\r\n } else {\r\n return '( ' + data.data.xAxis + ',' + data.data.yAxis + ')';\r\n }\r\n //return '( ' + data.data.xAxis + ',' + data.data.yAxis + ')';\r\n },\r\n },\r\n itemStyle: { color: 'transparent' },\r\n },\r\n {\r\n xAxis: peakvalue[0],\r\n yAxis: yAxisMin,\r\n symbolOffset: [0, 40],\r\n label: {\r\n show: true,\r\n color: '#000',\r\n formatter: function (data) {\r\n // 自定义标签内容\r\n return 'a2';\r\n },\r\n },\r\n itemStyle: { color: 'transparent' },\r\n },\r\n ];\r\n }\r\n\r\n if (upperLimit != null) {\r\n lineData.push([\r\n {\r\n coord: [xAxisMin, upperLimit],\r\n lineStyle: {\r\n color: '#333', //上限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [xAxisMax, upperLimit],\r\n },\r\n ]);\r\n }\r\n\r\n if (lowerLimit != null) {\r\n lineData.push([\r\n {\r\n coord: [xAxisMin, lowerLimit],\r\n lineStyle: {\r\n color: '#333', //下限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [xAxisMax, lowerLimit],\r\n },\r\n ]);\r\n }\r\n\r\n //判断数据是否为/\r\n let yValIsAllNull = false;\r\n seriesData.forEach((item) => {\r\n yValIsAllNull = item.value.every((ele) => {\r\n return ele == 0;\r\n });\r\n });\r\n if (yValIsAllNull) {\r\n xAxisMin = null;\r\n xAxisMax = null;\r\n yAxisMin = null;\r\n yAxisMax = null;\r\n seriesData = [];\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 10,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 10,\r\n bottom: !yValIsAllNull ? 16 : 20,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n //console.log(datas,\" datas\")\r\n return datas && datas.length > 0\r\n ? datas[0].seriesName + '(' + datas[0].value[0] + ')' + ':' + Number(EChartsUtilsComm.getRound(datas[0].value[1], 0.001))\r\n : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value',\r\n max: xAxisMax,\r\n min: xAxisMin,\r\n data: xData,\r\n axisTick: {\r\n alignWithLabel: true, //使得刻度线和标签对齐\r\n },\r\n splitLine: { show: true },\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n max: yAxisMax,\r\n min: yAxisMin,\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n //设置y轴箭头效果\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineJson[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineJson[0].lineColor,\r\n },\r\n data: seriesData,\r\n markPoint: {\r\n data: pointData,\r\n },\r\n markLine: {\r\n symbol: ['none', 'none'], //去掉箭头\r\n itemStyle: {\r\n lineStyle: {\r\n type: 'solid',\r\n color: '#333',\r\n width: 2,\r\n },\r\n },\r\n data: lineData,\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 沥青混合料-目标配合比设计-空隙率\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart12: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineJson = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n let xDataSource = xDataArr[0], // [3.5, 4, 4.5, 5, 5.5],\r\n yDataSource = yDataArr[0]; // [8.8, 5.9, 4.1, 3.3, 2.6];\r\n\r\n //原始数据\r\n let dxsJs = chartExtJson != null ? chartExtJson.dxsJs : 5,\r\n xData = [],\r\n yData = [];\r\n\r\n //处理原始数据为空的值,不然参与mathjs计算会报错\r\n xDataSource.forEach((item, index) => {\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(item)) {\r\n xData.push(item);\r\n } else {\r\n if (item == '/' || item == undefined || item == null || item == '') {\r\n item = 0;\r\n xData.push(item);\r\n }\r\n }\r\n });\r\n yDataSource.forEach((item, index) => {\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(item)) {\r\n yData.push(item);\r\n } else {\r\n if (item == '/' || item == undefined || item == null || item == '') {\r\n item = 0;\r\n yData.push(item);\r\n }\r\n }\r\n });\r\n\r\n //y轴没有任何数据的时候,不参与绘制图表\r\n if (yData.length == 0) {\r\n return;\r\n }\r\n\r\n //检查x轴的数据有多少个0,大于1个的时候,就不绘制图形\r\n let zeroCount = 0;\r\n xData.forEach((item) => {\r\n if (item == 0) {\r\n zeroCount++;\r\n }\r\n });\r\n // if (zeroCount > 1) {\r\n // \treturn;\r\n // }\r\n\r\n if (dxsJs >= yData.length) {\r\n dxsJs = yData.length - 1;\r\n }\r\n\r\n let xMin = Math.min(...xData),\r\n xMax = Math.max(...xData),\r\n yMin = Math.min(...yData),\r\n yMax = Math.max(...yData),\r\n /*\r\n\t\t\txAxisMax = 5.5,\r\n xAxisMin = 3.5,\r\n yAxisMax = 10,\r\n yAxisMin = 0,\r\n\t\t\t*/\r\n xAxisMax = xMax,\r\n xAxisMin = xMin,\r\n yAxisMax = Math.ceil(yMax + 2),\r\n yAxisMin = Math.floor(yMin - 2),\r\n seriesData = [],\r\n upperLimit = 5, //上限\r\n lowerLimit = 3, //下限\r\n showLine = true; //是否显示辅助线\r\n\r\n //获取单元格中的上限和下限\r\n if (chartExtJson != null) {\r\n if (chartExtJson.lqhhlSx != null && chartExtJson.lqhhlSx != undefined) {\r\n const curVal = sheet.getValue(chartExtJson.lqhhlSx.row, chartExtJson.lqhhlSx.col);\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(curVal)) {\r\n upperLimit = curVal;\r\n }\r\n }\r\n if (chartExtJson.lqhhlXx != null && chartExtJson.lqhhlXx != undefined) {\r\n const curVal = sheet.getValue(chartExtJson.lqhhlXx.row, chartExtJson.lqhhlXx.col);\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(curVal)) {\r\n lowerLimit = curVal;\r\n }\r\n }\r\n }\r\n\r\n if (upperLimit != null && upperLimit > yAxisMax) {\r\n yAxisMax = upperLimit + 2;\r\n }\r\n if (lowerLimit != null && lowerLimit > yAxisMax) {\r\n yAxisMin = lowerLimit - 2;\r\n }\r\n\r\n let points = [];\r\n xData.forEach((item, index) => {\r\n points.push([item, yData[index]]);\r\n });\r\n\r\n // 构造范德蒙德矩阵的函数\r\n function vandermondeMatrix(x, N) {\r\n const matrix = [];\r\n for (let i = 0; i < x.length; i++) {\r\n const row = [];\r\n for (let j = 0; j <= N; j++) {\r\n // 注意这里从0到N,包含N\r\n row.push(math.pow(x[i], j));\r\n }\r\n matrix.push(row);\r\n }\r\n return math.matrix(matrix);\r\n }\r\n\r\n // 构造原始的范德蒙德矩阵\r\n const vandermonde_matrix = vandermondeMatrix(xData, dxsJs); // 注意这里N=4,因为我们从0开始计数\r\n\r\n // 使用最小二乘法求解\r\n const A = vandermonde_matrix;\r\n const AT = math.transpose(A);\r\n const ATA = math.multiply(AT, A);\r\n const ATb = math.multiply(AT, math.matrix(yData));\r\n\r\n // 解线性方程组\r\n // const result = math.lusolve(ATA, ATb);\r\n // const coefficients = result.valueOf();\r\n let result: any = null,\r\n coefficients: any = [];\r\n try {\r\n result = math.lusolve(ATA, ATb);\r\n coefficients = result.valueOf();\r\n } catch (err) {\r\n for (let index = 0; index < xData.length; index++) {\r\n coefficients.push([0]);\r\n }\r\n console.log('无法解决该线性系统');\r\n }\r\n\r\n function funequation(x) {\r\n let y = 0;\r\n coefficients.forEach((item, index) => {\r\n //fx^0\r\n //fx^0+ax^1\r\n //fx^0+ax^1+bx^2\r\n //fx^0+ax^1+bx^2+cx^3\r\n //fx^0+x^1+x^2+x^3+x^4\r\n y += item * x ** index;\r\n });\r\n return y;\r\n }\r\n\r\n // console.log('计算公式:', coefficients);\r\n\r\n function lagrangeInterpolation(points, x) {\r\n let result = 0;\r\n for (let i = 0; i < points.length; i++) {\r\n let term = points[i][1];\r\n let xi = points[i][0];\r\n for (let j = 0; j < points.length; j++) {\r\n if (j !== i) {\r\n let xj = points[j][0];\r\n term *= (x - xj) / (xi - xj);\r\n }\r\n }\r\n result += term;\r\n }\r\n return result;\r\n }\r\n let arrX = [];\r\n let arrY = [];\r\n for (let i = xMin; i <= xMax; i += 0.01) {\r\n let temp = Number(EChartsUtilsComm.getRound(i, 0.01));\r\n //arrY.push(lagrangeInterpolation(points, temp));\r\n arrY.push(funequation(temp));\r\n arrX.push(temp);\r\n }\r\n\r\n let title = '', // config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //计算两条线段是否有交点\r\n function ifHaveIntersectionPoint(y1, y2, y3, y4) {\r\n if ((y1 >= y3 && y2 <= y4) || (y1 <= y3 && y2 >= y4)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n //获取两点和香交线最接近的点\r\n function getIntersectionPoint(y1, y2, y) {\r\n if (Math.abs(y1 - y) > Math.abs(y2 - y)) {\r\n return 0;\r\n }\r\n return -1;\r\n }\r\n let upperIntersectionPoint = [],\r\n lowerIntersectionPoint = [];\r\n let upperIntersectionPointTrend = []; //上限交点趋势(向上相交(1) 还是向下相交(0))\r\n let lowerIntersectionPointTrend = []; //下限交点趋势\r\n arrX.forEach((item, index) => {\r\n if (xData.includes(item)) {\r\n seriesData.push({ value: [item, arrY[index]] });\r\n } else {\r\n seriesData.push({\r\n value: [item, arrY[index]],\r\n symbol: 'none',\r\n });\r\n }\r\n if (index > 0) {\r\n //上限交点\r\n if (upperLimit != null) {\r\n if (ifHaveIntersectionPoint(arrY[index - 1], arrY[index], upperLimit, upperLimit)) {\r\n let index1 = getIntersectionPoint(arrY[index - 1], arrY[index], upperLimit);\r\n // console.log(arrX[index + index1], arrY[index + index1]);\r\n upperIntersectionPoint.push([arrX[index + index1], arrY[index + index1]]);\r\n if (arrY[index - 1] > arrY[index]) {\r\n //向下趋势\r\n upperIntersectionPointTrend.push(0);\r\n } else {\r\n upperIntersectionPointTrend.push(1);\r\n }\r\n }\r\n }\r\n //下限交点\r\n if (lowerLimit != null) {\r\n if (ifHaveIntersectionPoint(arrY[index - 1], arrY[index], lowerLimit, lowerLimit)) {\r\n let index1 = getIntersectionPoint(arrY[index - 1], arrY[index], lowerLimit);\r\n // console.log(arrX[index + index1], arrY[index + index1]);\r\n lowerIntersectionPoint.push([arrX[index + index1], arrY[index + index1]]);\r\n if (arrY[index - 1] > arrY[index]) {\r\n //向下趋势\r\n lowerIntersectionPointTrend.push(0);\r\n } else {\r\n lowerIntersectionPointTrend.push(1);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n let validX1 = xMin,\r\n validX2 = xMax;\r\n if (upperIntersectionPoint.length == 0 && lowerIntersectionPoint.length > 0) {\r\n //上限无交点,下限有交点\r\n if (lowerIntersectionPointTrend[0] == 0) {\r\n //下限向下相交\r\n validX1 = xMin;\r\n validX2 = lowerIntersectionPoint[0][0];\r\n } else {\r\n //下限向上相交\r\n validX1 = lowerIntersectionPoint[0][0];\r\n if (lowerIntersectionPoint.length == 1) {\r\n //只有一个交点\r\n validX2 = xMax;\r\n } else {\r\n validX2 = lowerIntersectionPoint[1][0];\r\n }\r\n }\r\n } else if (upperIntersectionPoint.length > 0 && lowerIntersectionPoint.length == 0) {\r\n //上限有交点,下限无交点\r\n if (upperIntersectionPointTrend[0] == 0) {\r\n //上限向下相交\r\n validX1 = upperIntersectionPoint[0][0];\r\n if (upperIntersectionPoint.length == 1) {\r\n //只有一个交点\r\n validX2 = xMax;\r\n } else {\r\n validX2 = upperIntersectionPoint[1][0];\r\n }\r\n } else {\r\n //上限向上相交\r\n validX1 = xMin;\r\n validX2 = upperIntersectionPoint[0][0];\r\n }\r\n } else if (upperIntersectionPoint.length > 0 && lowerIntersectionPoint.length > 0) {\r\n //上下限都有交点,情况太多,我们只取中间\r\n if (upperIntersectionPointTrend[0] == 0) {\r\n //上限向下相交\r\n validX1 = upperIntersectionPoint[0][0];\r\n validX2 = lowerIntersectionPoint[0][0];\r\n } else {\r\n //上限向上相交\r\n validX1 = lowerIntersectionPoint[0][0];\r\n validX2 = upperIntersectionPoint[0][0];\r\n }\r\n }\r\n\r\n // console.log('x范围:', validX1, validX2);\r\n //输出开始和结束范围\r\n if (chartExtJson != null) {\r\n if (chartExtJson.lqhhlKs != null && chartExtJson.lqhhlKs != undefined) {\r\n sheet.setValue(chartExtJson.lqhhlKs.row, chartExtJson.lqhhlKs.col, validX1);\r\n sheet.setValue(chartExtJson.lqhhlJs.row, chartExtJson.lqhhlJs.col, validX2);\r\n }\r\n }\r\n\r\n let lineData = [];\r\n let pointData = [];\r\n if (showLine) {\r\n if (upperIntersectionPoint.length > 0) {\r\n upperIntersectionPoint.forEach((item, index) => {\r\n lineData.push([\r\n {\r\n coord: [item[0], yAxisMin],\r\n lineStyle: {\r\n color: '#333', //上限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [item[0], upperLimit],\r\n },\r\n ]);\r\n });\r\n }\r\n if (lowerIntersectionPoint.length > 0) {\r\n lowerIntersectionPoint.forEach((item, index) => {\r\n lineData.push([\r\n {\r\n coord: [item[0], yAxisMin],\r\n lineStyle: {\r\n color: '#333', //下限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [item[0], lowerLimit],\r\n },\r\n ]);\r\n });\r\n }\r\n\r\n //上下线交点分别只有一个才求平均值\r\n if (upperIntersectionPoint.length == 1 && lowerIntersectionPoint.length == 1) {\r\n const avg = ((upperIntersectionPoint[0][0] + lowerIntersectionPoint[0][0]) / 2).toFixed(2);\r\n const avgXIndex = arrX.findIndex((n) => n == avg);\r\n // console.log('输出:', avg, avgXIndex);\r\n //输出\r\n if (chartExtJson != null) {\r\n if (chartExtJson.lqhhlSc1 != null && chartExtJson.lqhhlSc1 != undefined) {\r\n sheet.setValue(chartExtJson.lqhhlSc1.row, chartExtJson.lqhhlSc1.col, avg);\r\n }\r\n }\r\n lineData.push([\r\n {\r\n coord: [avg, yAxisMin],\r\n lineStyle: {\r\n color: '#333', //下限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [avg, arrY[avgXIndex]],\r\n },\r\n ]);\r\n pointData.push({\r\n xAxis: avg,\r\n yAxis: yAxisMin,\r\n symbolOffset: [0, 40],\r\n label: {\r\n show: true,\r\n color: '#000',\r\n formatter: function (data) {\r\n // 自定义标签内容\r\n return 'a3';\r\n },\r\n },\r\n itemStyle: { color: 'transparent' },\r\n });\r\n }\r\n }\r\n\r\n if (upperLimit != null) {\r\n lineData.push([\r\n {\r\n coord: [xAxisMin, upperLimit],\r\n lineStyle: {\r\n color: '#333', //上限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [xAxisMax, upperLimit],\r\n },\r\n ]);\r\n }\r\n\r\n if (lowerLimit != null) {\r\n lineData.push([\r\n {\r\n coord: [xAxisMin, lowerLimit],\r\n lineStyle: {\r\n color: '#333', //下限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [xAxisMax, lowerLimit],\r\n },\r\n ]);\r\n }\r\n\r\n //判断数据是否为/\r\n let yValIsAllNull = false;\r\n seriesData.forEach((item) => {\r\n yValIsAllNull = item.value.every((ele) => {\r\n return ele == 0;\r\n });\r\n });\r\n if (yValIsAllNull) {\r\n xAxisMin = null;\r\n xAxisMax = null;\r\n yAxisMin = null;\r\n yAxisMax = null;\r\n seriesData = [];\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 10,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 10,\r\n bottom: !yValIsAllNull ? 16 : 20,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n //console.log(datas,\" datas\")\r\n return datas && datas.length > 0\r\n ? datas[0].seriesName + '(' + datas[0].value[0] + ')' + ':' + Number(EChartsUtilsComm.getRound(datas[0].value[1], 0.001))\r\n : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value',\r\n max: xAxisMax,\r\n min: xAxisMin,\r\n data: xData,\r\n axisTick: {\r\n alignWithLabel: true, //使得刻度线和标签对齐\r\n },\r\n splitLine: { show: true },\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n max: yAxisMax,\r\n min: yAxisMin,\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n //设置y轴箭头效果\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineJson[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineJson[0].lineColor,\r\n },\r\n data: seriesData,\r\n markPoint: {\r\n data: pointData,\r\n },\r\n markLine: {\r\n symbol: ['none', 'none'], //去掉箭头\r\n itemStyle: {\r\n lineStyle: {\r\n type: 'solid',\r\n color: '#333',\r\n width: 2,\r\n },\r\n },\r\n data: lineData,\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 沥青混合料-目标配合比设计-流值\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart13: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineJson = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n let xDataSource = xDataArr[0], // [3.5, 4, 4.5, 5, 5.5],\r\n yDataSource = yDataArr[0]; // [2.2, 2.5, 2.9, 3.4, 4.2];\r\n\r\n //原始数据\r\n let dxsJs = chartExtJson != null ? chartExtJson.dxsJs : 5,\r\n xData = [],\r\n yData = [];\r\n\r\n //处理原始数据为空的值,不然参与mathjs计算会报错\r\n xDataSource.forEach((item, index) => {\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(item)) {\r\n xData.push(item);\r\n } else {\r\n if (item == '/' || item == undefined || item == null || item == '') {\r\n item = 0;\r\n xData.push(item);\r\n }\r\n }\r\n });\r\n yDataSource.forEach((item, index) => {\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(item)) {\r\n yData.push(item);\r\n } else {\r\n if (item == '/' || item == undefined || item == null || item == '') {\r\n item = 0;\r\n yData.push(item);\r\n }\r\n }\r\n });\r\n\r\n //y轴没有任何数据的时候,不参与绘制图表\r\n if (yData.length == 0) {\r\n return;\r\n }\r\n\r\n //检查x轴的数据有多少个0,大于1个的时候,就不绘制图形\r\n let zeroCount = 0;\r\n xData.forEach((item) => {\r\n if (item == 0) {\r\n zeroCount++;\r\n }\r\n });\r\n // if (zeroCount > 1) {\r\n // \treturn;\r\n // }\r\n\r\n if (dxsJs >= yData.length) {\r\n dxsJs = yData.length - 1;\r\n }\r\n\r\n let xMin = Math.min(...xData),\r\n xMax = Math.max(...xData),\r\n yMin = Math.min(...yData),\r\n yMax = Math.max(...yData),\r\n /*\r\n xAxisMax = 5.5,\r\n xAxisMin = 3.5,\r\n yAxisMax = 5,\r\n yAxisMin = 1,\r\n\t\t\t*/\r\n xAxisMax = xMax,\r\n xAxisMin = xMin,\r\n yAxisMax = Math.ceil(yMax + 1),\r\n yAxisMin = Math.floor(yMin - 1),\r\n seriesData = [],\r\n upperLimit = null, //上限\r\n lowerLimit = 2, //下限\r\n showLine = true; //是否显示辅助线\r\n\r\n //获取单元格中的上限和下限\r\n if (chartExtJson != null) {\r\n if (chartExtJson.lqhhlSx != null && chartExtJson.lqhhlSx != undefined) {\r\n const curVal = sheet.getValue(chartExtJson.lqhhlSx.row, chartExtJson.lqhhlSx.col);\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(curVal)) {\r\n upperLimit = curVal;\r\n }\r\n }\r\n if (chartExtJson.lqhhlXx != null && chartExtJson.lqhhlXx != undefined) {\r\n const curVal = sheet.getValue(chartExtJson.lqhhlXx.row, chartExtJson.lqhhlXx.col);\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(curVal)) {\r\n lowerLimit = curVal;\r\n }\r\n }\r\n }\r\n\r\n if (upperLimit != null && upperLimit > yAxisMax) {\r\n yAxisMax = upperLimit + 1;\r\n }\r\n if (lowerLimit != null && lowerLimit > yAxisMax) {\r\n yAxisMin = lowerLimit - 1;\r\n }\r\n\r\n let points = [];\r\n xData.forEach((item, index) => {\r\n points.push([item, yData[index]]);\r\n });\r\n\r\n // 构造范德蒙德矩阵的函数\r\n function vandermondeMatrix(x, N) {\r\n const matrix = [];\r\n for (let i = 0; i < x.length; i++) {\r\n const row = [];\r\n for (let j = 0; j <= N; j++) {\r\n // 注意这里从0到N,包含N\r\n row.push(math.pow(x[i], j));\r\n }\r\n matrix.push(row);\r\n }\r\n return math.matrix(matrix);\r\n }\r\n\r\n // 构造原始的范德蒙德矩阵\r\n const vandermonde_matrix = vandermondeMatrix(xData, dxsJs); // 注意这里N=4,因为我们从0开始计数\r\n\r\n // 使用最小二乘法求解\r\n const A = vandermonde_matrix;\r\n const AT = math.transpose(A);\r\n const ATA = math.multiply(AT, A);\r\n const ATb = math.multiply(AT, math.matrix(yData));\r\n\r\n // 解线性方程组\r\n // const result = math.lusolve(ATA, ATb);\r\n // const coefficients = result.valueOf();\r\n\r\n let result: any = null,\r\n coefficients: any = [];\r\n try {\r\n result = math.lusolve(ATA, ATb);\r\n coefficients = result.valueOf();\r\n } catch (err) {\r\n for (let index = 0; index < xData.length; index++) {\r\n coefficients.push([0]);\r\n }\r\n console.log('无法解决该线性系统');\r\n }\r\n\r\n function funequation(x) {\r\n let y = 0;\r\n coefficients.forEach((item, index) => {\r\n //fx^0\r\n //fx^0+ax^1\r\n //fx^0+ax^1+bx^2\r\n //fx^0+ax^1+bx^2+cx^3\r\n //fx^0+x^1+x^2+x^3+x^4\r\n y += item * x ** index;\r\n });\r\n return y;\r\n }\r\n\r\n // console.log('计算公式:', coefficients);\r\n\r\n function lagrangeInterpolation(points, x) {\r\n let result = 0;\r\n for (let i = 0; i < points.length; i++) {\r\n let term = points[i][1];\r\n let xi = points[i][0];\r\n for (let j = 0; j < points.length; j++) {\r\n if (j !== i) {\r\n let xj = points[j][0];\r\n term *= (x - xj) / (xi - xj);\r\n }\r\n }\r\n result += term;\r\n }\r\n return result;\r\n }\r\n let arrX = [];\r\n let arrY = [];\r\n for (let i = xMin; i <= xMax; i += 0.01) {\r\n let temp = Number(EChartsUtilsComm.getRound(i, 0.01));\r\n //arrY.push(lagrangeInterpolation(points, temp));\r\n arrY.push(funequation(temp));\r\n arrX.push(temp);\r\n }\r\n let max = Math.max(...arrY);\r\n\r\n // 找到最大值的索引\r\n let maxIndex = arrY.findIndex((value) => value === max);\r\n\r\n // console.log('最大点数据:', arrX[maxIndex], max);\r\n\r\n let title = '', // config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n arrX.forEach((item, index) => {\r\n if (xData.includes(item)) {\r\n seriesData.push({ value: [item, arrY[index]] });\r\n } else {\r\n seriesData.push({\r\n value: [item, arrY[index]],\r\n symbol: 'none',\r\n });\r\n }\r\n });\r\n\r\n //计算两条线段是否有交点\r\n function ifHaveIntersectionPoint(y1, y2, y3, y4) {\r\n if ((y1 >= y3 && y2 <= y4) || (y1 <= y3 && y2 >= y4)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n //获取两点和香交线最接近的点\r\n function getIntersectionPoint(y1, y2, y) {\r\n if (Math.abs(y1 - y) > Math.abs(y2 - y)) {\r\n return 0;\r\n }\r\n return -1;\r\n }\r\n let upperIntersectionPoint = [],\r\n lowerIntersectionPoint = [];\r\n let upperIntersectionPointTrend = []; //上限交点趋势(向上相交(1) 还是向下相交(0))\r\n let lowerIntersectionPointTrend = []; //下限交点趋势\r\n arrX.forEach((item, index) => {\r\n if (index > 0) {\r\n //上限交点\r\n if (upperLimit != null) {\r\n if (ifHaveIntersectionPoint(arrY[index - 1], arrY[index], upperLimit, upperLimit)) {\r\n let index1 = getIntersectionPoint(arrY[index - 1], arrY[index], upperLimit);\r\n // console.log(arrX[index + index1], arrY[index + index1]);\r\n upperIntersectionPoint.push([arrX[index + index1], arrY[index + index1]]);\r\n if (arrY[index - 1] > arrY[index]) {\r\n //向下趋势\r\n upperIntersectionPointTrend.push(0);\r\n } else {\r\n upperIntersectionPointTrend.push(1);\r\n }\r\n }\r\n }\r\n //下限交点\r\n if (lowerLimit != null) {\r\n if (ifHaveIntersectionPoint(arrY[index - 1], arrY[index], lowerLimit, lowerLimit)) {\r\n let index1 = getIntersectionPoint(arrY[index - 1], arrY[index], lowerLimit);\r\n // console.log(arrX[index + index1], arrY[index + index1]);\r\n lowerIntersectionPoint.push([arrX[index + index1], arrY[index + index1]]);\r\n if (arrY[index - 1] > arrY[index]) {\r\n //向下趋势\r\n lowerIntersectionPointTrend.push(0);\r\n } else {\r\n lowerIntersectionPointTrend.push(1);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n let validX1 = xMin,\r\n validX2 = xMax;\r\n if (upperIntersectionPoint.length == 0 && lowerIntersectionPoint.length > 0) {\r\n //上限无交点,下限有交点\r\n if (lowerIntersectionPointTrend[0] == 0) {\r\n //下限向下相交\r\n validX1 = xMin;\r\n validX2 = lowerIntersectionPoint[0][0];\r\n } else {\r\n //下限向上相交\r\n validX1 = lowerIntersectionPoint[0][0];\r\n if (lowerIntersectionPoint.length == 1) {\r\n //只有一个交点\r\n validX2 = xMax;\r\n } else {\r\n validX2 = lowerIntersectionPoint[1][0];\r\n }\r\n }\r\n } else if (upperIntersectionPoint.length > 0 && lowerIntersectionPoint.length == 0) {\r\n //上限有交点,下限无交点\r\n if (upperIntersectionPointTrend[0] == 0) {\r\n //上限向下相交\r\n validX1 = upperIntersectionPoint[0][0];\r\n if (upperIntersectionPoint.length == 1) {\r\n //只有一个交点\r\n validX2 = xMax;\r\n } else {\r\n validX2 = upperIntersectionPoint[1][0];\r\n }\r\n } else {\r\n //上限向上相交\r\n validX1 = xMin;\r\n validX2 = upperIntersectionPoint[0][0];\r\n }\r\n } else if (upperIntersectionPoint.length > 0 && lowerIntersectionPoint.length > 0) {\r\n //上下限都有交点,情况太多,我们只取中间\r\n if (upperIntersectionPointTrend[0] == 0) {\r\n //上限向下相交\r\n validX1 = upperIntersectionPoint[0][0];\r\n validX2 = lowerIntersectionPoint[0][0];\r\n } else {\r\n //上限向上相交\r\n validX1 = lowerIntersectionPoint[0][0];\r\n validX2 = upperIntersectionPoint[0][0];\r\n }\r\n }\r\n\r\n // console.log('x范围:', validX1, validX2);\r\n //输出开始和结束范围\r\n if (chartExtJson != null) {\r\n if (chartExtJson.lqhhlKs != null && chartExtJson.lqhhlKs != undefined) {\r\n sheet.setValue(chartExtJson.lqhhlKs.row, chartExtJson.lqhhlKs.col, validX1);\r\n sheet.setValue(chartExtJson.lqhhlJs.row, chartExtJson.lqhhlJs.col, validX2);\r\n }\r\n }\r\n\r\n let lineData = [];\r\n let pointData = [];\r\n if (showLine) {\r\n lineData = [];\r\n pointData = [];\r\n }\r\n\r\n if (upperLimit != null) {\r\n lineData.push([\r\n {\r\n coord: [xAxisMin, upperLimit],\r\n lineStyle: {\r\n color: '#333', //上限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [xAxisMax, upperLimit],\r\n },\r\n ]);\r\n }\r\n\r\n if (lowerLimit != null) {\r\n lineData.push([\r\n {\r\n coord: [xAxisMin, lowerLimit],\r\n lineStyle: {\r\n color: '#333', //下限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [xAxisMax, lowerLimit],\r\n },\r\n ]);\r\n }\r\n\r\n //判断数据是否为/\r\n let yValIsAllNull = false;\r\n seriesData.forEach((item) => {\r\n yValIsAllNull = item.value.every((ele) => {\r\n return ele == 0;\r\n });\r\n });\r\n if (yValIsAllNull) {\r\n xAxisMin = null;\r\n xAxisMax = null;\r\n yAxisMin = null;\r\n yAxisMax = null;\r\n seriesData = [];\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 10,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 10,\r\n bottom: !yValIsAllNull ? 16 : 20,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n //console.log(datas,\" datas\")\r\n return datas && datas.length > 0\r\n ? datas[0].seriesName + '(' + datas[0].value[0] + ')' + ':' + Number(EChartsUtilsComm.getRound(datas[0].value[1], 0.001))\r\n : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value',\r\n max: xAxisMax,\r\n min: xAxisMin,\r\n data: xData,\r\n axisTick: {\r\n alignWithLabel: true, //使得刻度线和标签对齐\r\n },\r\n splitLine: { show: true },\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n max: yAxisMax,\r\n min: yAxisMin,\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 25 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n //设置y轴箭头效果\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineJson[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineJson[0].lineColor,\r\n },\r\n data: seriesData,\r\n markPoint: {\r\n data: pointData,\r\n },\r\n markLine: {\r\n symbol: ['none', 'none'], //去掉箭头\r\n itemStyle: {\r\n lineStyle: {\r\n type: 'solid',\r\n color: '#333',\r\n width: 2,\r\n },\r\n },\r\n data: lineData,\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 沥青混合料-目标配合比设计-矿料间隙率\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart14: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineJson = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n let xDataSource = xDataArr[0], // [3.5, 4, 4.5, 5, 5.5],\r\n yDataSource = yDataArr[0]; // [16.1, 15.2, 14.6, 14.8, 16];\r\n\r\n //原始数据\r\n let dxsJs = chartExtJson != null ? chartExtJson.dxsJs : 5,\r\n xData = [],\r\n yData = [];\r\n\r\n //处理原始数据为空的值,不然参与mathjs计算会报错\r\n xDataSource.forEach((item, index) => {\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(item)) {\r\n xData.push(item);\r\n } else {\r\n if (item == '/' || item == undefined || item == null || item == '') {\r\n item = 0;\r\n xData.push(item);\r\n }\r\n }\r\n });\r\n yDataSource.forEach((item, index) => {\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(item)) {\r\n yData.push(item);\r\n } else {\r\n if (item == '/' || item == undefined || item == null || item == '') {\r\n item = 0;\r\n yData.push(item);\r\n }\r\n }\r\n });\r\n\r\n //y轴没有任何数据的时候,不参与绘制图表\r\n if (yData.length == 0) {\r\n return;\r\n }\r\n\r\n //检查x轴的数据有多少个0,大于1个的时候,就不绘制图形\r\n let zeroCount = 0;\r\n xData.forEach((item) => {\r\n if (item == 0) {\r\n zeroCount++;\r\n }\r\n });\r\n // if (zeroCount > 1) {\r\n // \treturn;\r\n // }\r\n\r\n if (dxsJs >= yData.length) {\r\n dxsJs = yData.length - 1;\r\n }\r\n\r\n let xMin = Math.min(...xData),\r\n xMax = Math.max(...xData),\r\n yMin = Math.min(...yData),\r\n yMax = Math.max(...yData),\r\n /*\r\n\t\t\txAxisMax = 5.5,\r\n xAxisMin = 3.5,\r\n yAxisMax = 19.0,\r\n yAxisMin = 13.0,\r\n\t\t\t*/\r\n xAxisMax = xMax,\r\n xAxisMin = xMin,\r\n yAxisMax = Math.ceil(yMax + 1),\r\n yAxisMin = Math.floor(yMin - 1),\r\n seriesData = [],\r\n upperLimit = null, //上限\r\n lowerLimit = 13.5, //下限\r\n showLine = true; //是否显示辅助线\r\n\r\n //获取单元格中的上限和下限\r\n if (chartExtJson != null) {\r\n if (chartExtJson.lqhhlSx != null && chartExtJson.lqhhlSx != undefined) {\r\n const curVal = sheet.getValue(chartExtJson.lqhhlSx.row, chartExtJson.lqhhlSx.col);\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(curVal)) {\r\n upperLimit = curVal;\r\n }\r\n }\r\n if (chartExtJson.lqhhlXx != null && chartExtJson.lqhhlXx != undefined) {\r\n const curVal = sheet.getValue(chartExtJson.lqhhlXx.row, chartExtJson.lqhhlXx.col);\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(curVal)) {\r\n lowerLimit = curVal;\r\n }\r\n }\r\n }\r\n\r\n if (upperLimit != null && upperLimit > yAxisMax) {\r\n yAxisMax = upperLimit + 1;\r\n }\r\n if (lowerLimit != null && lowerLimit > yAxisMax) {\r\n yAxisMin = lowerLimit - 1;\r\n }\r\n\r\n let points = [];\r\n xData.forEach((item, index) => {\r\n points.push([item, yData[index]]);\r\n });\r\n\r\n // 构造范德蒙德矩阵的函数\r\n function vandermondeMatrix(x, N) {\r\n const matrix = [];\r\n for (let i = 0; i < x.length; i++) {\r\n const row = [];\r\n for (let j = 0; j <= N; j++) {\r\n // 注意这里从0到N,包含N\r\n row.push(math.pow(x[i], j));\r\n }\r\n matrix.push(row);\r\n }\r\n return math.matrix(matrix);\r\n }\r\n\r\n // 构造原始的范德蒙德矩阵\r\n const vandermonde_matrix = vandermondeMatrix(xData, dxsJs); // 注意这里N=4,因为我们从0开始计数\r\n\r\n // 使用最小二乘法求解\r\n const A = vandermonde_matrix;\r\n const AT = math.transpose(A);\r\n const ATA = math.multiply(AT, A);\r\n const ATb = math.multiply(AT, math.matrix(yData));\r\n\r\n // 解线性方程组\r\n // const result = math.lusolve(ATA, ATb);\r\n // const coefficients = result.valueOf();\r\n\r\n let result: any = null,\r\n coefficients: any = [];\r\n try {\r\n result = math.lusolve(ATA, ATb);\r\n coefficients = result.valueOf();\r\n } catch (err) {\r\n for (let index = 0; index < xData.length; index++) {\r\n coefficients.push([0]);\r\n }\r\n console.log('无法解决该线性系统');\r\n }\r\n\r\n function funequation(x) {\r\n let y = 0;\r\n coefficients.forEach((item, index) => {\r\n //fx^0\r\n //fx^0+ax^1\r\n //fx^0+ax^1+bx^2\r\n //fx^0+ax^1+bx^2+cx^3\r\n //fx^0+x^1+x^2+x^3+x^4\r\n y += item * x ** index;\r\n });\r\n return y;\r\n }\r\n\r\n // console.log('计算公式:', coefficients);\r\n\r\n function lagrangeInterpolation(points, x) {\r\n let result = 0;\r\n for (let i = 0; i < points.length; i++) {\r\n let term = points[i][1];\r\n let xi = points[i][0];\r\n for (let j = 0; j < points.length; j++) {\r\n if (j !== i) {\r\n let xj = points[j][0];\r\n term *= (x - xj) / (xi - xj);\r\n }\r\n }\r\n result += term;\r\n }\r\n return result;\r\n }\r\n let arrX = [];\r\n let arrY = [];\r\n for (let i = xMin; i <= xMax; i += 0.01) {\r\n let temp = Number(EChartsUtilsComm.getRound(i, 0.01));\r\n //arrY.push(lagrangeInterpolation(points, temp));\r\n arrY.push(funequation(temp));\r\n arrX.push(temp);\r\n }\r\n let max = Math.max(...arrY);\r\n\r\n // 找到最大值的索引\r\n let maxIndex = arrY.findIndex((value) => value === max);\r\n\r\n // console.log('最大点数据:', arrX[maxIndex], max);\r\n\r\n let title = '', // config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n arrX.forEach((item, index) => {\r\n if (xData.includes(item)) {\r\n seriesData.push({ value: [item, arrY[index]] });\r\n } else {\r\n seriesData.push({\r\n value: [item, arrY[index]],\r\n symbol: 'none',\r\n });\r\n }\r\n });\r\n\r\n //计算两条线段是否有交点\r\n function ifHaveIntersectionPoint(y1, y2, y3, y4) {\r\n if ((y1 >= y3 && y2 <= y4) || (y1 <= y3 && y2 >= y4)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n //获取两点和香交线最接近的点\r\n function getIntersectionPoint(y1, y2, y) {\r\n if (Math.abs(y1 - y) > Math.abs(y2 - y)) {\r\n return 0;\r\n }\r\n return -1;\r\n }\r\n let upperIntersectionPoint = [],\r\n lowerIntersectionPoint = [];\r\n let upperIntersectionPointTrend = []; //上限交点趋势(向上相交(1) 还是向下相交(0))\r\n let lowerIntersectionPointTrend = []; //下限交点趋势\r\n arrX.forEach((item, index) => {\r\n if (index > 0) {\r\n //上限交点\r\n if (upperLimit != null) {\r\n if (ifHaveIntersectionPoint(arrY[index - 1], arrY[index], upperLimit, upperLimit)) {\r\n let index1 = getIntersectionPoint(arrY[index - 1], arrY[index], upperLimit);\r\n // console.log(arrX[index + index1], arrY[index + index1]);\r\n upperIntersectionPoint.push([arrX[index + index1], arrY[index + index1]]);\r\n if (arrY[index - 1] > arrY[index]) {\r\n //向下趋势\r\n upperIntersectionPointTrend.push(0);\r\n } else {\r\n upperIntersectionPointTrend.push(1);\r\n }\r\n }\r\n }\r\n //下限交点\r\n if (lowerLimit != null) {\r\n if (ifHaveIntersectionPoint(arrY[index - 1], arrY[index], lowerLimit, lowerLimit)) {\r\n let index1 = getIntersectionPoint(arrY[index - 1], arrY[index], lowerLimit);\r\n // console.log(arrX[index + index1], arrY[index + index1]);\r\n lowerIntersectionPoint.push([arrX[index + index1], arrY[index + index1]]);\r\n if (arrY[index - 1] > arrY[index]) {\r\n //向下趋势\r\n lowerIntersectionPointTrend.push(0);\r\n } else {\r\n lowerIntersectionPointTrend.push(1);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n let validX1 = xMin,\r\n validX2 = xMax;\r\n if (upperIntersectionPoint.length == 0 && lowerIntersectionPoint.length > 0) {\r\n //上限无交点,下限有交点\r\n if (lowerIntersectionPointTrend[0] == 0) {\r\n //下限向下相交\r\n validX1 = xMin;\r\n validX2 = lowerIntersectionPoint[0][0];\r\n } else {\r\n //下限向上相交\r\n validX1 = lowerIntersectionPoint[0][0];\r\n if (lowerIntersectionPoint.length == 1) {\r\n //只有一个交点\r\n validX2 = xMax;\r\n } else {\r\n validX2 = lowerIntersectionPoint[1][0];\r\n }\r\n }\r\n } else if (upperIntersectionPoint.length > 0 && lowerIntersectionPoint.length == 0) {\r\n //上限有交点,下限无交点\r\n if (upperIntersectionPointTrend[0] == 0) {\r\n //上限向下相交\r\n validX1 = upperIntersectionPoint[0][0];\r\n if (upperIntersectionPoint.length == 1) {\r\n //只有一个交点\r\n validX2 = xMax;\r\n } else {\r\n validX2 = upperIntersectionPoint[1][0];\r\n }\r\n } else {\r\n //上限向上相交\r\n validX1 = xMin;\r\n validX2 = upperIntersectionPoint[0][0];\r\n }\r\n } else if (upperIntersectionPoint.length > 0 && lowerIntersectionPoint.length > 0) {\r\n //上下限都有交点,情况太多,我们只取中间\r\n if (upperIntersectionPointTrend[0] == 0) {\r\n //上限向下相交\r\n validX1 = upperIntersectionPoint[0][0];\r\n validX2 = lowerIntersectionPoint[0][0];\r\n } else {\r\n //上限向上相交\r\n validX1 = lowerIntersectionPoint[0][0];\r\n validX2 = upperIntersectionPoint[0][0];\r\n }\r\n }\r\n\r\n // console.log('x范围:', validX1, validX2);\r\n //输出开始和结束范围\r\n if (chartExtJson != null) {\r\n if (chartExtJson.lqhhlKs != null && chartExtJson.lqhhlKs != undefined) {\r\n sheet.setValue(chartExtJson.lqhhlKs.row, chartExtJson.lqhhlKs.col, validX1);\r\n sheet.setValue(chartExtJson.lqhhlJs.row, chartExtJson.lqhhlJs.col, validX2);\r\n }\r\n }\r\n\r\n let lineData = [];\r\n let pointData = [];\r\n if (showLine) {\r\n lineData = [];\r\n pointData = [];\r\n }\r\n\r\n if (upperLimit != null) {\r\n lineData.push([\r\n {\r\n coord: [xAxisMin, upperLimit],\r\n lineStyle: {\r\n color: '#333', //上限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [xAxisMax, upperLimit],\r\n },\r\n ]);\r\n }\r\n\r\n if (lowerLimit != null) {\r\n lineData.push([\r\n {\r\n coord: [xAxisMin, lowerLimit],\r\n lineStyle: {\r\n color: '#333', //下限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [xAxisMax, lowerLimit],\r\n },\r\n ]);\r\n }\r\n\r\n //判断数据是否为/\r\n let yValIsAllNull = false;\r\n seriesData.forEach((item) => {\r\n yValIsAllNull = item.value.every((ele) => {\r\n return ele == 0;\r\n });\r\n });\r\n if (yValIsAllNull) {\r\n xAxisMin = null;\r\n xAxisMax = null;\r\n yAxisMin = null;\r\n yAxisMax = null;\r\n seriesData = [];\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 10,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 10,\r\n bottom: !yValIsAllNull ? 16 : 20,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n //console.log(datas,\" datas\")\r\n return datas && datas.length > 0\r\n ? datas[0].seriesName + '(' + datas[0].value[0] + ')' + ':' + Number(EChartsUtilsComm.getRound(datas[0].value[1], 0.001))\r\n : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value',\r\n max: xAxisMax,\r\n min: xAxisMin,\r\n data: xData,\r\n axisTick: {\r\n alignWithLabel: true, //使得刻度线和标签对齐\r\n },\r\n splitLine: { show: true },\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n max: yAxisMax,\r\n min: yAxisMin,\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n //设置y轴箭头效果\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineJson[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineJson[0].lineColor,\r\n },\r\n data: seriesData,\r\n markPoint: {\r\n data: pointData,\r\n },\r\n markLine: {\r\n symbol: ['none', 'none'], //去掉箭头\r\n itemStyle: {\r\n lineStyle: {\r\n type: 'solid',\r\n color: '#333',\r\n width: 2,\r\n },\r\n },\r\n data: lineData,\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 沥青混合料-目标配合比设计-有效沥青饱和度\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart15: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineJson = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n let xDataSource = xDataArr[0], // [3.5, 4, 4.5, 5, 5.5],\r\n yDataSource = yDataArr[0]; // [40.1, 59.8, 66.8, 74.5, 78.2];\r\n\r\n //原始数据\r\n let dxsJs = chartExtJson != null ? chartExtJson.dxsJs : 5,\r\n xData = [],\r\n yData = [];\r\n\r\n //处理原始数据为空的值,不然参与mathjs计算会报错\r\n xDataSource.forEach((item, index) => {\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(item)) {\r\n xData.push(item);\r\n } else {\r\n if (item == '/' || item == undefined || item == null || item == '') {\r\n item = 0;\r\n xData.push(item);\r\n }\r\n }\r\n });\r\n yDataSource.forEach((item, index) => {\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(item)) {\r\n yData.push(item);\r\n } else {\r\n if (item == '/' || item == undefined || item == null || item == '') {\r\n item = 0;\r\n yData.push(item);\r\n }\r\n }\r\n });\r\n\r\n //y轴没有任何数据的时候,不参与绘制图表\r\n if (yData.length == 0) {\r\n return;\r\n }\r\n\r\n //检查x轴的数据有多少个0,大于1个的时候,就不绘制图形\r\n let zeroCount = 0;\r\n xData.forEach((item) => {\r\n if (item == 0) {\r\n zeroCount++;\r\n }\r\n });\r\n // if (zeroCount > 1) {\r\n // \treturn;\r\n // }\r\n\r\n if (dxsJs >= yData.length) {\r\n dxsJs = yData.length - 1;\r\n }\r\n\r\n let xMin = Math.min(...xData),\r\n xMax = Math.max(...xData),\r\n yMin = Math.min(...yData),\r\n yMax = Math.max(...yData),\r\n /*\r\n\t\t\txAxisMax = 5.5,\r\n xAxisMin = 3.5,\r\n yAxisMax = 80,\r\n yAxisMin = 30,\r\n\t\t\t*/\r\n xAxisMax = xMax,\r\n xAxisMin = xMin,\r\n yAxisMax = Math.ceil(yMax + 10),\r\n yAxisMin = Math.floor(yMin - 10),\r\n seriesData = [],\r\n upperLimit = 75, //上限\r\n lowerLimit = 60, //下限\r\n showLine = true; //是否显示辅助线\r\n\r\n //获取单元格中的上限和下限\r\n if (chartExtJson != null) {\r\n if (chartExtJson.lqhhlSx != null && chartExtJson.lqhhlSx != undefined) {\r\n const curVal = sheet.getValue(chartExtJson.lqhhlSx.row, chartExtJson.lqhhlSx.col);\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(curVal)) {\r\n upperLimit = curVal;\r\n }\r\n }\r\n if (chartExtJson.lqhhlXx != null && chartExtJson.lqhhlXx != undefined) {\r\n const curVal = sheet.getValue(chartExtJson.lqhhlXx.row, chartExtJson.lqhhlXx.col);\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(curVal)) {\r\n lowerLimit = curVal;\r\n }\r\n }\r\n }\r\n\r\n if (upperLimit != null && upperLimit > yAxisMax) {\r\n yAxisMax = upperLimit + 10;\r\n }\r\n if (lowerLimit != null && lowerLimit > yAxisMax) {\r\n yAxisMin = lowerLimit - 10;\r\n }\r\n\r\n let points = [];\r\n xData.forEach((item, index) => {\r\n points.push([item, yData[index]]);\r\n });\r\n\r\n // 构造范德蒙德矩阵的函数\r\n function vandermondeMatrix(x, N) {\r\n const matrix = [];\r\n for (let i = 0; i < x.length; i++) {\r\n const row = [];\r\n for (let j = 0; j <= N; j++) {\r\n // 注意这里从0到N,包含N\r\n row.push(math.pow(x[i], j));\r\n }\r\n matrix.push(row);\r\n }\r\n return math.matrix(matrix);\r\n }\r\n\r\n // 构造原始的范德蒙德矩阵\r\n const vandermonde_matrix = vandermondeMatrix(xData, dxsJs); // 注意这里N=4,因为我们从0开始计数\r\n\r\n // 使用最小二乘法求解\r\n const A = vandermonde_matrix;\r\n const AT = math.transpose(A);\r\n const ATA = math.multiply(AT, A);\r\n const ATb = math.multiply(AT, math.matrix(yData));\r\n\r\n // 解线性方程组\r\n // const result = math.lusolve(ATA, ATb);\r\n // const coefficients = result.valueOf();\r\n\r\n let result: any = null,\r\n coefficients: any = [];\r\n try {\r\n result = math.lusolve(ATA, ATb);\r\n coefficients = result.valueOf();\r\n } catch (err) {\r\n for (let index = 0; index < xData.length; index++) {\r\n coefficients.push([0]);\r\n }\r\n console.log('无法解决该线性系统');\r\n }\r\n\r\n function funequation(x) {\r\n let y = 0;\r\n coefficients.forEach((item, index) => {\r\n //fx^0\r\n //fx^0+ax^1\r\n //fx^0+ax^1+bx^2\r\n //fx^0+ax^1+bx^2+cx^3\r\n //fx^0+x^1+x^2+x^3+x^4\r\n y += item * x ** index;\r\n });\r\n return y;\r\n }\r\n\r\n // console.log('计算公式:', coefficients);\r\n\r\n function lagrangeInterpolation(points, x) {\r\n let result = 0;\r\n for (let i = 0; i < points.length; i++) {\r\n let term = points[i][1];\r\n let xi = points[i][0];\r\n for (let j = 0; j < points.length; j++) {\r\n if (j !== i) {\r\n let xj = points[j][0];\r\n term *= (x - xj) / (xi - xj);\r\n }\r\n }\r\n result += term;\r\n }\r\n return result;\r\n }\r\n let arrX = [];\r\n let arrY = [];\r\n for (let i = xMin; i <= xMax; i += 0.01) {\r\n let temp = Number(EChartsUtilsComm.getRound(i, 0.01));\r\n //arrY.push(lagrangeInterpolation(points, temp));\r\n arrY.push(funequation(temp));\r\n arrX.push(temp);\r\n }\r\n\r\n let title = '', // config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //计算两条线段是否有交点\r\n function ifHaveIntersectionPoint(y1, y2, y3, y4) {\r\n if ((y1 >= y3 && y2 <= y4) || (y1 <= y3 && y2 >= y4)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n //获取两点和香交线最接近的点\r\n function getIntersectionPoint(y1, y2, y) {\r\n if (Math.abs(y1 - y) > Math.abs(y2 - y)) {\r\n return 0;\r\n }\r\n return -1;\r\n }\r\n let upperIntersectionPoint = [],\r\n lowerIntersectionPoint = [];\r\n let upperIntersectionPointTrend = []; //上限交点趋势(向上相交(1) 还是向下相交(0))\r\n let lowerIntersectionPointTrend = []; //下限交点趋势\r\n arrX.forEach((item, index) => {\r\n if (xData.includes(item)) {\r\n seriesData.push({ value: [item, arrY[index]] });\r\n } else {\r\n seriesData.push({\r\n value: [item, arrY[index]],\r\n symbol: 'none',\r\n });\r\n }\r\n if (index > 0) {\r\n //上限交点\r\n if (upperLimit != null) {\r\n if (ifHaveIntersectionPoint(arrY[index - 1], arrY[index], upperLimit, upperLimit)) {\r\n let index1 = getIntersectionPoint(arrY[index - 1], arrY[index], upperLimit);\r\n // console.log(arrX[index + index1], arrY[index + index1]);\r\n upperIntersectionPoint.push([arrX[index + index1], arrY[index + index1]]);\r\n if (arrY[index - 1] > arrY[index]) {\r\n //向下趋势\r\n upperIntersectionPointTrend.push(0);\r\n } else {\r\n upperIntersectionPointTrend.push(1);\r\n }\r\n }\r\n }\r\n //下限交点\r\n if (upperLimit != null) {\r\n if (ifHaveIntersectionPoint(arrY[index - 1], arrY[index], lowerLimit, lowerLimit)) {\r\n let index1 = getIntersectionPoint(arrY[index - 1], arrY[index], lowerLimit);\r\n // console.log(arrX[index + index1], arrY[index + index1]);\r\n lowerIntersectionPoint.push([arrX[index + index1], arrY[index + index1]]);\r\n if (arrY[index - 1] > arrY[index]) {\r\n //向下趋势\r\n lowerIntersectionPointTrend.push(0);\r\n } else {\r\n lowerIntersectionPointTrend.push(1);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n let validX1 = xMin,\r\n validX2 = xMax;\r\n if (upperIntersectionPoint.length == 0 && lowerIntersectionPoint.length > 0) {\r\n //上限无交点,下限有交点\r\n if (lowerIntersectionPointTrend[0] == 0) {\r\n //下限向下相交\r\n validX1 = xMin;\r\n validX2 = lowerIntersectionPoint[0][0];\r\n } else {\r\n //下限向上相交\r\n validX1 = lowerIntersectionPoint[0][0];\r\n if (lowerIntersectionPoint.length == 1) {\r\n //只有一个交点\r\n validX2 = xMax;\r\n } else {\r\n validX2 = lowerIntersectionPoint[1][0];\r\n }\r\n }\r\n } else if (upperIntersectionPoint.length > 0 && lowerIntersectionPoint.length == 0) {\r\n //上限有交点,下限无交点\r\n if (upperIntersectionPointTrend[0] == 0) {\r\n //上限向下相交\r\n validX1 = upperIntersectionPoint[0][0];\r\n if (upperIntersectionPoint.length == 1) {\r\n //只有一个交点\r\n validX2 = xMax;\r\n } else {\r\n validX2 = upperIntersectionPoint[1][0];\r\n }\r\n } else {\r\n //上限向上相交\r\n validX1 = xMin;\r\n validX2 = upperIntersectionPoint[0][0];\r\n }\r\n } else if (upperIntersectionPoint.length > 0 && lowerIntersectionPoint.length > 0) {\r\n //上下限都有交点,情况太多,我们只取中间\r\n if (upperIntersectionPointTrend[0] == 0) {\r\n //上限向下相交\r\n validX1 = upperIntersectionPoint[0][0];\r\n validX2 = lowerIntersectionPoint[0][0];\r\n } else {\r\n //上限向上相交\r\n validX1 = lowerIntersectionPoint[0][0];\r\n validX2 = upperIntersectionPoint[0][0];\r\n }\r\n }\r\n\r\n // console.log('x范围:', validX1, validX2);\r\n //输出开始和结束范围\r\n if (chartExtJson != null) {\r\n if (chartExtJson.lqhhlKs != null && chartExtJson.lqhhlKs != undefined) {\r\n sheet.setValue(chartExtJson.lqhhlKs.row, chartExtJson.lqhhlKs.col, validX1);\r\n sheet.setValue(chartExtJson.lqhhlJs.row, chartExtJson.lqhhlJs.col, validX2);\r\n }\r\n }\r\n\r\n let lineData = [];\r\n let pointData = [];\r\n if (showLine) {\r\n if (upperIntersectionPoint.length > 0) {\r\n upperIntersectionPoint.forEach((item, index) => {\r\n lineData.push([\r\n {\r\n coord: [item[0], yAxisMin],\r\n lineStyle: {\r\n color: '#333', //上限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [item[0], upperLimit],\r\n },\r\n ]);\r\n });\r\n }\r\n if (lowerIntersectionPoint.length > 0) {\r\n lowerIntersectionPoint.forEach((item, index) => {\r\n lineData.push([\r\n {\r\n coord: [item[0], yAxisMin],\r\n lineStyle: {\r\n color: '#333', //下限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [item[0], lowerLimit],\r\n },\r\n ]);\r\n });\r\n }\r\n //上下线交点分别只有一个才求平均值\r\n if (upperIntersectionPoint.length == 1 && lowerIntersectionPoint.length == 1) {\r\n const avg = ((upperIntersectionPoint[0][0] + lowerIntersectionPoint[0][0]) / 2).toFixed(2);\r\n const avgXIndex = arrX.findIndex((n) => n == avg);\r\n // console.log('输出:', avg, avgXIndex);\r\n //输出\r\n if (chartExtJson != null) {\r\n if (chartExtJson.lqhhlSc1 != null && chartExtJson.lqhhlSc1 != undefined) {\r\n sheet.setValue(chartExtJson.lqhhlSc1.row, chartExtJson.lqhhlSc1.col, avg);\r\n }\r\n }\r\n lineData.push([\r\n {\r\n coord: [avg, yAxisMin],\r\n lineStyle: {\r\n color: '#333', //下限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [avg, arrY[avgXIndex]],\r\n },\r\n ]);\r\n pointData.push({\r\n xAxis: avg,\r\n yAxis: yAxisMin,\r\n symbolOffset: [0, 40],\r\n label: {\r\n show: true,\r\n color: '#000',\r\n formatter: function (data) {\r\n // 自定义标签内容\r\n return 'a4';\r\n },\r\n },\r\n itemStyle: { color: 'transparent' },\r\n });\r\n }\r\n }\r\n\r\n if (upperLimit != null) {\r\n lineData.push([\r\n {\r\n coord: [xAxisMin, upperLimit],\r\n lineStyle: {\r\n color: '#333', //上限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [xAxisMax, upperLimit],\r\n },\r\n ]);\r\n }\r\n\r\n if (lowerLimit != null) {\r\n lineData.push([\r\n {\r\n coord: [xAxisMin, lowerLimit],\r\n lineStyle: {\r\n color: '#333', //下限\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: [xAxisMax, lowerLimit],\r\n },\r\n ]);\r\n }\r\n\r\n //判断数据是否为/\r\n let yValIsAllNull = false;\r\n seriesData.forEach((item) => {\r\n yValIsAllNull = item.value.every((ele) => {\r\n return ele == 0;\r\n });\r\n });\r\n if (yValIsAllNull) {\r\n xAxisMin = null;\r\n xAxisMax = null;\r\n yAxisMin = null;\r\n yAxisMax = null;\r\n seriesData = [];\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 10,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 10,\r\n bottom: !yValIsAllNull ? 16 : 20,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n //console.log(datas,\" datas\")\r\n return datas && datas.length > 0\r\n ? datas[0].seriesName + '(' + datas[0].value[0] + ')' + ':' + Number(EChartsUtilsComm.getRound(datas[0].value[1], 0.001))\r\n : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value',\r\n max: xAxisMax,\r\n min: xAxisMin,\r\n data: xData,\r\n axisTick: {\r\n alignWithLabel: true, //使得刻度线和标签对齐\r\n },\r\n splitLine: { show: true },\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n max: yAxisMax,\r\n min: yAxisMin,\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n //设置y轴箭头效果\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineJson[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineJson[0].lineColor,\r\n },\r\n data: seriesData,\r\n markPoint: {\r\n data: pointData,\r\n },\r\n markLine: {\r\n symbol: ['none', 'none'], //去掉箭头\r\n itemStyle: {\r\n lineStyle: {\r\n type: 'solid',\r\n color: '#333',\r\n width: 2,\r\n },\r\n },\r\n data: lineData,\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 沥青混合料-目标配合比设计-汇总\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart16: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineJson = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n // let lines = [\r\n // \t[3.5, 5.5],\r\n // \t[3.5, 5.5],\r\n // \t[4.21, 5.27],\r\n // \t[3.5, 5.5],\r\n // \t[3.5, 5.5],\r\n // \t[4.01, 5.03],\r\n // ],\r\n\r\n //原始数据\r\n let lines = [\r\n [\r\n sheet.getValue(chartExtJson.lqhhlHz[0].row, chartExtJson.lqhhlHz[0].col),\r\n sheet.getValue(chartExtJson.lqhhlHz[1].row, chartExtJson.lqhhlHz[1].col),\r\n ],\r\n [\r\n sheet.getValue(chartExtJson.lqhhlHz[2].row, chartExtJson.lqhhlHz[2].col),\r\n sheet.getValue(chartExtJson.lqhhlHz[3].row, chartExtJson.lqhhlHz[3].col),\r\n ],\r\n [\r\n sheet.getValue(chartExtJson.lqhhlHz[4].row, chartExtJson.lqhhlHz[4].col),\r\n sheet.getValue(chartExtJson.lqhhlHz[5].row, chartExtJson.lqhhlHz[5].col),\r\n ],\r\n [\r\n sheet.getValue(chartExtJson.lqhhlHz[6].row, chartExtJson.lqhhlHz[6].col),\r\n sheet.getValue(chartExtJson.lqhhlHz[7].row, chartExtJson.lqhhlHz[7].col),\r\n ],\r\n [\r\n sheet.getValue(chartExtJson.lqhhlHz[8].row, chartExtJson.lqhhlHz[8].col),\r\n sheet.getValue(chartExtJson.lqhhlHz[9].row, chartExtJson.lqhhlHz[9].col),\r\n ],\r\n [\r\n sheet.getValue(chartExtJson.lqhhlHz[10].row, chartExtJson.lqhhlHz[10].col),\r\n sheet.getValue(chartExtJson.lqhhlHz[11].row, chartExtJson.lqhhlHz[11].col),\r\n ],\r\n ],\r\n xData = xDataArr[0], // [3.5, 4, 4.5, 5, 5.5],\r\n xAxisMax = 5.5,\r\n xAxisMin = 3.5,\r\n yAxisMin = 0,\r\n yAxisMax = 6,\r\n yData = [0, 1, 2, 3, 4, 5, 6],\r\n yAxisData = ['VFA', 'VMA', '流值', '稳定度', '空隙率', '密度'],\r\n seriesData = [],\r\n showLine = true; //是否显示辅助线\r\n\r\n const title = 'OAC',\r\n xName = '油石比(%)',\r\n yName = 'VFA(%)',\r\n legendName = '图例1';\r\n let lineData = [];\r\n let pointData = [];\r\n let xMin = Math.max(...lines.map((item) => item[0]));\r\n let xMax = Math.min(...lines.map((item) => item[1]));\r\n\r\n lines.forEach((item, index) => {\r\n lineData.push([\r\n {\r\n coord: [item[0], lines.length - index],\r\n lineStyle: {\r\n color: lineJson[0].lineColor,\r\n type: 'solid',\r\n width: 2,\r\n },\r\n },\r\n {\r\n coord: [item[1], lines.length - index],\r\n },\r\n ]);\r\n });\r\n if (showLine && xMin <= xMax) {\r\n //最小\r\n lineData.push([\r\n {\r\n coord: [xMin, 0],\r\n lineStyle: {\r\n color: '#333',\r\n type: 'dashed',\r\n width: 2,\r\n },\r\n },\r\n {\r\n coord: [xMin, 6],\r\n },\r\n ]);\r\n //最大\r\n lineData.push([\r\n {\r\n coord: [xMax, 0],\r\n lineStyle: {\r\n color: '#333',\r\n type: 'dashed',\r\n width: 2,\r\n },\r\n },\r\n {\r\n coord: [xMax, 6],\r\n },\r\n ]);\r\n pointData = [\r\n {\r\n xAxis: xMin,\r\n yAxis: 0,\r\n symbolOffset: [0, 55],\r\n label: {\r\n show: true,\r\n color: '#000',\r\n formatter: function (data) {\r\n // 自定义标签内容\r\n return 'OACmin';\r\n },\r\n },\r\n itemStyle: { color: 'transparent' },\r\n },\r\n {\r\n xAxis: xMax,\r\n yAxis: 0,\r\n symbolOffset: [0, 55],\r\n label: {\r\n show: true,\r\n color: '#000',\r\n formatter: function (data) {\r\n // 自定义标签内容\r\n return 'OACmax';\r\n },\r\n },\r\n itemStyle: { color: 'transparent' },\r\n },\r\n ];\r\n }\r\n\r\n if (xMin <= xMax) {\r\n //平均值\r\n const avg = (xMin + xMax) / 2;\r\n lineData.push([\r\n {\r\n coord: [avg, 0],\r\n lineStyle: {\r\n color: '#333',\r\n type: 'dashed',\r\n width: 2,\r\n },\r\n },\r\n {\r\n coord: [avg, 6],\r\n },\r\n ]);\r\n pointData.push({\r\n xAxis: avg,\r\n yAxis: 0,\r\n symbolOffset: [0, 55],\r\n label: {\r\n show: true,\r\n color: '#000',\r\n formatter: function (data) {\r\n // 自定义标签内容\r\n return 'OAC2';\r\n },\r\n },\r\n itemStyle: { color: 'transparent' },\r\n });\r\n }\r\n\r\n if (isNaN(xMin)) {\r\n xMin = 0;\r\n }\r\n if (isNaN(xMax)) {\r\n xMax = 0;\r\n }\r\n // console.log('输出:', xMin, xMax);\r\n //输出\r\n if (chartExtJson != null) {\r\n if (chartExtJson.lqhhlSc1 != null && chartExtJson.lqhhlSc1 != undefined) {\r\n sheet.setValue(chartExtJson.lqhhlSc1.row, chartExtJson.lqhhlSc1.col, xMin);\r\n }\r\n if (chartExtJson.lqhhlSc2 != null && chartExtJson.lqhhlSc2 != undefined) {\r\n sheet.setValue(chartExtJson.lqhhlSc2.row, chartExtJson.lqhhlSc2.col, xMax);\r\n }\r\n }\r\n\r\n //判断数据是否为/\r\n let yValIsAllNull = false;\r\n lines.forEach((item) => {\r\n yValIsAllNull = item.every((ele) => {\r\n return ele == '/';\r\n });\r\n });\r\n if (yValIsAllNull) {\r\n xAxisMin = null;\r\n xAxisMax = null;\r\n yAxisMin = null;\r\n yAxisMax = null;\r\n seriesData = [];\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 25,\r\n left: 10,\r\n right: 10,\r\n bottom: !yValIsAllNull ? 16 : 20,\r\n containLabel: true,\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: '50px',\r\n bottom: '-5px',\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value',\r\n max: xAxisMax,\r\n min: xAxisMin,\r\n data: xData,\r\n axisTick: {\r\n alignWithLabel: true, //使得刻度线和标签对齐\r\n },\r\n splitLine: { show: true },\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n max: yAxisMax,\r\n min: yAxisMin,\r\n axisLabel: {\r\n formatter: function (data) {\r\n // 自定义标签内容\r\n if (data == 0) {\r\n return '';\r\n } else {\r\n return yAxisData[data - 1];\r\n }\r\n },\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n // data: seriesData,\r\n markPoint: {\r\n data: pointData,\r\n },\r\n markLine: {\r\n symbol: ['none', 'none'], //去掉箭头\r\n data: lineData,\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 击实\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart30: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n //设置是否选择校正jsIsJz的默认值\r\n if (chartExtJson != null && (chartExtJson.jsIsJz == null || chartExtJson.jsIsJz == undefined)) {\r\n chartExtJson.jsIsJz = true;\r\n }\r\n // console.log(config);\r\n\r\n let isTwoLine = xDataArr.length == 2;\r\n\r\n if (yDataArr.length > 1 && !yDataArr[1].some((x) => x != null && x != undefined && x != '/')) {\r\n isTwoLine = false;\r\n }\r\n\r\n let xDataSource1 = xDataArr[0], // [1.6, 2.4, 3.5, 4.6, 5.3],\r\n xDataSource2 = isTwoLine ? xDataArr[1] : [], // [1.5, 2.4, 3.6, 4.3, 5.4],\r\n yDataSource1 = yDataArr[0], // [2.25, 2.29, 2.34, 2.29, 2.23],\r\n yDataSource2 = isTwoLine ? yDataArr[1] : []; // [2.27, 2.32, 2.36, 2.33, 2.26];\r\n\r\n let xDataLs1 = [],\r\n yDataLs1 = [];\r\n xDataSource1.forEach((x, index) => {\r\n if (\r\n x != '/' &&\r\n x != 0 &&\r\n x != null &&\r\n x != undefined &&\r\n yDataSource1[index] != '/' &&\r\n yDataSource1[index] != 0 &&\r\n yDataSource1[index] != null &&\r\n yDataSource1[index] != undefined\r\n ) {\r\n xDataLs1.push(x);\r\n yDataLs1.push(yDataSource1[index]);\r\n }\r\n });\r\n xDataSource1 = xDataLs1;\r\n yDataSource1 = yDataLs1;\r\n\r\n if (isTwoLine) {\r\n let xDataLs2 = [],\r\n yDataLs2 = [];\r\n xDataSource2.forEach((x, index) => {\r\n if (\r\n x != '/' &&\r\n x != 0 &&\r\n x != null &&\r\n x != undefined &&\r\n yDataSource2[index] != '/' &&\r\n yDataSource2[index] != 0 &&\r\n yDataSource2[index] != null &&\r\n yDataSource2[index] != undefined\r\n ) {\r\n xDataLs2.push(x);\r\n yDataLs2.push(yDataSource2[index]);\r\n }\r\n });\r\n xDataSource2 = xDataLs2;\r\n yDataSource2 = yDataLs2;\r\n }\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n const lineFunc = (xDataSource, yDataSource, isShowMarkPoint, isShowMarkLine, isTwoLineData) => {\r\n //原始数据\r\n let dxsJs = chartExtJson != null ? chartExtJson.dxsJs : 5,\r\n xData = [],\r\n yData = [],\r\n seriesData = []; //处理原始数据为空的值,不然参与mathjs计算会报错\r\n\r\n //处理原始数据为空的值,不然参与mathjs计算会报错\r\n xDataSource.forEach((item, index) => {\r\n if (\r\n /^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(item) &&\r\n item != 0 &&\r\n /^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(yDataSource[index]) &&\r\n yDataSource[index] != 0\r\n ) {\r\n xData.push(item);\r\n yData.push(yDataSource[index]);\r\n }\r\n });\r\n\r\n //y轴没有任何数据的时候,不参与绘制图表\r\n if (yData.length == 0) {\r\n return;\r\n }\r\n\r\n if (dxsJs >= yData.length) {\r\n dxsJs = yData.length - 1;\r\n }\r\n\r\n let xMin = Math.min(...xData),\r\n xMax = Math.max(...xData),\r\n yMin = Math.min(...yData),\r\n yMax = Math.max(...yData),\r\n xAxisMax = Math.ceil(xMax + 0.1),\r\n xAxisMin = Math.trunc(xMin - 0.1),\r\n yAxisMax = Number(EChartsUtilsComm.getRound(yMax + 0.02, 0.01)),\r\n yAxisMin = Number(EChartsUtilsComm.getRound(yMin - 0.02, 0.01));\r\n\r\n //如果界面设置了校正最佳含水率和最大干密度,则显示界面中的顶点坐标(此时就不显示辅助线了)\r\n let cellValJzZjhsl, cellValJzZdgmd;\r\n if (chartExtJson != null && chartExtJson.jsIsJz) {\r\n if (chartExtJson.jsZjhslJz != null && chartExtJson.jsZjhslJz != undefined) {\r\n cellValJzZjhsl = sheet.getValue(chartExtJson.jsZjhslJz.row, chartExtJson.jsZjhslJz.col);\r\n }\r\n if (chartExtJson.jsZdgmdJz != null && chartExtJson.jsZdgmdJz != undefined) {\r\n cellValJzZdgmd = sheet.getValue(chartExtJson.jsZdgmdJz.row, chartExtJson.jsZdgmdJz.col);\r\n }\r\n\r\n //如果界面输入的最大干密度大于了y轴最大值,则需要重新设置y轴的最大值\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(cellValJzZdgmd) && cellValJzZdgmd > yAxisMax) {\r\n yAxisMax = Number(EChartsUtilsComm.getRound(cellValJzZdgmd + 0.02, 0.01));\r\n }\r\n }\r\n\r\n let points = [];\r\n xData.forEach((item, index) => {\r\n points.push([item, yData[index]]);\r\n });\r\n\r\n // 构造范德蒙德矩阵的函数\r\n function vandermondeMatrix(x, N) {\r\n const matrix = [];\r\n for (let i = 0; i < x.length; i++) {\r\n const row = [];\r\n for (let j = 0; j <= N; j++) {\r\n // 注意这里从0到N,包含N\r\n row.push(math.pow(x[i], j));\r\n }\r\n matrix.push(row);\r\n }\r\n return math.matrix(matrix);\r\n }\r\n\r\n // 构造原始的范德蒙德矩阵\r\n const vandermonde_matrix = vandermondeMatrix(xData, dxsJs); // 注意这里N=4,因为我们从0开始计数\r\n\r\n // 使用最小二乘法求解\r\n const A = vandermonde_matrix;\r\n const AT = math.transpose(A);\r\n const ATA = math.multiply(AT, A);\r\n\r\n const ATb = math.multiply(AT, math.matrix(yData));\r\n\r\n // 解线性方程组\r\n let result: any = null,\r\n coefficients: any = [];\r\n try {\r\n result = math.lusolve(ATA, ATb);\r\n coefficients = result.valueOf();\r\n } catch (err) {\r\n for (let index = 0; index < xData.length; index++) {\r\n coefficients.push([0]);\r\n }\r\n // console.log('无法解决该线性系统');\r\n }\r\n // const result = math.lusolve(ATA, ATb);\r\n // const coefficients = result.valueOf();\r\n\r\n function funequation(x) {\r\n let y = 0;\r\n coefficients.forEach((item, index) => {\r\n //fx^0\r\n //fx^0+ax^1\r\n //fx^0+ax^1+bx^2\r\n //fx^0+ax^1+bx^2+cx^3\r\n //fx^0+x^1+x^2+x^3+x^4\r\n y += item * x ** index;\r\n });\r\n return y;\r\n }\r\n\r\n // console.log('计算公式:', coefficients);\r\n\r\n function lagrangeInterpolation(points, x) {\r\n let result = 0;\r\n for (let i = 0; i < points.length; i++) {\r\n let term = points[i][1];\r\n let xi = points[i][0];\r\n for (let j = 0; j < points.length; j++) {\r\n if (j !== i) {\r\n let xj = points[j][0];\r\n term *= (x - xj) / (xi - xj);\r\n }\r\n }\r\n result += term;\r\n }\r\n return result;\r\n }\r\n // x=[3.5, 4, 4.5, 5, 5.5,6 ],y= [2.262, 2.321, 2.319, 2.292, 2.285, 2.28]\r\n\r\n let arrX = [];\r\n let arrY = [];\r\n for (let i = xMin; i <= xMax; i += 0.01) {\r\n let temp = Number(EChartsUtilsComm.getRound(i, 0.01));\r\n //重新设置i,防止i丢失精度\r\n i = Number(temp);\r\n //arrY.push(lagrangeInterpolation(points, temp));\r\n arrY.push(funequation(temp));\r\n arrX.push(temp);\r\n }\r\n let max = Math.max(...arrY);\r\n\r\n // 找到最大值的索引\r\n let maxIndex = arrY.findIndex((value) => value === max);\r\n\r\n // console.log('最大点数据:', arrX[maxIndex], max);\r\n // console.log(chartExtJson);\r\n\r\n //默认输出精度\r\n let outJdZjhsl = 0.01,\r\n outJdZdgmd = 0.001;\r\n\r\n //顶点数据\r\n let outValZjhsl = 0,\r\n outValZdgmd = 0;\r\n\r\n //设置Sheet单元格的值(最佳含水率和最大干密度)\r\n if (chartExtJson != null) {\r\n // console.log(4444, chartExtJson.jsZjhsl.row, chartExtJson.jsZjhsl.col, arrX[maxIndex]);\r\n\r\n if (chartExtJson.jsZjhslJd != null && chartExtJson.jsZjhslJd != undefined) {\r\n outJdZjhsl = chartExtJson.jsZjhslJd;\r\n }\r\n if (chartExtJson.jsZdgmdJd != null && chartExtJson.jsZdgmdJd != undefined) {\r\n outJdZdgmd = chartExtJson.jsZdgmdJd;\r\n }\r\n\r\n if (arrX[maxIndex] == 0 && max == 0) {\r\n sheet.setValue(chartExtJson.jsZjhsl.row, chartExtJson.jsZjhsl.col, '/');\r\n sheet.setValue(chartExtJson.jsZdgmd.row, chartExtJson.jsZdgmd.col, '/');\r\n } else {\r\n outValZjhsl = EChartsUtilsComm.getRound(arrX[maxIndex], outJdZjhsl);\r\n outValZdgmd = EChartsUtilsComm.getRound(max, outJdZdgmd);\r\n\r\n sheet.setValue(chartExtJson.jsZjhsl.row, chartExtJson.jsZjhsl.col, outValZjhsl);\r\n sheet.setValue(chartExtJson.jsZdgmd.row, chartExtJson.jsZdgmd.col, outValZdgmd);\r\n }\r\n }\r\n\r\n arrX.forEach((item, index) => {\r\n if (xData.includes(item)) {\r\n seriesData.push({ value: [item, arrY[index]] });\r\n } else {\r\n seriesData.push({\r\n value: [item, arrY[index]],\r\n symbol: 'none',\r\n });\r\n }\r\n });\r\n\r\n //xData.forEach((item, index) => {\r\n //seriesData.push([item, yData[index]]);\r\n //});\r\n\r\n //计算峰值----目前没有公式 值写死的\r\n const peakvalue = [arrX[maxIndex], Number(EChartsUtilsComm.getRound(max, outJdZdgmd))],\r\n coordX = [peakvalue[0], yAxisMin],\r\n coordY = [xAxisMin, peakvalue[1]];\r\n\r\n let markPointObj = {\r\n data: [\r\n {\r\n xAxis: EChartsUtilsComm.getRound(peakvalue[0], outJdZjhsl),\r\n yAxis: EChartsUtilsComm.getRound(peakvalue[1], outJdZdgmd),\r\n symbolOffset: [0, 15],\r\n symbol: 'circle',\r\n symbolSize: 6,\r\n label: {\r\n show: true,\r\n color: '#000',\r\n formatter: function (data) {\r\n // 自定义标签内容\r\n if (Number(data.data.xAxis) == 0 && Number(data.data.yAxis) == 0) {\r\n return '';\r\n } else {\r\n return '( ' + data.data.xAxis + ',' + data.data.yAxis + ')';\r\n }\r\n },\r\n },\r\n itemStyle: { color: 'transparent' },\r\n },\r\n ],\r\n },\r\n markLineObj = {\r\n symbol: ['none', 'none'], //去掉箭头\r\n itemStyle: {\r\n lineStyle: {\r\n type: 'solid',\r\n color: '#333',\r\n width: 2,\r\n },\r\n },\r\n data: [\r\n [\r\n {\r\n coord: coordX,\r\n lineStyle: {\r\n color: '#333', //X轴\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: peakvalue,\r\n },\r\n ],\r\n [\r\n {\r\n coord: coordY,\r\n lineStyle: {\r\n color: '#333', //y轴\r\n type: 'dashed',\r\n },\r\n },\r\n {\r\n coord: peakvalue,\r\n },\r\n ],\r\n ],\r\n };\r\n\r\n //如果界面设置了校正最佳含水率和最大干密度,则显示界面中的顶点坐标(此时就不显示辅助线了)\r\n if (chartExtJson.jsIsJz && /^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(cellValJzZjhsl) && /^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(cellValJzZdgmd)) {\r\n markLineObj = null;\r\n markPointObj.data[0].label = null;\r\n markPointObj.data[0].symbolOffset = null;\r\n markPointObj.data[0].itemStyle.color = '#F56C6C';\r\n markPointObj.data[0].xAxis = cellValJzZjhsl;\r\n markPointObj.data[0].yAxis = cellValJzZdgmd;\r\n markLineObj = null;\r\n }\r\n\r\n let seriesDataObj = {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineData[isTwoLineData ? 1 : 0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n type: isTwoLineData ? 'dotted' : 'solid',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineData[isTwoLineData ? 1 : 0].lineColor,\r\n },\r\n data: seriesData,\r\n markPoint: isShowMarkPoint ? markPointObj : null,\r\n markLine: isShowMarkLine ? markLineObj : null,\r\n };\r\n\r\n return {\r\n xAxisMin: xAxisMin,\r\n xAxisMax: xAxisMax,\r\n yAxisMin: yAxisMin,\r\n yAxisMax: yAxisMax,\r\n xData: xData,\r\n seriesDataObj: seriesDataObj,\r\n maxPointData: [arrX[maxIndex], max],\r\n };\r\n };\r\n\r\n let xAxisMin = 0,\r\n xAxisMax = 0,\r\n yAxisMin = 0,\r\n yAxisMax = 0,\r\n xData = [],\r\n seriesData = [],\r\n maxPointDataX = 0,\r\n maxPointDataY = 0;\r\n\r\n let lineObj1 = lineFunc(xDataSource1, yDataSource1, !isTwoLine, !isTwoLine, false),\r\n lineObj2;\r\n if (isTwoLine) {\r\n lineObj2 = lineFunc(xDataSource2, yDataSource2, false, false, true);\r\n }\r\n\r\n //判断数据是否为/,‘’,null,undefined\r\n let yValIsAllNull = false;\r\n\r\n //此处的作用是,有可能x和y轴的数据都为空,造成lineObj1为undefined,避免报错\r\n if (lineObj1 == undefined || lineObj1 == null) {\r\n yValIsAllNull = true;\r\n }\r\n\r\n if (!yValIsAllNull) {\r\n //一条线的时候\r\n if (!isTwoLine) {\r\n xAxisMin = lineObj1.xAxisMin;\r\n xAxisMax = lineObj1.xAxisMax;\r\n yAxisMin = lineObj1.yAxisMin;\r\n yAxisMax = lineObj1.yAxisMax;\r\n xData = lineObj1.xData;\r\n seriesData.push(lineObj1.seriesDataObj);\r\n }\r\n //2条线的时候\r\n else {\r\n if (lineObj2 == undefined || lineObj2 == null) {\r\n return;\r\n }\r\n\r\n xAxisMax = lineObj1.xAxisMax;\r\n if (lineObj2.xAxisMax > xAxisMax) {\r\n xAxisMax = lineObj2.xAxisMax;\r\n }\r\n xAxisMin = lineObj1.xAxisMin;\r\n if (lineObj2.xAxisMin < xAxisMin) {\r\n xAxisMin = lineObj2.xAxisMin;\r\n }\r\n yAxisMax = lineObj1.yAxisMax;\r\n if (lineObj2.yAxisMax > yAxisMax) {\r\n yAxisMax = lineObj2.yAxisMax;\r\n }\r\n yAxisMin = lineObj1.yAxisMin;\r\n if (lineObj2.yAxisMin < yAxisMin) {\r\n yAxisMin = lineObj2.yAxisMin;\r\n }\r\n\r\n lineObj1.xData.forEach((item) => {\r\n xData.push(item);\r\n });\r\n lineObj2.xData.forEach((item) => {\r\n xData.push(item);\r\n });\r\n\r\n seriesData.push(lineObj1.seriesDataObj);\r\n seriesData.push(lineObj2.seriesDataObj);\r\n\r\n maxPointDataX = (lineObj1.maxPointData[0] + lineObj2.maxPointData[0]) / 2;\r\n maxPointDataY = (lineObj1.maxPointData[1] + lineObj2.maxPointData[1]) / 2;\r\n\r\n // console.log(\r\n // \t\"两条线最大点的平均值:\",\r\n // \tmaxPointDataX,\r\n // \tmaxPointDataY\r\n // );\r\n\r\n //默认输出精度\r\n let outJdZjhsl = 0.01,\r\n outJdZdgmd = 0.001;\r\n\r\n //顶点数据\r\n let outValZjhsl = 0,\r\n outValZdgmd = 0;\r\n\r\n //设置Sheet单元格的值(最佳含水率和最大干密度)\r\n if (chartExtJson != null) {\r\n // console.log(4444, chartExtJson.jsZjhsl.row, chartExtJson.jsZjhsl.col, arrX[maxIndex]);\r\n\r\n if (chartExtJson.jsZjhslJd != null && chartExtJson.jsZjhslJd != undefined) {\r\n outJdZjhsl = chartExtJson.jsZjhslJd;\r\n }\r\n if (chartExtJson.jsZdgmdJd != null && chartExtJson.jsZdgmdJd != undefined) {\r\n outJdZdgmd = chartExtJson.jsZdgmdJd;\r\n }\r\n\r\n if (maxPointDataX == 0 && maxPointDataY == 0) {\r\n sheet.setValue(chartExtJson.jsZjhsl.row, chartExtJson.jsZjhsl.col, '/');\r\n sheet.setValue(chartExtJson.jsZdgmd.row, chartExtJson.jsZdgmd.col, '/');\r\n } else {\r\n outValZjhsl = EChartsUtilsComm.getRound(maxPointDataX, outJdZjhsl);\r\n outValZdgmd = EChartsUtilsComm.getRound(maxPointDataY, outJdZdgmd);\r\n\r\n sheet.setValue(chartExtJson.jsZjhsl.row, chartExtJson.jsZjhsl.col, outValZjhsl);\r\n sheet.setValue(chartExtJson.jsZdgmd.row, chartExtJson.jsZdgmd.col, outValZdgmd);\r\n }\r\n }\r\n }\r\n }\r\n\r\n seriesData.forEach((item) => {\r\n yValIsAllNull = item.data[0].value.every((ele) => {\r\n return ele == 0;\r\n });\r\n });\r\n if (yValIsAllNull) {\r\n xAxisMin = null;\r\n xAxisMax = null;\r\n yAxisMin = null;\r\n yAxisMax = null;\r\n seriesData = [];\r\n }\r\n\r\n let yMinVal = 0,\r\n yMaxVal = 0;\r\n let allYVal = [];\r\n if (seriesData.length > 0) {\r\n seriesData.forEach((item) => {\r\n item.data.forEach((itemData) => {\r\n allYVal.push(itemData.value[1]);\r\n });\r\n });\r\n yMinVal = Number(EChartsUtilsComm.getRound(Math.min(...allYVal) - 0.02, 0.01));\r\n yMaxVal = Number(EChartsUtilsComm.getRound(Math.max(...allYVal) + 0.02, 0.01));\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 25,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 10,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n //console.log(datas,\" datas\")\r\n return datas && datas.length > 0\r\n ? datas[0].seriesName + '(' + datas[0].value[0] + ')' + ':' + Number(EChartsUtilsComm.getRound(datas[0].value[1], 0.001))\r\n : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value',\r\n max: !yValIsAllNull ? xAxisMax : 0,\r\n min: !yValIsAllNull ? xAxisMin : 0,\r\n data: xData,\r\n axisTick: {\r\n alignWithLabel: true, //使得刻度线和标签对齐\r\n },\r\n splitLine: { show: true },\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n max: !yValIsAllNull ? yMaxVal : 0,\r\n min: !yValIsAllNull ? yMinVal : 0,\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 40 : 25,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n //设置y轴箭头效果\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: !yValIsAllNull ? seriesData : [],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 筛分(动态多折线版)\r\n * 与 chart50 主体逻辑一致(x轴 0.45 次方变换、按x排序、空值过滤、markLine 模拟x轴标签等),\r\n * 区别在于折线数量不再固定为 3 条,而是根据 chartLinesJson 中的折线配置数量动态生成 N 条线:\r\n * - 每条线的图例名取 lineData[i].legend\r\n * - 每条线的颜色取 lineData[i].lineColor\r\n * - 每条线的 Y 数据取 yDataArr[i]\r\n * - 符号与线型按索引循环取预设值(首线保持实心方块+实线,与 chart50 一致)\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组,取 xDataArr[0] 作为共享x轴)\r\n * @param yDataArr y轴原始数据(二维数组,yDataArr[i] 对应第 i 条线)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart50: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n\r\n let title = '',\r\n xName = config.chartXName,\r\n yName = config.chartYName;\r\n\r\n // 判断某个子数组的值是否全部为 \"/\"、null、空串或 0(即该条线无任何有效数据)\r\n const isAllEmpty = (arr: any[]): boolean => {\r\n if (!Array.isArray(arr)) return true;\r\n if (arr.length === 0) return true;\r\n return arr.every((v) => v == null || v === '/' || v === '' || v === 0);\r\n };\r\n\r\n // 同步过滤:将 yDataArr 中“值全为空”的子数组剔除,同时按索引对应剔除 lineData 中同一条线配置,\r\n // 保证剩余的线其图例名/颜色与 y 数据一一对应\r\n const validIndexes: number[] = [];\r\n for (let i = 0; i < yDataArr.length; i++) {\r\n if (!isAllEmpty(yDataArr[i])) {\r\n validIndexes.push(i);\r\n }\r\n }\r\n\r\n const filteredYDataArr: Array<Array<any>> = validIndexes.map((i) => yDataArr[i]);\r\n const filteredLineData: any[] = Array.isArray(lineData) ? validIndexes.map((i) => lineData[i]) : [];\r\n\r\n // 折线数量:以过滤后实际有数据的线条数为准\r\n const lineCount = filteredYDataArr.length;\r\n // 后续统一使用过滤后的数据\r\n lineData = filteredLineData;\r\n\r\n // 没有任何有效数据时,直接返回空配置,避免后续空数组访问报错\r\n if (lineCount === 0) {\r\n return {};\r\n }\r\n\r\n // x轴原始数据(共享一份)\r\n const xDataSourceOld = xDataArr[0];\r\n\r\n const allData: any[] = [];\r\n xDataSourceOld.forEach((item, index) => {\r\n const point: any = { x: item };\r\n // 将每条线的 y 值都收进同一个点对象,key 为 y0/y1/y2...\r\n for (let i = 0; i < lineCount; i++) {\r\n point['y' + i] = (filteredYDataArr[i] || [])[index];\r\n }\r\n allData.push(point);\r\n });\r\n // allData.sort(function (a, b) {\r\n // return a.x - b.x;\r\n // });\r\n\r\n // 每条线的数据数组\r\n const yDataSources: any[][] = [];\r\n for (let i = 0; i < lineCount; i++) {\r\n yDataSources.push([]);\r\n }\r\n\r\n // 统计各条线中值为 null 或 \"/\" 的个数(用于后续空值过滤逻辑,保持与 chart50 一致的行为)\r\n const nullCounts: number[] = [];\r\n for (let i = 0; i < lineCount; i++) {\r\n let cnt = 0;\r\n (filteredYDataArr[i] || []).forEach((item) => {\r\n if (item == null || item == '/') {\r\n cnt++;\r\n }\r\n });\r\n nullCounts.push(cnt);\r\n }\r\n\r\n // 若任意一条线存在非空值,则按“所有线均非空”过滤出有效点;否则保留全部点(与 chart50 上限/下限过滤逻辑保持语义一致)\r\n const hasAnyValid = nullCounts.some((cnt, i) => cnt < (filteredYDataArr[i] || []).length);\r\n\r\n // 过滤后的 x 原始值(与过滤后的 y 一一对应,避免 x/y 长度错位)\r\n const validXValues: any[] = [];\r\n\r\n allData.forEach((item) => {\r\n if (!hasAnyValid) {\r\n validXValues.push(item.x);\r\n for (let i = 0; i < lineCount; i++) {\r\n yDataSources[i].push(item['y' + i]);\r\n }\r\n return;\r\n }\r\n // 存在有效值时,仅当所有线该点均非空才保留\r\n let allValid = true;\r\n for (let i = 0; i < lineCount; i++) {\r\n const v = item['y' + i];\r\n if (v == null || v == '/') {\r\n allValid = false;\r\n break;\r\n }\r\n }\r\n if (allValid) {\r\n validXValues.push(item.x);\r\n for (let i = 0; i < lineCount; i++) {\r\n yDataSources[i].push(item['y' + i]);\r\n }\r\n }\r\n });\r\n\r\n // x轴数据:x轴原始数据的0.45次方,并修约0.001\r\n let xData: any[] = [];\r\n let markLineData: any[] = [];\r\n\r\n // x和y轴的字体大小\r\n const xFontSize = 8,\r\n yFontSize = 10;\r\n\r\n // 组装 x 轴与 markLine(基于过滤后的 x,与 y 数据一一对应)\r\n validXValues.forEach((item, index) => {\r\n const val045 = Number(EChartsUtilsComm.getRound(item ** 0.45, 0.001));\r\n\r\n markLineData.push({\r\n name: item + '',\r\n xAxis: val045,\r\n label: {\r\n // show: validXValues.length >= 6 && index % 2 != 0 && index < 6 ? false : true,\r\n show: true,\r\n fontSize: xFontSize,\r\n },\r\n });\r\n xData.push(val045);\r\n });\r\n\r\n // 符号与线型预设值(循环取用)\r\n const symbolPresets = ['rect', 'triangle', 'circle', 'diamond', 'roundRect', 'arrow'];\r\n const lineTypePresets: any[] = ['solid', 'dotted', [10, 5], 'dashed', [2, 2], [6, 3, 2, 3]];\r\n\r\n /**\r\n * 获取 series 需要的单条线配置(动态版)\r\n * @param index 第几条线\r\n * @param data 对应的坐标点数据([x, y])\r\n */\r\n const getLineObj = (index, data) => {\r\n const lineCfg = lineData[index] || {};\r\n // 图例名:优先取 lineData[index].legend,其次用序号兜底\r\n const name = lineCfg.legend != null && lineCfg.legend !== '' ? lineCfg.legend : '折线' + (index + 1);\r\n // 颜色:优先取 lineData[index].lineColor,其次循环取预设色\r\n const color = lineCfg.lineColor != null && lineCfg.lineColor !== '' ? lineCfg.lineColor : null;\r\n const symbol = symbolPresets[index % symbolPresets.length];\r\n const lineType = lineTypePresets[index % lineTypePresets.length];\r\n\r\n let obj = {\r\n name: name,\r\n type: 'line',\r\n // smooth: true,\r\n symbol: symbol,\r\n symbolSize: 5,\r\n z: 10,\r\n lineStyle: {\r\n color: color,\r\n type: lineType,\r\n },\r\n itemStyle: {\r\n color: color,\r\n },\r\n data: data,\r\n connectNulls: true,\r\n markLine: {\r\n symbol: '',\r\n silent: true,\r\n label: {\r\n fontSize: 18,\r\n rotate: 45,\r\n padding: [2, 0, 0, -10],\r\n position: 'start',\r\n formatter: (data) => {\r\n return data.name;\r\n },\r\n },\r\n lineStyle: { color: '#e0e6f1', type: 'solid' },\r\n data: markLineData,\r\n },\r\n };\r\n\r\n return obj;\r\n };\r\n\r\n // 验证是否没有任何数据,以便控制显示y轴的名称的距离位置\r\n let yValIsAllNull = false;\r\n if (xData.length == 0) {\r\n yValIsAllNull = true;\r\n }\r\n\r\n // 组装每条线的 [x, y] 坐标点数据\r\n const seriesDataList: any[][] = [];\r\n for (let i = 0; i < lineCount; i++) {\r\n const linePoints: any[] = [];\r\n for (let j = 0; j < xData.length; j++) {\r\n linePoints.push([xData[j], yDataSources[i][j]]);\r\n }\r\n seriesDataList.push(linePoints);\r\n }\r\n\r\n let nullCount = 0;\r\n seriesDataList.forEach((linePoints) => {\r\n linePoints.forEach((item) => {\r\n if (item[1] == null || item[1] == undefined || item[1] == '/') {\r\n nullCount++;\r\n }\r\n });\r\n });\r\n if (nullCount == xData.length * lineCount) {\r\n yValIsAllNull = true;\r\n }\r\n\r\n if (yDataArr.every((arr) => !arr.some((x) => x != '' && x != '/' && x != null && x != undefined))) {\r\n yValIsAllNull = true;\r\n }\r\n\r\n // 图例名称与选中状态(动态)\r\n const legendNames: string[] = [];\r\n const legendSelected: Record<string, boolean> = {};\r\n for (let i = 0; i < lineCount; i++) {\r\n const lineCfg = lineData[i] || {};\r\n const name = lineCfg.legend != null && lineCfg.legend !== '' ? lineCfg.legend : '折线' + (i + 1);\r\n legendNames.push(name);\r\n legendSelected[name] = true;\r\n }\r\n\r\n // series 动态生成\r\n const series = seriesDataList.map((linePoints, i) => getLineObj(i, !yValIsAllNull ? linePoints : []));\r\n\r\n let option = {\r\n grid: {\r\n top: 20,\r\n left: 30,\r\n right: 10,\r\n bottom: 35,\r\n containLabel: true,\r\n },\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n if (datas && datas[0].data.length > 1) {\r\n let xObj = markLineData.filter((item) => item.xAxis == datas[0].data[0]);\r\n return datas[0].seriesName + '(' + xObj[0].name + ')' + ':' + datas[0].data[1];\r\n } else {\r\n return datas[0].data;\r\n }\r\n },\r\n },\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 5,\r\n textStyle: {\r\n fontSize: 18,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: -5,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n legend: {\r\n top: '0px',\r\n left: 'center',\r\n data: legendNames,\r\n selected: legendSelected,\r\n selectedMode: 'multiple',\r\n },\r\n xAxis: {\r\n type: 'value',\r\n axisTick: { show: false },\r\n axisLabel: { show: false },\r\n splitLine: {\r\n show: false,\r\n },\r\n // min: xData.length > 0 ? (xData[0] > 0.2 ? xData[0] - 0.2 : 0) : null,\r\n // max: xData.length > 0 ? xData[xData.length - 1] + 0.1 : null,\r\n min: xData.length > 0 ? (Math.min(...xData) > 0.2 ? Math.min(...xData) - 0.2 : 0) : null,\r\n max: xData.length > 0 ? Math.max(...xData) + 0.2 : null,\r\n // // 控制x轴是否为反方向,如果x轴录入的数据从左到右为从大到小的顺序,则开启反方向\r\n // inverse: xData.length > 0 ? (xData[0] > xData[xData.length - 1] ? true : false) : false\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: 30,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n min: 0,\r\n max: 100,\r\n splitNumber: 10,\r\n axisLabel: {\r\n fontSize: yFontSize,\r\n },\r\n },\r\n ],\r\n series: series,\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 界限含水率\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart70: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n //此图形排除了图形数据不正确的情况,如果数据不对,则直接返回{}\r\n if (\r\n xDataArr[0].some((item) => item == null || item == '' || item == undefined) ||\r\n yDataArr[0].some((item) => item == null || item == '' || item == undefined)\r\n ) {\r\n return {};\r\n }\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //x和y轴的数据\r\n let xData = xDataArr[0], // [22.9, 32.4, 36.9],\r\n yData = yDataArr[0], // [2.2, 11.6, 19.8],\r\n ztzl = 100, //锥体质量(g),100或76\r\n cllx = '砂类土', //材料类型,砂类土或细粒土\r\n logx = [], // c,b,a\r\n logy = [];\r\n\r\n //获取锥体质量和材料类型\r\n if (chartExtJson != null) {\r\n let curZtzl = sheet.getValue(chartExtJson.jxhslZtzl.row, chartExtJson.jxhslZtzl.col),\r\n curCllx = sheet.getValue(chartExtJson.jxhslCllx.row, chartExtJson.jxhslCllx.col);\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(curZtzl)) {\r\n curZtzl = Number(curZtzl);\r\n if (curZtzl == 100 || curZtzl == 76) {\r\n ztzl = curZtzl;\r\n }\r\n }\r\n if (curCllx == '砂类土' || curCllx == '细粒土') {\r\n cllx = curCllx;\r\n }\r\n }\r\n\r\n // console.log(ztzl, cllx);\r\n\r\n //先求对数\r\n for (const item1 of xData) {\r\n logx.push(Math.log(item1));\r\n }\r\n for (const item2 of yData) {\r\n logy.push(Math.log(item2));\r\n }\r\n //求ab / ac 斜率 公式k=y2-y1 / x2-x1\r\n let abk = (logy[2] - logy[1]) / (logx[2] - logx[1]);\r\n let ack = (logy[2] - logy[0]) / (logx[2] - logx[0]);\r\n\r\n const xMax = Math.max.apply(Math, xData),\r\n xMin = Math.min.apply(Math, xData),\r\n xAxisMax = xMax + 1,\r\n xAxisMin = xMin - 0.3,\r\n yMax = Math.max.apply(Math, yData),\r\n yMin = Math.min.apply(Math, yData),\r\n yAxisMax = yMax + 1,\r\n yAxisMin = yMin - 2,\r\n dropName = ['C', 'B', 'A'],\r\n seriesData = [];\r\n\r\n xData.forEach((item, index) => {\r\n seriesData.push([item, yData[index], dropName[index]]);\r\n });\r\n\r\n //求ab / ac 延长线方法\r\n function getYOnLine(point1, point2, point3X) {\r\n const logX1 = Math.log(point1[0]);\r\n const logY1 = Math.log(point1[1]);\r\n const logX2 = Math.log(point2[0]);\r\n const logY2 = Math.log(point2[1]);\r\n const slope = (logY2 - logY1) / (logX2 - logX1);\r\n const logPoint3X = Math.log(point3X);\r\n const logY = logY1 + slope * (logPoint3X - logX1);\r\n return Math.exp(logY);\r\n }\r\n\r\n let point3X = 20;\r\n let abd3 = getYOnLine([xData[2], yData[2]], [xData[1], yData[1]], point3X);\r\n let zero_ab = [20, abd3];\r\n let acd3 = getYOnLine([xData[2], yData[2]], [xData[0], yData[0]], point3X);\r\n let zero_ac = [20, acd3];\r\n\r\n // console.log(zero_ab, 'zero_ab');\r\n // console.log(zero_ac, 'zero_ac');\r\n\r\n //第一次计算D-y值,代入A点的X坐标\r\n function HpCoordinates(wl) {\r\n let hp;\r\n if (cllx == '砂类土') {\r\n //砂类土\r\n hp = 29.6 - 1.22 * wl + 0.017 * wl * wl - 0.0000744 * wl * wl * wl;\r\n } else {\r\n //细粒土\r\n hp = wl / (0.524 * wl - 7.606);\r\n }\r\n return hp;\r\n }\r\n\r\n let coordX = [];\r\n let coordY = [];\r\n let point_hp = [];\r\n\r\n let Dy = HpCoordinates(xData[2]);\r\n let Dylog = Math.log(Dy);\r\n let hp0_xab = (abk * logx[2] - (logy[2] - Dylog)) / abk;\r\n let hp0_xac = (ack * logx[2] - (logy[2] - Dylog)) / ack;\r\n if (hp0_xab - hp0_xac >= 2) {\r\n //return '超差!';\r\n }\r\n let hp0_xcenter = Math.exp((hp0_xab + hp0_xac) / 2);\r\n let Dxlog = Math.log(hp0_xcenter);\r\n let adk = (logy[2] - Dylog) / (logx[2] - Dxlog); //AD 斜率\r\n\r\n //输出的hp、wl和wp\r\n let scHp, scWl, scWp;\r\n\r\n //判断锥数\r\n if (ztzl == 76) {\r\n //计算wl ad直线上y=17时,对应的x值\r\n let wly = Math.log(17);\r\n let wlx = (adk * logx[2] - (logy[2] - wly)) / adk;\r\n let wl = Math.exp(wlx);\r\n\r\n //计算WP:ad直线上y=2时,对应的x值\r\n let wpy = Math.log(2);\r\n let wpx = (adk * logx[2] - (logy[2] - wpy)) / adk;\r\n let wp = Math.exp(wpx);\r\n\r\n point_hp = [hp0_xcenter, Dy];\r\n coordX = [hp0_xcenter, yAxisMin];\r\n coordY = [xAxisMin, Dy];\r\n seriesData.push([hp0_xcenter, Dy, 'Hp']);\r\n\r\n scHp = Dy;\r\n scWl = wl;\r\n scWp = wp;\r\n // console.log('输出:', wp, wl, Dy);\r\n } else if (ztzl == 100) {\r\n //计算wl的值----先求AD斜率再代入y=20,求X (X即Wl的值)\r\n let wly = Math.log(20);\r\n let wlx = (adk * logx[2] - (logy[2] - wly)) / adk;\r\n let wl = Math.exp(wlx);\r\n\r\n //第二次计算hp值\r\n let hpy2 = HpCoordinates(wl);\r\n let hpylog2 = Math.log(hpy2);\r\n let hp0_xab2 = (abk * logx[2] - (logy[2] - hpylog2)) / abk;\r\n let hp0_xac2 = (ack * logx[2] - (logy[2] - hpylog2)) / ack;\r\n\r\n let hp0_xcenter2 = Math.exp((hp0_xab2 + hp0_xac2) / 2);\r\n let wp = hp0_xcenter2;\r\n\r\n point_hp = [hp0_xcenter2, hpy2];\r\n\r\n coordX = [hp0_xcenter2, yAxisMin];\r\n coordY = [xAxisMin, hpy2];\r\n seriesData.push([hp0_xcenter2, hpy2, 'Hp']);\r\n\r\n scHp = hpy2;\r\n scWl = wl;\r\n scWp = wp;\r\n // console.log('输出:', wp, wl, hpy2);\r\n }\r\n\r\n //判断是否是一个数字\r\n if (isNaN(scHp) || isNaN(scWl) || isNaN(scWp)) {\r\n scHp = 0;\r\n scWl = 0;\r\n scWp = 0;\r\n }\r\n\r\n //设置Sheet单元格的值(输出hp、wl和wp)\r\n if (chartExtJson != null) {\r\n //默认输出精度\r\n let outJdHp = 0.01,\r\n outJdWl = 0.01,\r\n outJdWp = 0.01;\r\n if (chartExtJson.jxhslScHpJd != null && chartExtJson.jxhslScHpJd != undefined) {\r\n outJdHp = chartExtJson.jxhslScHpJd;\r\n }\r\n if (chartExtJson.jxhslScWlJd != null && chartExtJson.jxhslScWlJd != undefined) {\r\n outJdWl = chartExtJson.jxhslScWlJd;\r\n }\r\n if (chartExtJson.jxhslScWpJd != null && chartExtJson.jxhslScWpJd != undefined) {\r\n outJdWp = chartExtJson.jxhslScWpJd;\r\n }\r\n\r\n if (chartExtJson.jxhslScHp != null && chartExtJson.jxhslScHp != undefined) {\r\n if (scHp == 0) {\r\n sheet.setValue(chartExtJson.jxhslScHp.row, chartExtJson.jxhslScHp.col, '/');\r\n } else {\r\n sheet.setValue(chartExtJson.jxhslScHp.row, chartExtJson.jxhslScHp.col, EChartsUtilsComm.getRound(scHp, outJdHp));\r\n }\r\n }\r\n if (chartExtJson.jxhslScWl != null && chartExtJson.jxhslScWl != undefined) {\r\n if (scWl == 0) {\r\n sheet.setValue(chartExtJson.jxhslScWl.row, chartExtJson.jxhslScWl.col, '/');\r\n } else {\r\n sheet.setValue(chartExtJson.jxhslScWl.row, chartExtJson.jxhslScWl.col, EChartsUtilsComm.getRound(scWl, outJdWl));\r\n }\r\n }\r\n if (chartExtJson.jxhslScWp != null && chartExtJson.jxhslScWp != undefined) {\r\n if (scWp == 0) {\r\n sheet.setValue(chartExtJson.jxhslScWp.row, chartExtJson.jxhslScWp.col, '/');\r\n } else {\r\n sheet.setValue(chartExtJson.jxhslScWp.row, chartExtJson.jxhslScWp.col, EChartsUtilsComm.getRound(scWp, outJdWp));\r\n }\r\n }\r\n }\r\n //验证是否没有任何数据,以便控制显示y轴的名称的距离位置\r\n let yValIsAllNull = false;\r\n if (xData.length == 0) {\r\n yValIsAllNull = true;\r\n }\r\n let nullCount = 0;\r\n xData.forEach((item) => {\r\n if (item[1] == null || item[1] == undefined || item[1] == '/') {\r\n nullCount++;\r\n }\r\n });\r\n if (nullCount == xData.length) {\r\n yValIsAllNull = true;\r\n }\r\n if (\r\n yData.some((item) => item != null && item != undefined && item != '/') ||\r\n yData.some((item) => item != null && item != undefined && item != '/')\r\n ) {\r\n yValIsAllNull = false;\r\n }\r\n let option = {\r\n grid: {\r\n top: 20,\r\n left: !yValIsAllNull ? 50 : 25,\r\n right: 10,\r\n bottom: 35,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].seriesName + '(' + datas[0].value[0] + ')' + ':' + datas[0].value[1] : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'log',\r\n min: xAxisMin,\r\n max: xAxisMax,\r\n interval: 0,\r\n axisTick: {\r\n show: false,\r\n alignWithLabel: true,\r\n },\r\n splitLine: {\r\n show: false,\r\n },\r\n axisLabel: {\r\n show: false,\r\n },\r\n },\r\n yAxis: {\r\n type: 'log',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n min: yAxisMin,\r\n max: yAxisMax,\r\n interval: 0,\r\n axisTick: {\r\n show: false,\r\n alignWithLabel: true,\r\n },\r\n splitLine: {\r\n show: false,\r\n },\r\n axisLabel: {\r\n show: false,\r\n },\r\n },\r\n series: [\r\n {\r\n name: legendName,\r\n data: seriesData,\r\n type: 'scatter',\r\n symbol: 'circle',\r\n smooth: false,\r\n symbolSize: 6,\r\n label: {\r\n show: true,\r\n formatter: function (param) {\r\n return param.data[2];\r\n },\r\n position: 'right',\r\n minMargin: 2,\r\n },\r\n markLine: {\r\n symbol: ['none', 'none'],\r\n silent: true,\r\n label: {\r\n show: true,\r\n position: 'start',\r\n color: '#000000',\r\n },\r\n lineStyle: {\r\n type: 'solid',\r\n color: '#333',\r\n },\r\n data: [\r\n { xAxis: seriesData[0][0] },\r\n { xAxis: seriesData[1][0] },\r\n { xAxis: seriesData[2][0] },\r\n { yAxis: seriesData[0][1] },\r\n { yAxis: seriesData[1][1] },\r\n { yAxis: seriesData[2][1] },\r\n [\r\n {\r\n coord: coordX,\r\n lineStyle: {\r\n color: '#333',\r\n type: 'dashed',\r\n },\r\n },\r\n { coord: point_hp }, //Hp---x\r\n ],\r\n [\r\n {\r\n coord: coordY,\r\n lineStyle: {\r\n color: '#333',\r\n type: 'dashed', //dashed dotted\r\n },\r\n },\r\n { coord: point_hp }, //Hp----y\r\n ],\r\n ],\r\n },\r\n },\r\n {\r\n //a-b连线\r\n type: 'line',\r\n data: [\r\n [xData[2], yData[2]],\r\n [xData[1], yData[1]],\r\n ],\r\n lineStyle: {\r\n color: '#0000FF',\r\n type: 'solid',\r\n width: 1,\r\n },\r\n symbol: 'none',\r\n },\r\n {\r\n //a-b 延长线\r\n type: 'line',\r\n data: [\r\n [xData[1], yData[1]],\r\n [zero_ab[0], zero_ab[1]],\r\n ],\r\n lineStyle: {\r\n color: '#000000',\r\n type: 'dashed',\r\n width: 1,\r\n },\r\n symbol: 'none',\r\n },\r\n {\r\n //a-c连线\r\n type: 'line',\r\n data: [\r\n [xData[2], yData[2]],\r\n [xData[0], yData[0]],\r\n ],\r\n lineStyle: {\r\n color: '#0000FF',\r\n type: 'solid',\r\n width: 1,\r\n },\r\n symbol: 'none',\r\n },\r\n {\r\n //a-c 延长线\r\n type: 'line',\r\n data: [\r\n [xData[0], yData[0]],\r\n [zero_ac[0], zero_ac[1]],\r\n ],\r\n lineStyle: {\r\n color: '#000000',\r\n type: 'dashed',\r\n width: 1,\r\n },\r\n symbol: 'none',\r\n },\r\n {\r\n //a-Hp连线\r\n type: 'line',\r\n data: [[xData[2], yData[2]], point_hp],\r\n lineStyle: {\r\n color: '#0000FF',\r\n type: 'solid',\r\n width: 1,\r\n },\r\n symbol: 'none',\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 水泥、石灰标准曲线\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart90: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n //y轴原始数据\r\n let yDataSource = yDataArr[0]; // [1.2, 5.6, 10.8, 16, 20.8];\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //x轴的数据\r\n let xData = xDataArr[0]; // [0, 2, 4, 6, 8];\r\n\r\n //重新处理x轴和y轴的数据,排除x轴后面为0的数据(因为有可能在单元格中,最后一个单元格的值可能没有填,这时候默认传的是0)\r\n let xDataCl = [],\r\n yDataSourceCl = [];\r\n for (let i = 0; i < xData.length; i++) {\r\n if (xData[i] != '/' && (i == 0 || (i > 0 && xData[i] != 0))) {\r\n xDataCl.push(xData[i]);\r\n yDataSourceCl.push(yDataSource[i]);\r\n } else if (i > 0 && xData[i] == 0) {\r\n break;\r\n }\r\n }\r\n xData = xDataCl;\r\n yDataSource = yDataSourceCl;\r\n\r\n //series的data数据、series的markPoint的data数据、series的markLine的data数据\r\n let seriesData = [],\r\n markPointData = [],\r\n markLineData = [...xData];\r\n\r\n //此目的是显示更多的x轴数据\r\n //假设x轴原始数据为[0, 2, 4, 6, 8],在这个数组中没有1、3、5等数据,此时就可以通过下面的方式进行增加\r\n /*\r\n\t\tfor (let i = 0; i < 20; i++) {\r\n\t\t\tif (!markLineData.some((item) => item == i)) {\r\n\t\t\t\tmarkLineData.push(i);\r\n\t\t\t}\r\n\t\t}\r\n\t\t*/\r\n\r\n //获取y轴趋势公式对象\r\n const gsS = EChartsUtilsComm.calcTrend(xData, yDataSource, xData[0]);\r\n\r\n //输出方程表达式\r\n if (chartExtJson != null) {\r\n if (chartExtJson.jxhslSnShScfc != null && chartExtJson.jxhslSnShScfc != undefined) {\r\n // console.log('输出公式:',`Y=${getRound(gsS.xl,0.0001)}X+${getRound(gsS.jj,0.0001)}`)\r\n if (gsS.xl == '' || gsS.jj == '') {\r\n sheet.setValue(chartExtJson.jxhslSnShScfc.row, chartExtJson.jxhslSnShScfc.col, '/');\r\n } else {\r\n const curXVal = EChartsUtilsComm.getRound(gsS.jj, 0.0001);\r\n\r\n sheet.setValue(\r\n chartExtJson.jxhslSnShScfc.row,\r\n chartExtJson.jxhslSnShScfc.col,\r\n `Y=${EChartsUtilsComm.getRound(gsS.xl, 0.0001)}X${curXVal >= 0 ? '+' : ''}${curXVal}`,\r\n );\r\n }\r\n }\r\n }\r\n\r\n let yDataCopy = [];\r\n //获取y轴原始数据对应的趋势数据\r\n xData.forEach((item, index) => {\r\n let curYData = Number(EChartsUtilsComm.getRound(eval(gsS.gs.replace('x', item + '')), 0.01));\r\n if (isNaN(curYData)) {\r\n curYData = 0;\r\n }\r\n\r\n seriesData.push([item, curYData]);\r\n yDataCopy.push(curYData);\r\n markPointData.push({\r\n xAxis: item,\r\n yAxis: yDataSource[index],\r\n symbol: 'circle',\r\n symbolSize: 6,\r\n });\r\n\r\n //console.log(curYData, \"curYData\")\r\n });\r\n\r\n let yValIsAllNull = false;\r\n if (xData.length == 0) {\r\n yValIsAllNull = true;\r\n }\r\n let nullCount = 0;\r\n xData.forEach((item) => {\r\n if (item[1] == 0 || item[1] == null || item[1] == undefined) {\r\n nullCount++;\r\n }\r\n });\r\n if (nullCount == xData.length) {\r\n yValIsAllNull = true;\r\n }\r\n if (yDataCopy.some((item) => item != 0 || item[1] == null || item[1] == undefined)) {\r\n yValIsAllNull = false;\r\n }\r\n\r\n if (!yDataArr[0].some((x) => x != '' && x != '/' && x != null && x != undefined)) {\r\n yValIsAllNull = true;\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 22,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 10,\r\n bottom: 35,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].value[0] + ':' + datas[0].value[1] : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value',\r\n splitLine: { show: false }, // 隐藏分割线\r\n axisLabel: { show: false }, // 隐藏刻度值\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineData[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineData[0].lineColor,\r\n opacity: 0,\r\n },\r\n data: seriesData,\r\n markPoint: {\r\n data: markPointData,\r\n },\r\n markLine: {\r\n symbol: false, //取消箭头\r\n silent: true, //取消鼠标hover事件\r\n label: {\r\n position: 'start', //改变label位置\r\n formatter: (obj) => obj.value, //格式化显示的x轴标签内容\r\n },\r\n lineStyle: { color: '#ddd', type: 'solid' },\r\n data: markLineData.map((val) => {\r\n return {\r\n xAxis: val,\r\n };\r\n }),\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 延迟时间-强度曲线\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart110: (\r\n config: EChartsUtilsConfigModel,\r\n xDataArr: Array<Array<any>>,\r\n yDataArr: Array<Array<any>>,\r\n xDataArrSource: Array<Array<any>>,\r\n yDataArrSource: Array<Array<any>>,\r\n ) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n const xDataSource = xDataArrSource[0]; // ['0.0','1.0','2.0','3.0','4.0','5.0'];\r\n\r\n let xData = [];\r\n xDataSource.forEach((item, index) => {\r\n if (item == '/') {\r\n xData.push(item);\r\n } else {\r\n xData.push(Number(item));\r\n }\r\n });\r\n\r\n //y轴的数据\r\n let yData = yDataArr[0]; // [4.4,4.3,4.3,4.2,4.1,3.7];\r\n let seriesData = [];\r\n xData.forEach((item, index) => {\r\n if (item != '/' && item != undefined && item != null) {\r\n seriesData.push([item, yData[index]]);\r\n }\r\n });\r\n\r\n let yValIsAllNull = false;\r\n if (seriesData.length == 0) {\r\n yValIsAllNull = true;\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 25,\r\n left: 25,\r\n right: 15,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].seriesName + '(' + datas[0].name + ')' + ':' + datas[0].value : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'category', //设置x轴为对数坐标轴\r\n axisTick: {\r\n alignWithLabel: true, //使得刻度线和标签对齐\r\n },\r\n axisLabel: {\r\n // 使用formatter格式化标签\r\n formatter: function (value) {\r\n let curXName = '';\r\n for (let i = 0; i < xData.length; i++) {\r\n if (xData[i] == value) {\r\n curXName = xDataSource[i];\r\n if (curXName == '/') {\r\n curXName = '';\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return curXName;\r\n },\r\n },\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineData[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineData[0].lineColor,\r\n },\r\n data: seriesData,\r\n },\r\n ],\r\n };\r\n return option;\r\n },\r\n /**\r\n * 颗粒组成(筛分法)\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart130: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n // console.log(config);\r\n // console.log(xDataArr);\r\n // console.log(yDataArr);\r\n\r\n //x和y轴的数据\r\n const xData = xDataArr[0], // [60, 40, 20, 10, 5, 2, 1, 0.5, 0.25, 0.075],\r\n yData = yDataArr[0]; // [100.0, 100.0, 88.3, 69.3, 46.7, 27.0, 19.7, 5.6, 0.5, 0.3];\r\n let xMin = 0.035,\r\n xMax = 100;\r\n\r\n let seriesData = [];\r\n xData.forEach((item, index) => {\r\n if (item != '筛底' && yData[index] != 0) {\r\n seriesData.push([item == '筛底' ? 0 : item, yData[index]]);\r\n }\r\n });\r\n\r\n //验证是否没有任何数据,以便控制显示y轴的名称的距离位置\r\n let yValIsAllNull = false;\r\n if (xData.length == 0) {\r\n yValIsAllNull = true;\r\n }\r\n let nullCount = 0;\r\n xData.forEach((item) => {\r\n if (item[1] == null || item[1] == undefined || item[1] == '/') {\r\n nullCount++;\r\n }\r\n });\r\n if (nullCount == xData.length) {\r\n yValIsAllNull = true;\r\n }\r\n if (yData.some((item) => item != null && item != undefined && item != '/')) {\r\n yValIsAllNull = false;\r\n }\r\n\r\n if (yValIsAllNull) {\r\n xMin = null;\r\n xMax = null;\r\n }\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 25,\r\n left: 20,\r\n right: 15,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].seriesName + '(' + datas[0].name + ')' + ':' + datas[0].value : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'log', //设置x轴为对数坐标轴\r\n logBase: 10, //可以设置对数轴的底数,默认为10\r\n inverse: true,\r\n min: xMin,\r\n max: xMax,\r\n // min: 0.035,\r\n // max: 100,\r\n\r\n // 关键:用 customValues 指定刻度位置(需 ECharts >= 5.5.1)\r\n axisTick: {\r\n show: true,\r\n alignWithLabel: true,\r\n customValues: xData,\r\n },\r\n axisLabel: {\r\n show: true,\r\n hideOverlap: false,\r\n customValues: xData,\r\n formatter: function (value) {\r\n return value;\r\n },\r\n },\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineData[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineData[0].lineColor,\r\n },\r\n data: seriesData,\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 回弹模量 (承载板法)\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart150: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //x和y轴的数据\r\n const xData = xDataArr[0], // [25, 50, 100, 150, 200],\r\n yData = yDataArr[0]; // [0.72, 1.07, 1.87, 2.63, 3.48];\r\n\r\n let seriesData = [];\r\n xData.forEach((item, index) => {\r\n seriesData.push([item, yData[index]]);\r\n });\r\n //验证是否没有任何数据,以便控制显示y轴的名称的距离位置\r\n let yValIsAllNull = false;\r\n if (xData.length == 0) {\r\n yValIsAllNull = true;\r\n }\r\n let nullCount = 0;\r\n xData.forEach((item) => {\r\n if (item[1] == null || item[1] == undefined || item[1] == '/') {\r\n nullCount++;\r\n }\r\n });\r\n if (nullCount == xData.length) {\r\n yValIsAllNull = true;\r\n }\r\n if (yData.some((item) => item != null && item != undefined && item != '/')) {\r\n yValIsAllNull = false;\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 55,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 10,\r\n bottom: 10,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].seriesName + '(' + datas[0].name + ')' + ':' + datas[0].value : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n top: 18,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value',\r\n splitLine: { show: false }, // 隐藏分割线\r\n axisLabel: { show: false }, // 隐藏刻度值\r\n position: 'top', //设置x轴在顶部显示\r\n },\r\n yAxis: [\r\n //双y轴,目的是使用第二个y轴来配置字符L显示在y轴下方箭头的位置\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n inverse: true, //y轴坐标轴向下\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n //设置y轴箭头效果\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineData[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineData[0].lineColor,\r\n },\r\n data: seriesData,\r\n markLine: {\r\n symbol: false, //取消箭头\r\n silent: true, //取消鼠标hover事件\r\n label: {\r\n position: 'start', //改变label位置\r\n formatter: (obj) => obj.value, //格式化显示的x轴标签内容\r\n },\r\n lineStyle: { color: '#ddd', type: 'solid' },\r\n data: xData.map((val) => {\r\n return {\r\n xAxis: val,\r\n };\r\n }),\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 土的回弹模量 (强度仪法)\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart170: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //x和y轴的数据\r\n const xData = xDataArr[0], // [25, 50, 100, 150, 200],\r\n yData = yDataArr[0]; // [0.72, 1.07, 1.87, 2.63, 3.48];\r\n\r\n let seriesData = [];\r\n xData.forEach((item, index) => {\r\n seriesData.push([item, yData[index]]);\r\n });\r\n\r\n //验证是否没有任何数据,以便控制显示y轴的名称的距离位置\r\n let yValIsAllNull = false;\r\n if (xData.length == 0) {\r\n yValIsAllNull = true;\r\n }\r\n let nullCount = 0;\r\n xData.forEach((item) => {\r\n if (item[1] == null || item[1] == undefined || item[1] == '/') {\r\n nullCount++;\r\n }\r\n });\r\n if (nullCount == xData.length) {\r\n yValIsAllNull = true;\r\n }\r\n if (yData.some((item) => item != null && item != undefined && item != '/')) {\r\n yValIsAllNull = false;\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 55,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 10,\r\n bottom: 10,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].seriesName + '(' + datas[0].name + ')' + ':' + datas[0].value : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n top: 18,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value',\r\n splitLine: { show: false }, // 隐藏分割线\r\n axisLabel: { show: false }, // 隐藏刻度值\r\n position: 'top', //设置x轴在顶部显示\r\n },\r\n yAxis: [\r\n //双y轴,目的是使用第二个y轴来配置字符L显示在y轴下方箭头的位置\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n inverse: true, //y轴坐标轴向下\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n //设置y轴箭头效果\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineData[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineData[0].lineColor,\r\n },\r\n data: seriesData,\r\n markLine: {\r\n symbol: false, //取消箭头\r\n silent: true, //取消鼠标hover事件\r\n label: {\r\n position: 'start', //改变label位置\r\n formatter: (obj) => obj.value, //格式化显示的x轴标签内容\r\n },\r\n lineStyle: { color: '#ddd', type: 'solid' },\r\n data: xData.map((val) => {\r\n return {\r\n xAxis: val,\r\n };\r\n }),\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 28d抗压强度与胶水比关系\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart190: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n\r\n let title = '', // config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //x和y轴的数据\r\n let xData = xDataArr[0], // [2.32, 2.5, 2.7],\r\n yData = yDataArr[0]; // [42.5, 47.1, 49.1];\r\n\r\n //处理数据\r\n xData = xData.filter((item) => item != null && item != undefined && item != '/' && (item._code == null || item._code == undefined));\r\n yData = yData.filter((item) => item != null && item != undefined && item != '/' && (item._code == null || item._code == undefined));\r\n\r\n //验证是否没有任何数据,以便控制显示y轴的名称的距离位置\r\n let yValIsAllNull = false;\r\n if (xData.length == 0) {\r\n yValIsAllNull = true;\r\n }\r\n let nullCount = 0;\r\n xData.forEach((item) => {\r\n if (item == null || item == undefined || item == '/') {\r\n nullCount++;\r\n }\r\n });\r\n if (nullCount == xData.length) {\r\n yValIsAllNull = true;\r\n xData = [];\r\n }\r\n if (yData.some((item) => item != null && item != undefined && item != '/')) {\r\n yValIsAllNull = false;\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 10,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 10,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].seriesName + '(' + datas[0].name + ')' + ':' + datas[0].value : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 18,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'category',\r\n data: xData,\r\n axisTick: {\r\n alignWithLabel: true, //使得刻度线和标签对齐\r\n },\r\n axisLabel: {\r\n // 使用formatter格式化标签\r\n formatter: function (value) {\r\n if (value == '/') {\r\n return '';\r\n } else {\r\n return value;\r\n }\r\n },\r\n },\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineData[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineData[0].lineColor,\r\n },\r\n data: yData,\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 混凝土拌合物含气量\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart210: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n\r\n //x和y轴的原始数据\r\n let xDataSource = xDataArr[0], // [0.093, 0.081, 0.068, 0.063, 0.057, 0.052, 0.049, 0.044, 0.041, 0.038, 0.036],\r\n yDataSource = yDataArr[0]; // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //series需要的数据\r\n const seriesData = [];\r\n\r\n for (let i = xDataSource.length - 1; i >= 0; i--) {\r\n const item = xDataSource[i];\r\n\r\n if (item != null && item != undefined && item != '/' && (item._error == null || item._error == undefined)) {\r\n seriesData.push([item, yDataSource[i]]);\r\n }\r\n }\r\n\r\n //x和y轴的字体大小\r\n const xyFontSize = 10;\r\n\r\n //验证是否没有任何数据,以便控制显示y轴的名称的距离位置\r\n let yValIsAllNull = false;\r\n if (xDataSource.length == 0) {\r\n yValIsAllNull = true;\r\n }\r\n let nullCount = 0;\r\n xDataSource.forEach((item) => {\r\n if (item == null || item == undefined || item == '/' || (item._error != null && item._error != undefined)) {\r\n nullCount++;\r\n }\r\n });\r\n if (nullCount == xDataSource.length) {\r\n yValIsAllNull = true;\r\n //xDataSource = [];\r\n }\r\n if (yDataSource.some((item) => item != null && item != undefined && item != '/')) {\r\n yValIsAllNull = false;\r\n }\r\n\r\n const getXline = () => {\r\n let arr = [];\r\n [0, 0.02, 0.04, 0.06, 0.08, 0.1].forEach((val) => {\r\n xDataSource.forEach((item) => {\r\n let obj: any = { xAxis: '' };\r\n\r\n if (item == '/') {\r\n obj.xAxis = '';\r\n arr.push(obj);\r\n } else {\r\n obj.xAxis = val;\r\n arr.push(obj);\r\n }\r\n });\r\n });\r\n\r\n //去重\r\n let uniqueData = arr.filter((item, index, self) => index === self.findIndex((t) => t.xAxis == item.xAxis));\r\n return nullCount == xDataSource.length ? [] : uniqueData;\r\n };\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 25,\r\n left: !yValIsAllNull && seriesData.length > 0 ? 30 : 25,\r\n right: 10,\r\n bottom: 40,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].value[0] + ':' + datas[0].value[1] : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value',\r\n splitLine: { show: false }, // 隐藏分割线\r\n axisLabel: { show: false }, // 隐藏刻度值\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull && seriesData.length > 0 ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n axisLabel: {\r\n fontSize: xyFontSize,\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineData[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineData[0].lineColor,\r\n },\r\n data: seriesData,\r\n markLine: {\r\n symbol: false, //取消箭头\r\n silent: true, //取消鼠标hover事件\r\n label: {\r\n position: 'start', //改变label位置\r\n formatter: (obj) => obj.value, //格式化显示的x轴标签内容\r\n fontSize: xyFontSize,\r\n },\r\n lineStyle: { color: '#ddd', type: 'solid' },\r\n data: getXline(),\r\n // data: [0, 0.02, 0.04, 0.06, 0.08, 0.1].map((val) => {\r\n // return {\r\n // xAxis: val,\r\n // }\r\n // }),\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 混凝土拌合物凝结时间\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart230: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n\r\n /*\r\n\t\t\t此处需要注意的是,如果单元格A3=A1-A2,就需要将A3=TEXT(A1-A2, \"h\"\":\"\"m\")\r\n\r\n\t\t\tExcel中默认时间相减得到的是天为单位,因此此处使用了TEXT函数来格式化相减的时间差格式\r\n\r\n\t\t\t=TEXT(A1-A2, \"h\"\":\"\"m\")\r\n\t\t\t=INT(A1-A2) & \"天\" & TEXT(A1-A2, \"h\"\"小时\"\"m\"\"分\"\"\")\r\n\r\n\t\t*/\r\n\r\n //折线的数量\r\n let lineCount = xDataArr.length;\r\n\r\n //原始数据\r\n let xDataSource1 = [], // ['6:20', '6:50', '7:20', '7:50', '7:56', '8:26', '8:56', '9:26', '9:56', '10:11'],\r\n xDataSource2 = [], // ['6:27', '6:57', '7:32', '8:02', '8:05', '8:35', '9:05', '9:35', '10:05', '10:22'],\r\n xDataSource3 = [], // ['6:10', '6:40', '7:10', '7:40', '8:03', '8:13', '8:42', '9:12', '9:40', '10:12'],\r\n yDataSource1 = [], // [0.8, 1.2, 2.2, 3.4, 3.6, 7.8, 11.8, 16.6, 24.6, 28.2],\r\n yDataSource2 = [], // [0.8, 1.3, 2.4, 3.4, 3.5, 7.7, 12.2, 16.7, 25, 28.2],\r\n yDataSource3 = []; // [0.7, 1, 1.9, 3, 3.3, 3.5, 8.2, 13.8, 20.2, 28.2];\r\n\r\n //折线1\r\n xDataSource1 = EChartsUtilsComm.filterNullEmptyErrArray(xDataArr[0]); // ['6:20', '6:50', '7:20', '7:50', '7:56', '8:26', '8:56', '9:26', '9:56', '10:11'],\r\n yDataSource1 = EChartsUtilsComm.filterNullEmptyErrArray(yDataArr[0]); // [0.8, 1.2, 2.2, 3.4, 3.6, 7.8, 11.8, 16.6, 24.6, 28.2],\r\n\r\n //折线2\r\n if (lineCount == 2) {\r\n xDataSource2 = EChartsUtilsComm.filterNullEmptyErrArray(xDataArr[1]); // ['6:27', '6:57', '7:32', '8:02', '8:05', '8:35', '9:05', '9:35', '10:05', '10:22'],\r\n yDataSource2 = EChartsUtilsComm.filterNullEmptyErrArray(yDataArr[1]); // [0.8, 1.3, 2.4, 3.4, 3.5, 7.7, 12.2, 16.7, 25, 28.2],\r\n }\r\n //折线3\r\n if (lineCount == 3) {\r\n xDataSource2 = EChartsUtilsComm.filterNullEmptyErrArray(xDataArr[1]); // ['6:27', '6:57', '7:32', '8:02', '8:05', '8:35', '9:05', '9:35', '10:05', '10:22'],\r\n yDataSource2 = EChartsUtilsComm.filterNullEmptyErrArray(yDataArr[1]); // [0.8, 1.3, 2.4, 3.4, 3.5, 7.7, 12.2, 16.7, 25, 28.2],\r\n xDataSource3 = EChartsUtilsComm.filterNullEmptyErrArray(xDataArr[2]); // ['6:10', '6:40', '7:10', '7:40', '8:03', '8:13', '8:42', '9:12', '9:40', '10:12'],\r\n yDataSource3 = EChartsUtilsComm.filterNullEmptyErrArray(yDataArr[2]); // [0.7, 1, 1.9, 3, 3.3, 3.5, 8.2, 13.8, 20.2, 28.2];\r\n }\r\n\r\n //3条线的x轴数据\r\n let xData1 = [],\r\n xData2 = [],\r\n xData3 = [];\r\n\r\n //组装数据\r\n\r\n xDataSource1.forEach((item, index) => {\r\n //js的时间格式\r\n if (typeof item == 'object') {\r\n xData1.push(item.getHours() * 60 + item.getMinutes());\r\n }\r\n //数字\r\n else if (typeof item == 'number') {\r\n xData1.push(item);\r\n }\r\n //文本格式\r\n else {\r\n const curArr = item.split(':');\r\n const curItemMins = Number(curArr[0]) * 60 + Number(curArr[1]);\r\n xData1.push(curItemMins);\r\n }\r\n });\r\n\r\n xDataSource2.forEach((item, index) => {\r\n //js的时间格式\r\n if (typeof item == 'object') {\r\n xData2.push(item.getHours() * 60 + item.getMinutes());\r\n }\r\n //数字\r\n else if (typeof item == 'number') {\r\n xData2.push(item);\r\n }\r\n //文本格式\r\n else {\r\n const curArr = item.split(':');\r\n const curItemMins = Number(curArr[0]) * 60 + Number(curArr[1]);\r\n xData2.push(curItemMins);\r\n }\r\n });\r\n\r\n xDataSource3.forEach((item, index) => {\r\n //js的时间格式\r\n if (typeof item == 'object') {\r\n xData3.push(item.getHours() * 60 + item.getMinutes());\r\n }\r\n //数字\r\n else if (typeof item == 'number') {\r\n xData3.push(item);\r\n }\r\n //文本格式\r\n else {\r\n const curArr = item.split(':');\r\n const curItemMins = Number(curArr[0]) * 60 + Number(curArr[1]);\r\n xData3.push(curItemMins);\r\n }\r\n });\r\n\r\n //x轴数据前后增加一个点,y轴数据前后也增加一个点\r\n if (xDataSource1.length > 0) {\r\n xData1.push(xData1[xData1.length - 1] + 20);\r\n xData1.unshift(xData1[0] - 20);\r\n yDataSource1.push(null);\r\n yDataSource1.unshift(null);\r\n }\r\n\r\n if (lineCount == 2) {\r\n if (xDataSource2.length > 0) {\r\n xData2.push(xData2[xData2.length - 1] + 20);\r\n xData2.unshift(xData2[0] - 20);\r\n yDataSource2.push(null);\r\n yDataSource2.unshift(null);\r\n }\r\n }\r\n if (lineCount == 3) {\r\n if (xDataSource3.length == 0) {\r\n xData2.push(xData2[xData2.length - 1] + 20);\r\n xData2.unshift(xData2[0] - 20);\r\n yDataSource2.push(null);\r\n yDataSource2.unshift(null);\r\n xData3.push(xData3[xData3.length - 1] + 20);\r\n xData3.unshift(xData3[0] - 20);\r\n yDataSource3.push(null);\r\n yDataSource3.unshift(null);\r\n }\r\n }\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName;\r\n\r\n //获取xAxis需要的数据\r\n const getxAxisObj = (type, data) => {\r\n return {\r\n type: 'category',\r\n data: data,\r\n axisTick: {\r\n alignWithLabel: true, //使得刻度线和标签对齐\r\n },\r\n show: type == 1,\r\n splitLine: {\r\n show: true,\r\n },\r\n };\r\n };\r\n\r\n let xAxisData = [getxAxisObj(1, xData1)];\r\n if (lineCount == 2) {\r\n xAxisData.push(getxAxisObj(2, xData2));\r\n }\r\n if (lineCount == 3) {\r\n xAxisData.push(getxAxisObj(2, xData2));\r\n xAxisData.push(getxAxisObj(3, xData3));\r\n }\r\n\r\n //获取series需要的数据\r\n const getLineObj = (type, data) => {\r\n const name = type == 1 ? '第一组' : type == 2 ? '第二组' : '第三组';\r\n const symbol = type == 1 ? 'rect' : type == 2 ? 'triangle' : 'circle';\r\n const lineType = type == 1 ? 'solid' : type == 2 ? 'dotted' : [10, 5];\r\n const color =\r\n type == 1 && lineData.length >= 1\r\n ? lineData[0].lineColor\r\n : type == 2 && lineData.length >= 2\r\n ? lineData[1].lineColor\r\n : type == 3 && lineData.length >= 3\r\n ? lineData[2].lineColor\r\n : '#000';\r\n\r\n let obj = {\r\n name: name,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: symbol, //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: color,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n type: lineType,\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: color,\r\n },\r\n data: data,\r\n };\r\n\r\n return obj;\r\n };\r\n\r\n //series: [getLineObj(1, yDataSource1), getLineObj(2, yDataSource2), getLineObj(3, yDataSource3)],\r\n let seriesData = [getLineObj(1, yDataSource1)];\r\n if (lineCount == 2) {\r\n if (yDataSource2.length > 0) {\r\n seriesData.push(getLineObj(2, yDataSource2));\r\n }\r\n }\r\n if (lineCount == 3) {\r\n if (yDataSource2.length > 0) {\r\n seriesData.push(getLineObj(2, yDataSource2));\r\n }\r\n if (yDataSource3.length > 0) {\r\n seriesData.push(getLineObj(3, yDataSource3));\r\n }\r\n }\r\n\r\n let legendData = lineCount == 1 ? ['第一组'] : lineCount == 2 ? ['第一组', '第二组'] : ['第一组', '第二组', '第三组'],\r\n legendSelected: any =\r\n lineCount == 1 ? { 第一组: true } : lineCount == 2 ? { 第一组: true, 第二组: true } : { 第一组: true, 第二组: true, 第三组: true };\r\n\r\n //console.log(xData1,xData2,xData3,seriesData)\r\n let yValIsAllNull = false;\r\n let xValIsAllNull = false;\r\n let topmargin = 0;\r\n //为空不展示\r\n if (xDataSource1.length == 0) {\r\n xValIsAllNull = true;\r\n topmargin = 15;\r\n\r\n legendData = ['第二组', '第三组'];\r\n legendSelected = { 第一组: false, 第二组: true, 第三组: true };\r\n\r\n xAxisData = [];\r\n seriesData = [];\r\n\r\n xAxisData.push(getxAxisObj(1, xData2));\r\n xAxisData.push(getxAxisObj(3, xData3));\r\n seriesData.push(getLineObj(2, yDataSource2));\r\n seriesData.push(getLineObj(3, yDataSource3));\r\n\r\n if (xDataSource2.length == 0) {\r\n topmargin = 35;\r\n\r\n legendData = ['第三组'];\r\n legendSelected = { 第一组: false, 第二组: false, 第三组: true };\r\n\r\n xAxisData = [];\r\n seriesData = [];\r\n\r\n xAxisData.push(getxAxisObj(1, xData3));\r\n seriesData.push(getLineObj(3, yDataSource3));\r\n\r\n if (xDataSource3.length == 0) {\r\n topmargin = 0;\r\n\r\n yValIsAllNull = true;\r\n legendData = [];\r\n legendSelected = { 第一组: false, 第二组: false, 第三组: false };\r\n xAxisData = [];\r\n seriesData = [];\r\n xAxisData.push(getxAxisObj(1, []));\r\n seriesData.push(getLineObj(3, []));\r\n }\r\n }\r\n } else if (xDataSource2.length == 0) {\r\n topmargin = 15;\r\n xValIsAllNull = true;\r\n legendData = ['第一组', '第三组'];\r\n legendSelected = { 第一组: true, 第二组: false, 第三组: true };\r\n\r\n xAxisData = [];\r\n seriesData = [];\r\n\r\n xAxisData.push(getxAxisObj(1, xData1));\r\n xAxisData.push(getxAxisObj(3, xData3));\r\n\r\n seriesData.push(getLineObj(1, yDataSource1));\r\n seriesData.push(getLineObj(3, yDataSource3));\r\n\r\n if (xDataSource1.length == 0) {\r\n topmargin = 35;\r\n\r\n legendData = ['第三组'];\r\n legendSelected = { 第一组: false, 第二组: false, 第三组: true };\r\n\r\n xAxisData = [];\r\n seriesData = [];\r\n\r\n xAxisData.push(getxAxisObj(1, xData1));\r\n seriesData.push(getLineObj(3, yDataSource1));\r\n\r\n if (xDataSource3.length == 0) {\r\n topmargin = 0;\r\n\r\n yValIsAllNull = true;\r\n legendData = [];\r\n legendSelected = { 第一组: false, 第二组: false, 第三组: false };\r\n xAxisData = [];\r\n seriesData = [];\r\n xAxisData.push(getxAxisObj(1, []));\r\n seriesData.push(getLineObj(3, []));\r\n }\r\n }\r\n } else if (xDataSource3.length == 0) {\r\n topmargin = 15;\r\n xValIsAllNull = true;\r\n legendData = ['第一组', '第二组'];\r\n legendSelected = { 第一组: true, 第二组: true, 第三组: false };\r\n\r\n xAxisData = [];\r\n seriesData = [];\r\n xAxisData.push(getxAxisObj(1, xData1));\r\n xAxisData.push(getxAxisObj(2, xData2));\r\n seriesData.push(getLineObj(1, yDataSource1));\r\n seriesData.push(getLineObj(2, yDataSource2));\r\n\r\n if (xDataSource1.length == 0) {\r\n topmargin = 35;\r\n legendData = ['第二组'];\r\n legendSelected = { 第一组: false, 第二组: true, 第三组: false };\r\n\r\n xAxisData = [];\r\n seriesData = [];\r\n\r\n xAxisData.push(getxAxisObj(1, xData2));\r\n seriesData.push(getLineObj(2, yDataSource2));\r\n\r\n if (xDataSource2.length == 0) {\r\n topmargin = 0;\r\n yValIsAllNull = true;\r\n legendData = [];\r\n legendSelected = { 第一组: false, 第二组: false, 第三组: false };\r\n xAxisData = [];\r\n seriesData = [];\r\n xAxisData.push(getxAxisObj(1, []));\r\n seriesData.push(getLineObj(2, []));\r\n }\r\n }\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: !xValIsAllNull ? -5 : topmargin,\r\n left: 30,\r\n right: 10,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].seriesName + '(' + datas[0].name + ')' + ':' + datas[0].value : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n left: 'center',\r\n top: 16,\r\n data: legendData,\r\n selected: legendSelected,\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: xAxisData,\r\n yAxis: [\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: seriesData,\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 颗粒组成(密度计法)\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart250: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //x和y轴的数据\r\n const xData = xDataArr[0], // [0.0316, 0.0224, 0.0115, 0.0075, 0.0058, 0.0033, 0.0031, 0.0024, 0.001, 0.0008],\r\n yData = yDataArr[0]; // [83.0, 78.8, 53.8, 42.6, 33.7, 27.8, 23.2, 19.2, 13.0, 7.7];\r\n\r\n let seriesData = [];\r\n xData.forEach((item, index) => {\r\n seriesData.push([item, yData[index]]);\r\n });\r\n\r\n let xmin = 0.001,\r\n xmax = 100;\r\n\r\n //验证是否没有任何数据,以便控制显示y轴的名称的距离位置\r\n let yValIsAllNull = false;\r\n if (xData.length == 0) {\r\n yValIsAllNull = true;\r\n }\r\n let nullCount = 0;\r\n xData.forEach((item) => {\r\n if (item == null || item == undefined || item == '/') {\r\n nullCount++;\r\n }\r\n });\r\n if (nullCount == xData.length) {\r\n yValIsAllNull = true;\r\n xmin = null;\r\n xmax = null;\r\n }\r\n if (yData.some((item) => item != null && item != undefined && item != '/')) {\r\n yValIsAllNull = false;\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 25,\r\n left: 20,\r\n right: 15,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].seriesName + '(' + datas[0].name + ')' + ':' + datas[0].value : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'log', //设置x轴为对数坐标轴\r\n logBase: 10, //可以设置对数轴的底数,默认为10\r\n inverse: true,\r\n min: xmin,\r\n max: xmax,\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineData[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineData[0].lineColor,\r\n },\r\n data: seriesData,\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 承载比(CBR)\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart270: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //x和y轴的数据\r\n // const xDataSource1 = xDataArr[0], // [36, 102, 316, 678, 917, 1177, 1396, 1478, 1620, 1651, 1753, 1789, 1855],\r\n // \txDataSource2 = xDataArr[1], // [56, 122, 357, 617, 958, 1223, 1376, 1493, 1631, 1682, 1783, 1824, 1885],\r\n // \txDataSource3 = xDataArr[2], // [66, 168, 443, 729, 994, 1213, 1411, 1529, 1651, 1722, 1783, 1824, 1890],\r\n // \tyDataSource1 = yDataArr[0], // [0.31, 0.51, 0.94, 1.47, 2.0, 2.48, 2.92, 3.41, 3.87, 4.37, 4.86, 5.36, 5.88],\r\n // \tyDataSource2 = yDataArr[1], // [0.26, 0.5, 1.01, 1.52, 2.02, 2.52, 2.98, 3.49, 3.99, 4.49, 4.98, 5.48, 5.98],\r\n // \tyDataSource3 = yDataArr[2]; // [0.32, 0.52, 1.01, 1.5, 1.99, 2.49, 2.98, 3.47, 3.96, 4.46, 4.95, 5.44, 5.93];\r\n\r\n let xDataSource1 = [],\r\n xDataSource2 = [],\r\n xDataSource3 = [],\r\n yDataSource1 = [],\r\n yDataSource2 = [],\r\n yDataSource3 = [];\r\n\r\n //排除原始数据为0的数据\r\n xDataArr[0].forEach((item, index) => {\r\n if (item != 0 && yDataArr[0][index] != 0) {\r\n xDataSource1.push(item);\r\n yDataSource1.push(yDataArr[0][index]);\r\n }\r\n });\r\n xDataArr[1].forEach((item, index) => {\r\n if (item != 0 && yDataArr[1][index] != 0) {\r\n xDataSource2.push(item);\r\n yDataSource2.push(yDataArr[1][index]);\r\n }\r\n });\r\n xDataArr[2].forEach((item, index) => {\r\n if (item != 0 && yDataArr[2][index] != 0) {\r\n xDataSource3.push(item);\r\n yDataSource3.push(yDataArr[2][index]);\r\n }\r\n });\r\n\r\n /**\r\n * 获取series需要的3条线配置\r\n * @param type 线类型(1:筛分曲线、2:上限、3:下限)\r\n * @param data 对应的坐标点数据\r\n */\r\n const getLineObj = (type, xData, yData) => {\r\n const name = `曲线${type}`;\r\n const symbol = type == 1 ? 'rect' : type == 2 ? 'triangle' : 'circle';\r\n const lineType = type == 1 ? 'solid' : type == 2 ? 'dotted' : [10, 5];\r\n const color = type == 1 ? lineData[0].lineColor : type == 2 ? lineData[1].lineColor : lineData[2].lineColor; //ttype == 1 ? '#F56C6C' : type == 2 ? '#409EFF' : '#000';\r\n\r\n const seriesData = [];\r\n xData.forEach((item, index) => {\r\n seriesData.push([item, yData[index]]);\r\n });\r\n\r\n return {\r\n name: name,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: symbol, //符号类型\r\n symbolSize: 5, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: color,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n type: lineType,\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: color,\r\n },\r\n data: seriesData,\r\n };\r\n };\r\n\r\n //验证是否没有任何数据,以便控制显示y轴的名称的距离位置\r\n let yValIsAllNull = false;\r\n if (\r\n xDataSource1.every((item) => item == '/') &&\r\n xDataSource2.every((item) => item == '/') &&\r\n xDataSource3.every((item) => item == '/') &&\r\n yDataSource1.every((item) => item == '/') &&\r\n yDataSource2.every((item) => item == '/') &&\r\n yDataSource3.every((item) => item == '/')\r\n ) {\r\n yValIsAllNull = true;\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 35,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 20,\r\n bottom: 5,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].seriesName + '(' + datas[0].value[0] + ')' + ':' + datas[0].value[1] : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n top: 16,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value', //category\r\n //data: xDataSource1,\r\n axisTick: {\r\n alignWithLabel: true, //使得刻度线和标签对齐\r\n },\r\n splitLine: { show: true },\r\n position: 'top', //设置x轴在顶部显示\r\n nameGap: 5, //坐标轴名称与轴线之间的距离\r\n nameLocation: 'end', //设置x轴显示的名称的位置在末端,注意:需要配置grid.right一起使用,不然可能会被遮住\r\n },\r\n yAxis: [\r\n //双y轴,目的是使用第二个y轴来配置字符L显示在y轴下方箭头的位置\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n inverse: true, //y轴坐标轴向下\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n //设置y轴箭头效果\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [getLineObj(1, xDataSource1, yDataSource1), getLineObj(2, xDataSource2, yDataSource2), getLineObj(3, xDataSource3, yDataSource3)],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 压实度-吸水量,膨胀率,CBR-279、280和281\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart279_280_281: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n\r\n let title = config.chartTitle, //压实度-吸水量关系曲线 压实度-膨胀率关系曲线 压实度-CBR关系曲线\r\n xName = config.chartXName, //压实度(%) 压实度(%) 压实度(%)\r\n yName = config.chartYName, //吸水量(g) 膨胀率(%) CBR(%)\r\n legendName = '图例1';\r\n\r\n //y轴最大最小数据加减数字\r\n let jjNum = config.chartType == 279 ? 5 : config.chartType == 280 ? 0.1 : 0.15;\r\n\r\n //x和y轴的数据\r\n let xData = xDataArr[0], // [90.3, 95.6, 99.5],\r\n yData = yDataArr[0], // [245, 206, 163],\r\n xAxisMin = Math.min(...xData),\r\n yAxisMin = Number(EChartsUtilsComm.getRound(Math.min(...yData) - jjNum, 0.001)),\r\n yAxisMax = Number(EChartsUtilsComm.getRound(Math.max(...yData) + jjNum, 0.001));\r\n //yData1 = [245, 206, 163],\r\n //yData2 = [3.49, 2.69, 2.34];\r\n //yData3 = [4, 4.7, 5.7];\r\n //修约:0.001 0.001 0.001\r\n //y最大最小加减数:5 0.1 0.15\r\n\r\n xAxisMin = Number(EChartsUtilsComm.getRound(xAxisMin - xAxisMin * 0.01, 0.001));\r\n\r\n let seriesData = [];\r\n xData.forEach((item, index) => {\r\n seriesData.push([item, yData[index]]);\r\n });\r\n\r\n //验证是否没有任何数据,以便控制显示y轴的名称的距离位置\r\n let yValIsAllNull = false;\r\n if (yData.every((item) => item == '/')) {\r\n yValIsAllNull = true;\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 25,\r\n left: 20,\r\n right: 15,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].seriesName + '(' + datas[0].name + ')' + ':' + datas[0].value : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value', //设置x轴为对数坐标轴\r\n min: xAxisMin,\r\n max: 100,\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n show: true, //y轴默认是不显示的\r\n },\r\n min: yAxisMin,\r\n max: yAxisMax,\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineData[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineData[0].lineColor,\r\n },\r\n data: seriesData,\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 承载比(CBR)(路强仪)\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart290: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //x和y轴的数据\r\n let xDataSource1 = xDataArr[0], // [36, 102, 316, 678, 917, 1177, 1396, 1478, 1620, 1651, 1753, 1789, 1855],\r\n xDataSource2 = xDataArr[0], // [56, 122, 357, 617, 958, 1223, 1376, 1493, 1631, 1682, 1783, 1824, 1885],\r\n xDataSource3 = xDataArr[0], // [66, 168, 443, 729, 994, 1213, 1411, 1529, 1651, 1722, 1783, 1824, 1890],\r\n yDataSource1 = yDataArr[0], // [0.31, 0.51, 0.94, 1.47, 2.0, 2.48, 2.92, 3.41, 3.87, 4.37, 4.86, 5.36, 5.88],\r\n yDataSource2 = yDataArr[1], // [0.26, 0.5, 1.01, 1.52, 2.02, 2.52, 2.98, 3.49, 3.99, 4.49, 4.98, 5.48, 5.98],\r\n yDataSource3 = yDataArr[2]; // [0.32, 0.52, 1.01, 1.5, 1.99, 2.49, 2.98, 3.47, 3.96, 4.46, 4.95, 5.44, 5.93];\r\n\r\n /**\r\n * 获取series需要的3条线配置\r\n * @param type 线类型(1:筛分曲线、2:上限、3:下限)\r\n * @param data 对应的坐标点数据\r\n */\r\n const getLineObj = (type, data) => {\r\n const name = `曲线${type}`;\r\n const symbol = type == 1 ? 'rect' : type == 2 ? 'triangle' : 'circle';\r\n const lineType = type == 1 ? 'solid' : type == 2 ? 'dotted' : [10, 5];\r\n const color = type == 1 ? lineData[0].lineColor : type == 2 ? lineData[1].lineColor : lineData[2].lineColor; //ttype == 1 ? '#F56C6C' : type == 2 ? '#409EFF' : '#000';\r\n\r\n return {\r\n name: name,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: symbol, //符号类型\r\n symbolSize: 5, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: color,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n type: lineType,\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: color,\r\n },\r\n data: data,\r\n };\r\n };\r\n\r\n //验证是否没有任何数据,以便控制显示y轴的名称的距离位置\r\n let yValIsAllNull = false;\r\n if (\r\n xDataSource1.every((item) => item == '/') &&\r\n xDataSource2.every((item) => item == '/') &&\r\n xDataSource3.every((item) => item == '/') &&\r\n yDataSource1.every((item) => item == '/') &&\r\n yDataSource2.every((item) => item == '/') &&\r\n yDataSource3.every((item) => item == '/')\r\n ) {\r\n yValIsAllNull = true;\r\n xDataSource1 = [];\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 35,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 10,\r\n bottom: 5,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].seriesName + '(' + datas[0].name + ')' + ':' + datas[0].value : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n top: 16,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'category',\r\n data: xDataSource1,\r\n axisTick: {\r\n alignWithLabel: true, //使得刻度线和标签对齐\r\n },\r\n splitLine: { show: true },\r\n position: 'top', //设置x轴在顶部显示\r\n nameGap: 5, //坐标轴名称与轴线之间的距离\r\n nameLocation: 'end', //设置x轴显示的名称的位置在末端,注意:需要配置grid.right一起使用,不然可能会被遮住\r\n axisLabel: {\r\n // 使用formatter格式化标签\r\n formatter: function (value) {\r\n if (value == '/') {\r\n return '';\r\n } else {\r\n return value;\r\n }\r\n },\r\n },\r\n },\r\n yAxis: [\r\n //双y轴,目的是使用第二个y轴来配置字符L显示在y轴下方箭头的位置\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n inverse: true, //y轴坐标轴向下\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n //设置y轴箭头效果\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [getLineObj(1, yDataSource1), getLineObj(2, yDataSource2), getLineObj(3, yDataSource3)],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 土基回弹模量\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart310: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //x和y轴的数据\r\n let xData = xDataArr[0], // [0.02, 0.04, 0.06, 0.08, 0.14, 0.18, 0.22, 0.26, 0.3, 0.34],\r\n yData = yDataArr[0]; // [6, 10, 12, 16, 20, 28, 36, 44, 54, 68];\r\n\r\n let xDataCl = [],\r\n yDataCl = [];\r\n xData.forEach((item, index) => {\r\n if (item != null && item != undefined && item != '/' && (item._code == null || item._code == undefined)) {\r\n xDataCl.push(item);\r\n yDataCl.push(yData[index]);\r\n }\r\n });\r\n xData = xDataCl;\r\n yData = yDataCl;\r\n\r\n //验证是否没有任何数据,以便控制显示y轴的名称的距离位置\r\n let yValIsAllNull = false;\r\n if (\r\n xData.every((item) => item == '/' || (item._code != null && item._code != undefined)) &&\r\n yData.every((item) => item == '/' || (item._code != null && item._code != undefined))\r\n ) {\r\n yValIsAllNull = true;\r\n xData = [];\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 35,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 20,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].seriesName + '(' + datas[0].name + ')' + ':' + datas[0].value : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n top: 16,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'category',\r\n data: xData,\r\n axisLabel: {\r\n // 使用formatter格式化标签\r\n formatter: function (value) {\r\n if (value == '/') {\r\n return '';\r\n } else {\r\n return value;\r\n }\r\n },\r\n },\r\n axisTick: {\r\n alignWithLabel: true, //使得刻度线和标签对齐\r\n },\r\n axisLine: {\r\n //设置x轴箭头效果\r\n symbol: ['none', 'arrow'], //默认是['none', 'none'],可以设置为['arrow', 'none']或['none', 'arrow']等来分别控制起始和结束的箭头\r\n symbolSize: 10, //箭头大小\r\n },\r\n splitLine: { show: true },\r\n position: 'top', //设置x轴在顶部显示\r\n name: 'p', //设置x轴显示的名称\r\n nameGap: 5, //坐标轴名称与轴线之间的距离\r\n nameLocation: 'end', //设置x轴显示的名称的位置在末端,注意:需要配置grid.right一起使用,不然可能会被遮住\r\n },\r\n yAxis: [\r\n //双y轴,目的是使用第二个y轴来配置字符L显示在y轴下方箭头的位置\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n inverse: true, //y轴坐标轴向下\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n //设置y轴箭头效果\r\n show: true, //y轴默认是不显示的\r\n symbol: ['arrow', 'none'], //默认是['none', 'none'],可以设置为['arrow', 'none']或['none', 'arrow']等来分别控制起始和结束的箭头\r\n symbolSize: 10, //箭头大小\r\n },\r\n },\r\n {\r\n //配置符号L的显示\r\n name: 'L',\r\n nameRotate: 0,\r\n nameLocation: 'end',\r\n nameGap: 5, //坐标轴名称与轴线之间的距离\r\n position: 'left',\r\n inverse: true, //y轴坐标轴向下\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineData[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineData[0].lineColor,\r\n },\r\n data: yData,\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 布氏粘度计\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart330: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n let title = '', //config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //x和y轴的数据\r\n let xData = xDataArr[0],\r\n yData = yDataArr[0];\r\n\r\n //获取y轴趋势公式对象\r\n const gsS: any = EChartsUtilsComm.calcTrend(xData, yData, xData[0]);\r\n\r\n //黏度为0.15Pa·s、0.19Pa·s、0.25Pa·s、0.31Pa·s时的温度\r\n let wd015 = EChartsUtilsComm.getRound((0.15 - gsS.jj) / gsS.xl, 0),\r\n wd019 = EChartsUtilsComm.getRound((0.19 - gsS.jj) / gsS.xl, 0),\r\n wd025 = EChartsUtilsComm.getRound((0.25 - gsS.jj) / gsS.xl, 0),\r\n wd031 = EChartsUtilsComm.getRound((0.31 - gsS.jj) / gsS.xl, 0);\r\n\r\n if (wd015 == Infinity) {\r\n wd015 = 0;\r\n }\r\n if (wd019 == Infinity) {\r\n wd019 = 0;\r\n }\r\n if (wd025 == Infinity) {\r\n wd025 = 0;\r\n }\r\n if (wd031 == Infinity) {\r\n wd031 = 0;\r\n }\r\n //输出“拌合温度范围 ℃”和“压实成型温度范围 ℃”\r\n let wdBh = `${wd015}~${wd019}`,\r\n wdYs = `${wd025}~${wd031}`;\r\n // console.log('输出温度:', wdBh, wdYs);\r\n\r\n //设置Sheet单元格的值(拌合温度和压实成型温度范围)\r\n if (chartExtJson != null) {\r\n if (wd015 == 0 && wd019 == 0) {\r\n sheet.setValue(chartExtJson.bszdjBh.row, chartExtJson.bszdjBh.col, '/');\r\n } else {\r\n sheet.setValue(chartExtJson.bszdjBh.row, chartExtJson.bszdjBh.col, wdBh);\r\n }\r\n if (wd025 == 0 && wd031 == 0) {\r\n sheet.setValue(chartExtJson.bszdjYs.row, chartExtJson.bszdjYs.col, '/');\r\n } else {\r\n sheet.setValue(chartExtJson.bszdjYs.row, chartExtJson.bszdjYs.col, wdYs);\r\n }\r\n }\r\n\r\n //验证是否没有任何数据,以便控制显示y轴的名称的距离位置\r\n let yValIsAllNull = false;\r\n if (xData.every((item) => item == '/') || yData.every((item) => item == '/')) {\r\n yValIsAllNull = true;\r\n xData = [];\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 10,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 10,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].seriesName + '(' + datas[0].name + ')' + ':' + datas[0].value : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 18,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'category',\r\n data: xData,\r\n axisTick: {\r\n alignWithLabel: true, //使得刻度线和标签对齐\r\n },\r\n axisLabel: {\r\n // 使用formatter格式化标签\r\n formatter: function (value) {\r\n if (value == '/') {\r\n return '';\r\n } else {\r\n return value;\r\n }\r\n },\r\n },\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 25 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#e0e6f1', //'#e0e6f1',\r\n type: 'solid',\r\n },\r\n },\r\n //splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……\r\n axisLine: {\r\n show: true, //y轴默认是不显示的\r\n },\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineData[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n // type: 'dotted',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineData[0].lineColor,\r\n },\r\n data: yData,\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 液限碟式仪\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @param sheet 表格对象\r\n * @returns 返回ECharts配置项\r\n */\r\n chart350: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineData = JSON.parse(config.chartLinesJson),\r\n lineColor = lineData[0].lineColor;\r\n\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n // //击数N(次)、含水率w(%)、y轴第一个趋势数据、y轴第二个趋势数据、25的趋势数据、y轴最小值、y轴最大值\r\n // const jsN = [xDataArr[0][0], xDataArr[0][1]], // [18, 30],\r\n // hsl = [yDataArr[0][0], yDataArr[0][1]], // [22.1, 11.5],\r\n // //通过calcTrend获取y轴第一个趋势数据、y轴第二个趋势数据、25的趋势数据\r\n // yVal1 = Number(EChartsUtilsComm.getRound(EChartsUtilsComm.calcTrend(jsN, hsl, jsN[0]).y, 0.1)),\r\n // yVal2 = Number(EChartsUtilsComm.getRound(EChartsUtilsComm.calcTrend(jsN, hsl, jsN[1]).y, 0.1)),\r\n // yVal25 = Number(EChartsUtilsComm.getRound(EChartsUtilsComm.calcTrend(jsN, hsl, 25).y, 0.1)),\r\n // //通过calcTrend获取y轴的趋势数据,然后分别-2和+2\r\n // yAxisMin = Math.floor(Number(yVal2)) - 2,\r\n // yAxisMax = Math.floor(Number(yVal1)) + 2;\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //检测是否所有数据都为空\r\n let isAllNull = true;\r\n isAllNull = xDataArr[0].filter((item) => item != null && item != undefined && item != '/').length == 0;\r\n if (isAllNull) {\r\n isAllNull = yDataArr[0].filter((item) => item != null && item != undefined && item != '/').length == 0;\r\n }\r\n\r\n if (isAllNull) {\r\n // seriesObjs = [];\r\n }\r\n\r\n var LOG = Math.log10;\r\n\r\n /* ==========================================================\r\n 1. 数据源(只需改这里,其余全部自动适配)\r\n ========================================================== */\r\n var x1 = xDataArr[0][0],\r\n y1 = yDataArr[0][0]; // a1\r\n var x3 = xDataArr[0][1],\r\n y3 = yDataArr[0][1]; // a3\r\n var x2 = 25; // 待求插值点\r\n\r\n /* ==========================================================\r\n 2. 插值计算(对数空间线性插值)\r\n ========================================================== */\r\n var logX1 = LOG(x1),\r\n logX2 = LOG(x2),\r\n logX3 = LOG(x3);\r\n var t = (logX2 - logX1) / (logX3 - logX1);\r\n var y2 = y1 + t * (y3 - y1);\r\n\r\n var slope = (y3 - y1) / (logX3 - logX1);\r\n\r\n // 两端延长:取数据对数跨度的 15%,保证\"延长一点\"且随数据自适应\r\n var ext = (logX3 - logX1) * 0.15;\r\n var extLX = logX1 - ext,\r\n extLY = y1 + slope * -ext;\r\n var extRX = logX3 + ext,\r\n extRY = y3 + slope * ext;\r\n\r\n /* ==========================================================\r\n 3. Y 轴范围自适应算法\r\n ========================================================== */\r\n // 把任意数值规整为 1 / 2 / 5 × 10^n 的\"整洁数\"\r\n function niceNum(range, round) {\r\n var exponent = Math.floor(Math.log10(range));\r\n var fraction = range / Math.pow(10, exponent);\r\n var niceFraction;\r\n if (round) {\r\n if (fraction < 1.5) niceFraction = 1;\r\n else if (fraction < 3) niceFraction = 2;\r\n else if (fraction < 7) niceFraction = 5;\r\n else niceFraction = 10;\r\n } else {\r\n if (fraction <= 1) niceFraction = 1;\r\n else if (fraction <= 2) niceFraction = 2;\r\n else if (fraction <= 5) niceFraction = 5;\r\n else niceFraction = 10;\r\n }\r\n return niceFraction * Math.pow(10, exponent);\r\n }\r\n\r\n // 根据一组 y 值自动计算 yMin / yMax / interval\r\n function calcYBounds(values, marginRatio, targetTicks) {\r\n marginRatio = marginRatio === undefined ? 0.12 : marginRatio;\r\n targetTicks = targetTicks || 5;\r\n\r\n var dataMin = Math.min.apply(null, values);\r\n var dataMax = Math.max.apply(null, values);\r\n var range = dataMax - dataMin;\r\n if (range === 0) {\r\n range = Math.abs(dataMax) || 1;\r\n } // 防止所有值相同\r\n\r\n var margin = range * marginRatio; // 上下留白\r\n var rawMin = dataMin - margin;\r\n var rawMax = dataMax + margin;\r\n var interval = niceNum((rawMax - rawMin) / (targetTicks - 1), true);\r\n\r\n var yMin = Math.floor(rawMin / interval) * interval;\r\n var yMax = Math.ceil(rawMax / interval) * interval;\r\n\r\n // 消除浮点误差\r\n yMin = +yMin.toFixed(10);\r\n yMax = +yMax.toFixed(10);\r\n interval = +interval.toFixed(10);\r\n return { min: yMin, max: yMax, interval: interval };\r\n }\r\n\r\n // 把三个点 + 两端延长点一起纳入计算,确保整条线都显示得下\r\n var yBounds = calcYBounds([y1, y2, y3, extLY, extRY], 0.12, 5);\r\n var yMin = yBounds.min;\r\n var yMax = yBounds.max;\r\n var yInterval = yBounds.interval;\r\n\r\n /* ==========================================================\r\n 4. X 轴刻度定义\r\n ========================================================== */\r\n var allTicks = [5, 6, 7, 8, 9, 10, 20, 25, 30, 40, 50, 60, 70, 80, 90, 100, 150];\r\n var labeledTicks = [5, 6, 7, 8, 9, 10, 20, 25, 30, 40, 50, 100];\r\n var xMin = LOG(5),\r\n xMax = LOG(150);\r\n\r\n var vLines = allTicks.map(function (v) {\r\n return { xAxis: LOG(v) };\r\n });\r\n\r\n if (chartExtJson != null && chartExtJson != undefined && chartExtJson.yxdsyHsl != null && chartExtJson.yxdsyHsl != undefined) {\r\n // 默认输出精度\r\n let outJdYxdsyHsl = 0.1;\r\n // 输出数据\r\n let outValYxdsyHsl = 0;\r\n\r\n // 设置Sheet单元格的值(输出:含水率)\r\n if (chartExtJson.yxdsyHslJd != null && chartExtJson.yxdsyHslJd != undefined) {\r\n outJdYxdsyHsl = chartExtJson.yxdsyHslJd;\r\n }\r\n\r\n outValYxdsyHsl = EChartsUtilsComm.getRound(y2, outJdYxdsyHsl);\r\n\r\n sheet.setValue(\r\n chartExtJson.yxdsyHsl.row,\r\n chartExtJson.yxdsyHsl.col,\r\n typeof outValYxdsyHsl == 'string' && (outValYxdsyHsl + '').indexOf('NaN') != -1 ? '/' : outValYxdsyHsl,\r\n );\r\n }\r\n\r\n /* ==========================================================\r\n 5. 图表配置\r\n ========================================================== */\r\n var option = {\r\n /* --- 标题 --- */\r\n title: {\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: { fontSize: 14, fontWeight: 'normal' },\r\n },\r\n\r\n /* --- tooltip --- */\r\n tooltip: {\r\n trigger: 'item',\r\n formatter: function (params) {\r\n if (params.seriesType === 'scatter' && params.data && params.data.realX !== undefined) {\r\n return '(' + params.data.realX + ', ' + params.data.realY + ')';\r\n }\r\n return '';\r\n },\r\n backgroundColor: 'rgba(255,255,255,0.95)',\r\n borderColor: '#ccc',\r\n borderWidth: 1,\r\n textStyle: { color: '#333', fontSize: 13 },\r\n padding: [6, 10],\r\n },\r\n\r\n grid: { left: 50, right: 10, top: 20, bottom: 0 },\r\n\r\n /* --- X 轴 --- */\r\n xAxis: {\r\n type: 'value',\r\n min: xMin,\r\n max: xMax,\r\n axisLine: { show: true },\r\n axisTick: { show: false },\r\n axisLabel: { show: false },\r\n splitLine: { show: false },\r\n name: xName,\r\n nameLocation: 'center',\r\n nameGap: 18,\r\n nameTextStyle: { fontSize: 12, color: '#333' },\r\n },\r\n\r\n /* --- Y 轴 --- */\r\n yAxis: {\r\n type: 'value',\r\n min: yMin,\r\n max: yMax,\r\n interval: yInterval,\r\n position: 'left',\r\n axisLine: { show: true, lineStyle: { color: '#333', width: 1.5 } },\r\n axisTick: { show: true, length: 5, lineStyle: { color: '#333' } },\r\n axisLabel: { show: true, fontSize: 12, color: '#333', margin: 10 },\r\n splitLine: { show: true, lineStyle: { color: '#e0e6f1', width: 1 } },\r\n name: yName,\r\n nameLocation: 'center',\r\n nameGap: 30,\r\n nameRotate: 90,\r\n nameTextStyle: { fontSize: 12, color: '#333' },\r\n },\r\n\r\n series: [\r\n /* --- ① 纵向灰色网格线 --- */\r\n {\r\n type: 'line',\r\n data: [],\r\n silent: true,\r\n z: 1,\r\n markLine: {\r\n silent: true,\r\n symbol: 'none',\r\n lineStyle: { color: '#e0e6f1', width: 1, type: 'solid' },\r\n label: { show: false },\r\n data: vLines,\r\n },\r\n },\r\n\r\n /* --- ② 主直线(含两端延长) --- */\r\n {\r\n type: 'line',\r\n z: 30,\r\n silent: true,\r\n data: [\r\n [extLX, extLY],\r\n [logX1, y1],\r\n [logX2, y2],\r\n [logX3, y3],\r\n [extRX, extRY],\r\n ],\r\n lineStyle: { color: '#409EFF', width: 2 },\r\n symbol: 'none',\r\n },\r\n\r\n /* --- ③ a1 / a2 / a3 圆点(带 tooltip) --- */\r\n {\r\n type: 'scatter',\r\n z: 6,\r\n data: [\r\n { value: [logX1, y1], realX: x1, realY: y1, name: 'a1' },\r\n { value: [logX2, y2], realX: x2, realY: isNaN(y2) ? 0 : +y2.toFixed(2), name: 'a2' },\r\n { value: [logX3, y3], realX: x3, realY: y3, name: 'a3' },\r\n ],\r\n symbol: 'circle',\r\n symbolSize: 10,\r\n itemStyle: { color: '#409EFF', borderColor: '#fff', borderWidth: 1.5 },\r\n },\r\n\r\n /* --- ④ a2 横向绿色线(从 y 轴到 a2)+ 文字标注 --- */\r\n {\r\n type: 'scatter',\r\n z: 4,\r\n silent: true,\r\n data: [],\r\n markLine: {\r\n silent: true,\r\n symbol: 'none',\r\n lineStyle: { color: '#2eaf4a', width: 2, type: 'solid' },\r\n label: { show: false },\r\n data: [[{ coord: [xMin, y2] }, { coord: [logX2, y2] }]],\r\n },\r\n markPoint: {\r\n silent: true,\r\n symbol: 'circle',\r\n symbolSize: 0,\r\n data: [{ coord: [logX2, y2] }],\r\n label: {\r\n show: true,\r\n formatter: '(' + x2 + ', ' + (isNaN(y2) ? 0 : y2.toFixed(2)) + ')',\r\n position: 'right',\r\n distance: 10,\r\n fontSize: 13,\r\n fontWeight: 'bold',\r\n color: '#2eaf4a',\r\n },\r\n },\r\n },\r\n\r\n /* --- ⑤ a2 纵向黑色线(从 x 轴到 a2) --- */\r\n {\r\n type: 'scatter',\r\n z: 4,\r\n silent: true,\r\n data: [],\r\n markLine: {\r\n silent: true,\r\n symbol: 'none',\r\n lineStyle: { color: '#000000', width: 2, type: 'solid' },\r\n label: { show: false },\r\n data: [[{ coord: [logX2, yMin] }, { coord: [logX2, y2] }]],\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return {\r\n option: option,\r\n ext: {\r\n labeledTicks: labeledTicks,\r\n LOG: LOG,\r\n yMin: yMin,\r\n },\r\n };\r\n },\r\n\r\n /**\r\n * 土工合成材料(垂直渗透系数)\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart370: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n // console.log(config);\r\n\r\n // 多项式阶数\r\n let dxsJs = chartExtJson != null ? chartExtJson.dxsJs : 5;\r\n\r\n // 趋势线和标注点的颜色\r\n const linePointColor = lineData[0].lineColor;\r\n\r\n const filterVals = EChartsUtilsComm.filterValues([xDataArr[0], yDataArr[0]]);\r\n\r\n // 原始数据\r\n var xData = filterVals[0]; // xDataArr[0]; //[0.26, 0.16, 0.22, 0.22, 0.17];\r\n var yData = filterVals[1]; // yDataArr[0]; // [90, 56, 42, 28, 14];\r\n /*var xData = [];\r\n var yData = [];*/\r\n\r\n // 计算多项式回归系数(强制截距为0):y = a*x^2 + b*x\r\n var sum_x4 = 0,\r\n sum_x3 = 0,\r\n sum_x2 = 0,\r\n sum_x2y = 0,\r\n sum_xy = 0;\r\n for (var i = 0; i < xData.length; i++) {\r\n var x = xData[i];\r\n var y = yData[i];\r\n var x2 = x * x;\r\n var x3 = x2 * x;\r\n var x4 = x3 * x;\r\n sum_x4 += x4;\r\n sum_x3 += x3;\r\n sum_x2 += x2;\r\n sum_x2y += x2 * y;\r\n sum_xy += x * y;\r\n }\r\n\r\n // 解方程:a * Σx^4 + b * Σx^3 = Σx^2y ; a * Σx^3 + b * Σx^2 = Σxy\r\n var det = sum_x4 * sum_x2 - sum_x3 * sum_x3; // 行列式\r\n var a = (sum_x2y * sum_x2 - sum_xy * sum_x3) / det;\r\n var b = (sum_x4 * sum_xy - sum_x3 * sum_x2y) / det;\r\n\r\n // 计算当 y=50 时的 x 值:解方程 a*x^2 + b*x - 50 = 0\r\n var discriminant = b * b + 4 * a * 50; // 判别式 D = b^2 + 4*a*50\r\n var x50 = (-b + Math.sqrt(discriminant)) / (dxsJs * a); // 取正根(基于数据范围)\r\n // 验证根的有效性(确保在数据范围内)\r\n if (x50 < 0 || x50 > Math.max(...xData) + Math.min(...xData)) {\r\n x50 = (-b - Math.sqrt(discriminant)) / (dxsJs * a); // 尝试负根\r\n }\r\n\r\n // 生成趋势线数据点(从 x=0 开始,后推 0.16)\r\n var trendLineX = [];\r\n var trendLineY = [];\r\n var xStart = 0; // 从 x=0 开始\r\n var xEnd = Math.max(...xData) + Math.min(...xData); // 后推 0.16\r\n for (var x: any = xStart; x <= xEnd; x += 0.01) {\r\n trendLineX.push(x);\r\n trendLineY.push(a * x * x + b * x); // y = a*x^2 + b*x\r\n }\r\n\r\n // 判断y轴数据是否为/、‘’、null、undefined或者没有数据\r\n let yValIsAllNull = false;\r\n if (trendLineY.length == 0) {\r\n yValIsAllNull = true;\r\n } else {\r\n let noDataCount = 0;\r\n\r\n trendLineY.forEach((item) => {\r\n if (item == null || item == undefined || item == '/' || item == '') {\r\n noDataCount++;\r\n }\r\n });\r\n\r\n if (noDataCount == trendLineY.length) {\r\n yValIsAllNull = true;\r\n }\r\n }\r\n\r\n const seriesData = trendLineX.map((x, idx) => [x, trendLineY[idx]]);\r\n\r\n // 默认输出精度\r\n let outJdDzvi = 0.01;\r\n\r\n // 输出数据\r\n let outValDzvi = 0;\r\n\r\n // 设置Sheet单元格的值(输出:单值VI₅₀(mm/s))\r\n if (chartExtJson != null) {\r\n if (!yValIsAllNull) {\r\n if (chartExtJson.jsDzviJd != null && chartExtJson.jsDzviJd != undefined) {\r\n outJdDzvi = chartExtJson.jsDzviJd;\r\n }\r\n\r\n outValDzvi = EChartsUtilsComm.getRound(x50, outJdDzvi);\r\n\r\n sheet.setValue(chartExtJson.jsDzvi.row, chartExtJson.jsDzvi.col, outValDzvi);\r\n } else {\r\n sheet.setValue(chartExtJson.jsDzvi.row, chartExtJson.jsDzvi.col, '/');\r\n }\r\n }\r\n\r\n // 配置图表选项\r\n var option = {\r\n title: [\r\n /*{\r\n\t\t\t\t\ttext: '散点图与多项式趋势线 (y = ax² + bx, 截距=0)',\r\n\t\t\t\t\tleft: 'center',\r\n\t\t\t\t\ttextStyle: { fontSize: 14 }\r\n\t\t\t\t},*/\r\n {\r\n show: true,\r\n text: 'V₂₀(mm/s)',\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 10,\r\n left: !yValIsAllNull ? 25 : 25,\r\n right: 10,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n /*tooltip: {\r\n trigger: 'item',\r\n formatter: function (params) {\r\n if (params.seriesName === '趋势线') {\r\n return '趋势线<br/>x: ' + params.value[0].toFixed(3) + ', y: ' + params.value[1].toFixed(3);\r\n } else if (params.seriesName === '散点') {\r\n return '数据点<br/>x: ' + params.value[0].toFixed(3) + ', y: ' + params.value[1].toFixed(3);\r\n }\r\n return params.name + ': ' + params.value;\r\n }\r\n },*/\r\n xAxis: {\r\n type: 'value',\r\n name: 'X轴',\r\n min: 0, // 从 x=0 开始\r\n max: xEnd, // 扩展到后推位置\r\n axisLine: { show: true },\r\n },\r\n yAxis: {\r\n type: 'value',\r\n name: 'Δh (mm)',\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n min: 0, // 向下多显示 -10\r\n max: Math.max(...yData) + 10, // 基于数据最大值\r\n interval: 10, // 设置刻度间隔为10\r\n axisLine: { show: true },\r\n },\r\n series: [\r\n /*{\r\n name: '散点',\r\n type: 'scatter',\r\n data: xData.map((x, idx) => [x, yData[idx]]), // 散点数据\r\n symbolSize: 8,\r\n itemStyle: { color: '#5470c6' }\r\n },*/\r\n {\r\n name: '趋势线',\r\n type: 'line',\r\n data: seriesData, // 趋势线数据\r\n symbol: 'none', // 不显示数据点标记\r\n lineStyle: {\r\n color: linePointColor,\r\n // width: 2,\r\n type: 'solid', // 实线\r\n },\r\n smooth: true, // 平滑曲线\r\n },\r\n {\r\n name: 'y=50 标注点',\r\n type: 'scatter',\r\n data: [[x50, 50]], // 标注点位置\r\n symbolSize: 10,\r\n itemStyle: { color: linePointColor },\r\n label: {\r\n show: true,\r\n position: 'right',\r\n formatter: '(' + x50.toFixed(2) + ', 50)', // 显示坐标\r\n color: '#333',\r\n fontSize: 12,\r\n },\r\n markLine: {\r\n symbol: 'none', // 不显示箭头\r\n lineStyle: {\r\n color: '#333',\r\n type: 'dashed',\r\n width: 1,\r\n },\r\n data: [\r\n // 横向虚线:从(0,50)到(x50,50)\r\n [{ coord: [0, 50] }, { coord: [x50, 50] }],\r\n // 纵向虚线:从(x50,50)到(x50,-10)\r\n [{ coord: [x50, 50] }, { coord: [x50, 0] }],\r\n ],\r\n },\r\n },\r\n ],\r\n };\r\n\r\n // console.log('输出公式:', 'y = ' + a.toFixed(4) + 'x² + ' + b.toFixed(4) + 'x');\r\n // console.log('当 y=50 时,x 的计算公式:', 'x = [-b ± √(b² + 4a*50)] / (2a)');\r\n // console.log('计算值x =', x50.toFixed(2));\r\n\r\n return option;\r\n },\r\n /**\r\n * 电流I(mA)与时间t(min)关系图\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart390: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName;\r\n\r\n let legendData = [],\r\n seriesData = [];\r\n lineData.forEach((item, index) => {\r\n // 排除x轴和y轴所有数据都为0的\r\n if (\r\n xDataArr[index].some((x) => x != 0 && x != null && x != undefined && x != '/') &&\r\n yDataArr[index].some((x) => x != 0 && x != null && x != undefined && x != '/')\r\n ) {\r\n legendData.push(item.legend);\r\n\r\n seriesData.push({\r\n name: item.legend,\r\n type: 'line',\r\n data: xDataArr[0].filter((x) => x != 0 && x != null && x != undefined && x != '/').map((x, idx) => [x, yDataArr[index][idx]]),\r\n symbol: index == 0 ? 'triangle' : index == 1 ? 'circle' : 'rect',\r\n lineStyle: {\r\n color: item.lineColor,\r\n // width: 2,\r\n type: index == 2 ? 'solid' : 'dotted', // 虚线或实线\r\n },\r\n smooth: true, // 平滑曲线\r\n });\r\n }\r\n });\r\n\r\n // 判断y轴数据是否为/、‘’、null、undefined或者没有数据\r\n let yValIsAllNull = false;\r\n /*if(trendLineY.length==0){\r\n\t\t\tyValIsAllNull = true;\r\n\t\t}else{\r\n\t\t\tlet noDataCount = 0;\r\n\t\t\t\r\n\t\t\ttrendLineY.forEach((item)=>{\r\n\t\t\t\tif(item==null || item ==undefined ||item=='/'||item==''){\r\n\t\t\t\t\tnoDataCount ++;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tif(noDataCount==trendLineY.length){\r\n\t\t\t\tyValIsAllNull = true;\r\n\t\t\t}\r\n\t\t}*/\r\n\r\n // 配置图表选项\r\n var option = {\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: '100px',\r\n top: 5,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n // 图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n top: '2px',\r\n right: '5px',\r\n data: legendData,\r\n selectedMode: 'multiple', // 用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 25,\r\n left: !yValIsAllNull ? 25 : 25,\r\n right: 10,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n xAxis: {\r\n type: 'value',\r\n name: 'X轴',\r\n min: 0, // 从 x=0 开始\r\n //max: xEnd, // 扩展到后推位置\r\n //interval: 30, // 设置刻度间隔为10\r\n axisLine: { show: true },\r\n },\r\n yAxis: {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n min: 0, // 向下多显示 -10\r\n //max: Math.max(...yData) + 10, // 基于数据最大值\r\n interval: 10, // 设置刻度间隔为10\r\n axisLine: { show: true },\r\n },\r\n series: seriesData,\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 氧化镁含量标准回归曲线方程\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart410: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n //y轴原始数据\r\n let yDataSource = yDataArr[0]; // [1.2, 5.6, 10.8, 16, 20.8];\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n legendName = '图例1';\r\n\r\n //x轴的数据\r\n let xData = xDataArr[0]; // [0, 2, 4, 6, 8];\r\n\r\n //重新处理x轴和y轴的数据,排除x轴后面为0的数据(因为有可能在单元格中,最后一个单元格的值可能没有填,这时候默认传的是0)\r\n let xDataCl = [],\r\n yDataSourceCl = [];\r\n for (let i = 0; i < xData.length; i++) {\r\n if (xData[i] != '/' && (i == 0 || (i > 0 && xData[i] != 0))) {\r\n xDataCl.push(xData[i]);\r\n yDataSourceCl.push(yDataSource[i]);\r\n } else if (i > 0 && xData[i] == 0) {\r\n break;\r\n }\r\n }\r\n xData = xDataCl;\r\n yDataSource = yDataSourceCl;\r\n\r\n //series的data数据、series的markPoint的data数据、series的markLine的data数据\r\n let seriesData = [],\r\n markPointData = [],\r\n markLineData = [...xData];\r\n\r\n //此目的是显示更多的x轴数据\r\n //假设x轴原始数据为[0, 2, 4, 6, 8],在这个数组中没有1、3、5等数据,此时就可以通过下面的方式进行增加\r\n /*\r\n\t\tfor (let i = 0; i < 20; i++) {\r\n\t\t\tif (!markLineData.some((item) => item == i)) {\r\n\t\t\t\tmarkLineData.push(i);\r\n\t\t\t}\r\n\t\t}\r\n\t\t*/\r\n\r\n //获取y轴趋势公式对象\r\n const gsS = EChartsUtilsComm.calcTrend(xData, yDataSource, xData[0]);\r\n\r\n //输出方程表达式\r\n if (chartExtJson != null) {\r\n if (chartExtJson.yhmhlBzHgx != null && chartExtJson.yhmhlBzHgx != undefined) {\r\n // console.log('输出公式:',`Y=${getRound(gsS.xl,0.0001)}X+${getRound(gsS.jj,0.0001)}`)\r\n if (gsS.xl == '' || gsS.jj == '') {\r\n sheet.setValue(chartExtJson.yhmhlBzHgx.row, chartExtJson.yhmhlBzHgx.col, '/');\r\n } else {\r\n const curXVal = EChartsUtilsComm.getRound(gsS.jj, 0.0001);\r\n\r\n sheet.setValue(\r\n chartExtJson.yhmhlBzHgx.row,\r\n chartExtJson.yhmhlBzHgx.col,\r\n `Y=${EChartsUtilsComm.getRound(gsS.xl, 0.0001)}X${curXVal >= 0 ? '+' : ''}${curXVal}`,\r\n );\r\n }\r\n }\r\n }\r\n\r\n let yDataCopy = [];\r\n //获取y轴原始数据对应的趋势数据\r\n xData.forEach((item, index) => {\r\n let curYData = Number(EChartsUtilsComm.getRound(eval(gsS.gs.replace('x', item + '')), 0.01));\r\n if (isNaN(curYData)) {\r\n curYData = 0;\r\n }\r\n\r\n // seriesData.push([item, curYData]);\r\n seriesData.push([item, yDataSource[index]]);\r\n yDataCopy.push(curYData);\r\n markPointData.push({\r\n xAxis: item,\r\n yAxis: yDataSource[index],\r\n symbol: 'circle',\r\n symbolSize: 6,\r\n });\r\n\r\n //console.log(curYData, \"curYData\")\r\n });\r\n\r\n let yValIsAllNull = false;\r\n if (xData.length == 0) {\r\n yValIsAllNull = true;\r\n }\r\n let nullCount = 0;\r\n xData.forEach((item) => {\r\n if (item[1] == 0 || item[1] == null || item[1] == undefined) {\r\n nullCount++;\r\n }\r\n });\r\n if (nullCount == xData.length) {\r\n yValIsAllNull = true;\r\n }\r\n if (yDataCopy.some((item) => item != 0 || item[1] == null || item[1] == undefined)) {\r\n yValIsAllNull = false;\r\n }\r\n\r\n let option = {\r\n grid: {\r\n // show: true,//是否显示外边框线\r\n // borderColor: '#f00',//外边框线颜色\r\n top: 22,\r\n left: !yValIsAllNull ? 30 : 25,\r\n right: 10,\r\n bottom: 35,\r\n containLabel: true,\r\n },\r\n //提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (datas, ticket) {\r\n return datas && datas.length > 0 ? datas[0].value[0] + ':' + datas[0].value[1] : datas[0].data;\r\n },\r\n },\r\n //顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 0,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n //图例,参考文档:https://echarts.apache.org/zh/option.html#legend\r\n legend: {\r\n show: false,\r\n left: 'right',\r\n data: [legendName],\r\n selected: {\r\n legendName: true, //显示\r\n },\r\n selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)\r\n },\r\n xAxis: {\r\n type: 'value',\r\n splitLine: { show: false }, // 隐藏分割线\r\n axisLabel: { show: false }, // 隐藏刻度值\r\n },\r\n yAxis: [\r\n {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n },\r\n ],\r\n series: [\r\n {\r\n name: legendName,\r\n type: 'line',\r\n smooth: true, //平滑的线条\r\n //设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol\r\n symbol: 'circle', //符号类型\r\n symbolSize: 6, //符号大小\r\n //线条的颜色\r\n lineStyle: {\r\n color: lineData[0].lineColor,\r\n //线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)\r\n type: 'solid',\r\n },\r\n //线条上数据点的颜色\r\n itemStyle: {\r\n color: lineData[0].lineColor,\r\n opacity: 0,\r\n },\r\n data: seriesData,\r\n markPoint: {\r\n data: markPointData,\r\n },\r\n markLine: {\r\n symbol: false, //取消箭头\r\n silent: true, //取消鼠标hover事件\r\n label: {\r\n position: 'start', //改变label位置\r\n formatter: (obj) => obj.value, //格式化显示的x轴标签内容\r\n },\r\n lineStyle: { color: '#ddd', type: 'solid' },\r\n data: markLineData.map((val) => {\r\n return {\r\n xAxis: val,\r\n };\r\n }),\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 单位压力与回弹变形关系曲线\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart430: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n color = lineData[0].lineColor;\r\n\r\n // 原始数据\r\n const xData = xDataArr[0];\r\n const yData = yDataArr[0];\r\n\r\n let yValIsAllNull = false;\r\n if (\r\n xData.length == 0 ||\r\n yData.length == 0 ||\r\n (!xData.some((x) => x != '' && x != '/' && x != null && x != undefined) &&\r\n !yData.some((x) => x != '' && x != '/' && x != null && x != undefined))\r\n ) {\r\n yValIsAllNull = true;\r\n }\r\n if (xData.filter((x) => x == 0).length == xData.length || yData.filter((x) => x == 0).length == yData.length) {\r\n yValIsAllNull = true;\r\n }\r\n\r\n // 手动计算多项式回归系数(与Excel一致)\r\n function polynomialRegression(x, y, degree) {\r\n const n = x.length;\r\n let X = [],\r\n Y = [];\r\n\r\n for (let i = 0; i < n; i++) {\r\n let row = [];\r\n for (let j = 0; j <= degree; j++) {\r\n row.push(Math.pow(x[i], j));\r\n }\r\n X.push(row);\r\n Y.push([y[i]]);\r\n }\r\n\r\n let XTX = [];\r\n for (let i = 0; i <= degree; i++) {\r\n XTX[i] = [];\r\n for (let j = 0; j <= degree; j++) {\r\n let sum = 0;\r\n for (let k = 0; k < n; k++) {\r\n sum += Math.pow(x[k], i + j);\r\n }\r\n XTX[i][j] = sum;\r\n }\r\n }\r\n\r\n let XTY = [];\r\n for (let i = 0; i <= degree; i++) {\r\n let sum = 0;\r\n for (let k = 0; k < n; k++) {\r\n sum += Math.pow(x[k], i) * y[k];\r\n }\r\n XTY[i] = sum;\r\n }\r\n\r\n let matrix = [];\r\n for (let i = 0; i <= degree; i++) {\r\n matrix[i] = [];\r\n for (let j = 0; j <= degree; j++) {\r\n matrix[i][j] = XTX[i][j];\r\n }\r\n matrix[i][degree + 1] = XTY[i];\r\n }\r\n\r\n for (let i = 0; i <= degree; i++) {\r\n let maxRow = i;\r\n for (let k = i + 1; k <= degree; k++) {\r\n if (Math.abs(matrix[k][i]) > Math.abs(matrix[maxRow][i])) {\r\n maxRow = k;\r\n }\r\n }\r\n\r\n [matrix[i], matrix[maxRow]] = [matrix[maxRow], matrix[i]];\r\n\r\n const divisor = matrix[i][i];\r\n for (let j = i; j <= degree + 1; j++) {\r\n matrix[i][j] /= divisor;\r\n }\r\n\r\n for (let k = i + 1; k <= degree; k++) {\r\n const factor = matrix[k][i];\r\n for (let j = i; j <= degree + 1; j++) {\r\n matrix[k][j] -= factor * matrix[i][j];\r\n }\r\n }\r\n }\r\n\r\n const coefficients = new Array(degree + 1);\r\n for (let i = degree; i >= 0; i--) {\r\n coefficients[i] = matrix[i][degree + 1];\r\n for (let j = i + 1; j <= degree; j++) {\r\n coefficients[i] -= matrix[i][j] * coefficients[j];\r\n }\r\n }\r\n\r\n return coefficients;\r\n }\r\n\r\n // 提取系数(与Excel一致)\r\n let a = '/',\r\n b = '/',\r\n c = '/';\r\n\r\n // 生成回归线的数据点\r\n let regressionPoints = [];\r\n const maxX = Math.max(...xData);\r\n\r\n if (!yValIsAllNull) {\r\n // 计算多项式回归系数(阶数为2)\r\n const coefficients = polynomialRegression(xData, yData, 2);\r\n\r\n a = coefficients[2].toFixed(4);\r\n b = coefficients[1].toFixed(4);\r\n c = coefficients[0].toFixed(4);\r\n\r\n const minX = Math.min(...xData);\r\n const step = (maxX - minX) / 100;\r\n\r\n for (let x = minX; x <= maxX; x += step) {\r\n const y = parseFloat(a) * x * x + parseFloat(b) * x + parseFloat(c);\r\n regressionPoints.push([x, y]);\r\n }\r\n }\r\n\r\n // 输出方程\r\n if (chartExtJson != null) {\r\n if (chartExtJson.dwylHtbxGs != null && chartExtJson.dwylHtbxGs != undefined) {\r\n sheet.setValue(\r\n chartExtJson.dwylHtbxGs.row,\r\n chartExtJson.dwylHtbxGs.col,\r\n a != 'NaN' && b != 'NaN' && c != 'NaN' ? `Y=${a}X²+${b}X+${c}` : '/',\r\n );\r\n }\r\n if (chartExtJson.dwylHtbxA != null && chartExtJson.dwylHtbxA != undefined) {\r\n sheet.setValue(chartExtJson.dwylHtbxA.row, chartExtJson.dwylHtbxA.col, a != 'NaN' ? a : '/');\r\n }\r\n if (chartExtJson.dwylHtbxB != null && chartExtJson.dwylHtbxB != undefined) {\r\n sheet.setValue(chartExtJson.dwylHtbxB.row, chartExtJson.dwylHtbxB.col, b != 'NaN' ? b : '/');\r\n }\r\n if (chartExtJson.dwylHtbxC != null && chartExtJson.dwylHtbxC != undefined) {\r\n sheet.setValue(chartExtJson.dwylHtbxC.row, chartExtJson.dwylHtbxC.col, c != 'NaN' ? c : '/');\r\n }\r\n }\r\n\r\n // 配置图表选项\r\n let option = {\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 2,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n grid: {\r\n top: 25,\r\n left: 25,\r\n right: 15,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n xAxis: {\r\n type: 'value',\r\n nameLocation: 'end',\r\n nameTextStyle: {\r\n fontSize: 14,\r\n padding: [10, 0, 0, 0],\r\n },\r\n //interval: 0.05, // 设置刻度间隔为0.05\r\n min: 0,\r\n max: maxX + 0.05,\r\n },\r\n yAxis: {\r\n type: 'value',\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 30 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n interval: 20,\r\n // 关键设置:确保y轴从0开始向下延伸\r\n min: 0, // 从0开始[4,5](@ref)\r\n max: Math.max(...yData) + 10, // 根据数据范围设置最大值\r\n axisLine: {\r\n lineStyle: {\r\n color: '#333',\r\n },\r\n },\r\n },\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (params) {\r\n if (params.length > 1) {\r\n return `单位压力: ${params[0].value[0]} MPa<br/>回弹变形: ${params[0].value[1]} (1/1000mm)`;\r\n } else {\r\n return `趋势线<br/>单位压力: ${params[0].value[0]} MPa<br/>预测回弹变形: ${params[0].value[1].toFixed(2)} (1/1000mm)`;\r\n }\r\n },\r\n },\r\n series: [\r\n {\r\n name: '原始数据',\r\n type: 'scatter',\r\n data: xData.map((x, i) => [x, yData[i]]),\r\n symbolSize: 5,\r\n itemStyle: {\r\n color: color,\r\n },\r\n },\r\n {\r\n name: '多项式趋势线',\r\n type: 'line',\r\n data: regressionPoints,\r\n symbol: 'none',\r\n lineStyle: {\r\n color: color,\r\n width: 1,\r\n type: 'dashed',\r\n },\r\n smooth: 0.3,\r\n tooltip: {\r\n trigger: 'item',\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 土工合成材料(拉拔摩擦特性)\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart450: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n // const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n color = lineData[0].lineColor;\r\n\r\n // 原始数据\r\n const xData = xDataArr[0];\r\n const yData = yDataArr[0];\r\n\r\n // 计算线性回归参数(斜率和截距)\r\n function linearRegression(x, y) {\r\n const n = x.length;\r\n let sumX = 0,\r\n sumY = 0,\r\n sumXY = 0,\r\n sumXX = 0;\r\n\r\n for (let i = 0; i < n; i++) {\r\n sumX += x[i];\r\n sumY += y[i];\r\n sumXY += x[i] * y[i];\r\n sumXX += x[i] * x[i];\r\n }\r\n\r\n const slope = (n * sumXY - sumX * sumY) / (n * sumXX - sumX * sumX);\r\n const intercept = (sumY - slope * sumX) / n;\r\n\r\n return { slope, intercept };\r\n }\r\n\r\n const regression = linearRegression(xData, yData);\r\n // console.log('斜率:', regression.slope, '截距:', regression.intercept);\r\n\r\n // 计算趋势线的数据点\r\n // 前推0.0,后推50.0\r\n const minX = Math.min(...xData);\r\n const maxX = Math.max(...xData) + 50; // 后推50\r\n\r\n // 生成趋势线数据点,确保与y轴相交(x=0)\r\n const trendData = [];\r\n for (let x = 0; x <= maxX; x += 10) {\r\n const y = regression.slope * x + regression.intercept;\r\n trendData.push([x, y]);\r\n }\r\n\r\n let yValIsAllNull = false;\r\n if (\r\n xData.length == 0 ||\r\n yData.length == 0 ||\r\n (!xData.some((x) => x != '' && x != '/' && x != null && x != undefined) &&\r\n !yData.some((x) => x != '' && x != '/' && x != null && x != undefined))\r\n ) {\r\n yValIsAllNull = true;\r\n }\r\n if (xData.filter((x) => x == 0).length == xData.length || yData.filter((x) => x == 0).length == yData.length) {\r\n yValIsAllNull = true;\r\n }\r\n\r\n // 配置图表选项\r\n const option = {\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 2,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n grid: {\r\n top: 25,\r\n left: 25,\r\n right: 15,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (params) {\r\n let result = '';\r\n params.forEach((param) => {\r\n if (param.seriesName === '实际数据') {\r\n result += `法向应力: ${param.value[0]} kPA<br/>剪应力: ${param.value[1]} kPA`;\r\n } else if (param.seriesName === '趋势线') {\r\n result += `趋势线<br/>法向应力: ${param.value[0]} kPA<br/>预测剪应力: ${param.value[1].toFixed(2)} kPA`;\r\n }\r\n });\r\n return result;\r\n },\r\n },\r\n xAxis: {\r\n name: xName,\r\n nameLocation: 'end',\r\n nameGap: 20,\r\n nameTextStyle: {\r\n fontSize: 12,\r\n fontWeight: 'bold',\r\n },\r\n type: 'value',\r\n min: 0,\r\n max: 450,\r\n interval: 50,\r\n axisLine: {\r\n lineStyle: {\r\n color: '#333',\r\n },\r\n },\r\n },\r\n yAxis: {\r\n name: yName,\r\n nameGap: !yValIsAllNull ? 35 : 5,\r\n nameRotate: 90,\r\n nameLocation: 'middle',\r\n type: 'value',\r\n min: 0,\r\n interval: 50,\r\n axisLine: {\r\n lineStyle: {\r\n color: '#333',\r\n },\r\n },\r\n },\r\n series: [\r\n {\r\n name: '实际数据',\r\n type: 'scatter',\r\n data: !yValIsAllNull ? xData.map((x, i) => [x, yData[i]]) : [],\r\n symbolSize: 5,\r\n itemStyle: {\r\n color: color,\r\n },\r\n },\r\n {\r\n name: '趋势线',\r\n type: 'line',\r\n data: !yValIsAllNull ? trendData : [],\r\n symbol: 'none',\r\n lineStyle: {\r\n color: color,\r\n width: 1,\r\n type: 'solid',\r\n },\r\n /*\r\n markPoint: {\r\n data: [\r\n {\r\n type: 'min',\r\n symbol: 'circle',\r\n symbolSize: 6,\r\n label: {\r\n formatter: '起点',\r\n position: 'right'\r\n }\r\n }\r\n ]\r\n }\r\n\t\t\t\t\t*/\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 土工合成材料(有效孔径)\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart470: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n color = lineData[0].lineColor;\r\n\r\n // 原始数据\r\n const xData = xDataArr[0];\r\n const yData = yDataArr[0];\r\n\r\n // 线性内插法函数:根据y值计算对应的x值\r\n function interpolateX(targetY, xData, yData) {\r\n // 查找目标y值所在区间\r\n for (let i = 0; i < yData.length - 1; i++) {\r\n if ((yData[i] >= targetY && yData[i + 1] <= targetY) || (yData[i] <= targetY && yData[i + 1] >= targetY)) {\r\n // 线性插值公式: x = x1 + (x2 - x1) * (targetY - y1) / (y2 - y1)\r\n const x1 = xData[i];\r\n const x2 = xData[i + 1];\r\n const y1 = yData[i];\r\n const y2 = yData[i + 1];\r\n\r\n return x1 + ((x2 - x1) * (targetY - y1)) / (y2 - y1);\r\n }\r\n }\r\n return null; // 如果目标y值不在数据范围内\r\n }\r\n\r\n // 计算y=5和y=10对应的x值\r\n const xAtY5 = interpolateX(5, xData, yData);\r\n const xAtY10 = interpolateX(10, xData, yData);\r\n\r\n // console.log('y=5时,x=' + (xAtY5 ? xAtY5 : ''));\r\n // console.log('y=10时,x=' + (xAtY10 ? xAtY10 : ''));\r\n\r\n let yValIsAllNull = false;\r\n if (\r\n xData.length == 0 ||\r\n yData.length == 0 ||\r\n (!xData.some((x) => x != '' && x != '/' && x != null && x != undefined) &&\r\n !yData.some((x) => x != '' && x != '/' && x != null && x != undefined))\r\n ) {\r\n yValIsAllNull = true;\r\n }\r\n if (xData.filter((x) => x == 0).length == xData.length || yData.filter((x) => x == 0).length == yData.length) {\r\n yValIsAllNull = true;\r\n }\r\n\r\n // 输出x轴内插值\r\n if (chartExtJson != null) {\r\n if (chartExtJson.tghcclYxkj5 != null && chartExtJson.tghcclYxkj5 != undefined) {\r\n sheet.setValue(chartExtJson.tghcclYxkj5.row, chartExtJson.tghcclYxkj5.col, xAtY5 ? EChartsUtilsComm.getRound(xAtY5, 0.001) : '/');\r\n }\r\n if (chartExtJson.tghcclYxkj10 != null && chartExtJson.tghcclYxkj10 != undefined) {\r\n sheet.setValue(chartExtJson.tghcclYxkj10.row, chartExtJson.tghcclYxkj10.col, xAtY10 ? EChartsUtilsComm.getRound(xAtY10, 0.001) : '/');\r\n }\r\n }\r\n\r\n // 配置图表选项\r\n const option = {\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 2,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: function (params) {\r\n return `标准颗粒直径: ${params[0].value[0].toFixed(3)} mm<br>过筛率: ${params[0].value[1].toFixed(2)} %`;\r\n },\r\n },\r\n grid: {\r\n top: 25,\r\n left: 25,\r\n right: 15,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n xAxis: {\r\n name: xName,\r\n nameLocation: 'end',\r\n nameGap: 20,\r\n nameTextStyle: {\r\n fontSize: 12,\r\n },\r\n\r\n type: 'log', // 设置为对数坐标轴\r\n axisLine: {\r\n lineStyle: {\r\n color: '#333',\r\n },\r\n },\r\n min: 0.01, // 设置最小值为0.01\r\n max: 1, // 设置最大值为1\r\n axisLabel: {\r\n formatter: function (value) {\r\n return value.toFixed(2); // 格式化x轴标签显示\r\n },\r\n },\r\n // 增加纵向网格线\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#f0f0f0',\r\n width: 1,\r\n type: 'solid',\r\n },\r\n },\r\n // 设置更多的刻度点\r\n minorTick: {\r\n show: true,\r\n },\r\n minorSplitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#f0f0f0',\r\n width: 1,\r\n type: 'solid',\r\n },\r\n },\r\n },\r\n yAxis: {\r\n type: 'value', // 普通坐标轴\r\n name: yName,\r\n nameLocation: 'middle', // 名称居中显示\r\n nameGap: 25, // 名称与轴线的距离\r\n nameTextStyle: {\r\n fontSize: 12,\r\n },\r\n axisLine: {\r\n lineStyle: {\r\n color: '#333',\r\n },\r\n },\r\n min: 0,\r\n max: 25,\r\n // 保持横向网格线\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#f0f0f0',\r\n width: 1,\r\n },\r\n },\r\n },\r\n series: yValIsAllNull\r\n ? []\r\n : [\r\n {\r\n name: '孔径分布',\r\n type: 'line',\r\n data: xData.map((x, i) => [x, yData[i]]), // 组合x和y数据\r\n smooth: true, // 平滑曲线\r\n lineStyle: {\r\n width: 2,\r\n type: 'solid', // 实线\r\n },\r\n // 设置数据点样式为实心点\r\n showSymbol: true, // 确保显示数据点\r\n symbol: 'circle', // 实心圆点\r\n symbolSize: 8, // 点的大小\r\n itemStyle: {\r\n color: color, // 数据点颜色\r\n borderColor: '#fff', // 数据点边框颜色\r\n borderWidth: 1, // 数据点边框宽度\r\n },\r\n markPoint: {\r\n symbol: 'circle', // 使用简单的圆点作为标记\r\n symbolSize: 1, // 标记点大小\r\n data: [\r\n {\r\n name: 'y=5',\r\n coord: [xAtY5, 5], // 标记点坐标\r\n value: 5,\r\n itemStyle: {\r\n color: 'red', // 红色标记点\r\n },\r\n label: {\r\n show: true,\r\n formatter: `(${xAtY5.toFixed(3)},5)`, // 显示(x值,y值)\r\n position: 'right',\r\n fontSize: 12,\r\n },\r\n },\r\n {\r\n name: 'y=10',\r\n coord: [xAtY10, 10],\r\n value: 10,\r\n itemStyle: {\r\n color: 'red', // 红色标记点\r\n },\r\n label: {\r\n show: true,\r\n formatter: `(${xAtY10.toFixed(3)},10)`, // 显示(x值,y值)\r\n position: 'right',\r\n fontSize: 12,\r\n },\r\n },\r\n ],\r\n },\r\n markLine: {\r\n symbol: 'none', // 去掉连线箭头\r\n data: [\r\n // y=5的水平虚线(从y轴到点)\r\n [\r\n {\r\n coord: [0.01, 5], // 起点:x轴最小值,y=5\r\n lineStyle: {\r\n type: 'dashed',\r\n color: 'red',\r\n width: 1,\r\n },\r\n },\r\n {\r\n coord: [xAtY5, 5], // 终点:标记点的x坐标,y=5\r\n lineStyle: {\r\n type: 'dashed',\r\n color: 'red',\r\n width: 1,\r\n },\r\n },\r\n ],\r\n // y=5的垂直虚线(从x轴到点)\r\n [\r\n {\r\n coord: [xAtY5, 0], // 起点:标记点的x坐标,y轴最小值\r\n lineStyle: {\r\n type: 'dashed',\r\n color: 'red',\r\n width: 1,\r\n },\r\n },\r\n {\r\n coord: [xAtY5, 5], // 终点:标记点的坐标\r\n lineStyle: {\r\n type: 'dashed',\r\n color: 'red',\r\n width: 1,\r\n },\r\n },\r\n ],\r\n // y=10的水平虚线(从y轴到点)\r\n [\r\n {\r\n coord: [0.01, 10], // 起点:x轴最小值,y=10\r\n lineStyle: {\r\n type: 'dashed',\r\n color: 'red',\r\n width: 1,\r\n },\r\n },\r\n {\r\n coord: [xAtY10, 10], // 终点:标记点的x坐标,y=10\r\n lineStyle: {\r\n type: 'dashed',\r\n color: 'red',\r\n width: 1,\r\n },\r\n },\r\n ],\r\n // y=10的垂直虚线(从x轴到点)\r\n [\r\n {\r\n coord: [xAtY10, 0], // 起点:标记点的x坐标,y轴最小值\r\n lineStyle: {\r\n type: 'dashed',\r\n color: 'red',\r\n width: 1,\r\n },\r\n },\r\n {\r\n coord: [xAtY10, 10], // 终点:标记点的坐标\r\n lineStyle: {\r\n type: 'dashed',\r\n color: 'red',\r\n width: 1,\r\n },\r\n },\r\n ],\r\n ],\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 温度-针入度曲线\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart490: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName = config.chartYName,\r\n color = lineData[0].lineColor;\r\n\r\n // 原始数据\r\n let xData = xDataArr[0];\r\n let yData = yDataArr[0];\r\n\r\n /**\r\n * 判断值是否为无效占位符\r\n * 无效值包括: 0, '/', null, undefined, NaN, ''\r\n */\r\n function isValid(val) {\r\n if (val === 0 || val === '/' || val === null || val === undefined || val === '') return false;\r\n if (typeof val === 'number' && Number.isNaN(val)) return false;\r\n return true;\r\n }\r\n\r\n /**\r\n * 根据两个数组对应位置的值进行联合过滤,去除任一为无效值的项\r\n * @param {Array} arr1 - 第一个数组\r\n * @param {Array} arr2 - 第二个数组\r\n * @returns {[Array, Array]} 返回过滤后的两个数组组成的元组\r\n */\r\n function filterArrData(arr1, arr2) {\r\n const filtered1 = [];\r\n const filtered2 = [];\r\n\r\n const len = Math.min(arr1.length, arr2.length);\r\n\r\n for (let i = 0; i < len; i++) {\r\n // 只有当两个数组在当前位置都是有效值时,才保留\r\n if (isValid(arr1[i]) && isValid(arr2[i])) {\r\n filtered1.push(arr1[i]);\r\n filtered2.push(arr2[i]);\r\n }\r\n }\r\n\r\n return [filtered1, filtered2];\r\n }\r\n const [xDataFiltered, yDataFiltered] = filterArrData(xData, yData);\r\n xData = xDataFiltered;\r\n yData = yDataFiltered;\r\n\r\n // 手动计算线性回归参数\r\n function linearRegression(x, y) {\r\n const n = x.length;\r\n const xMean = x.reduce((sum, val) => sum + val, 0) / n;\r\n const yMean = y.reduce((sum, val) => sum + val, 0) / n;\r\n let numerator = 0;\r\n let denominator = 0;\r\n for (let i = 0; i < n; i++) {\r\n numerator += (x[i] - xMean) * (y[i] - yMean);\r\n denominator += (x[i] - xMean) * (x[i] - xMean);\r\n }\r\n const slope = numerator / denominator;\r\n const intercept = yMean - slope * xMean;\r\n return { slope, intercept };\r\n }\r\n function calculateRSquared(x, y, slope, intercept) {\r\n const n = x.length;\r\n const yMean = y.reduce((sum, val) => sum + val, 0) / n;\r\n let totalSumOfSquares = 0;\r\n let residualSumOfSquares = 0;\r\n for (let i = 0; i < n; i++) {\r\n totalSumOfSquares += Math.pow(y[i] - yMean, 2);\r\n const yPredicted = slope * x[i] + intercept;\r\n residualSumOfSquares += Math.pow(y[i] - yPredicted, 2);\r\n }\r\n return 1 - residualSumOfSquares / totalSumOfSquares;\r\n }\r\n const logYData = yData.map((y) => Math.log10(y));\r\n const regressionParams = linearRegression(xData, logYData);\r\n const rSquared = calculateRSquared(xData, logYData, regressionParams.slope, regressionParams.intercept);\r\n // document.getElementById('formulaDisplay').innerHTML = `公式: log<sub>10</sub>(y) = ${regressionParams.slope.toFixed(\r\n // 4\r\n // )}x + ${regressionParams.intercept.toFixed(4)}<br> R² = ${rSquared.toFixed(4)}`;\r\n\r\n let yValIsAllNull = false;\r\n if (\r\n xData.length == 0 ||\r\n yData.length == 0 ||\r\n (!xData.some((x) => x != '' && x != '/' && x != null && x != undefined) &&\r\n !yData.some((x) => x != '' && x != '/' && x != null && x != undefined))\r\n ) {\r\n yValIsAllNull = true;\r\n }\r\n if (xData.filter((x) => x == 0).length == xData.length || yData.filter((x) => x == 0).length == yData.length) {\r\n yValIsAllNull = true;\r\n }\r\n\r\n // 1. 定义期望显示网格线的Y轴数值(在对数空间中是均匀的,对应实际空间中的特定值)\r\n const customGridLines = yValIsAllNull ? [] : [30, 70, 100, 150, 200];\r\n\r\n // 2. 为markLine准备数据\r\n const markLineData = customGridLines.map((value) => ({\r\n yAxis: value, // 标记线的位置(实际值)\r\n label: {\r\n show: true,\r\n formatter: '{c}', // 显示数值\r\n },\r\n lineStyle: {\r\n color: '#e0e0e0',\r\n width: 1,\r\n type: 'solid',\r\n },\r\n }));\r\n\r\n // 输出x轴内插值\r\n if (chartExtJson != null) {\r\n if (chartExtJson.wdzrdXlA != null && chartExtJson.wdzrdXlA != undefined) {\r\n sheet.setValue(\r\n chartExtJson.wdzrdXlA.row,\r\n chartExtJson.wdzrdXlA.col,\r\n regressionParams.slope ? EChartsUtilsComm.getRound(regressionParams.slope, 0.0001) : '/',\r\n );\r\n }\r\n if (chartExtJson.wdzrdCsB != null && chartExtJson.wdzrdCsB != undefined) {\r\n sheet.setValue(\r\n chartExtJson.wdzrdCsB.row,\r\n chartExtJson.wdzrdCsB.col,\r\n regressionParams.intercept ? EChartsUtilsComm.getRound(regressionParams.intercept, 0.0001) : '/',\r\n );\r\n }\r\n if (chartExtJson.wdzrdXsR != null && chartExtJson.wdzrdXsR != undefined) {\r\n sheet.setValue(chartExtJson.wdzrdXsR.row, chartExtJson.wdzrdXsR.col, rSquared ? EChartsUtilsComm.getRound(rSquared, 0.0001) : '/');\r\n }\r\n }\r\n\r\n const option = {\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 2,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n grid: {\r\n top: 25,\r\n left: yValIsAllNull ? 20 : 40,\r\n right: 15,\r\n bottom: 20,\r\n containLabel: true,\r\n },\r\n xAxis: {\r\n type: 'value',\r\n name: xName,\r\n min: Math.min(...xData),\r\n //max: 35\r\n },\r\n yAxis: {\r\n type: 'log',\r\n name: yName,\r\n nameLocation: 'middle', // 名称居中显示\r\n nameGap: yValIsAllNull ? 5 : 25, // 名称与轴线的距离\r\n logBase: 10,\r\n // min: 10,\r\n min: function (value) {\r\n // 确保最小值不会太小\r\n return Math.max(1, Math.pow(10, Math.floor(Math.log10(value.min))));\r\n },\r\n max: function (value) {\r\n const maxValue = value.max;\r\n\r\n // 处理特殊情况\r\n if (maxValue <= 0) return 100;\r\n\r\n // 计算对数值\r\n const logValue = Math.log10(maxValue);\r\n const exponent = Math.floor(logValue);\r\n const fraction = logValue - exponent;\r\n\r\n // 根据小数部分决定如何取整\r\n let maxExponent;\r\n if (fraction < 0.3) {\r\n maxExponent = exponent + 0.3; // 使用5倍关系\r\n } else if (fraction < 0.7) {\r\n maxExponent = exponent + 1; // 使用10倍关系\r\n } else {\r\n maxExponent = exponent + 1.5; // 使用30倍关系,为大数据留更多空间\r\n }\r\n\r\n return Math.pow(10, maxExponent);\r\n },\r\n\r\n // 关键步骤:抑制默认的y轴网格线和部分标签,让markLine主导\r\n splitLine: {\r\n show: false, // 隐藏y轴默认的网格线\r\n },\r\n axisLabel: {\r\n show: false,\r\n // 可以控制只显示某些主要刻度,或者也设为false完全自定义\r\n // interval: 0,\r\n // 或者使用formatter精细控制,这里我们先展示默认标签\r\n },\r\n zlevel: 1,\r\n minorSplitLine: { show: false }, // 隐藏次要网格线\r\n },\r\n series: [\r\n {\r\n name: '原始数据',\r\n type: 'scatter',\r\n data: xData.map((x, i) => [x, yData[i]]),\r\n symbolSize: 6,\r\n zlevel: 4,\r\n itemStyle: { color: color },\r\n },\r\n {\r\n name: '趋势线',\r\n type: 'line',\r\n data: (() => {\r\n const minX = Math.min(...xData);\r\n const maxX = Math.max(...xData);\r\n const trendlineData = [];\r\n\r\n for (let x = minX; x <= maxX; x += 0.5) {\r\n const logY = regressionParams.slope * x + regressionParams.intercept;\r\n const y = Math.pow(10, logY);\r\n trendlineData.push([x, y]);\r\n }\r\n\r\n return trendlineData;\r\n })(),\r\n showSymbol: false,\r\n lineStyle: { color: color, width: 1 },\r\n // 关键修改:提升趋势线的绘制层级,确保它显示在网格线之上\r\n zlevel: 5, // 这个值大于网格线所在的层级即可\r\n },\r\n {\r\n // 关键步骤:添加一个透明的系列,专门用于承载markLine\r\n name: '自定义网格线',\r\n type: 'line',\r\n data: [], // 没有实际数据点\r\n markLine: {\r\n symbol: 'none', // 线条两端不显示符号\r\n lineStyle: { color: '#e0e0e0', width: 1, type: 'solid' },\r\n label: {\r\n show: true,\r\n position: 'start',\r\n formatter: '{c}', // 标签显示数值\r\n },\r\n data: markLineData, // 使用我们自定义的网格线数据\r\n },\r\n\r\n silent: true, // 此系列不响应鼠标事件\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n /**\r\n * 沥青含量与磨耗值及粘附砂量关系曲线图\r\n * @param config 折线配置\r\n * @param xDataArr x轴原始数据(二维数组)\r\n * @param yDataArr y轴原始数据(二维数组)\r\n * @returns 返回ECharts配置项\r\n */\r\n chart510: (config: EChartsUtilsConfigModel, xDataArr: Array<Array<any>>, yDataArr: Array<Array<any>>, sheet: any) => {\r\n let lineData = JSON.parse(config.chartLinesJson);\r\n // const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n let title = config.chartTitle,\r\n xName = config.chartXName,\r\n yName1 = '磨耗值(g/㎡)',\r\n yName2 = '粘附砂量(g/㎡)',\r\n color1 = lineData[0].lineColor,\r\n color2 = lineData[1].lineColor;\r\n\r\n // 原始数据\r\n const xData = xDataArr[0];\r\n const yData1 = yDataArr[0],\r\n yData2 = yDataArr[1];\r\n\r\n let yValIsAllNull1 = false,\r\n yValIsAllNull2 = false;\r\n if (\r\n xData.length == 0 ||\r\n yData1.length == 0 ||\r\n (!xData.some((x) => x != '' && x != '/' && x != null && x != undefined) &&\r\n !yData1.some((x) => x != '' && x != '/' && x != null && x != undefined))\r\n ) {\r\n yValIsAllNull1 = true;\r\n }\r\n if (xData.filter((x) => x == 0).length == xData.length || yData1.filter((x) => x == 0).length == yData1.length) {\r\n yValIsAllNull1 = true;\r\n }\r\n if (\r\n xData.length == 0 ||\r\n yData2.length == 0 ||\r\n (!xData.some((x) => x != '' && x != '/' && x != null && x != undefined) &&\r\n !yData2.some((x) => x != '' && x != '/' && x != null && x != undefined))\r\n ) {\r\n yValIsAllNull2 = true;\r\n }\r\n if (xData.filter((x) => x == 0).length == xData.length || yData2.filter((x) => x == 0).length == yData2.length) {\r\n yValIsAllNull2 = true;\r\n }\r\n\r\n // 配置项\r\n const option = {\r\n // 标题配置\r\n title: [\r\n {\r\n show: true,\r\n text: title,\r\n left: 'center',\r\n top: 2,\r\n textStyle: {\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n {\r\n show: true,\r\n text: xName,\r\n left: 'center',\r\n bottom: 0,\r\n textStyle: {\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n ],\r\n // 不显示图例\r\n legend: {\r\n show: false,\r\n },\r\n // 网格配置\r\n grid: {\r\n top: 25,\r\n left: 25,\r\n right: 25,\r\n bottom: yValIsAllNull1 && yValIsAllNull2 ? 25 : 20,\r\n containLabel: true,\r\n },\r\n // 提示框配置\r\n tooltip: {\r\n trigger: 'axis',\r\n axisPointer: {\r\n type: 'cross',\r\n },\r\n },\r\n // X轴配置\r\n xAxis: {\r\n type: 'category',\r\n data: xData,\r\n splitLine: {\r\n show: true,\r\n },\r\n },\r\n // Y轴配置(双Y轴)\r\n yAxis: [\r\n {\r\n // 左侧Y轴 - 磨耗值\r\n type: 'value',\r\n name: yName1,\r\n nameLocation: 'middle', // 名称居中显示\r\n nameGap: !yValIsAllNull1 ? 35 : 5, // 名称与轴线的距离\r\n max: Math.max(...yData1) + 100,\r\n // 显示横向网格线\r\n splitLine: {\r\n show: true,\r\n },\r\n axisLine: {\r\n show: true,\r\n },\r\n axisLabel: {\r\n formatter: '{value}',\r\n },\r\n axisTick: {\r\n show: true,\r\n },\r\n },\r\n {\r\n // 右侧Y轴 - 粘附砂量\r\n type: 'value',\r\n name: yName2,\r\n nameLocation: 'middle', // 名称居中显示\r\n nameGap: !yValIsAllNull2 ? 35 : 5, // 名称与轴线的距离\r\n max: Math.max(...yData2) + 100,\r\n splitLine: {\r\n show: false,\r\n },\r\n axisLine: {\r\n show: true,\r\n },\r\n axisLabel: {\r\n formatter: '{value}',\r\n },\r\n axisTick: {\r\n show: true,\r\n },\r\n },\r\n ],\r\n // 数据系列配置\r\n series: [\r\n {\r\n name: '磨耗值',\r\n type: 'line',\r\n smooth: true, // 平滑曲线\r\n data: yValIsAllNull1 ? [] : yData1.filter((x) => x != 0),\r\n yAxisIndex: 0, // 使用第一个Y轴(左侧)\r\n symbol: 'circle',\r\n symbolSize: 5,\r\n lineStyle: {\r\n color: color1,\r\n },\r\n itemStyle: {\r\n color: color1,\r\n },\r\n },\r\n {\r\n name: '粘附砂量',\r\n type: 'line',\r\n smooth: true, // 平滑曲线\r\n data: yValIsAllNull2 ? [] : yData2.filter((x) => x != 0),\r\n yAxisIndex: 1, // 使用第二个Y轴(右侧)\r\n symbol: 'circle',\r\n symbolSize: 5,\r\n lineStyle: {\r\n color: color2,\r\n },\r\n itemStyle: {\r\n color: color2,\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return option;\r\n },\r\n};\r\n","import * as echarts from 'echarts';\r\nimport { type CellModel } from '../types/sheet';\r\nimport { type EChartsUtilsConfigModel, type EChartsUtilsChartLinesJsonModel } from '../types/echarts';\r\nimport { EChartsUtilsAll } from './echarts-all';\r\n\r\n/**\r\n * ECharts图表工具类\r\n */\r\nexport const EChartsUtils = {\r\n /**\r\n * 创建图表\r\n * @param GC GC对象\r\n * @param spread 工作簿对象\r\n * @param sheet 工作表对象\r\n * @param config 折线配置\r\n * @param isHideChart 是否隐藏图表\r\n * @param isConsoleData 是否输出各个数据\r\n */\r\n create: async (\r\n GC: any,\r\n spread: any,\r\n sheet: any,\r\n config: EChartsUtilsConfigModel,\r\n isHideChart: boolean = false,\r\n isConsoleData: boolean = false,\r\n ): Promise<{\r\n fObj: any;\r\n fObjPosition: {\r\n x: number;\r\n y: number;\r\n w: number;\r\n h: number;\r\n };\r\n ecObj: echarts.ECharts;\r\n }> => {\r\n if (config.chartIdStr && config.chartIdStr.length > 0) {\r\n config.chartId = config.chartIdStr;\r\n }\r\n\r\n // 获取扩展配置\r\n const chartExtJson = config.chartExtJson == null || config.chartExtJson == undefined ? null : JSON.parse(config.chartExtJson);\r\n\r\n // 如果isShowCon配置存在,则验证isShowCon对应单元格的值是否和输入的配置chartExtJson.isShowVal相等,不相等的话,就不创建图表\r\n if (chartExtJson != null && chartExtJson.isShowCon != null && chartExtJson.isShowCon != undefined) {\r\n const conVal = sheet.getValue(chartExtJson.isShowCon.row, chartExtJson.isShowCon.col);\r\n\r\n if (conVal != chartExtJson.isShowVal) {\r\n sheet.floatingObjects.remove(config.chartId);\r\n return;\r\n }\r\n }\r\n\r\n // 获取图表单元格之上的所有行的高度总和、所有列的宽度总和、距离左侧的距离和图表所在单元格的高度\r\n let allRowsTotalHeight = 0,\r\n allRowsTotalWidth = 0,\r\n allRowsTotalLeft = 0,\r\n chartCellHeight = 0;\r\n for (let i = 0; i < config.row; i++) {\r\n allRowsTotalHeight += sheet.getRowHeight(i);\r\n }\r\n allRowsTotalHeight += sheet.getRowHeight(0, GC.Spread.Sheets.SheetArea.colHeader);\r\n for (let i = config.col; i < config.col + config.colCount; i++) {\r\n allRowsTotalWidth += sheet.getColumnWidth(i);\r\n }\r\n for (let i = 0; i < config.col; i++) {\r\n allRowsTotalLeft += sheet.getColumnWidth(i);\r\n }\r\n allRowsTotalLeft += sheet.getColumnWidth(0, GC.Spread.Sheets.SheetArea.rowHeader);\r\n for (let i = config.row; i < config.row + config.rowCount; i++) {\r\n chartCellHeight += sheet.getRowHeight(i);\r\n }\r\n\r\n // 设置浮动对象的呈现位置(实际情况根据需要进行调整)\r\n const fObjPosition = {\r\n x: allRowsTotalLeft - 40 + 2,\r\n y: allRowsTotalHeight - 20 + 2,\r\n w: allRowsTotalWidth - 6,\r\n h: chartCellHeight - 6,\r\n };\r\n\r\n // 获取浮动对象\r\n let fcObj = sheet.floatingObjects.get(config.chartId);\r\n\r\n // 浮动对象不存在时\r\n if (fcObj == null || fcObj == undefined) {\r\n // 创建浮动对象\r\n fcObj = new GC.Spread.Sheets.FloatingObjects.FloatingObject(config.chartId, fObjPosition.x, fObjPosition.y, fObjPosition.w, fObjPosition.h);\r\n\r\n // 不允许改变大小、不允许拖动\r\n fcObj.allowResize(false);\r\n fcObj.allowMove(false);\r\n\r\n // 将浮动对象添加到表单\r\n sheet.floatingObjects.add(fcObj);\r\n }\r\n // 浮动对象存在时\r\n else {\r\n fcObj.x(fObjPosition.x);\r\n fcObj.y(fObjPosition.y);\r\n fcObj.width(fObjPosition.w);\r\n fcObj.height(fObjPosition.h);\r\n }\r\n\r\n // 设置浮动对象的内容为divObj(当document.getElementById(config.chartId + '_ec')为null的时候)\r\n if (document.getElementById(config.chartId + '_ec') == null) {\r\n // 创建用于放置ECharts的div容器\r\n const divObj = document.createElement('div');\r\n divObj.setAttribute('style', `background-color:#fff;width:100%;height:100%;`);\r\n divObj.innerHTML = `<div id=\"${config.chartId}_ec\" style=\"width:100%;height:100%;\"></div>`;\r\n\r\n fcObj.content(divObj);\r\n }\r\n\r\n // 定义ECharts对象\r\n let ecObj: echarts.ECharts | null = null;\r\n\r\n // 获取ECharts对象的函数(这里使用到了Promise和setTimeout,原因是:ECharts所在的div可能还没有及时在浮动元素中渲染完成,导致ECharts展示部出来)\r\n const getEcObj = (): any => {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n // 初始化图表并获取ECharts对象\r\n resolve({ ecObj: EChartsUtils.initChart(spread, sheet, config, isHideChart, isConsoleData) });\r\n }, 10);\r\n });\r\n };\r\n ecObj = (await getEcObj()).ecObj;\r\n\r\n return {\r\n fObj: fcObj,\r\n fObjPosition: fObjPosition,\r\n ecObj: ecObj,\r\n };\r\n },\r\n\r\n /**\r\n * 初始化图表\r\n * @param spread 工作簿对象\r\n * @param sheet 工作表对象\r\n * @param config 图表配置\r\n * @param isHideChart 是否隐藏图表\r\n * @param isConsoleData 是否输出各个数据\r\n */\r\n initChart: (\r\n spread: any,\r\n sheet: any,\r\n config: EChartsUtilsConfigModel,\r\n isHideChart: boolean = false,\r\n isConsoleData: boolean = false,\r\n ): echarts.ECharts => {\r\n // 此时可能ECharts所在的div还没有渲染(如浮动元素还没有在可视区域的时候是不会创建的)\r\n if (document.getElementById(config.chartId + '_ec') == null) {\r\n return null;\r\n }\r\n\r\n // 获取多条x轴的数组(类似[[1,2,3,4],[1,2,3,4]])\r\n let xDataArr: any = [],\r\n yDataArr: any = [];\r\n\r\n // 获取多条x轴的数组(单元格原始数据,类似[['1.0','2.0','3.0'],['1.0','2.0','3.0']],此数据可能在有些情况下需要使用原始数据,如:原始数据为字符串的1.0,可能需要在x轴显示为1.0这个字符文本)\r\n let xDataArrSource: any = [],\r\n yDataArrSource: any = [];\r\n\r\n /**\r\n * 获取x或y轴单元格的值集合\r\n * @param spread 工作簿对象\r\n * @param sheet 工作表对象\r\n * @param sheetName x轴或y轴数据所在的Sheet名称,如果没有值,则说明是当前操作的Sheet\r\n * @param cells 单元格集合\r\n * @returns 返回x或y轴数据的值集合\r\n */\r\n const getCellVals = (\r\n spread: any,\r\n sheet: any,\r\n sheetName?: string,\r\n cells?: CellModel[],\r\n ): {\r\n dataOneArr: any[];\r\n dataOneSourceArr: any[];\r\n } => {\r\n let retArr: {\r\n dataOneArr: any[];\r\n dataOneSourceArr: any[];\r\n } = {\r\n dataOneArr: [],\r\n dataOneSourceArr: [],\r\n };\r\n\r\n // 获取x或y轴数据所在的Sheet对象(如果sheetName有值,则说明是跨Sheet的)\r\n let curSheet: any = null;\r\n if (sheetName != null && sheetName != undefined && sheetName.length > 0) {\r\n curSheet = spread.getSheetFromName(sheetName);\r\n }\r\n\r\n cells?.forEach((itemCell, indexCell) => {\r\n // 如果单元格的值为数字,就转换为数字,否则在后期参与各个ECharts图表计算的时候会出错\r\n const curCellVal = curSheet != null ? curSheet.getValue(itemCell.row, itemCell.col) : sheet.getValue(itemCell.row, itemCell.col);\r\n retArr.dataOneSourceArr.push(curCellVal);\r\n\r\n // 严格的数字验证(包括科学计数法)\r\n if (/^-?\\d+(\\.\\d+)?([eE][+-]?\\d+)?$/.test(curCellVal)) {\r\n retArr.dataOneArr.push(Number(curCellVal));\r\n } else {\r\n retArr.dataOneArr.push(\r\n curCellVal == null || (curCellVal != null && curCellVal != undefined && curCellVal._error != null && curCellVal._error != undefined)\r\n ? 0\r\n : curCellVal,\r\n );\r\n }\r\n });\r\n\r\n return retArr;\r\n };\r\n\r\n let lineData: EChartsUtilsChartLinesJsonModel[] = JSON.parse(config.chartLinesJson);\r\n lineData.forEach((item, index) => {\r\n let xDataOne: any = [],\r\n yDataOne: any = [];\r\n let xDataOneSource: any = [],\r\n yDataOneSource: any = [];\r\n\r\n const curItemValsX = getCellVals(spread, sheet, item.sheetNameX, item.xCells);\r\n xDataOne = curItemValsX.dataOneArr;\r\n xDataOneSource = curItemValsX.dataOneSourceArr;\r\n const curItemValsY = getCellVals(spread, sheet, item.sheetNameY, item.yCells);\r\n yDataOne = curItemValsY.dataOneArr;\r\n yDataOneSource = curItemValsY.dataOneSourceArr;\r\n\r\n xDataArr.push(xDataOne);\r\n yDataArr.push(yDataOne);\r\n xDataArrSource.push(xDataOneSource);\r\n yDataArrSource.push(yDataOneSource);\r\n });\r\n\r\n // 获取ECharts图表所在div容器\r\n const ecDom = document.getElementById(config.chartId + '_ec') as HTMLElement;\r\n\r\n // 获取ECharts对象\r\n let ecObj = echarts.getInstanceByDom(ecDom);\r\n if (ecObj == null || ecObj == undefined) {\r\n ecObj = echarts.init(ecDom, null, {\r\n renderer: 'canvas',\r\n useDirtyRect: false,\r\n });\r\n }\r\n\r\n if (isConsoleData) {\r\n console.log('config:', config);\r\n console.log('xDataArr:', xDataArr);\r\n console.log('yDataArr:', yDataArr);\r\n }\r\n\r\n let option, ext;\r\n\r\n if (config.chartType == 10) {\r\n option = EChartsUtilsAll.chart10(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 11) {\r\n option = EChartsUtilsAll.chart11(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 12) {\r\n option = EChartsUtilsAll.chart12(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 13) {\r\n option = EChartsUtilsAll.chart13(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 14) {\r\n option = EChartsUtilsAll.chart14(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 15) {\r\n option = EChartsUtilsAll.chart15(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 16) {\r\n option = EChartsUtilsAll.chart16(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 30) {\r\n option = EChartsUtilsAll.chart30(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 50) {\r\n option = EChartsUtilsAll.chart50(config, xDataArr, yDataArr);\r\n } else if (config.chartType == 70) {\r\n option = EChartsUtilsAll.chart70(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 90) {\r\n option = EChartsUtilsAll.chart90(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 110) {\r\n option = EChartsUtilsAll.chart110(config, xDataArr, yDataArr, xDataArrSource, yDataArrSource);\r\n } else if (config.chartType == 130) {\r\n option = EChartsUtilsAll.chart130(config, xDataArr, yDataArr);\r\n } else if (config.chartType == 150) {\r\n option = EChartsUtilsAll.chart150(config, xDataArr, yDataArr);\r\n } else if (config.chartType == 170) {\r\n option = EChartsUtilsAll.chart170(config, xDataArr, yDataArr);\r\n } else if (config.chartType == 190) {\r\n option = EChartsUtilsAll.chart190(config, xDataArr, yDataArr);\r\n } else if (config.chartType == 210) {\r\n option = EChartsUtilsAll.chart210(config, xDataArr, yDataArr);\r\n } else if (config.chartType == 230) {\r\n option = EChartsUtilsAll.chart230(config, xDataArr, yDataArr);\r\n } else if (config.chartType == 250) {\r\n option = EChartsUtilsAll.chart250(config, xDataArr, yDataArr);\r\n } else if (config.chartType == 270) {\r\n option = EChartsUtilsAll.chart270(config, xDataArr, yDataArr);\r\n } else if (config.chartType == 279 || config.chartType == 280 || config.chartType == 281) {\r\n option = EChartsUtilsAll.chart279_280_281(config, xDataArr, yDataArr);\r\n } else if (config.chartType == 290) {\r\n option = EChartsUtilsAll.chart290(config, xDataArr, yDataArr);\r\n } else if (config.chartType == 310) {\r\n option = EChartsUtilsAll.chart310(config, xDataArr, yDataArr);\r\n } else if (config.chartType == 330) {\r\n option = EChartsUtilsAll.chart330(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 350) {\r\n const allOpts = EChartsUtilsAll.chart350(config, xDataArr, yDataArr, sheet);\r\n\r\n option = allOpts.option;\r\n ext = allOpts.ext;\r\n } else if (config.chartType == 370) {\r\n option = EChartsUtilsAll.chart370(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 390) {\r\n option = EChartsUtilsAll.chart390(config, xDataArr, yDataArr);\r\n } else if (config.chartType == 410) {\r\n option = EChartsUtilsAll.chart410(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 430) {\r\n option = EChartsUtilsAll.chart430(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 450) {\r\n option = EChartsUtilsAll.chart450(config, xDataArr, yDataArr);\r\n } else if (config.chartType == 470) {\r\n option = EChartsUtilsAll.chart470(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 490) {\r\n option = EChartsUtilsAll.chart490(config, xDataArr, yDataArr, sheet);\r\n } else if (config.chartType == 510) {\r\n option = EChartsUtilsAll.chart510(config, xDataArr, yDataArr, sheet);\r\n }\r\n\r\n if (option && typeof option === 'object') {\r\n //如果是隐藏的图表,则需要禁用ECharts的动画效果\r\n //原因是:如果ECharts使用了动画效果,图表渲染完成可能需要0.5秒,但是在导出ECharts统计图为图片的场景下时,可能在图表还没有渲染完成(动画效果还没结束)前就要获取图像了,此时可能就会造成获取到的图像内容丢失的情况\r\n if (isHideChart) {\r\n option.animation = false;\r\n }\r\n\r\n ecObj.setOption(option);\r\n }\r\n\r\n ecObj.setOption(option);\r\n\r\n if (config.chartType == 350) {\r\n /* ==========================================================\r\n 6. X 轴刻度文字(graphic 精确定位)\r\n ========================================================== */\r\n setTimeout(function () {\r\n var graphicList = [];\r\n ext.labeledTicks.forEach(function (tick) {\r\n var px = ecObj.convertToPixel({ gridIndex: 0 }, [ext.LOG(tick), ext.yMin]);\r\n if (!isNaN(px[1] + 12)) {\r\n graphicList.push({\r\n type: 'text',\r\n bottom: 20,\r\n x: px[0],\r\n y: px[1] + 12,\r\n style: {\r\n text: String(tick),\r\n fontSize: 12,\r\n fill: '#333',\r\n textAlign: 'center',\r\n textVerticalAlign: 'top',\r\n },\r\n silent: true,\r\n });\r\n }\r\n });\r\n ecObj.setOption({ graphic: graphicList });\r\n }, 120);\r\n }\r\n\r\n return ecObj;\r\n },\r\n\r\n /**\r\n * 获取ECharts对象\r\n * @param chartId 图表ID\r\n * @returns 返回ECharts对象,如果不存在则返回null\r\n */\r\n getEChartsObj: (chartId: string): echarts.ECharts | null => {\r\n // 获取ECharts图表所在div容器\r\n const ecDom = document.getElementById(chartId + '_ec') as HTMLElement;\r\n\r\n // 获取ECharts对象\r\n let ecObj = echarts.getInstanceByDom(ecDom);\r\n if (ecObj == null || ecObj == undefined) {\r\n return null;\r\n }\r\n\r\n return ecObj;\r\n },\r\n};\r\n","/**\r\n * 其他自定义公式\r\n * 此文件用于放置其他自定义公式,如:YJHTQD(此公式代码较多)\r\n */\r\nexport const FormulaUtilsOther = {\r\n /**\r\n * 回弹强度换算查表\r\n * @param forComm commFormula.ts中的CommFormula.commFun对象\r\n * @param jzfs 浇筑方式\r\n * @param xzhhtz 修正后回弹值\r\n * @param thsd 碳化深度\r\n */\r\n YJHTQD: (forComm, jzfs, xzhhtz, thsd) => {\r\n var qdhsz; //最后输出的强度换算值\r\n if (jzfs == '非泵送混凝土') {\r\n var sd_value_po = ''; //角度所在数组位置;\r\n var sd_value = thsd; // 碳化深度\r\n var ht = xzhhtz; // 回弹平均值\r\n //平均碳化深度值arr_sd\r\n var arr_sd = new Array('0.0', '0.5', '1.0', '1.5', '2.0', '2.5', '3.0', '3.5', '4.0', '4.5', '5.0', '5.5', '6.0');\r\n for (var i = 0; i < arr_sd.length; i++) {\r\n if (sd_value == arr_sd[i]) {\r\n //角度 碳化深度的值\r\n sd_value_po = i; //角度所在数组位置;\r\n break;\r\n } else if (sd_value * 1 > '6') {\r\n sd_value_po = arr_sd.length - 1;\r\n break;\r\n }\r\n }\r\n\r\n var t0_0 = [\r\n { x: 20.0, y: 10.3 },\r\n { x: 20.2, y: 10.5 },\r\n { x: 20.4, y: 10.7 },\r\n { x: 20.6, y: 11.0 },\r\n { x: 20.8, y: 11.2 },\r\n { x: 21.0, y: 11.4 },\r\n { x: 21.2, y: 11.6 },\r\n { x: 21.4, y: 11.8 },\r\n { x: 21.6, y: 12.0 },\r\n { x: 21.8, y: 12.3 },\r\n { x: 22.0, y: 12.5 },\r\n { x: 22.2, y: 12.7 },\r\n { x: 22.4, y: 13 },\r\n { x: 22.6, y: 13.2 },\r\n { x: 22.8, y: 13.4 },\r\n { x: 23.0, y: 13.7 },\r\n { x: 23.2, y: 13.9 },\r\n { x: 23.4, y: 14.1 },\r\n { x: 23.6, y: 14.4 },\r\n { x: 23.8, y: 14.6 },\r\n { x: 24.0, y: 14.9 },\r\n { x: 24.2, y: 15.1 },\r\n { x: 24.4, y: 15.4 },\r\n { x: 24.6, y: 15.6 },\r\n { x: 24.8, y: 15.9 },\r\n { x: 25.0, y: 16.2 },\r\n { x: 25.2, y: 16.4 },\r\n { x: 25.4, y: 16.7 },\r\n { x: 25.6, y: 16.9 },\r\n { x: 25.8, y: 17.2 },\r\n { x: 26, y: 17.5 },\r\n { x: 26.2, y: 17.8 },\r\n { x: 26.4, y: 18.0 },\r\n { x: 26.6, y: 18.3 },\r\n { x: 26.8, y: 18.6 },\r\n { x: 27, y: 18.9 },\r\n { x: 27.2, y: 19.1 },\r\n { x: 27.4, y: 19.4 },\r\n { x: 27.6, y: 19.7 },\r\n { x: 27.8, y: 20 },\r\n { x: 28.0, y: 20.3 },\r\n { x: 28.2, y: 20.6 },\r\n { x: 28.4, y: 20.9 },\r\n { x: 28.6, y: 21.2 },\r\n { x: 28.8, y: 21.5 },\r\n { x: 29, y: 21.8 },\r\n { x: 29.2, y: 22.1 },\r\n { x: 29.4, y: 22.4 },\r\n { x: 29.6, y: 22.7 },\r\n { x: 29.8, y: 23 },\r\n { x: 30, y: 23.3 },\r\n { x: 30.2, y: 23.6 },\r\n { x: 30.4, y: 23.9 },\r\n { x: 30.6, y: 24.3 },\r\n { x: 30.8, y: 24.6 },\r\n { x: 31, y: 24.9 },\r\n { x: 31.2, y: 25.2 },\r\n { x: 31.4, y: 25.6 },\r\n { x: 31.6, y: 25.9 },\r\n { x: 31.8, y: 26.2 },\r\n { x: 32, y: 26.5 },\r\n { x: 32.2, y: 26.9 },\r\n { x: 32.4, y: 27.2 },\r\n { x: 32.6, y: 27.6 },\r\n { x: 32.8, y: 27.9 },\r\n { x: 33, y: 28.2 },\r\n { x: 33.2, y: 28.6 },\r\n { x: 33.4, y: 28.9 },\r\n { x: 33.6, y: 29.3 },\r\n { x: 33.8, y: 29.6 },\r\n { x: 34, y: 30 },\r\n { x: 34.2, y: 30.3 },\r\n { x: 34.4, y: 30.7 },\r\n { x: 34.6, y: 31.1 },\r\n { x: 34.8, y: 31.4 },\r\n { x: 35, y: 31.8 },\r\n { x: 35.2, y: 32.1 },\r\n { x: 35.4, y: 32.5 },\r\n { x: 35.6, y: 32.9 },\r\n { x: 35.8, y: 33.3 },\r\n { x: 36, y: 33.6 },\r\n { x: 36.2, y: 34 },\r\n { x: 36.4, y: 34.4 },\r\n { x: 36.6, y: 34.8 },\r\n { x: 36.8, y: 35.2 },\r\n { x: 37, y: 35.5 },\r\n { x: 37.2, y: 35.9 },\r\n { x: 37.4, y: 36.3 },\r\n { x: 37.6, y: 36.7 },\r\n { x: 37.8, y: 37.1 },\r\n { x: 38, y: 37.5 },\r\n { x: 38.2, y: 37.9 },\r\n { x: 38.4, y: 38.3 },\r\n { x: 38.6, y: 38.7 },\r\n { x: 38.8, y: 39.1 },\r\n { x: 39.0, y: 39.5 },\r\n { x: 39.2, y: 39.9 },\r\n { x: 39.4, y: 40.3 },\r\n { x: 39.6, y: 40.7 },\r\n { x: 39.8, y: 41.2 },\r\n { x: 40.0, y: 41.6 },\r\n { x: 40.2, y: 42 },\r\n { x: 40.4, y: 42.4 },\r\n { x: 40.6, y: 42.8 },\r\n { x: 40.8, y: 43.3 },\r\n { x: 41, y: 43.7 },\r\n { x: 41.2, y: 44.1 },\r\n { x: 41.4, y: 44.5 },\r\n { x: 41.6, y: 45 },\r\n { x: 41.8, y: 45.4 },\r\n { x: 42, y: 45.9 },\r\n { x: 42.2, y: 46.3 },\r\n { x: 42.4, y: 46.7 },\r\n { x: 42.6, y: 47.2 },\r\n { x: 42.8, y: 47.6 },\r\n { x: 43, y: 48.1 },\r\n { x: 43.2, y: 48.5 },\r\n { x: 43.4, y: 49.0 },\r\n { x: 43.6, y: 49.4 },\r\n { x: 43.8, y: 49.9 },\r\n { x: 44.0, y: 50.4 },\r\n { x: 44.2, y: 50.8 },\r\n { x: 44.4, y: 51.3 },\r\n { x: 44.6, y: 51.7 },\r\n { x: 44.8, y: 52.2 },\r\n { x: 45.0, y: 52.7 },\r\n { x: 45.2, y: 53.2 },\r\n { x: 45.4, y: 53.6 },\r\n { x: 45.6, y: 54.1 },\r\n { x: 45.8, y: 54.6 },\r\n { x: 46.0, y: 55 },\r\n { x: 46.2, y: 55.5 },\r\n { x: 46.4, y: 56.0 },\r\n { x: 46.6, y: 56.5 },\r\n { x: 46.8, y: 57 },\r\n { x: 47.0, y: 57.5 },\r\n { x: 47.2, y: 58 },\r\n { x: 47.4, y: 58.5 },\r\n { x: 47.6, y: 59 },\r\n { x: 47.8, y: 59.5 },\r\n { x: 48, y: 60 },\r\n ];\r\n var t0_5 = [\r\n { x: 20.0, y: 10.1 },\r\n { x: 20.2, y: 10.3 },\r\n { x: 20.4, y: 10.5 },\r\n { x: 20.6, y: 10.8 },\r\n { x: 20.8, y: 11.0 },\r\n { x: 21.0, y: 11.2 },\r\n { x: 21.2, y: 11.4 },\r\n { x: 21.4, y: 11.6 },\r\n { x: 21.6, y: 11.8 },\r\n { x: 21.8, y: 12.1 },\r\n { x: 22.0, y: 12.2 },\r\n { x: 22.2, y: 12.4 },\r\n { x: 22.4, y: 12.7 },\r\n { x: 22.6, y: 12.9 },\r\n { x: 22.8, y: 13.1 },\r\n { x: 23.0, y: 13.4 },\r\n { x: 23.2, y: 13.6 },\r\n { x: 23.4, y: 13.8 },\r\n { x: 23.6, y: 14.1 },\r\n { x: 23.8, y: 14.3 },\r\n { x: 24.0, y: 14.6 },\r\n { x: 24.2, y: 14.8 },\r\n { x: 24.4, y: 15.1 },\r\n { x: 24.6, y: 15.3 },\r\n { x: 24.8, y: 15.6 },\r\n { x: 25.0, y: 15.9 },\r\n { x: 25.2, y: 16.1 },\r\n { x: 25.4, y: 16.4 },\r\n { x: 25.6, y: 16.6 },\r\n { x: 25.8, y: 16.9 },\r\n { x: 26, y: 17.2 },\r\n { x: 26.2, y: 17.4 },\r\n { x: 26.4, y: 17.6 },\r\n { x: 26.6, y: 17.9 },\r\n { x: 26.8, y: 18.2 },\r\n { x: 27, y: 18.5 },\r\n { x: 27.2, y: 18.7 },\r\n { x: 27.4, y: 19.0 },\r\n { x: 27.6, y: 19.3 },\r\n { x: 27.8, y: 19.6 },\r\n { x: 28.0, y: 19.7 },\r\n { x: 28.2, y: 20 },\r\n { x: 28.4, y: 20.3 },\r\n { x: 28.6, y: 20.6 },\r\n { x: 28.8, y: 20.9 },\r\n { x: 29, y: 21.1 },\r\n { x: 29.2, y: 21.4 },\r\n { x: 29.4, y: 21.7 },\r\n { x: 29.6, y: 22 },\r\n { x: 29.8, y: 22.3 },\r\n { x: 30, y: 22.6 },\r\n { x: 30.2, y: 22.9 },\r\n { x: 30.4, y: 23.2 },\r\n { x: 30.6, y: 23.6 },\r\n { x: 30.8, y: 23.9 },\r\n { x: 31, y: 24.2 },\r\n { x: 31.2, y: 24.4 },\r\n { x: 31.4, y: 24.8 },\r\n { x: 31.6, y: 25.1 },\r\n { x: 31.8, y: 25.4 },\r\n { x: 32, y: 25.7 },\r\n { x: 32.2, y: 26.1 },\r\n { x: 32.4, y: 26.4 },\r\n { x: 32.6, y: 26.8 },\r\n { x: 32.8, y: 27.1 },\r\n { x: 33, y: 27.4 },\r\n { x: 33.2, y: 27.7 },\r\n { x: 33.4, y: 28 },\r\n { x: 33.6, y: 28.4 },\r\n { x: 33.8, y: 28.7 },\r\n { x: 34, y: 29.1 },\r\n { x: 34.2, y: 29.4 },\r\n { x: 34.4, y: 29.8 },\r\n { x: 34.6, y: 30.2 },\r\n { x: 34.8, y: 30.5 },\r\n { x: 35, y: 30.8 },\r\n { x: 35.2, y: 31.1 },\r\n { x: 35.4, y: 31.5 },\r\n { x: 35.6, y: 31.9 },\r\n { x: 35.8, y: 32.3 },\r\n { x: 36, y: 32.6 },\r\n { x: 36.2, y: 33 },\r\n { x: 36.4, y: 33.4 },\r\n { x: 36.6, y: 33.8 },\r\n { x: 36.8, y: 34.1 },\r\n { x: 37, y: 34.4 },\r\n { x: 37.2, y: 34.8 },\r\n { x: 37.4, y: 35.2 },\r\n { x: 37.6, y: 35.6 },\r\n { x: 37.8, y: 36 },\r\n { x: 38, y: 36.4 },\r\n { x: 38.2, y: 36.8 },\r\n { x: 38.4, y: 37.2 },\r\n { x: 38.6, y: 37.5 },\r\n { x: 38.8, y: 37.9 },\r\n { x: 39.0, y: 38.2 },\r\n { x: 39.2, y: 38.5 },\r\n { x: 39.4, y: 38.8 },\r\n { x: 39.6, y: 39.1 },\r\n { x: 39.8, y: 39.6 },\r\n { x: 40.0, y: 39.9 },\r\n { x: 40.2, y: 40.3 },\r\n { x: 40.4, y: 40.7 },\r\n { x: 40.6, y: 41.1 },\r\n { x: 40.8, y: 41.6 },\r\n { x: 41, y: 42 },\r\n { x: 41.2, y: 42.3 },\r\n { x: 41.4, y: 42.7 },\r\n { x: 41.6, y: 43.2 },\r\n { x: 41.8, y: 43.6 },\r\n { x: 42, y: 44.1 },\r\n { x: 42.2, y: 44.4 },\r\n { x: 42.4, y: 44.8 },\r\n { x: 42.6, y: 45.3 },\r\n { x: 42.8, y: 45.7 },\r\n { x: 43, y: 46.2 },\r\n { x: 43.2, y: 46.6 },\r\n { x: 43.4, y: 47 },\r\n { x: 43.6, y: 47.4 },\r\n { x: 43.8, y: 47.9 },\r\n { x: 44.0, y: 48.4 },\r\n { x: 44.2, y: 48.8 },\r\n { x: 44.4, y: 49.2 },\r\n { x: 44.6, y: 49.6 },\r\n { x: 44.8, y: 50.1 },\r\n { x: 45.0, y: 50.6 },\r\n { x: 45.2, y: 51.1 },\r\n { x: 45.4, y: 51.5 },\r\n { x: 45.6, y: 51.9 },\r\n { x: 45.8, y: 52.4 },\r\n { x: 46.0, y: 52.8 },\r\n { x: 46.2, y: 53.3 },\r\n { x: 46.4, y: 53.8 },\r\n { x: 46.6, y: 54.2 },\r\n { x: 46.8, y: 54.7 },\r\n { x: 47.0, y: 55.2 },\r\n { x: 47.2, y: 55.7 },\r\n { x: 47.4, y: 56.2 },\r\n { x: 47.6, y: 56.6 },\r\n { x: 47.8, y: 57.1 },\r\n { x: 48, y: 57.6 },\r\n { x: 48.2, y: 58 },\r\n { x: 48.4, y: 58.6 },\r\n { x: 48.6, y: 59 },\r\n { x: 48.8, y: 59.5 },\r\n { x: 49, y: 60 },\r\n ];\r\n var t1_0 = [\r\n { x: 20.2, y: 10.0 },\r\n { x: 20.4, y: 10.2 },\r\n { x: 20.6, y: 10.4 },\r\n { x: 20.8, y: 10.6 },\r\n { x: 21.0, y: 10.8 },\r\n { x: 21.2, y: 11.0 },\r\n { x: 21.4, y: 11.2 },\r\n { x: 21.6, y: 11.4 },\r\n { x: 21.8, y: 11.7 },\r\n { x: 22.0, y: 11.9 },\r\n { x: 22.2, y: 12.1 },\r\n { x: 22.4, y: 12.4 },\r\n { x: 22.6, y: 12.5 },\r\n { x: 22.8, y: 12.7 },\r\n { x: 23.0, y: 13.0 },\r\n { x: 23.2, y: 13.2 },\r\n { x: 23.4, y: 13.4 },\r\n { x: 23.6, y: 13.7 },\r\n { x: 23.8, y: 13.9 },\r\n { x: 24.0, y: 14.2 },\r\n { x: 24.2, y: 14.3 },\r\n { x: 24.4, y: 14.6 },\r\n { x: 24.6, y: 14.8 },\r\n { x: 24.8, y: 15.1 },\r\n { x: 25.0, y: 15.4 },\r\n { x: 25.2, y: 15.6 },\r\n { x: 25.4, y: 15.9 },\r\n { x: 25.6, y: 16.1 },\r\n { x: 25.8, y: 16.3 },\r\n { x: 26, y: 16.6 },\r\n { x: 26.2, y: 16.9 },\r\n { x: 26.4, y: 17.1 },\r\n { x: 26.6, y: 17.4 },\r\n { x: 26.8, y: 17.7 },\r\n { x: 27, y: 18.0 },\r\n { x: 27.2, y: 18.1 },\r\n { x: 27.4, y: 18.4 },\r\n { x: 27.6, y: 18.7 },\r\n { x: 27.8, y: 19.0 },\r\n { x: 28.0, y: 19.2 },\r\n { x: 28.2, y: 19.5 },\r\n { x: 28.4, y: 19.7 },\r\n { x: 28.6, y: 20 },\r\n { x: 28.8, y: 20.0 },\r\n { x: 29, y: 20.5 },\r\n { x: 29.2, y: 20.8 },\r\n { x: 29.4, y: 21.1 },\r\n { x: 29.6, y: 21.3 },\r\n { x: 29.8, y: 21.6 },\r\n { x: 30, y: 21.9 },\r\n { x: 30.2, y: 22.2 },\r\n { x: 30.4, y: 22.5 },\r\n { x: 30.6, y: 22.8 },\r\n { x: 30.8, y: 23.1 },\r\n { x: 31, y: 23.4 },\r\n { x: 31.2, y: 23.7 },\r\n { x: 31.4, y: 24.1 },\r\n { x: 31.6, y: 24.3 },\r\n { x: 31.8, y: 24.6 },\r\n { x: 32, y: 24.9 },\r\n { x: 32.2, y: 25.3 },\r\n { x: 32.4, y: 25.6 },\r\n { x: 32.6, y: 25.9 },\r\n { x: 32.8, y: 26.2 },\r\n { x: 33, y: 26.5 },\r\n { x: 33.2, y: 26.8 },\r\n { x: 33.4, y: 27.1 },\r\n { x: 33.6, y: 27.4 },\r\n { x: 33.8, y: 27.7 },\r\n { x: 34, y: 28 },\r\n { x: 34.2, y: 28.3 },\r\n { x: 34.4, y: 28.6 },\r\n { x: 34.6, y: 28.9 },\r\n { x: 34.8, y: 29.2 },\r\n { x: 35, y: 29.6 },\r\n { x: 35.2, y: 29.9 },\r\n { x: 35.4, y: 30.2 },\r\n { x: 35.6, y: 30.6 },\r\n { x: 35.8, y: 31 },\r\n { x: 36, y: 31.2 },\r\n { x: 36.2, y: 31.6 },\r\n { x: 36.4, y: 32 },\r\n { x: 36.6, y: 32.4 },\r\n { x: 36.8, y: 32.7 },\r\n { x: 37, y: 33 },\r\n { x: 37.2, y: 33.4 },\r\n { x: 37.4, y: 33.8 },\r\n { x: 37.6, y: 34.1 },\r\n { x: 37.8, y: 34.5 },\r\n { x: 38, y: 34.9 },\r\n { x: 38.2, y: 35.2 },\r\n { x: 38.4, y: 35.6 },\r\n { x: 38.6, y: 36.0 },\r\n { x: 38.8, y: 36.4 },\r\n { x: 39.0, y: 36.7 },\r\n { x: 39.2, y: 37 },\r\n { x: 39.4, y: 37.3 },\r\n { x: 39.6, y: 37.6 },\r\n { x: 39.8, y: 38 },\r\n { x: 40.0, y: 38.3 },\r\n { x: 40.2, y: 38.6 },\r\n { x: 40.4, y: 39 },\r\n { x: 40.6, y: 39.4 },\r\n { x: 40.8, y: 39.8 },\r\n { x: 41, y: 40.2 },\r\n { x: 41.2, y: 40.6 },\r\n { x: 41.4, y: 40.9 },\r\n { x: 41.6, y: 41.4 },\r\n { x: 41.8, y: 41.8 },\r\n { x: 42, y: 42.2 },\r\n { x: 42.2, y: 42.6 },\r\n { x: 42.4, y: 43 },\r\n { x: 42.6, y: 43.4 },\r\n { x: 42.8, y: 43.8 },\r\n { x: 43, y: 44.2 },\r\n { x: 43.2, y: 44.6 },\r\n { x: 43.4, y: 45.1 },\r\n { x: 43.6, y: 45.4 },\r\n { x: 43.8, y: 45.9 },\r\n { x: 44.0, y: 46.4 },\r\n { x: 44.2, y: 46.7 },\r\n { x: 44.4, y: 47.2 },\r\n { x: 44.6, y: 47.6 },\r\n { x: 44.8, y: 48 },\r\n { x: 45.0, y: 48.5 },\r\n { x: 45.2, y: 48.9 },\r\n { x: 45.4, y: 49.4 },\r\n { x: 45.6, y: 49.8 },\r\n { x: 45.8, y: 50.2 },\r\n { x: 46.0, y: 50.6 },\r\n { x: 46.2, y: 51.1 },\r\n { x: 46.4, y: 51.5 },\r\n { x: 46.6, y: 52 },\r\n { x: 46.8, y: 52.4 },\r\n { x: 47.0, y: 52.9 },\r\n { x: 47.2, y: 53.4 },\r\n { x: 47.4, y: 53.8 },\r\n { x: 47.6, y: 54.3 },\r\n { x: 47.8, y: 54.7 },\r\n { x: 48, y: 55.2 },\r\n { x: 48.2, y: 55.7 },\r\n { x: 48.4, y: 56.1 },\r\n { x: 48.6, y: 56.6 },\r\n { x: 48.8, y: 57.1 },\r\n { x: 49, y: 57.5 },\r\n { x: 49.2, y: 58 },\r\n { x: 49.4, y: 58.5 },\r\n { x: 49.6, y: 58.9 },\r\n { x: 49.8, y: 59.4 },\r\n { x: 50, y: 59.9 },\r\n { x: 50.2, y: 60 },\r\n ];\r\n var t1_5 = [\r\n { x: 20.6, y: 10.1 },\r\n { x: 20.8, y: 10.3 },\r\n { x: 21.0, y: 10.5 },\r\n { x: 21.2, y: 10.7 },\r\n { x: 21.4, y: 10.9 },\r\n { x: 21.6, y: 11.0 },\r\n { x: 21.8, y: 11.3 },\r\n { x: 22.0, y: 11.5 },\r\n { x: 22.2, y: 11.7 },\r\n { x: 22.4, y: 12.0 },\r\n { x: 22.6, y: 12.1 },\r\n { x: 22.8, y: 12.3 },\r\n { x: 23.0, y: 12.6 },\r\n { x: 23.2, y: 12.8 },\r\n { x: 23.4, y: 13.0 },\r\n { x: 23.6, y: 13.2 },\r\n { x: 23.8, y: 13.4 },\r\n { x: 24.0, y: 13.7 },\r\n { x: 24.2, y: 13.9 },\r\n { x: 24.4, y: 14.2 },\r\n { x: 24.6, y: 14.4 },\r\n { x: 24.8, y: 14.6 },\r\n { x: 25.0, y: 14.9 },\r\n { x: 25.2, y: 15.1 },\r\n { x: 25.4, y: 15.4 },\r\n { x: 25.6, y: 15.7 },\r\n { x: 25.8, y: 15.8 },\r\n { x: 26, y: 16.1 },\r\n { x: 26.2, y: 16.4 },\r\n { x: 26.4, y: 16.6 },\r\n { x: 26.6, y: 16.8 },\r\n { x: 26.8, y: 17.1 },\r\n { x: 27, y: 17.4 },\r\n { x: 27.2, y: 17.6 },\r\n { x: 27.4, y: 17.8 },\r\n { x: 27.6, y: 18 },\r\n { x: 27.8, y: 18.2 },\r\n { x: 28.0, y: 18.4 },\r\n { x: 28.2, y: 18.6 },\r\n { x: 28.4, y: 18.8 },\r\n { x: 28.6, y: 19.1 },\r\n { x: 28.8, y: 19.4 },\r\n { x: 29, y: 19.6 },\r\n { x: 29.2, y: 19.9 },\r\n { x: 29.4, y: 20.2 },\r\n { x: 29.6, y: 20.4 },\r\n { x: 29.8, y: 20.7 },\r\n { x: 30, y: 21 },\r\n { x: 30.2, y: 21.2 },\r\n { x: 30.4, y: 21.5 },\r\n { x: 30.6, y: 21.9 },\r\n { x: 30.8, y: 22.1 },\r\n { x: 31, y: 22.4 },\r\n { x: 31.2, y: 22.7 },\r\n { x: 31.4, y: 23 },\r\n { x: 31.6, y: 23.3 },\r\n { x: 31.8, y: 23.6 },\r\n { x: 32, y: 23.9 },\r\n { x: 32.2, y: 24.2 },\r\n { x: 32.4, y: 24.5 },\r\n { x: 32.6, y: 24.8 },\r\n { x: 32.8, y: 25.1 },\r\n { x: 33, y: 25.4 },\r\n { x: 33.2, y: 25.7 },\r\n { x: 33.4, y: 26 },\r\n { x: 33.6, y: 26.4 },\r\n { x: 33.8, y: 26.6 },\r\n { x: 34, y: 26.8 },\r\n { x: 34.2, y: 27 },\r\n { x: 34.4, y: 27.2 },\r\n { x: 34.6, y: 27.4 },\r\n { x: 34.8, y: 27.6 },\r\n { x: 35, y: 28 },\r\n { x: 35.2, y: 28.2 },\r\n { x: 35.4, y: 28.6 },\r\n { x: 35.6, y: 29 },\r\n { x: 35.8, y: 29.3 },\r\n { x: 36, y: 29.6 },\r\n { x: 36.2, y: 29.9 },\r\n { x: 36.4, y: 30.3 },\r\n { x: 36.6, y: 30.6 },\r\n { x: 36.8, y: 31 },\r\n { x: 37, y: 31.2 },\r\n { x: 37.2, y: 31.6 },\r\n { x: 37.4, y: 31.9 },\r\n { x: 37.6, y: 32.3 },\r\n { x: 37.8, y: 32.6 },\r\n { x: 38, y: 33 },\r\n { x: 38.2, y: 33.4 },\r\n { x: 38.4, y: 33.7 },\r\n { x: 38.6, y: 34.1 },\r\n { x: 38.8, y: 34.4 },\r\n { x: 39.0, y: 34.7 },\r\n { x: 39.2, y: 35 },\r\n { x: 39.4, y: 35.3 },\r\n { x: 39.6, y: 35.6 },\r\n { x: 39.8, y: 35.9 },\r\n { x: 40.0, y: 36.2 },\r\n { x: 40.2, y: 36.5 },\r\n { x: 40.4, y: 36.9 },\r\n { x: 40.6, y: 37.2 },\r\n { x: 40.8, y: 37.7 },\r\n { x: 41, y: 38.0 },\r\n { x: 41.2, y: 38.4 },\r\n { x: 41.4, y: 38.7 },\r\n { x: 41.6, y: 39.2 },\r\n { x: 41.8, y: 39.5 },\r\n { x: 42, y: 39.9 },\r\n { x: 42.2, y: 40.3 },\r\n { x: 42.4, y: 40.6 },\r\n { x: 42.6, y: 41.1 },\r\n { x: 42.8, y: 41.4 },\r\n { x: 43, y: 41.8 },\r\n { x: 43.2, y: 42.2 },\r\n { x: 43.4, y: 42.6 },\r\n { x: 43.6, y: 43 },\r\n { x: 43.8, y: 43.4 },\r\n { x: 44.0, y: 43.8 },\r\n { x: 44.2, y: 44.2 },\r\n { x: 44.4, y: 44.6 },\r\n { x: 44.6, y: 45 },\r\n { x: 44.8, y: 45.4 },\r\n { x: 45.0, y: 45.8 },\r\n { x: 45.2, y: 46.3 },\r\n { x: 45.4, y: 46.6 },\r\n { x: 45.6, y: 47.1 },\r\n { x: 45.8, y: 47.5 },\r\n { x: 46.0, y: 47.9 },\r\n { x: 46.2, y: 48.3 },\r\n { x: 46.4, y: 48.7 },\r\n { x: 46.6, y: 49.2 },\r\n { x: 46.8, y: 49.6 },\r\n { x: 47.0, y: 50.0 },\r\n { x: 47.2, y: 50.5 },\r\n { x: 47.4, y: 50.9 },\r\n { x: 47.6, y: 51.3 },\r\n { x: 47.8, y: 51.8 },\r\n { x: 48, y: 52.2 },\r\n { x: 48.2, y: 52.6 },\r\n { x: 48.4, y: 53.1 },\r\n { x: 48.6, y: 53.5 },\r\n { x: 48.8, y: 54 },\r\n { x: 49, y: 54.4 },\r\n { x: 49.2, y: 54.8 },\r\n { x: 49.4, y: 55.3 },\r\n { x: 49.6, y: 55.7 },\r\n { x: 49.8, y: 56.2 },\r\n { x: 50, y: 56.7 },\r\n { x: 50.2, y: 57.1 },\r\n { x: 50.4, y: 57.6 },\r\n { x: 50.6, y: 58.0 },\r\n { x: 50.8, y: 58.5 },\r\n { x: 51, y: 59 },\r\n { x: 51.2, y: 59.4 },\r\n { x: 51.4, y: 59.9 },\r\n { x: 51.6, y: 60 },\r\n ];\r\n var t2_0 = [\r\n { x: 21.0, y: 10.0 },\r\n { x: 21.2, y: 10.2 },\r\n { x: 21.4, y: 10.4 },\r\n { x: 21.6, y: 10.6 },\r\n { x: 21.8, y: 10.8 },\r\n { x: 22.0, y: 11.0 },\r\n { x: 22.2, y: 11.2 },\r\n { x: 22.4, y: 11.4 },\r\n { x: 22.6, y: 11.6 },\r\n { x: 22.8, y: 11.8 },\r\n { x: 23.0, y: 12.1 },\r\n { x: 23.2, y: 12.2 },\r\n { x: 23.4, y: 12.4 },\r\n { x: 23.6, y: 12.7 },\r\n { x: 23.8, y: 12.8 },\r\n { x: 24.0, y: 13.1 },\r\n { x: 24.2, y: 13.3 },\r\n { x: 24.4, y: 13.6 },\r\n { x: 24.6, y: 13.7 },\r\n { x: 24.8, y: 14.0 },\r\n { x: 25.0, y: 14.3 },\r\n { x: 25.2, y: 14.4 },\r\n { x: 25.4, y: 14.7 },\r\n { x: 25.6, y: 14.9 },\r\n { x: 25.8, y: 15.1 },\r\n { x: 26, y: 15.4 },\r\n { x: 26.2, y: 15.7 },\r\n { x: 26.4, y: 15.8 },\r\n { x: 26.6, y: 16.1 },\r\n { x: 26.8, y: 16.4 },\r\n { x: 27, y: 16.6 },\r\n { x: 27.2, y: 16.8 },\r\n { x: 27.4, y: 17.0 },\r\n { x: 27.6, y: 17.2 },\r\n { x: 27.8, y: 17.4 },\r\n { x: 28.0, y: 17.6 },\r\n { x: 28.2, y: 17.8 },\r\n { x: 28.4, y: 18.0 },\r\n { x: 28.6, y: 18.2 },\r\n { x: 28.8, y: 18.5 },\r\n { x: 29, y: 18.7 },\r\n { x: 29.2, y: 19 },\r\n { x: 29.4, y: 19.3 },\r\n { x: 29.6, y: 19.5 },\r\n { x: 29.8, y: 19.8 },\r\n { x: 30, y: 20 },\r\n { x: 30.2, y: 20.3 },\r\n { x: 30.4, y: 20.6 },\r\n { x: 30.6, y: 20.9 },\r\n { x: 30.8, y: 21.2 },\r\n { x: 31, y: 21.4 },\r\n { x: 31.2, y: 21.7 },\r\n { x: 31.4, y: 22 },\r\n { x: 31.6, y: 22.3 },\r\n { x: 31.8, y: 22.5 },\r\n { x: 32, y: 22.8 },\r\n { x: 32.2, y: 23.1 },\r\n { x: 32.4, y: 23.4 },\r\n { x: 32.6, y: 23.7 },\r\n { x: 32.8, y: 24 },\r\n { x: 33, y: 24.3 },\r\n { x: 33.2, y: 24.6 },\r\n { x: 33.4, y: 24.9 },\r\n { x: 33.6, y: 25.2 },\r\n { x: 33.8, y: 25.4 },\r\n { x: 34, y: 25.6 },\r\n { x: 34.2, y: 25.8 },\r\n { x: 34.4, y: 26 },\r\n { x: 34.6, y: 26.2 },\r\n { x: 34.8, y: 26.4 },\r\n { x: 35, y: 26.7 },\r\n { x: 35.2, y: 27 },\r\n { x: 35.4, y: 27.3 },\r\n { x: 35.6, y: 27.6 },\r\n { x: 35.8, y: 28 },\r\n { x: 36, y: 28.2 },\r\n { x: 36.2, y: 28.6 },\r\n { x: 36.4, y: 28.9 },\r\n { x: 36.6, y: 29.2 },\r\n { x: 36.8, y: 29.6 },\r\n { x: 37, y: 29.8 },\r\n { x: 37.2, y: 30.2 },\r\n { x: 37.4, y: 30.5 },\r\n { x: 37.6, y: 30.8 },\r\n { x: 37.8, y: 31.2 },\r\n { x: 38, y: 31.5 },\r\n { x: 38.2, y: 31.8 },\r\n { x: 38.4, y: 32.1 },\r\n { x: 38.6, y: 32.4 },\r\n { x: 38.8, y: 32.7 },\r\n { x: 39.0, y: 33 },\r\n { x: 39.2, y: 33.3 },\r\n { x: 39.4, y: 33.6 },\r\n { x: 39.6, y: 33.9 },\r\n { x: 39.8, y: 34.2 },\r\n { x: 40.0, y: 34.5 },\r\n { x: 40.2, y: 34.8 },\r\n { x: 40.4, y: 35.1 },\r\n { x: 40.6, y: 35.4 },\r\n { x: 40.8, y: 35.7 },\r\n { x: 41, y: 36.0 },\r\n { x: 41.2, y: 36.3 },\r\n { x: 41.4, y: 36.6 },\r\n { x: 41.6, y: 36.9 },\r\n { x: 41.8, y: 37.2 },\r\n { x: 42, y: 37.6 },\r\n { x: 42.2, y: 38.0 },\r\n { x: 42.4, y: 38.3 },\r\n { x: 42.6, y: 38.7 },\r\n { x: 42.8, y: 39.0 },\r\n { x: 43, y: 39.4 },\r\n { x: 43.2, y: 39.8 },\r\n { x: 43.4, y: 40.2 },\r\n { x: 43.6, y: 40.5 },\r\n { x: 43.8, y: 40.9 },\r\n { x: 44.0, y: 41.3 },\r\n { x: 44.2, y: 41.7 },\r\n { x: 44.4, y: 42.1 },\r\n { x: 44.6, y: 42.4 },\r\n { x: 44.8, y: 42.8 },\r\n { x: 45.0, y: 43.2 },\r\n { x: 45.2, y: 43.6 },\r\n { x: 45.4, y: 44 },\r\n { x: 45.6, y: 44.4 },\r\n { x: 45.8, y: 44.8 },\r\n { x: 46.0, y: 45.2 },\r\n { x: 46.2, y: 45.5 },\r\n { x: 46.4, y: 45.9 },\r\n { x: 46.6, y: 46.3 },\r\n { x: 46.8, y: 46.7 },\r\n { x: 47.0, y: 47.2 },\r\n { x: 47.2, y: 47.6 },\r\n { x: 47.4, y: 48 },\r\n { x: 47.6, y: 48.4 },\r\n { x: 47.8, y: 48.8 },\r\n { x: 48, y: 49.2 },\r\n { x: 48.2, y: 49.6 },\r\n { x: 48.4, y: 50 },\r\n { x: 48.6, y: 50.4 },\r\n { x: 48.8, y: 50.9 },\r\n { x: 49, y: 51.3 },\r\n { x: 49.2, y: 51.7 },\r\n { x: 49.4, y: 52.1 },\r\n { x: 49.6, y: 52.5 },\r\n { x: 49.8, y: 53.0 },\r\n { x: 50, y: 53.4 },\r\n { x: 50.2, y: 53.8 },\r\n { x: 50.4, y: 54.3 },\r\n { x: 50.6, y: 54.7 },\r\n { x: 50.8, y: 55.1 },\r\n { x: 51, y: 55.6 },\r\n { x: 51.2, y: 56 },\r\n { x: 51.4, y: 56.4 },\r\n { x: 51.6, y: 56.9 },\r\n { x: 51.8, y: 57.3 },\r\n { x: 52, y: 57.8 },\r\n { x: 52.2, y: 58.2 },\r\n { x: 52.4, y: 58.7 },\r\n { x: 52.8, y: 59.6 },\r\n { x: 53.0, y: 60 },\r\n ];\r\n var t2_5 = [\r\n { x: 21.4, y: 10 },\r\n { x: 21.6, y: 10.2 },\r\n { x: 21.8, y: 10.5 },\r\n { x: 22.0, y: 10.6 },\r\n { x: 22.2, y: 10.8 },\r\n { x: 22.4, y: 11.0 },\r\n { x: 22.6, y: 11.2 },\r\n { x: 22.8, y: 11.4 },\r\n { x: 23.0, y: 11.6 },\r\n { x: 23.2, y: 11.8 },\r\n { x: 23.4, y: 12.0 },\r\n { x: 23.6, y: 12.2 },\r\n { x: 23.8, y: 12.4 },\r\n { x: 24.0, y: 12.7 },\r\n { x: 24.2, y: 12.8 },\r\n { x: 24.4, y: 13.1 },\r\n { x: 24.6, y: 13.3 },\r\n { x: 24.8, y: 13.5 },\r\n { x: 25.0, y: 13.8 },\r\n { x: 25.2, y: 13.9 },\r\n { x: 25.4, y: 14.2 },\r\n { x: 25.6, y: 14.4 },\r\n { x: 25.8, y: 14.6 },\r\n { x: 26, y: 14.9 },\r\n { x: 26.2, y: 15.1 },\r\n { x: 26.4, y: 15.3 },\r\n { x: 26.6, y: 15.6 },\r\n { x: 26.8, y: 15.8 },\r\n { x: 27, y: 16.1 },\r\n { x: 27.2, y: 16.2 },\r\n { x: 27.4, y: 16.4 },\r\n { x: 27.6, y: 16.6 },\r\n { x: 27.8, y: 16.8 },\r\n { x: 28.0, y: 17.0 },\r\n { x: 28.2, y: 17.2 },\r\n { x: 28.4, y: 17.4 },\r\n { x: 28.6, y: 17.6 },\r\n { x: 28.8, y: 17.8 },\r\n { x: 29, y: 18.1 },\r\n { x: 29.2, y: 18.3 },\r\n { x: 29.4, y: 18.6 },\r\n { x: 29.6, y: 18.8 },\r\n { x: 29.8, y: 19.1 },\r\n { x: 30, y: 19.3 },\r\n { x: 30.2, y: 19.6 },\r\n { x: 30.4, y: 19.8 },\r\n { x: 30.6, y: 20.2 },\r\n { x: 30.8, y: 20.4 },\r\n { x: 31, y: 20.7 },\r\n { x: 31.2, y: 20.9 },\r\n { x: 31.4, y: 21.2 },\r\n { x: 31.6, y: 21.5 },\r\n { x: 31.8, y: 21.7 },\r\n { x: 32, y: 22 },\r\n { x: 32.2, y: 22.3 },\r\n { x: 32.4, y: 22.6 },\r\n { x: 32.6, y: 22.9 },\r\n { x: 32.8, y: 23.2 },\r\n { x: 33, y: 23.4 },\r\n { x: 33.2, y: 23.7 },\r\n { x: 33.4, y: 24 },\r\n { x: 33.6, y: 24.2 },\r\n { x: 33.8, y: 24.4 },\r\n { x: 34, y: 24.6 },\r\n { x: 34.2, y: 24.8 },\r\n { x: 34.4, y: 25 },\r\n { x: 34.6, y: 25.2 },\r\n { x: 34.8, y: 25.4 },\r\n { x: 35, y: 25.8 },\r\n { x: 35.2, y: 26 },\r\n { x: 35.4, y: 26.3 },\r\n { x: 35.6, y: 26.6 },\r\n { x: 35.8, y: 27 },\r\n { x: 36.0, y: 27.2 },\r\n { x: 36.2, y: 27.5 },\r\n { x: 36.4, y: 27.9 },\r\n { x: 36.6, y: 28.2 },\r\n { x: 36.8, y: 28.5 },\r\n { x: 37, y: 28.8 },\r\n { x: 37.2, y: 29.1 },\r\n { x: 37.4, y: 29.4 },\r\n { x: 37.6, y: 29.7 },\r\n { x: 37.8, y: 30 },\r\n { x: 38, y: 30.3 },\r\n { x: 38.2, y: 30.6 },\r\n { x: 38.4, y: 30.9 },\r\n { x: 38.6, y: 31.2 },\r\n { x: 38.8, y: 31.5 },\r\n { x: 39.0, y: 31.8 },\r\n { x: 39.2, y: 32.1 },\r\n { x: 39.4, y: 32.4 },\r\n { x: 39.6, y: 32.7 },\r\n { x: 39.8, y: 33.0 },\r\n { x: 40.0, y: 33.3 },\r\n { x: 40.2, y: 33.6 },\r\n { x: 40.4, y: 33.9 },\r\n { x: 40.6, y: 34.2 },\r\n { x: 40.8, y: 34.5 },\r\n { x: 41, y: 34.8 },\r\n { x: 41.2, y: 35.1 },\r\n { x: 41.4, y: 35.4 },\r\n { x: 41.6, y: 35.7 },\r\n { x: 41.8, y: 36 },\r\n { x: 42, y: 36.3 },\r\n { x: 42.2, y: 36.6 },\r\n { x: 42.4, y: 36.9 },\r\n { x: 42.6, y: 37.3 },\r\n { x: 42.8, y: 37.6 },\r\n { x: 43, y: 38.0 },\r\n { x: 43.2, y: 38.3 },\r\n { x: 43.4, y: 38.7 },\r\n { x: 43.6, y: 39 },\r\n { x: 43.8, y: 39.4 },\r\n { x: 44.0, y: 39.8 },\r\n { x: 44.2, y: 40.1 },\r\n { x: 44.4, y: 40.5 },\r\n { x: 44.6, y: 40.8 },\r\n { x: 44.8, y: 41.2 },\r\n { x: 45.0, y: 41.6 },\r\n { x: 45.2, y: 42 },\r\n { x: 45.4, y: 42.3 },\r\n { x: 45.6, y: 42.7 },\r\n { x: 45.8, y: 43.1 },\r\n { x: 46.0, y: 43.5 },\r\n { x: 46.2, y: 43.8 },\r\n { x: 46.4, y: 44.2 },\r\n { x: 46.6, y: 44.6 },\r\n { x: 46.8, y: 45.0 },\r\n { x: 47.0, y: 45.2 },\r\n { x: 47.2, y: 45.8 },\r\n { x: 47.4, y: 46.2 },\r\n { x: 47.6, y: 46.6 },\r\n { x: 47.8, y: 47 },\r\n { x: 48, y: 47.4 },\r\n { x: 48.2, y: 47.8 },\r\n { x: 48.4, y: 48.2 },\r\n { x: 48.6, y: 48.6 },\r\n { x: 48.8, y: 49.0 },\r\n { x: 49, y: 49.4 },\r\n { x: 49.2, y: 49.8 },\r\n { x: 49.4, y: 50.2 },\r\n { x: 49.6, y: 50.6 },\r\n { x: 49.8, y: 51 },\r\n { x: 50, y: 51.4 },\r\n { x: 50.2, y: 51.9 },\r\n { x: 50.4, y: 52.3 },\r\n { x: 50.6, y: 52.7 },\r\n { x: 50.8, y: 53.1 },\r\n { x: 51, y: 53.5 },\r\n { x: 51.2, y: 54 },\r\n { x: 51.4, y: 54.4 },\r\n { x: 51.6, y: 54.8 },\r\n { x: 51.8, y: 55.2 },\r\n { x: 52, y: 55.7 },\r\n { x: 52.2, y: 56.1 },\r\n { x: 52.4, y: 56.5 },\r\n { x: 52.8, y: 57.4 },\r\n { x: 53.0, y: 57.8 },\r\n { x: 53.2, y: 58.3 },\r\n { x: 53.4, y: 58.7 },\r\n { x: 53.6, y: 59.2 },\r\n { x: 53.8, y: 59.6 },\r\n { x: 54.0, y: 60 },\r\n ];\r\n var t3_0 = [\r\n { x: 21.8, y: 10.1 },\r\n { x: 22.0, y: 10.2 },\r\n { x: 22.2, y: 10.4 },\r\n { x: 22.4, y: 10.7 },\r\n { x: 22.6, y: 10.8 },\r\n { x: 22.8, y: 11.0 },\r\n { x: 23.0, y: 11.2 },\r\n { x: 23.2, y: 11.4 },\r\n { x: 23.4, y: 11.6 },\r\n { x: 23.6, y: 11.8 },\r\n { x: 23.8, y: 12.0 },\r\n { x: 24.0, y: 12.2 },\r\n { x: 24.2, y: 12.4 },\r\n { x: 24.4, y: 12.6 },\r\n { x: 24.6, y: 12.8 },\r\n { x: 24.8, y: 13.0 },\r\n { x: 25.0, y: 13.3 },\r\n { x: 25.2, y: 13.4 },\r\n { x: 25.4, y: 13.7 },\r\n { x: 25.6, y: 13.9 },\r\n { x: 25.8, y: 14.1 },\r\n { x: 26, y: 14.4 },\r\n { x: 26.2, y: 14.6 },\r\n { x: 26.4, y: 14.8 },\r\n { x: 26.6, y: 15 },\r\n { x: 26.8, y: 15.3 },\r\n { x: 27, y: 15.5 },\r\n { x: 27.2, y: 15.7 },\r\n { x: 27.4, y: 15.9 },\r\n { x: 27.6, y: 16.1 },\r\n { x: 27.8, y: 16.3 },\r\n { x: 28.0, y: 16.5 },\r\n { x: 28.2, y: 16.7 },\r\n { x: 28.4, y: 16.9 },\r\n { x: 28.6, y: 17.1 },\r\n { x: 28.8, y: 17.3 },\r\n { x: 29, y: 17.5 },\r\n { x: 29.2, y: 17.7 },\r\n { x: 29.4, y: 17.9 },\r\n { x: 29.6, y: 18.2 },\r\n { x: 29.8, y: 18.4 },\r\n { x: 30, y: 18.6 },\r\n { x: 30.2, y: 18.9 },\r\n { x: 30.4, y: 19.1 },\r\n { x: 30.6, y: 19.4 },\r\n { x: 30.8, y: 19.7 },\r\n { x: 31, y: 19.9 },\r\n { x: 31.2, y: 20.2 },\r\n { x: 31.4, y: 20.5 },\r\n { x: 31.6, y: 20.7 },\r\n { x: 31.8, y: 21 },\r\n { x: 32, y: 21.2 },\r\n { x: 32.2, y: 21.5 },\r\n { x: 32.4, y: 21.8 },\r\n { x: 32.6, y: 22.1 },\r\n { x: 32.8, y: 22.3 },\r\n { x: 33, y: 22.6 },\r\n { x: 33.2, y: 22.9 },\r\n { x: 33.4, y: 23.1 },\r\n { x: 33.6, y: 23.3 },\r\n { x: 33.8, y: 23.5 },\r\n { x: 34, y: 23.7 },\r\n { x: 34.2, y: 23.9 },\r\n { x: 34.4, y: 24.1 },\r\n { x: 34.6, y: 24.3 },\r\n { x: 34.8, y: 24.5 },\r\n { x: 35, y: 24.8 },\r\n { x: 35.2, y: 25 },\r\n { x: 35.4, y: 25.4 },\r\n { x: 35.6, y: 25.7 },\r\n { x: 35.8, y: 26 },\r\n { x: 36, y: 26.2 },\r\n { x: 36.2, y: 26.5 },\r\n { x: 36.4, y: 26.8 },\r\n { x: 36.6, y: 27.1 },\r\n { x: 36.8, y: 27.5 },\r\n { x: 37, y: 27.7 },\r\n { x: 37.2, y: 28 },\r\n { x: 37.4, y: 28.3 },\r\n { x: 37.6, y: 28.6 },\r\n { x: 37.8, y: 28.9 },\r\n { x: 38, y: 29.2 },\r\n { x: 38.2, y: 29.5 },\r\n { x: 38.4, y: 29.8 },\r\n { x: 38.6, y: 30.1 },\r\n { x: 38.8, y: 30.4 },\r\n { x: 39.0, y: 30.6 },\r\n { x: 39.2, y: 30.8 },\r\n { x: 39.4, y: 31 },\r\n { x: 39.6, y: 31.2 },\r\n { x: 39.8, y: 31.4 },\r\n { x: 40.0, y: 31.7 },\r\n { x: 40.2, y: 32 },\r\n { x: 40.4, y: 32.3 },\r\n { x: 40.6, y: 32.6 },\r\n { x: 40.8, y: 32.9 },\r\n { x: 41, y: 33.2 },\r\n { x: 41.2, y: 33.5 },\r\n { x: 41.4, y: 33.8 },\r\n { x: 41.6, y: 34.2 },\r\n { x: 41.8, y: 34.5 },\r\n { x: 42, y: 34.9 },\r\n { x: 42.2, y: 35.2 },\r\n { x: 42.4, y: 35.5 },\r\n { x: 42.6, y: 35.9 },\r\n { x: 42.8, y: 36.2 },\r\n { x: 43, y: 36.6 },\r\n { x: 43.2, y: 36.9 },\r\n { x: 43.4, y: 37.2 },\r\n { x: 43.6, y: 37.5 },\r\n { x: 43.8, y: 37.9 },\r\n { x: 44.0, y: 38.3 },\r\n { x: 44.2, y: 38.6 },\r\n { x: 44.4, y: 39 },\r\n { x: 44.6, y: 39.3 },\r\n { x: 44.8, y: 39.7 },\r\n { x: 45.0, y: 40.1 },\r\n { x: 45.2, y: 40.4 },\r\n { x: 45.4, y: 40.7 },\r\n { x: 45.6, y: 41.1 },\r\n { x: 45.8, y: 41.5 },\r\n { x: 46.0, y: 41.9 },\r\n { x: 46.2, y: 42.2 },\r\n { x: 46.4, y: 42.6 },\r\n { x: 46.6, y: 42.9 },\r\n { x: 46.8, y: 43.3 },\r\n { x: 47.0, y: 43.7 },\r\n { x: 47.2, y: 44.1 },\r\n { x: 47.4, y: 44.5 },\r\n { x: 47.6, y: 44.8 },\r\n { x: 47.8, y: 45.2 },\r\n { x: 48, y: 45.6 },\r\n { x: 48.2, y: 46.0 },\r\n { x: 48.4, y: 46.4 },\r\n { x: 48.6, y: 46.7 },\r\n { x: 48.8, y: 47.1 },\r\n { x: 49, y: 47.5 },\r\n { x: 49.2, y: 47.9 },\r\n { x: 49.4, y: 48.3 },\r\n { x: 49.6, y: 48.7 },\r\n { x: 49.8, y: 49.1 },\r\n { x: 50, y: 49.5 },\r\n { x: 50.2, y: 49.9 },\r\n { x: 50.4, y: 50.3 },\r\n { x: 50.6, y: 50.7 },\r\n { x: 50.8, y: 51.1 },\r\n { x: 51, y: 51.5 },\r\n { x: 51.2, y: 51.9 },\r\n { x: 51.4, y: 52.3 },\r\n { x: 51.6, y: 52.7 },\r\n { x: 51.8, y: 53.1 },\r\n { x: 52, y: 53.6 },\r\n { x: 52.2, y: 54 },\r\n { x: 52.4, y: 54.4 },\r\n { x: 52.8, y: 55.2 },\r\n { x: 53.0, y: 55.6 },\r\n { x: 53.2, y: 56.1 },\r\n { x: 53.4, y: 56.5 },\r\n { x: 53.6, y: 56.9 },\r\n { x: 53.8, y: 57.3 },\r\n { x: 54.0, y: 57.8 },\r\n { x: 54.2, y: 58.2 },\r\n { x: 54.4, y: 58.6 },\r\n { x: 54.6, y: 59.1 },\r\n { x: 54.8, y: 59.5 },\r\n { x: 55, y: 59.9 },\r\n { x: 55.2, y: 60 },\r\n ];\r\n var t3_5 = [\r\n { x: 22.2, y: 10.0 },\r\n { x: 22.4, y: 10.3 },\r\n { x: 22.6, y: 10.4 },\r\n { x: 22.8, y: 10.6 },\r\n { x: 23.0, y: 10.8 },\r\n { x: 23.2, y: 11.0 },\r\n { x: 23.4, y: 11.2 },\r\n { x: 23.6, y: 11.4 },\r\n { x: 23.8, y: 11.5 },\r\n { x: 24.0, y: 11.8 },\r\n { x: 24.2, y: 11.9 },\r\n { x: 24.4, y: 12.2 },\r\n { x: 24.6, y: 12.3 },\r\n { x: 24.8, y: 12.6 },\r\n { x: 25.0, y: 12.8 },\r\n { x: 25.2, y: 13.0 },\r\n { x: 25.4, y: 13.2 },\r\n { x: 25.6, y: 13.4 },\r\n { x: 25.8, y: 13.6 },\r\n { x: 26, y: 13.8 },\r\n { x: 26.2, y: 14.0 },\r\n { x: 26.4, y: 14.2 },\r\n { x: 26.6, y: 14.4 },\r\n { x: 26.8, y: 14.6 },\r\n { x: 27, y: 14.8 },\r\n { x: 27.2, y: 15.0 },\r\n { x: 27.4, y: 15.2 },\r\n { x: 27.6, y: 15.4 },\r\n { x: 27.8, y: 15.6 },\r\n { x: 28.0, y: 15.8 },\r\n { x: 28.2, y: 16 },\r\n { x: 28.4, y: 16.2 },\r\n { x: 28.6, y: 16.4 },\r\n { x: 28.8, y: 16.6 },\r\n { x: 29, y: 16.8 },\r\n { x: 29.2, y: 17 },\r\n { x: 29.4, y: 17.2 },\r\n { x: 29.6, y: 17.5 },\r\n { x: 29.8, y: 17.7 },\r\n { x: 30, y: 17.9 },\r\n { x: 30.2, y: 18.2 },\r\n { x: 30.4, y: 18.4 },\r\n { x: 30.6, y: 18.7 },\r\n { x: 30.8, y: 18.9 },\r\n { x: 31, y: 19.2 },\r\n { x: 31.2, y: 19.4 },\r\n { x: 31.4, y: 19.7 },\r\n { x: 31.6, y: 19.9 },\r\n { x: 31.8, y: 20.2 },\r\n { x: 32, y: 20.4 },\r\n { x: 32.2, y: 20.7 },\r\n { x: 32.4, y: 20.9 },\r\n { x: 32.6, y: 21.3 },\r\n { x: 32.8, y: 21.5 },\r\n { x: 33, y: 21.7 },\r\n { x: 33.2, y: 22 },\r\n { x: 33.4, y: 22.3 },\r\n { x: 33.6, y: 22.6 },\r\n { x: 33.8, y: 22.8 },\r\n { x: 34, y: 23 },\r\n { x: 34.2, y: 23.2 },\r\n { x: 34.4, y: 23.4 },\r\n { x: 34.6, y: 23.6 },\r\n { x: 34.8, y: 23.8 },\r\n { x: 35, y: 24 },\r\n { x: 35.2, y: 24.2 },\r\n { x: 35.4, y: 24.4 },\r\n { x: 35.6, y: 24.7 },\r\n { x: 35.8, y: 25 },\r\n { x: 36, y: 25.2 },\r\n { x: 36.2, y: 25.5 },\r\n { x: 36.4, y: 25.8 },\r\n { x: 36.6, y: 26.1 },\r\n { x: 36.8, y: 26.4 },\r\n { x: 37, y: 26.6 },\r\n { x: 37.2, y: 26.9 },\r\n { x: 37.4, y: 27.2 },\r\n { x: 37.6, y: 27.5 },\r\n { x: 37.8, y: 27.8 },\r\n { x: 38, y: 28.1 },\r\n { x: 38.2, y: 28.4 },\r\n { x: 38.4, y: 28.7 },\r\n { x: 38.6, y: 29 },\r\n { x: 38.8, y: 29.3 },\r\n { x: 39.0, y: 29.6 },\r\n { x: 39.2, y: 29.8 },\r\n { x: 39.4, y: 30.0 },\r\n { x: 39.6, y: 30.2 },\r\n { x: 39.8, y: 30.5 },\r\n { x: 40.0, y: 30.8 },\r\n { x: 40.2, y: 31.1 },\r\n { x: 40.4, y: 31.4 },\r\n { x: 40.6, y: 31.7 },\r\n { x: 40.8, y: 32 },\r\n { x: 41, y: 32.3 },\r\n { x: 41.2, y: 32.6 },\r\n { x: 41.4, y: 32.9 },\r\n { x: 41.6, y: 33.3 },\r\n { x: 41.8, y: 33.6 },\r\n { x: 42, y: 34 },\r\n { x: 42.2, y: 34.3 },\r\n { x: 42.4, y: 34.6 },\r\n { x: 42.6, y: 34.9 },\r\n { x: 42.8, y: 35.2 },\r\n { x: 43, y: 35.6 },\r\n { x: 43.2, y: 35.9 },\r\n { x: 43.4, y: 36.3 },\r\n { x: 43.6, y: 36.6 },\r\n { x: 43.8, y: 36.9 },\r\n { x: 44.0, y: 37.3 },\r\n { x: 44.2, y: 37.6 },\r\n { x: 44.4, y: 38 },\r\n { x: 44.6, y: 38.3 },\r\n { x: 44.8, y: 38.6 },\r\n { x: 45.0, y: 39.0 },\r\n { x: 45.2, y: 39.4 },\r\n { x: 45.4, y: 39.7 },\r\n { x: 45.6, y: 40.0 },\r\n { x: 45.8, y: 40.4 },\r\n { x: 46.0, y: 40.8 },\r\n { x: 46.2, y: 41.1 },\r\n { x: 46.4, y: 41.4 },\r\n { x: 46.6, y: 41.8 },\r\n { x: 46.8, y: 42.2 },\r\n { x: 47.0, y: 42.6 },\r\n { x: 47.2, y: 42.9 },\r\n { x: 47.4, y: 43.3 },\r\n { x: 47.6, y: 43.7 },\r\n { x: 47.8, y: 44 },\r\n { x: 48, y: 44.4 },\r\n { x: 48.2, y: 44.8 },\r\n { x: 48.4, y: 45.1 },\r\n { x: 48.6, y: 45.5 },\r\n { x: 48.8, y: 45.9 },\r\n { x: 49, y: 46.2 },\r\n { x: 49.2, y: 46.6 },\r\n { x: 49.4, y: 47.0 },\r\n { x: 49.6, y: 47.4 },\r\n { x: 49.8, y: 47.8 },\r\n { x: 50, y: 48.2 },\r\n { x: 50.2, y: 48.5 },\r\n { x: 50.4, y: 49.0 },\r\n { x: 50.6, y: 49.4 },\r\n { x: 50.8, y: 49.8 },\r\n { x: 51, y: 50.1 },\r\n { x: 51.2, y: 50.5 },\r\n { x: 51.4, y: 50.9 },\r\n { x: 51.6, y: 51.3 },\r\n { x: 51.8, y: 51.7 },\r\n { x: 52, y: 52.1 },\r\n { x: 52.2, y: 52.5 },\r\n { x: 52.4, y: 53.0 },\r\n { x: 52.8, y: 53.8 },\r\n { x: 53.0, y: 54.2 },\r\n { x: 53.2, y: 54.6 },\r\n { x: 53.4, y: 55 },\r\n { x: 53.6, y: 55.4 },\r\n { x: 53.8, y: 55.8 },\r\n { x: 54.0, y: 56.3 },\r\n { x: 54.2, y: 56.7 },\r\n { x: 54.4, y: 57.1 },\r\n { x: 54.6, y: 57.5 },\r\n { x: 54.8, y: 57.9 },\r\n { x: 55, y: 58.4 },\r\n { x: 55.2, y: 58.8 },\r\n { x: 55.4, y: 59.2 },\r\n { x: 55.6, y: 59.7 },\r\n { x: 55.8, y: 60 },\r\n ];\r\n var t4_0 = [\r\n { x: 22.4, y: 10 },\r\n { x: 22.6, y: 10.2 },\r\n { x: 22.8, y: 10.3 },\r\n { x: 23.0, y: 10.5 },\r\n { x: 23.2, y: 10.7 },\r\n { x: 23.4, y: 10.9 },\r\n { x: 23.6, y: 11.1 },\r\n { x: 23.8, y: 11.2 },\r\n { x: 24.0, y: 11.5 },\r\n { x: 24.2, y: 11.6 },\r\n { x: 24.4, y: 11.9 },\r\n { x: 24.6, y: 12 },\r\n { x: 24.8, y: 12.2 },\r\n { x: 25.0, y: 12.5 },\r\n { x: 25.2, y: 12.6 },\r\n { x: 25.4, y: 12.9 },\r\n { x: 25.6, y: 13.0 },\r\n { x: 25.8, y: 13.2 },\r\n { x: 26, y: 13.5 },\r\n { x: 26.2, y: 13.7 },\r\n { x: 26.4, y: 13.9 },\r\n { x: 26.6, y: 14.1 },\r\n { x: 26.8, y: 14.3 },\r\n { x: 27, y: 14.6 },\r\n { x: 27.2, y: 14.7 },\r\n { x: 27.4, y: 14.9 },\r\n { x: 27.6, y: 15.1 },\r\n { x: 27.8, y: 15.3 },\r\n { x: 28.0, y: 15.4 },\r\n { x: 28.2, y: 15.6 },\r\n { x: 28.4, y: 15.8 },\r\n { x: 28.6, y: 16 },\r\n { x: 28.8, y: 16.2 },\r\n { x: 29, y: 16.4 },\r\n { x: 29.2, y: 16.6 },\r\n { x: 29.4, y: 16.8 },\r\n { x: 29.6, y: 17 },\r\n { x: 29.8, y: 17.2 },\r\n { x: 30, y: 17.4 },\r\n { x: 30.2, y: 17.6 },\r\n { x: 30.4, y: 17.8 },\r\n { x: 30.6, y: 18 },\r\n { x: 30.8, y: 18.2 },\r\n { x: 31, y: 18.4 },\r\n { x: 31.2, y: 18.6 },\r\n { x: 31.4, y: 18.9 },\r\n { x: 31.6, y: 19.2 },\r\n { x: 31.8, y: 19.4 },\r\n { x: 32, y: 19.6 },\r\n { x: 32.2, y: 19.9 },\r\n { x: 32.4, y: 20.1 },\r\n { x: 32.6, y: 20.4 },\r\n { x: 32.8, y: 20.6 },\r\n { x: 33, y: 20.9 },\r\n { x: 33.2, y: 21.2 },\r\n { x: 33.4, y: 21.4 },\r\n { x: 33.6, y: 21.7 },\r\n { x: 33.8, y: 21.9 },\r\n { x: 34, y: 22.1 },\r\n { x: 34.2, y: 22.3 },\r\n { x: 34.4, y: 22.5 },\r\n { x: 34.6, y: 22.7 },\r\n { x: 34.8, y: 22.9 },\r\n { x: 35, y: 23.2 },\r\n { x: 35.2, y: 23.4 },\r\n { x: 35.4, y: 23.7 },\r\n { x: 35.6, y: 24 },\r\n { x: 35.8, y: 24.3 },\r\n { x: 36, y: 24.5 },\r\n { x: 36.2, y: 24.8 },\r\n { x: 36.4, y: 25.1 },\r\n { x: 36.6, y: 25.4 },\r\n { x: 36.8, y: 25.7 },\r\n { x: 37, y: 25.9 },\r\n { x: 37.2, y: 26.2 },\r\n { x: 37.4, y: 26.6 },\r\n { x: 37.6, y: 26.8 },\r\n { x: 37.8, y: 27.1 },\r\n { x: 38, y: 27.4 },\r\n { x: 38.2, y: 27.7 },\r\n { x: 38.4, y: 28.0 },\r\n { x: 38.6, y: 28.3 },\r\n { x: 38.8, y: 28.5 },\r\n { x: 39.0, y: 28.8 },\r\n { x: 39.2, y: 29 },\r\n { x: 39.4, y: 29.2 },\r\n { x: 39.6, y: 29.4 },\r\n { x: 39.8, y: 29.7 },\r\n { x: 40.0, y: 30.0 },\r\n { x: 40.2, y: 30.2 },\r\n { x: 40.4, y: 30.5 },\r\n { x: 40.6, y: 30.8 },\r\n { x: 40.8, y: 31.2 },\r\n { x: 41, y: 31.5 },\r\n { x: 41.2, y: 31.8 },\r\n { x: 41.4, y: 32 },\r\n { x: 41.6, y: 32.4 },\r\n { x: 41.8, y: 32.7 },\r\n { x: 42, y: 33.0 },\r\n { x: 42.2, y: 33.3 },\r\n { x: 42.4, y: 33.6 },\r\n { x: 42.6, y: 34 },\r\n { x: 42.8, y: 34.3 },\r\n { x: 43, y: 34.6 },\r\n { x: 43.2, y: 34.9 },\r\n { x: 43.4, y: 35.3 },\r\n { x: 43.6, y: 35.6 },\r\n { x: 43.8, y: 35.9 },\r\n { x: 44.0, y: 36.3 },\r\n { x: 44.2, y: 36.6 },\r\n { x: 44.4, y: 36.9 },\r\n { x: 44.6, y: 37.2 },\r\n { x: 44.8, y: 37.6 },\r\n { x: 45.0, y: 37.9 },\r\n { x: 45.2, y: 38.3 },\r\n { x: 45.4, y: 38.6 },\r\n { x: 45.6, y: 39.0 },\r\n { x: 45.8, y: 39.3 },\r\n { x: 46.0, y: 39.7 },\r\n { x: 46.2, y: 40.0 },\r\n { x: 46.4, y: 40.3 },\r\n { x: 46.6, y: 40.7 },\r\n { x: 46.8, y: 41.0 },\r\n { x: 47.0, y: 41.4 },\r\n { x: 47.2, y: 41.8 },\r\n { x: 47.4, y: 42.1 },\r\n { x: 47.6, y: 42.5 },\r\n { x: 47.8, y: 42.8 },\r\n { x: 48, y: 43.2 },\r\n { x: 48.2, y: 43.6 },\r\n { x: 48.4, y: 43.9 },\r\n { x: 48.6, y: 44.3 },\r\n { x: 48.8, y: 44.6 },\r\n { x: 49, y: 45.0 },\r\n { x: 49.2, y: 45.4 },\r\n { x: 49.4, y: 45.8 },\r\n { x: 49.6, y: 46.2 },\r\n { x: 49.8, y: 46.5 },\r\n { x: 50, y: 46.9 },\r\n { x: 50.2, y: 47.2 },\r\n { x: 50.4, y: 47.7 },\r\n { x: 50.6, y: 48.0 },\r\n { x: 50.8, y: 48.4 },\r\n { x: 51, y: 48.8 },\r\n { x: 51.2, y: 49.2 },\r\n { x: 51.4, y: 49.6 },\r\n { x: 51.6, y: 50 },\r\n { x: 51.8, y: 50.3 },\r\n { x: 52, y: 50.7 },\r\n { x: 52.2, y: 51.1 },\r\n { x: 52.4, y: 51.5 },\r\n { x: 52.8, y: 52.3 },\r\n { x: 53.0, y: 52.7 },\r\n { x: 53.2, y: 53.1 },\r\n { x: 53.4, y: 53.5 },\r\n { x: 53.6, y: 53.9 },\r\n { x: 53.8, y: 54.3 },\r\n { x: 54.0, y: 54.7 },\r\n { x: 54.2, y: 55.1 },\r\n { x: 54.4, y: 55.6 },\r\n { x: 54.6, y: 56 },\r\n { x: 54.8, y: 56.4 },\r\n { x: 55, y: 56.8 },\r\n { x: 55.2, y: 57.2 },\r\n { x: 55.4, y: 57.6 },\r\n { x: 55.6, y: 58 },\r\n { x: 55.8, y: 58.5 },\r\n { x: 56.0, y: 58.9 },\r\n { x: 56.2, y: 59.3 },\r\n { x: 56.4, y: 59.7 },\r\n { x: 56.6, y: 60 },\r\n ];\r\n var t4_5 = [\r\n { x: 23.0, y: 10.1 },\r\n { x: 23.2, y: 10.3 },\r\n { x: 23.4, y: 10.4 },\r\n { x: 23.6, y: 10.7 },\r\n { x: 23.8, y: 10.8 },\r\n { x: 24.0, y: 11.0 },\r\n { x: 24.2, y: 11.2 },\r\n { x: 24.4, y: 11.4 },\r\n { x: 24.6, y: 11.5 },\r\n { x: 24.8, y: 11.8 },\r\n { x: 25.0, y: 12.0 },\r\n { x: 25.2, y: 12.1 },\r\n { x: 25.4, y: 12.4 },\r\n { x: 25.6, y: 12.5 },\r\n { x: 25.8, y: 12.7 },\r\n { x: 26, y: 13.0 },\r\n { x: 26.2, y: 13.2 },\r\n { x: 26.4, y: 13.3 },\r\n { x: 26.6, y: 13.5 },\r\n { x: 26.8, y: 13.8 },\r\n { x: 27, y: 14.0 },\r\n { x: 27.2, y: 14.1 },\r\n { x: 27.4, y: 14.3 },\r\n { x: 27.6, y: 14.5 },\r\n { x: 27.8, y: 14.7 },\r\n { x: 28.0, y: 14.8 },\r\n { x: 28.2, y: 15.0 },\r\n { x: 28.4, y: 15.2 },\r\n { x: 28.6, y: 15.4 },\r\n { x: 28.8, y: 15.6 },\r\n { x: 29, y: 15.8 },\r\n { x: 29.2, y: 16 },\r\n { x: 29.4, y: 16.2 },\r\n { x: 29.6, y: 16.4 },\r\n { x: 29.8, y: 16.6 },\r\n { x: 30, y: 16.8 },\r\n { x: 30.2, y: 17 },\r\n { x: 30.4, y: 17.2 },\r\n { x: 30.6, y: 17.5 },\r\n { x: 30.8, y: 17.7 },\r\n { x: 31, y: 17.9 },\r\n { x: 31.2, y: 16.1 },\r\n { x: 31.4, y: 18.4 },\r\n { x: 31.6, y: 18.6 },\r\n { x: 31.8, y: 18.9 },\r\n { x: 32, y: 19.1 },\r\n { x: 32.2, y: 19.4 },\r\n { x: 32.4, y: 19.6 },\r\n { x: 32.6, y: 19.9 },\r\n { x: 32.8, y: 20.1 },\r\n { x: 33, y: 20.3 },\r\n { x: 33.2, y: 20.5 },\r\n { x: 33.4, y: 20.7 },\r\n { x: 33.6, y: 20.9 },\r\n { x: 33.8, y: 21.1 },\r\n { x: 34, y: 21.3 },\r\n { x: 34.2, y: 21.5 },\r\n { x: 34.4, y: 21.7 },\r\n { x: 34.6, y: 21.9 },\r\n { x: 34.8, y: 22.1 },\r\n { x: 35, y: 22.3 },\r\n { x: 35.2, y: 22.5 },\r\n { x: 35.4, y: 22.8 },\r\n { x: 35.6, y: 23 },\r\n { x: 35.8, y: 23.3 },\r\n { x: 36, y: 23.5 },\r\n { x: 36.2, y: 23.8 },\r\n { x: 36.4, y: 24.1 },\r\n { x: 36.6, y: 24.4 },\r\n { x: 36.8, y: 24.6 },\r\n { x: 37, y: 24.8 },\r\n { x: 37.2, y: 25.1 },\r\n { x: 37.4, y: 25.4 },\r\n { x: 37.6, y: 25.7 },\r\n { x: 37.8, y: 26 },\r\n { x: 38, y: 26.2 },\r\n { x: 38.2, y: 26.5 },\r\n { x: 38.4, y: 29.8 },\r\n { x: 38.6, y: 27 },\r\n { x: 38.8, y: 27.2 },\r\n { x: 39.0, y: 27.4 },\r\n { x: 39.2, y: 27.6 },\r\n { x: 39.4, y: 27.8 },\r\n { x: 39.6, y: 28.0 },\r\n { x: 39.8, y: 28.2 },\r\n { x: 40.0, y: 28.4 },\r\n { x: 40.2, y: 28.6 },\r\n { x: 40.4, y: 28.8 },\r\n { x: 40.6, y: 29.1 },\r\n { x: 40.8, y: 29.4 },\r\n { x: 41, y: 29.7 },\r\n { x: 41.2, y: 30 },\r\n { x: 41.4, y: 30.3 },\r\n { x: 41.6, y: 30.6 },\r\n { x: 41.8, y: 30.9 },\r\n { x: 42, y: 31.2 },\r\n { x: 42.2, y: 31.5 },\r\n { x: 42.4, y: 31.8 },\r\n { x: 42.6, y: 32.1 },\r\n { x: 42.8, y: 32.4 },\r\n { x: 43, y: 32.7 },\r\n { x: 43.2, y: 33 },\r\n { x: 43.4, y: 33.3 },\r\n { x: 43.6, y: 33.6 },\r\n { x: 43.8, y: 33.9 },\r\n { x: 44.0, y: 34.3 },\r\n { x: 44.2, y: 34.5 },\r\n { x: 44.4, y: 34.9 },\r\n { x: 44.6, y: 35.2 },\r\n { x: 44.8, y: 35.5 },\r\n { x: 45.0, y: 35.8 },\r\n { x: 45.2, y: 36.2 },\r\n { x: 45.4, y: 36.4 },\r\n { x: 45.6, y: 36.8 },\r\n { x: 45.8, y: 37.1 },\r\n { x: 46.0, y: 37.5 },\r\n { x: 46.2, y: 37.7 },\r\n { x: 46.4, y: 38.1 },\r\n { x: 46.6, y: 38.4 },\r\n { x: 46.8, y: 38.8 },\r\n { x: 47.0, y: 39.1 },\r\n { x: 47.2, y: 39.4 },\r\n { x: 47.4, y: 39.8 },\r\n { x: 47.6, y: 40.1 },\r\n { x: 47.8, y: 40.5 },\r\n { x: 48, y: 40.8 },\r\n { x: 48.2, y: 41.1 },\r\n { x: 48.4, y: 41.5 },\r\n { x: 48.6, y: 41.8 },\r\n { x: 48.8, y: 42.2 },\r\n { x: 49, y: 42.5 },\r\n { x: 49.2, y: 42.8 },\r\n { x: 49.4, y: 43.2 },\r\n { x: 49.6, y: 43.6 },\r\n { x: 49.8, y: 43.9 },\r\n { x: 50, y: 44.3 },\r\n { x: 50.2, y: 44.6 },\r\n { x: 50.4, y: 45 },\r\n { x: 50.6, y: 45.4 },\r\n { x: 50.8, y: 45.7 },\r\n { x: 51, y: 46.1 },\r\n { x: 51.2, y: 46.4 },\r\n { x: 51.4, y: 46.8 },\r\n { x: 51.6, y: 47.2 },\r\n { x: 51.8, y: 47.5 },\r\n { x: 52, y: 47.9 },\r\n { x: 52.2, y: 48.3 },\r\n { x: 52.4, y: 48.7 },\r\n { x: 52.8, y: 49.4 },\r\n { x: 53.0, y: 49.8 },\r\n { x: 53.2, y: 50.2 },\r\n { x: 53.4, y: 50.5 },\r\n { x: 53.6, y: 50.9 },\r\n { x: 53.8, y: 51.3 },\r\n { x: 54.0, y: 51.7 },\r\n { x: 54.2, y: 52.1 },\r\n { x: 54.4, y: 52.5 },\r\n { x: 54.6, y: 52.9 },\r\n { x: 54.8, y: 53.2 },\r\n { x: 55, y: 53.6 },\r\n { x: 55.2, y: 54 },\r\n { x: 55.4, y: 54.4 },\r\n { x: 55.6, y: 54.8 },\r\n { x: 55.8, y: 55.2 },\r\n { x: 56.0, y: 55.6 },\r\n { x: 56.2, y: 56 },\r\n { x: 56.4, y: 56.4 },\r\n { x: 56.6, y: 56.8 },\r\n { x: 56.8, y: 57.2 },\r\n { x: 57, y: 57.6 },\r\n { x: 57.2, y: 58 },\r\n { x: 57.4, y: 58.4 },\r\n { x: 57.6, y: 58.9 },\r\n { x: 57.8, y: 59.3 },\r\n { x: 58, y: 59.7 },\r\n { x: 58.2, y: 60.0 },\r\n ];\r\n var t5_0 = [\r\n { x: 23.2, y: 10.0 },\r\n { x: 23.4, y: 10.2 },\r\n { x: 23.6, y: 10.4 },\r\n { x: 23.8, y: 10.5 },\r\n { x: 24.0, y: 10.7 },\r\n { x: 24.2, y: 10.9 },\r\n { x: 24.4, y: 11.1 },\r\n { x: 24.6, y: 11.2 },\r\n { x: 24.8, y: 11.4 },\r\n { x: 25.0, y: 11.7 },\r\n { x: 25.2, y: 11.8 },\r\n { x: 25.4, y: 12.0 },\r\n { x: 25.6, y: 12.2 },\r\n { x: 25.8, y: 12.4 },\r\n { x: 26, y: 12.6 },\r\n { x: 26.2, y: 12.8 },\r\n { x: 26.4, y: 13.0 },\r\n { x: 26.6, y: 13.2 },\r\n { x: 26.8, y: 13.4 },\r\n { x: 27, y: 13.6 },\r\n { x: 27.2, y: 13.8 },\r\n { x: 27.4, y: 14.0 },\r\n { x: 27.6, y: 14.1 },\r\n { x: 27.8, y: 14.2 },\r\n { x: 28.0, y: 14.4 },\r\n { x: 28.2, y: 14.6 },\r\n { x: 28.4, y: 14.8 },\r\n { x: 28.6, y: 15.0 },\r\n { x: 28.8, y: 15.2 },\r\n { x: 29, y: 15.4 },\r\n { x: 29.2, y: 15.6 },\r\n { x: 29.4, y: 15.8 },\r\n { x: 29.6, y: 16 },\r\n { x: 29.8, y: 16.2 },\r\n { x: 30, y: 16.4 },\r\n { x: 30.2, y: 16.6 },\r\n { x: 30.4, y: 16.8 },\r\n { x: 30.6, y: 17.0 },\r\n { x: 30.8, y: 17.2 },\r\n { x: 31, y: 17.4 },\r\n { x: 31.2, y: 17.6 },\r\n { x: 31.4, y: 17.8 },\r\n { x: 31.6, y: 18 },\r\n { x: 31.8, y: 18.2 },\r\n { x: 32, y: 18.4 },\r\n { x: 32.2, y: 18.6 },\r\n { x: 32.4, y: 18.8 },\r\n { x: 32.6, y: 19 },\r\n { x: 32.8, y: 19.2 },\r\n { x: 33, y: 19.4 },\r\n { x: 33.2, y: 19.6 },\r\n { x: 33.4, y: 19.8 },\r\n { x: 33.6, y: 20 },\r\n { x: 33.8, y: 20.2 },\r\n { x: 34, y: 20.4 },\r\n { x: 34.2, y: 20.6 },\r\n { x: 34.4, y: 20.8 },\r\n { x: 34.6, y: 21 },\r\n { x: 34.8, y: 21.2 },\r\n { x: 35, y: 21.4 },\r\n { x: 35.2, y: 21.6 },\r\n { x: 35.4, y: 21.8 },\r\n { x: 35.6, y: 22 },\r\n { x: 35.8, y: 22.2 },\r\n { x: 36, y: 22.4 },\r\n { x: 36.2, y: 22.6 },\r\n { x: 36.4, y: 22.8 },\r\n { x: 36.6, y: 23 },\r\n { x: 36.8, y: 23.2 },\r\n { x: 37, y: 23.4 },\r\n { x: 37.2, y: 23.7 },\r\n { x: 37.4, y: 24 },\r\n { x: 37.6, y: 24.2 },\r\n { x: 37.8, y: 24.5 },\r\n { x: 38, y: 24.8 },\r\n { x: 38.2, y: 25 },\r\n { x: 38.4, y: 25.2 },\r\n { x: 38.6, y: 25.5 },\r\n { x: 38.8, y: 25.8 },\r\n { x: 39.0, y: 26 },\r\n { x: 39.2, y: 26.2 },\r\n { x: 39.4, y: 26.4 },\r\n { x: 39.6, y: 26.6 },\r\n { x: 39.8, y: 26.8 },\r\n { x: 40.0, y: 27 },\r\n { x: 40.2, y: 27.3 },\r\n { x: 40.4, y: 27.6 },\r\n { x: 40.6, y: 27.8 },\r\n { x: 40.8, y: 28.1 },\r\n { x: 41, y: 28.4 },\r\n { x: 41.2, y: 28.7 },\r\n { x: 41.4, y: 28.9 },\r\n { x: 41.6, y: 29.2 },\r\n { x: 41.8, y: 29.5 },\r\n { x: 42, y: 29.8 },\r\n { x: 42.2, y: 30.1 },\r\n { x: 42.4, y: 30.4 },\r\n { x: 42.6, y: 30.7 },\r\n { x: 42.8, y: 30.9 },\r\n { x: 43, y: 31.3 },\r\n { x: 43.2, y: 31.5 },\r\n { x: 43.4, y: 31.8 },\r\n { x: 43.6, y: 32.1 },\r\n { x: 43.8, y: 32.4 },\r\n { x: 44.0, y: 32.8 },\r\n { x: 44.2, y: 33 },\r\n { x: 44.4, y: 33.3 },\r\n { x: 44.6, y: 33.6 },\r\n { x: 44.8, y: 33.9 },\r\n { x: 45.0, y: 34.3 },\r\n { x: 45.2, y: 34.6 },\r\n { x: 45.4, y: 34.8 },\r\n { x: 45.6, y: 35.2 },\r\n { x: 45.8, y: 35.5 },\r\n { x: 46.0, y: 35.8 },\r\n { x: 46.2, y: 36.1 },\r\n { x: 46.4, y: 36.4 },\r\n { x: 46.6, y: 36.7 },\r\n { x: 46.8, y: 37.0 },\r\n { x: 47.0, y: 37.4 },\r\n { x: 47.2, y: 37.7 },\r\n { x: 47.4, y: 38.0 },\r\n { x: 47.6, y: 40 },\r\n { x: 47.8, y: 38.7 },\r\n { x: 48, y: 39.0 },\r\n { x: 48.2, y: 39.3 },\r\n { x: 48.4, y: 39.6 },\r\n { x: 48.6, y: 40.0 },\r\n { x: 48.8, y: 40.3 },\r\n { x: 49, y: 40.6 },\r\n { x: 49.2, y: 41 },\r\n { x: 49.4, y: 41.3 },\r\n { x: 49.6, y: 41.7 },\r\n { x: 49.8, y: 42 },\r\n { x: 50, y: 42.3 },\r\n { x: 50.2, y: 42.6 },\r\n { x: 50.4, y: 43.0 },\r\n { x: 50.6, y: 43.4 },\r\n { x: 50.8, y: 43.7 },\r\n { x: 51, y: 44.1 },\r\n { x: 51.2, y: 44.4 },\r\n { x: 51.4, y: 44.7 },\r\n { x: 51.6, y: 45.1 },\r\n { x: 51.8, y: 45.4 },\r\n { x: 52, y: 45.8 },\r\n { x: 52.2, y: 46.2 },\r\n { x: 52.4, y: 46.5 },\r\n { x: 52.8, y: 47.3 },\r\n { x: 53.0, y: 47.6 },\r\n { x: 53.2, y: 48 },\r\n { x: 53.4, y: 48.3 },\r\n { x: 53.6, y: 48.7 },\r\n { x: 53.8, y: 49 },\r\n { x: 54.0, y: 49.4 },\r\n { x: 54.2, y: 49.8 },\r\n { x: 54.4, y: 50.2 },\r\n { x: 54.6, y: 50.5 },\r\n { x: 54.8, y: 50.9 },\r\n { x: 55, y: 51.3 },\r\n { x: 55.2, y: 51.6 },\r\n { x: 55.4, y: 52 },\r\n { x: 55.6, y: 52.4 },\r\n { x: 55.8, y: 52.8 },\r\n { x: 56.0, y: 53.2 },\r\n { x: 56.2, y: 53.5 },\r\n { x: 56.4, y: 53.9 },\r\n { x: 56.6, y: 54.3 },\r\n { x: 56.8, y: 54.7 },\r\n { x: 57, y: 55.1 },\r\n { x: 57.2, y: 55.5 },\r\n { x: 57.4, y: 55.9 },\r\n ];\r\n var t5_5 = [\r\n { x: 23.6, y: 10.1 },\r\n { x: 23.8, y: 10.2 },\r\n { x: 24.0, y: 10.4 },\r\n { x: 24.2, y: 10.6 },\r\n { x: 24.4, y: 10.8 },\r\n { x: 24.6, y: 10.9 },\r\n { x: 24.8, y: 11.1 },\r\n { x: 25.0, y: 11.3 },\r\n { x: 25.2, y: 11.5 },\r\n { x: 25.4, y: 11.7 },\r\n { x: 25.6, y: 11.8 },\r\n { x: 25.8, y: 12.0 },\r\n { x: 26, y: 12.2 },\r\n { x: 26.2, y: 12.4 },\r\n { x: 26.4, y: 12.6 },\r\n { x: 26.6, y: 12.8 },\r\n { x: 26.8, y: 12.9 },\r\n { x: 27, y: 13.1 },\r\n { x: 27.2, y: 13.3 },\r\n { x: 27.4, y: 13.4 },\r\n { x: 27.6, y: 13.6 },\r\n { x: 27.8, y: 13.7 },\r\n { x: 28.0, y: 13.9 },\r\n { x: 28.2, y: 14 },\r\n { x: 28.4, y: 14.2 },\r\n { x: 28.6, y: 14.3 },\r\n { x: 28.8, y: 14.5 },\r\n { x: 29, y: 14.6 },\r\n { x: 29.2, y: 14.8 },\r\n { x: 29.4, y: 15 },\r\n { x: 29.6, y: 15.1 },\r\n { x: 29.8, y: 15.3 },\r\n { x: 30, y: 15.4 },\r\n { x: 30.2, y: 15.6 },\r\n { x: 30.4, y: 15.8 },\r\n { x: 30.6, y: 16 },\r\n { x: 30.8, y: 16.2 },\r\n { x: 31, y: 16.4 },\r\n { x: 31.2, y: 16.6 },\r\n { x: 31.4, y: 16.9 },\r\n { x: 31.6, y: 17.1 },\r\n { x: 31.8, y: 17.3 },\r\n { x: 32, y: 17.5 },\r\n { x: 32.2, y: 17.7 },\r\n { x: 32.4, y: 17.9 },\r\n { x: 32.6, y: 18.1 },\r\n { x: 32.8, y: 18.3 },\r\n { x: 33, y: 18.5 },\r\n { x: 33.2, y: 18.7 },\r\n { x: 33.4, y: 18.9 },\r\n { x: 33.6, y: 19.1 },\r\n { x: 33.8, y: 19.3 },\r\n { x: 34, y: 19.5 },\r\n { x: 34.2, y: 19.7 },\r\n { x: 34.4, y: 19.8 },\r\n { x: 34.6, y: 20 },\r\n { x: 34.8, y: 20.2 },\r\n { x: 35, y: 20.4 },\r\n { x: 35.2, y: 20.6 },\r\n { x: 35.4, y: 20.8 },\r\n { x: 35.6, y: 21 },\r\n { x: 35.8, y: 21.2 },\r\n { x: 36, y: 21.4 },\r\n { x: 36.2, y: 21.6 },\r\n { x: 36.4, y: 21.8 },\r\n { x: 36.6, y: 22 },\r\n { x: 36.8, y: 22.2 },\r\n { x: 37, y: 22.4 },\r\n { x: 37.2, y: 22.6 },\r\n { x: 37.4, y: 22.9 },\r\n { x: 37.6, y: 23.1 },\r\n { x: 37.8, y: 23.4 },\r\n { x: 38, y: 23.6 },\r\n { x: 38.2, y: 23.9 },\r\n { x: 38.4, y: 24.1 },\r\n { x: 38.6, y: 24.4 },\r\n { x: 38.8, y: 24.6 },\r\n { x: 39.0, y: 24.8 },\r\n { x: 39.2, y: 25.0 },\r\n { x: 39.4, y: 25.2 },\r\n { x: 39.6, y: 25.4 },\r\n { x: 39.8, y: 25.6 },\r\n { x: 40.0, y: 25.8 },\r\n { x: 40.2, y: 26.0 },\r\n { x: 40.4, y: 26.2 },\r\n { x: 40.6, y: 26.5 },\r\n { x: 40.8, y: 26.8 },\r\n { x: 41, y: 27.1 },\r\n { x: 41.2, y: 27.3 },\r\n { x: 41.4, y: 27.6 },\r\n { x: 41.6, y: 27.9 },\r\n { x: 41.8, y: 28.1 },\r\n { x: 42, y: 28.5 },\r\n { x: 42.2, y: 28.7 },\r\n { x: 42.4, y: 29.0 },\r\n { x: 42.6, y: 29.3 },\r\n { x: 42.8, y: 29.5 },\r\n { x: 43, y: 29.8 },\r\n { x: 43.2, y: 30.1 },\r\n { x: 43.4, y: 30.4 },\r\n { x: 43.6, y: 30.6 },\r\n { x: 43.8, y: 30.9 },\r\n { x: 44.0, y: 31.2 },\r\n { x: 44.2, y: 31.5 },\r\n { x: 44.4, y: 31.8 },\r\n { x: 44.6, y: 32.1 },\r\n { x: 44.8, y: 32.4 },\r\n { x: 45.0, y: 32.7 },\r\n { x: 45.2, y: 33 },\r\n { x: 45.4, y: 33.2 },\r\n { x: 45.6, y: 33.5 },\r\n { x: 45.8, y: 33.9 },\r\n { x: 46.0, y: 34.2 },\r\n { x: 46.2, y: 34.4 },\r\n { x: 46.4, y: 34.7 },\r\n { x: 46.6, y: 35 },\r\n { x: 46.8, y: 35.3 },\r\n { x: 47.0, y: 35.6 },\r\n { x: 47.2, y: 36.0 },\r\n { x: 47.4, y: 36.3 },\r\n { x: 47.6, y: 36.6 },\r\n { x: 47.8, y: 36.9 },\r\n { x: 48, y: 37.2 },\r\n { x: 48.2, y: 37.5 },\r\n { x: 48.4, y: 37.8 },\r\n { x: 48.6, y: 38.1 },\r\n { x: 48.8, y: 38.4 },\r\n { x: 49, y: 38.8 },\r\n { x: 49.2, y: 39.1 },\r\n { x: 49.4, y: 39.4 },\r\n { x: 49.6, y: 39.7 },\r\n { x: 49.8, y: 40.1 },\r\n { x: 50, y: 40.4 },\r\n { x: 50.2, y: 40.7 },\r\n { x: 50.4, y: 41.0 },\r\n { x: 50.6, y: 41.4 },\r\n { x: 50.8, y: 41.7 },\r\n { x: 51, y: 42.0 },\r\n { x: 51.2, y: 42.3 },\r\n { x: 51.4, y: 42.7 },\r\n { x: 51.6, y: 43 },\r\n { x: 51.8, y: 43.3 },\r\n { x: 52, y: 43.7 },\r\n { x: 52.2, y: 44 },\r\n { x: 52.4, y: 44.4 },\r\n { x: 52.8, y: 45.1 },\r\n { x: 53.0, y: 45.4 },\r\n { x: 53.2, y: 45.8 },\r\n { x: 53.4, y: 46.1 },\r\n { x: 53.6, y: 46.4 },\r\n { x: 53.8, y: 46.8 },\r\n { x: 54.0, y: 47.1 },\r\n { x: 54.2, y: 47.5 },\r\n { x: 54.4, y: 47.9 },\r\n { x: 54.6, y: 48.2 },\r\n { x: 54.8, y: 48.5 },\r\n { x: 55, y: 48.9 },\r\n { x: 55.2, y: 49.3 },\r\n { x: 55.4, y: 49.6 },\r\n { x: 55.6, y: 50 },\r\n { x: 55.8, y: 50.3 },\r\n { x: 56.0, y: 50.7 },\r\n { x: 56.2, y: 51.1 },\r\n { x: 56.4, y: 51.4 },\r\n { x: 56.6, y: 51.8 },\r\n { x: 56.8, y: 52.2 },\r\n { x: 57, y: 52.5 },\r\n { x: 57.2, y: 52.9 },\r\n { x: 57.4, y: 53.3 },\r\n { x: 57.6, y: 56.3 },\r\n { x: 57.8, y: 56.7 },\r\n { x: 58, y: 57 },\r\n { x: 58.2, y: 57.4 },\r\n { x: 58.4, y: 57.8 },\r\n { x: 58.6, y: 58.2 },\r\n { x: 58.8, y: 58.6 },\r\n { x: 59, y: 59.0 },\r\n { x: 59.2, y: 59.4 },\r\n { x: 59.4, y: 59.8 },\r\n { x: 59.6, y: 60 },\r\n ];\r\n var t6_0 = [\r\n { x: 23.6, y: 10.1 },\r\n { x: 23.8, y: 10.2 },\r\n { x: 24.0, y: 10.4 },\r\n { x: 24.2, y: 10.6 },\r\n { x: 24.4, y: 10.8 },\r\n { x: 24.6, y: 10.9 },\r\n { x: 24.8, y: 11.1 },\r\n { x: 25.0, y: 11.3 },\r\n { x: 25.2, y: 11.5 },\r\n { x: 25.4, y: 11.7 },\r\n { x: 25.6, y: 11.8 },\r\n { x: 25.8, y: 12.0 },\r\n { x: 26, y: 12.2 },\r\n { x: 26.2, y: 12.4 },\r\n { x: 26.4, y: 12.6 },\r\n { x: 26.6, y: 12.8 },\r\n { x: 26.8, y: 12.9 },\r\n { x: 27, y: 13.1 },\r\n { x: 27.2, y: 13.3 },\r\n { x: 27.4, y: 13.4 },\r\n { x: 27.6, y: 13.6 },\r\n { x: 27.8, y: 13.7 },\r\n { x: 28.0, y: 13.9 },\r\n { x: 28.2, y: 14 },\r\n { x: 28.4, y: 14.2 },\r\n { x: 28.6, y: 14.3 },\r\n { x: 28.8, y: 14.5 },\r\n { x: 29, y: 14.6 },\r\n { x: 29.2, y: 14.8 },\r\n { x: 29.4, y: 15 },\r\n { x: 29.6, y: 15.1 },\r\n { x: 29.8, y: 15.3 },\r\n { x: 30, y: 15.4 },\r\n { x: 30.2, y: 15.6 },\r\n { x: 30.4, y: 15.8 },\r\n { x: 30.6, y: 16 },\r\n { x: 30.8, y: 16.2 },\r\n { x: 31, y: 16.4 },\r\n { x: 31.2, y: 16.6 },\r\n { x: 31.4, y: 16.9 },\r\n { x: 31.6, y: 17.1 },\r\n { x: 31.8, y: 17.3 },\r\n { x: 32, y: 17.5 },\r\n { x: 32.2, y: 17.7 },\r\n { x: 32.4, y: 17.9 },\r\n { x: 32.6, y: 18.1 },\r\n { x: 32.8, y: 18.3 },\r\n { x: 33, y: 18.5 },\r\n { x: 33.2, y: 18.7 },\r\n { x: 33.4, y: 18.9 },\r\n { x: 33.6, y: 19.1 },\r\n { x: 33.8, y: 19.3 },\r\n { x: 34, y: 19.5 },\r\n { x: 34.2, y: 19.7 },\r\n { x: 34.4, y: 19.8 },\r\n { x: 34.6, y: 20 },\r\n { x: 34.8, y: 20.2 },\r\n { x: 35, y: 20.4 },\r\n { x: 35.2, y: 20.6 },\r\n { x: 35.4, y: 20.8 },\r\n { x: 35.6, y: 21 },\r\n { x: 35.8, y: 21.2 },\r\n { x: 36, y: 21.4 },\r\n { x: 36.2, y: 21.6 },\r\n { x: 36.4, y: 21.8 },\r\n { x: 36.6, y: 22 },\r\n { x: 36.8, y: 22.2 },\r\n { x: 37, y: 22.4 },\r\n { x: 37.2, y: 22.6 },\r\n { x: 37.4, y: 22.9 },\r\n { x: 37.6, y: 23.1 },\r\n { x: 37.8, y: 23.4 },\r\n { x: 38, y: 23.6 },\r\n { x: 38.2, y: 23.9 },\r\n { x: 38.4, y: 24.1 },\r\n { x: 38.6, y: 24.4 },\r\n { x: 38.8, y: 24.6 },\r\n { x: 39.0, y: 24.8 },\r\n { x: 39.2, y: 25.0 },\r\n { x: 39.4, y: 25.2 },\r\n { x: 39.6, y: 25.4 },\r\n { x: 39.8, y: 25.6 },\r\n { x: 40.0, y: 25.8 },\r\n { x: 40.2, y: 26.0 },\r\n { x: 40.4, y: 26.2 },\r\n { x: 40.6, y: 26.5 },\r\n { x: 40.8, y: 26.8 },\r\n { x: 41, y: 27.1 },\r\n { x: 41.2, y: 27.3 },\r\n { x: 41.4, y: 27.6 },\r\n { x: 41.6, y: 27.9 },\r\n { x: 41.8, y: 28.1 },\r\n { x: 42, y: 28.5 },\r\n { x: 42.2, y: 28.7 },\r\n { x: 42.4, y: 29.0 },\r\n { x: 42.6, y: 29.3 },\r\n { x: 42.8, y: 29.5 },\r\n { x: 43, y: 29.8 },\r\n { x: 43.2, y: 30.1 },\r\n { x: 43.4, y: 30.4 },\r\n { x: 43.6, y: 30.6 },\r\n { x: 43.8, y: 30.9 },\r\n { x: 44.0, y: 31.2 },\r\n { x: 44.2, y: 31.5 },\r\n { x: 44.4, y: 31.8 },\r\n { x: 44.6, y: 32.1 },\r\n { x: 44.8, y: 32.4 },\r\n { x: 45.0, y: 32.7 },\r\n { x: 45.2, y: 33 },\r\n { x: 45.4, y: 33.2 },\r\n { x: 45.6, y: 33.5 },\r\n { x: 45.8, y: 33.9 },\r\n { x: 46.0, y: 34.2 },\r\n { x: 46.2, y: 34.4 },\r\n { x: 46.4, y: 34.7 },\r\n { x: 46.6, y: 35 },\r\n { x: 46.8, y: 35.3 },\r\n { x: 47.0, y: 35.6 },\r\n { x: 47.2, y: 36.0 },\r\n { x: 47.4, y: 36.3 },\r\n { x: 47.6, y: 36.6 },\r\n { x: 47.8, y: 36.9 },\r\n { x: 48, y: 37.2 },\r\n { x: 48.2, y: 37.5 },\r\n { x: 48.4, y: 37.8 },\r\n { x: 48.6, y: 38.1 },\r\n { x: 48.8, y: 38.4 },\r\n { x: 49, y: 38.8 },\r\n { x: 49.2, y: 39.1 },\r\n { x: 49.4, y: 39.4 },\r\n { x: 49.6, y: 39.7 },\r\n { x: 49.8, y: 40.1 },\r\n { x: 50, y: 40.4 },\r\n { x: 50.2, y: 40.7 },\r\n { x: 50.4, y: 41.0 },\r\n { x: 50.6, y: 41.4 },\r\n { x: 50.8, y: 41.7 },\r\n { x: 51, y: 42.0 },\r\n { x: 51.2, y: 42.3 },\r\n { x: 51.4, y: 42.7 },\r\n { x: 51.6, y: 43 },\r\n { x: 51.8, y: 43.3 },\r\n { x: 52, y: 43.7 },\r\n { x: 52.2, y: 44 },\r\n { x: 52.4, y: 44.4 },\r\n { x: 52.8, y: 45.1 },\r\n { x: 53.0, y: 45.4 },\r\n { x: 53.2, y: 45.8 },\r\n { x: 53.4, y: 46.1 },\r\n { x: 53.6, y: 46.4 },\r\n { x: 53.8, y: 46.8 },\r\n { x: 54.0, y: 47.1 },\r\n { x: 54.2, y: 47.5 },\r\n { x: 54.4, y: 47.9 },\r\n { x: 54.6, y: 48.2 },\r\n { x: 54.8, y: 48.5 },\r\n { x: 55, y: 48.9 },\r\n { x: 55.2, y: 49.3 },\r\n { x: 55.4, y: 49.6 },\r\n { x: 55.6, y: 50 },\r\n { x: 55.8, y: 50.3 },\r\n { x: 56.0, y: 50.7 },\r\n { x: 56.2, y: 51.1 },\r\n { x: 56.4, y: 51.4 },\r\n { x: 56.6, y: 51.8 },\r\n { x: 56.8, y: 52.2 },\r\n { x: 57, y: 52.5 },\r\n { x: 57.2, y: 52.9 },\r\n { x: 57.4, y: 53.3 },\r\n { x: 57.6, y: 53.7 },\r\n { x: 57.8, y: 54 },\r\n { x: 58, y: 54.4 },\r\n { x: 58.2, y: 54.8 },\r\n { x: 58.4, y: 55.2 },\r\n { x: 58.6, y: 55.6 },\r\n { x: 58.8, y: 55.9 },\r\n { x: 59, y: 56.3 },\r\n { x: 59.2, y: 56.7 },\r\n { x: 59.4, y: 57.1 },\r\n { x: 59.6, y: 57.5 },\r\n { x: 59.8, y: 57.9 },\r\n { x: 60, y: 58.3 },\r\n ];\r\n var arr_t = new Array();\r\n //碳化深度\r\n if (sd_value_po >= 0) {\r\n var intsd = sd_value * 1; //碳化深度\r\n if (intsd == '0') {\r\n arr_t = t0_0;\r\n } else if (intsd == '0.5') {\r\n arr_t = t0_5;\r\n } else if (intsd == '1') {\r\n arr_t = t1_0;\r\n } else if (intsd == '1.5') {\r\n arr_t = t1_5;\r\n } else if (intsd == '2') {\r\n arr_t = t2_0;\r\n } else if (intsd == '2.5') {\r\n arr_t = t2_5;\r\n } else if (intsd == '3') {\r\n arr_t = t3_0;\r\n } else if (intsd == '3.5') {\r\n arr_t = t3_5;\r\n } else if (intsd == '4') {\r\n arr_t = t4_0;\r\n } else if (intsd == '4.5') {\r\n arr_t = t4_5;\r\n } else if (intsd == '5') {\r\n arr_t = t5_0;\r\n } else if (intsd == '5.5') {\r\n arr_t = t5_5;\r\n } else if (intsd >= '6') {\r\n arr_t = t6_0;\r\n }\r\n\r\n var m = -1;\r\n for (i = 0; i < arr_t.length; i++) {\r\n if (arr_t[0].x * 1 > ht) {\r\n m = 1;\r\n break;\r\n } else if (arr_t[i].x * 1 > ht) {\r\n m = i;\r\n break;\r\n } else if (arr_t[arr_t.length - 1].x * 1 < ht) {\r\n m = arr_t.length - 1;\r\n break;\r\n } else if (ht == arr_t[i].x) {\r\n qdhsz = forComm.GetDataOddIncreaseEvenDecrease(arr_t[i].y, -1);\r\n break;\r\n }\r\n }\r\n\r\n if (m != -1) {\r\n var x1 = arr_t[m - 1].x;\r\n var y1 = arr_t[m - 1].y;\r\n var x2 = arr_t[m].x;\r\n var y2 = arr_t[m].y;\r\n //强度换算值arr_ky_str\r\n if (ht >= 53.0 && intsd == 2.0) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 48.0 && intsd == 0.0) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 49.0 && intsd == 0.5) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 50.2 && intsd == 1.0) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 51.6 && intsd == 1.5) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 54.0 && intsd == 2.5) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 55.2 && intsd == 3.0) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 55.8 && intsd == 3.5) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 56.6 && intsd == 4.0) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 58.2 && intsd == 4.5) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 59.6 && intsd == 5.0) {\r\n qdhsz = '>60.0';\r\n } else {\r\n qdhsz = forComm.GetDataOddIncreaseEvenDecrease(forComm.InterpolationMethod_y(x1, x2, y1, y2, ht), -1);\r\n if (qdhsz > 60) {\r\n qdhsz = '>60.0';\r\n }\r\n if (qdhsz < 10) {\r\n qdhsz = '<10.0';\r\n }\r\n }\r\n }\r\n }\r\n } else if (jzfs == '泵送混凝土') {\r\n //泵送混凝土的强度换算值\r\n var sd_value = thsd; // 碳化深度\r\n var ht = xzhhtz; // 回弹平均值\r\n var sd_value_po = ''; //角度所在数组位置;\r\n //平均碳化深度值arr_sd\r\n var arr_sd = new Array('0.0', '0.5', '1.0', '1.5', '2.0', '2.5', '3.0', '3.5', '4.0', '4.5', '5.0', '5.5', '6.0');\r\n for (var i = 0; i < arr_sd.length; i++) {\r\n if (sd_value == arr_sd[i]) {\r\n //角度 碳化深度的值\r\n sd_value_po = i; //角度所在数组位置;\r\n\r\n break;\r\n } else if (sd_value * 1 > '6.0') {\r\n sd_value_po = arr_sd.length - 1;\r\n break;\r\n }\r\n }\r\n var t0_0 = [\r\n { x: 18.6, y: 10.0 },\r\n { x: 18.8, y: 10.2 },\r\n { x: 19.0, y: 10.4 },\r\n { x: 19.2, y: 10.6 },\r\n { x: 19.4, y: 10.9 },\r\n { x: 19.6, y: 11.1 },\r\n { x: 19.8, y: 11.3 },\r\n { x: 20.0, y: 11.5 },\r\n { x: 20.2, y: 11.8 },\r\n { x: 20.4, y: 12.0 },\r\n { x: 20.6, y: 12.2 },\r\n { x: 20.8, y: 12.4 },\r\n { x: 21.0, y: 12.7 },\r\n { x: 21.2, y: 12.9 },\r\n { x: 21.4, y: 13.1 },\r\n { x: 21.6, y: 13.4 },\r\n { x: 21.8, y: 13.6 },\r\n { x: 22.0, y: 13.9 },\r\n { x: 22.2, y: 14.1 },\r\n { x: 22.4, y: 14.4 },\r\n { x: 22.6, y: 14.6 },\r\n { x: 22.8, y: 14.9 },\r\n { x: 23.0, y: 15.1 },\r\n { x: 23.2, y: 15.4 },\r\n { x: 23.4, y: 15.6 },\r\n { x: 23.6, y: 15.9 },\r\n { x: 23.8, y: 16.2 },\r\n { x: 24.0, y: 16.4 },\r\n { x: 24.2, y: 16.7 },\r\n { x: 24.4, y: 17.0 },\r\n { x: 24.6, y: 17.2 },\r\n { x: 24.8, y: 17.5 },\r\n { x: 25.0, y: 17.8 },\r\n { x: 25.2, y: 18.0 },\r\n { x: 25.4, y: 18.3 },\r\n { x: 25.6, y: 18.6 },\r\n { x: 25.8, y: 18.9 },\r\n { x: 26.0, y: 19.2 },\r\n { x: 26.2, y: 19.5 },\r\n { x: 26.4, y: 19.8 },\r\n { x: 26.6, y: 20.0 },\r\n { x: 26.8, y: 20.3 },\r\n { x: 27.0, y: 20.6 },\r\n { x: 27.2, y: 20.9 },\r\n { x: 27.4, y: 21.2 },\r\n { x: 27.6, y: 21.5 },\r\n { x: 27.8, y: 21.8 },\r\n { x: 28.0, y: 22.1 },\r\n { x: 28.2, y: 22.4 },\r\n { x: 28.4, y: 22.8 },\r\n { x: 28.6, y: 23.1 },\r\n { x: 28.8, y: 23.4 },\r\n { x: 29.0, y: 23.7 },\r\n { x: 29.2, y: 24.0 },\r\n { x: 29.4, y: 24.3 },\r\n { x: 29.6, y: 24.7 },\r\n { x: 29.8, y: 25.0 },\r\n { x: 30.0, y: 25.3 },\r\n { x: 30.2, y: 25.6 },\r\n { x: 30.4, y: 26.0 },\r\n { x: 30.6, y: 26.3 },\r\n { x: 30.8, y: 26.6 },\r\n { x: 31.0, y: 27.0 },\r\n { x: 31.2, y: 27.3 },\r\n { x: 31.4, y: 27.7 },\r\n { x: 31.6, y: 28.0 },\r\n { x: 31.8, y: 28.3 },\r\n { x: 32.0, y: 28.7 },\r\n { x: 32.2, y: 29.0 },\r\n { x: 32.4, y: 29.4 },\r\n { x: 32.6, y: 29.7 },\r\n { x: 32.8, y: 30.1 },\r\n { x: 33.0, y: 30.4 },\r\n { x: 33.2, y: 30.8 },\r\n { x: 33.4, y: 31.2 },\r\n { x: 33.6, y: 31.5 },\r\n { x: 33.8, y: 31.9 },\r\n { x: 34.0, y: 32.3 },\r\n { x: 34.2, y: 32.6 },\r\n { x: 34.4, y: 33.0 },\r\n { x: 34.6, y: 33.4 },\r\n { x: 34.8, y: 33.8 },\r\n { x: 35.0, y: 34.1 },\r\n { x: 35.2, y: 34.5 },\r\n { x: 35.4, y: 34.9 },\r\n { x: 35.6, y: 35.3 },\r\n { x: 35.8, y: 35.7 },\r\n { x: 36.0, y: 36.0 },\r\n { x: 36.2, y: 36.4 },\r\n { x: 36.4, y: 36.8 },\r\n { x: 36.6, y: 37.2 },\r\n { x: 36.8, y: 37.6 },\r\n { x: 37.0, y: 38.0 },\r\n { x: 37.2, y: 38.4 },\r\n { x: 37.4, y: 38.8 },\r\n { x: 37.6, y: 39.2 },\r\n { x: 37.8, y: 39.6 },\r\n { x: 38.0, y: 40.0 },\r\n { x: 38.2, y: 40.4 },\r\n { x: 38.4, y: 40.9 },\r\n { x: 38.6, y: 41.3 },\r\n { x: 38.8, y: 41.7 },\r\n { x: 39.0, y: 42.1 },\r\n { x: 39.2, y: 42.5 },\r\n { x: 39.4, y: 42.9 },\r\n { x: 39.6, y: 43.4 },\r\n { x: 39.8, y: 43.8 },\r\n { x: 40.0, y: 44.2 },\r\n { x: 40.2, y: 44.7 },\r\n { x: 40.4, y: 45.1 },\r\n { x: 40.6, y: 45.5 },\r\n { x: 40.8, y: 46.0 },\r\n { x: 41.0, y: 46.4 },\r\n { x: 41.2, y: 46.8 },\r\n { x: 41.4, y: 47.3 },\r\n { x: 41.6, y: 47.7 },\r\n { x: 41.8, y: 48.2 },\r\n { x: 42.0, y: 48.6 },\r\n { x: 42.2, y: 49.1 },\r\n { x: 42.4, y: 49.5 },\r\n { x: 42.6, y: 50.0 },\r\n { x: 42.8, y: 50.4 },\r\n { x: 43.0, y: 50.9 },\r\n { x: 43.2, y: 51.3 },\r\n { x: 43.4, y: 51.8 },\r\n { x: 43.6, y: 52.3 },\r\n { x: 43.8, y: 52.7 },\r\n { x: 44.0, y: 53.2 },\r\n { x: 44.2, y: 53.7 },\r\n { x: 44.4, y: 54.1 },\r\n { x: 44.6, y: 54.6 },\r\n { x: 44.8, y: 55.1 },\r\n { x: 45.0, y: 55.6 },\r\n { x: 45.2, y: 56.1 },\r\n { x: 45.4, y: 56.5 },\r\n { x: 45.6, y: 57.0 },\r\n { x: 45.8, y: 57.5 },\r\n { x: 46.0, y: 58.0 },\r\n { x: 46.2, y: 58.5 },\r\n { x: 46.4, y: 59.0 },\r\n { x: 46.6, y: 59.5 },\r\n { x: 46.8, y: 60.0 },\r\n ];\r\n var t0_5 = [\r\n { x: 18.8, y: 10.0 },\r\n { x: 19.0, y: 10.2 },\r\n { x: 19.2, y: 10.4 },\r\n { x: 19.4, y: 10.7 },\r\n { x: 19.6, y: 10.9 },\r\n { x: 19.8, y: 11.1 },\r\n { x: 20.0, y: 11.3 },\r\n { x: 20.2, y: 11.5 },\r\n { x: 20.4, y: 11.7 },\r\n { x: 20.6, y: 12.0 },\r\n { x: 20.8, y: 12.2 },\r\n { x: 21.0, y: 12.4 },\r\n { x: 21.2, y: 12.6 },\r\n { x: 21.4, y: 12.9 },\r\n { x: 21.6, y: 13.1 },\r\n { x: 21.8, y: 13.3 },\r\n { x: 22.0, y: 13.6 },\r\n { x: 22.2, y: 13.8 },\r\n { x: 22.4, y: 14.1 },\r\n { x: 22.6, y: 14.3 },\r\n { x: 22.8, y: 14.6 },\r\n { x: 23.0, y: 14.8 },\r\n { x: 23.2, y: 15.1 },\r\n { x: 23.4, y: 15.3 },\r\n { x: 23.6, y: 15.6 },\r\n { x: 23.8, y: 15.8 },\r\n { x: 24.0, y: 16.1 },\r\n { x: 24.2, y: 16.4 },\r\n { x: 24.4, y: 16.6 },\r\n { x: 24.6, y: 16.9 },\r\n { x: 24.8, y: 17.1 },\r\n { x: 25.0, y: 17.4 },\r\n { x: 25.2, y: 17.7 },\r\n { x: 25.4, y: 18.0 },\r\n { x: 25.6, y: 18.2 },\r\n { x: 25.8, y: 18.5 },\r\n { x: 26.0, y: 18.8 },\r\n { x: 26.2, y: 19.1 },\r\n { x: 26.4, y: 19.4 },\r\n { x: 26.6, y: 19.6 },\r\n { x: 26.8, y: 19.9 },\r\n { x: 27.0, y: 20.2 },\r\n { x: 27.2, y: 20.5 },\r\n { x: 27.4, y: 20.8 },\r\n { x: 27.6, y: 21.1 },\r\n { x: 27.8, y: 21.4 },\r\n { x: 28.0, y: 21.7 },\r\n { x: 28.2, y: 22.0 },\r\n { x: 28.4, y: 22.3 },\r\n { x: 28.6, y: 22.6 },\r\n { x: 28.8, y: 22.9 },\r\n { x: 29.0, y: 23.2 },\r\n { x: 29.2, y: 23.5 },\r\n { x: 29.4, y: 23.9 },\r\n { x: 29.6, y: 24.2 },\r\n { x: 29.8, y: 24.5 },\r\n { x: 30.0, y: 24.8 },\r\n { x: 30.2, y: 25.1 },\r\n { x: 30.4, y: 25.5 },\r\n { x: 30.6, y: 25.8 },\r\n { x: 30.8, y: 26.1 },\r\n { x: 31.0, y: 26.4 },\r\n { x: 31.2, y: 26.8 },\r\n { x: 31.4, y: 27.1 },\r\n { x: 31.6, y: 27.4 },\r\n { x: 31.8, y: 27.8 },\r\n { x: 32.0, y: 28.1 },\r\n { x: 32.2, y: 28.5 },\r\n { x: 32.4, y: 28.8 },\r\n { x: 32.6, y: 29.2 },\r\n { x: 32.8, y: 29.5 },\r\n { x: 33.0, y: 29.8 },\r\n { x: 33.2, y: 30.2 },\r\n { x: 33.4, y: 30.6 },\r\n { x: 33.6, y: 30.9 },\r\n { x: 33.8, y: 31.3 },\r\n { x: 34.0, y: 31.6 },\r\n { x: 34.2, y: 32.0 },\r\n { x: 34.4, y: 32.4 },\r\n { x: 34.6, y: 32.7 },\r\n { x: 34.8, y: 33.1 },\r\n { x: 35.0, y: 33.5 },\r\n { x: 35.2, y: 33.8 },\r\n { x: 35.4, y: 34.2 },\r\n { x: 35.6, y: 34.6 },\r\n { x: 35.8, y: 35.0 },\r\n { x: 36.0, y: 35.3 },\r\n { x: 36.2, y: 35.7 },\r\n { x: 36.4, y: 36.1 },\r\n { x: 36.6, y: 36.5 },\r\n { x: 36.8, y: 36.9 },\r\n { x: 37.0, y: 37.3 },\r\n { x: 37.2, y: 37.7 },\r\n { x: 37.4, y: 38.1 },\r\n { x: 37.6, y: 38.4 },\r\n { x: 37.8, y: 38.8 },\r\n { x: 38.0, y: 39.2 },\r\n { x: 38.2, y: 39.6 },\r\n { x: 38.4, y: 40.1 },\r\n { x: 38.6, y: 40.5 },\r\n { x: 38.8, y: 40.9 },\r\n { x: 39.0, y: 41.3 },\r\n { x: 39.2, y: 41.7 },\r\n { x: 39.4, y: 42.1 },\r\n { x: 39.6, y: 42.5 },\r\n { x: 39.8, y: 42.9 },\r\n { x: 40.0, y: 43.4 },\r\n { x: 40.2, y: 43.8 },\r\n { x: 40.4, y: 44.2 },\r\n { x: 40.6, y: 44.6 },\r\n { x: 40.8, y: 45.1 },\r\n { x: 41.0, y: 45.5 },\r\n { x: 41.2, y: 45.9 },\r\n { x: 41.4, y: 46.3 },\r\n { x: 41.6, y: 46.8 },\r\n { x: 41.8, y: 47.2 },\r\n { x: 42.0, y: 47.7 },\r\n { x: 42.2, y: 48.1 },\r\n { x: 42.4, y: 48.5 },\r\n { x: 42.6, y: 49.0 },\r\n { x: 42.8, y: 49.4 },\r\n { x: 43.0, y: 49.9 },\r\n { x: 43.2, y: 50.3 },\r\n { x: 43.4, y: 50.8 },\r\n { x: 43.6, y: 51.2 },\r\n { x: 43.8, y: 51.7 },\r\n { x: 44.0, y: 52.2 },\r\n { x: 44.2, y: 52.6 },\r\n { x: 44.4, y: 53.1 },\r\n { x: 44.6, y: 53.5 },\r\n { x: 44.8, y: 54.0 },\r\n { x: 45.0, y: 54.5 },\r\n { x: 45.2, y: 55.0 },\r\n { x: 45.4, y: 55.4 },\r\n { x: 45.6, y: 55.9 },\r\n { x: 45.8, y: 56.4 },\r\n { x: 46.0, y: 56.9 },\r\n { x: 46.2, y: 57.3 },\r\n { x: 46.4, y: 57.8 },\r\n { x: 46.6, y: 58.3 },\r\n { x: 46.8, y: 58.8 },\r\n { x: 47.0, y: 59.3 },\r\n { x: 47.2, y: 59.8 },\r\n { x: 47.4, y: 60.0 },\r\n ];\r\n var t1_0 = [\r\n { x: 19.0, y: 10.0 },\r\n { x: 19.2, y: 10.2 },\r\n { x: 19.4, y: 10.4 },\r\n { x: 19.6, y: 10.6 },\r\n { x: 19.8, y: 10.9 },\r\n { x: 20.0, y: 11.1 },\r\n { x: 20.2, y: 11.3 },\r\n { x: 20.4, y: 11.5 },\r\n { x: 20.6, y: 11.7 },\r\n { x: 20.8, y: 12.0 },\r\n { x: 21.0, y: 12.2 },\r\n { x: 21.2, y: 12.4 },\r\n { x: 21.4, y: 12.6 },\r\n { x: 21.6, y: 12.9 },\r\n { x: 21.8, y: 13.1 },\r\n { x: 22.0, y: 13.3 },\r\n { x: 22.2, y: 13.6 },\r\n { x: 22.4, y: 13.8 },\r\n { x: 22.6, y: 14.0 },\r\n { x: 22.8, y: 14.3 },\r\n { x: 23.0, y: 14.5 },\r\n { x: 23.2, y: 14.8 },\r\n { x: 23.4, y: 15.0 },\r\n { x: 23.6, y: 15.3 },\r\n { x: 23.8, y: 15.5 },\r\n { x: 24.0, y: 15.8 },\r\n { x: 24.2, y: 16.0 },\r\n { x: 24.4, y: 16.3 },\r\n { x: 24.6, y: 16.5 },\r\n { x: 24.8, y: 16.8 },\r\n { x: 25.0, y: 17.1 },\r\n { x: 25.2, y: 17.3 },\r\n { x: 25.4, y: 17.6 },\r\n { x: 25.6, y: 17.9 },\r\n { x: 25.8, y: 18.2 },\r\n { x: 26.0, y: 18.4 },\r\n { x: 26.2, y: 18.7 },\r\n { x: 26.4, y: 19.0 },\r\n { x: 26.6, y: 19.3 },\r\n { x: 26.8, y: 19.5 },\r\n { x: 27.0, y: 19.8 },\r\n { x: 27.2, y: 20.1 },\r\n { x: 27.4, y: 20.4 },\r\n { x: 27.6, y: 20.7 },\r\n { x: 27.8, y: 21.0 },\r\n { x: 28.0, y: 21.3 },\r\n { x: 28.2, y: 21.6 },\r\n { x: 28.4, y: 21.9 },\r\n { x: 28.6, y: 22.2 },\r\n { x: 28.8, y: 22.5 },\r\n { x: 29.0, y: 22.8 },\r\n { x: 29.2, y: 23.1 },\r\n { x: 29.4, y: 23.4 },\r\n { x: 29.6, y: 23.7 },\r\n { x: 29.8, y: 24.0 },\r\n { x: 30.0, y: 24.3 },\r\n { x: 30.2, y: 24.6 },\r\n { x: 30.4, y: 25.0 },\r\n { x: 30.6, y: 25.3 },\r\n { x: 30.8, y: 25.6 },\r\n { x: 31.0, y: 25.9 },\r\n { x: 31.2, y: 26.2 },\r\n { x: 31.4, y: 26.6 },\r\n { x: 31.6, y: 26.9 },\r\n { x: 31.8, y: 27.2 },\r\n { x: 32.0, y: 27.6 },\r\n { x: 32.2, y: 27.9 },\r\n { x: 32.4, y: 28.2 },\r\n { x: 32.6, y: 28.6 },\r\n { x: 32.8, y: 28.9 },\r\n { x: 33.0, y: 29.3 },\r\n { x: 33.2, y: 29.6 },\r\n { x: 33.4, y: 30.0 },\r\n { x: 33.6, y: 30.3 },\r\n { x: 33.8, y: 30.7 },\r\n { x: 34.0, y: 31.0 },\r\n { x: 34.2, y: 31.4 },\r\n { x: 34.4, y: 31.7 },\r\n { x: 34.6, y: 32.1 },\r\n { x: 34.8, y: 32.4 },\r\n { x: 35.0, y: 32.8 },\r\n { x: 35.2, y: 33.2 },\r\n { x: 35.4, y: 33.5 },\r\n { x: 35.6, y: 33.9 },\r\n { x: 35.8, y: 34.3 },\r\n { x: 36.0, y: 34.6 },\r\n { x: 36.2, y: 35.0 },\r\n { x: 36.4, y: 35.4 },\r\n { x: 36.6, y: 35.8 },\r\n { x: 36.8, y: 36.2 },\r\n { x: 37.0, y: 36.5 },\r\n { x: 37.2, y: 36.9 },\r\n { x: 37.4, y: 37.3 },\r\n { x: 37.6, y: 37.7 },\r\n { x: 37.8, y: 38.1 },\r\n { x: 38.0, y: 38.5 },\r\n { x: 38.2, y: 38.9 },\r\n { x: 38.4, y: 39.3 },\r\n { x: 38.6, y: 39.7 },\r\n { x: 38.8, y: 40.1 },\r\n { x: 39.0, y: 40.5 },\r\n { x: 39.2, y: 40.9 },\r\n { x: 39.4, y: 41.3 },\r\n { x: 39.6, y: 41.7 },\r\n { x: 39.8, y: 42.1 },\r\n { x: 40.0, y: 42.5 },\r\n { x: 40.2, y: 42.9 },\r\n { x: 40.4, y: 43.3 },\r\n { x: 40.6, y: 43.7 },\r\n { x: 40.8, y: 44.2 },\r\n { x: 41.0, y: 44.6 },\r\n { x: 41.2, y: 45.0 },\r\n { x: 41.4, y: 45.4 },\r\n { x: 41.6, y: 45.9 },\r\n { x: 41.8, y: 46.3 },\r\n { x: 42.0, y: 46.7 },\r\n { x: 42.2, y: 47.1 },\r\n { x: 42.4, y: 47.6 },\r\n { x: 42.6, y: 48.0 },\r\n { x: 42.8, y: 48.5 },\r\n { x: 43.0, y: 48.9 },\r\n { x: 43.2, y: 49.3 },\r\n { x: 43.4, y: 49.8 },\r\n { x: 43.6, y: 50.2 },\r\n { x: 43.8, y: 50.7 },\r\n { x: 44.0, y: 51.1 },\r\n { x: 44.2, y: 51.6 },\r\n { x: 44.4, y: 52.0 },\r\n { x: 44.6, y: 52.5 },\r\n { x: 44.8, y: 52.9 },\r\n { x: 45.0, y: 53.4 },\r\n { x: 45.2, y: 53.9 },\r\n { x: 45.4, y: 54.3 },\r\n { x: 45.6, y: 54.8 },\r\n { x: 45.8, y: 55.3 },\r\n { x: 46.0, y: 55.7 },\r\n { x: 46.2, y: 56.2 },\r\n { x: 46.4, y: 56.7 },\r\n { x: 46.6, y: 57.2 },\r\n { x: 46.8, y: 57.6 },\r\n { x: 47.0, y: 58.1 },\r\n { x: 47.2, y: 58.6 },\r\n { x: 47.4, y: 59.1 },\r\n { x: 47.6, y: 59.6 },\r\n { x: 47.8, y: 60.0 },\r\n ];\r\n var t1_5 = [\r\n { x: 19.2, y: 10.0 },\r\n { x: 19.4, y: 10.2 },\r\n { x: 19.6, y: 10.4 },\r\n { x: 19.8, y: 10.6 },\r\n { x: 20.0, y: 10.9 },\r\n { x: 20.2, y: 11.1 },\r\n { x: 20.4, y: 11.3 },\r\n { x: 20.6, y: 11.5 },\r\n { x: 20.8, y: 11.7 },\r\n { x: 21.0, y: 11.9 },\r\n { x: 21.2, y: 12.2 },\r\n { x: 21.4, y: 12.4 },\r\n { x: 21.6, y: 12.6 },\r\n { x: 21.8, y: 12.8 },\r\n { x: 22.0, y: 13.1 },\r\n { x: 22.2, y: 13.3 },\r\n { x: 22.4, y: 13.5 },\r\n { x: 22.6, y: 13.8 },\r\n { x: 22.8, y: 14.0 },\r\n { x: 23.0, y: 14.2 },\r\n { x: 23.2, y: 14.5 },\r\n { x: 23.4, y: 14.7 },\r\n { x: 23.6, y: 15.0 },\r\n { x: 23.8, y: 15.2 },\r\n { x: 24.0, y: 15.5 },\r\n { x: 24.2, y: 15.7 },\r\n { x: 24.4, y: 16.0 },\r\n { x: 24.6, y: 16.1 },\r\n { x: 24.8, y: 16.5 },\r\n { x: 25.0, y: 16.7 },\r\n { x: 25.2, y: 17.0 },\r\n { x: 25.4, y: 17.3 },\r\n { x: 25.6, y: 17.5 },\r\n { x: 25.8, y: 17.8 },\r\n { x: 26.0, y: 18.1 },\r\n { x: 26.2, y: 18.3 },\r\n { x: 26.4, y: 18.6 },\r\n { x: 26.6, y: 18.9 },\r\n { x: 26.8, y: 19.2 },\r\n { x: 27.0, y: 19.4 },\r\n { x: 27.2, y: 19.7 },\r\n { x: 27.4, y: 20.0 },\r\n { x: 27.6, y: 20.3 },\r\n { x: 27.8, y: 20.6 },\r\n { x: 28.0, y: 20.9 },\r\n { x: 28.2, y: 21.1 },\r\n { x: 28.4, y: 21.4 },\r\n { x: 28.6, y: 21.7 },\r\n { x: 28.8, y: 22.0 },\r\n { x: 29.0, y: 22.3 },\r\n { x: 29.2, y: 22.6 },\r\n { x: 29.4, y: 22.9 },\r\n { x: 29.6, y: 23.1 },\r\n { x: 29.8, y: 23.5 },\r\n { x: 30.0, y: 23.8 },\r\n { x: 30.2, y: 24.2 },\r\n { x: 30.4, y: 24.5 },\r\n { x: 30.6, y: 24.8 },\r\n { x: 30.8, y: 25.1 },\r\n { x: 31.0, y: 25.4 },\r\n { x: 31.2, y: 25.7 },\r\n { x: 31.4, y: 26.0 },\r\n { x: 31.6, y: 26.4 },\r\n { x: 31.8, y: 26.7 },\r\n { x: 32.0, y: 27.0 },\r\n { x: 32.2, y: 27.4 },\r\n { x: 32.4, y: 27.7 },\r\n { x: 32.6, y: 28.0 },\r\n { x: 32.8, y: 28.3 },\r\n { x: 33.0, y: 28.7 },\r\n { x: 33.2, y: 29.0 },\r\n { x: 33.4, y: 29.4 },\r\n { x: 33.6, y: 29.7 },\r\n { x: 33.8, y: 30.0 },\r\n { x: 34.0, y: 30.4 },\r\n { x: 34.2, y: 30.7 },\r\n { x: 34.4, y: 31.1 },\r\n { x: 34.6, y: 31.4 },\r\n { x: 34.8, y: 31.8 },\r\n { x: 35.0, y: 32.2 },\r\n { x: 35.2, y: 32.5 },\r\n { x: 35.4, y: 32.9 },\r\n { x: 35.6, y: 33.2 },\r\n { x: 35.8, y: 33.6 },\r\n { x: 36.0, y: 34.0 },\r\n { x: 36.2, y: 34.3 },\r\n { x: 36.4, y: 34.7 },\r\n { x: 36.6, y: 35.1 },\r\n { x: 36.8, y: 35.4 },\r\n { x: 37.0, y: 35.8 },\r\n { x: 37.2, y: 36.2 },\r\n { x: 37.4, y: 36.6 },\r\n { x: 37.6, y: 36.9 },\r\n { x: 37.8, y: 37.3 },\r\n { x: 38.0, y: 37.7 },\r\n { x: 38.2, y: 38.1 },\r\n { x: 38.4, y: 38.5 },\r\n { x: 38.6, y: 38.9 },\r\n { x: 38.8, y: 39.3 },\r\n { x: 39.0, y: 39.7 },\r\n { x: 39.2, y: 40.1 },\r\n { x: 39.4, y: 40.5 },\r\n { x: 39.6, y: 40.9 },\r\n { x: 39.8, y: 41.3 },\r\n { x: 40.0, y: 41.7 },\r\n { x: 40.2, y: 42.1 },\r\n { x: 40.4, y: 42.5 },\r\n { x: 40.6, y: 42.9 },\r\n { x: 40.8, y: 43.3 },\r\n { x: 41.0, y: 43.7 },\r\n { x: 41.2, y: 44.1 },\r\n { x: 41.4, y: 44.5 },\r\n { x: 41.6, y: 45.0 },\r\n { x: 41.8, y: 45.4 },\r\n { x: 42.0, y: 45.8 },\r\n { x: 42.2, y: 46.2 },\r\n { x: 42.4, y: 46.6 },\r\n { x: 42.6, y: 47.1 },\r\n { x: 42.8, y: 47.5 },\r\n { x: 43.0, y: 47.9 },\r\n { x: 43.2, y: 48.4 },\r\n { x: 43.4, y: 48.8 },\r\n { x: 43.6, y: 49.2 },\r\n { x: 43.8, y: 49.7 },\r\n { x: 44.0, y: 50.1 },\r\n { x: 44.2, y: 50.6 },\r\n { x: 44.4, y: 51.0 },\r\n { x: 44.6, y: 51.5 },\r\n { x: 44.8, y: 51.9 },\r\n { x: 45.0, y: 52.4 },\r\n { x: 45.2, y: 52.8 },\r\n { x: 45.4, y: 53.3 },\r\n { x: 45.6, y: 53.7 },\r\n { x: 45.8, y: 54.2 },\r\n { x: 46.0, y: 54.6 },\r\n { x: 46.2, y: 55.1 },\r\n { x: 46.4, y: 55.6 },\r\n { x: 46.6, y: 56.0 },\r\n { x: 46.8, y: 56.5 },\r\n { x: 47.0, y: 57.0 },\r\n { x: 47.2, y: 57.4 },\r\n { x: 47.4, y: 57.9 },\r\n { x: 47.6, y: 58.4 },\r\n { x: 47.8, y: 58.9 },\r\n { x: 48.0, y: 59.3 },\r\n { x: 48.2, y: 59.8 },\r\n { x: 48.4, y: 60.0 },\r\n ];\r\n var t2_0 = [\r\n { x: 19.4, y: 10.0 },\r\n { x: 19.6, y: 10.2 },\r\n { x: 19.8, y: 10.4 },\r\n { x: 20.0, y: 10.6 },\r\n { x: 20.2, y: 10.9 },\r\n { x: 20.4, y: 11.1 },\r\n { x: 20.6, y: 11.3 },\r\n { x: 20.8, y: 11.5 },\r\n { x: 21.0, y: 11.7 },\r\n { x: 21.2, y: 11.9 },\r\n { x: 21.4, y: 12.2 },\r\n { x: 21.6, y: 12.4 },\r\n { x: 21.8, y: 12.6 },\r\n { x: 22.0, y: 12.8 },\r\n { x: 22.2, y: 13.1 },\r\n { x: 22.4, y: 13.3 },\r\n { x: 22.6, y: 13.5 },\r\n { x: 22.8, y: 13.7 },\r\n { x: 23.0, y: 14.0 },\r\n { x: 23.2, y: 14.2 },\r\n { x: 23.4, y: 14.4 },\r\n { x: 23.6, y: 14.7 },\r\n { x: 23.8, y: 14.9 },\r\n { x: 24.0, y: 15.2 },\r\n { x: 24.2, y: 15.4 },\r\n { x: 24.4, y: 15.7 },\r\n { x: 24.6, y: 15.9 },\r\n { x: 24.8, y: 16.2 },\r\n { x: 25.0, y: 16.4 },\r\n { x: 25.2, y: 16.7 },\r\n { x: 25.4, y: 16.9 },\r\n { x: 25.6, y: 17.2 },\r\n { x: 25.8, y: 17.4 },\r\n { x: 26.0, y: 17.7 },\r\n { x: 26.2, y: 18.0 },\r\n { x: 26.4, y: 18.2 },\r\n { x: 26.6, y: 18.5 },\r\n { x: 26.8, y: 18.8 },\r\n { x: 27.0, y: 19.1 },\r\n { x: 27.2, y: 19.3 },\r\n { x: 27.4, y: 19.6 },\r\n { x: 27.6, y: 19.9 },\r\n { x: 27.8, y: 20.2 },\r\n { x: 28.0, y: 20.4 },\r\n { x: 28.2, y: 20.7 },\r\n { x: 28.4, y: 21.0 },\r\n { x: 28.6, y: 21.3 },\r\n { x: 28.8, y: 21.6 },\r\n { x: 29.0, y: 21.9 },\r\n { x: 29.2, y: 22.0 },\r\n { x: 29.4, y: 22.5 },\r\n { x: 29.6, y: 22.8 },\r\n { x: 29.8, y: 23.1 },\r\n { x: 30.0, y: 23.4 },\r\n { x: 30.2, y: 23.7 },\r\n { x: 30.4, y: 24.0 },\r\n { x: 30.6, y: 24.3 },\r\n { x: 30.8, y: 24.6 },\r\n { x: 31.0, y: 24.9 },\r\n { x: 31.2, y: 25.2 },\r\n { x: 31.4, y: 25.5 },\r\n { x: 31.6, y: 25.9 },\r\n { x: 31.8, y: 26.2 },\r\n { x: 32.0, y: 26.5 },\r\n { x: 32.2, y: 26.8 },\r\n { x: 32.4, y: 27.1 },\r\n { x: 32.6, y: 27.5 },\r\n { x: 32.8, y: 27.8 },\r\n { x: 33.0, y: 28.1 },\r\n { x: 33.2, y: 28.4 },\r\n { x: 33.4, y: 28.8 },\r\n { x: 33.6, y: 29.0 },\r\n { x: 33.8, y: 29.5 },\r\n { x: 34.0, y: 29.8 },\r\n { x: 34.2, y: 30.1 },\r\n { x: 34.4, y: 30.5 },\r\n { x: 34.6, y: 30.8 },\r\n { x: 34.8, y: 31.2 },\r\n { x: 35.0, y: 31.5 },\r\n { x: 35.2, y: 31.9 },\r\n { x: 35.4, y: 32.2 },\r\n { x: 35.6, y: 32.5 },\r\n { x: 35.8, y: 32.9 },\r\n { x: 36.0, y: 33.2 },\r\n { x: 36.2, y: 33.6 },\r\n { x: 36.4, y: 34.0 },\r\n { x: 36.6, y: 34.3 },\r\n { x: 36.8, y: 34.7 },\r\n { x: 37.0, y: 35.1 },\r\n { x: 37.2, y: 35.5 },\r\n { x: 37.4, y: 35.8 },\r\n { x: 37.6, y: 36.2 },\r\n { x: 37.8, y: 36.6 },\r\n { x: 38.0, y: 37.0 },\r\n { x: 38.2, y: 37.3 },\r\n { x: 38.4, y: 37.7 },\r\n { x: 38.6, y: 38.1 },\r\n { x: 38.8, y: 38.5 },\r\n { x: 39.0, y: 38.9 },\r\n { x: 39.2, y: 39.3 },\r\n { x: 39.4, y: 39.7 },\r\n { x: 39.6, y: 40.0 },\r\n { x: 39.8, y: 40.4 },\r\n { x: 40.0, y: 40.8 },\r\n { x: 40.2, y: 41.2 },\r\n { x: 40.4, y: 41.6 },\r\n { x: 40.6, y: 42.0 },\r\n { x: 40.8, y: 42.4 },\r\n { x: 41.0, y: 42.8 },\r\n { x: 41.2, y: 43.2 },\r\n { x: 41.4, y: 43.7 },\r\n { x: 41.6, y: 44.1 },\r\n { x: 41.8, y: 44.5 },\r\n { x: 42.0, y: 44.9 },\r\n { x: 42.2, y: 45.3 },\r\n { x: 42.4, y: 45.7 },\r\n { x: 42.6, y: 46.1 },\r\n { x: 42.8, y: 46.6 },\r\n { x: 43.0, y: 47.0 },\r\n { x: 43.2, y: 47.4 },\r\n { x: 43.4, y: 47.8 },\r\n { x: 43.6, y: 48.3 },\r\n { x: 43.8, y: 48.7 },\r\n { x: 44.0, y: 49.1 },\r\n { x: 44.2, y: 49.6 },\r\n { x: 44.4, y: 50.0 },\r\n { x: 44.6, y: 50.4 },\r\n { x: 44.8, y: 50.9 },\r\n { x: 45.0, y: 51.3 },\r\n { x: 45.2, y: 51.8 },\r\n { x: 45.4, y: 52.2 },\r\n { x: 45.6, y: 52.7 },\r\n { x: 45.8, y: 53.1 },\r\n { x: 46.0, y: 53.6 },\r\n { x: 46.2, y: 54.0 },\r\n { x: 46.4, y: 54.5 },\r\n { x: 46.6, y: 54.9 },\r\n { x: 46.8, y: 55.4 },\r\n { x: 47.0, y: 55.8 },\r\n { x: 47.2, y: 56.3 },\r\n { x: 47.4, y: 56.8 },\r\n { x: 47.6, y: 57.2 },\r\n { x: 47.8, y: 57.7 },\r\n { x: 48.0, y: 58.2 },\r\n { x: 48.2, y: 58.6 },\r\n { x: 48.4, y: 59.1 },\r\n { x: 48.6, y: 59.6 },\r\n { x: 48.8, y: 60.0 },\r\n ];\r\n var t2_5 = [\r\n { x: 19.6, y: 10.0 },\r\n { x: 19.8, y: 10.2 },\r\n { x: 20.0, y: 10.4 },\r\n { x: 20.2, y: 10.6 },\r\n { x: 20.4, y: 10.8 },\r\n { x: 20.6, y: 11.0 },\r\n { x: 20.8, y: 11.3 },\r\n { x: 21.0, y: 11.5 },\r\n { x: 21.2, y: 11.7 },\r\n { x: 21.4, y: 11.9 },\r\n { x: 21.6, y: 12.1 },\r\n { x: 21.8, y: 12.3 },\r\n { x: 22.0, y: 12.6 },\r\n { x: 22.2, y: 12.8 },\r\n { x: 22.4, y: 13.0 },\r\n { x: 22.6, y: 13.2 },\r\n { x: 22.8, y: 13.5 },\r\n { x: 23.0, y: 13.7 },\r\n { x: 23.2, y: 13.9 },\r\n { x: 23.4, y: 14.1 },\r\n { x: 23.6, y: 14.4 },\r\n { x: 23.8, y: 14.6 },\r\n { x: 24.0, y: 14.9 },\r\n { x: 24.2, y: 15.1 },\r\n { x: 24.4, y: 15.3 },\r\n { x: 24.6, y: 15.6 },\r\n { x: 24.8, y: 15.8 },\r\n { x: 25.0, y: 16.1 },\r\n { x: 25.2, y: 16.3 },\r\n { x: 25.4, y: 16.6 },\r\n { x: 25.6, y: 16.8 },\r\n { x: 25.8, y: 17.1 },\r\n { x: 26.0, y: 17.4 },\r\n { x: 26.2, y: 17.6 },\r\n { x: 26.4, y: 17.9 },\r\n { x: 26.6, y: 18.1 },\r\n { x: 26.8, y: 18.4 },\r\n { x: 27.0, y: 18.7 },\r\n { x: 27.2, y: 18.9 },\r\n { x: 27.4, y: 19.2 },\r\n { x: 27.6, y: 19.5 },\r\n { x: 27.8, y: 19.8 },\r\n { x: 28.0, y: 20.0 },\r\n { x: 28.2, y: 20.3 },\r\n { x: 28.4, y: 20.6 },\r\n { x: 28.6, y: 20.9 },\r\n { x: 28.8, y: 21.2 },\r\n { x: 29.0, y: 21.5 },\r\n { x: 29.2, y: 21.7 },\r\n { x: 29.4, y: 22.0 },\r\n { x: 29.6, y: 22.3 },\r\n { x: 29.8, y: 22.6 },\r\n { x: 30.0, y: 22.9 },\r\n { x: 30.2, y: 23.2 },\r\n { x: 30.4, y: 23.5 },\r\n { x: 30.6, y: 23.8 },\r\n { x: 30.8, y: 24.1 },\r\n { x: 31.0, y: 24.4 },\r\n { x: 31.2, y: 24.7 },\r\n { x: 31.4, y: 25.0 },\r\n { x: 31.6, y: 25.3 },\r\n { x: 31.8, y: 25.7 },\r\n { x: 32.0, y: 26.0 },\r\n { x: 32.2, y: 26.3 },\r\n { x: 32.4, y: 26.6 },\r\n { x: 32.6, y: 26.9 },\r\n { x: 32.8, y: 27.2 },\r\n { x: 33.0, y: 27.6 },\r\n { x: 33.2, y: 27.9 },\r\n { x: 33.4, y: 28.2 },\r\n { x: 33.6, y: 28.5 },\r\n { x: 33.8, y: 28.9 },\r\n { x: 34.0, y: 29.2 },\r\n { x: 34.2, y: 29.5 },\r\n { x: 34.4, y: 29.9 },\r\n { x: 34.6, y: 30.2 },\r\n { x: 34.8, y: 30.6 },\r\n { x: 35.0, y: 30.9 },\r\n { x: 35.2, y: 31.2 },\r\n { x: 35.4, y: 31.6 },\r\n { x: 35.6, y: 31.9 },\r\n { x: 35.8, y: 32.3 },\r\n { x: 36.0, y: 32.6 },\r\n { x: 36.2, y: 33.0 },\r\n { x: 36.4, y: 33.3 },\r\n { x: 36.6, y: 33.7 },\r\n { x: 36.8, y: 34.1 },\r\n { x: 37.0, y: 34.4 },\r\n { x: 37.2, y: 34.8 },\r\n { x: 37.4, y: 35.1 },\r\n { x: 37.6, y: 35.5 },\r\n { x: 37.8, y: 35.9 },\r\n { x: 38.0, y: 36.2 },\r\n { x: 38.2, y: 36.6 },\r\n { x: 38.4, y: 37.0 },\r\n { x: 38.6, y: 37.3 },\r\n { x: 38.8, y: 37.7 },\r\n { x: 39.0, y: 38.1 },\r\n { x: 39.2, y: 38.5 },\r\n { x: 39.4, y: 38.9 },\r\n { x: 39.6, y: 39.3 },\r\n { x: 39.8, y: 39.7 },\r\n { x: 40.0, y: 40.0 },\r\n { x: 40.2, y: 40.4 },\r\n { x: 40.4, y: 40.8 },\r\n { x: 40.6, y: 41.2 },\r\n { x: 40.8, y: 41.6 },\r\n { x: 41.0, y: 42.0 },\r\n { x: 41.2, y: 42.4 },\r\n { x: 41.4, y: 42.8 },\r\n { x: 41.6, y: 43.2 },\r\n { x: 41.8, y: 43.6 },\r\n { x: 42.0, y: 44.0 },\r\n { x: 42.2, y: 44.4 },\r\n { x: 42.4, y: 44.8 },\r\n { x: 42.6, y: 45.2 },\r\n { x: 42.8, y: 45.6 },\r\n { x: 43.0, y: 46.1 },\r\n { x: 43.2, y: 46.5 },\r\n { x: 43.4, y: 46.9 },\r\n { x: 43.6, y: 47.3 },\r\n { x: 43.8, y: 47.7 },\r\n { x: 44.0, y: 48.2 },\r\n { x: 44.2, y: 48.6 },\r\n { x: 44.4, y: 49.0 },\r\n { x: 44.6, y: 49.4 },\r\n { x: 44.8, y: 49.9 },\r\n { x: 45.0, y: 50.3 },\r\n { x: 45.2, y: 50.7 },\r\n { x: 45.4, y: 51.2 },\r\n { x: 45.6, y: 51.6 },\r\n { x: 45.8, y: 52.1 },\r\n { x: 46.0, y: 52.5 },\r\n { x: 46.2, y: 52.9 },\r\n { x: 46.4, y: 53.4 },\r\n { x: 46.6, y: 53.8 },\r\n { x: 46.8, y: 54.3 },\r\n { x: 47.0, y: 54.7 },\r\n { x: 47.2, y: 55.2 },\r\n { x: 47.4, y: 55.6 },\r\n { x: 47.6, y: 56.1 },\r\n { x: 47.8, y: 56.6 },\r\n { x: 48.0, y: 57.0 },\r\n { x: 48.2, y: 57.5 },\r\n { x: 48.4, y: 57.9 },\r\n { x: 48.6, y: 58.4 },\r\n { x: 48.8, y: 58.9 },\r\n { x: 49.0, y: 59.3 },\r\n { x: 49.2, y: 59.8 },\r\n { x: 49.4, y: 60.0 },\r\n ];\r\n var t3_0 = [\r\n { x: 19.8, y: 10.0 },\r\n { x: 20.0, y: 10.2 },\r\n { x: 20.2, y: 10.4 },\r\n { x: 20.4, y: 10.6 },\r\n { x: 20.6, y: 10.8 },\r\n { x: 20.8, y: 11.0 },\r\n { x: 21.0, y: 11.2 },\r\n { x: 21.2, y: 11.5 },\r\n { x: 21.4, y: 11.7 },\r\n { x: 21.6, y: 11.9 },\r\n { x: 21.8, y: 12.1 },\r\n { x: 22.0, y: 12.3 },\r\n { x: 22.2, y: 12.5 },\r\n { x: 22.4, y: 12.7 },\r\n { x: 22.6, y: 13.0 },\r\n { x: 22.8, y: 13.2 },\r\n { x: 23.0, y: 13.4 },\r\n { x: 23.2, y: 13.6 },\r\n { x: 23.4, y: 13.9 },\r\n { x: 23.6, y: 14.1 },\r\n { x: 23.8, y: 14.3 },\r\n { x: 24.0, y: 14.6 },\r\n { x: 24.2, y: 14.8 },\r\n { x: 24.4, y: 15.0 },\r\n { x: 24.6, y: 15.3 },\r\n { x: 24.8, y: 15.5 },\r\n { x: 25.0, y: 15.8 },\r\n { x: 25.2, y: 16.0 },\r\n { x: 25.4, y: 16.3 },\r\n { x: 25.6, y: 16.5 },\r\n { x: 25.8, y: 16.8 },\r\n { x: 26.0, y: 17.0 },\r\n { x: 26.2, y: 17.3 },\r\n { x: 26.4, y: 17.5 },\r\n { x: 26.6, y: 17.8 },\r\n { x: 26.8, y: 18.0 },\r\n { x: 27.0, y: 18.3 },\r\n { x: 27.2, y: 18.6 },\r\n { x: 27.4, y: 18.8 },\r\n { x: 27.6, y: 19.1 },\r\n { x: 27.8, y: 19.4 },\r\n { x: 28.0, y: 19.6 },\r\n { x: 28.2, y: 19.9 },\r\n { x: 28.4, y: 20.2 },\r\n { x: 28.6, y: 20.5 },\r\n { x: 28.8, y: 20.7 },\r\n { x: 29.0, y: 21.0 },\r\n { x: 29.2, y: 21.3 },\r\n { x: 29.4, y: 21.6 },\r\n { x: 29.6, y: 21.9 },\r\n { x: 29.8, y: 22.2 },\r\n { x: 30.0, y: 22.5 },\r\n { x: 30.2, y: 22.8 },\r\n { x: 30.4, y: 23.0 },\r\n { x: 30.6, y: 23.3 },\r\n { x: 30.8, y: 23.6 },\r\n { x: 31.0, y: 23.9 },\r\n { x: 31.2, y: 24.2 },\r\n { x: 31.4, y: 24.5 },\r\n { x: 31.6, y: 24.8 },\r\n { x: 31.8, y: 25.1 },\r\n { x: 32.0, y: 25.5 },\r\n { x: 32.2, y: 25.8 },\r\n { x: 32.4, y: 26.1 },\r\n { x: 32.6, y: 26.4 },\r\n { x: 32.8, y: 26.7 },\r\n { x: 33.0, y: 27.0 },\r\n { x: 33.2, y: 27.3 },\r\n { x: 33.4, y: 27.7 },\r\n { x: 33.6, y: 28.0 },\r\n { x: 33.8, y: 28.3 },\r\n { x: 34.0, y: 28.6 },\r\n { x: 34.2, y: 29.0 },\r\n { x: 34.4, y: 29.3 },\r\n { x: 34.6, y: 29.6 },\r\n { x: 34.8, y: 30.0 },\r\n { x: 35.0, y: 30.3 },\r\n { x: 35.2, y: 30.6 },\r\n { x: 35.4, y: 31.0 },\r\n { x: 35.6, y: 31.3 },\r\n { x: 35.8, y: 31.6 },\r\n { x: 36.0, y: 32.0 },\r\n { x: 36.2, y: 32.3 },\r\n { x: 36.4, y: 32.7 },\r\n { x: 36.6, y: 33.0 },\r\n { x: 36.8, y: 33.4 },\r\n { x: 37.0, y: 33.7 },\r\n { x: 37.2, y: 34.1 },\r\n { x: 37.4, y: 34.4 },\r\n { x: 37.6, y: 38.4 },\r\n { x: 37.8, y: 35.2 },\r\n { x: 38.0, y: 35.5 },\r\n { x: 38.2, y: 35.9 },\r\n { x: 38.4, y: 36.3 },\r\n { x: 38.6, y: 36.6 },\r\n { x: 38.8, y: 37.0 },\r\n { x: 39.0, y: 37.4 },\r\n { x: 39.2, y: 37.7 },\r\n { x: 39.4, y: 38.1 },\r\n { x: 39.6, y: 38.5 },\r\n { x: 39.8, y: 38.9 },\r\n { x: 40.0, y: 39.2 },\r\n { x: 40.2, y: 39.6 },\r\n { x: 40.4, y: 40.0 },\r\n { x: 40.6, y: 40.4 },\r\n { x: 40.8, y: 40.8 },\r\n { x: 41.0, y: 41.2 },\r\n { x: 41.2, y: 41.6 },\r\n { x: 41.4, y: 42.0 },\r\n { x: 41.6, y: 42.3 },\r\n { x: 41.8, y: 42.7 },\r\n { x: 42.0, y: 43.1 },\r\n { x: 42.2, y: 43.5 },\r\n { x: 42.4, y: 43.9 },\r\n { x: 42.6, y: 44.3 },\r\n { x: 42.8, y: 44.7 },\r\n { x: 43.0, y: 45.2 },\r\n { x: 43.2, y: 45.6 },\r\n { x: 43.4, y: 46.0 },\r\n { x: 43.6, y: 46.4 },\r\n { x: 43.8, y: 46.8 },\r\n { x: 44.0, y: 47.2 },\r\n { x: 44.2, y: 47.6 },\r\n { x: 44.4, y: 48.0 },\r\n { x: 44.6, y: 48.5 },\r\n { x: 44.8, y: 48.9 },\r\n { x: 45.0, y: 49.3 },\r\n { x: 45.2, y: 49.7 },\r\n { x: 45.4, y: 50.2 },\r\n { x: 45.6, y: 50.6 },\r\n { x: 45.8, y: 51.0 },\r\n { x: 46.0, y: 51.5 },\r\n { x: 46.2, y: 51.9 },\r\n { x: 46.4, y: 52.3 },\r\n { x: 46.6, y: 52.8 },\r\n { x: 46.8, y: 53.2 },\r\n { x: 47.0, y: 53.7 },\r\n { x: 47.2, y: 54.1 },\r\n { x: 47.4, y: 54.5 },\r\n { x: 47.6, y: 55.0 },\r\n { x: 47.8, y: 55.4 },\r\n { x: 48.0, y: 55.9 },\r\n { x: 48.2, y: 56.3 },\r\n { x: 48.4, y: 56.8 },\r\n { x: 48.6, y: 57.3 },\r\n { x: 48.8, y: 57.7 },\r\n { x: 49.0, y: 58.2 },\r\n { x: 49.2, y: 58.6 },\r\n { x: 49.4, y: 59.1 },\r\n { x: 49.6, y: 59.6 },\r\n { x: 49.8, y: 60.0 },\r\n ];\r\n var t3_5 = [\r\n { x: 20.0, y: 10.0 },\r\n { x: 20.2, y: 10.2 },\r\n { x: 20.4, y: 10.4 },\r\n { x: 20.6, y: 10.6 },\r\n { x: 20.8, y: 10.8 },\r\n { x: 21.0, y: 11.0 },\r\n { x: 21.2, y: 11.2 },\r\n { x: 21.4, y: 11.4 },\r\n { x: 21.6, y: 11.6 },\r\n { x: 21.8, y: 11.9 },\r\n { x: 22.0, y: 12.1 },\r\n { x: 22.2, y: 12.3 },\r\n { x: 22.4, y: 12.5 },\r\n { x: 22.6, y: 12.7 },\r\n { x: 22.8, y: 12.9 },\r\n { x: 23.0, y: 13.1 },\r\n { x: 23.2, y: 13.4 },\r\n { x: 23.4, y: 13.6 },\r\n { x: 23.6, y: 13.8 },\r\n { x: 23.8, y: 14.1 },\r\n { x: 24.0, y: 14.3 },\r\n { x: 24.2, y: 14.5 },\r\n { x: 24.4, y: 14.7 },\r\n { x: 24.6, y: 15.0 },\r\n { x: 24.8, y: 15.2 },\r\n { x: 25.0, y: 15.5 },\r\n { x: 25.2, y: 15.7 },\r\n { x: 25.4, y: 15.9 },\r\n { x: 25.6, y: 16.2 },\r\n { x: 25.8, y: 16.4 },\r\n { x: 26.0, y: 16.7 },\r\n { x: 26.2, y: 16.9 },\r\n { x: 26.4, y: 17.2 },\r\n { x: 26.6, y: 17.4 },\r\n { x: 26.8, y: 17.7 },\r\n { x: 27.0, y: 17.9 },\r\n { x: 27.2, y: 18.2 },\r\n { x: 27.4, y: 18.5 },\r\n { x: 27.6, y: 18.7 },\r\n { x: 27.8, y: 19.0 },\r\n { x: 28.0, y: 19.3 },\r\n { x: 28.2, y: 19.5 },\r\n { x: 28.4, y: 19.8 },\r\n { x: 28.6, y: 20.1 },\r\n { x: 28.8, y: 20.3 },\r\n { x: 29.0, y: 20.6 },\r\n { x: 29.2, y: 20.9 },\r\n { x: 29.4, y: 21.2 },\r\n { x: 29.6, y: 21.4 },\r\n { x: 29.8, y: 21.7 },\r\n { x: 30.0, y: 22.0 },\r\n { x: 30.2, y: 22.3 },\r\n { x: 30.4, y: 22.6 },\r\n { x: 30.6, y: 22.9 },\r\n { x: 30.8, y: 23.2 },\r\n { x: 31.0, y: 23.5 },\r\n { x: 31.2, y: 23.8 },\r\n { x: 31.4, y: 24.1 },\r\n { x: 31.6, y: 24.4 },\r\n { x: 31.8, y: 24.7 },\r\n { x: 32.0, y: 25.0 },\r\n { x: 32.2, y: 25.3 },\r\n { x: 32.4, y: 25.6 },\r\n { x: 32.6, y: 25.9 },\r\n { x: 32.8, y: 26.2 },\r\n { x: 33.0, y: 26.5 },\r\n { x: 33.2, y: 26.8 },\r\n { x: 33.4, y: 27.1 },\r\n { x: 33.6, y: 27.4 },\r\n { x: 33.8, y: 27.7 },\r\n { x: 34.0, y: 28.1 },\r\n { x: 34.2, y: 28.4 },\r\n { x: 34.4, y: 28.7 },\r\n { x: 34.6, y: 29.0 },\r\n { x: 34.8, y: 29.4 },\r\n { x: 35.0, y: 29.7 },\r\n { x: 35.2, y: 30.0 },\r\n { x: 35.4, y: 30.4 },\r\n { x: 35.6, y: 30.7 },\r\n { x: 35.8, y: 31.0 },\r\n { x: 36.0, y: 31.4 },\r\n { x: 36.2, y: 31.7 },\r\n { x: 36.4, y: 32.0 },\r\n { x: 36.6, y: 32.4 },\r\n { x: 36.8, y: 32.7 },\r\n { x: 37.0, y: 33.1 },\r\n { x: 37.2, y: 33.4 },\r\n { x: 37.4, y: 33.8 },\r\n { x: 37.6, y: 34.1 },\r\n { x: 37.8, y: 34.5 },\r\n { x: 38.0, y: 34.8 },\r\n { x: 38.2, y: 35.2 },\r\n { x: 38.4, y: 35.5 },\r\n { x: 38.6, y: 35.9 },\r\n { x: 38.8, y: 36.3 },\r\n { x: 39.0, y: 36.6 },\r\n { x: 39.2, y: 37.0 },\r\n { x: 39.4, y: 37.4 },\r\n { x: 39.6, y: 37.7 },\r\n { x: 39.8, y: 38.1 },\r\n { x: 40.0, y: 38.5 },\r\n { x: 40.2, y: 38.8 },\r\n { x: 40.4, y: 39.2 },\r\n { x: 40.6, y: 39.6 },\r\n { x: 40.8, y: 40.0 },\r\n { x: 41.0, y: 40.4 },\r\n { x: 41.2, y: 40.7 },\r\n { x: 41.4, y: 41.1 },\r\n { x: 41.6, y: 41.5 },\r\n { x: 41.8, y: 41.9 },\r\n { x: 42.0, y: 42.3 },\r\n { x: 42.2, y: 42.7 },\r\n { x: 42.4, y: 43.1 },\r\n { x: 42.6, y: 43.5 },\r\n { x: 42.8, y: 43.9 },\r\n { x: 43.0, y: 44.3 },\r\n { x: 43.2, y: 44.7 },\r\n { x: 43.4, y: 45.1 },\r\n { x: 43.6, y: 45.5 },\r\n { x: 43.8, y: 45.9 },\r\n { x: 44.0, y: 46.3 },\r\n { x: 44.2, y: 46.7 },\r\n { x: 44.4, y: 47.1 },\r\n { x: 44.6, y: 47.5 },\r\n { x: 44.8, y: 47.9 },\r\n { x: 45.0, y: 48.3 },\r\n { x: 45.2, y: 48.8 },\r\n { x: 45.4, y: 49.2 },\r\n { x: 45.6, y: 49.6 },\r\n { x: 45.8, y: 50.0 },\r\n { x: 46.0, y: 50.5 },\r\n { x: 46.2, y: 50.9 },\r\n { x: 46.4, y: 51.3 },\r\n { x: 46.6, y: 51.7 },\r\n { x: 46.8, y: 52.2 },\r\n { x: 47.0, y: 52.6 },\r\n { x: 47.2, y: 53.0 },\r\n { x: 47.4, y: 53.5 },\r\n { x: 47.6, y: 53.9 },\r\n { x: 47.8, y: 54.4 },\r\n { x: 48.0, y: 54.8 },\r\n { x: 48.2, y: 55.2 },\r\n { x: 48.4, y: 55.7 },\r\n { x: 48.6, y: 56.1 },\r\n { x: 48.8, y: 56.6 },\r\n { x: 49.0, y: 57.0 },\r\n { x: 49.2, y: 57.5 },\r\n { x: 49.4, y: 57.9 },\r\n { x: 49.6, y: 58.4 },\r\n { x: 49.8, y: 58.8 },\r\n { x: 50.0, y: 59.3 },\r\n { x: 50.2, y: 59.8 },\r\n { x: 50.4, y: 60.0 },\r\n ];\r\n var t4_0 = [\r\n { x: 20.2, y: 10.0 },\r\n { x: 20.4, y: 10.2 },\r\n { x: 20.6, y: 10.4 },\r\n { x: 20.8, y: 10.6 },\r\n { x: 21.0, y: 10.8 },\r\n { x: 21.2, y: 11.0 },\r\n { x: 21.4, y: 11.2 },\r\n { x: 21.6, y: 11.4 },\r\n { x: 21.8, y: 11.6 },\r\n { x: 22.0, y: 11.8 },\r\n { x: 22.2, y: 12.0 },\r\n { x: 22.4, y: 12.2 },\r\n { x: 22.6, y: 12.5 },\r\n { x: 22.8, y: 12.7 },\r\n { x: 23.0, y: 12.9 },\r\n { x: 23.2, y: 13.1 },\r\n { x: 23.4, y: 13.3 },\r\n { x: 23.6, y: 13.5 },\r\n { x: 23.8, y: 13.8 },\r\n { x: 24.0, y: 14.0 },\r\n { x: 24.2, y: 14.2 },\r\n { x: 24.4, y: 14.5 },\r\n { x: 24.6, y: 14.7 },\r\n { x: 24.8, y: 14.9 },\r\n { x: 25.0, y: 15.2 },\r\n { x: 25.2, y: 15.4 },\r\n { x: 25.4, y: 15.6 },\r\n { x: 25.6, y: 15.9 },\r\n { x: 25.8, y: 16.1 },\r\n { x: 26.0, y: 16.3 },\r\n { x: 26.2, y: 16.6 },\r\n { x: 26.4, y: 16.8 },\r\n { x: 26.6, y: 17.1 },\r\n { x: 26.8, y: 17.3 },\r\n { x: 27.0, y: 17.6 },\r\n { x: 27.2, y: 17.8 },\r\n { x: 27.4, y: 18.1 },\r\n { x: 27.6, y: 18.4 },\r\n { x: 27.8, y: 18.6 },\r\n { x: 28.0, y: 18.9 },\r\n { x: 28.2, y: 19.1 },\r\n { x: 28.4, y: 19.4 },\r\n { x: 28.6, y: 19.7 },\r\n { x: 28.8, y: 19.9 },\r\n { x: 29.0, y: 20.2 },\r\n { x: 29.2, y: 20.5 },\r\n { x: 29.4, y: 20.8 },\r\n { x: 29.6, y: 21.0 },\r\n { x: 29.8, y: 21.3 },\r\n { x: 30.0, y: 21.6 },\r\n { x: 30.2, y: 21.9 },\r\n { x: 30.4, y: 22.1 },\r\n { x: 30.6, y: 22.4 },\r\n { x: 30.8, y: 22.7 },\r\n { x: 31.0, y: 23.0 },\r\n { x: 31.2, y: 23.6 },\r\n { x: 31.4, y: 23.6 },\r\n { x: 31.6, y: 23.9 },\r\n { x: 31.8, y: 24.2 },\r\n { x: 32.0, y: 24.5 },\r\n { x: 32.2, y: 24.8 },\r\n { x: 32.4, y: 25.1 },\r\n { x: 32.6, y: 25.4 },\r\n { x: 32.8, y: 25.7 },\r\n { x: 33.0, y: 26.0 },\r\n { x: 33.2, y: 26.3 },\r\n { x: 33.4, y: 26.6 },\r\n { x: 33.6, y: 26.9 },\r\n { x: 33.8, y: 27.2 },\r\n { x: 34.0, y: 27.5 },\r\n { x: 34.2, y: 27.8 },\r\n { x: 34.4, y: 28.1 },\r\n { x: 34.6, y: 28.5 },\r\n { x: 34.8, y: 28.8 },\r\n { x: 35.0, y: 29.1 },\r\n { x: 35.2, y: 29.4 },\r\n { x: 35.4, y: 29.8 },\r\n { x: 35.6, y: 30.1 },\r\n { x: 35.8, y: 30.4 },\r\n { x: 36.0, y: 30.7 },\r\n { x: 36.2, y: 31.1 },\r\n { x: 36.4, y: 31.4 },\r\n { x: 36.6, y: 31.7 },\r\n { x: 36.8, y: 32.1 },\r\n { x: 37.0, y: 32.4 },\r\n { x: 37.2, y: 32.8 },\r\n { x: 37.4, y: 33.1 },\r\n { x: 37.6, y: 33.4 },\r\n { x: 37.8, y: 33.8 },\r\n { x: 38.0, y: 34.1 },\r\n { x: 38.2, y: 34.5 },\r\n { x: 38.4, y: 34.8 },\r\n { x: 38.6, y: 35.2 },\r\n { x: 38.8, y: 35.5 },\r\n { x: 39.0, y: 35.9 },\r\n { x: 39.2, y: 36.3 },\r\n { x: 39.4, y: 36.6 },\r\n { x: 39.6, y: 37.0 },\r\n { x: 39.8, y: 37.3 },\r\n { x: 40.0, y: 37.7 },\r\n { x: 40.2, y: 38.1 },\r\n { x: 40.4, y: 38.4 },\r\n { x: 40.6, y: 38.8 },\r\n { x: 40.8, y: 39.2 },\r\n { x: 41.0, y: 39.6 },\r\n { x: 41.2, y: 39.9 },\r\n { x: 41.4, y: 40.3 },\r\n { x: 41.6, y: 40.7 },\r\n { x: 41.8, y: 41.1 },\r\n { x: 42.0, y: 41.5 },\r\n { x: 42.2, y: 41.8 },\r\n { x: 42.4, y: 42.2 },\r\n { x: 42.6, y: 42.6 },\r\n { x: 42.8, y: 43.0 },\r\n { x: 43.0, y: 43.4 },\r\n { x: 43.2, y: 43.8 },\r\n { x: 43.4, y: 44.2 },\r\n { x: 43.6, y: 44.6 },\r\n { x: 43.8, y: 45.0 },\r\n { x: 44.0, y: 45.4 },\r\n { x: 44.2, y: 45.8 },\r\n { x: 44.4, y: 46.2 },\r\n { x: 44.6, y: 46.6 },\r\n { x: 44.8, y: 47.0 },\r\n { x: 45.0, y: 47.4 },\r\n { x: 45.2, y: 47.8 },\r\n { x: 45.4, y: 48.2 },\r\n { x: 45.6, y: 48.6 },\r\n { x: 45.8, y: 49.0 },\r\n { x: 46.0, y: 49.5 },\r\n { x: 46.2, y: 49.9 },\r\n { x: 46.4, y: 50.3 },\r\n { x: 46.6, y: 50.7 },\r\n { x: 46.8, y: 51.1 },\r\n { x: 47.0, y: 51.6 },\r\n { x: 47.2, y: 52.0 },\r\n { x: 47.4, y: 52.4 },\r\n { x: 47.6, y: 52.8 },\r\n { x: 47.8, y: 53.3 },\r\n { x: 48.0, y: 53.7 },\r\n { x: 48.2, y: 54.1 },\r\n { x: 48.4, y: 54.6 },\r\n { x: 48.6, y: 55.0 },\r\n { x: 48.8, y: 55.5 },\r\n { x: 49.0, y: 55.9 },\r\n { x: 49.2, y: 56.3 },\r\n { x: 49.4, y: 56.8 },\r\n { x: 49.6, y: 57.2 },\r\n { x: 49.8, y: 57.7 },\r\n { x: 50.0, y: 58.1 },\r\n { x: 50.2, y: 58.6 },\r\n { x: 50.4, y: 59.0 },\r\n { x: 50.6, y: 59.5 },\r\n { x: 50.8, y: 60.0 },\r\n ];\r\n var t4_5 = [\r\n { x: 20.4, y: 10.0 },\r\n { x: 20.6, y: 10.2 },\r\n { x: 20.8, y: 10.4 },\r\n { x: 21.0, y: 10.6 },\r\n { x: 21.2, y: 10.8 },\r\n { x: 21.4, y: 11.0 },\r\n { x: 21.6, y: 11.2 },\r\n { x: 21.8, y: 11.4 },\r\n { x: 22.0, y: 11.6 },\r\n { x: 22.2, y: 11.8 },\r\n { x: 22.4, y: 12.0 },\r\n { x: 22.6, y: 12.2 },\r\n { x: 22.8, y: 12.4 },\r\n { x: 23.0, y: 12.6 },\r\n { x: 23.2, y: 12.8 },\r\n { x: 23.4, y: 13.1 },\r\n { x: 23.6, y: 13.1 },\r\n { x: 23.8, y: 13.5 },\r\n { x: 24.0, y: 13.7 },\r\n { x: 24.2, y: 13.9 },\r\n { x: 24.4, y: 14.2 },\r\n { x: 24.6, y: 14.4 },\r\n { x: 24.8, y: 14.6 },\r\n { x: 25.0, y: 14.9 },\r\n { x: 25.2, y: 15.1 },\r\n { x: 25.4, y: 15.3 },\r\n { x: 25.6, y: 15.6 },\r\n { x: 25.8, y: 15.8 },\r\n { x: 26.0, y: 16.0 },\r\n { x: 26.2, y: 16.3 },\r\n { x: 26.4, y: 16.5 },\r\n { x: 26.6, y: 16.8 },\r\n { x: 26.8, y: 17.0 },\r\n { x: 27.0, y: 17.2 },\r\n { x: 27.2, y: 17.5 },\r\n { x: 27.4, y: 17.7 },\r\n { x: 27.6, y: 18.0 },\r\n { x: 27.8, y: 18.3 },\r\n { x: 28.0, y: 18.5 },\r\n { x: 28.2, y: 18.8 },\r\n { x: 28.4, y: 19.0 },\r\n { x: 28.6, y: 19.3 },\r\n { x: 28.8, y: 19.5 },\r\n { x: 29.0, y: 19.8 },\r\n { x: 29.2, y: 20.1 },\r\n { x: 29.4, y: 20.3 },\r\n { x: 29.6, y: 20.6 },\r\n { x: 29.8, y: 20.9 },\r\n { x: 30.0, y: 21.2 },\r\n { x: 30.2, y: 21.4 },\r\n { x: 30.4, y: 21.7 },\r\n { x: 30.6, y: 22.0 },\r\n { x: 30.8, y: 22.3 },\r\n { x: 31.0, y: 22.5 },\r\n { x: 31.2, y: 22.8 },\r\n { x: 31.4, y: 23.1 },\r\n { x: 31.6, y: 23.4 },\r\n { x: 31.8, y: 23.7 },\r\n { x: 32.0, y: 24.0 },\r\n { x: 32.2, y: 24.3 },\r\n { x: 32.4, y: 24.6 },\r\n { x: 32.6, y: 24.9 },\r\n { x: 32.8, y: 25.2 },\r\n { x: 33.0, y: 25.5 },\r\n { x: 33.2, y: 25.8 },\r\n { x: 33.4, y: 26.1 },\r\n { x: 33.6, y: 26.4 },\r\n { x: 33.8, y: 26.7 },\r\n { x: 34.0, y: 27.0 },\r\n { x: 34.2, y: 27.3 },\r\n { x: 34.4, y: 27.6 },\r\n { x: 34.6, y: 27.9 },\r\n { x: 34.8, y: 28.2 },\r\n { x: 35.0, y: 28.5 },\r\n { x: 35.2, y: 28.8 },\r\n { x: 35.4, y: 29.2 },\r\n { x: 35.6, y: 29.5 },\r\n { x: 35.8, y: 29.8 },\r\n { x: 36.0, y: 30.1 },\r\n { x: 36.2, y: 30.5 },\r\n { x: 36.4, y: 30.8 },\r\n { x: 36.6, y: 31.1 },\r\n { x: 36.8, y: 31.4 },\r\n { x: 37.0, y: 31.8 },\r\n { x: 37.2, y: 32.1 },\r\n { x: 37.4, y: 32.4 },\r\n { x: 37.6, y: 32.8 },\r\n { x: 37.8, y: 33.1 },\r\n { x: 38.0, y: 33.5 },\r\n { x: 38.2, y: 33.8 },\r\n { x: 38.4, y: 34.2 },\r\n { x: 38.6, y: 34.5 },\r\n { x: 38.8, y: 34.8 },\r\n { x: 39.0, y: 35.2 },\r\n { x: 39.2, y: 35.5 },\r\n { x: 39.4, y: 35.9 },\r\n { x: 39.6, y: 36.3 },\r\n { x: 39.8, y: 36.6 },\r\n { x: 40.0, y: 37.0 },\r\n { x: 40.2, y: 37.3 },\r\n { x: 40.4, y: 37.7 },\r\n { x: 40.6, y: 38.1 },\r\n { x: 40.8, y: 38.4 },\r\n { x: 41.0, y: 38.8 },\r\n { x: 41.2, y: 39.1 },\r\n { x: 41.4, y: 39.5 },\r\n { x: 41.6, y: 39.9 },\r\n { x: 41.8, y: 40.3 },\r\n { x: 42.0, y: 40.6 },\r\n { x: 42.2, y: 41.0 },\r\n { x: 42.4, y: 41.4 },\r\n { x: 42.6, y: 41.8 },\r\n { x: 42.8, y: 42.2 },\r\n { x: 43.0, y: 42.5 },\r\n { x: 43.2, y: 42.9 },\r\n { x: 43.4, y: 43.3 },\r\n { x: 43.6, y: 43.7 },\r\n { x: 43.8, y: 44.1 },\r\n { x: 44.0, y: 44.5 },\r\n { x: 44.2, y: 44.9 },\r\n { x: 44.4, y: 45.3 },\r\n { x: 44.6, y: 45.7 },\r\n { x: 44.8, y: 46.1 },\r\n { x: 45.0, y: 46.5 },\r\n { x: 45.2, y: 46.9 },\r\n { x: 45.4, y: 47.3 },\r\n { x: 45.6, y: 47.7 },\r\n { x: 45.8, y: 48.1 },\r\n { x: 46.0, y: 48.5 },\r\n { x: 46.2, y: 48.9 },\r\n { x: 46.4, y: 49.3 },\r\n { x: 46.6, y: 49.7 },\r\n { x: 46.8, y: 50.1 },\r\n { x: 47.0, y: 50.5 },\r\n { x: 47.2, y: 51.0 },\r\n { x: 47.4, y: 51.4 },\r\n { x: 47.6, y: 51.8 },\r\n { x: 47.8, y: 52.2 },\r\n { x: 48.0, y: 52.7 },\r\n { x: 48.2, y: 53.1 },\r\n { x: 48.4, y: 53.5 },\r\n { x: 48.6, y: 53.9 },\r\n { x: 48.8, y: 54.4 },\r\n { x: 49.0, y: 54.8 },\r\n { x: 49.2, y: 55.2 },\r\n { x: 49.4, y: 55.7 },\r\n { x: 49.6, y: 56.1 },\r\n { x: 49.8, y: 56.6 },\r\n { x: 50.0, y: 57.0 },\r\n { x: 50.2, y: 57.4 },\r\n { x: 50.4, y: 57.9 },\r\n { x: 50.6, y: 58.3 },\r\n { x: 50.8, y: 58.8 },\r\n { x: 51.0, y: 59.2 },\r\n { x: 51.2, y: 59.7 },\r\n { x: 51.4, y: 60.0 },\r\n ];\r\n var t5_0 = [\r\n { x: 20.6, y: 10.0 },\r\n { x: 20.8, y: 10.2 },\r\n { x: 21.0, y: 10.4 },\r\n { x: 21.2, y: 10.6 },\r\n { x: 21.4, y: 10.8 },\r\n { x: 21.6, y: 11.0 },\r\n { x: 21.8, y: 11.2 },\r\n { x: 22.0, y: 11.4 },\r\n { x: 22.2, y: 11.6 },\r\n { x: 22.4, y: 11.8 },\r\n { x: 22.6, y: 12.0 },\r\n { x: 22.8, y: 12.2 },\r\n { x: 23.0, y: 12.4 },\r\n { x: 23.2, y: 12.6 },\r\n { x: 23.4, y: 12.8 },\r\n { x: 23.6, y: 13.0 },\r\n { x: 23.8, y: 13.2 },\r\n { x: 24.0, y: 13.5 },\r\n { x: 24.2, y: 13.7 },\r\n { x: 24.4, y: 13.9 },\r\n { x: 24.6, y: 14.1 },\r\n { x: 24.8, y: 14.3 },\r\n { x: 25.0, y: 14.6 },\r\n { x: 25.2, y: 14.8 },\r\n { x: 25.4, y: 15.0 },\r\n { x: 25.6, y: 15.2 },\r\n { x: 25.8, y: 15.5 },\r\n { x: 26.0, y: 15.7 },\r\n { x: 26.2, y: 15.9 },\r\n { x: 26.4, y: 16.2 },\r\n { x: 26.6, y: 16.4 },\r\n { x: 26.8, y: 16.7 },\r\n { x: 27.0, y: 16.9 },\r\n { x: 27.2, y: 17.1 },\r\n { x: 27.4, y: 17.4 },\r\n { x: 27.6, y: 17.6 },\r\n { x: 27.8, y: 17.9 },\r\n { x: 28.0, y: 18.1 },\r\n { x: 28.2, y: 18.4 },\r\n { x: 28.4, y: 18.6 },\r\n { x: 28.6, y: 18.9 },\r\n { x: 28.8, y: 19.2 },\r\n { x: 29.0, y: 19.4 },\r\n { x: 29.2, y: 19.7 },\r\n { x: 29.4, y: 19.9 },\r\n { x: 29.6, y: 20.2 },\r\n { x: 29.8, y: 20.5 },\r\n { x: 30.0, y: 20.7 },\r\n { x: 30.2, y: 21.0 },\r\n { x: 30.4, y: 21.3 },\r\n { x: 30.6, y: 21.6 },\r\n { x: 30.8, y: 21.8 },\r\n { x: 31.0, y: 22.1 },\r\n { x: 31.2, y: 22.4 },\r\n { x: 31.4, y: 22.7 },\r\n { x: 31.6, y: 22.9 },\r\n { x: 31.8, y: 23.2 },\r\n { x: 32.0, y: 23.5 },\r\n { x: 32.2, y: 23.8 },\r\n { x: 32.4, y: 24.1 },\r\n { x: 32.6, y: 24.4 },\r\n { x: 32.8, y: 24.7 },\r\n { x: 33.0, y: 25.0 },\r\n { x: 33.2, y: 25.2 },\r\n { x: 33.4, y: 25.5 },\r\n { x: 33.6, y: 25.8 },\r\n { x: 33.8, y: 26.1 },\r\n { x: 34.0, y: 26.4 },\r\n { x: 34.2, y: 26.4 },\r\n { x: 34.4, y: 27.0 },\r\n { x: 34.6, y: 27.4 },\r\n { x: 34.8, y: 27.7 },\r\n { x: 35.0, y: 28.0 },\r\n { x: 35.2, y: 28.3 },\r\n { x: 35.4, y: 28.6 },\r\n { x: 35.6, y: 28.9 },\r\n { x: 35.8, y: 29.2 },\r\n { x: 36.0, y: 29.5 },\r\n { x: 36.2, y: 29.9 },\r\n { x: 36.4, y: 30.2 },\r\n { x: 36.6, y: 30.5 },\r\n { x: 36.8, y: 30.8 },\r\n { x: 37.0, y: 31.2 },\r\n { x: 37.2, y: 31.5 },\r\n { x: 37.4, y: 31.8 },\r\n { x: 37.6, y: 32.1 },\r\n { x: 37.8, y: 32.5 },\r\n { x: 38.0, y: 32.8 },\r\n { x: 38.2, y: 33.1 },\r\n { x: 38.4, y: 33.5 },\r\n { x: 38.6, y: 33.8 },\r\n { x: 38.8, y: 34.2 },\r\n { x: 39.0, y: 34.5 },\r\n { x: 39.2, y: 34.8 },\r\n { x: 39.4, y: 35.2 },\r\n { x: 39.6, y: 35.5 },\r\n { x: 39.8, y: 35.9 },\r\n { x: 40.0, y: 36.2 },\r\n { x: 40.2, y: 36.6 },\r\n { x: 40.4, y: 36.9 },\r\n { x: 40.6, y: 37.3 },\r\n { x: 40.8, y: 37.7 },\r\n { x: 41.0, y: 38.0 },\r\n { x: 41.2, y: 38.4 },\r\n { x: 41.4, y: 38.7 },\r\n { x: 41.6, y: 39.1 },\r\n { x: 41.8, y: 39.5 },\r\n { x: 42.0, y: 39.8 },\r\n { x: 42.2, y: 40.2 },\r\n { x: 42.4, y: 40.6 },\r\n { x: 42.6, y: 40.9 },\r\n { x: 42.8, y: 41.3 },\r\n { x: 43.0, y: 41.7 },\r\n { x: 43.2, y: 42.1 },\r\n { x: 43.4, y: 42.5 },\r\n { x: 43.6, y: 42.8 },\r\n { x: 43.8, y: 43.2 },\r\n { x: 44.0, y: 43.6 },\r\n { x: 44.2, y: 44.0 },\r\n { x: 44.4, y: 44.4 },\r\n { x: 44.6, y: 44.8 },\r\n { x: 44.8, y: 45.1 },\r\n { x: 45.0, y: 45.5 },\r\n { x: 45.2, y: 45.9 },\r\n { x: 45.4, y: 46.3 },\r\n { x: 45.6, y: 46.7 },\r\n { x: 45.8, y: 47.1 },\r\n { x: 46.0, y: 47.5 },\r\n { x: 46.2, y: 47.9 },\r\n { x: 46.4, y: 48.3 },\r\n { x: 46.6, y: 48.7 },\r\n { x: 46.8, y: 49.1 },\r\n { x: 47.0, y: 49.5 },\r\n { x: 47.2, y: 50.5 },\r\n { x: 47.4, y: 50.4 },\r\n { x: 47.6, y: 50.8 },\r\n { x: 47.8, y: 51.2 },\r\n { x: 48.0, y: 51.6 },\r\n { x: 48.2, y: 52.0 },\r\n { x: 48.4, y: 52.5 },\r\n { x: 48.6, y: 52.9 },\r\n { x: 48.8, y: 53.3 },\r\n { x: 49.0, y: 53.7 },\r\n { x: 49.2, y: 54.1 },\r\n { x: 49.4, y: 54.6 },\r\n { x: 49.6, y: 55.0 },\r\n { x: 49.8, y: 55.4 },\r\n { x: 50.0, y: 55.9 },\r\n { x: 50.2, y: 56.3 },\r\n { x: 50.4, y: 56.7 },\r\n { x: 50.6, y: 57.2 },\r\n { x: 50.8, y: 57.6 },\r\n { x: 51.0, y: 58.1 },\r\n { x: 51.2, y: 58.5 },\r\n { x: 51.4, y: 58.9 },\r\n { x: 51.6, y: 59.4 },\r\n { x: 51.8, y: 59.8 },\r\n { x: 52.0, y: 60.0 },\r\n ];\r\n var t5_5 = [\r\n { x: 20.8, y: 10.0 },\r\n { x: 21.0, y: 10.2 },\r\n { x: 21.2, y: 10.4 },\r\n { x: 21.4, y: 10.6 },\r\n { x: 21.6, y: 10.7 },\r\n { x: 21.8, y: 10.9 },\r\n { x: 22.0, y: 11.1 },\r\n { x: 22.2, y: 11.3 },\r\n { x: 22.4, y: 11.5 },\r\n { x: 22.6, y: 11.7 },\r\n { x: 22.8, y: 11.9 },\r\n { x: 23.0, y: 12.1 },\r\n { x: 23.2, y: 12.3 },\r\n { x: 23.4, y: 12.6 },\r\n { x: 23.6, y: 12.8 },\r\n { x: 23.8, y: 13.0 },\r\n { x: 24.0, y: 13.2 },\r\n { x: 24.2, y: 13.4 },\r\n { x: 24.4, y: 13.6 },\r\n { x: 24.6, y: 13.8 },\r\n { x: 24.8, y: 14.1 },\r\n { x: 25.0, y: 14.3 },\r\n { x: 25.2, y: 14.5 },\r\n { x: 25.4, y: 14.7 },\r\n { x: 25.6, y: 14.9 },\r\n { x: 25.8, y: 15.2 },\r\n { x: 26.0, y: 15.4 },\r\n { x: 26.2, y: 15.6 },\r\n { x: 26.4, y: 15.9 },\r\n { x: 26.6, y: 16.1 },\r\n { x: 26.8, y: 16.3 },\r\n { x: 27.0, y: 16.6 },\r\n { x: 27.2, y: 16.8 },\r\n { x: 27.4, y: 17.1 },\r\n { x: 27.6, y: 17.3 },\r\n { x: 27.8, y: 17.5 },\r\n { x: 28.0, y: 17.8 },\r\n { x: 28.2, y: 18.0 },\r\n { x: 28.4, y: 18.3 },\r\n { x: 28.6, y: 18.5 },\r\n { x: 28.8, y: 18.8 },\r\n { x: 29.0, y: 19.0 },\r\n { x: 29.2, y: 19.3 },\r\n { x: 29.4, y: 19.5 },\r\n { x: 29.6, y: 19.8 },\r\n { x: 29.8, y: 20.1 },\r\n { x: 30.0, y: 20.3 },\r\n { x: 30.2, y: 20.6 },\r\n { x: 30.4, y: 20.9 },\r\n { x: 30.6, y: 21.1 },\r\n { x: 30.8, y: 21.4 },\r\n { x: 31.0, y: 21.7 },\r\n { x: 31.2, y: 21.9 },\r\n { x: 31.4, y: 22.2 },\r\n { x: 31.6, y: 22.5 },\r\n { x: 31.8, y: 22.8 },\r\n { x: 32.0, y: 23.0 },\r\n { x: 32.2, y: 23.3 },\r\n { x: 32.4, y: 23.6 },\r\n { x: 32.6, y: 23.9 },\r\n { x: 32.8, y: 24.2 },\r\n { x: 33.0, y: 24.5 },\r\n { x: 33.2, y: 24.7 },\r\n { x: 33.4, y: 25.0 },\r\n { x: 33.6, y: 25.3 },\r\n { x: 33.8, y: 25.6 },\r\n { x: 34.0, y: 25.9 },\r\n { x: 34.2, y: 26.2 },\r\n { x: 34.4, y: 26.5 },\r\n { x: 34.6, y: 26.8 },\r\n { x: 34.8, y: 27.1 },\r\n { x: 35.0, y: 27.4 },\r\n { x: 35.2, y: 27.7 },\r\n { x: 35.4, y: 28.0 },\r\n { x: 35.6, y: 28.3 },\r\n { x: 35.8, y: 28.6 },\r\n { x: 36.0, y: 29.0 },\r\n { x: 36.2, y: 29.3 },\r\n { x: 36.4, y: 29.6 },\r\n { x: 36.6, y: 29.9 },\r\n { x: 36.8, y: 30.2 },\r\n { x: 37.0, y: 30.5 },\r\n { x: 37.2, y: 30.9 },\r\n { x: 37.4, y: 31.2 },\r\n { x: 37.6, y: 31.5 },\r\n { x: 37.8, y: 31.8 },\r\n { x: 38.0, y: 32.2 },\r\n { x: 38.2, y: 32.5 },\r\n { x: 38.4, y: 32.8 },\r\n { x: 38.6, y: 33.2 },\r\n { x: 38.8, y: 33.5 },\r\n { x: 39.0, y: 33.8 },\r\n { x: 39.2, y: 34.2 },\r\n { x: 39.4, y: 34.5 },\r\n { x: 39.6, y: 34.8 },\r\n { x: 39.8, y: 35.2 },\r\n { x: 40.0, y: 35.5 },\r\n { x: 40.2, y: 35.9 },\r\n { x: 40.4, y: 36.2 },\r\n { x: 40.6, y: 36.6 },\r\n { x: 40.8, y: 36.9 },\r\n { x: 41.0, y: 37.3 },\r\n { x: 41.2, y: 37.6 },\r\n { x: 41.4, y: 38.0 },\r\n { x: 41.6, y: 38.3 },\r\n { x: 41.8, y: 38.7 },\r\n { x: 42.0, y: 39.1 },\r\n { x: 42.2, y: 39.4 },\r\n { x: 42.4, y: 39.8 },\r\n { x: 42.6, y: 40.1 },\r\n { x: 42.8, y: 40.5 },\r\n { x: 43.0, y: 40.9 },\r\n { x: 43.2, y: 41.2 },\r\n { x: 43.4, y: 41.6 },\r\n { x: 43.6, y: 42.0 },\r\n { x: 43.8, y: 42.4 },\r\n { x: 44.0, y: 42.7 },\r\n { x: 44.2, y: 43.1 },\r\n { x: 44.4, y: 43.5 },\r\n { x: 44.6, y: 43.9 },\r\n { x: 44.8, y: 44.3 },\r\n { x: 45.0, y: 44.6 },\r\n { x: 45.2, y: 45.0 },\r\n { x: 45.4, y: 45.4 },\r\n { x: 45.6, y: 45.8 },\r\n { x: 45.8, y: 46.2 },\r\n { x: 46.0, y: 46.6 },\r\n { x: 46.2, y: 47.0 },\r\n { x: 46.4, y: 47.4 },\r\n { x: 46.6, y: 47.8 },\r\n { x: 46.8, y: 48.2 },\r\n { x: 47.0, y: 48.6 },\r\n { x: 47.2, y: 49.0 },\r\n { x: 47.4, y: 49.4 },\r\n { x: 47.6, y: 49.8 },\r\n { x: 47.8, y: 50.2 },\r\n { x: 48.0, y: 50.6 },\r\n { x: 48.2, y: 51.0 },\r\n { x: 48.4, y: 51.4 },\r\n { x: 48.6, y: 51.8 },\r\n { x: 48.8, y: 52.2 },\r\n { x: 49.0, y: 52.7 },\r\n { x: 49.2, y: 53.1 },\r\n { x: 49.4, y: 53.5 },\r\n { x: 49.6, y: 53.9 },\r\n { x: 49.8, y: 54.3 },\r\n { x: 50.0, y: 54.8 },\r\n { x: 50.2, y: 55.2 },\r\n { x: 50.4, y: 55.6 },\r\n { x: 50.6, y: 56.0 },\r\n { x: 50.8, y: 56.5 },\r\n { x: 51.0, y: 56.9 },\r\n { x: 51.2, y: 57.3 },\r\n { x: 51.4, y: 57.8 },\r\n { x: 51.6, y: 58.2 },\r\n { x: 51.8, y: 58.7 },\r\n { x: 52.0, y: 59.1 },\r\n { x: 52.2, y: 59.5 },\r\n { x: 52.4, y: 60.0 },\r\n ];\r\n var t6_0 = [\r\n { x: 21.0, y: 10.0 },\r\n { x: 21.2, y: 10.2 },\r\n { x: 21.4, y: 10.3 },\r\n { x: 21.6, y: 10.5 },\r\n { x: 21.8, y: 10.7 },\r\n { x: 22.0, y: 10.9 },\r\n { x: 22.2, y: 11.1 },\r\n { x: 22.4, y: 11.3 },\r\n { x: 22.6, y: 11.5 },\r\n { x: 22.8, y: 11.7 },\r\n { x: 23.0, y: 11.9 },\r\n { x: 23.2, y: 12.1 },\r\n { x: 23.4, y: 12.3 },\r\n { x: 23.6, y: 12.5 },\r\n { x: 23.8, y: 12.7 },\r\n { x: 24.0, y: 12.9 },\r\n { x: 24.2, y: 13.1 },\r\n { x: 24.4, y: 13.3 },\r\n { x: 24.6, y: 13.6 },\r\n { x: 24.8, y: 13.8 },\r\n { x: 25.0, y: 14.0 },\r\n { x: 25.2, y: 14.2 },\r\n { x: 25.4, y: 14.4 },\r\n { x: 25.6, y: 14.7 },\r\n { x: 25.8, y: 14.9 },\r\n { x: 26.0, y: 15.1 },\r\n { x: 26.2, y: 15.3 },\r\n { x: 26.4, y: 15.6 },\r\n { x: 26.6, y: 15.8 },\r\n { x: 26.8, y: 16.0 },\r\n { x: 27.0, y: 16.2 },\r\n { x: 27.2, y: 16.5 },\r\n { x: 27.4, y: 16.7 },\r\n { x: 27.6, y: 17.0 },\r\n { x: 27.8, y: 17.2 },\r\n { x: 28.0, y: 17.4 },\r\n { x: 28.2, y: 17.7 },\r\n { x: 28.4, y: 17.9 },\r\n { x: 28.6, y: 18.2 },\r\n { x: 28.8, y: 18.4 },\r\n { x: 29.0, y: 18.7 },\r\n { x: 29.2, y: 18.9 },\r\n { x: 29.4, y: 19.2 },\r\n { x: 29.6, y: 19.4 },\r\n { x: 29.8, y: 19.7 },\r\n { x: 30.0, y: 19.9 },\r\n { x: 30.2, y: 20.2 },\r\n { x: 30.4, y: 20.4 },\r\n { x: 30.6, y: 20.7 },\r\n { x: 30.8, y: 21.0 },\r\n { x: 31.0, y: 21.2 },\r\n { x: 31.2, y: 21.5 },\r\n { x: 31.4, y: 21.8 },\r\n { x: 31.6, y: 22.0 },\r\n { x: 31.8, y: 22.3 },\r\n { x: 32.0, y: 22.6 },\r\n { x: 32.2, y: 22.9 },\r\n { x: 32.4, y: 23.1 },\r\n { x: 32.6, y: 23.4 },\r\n { x: 32.8, y: 23.7 },\r\n { x: 33.0, y: 24.0 },\r\n { x: 33.2, y: 24.3 },\r\n { x: 33.4, y: 24.5 },\r\n { x: 33.6, y: 24.8 },\r\n { x: 33.8, y: 25.1 },\r\n { x: 34.0, y: 25.4 },\r\n { x: 34.2, y: 25.7 },\r\n { x: 34.4, y: 26.0 },\r\n { x: 34.6, y: 26.3 },\r\n { x: 34.8, y: 26.6 },\r\n { x: 35.0, y: 26.9 },\r\n { x: 35.2, y: 27.2 },\r\n { x: 35.4, y: 27.5 },\r\n { x: 35.6, y: 27.8 },\r\n { x: 35.8, y: 28.1 },\r\n { x: 36.0, y: 28.4 },\r\n { x: 36.2, y: 28.7 },\r\n { x: 36.4, y: 29.0 },\r\n { x: 36.6, y: 29.3 },\r\n { x: 36.8, y: 29.6 },\r\n { x: 37.0, y: 29.9 },\r\n { x: 37.2, y: 30.2 },\r\n { x: 37.4, y: 30.6 },\r\n { x: 37.6, y: 30.9 },\r\n { x: 37.8, y: 31.2 },\r\n { x: 38.0, y: 31.5 },\r\n { x: 38.2, y: 31.8 },\r\n { x: 38.4, y: 32.2 },\r\n { x: 38.6, y: 32.5 },\r\n { x: 38.8, y: 32.8 },\r\n { x: 39.0, y: 33.2 },\r\n { x: 39.2, y: 33.5 },\r\n { x: 39.4, y: 33.8 },\r\n { x: 39.6, y: 34.2 },\r\n { x: 39.8, y: 34.5 },\r\n { x: 40.0, y: 34.8 },\r\n { x: 40.2, y: 35.2 },\r\n { x: 40.4, y: 35.5 },\r\n { x: 40.6, y: 35.8 },\r\n { x: 40.8, y: 36.2 },\r\n { x: 41.0, y: 36.5 },\r\n { x: 41.2, y: 36.9 },\r\n { x: 41.4, y: 37.2 },\r\n { x: 41.6, y: 37.6 },\r\n { x: 41.8, y: 37.9 },\r\n { x: 42.0, y: 38.3 },\r\n { x: 42.2, y: 38.6 },\r\n { x: 42.4, y: 39.0 },\r\n { x: 42.6, y: 39.3 },\r\n { x: 42.8, y: 39.7 },\r\n { x: 43.0, y: 40.1 },\r\n { x: 43.2, y: 40.4 },\r\n { x: 43.4, y: 40.8 },\r\n { x: 43.6, y: 41.2 },\r\n { x: 43.8, y: 41.5 },\r\n { x: 44.0, y: 41.9 },\r\n { x: 44.2, y: 42.3 },\r\n { x: 44.4, y: 42.6 },\r\n { x: 44.6, y: 43.0 },\r\n { x: 44.8, y: 43.4 },\r\n { x: 45.0, y: 43.8 },\r\n { x: 45.2, y: 44.1 },\r\n { x: 45.4, y: 44.5 },\r\n { x: 45.6, y: 44.9 },\r\n { x: 45.8, y: 45.3 },\r\n { x: 46.0, y: 45.7 },\r\n { x: 46.2, y: 46.1 },\r\n { x: 46.4, y: 46.4 },\r\n { x: 46.6, y: 46.8 },\r\n { x: 46.8, y: 47.2 },\r\n { x: 47.0, y: 47.6 },\r\n { x: 47.2, y: 48.0 },\r\n { x: 47.4, y: 48.4 },\r\n { x: 47.6, y: 48.8 },\r\n { x: 47.8, y: 49.2 },\r\n { x: 48.0, y: 49.6 },\r\n { x: 48.2, y: 50.0 },\r\n { x: 48.4, y: 50.4 },\r\n { x: 48.6, y: 50.8 },\r\n { x: 48.8, y: 51.2 },\r\n { x: 49.0, y: 51.6 },\r\n { x: 49.2, y: 52.0 },\r\n { x: 49.4, y: 52.4 },\r\n { x: 49.6, y: 52.9 },\r\n { x: 49.8, y: 53.3 },\r\n { x: 50.0, y: 53.7 },\r\n { x: 50.2, y: 54.1 },\r\n { x: 50.4, y: 54.5 },\r\n { x: 50.6, y: 54.9 },\r\n { x: 50.8, y: 55.4 },\r\n { x: 51.0, y: 55.8 },\r\n { x: 51.2, y: 56.2 },\r\n { x: 51.4, y: 56.6 },\r\n { x: 51.6, y: 57.1 },\r\n { x: 51.8, y: 57.5 },\r\n { x: 52.0, y: 57.9 },\r\n { x: 52.2, y: 58.4 },\r\n { x: 52.4, y: 58.8 },\r\n { x: 52.6, y: 59.2 },\r\n { x: 52.8, y: 59.7 },\r\n ];\r\n\r\n //碳化深度\r\n if (sd_value_po >= 0) {\r\n var intsd = sd_value * 1; //碳化深度\r\n if (intsd == '0') {\r\n arr_t = t0_0;\r\n } else if (intsd == '0.5') {\r\n arr_t = t0_5;\r\n } else if (intsd == '1') {\r\n arr_t = t1_0;\r\n } else if (intsd == '1.5') {\r\n arr_t = t1_5;\r\n } else if (intsd == '2') {\r\n arr_t = t2_0;\r\n } else if (intsd == '2.5') {\r\n arr_t = t2_5;\r\n } else if (intsd == '3') {\r\n arr_t = t3_0;\r\n } else if (intsd == '3.5') {\r\n arr_t = t3_5;\r\n } else if (intsd == '4') {\r\n arr_t = t4_0;\r\n } else if (intsd == '4.5') {\r\n arr_t = t4_5;\r\n } else if (intsd == '5') {\r\n arr_t = t5_0;\r\n } else if (intsd == '5.5') {\r\n arr_t = t5_5;\r\n } else if (intsd >= '6') {\r\n arr_t = t6_0;\r\n }\r\n\r\n var m = -1;\r\n for (i = 0; i < arr_t.length; i++) {\r\n if (arr_t[0].x * 1 > ht) {\r\n m = 1;\r\n break;\r\n } else if (arr_t[i].x * 1 > ht) {\r\n m = i;\r\n break;\r\n } else if (arr_t[arr_t.length - 1].x * 1 < ht) {\r\n m = arr_t.length - 1;\r\n break;\r\n } else if (ht == arr_t[i].x) {\r\n qdhsz = forComm.GetDataOddIncreaseEvenDecrease(arr_t[i].y, -1);\r\n break;\r\n }\r\n }\r\n //强度换算值arr_ky_str\r\n\r\n if (m != -1) {\r\n var x1 = arr_t[m - 1].x;\r\n var y1 = arr_t[m - 1].y;\r\n var x2 = arr_t[m].x;\r\n var y2 = arr_t[m].y;\r\n if (ht >= 46.8 && intsd == 0.0) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 47.4 && intsd == 0.5) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 47.8 && intsd == 1.0) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 48.4 && intsd == 1.5) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 48.8 && intsd == 2.0) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 49.4 && intsd == 2.5) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 49.8 && intsd == 3.0) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 50.4 && intsd == 3.5) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 50.8 && intsd == 4.0) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 51.4 && intsd == 4.5) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 52.0 && intsd == 5.0) {\r\n qdhsz = '>60.0';\r\n } else if (ht >= 52.4 && intsd == 5.5) {\r\n qdhsz = '>60.0';\r\n } else {\r\n qdhsz = forComm.GetDataOddIncreaseEvenDecrease(forComm.InterpolationMethod_y(x1, x2, y1, y2, ht), -1);\r\n if (qdhsz > 60) {\r\n qdhsz = '>60.0';\r\n }\r\n if (qdhsz < 10) {\r\n qdhsz = '<10.0';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return qdhsz;\r\n },\r\n};\r\n","import { FormulaUtilsOther } from './formula-other';\r\nimport * as math from 'mathjs';\r\nimport { preciseCalc, orderByJson } from 'rapid-utils';\r\n\r\n/**\r\n * 自定义函数公用方法\r\n */\r\nexport const FormulaUtils = {\r\n /**\r\n * 初始化自定义函数(需要在SpreadJS工作簿创建成功或加载模板成功后调用)\r\n * @param GC SpreadJS的GC对象\r\n * @param spread SpreadJS对象\r\n */\r\n initFormulas: (GC: any, spread: any) => {\r\n // const sheetCount = spread.getSheetCount();\r\n\r\n // for (let i = 0; i < sheetCount; i++) {\r\n // \tlet sheet = spread.getSheet(i);\r\n\r\n // \tFormulaUtils.allCusFormulas.forEach((item) => {\r\n // \t\tconst cusFun = FormulaUtils.initForFun(\r\n // \t\t\tspread,\r\n // \t\t\tsheet,\r\n // \t\t\titem.funName,\r\n // \t\t\titem.funDesc,\r\n // \t\t\titem.funCallback,\r\n // \t\t\titem.funDefaultVal,\r\n // \t\t\titem.funMinArgs,\r\n // \t\t\titem.funMaxArgs,\r\n // \t\t\titem.funParams,\r\n // \t\t\titem.isContext,\r\n // \t\t\titem.isAcceptArea\r\n // \t\t);\r\n\r\n // \t\tsheet.addCustomFunction(new cusFun());\r\n // \t});\r\n // }\r\n\r\n FormulaUtils.allCusFormulas.forEach((item) => {\r\n const cusFun = FormulaUtils.initForFun(\r\n GC,\r\n spread,\r\n item.funName,\r\n item.funDesc,\r\n item.funCallback,\r\n item.funDefaultVal,\r\n item.funMinArgs,\r\n item.funMaxArgs,\r\n item.funParams,\r\n item.isContext,\r\n item.isAcceptArea,\r\n item.isContainNullUndefinedVal,\r\n );\r\n\r\n //全局注册自定义公式\r\n GC.Spread.CalcEngine.Functions.defineGlobalCustomFunction(item.funName, new cusFun());\r\n });\r\n },\r\n\r\n /**\r\n * 定义公用初始化自定义函数的方法\r\n * @param GC SpreadJS的GC对象\r\n * @param spread SpreadJS对象\r\n * @param funName 函数名称,如:YjMax\r\n * @param funDesc 自定义函数描述\r\n * @param funCallback 自定义函数回调函数,但函数返回了3个参数,第一个为Spread对象,第二个为Sheet对象,第三个为JSON对象(包含了arguments【原始参数数组】,cellObj【引用自定义公式的单元格索引对象】,allCellVals【所有参数值数组】)\r\n * @param funDefaultVal 自定义函数返回的默认值,默认为:0(使用场景:如该自定义函数选择的单元格没有任何值,此时回调中的retData.allCellVals可能为[],因此就可以将默认值传回去,格式如[0.0])\r\n * @param funMinArgs 最小参数个数\r\n * @param funMaxArgs 最大参数个数\r\n * @param funParams 自定义函数参数描述,默认为:[]\r\n * @param isContext 是否返回上下文对象,默认为:true\r\n * @param isAcceptArea 函数参数是否为区域单元格,默认为:true\r\n * @param isContainNullUndefinedVal 选择的单元格值是否返回为null或undefined的值,默认为:false\r\n * @returns\r\n */\r\n initForFun: (\r\n GC,\r\n spread,\r\n funName: string,\r\n funDesc: string,\r\n funCallback: (spread, sheet, retData) => any,\r\n funDefaultVal: number = 0,\r\n funMinArgs: number = 1,\r\n funMaxArgs: number = 1000,\r\n funParams: Array<any> = [],\r\n isContext: boolean = true,\r\n isAcceptArea: boolean = true,\r\n isContainNullUndefinedVal: boolean = false,\r\n ) => {\r\n //声明自定义函数对象\r\n const cusFun = function () {\r\n this.name = funName;\r\n this.minArgs = funMinArgs;\r\n this.maxArgs = funMaxArgs;\r\n };\r\n //设置自定义函数的prototype属性\r\n cusFun.prototype = new GC.Spread.CalcEngine.Functions.Function(funName, funMinArgs, funMaxArgs);\r\n //设置自定义函数的描述信息,以便在输入自定义函数关键字的时候出现提示信息\r\n cusFun.prototype.description = function () {\r\n return {\r\n description: funDesc,\r\n parameters: funParams,\r\n };\r\n };\r\n //为true时,函数的计算依赖于上下文\r\n cusFun.prototype.isContextSensitive = function () {\r\n return isContext;\r\n };\r\n //函数的参数接受引用单元格区域\r\n cusFun.prototype.acceptsReference = function () {\r\n return isAcceptArea;\r\n };\r\n // cusFun.prototype.acceptsArray = function () {\r\n // \treturn true;\r\n // };\r\n //自定义函数逻辑\r\n cusFun.prototype.evaluate = function () {\r\n // 获取该自定义公式被引用单元格的索引\r\n\r\n /**\r\n * 说明:\r\n * 如果isContext=true,则arguments的第一个参数为上下文参数,后面的参数才是自定义参数真正传入的参数\r\n * 此时我们可以通过arguments获得当前sheet或spread对象,如下所示:\r\n * const sheet = arguments[0].source.getSheet();\r\n * const spread = arguments[0].source.getSheet().getParent();\r\n * 也可以获取到公式单元格所在的索引,如下所示:\r\n * const curForRowIndex= arguments[0].row;\r\n * const curForColIndex= arguments[0].column;\r\n *\r\n * 如果isContext=false,则arguments所有参数都为自定义函数传进来的\r\n *\r\n * 可参考论坛:\r\n * https://gcdn.grapecity.com.cn/showtopic-154888-1-1.html\r\n */\r\n\r\n //根据上下文参数arguments[0]得到当前Sheet\r\n //根据上下文参数arguments[0]得到当前单元格引用公式所在的索引\r\n //注意:目前只有在isContext = true的时候才能通过第一个参数获取表单、工作簿以及单元格索引等信息\r\n let sheet, curCellObj: { row: number; col: number; rowCount: number; colCount: number };\r\n if (isContext) {\r\n sheet = arguments[0].source.getSheet();\r\n\r\n //通过getSpan方法获取合并单元格索引对象,如果为null,则说明该单元格没有合并(也就是行和列的数量都是1),如果不为null,则直接getSpan返回的数据就直接是:{ row: 0, col: 0, rowCount: 1, colCount: 1 }\r\n curCellObj = sheet.getSpan(arguments[0].row, arguments[0].column);\r\n if (curCellObj == null || curCellObj == undefined) {\r\n curCellObj = { row: arguments[0].row, col: arguments[0].column, rowCount: 1, colCount: 1 };\r\n }\r\n }\r\n\r\n //获取所有选择的单元格值,格式如:[1,2,3]\r\n let allCellVals = [];\r\n\r\n //或二维数组,格式如:[[1,2,3],[4]](当isAcceptArea=true的时候,即:自定义公式的参数为范围)\r\n let allCellValsEw = [];\r\n\r\n //参数为范围的时候\r\n if (isAcceptArea) {\r\n if (arguments.length > 1) {\r\n const sheet = arguments[0].source.getSheet();\r\n\r\n for (let i = 1; i < arguments.length; i++) {\r\n const item = arguments[i];\r\n\r\n //获取范围中的所有单元格值(数组)\r\n if (item.$gt != null && item.$gt != undefined && item.$gt.length > 0) {\r\n let curRangeVals = [];\r\n\r\n //获取当前范围的所有单元格对象(涉及到跨行或跨列的单元格,如果直接使用getArray方法,会返回合并单元格中的所有值,如:A1是3个单元格合并为一个单元格,其实只有一个值,会返回3个值,第一个值是正确的,后2个值是null,其实不需要后2个)\r\n let curRangeCellObjs = sheet.getSpans(item.$gt[0]);\r\n curRangeCellObjs = orderByJson(curRangeCellObjs, 'row', 'asc');\r\n if (curRangeCellObjs.length > 0) {\r\n curRangeCellObjs.forEach((itemCurCellObj) => {\r\n curRangeVals.push(sheet.getValue(itemCurCellObj.row, itemCurCellObj.col));\r\n });\r\n } else {\r\n let arrayValue = sheet.getArray(item.$gt[0].row, item.$gt[0].col, item.$gt[0].rowCount, item.$gt[0].colCount);\r\n arrayValue.forEach((element) => {\r\n element.forEach((elementVal) => {\r\n curRangeVals.push(elementVal);\r\n });\r\n });\r\n }\r\n allCellValsEw.push(curRangeVals);\r\n }\r\n //获取非单元格范围的值,如:其中一个参数不是单元格范围,则直接返回值即可\r\n else {\r\n allCellValsEw.push(item);\r\n }\r\n }\r\n }\r\n }\r\n\r\n let length = arguments.length;\r\n for (let i = 1; i < length; i++) {\r\n const argument = arguments[i];\r\n\r\n if (typeof argument == 'string' || typeof argument == 'number') {\r\n allCellVals.push(argument);\r\n }\r\n //参数为单元格区域时\r\n else {\r\n //通过argument也可以获取到上下文\r\n sheet = argument.getSource().getSheet();\r\n // const spread = argument.getSource().getSheet().getParent();\r\n // const sheetName = sheet.name();\r\n\r\n //获取行索引、列索引、行数和列数\r\n const row = argument.getRow(),\r\n col = argument.getColumn(),\r\n rowCount = argument.getRowCount(),\r\n colCount = argument.getColumnCount();\r\n\r\n // //声明Range对象\r\n // const range = new GC.Spread.Sheets.Range(row, col, rowCount, colCount);\r\n // //得到类似【A1:A8】范围的字符串\r\n // const string = GC.Spread.Sheets.CalcEngine.rangeToFormula(range, 0, 0, GC.Spread.Sheets.CalcEngine.RangeReferenceRelative.allRelative);\r\n // //得到最终的字符串,格式如【Sheet1!B2:B8】,可用于其他特殊场景\r\n // const setFormulaString = '' + sheetName + '!' + string;\r\n\r\n //获取该区域每个单元格的值,返回的格式为:[[22],[33],[10],[5],[80],[1],[2]]\r\n const arrVals = sheet.getArray(row, col, rowCount, colCount);\r\n arrVals.forEach((item) => {\r\n item.forEach((itemSon) => {\r\n if (!isContainNullUndefinedVal) {\r\n if (itemSon != null && itemSon != undefined) {\r\n allCellVals.push(itemSon);\r\n }\r\n } else {\r\n allCellVals.push(itemSon);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n //设置默认值\r\n if (allCellVals.length == 0) {\r\n if (funDefaultVal != null && allCellVals != undefined) {\r\n allCellVals = [funDefaultVal];\r\n }\r\n }\r\n\r\n /**\r\n * 综合判断是否为纯JSON对象\r\n * @param {any} obj - 要判断的变量\r\n * @returns {boolean}\r\n */\r\n function isPlainObject(obj) {\r\n // 基本类型检查\r\n if (obj === null || typeof obj !== 'object') {\r\n return false;\r\n }\r\n\r\n // 原型检查\r\n const proto = Object.getPrototypeOf(obj);\r\n if (proto !== null && proto !== Object.prototype) {\r\n return false;\r\n }\r\n\r\n // 构造函数检查\r\n if (obj.constructor !== Object) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // 处理技术要求对象的值\r\n if (allCellVals != null && allCellVals != undefined && allCellVals.length > 0) {\r\n for (var i = 0; i < allCellVals.length; i++) {\r\n let item = allCellVals[i];\r\n\r\n if (item != null && item != undefined && isPlainObject(item) && item.hasOwnProperty('con') && item.hasOwnProperty('val')) {\r\n allCellVals[i] = item['val'];\r\n }\r\n }\r\n }\r\n if (allCellValsEw != null && allCellValsEw != undefined && allCellValsEw.length > 0) {\r\n for (var i = 0; i < allCellValsEw.length; i++) {\r\n let item = allCellValsEw[i];\r\n\r\n if (item != null && item != undefined && item.length > 0) {\r\n for (var j = 0; j < item.length; j++) {\r\n let element = item[j];\r\n\r\n if (\r\n element != null &&\r\n element != undefined &&\r\n isPlainObject(element) &&\r\n element.hasOwnProperty('con') &&\r\n element.hasOwnProperty('val')\r\n ) {\r\n allCellValsEw[i][j] = element['val'];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n //返回的回调函数参数数据\r\n let retData = {\r\n arguments: arguments,\r\n cellObj: curCellObj,\r\n allCellVals: allCellVals,\r\n allCellValsEw: allCellValsEw,\r\n };\r\n\r\n return funCallback(spread, sheet, retData);\r\n };\r\n\r\n return cusFun;\r\n },\r\n\r\n /**\r\n * 供自定义函数内部使用的公用方法\r\n */\r\n commFun: {\r\n /**\r\n * 返回自定义公式参数为范围的二维数组结果\r\n * @param forAarguments 自定义公式所有参数集合\r\n * @returns 返回二维数组,格式如:[[1,2,3],[4]]\r\n */\r\n getForRangeCellsValArr: (forAarguments) => {\r\n let retArr = [];\r\n if (forAarguments.length > 1) {\r\n const sheet = forAarguments[0].source.getSheet();\r\n for (let i = 1; i < forAarguments.length; i++) {\r\n const item = forAarguments[i];\r\n\r\n let arrayValue = sheet.getArray(item.$gt[0].row, item.$gt[0].col, item.$gt[0].rowCount, item.$gt[0].colCount);\r\n retArr.push(arrayValue);\r\n }\r\n }\r\n\r\n return retArr;\r\n },\r\n\r\n /**\r\n * 验证传入的内容是否为数字\r\n * @param content 传入的内容\r\n * @returns 返回true或false\r\n */\r\n isNumber: (content) => {\r\n return typeof content == 'number' || /^(-?\\d+)(\\.\\d+)?$/.test(content);\r\n },\r\n /**\r\n * 将原始数组中的每个元素转换为数字类型\r\n * @param arrVals 原始数组,如:[123,456,'789']\r\n * @returns\r\n */\r\n convertToInt: (arrVals: Array<any>) => {\r\n let retArrVals: Array<number> = [];\r\n\r\n arrVals.forEach((item, index) => {\r\n retArrVals.push(Number(item));\r\n });\r\n\r\n return retArrVals;\r\n },\r\n /**\r\n * 获取最大值\r\n * @param arrVals 源数据数组\r\n */\r\n getMax: (arrVals: Array<number>) => {\r\n if (arrVals.length == 0) {\r\n return '';\r\n }\r\n\r\n return Math.max(...arrVals);\r\n },\r\n /**\r\n * 获取最小值\r\n * @param arrVals 源数据数组\r\n */\r\n getMin: (arrVals: Array<number>) => {\r\n if (arrVals.length == 0) {\r\n return '';\r\n }\r\n\r\n return Math.min(...arrVals);\r\n },\r\n /**\r\n * 计算平均值\r\n * @param arrVals 源数据数组\r\n *\r\n * 修改时间:2024-7-26\r\n * 修 改 人:Quber\r\n * 修改说明:由之前的原生js计算求和和除法,修改为了现在使用mathjs来计算,目的是处理原生js计算精度丢失的问题\r\n *\r\n */\r\n getAverage: (arrVals: Array<number>) => {\r\n if (arrVals.length == 0) {\r\n return '';\r\n }\r\n\r\n //将原始数组转换为mathjs的bignumber类型\r\n let arrValsMath = [];\r\n arrVals.forEach((item) => {\r\n arrValsMath.push(math.bignumber(item));\r\n });\r\n\r\n //方式1:使用总和/数量的方式\r\n // //得到数组的总和\r\n // const sum = math.add(...arrValsMath).toNumber();\r\n // //得到平均值\r\n // const average = math.divide(math.bignumber(sum), math.bignumber(arrValsMath.length)).toNumber();\r\n\r\n //方式2:使用mathjs的mean方法直接求平均值\r\n const average = math.mean(arrValsMath).toNumber();\r\n\r\n return average;\r\n },\r\n /**\r\n * 根据试件尺寸计算面积\r\n * @param content 传入的内容,格式如:φ100×200或150×150×150\r\n * @returns 返回计算的面积\r\n */\r\n getNum: (content) => {\r\n let ret, contentArr;\r\n const reg = /[×φ*]/g;\r\n\r\n try {\r\n contentArr = content.split(reg);\r\n\r\n let x;\r\n if (content.substring(0, 1) == 'φ') {\r\n x = contentArr[1] - 0;\r\n ret = (Math.PI * x * x) / 4;\r\n } else {\r\n ret = contentArr[0] - 0;\r\n x = contentArr[1] - 0;\r\n ret = ret * x;\r\n }\r\n } catch (e) {\r\n return 0;\r\n }\r\n\r\n return ret;\r\n },\r\n /**\r\n * 计算常规修约\r\n * @param roundingVal 修约值\r\n * @param accuracy 修约精度\r\n */\r\n getRound: (roundingVal: number, accuracy: number) => {\r\n //验证修约的值是否为负数,为负数的话,取绝对值进行修约\r\n const valIsNegative = roundingVal < 0;\r\n if (valIsNegative) {\r\n roundingVal = Math.abs(roundingVal);\r\n }\r\n\r\n //修约精度为0的时候\r\n if (accuracy == 0) {\r\n //得到字符串形式\r\n let inputValStr = roundingVal.toString();\r\n\r\n //判断是否有小数点,没有则直接返回换算后的修约值\r\n if (inputValStr.indexOf('.') == -1) {\r\n return valIsNegative ? -roundingVal : roundingVal;\r\n }\r\n\r\n //获取整数数字部分和小数部分字符串\r\n let intVal = parseInt(inputValStr.split('.')[0]);\r\n let decimalStr = inputValStr.split('.')[1];\r\n\r\n //小数部分大于或等于0.5的话,就给整数部分加1后返回,否则返回整数部分\r\n if (parseFloat(`0.${decimalStr}`) >= 0.5) {\r\n return valIsNegative ? -(intVal + 1) : intVal + 1;\r\n } else {\r\n return valIsNegative ? -intVal : intVal;\r\n }\r\n }\r\n\r\n //系数\r\n let coefficient = preciseCalc(1, accuracy, 'div'); // 1 / accuracy;\r\n\r\n //换算后的修约值(=修约值*系数)\r\n //注意:此处使用到了toFixed,目的是可能会存在精度的问题\r\n let roundingValCal = preciseCalc(roundingVal, coefficient, 'mul'); // Number((roundingVal * coefficient).toFixed(8));\r\n\r\n /**\r\n * 计算修约结果函数\r\n * @param inputVal 换算后的修约值\r\n * @returns 返回修约结果\r\n */\r\n const calcRoundingRet = (inputVal: number): number => {\r\n //得到字符串形式\r\n let inputValStr = inputVal.toString();\r\n\r\n //判断是否有小数点,没有则直接返回换算后的修约值\r\n if (inputValStr.indexOf('.') == -1) {\r\n return inputVal;\r\n }\r\n\r\n //获取整数数字部分和小数部分字符串\r\n let intVal = parseInt(inputValStr.split('.')[0]);\r\n let decimalStr = inputValStr.split('.')[1];\r\n\r\n //获取小数部分的第一位数字\r\n let decimalStrFirst = parseInt(decimalStr.substring(0, 1));\r\n\r\n //大于等于6的时候,入\r\n if (decimalStrFirst >= 6) {\r\n return intVal + 1;\r\n }\r\n //小于等于4的时候,舍\r\n else if (decimalStrFirst <= 4) {\r\n return intVal;\r\n }\r\n\r\n //小数部分为5,并且只有一位小数的时候,前面的整数部分如果是奇数则入,反之则舍\r\n else if (decimalStrFirst == 5 && decimalStr.length == 1) {\r\n return intVal % 2 != 0 ? intVal + 1 : intVal;\r\n }\r\n\r\n //小数部分为5,并且小数位数大于一位的时候,则入\r\n else if (decimalStrFirst == 5 && decimalStr.length > 1) {\r\n return intVal + 1;\r\n }\r\n\r\n return inputVal;\r\n };\r\n\r\n //返回最终修约结果(=修约结果/系数)\r\n const retNum = preciseCalc(calcRoundingRet(roundingValCal), coefficient, 'div'); // calcRoundingRet(roundingValCal) / coefficient;\r\n\r\n //获取修约精度中的小数位数\r\n let accuracyStr = accuracy + '';\r\n\r\n //如果修约精度中没有小数,则直接返回\r\n if (accuracyStr.indexOf('.') == -1) {\r\n return valIsNegative ? -retNum : retNum;\r\n } else {\r\n const retNumStr = retNum + '';\r\n\r\n //补位的0的字符串\r\n let zeroStr = '';\r\n\r\n //结果为整数的时候,需要补充小数点后面的小数位数为0,如:34→34.0\r\n if (retNumStr.indexOf('.') == -1) {\r\n let zeroStr = '';\r\n for (let index = 0; index < accuracyStr.split('.')[1].length; index++) {\r\n zeroStr += '0';\r\n }\r\n\r\n return (valIsNegative ? '-' : '') + `${retNum}.${zeroStr}`;\r\n }\r\n //结果为小数的时候,需要补充修约精度的位数,如:0.3修约精度为0.01,则最终应该返回0.30\r\n else {\r\n const xsPart = retNumStr.split('.')[1];\r\n\r\n if (accuracyStr.split('.')[1].length > xsPart.length) {\r\n for (let index = 0; index < accuracyStr.split('.')[1].length - xsPart.length; index++) {\r\n zeroStr += '0';\r\n }\r\n }\r\n\r\n return (valIsNegative ? '-' : '') + `${retNum}${zeroStr}`;\r\n }\r\n }\r\n },\r\n\r\n InterpolationMethod_y: (x1, x2, y1, y2, x) => {\r\n let tmp = ((x - x1) * (y1 - y2)) / (x1 - x2) + y1 * 1;\r\n if (isNaN(tmp)) {\r\n return '/';\r\n } else {\r\n return tmp;\r\n }\r\n },\r\n GetDataOddIncreaseEvenDecrease: (in_value, keepdigit) => {\r\n let i;\r\n let tmp1, tmp2;\r\n let sxz;\r\n\r\n if (in_value.toString().indexOf('00000000') != -1) {\r\n in_value = in_value.toString().substring(0, in_value.toString().indexOf('00000000') + 2);\r\n }\r\n\r\n if (in_value.toString().indexOf('999999') != -1) {\r\n let keepdigit1 = keepdigit;\r\n if (keepdigit1 < 0) {\r\n keepdigit1 = Math.abs(keepdigit1 - 1);\r\n }\r\n in_value = parseFloat(in_value).toFixed(keepdigit1); //in_valuetoFixed(, keepdigit*1+1);\r\n }\r\n\r\n in_value = in_value * 1;\r\n keepdigit = keepdigit * 1;\r\n i = 1;\r\n tmp2 = in_value;\r\n\r\n if (Math.floor(in_value) * 1 == in_value * 1) {\r\n //即小数为0\r\n switch (keepdigit) {\r\n case -7:\r\n sxz = in_value + '.000000000';\r\n break;\r\n case -6:\r\n sxz = in_value + '.00000000';\r\n break;\r\n case -5:\r\n sxz = in_value + '.0000000';\r\n break;\r\n case -4:\r\n sxz = in_value + '.000000';\r\n break;\r\n case -3:\r\n sxz = in_value + '.00000';\r\n break; //保留3位小数\r\n case -2:\r\n sxz = in_value + '.0000';\r\n break; //保留2位小数\r\n case -1:\r\n sxz = in_value + '.000';\r\n break; //保留1位小数\r\n case 1:\r\n sxz = in_value + '.00';\r\n break; //保留整数\r\n case 2:\r\n sxz = in_value + '.0';\r\n break;\r\n case 3:\r\n sxz = in_value;\r\n break;\r\n default:\r\n break;\r\n }\r\n } else\r\n switch (keepdigit) {\r\n case -7:\r\n sxz = (in_value * 1).toFixed(9);\r\n break;\r\n case -6:\r\n sxz = (in_value * 1).toFixed(8);\r\n break;\r\n case -5:\r\n sxz = (in_value * 1).toFixed(7);\r\n break;\r\n case -4:\r\n sxz = (in_value * 1).toFixed(6);\r\n break;\r\n case -3:\r\n sxz = (in_value * 1).toFixed(5);\r\n break;\r\n case -2:\r\n sxz = (in_value * 1).toFixed(4);\r\n break;\r\n case -1:\r\n sxz = (in_value * 1).toFixed(3);\r\n break;\r\n case 1:\r\n sxz = (in_value * 1).toFixed(2);\r\n break;\r\n case 2:\r\n sxz = (in_value * 1).toFixed(1);\r\n break;\r\n case 3:\r\n sxz = in_value * 1;\r\n break;\r\n default:\r\n break;\r\n }\r\n if (sxz * 1 > tmp2 * 1)\r\n switch (keepdigit) {\r\n case -7:\r\n sxz = (sxz - 0.00000001).toFixed(9);\r\n break;\r\n case -6:\r\n sxz = (sxz - 0.00000001).toFixed(8);\r\n break;\r\n case -5:\r\n sxz = (sxz - 0.0000001).toFixed(7);\r\n break;\r\n case -4:\r\n sxz = (sxz - 0.000001).toFixed(6);\r\n break;\r\n case -3:\r\n sxz = (sxz - 0.00001).toFixed(5);\r\n break;\r\n case -2:\r\n sxz = (sxz - 0.0001).toFixed(4);\r\n break;\r\n case -1:\r\n sxz = (sxz - 0.001).toFixed(3);\r\n break;\r\n case 1:\r\n sxz = (sxz - 0.01).toFixed(2);\r\n break;\r\n case 2:\r\n sxz = (sxz - 0.1).toFixed(1);\r\n break; //tmp2-0.1\r\n case 3:\r\n sxz = (sxz - 1).toFixed(0);\r\n break;\r\n default:\r\n break;\r\n }\r\n tmp2 = sxz + '1';\r\n sxz = tmp2.substr(0, tmp2.length - 1);\r\n\r\n if (\r\n keepdigit == 3 ||\r\n keepdigit == -1 ||\r\n keepdigit == -2 ||\r\n keepdigit == -3 ||\r\n keepdigit == -4 ||\r\n keepdigit == -5 ||\r\n keepdigit == -6 ||\r\n keepdigit == -7\r\n ) {\r\n if (sxz.substr(sxz.length - 2, 2) == 50) {\r\n if (sxz.substr(sxz.length - 3, 1) % 2 == 0) {\r\n tmp1 = sxz.substr(0, sxz.length - 2);\r\n if (in_value.toString().indexOf(sxz) != -1) {\r\n if (in_value * 1 - sxz * 1 > 0) {\r\n tmp1 = in_value;\r\n }\r\n }\r\n } else {\r\n tmp1 = sxz.substr(0, sxz.length - 2);\r\n //数字如果是-0到-0.99保留到整数变成了1,应该是-1才对(添加判断条件若将tmp1为-0时则i=-1)\r\n if (tmp1 < 0 || tmp1.replace('0', '') == '-') i = -1;\r\n switch (keepdigit) {\r\n case -7:\r\n tmp1 = tmp1 * 1 + 0.0000001 * i;\r\n break;\r\n case -6:\r\n tmp1 = tmp1 * 1 + 0.000001 * i;\r\n break;\r\n case -5:\r\n tmp1 = tmp1 * 1 + 0.00001 * i;\r\n break;\r\n case -4:\r\n tmp1 = tmp1 * 1 + 0.0001 * i;\r\n break;\r\n case -3:\r\n tmp1 = tmp1 * 1 + 0.001 * i;\r\n break;\r\n case -2:\r\n tmp1 = tmp1 * 1 + 0.01 * i;\r\n break;\r\n case -1:\r\n tmp1 = tmp1 * 1 + 0.1 * i;\r\n break;\r\n default:\r\n tmp1 = tmp1 * 1 * 100 + 100 * i;\r\n break;\r\n }\r\n }\r\n } else if (sxz.substr(sxz.length - 2, 2) < 50) {\r\n tmp1 = sxz.substr(0, sxz.length - 2);\r\n switch (keepdigit) {\r\n case 3:\r\n tmp1 = tmp1 * 1 * 100;\r\n break;\r\n default:\r\n // tmp1 = tmp1;\r\n break;\r\n }\r\n } else if (sxz.substr(sxz.length - 2, 2) > 50 || sxz < in_value) {\r\n tmp1 = sxz.substr(0, sxz.length - 2);\r\n if (tmp1 < 0 || tmp1.replace('0', '') == '-') i = -1;\r\n switch (keepdigit) {\r\n case -7:\r\n tmp1 = tmp1 * 1 + 0.0000001 * i;\r\n break;\r\n case -6:\r\n tmp1 = tmp1 * 1 + 0.000001 * i;\r\n break;\r\n case -5:\r\n tmp1 = tmp1 * 1 + 0.00001 * i;\r\n break;\r\n case -4:\r\n tmp1 = tmp1 * 1 + 0.0001 * i;\r\n break;\r\n case -3:\r\n tmp1 = tmp1 * 1 + 0.001 * i;\r\n break;\r\n case -2:\r\n tmp1 = tmp1 * 1 + 0.01 * i;\r\n break;\r\n case -1:\r\n tmp1 = tmp1 * 1 + 0.1 * i;\r\n break;\r\n default:\r\n tmp1 = tmp1 * 1 * 100 + 100 * i;\r\n break;\r\n }\r\n }\r\n }\r\n if (keepdigit == 1)\r\n if (sxz.substr(sxz.length - 2, 2) == 50)\r\n if (sxz.substr(sxz.length - 4, 1) % 2 == 0)\r\n //&& (sxz * 1 == in_value)\r\n tmp1 = sxz.substr(0, sxz.length - 3);\r\n else {\r\n tmp1 = sxz.substr(0, sxz.length - 3);\r\n if (tmp1 < 0 || tmp1.replace('0', '') == '-') i = -1;\r\n tmp1 = tmp1 * 1 + 1 * i;\r\n }\r\n else if (sxz.substr(sxz.length - 2, 2) < 50) tmp1 = sxz.substr(0, sxz.length - 3);\r\n else if (sxz.substr(sxz.length - 2, 2) > 50 || sxz * 1 < in_value) {\r\n tmp1 = sxz.substr(0, sxz.length - 3);\r\n if (tmp1 < 0 || tmp1.replace('0', '') == '-') i = -1;\r\n tmp1 = tmp1 * 1 + 1 * i;\r\n }\r\n\r\n if (keepdigit == 2)\r\n if (sxz.substr(sxz.length - 3, 3) == 5.0 && sxz * 1 == in_value)\r\n if (sxz.substr(sxz.length - 4, 1) % 2 == 0) {\r\n tmp1 = sxz.substr(0, sxz.length - 3) * 10;\r\n } else {\r\n tmp1 = sxz.substr(0, sxz.length - 3);\r\n if (tmp1 < 0 || tmp1.replace('0', '') == '-') i = -1;\r\n tmp1 = tmp1 * 10 + 10 * i;\r\n }\r\n else if (sxz.substr(sxz.length - 3, 3) < 5.0) tmp1 = sxz.substr(0, sxz.length - 3) * 10;\r\n else if (sxz.substr(sxz.length - 3, 3) > 5.0 || sxz * 1 < in_value) {\r\n tmp1 = sxz.substr(0, sxz.length - 3);\r\n if (tmp1 < 0 || tmp1.replace('0', '') == '-') i = -1;\r\n tmp1 = tmp1 * 10 + 10 * i;\r\n }\r\n\r\n switch (keepdigit) {\r\n case -7:\r\n tmp2 = (tmp1 * 1).toFixed(7);\r\n break;\r\n case -6:\r\n tmp2 = (tmp1 * 1).toFixed(6);\r\n break;\r\n case -5:\r\n tmp2 = (tmp1 * 1).toFixed(5);\r\n break;\r\n case -4:\r\n tmp2 = (tmp1 * 1).toFixed(4);\r\n break;\r\n case -3:\r\n tmp2 = (tmp1 * 1).toFixed(3);\r\n break;\r\n case -2:\r\n tmp2 = (tmp1 * 1).toFixed(2);\r\n break;\r\n case -1:\r\n tmp2 = (tmp1 * 1).toFixed(1);\r\n break;\r\n default:\r\n tmp2 = (tmp1 * 1).toFixed(0);\r\n break;\r\n }\r\n if (isNaN(tmp2)) tmp2 = '/';\r\n\r\n return tmp2;\r\n },\r\n GetS: (args) => {\r\n // if (typeof arguments[0] == 'object') {\r\n // \targuments = arguments[0];\r\n // }\r\n let total = 0; //表示求和\r\n let len = args.length; //数组长度\r\n let x = 0; //平均值\r\n let s1 = 0; //求平方和\r\n let s; //标准差\r\n for (let i = 0; i < len; i++) {\r\n // len-=1;\r\n\r\n total = total + args[i] * 1;\r\n }\r\n x = total / len;\r\n\r\n for (let j = 0; j < len; j++) {\r\n s1 = s1 + (args[j] - x) * (args[j] - x);\r\n }\r\n s = Math.sqrt(s1 / (len - 1));\r\n // if (!s) s = '';\r\n if (isNaN(s * 1)) s = '';\r\n return s;\r\n },\r\n },\r\n\r\n /**\r\n * 所以自定义函数集合\r\n */\r\n allCusFormulas: [\r\n {\r\n funName: 'ZERO',\r\n funDesc: '将单元格值为空或/返回默认值0',\r\n funDefaultVal: null,\r\n funCallback: (spread, sheet, retData) => {\r\n let sourceVal: any;\r\n\r\n if (retData.allCellValsEw.length > 0 && retData.allCellValsEw[0].length > 0) {\r\n sourceVal = retData.allCellValsEw[0][0];\r\n }\r\n\r\n if (\r\n retData.allCellValsEw.length > 0 &&\r\n retData.allCellValsEw[0].length > 0 &&\r\n (retData.allCellValsEw[0][0] == '/' ||\r\n retData.allCellValsEw[0][0] == null ||\r\n (retData.allCellValsEw[0][0]._error != undefined && retData.allCellValsEw[0][0]._error != null) || //此情况为单元格计算出错返回来的情况\r\n (typeof retData.allCellValsEw[0][0] == 'string' && retData.allCellValsEw[0][0].trim().length == 0))\r\n ) {\r\n return 0;\r\n }\r\n\r\n return sourceVal;\r\n },\r\n },\r\n {\r\n funName: 'ONE',\r\n funDesc: '将单元格值为空或/返回默认值1',\r\n funDefaultVal: null,\r\n funCallback: (spread, sheet, retData) => {\r\n let sourceVal: any;\r\n\r\n if (retData.allCellValsEw.length > 0 && retData.allCellValsEw[0].length > 0) {\r\n sourceVal = retData.allCellValsEw[0][0];\r\n }\r\n\r\n if (\r\n retData.allCellValsEw.length > 0 &&\r\n retData.allCellValsEw[0].length > 0 &&\r\n (retData.allCellValsEw[0][0] == '/' ||\r\n retData.allCellValsEw[0][0] == null ||\r\n (typeof retData.allCellValsEw[0][0] == 'string' && retData.allCellValsEw[0][0].trim().length == 0))\r\n ) {\r\n return 1;\r\n }\r\n\r\n //此种情况,有可能是 =SLASH(A1+A2) 的时候,A1和A2种其中一个为空,如:A1为空,A2为3,则应该返回3才对\r\n if (retData.allCellVals.length == 1 && retData.allCellVals[0] != 0 && retData.allCellValsEw.length == 1 && retData.allCellValsEw[0] != 0) {\r\n return retData.allCellVals[0];\r\n }\r\n\r\n return sourceVal;\r\n },\r\n },\r\n {\r\n funName: 'SLASH',\r\n funDesc: '将单元格值为空或0(包括0.0、0.00等)返回默认值/',\r\n funDefaultVal: null,\r\n funCallback: (spread, sheet, retData) => {\r\n let sourceVal: any;\r\n\r\n if (retData.allCellValsEw.length > 0 && retData.allCellValsEw[0].length > 0) {\r\n sourceVal = retData.allCellValsEw[0][0];\r\n }\r\n\r\n //此种情况,有可能是 =SLASH(A1+A2) 的时候,A1和A2都为空传回来的默认0\r\n if (retData.allCellVals.length == 1 && retData.allCellVals[0] == 0 && retData.allCellValsEw.length == 1 && retData.allCellValsEw[0] == 0) {\r\n return '/';\r\n }\r\n\r\n //此种情况,有可能是 =SLASH(A1+A2) 的时候,A1和A2种其中一个为空,如:A1为空,A2为3,则应该返回3才对\r\n if (retData.allCellVals.length == 1 && retData.allCellVals[0] != 0 && retData.allCellValsEw.length == 1 && retData.allCellValsEw[0] != 0) {\r\n return retData.allCellVals[0];\r\n }\r\n\r\n if (\r\n retData.allCellValsEw.length > 0 &&\r\n retData.allCellValsEw[0].length > 0 &&\r\n (retData.allCellValsEw[0][0] == 0 ||\r\n retData.allCellValsEw[0][0] == '0.0' ||\r\n retData.allCellValsEw[0][0] == '0.00' ||\r\n retData.allCellValsEw[0][0] == '0.000' ||\r\n retData.allCellValsEw[0][0] == '0.0000' ||\r\n retData.allCellValsEw[0][0] == null ||\r\n (typeof retData.allCellValsEw[0][0] == 'string' && retData.allCellValsEw[0][0].trim().length == 0))\r\n ) {\r\n return '/';\r\n }\r\n\r\n return sourceVal;\r\n },\r\n },\r\n {\r\n funName: 'YJMAX',\r\n funDesc: '返回一组数值中的最大值',\r\n funDefaultVal: null,\r\n funCallback: (spread, sheet, retData) => {\r\n //检查是否所有数据中至少有一个不为空\r\n let isHasVal = false;\r\n retData.allCellValsEw.forEach((item) => {\r\n if (Array.isArray(item)) {\r\n item.forEach((itemSon) => {\r\n if (!isHasVal && ((itemSon != null && itemSon != '/') || (typeof itemSon == 'string' && itemSon.trim().length > 1))) {\r\n isHasVal = true;\r\n }\r\n });\r\n } else {\r\n if (!isHasVal && ((item != null && item != '/') || (typeof item == 'string' && item.trim().length > 1))) {\r\n isHasVal = true;\r\n }\r\n }\r\n });\r\n //如果全为空,则返回/\r\n if (!isHasVal) {\r\n return '/';\r\n }\r\n\r\n //得到所有参数中为数字的集合,即:数字参数才参与计算\r\n retData.allCellVals = retData.allCellVals.filter((item) => FormulaUtils.commFun.isNumber(item));\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n return retArrVals.length == 0 ? '/' : Math.max(...retArrVals);\r\n },\r\n },\r\n {\r\n funName: 'YJMIN',\r\n funDesc: '返回一组数值中的最小值',\r\n funCallback: (spread, sheet, retData) => {\r\n //检查是否所有数据中至少有一个不为空\r\n let isHasVal = false;\r\n retData.allCellValsEw.forEach((item) => {\r\n if (Array.isArray(item)) {\r\n item.forEach((itemSon) => {\r\n if (!isHasVal && ((itemSon != null && itemSon != '/') || (typeof itemSon == 'string' && itemSon.trim().length > 1))) {\r\n isHasVal = true;\r\n }\r\n });\r\n } else {\r\n if (!isHasVal && ((item != null && item != '/') || (typeof item == 'string' && item.trim().length > 1))) {\r\n isHasVal = true;\r\n }\r\n }\r\n });\r\n //如果全为空,则返回/\r\n if (!isHasVal) {\r\n return '/';\r\n }\r\n\r\n //得到所有参数中为数字的集合,即:数字参数才参与计算\r\n retData.allCellVals = retData.allCellVals.filter((item) => FormulaUtils.commFun.isNumber(item));\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n return retArrVals.length == 0 ? '/' : Math.min(...retArrVals);\r\n },\r\n },\r\n {\r\n funName: 'YJSUM',\r\n funDesc: '计算单元格区域中所有数值的和',\r\n funCallback: (spread, sheet, retData) => {\r\n //检查是否所有数据中至少有一个不为空\r\n let isHasVal = false;\r\n retData.allCellValsEw.forEach((item) => {\r\n if (Array.isArray(item)) {\r\n item.forEach((itemSon) => {\r\n if (!isHasVal && ((itemSon != null && itemSon != '/') || (typeof itemSon == 'string' && itemSon.trim().length > 1))) {\r\n isHasVal = true;\r\n }\r\n });\r\n } else {\r\n if (!isHasVal && ((item != null && item != '/') || (typeof item == 'string' && item.trim().length > 1))) {\r\n isHasVal = true;\r\n }\r\n }\r\n });\r\n //如果全为空,则返回/\r\n if (!isHasVal) {\r\n return '/';\r\n }\r\n\r\n // 得到所有参数中为数字的集合,即:数字参数才参与计算\r\n retData.allCellVals = retData.allCellVals.filter((item) => FormulaUtils.commFun.isNumber(item));\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n return retArrVals.length == 0 ? '/' : retArrVals.reduce((accumulator, currentValue) => accumulator + currentValue, 0);\r\n },\r\n },\r\n {\r\n funName: 'YJCOUNT',\r\n funDesc: '计算区域中包含数字的单元格的个数',\r\n funDefaultVal: null,\r\n funCallback: (spread, sheet, retData) => {\r\n //检查是否所有数据中至少有一个不为空\r\n let isHasVal = false;\r\n retData.allCellValsEw.forEach((item) => {\r\n if (Array.isArray(item)) {\r\n item.forEach((itemSon) => {\r\n if (!isHasVal && ((itemSon != null && itemSon != '/') || (typeof itemSon == 'string' && itemSon.trim().length > 1))) {\r\n isHasVal = true;\r\n }\r\n });\r\n } else {\r\n if (!isHasVal && ((item != null && item != '/') || (typeof item == 'string' && item.trim().length > 1))) {\r\n isHasVal = true;\r\n }\r\n }\r\n });\r\n //如果全为空,则返回/\r\n if (!isHasVal) {\r\n return '/';\r\n }\r\n\r\n //得到所有参数中为数字的集合,即:数字参数才参与计算\r\n retData.allCellVals = retData.allCellVals.filter((item) => FormulaUtils.commFun.isNumber(item));\r\n\r\n return retData.allCellVals.length;\r\n },\r\n },\r\n // {\r\n // funName: 'YjMid',\r\n // funDesc: '获取所有选择的单元格中的中间值',\r\n // funDefaultVal: null,\r\n // funParams: [\r\n // {\r\n // name: '数值1',\r\n // repeatable: false,\r\n // optional: false,\r\n // },\r\n // {\r\n // name: '数值2',\r\n // repeatable: false,\r\n // optional: false,\r\n // },\r\n // {\r\n // name: '数值3',\r\n // repeatable: false,\r\n // optional: false,\r\n // },\r\n // ],\r\n // funCallback: (spread, sheet, retData) => {\r\n // //得到所有参数中为数字的集合,即:数字参数才参与计算\r\n // retData.allCellVals = retData.allCellVals.filter((item) => FormulaUtils.commFun.isNumber(item));\r\n\r\n // //如果传递的参数小于3个,则返回0\r\n // if (retData.allCellVals.length < 3) {\r\n // return 0;\r\n // }\r\n\r\n // let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n // const maxVal = Math.max(...retArrVals),\r\n // minVal = Math.min(...retArrVals);\r\n\r\n // return retArrVals[0] * 1 + retArrVals[1] * 1 + retArrVals[2] * 1 - maxVal * 1 - minVal * 1;\r\n // },\r\n // },\r\n {\r\n funName: 'YJMID',\r\n funDesc: '获取所有选择的单元格中的中间值',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '单元格范围',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n // 步骤1:过滤有效数字(包括数字字符串,如'8'),排除null、undefined、空字符串、'/'、0\r\n const validNumbers = retData.allCellVals\r\n .filter((item) => {\r\n // 将项转换为数字\r\n const num = Number(item);\r\n // 检查是否为有效数字:非NaN、非0、非无穷大,且原始项不是空字符串或'/'\r\n return !isNaN(num) && num !== 0 && isFinite(num) && item !== '' && item !== '/';\r\n })\r\n .map((item) => Number(item)); // 确保所有项都是数字类型\r\n\r\n // 如果没有有效数字,返回'/'\r\n if (validNumbers.length === 0) {\r\n return '/';\r\n }\r\n\r\n // 步骤2:对数字进行升序排序\r\n validNumbers.sort((a, b) => a - b);\r\n\r\n // 步骤3:计算中位数\r\n const midIndex = Math.floor(validNumbers.length / 2);\r\n\r\n // 数组长度为奇数:返回中间值\r\n if (validNumbers.length % 2 === 1) {\r\n return validNumbers[midIndex];\r\n }\r\n // 数组长度为偶数:返回中间两个值的平均值\r\n else {\r\n return (validNumbers[midIndex - 1] + validNumbers[midIndex]) / 2;\r\n }\r\n },\r\n },\r\n {\r\n funName: 'YJAVERAGE',\r\n funDesc: '计算平均值',\r\n funDefaultVal: null,\r\n funCallback: (spread, sheet, retData) => {\r\n //检查是否所有数据中至少有一个不为空\r\n let isHasVal = false;\r\n retData.allCellValsEw.forEach((item) => {\r\n if (Array.isArray(item)) {\r\n item.forEach((itemSon) => {\r\n if (!isHasVal && ((itemSon != null && itemSon != '/') || (typeof itemSon == 'string' && itemSon.trim().length > 1))) {\r\n isHasVal = true;\r\n }\r\n });\r\n } else {\r\n if (!isHasVal && ((item != null && item != '/') || (typeof item == 'string' && item.trim().length > 1))) {\r\n isHasVal = true;\r\n }\r\n }\r\n });\r\n //如果全为空,则返回/\r\n if (!isHasVal) {\r\n return '/';\r\n }\r\n\r\n //得到所有参数中为数字的集合,即:数字参数才参与计算\r\n retData.allCellVals = retData.allCellVals.filter((item) => FormulaUtils.commFun.isNumber(item));\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n return retArrVals.length == 0 ? '/' : FormulaUtils.commFun.getAverage(retArrVals);\r\n },\r\n },\r\n {\r\n funName: 'YJRESULTPD',\r\n funDesc: '报告上根据技术要求判定',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '技术要求',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '试验结果',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n let symbol = '/';\r\n\r\n //如果传递的参数小于2个,则返回符号\r\n if (retData.allCellVals.length < 2) {\r\n // if (sheet.getValue(retData.arguments[1].$gt[0].row, retData.arguments[1].$gt[0].col) != '/') {\r\n // sheet.setValue(retData.arguments[1].$gt[0].row, retData.arguments[1].$gt[0].col, '/');\r\n // return symbol;\r\n // }\r\n\r\n return symbol;\r\n }\r\n\r\n if (retData.allCellVals[0]._error != undefined && retData.allCellVals[0]._error != null) {\r\n return symbol;\r\n }\r\n\r\n //技术要求\r\n let jsyq = retData.allCellVals[0] + '';\r\n //多个试验结果,retData.allCellVals中除第一个数据,后面的都是试验结果\r\n let syjglist = [];\r\n retData.allCellVals.forEach((item, index) => {\r\n if (index > 0) {\r\n if (item != '/' && item != null && (item._error == undefined || item._error == null)) {\r\n syjglist.push(item);\r\n }\r\n }\r\n });\r\n\r\n // if (syjglist.length == 0) {\r\n // if (sheet.getValue(retData.arguments[1].$gt[0].row, retData.arguments[1].$gt[0].col) != '/') {\r\n // sheet.setValue(retData.arguments[1].$gt[0].row, retData.arguments[1].$gt[0].col, '/');\r\n // return symbol;\r\n // }\r\n // }\r\n // console.log(retData);\r\n // console.log(jsyq);\r\n // console.log(syjglist);\r\n\r\n var kk = '合格';\r\n if (\r\n jsyq == '/' ||\r\n jsyq == '' ||\r\n syjglist.some((item) => item == '无效') ||\r\n syjglist.length === 0 ||\r\n (syjglist.length === 1 && (syjglist[0] === '/' || syjglist[0] === ''))\r\n ) {\r\n return '/';\r\n }\r\n\r\n for (var i = 0; i < syjglist.length; i++) {\r\n var k1 = syjglist[i];\r\n var k2 = jsyq;\r\n var k1Str = String(k1);\r\n var k2Str = String(k2);\r\n if (k2Str.indexOf('<') != -1 || k2Str.indexOf('>') != -1 || k2Str.indexOf('<') != -1 || k2Str.indexOf('>') != -1) {\r\n k2 = k2.replace('<', '<');\r\n k2 = k2.replace('>', '>');\r\n if (k2Str.indexOf(',') != -1) {\r\n var r1;\r\n var r2;\r\n if (k2Str.indexOf(',') != -1) {\r\n r1 = k2.split(',')[0];\r\n r2 = k2.split(',')[1];\r\n if (r1.indexOf('>') != -1 || r1.indexOf('<') != -1) {\r\n r1 = k2.split(',')[0].replace('>', '');\r\n r2 = k2.split(',')[1].replace('<', '');\r\n }\r\n if (k1 * 1 > r1 * 1 && k1 < r2 * 1) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n }\r\n } else if (k2Str.indexOf(':') != -1 || k1Str.indexOf(':') != -1) {\r\n if (k2Str.indexOf('>') != -1) {\r\n var r1 = k2.replace('>', '');\r\n var t1 = r1.split(':');\r\n var h1 = parseInt(t1[0], 10);\r\n var m1 = parseInt(t1[1], 10);\r\n var t2 = k1Str.split(':');\r\n var h2 = parseInt(t2[0], 10);\r\n var m2 = parseInt(t2[1], 10);\r\n k2 = h1 * 3600 + m1 * 60;\r\n k1 = h2 * 3600 + m2 * 60;\r\n if (k1 * 1 > k2 * 1) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n } else {\r\n var r1 = k2.replace('<', '');\r\n var t1 = r1.split(':');\r\n var h1 = parseInt(t1[0], 10);\r\n var m1 = parseInt(t1[1], 10);\r\n var t2 = k1Str.split(':');\r\n var h2 = parseInt(t2[0], 10);\r\n var m2 = parseInt(t2[1], 10);\r\n k2 = h1 * 3600 + m1 * 60;\r\n k1 = h2 * 3600 + m2 * 60;\r\n if (k1 * 1 < k2 * 1) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n }\r\n } else {\r\n kk = eval(k1 + k2) ? '合格' : '不合格';\r\n }\r\n } else if (k2Str.indexOf('≥') != -1 || k2Str.indexOf('不小于') != -1 || k2Str.indexOf('≮') != -1) {\r\n if (k2Str.indexOf(',') != -1) {\r\n var r1;\r\n var r2;\r\n if (k2Str.indexOf(',') != -1) {\r\n r1 = k2.split(',')[0];\r\n r2 = k2.split(',')[1];\r\n if (r1.indexOf('≥') != -1 || r1.indexOf('≤') != -1) {\r\n r1 = k2.split(',')[0].replace('≥', '');\r\n r2 = k2.split(',')[1].replace('≤', '');\r\n }\r\n if (k1 * 1 >= r1 * 1 && k1 <= r2 * 1) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n }\r\n } else if (k2Str.indexOf(':') != -1 || k1Str.indexOf(':') != -1) {\r\n var r1 = k2.replace('≥', '');\r\n var t1 = r1.split(':');\r\n var h1 = parseInt(t1[0], 10);\r\n var m1 = parseInt(t1[1], 10);\r\n var t2 = k1Str.split(':');\r\n var h2 = parseInt(t2[0], 10);\r\n var m2 = parseInt(t2[1], 10);\r\n k2 = h1 * 3600 + m1 * 60;\r\n k1 = h2 * 3600 + m2 * 60;\r\n if (k1 * 1 >= k2 * 1) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n } else {\r\n var num = k2.replace('≥', '').replace('不小于', '').replace('≮', '') * 1;\r\n if (FormulaUtils.commFun.isNumber(k1)) {\r\n if (k1 > num || k1 == num) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n } else {\r\n if (k1Str.indexOf('大于') != -1) {\r\n if (k1.replace('大于', '') == k2.replace('≮', '')) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n } else if (k1Str.indexOf('不足') != -1) {\r\n kk = '不合格';\r\n } else if (k1Str.indexOf('+') != -1) {\r\n if (k1Str.replace('+', '') >= num) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n }\r\n }\r\n }\r\n } else if (k2Str.indexOf('≤') != -1 || k2Str.indexOf('不大于') != -1 || k2Str.indexOf('≯') != -1) {\r\n var num = k2.replace('≤', '').replace('不大于', '').replace('≯', '') * 1;\r\n if (k2Str.indexOf(':') != -1 || k1Str.indexOf(':') != -1) {\r\n var r1 = k2.replace('≤', '');\r\n var t1 = r1.split(':');\r\n var h1 = parseInt(t1[0], 10);\r\n var m1 = parseInt(t1[1], 10);\r\n var t2 = k1Str.split(':');\r\n var h2 = parseInt(t2[0], 10);\r\n var m2 = parseInt(t2[1], 10);\r\n k2 = h1 * 3600 + m1 * 60;\r\n k1 = h2 * 3600 + m2 * 60;\r\n if (k1 * 1 <= k2 * 1) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n } else {\r\n if (k1 < num || k1 == num) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n }\r\n } else if (k2Str.indexOf('≠') != -1) {\r\n var num = k2.replace('≠', '') * 1;\r\n if (k1 != num) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n } else if (k2Str.indexOf('~') != -1 || k2Str.indexOf(',') != -1 || k2Str.indexOf('~') != -1) {\r\n var r1;\r\n var r2;\r\n if (k2Str.indexOf('~') != -1) {\r\n r1 = k2.split('~')[0];\r\n r2 = k2.split('~')[1];\r\n } else if (k2Str.indexOf('~') != -1) {\r\n if (k2.split('~')[0].indexOf('+') != -1) {\r\n r1 = k2.split('~')[1];\r\n r2 = k2.split('~')[0];\r\n if (k1Str.toString().indexOf('+') != -1) {\r\n if (k1 * 1 <= r2) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n } else if (k1Str.indexOf('-') != -1) {\r\n if (k1 * 1 >= r1) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n }\r\n } else {\r\n r1 = k2.split('~')[0];\r\n r2 = k2.split('~')[1];\r\n }\r\n } else if (k2Str.indexOf(',') != -1) {\r\n if (k2Str.split(',')[0].indexOf('+') != -1) {\r\n r1 = k2.split(',')[1];\r\n r2 = k2.split(',')[0];\r\n if (k1Str.toString().indexOf('+') != -1) {\r\n if (k1 * 1 <= r2) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n } else if (k1Str.toString().indexOf('-') != -1) {\r\n if (k1 * 1 >= r1) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n }\r\n } else {\r\n r1 = k2.split(',')[0];\r\n r2 = k2.split(',')[1];\r\n }\r\n }\r\n\r\n if (k1 * 1 >= r1 * 1 && k1 <= r2 * 1) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n } else if (k2Str.indexOf('±') != -1) {\r\n var r1 = k2.split('±')[0];\r\n var r2 = k2.split('±')[1];\r\n var min = r1 * 1 - r2 * 1;\r\n var max = r1 * 1 + r2 * 1;\r\n if (k1 >= min && k1 <= max) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n } else {\r\n if (FormulaUtils.commFun.isNumber(k2)) k2 = k2 * 1;\r\n if (k1 >= k2) {\r\n kk = '合格';\r\n } else {\r\n kk = '不合格';\r\n }\r\n }\r\n\r\n if (kk == '不合格') {\r\n return '不合格';\r\n }\r\n }\r\n\r\n return kk;\r\n },\r\n },\r\n {\r\n funName: 'YJROUND',\r\n funDesc: '计算常规修约',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '数值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '修约精度',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n let symbol = '/';\r\n\r\n //如果传递的参数小于2个(第一个参数为修约的数值,第二个参数为修约精度),则返回符号\r\n if (retData.allCellVals.length < 2) {\r\n return symbol;\r\n }\r\n\r\n //验证待修约的数据是否为空或者/,如果是,则直接返回/\r\n if (typeof retData.allCellVals[0] == 'string' && (retData.allCellVals[0].trim().length == 0 || retData.allCellVals[0].trim() == '/')) {\r\n return symbol;\r\n }\r\n\r\n //判断要修约的值和精度是否为数字,不是则返回符号\r\n if (!FormulaUtils.commFun.isNumber(retData.allCellVals[0]) || !FormulaUtils.commFun.isNumber(retData.allCellVals[1])) {\r\n // return symbol;\r\n //直接返回原始值,因为有可能retData.allCellVals[0]为其他自定义公式返回的结果,比如为:“不合格”之类的中文内容等\r\n return retData.allCellVals[0];\r\n }\r\n\r\n //修约精度(正式以配置中为优先级获取,如业务系统中就要根据配置来判断)\r\n let accuracy = retData.allCellVals[1];\r\n\r\n //修约值(数字类型)\r\n let roundingVal: number = Number(retData.allCellVals[0]);\r\n\r\n //此处用于获取真实数据,比如:0.1005 - 0.06=0.04050000000000001会存在精度问题,真实值应该是0.0405\r\n roundingVal = Number(roundingVal.toFixed(8));\r\n\r\n return FormulaUtils.commFun.getRound(roundingVal, accuracy);\r\n },\r\n },\r\n {\r\n funName: 'YjGetNum',\r\n funDesc: '根据试件尺寸计算面积',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: 'cellContent',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回0\r\n if (retData.allCellVals.length < 1) {\r\n return '/';\r\n }\r\n\r\n //验证数据是否为空或者/,如果是,则直接返回/\r\n if (typeof retData.allCellVals[0] == 'string' && (retData.allCellVals[0].trim().length == 0 || retData.allCellVals[0].trim() == '/')) {\r\n return '/';\r\n }\r\n\r\n return FormulaUtils.commFun.getNum(retData.allCellVals[0]);\r\n },\r\n },\r\n {\r\n funName: 'YjGetS',\r\n funDesc: '计算标准差',\r\n funDefaultVal: null,\r\n funCallback: (spread, sheet, retData) => {\r\n //检查是否所有数据中至少有一个不为空\r\n let isHasVal = false;\r\n retData.allCellValsEw.forEach((item) => {\r\n if (Array.isArray(item)) {\r\n item.forEach((itemSon) => {\r\n if (!isHasVal && ((itemSon != null && itemSon != '/') || (typeof itemSon == 'string' && itemSon.trim().length > 1))) {\r\n isHasVal = true;\r\n }\r\n });\r\n } else {\r\n if (!isHasVal && ((item != null && item != '/') || (typeof item == 'string' && item.trim().length > 1))) {\r\n isHasVal = true;\r\n }\r\n }\r\n });\r\n //如果全为空,则返回/\r\n if (!isHasVal) {\r\n return '/';\r\n }\r\n\r\n //得到所有参数中为数字的集合,即:数字参数才参与计算\r\n retData.allCellVals = retData.allCellVals.filter((item) => FormulaUtils.commFun.isNumber(item));\r\n\r\n //如果传递的参数小于1个,则返回''\r\n if (retData.allCellVals.length < 1) {\r\n return '/';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n //总和,参数个数\r\n let total = 0,\r\n len = retArrVals.length;\r\n\r\n //平均值、求平方和\r\n let avgVal = 0,\r\n squVal = 0;\r\n\r\n for (let i = 0; i < len; i++) {\r\n total += retArrVals[i] * 1;\r\n }\r\n avgVal = total / len;\r\n\r\n for (let i = 0; i < len; i++) {\r\n squVal += (retArrVals[i] - avgVal) * (retArrVals[i] - avgVal);\r\n }\r\n\r\n //标准差\r\n const ret = Math.sqrt(squVal / (len - 1));\r\n\r\n return isNaN(ret * 1) ? '' : ret;\r\n },\r\n },\r\n {\r\n funName: 'YjGetCv',\r\n funDesc: '计算变异系数Cv',\r\n funDefaultVal: null,\r\n funCallback: (spread, sheet, retData) => {\r\n //得到所有参数中为数字的集合,即:数字参数才参与计算\r\n retData.allCellVals = retData.allCellVals.filter((item) => FormulaUtils.commFun.isNumber(item));\r\n\r\n //如果传递的参数小于1个,则返回''\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n //总和,参数个数\r\n let total = 0,\r\n len = retArrVals.length;\r\n\r\n //平均值、求平方和\r\n let avgVal = 0,\r\n squVal = 0;\r\n\r\n for (let i = 0; i < len; i++) {\r\n total = total + retArrVals[i] * 1;\r\n }\r\n avgVal = total / len;\r\n\r\n for (let i = 0; i < len; i++) {\r\n squVal += (retArrVals[i] - avgVal) * (retArrVals[i] - avgVal);\r\n }\r\n\r\n //标准差\r\n const staVal = Math.sqrt(squVal / (len - 1));\r\n\r\n //变异系数\r\n const ret = (staVal * 100) / avgVal;\r\n\r\n return !ret ? '' : ret;\r\n },\r\n },\r\n {\r\n funName: 'YjInterpolationMethod',\r\n funDesc: '直线内插法(已知y求x)',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: 'cellContentX1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'cellContentX2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'cellContentY1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'cellContentY2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'cellContentY',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于5个,则返回/\r\n if (retData.allCellVals.length < 5) {\r\n return '/';\r\n }\r\n\r\n const x1 = retData.allCellVals[0],\r\n x2 = retData.allCellVals[1],\r\n y1 = retData.allCellVals[2],\r\n y2 = retData.allCellVals[3],\r\n y = retData.allCellVals[4];\r\n\r\n const ret = ((y - y1) * (x2 - x1)) / (y2 - y1) + x1 * 1;\r\n\r\n return !FormulaUtils.commFun.isNumber(ret) ? '/' : ret;\r\n },\r\n },\r\n {\r\n funName: 'YjInterpolationMethod_Y',\r\n funDesc: '直线内插法(已知x求y)',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: 'cellContentX1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'cellContentX2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'cellContentY1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'cellContentY2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'cellContentX',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于5个,则返回/\r\n if (retData.allCellVals.length < 5) {\r\n return '/';\r\n }\r\n\r\n const x1 = retData.allCellVals[0],\r\n x2 = retData.allCellVals[1],\r\n y1 = retData.allCellVals[2],\r\n y2 = retData.allCellVals[3],\r\n x = retData.allCellVals[4];\r\n\r\n const ret = ((x - x1) * (y1 - y2)) / (x1 - x2) + y1 * 1;\r\n\r\n return !FormulaUtils.commFun.isNumber(ret) ? '/' : ret;\r\n },\r\n },\r\n\r\n {\r\n funName: 'YJROUNDYX',\r\n funDesc: '计算有效数字修约',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '数值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '修约位数',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n let symbol = '/';\r\n\r\n //如果传递的参数小于2个(第一个参数为修约的数值,第二个参数为修约位数),则返回符号\r\n if (retData.allCellVals.length < 2) {\r\n return symbol;\r\n }\r\n\r\n //判断要修约的值和精度是否为数字,不是则返回符号\r\n if (!FormulaUtils.commFun.isNumber(retData.allCellVals[0]) || !FormulaUtils.commFun.isNumber(retData.allCellVals[1])) {\r\n return symbol;\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n //修约位数(正式以配置中为优先级获取,如业务系统中就要根据配置来判断)\r\n let accuracy = Math.floor(retArrVals[1]);\r\n\r\n //小于等于0时,返回原始数据\r\n if (accuracy <= 0 || retArrVals[0] == 0) {\r\n return retArrVals[0];\r\n }\r\n\r\n //使用toPrecision方法得到指定有效位数的数字\r\n const retVal = retArrVals[0].toPrecision(accuracy);\r\n\r\n //检测retVal中是否包含指数符号e\r\n if (retVal.indexOf('e') > -1) {\r\n //转换为数字\r\n const calcVal = Number(retVal);\r\n\r\n //检查calcVal的长度是否超过了accuracy的长度\r\n if (String(calcVal).length > accuracy) {\r\n return String(calcVal).substring(0, accuracy);\r\n } else {\r\n return calcVal;\r\n }\r\n } else {\r\n return retVal;\r\n }\r\n\r\n // const calcVal = (number, nDigits) => {\r\n // \tlet numOld = String(Math.abs(number)),\r\n // \t\tnum = String(Math.abs(number));\r\n\r\n // \tlet index = nDigits;\r\n // \tlet numSplit = num.split('.');\r\n\r\n // \tlet roundNumber = numSplit[0];\r\n // \tlet pointNumber = '';\r\n // \tif (numSplit.length > 1) {\r\n // \t\tpointNumber = numSplit[1];\r\n // \t}\r\n\r\n // \tif (roundNumber == '0') {\r\n // \t\t// 查找第一个非零字符的索引\r\n // \t\tlet decimalIndex = 0;\r\n // \t\tfor (const item of pointNumber) {\r\n // \t\t\tif (item == '0') {\r\n // \t\t\t\tdecimalIndex++;\r\n // \t\t\t} else {\r\n // \t\t\t\tbreak;\r\n // \t\t\t}\r\n // \t\t}\r\n // \t\tlet removeZeroPointNumber = pointNumber.substring(decimalIndex, pointNumber.length); //去除无效0之后的数据\r\n\r\n // \t\tif (index > removeZeroPointNumber.length) {\r\n // \t\t\tlet dyCount = index - removeZeroPointNumber.length;\r\n // \t\t\tfor (let i = 0; i < dyCount; i++) {\r\n // \t\t\t\tpointNumber += '0';\r\n // \t\t\t}\r\n // \t\t\tnum = roundNumber + '.' + pointNumber;\r\n // \t\t} else if (index <= removeZeroPointNumber.length) {\r\n // \t\t\tnum = roundNumber + '.' + pointNumber.substring(0, index + decimalIndex);\r\n // \t\t}\r\n // \t} else {\r\n // \t\tif (index > roundNumber.length) {\r\n // \t\t\tlet pointCount = index - roundNumber.length;\r\n\r\n // \t\t\tif (pointCount > pointNumber.length) {\r\n // \t\t\t\tlet zeroCount = pointCount - pointNumber.length;\r\n // \t\t\t\tnum = roundNumber + '.' + pointNumber.substring(0, pointNumber.length);\r\n // \t\t\t\tfor (let i = 0; i < zeroCount; i++) {\r\n // \t\t\t\t\tnum += '0';\r\n // \t\t\t\t}\r\n // \t\t\t} else if (pointCount === pointNumber.length) {\r\n // \t\t\t\tnum = roundNumber + '.' + pointNumber;\r\n // \t\t\t} else if (pointCount < pointNumber.length) {\r\n // \t\t\t\tnum = roundNumber + '.' + pointNumber.substring(0, pointCount);\r\n // \t\t\t}\r\n // \t\t} else if (index === roundNumber.length) {\r\n // \t\t\tnum = roundNumber;\r\n // \t\t} else if (index < roundNumber.length) {\r\n // \t\t\tlet zeroCount = roundNumber.length - index;\r\n // \t\t\tnum = roundNumber.substring(0, index);\r\n // \t\t\tfor (let i = 0; i < zeroCount; i++) {\r\n // \t\t\t\tnum += '0';\r\n // \t\t\t}\r\n // \t\t}\r\n // \t}\r\n\r\n // \tif (num.indexOf('.') > -1 && num.length < numOld.length) {\r\n // \t}\r\n\r\n // \tlet sign = number < 0 ? '-' : '';\r\n\r\n // \treturn sign + num;\r\n // };\r\n\r\n // return calcVal(retArrVals[0], accuracy);\r\n },\r\n },\r\n {\r\n funName: 'YJROUNDKX',\r\n funDesc: '计算科学计数修约',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '数值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '修约位数',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n let symbol = '/';\r\n\r\n //如果传递的参数小于2个(第一个参数为修约的数值,第二个参数为修约位数),则返回符号\r\n if (retData.allCellVals.length < 2) {\r\n return symbol;\r\n }\r\n\r\n //判断要修约的值和精度是否为数字,不是则返回符号\r\n if (!FormulaUtils.commFun.isNumber(retData.allCellVals[0]) || !FormulaUtils.commFun.isNumber(retData.allCellVals[1])) {\r\n return symbol;\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n //修约位数(正式以配置中为优先级获取,如业务系统中就要根据配置来判断)\r\n let accuracy = Math.floor(retArrVals[1]);\r\n\r\n //小于等于0时,返回原始数据\r\n if (accuracy <= 0 || retArrVals[0] == 0) {\r\n return retArrVals[0];\r\n }\r\n\r\n /**\r\n * 将数字转换为统一的标准科学计数法表达字符串\r\n * @param {number} num - 需要转换的数字\r\n * @param {number} [digits] - 有效数字位数(默认自动推断)\r\n * @returns {string} 如 \"1.34*10^-2\"、\"1.34\"、\"1.34*10³\"\r\n */\r\n const toScientificNotation = (num, digits) => {\r\n if (num === 0) return '0';\r\n if (!isFinite(num)) return String(num);\r\n\r\n // 1. 确定有效数字位数:未指定时从原数推断\r\n if (digits === undefined) {\r\n const str = String(Math.abs(num));\r\n // 去除小数点和前导零,剩余即为有效数字\r\n digits = str.replace(/^0*\\.?0*/, '').replace('.', '').length || 1;\r\n }\r\n\r\n // 2. 利用 toExponential 获取标准化系数和指数\r\n // 例如: (134).toExponential(2) => \"1.34e+2\"\r\n const expStr = num.toExponential(digits - 1);\r\n const [coefStr, expPart] = expStr.split('e');\r\n const exponent = parseInt(expPart, 10);\r\n\r\n // 3. 清理系数尾部多余的零(如 1.340 → 1.34)\r\n const coefficient = parseFloat(coefStr).toString();\r\n\r\n // 4. 根据指数值格式化输出\r\n if (exponent === 0) {\r\n // 指数为0:直接返回系数,如 \"1.34\"\r\n return coefficient;\r\n }\r\n\r\n // 上标映射表\r\n const superscripts = { '-': '⁻', '0': '⁰', '1': '¹', '2': '²', '3': '³', '4': '⁴', '5': '⁵', '6': '⁶', '7': '⁷', '8': '⁸', '9': '⁹' };\r\n\r\n const expDisplay = String(exponent)\r\n .split('')\r\n .map((ch) => superscripts[ch] || ch)\r\n .join('');\r\n\r\n return `${coefficient}*10${expDisplay}`;\r\n };\r\n\r\n return toScientificNotation(retArrVals[0], accuracy);\r\n },\r\n },\r\n {\r\n funName: 'YJDZ',\r\n funDesc: '按照单元格点选顺序,优先提取最后一个有数据的单元格值',\r\n funDefaultVal: null,\r\n funCallback: (spread, sheet, retData) => {\r\n let retArrVals = [];\r\n retData.allCellVals.forEach((item) => {\r\n if (\r\n item != null &&\r\n item != undefined &&\r\n item != '/' &&\r\n (item._error == null || item._error == undefined) &&\r\n (item + '').trim().length > 0\r\n ) {\r\n retArrVals.push(item);\r\n }\r\n });\r\n\r\n return retArrVals.length == 0 ? '/' : retArrVals[retArrVals.length - 1];\r\n },\r\n },\r\n {\r\n funName: 'YJTKY',\r\n funDesc: '混凝土抗压强度',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '数值1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '超差值,如:0.15',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '试验名称,如:混凝土抗压',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于5个,则返回空字符串\r\n if (retData.allCellVals.length < 5) {\r\n return '';\r\n }\r\n if (\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[0]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[1]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[2])\r\n ) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt([retData.allCellVals[0], retData.allCellVals[1], retData.allCellVals[2]]);\r\n\r\n let a = Number(retArrVals[0]),\r\n b = Number(retArrVals[1]),\r\n c = Number(retArrVals[2]),\r\n d = Number(retData.allCellVals[3]),\r\n e = retData.allCellVals[4];\r\n d = d * 1;\r\n\r\n let ret = FormulaUtils.commFun.getAverage(retArrVals); //计算三个值中的平均值\r\n let max = FormulaUtils.commFun.getMax(retArrVals) * 1; //计算三个值中的最大值\r\n let min = FormulaUtils.commFun.getMin(retArrVals) * 1; //计算三个值中的最小值\r\n let mid = a * 1 + b * 1 + c * 1 - max * 1 - min * 1;\r\n if (Math.abs(max - mid) > mid * d && Math.abs(min - mid) > mid * d) {\r\n // msg = e + '最大值(' + max + ')与最小值(' + min + ')与中间值(' + mid + ')之差均超过中间值的15%(' + mid * d + '),试验无效!';\r\n ret = '无效';\r\n return ret;\r\n } else if (Math.abs(max - mid) > mid * d || Math.abs(min - mid) > mid * d) {\r\n // msg = e + '最大值(' + max + ')与最小值(' + min + ')其中一个值与中间值(' + mid + ')之差超过中间值的15%(' + mid * d + '),取中间值为结果!';\r\n ret = mid;\r\n }\r\n\r\n return ret;\r\n },\r\n },\r\n {\r\n funName: 'YJJSKZ',\r\n funDesc: '水泥胶砂抗折',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '数值1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '超差值,如:0.1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '试验名称,如:水泥胶砂抗折',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于5个,则返回空字符串\r\n if (retData.allCellVals.length < 5) {\r\n return '';\r\n }\r\n if (\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[0]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[1]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[2])\r\n ) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt([retData.allCellVals[0], retData.allCellVals[1], retData.allCellVals[2]]);\r\n\r\n let a = Number(retArrVals[0]),\r\n b = Number(retArrVals[1]),\r\n c = Number(retArrVals[2]),\r\n d = Number(retData.allCellVals[3]),\r\n e = retData.allCellVals[4];\r\n d = d * 1;\r\n\r\n let arr = [a, b, c]; //三个值的数组\r\n let arr2 = new Array(); //两个值的数组\r\n arr.sort(function (a, b) {\r\n return a - b;\r\n });\r\n let ret = FormulaUtils.commFun.getAverage(arr); //计算三个值中的平均值\r\n for (let v = 0; v < arr.length; v++) {\r\n arr2[v] = Math.abs(arr[v] - ret); //算与平均值的差\r\n arr2.sort(function (a, b) {\r\n return a - b;\r\n });\r\n }\r\n if (arr.length > 2) {\r\n let max = FormulaUtils.commFun.getMax(arr2); //取最大值\r\n let min = FormulaUtils.commFun.getMin(arr2); //取最小值\r\n let m = max / ret; //最大值与平均值的差\r\n let n = min / ret; //最小值与平均值的差\r\n let y = arr2[1] / ret; //中间值与平均值的差\r\n if (m <= d) {\r\n // ret = ret;\r\n } else if (Math.abs(m) > d && Math.abs(n) > d && Math.abs(y) > d) {\r\n // msg = e + '当三个强度值中同时有3个超出平均值±10%时,则此组结果作废。';\r\n ret = '作废';\r\n return ret;\r\n } else if (arr[2] > ret + d * ret && arr[0] < ret - d * ret) {\r\n ret = arr[1];\r\n // msg = e + '有2个值超过平均值的±10%,按规定清除,测定值取剩余值作为结果。';\r\n } else {\r\n let pin = FormulaUtils.commFun.getMin(arr); //取最小值\r\n let pjz = FormulaUtils.commFun.getAverage(arr);\r\n if (pin < pjz - pjz * 0.1) {\r\n ret = FormulaUtils.commFun.getAverage([arr[1], arr[2]]);\r\n // msg = e + '有个值超过平均值的±10%,按规定清除,测定值取剩余的平均值。';\r\n } else {\r\n ret = FormulaUtils.commFun.getAverage([arr[0], arr[1]]);\r\n // msg = e + '有个值超过平均值的±10%,按规定清除,测定值取剩余的平均值。';\r\n }\r\n }\r\n }\r\n\r\n return ret;\r\n },\r\n },\r\n {\r\n funName: 'YJJSKY',\r\n funDesc: '水泥胶砂抗压',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '数值1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值4',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值5',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值6',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '超差值,如:0.1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '试验名称,如:水泥胶砂抗压',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于8个,则返回空字符串\r\n if (retData.allCellVals.length < 8) {\r\n return '';\r\n }\r\n if (\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[0]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[1]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[2]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[3]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[4]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[5])\r\n ) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt([\r\n retData.allCellVals[0],\r\n retData.allCellVals[1],\r\n retData.allCellVals[2],\r\n retData.allCellVals[3],\r\n retData.allCellVals[4],\r\n retData.allCellVals[5],\r\n ]);\r\n\r\n let a = Number(retArrVals[0]),\r\n b = Number(retArrVals[1]),\r\n c = Number(retArrVals[2]),\r\n d = Number(retArrVals[3]),\r\n e = Number(retArrVals[4]),\r\n f = Number(retArrVals[5]),\r\n g = Number(retData.allCellVals[6]),\r\n h = retData.allCellVals[7];\r\n g = g * 1;\r\n\r\n let arr = [a, b, c, d, e, f]; //最开始数据输入的数组\r\n let arr2 = new Array(); //计算与平均值差的数组\r\n let arr3 = new Array(); //剔除超差最大值后的数组\r\n let arr4 = new Array(); //再次计算平均值差的数组\r\n let arr5 = new Array(); //算第一次超差个数的数组\r\n let hs = 0; //第一次超差个数\r\n arr.sort(function (a, b) {\r\n return a - b;\r\n }); //排序\r\n let avg = FormulaUtils.commFun.getAverage(arr);\r\n let j = 0;\r\n let ret; //最后输出的值\r\n arr2[0] = Math.abs(arr[0] - avg);\r\n arr2[1] = Math.abs(arr[1] - avg);\r\n arr2[2] = Math.abs(arr[2] - avg);\r\n arr2[3] = Math.abs(arr[3] - avg);\r\n arr2[4] = Math.abs(arr[4] - avg);\r\n arr2[5] = Math.abs(arr[5] - avg);\r\n\r\n arr5[0] = Math.abs(arr[0] - avg) / avg;\r\n arr5[1] = Math.abs(arr[1] - avg) / avg;\r\n arr5[2] = Math.abs(arr[2] - avg) / avg;\r\n arr5[3] = Math.abs(arr[3] - avg) / avg;\r\n arr5[4] = Math.abs(arr[4] - avg) / avg;\r\n arr5[5] = Math.abs(arr[5] - avg) / avg;\r\n for (let i = 0; i < 6; i++) {\r\n if (arr5[i] > g) {\r\n hs++;\r\n }\r\n }\r\n if (arr.length > 5) {\r\n let max = FormulaUtils.commFun.getMax(arr2);\r\n let min = FormulaUtils.commFun.getMin(arr2);\r\n let m = max / avg; //最大值与平均值的差\r\n let x = min / avg; //最小值与平均值的差\r\n\r\n if (m <= g && x <= g) {\r\n ret = avg;\r\n } else if (hs >= 2) {\r\n ret = '作废';\r\n // msg = '两次有值超出平均值的±10%,本组试验为无效试验。';\r\n } else {\r\n for (let i = 0; i < 6; i++) {\r\n if (max == arr2[i]) {\r\n continue;\r\n } else {\r\n arr3[j] = arr[i];\r\n j++;\r\n }\r\n }\r\n avg = FormulaUtils.commFun.getAverage(arr3);\r\n arr4[0] = Math.abs(arr3[0] - avg);\r\n arr4[1] = Math.abs(arr3[1] - avg);\r\n arr4[2] = Math.abs(arr3[2] - avg);\r\n arr4[3] = Math.abs(arr3[3] - avg);\r\n arr4[4] = Math.abs(arr3[4] - avg);\r\n let max2 = FormulaUtils.commFun.getMax(arr4);\r\n let n = max2 / avg; //最大值与平均值的差\r\n let min3 = FormulaUtils.commFun.getMin(arr3);\r\n let max3 = FormulaUtils.commFun.getMax(arr3);\r\n let avg3 = FormulaUtils.commFun.getAverage(arr3);\r\n let y = avg3 - avg3 * g; //平均值超差下限\r\n let z = avg3 + avg3 * g; //平均值超差上限\r\n if (max3 > z || min3 < y) {\r\n ret = '作废';\r\n // msg = '剔除一个超差值后,剩余的值中还有一个超过了剩余值的平均值,此数据作废';\r\n return ret;\r\n } else if (n <= g) {\r\n ret = avg;\r\n // msg = '有一个值超出平均值的±10%,测定值取剩余的平均值。';\r\n }\r\n }\r\n }\r\n\r\n return ret;\r\n },\r\n },\r\n {\r\n funName: 'YJTN',\r\n funDesc: 'ta/√n()查表',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '保证率',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '检测点数',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于2个,则返回空字符串\r\n if (retData.allCellVals.length < 2) {\r\n return '';\r\n }\r\n if (!FormulaUtils.commFun.isNumber(retData.allCellVals[0]) || !FormulaUtils.commFun.isNumber(retData.allCellVals[1])) {\r\n return '';\r\n }\r\n\r\n let bzn = retData.allCellVals[0] * 100 + '', //*100是因为,Excel单元格中的内容虽然显示为95%,但是实际接收到的值为0.95,因此这里需要*100\r\n n = Number(retData.allCellVals[1]);\r\n\r\n let arr = new Array();\r\n let res1 = 0;\r\n if (n > 100) {\r\n if (bzn == '99') {\r\n res1 = 2.3265 / Math.sqrt(n);\r\n } else if (bzn == '95') {\r\n res1 = 1.6449 / Math.sqrt(n);\r\n } else if (bzn == '90') {\r\n res1 = 1.2815 / Math.sqrt(n);\r\n }\r\n } else {\r\n if (bzn == '99') {\r\n arr = new Array(\r\n '2-22.501',\r\n '3-4.021',\r\n '4-2.270',\r\n '5-1.676',\r\n '6-1.374',\r\n '7-1.188',\r\n '8-1.060',\r\n '9-0.966',\r\n '10-0.892',\r\n '11-0.833',\r\n '12-0.785',\r\n '13-0.744',\r\n '14-0.708',\r\n '15-0.678',\r\n '16-0.651',\r\n '17-0.626',\r\n '18-0.605',\r\n '19-0.586',\r\n '20-0.568',\r\n '21-0.552',\r\n '22-0.537',\r\n '23-0.523',\r\n '24-0.510',\r\n '25-0.498',\r\n '26-0.487',\r\n '27-0.477',\r\n '28-0.467',\r\n '29-0.458',\r\n '30-0.449',\r\n '40-0.383',\r\n '50-0.340',\r\n '60-0.308',\r\n '70-0.285',\r\n '80-0.266',\r\n '90-0.249',\r\n '100-0.236',\r\n ); //保证率为99的数组\r\n } else if (bzn == '95') {\r\n arr = new Array(\r\n '2-4.465',\r\n '3-1.686',\r\n '4-1.177',\r\n '5-0.953',\r\n '6-0.823',\r\n '7-0.734',\r\n '8-0.670',\r\n '9-0.620',\r\n '10-0.580',\r\n '11-0.546',\r\n '12-0.518',\r\n '13-0.494',\r\n '14-0.473',\r\n '15-0.455',\r\n '16-0.438',\r\n '17-0.423',\r\n '18-0.410',\r\n '19-0.398',\r\n '20-0.387',\r\n '21-0.376',\r\n '22-0.367',\r\n '23-0.358',\r\n '24-0.350',\r\n '25-0.342',\r\n '26-0.335',\r\n '27-0.328',\r\n '28-0.322',\r\n '29-0.316',\r\n '30-0.310',\r\n '40-0.266',\r\n '50-0.237',\r\n '60-0.216',\r\n '70-0.199',\r\n '80-0.186',\r\n '90-0.175',\r\n '100-0.166',\r\n ); //保证率为95的数组\r\n } else if (bzn == '90') {\r\n arr = new Array(\r\n '2-2.176',\r\n '3-1.089',\r\n '4-0.819',\r\n '5-0.686',\r\n '6-0.603',\r\n '7-0.544',\r\n '8-0.500',\r\n '9-0.466',\r\n '10-0.437',\r\n '11-0.414',\r\n '12-0.393',\r\n '13-0.376',\r\n '14-0.361',\r\n '15-0.347',\r\n '16-0.335',\r\n '17-0.324',\r\n '18-0.314',\r\n '19-0.305',\r\n '20-0.297',\r\n '21-0.289',\r\n '22-0.282',\r\n '23-0.275',\r\n '24-0.269',\r\n '25-0.264',\r\n '26-0.258',\r\n '27-0.253',\r\n '28-0.248',\r\n '29-0.244',\r\n '30-0.239',\r\n '40-0.206',\r\n '50-0.184',\r\n '60-0.167',\r\n '70-0.155',\r\n '80-0.145',\r\n '90-0.136',\r\n '100-0.129',\r\n ); //保证率为90的数组\r\n }\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let a = arr[i].split('-');\r\n\r\n if (a[0] == n) {\r\n res1 = a[1];\r\n }\r\n }\r\n }\r\n\r\n return res1;\r\n },\r\n },\r\n {\r\n funName: 'YJSMD',\r\n funDesc: '水密度查表',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '水的温度',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n let symbol = '/';\r\n\r\n //如果传递的参数小于1个,则返回符号\r\n if (retData.allCellVals.length < 1) {\r\n return symbol;\r\n }\r\n\r\n //验证待修约的数据是否为空或者/,如果是,则直接返回/\r\n if (typeof retData.allCellVals[0] == 'string' && (retData.allCellVals[0].trim().length == 0 || retData.allCellVals[0].trim() == '/')) {\r\n return symbol;\r\n }\r\n\r\n let a = retData.allCellVals[0] + '';\r\n\r\n let md; //最后输出的值\r\n let arr = new Array(\r\n '15-0.99913',\r\n '16-0.99897',\r\n '17-0.99880',\r\n '18-0.99862',\r\n '19-0.99843',\r\n '20-0.99822',\r\n '21-0.99802',\r\n '22-0.99779',\r\n '23-0.99756',\r\n '24-0.99733',\r\n '25-0.99702',\r\n );\r\n for (let i = 0; i < arr.length; i++) {\r\n let ret = arr[i].split('-');\r\n if (a == ret[0]) {\r\n md = ret[1];\r\n }\r\n }\r\n if (a.length > 2) {\r\n let wd = a;\r\n wd = wd.substring(0, wd.indexOf('.'));\r\n\r\n let j = 0;\r\n for (let i = 0; i < arr.length; i++) {\r\n let ret = arr[i].split('-');\r\n if (wd == ret[0]) {\r\n j = i;\r\n }\r\n }\r\n if (j == arr.length - 1) {\r\n let arr1 = arr[j].split('-');\r\n let arr2 = arr[j - 1].split('-');\r\n md = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], a),\r\n -5,\r\n );\r\n } else {\r\n let arr1 = arr[j].split('-');\r\n let arr2 = arr[j + 1].split('-');\r\n md = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], a),\r\n -5,\r\n );\r\n }\r\n }\r\n\r\n // if (a * 1 < 15 || a * 1 > 25) {\r\n // \tmsg = '试验水温范围在[15-25 ℃]之间,系统会自动生产该温度相应的密度';\r\n // } else {\r\n // \tmsg = '操作错误提示:请输入15--25之间的数值!';\r\n // }\r\n\r\n return md;\r\n },\r\n },\r\n {\r\n funName: 'YJSYMD',\r\n funDesc: '水银密度查表',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '试验温度',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let a = retData.allCellVals[0] + '';\r\n\r\n let wd = a;\r\n let md; //输出的数据\r\n if (wd == '8' || wd == '8.0') {\r\n md = '13.58';\r\n } else if (wd == '10' || wd == '10.0') {\r\n md = '13.57';\r\n } else if (wd == '12' || wd == '12.0') {\r\n md = '13.57';\r\n } else if (wd == '14' || wd == '14.0') {\r\n md = '13.56';\r\n } else if (wd == '16' || wd == '16.0') {\r\n md = '13.56';\r\n } else if (wd == '18' || wd == '18.0') {\r\n md = '13.55';\r\n } else if (wd == '20' || wd == '20.0') {\r\n md = '13.55';\r\n } else if (wd == '22' || wd == '22.0') {\r\n md = '13.54';\r\n } else if (wd == '24' || wd == '24.0') {\r\n md = '13.54';\r\n } else if (wd == '26' || wd == '26.0') {\r\n md = '13.53';\r\n } else if (wd == '28' || wd == '28.0') {\r\n md = '13.53';\r\n } else if (wd == '30' || wd == '30.0') {\r\n md = '13.52';\r\n } else if (wd == '32' || wd == '32.0') {\r\n md = '13.52';\r\n } else if (wd == '34' || wd == '34.0') {\r\n md = '13.51';\r\n } else {\r\n md = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(FormulaUtils.commFun.InterpolationMethod_y('8', '30', '13.58', '13.52', wd), -2);\r\n }\r\n return md;\r\n },\r\n },\r\n {\r\n funName: 'YJKQND',\r\n funDesc: '空气黏度查表',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '试验温度',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n if (retData.allCellVals.length < 1 || retData.allCellVals[0] == '/') {\r\n return '/';\r\n }\r\n\r\n let arr = new Array(\r\n '8-17.49',\r\n '9-17.54',\r\n '10-17.59',\r\n '11-17.64',\r\n '12-17.68',\r\n '13-17.73',\r\n '14-17.78',\r\n '15-17.83',\r\n '16-17.88',\r\n '17-17.93',\r\n '18-17.98',\r\n '19-18.03',\r\n '20-18.08',\r\n '21-18.13',\r\n '22-18.18',\r\n '23-18.23',\r\n '24-18.28',\r\n '25-18.32',\r\n '26-18.37',\r\n '27-18.42',\r\n '28-18.47',\r\n '29-18.52',\r\n '30-18.57',\r\n '31-18.62',\r\n '32-18.67',\r\n '33-18.72',\r\n '34-18.76',\r\n );\r\n\r\n let a = retData.allCellVals[0] + ''; //水的温度\r\n let b; //空气粘度输出的值\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n let ret = arr[i].split('-');\r\n if (a == ret[0]) {\r\n b = ret[1];\r\n }\r\n }\r\n if (a.length > 2) {\r\n //内插法\r\n let wd = a.substring(0, a.indexOf('.'));\r\n\r\n let j = 0;\r\n for (let i = 0; i < arr.length; i++) {\r\n let ret1 = arr[i].split('-');\r\n if (wd == ret1[0]) {\r\n j = i;\r\n //continue;\r\n }\r\n }\r\n if (j == arr.length - 1) {\r\n let arr1 = arr[j].split('-');\r\n let arr2 = arr[j - 1].split('-');\r\n b = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], a),\r\n -2,\r\n );\r\n } else {\r\n let arr1 = arr[j].split('-');\r\n let arr2 = arr[j + 1].split('-');\r\n\r\n b = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], a),\r\n -2,\r\n );\r\n }\r\n }\r\n\r\n if (Number(a) * 1 < 8 || Number(a) * 1 > 34) {\r\n // global_msg = '试验水温范围在[8-34 ℃]之间,系统会自动生产该温度相应的空气粘度';\r\n }\r\n\r\n return b;\r\n },\r\n },\r\n {\r\n funName: 'YJSBBZCA',\r\n funDesc: '3倍标准差方法剔除特异值:平均值(YJSBBZCA)',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '数值范围',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n let arr = retArrVals;\r\n\r\n let type = 3;\r\n let array = new Array();\r\n for (let i = 0; i < arr.length; i++) {\r\n if (!isNaN(arr[i]) && arr[i] != '/') {\r\n array[i] = arr[i];\r\n }\r\n }\r\n\r\n //avg为舍弃前的平均值\r\n let avg = FormulaUtils.commFun.getAverage(array);\r\n\r\n //标准差\r\n let stand = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(FormulaUtils.commFun.GetS(array), -2);\r\n\r\n //得到舍弃的范围\r\n if (type == '' || type == '/') {\r\n //不舍弃\r\n let a = array.length; //所有的左侧和右侧的测定值个数\r\n avg = avg * 1;\r\n stand = stand * 1;\r\n } else {\r\n //得到舍弃值得范围\r\n let max = avg * 1 + type * 1 * stand * 1;\r\n let min = avg * 1 - type * 1 * stand * 1;\r\n let _array = new Array();\r\n let num = 0;\r\n for (let i = 0; i < array.length; i++) {\r\n if (array[i] > min && array[i] < max) {\r\n _array.push(array[i]); // continue;\r\n }\r\n }\r\n avg = FormulaUtils.commFun.getAverage(_array);\r\n }\r\n\r\n return avg;\r\n },\r\n },\r\n {\r\n funName: 'YJSBBZCS',\r\n funDesc: '3倍标准差方法剔除特异值:标准差(YJSBBZCS)',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '数值范围',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n let arr = retArrVals;\r\n\r\n let type = 3;\r\n let array = new Array();\r\n for (let i = 0; i < arr.length; i++) {\r\n if (!isNaN(arr[i]) && arr[i] != '/') {\r\n array[i] = arr[i];\r\n }\r\n }\r\n //avg为舍弃前的平均值\r\n let avg = FormulaUtils.commFun.getAverage(array);\r\n //标准差\r\n let stand = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(FormulaUtils.commFun.GetS(array), -2);\r\n //得到舍弃的范围\r\n if (type == '' || type == '/') {\r\n //不舍弃\r\n let a = array.length; //所有的左侧和右侧的测定值个数\r\n avg = avg * 1;\r\n stand = stand * 1;\r\n } else {\r\n //得到舍弃值得范围\r\n let max = avg * 1 + type * 1 * stand * 1;\r\n let min = avg * 1 - type * 1 * stand * 1;\r\n let _array = new Array();\r\n let num = 0;\r\n for (let i = 0; i < array.length; i++) {\r\n if (array[i] > min && array[i] < max) {\r\n _array.push(array[i]); // continue;\r\n }\r\n }\r\n avg = FormulaUtils.commFun.getAverage(_array);\r\n stand = FormulaUtils.commFun.GetS(_array);\r\n }\r\n return stand;\r\n },\r\n },\r\n {\r\n funName: 'YJTWL',\r\n funDesc: '计算混凝土抗弯拉强度',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '断裂面1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '断裂面2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '断裂面3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于6个,则返回空字符串\r\n if (retData.allCellVals.length < 6) {\r\n return '';\r\n }\r\n if (\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[3]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[4]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[5])\r\n ) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt([retData.allCellVals[3], retData.allCellVals[4], retData.allCellVals[5]]);\r\n\r\n let dlm1 = retData.allCellVals[0],\r\n dlm2 = retData.allCellVals[1],\r\n dlm3 = retData.allCellVals[2],\r\n sz1 = retArrVals[0],\r\n sz2 = retArrVals[1],\r\n sz3 = retArrVals[2];\r\n\r\n let cdz = '/'; //混凝土抗弯拉强度值\r\n let arr = retArrVals; //new Array(sz1, sz2, sz3);\r\n arr.sort(function (a, b) {\r\n return a - b;\r\n });\r\n //三个试件中如有一个断裂面位于“加荷点外”,则按另外两个值计算。如这两个值的差值不大于这两个测量值中最小值的 15%,则以两个测量值的平均值为测试结果,否则结果无效。\r\n if (dlm1 == '加荷点外' || dlm2 == '加荷点外' || dlm3 == '加荷点外') {\r\n if (dlm1 == '加荷点外' && dlm2 == '加荷点内' && dlm3 == '加荷点内') {\r\n let min = FormulaUtils.commFun.getMin([sz2, sz3]);\r\n if (Math.abs(sz2 - sz3) <= min * 0.15) {\r\n cdz = FormulaUtils.commFun.getAverage([sz2, sz3]);\r\n } else {\r\n cdz = '无效';\r\n }\r\n }\r\n if (dlm1 == '加荷点内' && dlm2 == '加荷点外' && dlm3 == '加荷点内') {\r\n let min = FormulaUtils.commFun.getMin([sz1, sz3]);\r\n if (Math.abs(sz1 - sz3) <= min * 0.15) {\r\n cdz = FormulaUtils.commFun.getAverage([sz1, sz3]);\r\n } else {\r\n cdz = '无效';\r\n }\r\n }\r\n if (dlm1 == '加荷点内' && dlm2 == '加荷点内' && dlm3 == '加荷点外') {\r\n let min = FormulaUtils.commFun.getMin([sz2, sz1]);\r\n if (Math.abs(sz2 - sz1) <= min * 0.15) {\r\n cdz = FormulaUtils.commFun.getAverage([sz2, sz1]);\r\n } else {\r\n cdz = '无效';\r\n }\r\n }\r\n if (\r\n (dlm1 == '加荷点外' && dlm2 == '加荷点外' && dlm3 == '加荷点内') ||\r\n (dlm1 == '加荷点内' && dlm2 == '加荷点外' && dlm3 == '加荷点外') ||\r\n (dlm1 == '加荷点外' && dlm2 == '加荷点内' && dlm3 == '加荷点外')\r\n ) {\r\n cdz = '无效';\r\n }\r\n } else if (dlm1 == '加荷点内' || dlm2 == '加荷点内' || dlm3 == '加荷点内') {\r\n let max = FormulaUtils.commFun.getMax([sz1, sz2, sz3]);\r\n let min = FormulaUtils.commFun.getMin([sz1, sz2, sz3]);\r\n //三个值的最大值或最小值中如有一个与中间值之差超过中间值的 15%,则把最大值和最小值舍去,以中间值作为结果。如有两个值与中间值的差值均超过15%时,则该组试验结果无效。\r\n if (Math.abs(max - arr[1]) > arr[1] * 0.15 && Math.abs(min - arr[1]) > arr[1] * 0.15) {\r\n cdz = '无效';\r\n } else if (Math.abs(max - arr[1]) > arr[1] * 0.15) {\r\n cdz = arr[1];\r\n } else if (Math.abs(min - arr[1]) > arr[1] * 0.15) {\r\n cdz = arr[1];\r\n } else {\r\n cdz = FormulaUtils.commFun.getAverage([sz1, sz2, sz3]); //三个试件的断裂面都位于“加荷点内”,以三个值的算术平均值为测定值。\r\n }\r\n }\r\n return cdz;\r\n },\r\n },\r\n {\r\n funName: 'YJHJGJPD',\r\n funDesc: '焊接钢筋结构判定(YJHJGJPD)',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '牌号',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '接头极限强度1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '接头极限强度2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '接头极限强度3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '断裂形状1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '断裂形状2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '断裂形状3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于7个,则返回空字符串\r\n if (retData.allCellVals.length < 7) {\r\n return '';\r\n }\r\n if (\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[1]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[2]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[3])\r\n ) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt([retData.allCellVals[1], retData.allCellVals[2], retData.allCellVals[3]]);\r\n\r\n let ph = retData.allCellVals[0],\r\n jxqd1 = retArrVals[0],\r\n jxqd2 = retArrVals[1],\r\n jxqd3 = retArrVals[2],\r\n dlxz1 = retData.allCellVals[4],\r\n dlxz2 = retData.allCellVals[5],\r\n dlxz3 = retData.allCellVals[6];\r\n\r\n let txjgpd = '';\r\n let jsyq = '';\r\n if (ph == 'HRB335' || ph == 'HRB335E') {\r\n jsyq = '≥455';\r\n } else if (ph == 'R235') {\r\n jsyq = '≥370';\r\n } else if (ph == 'Q235') {\r\n jsyq = '≥410';\r\n } else if (ph == 'HRB400' || ph == 'HRB400E') {\r\n jsyq = '≥540';\r\n } else if (ph == 'HPB300') {\r\n jsyq = '≥420';\r\n } else if (ph == 'HRB500' || ph == 'HRBF500' || ph == 'HRB500E' || ph == 'HRBF500E') {\r\n jsyq = '≥630';\r\n } else if (ph == 'HRB600') {\r\n jsyq = '≥730';\r\n } else {\r\n jsyq = '/';\r\n }\r\n jsyq = jsyq.replace('≥', '') * 1;\r\n let k1 = jxqd1 * 1;\r\n let k2 = jxqd2 * 1;\r\n let k3 = jxqd3 * 1;\r\n\r\n let dl1 = dlxz1; //断裂形状\r\n let dl2 = dlxz2;\r\n let dl3 = dlxz3;\r\n if (dl1 != '/' && dl2 != '/' && dl3 != '/') {\r\n if (k1 >= jsyq && k2 >= jsyq && k3 >= jsyq) {\r\n if (dl1 == '断于钢筋母材,呈延性断裂' && dl2 == '断于钢筋母材,呈延性断裂' && dl3 != '断于钢筋母材,呈脆性断裂') {\r\n txjgpd = '合格';\r\n } else if (dl1 == '断于钢筋母材,呈延性断裂' && dl3 == '断于钢筋母材,呈延性断裂' && dl2 != '断于钢筋母材,呈脆性断裂') {\r\n txjgpd = '合格';\r\n } else if (dl2 == '断于钢筋母材,呈延性断裂' && dl3 == '断于钢筋母材,呈延性断裂' && dl1 != '断于钢筋母材,呈脆性断裂') {\r\n txjgpd = '合格';\r\n } else if (\r\n (dl1 == '断于焊缝,呈脆性断裂' || dl1 == '断于热影响区,呈脆性断裂') &&\r\n (dl2 == '断于焊缝,呈脆性断裂' || dl2 == '断于热影响区,呈脆性断裂') &&\r\n dl3 != '断于钢筋母材,呈脆性断裂' &&\r\n dl3 != '断于焊缝,呈延性断裂' &&\r\n dl3 != '断于热影响区,呈延性断裂'\r\n ) {\r\n txjgpd = '合格';\r\n } else if (\r\n (dl1 == '断于焊缝,呈脆性断裂' || dl1 == '断于热影响区,呈脆性断裂') &&\r\n (dl3 == '断于焊缝,呈脆性断裂' || dl3 == '断于热影响区,呈脆性断裂') &&\r\n dl2 != '断于钢筋母材,呈脆性断裂' &&\r\n dl2 != '断于焊缝,呈延性断裂' &&\r\n dl2 != '断于热影响区,呈延性断裂'\r\n ) {\r\n txjgpd = '合格';\r\n } else if (\r\n (dl3 == '断于焊缝,呈脆性断裂' || dl3 == '断于热影响区,呈脆性断裂') &&\r\n (dl2 == '断于焊缝,呈脆性断裂' || dl2 == '断于热影响区,呈脆性断裂') &&\r\n dl1 != '断于钢筋母材,呈脆性断裂' &&\r\n dl1 != '断于焊缝,呈延性断裂' &&\r\n dl1 != '断于热影响区,呈延性断裂'\r\n ) {\r\n txjgpd = '合格';\r\n } else {\r\n txjgpd = '无效';\r\n }\r\n } else if (k1 >= jsyq && k2 >= jsyq && k3 < jsyq) {\r\n if (dl3 == '断于热影响区,呈延性断裂') {\r\n txjgpd = '无效';\r\n } else if (dl1 == '断于钢筋母材,呈延性断裂' && dl2 == '断于钢筋母材,呈延性断裂' && dl3 != '断于钢筋母材,呈延性断裂') {\r\n txjgpd = '复检';\r\n } else if (\r\n (dl1 == '断于焊缝,呈脆性断裂' || dl1 == '断于热影响区,呈脆性断裂') &&\r\n (dl2 == '断于焊缝,呈脆性断裂' || dl2 == '断于热影响区,呈脆性断裂') &&\r\n dl3 == '断于钢筋母材,呈延性断裂'\r\n ) {\r\n txjgpd = '不合格';\r\n } else if (\r\n (dl1 == '断于焊缝,呈脆性断裂' || dl1 == '断于热影响区,呈脆性断裂') &&\r\n (dl2 == '断于焊缝,呈脆性断裂' || dl2 == '断于热影响区,呈脆性断裂') &&\r\n (dl3 == '断于焊缝,呈脆性断裂' || dl3 == '断于热影响区,呈脆性断裂')\r\n ) {\r\n txjgpd = '不合格';\r\n } else {\r\n txjgpd = '无效';\r\n }\r\n } else if (k1 >= jsyq && k3 >= jsyq && k2 < jsyq) {\r\n if (dl2 == '断于热影响区,呈延性断裂') {\r\n txjgpd = '无效';\r\n } else if (dl1 == '断于钢筋母材,呈延性断裂' && dl3 == '断于钢筋母材,呈延性断裂' && dl2 != '断于钢筋母材,呈延性断裂') {\r\n txjgpd = '复检';\r\n } else if (\r\n (dl3 == '断于焊缝,呈脆性断裂' || dl3 == '断于热影响区,呈脆性断裂') &&\r\n (dl2 == '断于焊缝,呈脆性断裂' || dl2 == '断于热影响区,呈脆性断裂') &&\r\n dl2 == '断于钢筋母材,呈延性断裂'\r\n ) {\r\n txjgpd = '不合格';\r\n } else if (\r\n (dl1 == '断于焊缝,呈脆性断裂' || dl1 == '断于热影响区,呈脆性断裂') &&\r\n (dl2 == '断于焊缝,呈脆性断裂' || dl2 == '断于热影响区,呈脆性断裂') &&\r\n (dl3 == '断于焊缝,呈脆性断裂' || dl3 == '断于热影响区,呈脆性断裂')\r\n ) {\r\n txjgpd = '不合格';\r\n } else {\r\n txjgpd = '无效';\r\n }\r\n } else if (k2 >= jsyq && k3 >= jsyq && k1 < jsyq) {\r\n if (dl1 == '断于热影响区,呈延性断裂') {\r\n txjgpd = '无效';\r\n } else if (dl2 == '断于钢筋母材,呈延性断裂' && dl3 == '断于钢筋母材,呈延性断裂' && dl1 != '断于钢筋母材,呈延性断裂') {\r\n txjgpd = '复检';\r\n } else if (\r\n (dl3 == '断于焊缝,呈脆性断裂' || dl3 == '断于热影响区,呈脆性断裂') &&\r\n (dl2 == '断于焊缝,呈脆性断裂' || dl2 == '断于热影响区,呈脆性断裂') &&\r\n dl1 == '断于钢筋母材,呈延性断裂'\r\n ) {\r\n txjgpd = '不合格';\r\n } else if (\r\n (dl1 == '断于焊缝,呈脆性断裂' || dl1 == '断于热影响区,呈脆性断裂') &&\r\n (dl2 == '断于焊缝,呈脆性断裂' || dl2 == '断于热影响区,呈脆性断裂') &&\r\n (dl3 == '断于焊缝,呈脆性断裂' || dl3 == '断于热影响区,呈脆性断裂')\r\n ) {\r\n txjgpd = '不合格';\r\n } else {\r\n txjgpd = '无效';\r\n }\r\n } else if (k1 >= jsyq && k2 < jsyq && k3 < jsyq) {\r\n txjgpd = '不合格';\r\n } else if (k2 >= jsyq && k1 < jsyq && k3 < jsyq) {\r\n txjgpd = '不合格';\r\n } else if (k3 >= jsyq && k2 < jsyq && k1 < jsyq) {\r\n txjgpd = '不合格';\r\n } else if (k1 < jsyq && k2 < jsyq && k3 < jsyq) {\r\n txjgpd = '不合格';\r\n } else {\r\n txjgpd = '无效';\r\n }\r\n } else {\r\n txjgpd = '/';\r\n }\r\n\r\n return txjgpd;\r\n },\r\n },\r\n {\r\n funName: 'YJYSXHP',\r\n funDesc: '液塑限:HP值',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '锥体质量',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '材料类型',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '锥入深度平均值1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '锥入深度平均值2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '锥入深度平均值3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '含水率测定平均值1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '含水率测定平均值2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '含水率测定平均值3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于8个,则返回空字符串\r\n if (retData.allCellVals.length < 8) {\r\n return '';\r\n }\r\n if (\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[2]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[3]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[4]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[5]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[6]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[7])\r\n ) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt([\r\n retData.allCellVals[2],\r\n retData.allCellVals[3],\r\n retData.allCellVals[4],\r\n retData.allCellVals[5],\r\n retData.allCellVals[6],\r\n retData.allCellVals[7],\r\n ]);\r\n\r\n let ztzl = retData.allCellVals[0],\r\n type = retData.allCellVals[1],\r\n h1c = retArrVals[0],\r\n h1b = retArrVals[1],\r\n h1a = retArrVals[2],\r\n w1c = retArrVals[3],\r\n w1b = retArrVals[4],\r\n w1a = retArrVals[5];\r\n\r\n let SumNumber = '/';\r\n let tmp_x, tmp_y;\r\n let wp;\r\n let sdh = 20;\r\n // if ($(\"#tztzl\").val() == \"76\") { sdh = 17; }\r\n if (ztzl == '76' || ztzl == 76) {\r\n sdh = 17;\r\n }\r\n let array_x = new Array();\r\n let array_y = new Array();\r\n let h1 = [h1c, h1b, h1a];\r\n let w1 = [w1c, w1b, w1a];\r\n ///----------------给数组X,Y坐标传点-----------\r\n for (let i = 0; i < h1.length; i++) {\r\n tmp_x = w1[i] * 1; //含水率平均值\r\n tmp_y = h1[i] * 1; //锥入深度平均值\r\n if (tmp_x != '' && tmp_x != '/' && tmp_y != '' && tmp_y != '/') {\r\n array_x[i] = tmp_x;\r\n array_y[i] = tmp_y;\r\n }\r\n }\r\n array_x.sort(function (a, b) {\r\n return a - b;\r\n });\r\n array_y.sort(function (a, b) {\r\n return a - b;\r\n });\r\n\r\n //--------------------针对土工和矿粉试验,传入2个点求Y对应的X坐标\r\n // x1, x2, y1, y2, y\r\n function call_x_y(Xa, Ya, Xd, Yd, y) {\r\n //(y - y1) * (x2 - x1) / (y2 - y1) + x1 * 1;\r\n let x;\r\n x = Xa - ((Ya - y) * (Xa - Xd)) / (Ya - Yd);\r\n return x;\r\n }\r\n //-------------19 GetHpValue(wl)//土工和矿粉试验依据[砂类土][细粒土]------------------\r\n function GetHpValue(wl, type) {\r\n wl = wl * 1;\r\n let hp;\r\n if (type == 0) hp = 29.6 - 1.22 * wl + 0.017 * wl * wl - 0.0000744 * wl * wl * wl;\r\n else hp = wl / (0.524 * wl - 7.606);\r\n return hp;\r\n }\r\n\r\n let wl, hp;\r\n\r\n if (type == '细粒土') {\r\n //-----------当3点在一条直线上的时候---------------------\r\n\r\n if (Math.abs((array_y[2] - array_y[1]) / (array_x[2] - array_x[1]) - (array_y[2] - array_y[0]) / (array_x[2] - array_x[0])) <= 0.00001) {\r\n wl = call_x_y(array_x[2], array_y[2], array_x[1], array_y[1], sdh);\r\n wl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wl, -1);\r\n hp = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(GetHpValue(wl, 1), -1);\r\n // wp = 0.5 * (Math.pow(10, ((lg(array_x[2]) - lg(array_x[0])) * (lg(hp) - lg(array_y[0])) / (lg(array_y[2]) - lg(array_y[0])) + lg(array_x[0]))) + Math.pow(10, ((lg(array_x[2]) - lg(array_x[1])) * (lg(hp) - lg(array_y[1])) / (lg(array_y[2]) - lg(array_y[1])) + lg(array_x[1]))));\r\n // wp = GetDataOddIncreaseEvenDecrease(wp, -1);\r\n }\r\n //-------------当3点不为一条直线,AC,AB -----------\r\n else {\r\n tmp_x = array_x[2];\r\n tmp_y = GetHpValue(tmp_x, 1);\r\n\r\n let x_b = call_x_y(array_x[2], array_y[2], array_x[0], array_y[0], tmp_y);\r\n let x_c = call_x_y(array_x[2], array_y[2], array_x[1], array_y[1], tmp_y);\r\n let x_d = (x_b * 1 + x_c * 1) / 2;\r\n wl = call_x_y(array_x[2], array_y[2], x_d, tmp_y, sdh);\r\n wl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wl, -1);\r\n hp = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(GetHpValue(wl, 1), -1);\r\n //wp = 0.5 * (Math.pow(10, ((lg(array_x[2]) - lg(array_x[0])) * (lg(hp) - lg(array_y[0])) / (lg(array_y[2]) - lg(array_y[0])) + lg(array_x[0]))) + Math.pow(10, ((lg(array_x[2]) - lg(array_x[1])) * (lg(hp) - lg(array_y[1])) / (lg(array_y[2]) - lg(array_y[1])) + lg(array_x[1]))));\r\n //wp = GetDataOddIncreaseEvenDecrease(wp, -1);\r\n }\r\n } else {\r\n //-----------当3点在一条直线上的时候---------------------\r\n if (Math.abs((array_y[2] - array_y[1]) / (array_x[2] - array_x[1]) - (array_y[2] - array_y[0]) / (array_x[2] - array_x[0])) <= 0.00001) {\r\n wl = call_x_y(array_x[2], array_y[2], array_x[1], array_y[1], sdh);\r\n wl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wl, -1);\r\n hp = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(GetHpValue(wl, 0), -1);\r\n // wp = 0.5 * (Math.pow(10, ((lg(array_x[2]) - lg(array_x[0])) * (lg(hp) - lg(array_y[0])) / (lg(array_y[2]) - lg(array_y[0])) + lg(array_x[0]))) + Math.pow(10, ((lg(array_x[2]) - lg(array_x[1])) * (lg(hp) - lg(array_y[1])) / (lg(array_y[2]) - lg(array_y[1])) + lg(array_x[1]))));\r\n //wp = GetDataOddIncreaseEvenDecrease(wp, -1);\r\n }\r\n //-------------当3点不为一条直线,AC,AB -----------\r\n else {\r\n tmp_x = array_x[2];\r\n tmp_y = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(GetHpValue(tmp_x, 0), -1);\r\n let x_b = call_x_y(array_x[2], array_y[2], array_x[0], array_y[0], tmp_y);\r\n let x_c = call_x_y(array_x[2], array_y[2], array_x[1], array_y[1], tmp_y);\r\n\r\n let x_d = (x_b + x_c) / 2;\r\n wl = call_x_y(array_x[2], array_y[2], x_d, tmp_y, sdh);\r\n wl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wl, -1);\r\n hp = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(GetHpValue(wl, 0), -1);\r\n //wp = 0.5 * (Math.pow(10, ((lg(array_x[2]) - lg(array_x[0])) * (lg(hp) - lg(array_y[0])) / (lg(array_y[2]) - lg(array_y[0])) + lg(array_x[0]))) + Math.pow(10, ((lg(array_x[2]) - lg(array_x[1])) * (lg(hp) - lg(array_y[1])) / (lg(array_y[2]) - lg(array_y[1])) + lg(array_x[1]))));\r\n //wp = GetDataOddIncreaseEvenDecrease(wp, -1);\r\n }\r\n }\r\n\r\n SumNumber = hp;\r\n if (isNaN(SumNumber)) SumNumber = '/';\r\n return SumNumber;\r\n },\r\n },\r\n {\r\n funName: 'YJYSXWP',\r\n funDesc: '液塑限:WP值',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '锥体质量',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '材料类型',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '锥入深度平均值1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '锥入深度平均值2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '锥入深度平均值3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '含水率测定平均值1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '含水率测定平均值2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '含水率测定平均值3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于8个,则返回空字符串\r\n if (retData.allCellVals.length < 8) {\r\n return '';\r\n }\r\n if (\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[2]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[3]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[4]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[5]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[6]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[7])\r\n ) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt([\r\n retData.allCellVals[2],\r\n retData.allCellVals[3],\r\n retData.allCellVals[4],\r\n retData.allCellVals[5],\r\n retData.allCellVals[6],\r\n retData.allCellVals[7],\r\n ]);\r\n\r\n let ztzl = retData.allCellVals[0],\r\n type = retData.allCellVals[1],\r\n h1c = retArrVals[0],\r\n h1b = retArrVals[1],\r\n h1a = retArrVals[2],\r\n w1c = retArrVals[3],\r\n w1b = retArrVals[4],\r\n w1a = retArrVals[5];\r\n\r\n function lg(x) {\r\n return Math.LOG10E * Math.log(x);\r\n }\r\n\r\n let SumNumber = '/';\r\n let tmp_x, tmp_y;\r\n let wp;\r\n let sdh = 20;\r\n // if ($(\"#tztzl\").val() == \"76\") { sdh = 17; }\r\n if (ztzl == '76' || ztzl == 76) {\r\n sdh = 17;\r\n }\r\n let array_x = new Array();\r\n let array_y = new Array();\r\n let h1 = [h1c, h1b, h1a];\r\n let w1 = [w1c, w1b, w1a];\r\n ///----------------给数组X,Y坐标传点-----------\r\n for (let i = 0; i < h1.length; i++) {\r\n tmp_x = w1[i] * 1; //含水率平均值\r\n tmp_y = h1[i] * 1; //锥入深度平均值\r\n if (tmp_x != '' && tmp_x != '/' && tmp_y != '' && tmp_y != '/') {\r\n array_x[i] = tmp_x;\r\n array_y[i] = tmp_y;\r\n }\r\n }\r\n array_x.sort(function (a, b) {\r\n return a - b;\r\n });\r\n array_y.sort(function (a, b) {\r\n return a - b;\r\n });\r\n\r\n //--------------------针对土工和矿粉试验,传入2个点求Y对应的X坐标\r\n // x1, x2, y1, y2, y\r\n function call_x_y(Xa, Ya, Xd, Yd, y) {\r\n //(y - y1) * (x2 - x1) / (y2 - y1) + x1 * 1;\r\n let x;\r\n x = Xa - ((Ya - y) * (Xa - Xd)) / (Ya - Yd);\r\n return x;\r\n }\r\n //-------------19 GetHpValue(wl)//土工和矿粉试验依据[砂类土][细粒土]------------------\r\n function GetHpValue(wl, type) {\r\n wl = wl * 1;\r\n let hp;\r\n if (type == 0) hp = 29.6 - 1.22 * wl + 0.017 * wl * wl - 0.0000744 * wl * wl * wl;\r\n else hp = wl / (0.524 * wl - 7.606);\r\n return hp;\r\n }\r\n\r\n let wl, hp;\r\n\r\n if (type == '细粒土') {\r\n //-----------当3点在一条直线上的时候---------------------\r\n\r\n if (Math.abs((array_y[2] - array_y[1]) / (array_x[2] - array_x[1]) - (array_y[2] - array_y[0]) / (array_x[2] - array_x[0])) <= 0.00001) {\r\n wl = call_x_y(array_x[2], array_y[2], array_x[1], array_y[1], sdh);\r\n wl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wl, -1);\r\n hp = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(GetHpValue(wl, 1), -1);\r\n wp =\r\n 0.5 *\r\n (Math.pow(10, ((lg(array_x[2]) - lg(array_x[0])) * (lg(hp) - lg(array_y[0]))) / (lg(array_y[2]) - lg(array_y[0])) + lg(array_x[0])) +\r\n Math.pow(10, ((lg(array_x[2]) - lg(array_x[1])) * (lg(hp) - lg(array_y[1]))) / (lg(array_y[2]) - lg(array_y[1])) + lg(array_x[1])));\r\n wp = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wp, -1);\r\n }\r\n //-------------当3点不为一条直线,AC,AB -----------\r\n else {\r\n tmp_x = array_x[2];\r\n tmp_y = GetHpValue(tmp_x, 1);\r\n\r\n let x_b = call_x_y(array_x[2], array_y[2], array_x[0], array_y[0], tmp_y);\r\n let x_c = call_x_y(array_x[2], array_y[2], array_x[1], array_y[1], tmp_y);\r\n let x_d = (x_b * 1 + x_c * 1) / 2;\r\n wl = call_x_y(array_x[2], array_y[2], x_d, tmp_y, sdh);\r\n wl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wl, -1);\r\n hp = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(GetHpValue(wl, 1), -1);\r\n wp =\r\n 0.5 *\r\n (Math.pow(10, ((lg(array_x[2]) - lg(array_x[0])) * (lg(hp) - lg(array_y[0]))) / (lg(array_y[2]) - lg(array_y[0])) + lg(array_x[0])) +\r\n Math.pow(10, ((lg(array_x[2]) - lg(array_x[1])) * (lg(hp) - lg(array_y[1]))) / (lg(array_y[2]) - lg(array_y[1])) + lg(array_x[1])));\r\n wp = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wp, -1);\r\n }\r\n } else {\r\n //-----------当3点在一条直线上的时候---------------------\r\n if (Math.abs((array_y[2] - array_y[1]) / (array_x[2] - array_x[1]) - (array_y[2] - array_y[0]) / (array_x[2] - array_x[0])) <= 0.00001) {\r\n wl = call_x_y(array_x[2], array_y[2], array_x[1], array_y[1], 20);\r\n wl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wl, -1);\r\n hp = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(GetHpValue(wl, 0), -1);\r\n wp =\r\n 0.5 *\r\n (Math.pow(10, ((lg(array_x[2]) - lg(array_x[0])) * (lg(hp) - lg(array_y[0]))) / (lg(array_y[2]) - lg(array_y[0])) + lg(array_x[0])) +\r\n Math.pow(10, ((lg(array_x[2]) - lg(array_x[1])) * (lg(hp) - lg(array_y[1]))) / (lg(array_y[2]) - lg(array_y[1])) + lg(array_x[1])));\r\n wp = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wp, -1);\r\n }\r\n //-------------当3点不为一条直线,AC,AB -----------\r\n else {\r\n tmp_x = array_x[2];\r\n tmp_y = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(GetHpValue(tmp_x, 0), -1);\r\n let x_b = call_x_y(array_x[2], array_y[2], array_x[0], array_y[0], tmp_y);\r\n let x_c = call_x_y(array_x[2], array_y[2], array_x[1], array_y[1], tmp_y);\r\n\r\n let x_d = (x_b + x_c) / 2;\r\n wl = call_x_y(array_x[2], array_y[2], x_d, tmp_y, 20);\r\n wl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wl, -1);\r\n hp = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(GetHpValue(wl, 0), -1);\r\n wp =\r\n 0.5 *\r\n (Math.pow(10, ((lg(array_x[2]) - lg(array_x[0])) * (lg(hp) - lg(array_y[0]))) / (lg(array_y[2]) - lg(array_y[0])) + lg(array_x[0])) +\r\n Math.pow(10, ((lg(array_x[2]) - lg(array_x[1])) * (lg(hp) - lg(array_y[1]))) / (lg(array_y[2]) - lg(array_y[1])) + lg(array_x[1])));\r\n wp = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wp, -1);\r\n }\r\n }\r\n\r\n SumNumber = wp;\r\n if (isNaN(SumNumber)) SumNumber = '/';\r\n\r\n return SumNumber;\r\n },\r\n },\r\n {\r\n funName: 'YSXWL',\r\n funDesc: '液塑限:WL值',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '锥体质量',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '材料类型',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '锥入深度平均值1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '锥入深度平均值2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '锥入深度平均值3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '含水率测定平均值1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '含水率测定平均值2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '含水率测定平均值3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于8个,则返回空字符串\r\n if (retData.allCellVals.length < 8) {\r\n return '';\r\n }\r\n if (\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[2]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[3]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[4]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[5]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[6]) ||\r\n !FormulaUtils.commFun.isNumber(retData.allCellVals[7])\r\n ) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt([\r\n retData.allCellVals[2],\r\n retData.allCellVals[3],\r\n retData.allCellVals[4],\r\n retData.allCellVals[5],\r\n retData.allCellVals[6],\r\n retData.allCellVals[7],\r\n ]);\r\n\r\n let ztzl = retData.allCellVals[0],\r\n type = retData.allCellVals[1],\r\n h1c = retArrVals[0],\r\n h1b = retArrVals[1],\r\n h1a = retArrVals[2],\r\n w1c = retArrVals[3],\r\n w1b = retArrVals[4],\r\n w1a = retArrVals[5];\r\n\r\n function lg(x) {\r\n return Math.LOG10E * Math.log(x);\r\n }\r\n\r\n let SumNumber = '/';\r\n let tmp_x, tmp_y;\r\n let wp;\r\n let sdh = 20;\r\n // if ($(\"#tztzl\").val() == \"76\") { sdh = 17; }\r\n if (ztzl == '76' || ztzl == 76) {\r\n sdh = 17;\r\n }\r\n let array_x = new Array();\r\n let array_y = new Array();\r\n let h1 = [h1c, h1b, h1a];\r\n let w1 = [w1c, w1b, w1a];\r\n ///----------------给数组X,Y坐标传点-----------\r\n for (let i = 0; i < h1.length; i++) {\r\n tmp_x = w1[i] * 1; //含水率平均值\r\n tmp_y = h1[i] * 1; //锥入深度平均值\r\n if (tmp_x != '' && tmp_x != '/' && tmp_y != '' && tmp_y != '/') {\r\n array_x[i] = tmp_x;\r\n array_y[i] = tmp_y;\r\n }\r\n }\r\n array_x.sort(function (a, b) {\r\n return a - b;\r\n });\r\n array_y.sort(function (a, b) {\r\n return a - b;\r\n });\r\n\r\n //--------------------针对土工和矿粉试验,传入2个点求Y对应的X坐标\r\n // x1, x2, y1, y2, y\r\n function call_x_y(Xa, Ya, Xd, Yd, y) {\r\n //(y - y1) * (x2 - x1) / (y2 - y1) + x1 * 1;\r\n let x;\r\n x = Xa - ((Ya - y) * (Xa - Xd)) / (Ya - Yd);\r\n return x;\r\n }\r\n //-------------19 GetHpValue(wl)//土工和矿粉试验依据[砂类土][细粒土]------------------\r\n function GetHpValue(wl, type) {\r\n wl = wl * 1;\r\n let hp;\r\n if (type == 0) hp = 29.6 - 1.22 * wl + 0.017 * wl * wl - 0.0000744 * wl * wl * wl;\r\n else hp = wl / (0.524 * wl - 7.606);\r\n return hp;\r\n }\r\n\r\n let wl, hp;\r\n\r\n if (type == '细粒土') {\r\n //-----------当3点在一条直线上的时候---------------------\r\n\r\n if (Math.abs((array_y[2] - array_y[1]) / (array_x[2] - array_x[1]) - (array_y[2] - array_y[0]) / (array_x[2] - array_x[0])) <= 0.00001) {\r\n wl = call_x_y(array_x[2], array_y[2], array_x[1], array_y[1], sdh);\r\n wl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wl, -1);\r\n hp = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(GetHpValue(wl, 1), -1);\r\n wp =\r\n 0.5 *\r\n (Math.pow(10, ((lg(array_x[2]) - lg(array_x[0])) * (lg(hp) - lg(array_y[0]))) / (lg(array_y[2]) - lg(array_y[0])) + lg(array_x[0])) +\r\n Math.pow(10, ((lg(array_x[2]) - lg(array_x[1])) * (lg(hp) - lg(array_y[1]))) / (lg(array_y[2]) - lg(array_y[1])) + lg(array_x[1])));\r\n wp = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wp, -1);\r\n }\r\n //-------------当3点不为一条直线,AC,AB -----------\r\n else {\r\n tmp_x = array_x[2];\r\n tmp_y = GetHpValue(tmp_x, 1);\r\n let x_b = call_x_y(array_x[2], array_y[2], array_x[0], array_y[0], tmp_y);\r\n let x_c = call_x_y(array_x[2], array_y[2], array_x[1], array_y[1], tmp_y);\r\n let x_d = (x_b * 1 + x_c * 1) / 2;\r\n wl = call_x_y(array_x[2], array_y[2], x_d, tmp_y, sdh);\r\n wl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wl, -1);\r\n // hp = GetDataOddIncreaseEvenDecrease(GetHpValue(wl, 1), -1);\r\n // wp = 0.5 * (Math.pow(10, ((lg(array_x[2]) - lg(array_x[0])) * (lg(hp) - lg(array_y[0])) / (lg(array_y[2]) - lg(array_y[0])) + lg(array_x[0]))) + Math.pow(10, ((lg(array_x[2]) - lg(array_x[1])) * (lg(hp) - lg(array_y[1])) / (lg(array_y[2]) - lg(array_y[1])) + lg(array_x[1]))));\r\n //wp = GetDataOddIncreaseEvenDecrease(wp, -1);\r\n }\r\n } else {\r\n //-----------当3点在一条直线上的时候---------------------\r\n if (Math.abs((array_y[2] - array_y[1]) / (array_x[2] - array_x[1]) - (array_y[2] - array_y[0]) / (array_x[2] - array_x[0])) <= 0.00001) {\r\n wl = call_x_y(array_x[2], array_y[2], array_x[1], array_y[1], sdh);\r\n wl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wl, -1);\r\n // hp = GetDataOddIncreaseEvenDecrease(GetHpValue(wl, 0), -1);\r\n // wp = 0.5 * (Math.pow(10, ((lg(array_x[2]) - lg(array_x[0])) * (lg(hp) - lg(array_y[0])) / (lg(array_y[2]) - lg(array_y[0])) + lg(array_x[0]))) + Math.pow(10, ((lg(array_x[2]) - lg(array_x[1])) * (lg(hp) - lg(array_y[1])) / (lg(array_y[2]) - lg(array_y[1])) + lg(array_x[1]))));\r\n // wp = GetDataOddIncreaseEvenDecrease(wp, -1);\r\n }\r\n //-------------当3点不为一条直线,AC,AB -----------\r\n else {\r\n tmp_x = array_x[2];\r\n tmp_y = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(GetHpValue(tmp_x, 0), -1);\r\n let x_b = call_x_y(array_x[2], array_y[2], array_x[0], array_y[0], tmp_y);\r\n let x_c = call_x_y(array_x[2], array_y[2], array_x[1], array_y[1], tmp_y);\r\n\r\n let x_d = (x_b + x_c) / 2;\r\n wl = call_x_y(array_x[2], array_y[2], x_d, tmp_y, sdh);\r\n wl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(wl, -1);\r\n // hp = GetDataOddIncreaseEvenDecrease(GetHpValue(wl, 0), -1);\r\n // wp = 0.5 * (Math.pow(10, ((lg(array_x[2]) - lg(array_x[0])) * (lg(hp) - lg(array_y[0])) / (lg(array_y[2]) - lg(array_y[0])) + lg(array_x[0]))) + Math.pow(10, ((lg(array_x[2]) - lg(array_x[1])) * (lg(hp) - lg(array_y[1])) / (lg(array_y[2]) - lg(array_y[1])) + lg(array_x[1]))));\r\n //wp = GetDataOddIncreaseEvenDecrease(wp, -1);\r\n }\r\n }\r\n\r\n SumNumber = wl;\r\n if (isNaN(SumNumber)) SumNumber = '/';\r\n return SumNumber;\r\n },\r\n },\r\n {\r\n funName: 'YJLBBZCA',\r\n funDesc: '2倍标准差方法剔除特异值:平均值(YJLBBZCA)',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '数值范围',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n let arr = retArrVals;\r\n\r\n let type = 2;\r\n let array = new Array();\r\n for (let i = 0; i < arr.length; i++) {\r\n if (!isNaN(arr[i]) && arr[i] != '/') {\r\n array[i] = arr[i];\r\n }\r\n }\r\n //avg为舍弃前的平均值\r\n let avg = FormulaUtils.commFun.getAverage(array);\r\n //标准差\r\n let stand = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(FormulaUtils.commFun.GetS(array), -2);\r\n //得到舍弃的范围\r\n if (type == '' || type == '/') {\r\n //不舍弃\r\n let a = array.length; //所有的左侧和右侧的测定值个数\r\n avg = avg * 1;\r\n stand = stand * 1;\r\n } else {\r\n //得到舍弃值得范围\r\n let max = avg * 1 + type * 1 * stand * 1;\r\n let min = avg * 1 - type * 1 * stand * 1;\r\n let _array = new Array();\r\n let num = 0;\r\n for (let i = 0; i < array.length; i++) {\r\n if (array[i] > min && array[i] < max) {\r\n _array.push(array[i]); // continue;\r\n }\r\n }\r\n avg = FormulaUtils.commFun.getAverage(_array);\r\n }\r\n return avg;\r\n },\r\n },\r\n {\r\n funName: 'YJLBBZCS',\r\n funDesc: '2倍标准差方法剔除特异值:标准差(YJLBBZCS)',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '数值范围',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n let arr = retArrVals;\r\n\r\n let type = 2;\r\n //array为所有的左侧和右侧的测定值\r\n let array = new Array();\r\n for (let i = 0; i < arr.length; i++) {\r\n if (!isNaN(arr[i]) && arr[i] != '/') {\r\n array[i] = arr[i];\r\n }\r\n }\r\n //avg为舍弃前的平均值\r\n let avg = FormulaUtils.commFun.getAverage(array);\r\n //标准差\r\n let stand = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(FormulaUtils.commFun.GetS(array), -2);\r\n //得到舍弃的范围\r\n if (type == '' || type == '/') {\r\n //不舍弃\r\n let a = array.length; //所有的左侧和右侧的测定值个数\r\n avg = avg * 1;\r\n stand = stand * 1;\r\n } else {\r\n //得到舍弃值得范围\r\n let max = avg * 1 + type * 1 * stand * 1;\r\n let min = avg * 1 - type * 1 * stand * 1;\r\n let _array = new Array();\r\n let num = 0;\r\n for (let i = 0; i < array.length; i++) {\r\n if (array[i] > min && array[i] < max) {\r\n _array.push(array[i]); // continue;\r\n }\r\n }\r\n avg = FormulaUtils.commFun.getAverage(_array);\r\n stand = FormulaUtils.commFun.GetS(_array);\r\n }\r\n return stand;\r\n },\r\n },\r\n {\r\n funName: 'YJKBBZCA',\r\n funDesc: 'k倍标准差方法剔除特异值:平均值(YJKBBZCA)',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '数值范围',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n let arr = retArrVals;\r\n\r\n let type;\r\n let len = arr.length;\r\n switch (len) {\r\n case 3:\r\n type = 1.15;\r\n break;\r\n case 4:\r\n type = 1.46;\r\n break;\r\n case 5:\r\n type = 1.67;\r\n break;\r\n case 6:\r\n type = 1.82;\r\n break;\r\n case 7:\r\n type = 1.94;\r\n break;\r\n case 8:\r\n type = 2.03;\r\n break;\r\n case 9:\r\n type = 2.11;\r\n break;\r\n case 10:\r\n type = 2.18;\r\n break;\r\n break;\r\n case 11:\r\n type = 2.23;\r\n break;\r\n break;\r\n case 12:\r\n type = 2.28;\r\n break;\r\n break;\r\n case 13:\r\n type = 2.33;\r\n break;\r\n break;\r\n case 14:\r\n type = 2.37;\r\n break;\r\n }\r\n\r\n let array = new Array();\r\n for (let i = 0; i < arr.length; i++) {\r\n // if (!isNaN(arr[i]) && arr[i] != '/') {\r\n // array[i] = arr[i];\r\n // }\r\n if (!isNaN(arr[i]) && arr[i] != '/' && arr[i] != '') {\r\n array[i] = arr[i];\r\n }\r\n }\r\n //avg为舍弃前的平均值\r\n let avg = FormulaUtils.commFun.getAverage(array);\r\n\r\n if (array.length === 0 || array.every((value) => value === array[0])) {\r\n // console.log('表示所有数据都一样,则直接返回');\r\n return avg;\r\n }\r\n\r\n //标准差\r\n let stand = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(FormulaUtils.commFun.GetS(array), -2);\r\n //得到舍弃的范围\r\n if (type == '' || type == '/') {\r\n //不舍弃\r\n let a = array.length; //所有的左侧和右侧的测定值个数\r\n avg = avg * 1;\r\n stand = stand * 1;\r\n } else {\r\n //得到舍弃值得范围\r\n let max = avg * 1 + type * 1 * stand * 1;\r\n let min = avg * 1 - type * 1 * stand * 1;\r\n let _array = new Array();\r\n let num = 0;\r\n for (let i = 0; i < array.length; i++) {\r\n if (array[i] > min && array[i] < max) {\r\n _array.push(array[i]); // continue;\r\n }\r\n }\r\n avg = FormulaUtils.commFun.getAverage(_array);\r\n }\r\n return avg;\r\n },\r\n },\r\n {\r\n funName: 'YJKBBZCS',\r\n funDesc: 'k倍标准差方法剔除特异值:标准差(YJKBBZCS)',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '数值范围',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retData.allCellVals);\r\n\r\n let arr = retArrVals;\r\n\r\n let type;\r\n let len = arr.length;\r\n switch (len) {\r\n case 3:\r\n type = 1.15;\r\n break;\r\n case 4:\r\n type = 1.46;\r\n break;\r\n case 5:\r\n type = 1.67;\r\n break;\r\n case 6:\r\n type = 1.82;\r\n break;\r\n case 7:\r\n type = 1.94;\r\n break;\r\n case 8:\r\n type = 2.03;\r\n break;\r\n case 9:\r\n type = 2.11;\r\n break;\r\n case 10:\r\n type = 2.18;\r\n break;\r\n break;\r\n case 11:\r\n type = 2.23;\r\n break;\r\n break;\r\n case 12:\r\n type = 2.28;\r\n break;\r\n break;\r\n case 13:\r\n type = 2.33;\r\n break;\r\n break;\r\n case 14:\r\n type = 2.37;\r\n break;\r\n }\r\n\r\n //array为所有的左侧和右侧的测定值\r\n let array = new Array();\r\n for (let i = 0; i < arr.length; i++) {\r\n if (!isNaN(arr[i]) && arr[i] != '/') {\r\n array[i] = arr[i];\r\n }\r\n }\r\n //avg为舍弃前的平均值\r\n let avg = FormulaUtils.commFun.getAverage(array);\r\n //标准差\r\n let stand = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(FormulaUtils.commFun.GetS(array), -2);\r\n //得到舍弃的范围\r\n if (type == '' || type == '/') {\r\n //不舍弃\r\n let a = array.length; //所有的左侧和右侧的测定值个数\r\n avg = avg * 1;\r\n stand = stand * 1;\r\n } else {\r\n //得到舍弃值得范围\r\n let max = avg * 1 + type * 1 * stand * 1;\r\n let min = avg * 1 - type * 1 * stand * 1;\r\n let _array = new Array();\r\n let num = 0;\r\n for (let i = 0; i < array.length; i++) {\r\n if (array[i] > min && array[i] < max) {\r\n _array.push(array[i]); // continue;\r\n }\r\n }\r\n avg = FormulaUtils.commFun.getAverage(_array);\r\n stand = FormulaUtils.commFun.GetS(_array);\r\n }\r\n return stand;\r\n },\r\n },\r\n {\r\n funName: 'YJKBBZCC',\r\n funDesc: '被剔除的特异值点数:YJKBBZCC',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '弯沉左侧和右侧的数值范围',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '舍弃值的倍数',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于2个,则返回空字符串\r\n if (retData.allCellVals.length < 2) {\r\n return '';\r\n }\r\n\r\n //获取retData.allCellVals中除最后一个值的数组\r\n let retArrValsPcLastVal = [];\r\n for (let index = 0; index < retData.allCellVals.length - 1; index++) {\r\n retArrValsPcLastVal.push(retData.allCellVals[index]);\r\n }\r\n\r\n let retArrVals: Array<number> = FormulaUtils.commFun.convertToInt(retArrValsPcLastVal);\r\n\r\n let arr = retArrVals,\r\n type = retData.allCellVals[retData.allCellVals.length - 1];\r\n\r\n let ds; //输出的个数值\r\n let array = new Array();\r\n for (let i = 0; i < arr.length; i++) {\r\n if (!isNaN(arr[i]) && arr[i] != '/') {\r\n array[i] = arr[i];\r\n }\r\n }\r\n //avg为舍弃前的平均值\r\n let avg = FormulaUtils.commFun.getAverage(array);\r\n //标准差\r\n let stand = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(FormulaUtils.commFun.GetS(array), -2);\r\n //得到舍弃的范围\r\n if (type == '' || type == '/') {\r\n //不舍弃\r\n ds = array.length; //所有的左侧和右侧的测定值个数\r\n } else {\r\n //得到舍弃值得范围\r\n let max = avg * 1 + type * 1 * stand * 1;\r\n let min = avg * 1 - type * 1 * stand * 1;\r\n let _array = new Array();\r\n let num = 0;\r\n for (let i = 0; i < array.length; i++) {\r\n if (array[i] > min && array[i] < max) {\r\n _array.push(array[i]); // continue;\r\n }\r\n }\r\n ds = _array.length;\r\n }\r\n return ds;\r\n },\r\n },\r\n {\r\n funName: 'YJHTJD',\r\n funDesc: '回弹角度修正查表',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '测试方向',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '角度',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '实测平均回弹值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于3个,则返回空字符串\r\n if (retData.allCellVals.length < 3) {\r\n return '/';\r\n }\r\n if (!FormulaUtils.commFun.isNumber(retData.allCellVals[2])) {\r\n return '/';\r\n }\r\n if (retData.allCellVals[0]._error != undefined && retData.allCellVals[0]._error != null) {\r\n return '/';\r\n }\r\n\r\n let csfx = retData.allCellVals[0],\r\n jd = retData.allCellVals[1],\r\n htz = retData.allCellVals[2];\r\n\r\n let jd_value = jd; //角度\r\n let jd_value_po; //角度所在数组位置;\r\n let ns = htz; //实测平均回弹值Rm\r\n let jdxzz; //输出的角度修正值\r\n\r\n function GetRm(key, value) {\r\n //参数为检测角度和实测平均回弹值Rm\r\n let result = 0;\r\n if (value >= 50) {\r\n if (key == 90) {\r\n result = -3.5;\r\n } else if (key == 60) {\r\n result = -3.0;\r\n } else if (key == 45) {\r\n result = -2.5;\r\n } else if (key == 30) {\r\n result = -1.5;\r\n } else if (key == -30) {\r\n result = 1.0;\r\n } else if (key == -45) {\r\n result = 1.5;\r\n } else if (key == -60) {\r\n result = 2.0;\r\n } else if (key == -90) {\r\n result = 2.5;\r\n }\r\n } else if (value <= 20) {\r\n if (key == 90) {\r\n result = -6.0;\r\n } else if (key == 60) {\r\n result = -5.0;\r\n } else if (key == 45) {\r\n result = -4.0;\r\n } else if (key == 30) {\r\n result = -3.0;\r\n } else if (key == -30) {\r\n result = 2.5;\r\n } else if (key == -45) {\r\n result = 3.0;\r\n } else if (key == -60) {\r\n result = 3.5;\r\n } else if (key == -90) {\r\n result = 4.0;\r\n }\r\n }\r\n return result;\r\n }\r\n if (csfx == '非水平方向') {\r\n let arr_jd = new Array('90', '60', '45', '30', '-30', '-45', '-60', '-90');\r\n for (let i = 0; i < arr_jd.length; i++) {\r\n if (jd_value == arr_jd[i]) {\r\n jd_value_po = i;\r\n break;\r\n }\r\n }\r\n let t90 = [\r\n { x: 20, y: -6.0 },\r\n { x: 21, y: -5.9 },\r\n { x: 22, y: -5.8 },\r\n { x: 23, y: -5.7 },\r\n { x: 24, y: -5.6 },\r\n { x: 25, y: -5.5 },\r\n { x: 26, y: -5.4 },\r\n { x: 27, y: -5.3 },\r\n { x: 28, y: -5.2 },\r\n { x: 29, y: -5.1 },\r\n { x: 30, y: -5.0 },\r\n { x: 31, y: -4.9 },\r\n { x: 32, y: -4.8 },\r\n { x: 33, y: -4.7 },\r\n { x: 34, y: -4.6 },\r\n { x: 35, y: -4.5 },\r\n { x: 36, y: -4.4 },\r\n { x: 37, y: -4.3 },\r\n { x: 38, y: -4.2 },\r\n { x: 39, y: -4.1 },\r\n { x: 40, y: -4.0 },\r\n { x: 41, y: -4.0 },\r\n { x: 42, y: -3.9 },\r\n { x: 43, y: -3.9 },\r\n { x: 44, y: -3.8 },\r\n { x: 45, y: -3.8 },\r\n { x: 46, y: -3.7 },\r\n { x: 47, y: -3.7 },\r\n { x: 48, y: -3.6 },\r\n { x: 49, y: -3.6 },\r\n { x: 50, y: -3.5 },\r\n ];\r\n let t60 = [\r\n { x: 20, y: -5.0 },\r\n { x: 21, y: -4.9 },\r\n { x: 22, y: -4.8 },\r\n { x: 23, y: -4.7 },\r\n { x: 24, y: -4.6 },\r\n { x: 25, y: -4.5 },\r\n { x: 26, y: -4.4 },\r\n { x: 27, y: -4.3 },\r\n { x: 28, y: -4.2 },\r\n { x: 29, y: -4.1 },\r\n { x: 30, y: -4.0 },\r\n { x: 31, y: -4.0 },\r\n { x: 32, y: -3.9 },\r\n { x: 33, y: -3.9 },\r\n { x: 34, y: -3.8 },\r\n { x: 35, y: -3.8 },\r\n { x: 36, y: -3.7 },\r\n { x: 37, y: -3.7 },\r\n { x: 38, y: -3.6 },\r\n { x: 39, y: -3.6 },\r\n { x: 40, y: -3.5 },\r\n { x: 41, y: -3.5 },\r\n { x: 42, y: -3.4 },\r\n { x: 43, y: -3.4 },\r\n { x: 44, y: -3.3 },\r\n { x: 45, y: -3.3 },\r\n { x: 46, y: -3.2 },\r\n { x: 47, y: -3.2 },\r\n { x: 48, y: -3.1 },\r\n { x: 49, y: -3.1 },\r\n { x: 50, y: -3.0 },\r\n ];\r\n let t45 = [\r\n { x: 20, y: -4.0 },\r\n { x: 21, y: -4.0 },\r\n { x: 22, y: -3.9 },\r\n { x: 23, y: -3.9 },\r\n { x: 24, y: -3.8 },\r\n { x: 25, y: -3.8 },\r\n { x: 26, y: -3.7 },\r\n { x: 27, y: -3.7 },\r\n { x: 28, y: -3.6 },\r\n { x: 29, y: -3.6 },\r\n { x: 30, y: -3.5 },\r\n { x: 31, y: -3.5 },\r\n { x: 32, y: -3.4 },\r\n { x: 33, y: -3.4 },\r\n { x: 34, y: -3.3 },\r\n { x: 35, y: -3.3 },\r\n { x: 36, y: -3.2 },\r\n { x: 37, y: -3.2 },\r\n { x: 38, y: -3.1 },\r\n { x: 39, y: -3.1 },\r\n { x: 40, y: -3.0 },\r\n { x: 41, y: -3.0 },\r\n { x: 42, y: -2.9 },\r\n { x: 43, y: -2.9 },\r\n { x: 44, y: -2.8 },\r\n { x: 45, y: -2.8 },\r\n { x: 46, y: -2.7 },\r\n { x: 47, y: -2.7 },\r\n { x: 48, y: -2.6 },\r\n { x: 49, y: -2.6 },\r\n { x: 50, y: -2.5 },\r\n ];\r\n let t30 = [\r\n { x: 20, y: -3.0 },\r\n { x: 21, y: -3.0 },\r\n { x: 22, y: -2.9 },\r\n { x: 23, y: -2.9 },\r\n { x: 24, y: -2.8 },\r\n { x: 25, y: -2.8 },\r\n { x: 26, y: -2.7 },\r\n { x: 27, y: -2.7 },\r\n { x: 28, y: -2.6 },\r\n { x: 29, y: -2.6 },\r\n { x: 30, y: -2.5 },\r\n { x: 31, y: -2.5 },\r\n { x: 32, y: -2.4 },\r\n { x: 33, y: -2.4 },\r\n { x: 34, y: -2.3 },\r\n { x: 35, y: -2.3 },\r\n { x: 36, y: -2.2 },\r\n { x: 37, y: -2.2 },\r\n { x: 38, y: -2.1 },\r\n { x: 39, y: -2.1 },\r\n { x: 40, y: -2.0 },\r\n { x: 41, y: -2.0 },\r\n { x: 42, y: -1.9 },\r\n { x: 43, y: -1.9 },\r\n { x: 44, y: -1.8 },\r\n { x: 45, y: -1.8 },\r\n { x: 46, y: -1.7 },\r\n { x: 47, y: -1.7 },\r\n { x: 48, y: -1.6 },\r\n { x: 49, y: -1.6 },\r\n { x: 50, y: -1.5 },\r\n ];\r\n let t_30 = [\r\n { x: 20, y: 2.5 },\r\n { x: 21, y: 2.5 },\r\n { x: 22, y: 2.4 },\r\n { x: 23, y: 2.4 },\r\n { x: 24, y: 2.3 },\r\n { x: 25, y: 2.3 },\r\n { x: 26, y: 2.2 },\r\n { x: 27, y: 2.2 },\r\n { x: 28, y: 2.1 },\r\n { x: 29, y: 2.1 },\r\n { x: 30, y: 2.0 },\r\n { x: 31, y: 2.0 },\r\n { x: 32, y: 1.9 },\r\n { x: 33, y: 1.9 },\r\n { x: 34, y: 1.8 },\r\n { x: 35, y: 1.8 },\r\n { x: 36, y: 1.7 },\r\n { x: 37, y: 1.7 },\r\n { x: 38, y: 1.6 },\r\n { x: 39, y: 1.6 },\r\n { x: 40, y: 1.5 },\r\n { x: 41, y: 1.5 },\r\n { x: 42, y: 1.4 },\r\n { x: 43, y: 1.4 },\r\n { x: 44, y: 1.3 },\r\n { x: 45, y: 1.3 },\r\n { x: 46, y: 1.2 },\r\n { x: 47, y: 1.2 },\r\n { x: 48, y: 1.1 },\r\n { x: 49, y: 1.1 },\r\n { x: 50, y: 1.0 },\r\n ];\r\n let t_45 = [\r\n { x: 20, y: 3.0 },\r\n { x: 21, y: 3.0 },\r\n { x: 22, y: 2.9 },\r\n { x: 23, y: 2.9 },\r\n { x: 24, y: 2.8 },\r\n { x: 25, y: 2.8 },\r\n { x: 26, y: 2.7 },\r\n { x: 27, y: 2.7 },\r\n { x: 28, y: 2.6 },\r\n { x: 29, y: 2.6 },\r\n { x: 30, y: 2.5 },\r\n { x: 31, y: 2.5 },\r\n { x: 32, y: 2.4 },\r\n { x: 33, y: 2.4 },\r\n { x: 34, y: 2.3 },\r\n { x: 35, y: 2.3 },\r\n { x: 36, y: 2.2 },\r\n { x: 37, y: 2.2 },\r\n { x: 38, y: 2.1 },\r\n { x: 39, y: 2.1 },\r\n { x: 40, y: 2.0 },\r\n { x: 41, y: 2.0 },\r\n { x: 42, y: 1.9 },\r\n { x: 43, y: 1.9 },\r\n { x: 44, y: 1.8 },\r\n { x: 45, y: 1.8 },\r\n { x: 46, y: 1.7 },\r\n { x: 47, y: 1.7 },\r\n { x: 48, y: 1.6 },\r\n { x: 49, y: 1.6 },\r\n { x: 50, y: 1.5 },\r\n ];\r\n let t_60 = [\r\n { x: 20, y: 3.5 },\r\n { x: 21, y: 3.5 },\r\n { x: 22, y: 3.4 },\r\n { x: 23, y: 3.4 },\r\n { x: 24, y: 3.3 },\r\n { x: 25, y: 3.3 },\r\n { x: 26, y: 3.2 },\r\n { x: 27, y: 3.2 },\r\n { x: 28, y: 3.1 },\r\n { x: 29, y: 3.1 },\r\n { x: 30, y: 3.0 },\r\n { x: 31, y: 3.0 },\r\n { x: 32, y: 2.9 },\r\n { x: 33, y: 2.9 },\r\n { x: 34, y: 2.8 },\r\n { x: 35, y: 2.8 },\r\n { x: 36, y: 2.7 },\r\n { x: 37, y: 2.7 },\r\n { x: 38, y: 2.6 },\r\n { x: 39, y: 2.6 },\r\n { x: 40, y: 2.5 },\r\n { x: 41, y: 2.5 },\r\n { x: 42, y: 2.4 },\r\n { x: 43, y: 2.4 },\r\n { x: 44, y: 2.3 },\r\n { x: 45, y: 2.3 },\r\n { x: 46, y: 2.2 },\r\n { x: 47, y: 2.2 },\r\n { x: 48, y: 2.1 },\r\n { x: 49, y: 2.1 },\r\n { x: 50, y: 2.0 },\r\n ];\r\n let t_90 = [\r\n { x: 20, y: 4.0 },\r\n { x: 21, y: 4.0 },\r\n { x: 22, y: 3.9 },\r\n { x: 23, y: 3.9 },\r\n { x: 24, y: 3.8 },\r\n { x: 25, y: 3.8 },\r\n { x: 26, y: 3.7 },\r\n { x: 27, y: 3.7 },\r\n { x: 28, y: 3.6 },\r\n { x: 29, y: 3.6 },\r\n { x: 30, y: 3.5 },\r\n { x: 31, y: 3.5 },\r\n { x: 32, y: 3.4 },\r\n { x: 33, y: 3.4 },\r\n { x: 34, y: 3.3 },\r\n { x: 35, y: 3.3 },\r\n { x: 36, y: 3.2 },\r\n { x: 37, y: 3.2 },\r\n { x: 38, y: 3.1 },\r\n { x: 39, y: 3.1 },\r\n { x: 40, y: 3.0 },\r\n { x: 41, y: 3.0 },\r\n { x: 42, y: 2.9 },\r\n { x: 43, y: 2.9 },\r\n { x: 44, y: 2.8 },\r\n { x: 45, y: 2.8 },\r\n { x: 46, y: 2.7 },\r\n { x: 47, y: 2.7 },\r\n { x: 48, y: 2.6 },\r\n { x: 49, y: 2.6 },\r\n { x: 50, y: 2.5 },\r\n ];\r\n let arr_t = new Array();\r\n\r\n if ((jd_value_po != '' || jd_value_po == 0) && jd_value != '0') {\r\n if (jd_value == '90') {\r\n arr_t = t90;\r\n } else if (jd_value == '60') {\r\n arr_t = t60;\r\n } else if (jd_value == '45') {\r\n arr_t = t45;\r\n } else if (jd_value == '30') {\r\n arr_t = t30;\r\n } else if (jd_value == '-30') {\r\n arr_t = t_30;\r\n } else if (jd_value == '-45') {\r\n arr_t = t_45;\r\n } else if (jd_value == '-60') {\r\n arr_t = t_60;\r\n } else if (jd_value == '-90') {\r\n arr_t = t_90;\r\n }\r\n\r\n let m = -1;\r\n\r\n for (let i = 0; i < arr_t.length; i++) {\r\n if (arr_t[0].x * 1 > ns) {\r\n m = 1;\r\n break;\r\n } else if (arr_t[i].x * 1 > ns) {\r\n m = i;\r\n break;\r\n } else if (arr_t[arr_t.length - 1].x * 1 < ns) {\r\n m = arr_t.length - 1;\r\n break;\r\n } else if (ns == arr_t[i].x) {\r\n jdxzz = arr_t[i].y;\r\n break;\r\n }\r\n }\r\n\r\n if (m != -1) {\r\n let x1 = arr_t[m - 1].x;\r\n let y1 = arr_t[m - 1].y;\r\n let x2 = arr_t[m].x;\r\n let y2 = arr_t[m].y;\r\n\r\n jdxzz = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(FormulaUtils.commFun.InterpolationMethod_y(x1, x2, y1, y2, ns), -1);\r\n }\r\n if (ns >= 50 || ns <= 20) {\r\n //\r\n\r\n jdxzz = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(GetRm(jd_value, ns), -1);\r\n }\r\n } else {\r\n //固定的,但偏差不会太大\r\n let ns_1 = 40; //相邻的NS\r\n let ns_2 = 50;\r\n let v1, v2;\r\n //取30度\r\n if (jd_value * 1 > 0) {\r\n v1 = FormulaUtils.commFun.InterpolationMethod_y(0, 30, 0, -2.0, jd_value);\r\n v2 = FormulaUtils.commFun.InterpolationMethod_y(0, 30, 0, -1.5, jd_value);\r\n jdxzz = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(FormulaUtils.commFun.InterpolationMethod_y(ns_1, ns_2, v1, v2, ns), -1);\r\n } else {\r\n jdxzz = '0.0';\r\n }\r\n if (ns >= 50 || ns <= 20) {\r\n jdxzz = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(GetRm(jd_value, ns), -1);\r\n }\r\n }\r\n } else {\r\n jdxzz = '/';\r\n }\r\n\r\n return jdxzz;\r\n },\r\n },\r\n {\r\n funName: 'YJHTJZM',\r\n funDesc: '回弹浇筑面修正查表',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '浇筑面',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '实测平均回弹值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于2个,则返回空字符串\r\n if (retData.allCellVals.length < 2) {\r\n return '/';\r\n }\r\n if (!FormulaUtils.commFun.isNumber(retData.allCellVals[1])) {\r\n return '/';\r\n }\r\n if (retData.allCellVals[0]._error != undefined && retData.allCellVals[0]._error != null) {\r\n return '/';\r\n }\r\n\r\n let jzm = retData.allCellVals[0],\r\n htz = Number(retData.allCellVals[1]);\r\n\r\n let jzmxzz; //输出的浇筑面修正值\r\n if (jzm == '表面') {\r\n let arr = new Array();\r\n arr = [\r\n '20-2.5',\r\n '21-2.4',\r\n '22-2.3',\r\n '23-2.2',\r\n '24-2.1',\r\n '25-2.0',\r\n '26-1.9',\r\n '27-1.8',\r\n '28-1.7',\r\n '29-1.6',\r\n '30-1.5',\r\n '31-1.4',\r\n '32-1.3',\r\n '33-1.2',\r\n '34-1.1',\r\n '35-1.0',\r\n '36-0.9',\r\n '37-0.8',\r\n '38-0.7',\r\n '39-0.6',\r\n '40-0.5',\r\n '41-0.4',\r\n '42-0.3',\r\n '43-0.2',\r\n '44-0.1',\r\n '45-0',\r\n '46-0',\r\n '47-0',\r\n '48-0',\r\n '49-0',\r\n '50-0',\r\n ];\r\n for (let i = 1; i < 11; i++) {\r\n if (htz * 1 > 50) {\r\n jzmxzz = '0';\r\n } else if (htz * 1 < 20) {\r\n jzmxzz = '2.5';\r\n } else {\r\n htz = Math.round(htz);\r\n for (let j = 0; j < arr.length; j++) {\r\n let a1 = arr[j].split('-');\r\n\r\n if (htz == a1[0]) {\r\n jzmxzz = a1[1];\r\n }\r\n }\r\n }\r\n }\r\n } else if (jzm == '底面') {\r\n let arr = new Array();\r\n arr = [\r\n '20-3.0',\r\n '21-2.9',\r\n '22-2.8',\r\n '23-2.7',\r\n '24-2.6',\r\n '25-2.5',\r\n '26-2.4',\r\n '27-2.3',\r\n '28-2.2',\r\n '29-2.1',\r\n '30-2.0',\r\n '31-1.9',\r\n '32-1.8',\r\n '33-1.7',\r\n '34-1.6',\r\n '35-1.5',\r\n '36-1.4',\r\n '37-1.3',\r\n '38-1.2',\r\n '39-1.1',\r\n '40-1.0',\r\n '41-0.9',\r\n '42-0.8',\r\n '43-0.7',\r\n '44-0.6',\r\n '45-0.5',\r\n '46-0.4',\r\n '47-0.3',\r\n '48-0.2',\r\n '49-0.1',\r\n '50-0',\r\n ];\r\n for (let i = 1; i < 11; i++) {\r\n if (htz * 1 > 50) {\r\n jzmxzz = '0';\r\n } else if (htz * 1 < 20) {\r\n jzmxzz = '3.0';\r\n } else {\r\n htz = Math.round(htz);\r\n for (let j = 0; j < arr.length; j++) {\r\n let a1 = arr[j].split('-');\r\n\r\n if (htz == a1[0]) {\r\n jzmxzz = a1[1] * -1;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return jzmxzz;\r\n },\r\n },\r\n {\r\n funName: 'YJTKLZC',\r\n funDesc: '土的d60、d30、d10 计算)',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '粗筛孔径60',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛孔径40',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛孔径20',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛孔径10',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛孔径5',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛孔径2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛孔径2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛孔径1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛孔径0.5',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛孔径0.25',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛孔径0.075',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛孔径筛底',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛60小于该孔的质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛40小于该孔的质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛20小于该孔的质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛10小于该孔的质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛5小于该孔的质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛2小于该孔的质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛2占总土质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛1占总土质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛0.5占总土质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛0.25占总土质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛0.075占总土质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛筛底占总土质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'd的数据值,如:60、30、10(其中之一)',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于25个,则返回空字符串\r\n if (retData.allCellVals.length < 25) {\r\n return '';\r\n }\r\n // if (!FormulaUtils.commFun.isNumber(retData.allCellVals[1])) {\r\n // \treturn '';\r\n // }\r\n\r\n let p60 = retData.allCellVals[0],\r\n p40 = retData.allCellVals[1],\r\n p20 = retData.allCellVals[2],\r\n p10 = retData.allCellVals[3],\r\n p5 = retData.allCellVals[4],\r\n p2 = retData.allCellVals[5],\r\n px2 = retData.allCellVals[6],\r\n px1 = retData.allCellVals[7],\r\n px05 = retData.allCellVals[8],\r\n px025 = retData.allCellVals[9],\r\n px0075 = retData.allCellVals[10],\r\n pd = retData.allCellVals[11],\r\n bf1 = retData.allCellVals[12],\r\n bf2 = retData.allCellVals[13],\r\n bf3 = retData.allCellVals[14],\r\n bf4 = retData.allCellVals[15],\r\n bf5 = retData.allCellVals[16],\r\n bf6 = retData.allCellVals[17],\r\n bf7 = retData.allCellVals[18],\r\n bf8 = retData.allCellVals[19],\r\n bf9 = retData.allCellVals[20],\r\n bf10 = retData.allCellVals[21],\r\n bf11 = retData.allCellVals[22],\r\n bf12 = retData.allCellVals[23],\r\n dn = retData.allCellVals[24];\r\n\r\n let arr1 = [p60, p40, p20, p10, p5, p2, px2, px1, px05, px025, px0075, pd];\r\n let arr2 = [bf1, bf2, bf3, bf4, bf5, bf6, bf7, bf8, bf9, bf10, bf11, bf12];\r\n let dnn; //最后输出的值\r\n\r\n let array_y = new Array();\r\n let array_x = new Array();\r\n let len = 0;\r\n let tmp;\r\n let start = 0;\r\n\r\n for (let i = 0; i <= 11; i++) {\r\n if (i < 6) {\r\n tmp = arr2[i];\r\n } else {\r\n tmp = arr2[i];\r\n }\r\n\r\n if (tmp == '/' || tmp == '' || isNaN(tmp)) {\r\n continue;\r\n }\r\n\r\n if (tmp == 0 || tmp * 1 > 0) {\r\n if (start == 0) {\r\n start = i - 1;\r\n }\r\n array_y[len] = tmp;\r\n\r\n if (arr1[i].indexOf('底') != -1) {\r\n array_x[len] = '0.001';\r\n } else {\r\n array_x[len] = arr1[i];\r\n }\r\n len++;\r\n }\r\n }\r\n\r\n if (len < 3) {\r\n return;\r\n }\r\n\r\n let _index = 0;\r\n\r\n for (i = 0; i < array_y.length; i++) {\r\n if (array_y[i] >= dn) {\r\n _index++;\r\n } else {\r\n break;\r\n }\r\n }\r\n if (_index == 0) {\r\n return;\r\n }\r\n\r\n function ncf(getD) {\r\n let zhi = getD.y1 * 1 - ((getD.x1 * 1 - getD.x * 1) * (getD.y1 * 1 - getD.y2 * 1)) / (getD.x1 * 1 - getD.x2 * 1);\r\n return zhi;\r\n }\r\n\r\n function GetD() {\r\n this.x1 = 1;\r\n this.x2 = 1;\r\n this.y1 = 1;\r\n this.y2 = 1;\r\n this.k = 1;\r\n this.b = 0;\r\n this.x = 0;\r\n\r\n this.$get = function () {\r\n if (this.x1 - this.x2 == 0) {\r\n this.k = 1;\r\n this.b = 0;\r\n }\r\n\r\n this.k = (this.y1 - this.y2) / (this.x1 - this.x2);\r\n this.b = this.y1 - this.x1 * this.k;\r\n let result = this.k * this.x + this.b;\r\n return result;\r\n };\r\n }\r\n\r\n let getddn = new GetD();\r\n\r\n getddn.x1 = array_y[_index - 1];\r\n getddn.x2 = array_y[_index];\r\n getddn.y1 = array_x[_index - 1];\r\n getddn.y2 = array_x[_index];\r\n getddn.x = dn;\r\n\r\n dnn = ncf(getddn);\r\n\r\n dnn = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(dnn, -1);\r\n\r\n return dnn;\r\n },\r\n },\r\n {\r\n funName: 'YJJGX',\r\n funDesc: '集料坚固性公式',\r\n funDefaultVal: null,\r\n isAcceptArea: true,\r\n funParams: [\r\n {\r\n name: '质量百分率数据区域',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '试验前烘干质量数据区域',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '试验后烘干质量数据区域',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '质量损失百分率数据区域',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '序号(从1开始)',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于5个,则返回空字符串\r\n if (retData.allCellValsEw.length < 5) {\r\n return '';\r\n }\r\n\r\n let zlbfl = retData.allCellValsEw[0],\r\n syqhgzl = retData.allCellValsEw[1],\r\n syhhgzl = retData.allCellValsEw[2],\r\n zlss = retData.allCellValsEw[3],\r\n index = Number(retData.allCellValsEw[4]) - 1;\r\n\r\n // let zlssLs = [];\r\n // zlss.forEach((element) => {\r\n // \tif (element._error != null && element._error != undefined) {\r\n // \t\tzlssLs.push('/');\r\n // \t} else {\r\n // \t\tzlssLs.push(element);\r\n // \t}\r\n // });\r\n // zlss = zlssLs;\r\n\r\n // console.log(retData);\r\n // console.log(zlss);\r\n\r\n let zlssbfl = '';\r\n for (let i = 0; i < syqhgzl.length; i++) {\r\n if (parseFloat(zlbfl[index]) < 5) {\r\n //小于5时\r\n let Uindex = index - 1; //当前数据的上一个下标\r\n let UValue = 0;\r\n let Bindex = index + 1; //当前数据的下一个下标\r\n let BValue = 0;\r\n while (Uindex >= 0 && parseFloat(zlbfl[Uindex]) < 5) {\r\n //是否满足小于5\r\n Uindex--;\r\n }\r\n while (Bindex <= zlbfl.length && parseFloat(zlbfl[Bindex]) < 5) {\r\n Bindex++;\r\n }\r\n if (Uindex >= 0) {\r\n //取到合适的值\r\n UValue = parseFloat(zlss[Uindex]);\r\n }\r\n if (Bindex < zlbfl.length) {\r\n //取到合适的值(不能等于),>=时没有合适的值\r\n BValue = parseFloat(zlss[Bindex]);\r\n }\r\n if (UValue && BValue) {\r\n zlssbfl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease((UValue + BValue) / 2, -1);\r\n break;\r\n }\r\n if (UValue) {\r\n zlssbfl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(UValue, -1);\r\n break;\r\n }\r\n if (BValue) {\r\n zlssbfl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(BValue, -1);\r\n break;\r\n }\r\n } else {\r\n if (isNaN(syqhgzl[index]) || isNaN(syhhgzl[index])) {\r\n zlssbfl = '/';\r\n } else {\r\n zlssbfl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n ((parseFloat(syqhgzl[index]) - parseFloat(syhhgzl[index])) / parseFloat(syqhgzl[index])) * 100,\r\n -1,\r\n );\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return zlssbfl;\r\n },\r\n },\r\n {\r\n funName: 'YJNC',\r\n funDesc: '内插值',\r\n funDefaultVal: null,\r\n isAcceptArea: true,\r\n funParams: [\r\n {\r\n name: '数据区域Xn',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数据区域Yn',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'd的数据值,如:60、30、10(其中之一)可以为固定值 也可以为填入值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于3个,则返回空字符串\r\n if (retData.allCellValsEw.length < 3) {\r\n return '';\r\n }\r\n\r\n let xData = FormulaUtils.commFun.convertToInt(retData.allCellValsEw[0].filter((item) => FormulaUtils.commFun.isNumber(item))),\r\n yData = FormulaUtils.commFun.convertToInt(retData.allCellValsEw[1].filter((item) => FormulaUtils.commFun.isNumber(item))),\r\n x = retData.allCellValsEw[2];\r\n if (Array.isArray(x) && x.length > 0) {\r\n x = Number(x[0]);\r\n } else {\r\n x = Number(x);\r\n }\r\n\r\n // let tempXData = [],\r\n // tempYData = [];\r\n // xData.forEach((element, index) => {\r\n // if (element && element != 0) {\r\n // tempXData.push(element);\r\n // tempYData.push(yData[index]);\r\n // }\r\n // });\r\n\r\n // xData = tempXData;\r\n // yData = tempYData;\r\n\r\n // console.log(111, retData);\r\n // console.log(222, xData);\r\n // console.log(333, yData);\r\n // console.log(444, x);\r\n\r\n let arr1 = xData,\r\n arr2 = yData,\r\n dn = x;\r\n\r\n var dnn; //最后输出的值\r\n\r\n var array_y = new Array();\r\n var array_x = new Array();\r\n var len = 0;\r\n var tmp;\r\n var start = 0;\r\n dn = dn * 1;\r\n for (var i = 0; i <= arr2.length; i++) {\r\n tmp = arr2[i];\r\n\r\n if (isNaN(tmp)) {\r\n continue;\r\n }\r\n\r\n if (tmp == 0 || tmp * 1 > 0) {\r\n if (start == 0) {\r\n start = i - 1;\r\n }\r\n array_x[len] = tmp;\r\n array_y[len] = arr1[i];\r\n len++;\r\n }\r\n }\r\n\r\n if (len < 3) {\r\n return '/';\r\n }\r\n\r\n var _index = 0;\r\n if (array_y[0] > dn) {\r\n for (i = 0; i < array_y.length; i++) {\r\n if (array_y[i] >= dn) {\r\n _index++;\r\n } else {\r\n break;\r\n }\r\n }\r\n if (_index == 0) {\r\n return '/';\r\n }\r\n } else if (array_y[0] < dn) {\r\n for (i = 0; i < array_y.length; i++) {\r\n if (array_y[i] <= dn) {\r\n _index++;\r\n } else {\r\n break;\r\n }\r\n }\r\n if (_index == 0) {\r\n return '/';\r\n }\r\n }\r\n\r\n function GetD() {\r\n this.x1 = 1;\r\n this.x2 = 1;\r\n this.y1 = 1;\r\n this.y2 = 1;\r\n this.k = 1;\r\n this.b = 0;\r\n this.x = 0;\r\n\r\n this.$get = function () {\r\n if (this.x1 - this.x2 == 0) {\r\n this.k = 1;\r\n this.b = 0;\r\n }\r\n\r\n this.k = (this.y1 - this.y2) / (this.x1 - this.x2);\r\n this.b = this.y1 - this.x1 * this.k;\r\n var result = this.k * this.x + this.b;\r\n return result;\r\n };\r\n }\r\n function ncf(getD) {\r\n var zhi = getD.y1 * 1 - ((getD.x1 * 1 - getD.x * 1) * (getD.y1 * 1 - getD.y2 * 1)) / (getD.x1 * 1 - getD.x2 * 1);\r\n return zhi;\r\n }\r\n\r\n var getddn = new GetD();\r\n\r\n getddn.x1 = array_y[_index - 1];\r\n getddn.x2 = array_y[_index];\r\n getddn.y1 = array_x[_index - 1];\r\n getddn.y2 = array_x[_index];\r\n getddn.x = dn;\r\n\r\n if (_index == array_y.length) {\r\n if (dn < array_y[0]) {\r\n getddn.x1 = array_y[_index - _index];\r\n getddn.x2 = array_y[_index - _index + 1];\r\n getddn.y1 = array_x[_index - _index];\r\n getddn.y2 = array_x[_index - _index + 1];\r\n } else {\r\n getddn.x1 = array_y[_index - 2];\r\n getddn.x2 = array_y[_index - 1];\r\n getddn.y1 = array_x[_index - 2];\r\n getddn.y2 = array_x[_index - 1];\r\n }\r\n getddn.x = dn;\r\n } else if (_index == 0) {\r\n getddn.x1 = array_y[_index];\r\n getddn.x2 = array_y[_index + 1];\r\n getddn.y1 = array_x[_index];\r\n getddn.y2 = array_x[_index + 1];\r\n getddn.x = dn;\r\n }\r\n\r\n if (getddn.y1 == dn) {\r\n dnn = getddn.x1;\r\n } else {\r\n dnn = ncf(getddn);\r\n }\r\n if (isNaN(dnn)) {\r\n return '/';\r\n }\r\n\r\n return dnn;\r\n },\r\n },\r\n {\r\n funName: 'YJMDJWDJZ',\r\n funDesc: '土密度计温度校正查表',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '密度计种类',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '悬液温度',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于2个、为空字符串或为/时返回/\r\n if (\r\n retData.allCellVals.length < 2 ||\r\n (typeof retData.allCellVals[1] == 'string' && (retData.allCellVals[1].trim().length == 0 || retData.allCellVals[1] == '/'))\r\n ) {\r\n return '/';\r\n }\r\n\r\n let mdjzl = retData.allCellVals[0],\r\n xywd = retData.allCellVals[1];\r\n\r\n let xzz; //最后输出的修正值\r\n let wdAll = new Array();\r\n wdAll[0] = ['10.0', '-2.0', '-0.0012'];\r\n wdAll[1] = ['10.5', '-1.9', '-0.0012'];\r\n wdAll[2] = ['11.0', '-1.9', '-0.0012'];\r\n wdAll[3] = ['11.5', '-1.8', '-0.0011'];\r\n wdAll[4] = ['12.0', '-1.8', '-0.0011'];\r\n wdAll[5] = ['12.5', '-1.7', '-0.0010'];\r\n wdAll[6] = ['13.0', '-1.6', '-0.0010'];\r\n wdAll[7] = ['13.5', '-1.5', '-0.0009'];\r\n wdAll[8] = ['14.0', '-1.4', '-0.0009'];\r\n wdAll[9] = ['14.5', '-1.3', '-0.0008'];\r\n wdAll[10] = ['15.0', '-1.2', '-0.0008'];\r\n wdAll[11] = ['15.5', '-1.1', '-0.0007'];\r\n wdAll[12] = ['16.0', '-1.0', '-0.0006'];\r\n wdAll[13] = ['16.5', '-0.9', '-0.0006'];\r\n wdAll[14] = ['17.0', '-0.8', '-0.0005'];\r\n wdAll[15] = ['17.5', '-0.7', '-0.0004'];\r\n wdAll[16] = ['18.0', '-0.5', '-0.0003'];\r\n wdAll[17] = ['18.5', '-0.4', '-0.0003'];\r\n wdAll[18] = ['19.0', '-0.3', '-0.0002'];\r\n wdAll[19] = ['19.5', '-0.1', '-0.0001'];\r\n wdAll[20] = ['20.0', '-0.0', '-0.0000'];\r\n wdAll[21] = ['20.2', '0.0', '+0.0000'];\r\n wdAll[22] = ['20.5', '+0.1', '+0.0001'];\r\n wdAll[23] = ['21.0', '+0.3', '+0.0002'];\r\n wdAll[24] = ['21.5', '+0.5', '+0.0003'];\r\n wdAll[25] = ['22.0', '+0.6', '+0.0004'];\r\n wdAll[26] = ['22.5', '+0.8', '+0.0005'];\r\n wdAll[27] = ['23.0', '+0.9', '+0.0006'];\r\n wdAll[28] = ['23.5', '+1.1', '+0.0007'];\r\n wdAll[29] = ['24.0', '+1.3', '+0.0008'];\r\n wdAll[30] = ['24.5', '+1.5', '+0.0009'];\r\n wdAll[31] = ['25.0', '+1.7', '+0.0010'];\r\n wdAll[32] = ['25.5', '+1.7', '+0.0011'];\r\n wdAll[33] = ['26.0', '+2.1', '+0.0013'];\r\n wdAll[34] = ['26.5', '+2.2', '+0.0014'];\r\n wdAll[35] = ['27.0', '+2.5', '+0.0015'];\r\n wdAll[36] = ['27.5', '+2.6', '+0.0016'];\r\n wdAll[37] = ['28.0', '+2.9', '+0.0018'];\r\n wdAll[38] = ['28.5', '+3.1', '+0.0019'];\r\n wdAll[39] = ['29.0', '+3.3', '+0.0021'];\r\n wdAll[40] = ['29.5', '+3.5', '+0.0022'];\r\n wdAll[41] = ['30.0', '+3.7', '+0.0023'];\r\n\r\n if (xywd != '' && xywd != '/' && mdjzl == '甲种') {\r\n for (let a = 0; a < wdAll.length; a++) {\r\n if (wdAll[a][0] * 1 == xywd) {\r\n xzz = wdAll[a][1];\r\n return xzz;\r\n }\r\n }\r\n if (xywd.length > 2) {\r\n //内插法\r\n let wd = xywd.substring(0, xywd.indexOf('.'));\r\n\r\n let j = 0;\r\n for (let i = 0; i < wdAll.length; i++) {\r\n if (wd == wdAll[i][0].substring(0, xywd.indexOf('.'))) {\r\n j = i;\r\n }\r\n }\r\n if (j == wdAll.length - 1) {\r\n let arr1 = wdAll[j];\r\n let arr2 = wdAll[j - 1];\r\n if (arr1[1].indexOf('-') != -1) {\r\n arr1[1] = arr1[1].replace('-', '');\r\n } else if (arr1[1].indexOf('+') != -1) {\r\n arr1[1] = arr1[1].replace('+', '');\r\n }\r\n if (arr2[1].indexOf('-') != -1) {\r\n arr2[1] = arr2[1].replace('-', '');\r\n } else if (arr2[1].indexOf('+') != -1) {\r\n arr2[1] = arr2[1].replace('+', '');\r\n }\r\n if (xywd <= 20.0) {\r\n xzz =\r\n '-' +\r\n FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], xywd),\r\n -1,\r\n );\r\n } else {\r\n xzz =\r\n '+' +\r\n FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], xywd),\r\n -1,\r\n );\r\n }\r\n } else {\r\n let arr1 = wdAll[j];\r\n let arr2 = wdAll[j + 1];\r\n if (arr1[1].indexOf('-') != -1) {\r\n arr1[1] = arr1[1].replace('-', '');\r\n } else if (arr1[1].indexOf('+') != -1) {\r\n arr1[1] = arr1[1].replace('+', '');\r\n }\r\n if (arr2[1].indexOf('-') != -1) {\r\n arr2[1] = arr2[1].replace('-', '');\r\n } else if (arr2[1].indexOf('+') != -1) {\r\n arr2[1] = arr2[1].replace('+', '');\r\n }\r\n if (xywd <= 20.0) {\r\n xzz =\r\n '-' +\r\n FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], xywd),\r\n -1,\r\n );\r\n } else {\r\n xzz =\r\n '+' +\r\n FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], xywd),\r\n -1,\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (xywd != '' && xywd != '/' && mdjzl == '乙种') {\r\n for (let a = 0; a < wdAll.length; a++) {\r\n if (wdAll[a][0] * 1 == xywd) {\r\n xzz = wdAll[a][2];\r\n return xzz;\r\n }\r\n }\r\n if (xywd.length > 2) {\r\n //内插法\r\n let wd = xywd.substring(0, xywd.indexOf('.'));\r\n\r\n let j = 0;\r\n for (let i = 0; i < wdAll.length; i++) {\r\n if (wd == wdAll[i][0].substring(0, xywd.indexOf('.'))) {\r\n j = i;\r\n }\r\n }\r\n if (j == wdAll.length - 1) {\r\n let arr1 = wdAll[j];\r\n let arr2 = wdAll[j - 1];\r\n if (arr1[2].indexOf('-') != -1) {\r\n arr1[2] = arr1[2].replace('-', '');\r\n } else if (arr1[2].indexOf('+') != -1) {\r\n arr1[2] = arr1[2].replace('+', '');\r\n }\r\n if (arr2[2].indexOf('-') != -1) {\r\n arr2[2] = arr2[2].replace('-', '');\r\n } else if (arr2[2].indexOf('+') != -1) {\r\n arr2[2] = arr2[2].replace('+', '');\r\n }\r\n if (xywd <= 20.0) {\r\n xzz =\r\n '-' +\r\n FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[2], arr2[2], xywd),\r\n -4,\r\n );\r\n } else {\r\n xzz =\r\n '+' +\r\n FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[2], arr2[2], xywd),\r\n -4,\r\n );\r\n }\r\n } else {\r\n let arr1 = wdAll[j];\r\n let arr2 = wdAll[j + 1];\r\n if (arr1[2].indexOf('-') != -1) {\r\n arr1[2] = arr1[2].replace('-', '');\r\n } else if (arr1[2].indexOf('+') != -1) {\r\n arr1[2] = arr1[2].replace('+', '');\r\n }\r\n if (arr2[2].indexOf('-') != -1) {\r\n arr2[2] = arr2[2].replace('-', '');\r\n } else if (arr2[2].indexOf('+') != -1) {\r\n arr2[2] = arr2[2].replace('+', '');\r\n }\r\n if (xywd <= 20.0) {\r\n xzz =\r\n '-' +\r\n FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[2], arr2[2], xywd),\r\n -4,\r\n );\r\n } else {\r\n xzz =\r\n '+' +\r\n FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[2], arr2[2], xywd),\r\n -4,\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n return xzz;\r\n },\r\n },\r\n {\r\n funName: 'YJSDLNZXS',\r\n funDesc: '水的动力粘滞系数查表',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '悬液温度',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个、为空字符串或为/时返回/\r\n if (\r\n retData.allCellVals.length < 1 ||\r\n (typeof retData.allCellVals[0] == 'string' && (retData.allCellVals[0].trim().length == 0 || retData.allCellVals[0] == '/'))\r\n ) {\r\n return '/';\r\n }\r\n\r\n let xywd = retData.allCellVals[0];\r\n\r\n let dlnd; //最后输出的修正值\r\n let wdAll = new Array();\r\n wdAll[0] = ['10.0', '1.310'];\r\n wdAll[1] = ['10.5', '1.292'];\r\n wdAll[2] = ['11.0', '1.274'];\r\n wdAll[3] = ['11.5', '1.256'];\r\n wdAll[4] = ['12.0', '1.239'];\r\n wdAll[5] = ['12.5', '1.223'];\r\n wdAll[6] = ['13.0', '1.206'];\r\n wdAll[7] = ['13.5', '1.190'];\r\n wdAll[8] = ['14.0', '1.175'];\r\n wdAll[9] = ['14.5', '1.160'];\r\n wdAll[10] = ['15.0', '1.144'];\r\n wdAll[11] = ['15.5', '1.130'];\r\n wdAll[12] = ['16.0', '1.115'];\r\n wdAll[13] = ['16.5', '1.101'];\r\n wdAll[14] = ['17.0', '1.088'];\r\n wdAll[15] = ['17.5', '1.074'];\r\n wdAll[16] = ['18.0', '1.061'];\r\n wdAll[17] = ['18.5', '1.048'];\r\n wdAll[18] = ['19.0', '1.035'];\r\n wdAll[19] = ['19.5', '1.022'];\r\n wdAll[20] = ['20.0', '1.010'];\r\n wdAll[21] = ['20.5', '0.998'];\r\n wdAll[22] = ['21.0', '0.986'];\r\n wdAll[23] = ['21.5', '0.974'];\r\n wdAll[24] = ['22.0', '0.963'];\r\n wdAll[25] = ['22.5', '0.952'];\r\n wdAll[26] = ['23.0', '0.941'];\r\n wdAll[27] = ['23.5', '0.930'];\r\n wdAll[28] = ['24.0', '0.920'];\r\n wdAll[29] = ['24.5', '0.909'];\r\n wdAll[30] = ['25.0', '0.899'];\r\n wdAll[31] = ['25.5', '0.889'];\r\n wdAll[32] = ['26.0', '0.879'];\r\n wdAll[33] = ['26.5', '0.869'];\r\n wdAll[34] = ['27.0', '0.860'];\r\n wdAll[35] = ['27.5', '0.850'];\r\n wdAll[36] = ['28.0', '0.841'];\r\n wdAll[37] = ['28.5', '0.832'];\r\n wdAll[38] = ['29.0', '0.823'];\r\n wdAll[39] = ['29.5', '0.814'];\r\n\r\n for (let i = 1; i <= 11; i++) {\r\n if (xywd != '' && xywd != '/') {\r\n for (let a = 0; a < wdAll.length; a++) {\r\n if (wdAll[a][0] * 1 == xywd) {\r\n dlnd = wdAll[a][1];\r\n }\r\n }\r\n }\r\n }\r\n\r\n return dlnd;\r\n },\r\n },\r\n {\r\n funName: 'YJK1',\r\n funDesc: '混凝土芯样强度K1查表',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '试件数量',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let sjsl = retData.allCellVals[0];\r\n\r\n let k1; //最后输出的修正值\r\n let sjAll = new Array();\r\n sjAll[0] = ['10', '1.01730'];\r\n sjAll[1] = ['11', '1.04127'];\r\n sjAll[2] = ['12', '1.06247'];\r\n sjAll[3] = ['13', '1.08141'];\r\n sjAll[4] = ['14', '1.09848'];\r\n sjAll[5] = ['15', '1.11394'];\r\n sjAll[6] = ['16', '1.12812'];\r\n sjAll[7] = ['17', '1.14112'];\r\n sjAll[8] = ['18', '1.15311'];\r\n sjAll[9] = ['19', '1.16423'];\r\n sjAll[10] = ['20', '1.17458'];\r\n sjAll[11] = ['21', '1.18425'];\r\n sjAll[12] = ['22', '1.9330'];\r\n sjAll[13] = ['23', '1.20181'];\r\n sjAll[14] = ['24', '1.20982'];\r\n sjAll[15] = ['25', '1.21739'];\r\n sjAll[16] = ['26', '1.22455'];\r\n sjAll[17] = ['27', '1.23135'];\r\n sjAll[18] = ['28', '1.23780'];\r\n sjAll[19] = ['29', '1.24395'];\r\n sjAll[20] = ['30', '1.24981'];\r\n sjAll[21] = ['31', '1.25540'];\r\n sjAll[22] = ['32', '1.26075'];\r\n sjAll[23] = ['33', '1.26588'];\r\n sjAll[24] = ['34', '1.27079'];\r\n sjAll[25] = ['35', '1.27079'];\r\n sjAll[26] = ['36', '1.28004'];\r\n sjAll[27] = ['37', '1.28441'];\r\n sjAll[28] = ['38', '1.28861'];\r\n sjAll[29] = ['39', '1.29266'];\r\n sjAll[30] = ['40', '1.29657'];\r\n sjAll[31] = ['41', '1.30035'];\r\n sjAll[32] = ['42', '1.30399'];\r\n sjAll[33] = ['43', '1.30752'];\r\n sjAll[34] = ['44', '1.31094'];\r\n sjAll[35] = ['45', '1.31425'];\r\n sjAll[36] = ['46', '1.31746'];\r\n sjAll[37] = ['47', '1.32058'];\r\n sjAll[38] = ['48', '1.32360'];\r\n sjAll[39] = ['49', '1.32653'];\r\n sjAll[40] = ['50', '1.32939'];\r\n sjAll[41] = ['60', '1.35412'];\r\n sjAll[42] = ['70', '1.37364'];\r\n sjAll[43] = ['80', '1.38959'];\r\n sjAll[44] = ['90', '1.40294'];\r\n sjAll[45] = ['100', '1.41433'];\r\n sjAll[46] = ['110', '1.42421'];\r\n sjAll[47] = ['120', '1.43289'];\r\n sjAll[48] = ['130', '1.44060'];\r\n sjAll[49] = ['140', '1.44750'];\r\n sjAll[50] = ['150', '1.45372'];\r\n sjAll[51] = ['160', '1.45938'];\r\n sjAll[52] = ['170', '1.46456'];\r\n sjAll[53] = ['180', '1.46931'];\r\n sjAll[54] = ['190', '1.47370'];\r\n sjAll[55] = ['200', '1.47777'];\r\n sjAll[56] = ['250', '1.49443'];\r\n sjAll[57] = ['300', '1.50687'];\r\n sjAll[58] = ['400', '1.52453'];\r\n sjAll[59] = ['500', '1.53671'];\r\n\r\n if (sjsl != '' && sjsl != '/') {\r\n for (let a = 0; a < sjAll.length; a++) {\r\n if (sjAll[a][0] * 1 == sjsl) {\r\n k1 = sjAll[a][1];\r\n }\r\n }\r\n }\r\n\r\n return k1;\r\n },\r\n },\r\n {\r\n funName: 'YJK2',\r\n funDesc: '混凝土芯样强度K2查表',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '试件数量',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '直径',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let sjsl = retData.allCellVals[0],\r\n zj = retData.allCellVals[1];\r\n\r\n let k2; //最后输出的修正值\r\n let sjAll = new Array();\r\n sjAll[0] = ['10', '2.91096', '2.56837'];\r\n sjAll[1] = ['11', '2.81499', '2.50262'];\r\n sjAll[2] = ['12', '2.73634', '2.44825'];\r\n sjAll[3] = ['13', '2.67050', '2.40240'];\r\n sjAll[4] = ['14', '2.61443', '2.36311'];\r\n sjAll[5] = ['15', '2.56600', '2.32898'];\r\n sjAll[6] = ['16', '2.52366', '2.29900'];\r\n sjAll[7] = ['17', '2.48626', '2.27240'];\r\n sjAll[8] = ['18', '2.45295', '2.24862'];\r\n sjAll[9] = ['19', '2.42304', '2.22720'];\r\n sjAll[10] = ['20', '2.39600', '2.20778'];\r\n sjAll[11] = ['21', '2.37142', '2.19007'];\r\n sjAll[12] = ['22', '2.34896', '2.17385'];\r\n sjAll[13] = ['23', '2.32832', '2.15891'];\r\n sjAll[14] = ['24', '2.30929', '2.14510'];\r\n sjAll[15] = ['25', '2.29167', '2.13229'];\r\n sjAll[16] = ['26', '2.27530', '2.12037'];\r\n sjAll[17] = ['27', '2.26005', '2.10924'];\r\n sjAll[18] = ['28', '2.24578', '2.09881'];\r\n sjAll[19] = ['29', '2.23241', '2.08903'];\r\n sjAll[20] = ['30', '2.21984', '2.07982'];\r\n sjAll[21] = ['31', '2.20800', '2.07113'];\r\n sjAll[22] = ['32', '2.19682', '2.06292'];\r\n sjAll[23] = ['33', '2.18625', '2.05514'];\r\n sjAll[24] = ['34', '2.17623', '2.04776'];\r\n sjAll[25] = ['35', '2.16672', '2.04075'];\r\n sjAll[26] = ['36', '2.15768', '2.03407'];\r\n sjAll[27] = ['37', '2.14906', '2.02771'];\r\n sjAll[28] = ['38', '2.14085', '2.02164'];\r\n sjAll[29] = ['39', '2.13300', '2.01583'];\r\n sjAll[30] = ['40', '2.12549', '2.01027'];\r\n sjAll[31] = ['41', '2.11831', '2.00494'];\r\n sjAll[32] = ['42', '2.11142', '1.99983'];\r\n sjAll[33] = ['43', '2.10481', '1.99493'];\r\n sjAll[34] = ['44', '2.09846', '1.99021'];\r\n sjAll[35] = ['45', '2.09235', '1.98567'];\r\n sjAll[36] = ['46', '2.08648', '1.98130'];\r\n sjAll[37] = ['47', '2.08081', '1.97708'];\r\n sjAll[38] = ['48', '2.07535', '1.97302'];\r\n sjAll[39] = ['49', '2.07008', '1.96909'];\r\n sjAll[40] = ['50', '2.06499', '1.96529'];\r\n sjAll[41] = ['60', '2.02216', '1.93327'];\r\n sjAll[42] = ['70', '1.98987', '1.90903'];\r\n sjAll[43] = ['80', '1.96444', '1.87428'];\r\n sjAll[44] = ['90', '1.94376', '1.87428'];\r\n sjAll[45] = ['100', '1.92654', '1.86125'];\r\n sjAll[46] = ['110', '1.91191', '1.85017'];\r\n sjAll[47] = ['120', '1.89929', '1.84059'];\r\n sjAll[48] = ['130', '1.88827', '1.83222'];\r\n sjAll[49] = ['140', '1.87852', '1.82481'];\r\n sjAll[50] = ['150', '1.86984', '1.81820'];\r\n sjAll[51] = ['160', '1.86203', '1.81225'];\r\n sjAll[52] = ['170', '1.85497', '1.80686'];\r\n sjAll[53] = ['180', '1.84854', '1.80196'];\r\n sjAll[54] = ['190', '1.84265', '1.79746'];\r\n sjAll[55] = ['200', '1.83724', '1.79332'];\r\n sjAll[56] = ['250', '1.81547', '1.77667'];\r\n sjAll[57] = ['300', '1.79964', '1.76454'];\r\n sjAll[58] = ['400', '1.77776', '1.74773'];\r\n sjAll[59] = ['500', '1.76305', '1.73641'];\r\n\r\n if (zj == '70') {\r\n if (sjsl != '' && sjsl != '/') {\r\n for (let a = 0; a < sjAll.length; a++) {\r\n if (sjAll[a][0] * 1 == sjsl) {\r\n k2 = sjAll[a][1];\r\n }\r\n }\r\n }\r\n } else if (zj == '100') {\r\n if (sjsl != '' && sjsl != '/') {\r\n for (let a = 0; a < sjAll.length; a++) {\r\n if (sjAll[a][0] * 1 == sjsl) {\r\n k2 = sjAll[a][2];\r\n }\r\n }\r\n }\r\n }\r\n\r\n return k2;\r\n },\r\n },\r\n {\r\n funName: 'YJCSHTJZM',\r\n funDesc: '超声回弹浇筑面修正查表',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '浇筑面',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '回弹值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let type = retData.allCellVals[0],\r\n a = retData.allCellVals[1];\r\n\r\n let arrr = new Array('20.0', '25.0', '30.0', '35.0', '40.0', '45.0', '50.0');\r\n let arrd1 = new Array('2.5', '2.0', '1.5', '1.0', '0.5', '0', '0');\r\n let arrd2 = new Array('3.0', '2.5', '2.0', '1.5', '1.0', '0.5', '0');\r\n if (a * 1 > 50) {\r\n a = '50.0';\r\n } else if (a * 1 < 20) {\r\n a = '20.0';\r\n }\r\n let result = '';\r\n if (a != '/') {\r\n if (type == '侧面') {\r\n //回弹测试面\r\n result = '0.0';\r\n } else if (type == '顶面') {\r\n let ht, yz;\r\n yz = false;\r\n for (let i = 0; i < arrr.length; i++) {\r\n if (a == arrr[i]) {\r\n //回弹平 均值,角度修正值\r\n ht = arrd1[i];\r\n yz = true;\r\n continue;\r\n }\r\n }\r\n\r\n if (yz == false) {\r\n //使用内插法\r\n for (let i = 0; i < arrd1.length; i++) {\r\n if (a > arrr[i]) {\r\n ht = FormulaUtils.commFun.InterpolationMethod_y(arrr[i], arrr[i + 1], arrd1[i], arrd1[i + 1], a);\r\n }\r\n }\r\n }\r\n\r\n result = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(ht, -1);\r\n } else if (type == '底面') {\r\n let ht, yz;\r\n yz = false;\r\n for (let i = 0; i < arrd2.length; i++) {\r\n if (a == arrr[i]) {\r\n ht = arrd2[i];\r\n yz = true;\r\n continue;\r\n }\r\n }\r\n\r\n if (yz == false) {\r\n //使用内插法\r\n for (let i = 0; i < arrd2.length; i++) {\r\n if (a > arrr[i]) {\r\n ht = FormulaUtils.commFun.InterpolationMethod_y(arrr[i], arrr[i + 1], -arrd2[i], -arrd2[i + 1], a);\r\n }\r\n }\r\n }\r\n result = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(ht, -1);\r\n }\r\n return result;\r\n }\r\n },\r\n },\r\n {\r\n funName: 'YJCSHTQD',\r\n funDesc: '超声回弹强度换算计算',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: 'fccu,i',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'υai^',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'Rai^',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '声速值平均值(km/s)',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '超声测试面修正系数β',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '回弹平均值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '浇筑面修正值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '角度修正值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '平测声速修正系数λ',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于9个,则返回空字符串\r\n if (retData.allCellVals.length < 9) {\r\n return '';\r\n }\r\n\r\n let a2 = retData.allCellVals[0],\r\n a3 = retData.allCellVals[1],\r\n a4 = retData.allCellVals[2],\r\n a5 = retData.allCellVals[3],\r\n a6 = retData.allCellVals[4],\r\n a7 = retData.allCellVals[5],\r\n a8 = retData.allCellVals[6],\r\n a9 = retData.allCellVals[7],\r\n a10 = retData.allCellVals[8];\r\n\r\n let result = '';\r\n if (a7 != '/' && a7 != '' && a5 != '/' && a5 != '') {\r\n let q = 1 * a5 * a6 * a10;\r\n if (a10 == '' || a10 == '/' || isNaN(a10)) {\r\n q = 1 * a5 * a6;\r\n }\r\n let w = Math.pow(q, a3);\r\n let e = a7 * 1 + 1 * a9 + 1 * a8;\r\n let r = Math.pow(e, a4);\r\n let t = a2 * 1 * w * r;\r\n\r\n result = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(t, -1);\r\n }\r\n\r\n return result;\r\n },\r\n },\r\n {\r\n funName: 'YJCSHTJD',\r\n funDesc: '超声回弹角度修正查表',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '测试角度',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '回弹值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let b = retData.allCellVals[0],\r\n a = retData.allCellVals[1];\r\n\r\n let xz = '';\r\n if (a > 50) a = '50.0';\r\n else if (a < 20) a = '20.0';\r\n let arr1 = new Array();\r\n let arr2 = new Array();\r\n if (b > 0 && a.length >= 2) {\r\n arr1 = new Array('30', '45', '60', '90');\r\n let m = 0;\r\n arr2[0] = new Array('20.0-3.0', '25.0-2.8', '30.0-2.5', '35-2.3', '40.0-2.0', '45.0-1.8', '50.0-1.5'); //30\r\n arr2[1] = new Array('20.0-4.0', '25.0-3.8', '30.0-3.5', '35-3.3', '40.0-3.0', '45.0-2.8', '50.0-2.5'); //45\r\n arr2[2] = new Array('20.0-5.0', '25.0-4.5', '30.0-4.0', '35-3.8', '40.0-3.5', '45.0-3.3', '50.0-3.0'); //60\r\n arr2[3] = new Array('20.0-6.0', '25.0-5.5', '30.0-5.0', '35-4.5', '40.0-4.0', '45.0-3.8', '50.0-3.5'); //90\r\n\r\n for (let i = 0; i < arr1.length; i++) {\r\n if (arr1[i] == b) m = i;\r\n }\r\n for (let i = 0; i < arr2[m].length; i++) {\r\n let c = new String();\r\n c = arr2[m][i];\r\n c = c.split('-');\r\n //如果数组中有此测试角度则直接得到其值,否则使用内插法\r\n if (c[0] == a) {\r\n xz = -c[1];\r\n } else {\r\n let wz;\r\n if (a > c[0]) {\r\n wz = i;\r\n\r\n let c1, c2;\r\n c1 = arr2[m][wz];\r\n c2 = arr2[m][wz + 1];\r\n c1 = c1.split('-');\r\n c2 = c2.split('-');\r\n\r\n xz = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(c1[0], c2[0], -c1[1], -c2[1], a),\r\n -1,\r\n );\r\n }\r\n }\r\n }\r\n } else if (b < 0 && a.length >= 2) {\r\n arr1 = new Array('-30', '-45', '-60', '-90');\r\n let m = 0;\r\n arr2[0] = new Array('20.0-2.5', '25.0-2.3', '30.0-2.0', '35.0-1.8', '40.0-1.5', '45.0-1.3', '50.0-1.0'); //-30\r\n arr2[1] = new Array('20.0-3.0', '25.0-2.8', '30.0-2.5', '35.0-2.3', '40.0-2.0', '45.0-1.8', '50.0-1.5'); //-45\r\n arr2[2] = new Array('20.0-3.5', '25.0-3.3', '30.0-3.0', '35.0-2.8', '40.0-2.5', '45.0-2.3', '50.0-2.0'); //-60\r\n arr2[3] = new Array('20.0-4.0', '25.0-3.8', '30.0-3.5', '35.0-3.3', '40.0-3.0', '45.0-2.8', '50.0-2.5'); //-90\r\n\r\n for (let i = 0; i < arr1.length; i++) {\r\n if (arr1[i] == b) m = i;\r\n }\r\n\r\n for (let i = 0; i < arr2[m].length; i++) {\r\n let c = new String();\r\n c = arr2[m][i];\r\n c = c.split('-');\r\n\r\n //如果数组中有此测试角度则直接得到其值,否则使用内插法\r\n if (c[0] == a) {\r\n xz = c[1];\r\n } else {\r\n let wz;\r\n\r\n if (Math.abs(a) > Math.abs(c[0])) {\r\n wz = i;\r\n\r\n let c1, c2;\r\n c1 = arr2[m][wz];\r\n c2 = arr2[m][wz + 1];\r\n c1 = c1.split('-');\r\n c2 = c2.split('-');\r\n xz = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(c1[0], c2[0], c1[1], c2[1], a),\r\n -1,\r\n );\r\n }\r\n }\r\n }\r\n }\r\n //当测试角度为0时,那么角度修正值也是为0人\r\n if (b == '0') xz = '0';\r\n if (!isNaN(xz) && xz != '') {\r\n return FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(xz, -1);\r\n } else {\r\n return '/';\r\n }\r\n return xz;\r\n },\r\n },\r\n {\r\n funName: 'YJTDM',\r\n funDesc: '土样定名及代号',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '粗筛孔径60',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛60小于该孔的质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛孔径40',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛40小于该孔的质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛孔径20',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛20小于该孔的质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛孔径10',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛10小于该孔的质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛孔径5',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛5小于该孔的质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛孔径2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '粗筛2小于该孔的质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛孔径2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛2占总土质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛孔径1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛1占总土质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛孔径0.5',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛0.5占总土质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛孔径0.25',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛0.25占总土质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛孔径0.075',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛0.075占总土质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛孔径筛底',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '细筛筛底占总土质量百分比',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '液限',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '塑限',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '不均匀系数',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '曲率系数',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于28个,则返回空字符串\r\n if (retData.allCellVals.length < 28) {\r\n return '';\r\n }\r\n\r\n let p60 = retData.allCellVals[0],\r\n bf1 = retData.allCellVals[1],\r\n p40 = retData.allCellVals[2],\r\n bf2 = retData.allCellVals[3],\r\n p20 = retData.allCellVals[4],\r\n bf3 = retData.allCellVals[5],\r\n p10 = retData.allCellVals[6],\r\n bf4 = retData.allCellVals[7],\r\n p5 = retData.allCellVals[8],\r\n bf5 = retData.allCellVals[9],\r\n p2 = retData.allCellVals[10],\r\n bf6 = retData.allCellVals[11],\r\n px2 = retData.allCellVals[12],\r\n bf7 = retData.allCellVals[13],\r\n px1 = retData.allCellVals[14],\r\n bf8 = retData.allCellVals[15],\r\n px05 = retData.allCellVals[16],\r\n bf9 = retData.allCellVals[17],\r\n px025 = retData.allCellVals[18],\r\n bf10 = retData.allCellVals[19],\r\n px0075 = retData.allCellVals[20],\r\n bf11 = retData.allCellVals[21],\r\n pd = retData.allCellVals[22],\r\n bf12 = retData.allCellVals[23],\r\n WL = retData.allCellVals[24],\r\n IP = retData.allCellVals[25],\r\n CU = retData.allCellVals[26],\r\n CC = retData.allCellVals[27];\r\n\r\n let arr = [\r\n p60 + '-' + bf1,\r\n p40 + '-' + bf2,\r\n p20 + '-' + bf3,\r\n p10 + '-' + bf4,\r\n p5 + '-' + bf5,\r\n p2 + '-' + bf6,\r\n px2 + '-' + bf7,\r\n px1 + '-' + bf8,\r\n px05 + '-' + bf9,\r\n px025 + '-' + bf10,\r\n px0075 + '-' + bf11,\r\n pd + '-' + bf12,\r\n ];\r\n function Arr(sk, opr) {\r\n let ret2 = '0';\r\n for (let i = 0; i < arr.length; i++) {\r\n let ret1 = arr[i].split('-');\r\n if (ret1[0] * 1 == sk * 1) {\r\n if (opr == 'Y') {\r\n ret2 = 100 - ret1[1];\r\n } else if (opr == 'Z') {\r\n ret2 = ret1[1];\r\n }\r\n }\r\n }\r\n return ret2;\r\n }\r\n let TM = '/';\r\n if (Arr('60', 'Y') * 1 > 15) {\r\n //Y60/M>15%\r\n if (Arr('60', 'Y') * 1 > 75) {\r\n //Y60/M>75%\r\n if (Arr('200', 'Y') * 1 - (Arr('60', 'Y') * 1 - Arr('200', 'Y') * 1) > 0) {\r\n //Y200-(Y60-Y200)>0\r\n TM = '漂石B';\r\n } else if (Arr('200', 'Y') * 1 - (Arr('60', 'Y') * 1 - Arr('200', 'Y') * 1) <= 0) {\r\n //Y200-(Y60-Y200)≤0\r\n TM = '卵石Cb';\r\n }\r\n } else if (Arr('60', 'Y') * 1 > 50 && Arr('60', 'Y') * 1 <= 75) {\r\n //50%<Y60/M≤75%\r\n if (Arr('200', 'Y') * 1 - (Arr('60', 'Y') * 1 - Arr('200', 'Y') * 1) > 0) {\r\n //Y200-(Y60-Y200)>0\r\n TM = '漂石夹土BSl';\r\n } else if (Arr('200', 'Y') * 1 - (Arr('60', 'Y') * 1 - Arr('200', 'Y') * 1) <= 0) {\r\n //Y200-(Y60-Y200)≤0\r\n TM = '卵石夹土CbSl';\r\n }\r\n } else if (Arr('60', 'Y') * 1 > 15 && Arr('60', 'Y') * 1 <= 50) {\r\n //15%<Y60/M≤50%\r\n if (Arr('200', 'Y') * 1 - (Arr('60', 'Y') * 1 - Arr('200', 'Y') * 1) > 0) {\r\n //Y200-(Y60-Y200)>0\r\n TM = '漂石质土SlB';\r\n } else if (Arr('200', 'Y') * 1 - (Arr('60', 'Y') * 1 - Arr('200', 'Y') * 1) <= 0) {\r\n //Y200-(Y60-Y200)≤0\r\n TM = '卵石质土SlCb';\r\n }\r\n }\r\n } else if (Arr('60', 'Y') * 1 <= 15) {\r\n if (Arr('0.075', 'Y') * 1 > 50) {\r\n //Y0.075/M>50%\r\n if (Arr('2', 'Y') * 1 - Arr('60', 'Y') - (Arr('0.075', 'Y') * 1 - Arr('2', 'Y')) > 0) {\r\n //(Y2-Y60)-(Y0.075-Y2)>0\r\n if (Arr('0.075', 'Z') <= 5) {\r\n //Z0.075≤5%\r\n if (CU >= 5 && CC >= 1 && CC <= 3) {\r\n //Cu≥5且1≤Cc≤3\r\n TM = '级配良好砾GW';\r\n } else {\r\n TM = '级配不良砾GP';\r\n }\r\n } else if (Arr('0.075', 'Z') > 5 && Arr('0.075', 'Z') <= 15) {\r\n //5%<Z0.075≤15%\r\n TM = '含细粒土砾GF';\r\n } else if (Arr('0.075', 'Z') > 15 && Arr('0.075', 'Z') <= 50) {\r\n //15%<Z0.075≤50%\r\n if (IP < 0.73 * (WL * 1 - 20)) {\r\n //Ip<0.73*(WL-20)\r\n TM = '粉土质砾GM';\r\n } else {\r\n TM = '黏土质砾GC';\r\n }\r\n }\r\n } else if (Arr('2', 'Y') * 1 - Arr('60', 'Y') - (Arr('0.075', 'Y') * 1 - Arr('2', 'Y')) <= 0) {\r\n //(Y2-Y60)-(Y0.075-Y2)≤0\r\n if (Arr('0.075', 'Z') <= 5) {\r\n //Z0.075≤5%\r\n if (CU >= 5 && CC >= 1 && CC <= 3) {\r\n //Cu≥5且1≤Cc≤3\r\n TM = '级配良好砂SW';\r\n } else {\r\n TM = '级配不良砂SP';\r\n }\r\n } else if (Arr('0.075', 'Z') > 5 && Arr('0.075', 'Z') <= 15) {\r\n //5%<Z0.075≤15%\r\n TM = '含细粒土砂SF';\r\n } else if (Arr('0.075', 'Z') > 15 && Arr('0.075', 'Z') <= 50) {\r\n //15%<Z0.075≤50%\r\n if (IP < 0.73 * (WL * 1 - 20)) {\r\n //Ip<0.73*(WL-20)\r\n TM = '粉土质砂SM';\r\n } else {\r\n TM = '黏土质砂SC';\r\n }\r\n }\r\n }\r\n } else if (Arr('0.075', 'Y') * 1 <= 50) {\r\n if (Arr('0.075', 'Y') * 1 - Arr('60', 'Y') * 1 <= 25) {\r\n //(Y0.075-Y60)/M≤25%\r\n if (IP >= 0.73 * (WL * 1 - 20)) {\r\n //Ip≥0.73*(WL-20)\r\n if (WL * 1 >= 50) {\r\n //WL≥50%\r\n TM = '高液限黏土CH';\r\n } else if (WL * 1 < 50 && IP > 7) {\r\n //WL<50%,Ip>7\r\n TM = '低液限黏土CL';\r\n }\r\n } else {\r\n //Ip<0.73*(WL-20)\r\n if (WL * 1 >= 50) {\r\n //WL≥50%\r\n TM = '高液限粉土MH';\r\n } else if (WL * 1 < 50 && IP < 4) {\r\n //WL<50%,Ip<4\r\n TM = '低液限粉土ML';\r\n }\r\n }\r\n } else if ((Arr('0.075', 'Y') * 1 - Arr('60', 'Y') * 1) * 1 > 25 && (Arr('0.075', 'Y') * 1 - Arr('60', 'Y') * 1) * 1 <= 50) {\r\n //25%<Y0.075-Y60≤50%\r\n if (Arr('2', 'Y') * 1 - Arr('60', 'Y') * 1 - (Arr('0.075', 'Y') * 1 - Arr('2', 'Y') * 1) >= 0) {\r\n //(Y2-Y60)-(Y0.075-Y2)≥0\r\n if (IP >= 0.73 * (WL * 1 - 20)) {\r\n //Ip≥0.73*(WL-20)\r\n if (WL >= 50) {\r\n //WL≥50%\r\n TM = '含砾高液限黏土CHG';\r\n } else if (WL < 50 && IP > 7) {\r\n //WL<50%,Ip>7\r\n TM = '含砾低液限黏土CLG';\r\n }\r\n } else {\r\n if (WL >= 50) {\r\n //WL≥50%\r\n TM = '含砾高液限粉土MHG';\r\n } else if (WL < 50 && IP < 4) {\r\n //WL<50%,Ip<4\r\n TM = '含砾低液限粉土MLG';\r\n }\r\n }\r\n } else {\r\n if (IP >= 0.73 * (WL * 1 - 20)) {\r\n //Ip≥0.73*(WL-20)\r\n if (WL >= 50) {\r\n //WL≥50%\r\n TM = '含砂高液限黏土CHS';\r\n } else if (WL < 50 && IP > 7) {\r\n //WL<50%,Ip>7\r\n TM = '含砂低液限黏土CLS';\r\n }\r\n } else {\r\n if (WL >= 50) {\r\n //WL≥50%\r\n TM = '含砂高液限粉土MHS';\r\n } else if (WL < 50 && IP < 4) {\r\n //WL<50%,Ip<4\r\n TM = '含砂低液限粉土MLS';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return TM;\r\n },\r\n },\r\n {\r\n funName: 'YJHTQD',\r\n funDesc: '回弹强度换算查表',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '浇筑方式',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '修正后回弹值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '碳化深度',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于3个,则返回空字符串\r\n if (retData.allCellVals.length < 3) {\r\n return '';\r\n }\r\n if (\r\n retData.allCellVals[0] == null ||\r\n (retData.allCellVals[0]._error != undefined && retData.allCellVals[0]._error != null) ||\r\n retData.allCellVals[1] == null ||\r\n (retData.allCellVals[1]._error != undefined && retData.allCellVals[1]._error != null) ||\r\n retData.allCellVals[2] == null ||\r\n (retData.allCellVals[2]._error != undefined && retData.allCellVals[2]._error != null)\r\n ) {\r\n return '/';\r\n }\r\n\r\n let jzfs = retData.allCellVals[0],\r\n xzhhtz = retData.allCellVals[1],\r\n thsd = retData.allCellVals[2];\r\n\r\n return FormulaUtilsOther.YJHTQD(FormulaUtils.commFun, jzfs, xzhhtz, thsd);\r\n },\r\n },\r\n {\r\n funName: 'DJCZL',\r\n funDesc: '地基承载力计算',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '地基土类型',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'N63.5',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '修正系数',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '机械修正/水位修正',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于4个,则返回空字符串\r\n if (retData.allCellVals.length < 4) {\r\n return '';\r\n }\r\n\r\n let djtlx = retData.allCellVals[0],\r\n cjs = retData.allCellVals[1],\r\n xzxs = retData.allCellVals[2],\r\n xzmc = retData.allCellVals[3];\r\n\r\n var value = 0;\r\n var dfczl;\r\n if (cjs == '/' || cjs == '') {\r\n cjs = '1';\r\n }\r\n if (xzmc == '水位修正') {\r\n value = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(cjs * xzxs * 1.1 + 1, 1);\r\n } else if (xzmc == '机械修正') {\r\n value = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(cjs * xzxs, 1);\r\n } else {\r\n value = cjs;\r\n }\r\n\r\n if (djtlx == '中砂-砂砾土') {\r\n if (value < 3.0) {\r\n dfczl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(value * 40, 1);\r\n } else if (value >= 3.0 && value <= 5.0) {\r\n dfczl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(30 * value + 30, 1);\r\n } else if (value > 5.0) {\r\n dfczl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(40 * value - 20, 1);\r\n }\r\n } else {\r\n if (value < 3.0) {\r\n dfczl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease((140 / 3) * value, 1);\r\n } else if (value >= 3.0 && value <= 5.0) {\r\n dfczl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(30 * value + 50, 1);\r\n } else if (value > 5 && value <= 12) {\r\n dfczl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(40 * value, 1);\r\n } else if (value > 12 && value <= 22) {\r\n dfczl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(30 * value + 120, 1);\r\n } else if (value > 22 && value <= 24) {\r\n dfczl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(25 * value + 230, 1);\r\n } else if (value > 24 && value <= 26) {\r\n dfczl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(20 * value + 350, 1);\r\n } else if (value > 26 && value <= 30) {\r\n dfczl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(15 * value + 480, 1);\r\n } else if (value > 30 && value <= 35) {\r\n dfczl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(8 * value + 690, 1);\r\n } else if (value > 35.0) {\r\n dfczl = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(6 * value + 760, 1);\r\n }\r\n }\r\n\r\n return dfczl;\r\n },\r\n },\r\n {\r\n funName: 'YJLJJSYQ',\r\n funDesc: '钢筋机械连接技术要求',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '牌号',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '接头等级',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '拉断性状',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n if (retData.allCellVals.length < 3) {\r\n return '';\r\n }\r\n\r\n let ph = retData.allCellVals[0],\r\n jtdj = retData.allCellVals[1],\r\n dlxz = retData.allCellVals[2];\r\n\r\n var jsyq;\r\n var tdvalue = ph;\r\n var dj = jtdj;\r\n if (dj == 'I级') {\r\n var ld = dlxz;\r\n if (tdvalue == 'HRB400' || tdvalue == 'HRB400E' || tdvalue == 'HRBF400' || tdvalue == 'HRBF400E') {\r\n if (ld == '断于套筒' || ld == '套筒纵向开裂' || ld == '钢筋从套筒中拔出' || ld == '其它链接组件破坏') {\r\n jsyq = '≥594';\r\n } else {\r\n jsyq = '≥540';\r\n }\r\n } else if (tdvalue == 'HRB500' || tdvalue == 'HRB500E' || tdvalue == 'HRBF500' || tdvalue == 'HRBF500E') {\r\n if (ld == '断于套筒' || ld == '套筒纵向开裂' || ld == '钢筋从套筒中拔出' || ld == '其它链接组件破坏') {\r\n jsyq = '≥693';\r\n } else {\r\n jsyq = '≥630';\r\n }\r\n } else if (tdvalue == 'HRB600') {\r\n if (ld == '断于套筒' || ld == '套筒纵向开裂' || ld == '钢筋从套筒中拔出' || ld == '其它链接组件破坏') {\r\n jsyq = '≥803';\r\n } else {\r\n jsyq = '≥730';\r\n }\r\n }\r\n } else if (dj == 'II级') {\r\n if (tdvalue == 'HRB400' || tdvalue == 'HRB400E' || tdvalue == 'HRBF400' || tdvalue == 'HRBF400E') {\r\n jsyq = '≥540';\r\n } else if (tdvalue == 'HRB335' || tdvalue == 'HRBF335') {\r\n jsyq = '≥455';\r\n } else if (tdvalue == 'HRB500' || tdvalue == 'HRB500E' || tdvalue == 'HRBF500' || tdvalue == 'HRBF500E') {\r\n jsyq = '≥630';\r\n } else if (tdvalue == 'HRB600') {\r\n jsyq = '≥730';\r\n }\r\n } else if (dj == 'III级') {\r\n if (tdvalue == 'HRB400' || tdvalue == 'HRB400E' || tdvalue == 'HRBF400' || tdvalue == 'HRBF400E') {\r\n jsyq = '≥500';\r\n } else if (tdvalue == 'HRB500' || tdvalue == 'HRB500E' || tdvalue == 'HRBF500' || tdvalue == 'HRBF500E') {\r\n jsyq = '≥625';\r\n } else if (tdvalue == 'HRB600') {\r\n jsyq = '≥750';\r\n }\r\n }\r\n return jsyq;\r\n },\r\n },\r\n {\r\n funName: 'YJLJGJPD',\r\n funDesc: '机械连接钢筋结构判定',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '技术要求1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '技术要求2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '技术要求3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '抗压强度1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '抗压强度2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '抗压强度3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n if (retData.allCellVals.length < 6) {\r\n return '';\r\n }\r\n\r\n let jsyq1 = retData.allCellVals[0],\r\n jsyq2 = retData.allCellVals[1],\r\n jsyq3 = retData.allCellVals[2],\r\n k1 = retData.allCellVals[3],\r\n k2 = retData.allCellVals[4],\r\n k3 = retData.allCellVals[5];\r\n\r\n var jgpd;\r\n jsyq1 = jsyq1.replace('≥', '') * 1;\r\n jsyq2 = jsyq2.replace('≥', '') * 1;\r\n jsyq3 = jsyq3.replace('≥', '') * 1;\r\n if (k1 != '/' && k2 != '/' && k3 != '/') {\r\n if (k1 >= jsyq1 && k2 >= jsyq2 && k3 >= jsyq3) {\r\n jgpd = '合格';\r\n } else if (k1 >= jsyq1 && k2 >= jsyq2 && k3 < jsyq3) {\r\n jgpd = '复检';\r\n } else if (k1 >= jsyq1 && k2 < jsyq2 && k3 >= jsyq3) {\r\n jgpd = '复检';\r\n } else if (k1 < jsyq1 && k2 >= jsyq2 && k3 >= jsyq3) {\r\n jgpd = '复检';\r\n } else {\r\n jgpd = '不合格';\r\n }\r\n } else {\r\n jgpd = '/';\r\n }\r\n return jgpd;\r\n },\r\n },\r\n {\r\n funName: 'YJLJFJPD',\r\n funDesc: '机械连接钢筋结构复检判定',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '技术要求1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '技术要求2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '技术要求3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '技术要求4',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '技术要求5',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '技术要求6',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '抗压强度1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '抗压强度2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '抗压强度3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '抗压强度4',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '抗压强度5',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '抗压强度6',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n if (retData.allCellVals.length < 12) {\r\n return '';\r\n }\r\n\r\n let jsyq1 = retData.allCellVals[0],\r\n jsyq2 = retData.allCellVals[1],\r\n jsyq3 = retData.allCellVals[2],\r\n jsyq4 = retData.allCellVals[3],\r\n jsyq5 = retData.allCellVals[4],\r\n jsyq6 = retData.allCellVals[5],\r\n k1 = retData.allCellVals[6],\r\n k2 = retData.allCellVals[7],\r\n k3 = retData.allCellVals[8],\r\n k4 = retData.allCellVals[9],\r\n k5 = retData.allCellVals[10],\r\n k6 = retData.allCellVals[11];\r\n\r\n var jgpd;\r\n jsyq1 = jsyq1.replace('≥', '') * 1;\r\n jsyq2 = jsyq2.replace('≥', '') * 1;\r\n jsyq3 = jsyq3.replace('≥', '') * 1;\r\n jsyq4 = jsyq4.replace('≥', '') * 1;\r\n jsyq5 = jsyq5.replace('≥', '') * 1;\r\n jsyq6 = jsyq6.replace('≥', '') * 1;\r\n if (!isNaN(k1) && !isNaN(k2) && !isNaN(k3) && !isNaN(k4) && !isNaN(k5) && !isNaN(k6)) {\r\n if (k1 >= jsyq1 && k2 >= jsyq2 && k3 >= jsyq3 && k4 >= jsyq4 && k5 >= jsyq5 && k6 >= jsyq6) {\r\n jgpd = '合格';\r\n } else {\r\n jgpd = '不合格';\r\n }\r\n } else {\r\n jgpd = '/';\r\n }\r\n return jgpd;\r\n },\r\n },\r\n {\r\n funName: 'YJHJFJPD',\r\n funDesc: '焊接钢筋结构复检判定',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '牌号',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '接头极限强度1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '接头极限强度2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '接头极限强度3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '接头极限强度4',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '接头极限强度5',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '接头极限强度6',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '断裂形状1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '断裂形状2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '断裂形状3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '断裂形状4',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '断裂形状5',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '断裂形状6',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n if (retData.allCellVals.length < 13) {\r\n return '';\r\n }\r\n\r\n let ph = retData.allCellVals[0],\r\n kl1 = retData.allCellVals[1],\r\n kl2 = retData.allCellVals[2],\r\n kl3 = retData.allCellVals[3],\r\n kl4 = retData.allCellVals[4],\r\n kl5 = retData.allCellVals[5],\r\n kl6 = retData.allCellVals[6],\r\n dl1 = retData.allCellVals[7],\r\n dl2 = retData.allCellVals[8],\r\n dl3 = retData.allCellVals[9],\r\n dl4 = retData.allCellVals[10],\r\n dl5 = retData.allCellVals[11],\r\n dl6 = retData.allCellVals[12];\r\n\r\n var arry1 = new Array();\r\n var arry2 = new Array();\r\n var count1 = 0;\r\n var count2 = 0;\r\n var tdvalue = ph;\r\n var jsyq;\r\n var jgpd = '/';\r\n if (tdvalue == 'HRB335') {\r\n jsyq = '≥455';\r\n } else if (tdvalue == 'R235') {\r\n jsyq = '≥370';\r\n } else if (tdvalue == 'Q235') {\r\n jsyq = '≥410';\r\n } else if (tdvalue == 'HRB400' || tdvalue == 'HRB400E') {\r\n jsyq = '≥540';\r\n } else if (tdvalue == 'HPB300') {\r\n jsyq = '≥420';\r\n } else if (tdvalue == 'HRB500') {\r\n jsyq = '≥630';\r\n } else if (tdvalue == 'HRBF500') {\r\n jsyq = '≥630';\r\n } else if (tdvalue == 'HRB500E') {\r\n jsyq = '≥630';\r\n } else if (tdvalue == 'HRBF500E') {\r\n jsyq = '≥630';\r\n } else {\r\n jsyq = '/';\r\n }\r\n jsyq = jsyq.replace('≥', '') * 1;\r\n if (\r\n jsyq != '/' &&\r\n kl1 != '/' &&\r\n kl2 != '/' &&\r\n kl3 != '/' &&\r\n kl4 != '/' &&\r\n kl5 != '/' &&\r\n kl6 != '/' &&\r\n dl1 != '/' &&\r\n dl2 != '/' &&\r\n dl3 != '/' &&\r\n dl4 != '/' &&\r\n dl5 != '/' &&\r\n dl6 != '/'\r\n ) {\r\n arry1.push(kl1, kl2, kl3, kl4, kl5, kl6);\r\n arry2.push(dl1, dl2, dl3, dl4, dl5, dl6);\r\n for (var i = 0; i < arry1.length; i++) {\r\n if (arry1[i] * 1 < jsyq) {\r\n count1++;\r\n }\r\n }\r\n for (var j = 0; j < arry2.length; j++) {\r\n if (arry2[j] == '断于焊缝,呈脆性断裂' || arry2[j] == '断于热影响区,呈脆性断裂') {\r\n count2++;\r\n }\r\n }\r\n if (count1 > 0) {\r\n jgpd = '不合格';\r\n } else if (count2 >= 3) {\r\n jgpd = '不合格';\r\n } else {\r\n jgpd = '合格';\r\n }\r\n }\r\n return jgpd;\r\n },\r\n },\r\n {\r\n funName: 'YJWJLKQND',\r\n funDesc: '无机结合料空气黏度查表',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '试验温度',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let a = retData.allCellVals[0];\r\n\r\n var arr = new Array(\r\n '8-17.49',\r\n '10-17.59',\r\n '12-17.68',\r\n '14-17.78',\r\n '16-17.88',\r\n '18-17.98',\r\n '20-18.09',\r\n '22-18.19',\r\n '24-18.28',\r\n '26-18.37',\r\n '28-18.47',\r\n '30-18.57',\r\n '32-18.67',\r\n '34-18.76',\r\n );\r\n\r\n // var a;//试验温度\r\n var b; //空气粘度\r\n\r\n for (var i = 0; i < arr.length; i++) {\r\n var ret = arr[i].split('-');\r\n if (a == ret[0]) {\r\n b = ret[1];\r\n }\r\n }\r\n if (a.length > 0) {\r\n //内插法\r\n var wd = a.substring(0, a.indexOf('.'));\r\n\r\n var j = 0;\r\n for (var i = 0; i < arr.length; i++) {\r\n var ret = arr[i].split('-');\r\n if (wd == ret[0]) {\r\n j = i;\r\n //continue;\r\n }\r\n }\r\n if (j == arr.length - 1) {\r\n var arr1 = arr[j].split('-');\r\n var arr2 = arr[j - 1].split('-');\r\n b = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], a),\r\n -2,\r\n );\r\n } else {\r\n var arr1 = arr[j].split('-');\r\n var arr2 = arr[j + 1].split('-');\r\n\r\n b = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], a),\r\n -2,\r\n );\r\n }\r\n }\r\n\r\n return b;\r\n },\r\n },\r\n {\r\n funName: 'YJYSSMD',\r\n funDesc: '岩石-水密度公式',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '试验温度',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let wd = retData.allCellVals[0];\r\n\r\n var md;\r\n var arr = new Array(\r\n '5-0.9999919',\r\n '6-0.9999681',\r\n '7-0.9999295',\r\n '8-0.9998762',\r\n '9-0.9998088',\r\n '10-0.9997277',\r\n '11-0.9996328',\r\n '12-0.9995247',\r\n '13-0.9994040',\r\n '14-0.9992712',\r\n '15-0.9991265',\r\n '16-0.9989701',\r\n '17-0.9988022',\r\n '18-0.9986232',\r\n '19-0.9984331',\r\n '20-0.9982323',\r\n '21-0.9980210',\r\n '22-0.9977993',\r\n '23-0.9975674',\r\n '24-0.9973256',\r\n '25-0.9970739',\r\n '26-0.9968128',\r\n '27-0.9965241',\r\n '28-0.9962623',\r\n '29-0.9959735',\r\n '30-0.9956756',\r\n '31-0.9953692',\r\n '32-0.9950542',\r\n '33-0.9947308',\r\n '34-0.9943991',\r\n '35-0.9940594',\r\n );\r\n for (var i = 0; i < arr.length; i++) {\r\n var ret = arr[i].split('-');\r\n if (wd == ret[0]) {\r\n md = ret[1];\r\n break;\r\n }\r\n }\r\n\r\n // if (wd.length > 2) {//内插法处理水密度\r\n if (String(wd).length > 2) {\r\n //内插法处理水密度\r\n // wd = wd.substring(0, wd.indexOf('.'));\r\n var a = parseInt(wd);\r\n\r\n var j = 0;\r\n for (var i = 0; i < arr.length; i++) {\r\n var ret = arr[i].split('-');\r\n // if (wd == ret[0]) {\r\n if (a == Number(ret[0])) {\r\n j = i;\r\n }\r\n }\r\n if (j == arr.length - 1) {\r\n var arr1 = arr[j].split('-');\r\n var arr2 = arr[j - 1].split('-');\r\n md = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], wd),\r\n -7,\r\n );\r\n } else {\r\n var arr1 = arr[j].split('-');\r\n var arr2 = arr[j + 1].split('-');\r\n md = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], wd),\r\n -7,\r\n );\r\n }\r\n }\r\n\r\n return md;\r\n },\r\n },\r\n {\r\n funName: 'YJHTTDZ',\r\n funDesc: '混凝土强度推定値公式',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '强度换算值数组',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //获取所有数据\r\n let retVals = [];\r\n retData.allCellValsEw.forEach((item) => {\r\n if (Array.isArray(item)) {\r\n item.forEach((itemSon) => {\r\n if (itemSon != '/' && !(itemSon._error != undefined && itemSon._error != null)) {\r\n retVals.push(itemSon);\r\n }\r\n });\r\n } else {\r\n if (item != '/' && !(item._error != undefined && item._error != null)) {\r\n retVals.push(item);\r\n }\r\n }\r\n });\r\n\r\n let tmp_xy: Array<any> = retVals;\r\n\r\n var j = 0;\r\n var s = 0;\r\n var avg;\r\n var arrays = new Array();\r\n var fh = new Array();\r\n var zxz = new Array();\r\n var tdz; //推定值\r\n //int k=0;\r\n for (let i = 0; i < 10; i++) {\r\n if (tmp_xy[i] != '' && tmp_xy[i] != '/') {\r\n arrays[j] = tmp_xy[i];\r\n s = s + tmp_xy[i] * 1;\r\n j++;\r\n }\r\n if (tmp_xy[i].indexOf('<') > -1 || tmp_xy[i].indexOf('>') > -1) {\r\n fh.push(tmp_xy[i]);\r\n }\r\n if (tmp_xy[i].indexOf('<') == -1 && tmp_xy[i].indexOf('>') == -1 && tmp_xy[i].indexOf('/') == -1) {\r\n zxz.push(tmp_xy[i]);\r\n }\r\n }\r\n avg = FormulaUtils.commFun.getAverage(retVals.filter((item) => FormulaUtils.commFun.isNumber(item)));\r\n\r\n s = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(FormulaUtils.commFun.GetS(zxz), -3);\r\n avg = avg * 1 - 1.645 * 1 * s;\r\n avg = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(avg, -1);\r\n if (arrays.length == 10) {\r\n if (fh.length == 10) {\r\n tdz = '>60.0';\r\n } else {\r\n if (fh.length > 0) {\r\n tdz = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(FormulaUtils.commFun.getMin(zxz), -1);\r\n } else {\r\n tdz = avg;\r\n }\r\n }\r\n } else {\r\n if (zxz.length < 1) {\r\n tdz = '>60.0';\r\n } else {\r\n tdz = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(FormulaUtils.commFun.getMin(zxz), -1);\r\n }\r\n }\r\n\r\n return tdz;\r\n },\r\n },\r\n {\r\n funName: 'YJSXS',\r\n funDesc: '水温查表',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '温度',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let a = retData.allCellVals[0] + '';\r\n\r\n var sw; //最后输出的值\r\n var arr = new Array(\r\n '15-0.002',\r\n '16-0.003',\r\n '17-0.003',\r\n '18-0.004',\r\n '19-0.004',\r\n '20-0.005',\r\n '21-0.005',\r\n '22-0.006',\r\n '23-0.006',\r\n '24-0.007',\r\n '25-0.008',\r\n );\r\n for (var i = 0; i < arr.length; i++) {\r\n var ret = arr[i].split('-');\r\n if (a == ret[0]) {\r\n sw = ret[1];\r\n }\r\n }\r\n if (a.length > 2) {\r\n var sw = a;\r\n sw = sw.substring(0, sw.indexOf('.'));\r\n\r\n var j = 0;\r\n for (var i = 0; i < arr.length; i++) {\r\n var ret = arr[i].split('-');\r\n if (sw == ret[0]) {\r\n j = i;\r\n }\r\n }\r\n if (j == arr.length - 1) {\r\n var arr1 = arr[j].split('-');\r\n var arr2 = arr[j - 1].split('-');\r\n sw = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], a),\r\n -3,\r\n );\r\n } else {\r\n var arr1 = arr[j].split('-');\r\n var arr2 = arr[j + 1].split('-');\r\n sw = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], a),\r\n -3,\r\n );\r\n }\r\n }\r\n return sw;\r\n },\r\n },\r\n {\r\n funName: 'YJFN635',\r\n funDesc: '重型动力触探承载力查表',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '地基土类型',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '修正后击数',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于2个,则返回空字符串\r\n if (retData.allCellVals.length < 2) {\r\n return '';\r\n }\r\n\r\n let djtlx = retData.allCellVals[0],\r\n xzhjs = retData.allCellVals[1];\r\n\r\n var czl; //最后输出的值\r\n if (djtlx == '中砂、粗砂、砾砂') {\r\n var arr = new Array(\r\n '15-0.002',\r\n '16-0.003',\r\n '17-0.003',\r\n '18-0.004',\r\n '19-0.004',\r\n '20-0.005',\r\n '21-0.005',\r\n '22-0.006',\r\n '23-0.006',\r\n '24-0.007',\r\n '25-0.008',\r\n );\r\n } else {\r\n var arr = new Array(\r\n '3-140',\r\n '4-170',\r\n '5-200',\r\n '6-240',\r\n '7-280',\r\n '8-320',\r\n '9-360',\r\n '10-400',\r\n '12-480',\r\n '14-540',\r\n '16-600',\r\n '18-660',\r\n '20-720',\r\n '22-780',\r\n '24-830',\r\n '26-870',\r\n '28-900',\r\n '30-930',\r\n '35-970',\r\n '40-1000',\r\n );\r\n }\r\n for (var i = 0; i < arr.length; i++) {\r\n var ret = arr[i].split('-');\r\n if (xzhjs == ret[0]) {\r\n czl = ret[1];\r\n }\r\n }\r\n return czl;\r\n },\r\n },\r\n {\r\n funName: 'YJLHL',\r\n funDesc: '沥青蜡含量',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '析出蜡质量1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '析出蜡质量2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '析出蜡质量3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '蜡含量1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '蜡含量2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '蜡含量3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于6个,则返回空字符串\r\n if (retData.allCellVals.length < 6) {\r\n return '';\r\n }\r\n\r\n var xArr = [retData.allCellVals[0], retData.allCellVals[1], retData.allCellVals[2]]; //析出蜡质量数组\r\n var rArr = [retData.allCellVals[3], retData.allCellVals[4], retData.allCellVals[5]]; //蜡含量数组\r\n var jg;\r\n var MIN = 0.065;\r\n var MAX = 0.085;\r\n var ok = xArr.map((v) => +v >= MIN && +v <= MAX); //判定是否符合条件\r\n var idx = ok.map((v, i) => (v ? i : -1)).filter((i) => i >= 0); //符合条件个数\r\n if (idx.length === 0) {\r\n // msg = '三个值均不满足条件,请重新进行试验!';\r\n return '重新试验';\r\n }\r\n var vals = idx.map((i) => +rArr[i]); //符合条件的蜡质量对应的蜡含量\r\n var avg = vals.reduce((a, b) => a + b) / vals.length; //计算蜡含量平均值\r\n jg = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(avg, -1);\r\n return jg;\r\n },\r\n },\r\n {\r\n funName: 'YJNFX',\r\n funDesc: '沥青黏附性',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '沥青膜剥落情况',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let lqmblqk = retData.allCellVals[0];\r\n\r\n var pddj; //最后输出的值\r\n if (lqmblqk == '沥青膜裹覆率接近100%') {\r\n pddj = '5';\r\n } else if (lqmblqk == '沥青膜少部剥落,厚度不均,沥青膜裹覆率不小于90%') {\r\n pddj = '4';\r\n } else if (lqmblqk == '沥青膜局部明显剥落,沥青膜裹覆率为75%~90%') {\r\n pddj = '3';\r\n } else if (lqmblqk == '沥青膜大部分剥落,沥青膜裹覆率为25%~75%') {\r\n pddj = '2';\r\n } else if (lqmblqk == '沥青膜几乎完全剥落,沥青膜裹覆率小于25%') {\r\n pddj = '1';\r\n } else {\r\n pddj = '/';\r\n }\r\n\r\n return pddj;\r\n },\r\n },\r\n {\r\n funName: 'YJNDCS',\r\n funDesc: '沥青黏度常数',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '毛细管型号',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '标管编号',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于2个,则返回空字符串\r\n if (retData.allCellVals.length < 2) {\r\n return '';\r\n }\r\n\r\n let mxgxh = retData.allCellVals[0],\r\n bgbh = retData.allCellVals[1];\r\n\r\n var ndcs; //最后输出的值\r\n if (bgbh == '管B') {\r\n var arr = new Array('25-0.2', '50-0.8', '100-3.2', '200-12.8', '400-50.0');\r\n } else if (bgbh == '管C') {\r\n var arr = new Array('25-0.1', '50-0.4', '100-1.6', '200-6.4', '400-25.0');\r\n } else if (bgbh == '管D') {\r\n var arr = new Array('25-0.07', '50-0.3', '100-1.0', '200-4.0', '400-16.0');\r\n } else if (bgbh == '球B') {\r\n var arr = new Array('4-0.0002', '5-0.0006', '6-0.002', '7-0.006', '8-0.02', '9-0.06');\r\n } else if (bgbh == '球C') {\r\n var arr = new Array('4-0.00006', '5-0.0002', '6-0.0006', '7-0.002', '8-0.006', '9-0.02');\r\n }\r\n for (var i = 0; i < arr.length; i++) {\r\n var ret = arr[i].split('-');\r\n if (mxgxh == ret[0]) {\r\n ndcs = ret[1];\r\n }\r\n }\r\n return ndcs;\r\n },\r\n },\r\n {\r\n funName: 'YJTXHF',\r\n funDesc: '沥青弹性恢复率',\r\n funDefaultVal: null,\r\n // isContainNullUndefinedVal: true,\r\n funParams: [\r\n {\r\n name: '数值1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于3个,则返回空字符串\r\n if (retData.allCellVals.length < 3) {\r\n return '';\r\n }\r\n\r\n let a1 = retData.allCellVals[0],\r\n a2 = retData.allCellVals[1],\r\n a3 = retData.allCellVals[2];\r\n\r\n var arr = [a1, a2, a3];\r\n var avg = (a1 * 1 + a2 * 1 + a3 * 1) / 3; // 算术平均值\r\n var max = Math.max(...arr);\r\n var min = Math.min(...arr);\r\n var dxc = max - min; // 最大值与最小值之差\r\n var jg; //输出的结果值\r\n // 差值是否超过平均值的 5%\r\n if (dxc <= avg * 0.05) {\r\n jg = avg;\r\n return jg; // 情形1:直接取三值平均\r\n }\r\n\r\n // 情形2、3:差值超过 5%\r\n var sx = arr.slice().sort((x, y) => x - y); // 升序\r\n var jgc = sx[2] * 1 - sx[1] * 1; // 两个较高值之差\r\n\r\n if (jgc <= avg * 0.05) {\r\n jg = (sx[1] * 1 + sx[2] * 1) / 2;\r\n return jg; // 情形2:取两个较高值平均\r\n }\r\n return '/'; // 情形3:无法取值\r\n },\r\n },\r\n {\r\n funName: 'YJSZF',\r\n funDesc: '沥青四组分FID法',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '数值数组',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '标准差',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于2个,则返回空字符串\r\n if (retData.allCellVals.length < 2) {\r\n return '';\r\n }\r\n\r\n //获取retData.allCellVals中除最后一个值的数组\r\n let arr = [];\r\n for (let index = 0; index < retData.allCellVals.length - 1; index++) {\r\n arr.push(retData.allCellVals[index]);\r\n }\r\n let bzc = retData.allCellVals[retData.allCellVals.length - 1];\r\n\r\n var avg;\r\n avg = FormulaUtils.commFun.getAverage(arr);\r\n\r\n if (bzc <= 5) {\r\n return avg;\r\n } else {\r\n var px = arr.sort((a, b) => a - b); //排序\r\n arr.shift(); // 删除首元素\r\n arr.pop(); // 删除尾元素\r\n var bzc1 = FormulaUtils.commFun.GetS(arr); //剔除后的标准差\r\n var avg1 = FormulaUtils.commFun.getAverage(arr); //剔除后的平均值\r\n if (bzc1 <= 5) {\r\n avg = avg1;\r\n } else {\r\n avg = '无效';\r\n }\r\n }\r\n return avg;\r\n },\r\n },\r\n {\r\n funName: 'YJSZFBZC',\r\n funDesc: '四组分标准差',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '数值数组',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '';\r\n }\r\n\r\n let arr = retData.allCellVals;\r\n\r\n var bzc;\r\n bzc = FormulaUtils.commFun.GetS(arr);\r\n\r\n if (bzc <= 5) {\r\n return bzc;\r\n } else {\r\n arr.sort((a, b) => a - b); //排序\r\n arr.shift(); // 删除首元素\r\n arr.pop(); // 删除尾元素\r\n bzc = FormulaUtils.commFun.GetS(arr); //剔除后的标准差\r\n }\r\n return bzc;\r\n },\r\n },\r\n {\r\n funName: 'YJFRAC',\r\n funDesc: '根据小数返回分数(1/x)形式的文本(如:1/300、1/478)',\r\n funDefaultVal: null,\r\n isAcceptArea: true,\r\n funParams: [\r\n {\r\n name: '被除数',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '除数',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于2个,则返回空字符串\r\n if (retData.allCellVals.length < 2) {\r\n return '';\r\n }\r\n\r\n const a = retData.allCellVals[0],\r\n b = retData.allCellVals[1];\r\n\r\n // 计算商 d = a / b\r\n const d = preciseCalc(a, b, 'div');\r\n\r\n // 计算绝对值的倒数 |b/a|,并四舍五入取整\r\n const absX0 = Math.abs(preciseCalc(b, a, 'div'));\r\n let x = Math.round(absX0);\r\n\r\n // 确保分母至少为1\r\n if (x < 1) {\r\n x = 1;\r\n }\r\n\r\n // 根据商的符号返回分数字符串\r\n const sign = d < 0 ? '-' : '';\r\n sheet.getCell(retData.cellObj.row, retData.cellObj.col).formatter(`${sign}1/${x}`);\r\n\r\n return d;\r\n },\r\n },\r\n {\r\n funName: 'YJDXPD',\r\n funDesc: '单项判定',\r\n funDefaultVal: null,\r\n isAcceptArea: true,\r\n funParams: [\r\n {\r\n name: '判定范围,格式如:-2,2、-2~2或±2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '判定值,如:1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于2个,则返回空字符串\r\n if (retData.allCellVals.length < 2) {\r\n return '/';\r\n }\r\n\r\n try {\r\n const rangeStr = retData.allCellVals[0],\r\n num = retData.allCellVals[1];\r\n\r\n // 参数基础校验\r\n if (rangeStr == null || rangeStr == undefined || typeof rangeStr !== 'string' || typeof num !== 'number' || isNaN(num)) {\r\n return '/';\r\n }\r\n\r\n // 去除字符串中的空格\r\n const cleanStr = rangeStr.replace(/\\s/g, '');\r\n\r\n let min, max;\r\n\r\n // 处理三种格式\r\n if (cleanStr.includes(',')) {\r\n // 格式:\"-2,2\"\r\n const parts = cleanStr.split(',');\r\n if (parts.length !== 2) return '/';\r\n\r\n min = parseFloat(parts[0]);\r\n max = parseFloat(parts[1]);\r\n } else if (cleanStr.includes('~')) {\r\n // 格式:\"-2~2\"\r\n const parts = cleanStr.split('~');\r\n if (parts.length !== 2) return '/';\r\n\r\n min = parseFloat(parts[0]);\r\n max = parseFloat(parts[1]);\r\n } else if (cleanStr.includes('±')) {\r\n // 格式:\"±2\"\r\n const valueStr = cleanStr.replace('±', '');\r\n const value = parseFloat(valueStr);\r\n\r\n if (isNaN(value)) return '/';\r\n\r\n min = -value;\r\n max = value;\r\n } else {\r\n // 不是三种指定格式之一\r\n return '/';\r\n }\r\n\r\n // 检查解析结果是否有效\r\n if (isNaN(min) || isNaN(max)) {\r\n return '/';\r\n }\r\n\r\n // 判断数字是否在范围内\r\n if (num >= min && num <= max) {\r\n return '合格';\r\n } else {\r\n return '不合格';\r\n }\r\n } catch (error) {\r\n // 任何错误都返回\"/\"\r\n return '/';\r\n }\r\n },\r\n },\r\n {\r\n funName: 'YJTEXTJOIN',\r\n funDesc: '此函数将多个区域和/或字符串的文本组合起来,并包括你在要组合的各文本值之间指定的分隔符。',\r\n funDefaultVal: null,\r\n isAcceptArea: true,\r\n funParams: [\r\n {\r\n name: '需要用作判断的数字数组、字符串数组或单值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '返回值的数组',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '比较大小或比较相等的字符串,格式为:“>”、“<”、“>=”、“<=”、“=”、“±”',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '比较的值,类型为数字类型或字符串类型,如:3或“合格”',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '返回值的分隔符,默认为:,',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '是否返回相反的结果(传数字的1或0,0:满足条件的结果、1:相反的结果),默认为:0',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '是否返回符合或不符合结果的数量(传数字的1或0,0:不返回数量、1:返回数量),默认为:0',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n // 如果传递的参数小于5个,则返回空字符串\r\n // 本来有6个参数,最后一个参数可以不传,默认为:0\r\n if (retData.allCellValsEw.length < 5) {\r\n return '/';\r\n }\r\n\r\n let array1 = retData.allCellValsEw[0],\r\n array2 = retData.allCellValsEw[1],\r\n operator = retData.allCellValsEw[2],\r\n value = retData.allCellValsEw[3],\r\n delimiter = retData.allCellValsEw[4],\r\n isOpposite = retData.allCellValsEw.length < 6 ? 0 : retData.allCellValsEw[5],\r\n // 是否返回符合或不符合结果的数量(如最终符合或不符合的结果为“5,6,7”,并且isReturnCount=1,则返回数字3,否则返回“5,6,7”),默认为:0\r\n isReturnCount = retData.allCellValsEw.length < 7 ? 0 : retData.allCellValsEw[6];\r\n\r\n try {\r\n // 处理array1和array2的默认值\r\n if (array1 == null || array1 == undefined || (typeof array1 == 'string' && array1.trim().length == 0)) {\r\n array1 = [];\r\n }\r\n if (array2 == null || array2 == undefined || (typeof array2 == 'string' && array2.trim().length == 0)) {\r\n array2 = [];\r\n }\r\n if (typeof array1 == 'number' || (typeof array1 == 'string' && array1.trim().length > 0)) {\r\n array1 = [array1];\r\n }\r\n if (typeof array2 == 'string' && array2.trim().length > 0) {\r\n array2 = [array2];\r\n }\r\n\r\n // 如果operator、value、delimiter、isOpposite、isReturnCount为数组,则设置其取第一个值\r\n if (Array.isArray(operator) && operator.length > 0) {\r\n operator = operator[0];\r\n }\r\n if (Array.isArray(value) && value.length > 0) {\r\n value = value[0];\r\n }\r\n if (Array.isArray(delimiter) && delimiter.length > 0) {\r\n delimiter = delimiter[0];\r\n }\r\n if (Array.isArray(isOpposite) && isOpposite.length > 0) {\r\n isOpposite = isOpposite[0];\r\n }\r\n if (Array.isArray(isReturnCount) && isReturnCount.length > 0) {\r\n isReturnCount = isReturnCount[0];\r\n }\r\n\r\n // 设置isOpposite的默认值\r\n if (isOpposite == '1' || isOpposite == '0') {\r\n isOpposite = parseInt(isOpposite);\r\n }\r\n if (isOpposite != 0 && isOpposite != 1) {\r\n isOpposite = 0;\r\n }\r\n\r\n // 设置isReturnCount的默认值\r\n if (isReturnCount == '1' || isReturnCount == '0') {\r\n isReturnCount = parseInt(isReturnCount);\r\n }\r\n if (isReturnCount != 0 && isReturnCount != 1) {\r\n isReturnCount = 0;\r\n }\r\n\r\n // TODO:暂定此情况\r\n // 第一个参数是否为单值(array1为一个值的时候,此时array2的所有元素可能需要参与计算,满足要求的就返回array2中的值)\r\n const isSingleValue1 = array2.length > array1.length && array1.length == 1;\r\n\r\n // 参数基础校验\r\n if (\r\n !Array.isArray(array1) ||\r\n !Array.isArray(array2) ||\r\n // array1.length !== array2.length ||\r\n typeof operator !== 'string' ||\r\n typeof delimiter !== 'string'\r\n ) {\r\n return '/';\r\n }\r\n\r\n // 验证operator参数的有效性\r\n const validOperators = ['>', '>', '<', '<', '>=', '≥', '≧', '<=', '≤', '≦', '=', '=', '±'];\r\n if (!validOperators.includes(operator)) {\r\n return '/';\r\n }\r\n\r\n // 判断第一个数组的元素类型\r\n const isNumericArray = array1.length > 0 && (typeof array1[0] === 'number' || !isNaN(parseFloat(array1[0])));\r\n\r\n // 收集满足条件的索引和不满足条件的索引\r\n const validIndices = [],\r\n oppositeIndices = [];\r\n\r\n for (let i = 0; i < array2.length; i++) {\r\n let conditionMet = false;\r\n\r\n if (isNumericArray) {\r\n // 第一个参数为单值的时候,取第一个值\r\n const num1 = isSingleValue1 ? parseFloat(array1[0]) : parseFloat(array1[i]);\r\n const num2 = parseFloat(array2[i]);\r\n\r\n const numValue = parseFloat(value);\r\n\r\n if (isNaN(num1) || (isNaN(numValue) && !isSingleValue1)) {\r\n continue; // 跳过非数字元素\r\n }\r\n\r\n switch (operator) {\r\n case '>':\r\n case '>':\r\n if (isSingleValue1) {\r\n conditionMet = num2 > num1;\r\n } else {\r\n conditionMet = num1 > numValue;\r\n }\r\n break;\r\n case '<':\r\n case '<':\r\n if (isSingleValue1) {\r\n conditionMet = num2 < num1;\r\n } else {\r\n conditionMet = num1 < numValue;\r\n }\r\n break;\r\n case '>=':\r\n case '≥':\r\n case '≧':\r\n if (isSingleValue1) {\r\n conditionMet = num2 >= num1;\r\n } else {\r\n conditionMet = num1 >= numValue;\r\n }\r\n break;\r\n case '<=':\r\n case '≤':\r\n case '≦':\r\n if (isSingleValue1) {\r\n conditionMet = num2 <= num1;\r\n } else {\r\n conditionMet = num1 <= numValue;\r\n }\r\n break;\r\n case '=':\r\n case '=':\r\n if (isSingleValue1) {\r\n conditionMet = num2 === num1;\r\n } else {\r\n conditionMet = num1 === numValue;\r\n }\r\n break;\r\n case '±':\r\n conditionMet = num2 >= num1 - numValue && num2 <= num1 + numValue;\r\n break;\r\n }\r\n } else {\r\n // 字符串数组:只进行相等比较(忽略operator,包括\"±\")[6](@ref)\r\n conditionMet = String(array1[i]) === String(value);\r\n }\r\n\r\n if (conditionMet) {\r\n validIndices.push(i);\r\n } else {\r\n oppositeIndices.push(i);\r\n }\r\n }\r\n\r\n // 从第二个数组中获取对应索引的值\r\n const resultValues = (isOpposite == 0 ? validIndices : oppositeIndices)\r\n .map((index) => {\r\n // 确保索引在第二个数组范围内\r\n if (index >= 0 && index < array2.length) {\r\n return String(array2[index]);\r\n }\r\n return '';\r\n })\r\n .filter((val) => val !== '' && val != '/' && val != 'null' && val != null && val != undefined); // 过滤空值\r\n\r\n // 使用指定的分隔符连接结果[2,3,5]\r\n return isReturnCount == 1 ? resultValues.length : resultValues.join(delimiter);\r\n } catch (error) {\r\n // 任何错误都返回\"/\"\r\n return '/';\r\n }\r\n },\r\n },\r\n {\r\n funName: 'YJDLNZXSB',\r\n funDesc: '水温修正系数查表',\r\n funDefaultVal: null,\r\n isAcceptArea: true,\r\n funParams: [\r\n {\r\n name: '温度',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于2个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '/';\r\n }\r\n\r\n const a = retData.allCellVals[0];\r\n\r\n var sw = '/'; //最后输出的值\r\n var arr = new Array('18-1.050', '18.5-1.038', '19-1.025', '19.5-1.012', '20-1.000', '20.5-0.988', '21-0.976', '21.5-0.965', '22-0.953');\r\n for (var i = 0; i < arr.length; i++) {\r\n var ret = arr[i].split('-');\r\n if (a == ret[0]) {\r\n sw = ret[1];\r\n }\r\n }\r\n if (a.length > 2) {\r\n sw = a;\r\n\r\n var j = 0;\r\n for (var i = 0; i < arr.length; i++) {\r\n var ret = arr[i].split('-');\r\n if (sw == ret[0]) {\r\n j = i;\r\n }\r\n }\r\n if (j == arr.length - 1) {\r\n var arr1 = arr[j].split('-');\r\n var arr2 = arr[j - 1].split('-');\r\n sw = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], a),\r\n -3,\r\n );\r\n } else {\r\n var arr1 = arr[j].split('-');\r\n var arr2 = arr[j + 1].split('-');\r\n sw = FormulaUtils.commFun.GetDataOddIncreaseEvenDecrease(\r\n FormulaUtils.commFun.InterpolationMethod_y(arr1[0], arr2[0], arr1[1], arr2[1], a),\r\n -3,\r\n );\r\n }\r\n }\r\n\r\n return sw;\r\n },\r\n },\r\n {\r\n funName: 'YJWDDLZ',\r\n funDesc: '马歇尔稳定度/流值',\r\n funDefaultVal: null,\r\n isAcceptArea: true,\r\n funParams: [\r\n {\r\n name: '数值1',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值3',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值4',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值5',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '数值6',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '超过比例,如:0.15、0.2',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于7个,则返回空字符串\r\n if (retData.allCellValsEw.length < 7) {\r\n return '/';\r\n }\r\n\r\n const val1 = retData.allCellValsEw[0][0],\r\n val2 = retData.allCellValsEw[1][0],\r\n val3 = retData.allCellValsEw[2][0],\r\n val4 = retData.allCellValsEw[3][0],\r\n val5 = retData.allCellValsEw[4][0],\r\n val6 = retData.allCellValsEw[5][0],\r\n overVal = retData.allCellValsEw[6];\r\n\r\n if (typeof overVal !== 'number' || isNaN(overVal)) {\r\n return '/';\r\n }\r\n\r\n // 参数类型检查 - 所有参数必须为数字类型\r\n const args = [parseFloat(val1), parseFloat(val2), parseFloat(val3), parseFloat(val4), parseFloat(val5), parseFloat(val6)];\r\n\r\n let notNumCount = 0;\r\n\r\n // 提取前6个值进行计算\r\n let values: any[] = [];\r\n\r\n for (let i = 0; i < args.length; i++) {\r\n if (typeof args[i] !== 'number' || isNaN(args[i])) {\r\n notNumCount++;\r\n // return \"/\";\r\n } else {\r\n values.push(args[i]);\r\n }\r\n }\r\n\r\n if (notNumCount == args.length) {\r\n return '/';\r\n }\r\n\r\n // // 提取前6个值进行计算\r\n // const values = [parseFloat(val1), parseFloat(val2), parseFloat(val3), parseFloat(val4), parseFloat(val5), parseFloat(val6)];\r\n\r\n // 计算初始平均值avg\r\n const sum = values.reduce((acc, val) => preciseCalc(acc, val, 'add'), 0);\r\n const avg = preciseCalc(sum, values.length, 'div');\r\n\r\n // 检查是否有值与平均值a的差大于overVal(不取绝对值)\r\n const abnormalValues = values.filter((val) => preciseCalc(val, avg, 'sub') > preciseCalc(overVal, val, 'mul'));\r\n\r\n // 如果没有异常值,直接返回平均值a\r\n if (abnormalValues.length === 0) {\r\n return avg;\r\n }\r\n\r\n // 舍弃异常值后重新计算平均值\r\n const normalValues = values.filter((val) => preciseCalc(val, avg, 'sub') <= preciseCalc(overVal, val, 'mul'));\r\n\r\n // 确保至少有一个正常值\r\n if (normalValues.length === 0) {\r\n return '/';\r\n }\r\n\r\n // 计算剩余值的平均值\r\n const newSum = normalValues.reduce((acc, val) => preciseCalc(acc, val, 'add'), 0);\r\n return preciseCalc(newSum, normalValues.length, 'div');\r\n },\r\n },\r\n {\r\n funName: 'YJSDXNPD',\r\n funDesc: '色度性能判定',\r\n funDefaultVal: null,\r\n isAcceptArea: true,\r\n funParams: [\r\n {\r\n name: '技术要求,固定传入的值,格式如:0,0;0,10;10,10;10,0',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'x试验结果',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: 'y试验结果',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于3个,则返回空字符串\r\n if (retData.allCellVals.length < 3) {\r\n return '/';\r\n }\r\n\r\n const pointsStr = retData.allCellVals[0],\r\n x = retData.allCellVals[1],\r\n y = retData.allCellVals[2];\r\n\r\n // 解析坐标字符串为点数组\r\n const points = pointsStr.split(';').map((pointStr) => {\r\n const [x, y] = pointStr.split(',').map(Number);\r\n return { x, y };\r\n });\r\n\r\n // 检查是否为四边形(4个点)\r\n if (points.length !== 4) {\r\n return '/';\r\n }\r\n\r\n const pdPoint = { x, y };\r\n\r\n // 使用射线法判断点是否在多边形内\r\n let inside = false;\r\n const n = points.length;\r\n\r\n // 辅助函数:判断点是否在线段上\r\n function isPointOnSegment(point, segmentStart, segmentEnd) {\r\n // 使用叉积判断点是否在线段所在的直线上\r\n const crossProduct =\r\n (point.y - segmentStart.y) * (segmentEnd.x - segmentStart.x) - (point.x - segmentStart.x) * (segmentEnd.y - segmentStart.y);\r\n\r\n // 如果叉积不为0,点不在线段所在的直线上\r\n if (Math.abs(crossProduct) > 1e-10) {\r\n return false;\r\n }\r\n\r\n // 检查点是否在线段的包围盒内\r\n const dotProduct =\r\n (point.x - segmentStart.x) * (segmentEnd.x - segmentStart.x) + (point.y - segmentStart.y) * (segmentEnd.y - segmentStart.y);\r\n\r\n if (dotProduct < 0) {\r\n return false;\r\n }\r\n\r\n const squaredLength = (segmentEnd.x - segmentStart.x) ** 2 + (segmentEnd.y - segmentStart.y) ** 2;\r\n\r\n if (dotProduct > squaredLength) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n for (let i = 0, j = n - 1; i < n; j = i++) {\r\n const xi = points[i].x,\r\n yi = points[i].y;\r\n const xj = points[j].x,\r\n yj = points[j].y;\r\n\r\n // 检查点是否在多边形的边上[3](@ref)\r\n if (isPointOnSegment(pdPoint, points[i], points[j])) {\r\n return '合格';\r\n }\r\n\r\n // 射线法核心判断逻辑\r\n const intersect = yi > y !== yj > y && x < ((xj - xi) * (y - yi)) / (yj - yi) + xi;\r\n\r\n if (intersect) {\r\n inside = !inside;\r\n }\r\n }\r\n\r\n return inside ? '合格' : '不合格';\r\n },\r\n },\r\n {\r\n funName: 'YJCQHTQD',\r\n funDesc: '高强度回弹抗压强度查表',\r\n funDefaultVal: null,\r\n isAcceptArea: true,\r\n funParams: [\r\n {\r\n name: '实测回弹值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '碳化深度',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于2个,则返回空字符串\r\n if (retData.allCellVals.length < 2) {\r\n return '/';\r\n }\r\n\r\n const schtz = retData.allCellVals[0],\r\n thsd = retData.allCellVals[1];\r\n\r\n var qdhsz; //最后输出的强度换算值\r\n var arr1 = new Array();\r\n var arr2 = new Array();\r\n var arr3 = new Array();\r\n var arr4 = new Array();\r\n var arr5 = new Array();\r\n\r\n arr1 = [\r\n '30.0-50.1',\r\n '30.1-50.3',\r\n '30.2-50.6',\r\n '30.3-50.8',\r\n '30.4-51.1',\r\n '30.5-51.4',\r\n '30.6-51.6',\r\n '30.7-51.9',\r\n '30.8-52.2',\r\n '30.9-52.4',\r\n '31.0-52.7',\r\n '31.1-53.0',\r\n '31.2-53.2',\r\n '31.3-53.5',\r\n '31.4-53.8',\r\n '31.5-54.0',\r\n '31.6-54.3',\r\n '31.7-54.6',\r\n '31.8-54.8',\r\n '31.9-55.1',\r\n '32.0-55.4',\r\n '32.1-55.6',\r\n '32.2-55.9',\r\n '32.3-56.2',\r\n '32.4-56.5',\r\n '32.5-56.7',\r\n '32.6-57.0',\r\n '32.7-57.3',\r\n '32.8-57.6',\r\n '32.9-57.8',\r\n '33.0-58.1',\r\n '33.1-58.4',\r\n '33.2-58.7',\r\n '33.3-58.9',\r\n '33.4-59.2',\r\n '33.5-59.5',\r\n '33.6-59.8',\r\n '33.7-60.0',\r\n '33.8-60.3',\r\n '33.9-60.6',\r\n '34.0-60.9',\r\n '34.1-61.2',\r\n '34.2-61.4',\r\n '34.3-61.7',\r\n '34.4-62.0',\r\n '34.5-62.3',\r\n '34.6-62.6',\r\n '34.7-62.9',\r\n '34.8-63.1',\r\n '34.9-63.4',\r\n '35.0-63.7',\r\n '35.1-64.0',\r\n '35.2-64.3',\r\n '35.3-64.6',\r\n '35.4-64.9',\r\n '35.5-65.1',\r\n '35.6-65.4',\r\n '35.7-65.7',\r\n '35.8-66.0',\r\n '35.9-66.3',\r\n '36.0-66.6',\r\n '36.1-66.9',\r\n '36.2-67.2',\r\n '36.3-67.5',\r\n '36.4-67.7',\r\n '36.5-68.0',\r\n '36.6-68.3',\r\n '36.7-68.6',\r\n '36.8-68.9',\r\n '36.9-69.2',\r\n '37.0-69.5',\r\n '37.1-69.8',\r\n '37.2-70.1',\r\n '37.3-70.4',\r\n '37.4-70.7',\r\n '37.5-71.0',\r\n '37.6-71.3',\r\n '37.7-71.6',\r\n '37.8-71.9',\r\n '37.9-72.2',\r\n '38.0-72.5',\r\n '38.1-72.8',\r\n '38.2-73.1',\r\n '38.3-73.4',\r\n '38.4-73.7',\r\n '38.5-74.0',\r\n '38.6-74.3',\r\n '38.7-74.6',\r\n '38.8-74.9',\r\n '38.9-75.2',\r\n '39.0-75.5',\r\n '39.1-75.8',\r\n '39.2-76.1',\r\n '39.3-76.4',\r\n '39.4-76.7',\r\n '39.5-77.0',\r\n '39.6-77.3',\r\n '39.7-77.6',\r\n '39.8-77.9',\r\n '39.9-78.2',\r\n '40.0-78.5',\r\n '40.1-78.8',\r\n '40.2-79.1',\r\n '40.3-79.4',\r\n '40.4-79.8',\r\n '40.5-80.1',\r\n '40.6-80.4',\r\n '40.7-80.7',\r\n '40.8-81.0',\r\n '40.9-81.3',\r\n '41.0-81.6',\r\n '41.1-81.9',\r\n '41.2-82.2',\r\n '41.3-82.6',\r\n '41.4-82.9',\r\n '41.5-83.2',\r\n '41.6-83.5',\r\n '41.7-83.8',\r\n '41.8-84.1',\r\n '41.9-84.4',\r\n '42.0-84.8',\r\n '42.1-85.1',\r\n '42.2-85.4',\r\n '42.3-85.7',\r\n '42.4-86.0',\r\n '42.5-86.3',\r\n '42.6-86.7',\r\n '42.7-87.0',\r\n '42.8-87.3',\r\n '42.9-87.6',\r\n '43.0-87.9',\r\n '43.1-88.3',\r\n '43.2-88.6',\r\n '43.3-88.9',\r\n '43.4-89.2',\r\n '43.5-89.5',\r\n '43.6-89.9',\r\n '43.7-90.2',\r\n '43.8-90.5',\r\n '43.9-90.8',\r\n '44.0-91.2',\r\n '44.1-91.5',\r\n '44.2-91.8',\r\n '44.3-92.1',\r\n '44.4-92.5',\r\n '44.5-92.8',\r\n '44.6-93.1',\r\n '44.7-93.4',\r\n '44.8-93.8',\r\n '44.9-94.1',\r\n '45.0-94.4',\r\n '45.1-94.8',\r\n '45.2-95.1',\r\n '45.3-95.4',\r\n '45.4-95.7',\r\n '45.5-96.1',\r\n '45.6-96.4',\r\n '45.7-96.7',\r\n '45.8-97.1',\r\n '45.9-97.4',\r\n '46.0-97.7',\r\n '46.1-98.1',\r\n '46.2-98.4',\r\n '46.3-98.7',\r\n '46.4-99.1',\r\n '46.5-99.4',\r\n '46.6-99.7',\r\n ];\r\n arr2 = [\r\n '30.5-50.0',\r\n '30.6-50.3',\r\n '30.7-50.5',\r\n '30.8-50.8',\r\n '30.9-51.0',\r\n '31.0-51.3',\r\n '31.1-51.5',\r\n '31.2-51.8',\r\n '31.3-52.1',\r\n '31.4-52.3',\r\n '31.5-52.6',\r\n '31.6-52.8',\r\n '31.7-53.1',\r\n '31.8-53.4',\r\n '31.9-53.6',\r\n '32.0-53.9',\r\n '32.1-54.2',\r\n '32.2-54.4',\r\n '32.3-54.7',\r\n '32.4-55.0',\r\n '32.5-55.2',\r\n '32.6-55.5',\r\n '32.7-55.8',\r\n '32.8-56.0',\r\n '32.9-56.3',\r\n '33.0-56.6',\r\n '33.1-56.8',\r\n '33.2-57.1',\r\n '33.4-57.6',\r\n '33.5-57.9',\r\n '33.6-58.2',\r\n '33.7-58.4',\r\n '33.8-60.3',\r\n '33.9-60.6',\r\n '34.0-59.3',\r\n '34.1-59.5',\r\n '34.2-59.8',\r\n '34.3-60.1',\r\n '34.4-60.4',\r\n '34.5-60.6',\r\n '34.6-60.9',\r\n '34.7-61.2',\r\n '34.8-61.5',\r\n '34.9-61.7',\r\n '35.0-62.0',\r\n '35.1-62.3',\r\n '35.2-62.6',\r\n '35.3-62.8',\r\n '35.4-63.1',\r\n '35.5-63.4',\r\n '35.6-63.7',\r\n '35.7-64.0',\r\n '35.8-64.2',\r\n '35.9-64.5',\r\n '36.0-64.8',\r\n '36.1-65.1',\r\n '36.2-65.4',\r\n '36.3-65.7',\r\n '36.4-65.9',\r\n '36.5-66.2',\r\n '36.6-66.5',\r\n '36.7-66.8',\r\n '36.8-67.1',\r\n '36.9-67.4',\r\n '37.0-67.6',\r\n '37.1-67.9',\r\n '37.2-68.2',\r\n '37.3-68.5',\r\n '37.4-68.8',\r\n '37.5-69.1',\r\n '37.6-69.4',\r\n '37.7-69.7',\r\n '37.8-69.9',\r\n '37.9-70.2',\r\n '38.0-70.5',\r\n '38.1-70.8',\r\n '38.2-71.1',\r\n '38.3-71.4',\r\n '38.4-71.7',\r\n '38.5-72.0',\r\n '38.6-72.3',\r\n '38.7-72.6',\r\n '38.8-72.9',\r\n '38.9-73.2',\r\n '39.0-73.5',\r\n '39.1-73.8',\r\n '39.2-74.0',\r\n '39.3-74.3',\r\n '39.4-74.6',\r\n '39.5-74.9',\r\n '39.6-75.2',\r\n '39.7-75.5',\r\n '39.8-75.8',\r\n '39.9-76.1',\r\n '40.0-76.4',\r\n '40.1-76.7',\r\n '40.2-77.0',\r\n '40.3-77.3',\r\n '40.4-77.6',\r\n '40.5-77.9',\r\n '40.6-78.2',\r\n '40.7-78.5',\r\n '40.8-78.8',\r\n '40.9-79.1',\r\n '41.0-79.4',\r\n '41.1-79.7',\r\n '41.2-80.0',\r\n '41.3-80.3',\r\n '41.4-80.7',\r\n '41.5-81.0',\r\n '41.6-81.3',\r\n '41.7-81.6',\r\n '41.8-81.9',\r\n '41.9-82.2',\r\n '42.0-82.5',\r\n '42.1-82.8',\r\n '42.2-83.1',\r\n '42.3-83.4',\r\n '42.4-83.7',\r\n '42.5-84.0',\r\n '42.6-84.3',\r\n '42.7-84.7',\r\n '42.8-85.0',\r\n '42.9-85.3',\r\n '43.0-85.6',\r\n '43.1-85.9',\r\n '43.2-86.2',\r\n '43.3-86.5',\r\n '43.4-86.8',\r\n '43.5-87.1',\r\n '43.6-87.5',\r\n '43.7-87.8',\r\n '43.8-88.1',\r\n '43.9-88.4',\r\n '44.0-88.7',\r\n '44.1-89.0',\r\n '44.2-89.4',\r\n '44.3-89.7',\r\n '44.4-90.0',\r\n '44.5-90.3',\r\n '44.6-90.6',\r\n '44.7-90.9',\r\n '44.8-91.3',\r\n '44.9-91.6',\r\n '45.0-91.9',\r\n '45.1-92.2',\r\n '45.2-92.5',\r\n '45.3-92.9',\r\n '45.4-93.2',\r\n '45.5-93.5',\r\n '45.6-93.8',\r\n '45.7-94.1',\r\n '45.8-94.5',\r\n '45.9-94.8',\r\n '46.0-95.1',\r\n '46.1-95.4',\r\n '46.2-95.8',\r\n '46.3-96.1',\r\n '46.4-96.4',\r\n '46.5-96.7',\r\n '46.6-97.1',\r\n '46.7-97.4',\r\n '46.8-97.7',\r\n '46.9-98.0',\r\n '47.0-98.4',\r\n '47.1-98.7',\r\n '47.2-99.0',\r\n '47.3-99.4',\r\n '47.4-99.7',\r\n '47.5-100',\r\n ];\r\n arr3 = [\r\n '31.1-50.2',\r\n '31.2-50.4',\r\n '31.3-50.7',\r\n '31.4-50.9',\r\n '31.5-51.2',\r\n '31.6-51.4',\r\n '31.7-51.7',\r\n '31.8-51.9',\r\n '31.9-52.2',\r\n '32.0-52.5',\r\n '32.1-52.7',\r\n '32.2-53.0',\r\n '32.3-53.2',\r\n '32.4-53.5',\r\n '32.5-53.7',\r\n '32.6-54.0',\r\n '32.7-54.3',\r\n '32.8-54.5',\r\n '32.9-54.8',\r\n '33.0-55.0',\r\n '33.1-55.3',\r\n '33.2-55.6',\r\n '33.3-55.8',\r\n '33.4-56.1',\r\n '33.5-56.4',\r\n '33.6-56.6',\r\n '33.7-56.9',\r\n '33.8-57.1',\r\n '33.9-57.4',\r\n '34.0-57.7',\r\n '34.1-57.9',\r\n '34.2-58.2',\r\n '34.3-58.5',\r\n '34.4-58.7',\r\n '34.5-59.0',\r\n '34.6-59.3',\r\n '34.7-59.5',\r\n '34.8-59.8',\r\n '34.9-60.1',\r\n '35.0-60.4',\r\n '35.1-60.6',\r\n '35.2-60.9',\r\n '35.3-61.2',\r\n '35.4-61.4',\r\n '35.5-61.7',\r\n '35.6-62.0',\r\n '35.7-62.3',\r\n '35.8-62.5',\r\n '35.9-62.8',\r\n '36.0-63.1',\r\n '36.1-63.3',\r\n '36.2-63.6',\r\n '36.3-63.9',\r\n '36.4-64.2',\r\n '36.5-64.4',\r\n '36.6-64.7',\r\n '36.7-65.0',\r\n '36.8-65.3',\r\n '36.9-65.6',\r\n '37.0-65.8',\r\n '37.1-66.1',\r\n '37.2-66.4',\r\n '37.3-66.7',\r\n '37.4-67.0',\r\n '37.5-67.2',\r\n '37.6-67.5',\r\n '37.7-67.8',\r\n '37.8-68.1',\r\n '37.9-68.4',\r\n '38.0-68.6',\r\n '38.1-68.9',\r\n '38.2-69.2',\r\n '38.3-69.5',\r\n '38.4-69.8',\r\n '38.5-70.1',\r\n '38.6-70.3',\r\n '38.7-70.6',\r\n '38.8-70.9',\r\n '38.9-71.2',\r\n '39.0-71.5',\r\n '39.1-71.8',\r\n '39.2-72.1',\r\n '39.3-72.4',\r\n '39.4-72.6',\r\n '39.5-72.9',\r\n '39.6-73.2',\r\n '39.7-73.5',\r\n '39.8-73.8',\r\n '39.9-74.1',\r\n '40.0-74.4',\r\n '40.1-74.7',\r\n '40.2-75.0',\r\n '40.3-75.3',\r\n '40.4-75.5',\r\n '40.5-75.8',\r\n '40.6-76.1',\r\n '40.7-76.4',\r\n '40.8-76.7',\r\n '40.9-77.0',\r\n '41.0-77.3',\r\n '41.1-77.6',\r\n '41.2-77.9',\r\n '41.3-78.2',\r\n '41.4-78.5',\r\n '41.5-78.8',\r\n '41.6-79.1',\r\n '41.7-79.4',\r\n '41.8-79.7',\r\n '41.9-80.0',\r\n '42.0-80.3',\r\n '42.1-80.6',\r\n '42.2-80.9',\r\n '42.3-81.2',\r\n '42.4-81.5',\r\n '42.5-81.8',\r\n '42.6-82.1',\r\n '42.7-82.4',\r\n '42.8-82.7',\r\n '42.9-83.0',\r\n '43.0-83.3',\r\n '43.1-83.6',\r\n '43.2-83.9',\r\n '43.3-84.2',\r\n '43.4-84.5',\r\n '43.5-84.8',\r\n '43.6-85.1',\r\n '43.7-85.4',\r\n '43.8-85.7',\r\n '43.9-86.0',\r\n '44.0-86.3',\r\n '44.1-86.7',\r\n '44.2-87.0',\r\n '44.3-87.3',\r\n '44.4-87.6',\r\n '44.5-87.9',\r\n '44.6-88.2',\r\n '44.7-88.5',\r\n '44.8-88.8',\r\n '44.9-89.1',\r\n '45.0-89.4',\r\n '45.1-89.8',\r\n '45.2-90.1',\r\n '45.3-90.4',\r\n '45.4-90.7',\r\n '45.5-91.0',\r\n '45.6-91.3',\r\n '45.7-91.6',\r\n '45.8-91.9',\r\n '45.9-92.3',\r\n '46.0-92.6',\r\n '46.1-92.9',\r\n '46.2-93.2',\r\n '46.3-93.5',\r\n '46.4-93.8',\r\n '46.5-94.1',\r\n '46.6-94.5',\r\n '46.7-94.8',\r\n '46.8-95.1',\r\n '46.9-95.4',\r\n '47.0-95.7',\r\n '47.1-96.1',\r\n '47.2-96.4',\r\n '47.3-96.7',\r\n '47.4-97.0',\r\n '47.5-97.3',\r\n '47.6-97.7',\r\n '47.7-98.0',\r\n '47.8-98.3',\r\n '47.9-98.6',\r\n '48.0-98.9',\r\n '48.1-99.3',\r\n '48.2-99.6',\r\n '48.3-99.9',\r\n ];\r\n arr4 = [\r\n '31.6-50.1',\r\n '31.7-50.3',\r\n '31.8-50.6',\r\n '31.9-50.8',\r\n '32.0-51.1',\r\n '32.1-51.3',\r\n '32.2-51.6',\r\n '32.3-51.8',\r\n '32.4-52.1',\r\n '32.5-52.3',\r\n '32.6-52.6',\r\n '32.7-52.8',\r\n '32.8-53.1',\r\n '32.9-53.3',\r\n '33.0-53.6',\r\n '33.1-53.8',\r\n '33.2-54.1',\r\n '33.3-54.3',\r\n '33.4-54.6',\r\n '33.5-54.8',\r\n '33.6-55.1',\r\n '33.7-55.4',\r\n '33.8-55.6',\r\n '33.9-55.9',\r\n '34.0-56.1',\r\n '34.1-56.4',\r\n '34.2-56.7',\r\n '34.3-56.9',\r\n '34.4-57.2',\r\n '34.5-57.4',\r\n '34.6-57.7',\r\n '34.7-58.0',\r\n '34.8-58.2',\r\n '34.9-58.5',\r\n '35.0-58.7',\r\n '35.1-59.0',\r\n '35.2-59.3',\r\n '35.3-59.5',\r\n '35.4-59.8',\r\n '35.5-60.1',\r\n '35.6-60.3',\r\n '35.7-60.6',\r\n '35.8-60.9',\r\n '35.9-61.1',\r\n '36.0-61.4',\r\n '36.1-61.7',\r\n '36.2-61.9',\r\n '36.3-62.2',\r\n '36.4-62.5',\r\n '36.5-62.7',\r\n '36.6-63.0',\r\n '36.7-63.3',\r\n '36.8-63.5',\r\n '36.9-63.8',\r\n '37.0-64.1',\r\n '37.1-64.3',\r\n '37.2-64.6',\r\n '37.3-64.9',\r\n '37.4-65.2',\r\n '37.5-65.4',\r\n '37.6-65.7',\r\n '37.7-66.0',\r\n '37.8-66.3',\r\n '37.9-66.5',\r\n '38.0-66.8',\r\n '38.1-67.1',\r\n '38.2-67.4',\r\n '38.3-67.6',\r\n '38.4-67.9',\r\n '38.5-68.2',\r\n '38.6-68.5',\r\n '38.7-68.7',\r\n '38.8-69.0',\r\n '38.9-69.3',\r\n '39.0-69.6',\r\n '39.1-69.9',\r\n '39.2-70.1',\r\n '39.3-70.4',\r\n '39.4-70.7',\r\n '39.5-71.0',\r\n '39.6-71.3',\r\n '39.7-71.5',\r\n '39.8-71.8',\r\n '39.9-72.1',\r\n '40.0-72.4',\r\n '40.1-72.7',\r\n '40.2-73.0',\r\n '40.3-73.2',\r\n '40.4-73.5',\r\n '40.5-73.8',\r\n '40.6-74.1',\r\n '40.7-74.4',\r\n '40.8-74.7',\r\n '40.9-75.0',\r\n '41.0-75.2',\r\n '41.1-75.5',\r\n '41.2-75.8',\r\n '41.3-76.1',\r\n '41.4-76.4',\r\n '41.5-76.7',\r\n '41.6-77.0',\r\n '41.7-77.3',\r\n '41.8-77.6',\r\n '41.9-77.8',\r\n '42.0-78.1',\r\n '42.1-78.4',\r\n '42.2-78.7',\r\n '42.3-79.0',\r\n '42.4-79.3',\r\n '42.5-79.6',\r\n '42.6-79.9',\r\n '42.7-80.2',\r\n '42.8-80.5',\r\n '42.9-80.8',\r\n '43.0-81.1',\r\n '43.1-81.4',\r\n '43.2-81.7',\r\n '43.3-82.0',\r\n '43.4-82.3',\r\n '43.5-82.5',\r\n '43.6-82.8',\r\n '43.7-83.1',\r\n '43.8-83.4',\r\n '43.9-83.7',\r\n '44.0-84.0',\r\n '44.1-84.3',\r\n '44.2-84.6',\r\n '44.3-84.9',\r\n '44.4-85.2',\r\n '44.5-85.5',\r\n '44.6-85.8',\r\n '44.7-86.1',\r\n '44.8-86.4',\r\n '44.9-86.7',\r\n '45.0-87.0',\r\n '45.1-87.4',\r\n '45.2-87.7',\r\n '45.3-88.0',\r\n '45.4-88.3',\r\n '45.5-88.6',\r\n '45.6-88.9',\r\n '45.7-89.2',\r\n '45.8-89.5',\r\n '45.9-89.8',\r\n '46.0-90.1',\r\n '46.1-90.4',\r\n '46.2-90.7',\r\n '46.3-91.0',\r\n '46.4-91.3',\r\n '46.5-91.6',\r\n '46.6-91.9',\r\n '46.7-92.2',\r\n '46.8-92.6',\r\n '46.9-92.9',\r\n '47.0-93.2',\r\n '47.1-93.5',\r\n '47.2-93.8',\r\n '47.3-94.1',\r\n '47.4-94.4',\r\n '47.5-94.7',\r\n '47.6-95.0',\r\n '47.7-95.4',\r\n '47.8-95.7',\r\n '47.9-96.0',\r\n '48.0-96.3',\r\n '48.1-96.6',\r\n '48.2-96.9',\r\n '48.3-97.2',\r\n '48.4-97.6',\r\n '48.5-97.9',\r\n '48.6-98.2',\r\n '48.7-98.5',\r\n '48.8-98.8',\r\n '48.9-99.1',\r\n '49.0-99.5',\r\n '49.1-99.8',\r\n ];\r\n arr5 = [\r\n '32.2-50.2',\r\n '32.3-50.4',\r\n '32.4-50.7',\r\n '32.5-50.9',\r\n '32.6-51.2',\r\n '32.7-51.4',\r\n '32.8-51.6',\r\n '32.9-51.9',\r\n '33.0-52.1',\r\n '33.1-52.4',\r\n '33.2-52.6',\r\n '33.3-52.9',\r\n '33.4-53.1',\r\n '33.5-53.4',\r\n '33.6-53.6',\r\n '33.7-53.9',\r\n '33.8-54.1',\r\n '33.9-54.4',\r\n '34.0-54.6',\r\n '34.1-54.9',\r\n '34.2-55.1',\r\n '34.3-55.4',\r\n '34.4-55.6',\r\n '34.5-55.9',\r\n '34.6-56.1',\r\n '34.7-56.4',\r\n '34.8-56.7',\r\n '34.9-56.9',\r\n '35.0-57.2',\r\n '35.1-57.4',\r\n '35.2-57.7',\r\n '35.3-57.9',\r\n '35.4-58.2',\r\n '35.5-58.5',\r\n '35.6-58.7',\r\n '35.7-59.0',\r\n '35.8-59.2',\r\n '35.9-59.5',\r\n '36.0-59.7',\r\n '36.1-60.0',\r\n '36.2-60.3',\r\n '36.3-60.5',\r\n '36.4-60.8',\r\n '36.5-61.0',\r\n '36.6-61.3',\r\n '36.7-61.6',\r\n '36.8-61.8',\r\n '36.9-62.1',\r\n '37.0-62.4',\r\n '37.1-62.6',\r\n '37.2-62.9',\r\n '37.3-63.2',\r\n '37.4-63.4',\r\n '37.5-63.7',\r\n '37.6-64.0',\r\n '37.7-64.2',\r\n '37.8-64.5',\r\n '37.9-64.8',\r\n '38.0-65.0',\r\n '38.1-65.3',\r\n '38.2-65.6',\r\n '38.3-65.8',\r\n '38.4-66.1',\r\n '38.5-66.4',\r\n '38.6-66.6',\r\n '38.7-66.9',\r\n '38.8-67.2',\r\n '38.9-67.4',\r\n '39.0-67.7',\r\n '39.1-68.0',\r\n '39.2-68.3',\r\n '39.3-68.5',\r\n '39.4-68.8',\r\n '39.5-69.1',\r\n '39.6-69.4',\r\n '39.7-69.6',\r\n '39.8-69.9',\r\n '39.9-70.2',\r\n '40.0-70.5',\r\n '40.1-70.7',\r\n '40.2-71.0',\r\n '40.3-71.3',\r\n '40.4-71.6',\r\n '40.5-71.8',\r\n '40.6-72.1',\r\n '40.7-72.4',\r\n '40.8-72.7',\r\n '40.9-73.0',\r\n '41.0-73.2',\r\n '41.1-73.5',\r\n '41.2-73.8',\r\n '41.3-74.1',\r\n '41.4-74.4',\r\n '41.5-74.6',\r\n '41.6-74.9',\r\n '41.7-75.2',\r\n '41.8-75.5',\r\n '41.9-75.8',\r\n '42.0-76.0',\r\n '42.1-76.3',\r\n '42.2-76.6',\r\n '42.3-76.9',\r\n '42.4-77.2',\r\n '42.5-77.5',\r\n '42.6-77.8',\r\n '42.7-78.0',\r\n '42.8-78.3',\r\n '42.9-78.6',\r\n '43.0-78.9',\r\n '43.1-79.2',\r\n '43.2-79.5',\r\n '43.3-79.8',\r\n '43.4-80.1',\r\n '43.5-80.3',\r\n '43.6-80.6',\r\n '43.7-80.9',\r\n '43.8-81.2',\r\n '43.9-81.5',\r\n '44.0-81.8',\r\n '44.1-82.1',\r\n '44.2-82.4',\r\n '44.3-82.7',\r\n '44.4-83.0',\r\n '44.5-83.3',\r\n '44.6-83.5',\r\n '44.7-83.8',\r\n '44.8-84.1',\r\n '44.9-84.4',\r\n '45.0-84.7',\r\n '45.1-85.0',\r\n '45.2-85.3',\r\n '45.3-85.6',\r\n '45.4-85.9',\r\n '45.5-86.2',\r\n '45.6-86.5',\r\n '45.7-86.8',\r\n '45.8-87.1',\r\n '45.9-87.4',\r\n '46.0-87.7',\r\n '46.1-88.0',\r\n '46.2-88.3',\r\n '46.3-88.6',\r\n '46.4-88.9',\r\n '46.5-89.2',\r\n '46.6-89.5',\r\n '46.7-89.8',\r\n '46.8-90.1',\r\n '46.9-90.4',\r\n '47.0-90.7',\r\n '47.1-91.0',\r\n '47.2-91.3',\r\n '47.3-91.6',\r\n '47.4-91.9',\r\n '47.5-92.2',\r\n '47.6-92.5',\r\n '47.7-92.8',\r\n '47.8-93.1',\r\n '47.9-93.4',\r\n '48.0-93.7',\r\n '48.1-94.0',\r\n '48.2-94.3',\r\n '48.3-94.6',\r\n '48.4-95.0',\r\n '48.5-95.3',\r\n '48.6-95.6',\r\n '48.7-95.9',\r\n '48.8-96.2',\r\n '48.9-96.5',\r\n '49.0-96.8',\r\n '49.1-97.1',\r\n '49.2-97.4',\r\n '49.3-97.7',\r\n '49.4-98.0',\r\n '49.5-98.4',\r\n '49.6-98.7',\r\n '49.7-99.0',\r\n '49.8-99.3',\r\n '49.9-99.6',\r\n '50.0-99.9',\r\n ];\r\n for (var i = 1; i < 11; i++) {\r\n if (thsd == '0.0') {\r\n for (var j = 0; j < arr1.length; j++) {\r\n var a1 = arr1[j].split('-');\r\n if (schtz == a1[0]) {\r\n qdhsz = a1[1];\r\n }\r\n }\r\n } else if (thsd == '0.5') {\r\n for (var j = 0; j < arr2.length; j++) {\r\n var a1 = arr2[j].split('-');\r\n if (schtz == a1[0]) {\r\n qdhsz = a1[1];\r\n }\r\n }\r\n } else if (thsd == '1.0') {\r\n for (var j = 0; j < arr3.length; j++) {\r\n var a1 = arr3[j].split('-');\r\n if (schtz == a1[0]) {\r\n qdhsz = a1[1];\r\n }\r\n }\r\n } else if (thsd == '1.5') {\r\n for (var j = 0; j < arr4.length; j++) {\r\n var a1 = arr4[j].split('-');\r\n if (schtz == a1[0]) {\r\n qdhsz = a1[1];\r\n }\r\n }\r\n } else if (thsd >= '2.0') {\r\n for (var j = 0; j < arr5.length; j++) {\r\n var a1 = arr5[j].split('-');\r\n if (schtz == a1[0]) {\r\n qdhsz = a1[1];\r\n }\r\n }\r\n }\r\n }\r\n\r\n return qdhsz;\r\n },\r\n },\r\n {\r\n funName: 'YJGQHTQD',\r\n funDesc: '高强度回弹抗压强度查表',\r\n funDefaultVal: null,\r\n isAcceptArea: true,\r\n funParams: [\r\n {\r\n name: '实测回弹值',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n //如果传递的参数小于1个,则返回空字符串\r\n if (retData.allCellVals.length < 1) {\r\n return '/';\r\n }\r\n\r\n const schtz = retData.allCellVals[0];\r\n\r\n var qdhsz; //最后输出的强度换算值\r\n var arr = new Array();\r\n arr = [\r\n '29.0-20.6',\r\n '33.3-25.9',\r\n '33.4-26.0',\r\n '33.5-26.2',\r\n '37.7-31.7',\r\n '46.7-44.4',\r\n '37.8-31.8',\r\n '37.9-31.9',\r\n '38.0-32.1',\r\n '42.3-38.0',\r\n '42.4-38.2',\r\n '46.8-44.6',\r\n '29.1-20.7',\r\n '33.6-26.3',\r\n '38.1-32.2',\r\n '42.5-38.3',\r\n '46.9-44.7',\r\n '29.2-20.8',\r\n '33.7-26.4',\r\n '38.2-32.3',\r\n '42.6-38.5',\r\n '47.0-44.9',\r\n '29.3-20.9',\r\n '33.8-26.5',\r\n '38.3-32.5',\r\n '42.7-38.6',\r\n '47.1-45.0',\r\n '29.4-21.0',\r\n '33.9-26.7',\r\n '38.4-32.6',\r\n '42.8-38.7',\r\n '47.2-45.2',\r\n '29.5-21.2',\r\n '34.0-26.8',\r\n '38.5-32.8',\r\n '42.9-38.9',\r\n '47.3-45.3',\r\n '29.6-21.3',\r\n '34.1-26.9',\r\n '38.6-32.9',\r\n '43.0-39.0',\r\n '47.4-45.5',\r\n '29.7-21.4',\r\n '34.2-27.1',\r\n '38.7-33.0',\r\n '43.1-39.2',\r\n '47.5-45.6',\r\n '29.8-21.5',\r\n '34.3-27.2',\r\n '38.8-33.2',\r\n '43.2-39.3',\r\n '47.6-45.8',\r\n '29.9-21.7',\r\n '34.4-27.3',\r\n '38.9-33.3',\r\n '43.3-39.5',\r\n '47.7-45.9',\r\n '30.0-21.8',\r\n '34.5-27.4',\r\n '39.0-33.4',\r\n '43.4-39.6',\r\n '47.8-46.1',\r\n '30.1-21.9',\r\n '34.6-27.6',\r\n '39.1-33.6',\r\n '43.5-39.7',\r\n '47.9-46.2',\r\n '30.2-22.0',\r\n '34.7-27.7',\r\n '39.2-33.7',\r\n '43.6-39.9',\r\n '48.0-46.4',\r\n '30.3-22.1',\r\n '34.8-27.8',\r\n '39.3-33.8',\r\n '43.7-40.0',\r\n '48.1-46.5',\r\n '30.4-22.3',\r\n '34.9-28.0',\r\n '39.4-34.0',\r\n '43.8-40.2',\r\n '48.2-46.7',\r\n '30.5-22.4',\r\n '35.0-28.1',\r\n '39.5-34.1',\r\n '43.9-40.3',\r\n '48.3-46.8',\r\n '30.6-22.5',\r\n '35.1-28.2',\r\n '39.6-34.3',\r\n '44.0-40.5',\r\n '48.4-47.0',\r\n '30.7-22.6',\r\n '35.2-28.4',\r\n '39.7-34.4',\r\n '44.1-40.6',\r\n '48.5-47.1',\r\n '30.8-22.8',\r\n '35.3-28.5',\r\n '39.8-34.7',\r\n '44.2-40.8',\r\n '48.6-47.3',\r\n '30.9-22.9',\r\n '35.4-28.8',\r\n '39.9-34.8',\r\n '44.3-40.9',\r\n '48.7-47.4',\r\n '31.0-23.0',\r\n '35.5-28.9',\r\n '40.0-34.9',\r\n '44.4-41.0',\r\n '48.8-47.6',\r\n '31.1-23.1',\r\n '35.6-28.6',\r\n '40.1-34.6',\r\n '44.5-41.2',\r\n '48.9-47.7',\r\n '31.2-23.3',\r\n '35.7-29.0',\r\n '40.2-35.1',\r\n '44.6-41.3',\r\n '49.0-47.9',\r\n '31.3-23.4',\r\n '35.8-29.1',\r\n '40.3-35.2',\r\n '44.7-41.5',\r\n '49.1-48.6',\r\n '31.4-23.5',\r\n '35.9-29.3',\r\n '40.4-35.4',\r\n '44.8-41.6',\r\n '49.2-48.6',\r\n '31.5-23.6',\r\n '36.0-29.4',\r\n '40.5-35.5',\r\n '44.9-41.8',\r\n '49.3-48.6',\r\n '31.6-23.8',\r\n '36.1-29.5',\r\n '40.6-35.6',\r\n '45.0-41.9',\r\n '49.4-48.6',\r\n '31.7-23.9',\r\n '36.2-29.7',\r\n '40.7-35.8',\r\n '45.1-42.1',\r\n '49.5-48.6',\r\n '31.8-24.0',\r\n '36.3-29.8',\r\n '40.8-35.9',\r\n '45.2-42.2',\r\n '49.6-48.6',\r\n '31.9-24.1',\r\n '36.4-29.9',\r\n '40.9-36.1',\r\n '45.3-42.4',\r\n '49.7-49.0',\r\n '32.0-24.3',\r\n '36.5-30.1',\r\n '41.0-36.2',\r\n '45.4-42.5',\r\n '49.8-49.1',\r\n '32.1-24.4',\r\n '36.6-30.2',\r\n '41.1-36.3',\r\n '45.5-42.6',\r\n '49.9-49.3',\r\n '32.2-24.5',\r\n '36.7-30.3',\r\n '41.2-36.5',\r\n '45.6-42.8',\r\n '50.0-49.4',\r\n '32.3-24.6',\r\n '36.8-30.5',\r\n '41.3-36.6',\r\n '45.7-42.9',\r\n '50.1-49.6',\r\n '32.4-24.8',\r\n '36.9-30.6',\r\n '41.4-36.8',\r\n '45.8-43.1',\r\n '50.2-49.7',\r\n '32.5-24.9',\r\n '37.0-30.7',\r\n '41.5-36.9',\r\n '45.9-43.2',\r\n '50.3-49.9',\r\n '32.6-25.0',\r\n '37.1-30.9',\r\n '41.6-37.0',\r\n '46.0-43.4',\r\n '50.4-50.0',\r\n '32.7-25.1',\r\n '37.2-31.0',\r\n '41.7-37.2',\r\n '46.1-43.5',\r\n '50.5-50.2',\r\n '32.8-25.3',\r\n '37.3-31.1',\r\n '41.8-37.3',\r\n '46.2-43.7',\r\n '50.6-50.3',\r\n '32.9-25.4',\r\n '37.4-31.3',\r\n '41.9-37.5',\r\n '46.3-43.8',\r\n '50.7-50.5',\r\n '33.0-25.5',\r\n '37.5-31.4',\r\n '42.0-37.6',\r\n '46.4-44.0',\r\n '50.8-50.7',\r\n '33.1-25.7',\r\n '37.6-31.5',\r\n '42.1-37.7',\r\n '46.5-44.1',\r\n '50.9-50.8',\r\n '33.2-25.8',\r\n '37.7-31.7',\r\n '42.2-37.9',\r\n '46.6-44.3',\r\n '51.0-51.0',\r\n '51.1-51.1',\r\n '51.2-51.3',\r\n '51.3-51.4',\r\n '51.4-51.6',\r\n '51.5-51.7',\r\n '51.6-51.9',\r\n '51.7-52.1',\r\n '51.8-52.2',\r\n '51.9-52.4',\r\n '52.0-52.5',\r\n '52.1-52.7',\r\n '52.2-52.8',\r\n '52.3-53.0',\r\n '52.4-53.2',\r\n '52.5-53.3',\r\n '52.6-53.5',\r\n '52.7-53.6',\r\n '52.8-53.8',\r\n '52.9-54.0',\r\n '53.0-54.1',\r\n '53.1-54.3',\r\n '53.2-54.4',\r\n '53.3-54.6',\r\n '53.4-54.7',\r\n '53.5-54.9',\r\n '53.6-55.1',\r\n '53.7-55.2',\r\n '53.8-55.4',\r\n '53.9-55.5',\r\n '54.0-55.7',\r\n '54.1-55.9',\r\n '54.2-56.0',\r\n '54.3-56.2',\r\n '54.4-56.3',\r\n '54.5-56.5',\r\n '54.6-56.7',\r\n '54.7-56.8',\r\n '54.8-57.0',\r\n '54.9-57.2',\r\n '55.0-57.3',\r\n '55.1-57.5',\r\n '55.2-57.6',\r\n '55.3-57.8',\r\n '55.4-58.0',\r\n '55.5-58.1',\r\n '55.6-58.3',\r\n '55.7-58.5',\r\n '55.8-58.6',\r\n '55.9-58.8',\r\n '56.0-58.9',\r\n '56.1-59.1',\r\n '56.2-59.3',\r\n '56.3-59.4',\r\n '56.4-59.6',\r\n '56.5-59.8',\r\n '56.6-59.9',\r\n '56.7-60.1',\r\n '56.8-60.3',\r\n '56.9-60.4',\r\n '57.0-60.6',\r\n '57.1-60.8',\r\n '57.2-60.9',\r\n '57.3-61.1',\r\n '57.4-61.2',\r\n '57.5-61.4',\r\n '57.6-61.6',\r\n '57.7-61.7',\r\n '57.8-61.9',\r\n '57.9-62.1',\r\n '58.0-62.2',\r\n '58.1-62.4',\r\n '58.2-62.6',\r\n '58.3-62.7',\r\n '58.4-62.9',\r\n '58.5-63.1',\r\n '58.6-63.2',\r\n '58.7-63.4',\r\n '58.8-63.6',\r\n '58.9-63.8',\r\n '59.0-63.9',\r\n '59.1-64.1',\r\n '59.2-64.3',\r\n '59.3-64.4',\r\n '59.4-64.6',\r\n '59.5-64.8',\r\n '59.6-64.9',\r\n '59.7-65.1',\r\n '59.8-65.3',\r\n '59.9-65.4',\r\n '60.0-65.6',\r\n '60.1-65.8',\r\n '60.2-65.9',\r\n '60.3-66.1',\r\n '60.4-66.3',\r\n '60.5-66.5',\r\n '60.6-66.6',\r\n '60.7-66.8',\r\n '60.8-67.0',\r\n '60.9-67.1',\r\n '61.0-67.3',\r\n '61.1-67.5',\r\n '61.2-67.7',\r\n '61.3-67.8',\r\n '61.4-68.0',\r\n '61.5-68.2',\r\n '61.6-68.3',\r\n '61.7-68.5',\r\n '61.8-68.7',\r\n '61.9-68.9',\r\n '62.0-69.0',\r\n '62.1-69.2',\r\n '62.2-69.4',\r\n '62.3-69.6',\r\n '62.4-69.7',\r\n '62.5-69.9',\r\n '62.6-70.1',\r\n '62.7-70.3',\r\n '62.8-70.4',\r\n '62.9-70.6',\r\n '63.0-70.8',\r\n '63.1-70.9',\r\n '63.2-71.1',\r\n '63.3-71.3',\r\n '63.4-71.5',\r\n '63.5-71.6',\r\n '63.6-71.8',\r\n '63.7-72.0',\r\n '63.8-72.2',\r\n '63.9-72.4',\r\n '64.0-72.5',\r\n '64.1-72.7',\r\n '64.2-72.9',\r\n '64.3-73.1',\r\n '64.4-73.2',\r\n '64.5-73.4',\r\n '64.6-73.6',\r\n '64.7-73.8',\r\n '64.8-73.9',\r\n '64.9-74.1',\r\n '65.0-74.3',\r\n '65.1-74.5',\r\n '65.2-74.7',\r\n '65.3-74.8',\r\n '65.4-75.0',\r\n '65.5-75.2',\r\n '65.6-75.4',\r\n '65.7-75.5',\r\n '65.8-75.7',\r\n '65.9-75.9',\r\n '66.0-76.1',\r\n '66.1-76.3',\r\n '66.2-76.4',\r\n '66.3-76.6',\r\n '66.4-76.8',\r\n '66.5-77.0',\r\n '66.6-77.2',\r\n '66.7-77.3',\r\n '66.8-77.5',\r\n '66.9-77.7',\r\n '67.0-77.9',\r\n '67.1-78.1',\r\n '67.2-78.2',\r\n '67.3-78.4',\r\n '67.4-78.6',\r\n '67.5-78.8',\r\n '67.6-79.0',\r\n '67.7-79.2',\r\n '67.8-79.3',\r\n '67.9-79.5',\r\n '68.0-79.7',\r\n '68.1-79.9',\r\n '68.2-80.1',\r\n '68.3-80.2',\r\n '68.4-80.4',\r\n '68.5-80.6',\r\n '68.6-80.8',\r\n '68.7-81.0',\r\n '68.8-81.2',\r\n '68.9-81.3',\r\n '69.0-81.5',\r\n '69.1-81.7',\r\n '69.2-81.9',\r\n '69.3-82.1',\r\n '69.4-82.3',\r\n '69.5-82.5',\r\n '69.6-82.6',\r\n '69.7-82.8',\r\n '69.8-83.0',\r\n '69.9-83.2',\r\n '70.0-83.4',\r\n '70.1-83.6',\r\n '70.2-83.8',\r\n '70.3-83.9',\r\n '70.4-84.1',\r\n '70.5-84.3',\r\n '70.6-84.5',\r\n '70.7-84.7',\r\n '70.8-84.9',\r\n '70.9-58.1',\r\n '70.0-85.2',\r\n '71.1-85.4',\r\n '71.2-85.6',\r\n '71.3-85.8',\r\n '71.4-86.0',\r\n '71.5-86.2',\r\n '71.6-86.4',\r\n '71.7-86.6',\r\n '71.8-86.7',\r\n '71.9-86.9',\r\n '72.0-87.1',\r\n '72.1-87.3',\r\n '72.2-87.5',\r\n '72.3-87.7',\r\n '72.4-87.9',\r\n '72.5-88.1',\r\n '72.6-88.3',\r\n '72.7-88.4',\r\n '72.8-88.6',\r\n '72.9-88.8',\r\n '73.0-89.0',\r\n '73.1-89.2',\r\n '73.2-89.4',\r\n '73.3-89.6',\r\n '73.4-89.8',\r\n '73.5-90.0',\r\n '73.6-90.2',\r\n '73.7-90.4',\r\n '73.8-90.5',\r\n '73.9-90.7',\r\n '74.0-90.9',\r\n '74.1-91.1',\r\n '74.2-91.3',\r\n '74.3-91.5',\r\n '74.4-91.7',\r\n '74.5-91.9',\r\n '74.6-92.1',\r\n '74.7-92.3',\r\n '74.8-92.5',\r\n '74.9-92.7',\r\n '75.0-92.9',\r\n '75.1-93.1',\r\n '75.2-93.2',\r\n '75.3-93.4',\r\n '75.4-93.6',\r\n '75.5-93.8',\r\n '75.6-94.0',\r\n '75.7-94.2',\r\n '75.8-94.4',\r\n '75.9-94.6',\r\n '76.0-94.8',\r\n '76.1-95.0',\r\n '76.2-95.2',\r\n '76.3-95.4',\r\n '76.4-95.6',\r\n '76.5-95.8',\r\n '76.6-96.0',\r\n '76.7-96.2',\r\n '76.8-96.4',\r\n '76.9-96.6',\r\n '77.0-96.8',\r\n '77.1-97.0',\r\n '77.2-97.2',\r\n '77.3-97.3',\r\n '77.4-97.5',\r\n '77.5-97.7',\r\n '77.6-97.9',\r\n '77.7-98.1',\r\n '77.8-98.3',\r\n '77.9-98.5',\r\n '78.0-98.7',\r\n '78.1-98.9',\r\n '78.2-99.1',\r\n '78.3-99.3',\r\n '78.4-99.5',\r\n '78.5-99.7',\r\n '78.6-99.9',\r\n '78.7-100.1',\r\n '78.8-100.3',\r\n '78.9-100.5',\r\n '79.0-100.7',\r\n '79.1-100.9',\r\n '79.2-101.1',\r\n '79.3-101.3',\r\n '79.4-101.5',\r\n '79.5-101.7',\r\n '79.6-101.9',\r\n '79.7-102.1',\r\n '79.8-102.3',\r\n '79.9-102.5',\r\n '80.0-102.7',\r\n '80.1-102.9',\r\n '80.2-103.1',\r\n '80.3-103.3',\r\n '80.4-103.5',\r\n '80.5-103.7',\r\n '80.6-103.9',\r\n '80.7-104.1',\r\n '80.8-104.3',\r\n '80.9-104.5',\r\n '81.0-104.8',\r\n '81.1-105.0',\r\n '81.2-105.2',\r\n '81.3-105.4',\r\n '81.4-105.6',\r\n '81.5-105.8',\r\n '81.6-106.0',\r\n '81.7-106.2',\r\n '81.8-106.4',\r\n '81.9-106.6',\r\n '82.0-106.8',\r\n '82.1-107.0',\r\n '82.2-107.2',\r\n '82.3-107.4',\r\n '82.4-107.6',\r\n '82.5-107.8',\r\n '82.6-108.0',\r\n '82.7-108.2',\r\n '82.8-108.4',\r\n '82.9-108.6',\r\n '83.0-108.8',\r\n ];\r\n for (var i = 1; i <= schtz.length; i++) {\r\n for (var j = 0; j < arr.length; j++) {\r\n var a = arr[j].split('-');\r\n if (schtz * 1 == a[0]) {\r\n qdhsz = a[1];\r\n }\r\n }\r\n if (schtz * 1 < 28 || schtz * 1 > 83) {\r\n qdhsz = '/';\r\n }\r\n if (schtz * 1 < 20) {\r\n qdhsz = '<20';\r\n }\r\n if (schtz * 1 > 110) {\r\n qdhsz = '>110';\r\n }\r\n }\r\n\r\n return qdhsz;\r\n },\r\n },\r\n {\r\n funName: 'YJZBPD',\r\n funDesc: '报告上根据技术要求进行坐标判定',\r\n funDefaultVal: null,\r\n funParams: [\r\n {\r\n name: '四边形坐标,格式如 (0,0):(3,7):(15,8):(9.5,3.3)',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n {\r\n name: '目标点坐标,格式如 (3.5,6.5)',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n // 如果传递的参数小于2个,则返回/\r\n if (retData.allCellVals.length < 2) {\r\n return '/';\r\n }\r\n\r\n const pointStrArr = retData.allCellVals[1].replace('(', '').replace(')', '').split(',');\r\n\r\n let points = retData.allCellVals[0],\r\n xPoint = pointStrArr[0],\r\n yPoint = pointStrArr[1];\r\n\r\n // 1. 格式校验\r\n if (typeof points !== 'string' || !points) return '/';\r\n const regex =\r\n /^\\s*\\(\\s*(-?\\d+(?:\\.\\d+)?)\\s*,\\s*(-?\\d+(?:\\.\\d+)?)\\s*\\)\\s*:\\s*\\(\\s*(-?\\d+(?:\\.\\d+)?)\\s*,\\s*(-?\\d+(?:\\.\\d+)?)\\s*\\)\\s*:\\s*\\(\\s*(-?\\d+(?:\\.\\d+)?)\\s*,\\s*(-?\\d+(?:\\.\\d+)?)\\s*\\)\\s*:\\s*\\(\\s*(-?\\d+(?:\\.\\d+)?)\\s*,\\s*(-?\\d+(?:\\.\\d+)?)\\s*\\)\\s*$/;\r\n const match = points.match(regex);\r\n if (!match) return '/';\r\n\r\n // 2. 解析坐标\r\n const coords = [];\r\n for (let i = 1; i < match.length; i += 2) {\r\n coords.push({ x: parseFloat(match[i]), y: parseFloat(match[i + 1]) });\r\n }\r\n const tx = Number(xPoint),\r\n ty = Number(yPoint);\r\n if (isNaN(tx) || isNaN(ty)) return '/';\r\n\r\n // 3. 【新增】边界判定:点到线段距离 ≤ 容差 → 直接合格\r\n const EPSILON = 1e-9;\r\n function pointToSegmentDistSq(px, py, ax, ay, bx, by) {\r\n const dx = bx - ax,\r\n dy = by - ay;\r\n const lenSq = dx * dx + dy * dy;\r\n if (lenSq === 0) return (px - ax) ** 2 + (py - ay) ** 2; // 退化为点\r\n let t = ((px - ax) * dx + (py - ay) * dy) / lenSq;\r\n t = Math.max(0, Math.min(1, t)); // 钳制到 [0,1]\r\n const projX = ax + t * dx,\r\n projY = ay + t * dy;\r\n return (px - projX) ** 2 + (py - projY) ** 2;\r\n }\r\n\r\n const n = coords.length;\r\n for (let i = 0, j = n - 1; i < n; j = i++) {\r\n const distSq = pointToSegmentDistSq(tx, ty, coords[j].x, coords[j].y, coords[i].x, coords[i].y);\r\n if (distSq <= EPSILON * EPSILON) return '合格';\r\n }\r\n\r\n // 4. 射线法判定内部\r\n let inside = false;\r\n for (let i = 0, j = n - 1; i < n; j = i++) {\r\n const xi = coords[i].x,\r\n yi = coords[i].y;\r\n const xj = coords[j].x,\r\n yj = coords[j].y;\r\n const intersect = yi > ty !== yj > ty && tx < ((xj - xi) * (ty - yi)) / (yj - yi) + xi;\r\n if (intersect) inside = !inside;\r\n }\r\n\r\n return inside ? '合格' : '不合格';\r\n },\r\n },\r\n\r\n {\r\n funName: 'YJTEST',\r\n funDesc: '云检测试函数',\r\n funDefaultVal: null,\r\n isAcceptArea: true,\r\n funParams: [\r\n {\r\n name: '测试参数',\r\n repeatable: false,\r\n optional: false,\r\n },\r\n ],\r\n funCallback: (spread, sheet, retData) => {\r\n console.log(retData);\r\n\r\n return 'OK';\r\n },\r\n },\r\n ] as any,\r\n};\r\n","// 导出Excel文件所需的第三方包\r\nimport { saveAs } from 'file-saver';\r\nimport { RegisterFontModel } from '../types/wookbook';\r\n\r\n/**\r\n * SpreadJS工作簿工具函数属性\r\n */\r\nexport const WorkbookUtils = {\r\n /**\r\n * 加载在线sjs文件\r\n * @param spread 工作簿对象\r\n * @param fileUrl 在线sjs文件地址\r\n * @param succFunc 文件打开成功后的回调函数,返回的第一个参数为spread工作簿对象\r\n * @param errorFunc 文件打开失败后的回调函数,返回的第一个参数为错误信息\r\n */\r\n loadSjsFile: async (spread: any, fileUrl: string, succFunc?: (spreadObj) => Promise<void>, errorFunc?: (error) => Promise<void>): Promise<void> => {\r\n // 获取文件响应结果\r\n const response = await fetch(fileUrl, { method: 'GET' });\r\n\r\n // 获取成功\r\n if (response.ok) {\r\n // 文件的字节流对象\r\n const blob = await response.blob();\r\n // 将Blob转换为File或Blob对象\r\n // const file = new File([blob], 'template.sjs', { type: 'application/octet-stream' });\r\n const sjsBlob = new Blob([blob], { type: 'application/zip' });\r\n\r\n // SpreadJS打开文件\r\n spread.open(\r\n sjsBlob,\r\n async () => {\r\n if (typeof succFunc === 'function') {\r\n await succFunc(spread);\r\n\r\n // // 或者使用then回调\r\n // succFunc(spread).then((ret) => {\r\n // // return ret;\r\n // });\r\n }\r\n },\r\n async (e: any) => {\r\n if (typeof errorFunc === 'function') {\r\n await errorFunc(e);\r\n }\r\n }\r\n );\r\n }\r\n },\r\n\r\n /**\r\n * 获取工作簿的Blob对象\r\n * @param spread 工作簿实例\r\n * @returns 返回异步的Promise对象(Blob对象)\r\n * @example\r\n * const saveSpread = async (spread: any) => {\r\n * try {\r\n * const blob = await WorkbookUtils.getWookbookBlob(spread);\r\n * console.log('获取成功:', blob);\r\n * } catch (error) {\r\n * console.error('获取失败:', error);\r\n * }\r\n * };\r\n */\r\n getWookbookBlob: async (spread: any): Promise<Blob> => {\r\n return new Promise((resolve, reject) => {\r\n spread.save(\r\n // 成功回调\r\n (blob) => resolve(blob),\r\n // 失败回调\r\n (error) => reject(error)\r\n );\r\n });\r\n },\r\n\r\n /**\r\n * 打印所有工作表\r\n * @param GC GC对象\r\n * @param spread 工作簿实例\r\n */\r\n print: (GC: any, spread: any) => {\r\n // 得到Sheet个数\r\n const sheetCount = spread.getSheetCount();\r\n\r\n for (let i = 0; i < sheetCount; i++) {\r\n const sheet = spread.getSheet(i);\r\n\r\n // 获取每个工作表的打印信息\r\n let printInfo = sheet.printInfo();\r\n\r\n // 隐藏行和列的头部信息\r\n printInfo.showRowHeader(GC.Spread.Sheets.Print.PrintVisibilityType.hide);\r\n printInfo.showColumnHeader(GC.Spread.Sheets.Print.PrintVisibilityType.hide);\r\n\r\n // // 显示和隐藏打印区域的辅助线\r\n // spread.getSheet(0).isPrintLineVisible(true);\r\n // spread.getSheet(0).isPrintLineVisible(!true);\r\n\r\n // 设置打印区域,这里是固定的,在业务应用中需要根据实际情况修改打印区域\r\n printInfo.rowStart(0);\r\n printInfo.rowEnd(sheet.getRowCount()); //printInfo.rowEnd(41);\r\n printInfo.columnStart(1);\r\n printInfo.columnEnd(77);\r\n\r\n // 设置SpreadJS自身的边距为合适的距离\r\n printInfo.margin({\r\n /**\r\n * 设置默认边距\r\n * 单位是:以百分之一英寸为单位\r\n * 也就是,如果我们需要设置左边距为25mm,需要将25mm先转换为英寸,然后再用这个英寸*100就是要设置的边距\r\n * 即:(25mm转换为英寸的结果)*100\r\n *\r\n * 参考文档:\r\n * https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Print.PrintInfo#margin\r\n * https://www.67tool.com/converter/length\r\n */\r\n // 纵表\r\n top: 0.5905511999999999 * 100,\r\n bottom: 0.5905511999999999 * 100,\r\n left: 0.9842520000000001 * 100,\r\n right: 0.5905511999999999 * 100,\r\n\r\n // // 横表\r\n // top: 0.9842520000000001 * 100,\r\n // bottom: 0.5905511999999999 * 100,\r\n // left: 0.5905511999999999 * 100,\r\n // right: 0.5905511999999999 * 100,\r\n\r\n // top: 0,\r\n // bottom: 0,\r\n // left: 0,\r\n // right: 0,\r\n header: 0,\r\n footer: 0,\r\n });\r\n\r\n // 设置打印的纸张\r\n printInfo.paperSize(new GC.Spread.Sheets.Print.PaperSize(GC.Spread.Sheets.Print.PaperKind.a4));\r\n\r\n sheet.printInfo(printInfo);\r\n }\r\n\r\n // 调用打印方法\r\n spread.print();\r\n },\r\n\r\n /**\r\n * 导出为Excel文件\r\n * 如支持导出自定义公式的值等功能\r\n * @param GC Spread的GC对象\r\n * @param spread 原始Spread对象\r\n * @param fileName 导出的文件名称,不传则为第一个工作表的名称\r\n */\r\n exportToExcel: (GC: any, spread: any, fileName: string = '') => {\r\n // 导出模板为JSON对象,此处设置了参数includeBindingSource,改参数代表包含数据绑定的值\r\n const json = spread.toJSON({ includeBindingSource: true });\r\n\r\n // 需要移除的自定义公式名称集合(该变量的作用是,在导出Excel前,将工作簿中所有的自定义公式移除掉,其他内置的公式保留)\r\n const removeCustomFormulas = ['YJMAX', 'YJMIN', 'YJMID', 'YJGETNUM', 'YJGETS', 'YJGETCV', 'YJINTERPOLATIONMETHOD', 'YJINTERPOLATIONMETHOD_Y'];\r\n\r\n // 临时工作簿\r\n const tempSpread = new GC.Spread.Sheets.Workbook();\r\n tempSpread.fromJSON(json);\r\n\r\n // 暂停绘制\r\n tempSpread.suspendPaint();\r\n\r\n // 获取Sheet数量\r\n const sheetCount = tempSpread.getSheetCount();\r\n\r\n for (let iSheet = 0; iSheet < sheetCount; iSheet++) {\r\n // 当前工作表\r\n const sheet = tempSpread.getSheet(iSheet);\r\n\r\n // 暂停公式的计算,提高性能\r\n sheet.suspendCalcService();\r\n\r\n for (var i = 0; i < sheet.getRowCount(); i++) {\r\n for (var j = 0; j < sheet.getColumnCount(); j++) {\r\n // 获取单元格的公式\r\n const cellFormula = sheet.getFormula(i, j);\r\n\r\n // 如果cellFormula不为null或undefined,则说明该单元格引用了公式\r\n if (cellFormula != null && cellFormula != undefined && removeCustomFormulas.some((item) => cellFormula.indexOf(item) > -1)) {\r\n // 获取单元格的值\r\n const cellVal = sheet.getValue(i, j);\r\n\r\n // 移除单元格引用的公式\r\n sheet.getCell(i, j).formula(undefined);\r\n\r\n // 设置单元格的值\r\n sheet.setValue(i, j, cellVal);\r\n }\r\n }\r\n }\r\n\r\n // 恢复计算\r\n sheet.resumeCalcService(false);\r\n }\r\n\r\n // 恢复绘制\r\n tempSpread.resumePaint();\r\n\r\n if (fileName == '') {\r\n fileName = tempSpread.getSheet(0).name();\r\n }\r\n\r\n let options = {\r\n fileType: GC.Spread.Sheets.FileType.excel,\r\n includeBindingSource: true,\r\n includeStyles: true,\r\n includeFormulas: true,\r\n saveAsView: false,\r\n rowHeadersAsFrozenColumns: false,\r\n columnHeadersAsFrozenRows: false,\r\n includeAutoMergedCells: false,\r\n includeCalcModelCache: false,\r\n includeUnusedNames: true,\r\n includeEmptyRegionCells: true,\r\n };\r\n\r\n tempSpread.export(\r\n (blob: any) => {\r\n saveAs(blob, `${fileName}.xlsx`);\r\n },\r\n () => {},\r\n options\r\n );\r\n\r\n // 销毁临时工作簿\r\n tempSpread.destroy();\r\n },\r\n\r\n /**\r\n * 合并多个工作簿并导出Excel或PDF(同时返回合并后的工作簿实例)\r\n * @param GC Spread的GC对象\r\n * @param spreads 工作簿实例集合\r\n * @param isExcel 是否导出为Excel文件,默认为true(如果为false,则导出为PDF)\r\n * @param exportName 导出的文件名称,不传则为第一个Sheet的名称\r\n * @param regFonts 注册的字体集合,默认注册宋体和Arial字体\r\n * @param contentColEndIndex 内容列结束的索引,默认为:77(用于导出PDF文件的时候,只导出内容列到索引contentColEndIndex的位置,超过contentColEndIndex索引列后续的内容其实不需要导出)\r\n * @param isHb 是否是横表,默认为false(横表的时候,设置导出PDF的缩放比例为1,否则为1.06)\r\n * @returns 合并后的工作簿实例\r\n */\r\n mergeWorkbooksToExcelOrPdf: async (\r\n GC: any,\r\n spreads: any[],\r\n isExcel: boolean = true,\r\n exportName?: string,\r\n regFonts: RegisterFontModel[] = [\r\n { name: '宋体', type: 'normal', url: '/spreadJsFonts/simsun.ttf' },\r\n { name: 'Arial', type: 'normal', url: '/spreadJsFonts/arial.ttf' },\r\n ],\r\n contentColEndIndex: number = 77,\r\n isHb: boolean = false\r\n ) => {\r\n if (!spreads || spreads.length == 0) {\r\n return;\r\n }\r\n\r\n // 导出PDF的时候,注册字体(必须在初始化Workbook前注册)\r\n if (!isExcel) {\r\n await WorkbookUtils.registerFont(GC, regFonts);\r\n }\r\n\r\n // 主工作簿\r\n const mainWorkbook = new GC.Spread.Sheets.Workbook();\r\n\r\n // 暂停绘制\r\n mainWorkbook.suspendPaint();\r\n\r\n mainWorkbook.fromJSON(spreads[0].toJSON());\r\n\r\n for (let i = 1; i < spreads.length; i++) {\r\n // 临时工作簿\r\n const tempSpread = new GC.Spread.Sheets.Workbook();\r\n\r\n // 暂停绘制\r\n tempSpread.suspendPaint();\r\n\r\n tempSpread.fromJSON(spreads[i].toJSON());\r\n\r\n // 重命名样式表\r\n const styleSign = i + '';\r\n tempSpread.getNamedStyles().forEach(function (namedStyle) {\r\n namedStyle.name = `new_${styleSign}_${namedStyle.name}`;\r\n mainWorkbook.addNamedStyle(namedStyle);\r\n });\r\n\r\n // 当前临时工作簿的第一个工作表\r\n let tempSheet = tempSpread.getSheet(0);\r\n // 导出为JSON字符串\r\n let tempSheetJSON = JSON.stringify(tempSheet.toJSON());\r\n // 替换当前JSON字符串的style或parentName配置,目的是重命名样式名称,和上述的tempSpread重命名样式表保持一致\r\n tempSheetJSON = tempSheetJSON.replace(/\"style\":\"/g, '\"style\":\"new_' + styleSign + '_');\r\n tempSheetJSON = tempSheetJSON.replace(/\"parentName\":\"/g, '\"parentName\":\"new_' + styleSign + '_');\r\n\r\n // 创建新的工作表并添加到主工作簿中\r\n let newSheet = new GC.Spread.Sheets.Worksheet(`newSheet${styleSign}_`);\r\n mainWorkbook.addSheet(mainWorkbook.getSheetCount(), newSheet);\r\n newSheet.fromJSON(JSON.parse(tempSheetJSON));\r\n\r\n // 获取新创建的工作表newSheet的行数\r\n const newSheetRowCount = newSheet.getRowCount();\r\n\r\n // 当前操作的主工作簿的Sheet\r\n const curMainSheet = mainWorkbook.getSheet(0);\r\n\r\n // 如果是表尾,则在表单的最后一行开始添加\r\n curMainSheet.addRows(curMainSheet.getRowCount(), newSheetRowCount);\r\n\r\n // 设置复制和粘贴的范围\r\n let pastedRangesStartRow = curMainSheet.getRowCount() - newSheetRowCount;\r\n\r\n const fromRanges = [new GC.Spread.Sheets.Range(-1, -1, -1, -1)],\r\n pastedRanges = [new GC.Spread.Sheets.Range(pastedRangesStartRow, 0, newSheetRowCount, newSheet.getColumnCount())];\r\n mainWorkbook.commandManager().execute({\r\n cmd: 'clipboardPaste',\r\n sheetName: curMainSheet.name(), //此参数的作用是:粘贴到某个名称的Sheet中\r\n fromSheet: newSheet,\r\n fromRanges: fromRanges,\r\n pastedRanges: pastedRanges,\r\n isCutting: false,\r\n clipboardText: '',\r\n pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.all,\r\n });\r\n\r\n // 删除最后的Sheet,也就是newSheet对象\r\n mainWorkbook.removeSheet(mainWorkbook.getSheetCount() - 1);\r\n\r\n // 取消选中状态\r\n curMainSheet.clearSelection();\r\n\r\n // 恢复绘制\r\n tempSpread.resumePaint();\r\n\r\n // 销毁临时工作簿\r\n tempSpread.destroy();\r\n }\r\n\r\n // 获取当前活动的工作表\r\n const sheet = mainWorkbook.getActiveSheet();\r\n\r\n // 设置缩放比为1\r\n sheet.zoom(1);\r\n\r\n // 隐藏行和列的头部\r\n sheet.options.rowHeaderVisible = true;\r\n sheet.options.colHeaderVisible = true;\r\n\r\n // 隐藏Tab、水平和垂直的滚动条\r\n mainWorkbook.options.tabStripVisible = true;\r\n mainWorkbook.options.showHorizontalScrollbar = true;\r\n mainWorkbook.options.showVerticalScrollbar = true;\r\n\r\n // 滚动条是否与活动工作表的最后一行和最后一列对齐(避免滚动的时候出现灰色区域)\r\n mainWorkbook.options.scrollbarMaxAlign = false;\r\n\r\n // 导出PDF时\r\n if (!isExcel) {\r\n // 获取最后一个要打印的PDF工作表\r\n const pdfSheet = mainWorkbook.getSheet(mainWorkbook.getSheetCount() - 1);\r\n let printInfo = pdfSheet.printInfo();\r\n printInfo.margin({ top: 0, bottom: 0, left: 0, right: 0, header: 0, footer: 0 });\r\n printInfo.columnEnd(contentColEndIndex);\r\n printInfo.showBorder(false);\r\n printInfo.showGridLine(false);\r\n printInfo.blackAndWhite(false);\r\n printInfo.showRowHeader(GC.Spread.Sheets.Print.PrintVisibilityType.hide);\r\n printInfo.showColumnHeader(GC.Spread.Sheets.Print.PrintVisibilityType.hide);\r\n printInfo.zoomFactor(isHb ? 1 : 1.06);\r\n }\r\n\r\n // 恢复绘制\r\n mainWorkbook.resumePaint();\r\n\r\n // 导出Excel文件\r\n if (isExcel) {\r\n WorkbookUtils.exportToExcel(GC, mainWorkbook, exportName);\r\n } else {\r\n mainWorkbook.savePDF(function (blob) {\r\n saveAs(blob, `${exportName && exportName.length > 0 ? exportName : '文件'}.pdf`);\r\n }, console.log);\r\n }\r\n\r\n return mainWorkbook;\r\n },\r\n\r\n /**\r\n * 注册字体(主要为导出PDF使用)\r\n * @param GC Spread的GC对象\r\n * @param regFonts 字体配置集合\r\n */\r\n registerFont: async (GC: any, regFonts: RegisterFontModel[]) => {\r\n // 基于fetch\r\n return new Promise(async (resolve, reject) => {\r\n try {\r\n if (!regFonts || regFonts.length == 0) {\r\n resolve(null);\r\n }\r\n\r\n for (let i = 0; i < regFonts.length; i++) {\r\n const font = regFonts[i];\r\n\r\n const response = await fetch(font.url, { method: 'GET' });\r\n\r\n if (response.ok) {\r\n const blob = await response.blob();\r\n\r\n var reader = new FileReader();\r\n reader.readAsArrayBuffer(blob);\r\n reader.onload = function (e) {\r\n var fontArrayBuffer = reader.result;\r\n\r\n var fonts = {};\r\n fonts[font.type] = fontArrayBuffer;\r\n GC.Spread.Sheets.PDF.PDFFontsManager.registerFont(font.name, fonts);\r\n\r\n resolve(blob);\r\n };\r\n }\r\n }\r\n } catch (error) {\r\n reject(error);\r\n }\r\n });\r\n\r\n // 基于XMLHttpRequest\r\n // return new Promise((resolve, reject) => {\r\n // try {\r\n // if (!regFonts || regFonts.length == 0) {\r\n // resolve(null);\r\n // }\r\n\r\n // for (let i = 0; i < regFonts.length; i++) {\r\n // const font = regFonts[i];\r\n\r\n // var xhr = new XMLHttpRequest();\r\n // xhr.open('GET', font.url, true);\r\n // xhr.responseType = 'blob';\r\n\r\n // xhr.onload = function (e) {\r\n // if (this.status == 200) {\r\n // var blob = this.response;\r\n\r\n // var reader = new FileReader();\r\n // reader.onload = function (e) {\r\n // var fontArrayBuffer = reader.result;\r\n\r\n // var fonts = {};\r\n // fonts[font.type] = fontArrayBuffer;\r\n // GC.Spread.Sheets.PDF.PDFFontsManager.registerFont(font.name, fonts);\r\n\r\n // resolve(blob);\r\n // };\r\n // reader.readAsArrayBuffer(blob);\r\n // }\r\n // };\r\n\r\n // xhr.send();\r\n // }\r\n // } catch (error) {\r\n // reject(error);\r\n // }\r\n // });\r\n },\r\n};\r\n"],"names":[],"mappings":"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EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAChB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;aACjB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAChB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;aACjB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAChB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAChB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;aACnB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAChB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAChB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAChB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAChB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;aACnB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAChB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;aACnB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAChB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;aACnB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;aACnB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAChB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAChB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAChB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;aACnB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;aACnB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACrB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACrB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;AAChB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;aACnB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;AAClB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,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AI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACrB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACrB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACrB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACrB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACrB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACrB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACrB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACrB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACrB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACrB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACrB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;aACrB;AACD,YAAA,IAAI,IAAI,GAAG;AACT,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;AACpB,gBAAA,EAAE,CAAC,EAA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;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBAClB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;wBA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AAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE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E,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;AACjB,wBAAA,EAAE,C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E,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;gBACtC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBACvC,KAAK,CA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AG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC5B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,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AAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAC5B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;gBAE9B,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE;AAC7B,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,wBAAA,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;4BAC3B,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAClB;oBACF;gBACF;AAEA,gBAAA,OAAO,EAAE;YACX,CAAC;AACF,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,KAAK;AAChB,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,QAAQ,EAAE,KAAK;AAChB,iBAAA;AACF,aAAA;YACD,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,KAAI;;gBAEtC,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,oBAAA,OAAO,EAAE;gBACX;AAEA,gBAAA,IAAI,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAC/B,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;gBAE7B,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE;gBACvB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACvC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC;gBACxC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;gBACzC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oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;iBACZ;AACD,gBAAA,IAAI,GAAG;oBACL,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,UAAU;iBACX;AACD,gBAAA,IAAI,GAAG;oBACL,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;iBACZ;AACD,gBAAA,IAAI,GAAG;oBACL,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;iBACZ;AACD,gBAAA,IAAI,GAAG;oBACL,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAA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X,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,WAAW;oBACX,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YAAY;oBACZ,YA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","x_google_ignoreList":[0]}
|