Commit 198ee074fd40fe0f3d620593ee559f72f79aa5c2
0 parents
init
Showing
456 changed files
with
115415 additions
and
0 deletions
Too many changes to show.
To preserve performance only 100 of 456 files are displayed.
.editorconfig
0 → 100644
| 1 | +++ a/.editorconfig | ||
| 1 | +# http://editorconfig.org | ||
| 2 | +root = true | ||
| 3 | + | ||
| 4 | +[*] | ||
| 5 | +indent_style = space | ||
| 6 | +indent_size = 2 | ||
| 7 | +end_of_line = lf | ||
| 8 | +charset = utf-8 | ||
| 9 | +trim_trailing_whitespace = true | ||
| 10 | +insert_final_newline = true | ||
| 11 | + | ||
| 12 | +[*.md] | ||
| 13 | +trim_trailing_whitespace = false | ||
| 14 | + | ||
| 15 | +[Makefile] | ||
| 16 | +indent_style = tab |
.eslintrc
0 → 100644
| 1 | +++ a/.eslintrc | ||
| 1 | +{ | ||
| 2 | + "parser": "babel-eslint", | ||
| 3 | + // "extends": "airbnb", | ||
| 4 | + "env": { | ||
| 5 | + "browser": true, | ||
| 6 | + "node": true, | ||
| 7 | + "es6": true, | ||
| 8 | + "mocha": true, | ||
| 9 | + "jest": true, | ||
| 10 | + "jasmine": true | ||
| 11 | + }, | ||
| 12 | + "plugins": [ | ||
| 13 | + "jsx-a11y" | ||
| 14 | + ], | ||
| 15 | + "rules": { | ||
| 16 | + "arrow-body-style": [0], | ||
| 17 | + "consistent-return": [0], | ||
| 18 | + "generator-star-spacing": [0], | ||
| 19 | + "global-require": [1], | ||
| 20 | + "import/extensions": [0], | ||
| 21 | + "import/no-extraneous-dependencies": [0], | ||
| 22 | + "import/no-unresolved": [0], | ||
| 23 | + "import/prefer-default-export": [0], | ||
| 24 | + "jsx-a11y/no-static-element-interactions": [0], | ||
| 25 | + "jsx-a11y/anchor-is-valid": [ "error", { | ||
| 26 | + "components": [ "Link" ], | ||
| 27 | + "specialLink": [ "hrefLeft", "hrefRight" ], | ||
| 28 | + "aspects": [ "noHref", "invalidHref", "preferButton" ] | ||
| 29 | + }], | ||
| 30 | + "no-restricted-globals": ["error", "event", "fdescribe"], | ||
| 31 | + "jsx-a11y/click-events-have-key-events": [0], | ||
| 32 | + "no-bitwise": [0], | ||
| 33 | + "no-cond-assign": [0], | ||
| 34 | + "no-else-return": [0], | ||
| 35 | + "no-nested-ternary": [0], | ||
| 36 | + "no-restricted-syntax": [0], | ||
| 37 | + "no-use-before-define": [0], | ||
| 38 | + "react/forbid-prop-types": [0], | ||
| 39 | + "react/jsx-filename-extension": [1, { "extensions": [".js"] }], | ||
| 40 | + "react/jsx-no-bind": [0], | ||
| 41 | + "react/prefer-stateless-function": [0], | ||
| 42 | + "react/prop-types": [0], | ||
| 43 | + "require-yield": [1], | ||
| 44 | + "linebreak-style": 0, //去除eslint控制 LF/CRLF的判断 //packjson.json "set port=9000&&roadhog server" | ||
| 45 | + "max-len": [0, 200, 4], //每行太多老要回车 | ||
| 46 | + "no-param-reassign": [0], //禁止给参数重新赋值 | ||
| 47 | + "react/no-multi-comp": [0], | ||
| 48 | + "no-shadow": [0], | ||
| 49 | + "no-await-in-loop": [0], | ||
| 50 | + "camelcase": [1, {"properties": "never"}] | ||
| 51 | + }, | ||
| 52 | + "parserOptions": { | ||
| 53 | + "ecmaFeatures": { | ||
| 54 | + "experimentalObjectRestSpread": true | ||
| 55 | + } | ||
| 56 | + }, | ||
| 57 | + "ignorePatterns": [ | ||
| 58 | + "*.html" | ||
| 59 | + ] | ||
| 60 | +} |
.gitignore
0 → 100644
.webpackrc.js
0 → 100644
| 1 | +++ a/.webpackrc.js | ||
| 1 | +export default { | ||
| 2 | + "entry": { | ||
| 3 | + index: "./src/index.js", | ||
| 4 | + "vendor": [ | ||
| 5 | + "react", | ||
| 6 | + "react-dom", | ||
| 7 | + "dva", | ||
| 8 | + "prop-types", | ||
| 9 | + "lodash", | ||
| 10 | + "classnames" | ||
| 11 | + ], | ||
| 12 | + "antd": [ | ||
| 13 | + "antd/lib/button", | ||
| 14 | + "antd/lib/icon", | ||
| 15 | + "antd/lib/breadcrumb", | ||
| 16 | + "antd/lib/form", | ||
| 17 | + "antd/lib/menu", | ||
| 18 | + "antd/lib/input", | ||
| 19 | + "antd/lib/input-number", | ||
| 20 | + "antd/lib/dropdown", | ||
| 21 | + "antd/lib/table", | ||
| 22 | + "antd/lib/tabs", | ||
| 23 | + "antd/lib/modal", | ||
| 24 | + "antd/lib/row", | ||
| 25 | + "antd/lib/col" | ||
| 26 | + ], | ||
| 27 | + "components":[ | ||
| 28 | + "./src/components/Common/CommonComponent" | ||
| 29 | + ] | ||
| 30 | + }, | ||
| 31 | + "disableCSSModules": false, | ||
| 32 | + "publicPath": "/", | ||
| 33 | + "hash": true, | ||
| 34 | + "extraBabelPlugins": [ | ||
| 35 | + ["import", { "libraryName": "antd"}, "pc"], | ||
| 36 | + ["import", { "libraryName": "antd-mobile", "style": true }, "mobile"] | ||
| 37 | + ], | ||
| 38 | + "env": { | ||
| 39 | + "development": { | ||
| 40 | + "extraBabelPlugins": [ | ||
| 41 | + "dva-hmr", "dynamic-import-node" | ||
| 42 | + ], | ||
| 43 | + }, | ||
| 44 | + "dllPlugin": { | ||
| 45 | + "exclude": [ | ||
| 46 | + "babel-runtime", | ||
| 47 | + "roadhog" | ||
| 48 | + ], | ||
| 49 | + "include": [ | ||
| 50 | + "dva/router", | ||
| 51 | + "dva/saga", | ||
| 52 | + "dva/fetch" | ||
| 53 | + ] | ||
| 54 | + } | ||
| 55 | + }, | ||
| 56 | + "commons": [ | ||
| 57 | + { | ||
| 58 | + "names": ["vendor", "antd", "components"], | ||
| 59 | + "minChunks": "Infinity" | ||
| 60 | + } | ||
| 61 | + ], | ||
| 62 | + "lessLoaderOptions": { | ||
| 63 | + "javascriptEnabled": true | ||
| 64 | + }, | ||
| 65 | + "theme": { | ||
| 66 | + "@primary-color": "#1890FF", | ||
| 67 | + "@link-color": "#1890FF", | ||
| 68 | + "@table-header-bg": '#e6e6e6', | ||
| 69 | + "@disabled-bg": '#fff', | ||
| 70 | + "@table-border-color": '#AAA', | ||
| 71 | + "@border-color-split": '#AAA', | ||
| 72 | + "@font-family": "Monospaced Number, Chinese Quote, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif", | ||
| 73 | + }, | ||
| 74 | + "html": { "template": "./src/index.ejs" } | ||
| 75 | +} |
package.json
0 → 100644
| 1 | +++ a/package.json | ||
| 1 | +{ | ||
| 2 | + "name": "dik-dik", | ||
| 3 | + "version": "1.0.5", | ||
| 4 | + "private": true, | ||
| 5 | + "scripts": { | ||
| 6 | + "start": "set port=8543&roadhog server --progress --watch --colors --profile", | ||
| 7 | + "build": "roadhog build", | ||
| 8 | + "lint": "eslint --ext .js src test", | ||
| 9 | + "precommit": "npm run lint" | ||
| 10 | + }, | ||
| 11 | + "engines": { | ||
| 12 | + "install-node": "6.9.2" | ||
| 13 | + }, | ||
| 14 | + "dependencies": { | ||
| 15 | + "@ant-design/compatible": "^1.0.8", | ||
| 16 | + "@ant-design/icons": "^4.6.2", | ||
| 17 | + "@antv/data-set": "0.10.1", | ||
| 18 | + "@antv/g2": "^4.1.24", | ||
| 19 | + "@js-preview/docx": "^1.3.0", | ||
| 20 | + "@js-preview/excel": "^1.4.4", | ||
| 21 | + "@js-preview/pdf": "^2.0.3", | ||
| 22 | + "ahooks": "^2.10.9", | ||
| 23 | + "antd": "^4.24.15", | ||
| 24 | + "antd-mobile": "^2.3.1", | ||
| 25 | + "babel-plugin-transform-decorators-legacy": "1.3.5", | ||
| 26 | + "babel-polyfill": "6.26.0", | ||
| 27 | + "babel-runtime": "6.26.0", | ||
| 28 | + "classnames": "^2.2.6", | ||
| 29 | + "copy-to-clipboard": "^3.3.1", | ||
| 30 | + "core-js": "2.5.7", | ||
| 31 | + "dhtmlx-gantt": "^7.1.6", | ||
| 32 | + "dva": "^2.4.1", | ||
| 33 | + "dva-router-config": "^1.1.0", | ||
| 34 | + "g-cloud": "1.0.2-beta", | ||
| 35 | + "g2": "2.3.13", | ||
| 36 | + "g2-plugin-slider": "1.2.1", | ||
| 37 | + "history": "5.0.0", | ||
| 38 | + "ignore-loader": "^0.1.2", | ||
| 39 | + "immutability-helper": "^3.0.1", | ||
| 40 | + "jsqr": "^1.3.1", | ||
| 41 | + "lodash": "4.17.11", | ||
| 42 | + "lodash-decorators": "6.0.0", | ||
| 43 | + "lodash.clonedeep": "4.5.0", | ||
| 44 | + "moment": "2.22.2", | ||
| 45 | + "numeral": "2.0.6", | ||
| 46 | + "prop-types": "15.6.2", | ||
| 47 | + "qs": "6.5.2", | ||
| 48 | + "rc-form": "^2.4.11", | ||
| 49 | + "react": "^17.0.2", | ||
| 50 | + "react-container-query": "0.11.0", | ||
| 51 | + "react-dnd": "^14.0.2", | ||
| 52 | + "react-dnd-html5-backend": "^14.0.0", | ||
| 53 | + "react-document-title": "2.0.3", | ||
| 54 | + "react-dom": "^17.0.2", | ||
| 55 | + "react-draggable": "4.4.5", | ||
| 56 | + "react-fittext": "1.0.0", | ||
| 57 | + "react-flow-renderer": "^10.3.16", | ||
| 58 | + "react-grid-layout": "1.3.4", | ||
| 59 | + "react-highlight-words": "0.16.0", | ||
| 60 | + "react-hot-keys": "1.3.1", | ||
| 61 | + "react-pdf": "^5.5.0", | ||
| 62 | + "react-resizable": "^3.0.4", | ||
| 63 | + "react-sortable-hoc": "^2.0.0", | ||
| 64 | + "react-window": "^1.8.6", | ||
| 65 | + "sortablejs": "^1.15.0", | ||
| 66 | + "terser-webpack-plugin-legacy": "^1.2.5", | ||
| 67 | + "url-loader": "^4.1.1" | ||
| 68 | + }, | ||
| 69 | + "devDependencies": { | ||
| 70 | + "antd-mobile-icons": "^0.3.0", | ||
| 71 | + "babel-eslint": "8.2.5", | ||
| 72 | + "babel-jest": "21.0.0", | ||
| 73 | + "babel-plugin-dva-hmr": "0.4.1", | ||
| 74 | + "babel-plugin-dynamic-import-node": "^2.3.3", | ||
| 75 | + "babel-plugin-import": "1.11.0", | ||
| 76 | + "babel-plugin-transform-class-properties": "6.24.1", | ||
| 77 | + "babel-plugin-transform-decorators-legacy": "1.3.4", | ||
| 78 | + "babel-plugin-transform-runtime": "6.23.0", | ||
| 79 | + "babel-preset-env": "1.7.0", | ||
| 80 | + "babel-preset-react": "6.24.1", | ||
| 81 | + "braft-editor": "^2.3.9", | ||
| 82 | + "cross-env": "5.2.0", | ||
| 83 | + "cross-port-killer": "1.0.1", | ||
| 84 | + "dva-router-config": "^1.1.0", | ||
| 85 | + "enzyme": "3.7.0", | ||
| 86 | + "enzyme-adapter-react-16": "1.6.0", | ||
| 87 | + "eslint": "4.19.1", | ||
| 88 | + "eslint-config-airbnb": "16.1.0", | ||
| 89 | + "eslint-plugin-babel": "4.1.2", | ||
| 90 | + "eslint-plugin-compat": "2.6.2", | ||
| 91 | + "eslint-plugin-import": "2.14.0", | ||
| 92 | + "eslint-plugin-jsx-a11y": "6.1.2", | ||
| 93 | + "eslint-plugin-markdown": "1.0.0-beta.6", | ||
| 94 | + "eslint-plugin-react": "7.11.1", | ||
| 95 | + "expect": "1.20.2", | ||
| 96 | + "gh-pages": "1.2.0", | ||
| 97 | + "husky": "0.14.3", | ||
| 98 | + "jest": "21.2.1", | ||
| 99 | + "lint-staged": "4.3.0", | ||
| 100 | + "lodash.flow": "^3.5.0", | ||
| 101 | + "mockjs": "1.0.1-beta3", | ||
| 102 | + "prettier": "1.14.3", | ||
| 103 | + "pro-download": "1.0.1", | ||
| 104 | + "react-test-renderer": "15.6.1", | ||
| 105 | + "redbox-react": "1.6.0", | ||
| 106 | + "roadhog-api-doc": "0.3.4", | ||
| 107 | + "rollbar": "2.5.0", | ||
| 108 | + "stylelint": "9.7.1", | ||
| 109 | + "stylelint-config-standard": "18.2.0", | ||
| 110 | + "svg-sprite-loader": "^6.0.11", | ||
| 111 | + "svgo-loader": "^3.0.0", | ||
| 112 | + "xly_roadhog": "^1.2.3" | ||
| 113 | + }, | ||
| 114 | + "optionalDependencies": { | ||
| 115 | + "nightmare": "2.10.0" | ||
| 116 | + }, | ||
| 117 | + "babel": { | ||
| 118 | + "presets": [ | ||
| 119 | + "env", | ||
| 120 | + "react" | ||
| 121 | + ], | ||
| 122 | + "plugins": [ | ||
| 123 | + "transform-decorators-legacy", | ||
| 124 | + "transform-class-properties" | ||
| 125 | + ] | ||
| 126 | + }, | ||
| 127 | + "jest": { | ||
| 128 | + "setupFiles": [ | ||
| 129 | + "<rootDir>/tests/setupTests.js" | ||
| 130 | + ], | ||
| 131 | + "testMatch": [ | ||
| 132 | + "**/?(*.)(spec|test|e2e).js?(x)" | ||
| 133 | + ], | ||
| 134 | + "setupTestFrameworkScriptFile": "<rootDir>/tests/jasmine.js", | ||
| 135 | + "moduleFileExtensions": [ | ||
| 136 | + "js", | ||
| 137 | + "jsx" | ||
| 138 | + ], | ||
| 139 | + "moduleNameMapper": { | ||
| 140 | + "\\.(css|less)$": "<rootDir>/tests/styleMock.js" | ||
| 141 | + } | ||
| 142 | + }, | ||
| 143 | + "lint-staged": { | ||
| 144 | + "**/*.{js,jsx}": "lint-staged:js", | ||
| 145 | + "**/*.less": "stylelint --syntax less" | ||
| 146 | + }, | ||
| 147 | + "browserslist": [ | ||
| 148 | + "> 1%", | ||
| 149 | + "last 2 versions", | ||
| 150 | + "not ie <= 10" | ||
| 151 | + ] | ||
| 152 | +} |
public/MES关键操作说明.xlsx
0 → 100644
No preview for this file type
public/MES打印机更换纸张后亮红灯解决方法.pdf
0 → 100644
No preview for this file type
public/favicon.ico
0 → 100644
No preview for this file type
public/index.html
0 → 100644
| 1 | +++ a/public/index.html | ||
| 1 | +<!DOCTYPE html> | ||
| 2 | +<html lang="en"> | ||
| 3 | +<head> | ||
| 4 | + <meta charset="UTF-8"> | ||
| 5 | + <meta name="viewport" content="width=device-width, initial-scale=1"> | ||
| 6 | + <title>MES全局设备操作平台</title> | ||
| 7 | + <link rel="stylesheet" href="/components.css" /> | ||
| 8 | + <link rel="stylesheet" href="/index.css" /> | ||
| 9 | +</head> | ||
| 10 | + | ||
| 11 | +<body> | ||
| 12 | + | ||
| 13 | +<div id="root"></div> | ||
| 14 | + | ||
| 15 | +<script type="text/javascript" src="/components.js"></script> | ||
| 16 | +<script type="text/javascript" src="/antd.js"></script> | ||
| 17 | +<script type="text/javascript" src="/vendor.js"></script> | ||
| 18 | +<script type="text/javascript" src="/index.js"></script> | ||
| 19 | + | ||
| 20 | +</body> | ||
| 21 | +</html> |
public/x6.js
0 → 100644
| 1 | +++ a/public/x6.js | ||
| 1 | +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).X6={})}(this,(function(t){"use strict";function e(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]])}return n}function n(t,e,n,r){var i,s=arguments.length,o=s<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(o=(s<3?i(o):s>3?i(e,n,o):i(e,n))||o);return s>3&&o&&Object.defineProperty(e,n,o),o}"object"==typeof window&&window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),[Element.prototype,Document.prototype,DocumentFragment.prototype].forEach((t=>{Object.prototype.hasOwnProperty.call(t,"append")||Object.defineProperty(t,"append",{configurable:!0,enumerable:!0,writable:!0,value(...t){const e=document.createDocumentFragment();t.forEach((t=>{const n=t instanceof Node;e.appendChild(n?t:document.createTextNode(String(t)))})),this.appendChild(e)}})}));class r{get disposed(){return!0===this._disposed}dispose(){this._disposed=!0}}!function(t){t.dispose=function(){return(t,e,n)=>{const r=n.value,i=t.__proto__;n.value=function(...t){this.disposed||(r.call(this,...t),i.dispose.call(this))}}}}(r||(r={}));class i{constructor(){this.isDisposed=!1,this.items=new Set}get disposed(){return this.isDisposed}dispose(){this.isDisposed||(this.isDisposed=!0,this.items.forEach((t=>{t.dispose()})),this.items.clear())}contains(t){return this.items.has(t)}add(t){this.items.add(t)}remove(t){this.items.delete(t)}clear(){this.items.clear()}}!function(t){t.from=function(e){const n=new t;return e.forEach((t=>{n.add(t)})),n}}(i||(i={}));var s="object"==typeof global&&global&&global.Object===Object&&global,o="object"==typeof self&&self&&self.Object===Object&&self,a=s||o||Function("return this")(),l=a.Symbol,c=Object.prototype,h=c.hasOwnProperty,u=c.toString,g=l?l.toStringTag:void 0;var d=Object.prototype.toString;var f="[object Null]",p="[object Undefined]",m=l?l.toStringTag:void 0;function y(t){return null==t?void 0===t?p:f:m&&m in Object(t)?function(t){var e=h.call(t,g),n=t[g];try{t[g]=void 0;var r=!0}catch(t){}var i=u.call(t);return r&&(e?t[g]=n:delete t[g]),i}(t):function(t){return d.call(t)}(t)}function v(t){return null!=t&&"object"==typeof t}var b="[object Symbol]";function x(t){return"symbol"==typeof t||v(t)&&y(t)==b}var w=NaN;function A(t){return"number"==typeof t?t:x(t)?w:+t}function C(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}var P=Array.isArray,M=1/0,E=l?l.prototype:void 0,S=E?E.toString:void 0;function O(t){if("string"==typeof t)return t;if(P(t))return C(t,O)+"";if(x(t))return S?S.call(t):"";var e=t+"";return"0"==e&&1/t==-M?"-0":e}function T(t,e){return function(n,r){var i;if(void 0===n&&void 0===r)return e;if(void 0!==n&&(i=n),void 0!==r){if(void 0===i)return r;"string"==typeof n||"string"==typeof r?(n=O(n),r=O(r)):(n=A(n),r=A(r)),i=t(n,r)}return i}}var k=T((function(t,e){return t+e}),0),N=/\s/;function j(t){for(var e=t.length;e--&&N.test(t.charAt(e)););return e}var _=/^\s+/;function L(t){return t?t.slice(0,j(t)+1).replace(_,""):t}function B(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}var I=NaN,D=/^[-+]0x[0-9a-f]+$/i,R=/^0b[01]+$/i,V=/^0o[0-7]+$/i,z=parseInt;function $(t){if("number"==typeof t)return t;if(x(t))return I;if(B(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=B(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=L(t);var n=R.test(t);return n||V.test(t)?z(t.slice(2),n?2:8):D.test(t)?I:+t}var F=1/0,G=17976931348623157e292;function U(t){return t?(t=$(t))===F||t===-F?(t<0?-1:1)*G:t==t?t:0:0===t?t:0}function q(t){var e=U(t),n=e%1;return e==e?n?e-n:e:0}var W="Expected a function";function H(t){return t}var J="[object AsyncFunction]",X="[object Function]",Y="[object GeneratorFunction]",Z="[object Proxy]";function K(t){if(!B(t))return!1;var e=y(t);return e==X||e==Y||e==J||e==Z}var Q,tt=a["__core-js_shared__"],et=(Q=/[^.]+$/.exec(tt&&tt.keys&&tt.keys.IE_PROTO||""))?"Symbol(src)_1."+Q:"";var nt=Function.prototype.toString;function rt(t){if(null!=t){try{return nt.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var it=/^\[object .+?Constructor\]$/,st=Function.prototype,ot=Object.prototype,at=st.toString,lt=ot.hasOwnProperty,ct=RegExp("^"+at.call(lt).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ht(t){return!(!B(t)||function(t){return!!et&&et in t}(t))&&(K(t)?ct:it).test(rt(t))}function ut(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return ht(n)?n:void 0}var gt=ut(a,"WeakMap"),dt=gt&&new gt,ft=dt?function(t,e){return dt.set(t,e),t}:H,pt=Object.create,mt=function(){function t(){}return function(e){if(!B(e))return{};if(pt)return pt(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();function yt(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=mt(t.prototype),r=t.apply(n,e);return B(r)?r:n}}var vt=1;function bt(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}var xt=Math.max;function wt(t,e,n,r){for(var i=-1,s=t.length,o=n.length,a=-1,l=e.length,c=xt(s-o,0),h=Array(l+c),u=!r;++a<l;)h[a]=e[a];for(;++i<o;)(u||i<s)&&(h[n[i]]=t[i]);for(;c--;)h[a++]=t[i++];return h}var At=Math.max;function Ct(t,e,n,r){for(var i=-1,s=t.length,o=-1,a=n.length,l=-1,c=e.length,h=At(s-a,0),u=Array(h+c),g=!r;++i<h;)u[i]=t[i];for(var d=i;++l<c;)u[d+l]=e[l];for(;++o<a;)(g||i<s)&&(u[d+n[o]]=t[i++]);return u}function Pt(){}var Mt=4294967295;function Et(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Mt,this.__views__=[]}function St(){}Et.prototype=mt(Pt.prototype),Et.prototype.constructor=Et;var Ot=dt?function(t){return dt.get(t)}:St,Tt={},kt=Object.prototype.hasOwnProperty;function Nt(t){for(var e=t.name+"",n=Tt[e],r=kt.call(Tt,e)?n.length:0;r--;){var i=n[r],s=i.func;if(null==s||s==t)return i.name}return e}function jt(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}function _t(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}function Lt(t){if(t instanceof Et)return t.clone();var e=new jt(t.__wrapped__,t.__chain__);return e.__actions__=_t(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}jt.prototype=mt(Pt.prototype),jt.prototype.constructor=jt;var Bt=Object.prototype.hasOwnProperty;function It(t){if(v(t)&&!P(t)&&!(t instanceof Et)){if(t instanceof jt)return t;if(Bt.call(t,"__wrapped__"))return Lt(t)}return new jt(t)}function Dt(t){var e=Nt(t),n=It[e];if("function"!=typeof n||!(e in Et.prototype))return!1;if(t===n)return!0;var r=Ot(n);return!!r&&t===r[0]}It.prototype=Pt.prototype,It.prototype.constructor=It;var Rt=800,Vt=16,zt=Date.now;function $t(t){var e=0,n=0;return function(){var r=zt(),i=Vt-(r-n);if(n=r,i>0){if(++e>=Rt)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var Ft=$t(ft),Gt=/\{\n\/\* \[wrapped with (.+)\] \*/,Ut=/,? & /;var qt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function Wt(t){return function(){return t}}var Ht=function(){try{var t=ut(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),Jt=Ht?function(t,e){return Ht(t,"toString",{configurable:!0,enumerable:!1,value:Wt(e),writable:!0})}:H,Xt=$t(Jt);function Yt(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}function Zt(t,e,n,r){for(var i=t.length,s=n+(r?1:-1);r?s--:++s<i;)if(e(t[s],s,t))return s;return-1}function Kt(t){return t!=t}function Qt(t,e,n){return e==e?function(t,e,n){for(var r=n-1,i=t.length;++r<i;)if(t[r]===e)return r;return-1}(t,e,n):Zt(t,Kt,n)}function te(t,e){return!!(null==t?0:t.length)&&Qt(t,e,0)>-1}var ee=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]];function ne(t,e,n){var r=e+"";return Xt(t,function(t,e){var n=e.length;if(!n)return t;var r=n-1;return e[r]=(n>1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(qt,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return Yt(ee,(function(n){var r="_."+n[0];e&n[1]&&!te(t,r)&&t.push(r)})),t.sort()}(function(t){var e=t.match(Gt);return e?e[1].split(Ut):[]}(r),n)))}var re=1,ie=2,se=4,oe=8,ae=32,le=64;function ce(t,e,n,r,i,s,o,a,l,c){var h=e&oe;e|=h?ae:le,(e&=~(h?le:ae))&se||(e&=~(re|ie));var u=[t,e,i,h?s:void 0,h?o:void 0,h?void 0:s,h?void 0:o,a,l,c],g=n.apply(void 0,u);return Dt(t)&&Ft(g,u),g.placeholder=r,ne(g,t,e)}function he(t){return t.placeholder}var ue=9007199254740991,ge=/^(?:0|[1-9]\d*)$/;function de(t,e){var n=typeof t;return!!(e=null==e?ue:e)&&("number"==n||"symbol"!=n&&ge.test(t))&&t>-1&&t%1==0&&t<e}var fe=Math.min;var pe="__lodash_placeholder__";function me(t,e){for(var n=-1,r=t.length,i=0,s=[];++n<r;){var o=t[n];o!==e&&o!==pe||(t[n]=pe,s[i++]=n)}return s}var ye=1,ve=2,be=8,xe=16,we=128,Ae=512;function Ce(t,e,n,r,i,s,o,l,c,h){var u=e&we,g=e&ye,d=e&ve,f=e&(be|xe),p=e&Ae,m=d?void 0:yt(t);return function y(){for(var v=arguments.length,b=Array(v),x=v;x--;)b[x]=arguments[x];if(f)var w=he(y),A=function(t,e){for(var n=t.length,r=0;n--;)t[n]===e&&++r;return r}(b,w);if(r&&(b=wt(b,r,i,f)),s&&(b=Ct(b,s,o,f)),v-=A,f&&v<h){var C=me(b,w);return ce(t,e,Ce,y.placeholder,n,b,C,l,c,h-v)}var P=g?n:this,M=d?P[t]:t;return v=b.length,l?b=function(t,e){for(var n=t.length,r=fe(e.length,n),i=_t(t);r--;){var s=e[r];t[r]=de(s,n)?i[s]:void 0}return t}(b,l):p&&v>1&&b.reverse(),u&&c<v&&(b.length=c),this&&this!==a&&this instanceof y&&(M=m||yt(M)),M.apply(P,b)}}var Pe=1;var Me="__lodash_placeholder__",Ee=1,Se=2,Oe=4,Te=8,ke=128,Ne=256,je=Math.min;var _e="Expected a function",Le=1,Be=2,Ie=8,De=16,Re=32,Ve=64,ze=Math.max;function $e(t,e,n,r,i,s,o,l){var c=e&Be;if(!c&&"function"!=typeof t)throw new TypeError(_e);var h=r?r.length:0;if(h||(e&=~(Re|Ve),r=i=void 0),o=void 0===o?o:ze(q(o),0),l=void 0===l?l:q(l),h-=i?i.length:0,e&Ve){var u=r,g=i;r=i=void 0}var d=c?void 0:Ot(t),f=[t,e,n,r,i,u,g,s,o,l];if(d&&function(t,e){var n=t[1],r=e[1],i=n|r,s=i<(Ee|Se|ke),o=r==ke&&n==Te||r==ke&&n==Ne&&t[7].length<=e[8]||r==(ke|Ne)&&e[7].length<=e[8]&&n==Te;if(!s&&!o)return t;r&Ee&&(t[2]=e[2],i|=n&Ee?0:Oe);var a=e[3];if(a){var l=t[3];t[3]=l?wt(l,a,e[4]):a,t[4]=l?me(t[3],Me):e[4]}(a=e[5])&&(l=t[5],t[5]=l?Ct(l,a,e[6]):a,t[6]=l?me(t[5],Me):e[6]),(a=e[7])&&(t[7]=a),r&ke&&(t[8]=null==t[8]?e[8]:je(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=i}(f,d),t=f[0],e=f[1],n=f[2],r=f[3],i=f[4],!(l=f[9]=void 0===f[9]?c?0:t.length:ze(f[9]-h,0))&&e&(Ie|De)&&(e&=~(Ie|De)),e&&e!=Le)p=e==Ie||e==De?function(t,e,n){var r=yt(t);return function i(){for(var s=arguments.length,o=Array(s),l=s,c=he(i);l--;)o[l]=arguments[l];var h=s<3&&o[0]!==c&&o[s-1]!==c?[]:me(o,c);return(s-=h.length)<n?ce(t,e,Ce,i.placeholder,void 0,o,h,void 0,void 0,n-s):bt(this&&this!==a&&this instanceof i?r:t,this,o)}}(t,e,l):e!=Re&&e!=(Le|Re)||i.length?Ce.apply(void 0,f):function(t,e,n,r){var i=e&Pe,s=yt(t);return function e(){for(var o=-1,l=arguments.length,c=-1,h=r.length,u=Array(h+l),g=this&&this!==a&&this instanceof e?s:t;++c<h;)u[c]=r[c];for(;l--;)u[c++]=arguments[++o];return bt(g,i?n:this,u)}}(t,e,n,r);else var p=function(t,e,n){var r=e&vt,i=yt(t);return function e(){return(this&&this!==a&&this instanceof e?i:t).apply(r?n:this,arguments)}}(t,e,n);return ne((d?ft:Ft)(p,f),t,e)}var Fe=128;function Ge(t,e,n){return e=n?void 0:e,e=t&&null==e?t.length:e,$e(t,Fe,void 0,void 0,void 0,void 0,e)}function Ue(t,e,n){"__proto__"==e&&Ht?Ht(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function qe(t,e){return t===e||t!=t&&e!=e}var We=Object.prototype.hasOwnProperty;function He(t,e,n){var r=t[e];We.call(t,e)&&qe(r,n)&&(void 0!==n||e in t)||Ue(t,e,n)}function Je(t,e,n,r){var i=!n;n||(n={});for(var s=-1,o=e.length;++s<o;){var a=e[s],l=r?r(n[a],t[a],a,n,t):void 0;void 0===l&&(l=t[a]),i?Ue(n,a,l):He(n,a,l)}return n}var Xe=Math.max;function Ye(t,e,n){return e=Xe(void 0===e?t.length-1:e,0),function(){for(var r=arguments,i=-1,s=Xe(r.length-e,0),o=Array(s);++i<s;)o[i]=r[e+i];i=-1;for(var a=Array(e+1);++i<e;)a[i]=r[i];return a[e]=n(o),bt(t,this,a)}}function Ze(t,e){return Xt(Ye(t,e,H),t+"")}var Ke=9007199254740991;function Qe(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=Ke}function tn(t){return null!=t&&Qe(t.length)&&!K(t)}function en(t,e,n){if(!B(n))return!1;var r=typeof e;return!!("number"==r?tn(n)&&de(e,n.length):"string"==r&&e in n)&&qe(n[e],t)}function nn(t){return Ze((function(e,n){var r=-1,i=n.length,s=i>1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(s=t.length>3&&"function"==typeof s?(i--,s):void 0,o&&en(n[0],n[1],o)&&(s=i<3?void 0:s,i=1),e=Object(e);++r<i;){var a=n[r];a&&t(e,a,r,s)}return e}))}var rn=Object.prototype;function sn(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||rn)}function on(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}var an="[object Arguments]";function ln(t){return v(t)&&y(t)==an}var cn=Object.prototype,hn=cn.hasOwnProperty,un=cn.propertyIsEnumerable,gn=ln(function(){return arguments}())?ln:function(t){return v(t)&&hn.call(t,"callee")&&!un.call(t,"callee")};function dn(){return!1}var fn="object"==typeof t&&t&&!t.nodeType&&t,pn=fn&&"object"==typeof module&&module&&!module.nodeType&&module,mn=pn&&pn.exports===fn?a.Buffer:void 0,yn=(mn?mn.isBuffer:void 0)||dn,vn={};function bn(t){return function(e){return t(e)}}vn["[object Float32Array]"]=vn["[object Float64Array]"]=vn["[object Int8Array]"]=vn["[object Int16Array]"]=vn["[object Int32Array]"]=vn["[object Uint8Array]"]=vn["[object Uint8ClampedArray]"]=vn["[object Uint16Array]"]=vn["[object Uint32Array]"]=!0,vn["[object Arguments]"]=vn["[object Array]"]=vn["[object ArrayBuffer]"]=vn["[object Boolean]"]=vn["[object DataView]"]=vn["[object Date]"]=vn["[object Error]"]=vn["[object Function]"]=vn["[object Map]"]=vn["[object Number]"]=vn["[object Object]"]=vn["[object RegExp]"]=vn["[object Set]"]=vn["[object String]"]=vn["[object WeakMap]"]=!1;var xn="object"==typeof t&&t&&!t.nodeType&&t,wn=xn&&"object"==typeof module&&module&&!module.nodeType&&module,An=wn&&wn.exports===xn&&s.process,Cn=function(){try{var t=wn&&wn.require&&wn.require("util").types;return t||An&&An.binding&&An.binding("util")}catch(t){}}(),Pn=Cn&&Cn.isTypedArray,Mn=Pn?bn(Pn):function(t){return v(t)&&Qe(t.length)&&!!vn[y(t)]},En=Object.prototype.hasOwnProperty;function Sn(t,e){var n=P(t),r=!n&&gn(t),i=!n&&!r&&yn(t),s=!n&&!r&&!i&&Mn(t),o=n||r||i||s,a=o?on(t.length,String):[],l=a.length;for(var c in t)!e&&!En.call(t,c)||o&&("length"==c||i&&("offset"==c||"parent"==c)||s&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||de(c,l))||a.push(c);return a}function On(t,e){return function(n){return t(e(n))}}var Tn=On(Object.keys,Object),kn=Object.prototype.hasOwnProperty;function Nn(t){if(!sn(t))return Tn(t);var e=[];for(var n in Object(t))kn.call(t,n)&&"constructor"!=n&&e.push(n);return e}function jn(t){return tn(t)?Sn(t):Nn(t)}var _n=Object.prototype.hasOwnProperty,Ln=nn((function(t,e){if(sn(e)||tn(e))Je(e,jn(e),t);else for(var n in e)_n.call(e,n)&&He(t,n,e[n])}));var Bn=Object.prototype.hasOwnProperty;function In(t){if(!B(t))return function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}(t);var e=sn(t),n=[];for(var r in t)("constructor"!=r||!e&&Bn.call(t,r))&&n.push(r);return n}function Dn(t){return tn(t)?Sn(t,!0):In(t)}var Rn=nn((function(t,e){Je(e,Dn(e),t)})),Vn=nn((function(t,e,n,r){Je(e,Dn(e),t,r)})),zn=nn((function(t,e,n,r){Je(e,jn(e),t,r)})),$n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Fn=/^\w*$/;function Gn(t,e){if(P(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!x(t))||(Fn.test(t)||!$n.test(t)||null!=e&&t in Object(e))}var Un=ut(Object,"create");var qn="__lodash_hash_undefined__",Wn=Object.prototype.hasOwnProperty;var Hn=Object.prototype.hasOwnProperty;var Jn="__lodash_hash_undefined__";function Xn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Yn(t,e){for(var n=t.length;n--;)if(qe(t[n][0],e))return n;return-1}Xn.prototype.clear=function(){this.__data__=Un?Un(null):{},this.size=0},Xn.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Xn.prototype.get=function(t){var e=this.__data__;if(Un){var n=e[t];return n===qn?void 0:n}return Wn.call(e,t)?e[t]:void 0},Xn.prototype.has=function(t){var e=this.__data__;return Un?void 0!==e[t]:Hn.call(e,t)},Xn.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Un&&void 0===e?Jn:e,this};var Zn=Array.prototype.splice;function Kn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}Kn.prototype.clear=function(){this.__data__=[],this.size=0},Kn.prototype.delete=function(t){var e=this.__data__,n=Yn(e,t);return!(n<0)&&(n==e.length-1?e.pop():Zn.call(e,n,1),--this.size,!0)},Kn.prototype.get=function(t){var e=this.__data__,n=Yn(e,t);return n<0?void 0:e[n][1]},Kn.prototype.has=function(t){return Yn(this.__data__,t)>-1},Kn.prototype.set=function(t,e){var n=this.__data__,r=Yn(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this};var Qn=ut(a,"Map");function tr(t,e){var n,r,i=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof e?"string":"hash"]:i.map}function er(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}er.prototype.clear=function(){this.size=0,this.__data__={hash:new Xn,map:new(Qn||Kn),string:new Xn}},er.prototype.delete=function(t){var e=tr(this,t).delete(t);return this.size-=e?1:0,e},er.prototype.get=function(t){return tr(this,t).get(t)},er.prototype.has=function(t){return tr(this,t).has(t)},er.prototype.set=function(t,e){var n=tr(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this};var nr="Expected a function";function rr(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(nr);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],s=n.cache;if(s.has(i))return s.get(i);var o=t.apply(this,r);return n.cache=s.set(i,o)||s,o};return n.cache=new(rr.Cache||er),n}rr.Cache=er;var ir=500;var sr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,or=/\\(\\)?/g,ar=function(t){var e=rr(t,(function(t){return n.size===ir&&n.clear(),t})),n=e.cache;return e}((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(sr,(function(t,n,r,i){e.push(r?i.replace(or,"$1"):n||t)})),e}));function lr(t){return null==t?"":O(t)}function cr(t,e){return P(t)?t:Gn(t,e)?[t]:ar(lr(t))}var hr=1/0;function ur(t){if("string"==typeof t||x(t))return t;var e=t+"";return"0"==e&&1/t==-hr?"-0":e}function gr(t,e){for(var n=0,r=(e=cr(e,t)).length;null!=t&&n<r;)t=t[ur(e[n++])];return n&&n==r?t:void 0}function dr(t,e,n){var r=null==t?void 0:gr(t,e);return void 0===r?n:r}function fr(t,e){for(var n=-1,r=e.length,i=Array(r),s=null==t;++n<r;)i[n]=s?void 0:dr(t,e[n]);return i}function pr(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}var mr=l?l.isConcatSpreadable:void 0;function yr(t){return P(t)||gn(t)||!!(mr&&t&&t[mr])}function vr(t,e,n,r,i){var s=-1,o=t.length;for(n||(n=yr),i||(i=[]);++s<o;){var a=t[s];e>0&&n(a)?e>1?vr(a,e-1,n,r,i):pr(i,a):r||(i[i.length]=a)}return i}function br(t){return(null==t?0:t.length)?vr(t,1):[]}function xr(t){return Xt(Ye(t,void 0,br),t+"")}var wr=xr(fr),Ar=On(Object.getPrototypeOf,Object),Cr="[object Object]",Pr=Function.prototype,Mr=Object.prototype,Er=Pr.toString,Sr=Mr.hasOwnProperty,Or=Er.call(Object);function Tr(t){if(!v(t)||y(t)!=Cr)return!1;var e=Ar(t);if(null===e)return!0;var n=Sr.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Er.call(n)==Or}var kr="[object DOMException]",Nr="[object Error]";function jr(t){if(!v(t))return!1;var e=y(t);return e==Nr||e==kr||"string"==typeof t.message&&"string"==typeof t.name&&!Tr(t)}var _r=Ze((function(t,e){try{return bt(t,void 0,e)}catch(t){return jr(t)?t:new Error(t)}})),Lr="Expected a function";function Br(t,e){var n;if("function"!=typeof e)throw new TypeError(Lr);return t=q(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=void 0),n}}var Ir=Ze((function(t,e,n){var r=1;if(n.length){var i=me(n,he(Ir));r|=32}return $e(t,r,e,n,i)}));Ir.placeholder={};var Dr=xr((function(t,e){return Yt(e,(function(e){e=ur(e),Ue(t,e,Ir(t[e],t))})),t})),Rr=Ze((function(t,e,n){var r=3;if(n.length){var i=me(n,he(Rr));r|=32}return $e(e,r,t,n,i)}));function Vr(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var s=Array(i);++r<i;)s[r]=t[r+e];return s}function zr(t,e,n){var r=t.length;return n=void 0===n?r:n,!e&&n>=r?t:Vr(t,e,n)}Rr.placeholder={};var $r=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function Fr(t){return $r.test(t)}var Gr="\\ud800-\\udfff",Ur="["+Gr+"]",qr="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Wr="\\ud83c[\\udffb-\\udfff]",Hr="[^"+Gr+"]",Jr="(?:\\ud83c[\\udde6-\\uddff]){2}",Xr="[\\ud800-\\udbff][\\udc00-\\udfff]",Yr="(?:"+qr+"|"+Wr+")"+"?",Zr="[\\ufe0e\\ufe0f]?",Kr=Zr+Yr+("(?:\\u200d(?:"+[Hr,Jr,Xr].join("|")+")"+Zr+Yr+")*"),Qr="(?:"+[Hr+qr+"?",qr,Jr,Xr,Ur].join("|")+")",ti=RegExp(Wr+"(?="+Wr+")|"+Qr+Kr,"g");function ei(t){return Fr(t)?function(t){return t.match(ti)||[]}(t):function(t){return t.split("")}(t)}function ni(t){return function(e){var n=Fr(e=lr(e))?ei(e):void 0,r=n?n[0]:e.charAt(0),i=n?zr(n,1).join(""):e.slice(1);return r[t]()+i}}var ri=ni("toUpperCase");function ii(t){return ri(lr(t).toLowerCase())}function si(t,e,n,r){var i=-1,s=null==t?0:t.length;for(r&&s&&(n=t[++i]);++i<s;)n=e(n,t[i],i,t);return n}function oi(t){return function(e){return null==t?void 0:t[e]}}var ai=oi({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),li=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ci=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");function hi(t){return(t=lr(t))&&t.replace(li,ai).replace(ci,"")}var ui=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var gi=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var di="\\ud800-\\udfff",fi="\\u2700-\\u27bf",pi="a-z\\xdf-\\xf6\\xf8-\\xff",mi="A-Z\\xc0-\\xd6\\xd8-\\xde",yi="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",vi="["+yi+"]",bi="\\d+",xi="["+fi+"]",wi="["+pi+"]",Ai="[^"+di+yi+bi+fi+pi+mi+"]",Ci="(?:\\ud83c[\\udde6-\\uddff]){2}",Pi="[\\ud800-\\udbff][\\udc00-\\udfff]",Mi="["+mi+"]",Ei="(?:"+wi+"|"+Ai+")",Si="(?:"+Mi+"|"+Ai+")",Oi="(?:['’](?:d|ll|m|re|s|t|ve))?",Ti="(?:['’](?:D|LL|M|RE|S|T|VE))?",ki="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",Ni="[\\ufe0e\\ufe0f]?",ji=Ni+ki+("(?:\\u200d(?:"+["[^"+di+"]",Ci,Pi].join("|")+")"+Ni+ki+")*"),_i="(?:"+[xi,Ci,Pi].join("|")+")"+ji,Li=RegExp([Mi+"?"+wi+"+"+Oi+"(?="+[vi,Mi,"$"].join("|")+")",Si+"+"+Ti+"(?="+[vi,Mi+Ei,"$"].join("|")+")",Mi+"?"+Ei+"+"+Oi,Mi+"+"+Ti,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",bi,_i].join("|"),"g");function Bi(t,e,n){return t=lr(t),void 0===(e=n?void 0:e)?function(t){return gi.test(t)}(t)?function(t){return t.match(Li)||[]}(t):function(t){return t.match(ui)||[]}(t):t.match(e)||[]}var Ii=RegExp("['’]","g");function Di(t){return function(e){return si(Bi(hi(e).replace(Ii,"")),t,"")}}var Ri=Di((function(t,e,n){return e=e.toLowerCase(),t+(n?ii(e):e)}));var Vi=a.isFinite,zi=Math.min;function $i(t){var e=Math[t];return function(t,n){if(t=$(t),(n=null==n?0:zi(q(n),292))&&Vi(t)){var r=(lr(t)+"e").split("e");return+((r=(lr(e(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return e(t)}}var Fi=$i("ceil");function Gi(t){var e=It(t);return e.__chain__=!0,e}var Ui=Math.ceil,qi=Math.max;function Wi(t,e,n){return t==t&&(void 0!==n&&(t=t<=n?t:n),void 0!==e&&(t=t>=e?t:e)),t}function Hi(t,e,n){return void 0===n&&(n=e,e=void 0),void 0!==n&&(n=(n=$(n))==n?n:0),void 0!==e&&(e=(e=$(e))==e?e:0),Wi($(t),e,n)}var Ji=200;function Xi(t){var e=this.__data__=new Kn(t);this.size=e.size}function Yi(t,e){return t&&Je(e,jn(e),t)}Xi.prototype.clear=function(){this.__data__=new Kn,this.size=0},Xi.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},Xi.prototype.get=function(t){return this.__data__.get(t)},Xi.prototype.has=function(t){return this.__data__.has(t)},Xi.prototype.set=function(t,e){var n=this.__data__;if(n instanceof Kn){var r=n.__data__;if(!Qn||r.length<Ji-1)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new er(r)}return n.set(t,e),this.size=n.size,this};var Zi="object"==typeof t&&t&&!t.nodeType&&t,Ki=Zi&&"object"==typeof module&&module&&!module.nodeType&&module,Qi=Ki&&Ki.exports===Zi?a.Buffer:void 0,ts=Qi?Qi.allocUnsafe:void 0;function es(t,e){if(e)return t.slice();var n=t.length,r=ts?ts(n):new t.constructor(n);return t.copy(r),r}function ns(t,e){for(var n=-1,r=null==t?0:t.length,i=0,s=[];++n<r;){var o=t[n];e(o,n,t)&&(s[i++]=o)}return s}function rs(){return[]}var is=Object.prototype.propertyIsEnumerable,ss=Object.getOwnPropertySymbols,os=ss?function(t){return null==t?[]:(t=Object(t),ns(ss(t),(function(e){return is.call(t,e)})))}:rs;var as=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)pr(e,os(t)),t=Ar(t);return e}:rs;function ls(t,e,n){var r=e(t);return P(t)?r:pr(r,n(t))}function cs(t){return ls(t,jn,os)}function hs(t){return ls(t,Dn,as)}var us=ut(a,"DataView"),gs=ut(a,"Promise"),ds=ut(a,"Set"),fs="[object Map]",ps="[object Promise]",ms="[object Set]",ys="[object WeakMap]",vs="[object DataView]",bs=rt(us),xs=rt(Qn),ws=rt(gs),As=rt(ds),Cs=rt(gt),Ps=y;(us&&Ps(new us(new ArrayBuffer(1)))!=vs||Qn&&Ps(new Qn)!=fs||gs&&Ps(gs.resolve())!=ps||ds&&Ps(new ds)!=ms||gt&&Ps(new gt)!=ys)&&(Ps=function(t){var e=y(t),n="[object Object]"==e?t.constructor:void 0,r=n?rt(n):"";if(r)switch(r){case bs:return vs;case xs:return fs;case ws:return ps;case As:return ms;case Cs:return ys}return e});var Ms=Ps,Es=Object.prototype.hasOwnProperty;var Ss=a.Uint8Array;function Os(t){var e=new t.constructor(t.byteLength);return new Ss(e).set(new Ss(t)),e}var Ts=/\w*$/;var ks=l?l.prototype:void 0,Ns=ks?ks.valueOf:void 0;function js(t,e){var n=e?Os(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}var _s="[object Boolean]",Ls="[object Date]",Bs="[object Map]",Is="[object Number]",Ds="[object RegExp]",Rs="[object Set]",Vs="[object String]",zs="[object Symbol]",$s="[object ArrayBuffer]",Fs="[object DataView]",Gs="[object Float32Array]",Us="[object Float64Array]",qs="[object Int8Array]",Ws="[object Int16Array]",Hs="[object Int32Array]",Js="[object Uint8Array]",Xs="[object Uint8ClampedArray]",Ys="[object Uint16Array]",Zs="[object Uint32Array]";function Ks(t,e,n){var r,i=t.constructor;switch(e){case $s:return Os(t);case _s:case Ls:return new i(+t);case Fs:return function(t,e){var n=e?Os(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case Gs:case Us:case qs:case Ws:case Hs:case Js:case Xs:case Ys:case Zs:return js(t,n);case Bs:return new i;case Is:case Vs:return new i(t);case Ds:return function(t){var e=new t.constructor(t.source,Ts.exec(t));return e.lastIndex=t.lastIndex,e}(t);case Rs:return new i;case zs:return r=t,Ns?Object(Ns.call(r)):{}}}function Qs(t){return"function"!=typeof t.constructor||sn(t)?{}:mt(Ar(t))}var to="[object Map]";var eo=Cn&&Cn.isMap,no=eo?bn(eo):function(t){return v(t)&&Ms(t)==to},ro="[object Set]";var io=Cn&&Cn.isSet,so=io?bn(io):function(t){return v(t)&&Ms(t)==ro},oo=1,ao=2,lo=4,co="[object Arguments]",ho="[object Function]",uo="[object GeneratorFunction]",go="[object Object]",fo={};function po(t,e,n,r,i,s){var o,a=e&oo,l=e&ao,c=e&lo;if(n&&(o=i?n(t,r,i,s):n(t)),void 0!==o)return o;if(!B(t))return t;var h=P(t);if(h){if(o=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&Es.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!a)return _t(t,o)}else{var u=Ms(t),g=u==ho||u==uo;if(yn(t))return es(t,a);if(u==go||u==co||g&&!i){if(o=l||g?{}:Qs(t),!a)return l?function(t,e){return Je(t,as(t),e)}(t,function(t,e){return t&&Je(e,Dn(e),t)}(o,t)):function(t,e){return Je(t,os(t),e)}(t,Yi(o,t))}else{if(!fo[u])return i?t:{};o=Ks(t,u,a)}}s||(s=new Xi);var d=s.get(t);if(d)return d;s.set(t,o),so(t)?t.forEach((function(r){o.add(po(r,e,n,r,t,s))})):no(t)&&t.forEach((function(r,i){o.set(i,po(r,e,n,i,t,s))}));var f=h?void 0:(c?l?hs:cs:l?Dn:jn)(t);return Yt(f||t,(function(r,i){f&&(r=t[i=r]),He(o,i,po(r,e,n,i,t,s))})),o}fo[co]=fo["[object Array]"]=fo["[object ArrayBuffer]"]=fo["[object DataView]"]=fo["[object Boolean]"]=fo["[object Date]"]=fo["[object Float32Array]"]=fo["[object Float64Array]"]=fo["[object Int8Array]"]=fo["[object Int16Array]"]=fo["[object Int32Array]"]=fo["[object Map]"]=fo["[object Number]"]=fo[go]=fo["[object RegExp]"]=fo["[object Set]"]=fo["[object String]"]=fo["[object Symbol]"]=fo["[object Uint8Array]"]=fo["[object Uint8ClampedArray]"]=fo["[object Uint16Array]"]=fo["[object Uint32Array]"]=!0,fo["[object Error]"]=fo[ho]=fo["[object WeakMap]"]=!1;var mo=4;function yo(t){return po(t,mo)}var vo=1,bo=4;function xo(t){return po(t,vo|bo)}var wo=1,Ao=4;var Co=4;var Po="__lodash_hash_undefined__";function Mo(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new er;++e<n;)this.add(t[e])}function Eo(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}function So(t,e){return t.has(e)}Mo.prototype.add=Mo.prototype.push=function(t){return this.__data__.set(t,Po),this},Mo.prototype.has=function(t){return this.__data__.has(t)};var Oo=1,To=2;function ko(t,e,n,r,i,s){var o=n&Oo,a=t.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(t),h=s.get(e);if(c&&h)return c==e&&h==t;var u=-1,g=!0,d=n&To?new Mo:void 0;for(s.set(t,e),s.set(e,t);++u<a;){var f=t[u],p=e[u];if(r)var m=o?r(p,f,u,e,t,s):r(f,p,u,t,e,s);if(void 0!==m){if(m)continue;g=!1;break}if(d){if(!Eo(e,(function(t,e){if(!So(d,e)&&(f===t||i(f,t,n,r,s)))return d.push(e)}))){g=!1;break}}else if(f!==p&&!i(f,p,n,r,s)){g=!1;break}}return s.delete(t),s.delete(e),g}function No(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}function jo(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}var _o=1,Lo=2,Bo="[object Boolean]",Io="[object Date]",Do="[object Error]",Ro="[object Map]",Vo="[object Number]",zo="[object RegExp]",$o="[object Set]",Fo="[object String]",Go="[object Symbol]",Uo="[object ArrayBuffer]",qo="[object DataView]",Wo=l?l.prototype:void 0,Ho=Wo?Wo.valueOf:void 0;var Jo=1,Xo=Object.prototype.hasOwnProperty;var Yo=1,Zo="[object Arguments]",Ko="[object Array]",Qo="[object Object]",ta=Object.prototype.hasOwnProperty;function ea(t,e,n,r,i,s){var o=P(t),a=P(e),l=o?Ko:Ms(t),c=a?Ko:Ms(e),h=(l=l==Zo?Qo:l)==Qo,u=(c=c==Zo?Qo:c)==Qo,g=l==c;if(g&&yn(t)){if(!yn(e))return!1;o=!0,h=!1}if(g&&!h)return s||(s=new Xi),o||Mn(t)?ko(t,e,n,r,i,s):function(t,e,n,r,i,s,o){switch(n){case qo:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case Uo:return!(t.byteLength!=e.byteLength||!s(new Ss(t),new Ss(e)));case Bo:case Io:case Vo:return qe(+t,+e);case Do:return t.name==e.name&&t.message==e.message;case zo:case Fo:return t==e+"";case Ro:var a=No;case $o:var l=r&_o;if(a||(a=jo),t.size!=e.size&&!l)return!1;var c=o.get(t);if(c)return c==e;r|=Lo,o.set(t,e);var h=ko(a(t),a(e),r,i,s,o);return o.delete(t),h;case Go:if(Ho)return Ho.call(t)==Ho.call(e)}return!1}(t,e,l,n,r,i,s);if(!(n&Yo)){var d=h&&ta.call(t,"__wrapped__"),f=u&&ta.call(e,"__wrapped__");if(d||f){var p=d?t.value():t,m=f?e.value():e;return s||(s=new Xi),i(p,m,n,r,s)}}return!!g&&(s||(s=new Xi),function(t,e,n,r,i,s){var o=n&Jo,a=cs(t),l=a.length;if(l!=cs(e).length&&!o)return!1;for(var c=l;c--;){var h=a[c];if(!(o?h in e:Xo.call(e,h)))return!1}var u=s.get(t),g=s.get(e);if(u&&g)return u==e&&g==t;var d=!0;s.set(t,e),s.set(e,t);for(var f=o;++c<l;){var p=t[h=a[c]],m=e[h];if(r)var y=o?r(m,p,h,e,t,s):r(p,m,h,t,e,s);if(!(void 0===y?p===m||i(p,m,n,r,s):y)){d=!1;break}f||(f="constructor"==h)}if(d&&!f){var v=t.constructor,b=e.constructor;v==b||!("constructor"in t)||!("constructor"in e)||"function"==typeof v&&v instanceof v&&"function"==typeof b&&b instanceof b||(d=!1)}return s.delete(t),s.delete(e),d}(t,e,n,r,i,s))}function na(t,e,n,r,i){return t===e||(null==t||null==e||!v(t)&&!v(e)?t!=t&&e!=e:ea(t,e,n,r,na,i))}var ra=1,ia=2;function sa(t,e,n,r){var i=n.length,s=i,o=!r;if(null==t)return!s;for(t=Object(t);i--;){var a=n[i];if(o&&a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++i<s;){var l=(a=n[i])[0],c=t[l],h=a[1];if(o&&a[2]){if(void 0===c&&!(l in t))return!1}else{var u=new Xi;if(r)var g=r(c,h,l,t,e,u);if(!(void 0===g?na(h,c,ra|ia,r,u):g))return!1}}return!0}function oa(t){return t==t&&!B(t)}function aa(t){for(var e=jn(t),n=e.length;n--;){var r=e[n],i=t[r];e[n]=[r,i,oa(i)]}return e}function la(t,e){return function(n){return null!=n&&(n[t]===e&&(void 0!==e||t in Object(n)))}}function ca(t){var e=aa(t);return 1==e.length&&e[0][2]?la(e[0][0],e[0][1]):function(n){return n===t||sa(n,t,e)}}function ha(t,e){return null!=t&&e in Object(t)}function ua(t,e,n){for(var r=-1,i=(e=cr(e,t)).length,s=!1;++r<i;){var o=ur(e[r]);if(!(s=null!=t&&n(t,o)))break;t=t[o]}return s||++r!=i?s:!!(i=null==t?0:t.length)&&Qe(i)&&de(o,i)&&(P(t)||gn(t))}function ga(t,e){return null!=t&&ua(t,e,ha)}var da=1,fa=2;function pa(t,e){return Gn(t)&&oa(e)?la(ur(t),e):function(n){var r=dr(n,t);return void 0===r&&r===e?ga(n,t):na(e,r,da|fa)}}function ma(t){return function(e){return null==e?void 0:e[t]}}function ya(t){return Gn(t)?ma(ur(t)):function(t){return function(e){return gr(e,t)}}(t)}function va(t){return"function"==typeof t?t:null==t?H:"object"==typeof t?P(t)?pa(t[0],t[1]):ca(t):ya(t)}var ba="Expected a function";function xa(t,e,n){var r=n.length;if(null==t)return!r;for(t=Object(t);r--;){var i=n[r],s=e[i],o=t[i];if(void 0===o&&!(i in t)||!s(o))return!1}return!0}var wa=1;function Aa(t,e,n,r){for(var i=-1,s=null==t?0:t.length;++i<s;){var o=t[i];e(r,o,n(o),t)}return r}function Ca(t){return function(e,n,r){for(var i=-1,s=Object(e),o=r(e),a=o.length;a--;){var l=o[t?a:++i];if(!1===n(s[l],l,s))break}return e}}var Pa=Ca();function Ma(t,e){return t&&Pa(t,e,jn)}function Ea(t,e){return function(n,r){if(null==n)return n;if(!tn(n))return t(n,r);for(var i=n.length,s=e?i:-1,o=Object(n);(e?s--:++s<i)&&!1!==r(o[s],s,o););return n}}var Sa=Ea(Ma);function Oa(t,e,n,r){return Sa(t,(function(t,i,s){e(r,t,n(t),s)})),r}function Ta(t,e){return function(n,r){var i=P(n)?Aa:Oa,s=e?e():{};return i(n,t,va(r),s)}}var ka=Object.prototype.hasOwnProperty,Na=Ta((function(t,e,n){ka.call(t,n)?++t[n]:Ue(t,n,1)}));var ja=8;function _a(t,e,n){var r=$e(t,ja,void 0,void 0,void 0,void 0,void 0,e=n?void 0:e);return r.placeholder=_a.placeholder,r}_a.placeholder={};var La=16;function Ba(t,e,n){var r=$e(t,La,void 0,void 0,void 0,void 0,void 0,e=n?void 0:e);return r.placeholder=Ba.placeholder,r}Ba.placeholder={};var Ia=function(){return a.Date.now()},Da="Expected a function",Ra=Math.max,Va=Math.min;function za(t,e,n){var r,i,s,o,a,l,c=0,h=!1,u=!1,g=!0;if("function"!=typeof t)throw new TypeError(Da);function d(e){var n=r,s=i;return r=i=void 0,c=e,o=t.apply(s,n)}function f(t){var n=t-l;return void 0===l||n>=e||n<0||u&&t-c>=s}function p(){var t=Ia();if(f(t))return m(t);a=setTimeout(p,function(t){var n=e-(t-l);return u?Va(n,s-(t-c)):n}(t))}function m(t){return a=void 0,g&&r?d(t):(r=i=void 0,o)}function y(){var t=Ia(),n=f(t);if(r=arguments,i=this,l=t,n){if(void 0===a)return function(t){return c=t,a=setTimeout(p,e),h?d(t):o}(l);if(u)return clearTimeout(a),a=setTimeout(p,e),d(l)}return void 0===a&&(a=setTimeout(p,e)),o}return e=$(e)||0,B(n)&&(h=!!n.leading,s=(u="maxWait"in n)?Ra($(n.maxWait)||0,e):s,g="trailing"in n?!!n.trailing:g),y.cancel=function(){void 0!==a&&clearTimeout(a),c=0,r=l=i=a=void 0},y.flush=function(){return void 0===a?o:m(Ia())},y}var $a=Object.prototype,Fa=$a.hasOwnProperty,Ga=Ze((function(t,e){t=Object(t);var n=-1,r=e.length,i=r>2?e[2]:void 0;for(i&&en(e[0],e[1],i)&&(r=1);++n<r;)for(var s=e[n],o=Dn(s),a=-1,l=o.length;++a<l;){var c=o[a],h=t[c];(void 0===h||qe(h,$a[c])&&!Fa.call(t,c))&&(t[c]=s[c])}return t}));function Ua(t,e,n){(void 0!==n&&!qe(t[e],n)||void 0===n&&!(e in t))&&Ue(t,e,n)}function qa(t){return v(t)&&tn(t)}function Wa(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}function Ha(t){return Je(t,Dn(t))}function Ja(t,e,n,r,i){t!==e&&Pa(e,(function(s,o){if(i||(i=new Xi),B(s))!function(t,e,n,r,i,s,o){var a=Wa(t,n),l=Wa(e,n),c=o.get(l);if(c)Ua(t,n,c);else{var h=s?s(a,l,n+"",t,e,o):void 0,u=void 0===h;if(u){var g=P(l),d=!g&&yn(l),f=!g&&!d&&Mn(l);h=l,g||d||f?P(a)?h=a:qa(a)?h=_t(a):d?(u=!1,h=es(l,!0)):f?(u=!1,h=js(l,!0)):h=[]:Tr(l)||gn(l)?(h=a,gn(a)?h=Ha(a):B(a)&&!K(a)||(h=Qs(l))):u=!1}u&&(o.set(l,h),i(h,l,r,s,o),o.delete(l)),Ua(t,n,h)}}(t,e,o,n,Ja,r,i);else{var a=r?r(Wa(t,o),s,o+"",t,e,i):void 0;void 0===a&&(a=s),Ua(t,o,a)}}),Dn)}function Xa(t,e,n,r,i,s){return B(t)&&B(e)&&(s.set(e,t),Ja(t,e,void 0,Xa,s),s.delete(e)),t}var Ya=nn((function(t,e,n,r){Ja(t,e,n,r)})),Za=Ze((function(t){return t.push(void 0,Xa),bt(Ya,void 0,t)})),Ka="Expected a function";function Qa(t,e,n){if("function"!=typeof t)throw new TypeError(Ka);return setTimeout((function(){t.apply(void 0,n)}),e)}var tl=Ze((function(t,e){return Qa(t,1,e)})),el=Ze((function(t,e,n){return Qa(t,$(e)||0,n)}));function nl(t,e,n){for(var r=-1,i=null==t?0:t.length;++r<i;)if(n(e,t[r]))return!0;return!1}var rl=200;function il(t,e,n,r){var i=-1,s=te,o=!0,a=t.length,l=[],c=e.length;if(!a)return l;n&&(e=C(e,bn(n))),r?(s=nl,o=!1):e.length>=rl&&(s=So,o=!1,e=new Mo(e));t:for(;++i<a;){var h=t[i],u=null==n?h:n(h);if(h=r||0!==h?h:0,o&&u==u){for(var g=c;g--;)if(e[g]===u)continue t;l.push(h)}else s(e,u,r)||l.push(h)}return l}var sl=Ze((function(t,e){return qa(t)?il(t,vr(e,1,qa,!0)):[]}));function ol(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}var al=Ze((function(t,e){var n=ol(e);return qa(n)&&(n=void 0),qa(t)?il(t,vr(e,1,qa,!0),va(n)):[]})),ll=Ze((function(t,e){var n=ol(e);return qa(n)&&(n=void 0),qa(t)?il(t,vr(e,1,qa,!0),void 0,n):[]})),cl=T((function(t,e){return t/e}),1);function hl(t,e,n,r){for(var i=t.length,s=r?i:-1;(r?s--:++s<i)&&e(t[s],s,t););return n?Vr(t,r?0:s,r?s+1:i):Vr(t,r?s+1:0,r?i:s)}function ul(t){return"function"==typeof t?t:H}function gl(t,e){return(P(t)?Yt:Sa)(t,ul(e))}function dl(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}var fl=Ca(!0);function pl(t,e){return t&&fl(t,e,jn)}var ml=Ea(pl,!0);function yl(t,e){return(P(t)?dl:ml)(t,ul(e))}var vl="[object Map]",bl="[object Set]";function xl(t){return function(e){var n=Ms(e);return n==vl?No(e):n==bl?function(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=[t,t]})),n}(e):function(t,e){return C(e,(function(e){return[e,t[e]]}))}(e,t(e))}}var wl=xl(jn),Al=xl(Dn),Cl=oi({"&":"&","<":"<",">":">",'"':""","'":"'"}),Pl=/[&<>"']/g,Ml=RegExp(Pl.source);function El(t){return(t=lr(t))&&Ml.test(t)?t.replace(Pl,Cl):t}var Sl=/[\\^$.*+?()[\]{}|]/g,Ol=RegExp(Sl.source);function Tl(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function kl(t,e){var n=!0;return Sa(t,(function(t,r,i){return n=!!e(t,r,i)})),n}var Nl=4294967295;function jl(t){return t?Wi(q(t),0,Nl):0}function _l(t,e){var n=[];return Sa(t,(function(t,r,i){e(t,r,i)&&n.push(t)})),n}function Ll(t){return function(e,n,r){var i=Object(e);if(!tn(e)){var s=va(n);e=jn(e),n=function(t){return s(i[t],t,i)}}var o=t(e,n,r);return o>-1?i[s?e[o]:o]:void 0}}var Bl=Math.max;function Il(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:q(n);return i<0&&(i=Bl(r+i,0)),Zt(t,va(e),i)}var Dl=Ll(Il);function Rl(t,e,n){var r;return n(t,(function(t,n,i){if(e(t,n,i))return r=n,!1})),r}var Vl=Math.max,zl=Math.min;function $l(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=r-1;return void 0!==n&&(i=q(n),i=n<0?Vl(r+i,0):zl(i,r-1)),Zt(t,va(e),i,!0)}var Fl=Ll($l);function Gl(t){return t&&t.length?t[0]:void 0}function Ul(t,e){var n=-1,r=tn(t)?Array(t.length):[];return Sa(t,(function(t,i,s){r[++n]=e(t,i,s)})),r}function ql(t,e){return(P(t)?C:Ul)(t,va(e))}var Wl=1/0;var Hl=1/0;var Jl=512;var Xl=$i("floor"),Yl="Expected a function",Zl=8,Kl=32,Ql=128,tc=256;function ec(t){return xr((function(e){var n=e.length,r=n,i=jt.prototype.thru;for(t&&e.reverse();r--;){var s=e[r];if("function"!=typeof s)throw new TypeError(Yl);if(i&&!o&&"wrapper"==Nt(s))var o=new jt([],!0)}for(r=o?r:n;++r<n;){var a=Nt(s=e[r]),l="wrapper"==a?Ot(s):void 0;o=l&&Dt(l[0])&&l[1]==(Ql|Zl|Kl|tc)&&!l[4].length&&1==l[9]?o[Nt(l[0])].apply(o,l[3]):1==s.length&&Dt(s)?o[a]():o.thru(s)}return function(){var t=arguments,r=t[0];if(o&&1==t.length&&P(r))return o.plant(r).value();for(var i=0,s=n?e[i].apply(this,t):r;++i<n;)s=e[i].call(this,s);return s}}))}var nc=ec(),rc=ec(!0);function ic(t,e){return ns(e,(function(e){return K(t[e])}))}var sc=Object.prototype.hasOwnProperty,oc=Ta((function(t,e,n){sc.call(t,n)?t[n].push(e):Ue(t,n,[e])}));function ac(t,e){return t>e}function lc(t){return function(e,n){return"string"==typeof e&&"string"==typeof n||(e=$(e),n=$(n)),t(e,n)}}var cc=lc(ac),hc=lc((function(t,e){return t>=e})),uc=Object.prototype.hasOwnProperty;function gc(t,e){return null!=t&&uc.call(t,e)}function dc(t,e){return null!=t&&ua(t,e,gc)}var fc=Math.max,pc=Math.min;var mc="[object String]";function yc(t){return"string"==typeof t||!P(t)&&v(t)&&y(t)==mc}function vc(t,e){return C(e,(function(e){return t[e]}))}function bc(t){return null==t?[]:vc(t,jn(t))}var xc=Math.max;var wc=Math.max;var Ac=Math.min;function Cc(t,e,n){for(var r=n?nl:te,i=t[0].length,s=t.length,o=s,a=Array(s),l=1/0,c=[];o--;){var h=t[o];o&&e&&(h=C(h,bn(e))),l=Ac(h.length,l),a[o]=!n&&(e||i>=120&&h.length>=120)?new Mo(o&&h):void 0}h=t[0];var u=-1,g=a[0];t:for(;++u<i&&c.length<l;){var d=h[u],f=e?e(d):d;if(d=n||0!==d?d:0,!(g?So(g,f):r(c,f,n))){for(o=s;--o;){var p=a[o];if(!(p?So(p,f):r(t[o],f,n)))continue t}g&&g.push(f),c.push(d)}}return c}function Pc(t){return qa(t)?t:[]}var Mc=Ze((function(t){var e=C(t,Pc);return e.length&&e[0]===t[0]?Cc(e):[]})),Ec=Ze((function(t){var e=ol(t),n=C(t,Pc);return e===ol(n)?e=void 0:n.pop(),n.length&&n[0]===t[0]?Cc(n,va(e)):[]})),Sc=Ze((function(t){var e=ol(t),n=C(t,Pc);return(e="function"==typeof e?e:void 0)&&n.pop(),n.length&&n[0]===t[0]?Cc(n,void 0,e):[]}));function Oc(t,e){return function(n,r){return function(t,e,n,r){return Ma(t,(function(t,i,s){e(r,n(t),i,s)})),r}(n,t,e(r),{})}}var Tc=Object.prototype.toString,kc=Oc((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Tc.call(e)),t[e]=n}),Wt(H)),Nc=Object.prototype,jc=Nc.hasOwnProperty,_c=Nc.toString,Lc=Oc((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=_c.call(e)),jc.call(t,e)?t[e].push(n):t[e]=[n]}),va);function Bc(t,e){return e.length<2?t:gr(t,Vr(e,0,-1))}function Ic(t,e,n){var r=null==(t=Bc(t,e=cr(e,t)))?t:t[ur(ol(e))];return null==r?void 0:bt(r,t,n)}var Dc=Ze(Ic),Rc=Ze((function(t,e,n){var r=-1,i="function"==typeof e,s=tn(t)?Array(t.length):[];return Sa(t,(function(t){s[++r]=i?bt(e,t,n):Ic(t,e,n)})),s})),Vc="[object ArrayBuffer]";var zc=Cn&&Cn.isArrayBuffer,$c=zc?bn(zc):function(t){return v(t)&&y(t)==Vc},Fc="[object Boolean]";var Gc="[object Date]";var Uc=Cn&&Cn.isDate,qc=Uc?bn(Uc):function(t){return v(t)&&y(t)==Gc};var Wc="[object Map]",Hc="[object Set]",Jc=Object.prototype.hasOwnProperty;function Xc(t){if(null==t)return!0;if(tn(t)&&(P(t)||"string"==typeof t||"function"==typeof t.splice||yn(t)||Mn(t)||gn(t)))return!t.length;var e=Ms(t);if(e==Wc||e==Hc)return!t.size;if(sn(t))return!Nn(t).length;for(var n in t)if(Jc.call(t,n))return!1;return!0}function Yc(t,e){return na(t,e)}var Zc=a.isFinite;function Kc(t){return"number"==typeof t&&t==q(t)}var Qc="[object Number]";function th(t){return"number"==typeof t||v(t)&&y(t)==Qc}var eh=tt?K:dn,nh="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.";var rh="[object RegExp]";var ih=Cn&&Cn.isRegExp,sh=ih?bn(ih):function(t){return v(t)&&y(t)==rh},oh=9007199254740991;var ah="[object WeakMap]";var lh="[object WeakSet]";var ch=1;var hh=Array.prototype.join;var uh=Di((function(t,e,n){return t+(n?"-":"")+e.toLowerCase()})),gh=Ta((function(t,e,n){Ue(t,n,e)}));var dh=Math.max,fh=Math.min;var ph=Di((function(t,e,n){return t+(n?" ":"")+e.toLowerCase()})),mh=ni("toLowerCase");function yh(t,e){return t<e}var vh=lc(yh),bh=lc((function(t,e){return t<=e}));var xh=1;var wh=1;function Ah(t,e,n){for(var r=-1,i=t.length;++r<i;){var s=t[r],o=e(s);if(null!=o&&(void 0===a?o==o&&!x(o):n(o,a)))var a=o,l=s}return l}function Ch(t){return t&&t.length?Ah(t,H,ac):void 0}function Ph(t,e){for(var n,r=-1,i=t.length;++r<i;){var s=e(t[r]);void 0!==s&&(n=void 0===n?s:n+s)}return n}var Mh=NaN;function Eh(t,e){var n=null==t?0:t.length;return n?Ph(t,e)/n:Mh}var Sh=nn((function(t,e,n){Ja(t,e,n)})),Oh=Ze((function(t,e){return function(n){return Ic(n,t,e)}})),Th=Ze((function(t,e){return function(n){return Ic(t,n,e)}}));function kh(t,e,n){var r=jn(e),i=ic(e,r),s=!(B(n)&&"chain"in n&&!n.chain),o=K(t);return Yt(i,(function(n){var r=e[n];t[n]=r,o&&(t.prototype[n]=function(){var e=this.__chain__;if(s||e){var n=t(this.__wrapped__);return(n.__actions__=_t(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,pr([this.value()],arguments))})})),t}var Nh=T((function(t,e){return t*e}),1),jh="Expected a function";function _h(t){if("function"!=typeof t)throw new TypeError(jh);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}var Lh="[object Map]",Bh="[object Set]",Ih=l?l.iterator:void 0;function Dh(t){if(!t)return[];if(tn(t))return yc(t)?ei(t):_t(t);if(Ih&&t[Ih])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[Ih]());var e=Ms(t);return(e==Lh?No:e==Bh?jo:bc)(t)}function Rh(t,e){var n=t.length;if(n)return de(e+=e<0?n:0,n)?t[e]:void 0}function Vh(t,e){return null==(t=Bc(t,e=cr(e,t)))||delete t[ur(ol(e))]}function zh(t){return Tr(t)?void 0:t}var $h=xr((function(t,e){var n={};if(null==t)return n;var r=!1;e=C(e,(function(e){return e=cr(e,t),r||(r=e.length>1),e})),Je(t,hs(t),n),r&&(n=po(n,7,zh));for(var i=e.length;i--;)Vh(n,e[i]);return n}));function Fh(t,e,n,r){if(!B(t))return t;for(var i=-1,s=(e=cr(e,t)).length,o=s-1,a=t;null!=a&&++i<s;){var l=ur(e[i]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return t;if(i!=o){var h=a[l];void 0===(c=r?r(h,l,a):void 0)&&(c=B(h)?h:de(e[i+1])?[]:{})}He(a,l,c),a=a[l]}return t}function Gh(t,e,n){for(var r=-1,i=e.length,s={};++r<i;){var o=e[r],a=gr(t,o);n(a,o)&&Fh(s,cr(o,t),a)}return s}function Uh(t,e){if(null==t)return{};var n=C(hs(t),(function(t){return[t]}));return e=va(e),Gh(t,n,(function(t,n){return e(t,n[0])}))}function qh(t,e){if(t!==e){var n=void 0!==t,r=null===t,i=t==t,s=x(t),o=void 0!==e,a=null===e,l=e==e,c=x(e);if(!a&&!c&&!s&&t>e||s&&o&&l&&!a&&!c||r&&o&&l||!n&&l||!i)return 1;if(!r&&!s&&!c&&t<e||c&&n&&i&&!r&&!s||a&&n&&i||!o&&i||!l)return-1}return 0}function Wh(t,e,n){e=e.length?C(e,(function(t){return P(t)?function(e){return gr(e,1===t.length?t[0]:t)}:t})):[H];var r=-1;e=C(e,bn(va));var i=Ul(t,(function(t,n,i){var s=C(e,(function(e){return e(t)}));return{criteria:s,index:++r,value:t}}));return function(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}(i,(function(t,e){return function(t,e,n){for(var r=-1,i=t.criteria,s=e.criteria,o=i.length,a=n.length;++r<o;){var l=qh(i[r],s[r]);if(l)return r>=a?l:l*("desc"==n[r]?-1:1)}return t.index-e.index}(t,e,n)}))}function Hh(t){return xr((function(e){return e=C(e,bn(va)),Ze((function(n){var r=this;return t(e,(function(t){return bt(t,r,n)}))}))}))}var Jh=Hh(C),Xh=Ze,Yh=Math.min,Zh=Xh((function(t,e){var n=(e=1==e.length&&P(e[0])?C(e[0],bn(va)):C(vr(e,1),bn(va))).length;return Ze((function(r){for(var i=-1,s=Yh(r.length,n);++i<s;)r[i]=e[i].call(this,r[i]);return bt(t,this,r)}))})),Kh=Hh(Tl),Qh=Hh(Eo),tu=9007199254740991,eu=Math.floor;function nu(t,e){var n="";if(!t||e<1||e>tu)return n;do{e%2&&(n+=t),(e=eu(e/2))&&(t+=t)}while(e);return n}var ru=ma("length"),iu="\\ud800-\\udfff",su="["+iu+"]",ou="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",au="\\ud83c[\\udffb-\\udfff]",lu="[^"+iu+"]",cu="(?:\\ud83c[\\udde6-\\uddff]){2}",hu="[\\ud800-\\udbff][\\udc00-\\udfff]",uu="(?:"+ou+"|"+au+")"+"?",gu="[\\ufe0e\\ufe0f]?",du=gu+uu+("(?:\\u200d(?:"+[lu,cu,hu].join("|")+")"+gu+uu+")*"),fu="(?:"+[lu+ou+"?",ou,cu,hu,su].join("|")+")",pu=RegExp(au+"(?="+au+")|"+fu+du,"g");function mu(t){return Fr(t)?function(t){for(var e=pu.lastIndex=0;pu.test(t);)++e;return e}(t):ru(t)}var yu=Math.ceil;function vu(t,e){var n=(e=void 0===e?" ":O(e)).length;if(n<2)return n?nu(e,t):e;var r=nu(e,yu(t/mu(e)));return Fr(e)?zr(ei(r),0,t).join(""):r.slice(0,t)}var bu=Math.ceil,xu=Math.floor;var wu=/^\s+/,Au=a.parseInt;var Cu=Ze((function(t,e){return $e(t,32,void 0,e,me(e,he(Cu)))}));Cu.placeholder={};var Pu=Ze((function(t,e){return $e(t,64,void 0,e,me(e,he(Pu)))}));Pu.placeholder={};var Mu=Ta((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]}));var Eu=xr((function(t,e){return null==t?{}:function(t,e){return Gh(t,e,(function(e,n){return ga(t,n)}))}(t,e)}));function Su(t,e,n,r){for(var i=n-1,s=t.length;++i<s;)if(r(t[i],e))return i;return-1}var Ou=Array.prototype.splice;function Tu(t,e,n,r){var i=r?Su:Qt,s=-1,o=e.length,a=t;for(t===e&&(e=_t(e)),n&&(a=C(t,bn(n)));++s<o;)for(var l=0,c=e[s],h=n?n(c):c;(l=i(a,h,l,r))>-1;)a!==t&&Ou.call(a,l,1),Ou.call(t,l,1);return t}function ku(t,e){return t&&t.length&&e&&e.length?Tu(t,e):t}var Nu=Ze(ku);var ju=Array.prototype.splice;function _u(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==s){var s=i;de(i)?ju.call(t,i,1):Vh(t,i)}}return t}var Lu=xr((function(t,e){var n=null==t?0:t.length,r=fr(t,e);return _u(t,C(e,(function(t){return de(t,n)?+t:t})).sort(qh)),r})),Bu=Math.floor,Iu=Math.random;function Du(t,e){return t+Bu(Iu()*(e-t+1))}var Ru=parseFloat,Vu=Math.min,zu=Math.random;var $u=Math.ceil,Fu=Math.max;function Gu(t){return function(e,n,r){return r&&"number"!=typeof r&&en(e,n,r)&&(n=r=void 0),e=U(e),void 0===n?(n=e,e=0):n=U(n),function(t,e,n,r){for(var i=-1,s=Fu($u((e-t)/(n||1)),0),o=Array(s);s--;)o[r?s:++i]=t,t+=n;return o}(e,n,r=void 0===r?e<n?1:-1:U(r),t)}}var Uu=Gu(),qu=Gu(!0),Wu=xr((function(t,e){return $e(t,256,void 0,void 0,void 0,e)}));function Hu(t,e,n,r,i){return i(t,(function(t,i,s){n=r?(r=!1,t):e(n,t,i,s)})),n}function Ju(t,e,n,r){var i=null==t?0:t.length;for(r&&i&&(n=t[--i]);i--;)n=e(n,t[i],i,t);return n}var Xu="Expected a function";var Yu=Array.prototype.reverse;function Zu(t){return null==t?t:Yu.call(t)}var Ku=$i("round");function Qu(t){var e=t.length;return e?t[Du(0,e-1)]:void 0}function tg(t){return Qu(bc(t))}function eg(t,e){var n=-1,r=t.length,i=r-1;for(e=void 0===e?r:e;++n<e;){var s=Du(n,i),o=t[s];t[s]=t[n],t[n]=o}return t.length=e,t}function ng(t,e){return eg(_t(t),Wi(e,0,t.length))}function rg(t,e){var n=bc(t);return eg(n,Wi(e,0,n.length))}function ig(t){return eg(_t(t))}function sg(t){return eg(bc(t))}var og="[object Map]",ag="[object Set]";var lg=Di((function(t,e,n){return t+(n?"_":"")+e.toLowerCase()}));function cg(t,e){var n;return Sa(t,(function(t,r,i){return!(n=e(t,r,i))})),!!n}var hg=Ze((function(t,e){if(null==t)return[];var n=e.length;return n>1&&en(t,e[0],e[1])?e=[]:n>2&&en(e[0],e[1],e[2])&&(e=[e[0]]),Wh(t,vr(e,1),[])})),ug=4294967294,gg=Math.floor,dg=Math.min;function fg(t,e,n,r){var i=0,s=null==t?0:t.length;if(0===s)return 0;for(var o=(e=n(e))!=e,a=null===e,l=x(e),c=void 0===e;i<s;){var h=gg((i+s)/2),u=n(t[h]),g=void 0!==u,d=null===u,f=u==u,p=x(u);if(o)var m=r||f;else m=c?f&&(r||g):a?f&&g&&(r||!d):l?f&&g&&!d&&(r||!p):!d&&!p&&(r?u<=e:u<e);m?i=h+1:s=h}return dg(s,ug)}var pg=2147483647;function mg(t,e,n){var r=0,i=null==t?r:t.length;if("number"==typeof e&&e==e&&i<=pg){for(;r<i;){var s=r+i>>>1,o=t[s];null!==o&&!x(o)&&(n?o<=e:o<e)?r=s+1:i=s}return i}return fg(t,e,H,n)}function yg(t,e){return mg(t,e)}function vg(t,e,n){return fg(t,e,va(n))}function bg(t,e){for(var n=-1,r=t.length,i=0,s=[];++n<r;){var o=t[n],a=e?e(o):o;if(!n||!qe(a,l)){var l=a;s[i++]=0===o?0:o}}return s}var xg=4294967295;var wg="Expected a function",Ag=Math.max;var Cg=Di((function(t,e,n){return t+(n?" ":"")+ri(e)}));var Pg=T((function(t,e){return t-e}),0);var Mg=Object.prototype,Eg=Mg.hasOwnProperty;function Sg(t,e,n,r){return void 0===t||qe(t,Mg[n])&&!Eg.call(r,n)?e:t}var Og={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};function Tg(t){return"\\"+Og[t]}var kg=/<%=([\s\S]+?)%>/g,Ng={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:kg,variable:"",imports:{_:{escape:El}}},jg="Invalid `variable` option passed into `_.template`",_g=/\b__p \+= '';/g,Lg=/\b(__p \+=) '' \+/g,Bg=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ig=/[()=,{}\[\]\/\s]/,Dg=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Rg=/($^)/,Vg=/['\n\r\u2028\u2029\\]/g,zg=Object.prototype.hasOwnProperty;var $g="Expected a function";function Fg(t,e,n){var r=!0,i=!0;if("function"!=typeof t)throw new TypeError($g);return B(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),za(t,e,{leading:r,maxWait:e,trailing:i})}function Gg(t,e){return e(t)}var Ug=9007199254740991,qg=4294967295,Wg=Math.min;function Hg(t,e){var n=t;return n instanceof Et&&(n=n.value()),si(e,(function(t,e){return e.func.apply(e.thisArg,pr([t],e.args))}),n)}function Jg(){return Hg(this.__wrapped__,this.__actions__)}var Xg=9007199254740991;function Yg(t,e){for(var n=t.length;n--&&Qt(e,t[n],0)>-1;);return n}function Zg(t,e){for(var n=-1,r=t.length;++n<r&&Qt(e,t[n],0)>-1;);return n}var Kg=/^\s+/;var Qg=30,td="...",ed=/\w*$/;var nd=oi({"&":"&","<":"<",">":">",""":'"',"'":"'"}),rd=/&(?:amp|lt|gt|quot|#39);/g,id=RegExp(rd.source);var sd=ds&&1/jo(new ds([,-0]))[1]==1/0?function(t){return new ds(t)}:St,od=200;function ad(t,e,n){var r=-1,i=te,s=t.length,o=!0,a=[],l=a;if(n)o=!1,i=nl;else if(s>=od){var c=e?null:sd(t);if(c)return jo(c);o=!1,i=So,l=new Mo}else l=e?[]:a;t:for(;++r<s;){var h=t[r],u=e?e(h):h;if(h=n||0!==h?h:0,o&&u==u){for(var g=l.length;g--;)if(l[g]===u)continue t;e&&l.push(u),a.push(h)}else i(l,u,n)||(l!==a&&l.push(u),a.push(h))}return a}var ld=Ze((function(t){return ad(vr(t,1,qa,!0))})),cd=Ze((function(t){var e=ol(t);return qa(e)&&(e=void 0),ad(vr(t,1,qa,!0),va(e))})),hd=Ze((function(t){var e=ol(t);return e="function"==typeof e?e:void 0,ad(vr(t,1,qa,!0),void 0,e)}));function ud(t){return t&&t.length?ad(t):[]}var gd=0;function dd(t){var e=++gd;return lr(t)+e}var fd=Math.max;function pd(t){if(!t||!t.length)return[];var e=0;return t=ns(t,(function(t){if(qa(t))return e=fd(t.length,e),!0})),on(e,(function(e){return C(t,ma(e))}))}function md(t,e){if(!t||!t.length)return[];var n=pd(t);return null==e?n:C(n,(function(t){return bt(e,void 0,t)}))}function yd(t,e,n,r){return Fh(t,e,n(gr(t,e)),r)}var vd=Di((function(t,e,n){return t+(n?" ":"")+e.toUpperCase()}));var bd=Ze((function(t,e){return qa(t)?il(t,e):[]}));var xd=xr((function(t){var e=t.length,n=e?t[0]:0,r=this.__wrapped__,i=function(e){return fr(e,t)};return!(e>1||this.__actions__.length)&&r instanceof Et&&de(n)?((r=r.slice(n,+n+(e?1:0))).__actions__.push({func:Gg,args:[i],thisArg:void 0}),new jt(r,this.__chain__).thru((function(t){return e&&!t.length&&t.push(void 0),t}))):this.thru(i)}));function wd(t,e,n){var r=t.length;if(r<2)return r?ad(t[0]):[];for(var i=-1,s=Array(r);++i<r;)for(var o=t[i],a=-1;++a<r;)a!=i&&(s[i]=il(s[i]||o,t[a],e,n));return ad(vr(s,1),e,n)}var Ad=Ze((function(t){return wd(ns(t,qa))})),Cd=Ze((function(t){var e=ol(t);return qa(e)&&(e=void 0),wd(ns(t,qa),va(e))})),Pd=Ze((function(t){var e=ol(t);return e="function"==typeof e?e:void 0,wd(ns(t,qa),void 0,e)})),Md=Ze(pd);function Ed(t,e,n){for(var r=-1,i=t.length,s=e.length,o={};++r<i;){var a=r<s?e[r]:void 0;n(o,t[r],a)}return o}var Sd=Ze((function(t){var e=t.length,n=e>1?t[e-1]:void 0;return n="function"==typeof n?(t.pop(),n):void 0,md(t,n)})),Od={chunk:function(t,e,n){e=(n?en(t,e,n):void 0===e)?1:qi(q(e),0);var r=null==t?0:t.length;if(!r||e<1)return[];for(var i=0,s=0,o=Array(Ui(r/e));i<r;)o[s++]=Vr(t,i,i+=e);return o},compact:function(t){for(var e=-1,n=null==t?0:t.length,r=0,i=[];++e<n;){var s=t[e];s&&(i[r++]=s)}return i},concat:function(){var t=arguments.length;if(!t)return[];for(var e=Array(t-1),n=arguments[0],r=t;r--;)e[r-1]=arguments[r];return pr(P(n)?_t(n):[n],vr(e,1))},difference:sl,differenceBy:al,differenceWith:ll,drop:function(t,e,n){var r=null==t?0:t.length;return r?Vr(t,(e=n||void 0===e?1:q(e))<0?0:e,r):[]},dropRight:function(t,e,n){var r=null==t?0:t.length;return r?Vr(t,0,(e=r-(e=n||void 0===e?1:q(e)))<0?0:e):[]},dropRightWhile:function(t,e){return t&&t.length?hl(t,va(e),!0,!0):[]},dropWhile:function(t,e){return t&&t.length?hl(t,va(e),!0):[]},fill:function(t,e,n,r){var i=null==t?0:t.length;return i?(n&&"number"!=typeof n&&en(t,e,n)&&(n=0,r=i),function(t,e,n,r){var i=t.length;for((n=q(n))<0&&(n=-n>i?0:i+n),(r=void 0===r||r>i?i:q(r))<0&&(r+=i),r=n>r?0:jl(r);n<r;)t[n++]=e;return t}(t,e,n,r)):[]},findIndex:Il,findLastIndex:$l,first:Gl,flatten:br,flattenDeep:function(t){return(null==t?0:t.length)?vr(t,Hl):[]},flattenDepth:function(t,e){return(null==t?0:t.length)?vr(t,e=void 0===e?1:q(e)):[]},fromPairs:function(t){for(var e=-1,n=null==t?0:t.length,r={};++e<n;){var i=t[e];r[i[0]]=i[1]}return r},head:Gl,indexOf:function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:q(n);return i<0&&(i=wc(r+i,0)),Qt(t,e,i)},initial:function(t){return(null==t?0:t.length)?Vr(t,0,-1):[]},intersection:Mc,intersectionBy:Ec,intersectionWith:Sc,join:function(t,e){return null==t?"":hh.call(t,e)},last:ol,lastIndexOf:function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=r;return void 0!==n&&(i=(i=q(n))<0?dh(r+i,0):fh(i,r-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,i):Zt(t,Kt,i,!0)},nth:function(t,e){return t&&t.length?Rh(t,q(e)):void 0},pull:Nu,pullAll:ku,pullAllBy:function(t,e,n){return t&&t.length&&e&&e.length?Tu(t,e,va(n)):t},pullAllWith:function(t,e,n){return t&&t.length&&e&&e.length?Tu(t,e,void 0,n):t},pullAt:Lu,remove:function(t,e){var n=[];if(!t||!t.length)return n;var r=-1,i=[],s=t.length;for(e=va(e);++r<s;){var o=t[r];e(o,r,t)&&(n.push(o),i.push(r))}return _u(t,i),n},reverse:Zu,slice:function(t,e,n){var r=null==t?0:t.length;return r?(n&&"number"!=typeof n&&en(t,e,n)?(e=0,n=r):(e=null==e?0:q(e),n=void 0===n?r:q(n)),Vr(t,e,n)):[]},sortedIndex:yg,sortedIndexBy:vg,sortedIndexOf:function(t,e){var n=null==t?0:t.length;if(n){var r=mg(t,e);if(r<n&&qe(t[r],e))return r}return-1},sortedLastIndex:function(t,e){return mg(t,e,!0)},sortedLastIndexBy:function(t,e,n){return fg(t,e,va(n),!0)},sortedLastIndexOf:function(t,e){if(null==t?0:t.length){var n=mg(t,e,!0)-1;if(qe(t[n],e))return n}return-1},sortedUniq:function(t){return t&&t.length?bg(t):[]},sortedUniqBy:function(t,e){return t&&t.length?bg(t,va(e)):[]},tail:function(t){var e=null==t?0:t.length;return e?Vr(t,1,e):[]},take:function(t,e,n){return t&&t.length?Vr(t,0,(e=n||void 0===e?1:q(e))<0?0:e):[]},takeRight:function(t,e,n){var r=null==t?0:t.length;return r?Vr(t,(e=r-(e=n||void 0===e?1:q(e)))<0?0:e,r):[]},takeRightWhile:function(t,e){return t&&t.length?hl(t,va(e),!1,!0):[]},takeWhile:function(t,e){return t&&t.length?hl(t,va(e)):[]},union:ld,unionBy:cd,unionWith:hd,uniq:ud,uniqBy:function(t,e){return t&&t.length?ad(t,va(e)):[]},uniqWith:function(t,e){return e="function"==typeof e?e:void 0,t&&t.length?ad(t,void 0,e):[]},unzip:pd,unzipWith:md,without:bd,xor:Ad,xorBy:Cd,xorWith:Pd,zip:Md,zipObject:function(t,e){return Ed(t||[],e||[],He)},zipObjectDeep:function(t,e){return Ed(t||[],e||[],Fh)},zipWith:Sd},Td={countBy:Na,each:gl,eachRight:yl,every:function(t,e,n){var r=P(t)?Tl:kl;return n&&en(t,e,n)&&(e=void 0),r(t,va(e))},filter:function(t,e){return(P(t)?ns:_l)(t,va(e))},find:Dl,findLast:Fl,flatMap:function(t,e){return vr(ql(t,e),1)},flatMapDeep:function(t,e){return vr(ql(t,e),Wl)},flatMapDepth:function(t,e,n){return n=void 0===n?1:q(n),vr(ql(t,e),n)},forEach:gl,forEachRight:yl,groupBy:oc,includes:function(t,e,n,r){t=tn(t)?t:bc(t),n=n&&!r?q(n):0;var i=t.length;return n<0&&(n=xc(i+n,0)),yc(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&Qt(t,e,n)>-1},invokeMap:Rc,keyBy:gh,map:ql,orderBy:function(t,e,n,r){return null==t?[]:(P(e)||(e=null==e?[]:[e]),P(n=r?void 0:n)||(n=null==n?[]:[n]),Wh(t,e,n))},partition:Mu,reduce:function(t,e,n){var r=P(t)?si:Hu,i=arguments.length<3;return r(t,va(e),n,i,Sa)},reduceRight:function(t,e,n){var r=P(t)?Ju:Hu,i=arguments.length<3;return r(t,va(e),n,i,ml)},reject:function(t,e){return(P(t)?ns:_l)(t,_h(va(e)))},sample:function(t){return(P(t)?Qu:tg)(t)},sampleSize:function(t,e,n){return e=(n?en(t,e,n):void 0===e)?1:q(e),(P(t)?ng:rg)(t,e)},shuffle:function(t){return(P(t)?ig:sg)(t)},size:function(t){if(null==t)return 0;if(tn(t))return yc(t)?mu(t):t.length;var e=Ms(t);return e==og||e==ag?t.size:Nn(t).length},some:function(t,e,n){var r=P(t)?Eo:cg;return n&&en(t,e,n)&&(e=void 0),r(t,va(e))},sortBy:hg},kd={now:Ia},Nd={after:function(t,e){if("function"!=typeof e)throw new TypeError(W);return t=q(t),function(){if(--t<1)return e.apply(this,arguments)}},ary:Ge,before:Br,bind:Ir,bindKey:Rr,curry:_a,curryRight:Ba,debounce:za,defer:tl,delay:el,flip:function(t){return $e(t,Jl)},memoize:rr,negate:_h,once:function(t){return Br(2,t)},overArgs:Zh,partial:Cu,partialRight:Pu,rearg:Wu,rest:function(t,e){if("function"!=typeof t)throw new TypeError(Xu);return Ze(t,e=void 0===e?e:q(e))},spread:function(t,e){if("function"!=typeof t)throw new TypeError(wg);return e=null==e?0:Ag(q(e),0),Ze((function(n){var r=n[e],i=zr(n,0,e);return r&&pr(i,r),bt(t,this,i)}))},throttle:Fg,unary:function(t){return Ge(t,1)},wrap:function(t,e){return Cu(ul(e),t)}},jd={castArray:function(){if(!arguments.length)return[];var t=arguments[0];return P(t)?t:[t]},clone:yo,cloneDeep:xo,cloneDeepWith:function(t,e){return po(t,wo|Ao,e="function"==typeof e?e:void 0)},cloneWith:function(t,e){return po(t,Co,e="function"==typeof e?e:void 0)},conformsTo:function(t,e){return null==e||xa(t,e,jn(e))},eq:qe,gt:cc,gte:hc,isArguments:gn,isArray:P,isArrayBuffer:$c,isArrayLike:tn,isArrayLikeObject:qa,isBoolean:function(t){return!0===t||!1===t||v(t)&&y(t)==Fc},isBuffer:yn,isDate:qc,isElement:function(t){return v(t)&&1===t.nodeType&&!Tr(t)},isEmpty:Xc,isEqual:Yc,isEqualWith:function(t,e,n){var r=(n="function"==typeof n?n:void 0)?n(t,e):void 0;return void 0===r?na(t,e,void 0,n):!!r},isError:jr,isFinite:function(t){return"number"==typeof t&&Zc(t)},isFunction:K,isInteger:Kc,isLength:Qe,isMap:no,isMatch:function(t,e){return t===e||sa(t,e,aa(e))},isMatchWith:function(t,e,n){return n="function"==typeof n?n:void 0,sa(t,e,aa(e),n)},isNaN:function(t){return th(t)&&t!=+t},isNative:function(t){if(eh(t))throw new Error(nh);return ht(t)},isNil:function(t){return null==t},isNull:function(t){return null===t},isNumber:th,isObject:B,isObjectLike:v,isPlainObject:Tr,isRegExp:sh,isSafeInteger:function(t){return Kc(t)&&t>=-oh&&t<=oh},isSet:so,isString:yc,isSymbol:x,isTypedArray:Mn,isUndefined:function(t){return void 0===t},isWeakMap:function(t){return v(t)&&Ms(t)==ah},isWeakSet:function(t){return v(t)&&y(t)==lh},lt:vh,lte:bh,toArray:Dh,toFinite:U,toInteger:q,toLength:jl,toNumber:$,toPlainObject:Ha,toSafeInteger:function(t){return t?Wi(q(t),-Xg,Xg):0===t?t:0},toString:lr},_d={add:k,ceil:Fi,divide:cl,floor:Xl,max:Ch,maxBy:function(t,e){return t&&t.length?Ah(t,va(e),ac):void 0},mean:function(t){return Eh(t,H)},meanBy:function(t,e){return Eh(t,va(e))},min:function(t){return t&&t.length?Ah(t,H,yh):void 0},minBy:function(t,e){return t&&t.length?Ah(t,va(e),yh):void 0},multiply:Nh,round:Ku,subtract:Pg,sum:function(t){return t&&t.length?Ph(t,H):0},sumBy:function(t,e){return t&&t.length?Ph(t,va(e)):0}},Ld=Hi,Bd=function(t,e,n){return e=U(e),void 0===n?(n=e,e=0):n=U(n),function(t,e,n){return t>=pc(e,n)&&t<fc(e,n)}(t=$(t),e,n)},Id=function(t,e,n){if(n&&"boolean"!=typeof n&&en(t,e,n)&&(e=n=void 0),void 0===n&&("boolean"==typeof e?(n=e,e=void 0):"boolean"==typeof t&&(n=t,t=void 0)),void 0===t&&void 0===e?(t=0,e=1):(t=U(t),void 0===e?(e=t,t=0):e=U(e)),t>e){var r=t;t=e,e=r}if(n||t%1||e%1){var i=zu();return Vu(t+i*(e-t+Ru("1e-"+((i+"").length-1))),e)}return Du(t,e)},Dd={assign:Ln,assignIn:Rn,assignInWith:Vn,assignWith:zn,at:wr,create:function(t,e){var n=mt(t);return null==e?n:Yi(n,e)},defaults:Ga,defaultsDeep:Za,entries:wl,entriesIn:Al,extend:Rn,extendWith:Vn,findKey:function(t,e){return Rl(t,va(e),Ma)},findLastKey:function(t,e){return Rl(t,va(e),pl)},forIn:function(t,e){return null==t?t:Pa(t,ul(e),Dn)},forInRight:function(t,e){return null==t?t:fl(t,ul(e),Dn)},forOwn:function(t,e){return t&&Ma(t,ul(e))},forOwnRight:function(t,e){return t&&pl(t,ul(e))},functions:function(t){return null==t?[]:ic(t,jn(t))},functionsIn:function(t){return null==t?[]:ic(t,Dn(t))},get:dr,has:dc,hasIn:ga,invert:kc,invertBy:Lc,invoke:Dc,keys:jn,keysIn:Dn,mapKeys:function(t,e){var n={};return e=va(e),Ma(t,(function(t,r,i){Ue(n,e(t,r,i),t)})),n},mapValues:function(t,e){var n={};return e=va(e),Ma(t,(function(t,r,i){Ue(n,r,e(t,r,i))})),n},merge:Sh,mergeWith:Ya,omit:$h,omitBy:function(t,e){return Uh(t,_h(va(e)))},pick:Eu,pickBy:Uh,result:function(t,e,n){var r=-1,i=(e=cr(e,t)).length;for(i||(i=1,t=void 0);++r<i;){var s=null==t?void 0:t[ur(e[r])];void 0===s&&(r=i,s=n),t=K(s)?s.call(t):s}return t},set:function(t,e,n){return null==t?t:Fh(t,e,n)},setWith:function(t,e,n,r){return r="function"==typeof r?r:void 0,null==t?t:Fh(t,e,n,r)},toPairs:wl,toPairsIn:Al,transform:function(t,e,n){var r=P(t),i=r||yn(t)||Mn(t);if(e=va(e),null==n){var s=t&&t.constructor;n=i?r?new s:[]:B(t)&&K(s)?mt(Ar(t)):{}}return(i?Yt:Ma)(t,(function(t,r,i){return e(n,t,r,i)})),n},unset:function(t,e){return null==t||Vh(t,e)},update:function(t,e,n){return null==t?t:yd(t,e,ul(n))},updateWith:function(t,e,n,r){return r="function"==typeof r?r:void 0,null==t?t:yd(t,e,ul(n),r)},values:bc,valuesIn:function(t){return null==t?[]:vc(t,Dn(t))}},Rd={at:xd,chain:Gi,commit:function(){return new jt(this.value(),this.__chain__)},lodash:It,next:function(){void 0===this.__values__&&(this.__values__=Dh(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?void 0:this.__values__[this.__index__++]}},plant:function(t){for(var e,n=this;n instanceof Pt;){var r=Lt(n);r.__index__=0,r.__values__=void 0,e?i.__wrapped__=r:e=r;var i=r;n=n.__wrapped__}return i.__wrapped__=t,e},reverse:function(){var t=this.__wrapped__;if(t instanceof Et){var e=t;return this.__actions__.length&&(e=new Et(this)),(e=e.reverse()).__actions__.push({func:Gg,args:[Zu],thisArg:void 0}),new jt(e,this.__chain__)}return this.thru(Zu)},tap:function(t,e){return e(t),t},thru:Gg,toIterator:function(){return this},toJSON:Jg,value:Jg,valueOf:Jg,wrapperChain:function(){return Gi(this)}},Vd={camelCase:Ri,capitalize:ii,deburr:hi,endsWith:function(t,e,n){t=lr(t),e=O(e);var r=t.length,i=n=void 0===n?r:Wi(q(n),0,r);return(n-=e.length)>=0&&t.slice(n,i)==e},escape:El,escapeRegExp:function(t){return(t=lr(t))&&Ol.test(t)?t.replace(Sl,"\\$&"):t},kebabCase:uh,lowerCase:ph,lowerFirst:mh,pad:function(t,e,n){t=lr(t);var r=(e=q(e))?mu(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return vu(xu(i),n)+t+vu(bu(i),n)},padEnd:function(t,e,n){t=lr(t);var r=(e=q(e))?mu(t):0;return e&&r<e?t+vu(e-r,n):t},padStart:function(t,e,n){t=lr(t);var r=(e=q(e))?mu(t):0;return e&&r<e?vu(e-r,n)+t:t},parseInt:function(t,e,n){return n||null==e?e=0:e&&(e=+e),Au(lr(t).replace(wu,""),e||0)},repeat:function(t,e,n){return e=(n?en(t,e,n):void 0===e)?1:q(e),nu(lr(t),e)},replace:function(){var t=arguments,e=lr(t[0]);return t.length<3?e:e.replace(t[1],t[2])},snakeCase:lg,split:function(t,e,n){return n&&"number"!=typeof n&&en(t,e,n)&&(e=n=void 0),(n=void 0===n?xg:n>>>0)?(t=lr(t))&&("string"==typeof e||null!=e&&!sh(e))&&!(e=O(e))&&Fr(t)?zr(ei(t),0,n):t.split(e,n):[]},startCase:Cg,startsWith:function(t,e,n){return t=lr(t),n=null==n?0:Wi(q(n),0,t.length),e=O(e),t.slice(n,n+e.length)==e},template:function(t,e,n){var r=Ng.imports._.templateSettings||Ng;n&&en(t,e,n)&&(e=void 0),t=lr(t),e=Vn({},e,r,Sg);var i,s,o=Vn({},e.imports,r.imports,Sg),a=jn(o),l=vc(o,a),c=0,h=e.interpolate||Rg,u="__p += '",g=RegExp((e.escape||Rg).source+"|"+h.source+"|"+(h===kg?Dg:Rg).source+"|"+(e.evaluate||Rg).source+"|$","g"),d=zg.call(e,"sourceURL")?"//# sourceURL="+(e.sourceURL+"").replace(/\s/g," ")+"\n":"";t.replace(g,(function(e,n,r,o,a,l){return r||(r=o),u+=t.slice(c,l).replace(Vg,Tg),n&&(i=!0,u+="' +\n__e("+n+") +\n'"),a&&(s=!0,u+="';\n"+a+";\n__p += '"),r&&(u+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),c=l+e.length,e})),u+="';\n";var f=zg.call(e,"variable")&&e.variable;if(f){if(Ig.test(f))throw new Error(jg)}else u="with (obj) {\n"+u+"\n}\n";u=(s?u.replace(_g,""):u).replace(Lg,"$1").replace(Bg,"$1;"),u="function("+(f||"obj")+") {\n"+(f?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(s?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+u+"return __p\n}";var p=_r((function(){return Function(a,d+"return "+u).apply(void 0,l)}));if(p.source=u,jr(p))throw p;return p},templateSettings:Ng,toLower:function(t){return lr(t).toLowerCase()},toUpper:function(t){return lr(t).toUpperCase()},trim:function(t,e,n){if((t=lr(t))&&(n||void 0===e))return L(t);if(!t||!(e=O(e)))return t;var r=ei(t),i=ei(e);return zr(r,Zg(r,i),Yg(r,i)+1).join("")},trimEnd:function(t,e,n){if((t=lr(t))&&(n||void 0===e))return t.slice(0,j(t)+1);if(!t||!(e=O(e)))return t;var r=ei(t);return zr(r,0,Yg(r,ei(e))+1).join("")},trimStart:function(t,e,n){if((t=lr(t))&&(n||void 0===e))return t.replace(Kg,"");if(!t||!(e=O(e)))return t;var r=ei(t);return zr(r,Zg(r,ei(e))).join("")},truncate:function(t,e){var n=Qg,r=td;if(B(e)){var i="separator"in e?e.separator:i;n="length"in e?q(e.length):n,r="omission"in e?O(e.omission):r}var s=(t=lr(t)).length;if(Fr(t)){var o=ei(t);s=o.length}if(n>=s)return t;var a=n-mu(r);if(a<1)return r;var l=o?zr(o,0,a).join(""):t.slice(0,a);if(void 0===i)return l+r;if(o&&(a+=l.length-a),sh(i)){if(t.slice(a).search(i)){var c,h=l;for(i.global||(i=RegExp(i.source,lr(ed.exec(i))+"g")),i.lastIndex=0;c=i.exec(h);)var u=c.index;l=l.slice(0,void 0===u?a:u)}}else if(t.indexOf(O(i),a)!=a){var g=l.lastIndexOf(i);g>-1&&(l=l.slice(0,g))}return l+r},unescape:function(t){return(t=lr(t))&&id.test(t)?t.replace(rd,nd):t},upperCase:vd,upperFirst:ri,words:Bi},zd={attempt:_r,bindAll:Dr,cond:function(t){var e=null==t?0:t.length,n=va;return t=e?C(t,(function(t){if("function"!=typeof t[1])throw new TypeError(ba);return[n(t[0]),t[1]]})):[],Ze((function(n){for(var r=-1;++r<e;){var i=t[r];if(bt(i[0],this,n))return bt(i[1],this,n)}}))},conforms:function(t){return function(t){var e=jn(t);return function(n){return xa(n,t,e)}}(po(t,wa))},constant:Wt,defaultTo:function(t,e){return null==t||t!=t?e:t},flow:nc,flowRight:rc,identity:H,iteratee:function(t){return va("function"==typeof t?t:po(t,ch))},matches:function(t){return ca(po(t,xh))},matchesProperty:function(t,e){return pa(t,po(e,wh))},method:Oh,methodOf:Th,mixin:kh,noop:St,nthArg:function(t){return t=q(t),Ze((function(e){return Rh(e,t)}))},over:Jh,overEvery:Kh,overSome:Qh,property:ya,propertyOf:function(t){return function(e){return null==t?void 0:gr(t,e)}},range:Uu,rangeRight:qu,stubArray:rs,stubFalse:dn,stubObject:function(){return{}},stubString:function(){return""},stubTrue:function(){return!0},times:function(t,e){if((t=q(t))<1||t>Ug)return[];var n=qg,r=Wg(t,qg);e=ul(e),t-=qg;for(var i=on(r,e);++n<t;)e(n);return i},toPath:function(t){return P(t)?C(t,ur):x(t)?[t]:_t(ar(lr(t)))},uniqueId:dd};var $d=Math.max,Fd=Math.min;var Gd=1,Ud=2,qd=Math.min; | ||
| 2 | +/** | ||
| 3 | + * @license | ||
| 4 | + * Lodash (Custom Build) <https://lodash.com/> | ||
| 5 | + * Build: `lodash modularize exports="es" -o ./` | ||
| 6 | + * Copyright OpenJS Foundation and other contributors <https://openjsf.org/> | ||
| 7 | + * Released under MIT license <https://lodash.com/license> | ||
| 8 | + * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> | ||
| 9 | + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors | ||
| 10 | + */ | ||
| 11 | +var Wd,Hd=4294967295,Jd=Array.prototype,Xd=Object.prototype.hasOwnProperty,Yd=l?l.iterator:void 0,Zd=Math.max,Kd=Math.min,Qd=function(t){return function(e,n,r){if(null==r){var i=B(n),s=i&&jn(n),o=s&&s.length&&ic(n,s);(o?o.length:i)||(r=n,n=e,e=this)}return t(e,n,r)}}(kh);function tf(t,e,n){if(n)switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2]);case 4:return t.call(e,n[0],n[1],n[2],n[3]);case 5:return t.call(e,n[0],n[1],n[2],n[3],n[4]);case 6:return t.call(e,n[0],n[1],n[2],n[3],n[4],n[5]);default:return t.apply(e,n)}return t.call(e)}function ef(t,e,...n){return tf(t,e,n)}function nf(t){return"object"==typeof t&&t.then&&"function"==typeof t.then}function rf(t){return null!=t&&(t instanceof Promise||nf(t))}function sf(...t){const e=[];t.forEach((t=>{Array.isArray(t)?e.push(...t):e.push(t)}));if(e.some((t=>rf(t)))){const t=e.map((t=>rf(t)?t:Promise.resolve(!1!==t)));return Promise.all(t).then((t=>t.reduce(((t,e)=>!1!==e&&t),!0)))}return e.every((t=>!1!==t))}It.after=Nd.after,It.ary=Nd.ary,It.assign=Dd.assign,It.assignIn=Dd.assignIn,It.assignInWith=Dd.assignInWith,It.assignWith=Dd.assignWith,It.at=Dd.at,It.before=Nd.before,It.bind=Nd.bind,It.bindAll=zd.bindAll,It.bindKey=Nd.bindKey,It.castArray=jd.castArray,It.chain=Rd.chain,It.chunk=Od.chunk,It.compact=Od.compact,It.concat=Od.concat,It.cond=zd.cond,It.conforms=zd.conforms,It.constant=zd.constant,It.countBy=Td.countBy,It.create=Dd.create,It.curry=Nd.curry,It.curryRight=Nd.curryRight,It.debounce=Nd.debounce,It.defaults=Dd.defaults,It.defaultsDeep=Dd.defaultsDeep,It.defer=Nd.defer,It.delay=Nd.delay,It.difference=Od.difference,It.differenceBy=Od.differenceBy,It.differenceWith=Od.differenceWith,It.drop=Od.drop,It.dropRight=Od.dropRight,It.dropRightWhile=Od.dropRightWhile,It.dropWhile=Od.dropWhile,It.fill=Od.fill,It.filter=Td.filter,It.flatMap=Td.flatMap,It.flatMapDeep=Td.flatMapDeep,It.flatMapDepth=Td.flatMapDepth,It.flatten=Od.flatten,It.flattenDeep=Od.flattenDeep,It.flattenDepth=Od.flattenDepth,It.flip=Nd.flip,It.flow=zd.flow,It.flowRight=zd.flowRight,It.fromPairs=Od.fromPairs,It.functions=Dd.functions,It.functionsIn=Dd.functionsIn,It.groupBy=Td.groupBy,It.initial=Od.initial,It.intersection=Od.intersection,It.intersectionBy=Od.intersectionBy,It.intersectionWith=Od.intersectionWith,It.invert=Dd.invert,It.invertBy=Dd.invertBy,It.invokeMap=Td.invokeMap,It.iteratee=zd.iteratee,It.keyBy=Td.keyBy,It.keys=jn,It.keysIn=Dd.keysIn,It.map=Td.map,It.mapKeys=Dd.mapKeys,It.mapValues=Dd.mapValues,It.matches=zd.matches,It.matchesProperty=zd.matchesProperty,It.memoize=Nd.memoize,It.merge=Dd.merge,It.mergeWith=Dd.mergeWith,It.method=zd.method,It.methodOf=zd.methodOf,It.mixin=Qd,It.negate=_h,It.nthArg=zd.nthArg,It.omit=Dd.omit,It.omitBy=Dd.omitBy,It.once=Nd.once,It.orderBy=Td.orderBy,It.over=zd.over,It.overArgs=Nd.overArgs,It.overEvery=zd.overEvery,It.overSome=zd.overSome,It.partial=Nd.partial,It.partialRight=Nd.partialRight,It.partition=Td.partition,It.pick=Dd.pick,It.pickBy=Dd.pickBy,It.property=zd.property,It.propertyOf=zd.propertyOf,It.pull=Od.pull,It.pullAll=Od.pullAll,It.pullAllBy=Od.pullAllBy,It.pullAllWith=Od.pullAllWith,It.pullAt=Od.pullAt,It.range=zd.range,It.rangeRight=zd.rangeRight,It.rearg=Nd.rearg,It.reject=Td.reject,It.remove=Od.remove,It.rest=Nd.rest,It.reverse=Od.reverse,It.sampleSize=Td.sampleSize,It.set=Dd.set,It.setWith=Dd.setWith,It.shuffle=Td.shuffle,It.slice=Od.slice,It.sortBy=Td.sortBy,It.sortedUniq=Od.sortedUniq,It.sortedUniqBy=Od.sortedUniqBy,It.split=Vd.split,It.spread=Nd.spread,It.tail=Od.tail,It.take=Od.take,It.takeRight=Od.takeRight,It.takeRightWhile=Od.takeRightWhile,It.takeWhile=Od.takeWhile,It.tap=Rd.tap,It.throttle=Nd.throttle,It.thru=Gg,It.toArray=jd.toArray,It.toPairs=Dd.toPairs,It.toPairsIn=Dd.toPairsIn,It.toPath=zd.toPath,It.toPlainObject=jd.toPlainObject,It.transform=Dd.transform,It.unary=Nd.unary,It.union=Od.union,It.unionBy=Od.unionBy,It.unionWith=Od.unionWith,It.uniq=Od.uniq,It.uniqBy=Od.uniqBy,It.uniqWith=Od.uniqWith,It.unset=Dd.unset,It.unzip=Od.unzip,It.unzipWith=Od.unzipWith,It.update=Dd.update,It.updateWith=Dd.updateWith,It.values=Dd.values,It.valuesIn=Dd.valuesIn,It.without=Od.without,It.words=Vd.words,It.wrap=Nd.wrap,It.xor=Od.xor,It.xorBy=Od.xorBy,It.xorWith=Od.xorWith,It.zip=Od.zip,It.zipObject=Od.zipObject,It.zipObjectDeep=Od.zipObjectDeep,It.zipWith=Od.zipWith,It.entries=Dd.toPairs,It.entriesIn=Dd.toPairsIn,It.extend=Dd.assignIn,It.extendWith=Dd.assignInWith,Qd(It,It),It.add=_d.add,It.attempt=zd.attempt,It.camelCase=Vd.camelCase,It.capitalize=Vd.capitalize,It.ceil=_d.ceil,It.clamp=Ld,It.clone=jd.clone,It.cloneDeep=jd.cloneDeep,It.cloneDeepWith=jd.cloneDeepWith,It.cloneWith=jd.cloneWith,It.conformsTo=jd.conformsTo,It.deburr=Vd.deburr,It.defaultTo=zd.defaultTo,It.divide=_d.divide,It.endsWith=Vd.endsWith,It.eq=jd.eq,It.escape=Vd.escape,It.escapeRegExp=Vd.escapeRegExp,It.every=Td.every,It.find=Td.find,It.findIndex=Od.findIndex,It.findKey=Dd.findKey,It.findLast=Td.findLast,It.findLastIndex=Od.findLastIndex,It.findLastKey=Dd.findLastKey,It.floor=_d.floor,It.forEach=Td.forEach,It.forEachRight=Td.forEachRight,It.forIn=Dd.forIn,It.forInRight=Dd.forInRight,It.forOwn=Dd.forOwn,It.forOwnRight=Dd.forOwnRight,It.get=Dd.get,It.gt=jd.gt,It.gte=jd.gte,It.has=Dd.has,It.hasIn=Dd.hasIn,It.head=Od.head,It.identity=H,It.includes=Td.includes,It.indexOf=Od.indexOf,It.inRange=Bd,It.invoke=Dd.invoke,It.isArguments=jd.isArguments,It.isArray=P,It.isArrayBuffer=jd.isArrayBuffer,It.isArrayLike=jd.isArrayLike,It.isArrayLikeObject=jd.isArrayLikeObject,It.isBoolean=jd.isBoolean,It.isBuffer=jd.isBuffer,It.isDate=jd.isDate,It.isElement=jd.isElement,It.isEmpty=jd.isEmpty,It.isEqual=jd.isEqual,It.isEqualWith=jd.isEqualWith,It.isError=jd.isError,It.isFinite=jd.isFinite,It.isFunction=jd.isFunction,It.isInteger=jd.isInteger,It.isLength=jd.isLength,It.isMap=jd.isMap,It.isMatch=jd.isMatch,It.isMatchWith=jd.isMatchWith,It.isNaN=jd.isNaN,It.isNative=jd.isNative,It.isNil=jd.isNil,It.isNull=jd.isNull,It.isNumber=jd.isNumber,It.isObject=B,It.isObjectLike=jd.isObjectLike,It.isPlainObject=jd.isPlainObject,It.isRegExp=jd.isRegExp,It.isSafeInteger=jd.isSafeInteger,It.isSet=jd.isSet,It.isString=jd.isString,It.isSymbol=jd.isSymbol,It.isTypedArray=jd.isTypedArray,It.isUndefined=jd.isUndefined,It.isWeakMap=jd.isWeakMap,It.isWeakSet=jd.isWeakSet,It.join=Od.join,It.kebabCase=Vd.kebabCase,It.last=ol,It.lastIndexOf=Od.lastIndexOf,It.lowerCase=Vd.lowerCase,It.lowerFirst=Vd.lowerFirst,It.lt=jd.lt,It.lte=jd.lte,It.max=_d.max,It.maxBy=_d.maxBy,It.mean=_d.mean,It.meanBy=_d.meanBy,It.min=_d.min,It.minBy=_d.minBy,It.stubArray=zd.stubArray,It.stubFalse=zd.stubFalse,It.stubObject=zd.stubObject,It.stubString=zd.stubString,It.stubTrue=zd.stubTrue,It.multiply=_d.multiply,It.nth=Od.nth,It.noop=zd.noop,It.now=kd.now,It.pad=Vd.pad,It.padEnd=Vd.padEnd,It.padStart=Vd.padStart,It.parseInt=Vd.parseInt,It.random=Id,It.reduce=Td.reduce,It.reduceRight=Td.reduceRight,It.repeat=Vd.repeat,It.replace=Vd.replace,It.result=Dd.result,It.round=_d.round,It.sample=Td.sample,It.size=Td.size,It.snakeCase=Vd.snakeCase,It.some=Td.some,It.sortedIndex=Od.sortedIndex,It.sortedIndexBy=Od.sortedIndexBy,It.sortedIndexOf=Od.sortedIndexOf,It.sortedLastIndex=Od.sortedLastIndex,It.sortedLastIndexBy=Od.sortedLastIndexBy,It.sortedLastIndexOf=Od.sortedLastIndexOf,It.startCase=Vd.startCase,It.startsWith=Vd.startsWith,It.subtract=_d.subtract,It.sum=_d.sum,It.sumBy=_d.sumBy,It.template=Vd.template,It.times=zd.times,It.toFinite=jd.toFinite,It.toInteger=q,It.toLength=jd.toLength,It.toLower=Vd.toLower,It.toNumber=jd.toNumber,It.toSafeInteger=jd.toSafeInteger,It.toString=jd.toString,It.toUpper=Vd.toUpper,It.trim=Vd.trim,It.trimEnd=Vd.trimEnd,It.trimStart=Vd.trimStart,It.truncate=Vd.truncate,It.unescape=Vd.unescape,It.uniqueId=zd.uniqueId,It.upperCase=Vd.upperCase,It.upperFirst=Vd.upperFirst,It.each=Td.forEach,It.eachRight=Td.forEachRight,It.first=Od.head,Qd(It,(Wd={},Ma(It,(function(t,e){Xd.call(It.prototype,e)||(Wd[e]=t)})),Wd),{chain:!1}),It.VERSION="4.17.21",(It.templateSettings=Vd.templateSettings).imports._=It,Yt(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){It[t].placeholder=It})),Yt(["drop","take"],(function(t,e){Et.prototype[t]=function(n){n=void 0===n?1:Zd(q(n),0);var r=this.__filtered__&&!e?new Et(this):this.clone();return r.__filtered__?r.__takeCount__=Kd(n,r.__takeCount__):r.__views__.push({size:Kd(n,Hd),type:t+(r.__dir__<0?"Right":"")}),r},Et.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),Yt(["filter","map","takeWhile"],(function(t,e){var n=e+1,r=1==n||3==n;Et.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:va(t),type:n}),e.__filtered__=e.__filtered__||r,e}})),Yt(["head","last"],(function(t,e){var n="take"+(e?"Right":"");Et.prototype[t]=function(){return this[n](1).value()[0]}})),Yt(["initial","tail"],(function(t,e){var n="drop"+(e?"":"Right");Et.prototype[t]=function(){return this.__filtered__?new Et(this):this[n](1)}})),Et.prototype.compact=function(){return this.filter(H)},Et.prototype.find=function(t){return this.filter(t).head()},Et.prototype.findLast=function(t){return this.reverse().find(t)},Et.prototype.invokeMap=Ze((function(t,e){return"function"==typeof t?new Et(this):this.map((function(n){return Ic(n,t,e)}))})),Et.prototype.reject=function(t){return this.filter(_h(va(t)))},Et.prototype.slice=function(t,e){t=q(t);var n=this;return n.__filtered__&&(t>0||e<0)?new Et(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),void 0!==e&&(n=(e=q(e))<0?n.dropRight(-e):n.take(e-t)),n)},Et.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Et.prototype.toArray=function(){return this.take(Hd)},Ma(Et.prototype,(function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),i=It[r?"take"+("last"==e?"Right":""):e],s=r||/^find/.test(e);i&&(It.prototype[e]=function(){var e=this.__wrapped__,o=r?[1]:arguments,a=e instanceof Et,l=o[0],c=a||P(e),h=function(t){var e=i.apply(It,pr([t],o));return r&&u?e[0]:e};c&&n&&"function"==typeof l&&1!=l.length&&(a=c=!1);var u=this.__chain__,g=!!this.__actions__.length,d=s&&!u,f=a&&!g;if(!s&&c){e=f?e:new Et(this);var p=t.apply(e,o);return p.__actions__.push({func:Gg,args:[h],thisArg:void 0}),new jt(p,u)}return d&&f?t.apply(this,o):(p=this.thru(h),d?r?p.value()[0]:p.value():p)})})),Yt(["pop","push","shift","sort","splice","unshift"],(function(t){var e=Jd[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);It.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(P(i)?i:[],t)}return this[n]((function(n){return e.apply(P(n)?n:[],t)}))}})),Ma(Et.prototype,(function(t,e){var n=It[e];if(n){var r=n.name+"";Xd.call(Tt,r)||(Tt[r]=[]),Tt[r].push({name:e,func:n})}})),Tt[Ce(void 0,2).name]=[{name:"wrapper",func:void 0}],Et.prototype.clone=function(){var t=new Et(this.__wrapped__);return t.__actions__=_t(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=_t(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=_t(this.__views__),t},Et.prototype.reverse=function(){if(this.__filtered__){var t=new Et(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},Et.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=P(t),r=e<0,i=n?t.length:0,s=function(t,e,n){for(var r=-1,i=n.length;++r<i;){var s=n[r],o=s.size;switch(s.type){case"drop":t+=o;break;case"dropRight":e-=o;break;case"take":e=Fd(e,t+o);break;case"takeRight":t=$d(t,e-o)}}return{start:t,end:e}}(0,i,this.__views__),o=s.start,a=s.end,l=a-o,c=r?a:o-1,h=this.__iteratees__,u=h.length,g=0,d=qd(l,this.__takeCount__);if(!n||!r&&i==l&&d==l)return Hg(t,this.__actions__);var f=[];t:for(;l--&&g<d;){for(var p=-1,m=t[c+=e];++p<u;){var y=h[p],v=y.iteratee,b=y.type,x=v(m);if(b==Ud)m=x;else if(!x){if(b==Gd)continue t;break t}}f[g++]=m}return f},It.prototype.at=Rd.at,It.prototype.chain=Rd.wrapperChain,It.prototype.commit=Rd.commit,It.prototype.next=Rd.next,It.prototype.plant=Rd.plant,It.prototype.reverse=Rd.reverse,It.prototype.toJSON=It.prototype.valueOf=It.prototype.value=Rd.value,It.prototype.first=It.prototype.head,Yd&&(It.prototype[Yd]=Rd.toIterator);var of=Object.freeze({__proto__:null,apply:tf,call:ef,debounce:za,isAsync:rf,isAsyncLike:nf,throttle:Fg,toAsyncBoolean:sf,toDeferredBoolean:function(...t){const e=sf(t);return"boolean"==typeof e?Promise.resolve(e):e}});function af(t,e){const n=[];for(let r=0;r<t.length;r+=2){const i=tf(t[r],t[r+1],Array.isArray(e)?e:[e]);n.push(i)}return sf(n)}class lf{constructor(){this.listeners={}}on(t,e,n){if(null==e)return this;this.listeners[t]||(this.listeners[t]=[]);return this.listeners[t].push(e,n),this}once(t,e,n){const r=(...i)=>(this.off(t,r),af([e,n],i));return this.on(t,r,this)}off(t,e,n){if(!(t||e||n))return this.listeners={},this;const r=this.listeners;return(t?[t]:Object.keys(r)).forEach((t=>{const i=r[t];if(i)if(e||n)for(let t=i.length-2;t>=0;t-=2)e&&i[t]!==e||n&&i[t+1]!==n||i.splice(t,2);else delete r[t]})),this}trigger(t,...e){let n=!0;if("*"!==t){const r=this.listeners[t];null!=r&&(n=af([...r],e))}const r=this.listeners["*"];return null!=r?sf([n,af([...r],[t,...e])]):n}emit(t,...e){return this.trigger(t,...e)}}function cf(t,...e){e.forEach((e=>{Object.getOwnPropertyNames(e.prototype).forEach((n=>{"constructor"!==n&&Object.defineProperty(t.prototype,n,Object.getOwnPropertyDescriptor(e.prototype,n))}))}))}const hf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])};function uf(t,e){function n(){this.constructor=t}hf(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}const gf=/^\s*class\s+/.test(`${class{}}`)||/^\s*class\s*\{/.test(`${class{}}`);function df(t,e){let n;return gf?n=class extends e{}:(n=function(){return e.apply(this,arguments)},uf(n,e)),Object.defineProperty(n,"name",{value:t}),n}function ff(t,e){return null!=t?t:e}function pf(t){return"__proto__"===t}function mf(t,e,n="/"){let r;const i=Array.isArray(e)?e:e.split(n);if(i.length)for(r=t;i.length;){const t=i.shift();if(Object(r)!==r||!t||!(t in r))return;r=r[t]}return r}function yf(t,e,n,r="/"){const i=Array.isArray(e)?e:e.split(r),s=i.pop();if(s&&!pf(s)){let e=t;i.forEach((t=>{pf(t)||(null==e[t]&&(e[t]={}),e=e[t])})),e[s]=n}return t}function vf(t,e,n="/"){const r=Array.isArray(e)?e.slice():e.split(n),i=r.pop();if(i)if(r.length>0){const e=mf(t,r);e&&delete e[i]}else delete t[i];return t}var bf=Object.freeze({__proto__:null,applyMixins:cf,clone:yo,cloneDeep:xo,createClass:df,defaults:Ga,defaultsDeep:Za,ensure:ff,flatten:function t(e,n="/",r){const i={};Object.keys(e).forEach((s=>{const o=e[s];let a="object"==typeof o||Array.isArray(o);if(a&&r&&r(o)&&(a=!1),a){const e=t(o,n,r);Object.keys(e).forEach((t=>{i[s+n+t]=e[t]}))}else i[s]=o}));for(const t in e)Object.prototype.hasOwnProperty.call(e,t);return i},getBoolean:function(t,e,n){const r=null!=t?t[e]:null;return null==r?n:!!r},getByPath:mf,getNumber:function(t,e,n){let r=null!=t?t[e]:null;return null==r?n:(r=+r,Number.isNaN(r)||!Number.isFinite(r)?n:r)},getValue:function(t,e,n){const r=null!=t?t[e]:null;return void 0!==n?ff(r,n):r},has:dc,inherit:uf,isEmpty:Xc,isEqual:Yc,isMaliciousProp:pf,isObject:B,isPlainObject:Tr,merge:Sh,pick:Eu,setByPath:yf,unsetByPath:vf}),xf=window&&window.__decorate||function(t,e,n,r){var i,s=arguments.length,o=s<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(o=(s<3?i(o):s>3?i(e,n,o):i(e,n))||o);return s>3&&o&&Object.defineProperty(e,n,o),o};class wf extends lf{dispose(){this.off()}}xf([r.dispose()],wf.prototype,"dispose",null),function(t){t.dispose=r.dispose}(wf||(wf={})),cf(wf,r);var Af=Object.freeze({__proto__:null,difference:sl,groupBy:oc,max:Ch,sortBy:hg,sortedIndex:yg,sortedIndexBy:vg,union:ld,uniq:ud});const Cf=t=>{const e=Object.create(null);return n=>e[n]||(e[n]=t(n))},Pf=Cf((t=>t.replace(/\B([A-Z])/g,"-$1").toLowerCase())),Mf=Cf((t=>Cg(Ri(t)).replace(/ /g,""))),Ef=Cf((t=>vd(t).replace(/ /g,"_"))),Sf=Cf((t=>ph(t).replace(/ /g,"."))),Of=Cf((t=>ph(t).replace(/ /g,"/"))),Tf=Cf((t=>ri(ph(t)))),kf=Cf((t=>Cg(Ri(t))));function Nf(t){let e=2166136261,n=!1,r=t;for(let t=0,i=r.length;t<i;t+=1){let i=r.charCodeAt(t);i>127&&!n&&(r=unescape(encodeURIComponent(r)),i=r.charCodeAt(t),n=!0),e^=i,e+=(e<<1)+(e<<4)+(e<<7)+(e<<8)+(e<<24)}return e>>>0}function jf(){let t="";const e="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";for(let n=0,r=e.length;n<r;n+=1){const r=e[n],i=16*Math.random()|0;t+=("x"===r?i:"y"===r?3&i|8:r).toString(16)}return t}function _f(t,e,n){const r=Math.min(2,Math.floor(.34*t.length));let i,s=Math.floor(.4*t.length)+1,o=!1;const a=t.toLowerCase();for(const l of e){const e=n(l);if(void 0!==e&&Math.abs(e.length-a.length)<=r){const n=e.toLowerCase();if(n===a){if(e===t)continue;return l}if(o)continue;if(e.length<3)continue;const r=Lf(a,n,s-1);if(void 0===r)continue;r<3?(o=!0,i=l):(s=r,i=l)}}return i}function Lf(t,e,n){let r=new Array(e.length+1),i=new Array(e.length+1);const s=n+1;for(let t=0;t<=e.length;t+=1)r[t]=t;for(let o=1;o<=t.length;o+=1){const a=t.charCodeAt(o-1),l=o>n?o-n:1,c=e.length>n+o?n+o:e.length;i[0]=o;let h=o;for(let t=1;t<l;t+=1)i[t]=s;for(let t=l;t<=c;t+=1){const n=a===e.charCodeAt(t-1)?r[t-1]:Math.min(r[t]+1,i[t-1]+1,r[t-1]+2);i[t]=n,h=Math.min(h,n)}for(let t=c+1;t<=e.length;t+=1)i[t]=s;if(h>n)return;const u=r;r=i,i=u}const o=r[e.length];return o>n?void 0:o}var Bf=Object.freeze({__proto__:null,camelCase:Ri,constantCase:Ef,dotCase:Sf,getSpellingSuggestion:_f,hashcode:Nf,kebabCase:Pf,lowerFirst:mh,pascalCase:Mf,pathCase:Of,sentenceCase:Tf,titleCase:kf,uniqueId:dd,upperFirst:ri,uuid:jf});function If(t){return"string"==typeof t&&"%"===t.slice(-1)}function Df(t,e){if(null==t)return 0;let n;if("string"==typeof t){if(n=parseFloat(t),If(t)&&(n/=100,Number.isFinite(n)))return n*e}else n=t;return Number.isFinite(n)?n>0&&n<1?n*e:n:0}function Rf(t){if("object"==typeof t){let e=0,n=0,r=0,i=0;return null!=t.vertical&&Number.isFinite(t.vertical)&&(n=i=t.vertical),null!=t.horizontal&&Number.isFinite(t.horizontal)&&(r=e=t.horizontal),null!=t.left&&Number.isFinite(t.left)&&(e=t.left),null!=t.top&&Number.isFinite(t.top)&&(n=t.top),null!=t.right&&Number.isFinite(t.right)&&(r=t.right),null!=t.bottom&&Number.isFinite(t.bottom)&&(i=t.bottom),{top:n,right:r,bottom:i,left:e}}let e=0;return null!=t&&Number.isFinite(t)&&(e=t),{top:e,right:e,bottom:e,left:e}}var Vf=Object.freeze({__proto__:null,clamp:Hi,isNumber:th,isPercentage:If,mod:function(t,e){return(t%e+e)%e},normalizePercentage:Df,normalizeSides:Rf,parseCssNumeric:function(t,e){const n=parseFloat(t);if(Number.isNaN(n))return null;let r;if(null==e)r="[A-Za-z]*";else if(Array.isArray(e)){if(0===e.length)return null;r=e.join("|")}else"string"==typeof e&&(r=e);const i=function(e){const n=new RegExp(`(?:\\d+(?:\\.\\d+)*)(${e})$`).exec(t);return n?n[1]:null}(r);return null===i?null:{unit:i,value:n}},random:function(t,e){if(null==e)e=null==t?1:t,t=0;else if(e<t){const n=t;t=e,e=n}return Math.floor(Math.random()*(e-t+1)+t)}});let zf=!1,$f=!1,Ff=!1,Gf=!1,Uf=!1,qf=!1,Wf=!1,Hf=!1,Jf=!1,Xf=!1,Yf=!1,Zf=!1,Kf=!1,Qf=!1,tp=!1,ep=!1;if("object"==typeof navigator){const t=navigator.userAgent;zf=t.indexOf("Macintosh")>=0,$f=!!t.match(/(iPad|iPhone|iPod)/g),Ff=t.indexOf("Windows")>=0,Gf=t.indexOf("MSIE")>=0,Uf=!!t.match(/Trident\/7\./),qf=!!t.match(/Edge\//),Wf=t.indexOf("Mozilla/")>=0&&t.indexOf("MSIE")<0&&t.indexOf("Edge/")<0,Jf=t.indexOf("Chrome/")>=0&&t.indexOf("Edge/")<0,Xf=t.indexOf("Opera/")>=0||t.indexOf("OPR/")>=0,Yf=t.indexOf("Firefox/")>=0,Zf=t.indexOf("AppleWebKit/")>=0&&t.indexOf("Chrome/")<0&&t.indexOf("Edge/")<0,"object"==typeof document&&(ep=!document.createElementNS||"[object SVGForeignObjectElement]"!=`${document.createElementNS("http://www.w3.org/2000/svg","foreignObject")}`||t.indexOf("Opera/")>=0)}if("object"==typeof window&&(Hf=null!=window.chrome&&null!=window.chrome.app&&null!=window.chrome.app.runtime,Qf=null!=window.PointerEvent&&!zf),"object"==typeof document){Kf="ontouchstart"in document.documentElement;try{const t=Object.defineProperty({},"passive",{get(){tp=!0}}),e=document.createElement("div");e.addEventListener&&e.addEventListener("click",(()=>{}),t)}catch(t){}}var np;t.Platform=void 0,(np=t.Platform||(t.Platform={})).IS_MAC=zf,np.IS_IOS=$f,np.IS_WINDOWS=Ff,np.IS_IE=Gf,np.IS_IE11=Uf,np.IS_EDGE=qf,np.IS_NETSCAPE=Wf,np.IS_CHROME_APP=Hf,np.IS_CHROME=Jf,np.IS_OPERA=Xf,np.IS_FIREFOX=Yf,np.IS_SAFARI=Zf,np.SUPPORT_TOUCH=Kf,np.SUPPORT_POINTER=Qf,np.SUPPORT_PASSIVE=tp,np.NO_FOREIGNOBJECT=ep,np.SUPPORT_FOREIGNOBJECT=!np.NO_FOREIGNOBJECT,function(t){function e(){const t=window.module;return null!=t&&null!=t.hot&&null!=t.hot.status?t.hot.status():"unkonwn"}t.getHMRStatus=e,t.isApplyingHMR=function(){return"apply"===e()};const n={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};t.isEventSupported=function(t){const e=document.createElement(n[t]||"div"),r=`on${t}`;let i=r in e;return i||(e.setAttribute(r,"return;"),i="function"==typeof e[r]),i}}(t.Platform||(t.Platform={}));const rp=/[\t\r\n\f]/g,ip=/\S+/g,sp=t=>` ${t} `;function op(t){return t&&t.getAttribute&&t.getAttribute("class")||""}function ap(t,e){if(null==t||null==e)return!1;const n=sp(op(t)),r=sp(e);return 1===t.nodeType&&n.replace(rp," ").includes(r)}function lp(t,e){if(null!=t&&null!=e){if("function"==typeof e)return lp(t,e(op(t)));if("string"==typeof e&&1===t.nodeType){const n=e.match(ip)||[],r=sp(op(t)).replace(rp," ");let i=n.reduce(((t,e)=>t.indexOf(sp(e))<0?`${t}${e} `:t),r);i=i.trim(),r!==i&&t.setAttribute("class",i)}}}function cp(t,e){if(null!=t){if("function"==typeof e)return cp(t,e(op(t)));if((!e||"string"==typeof e)&&1===t.nodeType){const n=(e||"").match(ip)||[],r=sp(op(t)).replace(rp," ");let i=n.reduce(((t,e)=>{const n=sp(e);return t.indexOf(n)>-1?t.replace(n," "):t}),r);i=e?i.trim():"",r!==i&&t.setAttribute("class",i)}}}function hp(t,e,n){if(null!=t&&null!=e)if(null==n||"string"!=typeof e){if("function"==typeof e)return hp(t,e(op(t),n),n);if("string"==typeof e){(e.match(ip)||[]).forEach((e=>{ap(t,e)?cp(t,e):lp(t,e)}))}}else n?lp(t,e):cp(t,e)}let up=0;function gp(){return up+=1,`v${up}`}function dp(t){return null!=t.id&&""!==t.id||(t.id=gp()),t.id}function fp(t){return null!=t&&("function"==typeof t.getScreenCTM&&t instanceof SVGElement)}const pp={svg:"http://www.w3.org/2000/svg",xmlns:"http://www.w3.org/2000/xmlns/",xml:"http://www.w3.org/XML/1998/namespace",xlink:"http://www.w3.org/1999/xlink",xhtml:"http://www.w3.org/1999/xhtml"},mp="1.1";function yp(t,e=document){return e.createElement(t)}function vp(t,e=pp.xhtml,n=document){return n.createElementNS(e,t)}function bp(t,e=document){return vp(t,pp.svg,e)}function xp(t){if(t){const e=`<svg xmlns="${pp.svg}" xmlns:xlink="${pp.xlink}" version="${mp}">${t}</svg>`,{documentElement:n}=wp(e,{async:!1});return n}const e=document.createElementNS(pp.svg,"svg");return e.setAttributeNS(pp.xmlns,"xmlns:xlink",pp.xlink),e.setAttribute("version",mp),e}function wp(t,e={}){let n;try{const r=new DOMParser;if(null!=e.async){r.async=e.async}n=r.parseFromString(t,e.mimeType||"text/xml")}catch(t){n=void 0}if(!n||n.getElementsByTagName("parsererror").length)throw new Error(`Invalid XML: ${t}`);return n}function Ap(t,e=!0){const n=t.nodeName;return e?n.toLowerCase():n.toUpperCase()}function Cp(t){let e=0,n=t.previousSibling;for(;n;)1===n.nodeType&&(e+=1),n=n.previousSibling;return e}function Pp(t,e){return t.querySelectorAll(e)}function Mp(t,e){return t.querySelector(e)}function Ep(t,e,n){const r=t.ownerSVGElement;let i=t.parentNode;for(;i&&i!==n&&i!==r;){if(ap(i,e))return i;i=i.parentNode}return null}function Sp(t,e){const n=e&&e.parentNode;return t===n||!!(n&&1===n.nodeType&&16&t.compareDocumentPosition(n))}function Op(t){if(t){(Array.isArray(t)?t:[t]).forEach((t=>{t.parentNode&&t.parentNode.removeChild(t)}))}}function Tp(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function kp(t,e){(Array.isArray(e)?e:[e]).forEach((e=>{null!=e&&t.appendChild(e)}))}function Np(t,e){const n=t.firstChild;return n?jp(n,e):kp(t,e)}function jp(t,e){const n=t.parentNode;if(n){(Array.isArray(e)?e:[e]).forEach((e=>{null!=e&&n.insertBefore(e,t)}))}}function _p(t,e){null!=e&&e.appendChild(t)}function Lp(t){return!!t&&1===t.nodeType}function Bp(t){try{return t instanceof HTMLElement}catch(e){return"object"==typeof t&&1===t.nodeType&&"object"==typeof t.style&&"object"==typeof t.ownerDocument}}const Ip=["viewBox","attributeName","attributeType","repeatCount","textLength","lengthAdjust","gradientUnits"];function Dp(t,e){return t.getAttribute(e)}function Rp(t,e){const n=Fp(e);n.ns?t.hasAttributeNS(n.ns,n.local)&&t.removeAttributeNS(n.ns,n.local):t.hasAttribute(e)&&t.removeAttribute(e)}function Vp(t,e,n){if(null==n)return Rp(t,e);const r=Fp(e);r.ns&&"string"==typeof n?t.setAttributeNS(r.ns,e,n):"id"===e?t.id=`${n}`:t.setAttribute(e,`${n}`)}function zp(t,e){Object.keys(e).forEach((n=>{Vp(t,n,e[n])}))}function $p(t,e,n){if(null==e){const e=t.attributes,n={};for(let t=0;t<e.length;t+=1)n[e[t].name]=e[t].value;return n}if("string"==typeof e&&void 0===n)return t.getAttribute(e);"object"==typeof e?zp(t,e):Vp(t,e,n)}function Fp(t){if(-1!==t.indexOf(":")){const e=t.split(":");return{ns:pp[e[0]],local:e[1]}}return{ns:null,local:t}}function Gp(t){const e={};return Object.keys(t).forEach((n=>{const r=Ip.includes(n)?n:Pf(n);e[r]=t[n]})),e}function Up(t){const e={};return t.split(";").forEach((t=>{const n=t.trim();if(n){const t=n.split("=");t.length&&(e[t[0].trim()]=t[1]?t[1].trim():"")}})),e}function qp(t,e){return Object.keys(e).forEach((n=>{if("class"===n)t[n]=t[n]?`${t[n]} ${e[n]}`:e[n];else if("style"===n){const r="object"==typeof t[n],i="object"==typeof e[n];let s,o;r&&i?(s=t[n],o=e[n]):r?(s=t[n],o=Up(e[n])):i?(s=Up(t[n]),o=e[n]):(s=Up(t[n]),o=Up(e[n])),t[n]=qp(s,o)}else t[n]=e[n]})),t}function Wp(t,e,n={}){const r=n.offset||0,i=[],s=[];let o,a,l=null;for(let c=0;c<t.length;c+=1){o=s[c]=t[c];for(let i=0,a=e.length;i<a;i+=1){const a=e[i],l=a.start+r,h=a.end+r;c>=l&&c<h&&("string"==typeof o?o=s[c]={t:t[c],attrs:a.attrs}:o.attrs=qp(qp({},o.attrs),a.attrs),n.includeAnnotationIndices&&(null==o.annotations&&(o.annotations=[]),o.annotations.push(i)))}a=s[c-1],a?B(o)&&B(a)?JSON.stringify(o.attrs)===JSON.stringify(a.attrs)?l.t+=o.t:(i.push(l),l=o):B(o)||B(a)?(i.push(l),l=o):l=(l||"")+o:l=o}return null!=l&&i.push(l),i}function Hp(t){return t.replace(/ /g," ")}var Jp=Object.freeze({__proto__:null,annotate:Wp,findAnnotationsAtIndex:function(t,e){return t?t.filter((t=>t.start<e&&e<=t.end)):[]},findAnnotationsBetweenIndexes:function(t,e,n){return t?t.filter((t=>e>=t.start&&e<t.end||n>t.start&&n<=t.end||t.start>=e&&t.end<n)):[]},sanitize:Hp,shiftAnnotations:function(t,e,n){return t&&t.forEach((t=>{t.start<e&&t.end>=e?t.end+=n:t.start>=e&&(t.start+=n,t.end+=n)})),t}});let Xp;t.DataUri=void 0,function(t){function e(t){const e="data:";return t.substr(0,e.length)===e}function n(t){let e=t.replace(/\s/g,"");e=decodeURIComponent(e);const n=e.indexOf(","),r=e.slice(0,n),i=r.split(":")[1].split(";")[0],s=e.slice(n+1);let o;o=r.indexOf("base64")>=0?atob(s):unescape(encodeURIComponent(s));const a=new Uint8Array(o.length);for(let t=0;t<o.length;t+=1)a[t]=o.charCodeAt(t);return new Blob([a],{type:i})}function r(t,e){const n=window.navigator.msSaveBlob;if(n)n(t,e);else{const n=window.URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r),window.URL.revokeObjectURL(n)}}function i(t){const e=parseFloat(t);return Number.isNaN(e)?null:e}t.isDataUrl=e,t.imageToDataUri=function(t,n){if(!t||e(t))return void setTimeout((()=>n(null,t)));const r=()=>{n(new Error(`Failed to load image: ${t}`))},i=window.FileReader?t=>{if(200===t.status){const e=new FileReader;e.onload=t=>{const e=t.target.result;n(null,e)},e.onerror=r,e.readAsDataURL(t.response)}else r()}:e=>{if(200===e.status){let r=t.split(".").pop()||"png";"svg"===r&&(r="svg+xml");const i=`data:image/${r};base64,`,s=new Uint8Array(e.response),o=i+btoa((t=>{const e=[];for(let n=0;n<t.length;n+=32768)e.push(String.fromCharCode.apply(null,t.subarray(n,n+32768)));return e.join("")})(s));n(null,o)}else r()},s=new XMLHttpRequest;s.responseType=window.FileReader?"blob":"arraybuffer",s.open("GET",t,!0),s.addEventListener("error",r),s.addEventListener("load",(()=>i(s))),s.send()},t.dataUriToBlob=n,t.downloadBlob=r,t.downloadDataUri=function(t,e){r(n(t),e)},t.svgToDataUrl=function(t,e={}){let n=null;const r=e=>(null==n&&(n=function(t){const e=t.match(/<svg[^>]*viewBox\s*=\s*(["']?)(.+?)\1[^>]*>/i);return e&&e[2]?e[2].replace(/\s+/," ").split(" "):null}(t)),null!=n?i(n[e]):null),s=e=>{const n=t.match(e);return n&&n[2]?i(n[2]):null};let o=e.width;if(null==o&&(o=s(/<svg[^>]*width\s*=\s*(["']?)(.+?)\1[^>]*>/i)),null==o&&(o=r(2)),null==o)throw new Error("Can not parse width from svg string");let a=e.height;if(null==a&&(a=s(/<svg[^>]*height\s*=\s*(["']?)(.+?)\1[^>]*>/i)),null==a&&(a=r(3)),null==a)throw new Error("Can not parse height from svg string");return`data:image/svg+xml,${encodeURIComponent(t).replace(/'/g,"%27").replace(/"/g,"%22")}`}}(t.DataUri||(t.DataUri={}));const Yp={px:t=>t,mm:t=>Xp*t,cm:t=>Xp*t*10,in:t=>Xp*t*25.4,pt:t=>Xp*(25.4*t/72),pc:t=>Xp*(25.4*t/6)};t.Unit=void 0,function(t){function e(t,e,n){const r=document.createElement("div"),i=r.style;i.display="inline-block",i.position="absolute",i.left="-15000px",i.top="-15000px",i.width=t+(n||"px"),i.height=e+(n||"px"),document.body.appendChild(r);const s=r.getBoundingClientRect(),o={width:s.width||0,height:s.height||0};return document.body.removeChild(r),o}t.measure=e,t.toPx=function(t,n){null==Xp&&(Xp=e("1","1","mm").width);const r=n?Yp[n]:null;return r?r(t):t}}(t.Unit||(t.Unit={}));const Zp=/-(.)/g;const Kp={},Qp=["webkit","ms","moz","o"],tm=document?document.createElement("div").style:{};function em(t){const e=t.replace(Zp,((t,e)=>e.toUpperCase()));if(null==Kp[e]){const t=e.charAt(0).toUpperCase()+e.slice(1);Kp[e]=e in tm?e:function(t){for(let e=0;e<Qp.length;e+=1){const n=Qp[e]+t;if(n in tm)return n}return null}(t)}return Kp[e]}function nm(t,e){const n=t.ownerDocument&&t.ownerDocument.defaultView&&t.ownerDocument.defaultView.opener?t.ownerDocument.defaultView.getComputedStyle(t,null):window.getComputedStyle(t,null);return n&&e?n.getPropertyValue(e)||n[e]:n}const rm=function(){const t=document;return t.selection?function(){t.selection.empty()}:window.getSelection?function(){const t=window.getSelection();t&&(t.empty?t.empty():t.removeAllRanges&&t.removeAllRanges())}:function(){}}(),im={animationIterationCount:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0};function sm(t){return/^--/.test(t)}function om(t,e,n){const r=window.getComputedStyle(t,null);return n?r.getPropertyValue(e)||void 0:r[e]||t.style[e]}function am(t,e){return parseInt(om(t,e),10)||0}function lm(t,e,n){if("string"!=typeof e)for(const n in e)lm(t,n,e[n]);else{const r=sm(e);if(r||(e=em(e)),void 0===n)return om(t,e,r);r||(n=function(t,e){return im[t]||"number"!=typeof e?e:`${e}px`}(e,n));const i=t.style;r?i.setProperty(e,n):i[e]=n}}const cm=new WeakMap;function hm(t,e){const n=Ri(e),r=cm.get(t);if(r)return r[n]}function um(t,e,n){const r=Ri(e),i=cm.get(t);i?i[r]=n:cm.set(t,{[r]:n})}function gm(t,e,n){if(!e){const e={};return Object.keys(cm).forEach((n=>{e[n]=hm(t,n)})),e}if("string"==typeof e)return void 0===n?hm(t,e):void um(t,e,n);for(const n in e)gm(t,n,e[n])}const dm={class:"className",contenteditable:"contentEditable",for:"htmlFor",readonly:"readOnly",maxlength:"maxLength",tabindex:"tabIndex",colspan:"colSpan",rowspan:"rowSpan",usemap:"useMap"};class fm{get[Symbol.toStringTag](){return fm.toStringTag}get type(){return this.node.nodeName}get id(){return this.node.id}set id(t){this.node.id=t}constructor(t,e,n){if(!t)throw new TypeError("Invalid element to create vector");let r;if(fm.isVector(t))r=t.node;else if("string"==typeof t)if("svg"===t.toLowerCase())r=xp();else if("<"===t[0]){const e=xp(t);r=document.importNode(e.firstChild,!0)}else r=document.createElementNS(pp.svg,t);else r=t;this.node=r,e&&this.setAttributes(e),n&&this.append(n)}transform(t,e){return null==t?Km(this.node):(Km(this.node,t,e),this)}translate(t,e=0,n={}){return null==t?Qm(this.node):(Qm(this.node,t,e,n),this)}rotate(t,e,n,r={}){return null==t?ty(this.node):(ty(this.node,t,e,n,r),this)}scale(t,e){return null==t?ey(this.node):(ey(this.node,t,e),this)}getTransformToElement(t){const e=fm.toNode(t);return ny(this.node,e)}removeAttribute(t){return Rp(this.node,t),this}getAttribute(t){return Dp(this.node,t)}setAttribute(t,e){return Vp(this.node,t,e),this}setAttributes(t){return zp(this.node,t),this}attr(t,e){return null==t?$p(this.node):"string"==typeof t&&void 0===e?$p(this.node,t):("object"==typeof t?$p(this.node,t):$p(this.node,t,e),this)}svg(){return this.node instanceof SVGSVGElement?this:fm.create(this.node.ownerSVGElement)}defs(){const t=this.svg()||this,e=t.node.getElementsByTagName("defs")[0];return e?fm.create(e):fm.create("defs").appendTo(t)}text(t,e={}){return bm(this.node,t,e),this}tagName(){return Ap(this.node)}clone(){return fm.create(this.node.cloneNode(!0))}remove(){return Op(this.node),this}empty(){return Tp(this.node),this}append(t){return kp(this.node,fm.toNodes(t)),this}appendTo(t){return _p(this.node,fm.isVector(t)?t.node:t),this}prepend(t){return Np(this.node,fm.toNodes(t)),this}before(t){return jp(this.node,fm.toNodes(t)),this}replace(t){return this.node.parentNode&&this.node.parentNode.replaceChild(fm.toNode(t),this.node),fm.create(t)}first(){return this.node.firstChild?fm.create(this.node.firstChild):null}last(){return this.node.lastChild?fm.create(this.node.lastChild):null}get(t){const e=this.node.childNodes[t];return e?fm.create(e):null}indexOf(t){return Array.prototype.slice.call(this.node.childNodes).indexOf(fm.toNode(t))}find(t){const e=[],n=Pp(this.node,t);if(n)for(let t=0,r=n.length;t<r;t+=1)e.push(fm.create(n[t]));return e}findOne(t){const e=Mp(this.node,t);return e?fm.create(e):null}findParentByClass(t,e){const n=Ep(this.node,t,e);return n?fm.create(n):null}matches(t){const e=this.node;this.node.matches;const n=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return n&&n.call(e,t)}contains(t){return Sp(this.node,fm.isVector(t)?t.node:t)}wrap(t){const e=fm.create(t),n=this.node.parentNode;return null!=n&&n.insertBefore(e.node,this.node),e.append(this)}parent(t){let e=this;if(null==e.node.parentNode)return null;if(e=fm.create(e.node.parentNode),null==t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=fm.create(e.node.parentNode));return e}children(){const t=this.node.childNodes,e=[];for(let n=0;n<t.length;n+=1){1===t[n].nodeType&&e.push(fm.create(t[n]))}return e}eachChild(t,e){const n=this.children();for(let r=0,i=n.length;r<i;r+=1)t.call(n[r],n[r],r,n),e&&n[r].eachChild(t,e);return this}index(){return Cp(this.node)}hasClass(t){return ap(this.node,t)}addClass(t){return lp(this.node,t),this}removeClass(t){return cp(this.node,t),this}toggleClass(t,e){return hp(this.node,t,e),this}toLocalPoint(t,e){return iy(this.node,t,e)}sample(t=1){return this.node instanceof SVGPathElement?Mm(this.node,t):[]}toPath(){return fm.create(Bm(this.node))}toPathData(){return Im(this.node)}}!function(t){function e(e){if(null==e)return!1;if(e instanceof t)return!0;const n=e[Symbol.toStringTag],r=e;return(null==n||n===t.toStringTag)&&r.node instanceof SVGElement&&"function"==typeof r.sample&&"function"==typeof r.toPath}function n(e,n,r){return new t(e,n,r)}function r(t){return e(t)?t.node:t}t.toStringTag=`X6.${t.name}`,t.isVector=e,t.create=n,t.createVectors=function(t){if("<"===t[0]){const e=xp(t),r=[];for(let t=0,i=e.childNodes.length;t<i;t+=1){const i=e.childNodes[t];r.push(n(document.importNode(i,!0)))}return r}return[n(t)]},t.toNode=r,t.toNodes=function(t){return Array.isArray(t)?t.map((t=>r(t))):[r(t)]}}(fm||(fm={}));const pm=document.createElement("canvas").getContext("2d");function mm(t,e,n){const r=n.eol,i=n.baseSize,s=n.lineHeight;let o,a=0;const l={},c=e.length-1;for(let s=0;s<=c;s+=1){let l=e[s],h=null;if("object"==typeof l){const t=l.attrs,e=fm.create("tspan",t);o=e.node;let u=l.t;r&&s===c&&(u+=r),o.textContent=u;const g=t.class;g&&e.addClass(g),n.includeAnnotationIndices&&e.attr("annotations",l.annotations.join(",")),h=parseFloat(t["font-size"]),void 0===h&&(h=i),h&&h>a&&(a=h)}else r&&s===c&&(l+=r),o=document.createTextNode(l||" "),i&&i>a&&(a=i);t.appendChild(o)}return a&&(l.maxFontSize=a),s?l.lineHeight=s:a&&(l.lineHeight=1.2*a),l}const ym=/em$/;function vm(t,e){const n=parseFloat(t);return ym.test(t)?n*e:n}function bm(t,e,n={}){e=Hp(e);const r=n.eol;let i=n.textPath;const s=n.textVerticalAnchor,o="middle"===s||"bottom"===s||"top"===s;let a=n.x;void 0===a&&(a=t.getAttribute("x")||0);const l=n.includeAnnotationIndices;let c=n.annotations;c&&!Array.isArray(c)&&(c=[c]);const h=n.lineHeight,u="auto"===h,g=u?"1.5em":h||"1em";let d=!0;const f=t.childNodes;if(1===f.length){const t=f[0];t&&"TITLE"===t.tagName.toUpperCase()&&(d=!1)}d&&Tp(t),$p(t,{"xml:space":"preserve",display:e||n.displayEmpty?null:"none"});const p=$p(t,"font-size");let m,y,v=parseFloat(p);v||(v=16,!o&&!c||p||$p(t,"font-size",`${v}`)),i?("string"==typeof i&&(i={d:i}),m=function(t,e){const n=fm.create(e),r=fm.create("textPath"),i=t.d;if(i&&void 0===t["xlink:href"]){const t=fm.create("path").attr("d",i).appendTo(n.defs());r.attr("xlink:href",`#${t.id}`)}return"object"==typeof t&&r.attr(t),r.node}(i,t)):m=document.createDocumentFragment();let b,x=0;const w=e.split("\n"),A=[],C=w.length-1;for(let t=0;t<=C;t+=1){y=g;let e="v-line";const n=bp("tspan");let s,o=w[t];if(o)if(c){s=mm(n,Wp(o,c,{offset:-x,includeAnnotationIndices:l}),{eol:t!==C&&r,baseSize:v,lineHeight:u?null:g,includeAnnotationIndices:l});const e=s.lineHeight;e&&u&&0!==t&&(y=e),0===t&&(b=.8*s.maxFontSize)}else r&&t!==C&&(o+=r),n.textContent=o;else{n.textContent="-",e+=" v-empty-line";const t=n.style;t.fillOpacity=0,t.strokeOpacity=0,c&&(s={})}s&&A.push(s),t>0&&n.setAttribute("dy",y),(t>0||i)&&n.setAttribute("x",a),n.className.baseVal=e,m.appendChild(n),x+=o.length+1}if(o)if(c)y=function(t,e,n,r){if(!Array.isArray(e))return 0;const i=e.length;if(!i)return 0;let s=e[0];const o=vm(s.maxFontSize,n)||n;let a=0;const l=vm(r,n);for(let t=1;t<i;t+=1)s=e[t],a+=vm(s.lineHeight,n)||l;const c=vm(s.maxFontSize,n)||n;let h;switch(t){case"middle":h=o/2-.15*c-a/2;break;case"bottom":h=-.25*c-a;break;default:h=.8*o}return h}(s,A,v,g);else if("top"===s)y="0.8em";else{let t;switch(C>0?(t=parseFloat(g)||1,t*=C,ym.test(g)||(t/=v)):t=0,s){case"middle":y=.3-t/2+"em";break;case"bottom":y=-t-.3+"em"}}else 0===s?y="0em":s?y=s:(y=0,null==t.getAttribute("y")&&t.setAttribute("y",`${b||"0.8em"}`));m.firstChild.setAttribute("dy",y),t.appendChild(m)}function xm(t,e={}){if(!t)return{width:0};const n=[],r=e["font-size"]?`${parseFloat(e["font-size"])}px`:"14px";return n.push(e["font-style"]||"normal"),n.push(e["font-variant"]||"normal"),n.push(e["font-weight"]||400),n.push(r),n.push(e["font-family"]||"sans-serif"),pm.font=n.join(" "),pm.measureText(t)}function wm(t,e,n,r={}){if(e>=n)return[t,""];const i=t.length,s={};let o=Math.round(e/n*i-1);for(o<0&&(o=0);o>=0&&o<i;){const n=t.slice(0,o),i=s[n]||xm(n,r).width,a=t.slice(0,o+1),l=s[a]||xm(a,r).width;if(s[n]=i,s[a]=l,i>e)o-=1;else{if(!(l<=e))break;o+=1}}return[t.slice(0,o),t.slice(o)]}function Am(t,e,n={},r={}){const i=e.width,s=e.height,o=r.eol||"\n",a=n.fontSize||14,l=n.lineHeight?parseFloat(n.lineHeight):Math.ceil(1.4*a),c=Math.floor(s/l);if(t.indexOf(o)>-1){const i=jf(),s=[];return t.split(o).map((t=>{const o=Am(t,Object.assign(Object.assign({},e),{height:Number.MAX_SAFE_INTEGER}),n,Object.assign(Object.assign({},r),{eol:i}));o&&s.push(...o.split(i))})),s.slice(0,c).join(o)}const{width:h}=xm(t,n);if(h<i)return t;const u=[];let g=t,d=h,f=r.ellipsis,p=0;f&&("string"!=typeof f&&(f="…"),p=xm(f,n).width);for(let t=0;t<c;t+=1){if(!(d>i)){u.push(g);break}if(t===c-1){const[t]=wm(g,i-p,d,n);u.push(f?`${t}${f}`:t)}else{const[t,e]=wm(g,i,d,n);u.push(t),g=e,d=xm(g,n).width}}return u.join(o)}const Cm=.551784;function Pm(t,e,n=NaN){const r=t.getAttribute(e);if(null==r)return n;const i=parseFloat(r);return Number.isNaN(i)?n:i}function Mm(t,e=1){const n=t.getTotalLength(),r=[];let i,s=0;for(;s<n;)i=t.getPointAtLength(s),r.push({distance:s,x:i.x,y:i.y}),s+=e;return r}function Em(t){return["M",Pm(t,"x1"),Pm(t,"y1"),"L",Pm(t,"x2"),Pm(t,"y2")].join(" ")}function Sm(t){const e=km(t);return 0===e.length?null:`${Tm(e)} Z`}function Om(t){const e=km(t);return 0===e.length?null:Tm(e)}function Tm(t){return`M ${t.map((t=>`${t.x} ${t.y}`)).join(" L")}`}function km(t){const e=[],n=t.points;if(n)for(let t=0,r=n.numberOfItems;t<r;t+=1)e.push(n.getItem(t));return e}function Nm(t){const e=Pm(t,"cx",0),n=Pm(t,"cy",0),r=Pm(t,"r"),i=r*Cm;return["M",e,n-r,"C",e+i,n-r,e+r,n-i,e+r,n,"C",e+r,n+i,e+i,n+r,e,n+r,"C",e-i,n+r,e-r,n+i,e-r,n,"C",e-r,n-i,e-i,n-r,e,n-r,"Z"].join(" ")}function jm(t){const e=Pm(t,"cx",0),n=Pm(t,"cy",0),r=Pm(t,"rx"),i=Pm(t,"ry")||r,s=r*Cm,o=i*Cm;return["M",e,n-i,"C",e+s,n-i,e+r,n-o,e+r,n,"C",e+r,n+o,e+s,n+i,e,n+i,"C",e-s,n+i,e-r,n+o,e-r,n,"C",e-r,n-o,e-s,n-i,e,n-i,"Z"].join(" ")}function _m(t){return Lm({x:Pm(t,"x",0),y:Pm(t,"y",0),width:Pm(t,"width",0),height:Pm(t,"height",0),rx:Pm(t,"rx",0),ry:Pm(t,"ry",0)})}function Lm(t){let e;const n=t.x,r=t.y,i=t.width,s=t.height,o=Math.min(t.rx||t["top-rx"]||0,i/2),a=Math.min(t.rx||t["bottom-rx"]||0,i/2),l=Math.min(t.ry||t["top-ry"]||0,s/2),c=Math.min(t.ry||t["bottom-ry"]||0,s/2);return e=o||a||l||c?["M",n,r+l,"v",s-l-c,"a",a,c,0,0,0,a,c,"h",i-2*a,"a",a,c,0,0,0,a,-c,"v",-(s-c-l),"a",o,l,0,0,0,-o,-l,"h",-(i-2*o),"a",o,l,0,0,0,-o,l,"Z"]:["M",n,r,"H",n+i,"V",r+s,"H",n,"V",r,"Z"],e.join(" ")}function Bm(t){const e=bp("path");$p(e,$p(t));const n=Im(t);return n&&e.setAttribute("d",n),e}function Im(t){const e=t.tagName.toLowerCase();switch(e){case"path":return t.getAttribute("d");case"line":return Em(t);case"polygon":return Sm(t);case"polyline":return Om(t);case"ellipse":return jm(t);case"circle":return Nm(t);case"rect":return _m(t)}throw new Error(`"${e}" cannot be converted to svg path element.`)}const Dm=bp("svg"),Rm=/(\w+)\(([^,)]+),?([^)]+)?\)/gi,Vm=/[ ,]+/,zm=/^(\w+)\((.*)\)/;function $m(t,e){const n=Dm.createSVGPoint();return n.x=t,n.y=e,n}function Fm(t){const e=Dm.createSVGMatrix();if(null!=t){const n=t,r=e;for(const t in n)r[t]=n[t]}return e}function Gm(t){return null!=t?(t instanceof DOMMatrix||(t=Fm(t)),Dm.createSVGTransformFromMatrix(t)):Dm.createSVGTransform()}function Um(t){let e=Fm();const n=null!=t&&t.match(Rm);if(!n)return e;for(let t=0,r=n.length;t<r;t+=1){const r=n[t].match(zm);if(r){let t,n,i,s,o,a=Fm();const l=r[2].split(Vm);switch(r[1].toLowerCase()){case"scale":t=parseFloat(l[0]),n=void 0===l[1]?t:parseFloat(l[1]),a=a.scaleNonUniform(t,n);break;case"translate":i=parseFloat(l[0]),s=parseFloat(l[1]),a=a.translate(i,s);break;case"rotate":o=parseFloat(l[0]),i=parseFloat(l[1])||0,s=parseFloat(l[2])||0,a=0!==i||0!==s?a.translate(i,s).rotate(o).translate(-i,-s):a.rotate(o);break;case"skewx":o=parseFloat(l[0]),a=a.skewX(o);break;case"skewy":o=parseFloat(l[0]),a=a.skewY(o);break;case"matrix":a.a=parseFloat(l[0]),a.b=parseFloat(l[1]),a.c=parseFloat(l[2]),a.d=parseFloat(l[3]),a.e=parseFloat(l[4]),a.f=parseFloat(l[5]);break;default:continue}e=e.multiply(a)}}return e}function qm(t){const e=t||{};return`matrix(${null!=e.a?e.a:1},${null!=e.b?e.b:0},${null!=e.c?e.c:0},${null!=e.d?e.d:1},${null!=e.e?e.e:0},${null!=e.f?e.f:0})`}function Wm(t){let e,n,r;if(t){const i=Vm;if(t.trim().indexOf("matrix")>=0){const i=Jm(Um(t));e=[i.translateX,i.translateY],n=[i.rotation],r=[i.scaleX,i.scaleY];const s=[];0===e[0]&&0===e[1]||s.push(`translate(${e.join(",")})`),1===r[0]&&1===r[1]||s.push(`scale(${r.join(",")})`),0!==n[0]&&s.push(`rotate(${n[0]})`),t=s.join(" ")}else{const s=t.match(/translate\((.*?)\)/);s&&(e=s[1].split(i));const o=t.match(/rotate\((.*?)\)/);o&&(n=o[1].split(i));const a=t.match(/scale\((.*?)\)/);a&&(r=a[1].split(i))}}const i=r&&r[0]?parseFloat(r[0]):1;return{raw:t||"",translation:{tx:e&&e[0]?parseInt(e[0],10):0,ty:e&&e[1]?parseInt(e[1],10):0},rotation:{angle:n&&n[0]?parseInt(n[0],10):0,cx:n&&n[1]?parseInt(n[1],10):void 0,cy:n&&n[2]?parseInt(n[2],10):void 0},scale:{sx:i,sy:r&&r[1]?parseFloat(r[1]):i}}}function Hm(t,e){return{x:e.x*t.a+e.y*t.c+0,y:e.x*t.b+e.y*t.d+0}}function Jm(t){const e=Hm(t,{x:0,y:1}),n=Hm(t,{x:1,y:0}),r=180/Math.PI*Math.atan2(e.y,e.x)-90;return{skewX:r,skewY:180/Math.PI*Math.atan2(n.y,n.x),translateX:t.e,translateY:t.f,scaleX:Math.sqrt(t.a*t.a+t.b*t.b),scaleY:Math.sqrt(t.c*t.c+t.d*t.d),rotation:r}}function Xm(t){let e,n,r,i;return t?(e=null==t.a?1:t.a,i=null==t.d?1:t.d,n=t.b,r=t.c):e=i=1,{sx:n?Math.sqrt(e*e+n*n):e,sy:r?Math.sqrt(r*r+i*i):i}}function Ym(t){let e={x:0,y:1};t&&(e=Hm(t,e));const n=180*Math.atan2(e.y,e.x)/Math.PI%360-90;return{angle:n%360+(n<0?360:0)}}function Zm(t){return{tx:t&&t.e||0,ty:t&&t.f||0}}function Km(t,e,n={}){if(null==e)return Um($p(t,"transform"));if(n.absolute)return void t.setAttribute("transform",qm(e));const r=t.transform,i=Gm(e);r.baseVal.appendItem(i)}function Qm(t,e,n=0,r={}){let i=$p(t,"transform");const s=Wm(i);if(null==e)return s.translation;i=s.raw,i=i.replace(/translate\([^)]*\)/g,"").trim();const o=`translate(${r.absolute?e:s.translation.tx+e},${r.absolute?n:s.translation.ty+n})`;t.setAttribute("transform",`${o} ${i}`.trim())}function ty(t,e,n,r,i={}){let s=$p(t,"transform");const o=Wm(s);if(null==e)return o.rotation;s=o.raw,s=s.replace(/rotate\([^)]*\)/g,"").trim(),e%=360;const a=`rotate(${i.absolute?e:o.rotation.angle+e}${null!=n&&null!=r?`,${n},${r}`:""})`;t.setAttribute("transform",`${s} ${a}`.trim())}function ey(t,e,n){let r=$p(t,"transform");const i=Wm(r);if(null==e)return i.scale;n=null==n?e:n,r=i.raw,r=r.replace(/scale\([^)]*\)/g,"").trim();const s=`scale(${e},${n})`;t.setAttribute("transform",`${r} ${s}`.trim())}function ny(t,e){if(fp(e)&&fp(t)){const n=e.getScreenCTM(),r=t.getScreenCTM();if(n&&r)return n.inverse().multiply(r)}return Fm()}function ry(t,e){let n=Fm();if(fp(e)&&fp(t)){let r=t;const i=[];for(;r&&r!==e;){const t=Um(r.getAttribute("transform")||null);i.push(t),r=r.parentNode}i.reverse().forEach((t=>{n=n.multiply(t)}))}return n}function iy(t,e,n){const r=t instanceof SVGSVGElement?t:t.ownerSVGElement,i=r.createSVGPoint();i.x=e,i.y=n;try{const e=r.getScreenCTM(),n=i.matrixTransform(e.inverse()),s=ny(t,r).inverse();return n.matrixTransform(s)}catch(t){return i}}var sy,oy,ay;!function(t){const e={};t.get=function(t){return e[t]||{}},t.register=function(t,n){e[t]=n},t.unregister=function(t){delete e[t]}}(sy||(sy={})),function(t){const e=new WeakMap;t.ensure=function(t){return e.has(t)||e.set(t,{events:Object.create(null)}),e.get(t)},t.get=function(t){return e.get(t)},t.remove=function(t){return e.delete(t)}}(oy||(oy={})),function(t){t.returnTrue=()=>!0,t.returnFalse=()=>!1,t.stopPropagationCallback=function(t){t.stopPropagation()},t.addEventListener=function(t,e,n){null!=t.addEventListener&&t.addEventListener(e,n)},t.removeEventListener=function(t,e,n){null!=t.removeEventListener&&t.removeEventListener(e,n)}}(ay||(ay={})),function(t){const e=/[^\x20\t\r\n\f]+/g,n=/^([^.]*)(?:\.(.+)|)/;t.splitType=function(t){return(t||"").match(e)||[""]},t.normalizeType=function(t){const e=n.exec(t)||[];return{originType:e[1]?e[1].trim():e[1],namespaces:e[2]?e[2].split(".").map((t=>t.trim())).sort():[]}},t.isValidTarget=function(t){return 1===t.nodeType||9===t.nodeType||!+t.nodeType},t.isValidSelector=function(t,e){if(e){const n=t;return null!=n.querySelector&&null!=n.querySelector(e)}return!0}}(ay||(ay={})),function(t){let e=0;const n=new WeakMap;t.ensureHandlerId=function(t){return n.has(t)||(n.set(t,e),e+=1),n.get(t)},t.getHandlerId=function(t){return n.get(t)},t.removeHandlerId=function(t){return n.delete(t)},t.setHandlerId=function(t,e){return n.set(t,e)}}(ay||(ay={})),function(t){t.getHandlerQueue=function(t,e){const n=[],r=oy.get(t),i=r&&r.events&&r.events[e.type],s=i&&i.handlers||[],o=i?i.delegateCount:0;if(o>0&&!("click"===e.type&&"number"==typeof e.button&&e.button>=1))for(let r=e.target;r!==t;r=r.parentNode||t)if(1===r.nodeType&&("click"!==e.type||!0!==r.disabled)){const e=[],i={};for(let n=0;n<o;n+=1){const o=s[n],a=o.selector;if(null!=a&&null==i[a]){const e=[];t.querySelectorAll(a).forEach((t=>{e.push(t)})),i[a]=e.includes(r)}i[a]&&e.push(o)}e.length&&n.push({elem:r,handlers:e})}return o<s.length&&n.push({elem:t,handlers:s.slice(o)}),n}}(ay||(ay={})),function(t){t.isWindow=function(t){return null!=t&&t===t.window}}(ay||(ay={})),function(t){t.contains=function(t,e){const n=9===t.nodeType?t.documentElement:t,r=e&&e.parentNode;return t===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):t.compareDocumentPosition&&16&t.compareDocumentPosition(r)))}}(ay||(ay={}));class ly{constructor(t,e){this.isDefaultPrevented=ay.returnFalse,this.isPropagationStopped=ay.returnFalse,this.isImmediatePropagationStopped=ay.returnFalse,this.isSimulated=!1,this.preventDefault=()=>{const t=this.originalEvent;this.isDefaultPrevented=ay.returnTrue,t&&!this.isSimulated&&t.preventDefault()},this.stopPropagation=()=>{const t=this.originalEvent;this.isPropagationStopped=ay.returnTrue,t&&!this.isSimulated&&t.stopPropagation()},this.stopImmediatePropagation=()=>{const t=this.originalEvent;this.isImmediatePropagationStopped=ay.returnTrue,t&&!this.isSimulated&&t.stopImmediatePropagation(),this.stopPropagation()},"string"==typeof t?this.type=t:t.type&&(this.originalEvent=t,this.type=t.type,this.isDefaultPrevented=t.defaultPrevented?ay.returnTrue:ay.returnFalse,this.target=t.target,this.currentTarget=t.currentTarget,this.relatedTarget=t.relatedTarget,this.timeStamp=t.timeStamp),e&&Object.assign(this,e),this.timeStamp||(this.timeStamp=Date.now())}}!function(t){t.create=function(e){return e instanceof t?e:new t(e)}}(ly||(ly={})),function(t){t.addProperty=function(e,n){Object.defineProperty(t.prototype,e,{enumerable:!0,configurable:!0,get:"function"==typeof n?function(){if(this.originalEvent)return n(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})}}(ly||(ly={})),function(t){const e={bubbles:!0,cancelable:!0,eventPhase:!0,detail:!0,view:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pageX:!0,pageY:!0,screenX:!0,screenY:!0,toElement:!0,pointerId:!0,pointerType:!0,char:!0,code:!0,charCode:!0,key:!0,keyCode:!0,touches:!0,changedTouches:!0,targetTouches:!0,which:!0,altKey:!0,ctrlKey:!0,metaKey:!0,shiftKey:!0};Object.keys(e).forEach((n=>t.addProperty(n,e[n])))}(ly||(ly={})),sy.register("load",{noBubble:!0}),sy.register("beforeunload",{postDispatch(t,e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}),sy.register("mouseenter",{delegateType:"mouseover",bindType:"mouseover",handle(t,e){let n;const r=e.relatedTarget,i=e.handleObj;return r&&(r===t||ay.contains(t,r))||(e.type=i.originType,n=i.handler.call(t,e),e.type="mouseover"),n}}),sy.register("mouseleave",{delegateType:"mouseout",bindType:"mouseout",handle(t,e){let n;const r=e.relatedTarget,i=e.handleObj;return r&&(r===t||ay.contains(t,r))||(e.type=i.originType,n=i.handler.call(t,e),e.type="mouseout"),n}});var cy,hy,uy,gy=window&&window.__rest||function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]])}return n};!function(t){let e;function n(t,e,...n){const r=ly.create(e);r.delegateTarget=t;const i=sy.get(r.type);if(i.preDispatch&&!1===i.preDispatch(t,r))return;const s=ay.getHandlerQueue(t,r);for(let t=0,e=s.length;t<e&&!r.isPropagationStopped();t+=1){const e=s[t];r.currentTarget=e.elem;for(let t=0,i=e.handlers.length;t<i&&!r.isImmediatePropagationStopped();t+=1){const i=e.handlers[t];if(null==r.rnamespace||i.namespace&&r.rnamespace.test(i.namespace)){r.handleObj=i,r.data=i.data;const t=sy.get(i.originType).handle,s=t?t(e.elem,r,...n):i.handler.call(e.elem,r,...n);void 0!==s&&(r.result=s,!1===s&&(r.preventDefault(),r.stopPropagation()))}}}return i.postDispatch&&i.postDispatch(t,r),r.result}t.on=function(t,r,i,s,o){if(!ay.isValidTarget(t))return;let a;if("function"!=typeof i){const{handler:t,selector:e}=i,n=gy(i,["handler","selector"]);i=t,o=e,a=n}const l=oy.ensure(t);let c=l.handler;null==c&&(c=l.handler=function(r,...i){return e!==r.type?n(t,r,...i):void 0});const h=ay.ensureHandlerId(i);ay.splitType(r).forEach((e=>{const{originType:n,namespaces:r}=ay.normalizeType(e);if(!n)return;let u=n,g=sy.get(u);u=(o?g.delegateType:g.bindType)||u,g=sy.get(u);const d=Object.assign({type:u,originType:n,data:s,selector:o,guid:h,handler:i,namespace:r.join(".")},a),f=l.events;let p=f[u];p||(p=f[u]={handlers:[],delegateCount:0},g.setup&&!1!==g.setup(t,s,r,c)||ay.addEventListener(t,u,c)),g.add&&(ay.removeHandlerId(d.handler),g.add(t,d),ay.setHandlerId(d.handler,h)),o?(p.handlers.splice(p.delegateCount,0,d),p.delegateCount+=1):p.handlers.push(d)}))},t.off=function t(e,n,r,i,s){const o=oy.get(e);if(!o)return;const a=o.events;a&&(ay.splitType(n).forEach((n=>{const{originType:l,namespaces:c}=ay.normalizeType(n);if(!l)return void Object.keys(a).forEach((s=>{t(e,s+n,r,i,!0)}));let h=l;const u=sy.get(h);h=(i?u.delegateType:u.bindType)||h;const g=a[h];if(!g)return;const d=c.length>0?new RegExp(`(^|\\.)${c.join("\\.(?:.*\\.|)")}(\\.|$)`):null,f=g.handlers.length;for(let t=g.handlers.length-1;t>=0;t-=1){const n=g.handlers[t];!s&&l!==n.originType||r&&ay.getHandlerId(r)!==n.guid||!(null==d||n.namespace&&d.test(n.namespace))||!(null==i||i===n.selector||"**"===i&&n.selector)||(g.handlers.splice(t,1),n.selector&&(g.delegateCount-=1),u.remove&&u.remove(e,n))}f&&0===g.handlers.length&&(u.teardown&&!1!==u.teardown(e,c,o.handler)||ay.removeEventListener(e,h,o.handler),delete a[h])})),0===Object.keys(a).length&&oy.remove(e))},t.dispatch=n,t.trigger=function(t,n,r,i){let s=t,o="string"==typeof t?t:t.type,a="string"==typeof t||null==s.namespace?[]:s.namespace.split(".");const l=r;if(3===l.nodeType||8===l.nodeType)return;o.indexOf(".")>-1&&(a=o.split("."),o=a.shift(),a.sort());const c=o.indexOf(":")<0&&`on${o}`;s=t instanceof ly?t:new ly(o,"object"==typeof t?t:null),s.namespace=a.join("."),s.rnamespace=s.namespace?new RegExp(`(^|\\.)${a.join("\\.(?:.*\\.|)")}(\\.|$)`):null,s.result=void 0,s.target||(s.target=l);const h=[s];Array.isArray(n)?h.push(...n):h.push(n);const u=sy.get(o);if(!i&&u.trigger&&!1===u.trigger(l,s,n))return;let g;const d=[l];if(!i&&!u.noBubble&&!ay.isWindow(l)){g=u.delegateType||o;let t=l,e=l.parentNode;for(;null!=e;)d.push(e),t=e,e=e.parentNode;if(t===(l.ownerDocument||document)){const e=t.defaultView||t.parentWindow||window;d.push(e)}}let f=l;for(let t=0,e=d.length;t<e&&!s.isPropagationStopped();t+=1){const e=d[t];f=e,s.type=t>1?g:u.bindType||o;const n=oy.get(e);n&&n.events[s.type]&&n.handler&&n.handler.call(e,...h);const r=c&&e[c]||null;r&&ay.isValidTarget(e)&&(s.result=r.call(e,...h),!1===s.result&&s.preventDefault())}if(s.type=o,!i&&!s.isDefaultPrevented()){const t=u.preventDefault;if((null==t||!1===t(d.pop(),s,n))&&ay.isValidTarget(l)&&c&&"function"==typeof l[o]&&!ay.isWindow(l)){const t=l[c];t&&(l[c]=null),e=o,s.isPropagationStopped()&&f.addEventListener(o,ay.stopPropagationCallback),l[o](),s.isPropagationStopped()&&f.removeEventListener(o,ay.stopPropagationCallback),e=void 0,t&&(l[c]=t)}}return s.result}}(cy||(cy={})),function(t){t.on=function(t,e,n,r,i){return uy.on(t,e,n,r,i),t},t.once=function(t,e,n,r,i){return uy.on(t,e,n,r,i,!0),t},t.off=function(t,e,n,r){return uy.off(t,e,n,r),t},t.trigger=function(t,e,n,r){return cy.trigger(e,n,t,r),t}}(hy||(hy={})),function(t){t.on=function e(n,r,i,s,o,a){if("object"==typeof r)return"string"!=typeof i&&(s=s||i,i=void 0),void Object.keys(r).forEach((t=>e(n,t,i,s,r[t],a)));if(null==s&&null==o?(o=i,s=i=void 0):null==o&&("string"==typeof i?(o=s,s=void 0):(o=s,s=i,i=void 0)),!1===o)o=ay.returnFalse;else if(!o)return;if(a){const e=o;o=function(r,...i){return t.off(n,r),e.call(this,r,...i)},ay.setHandlerId(o,ay.ensureHandlerId(e))}cy.on(n,r,o,s,i)},t.off=function t(e,n,r,i){const s=n;if(s&&null!=s.preventDefault&&null!=s.handleObj){const e=s.handleObj;t(s.delegateTarget,e.namespace?`${e.originType}.${e.namespace}`:e.originType,e.selector,e.handler)}else if("object"!=typeof n)!1!==r&&"function"!=typeof r||(i=r,r=void 0),!1===i&&(i=ay.returnFalse),cy.off(e,n,i,r);else{const i=n;Object.keys(i).forEach((n=>t(e,n,r,i[n])))}}}(uy||(uy={}));class dy{constructor(e,n,r){this.animationFrameId=0,this.deltaX=0,this.deltaY=0,this.eventName=t.Platform.isEventSupported("wheel")?"wheel":"mousewheel",this.target=e,this.onWheelCallback=n,this.onWheelGuard=r,this.onWheel=this.onWheel.bind(this),this.didWheel=this.didWheel.bind(this)}enable(){this.target.addEventListener(this.eventName,this.onWheel,{passive:!1})}disable(){this.target.removeEventListener(this.eventName,this.onWheel)}onWheel(t){if(null!=this.onWheelGuard&&!this.onWheelGuard(t))return;let e;this.deltaX+=t.deltaX,this.deltaY+=t.deltaY,t.preventDefault(),0===this.deltaX&&0===this.deltaY||(t.stopPropagation(),e=!0),!0===e&&0===this.animationFrameId&&(this.animationFrameId=requestAnimationFrame((()=>{this.didWheel(t)})))}didWheel(t){this.animationFrameId=0,this.onWheelCallback(t,this.deltaX,this.deltaY),this.deltaX=0,this.deltaY=0}}function fy(t){const e=t.getBoundingClientRect(),n=t.ownerDocument.defaultView;return{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}}var py=Object.freeze({__proto__:null,CASE_SENSITIVE_ATTR:Ip,get Event(){return hy},get EventHook(){return sy},get EventObject(){return ly},KAPPA:Cm,MouseWheelHandle:dy,addClass:lp,after:function(t,e){const n=t.parentNode;if(n){(Array.isArray(e)?e:[e]).forEach((e=>{null!=e&&n.insertBefore(e,t.nextSibling)}))}},append:kp,appendTo:_p,attr:$p,before:jp,breakText:Am,children:function(t,e){const n=[];let r=t.firstChild;for(;r;r=r.nextSibling)1===r.nodeType&&(e&&!ap(r,e)||n.push(r));return n},circleToPathData:Nm,clearSelection:rm,computeStyle:om,computeStyleInt:am,contains:Sp,createElement:yp,createElementNS:vp,createSVGMatrix:Fm,createSVGPoint:$m,createSVGTransform:Gm,createSlicePathData:function(t,e,n,r){const i=2*Math.PI-1e-6,s=t,o=e;let a=n,l=r;if(l<a){const t=a;a=l,l=t}const c=l-a,h=c<Math.PI?"0":"1",u=Math.cos(a),g=Math.sin(a),d=Math.cos(l),f=Math.sin(l);return c>=i?s?`M0,${o}A${o},${o} 0 1,1 0,${-o}A${o},${o} 0 1,1 0,${o}M0,${s}A${s},${s} 0 1,0 0,${-s}A${s},${s} 0 1,0 0,${s}Z`:`M0,${o}A${o},${o} 0 1,1 0,${-o}A${o},${o} 0 1,1 0,${o}Z`:s?`M${o*u},${o*g}A${o},${o} 0 ${h},1 ${o*d},${o*f}L${s*d},${s*f}A${s},${s} 0 ${h},0 ${s*u},${s*g}Z`:`M${o*u},${o*g}A${o},${o} 0 ${h},1 ${o*d},${o*f}L0,0Z`},createSvgDocument:xp,createSvgElement:bp,css:lm,data:gm,decomposeMatrix:Jm,ellipseToPathData:jm,empty:Tp,ensureId:dp,find:Pp,findOne:Mp,findParentByClass:Ep,getAttribute:Dp,getClass:op,getComputedStyle:nm,getData:hm,getPointsFromSvgElement:km,getTransformToElement:ny,getTransformToParentElement:ry,getVendorPrefixedName:em,hasClass:ap,hasScrollbars:function(t){const e=nm(t);return null!=e&&("scroll"===e.overflow||"auto"===e.overflow)},height:function(t){return t.getBoundingClientRect().height},index:Cp,isCSSVariable:sm,isElement:Lp,isHTMLElement:Bp,isSVGGraphicsElement:fp,kebablizeAttrs:Gp,lineToPathData:Em,matrixToRotation:Ym,matrixToScale:Xm,matrixToTransformString:qm,matrixToTranslation:Zm,measureText:xm,mergeAttrs:qp,ns:pp,offset:fy,parseTransformString:Wm,parseXML:wp,polygonToPathData:Sm,polylineToPathData:Om,position:function(t){const e="fixed"===om(t,"position");let n;if(e){const e=t.getBoundingClientRect();n={left:e.left,top:e.top}}else n=fy(t);if(!e){const e=t.ownerDocument;let r=t.offsetParent||e.documentElement;for(;(r===e.body||r===e.documentElement)&&"static"===om(r,"position");)r=r.parentNode;if(r!==t&&Lp(r)){const t=fy(r);n.top-=t.top+am(r,"borderTopWidth"),n.left-=t.left+am(r,"borderLeftWidth")}}return{top:n.top-am(t,"marginTop"),left:n.left-am(t,"marginLeft")}},prepend:Np,prop:function t(e,n,r){if(n){if("string"==typeof n)return n=dm[n]||n,arguments.length<3?e[n]:void(e[n]=r);for(const r in n)t(e,r,n[r])}},qualifyAttr:Fp,rectToPathData:Lm,rectangleToPathData:_m,remove:Op,removeAttribute:Rp,removeClass:cp,rotate:ty,sample:Mm,scale:ey,setAttribute:Vp,setAttributes:zp,setData:um,setPrefixedStyle:function(t,e,n){const r=em(e);null!=r&&(t[r]=n),t[e]=n},splitTextByLength:wm,styleToObject:Up,svgVersion:mp,tagName:Ap,text:bm,toLocalPoint:iy,toPath:Bm,toPathData:Im,toggleClass:hp,transform:Km,transformStringToMatrix:Um,translate:Qm,uniqueId:gp,width:function(t){return t.getBoundingClientRect().width}});function my(t,e=60){let n=null;return(...r)=>{n&&clearTimeout(n),n=window.setTimeout((()=>{t.apply(this,r)}),e)}}const yy="undefined"!=typeof ResizeObserver?function(t){let e=null,n=[];const r=my((()=>{n.forEach((e=>{e(t)}))})),i=()=>{e&&(e.disconnect(),n=[],e=null)};return{element:t,bind:i=>{e||(e=(()=>{const e=new ResizeObserver(r);return e.observe(t),r(),e})()),-1===n.indexOf(i)&&n.push(i)},destroy:i,unbind:t=>{const r=n.indexOf(t);-1!==r&&n.splice(r,1),0===n.length&&e&&i()}}}:function(t){let e=null,n=[];const r=my((()=>{n.forEach((e=>e(t)))})),i=()=>{e&&e.parentNode&&(e.contentDocument&&e.contentDocument.defaultView.removeEventListener("resize",r),e.parentNode.removeChild(e),e=null,n=[])};return{element:t,bind:i=>{e||(e=(()=>{"static"===getComputedStyle(t).position&&(t.style.position="relative");const e=document.createElement("object");return e.onload=()=>{e.contentDocument.defaultView.addEventListener("resize",r),r()},e.style.display="block",e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.height="100%",e.style.width="100%",e.style.overflow="hidden",e.style.pointerEvents="none",e.style.zIndex="-1",e.style.opacity="0",e.setAttribute("tabindex","-1"),e.type="text/html",t.appendChild(e),e.data="about:blank",e})()),-1===n.indexOf(i)&&n.push(i)},destroy:i,unbind:t=>{const r=n.indexOf(t);-1!==r&&n.splice(r,1),0===n.length&&e&&i()}}};t.SizeSensor=void 0,function(t){const e=new WeakMap;function n(t){let n=e.get(t);return n||(n=yy(t),e.set(t,n),n)}t.bind=(t,e)=>{const r=n(t);return r.bind(e),()=>r.unbind(e)},t.clear=t=>{!function(t){t.destroy(),e.delete(t.element)}(n(t))}}(t.SizeSensor||(t.SizeSensor={}));class vy{constructor(t={}){this.comparator=t.comparator||vy.defaultComparator,this.index={},this.data=t.data||[],this.heapify()}isEmpty(){return 0===this.data.length}insert(t,e,n){const r={priority:t,value:e},i=this.data.length;return n&&(r.id=n,this.index[n]=i),this.data.push(r),this.bubbleUp(i),this}peek(){return this.data[0]?this.data[0].value:null}peekPriority(){return this.data[0]?this.data[0].priority:null}updatePriority(t,e){const n=this.index[t];if(void 0===n)throw new Error(`Node with id '${t}' was not found in the heap.`);const r=this.data,i=r[n].priority,s=this.comparator(e,i);s<0?(r[n].priority=e,this.bubbleUp(n)):s>0&&(r[n].priority=e,this.bubbleDown(n))}remove(){const t=this.data,e=t[0],n=t.pop();return e.id&&delete this.index[e.id],t.length>0&&(t[0]=n,n.id&&(this.index[n.id]=0),this.bubbleDown(0)),e?e.value:null}heapify(){for(let t=0;t<this.data.length;t+=1)this.bubbleUp(t)}bubbleUp(t){const e=this.data;let n,r,i=t;for(;i>0&&(r=i-1>>>1,this.comparator(e[i].priority,e[r].priority)<0);){n=e[r],e[r]=e[i];let t=e[i].id;null!=t&&(this.index[t]=r),e[i]=n,t=e[i].id,null!=t&&(this.index[t]=i),i=r}}bubbleDown(t){const e=this.data,n=e.length-1;let r=t;for(;;){const t=1+(r<<1),i=t+1;let s=r;if(t<=n&&this.comparator(e[t].priority,e[s].priority)<0&&(s=t),i<=n&&this.comparator(e[i].priority,e[s].priority)<0&&(s=i),s===r)break;{const t=e[s];e[s]=e[r];let n=e[r].id;null!=n&&(this.index[n]=s),e[r]=t,n=e[r].id,null!=n&&(this.index[n]=r),r=s}}}}var by,xy;!function(t){t.defaultComparator=(t,e)=>t-e}(vy||(vy={})),t.Dijkstra=void 0,(t.Dijkstra||(t.Dijkstra={})).run=function(t,e,n=((t,e)=>1)){const r={},i={},s={},o=new vy;for(r[e]=0,Object.keys(t).forEach((t=>{t!==e&&(r[t]=1/0),o.insert(r[t],t,t)}));!o.isEmpty();){const e=o.remove();s[e]=!0;const a=t[e]||[];for(let t=0;t<a.length;t+=1){const l=a[t];if(!s[l]){const t=r[e]+n(e,l);t<r[l]&&(r[l]=t,i[l]=e,o.updatePriority(l,t))}}}return i};class wy{constructor(t,e,n,r){return null==t?this.set(255,255,255,1):"number"==typeof t?this.set(t,e,n,r):"string"==typeof t?wy.fromString(t)||this:Array.isArray(t)?this.set(t):void this.set(t.r,t.g,t.b,null==t.a?1:t.a)}blend(t,e,n){this.set(t.r+(e.r-t.r)*n,t.g+(e.g-t.g)*n,t.b+(e.b-t.b)*n,t.a+(e.a-t.a)*n)}lighten(t){const e=wy.lighten(this.toArray(),t);this.r=e[0],this.g=e[1],this.b=e[2],this.a=e[3]}darken(t){this.lighten(-t)}set(t,e,n,r){const i=Array.isArray(t)?t[0]:t,s=Array.isArray(t)?t[1]:e,o=Array.isArray(t)?t[2]:n,a=Array.isArray(t)?t[3]:r;return this.r=Math.round(Hi(i,0,255)),this.g=Math.round(Hi(s,0,255)),this.b=Math.round(Hi(o,0,255)),this.a=null==a?1:Hi(a,0,1),this}toHex(){return`#${["r","g","b"].map((t=>{const e=this[t].toString(16);return e.length<2?`0${e}`:e})).join("")}`}toRGBA(){return this.toArray()}toHSLA(){return wy.rgba2hsla(this.r,this.g,this.b,this.a)}toCSS(t){const e=`${this.r},${this.g},${this.b},`;return t?`rgb(${e})`:`rgba(${e},${this.a})`}toGrey(){return wy.makeGrey(Math.round((this.r+this.g+this.b)/3),this.a)}toArray(){return[this.r,this.g,this.b,this.a]}toString(){return this.toCSS()}}!function(t){function e(e){return new t([...a(e),1])}function n(e){const n=e.toLowerCase().match(/^rgba?\(([\s.,0-9]+)\)/);if(n){const e=n[1].split(/\s*,\s*/).map((t=>parseInt(t,10)));return new t(e)}return null}function r(t,e,n){n<0&&++n,n>1&&--n;const r=6*n;return r<1?t+(e-t)*r:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function i(e){const n=e.toLowerCase().match(/^hsla?\(([\s.,0-9]+)\)/);if(n){const e=n[2].split(/\s*,\s*/),r=(parseFloat(e[0])%360+360)%360/360,i=parseFloat(e[1])/100,o=parseFloat(e[2])/100,a=null==e[3]?1:parseInt(e[3],10);return new t(s(r,i,o,a))}return null}function s(t,e,n,i){const s=Array.isArray(t)?t[0]:t,o=Array.isArray(t)?t[1]:e,a=Array.isArray(t)?t[2]:n,l=Array.isArray(t)?t[3]:i,c=a<=.5?a*(o+1):a+o-a*o,h=2*a-c;return[256*r(h,c,s+1/3),256*r(h,c,s),256*r(h,c,s-1/3),null==l?1:l]}function o(e){return new t(Math.round(256*Math.random()),Math.round(256*Math.random()),Math.round(256*Math.random()),e?void 0:parseFloat(Math.random().toFixed(2)))}function a(t){const e=0===t.indexOf("#")?t:`#${t}`;let n=Number(`0x${e.substr(1)}`);if(4!==e.length&&7!==e.length||Number.isNaN(n))throw new Error("Invalid hex color.");const r=4===e.length?4:8,i=(1<<r)-1,s=["b","g","r"].map((()=>{const t=n&i;return n>>=r,4===r?17*t:t}));return[s[2],s[1],s[0]]}function l(t,e,n){const r=t=>t.length<2?`0${t}`:t;return`${r(t.toString(16))}${r(e.toString(16))}${r(n.toString(16))}`}function c(t,e){if("string"==typeof t){const n="#"===t[0],r=parseInt(n?t.substr(1):t,16),i=Hi((r>>16)+e,0,255),s=Hi((r>>8&255)+e,0,255);return`${n?"#":""}${(Hi((255&r)+e,0,255)|s<<8|i<<16).toString(16)}`}const n=a(c(l(t[0],t[1],t[2]),e));return[n[0],n[1],n[2],t[3]]}t.fromArray=function(e){return new t(e)},t.fromHex=e,t.fromRGBA=n,t.fromHSLA=i,t.fromString=function(r){if(r.startsWith("#"))return e(r);if(r.startsWith("rgb"))return n(r);const s=t.named[r];return s?e(s):i(r)},t.makeGrey=function(e,n){return t.fromArray([e,e,e,n])},t.rgba2hsla=function(t,e,n,r){const i=Array.isArray(t)?t[0]:t,s=Array.isArray(t)?t[1]:e,o=Array.isArray(t)?t[2]:n,a=Array.isArray(t)?t[3]:r,l=Math.max(i,s,o),c=Math.min(i,s,o),h=(l+c)/2;let u=0,g=0;if(c!==l){const t=l-c;switch(g=h>.5?t/(2-l-c):t/(l+c),l){case i:u=(s-o)/t+(s<o?6:0);break;case s:u=(o-i)/t+2;break;case o:u=(i-s)/t+4}u/=6}return[u,g,h,null==a?1:a]},t.hsla2rgba=s,t.random=o,t.randomHex=function(){let t="#";for(let e=0;e<6;e+=1)t+="0123456789ABCDEF"[Math.floor(16*Math.random())];return t},t.randomRGBA=function(t){return o(t).toString()},t.invert=function(t,e){if("string"==typeof t){const n="#"===t[0],[r,i,s]=a(t);return e?.299*r+.587*i+.114*s>186?"#000000":"#ffffff":`${n?"#":""}${l(255-r,255-i,255-s)}`}const n=t[0],r=t[1],i=t[2],s=t[3];return e?.299*n+.587*r+.114*i>186?[0,0,0,s]:[255,255,255,s]:[255-n,255-r,255-i,s]},t.lighten=function(t,e){return c(t,e)},t.darken=function(t,e){return c(t,-e)}}(wy||(wy={})),function(t){t.named={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",burntsienna:"#ea7e5d",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}}(wy||(wy={}));class Ay{constructor(){this.clear()}clear(){this.map=new WeakMap,this.arr=[]}has(t){return this.map.has(t)}get(t){return this.map.get(t)}set(t,e){this.map.set(t,e),this.arr.push(t)}delete(t){const e=this.arr.indexOf(t);e>=0&&this.arr.splice(e,1);const n=this.map.get(t);return this.map.delete(t),n}each(t){this.arr.forEach((e=>{const n=this.map.get(e);t(n,e)}))}dispose(){this.clear()}}t.ModifierKey=void 0,function(t){function e(t){const e=[],n=[];return Array.isArray(t)?e.push(...t):t.split("|").forEach((t=>{-1===t.indexOf("&")?e.push(t):n.push(...t.split("&"))})),{or:e,and:n}}t.parse=e,t.equals=function(t,n){if(null!=t&&null!=n){const r=e(t),i=e(n),s=r.or.sort(),o=i.or.sort(),a=r.and.sort(),l=i.and.sort(),c=(t,e)=>t.length===e.length&&(0===t.length||t.every(((t,n)=>t===e[n])));return c(s,o)&&c(a,l)}return null==t&&null==n},t.isMatch=function(t,n,r){if(null==n||Array.isArray(n)&&0===n.length)return!r||!0!==t.altKey&&!0!==t.ctrlKey&&!0!==t.metaKey&&!0!==t.shiftKey;const{or:i,and:s}=e(n),o=e=>{const n=`${e.toLowerCase()}Key`;return!0===t[n]};return i.some((t=>o(t)))&&s.every((t=>o(t)))}}(t.ModifierKey||(t.ModifierKey={})),t.Timing=void 0,(by=t.Timing||(t.Timing={})).linear=t=>t,by.quad=t=>t*t,by.cubic=t=>t*t*t,by.inout=t=>{if(t<=0)return 0;if(t>=1)return 1;const e=t*t,n=e*t;return 4*(t<.5?n:3*(t-e)+n-.75)},by.exponential=t=>Math.pow(2,10*(t-1)),by.bounce=t=>{for(let e=0,n=1;;e+=n,n/=2)if(t>=(7-4*e)/11){const r=(11-6*e-11*t)/4;return-r*r+n*n}},function(t){t.decorators={reverse:t=>e=>1-t(1-e),reflect:t=>e=>.5*(e<.5?t(2*e):2-t(2-2*e)),clamp:(t,e=0,n=1)=>r=>{const i=t(r);return i<e?e:i>n?n:i},back:(t=1.70158)=>e=>e*e*((t+1)*e-t),elastic:(t=1.5)=>e=>Math.pow(2,10*(e-1))*Math.cos(20*Math.PI*t/3*e)}}(t.Timing||(t.Timing={})),function(t){function e(t){const e=t/1;if(e<1/2.75)return 7.5625*e*e;if(e<2/2.75){const t=e-1.5/2.75;return 7.5625*t*t+.75}if(e<2.5/2.75){const t=e-2.25/2.75;return 7.5625*t*t+.9375}{const t=e-2.625/2.75;return 7.5625*t*t+.984375}}function n(t){return 1-e(1-t)}t.easeInSine=function(t){return-1*Math.cos(t*(Math.PI/2))+1},t.easeOutSine=function(t){return Math.sin(t*(Math.PI/2))},t.easeInOutSine=function(t){return-.5*(Math.cos(Math.PI*t)-1)},t.easeInQuad=function(t){return t*t},t.easeOutQuad=function(t){return t*(2-t)},t.easeInOutQuad=function(t){return t<.5?2*t*t:(4-2*t)*t-1},t.easeInCubic=function(t){return t*t*t},t.easeOutCubic=function(t){const e=t-1;return e*e*e+1},t.easeInOutCubic=function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},t.easeInQuart=function(t){return t*t*t*t},t.easeOutQuart=function(t){const e=t-1;return 1-e*e*e*e},t.easeInOutQuart=function(t){const e=t-1;return t<.5?8*t*t*t*t:1-8*e*e*e*e},t.easeInQuint=function(t){return t*t*t*t*t},t.easeOutQuint=function(t){const e=t-1;return 1+e*e*e*e*e},t.easeInOutQuint=function(t){const e=t-1;return t<.5?16*t*t*t*t*t:1+16*e*e*e*e*e},t.easeInExpo=function(t){return 0===t?0:Math.pow(2,10*(t-1))},t.easeOutExpo=function(t){return 1===t?1:1-Math.pow(2,-10*t)},t.easeInOutExpo=function(t){if(0===t||1===t)return t;const e=2*t,n=e-1;return e<1?.5*Math.pow(2,10*n):.5*(2-Math.pow(2,-10*n))},t.easeInCirc=function(t){const e=t/1;return-1*(Math.sqrt(1-e*t)-1)},t.easeOutCirc=function(t){const e=t-1;return Math.sqrt(1-e*e)},t.easeInOutCirc=function(t){const e=2*t,n=e-2;return e<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-n*n)+1)},t.easeInBack=function(t,e=1.70158){return t*t*((e+1)*t-e)},t.easeOutBack=function(t,e=1.70158){const n=t/1-1;return n*n*((e+1)*n+e)+1},t.easeInOutBack=function(t,e=1.70158){const n=2*t,r=n-2,i=1.525*e;return n<1?.5*n*n*((i+1)*n-i):.5*(r*r*((i+1)*r+i)+2)},t.easeInElastic=function(t,e=.7){if(0===t||1===t)return t;const n=t/1-1,r=1-e,i=r/(2*Math.PI)*Math.asin(1);return-Math.pow(2,10*n)*Math.sin((n-i)*(2*Math.PI)/r)},t.easeOutElastic=function(t,e=.7){const n=1-e,r=2*t;if(0===t||1===t)return t;const i=n/(2*Math.PI)*Math.asin(1);return Math.pow(2,-10*r)*Math.sin((r-i)*(2*Math.PI)/n)+1},t.easeInOutElastic=function(t,e=.65){const n=1-e;if(0===t||1===t)return t;const r=2*t,i=r-1,s=n/(2*Math.PI)*Math.asin(1);return r<1?Math.pow(2,10*i)*Math.sin((i-s)*(2*Math.PI)/n)*-.5:Math.pow(2,-10*i)*Math.sin((i-s)*(2*Math.PI)/n)*.5+1},t.easeOutBounce=e,t.easeInBounce=n,t.easeInOutBounce=function(t){return t<.5?.5*n(2*t):.5*e(2*t-1)+.5}}(t.Timing||(t.Timing={})),t.Interp=void 0,(xy=t.Interp||(t.Interp={})).number=(t,e)=>{const n=e-t;return e=>t+n*e},xy.object=(t,e)=>{const n=Object.keys(t);return r=>{const i={};for(let s=n.length-1;-1!==s;s-=1){const o=n[s];i[o]=t[o]+(e[o]-t[o])*r}return i}},xy.unit=(t,e)=>{const n=/(-?[0-9]*.[0-9]*)(px|em|cm|mm|in|pt|pc|%)/,r=n.exec(t),i=n.exec(e),s=i?i[1]:"",o=r?+r[1]:0,a=i?+i[1]:0,l=s.indexOf("."),c=l>0?s[1].length-l-1:0,h=a-o,u=r?r[2]:"";return t=>(o+h*t).toFixed(c)+u},xy.color=(t,e)=>{const n=parseInt(t.slice(1),16),r=parseInt(e.slice(1),16),i=255&n,s=(255&r)-i,o=65280&n,a=(65280&r)-o,l=16711680&n,c=(16711680&r)-l;return t=>`#${(1<<24|i+s*t&255|o+a*t&65280|l+c*t&16711680).toString(16).slice(1)}`};const Cy=[];function Py(e,n){const r=Cy.find((t=>t.name===e));if(!(r&&(r.loadTimes+=1,r.loadTimes>1)||t.Platform.isApplyingHMR())){const t=document.createElement("style");t.setAttribute("type","text/css"),t.textContent=n;const r=document.querySelector("head");r&&r.insertBefore(t,r.firstChild),Cy.push({name:e,loadTimes:1,styleElement:t})}}function My(t){const e=Cy.findIndex((e=>e.name===t));if(e>-1){const t=Cy[e];if(t.loadTimes-=1,t.loadTimes>0)return;let n=t.styleElement;n&&n.parentNode&&n.parentNode.removeChild(n),n=null,Cy.splice(e,1)}}var Ey,Sy,Oy=Object.freeze({__proto__:null,clean:My,ensure:Py});t.Angle=void 0,(Ey=t.Angle||(t.Angle={})).toDeg=function(t){return 180*t/Math.PI%360},Ey.toRad=function(t,e=!1){return(e?t:t%360)*Math.PI/180},Ey.normalize=function(t){return t%360+(t<0?360:0)},t.GeometryUtil=void 0,(Sy=t.GeometryUtil||(t.GeometryUtil={})).round=function(t,e=0){return Number.isInteger(t)?t:+t.toFixed(e)},Sy.random=function(t,e){let n,r;if(null==e?(r=null==t?1:t,n=0):(r=e,n=null==t?0:t),r<n){const t=n;n=r,r=t}return Math.floor(Math.random()*(r-n+1)+n)},Sy.clamp=function(t,e,n){return Number.isNaN(t)?NaN:Number.isNaN(e)||Number.isNaN(n)?0:e<n?t<e?e:t>n?n:t:t<n?n:t>e?e:t},Sy.snapToGrid=function(t,e){return e*Math.round(t/e)},Sy.containsPoint=function(t,e){return null!=e&&null!=t&&e.x>=t.x&&e.x<=t.x+t.width&&e.y>=t.y&&e.y<=t.y+t.height},Sy.squaredLength=function(t,e){const n=t.x-e.x,r=t.y-e.y;return n*n+r*r};class Ty{valueOf(){return this.toJSON()}toString(){return JSON.stringify(this.toJSON())}}class ky extends Ty{constructor(t,e){super(),this.x=null==t?0:t,this.y=null==e?0:e}round(e=0){return this.x=t.GeometryUtil.round(this.x,e),this.y=t.GeometryUtil.round(this.y,e),this}add(t,e){const n=ky.create(t,e);return this.x+=n.x,this.y+=n.y,this}update(t,e){const n=ky.create(t,e);return this.x=n.x,this.y=n.y,this}translate(t,e){const n=ky.create(t,e);return this.x+=n.x,this.y+=n.y,this}rotate(t,e){const n=ky.rotate(this,t,e);return this.x=n.x,this.y=n.y,this}scale(t,e,n=new ky){const r=ky.create(n);return this.x=r.x+t*(this.x-r.x),this.y=r.y+e*(this.y-r.y),this}closest(t){if(1===t.length)return ky.create(t[0]);let e=null,n=1/0;return t.forEach((t=>{const r=this.squaredDistance(t);r<n&&(e=t,n=r)})),e?ky.create(e):null}distance(t){return Math.sqrt(this.squaredDistance(t))}squaredDistance(t){const e=ky.create(t),n=this.x-e.x,r=this.y-e.y;return n*n+r*r}manhattanDistance(t){const e=ky.create(t);return Math.abs(e.x-this.x)+Math.abs(e.y-this.y)}magnitude(){return Math.sqrt(this.x*this.x+this.y*this.y)||.01}theta(t=new ky){const e=ky.create(t),n=-(e.y-this.y),r=e.x-this.x;let i=Math.atan2(n,r);return i<0&&(i=2*Math.PI+i),180*i/Math.PI}angleBetween(t,e){if(this.equals(t)||this.equals(e))return NaN;let n=this.theta(e)-this.theta(t);return n<0&&(n+=360),n}vectorAngle(t){return new ky(0,0).angleBetween(this,t)}toPolar(t){return this.update(ky.toPolar(this,t)),this}changeInAngle(t,e,n=new ky){return this.clone().translate(-t,-e).theta(n)-this.theta(n)}adhereToRect(e){return t.GeometryUtil.containsPoint(e,this)||(this.x=Math.min(Math.max(this.x,e.x),e.x+e.width),this.y=Math.min(Math.max(this.y,e.y),e.y+e.height)),this}bearing(e){const n=ky.create(e),r=t.Angle.toRad(this.y),i=t.Angle.toRad(n.y),s=this.x,o=n.x,a=t.Angle.toRad(o-s),l=Math.sin(a)*Math.cos(i),c=Math.cos(r)*Math.sin(i)-Math.sin(r)*Math.cos(i)*Math.cos(a);let h=t.Angle.toDeg(Math.atan2(l,c))-22.5;return h<0&&(h+=360),h=parseInt(h/45,10),["NE","E","SE","S","SW","W","NW","N"][h]}cross(t,e){if(null!=t&&null!=e){const n=ky.create(t),r=ky.create(e);return(r.x-this.x)*(n.y-this.y)-(r.y-this.y)*(n.x-this.x)}return NaN}dot(t){const e=ky.create(t);return this.x*e.x+this.y*e.y}diff(t,e){if("number"==typeof t)return new ky(this.x-t,this.y-e);const n=ky.create(t);return new ky(this.x-n.x,this.y-n.y)}lerp(t,e){const n=ky.create(t);return new ky((1-e)*this.x+e*n.x,(1-e)*this.y+e*n.y)}normalize(t=1){const e=t/this.magnitude();return this.scale(e,e)}move(e,n){const r=ky.create(e),i=t.Angle.toRad(r.theta(this));return this.translate(Math.cos(i)*n,-Math.sin(i)*n)}reflection(t){return ky.create(t).move(this,this.distance(t))}snapToGrid(e,n){return this.x=t.GeometryUtil.snapToGrid(this.x,e),this.y=t.GeometryUtil.snapToGrid(this.y,null==n?e:n),this}equals(t){const e=ky.create(t);return null!=e&&e.x===this.x&&e.y===this.y}clone(){return ky.clone(this)}toJSON(){return ky.toJSON(this)}serialize(){return`${this.x} ${this.y}`}}!function(t){t.isPoint=function(e){return null!=e&&e instanceof t}}(ky||(ky={})),function(t){t.isPointLike=function(t){return null!=t&&"object"==typeof t&&"number"==typeof t.x&&"number"==typeof t.y},t.isPointData=function(t){return null!=t&&Array.isArray(t)&&2===t.length&&"number"==typeof t[0]&&"number"==typeof t[1]}}(ky||(ky={})),function(e){function n(t){return e.isPoint(t)?new e(t.x,t.y):Array.isArray(t)?new e(t[0],t[1]):new e(t.x,t.y)}function r(t,e){return t===e||null!=t&&null!=e&&(t.x===e.x&&t.y===e.y)}function i(t,r,i,s=new e){const o=n(t),a=n(s),l=o.x-a.x,c=o.y-a.y,h=c*r+l*i;return new e(l*r-c*i+a.x,h+a.y)}e.create=function(t,r){return null==t||"number"==typeof t?new e(t,r):n(t)},e.clone=n,e.toJSON=function(t){return e.isPoint(t)?{x:t.x,y:t.y}:Array.isArray(t)?{x:t[0],y:t[1]}:{x:t.x,y:t.y}},e.fromPolar=function(r,i,s=new e){let o=Math.abs(r*Math.cos(i)),a=Math.abs(r*Math.sin(i));const l=n(s),c=t.Angle.normalize(t.Angle.toDeg(i));return c<90?a=-a:c<180?(o=-o,a=-a):c<270&&(o=-o),new e(l.x+o,l.y+a)},e.toPolar=function(r,i=new e){const s=n(r),o=n(i),a=s.x-o.x,l=s.y-o.y;return new e(Math.sqrt(a*a+l*l),t.Angle.toRad(o.theta(s)))},e.equals=r,e.equalPoints=function(t,e){if(null==t&&null!=e||null!=t&&null==e||null!=t&&null!=e&&t.length!==e.length)return!1;if(null!=t&&null!=e)for(let n=0,i=t.length;n<i;n+=1)if(!r(t[n],e[n]))return!1;return!0},e.random=function(n,r,i,s){return new e(t.GeometryUtil.random(n,r),t.GeometryUtil.random(i,s))},e.rotate=function(e,n,r){const s=t.Angle.toRad(t.Angle.normalize(-n)),o=Math.sin(s);return i(e,Math.cos(s),o,r)},e.rotateEx=i}(ky||(ky={}));class Ny extends Ty{get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get origin(){return new ky(this.x,this.y)}get topLeft(){return new ky(this.x,this.y)}get topCenter(){return new ky(this.x+this.width/2,this.y)}get topRight(){return new ky(this.x+this.width,this.y)}get center(){return new ky(this.x+this.width/2,this.y+this.height/2)}get bottomLeft(){return new ky(this.x,this.y+this.height)}get bottomCenter(){return new ky(this.x+this.width/2,this.y+this.height)}get bottomRight(){return new ky(this.x+this.width,this.y+this.height)}get corner(){return new ky(this.x+this.width,this.y+this.height)}get rightMiddle(){return new ky(this.x+this.width,this.y+this.height/2)}get leftMiddle(){return new ky(this.x,this.y+this.height/2)}get topLine(){return new jy(this.topLeft,this.topRight)}get rightLine(){return new jy(this.topRight,this.bottomRight)}get bottomLine(){return new jy(this.bottomLeft,this.bottomRight)}get leftLine(){return new jy(this.topLeft,this.bottomLeft)}constructor(t,e,n,r){super(),this.x=null==t?0:t,this.y=null==e?0:e,this.width=null==n?0:n,this.height=null==r?0:r}getOrigin(){return this.origin}getTopLeft(){return this.topLeft}getTopCenter(){return this.topCenter}getTopRight(){return this.topRight}getCenter(){return this.center}getCenterX(){return this.x+this.width/2}getCenterY(){return this.y+this.height/2}getBottomLeft(){return this.bottomLeft}getBottomCenter(){return this.bottomCenter}getBottomRight(){return this.bottomRight}getCorner(){return this.corner}getRightMiddle(){return this.rightMiddle}getLeftMiddle(){return this.leftMiddle}getTopLine(){return this.topLine}getRightLine(){return this.rightLine}getBottomLine(){return this.bottomLine}getLeftLine(){return this.leftLine}bbox(e){if(!e)return this.clone();const n=t.Angle.toRad(e),r=Math.abs(Math.sin(n)),i=Math.abs(Math.cos(n)),s=this.width*i+this.height*r,o=this.width*r+this.height*i;return new Ny(this.x+(this.width-s)/2,this.y+(this.height-o)/2,s,o)}round(e=0){return this.x=t.GeometryUtil.round(this.x,e),this.y=t.GeometryUtil.round(this.y,e),this.width=t.GeometryUtil.round(this.width,e),this.height=t.GeometryUtil.round(this.height,e),this}add(t,e,n,r){const i=Ny.create(t,e,n,r),s=Math.min(this.x,i.x),o=Math.min(this.y,i.y),a=Math.max(this.x+this.width,i.x+i.width),l=Math.max(this.y+this.height,i.y+i.height);return this.x=s,this.y=o,this.width=a-s,this.height=l-o,this}update(t,e,n,r){const i=Ny.create(t,e,n,r);return this.x=i.x,this.y=i.y,this.width=i.width,this.height=i.height,this}inflate(t,e){const n=t,r=null!=e?e:t;return this.x-=n,this.y-=r,this.width+=2*n,this.height+=2*r,this}snapToGrid(t,e){const n=this.origin.snapToGrid(t,e),r=this.corner.snapToGrid(t,e);return this.x=n.x,this.y=n.y,this.width=r.x-n.x,this.height=r.y-n.y,this}translate(t,e){const n=ky.create(t,e);return this.x+=n.x,this.y+=n.y,this}scale(t,e,n=new ky){const r=this.origin.scale(t,e,n);return this.x=r.x,this.y=r.y,this.width*=t,this.height*=e,this}rotate(e,n=this.getCenter()){if(0!==e){const r=t.Angle.toRad(e),i=Math.cos(r),s=Math.sin(r);let o=this.getOrigin(),a=this.getTopRight(),l=this.getBottomRight(),c=this.getBottomLeft();o=ky.rotateEx(o,i,s,n),a=ky.rotateEx(a,i,s,n),l=ky.rotateEx(l,i,s,n),c=ky.rotateEx(c,i,s,n);const h=new Ny(o.x,o.y,0,0);h.add(a.x,a.y,0,0),h.add(l.x,l.y,0,0),h.add(c.x,c.y,0,0),this.update(h)}return this}rotate90(){const t=(this.width-this.height)/2;this.x+=t,this.y-=t;const e=this.width;return this.width=this.height,this.height=e,this}moveAndExpand(t){const e=Ny.clone(t);return this.x+=e.x||0,this.y+=e.y||0,this.width+=e.width||0,this.height+=e.height||0,this}getMaxScaleToFit(t,e=this.center){const n=Ny.clone(t),r=e.x,i=e.y;let s=1/0,o=1/0,a=1/0,l=1/0,c=1/0,h=1/0,u=1/0,g=1/0;const d=n.topLeft;d.x<r&&(s=(this.x-r)/(d.x-r)),d.y<i&&(c=(this.y-i)/(d.y-i));const f=n.bottomRight;f.x>r&&(o=(this.x+this.width-r)/(f.x-r)),f.y>i&&(h=(this.y+this.height-i)/(f.y-i));const p=n.topRight;p.x>r&&(a=(this.x+this.width-r)/(p.x-r)),p.y<i&&(u=(this.y-i)/(p.y-i));const m=n.bottomLeft;return m.x<r&&(l=(this.x-r)/(m.x-r)),m.y>i&&(g=(this.y+this.height-i)/(m.y-i)),{sx:Math.min(s,o,a,l),sy:Math.min(c,h,u,g)}}getMaxUniformScaleToFit(t,e=this.center){const n=this.getMaxScaleToFit(t,e);return Math.min(n.sx,n.sy)}containsPoint(e,n){return t.GeometryUtil.containsPoint(this,ky.create(e,n))}containsRect(t,e,n,r){const i=Ny.create(t,e,n,r),s=this.x,o=this.y,a=this.width,l=this.height,c=i.x,h=i.y,u=i.width,g=i.height;return 0!==a&&0!==l&&0!==u&&0!==g&&(c>=s&&h>=o&&c+u<=s+a&&h+g<=o+l)}intersectsWithLine(t){const e=[this.topLine,this.rightLine,this.bottomLine,this.leftLine],n=[],r=[];return e.forEach((e=>{const i=t.intersectsWithLine(e);null!==i&&r.indexOf(i.toString())<0&&(n.push(i),r.push(i.toString()))})),n.length>0?n:null}intersectsWithLineFromCenterToPoint(t,e){const n=ky.clone(t),r=this.center;let i=null;null!=e&&0!==e&&n.rotate(e,r);const s=[this.topLine,this.rightLine,this.bottomLine,this.leftLine],o=new jy(r,n);for(let t=s.length-1;t>=0;t-=1){const e=s[t].intersectsWithLine(o);if(null!==e){i=e;break}}return i&&null!=e&&0!==e&&i.rotate(-e,r),i}intersectsWithRect(t,e,n,r){const i=Ny.create(t,e,n,r);if(!this.isIntersectWithRect(i))return null;const s=this.origin,o=this.corner,a=i.origin,l=i.corner,c=Math.max(s.x,a.x),h=Math.max(s.y,a.y);return new Ny(c,h,Math.min(o.x,l.x)-c,Math.min(o.y,l.y)-h)}isIntersectWithRect(t,e,n,r){const i=Ny.create(t,e,n,r),s=this.origin,o=this.corner,a=i.origin,l=i.corner;return!(l.x<=s.x||l.y<=s.y||a.x>=o.x||a.y>=o.y)}normalize(){let t=this.x,e=this.y,n=this.width,r=this.height;return this.width<0&&(t=this.x+this.width,n=-this.width),this.height<0&&(e=this.y+this.height,r=-this.height),this.x=t,this.y=e,this.width=n,this.height=r,this}union(t){const e=Ny.clone(t),n=this.origin,r=this.corner,i=e.origin,s=e.corner,o=Math.min(n.x,i.x),a=Math.min(n.y,i.y),l=Math.max(r.x,s.x),c=Math.max(r.y,s.y);return new Ny(o,a,l-o,c-a)}getNearestSideToPoint(t){const e=ky.clone(t),n=e.x-this.x,r=this.x+this.width-e.x,i=e.y-this.y;let s=n,o="left";return r<s&&(s=r,o="right"),i<s&&(s=i,o="top"),this.y+this.height-e.y<s&&(o="bottom"),o}getNearestPointToPoint(t){const e=ky.clone(t);if(this.containsPoint(e)){const t=this.getNearestSideToPoint(e);if("left"===t)return new ky(this.x,e.y);if("top"===t)return new ky(e.x,this.y);if("right"===t)return new ky(this.x+this.width,e.y);if("bottom"===t)return new ky(e.x,this.y+this.height)}return e.adhereToRect(this)}equals(t){return null!=t&&t.x===this.x&&t.y===this.y&&t.width===this.width&&t.height===this.height}clone(){return new Ny(this.x,this.y,this.width,this.height)}toJSON(){return{x:this.x,y:this.y,width:this.width,height:this.height}}serialize(){return`${this.x} ${this.y} ${this.width} ${this.height}`}}!function(t){t.isRectangle=function(e){return null!=e&&e instanceof t}}(Ny||(Ny={})),function(t){t.isRectangleLike=function(t){return null!=t&&"object"==typeof t&&"number"==typeof t.x&&"number"==typeof t.y&&"number"==typeof t.width&&"number"==typeof t.height}}(Ny||(Ny={})),function(t){function e(e){return t.isRectangle(e)?e.clone():Array.isArray(e)?new t(e[0],e[1],e[2],e[3]):new t(e.x,e.y,e.width,e.height)}t.create=function(n,r,i,s){return null==n||"number"==typeof n?new t(n,r,i,s):e(n)},t.clone=e,t.fromEllipse=function(e){return new t(e.x-e.a,e.y-e.b,2*e.a,2*e.b)},t.fromSize=function(e){return new t(0,0,e.width,e.height)},t.fromPositionAndSize=function(e,n){return new t(e.x,e.y,n.width,n.height)}}(Ny||(Ny={}));class jy extends Ty{get center(){return new ky((this.start.x+this.end.x)/2,(this.start.y+this.end.y)/2)}constructor(t,e,n,r){super(),"number"==typeof t&&"number"==typeof e?(this.start=new ky(t,e),this.end=new ky(n,r)):(this.start=ky.create(t),this.end=ky.create(e))}getCenter(){return this.center}round(t=0){return this.start.round(t),this.end.round(t),this}translate(t,e){return"number"==typeof t?(this.start.translate(t,e),this.end.translate(t,e)):(this.start.translate(t),this.end.translate(t)),this}rotate(t,e){return this.start.rotate(t,e),this.end.rotate(t,e),this}scale(t,e,n){return this.start.scale(t,e,n),this.end.scale(t,e,n),this}length(){return Math.sqrt(this.squaredLength())}squaredLength(){const t=this.start.x-this.end.x,e=this.start.y-this.end.y;return t*t+e*e}setLength(t){const e=this.length();if(!e)return this;const n=t/e;return this.scale(n,n,this.start)}parallel(t){const e=this.clone();if(!e.isDifferentiable())return e;const{start:n,end:r}=e,i=n.clone().rotate(270,r),s=r.clone().rotate(90,n);return n.move(s,t),r.move(i,t),e}vector(){return new ky(this.end.x-this.start.x,this.end.y-this.start.y)}angle(){const t=new ky(this.start.x+1,this.start.y);return this.start.angleBetween(this.end,t)}bbox(){const t=Math.min(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),n=Math.max(this.start.x,this.end.x),r=Math.max(this.start.y,this.end.y);return new Ny(t,e,n-t,r-e)}bearing(){return this.start.bearing(this.end)}closestPoint(t){return this.pointAt(this.closestPointNormalizedLength(t))}closestPointLength(t){return this.closestPointNormalizedLength(t)*this.length()}closestPointTangent(t){return this.tangentAt(this.closestPointNormalizedLength(t))}closestPointNormalizedLength(t){const e=this.vector().dot(new jy(this.start,t).vector()),n=Math.min(1,Math.max(0,e/this.squaredLength()));return Number.isNaN(n)?0:n}pointAt(t){const e=this.start,n=this.end;return t<=0?e.clone():t>=1?n.clone():e.lerp(n,t)}pointAtLength(t){const e=this.start,n=this.end;let r=!0;t<0&&(r=!1,t=-t);const i=this.length();if(t>=i)return r?n.clone():e.clone();const s=(r?t:i-t)/i;return this.pointAt(s)}divideAt(t){const e=this.pointAt(t);return[new jy(this.start,e),new jy(e,this.end)]}divideAtLength(t){const e=this.pointAtLength(t);return[new jy(this.start,e),new jy(e,this.end)]}containsPoint(t){const e=this.start,n=this.end;if(0!==e.cross(t,n))return!1;const r=this.length();return!(new jy(e,t).length()>r)&&!(new jy(t,n).length()>r)}intersect(t,e){const n=t.intersectsWithLine(this,e);return n?Array.isArray(n)?n:[n]:null}intersectsWithLine(t){const e=new ky(this.end.x-this.start.x,this.end.y-this.start.y),n=new ky(t.end.x-t.start.x,t.end.y-t.start.y),r=e.x*n.y-e.y*n.x,i=new ky(t.start.x-this.start.x,t.start.y-this.start.y),s=i.x*n.y-i.y*n.x,o=i.x*e.y-i.y*e.x;if(0===r||s*r<0||o*r<0)return null;if(r>0){if(s>r||o>r)return null}else if(s<r||o<r)return null;return new ky(this.start.x+s*e.x/r,this.start.y+s*e.y/r)}isDifferentiable(){return!this.start.equals(this.end)}pointOffset(t){const e=ky.clone(t),n=this.start,r=this.end;return((r.x-n.x)*(e.y-n.y)-(r.y-n.y)*(e.x-n.x))/this.length()}pointSquaredDistance(t,e){const n=ky.create(t,e);return this.closestPoint(n).squaredDistance(n)}pointDistance(t,e){const n=ky.create(t,e);return this.closestPoint(n).distance(n)}tangentAt(t){if(!this.isDifferentiable())return null;const e=this.start,n=this.end,r=this.pointAt(t),i=new jy(e,n);return i.translate(r.x-e.x,r.y-e.y),i}tangentAtLength(t){if(!this.isDifferentiable())return null;const e=this.start,n=this.end,r=this.pointAtLength(t),i=new jy(e,n);return i.translate(r.x-e.x,r.y-e.y),i}relativeCcw(t,e){const n=ky.create(t,e);let r=n.x-this.start.x,i=n.y-this.start.y;const s=this.end.x-this.start.x,o=this.end.y-this.start.y;let a=r*o-i*s;return 0===a&&(a=r*s+i*o,a>0&&(r-=s,i-=o,a=r*s+i*o,a<0&&(a=0))),a<0?-1:a>0?1:0}equals(t){return null!=t&&this.start.x===t.start.x&&this.start.y===t.start.y&&this.end.x===t.end.x&&this.end.y===t.end.y}clone(){return new jy(this.start,this.end)}toJSON(){return{start:this.start.toJSON(),end:this.end.toJSON()}}serialize(){return[this.start.serialize(),this.end.serialize()].join(" ")}}!function(t){t.isLine=function(e){return null!=e&&e instanceof t}}(jy||(jy={}));let _y=class t extends Ty{get center(){return new ky(this.x,this.y)}constructor(t,e,n,r){super(),this.x=null==t?0:t,this.y=null==e?0:e,this.a=null==n?0:n,this.b=null==r?0:r}bbox(){return Ny.fromEllipse(this)}getCenter(){return this.center}inflate(t,e){const n=t,r=null!=e?e:t;return this.a+=2*n,this.b+=2*r,this}normalizedDistance(t,e){const n=ky.create(t,e),r=n.x-this.x,i=n.y-this.y,s=this.a,o=this.b;return r*r/(s*s)+i*i/(o*o)}containsPoint(t,e){return this.normalizedDistance(t,e)<=1}intersectsWithLine(t){const e=[],n=this.a,r=this.b,i=t.start,s=t.end,o=t.vector(),a=i.diff(new ky(this.x,this.y)),l=new ky(o.x/(n*n),o.y/(r*r)),c=new ky(a.x/(n*n),a.y/(r*r)),h=o.dot(l),u=o.dot(c),g=u*u-h*(a.dot(c)-1);if(g<0)return null;if(g>0){const t=Math.sqrt(g),n=(-u-t)/h,r=(-u+t)/h;if((n<0||n>1)&&(r<0||r>1))return null;n>=0&&n<=1&&e.push(i.lerp(s,n)),r>=0&&r<=1&&e.push(i.lerp(s,r))}else{const t=-u/h;if(!(t>=0&&t<=1))return null;e.push(i.lerp(s,t))}return e}intersectsWithLineFromCenterToPoint(t,e=0){const n=ky.clone(t);e&&n.rotate(e,this.getCenter());const r=n.x-this.x,i=n.y-this.y;let s;if(0===r)return s=this.bbox().getNearestPointToPoint(n),e?s.rotate(-e,this.getCenter()):s;const o=i/r,a=o*o,l=this.a*this.a,c=this.b*this.b;let h=Math.sqrt(1/(1/l+a/c));h=r<0?-h:h;const u=o*h;return s=new ky(this.x+h,this.y+u),e?s.rotate(-e,this.getCenter()):s}tangentTheta(t){const e=ky.clone(t),n=e.x,r=e.y,i=this.a,s=this.b,o=this.bbox().center,a=o.x,l=o.y,c=n>o.x+i/2,h=n<o.x-i/2;let u,g;return c||h?(g=n>o.x?r-30:r+30,u=i*i/(n-a)-i*i*(r-l)*(g-l)/(s*s*(n-a))+a):(u=r>o.y?n+30:n-30,g=s*s/(r-l)-s*s*(n-a)*(u-a)/(i*i*(r-l))+l),new ky(u,g).theta(e)}scale(t,e){return this.a*=t,this.b*=e,this}rotate(e,n){const r=Ny.fromEllipse(this);r.rotate(e,n);const i=t.fromRect(r);return this.a=i.a,this.b=i.b,this.x=i.x,this.y=i.y,this}translate(t,e){const n=ky.create(t,e);return this.x+=n.x,this.y+=n.y,this}equals(t){return null!=t&&t.x===this.x&&t.y===this.y&&t.a===this.a&&t.b===this.b}clone(){return new t(this.x,this.y,this.a,this.b)}toJSON(){return{x:this.x,y:this.y,a:this.a,b:this.b}}serialize(){return`${this.x} ${this.y} ${this.a} ${this.b}`}};!function(t){t.isEllipse=function(e){return null!=e&&e instanceof t}}(_y||(_y={})),function(t){function e(e){return t.isEllipse(e)?e.clone():Array.isArray(e)?new t(e[0],e[1],e[2],e[3]):new t(e.x,e.y,e.a,e.b)}t.create=function(n,r,i,s){return null==n||"number"==typeof n?new t(n,r,i,s):e(n)},t.parse=e,t.fromRect=function(e){const n=e.center;return new t(n.x,n.y,e.width/2,e.height/2)}}(_y||(_y={}));const Ly=new RegExp("^[\\s\\dLMCZz,.]*$");function By(t){return"string"==typeof t&&Ly.test(t)}function Iy(t,e){return(t%e+e)%e}function Dy(t,e={}){const n=[];return t&&t.length&&t.forEach((t=>{Array.isArray(t)?n.push({x:t[0],y:t[1]}):n.push({x:t.x,y:t.y})})),function(t,e,n,r,i){const s=[],o=t[t.length-1],a=null!=e&&e>0,l=e||0;if(r&&a){const e=(t=t.slice())[0],n=new ky(o.x+(e.x-o.x)/2,o.y+(e.y-o.y)/2);t.splice(0,0,n)}let c=t[0],h=1;for(n?s.push("M",c.x,c.y):s.push("L",c.x,c.y);h<(r?t.length:t.length-1);){let e=t[Iy(h,t.length)],n=c.x-e.x,r=c.y-e.y;if(a&&(0!==n||0!==r)&&(null==i||i.indexOf(h-1)<0)){let i=Math.sqrt(n*n+r*r);const o=n*Math.min(l,i/2)/i,a=r*Math.min(l,i/2)/i,c=e.x+o,u=e.y+a;s.push("L",c,u);let g=t[Iy(h+1,t.length)];for(;h<t.length-2&&0===Math.round(g.x-e.x)&&0===Math.round(g.y-e.y);)g=t[Iy(h+2,t.length)],h+=1;n=g.x-e.x,r=g.y-e.y,i=Math.max(1,Math.sqrt(n*n+r*r));const d=n*Math.min(l,i/2)/i,f=r*Math.min(l,i/2)/i,p=e.x+d,m=e.y+f;s.push("Q",e.x,e.y,p,m),e=new ky(p,m)}else s.push("L",e.x,e.y);c=e,h+=1}return r?s.push("Z"):s.push("L",o.x,o.y),s.map((t=>"string"==typeof t?t:+t.toFixed(3))).join(" ")}(n,e.round,null==e.initialMove||e.initialMove,e.close,e.exclude)}function Ry(t,e,n,r,i=0,s=0,o=0,a,l){if(0===n||0===r)return[];a-=t,l-=e,n=Math.abs(n),r=Math.abs(r);const c=-a/2,h=-l/2,u=Math.cos(i*Math.PI/180),g=Math.sin(i*Math.PI/180),d=u*c+g*h,f=-1*g*c+u*h,p=d*d,m=f*f,y=n*n,v=r*r,b=p/y+m/v;let x;if(b>1)n=Math.sqrt(b)*n,r=Math.sqrt(b)*r,x=0;else{let t=1;s===o&&(t=-1),x=t*Math.sqrt((y*v-y*m-v*p)/(y*m+v*p))}const w=x*n*f/r,A=-1*x*r*d/n,C=u*w-g*A+a/2,P=g*w+u*A+l/2;let M=Math.atan2((f-A)/r,(d-w)/n)-Math.atan2(0,1),E=M>=0?M:2*Math.PI+M;M=Math.atan2((-f-A)/r,(-d-w)/n)-Math.atan2((f-A)/r,(d-w)/n);let S=M>=0?M:2*Math.PI+M;0===o&&S>0?S-=2*Math.PI:0!==o&&S<0&&(S+=2*Math.PI);const O=2*S/Math.PI,T=Math.ceil(O<0?-1*O:O),k=S/T,N=8/3*Math.sin(k/4)*Math.sin(k/4)/Math.sin(k/2),j=u*n,_=u*r,L=g*n,B=g*r;let I=Math.cos(E),D=Math.sin(E),R=-N*(j*D+B*I),V=-N*(L*D-_*I),z=0,$=0;const F=[];for(let n=0;n<T;n+=1){E+=k,I=Math.cos(E),D=Math.sin(E),z=j*I-B*D+C,$=L*I+_*D+P;const r=-N*(j*D+B*I),i=-N*(L*D-_*I),s=6*n;F[s]=Number(R+t),F[s+1]=Number(V+e),F[s+2]=Number(z-r+t),F[s+3]=Number($-i+e),F[s+4]=Number(z+t),F[s+5]=Number($+e),R=z+r,V=$+i}return F.map((t=>+t.toFixed(2)))}function Vy(t,e,n,r,i=0,s=0,o=0,a,l){const c=[],h=Ry(t,e,n,r,i,s,o,a,l);if(null!=h)for(let t=0,e=h.length;t<e;t+=6)c.push("C",h[t],h[t+1],h[t+2],h[t+3],h[t+4],h[t+5]);return c.join(" ")}let zy=class t extends Ty{get start(){return this.points[0]||null}get end(){return this.points[this.points.length-1]||null}constructor(e){if(super(),null!=e){if("string"==typeof e)return t.parse(e);this.points=e.map((t=>ky.create(t)))}else this.points=[]}scale(t,e,n=new ky){return this.points.forEach((r=>r.scale(t,e,n))),this}rotate(t,e){return this.points.forEach((n=>n.rotate(t,e))),this}translate(t,e){const n=ky.create(t,e);return this.points.forEach((t=>t.translate(n.x,n.y))),this}round(t=0){return this.points.forEach((e=>e.round(t))),this}bbox(){if(0===this.points.length)return new Ny;let t=1/0,e=-1/0,n=1/0,r=-1/0;const i=this.points;for(let s=0,o=i.length;s<o;s+=1){const o=i[s],a=o.x,l=o.y;a<t&&(t=a),a>e&&(e=a),l<n&&(n=l),l>r&&(r=l)}return new Ny(t,n,e-t,r-n)}closestPoint(t){const e=this.closestPointLength(t);return this.pointAtLength(e)}closestPointLength(t){const e=this.points,n=e.length;if(0===n||1===n)return 0;let r=0,i=0,s=1/0;for(let o=0,a=n-1;o<a;o+=1){const n=new jy(e[o],e[o+1]),a=n.length(),l=n.closestPointNormalizedLength(t),c=n.pointAt(l).squaredDistance(t);c<s&&(s=c,i=r+l*a),r+=a}return i}closestPointNormalizedLength(t){const e=this.length();if(0===e)return 0;return this.closestPointLength(t)/e}closestPointTangent(t){const e=this.closestPointLength(t);return this.tangentAtLength(e)}containsPoint(t){if(0===this.points.length)return!1;const e=ky.clone(t),n=e.x,r=e.y,i=this.points,s=i.length;let o=s-1,a=0;for(let l=0;l<s;l+=1){const s=i[o],c=i[l];if(e.equals(s))return!0;const h=new jy(s,c);if(h.containsPoint(t))return!0;if(r<=s.y&&r>c.y||r>s.y&&r<=c.y){const e=s.x-n>c.x-n?s.x-n:c.x-n;if(e>=0){const i=new ky(n+e,r),s=new jy(t,i);h.intersectsWithLine(s)&&(a+=1)}}o=l}return a%2==1}intersectsWithLine(t){const e=[];for(let n=0,r=this.points.length-1;n<r;n+=1){const r=this.points[n],i=this.points[n+1],s=t.intersectsWithLine(new jy(r,i));s&&e.push(s)}return e.length>0?e:null}isDifferentiable(){for(let t=0,e=this.points.length-1;t<e;t+=1){const e=this.points[t],n=this.points[t+1];if(new jy(e,n).isDifferentiable())return!0}return!1}length(){let t=0;for(let e=0,n=this.points.length-1;e<n;e+=1){const n=this.points[e],r=this.points[e+1];t+=n.distance(r)}return t}pointAt(t){const e=this.points,n=e.length;if(0===n)return null;if(1===n)return e[0].clone();if(t<=0)return e[0].clone();if(t>=1)return e[n-1].clone();const r=this.length()*t;return this.pointAtLength(r)}pointAtLength(t){const e=this.points,n=e.length;if(0===n)return null;if(1===n)return e[0].clone();let r=!0;t<0&&(r=!1,t=-t);let i=0;for(let s=0,o=n-1;s<o;s+=1){const n=r?s:o-1-s,a=e[n],l=e[n+1],c=new jy(a,l),h=a.distance(l);if(t<=i+h)return c.pointAtLength((r?1:-1)*(t-i));i+=h}return(r?e[n-1]:e[0]).clone()}tangentAt(t){const e=this.points.length;if(0===e||1===e)return null;t<0&&(t=0),t>1&&(t=1);const n=this.length()*t;return this.tangentAtLength(n)}tangentAtLength(t){const e=this.points,n=e.length;if(0===n||1===n)return null;let r,i=!0;t<0&&(i=!1,t=-t);let s=0;for(let o=0,a=n-1;o<a;o+=1){const n=i?o:a-1-o,l=e[n],c=e[n+1],h=new jy(l,c),u=l.distance(c);if(h.isDifferentiable()){if(t<=s+u)return h.tangentAtLength((i?1:-1)*(t-s));r=h}s+=u}if(r){const t=i?1:0;return r.tangentAt(t)}return null}simplify(t={}){const e=this.points;if(e.length<3)return this;const n=t.threshold||0;let r=0;for(;e[r+2];){const t=r+1,i=r+2,s=e[r],o=e[t],a=e[i];new jy(s,a).closestPoint(o).distance(o)<=n?e.splice(t,1):r+=1}return this}toHull(){const e=this.points,n=e.length;if(0===n)return new t;let r=e[0];for(let t=1;t<n;t+=1)(e[t].y<r.y||e[t].y===r.y&&e[t].x>r.x)&&(r=e[t]);const i=[];for(let t=0;t<n;t+=1){let n=r.theta(e[t]);0===n&&(n=360),i.push([e[t],t,n])}if(i.sort(((t,e)=>{let n=t[2]-e[2];return 0===n&&(n=e[1]-t[1]),n})),i.length>2){const t=i[i.length-1];i.unshift(t)}const s={},o=[],a=t=>`${t[0].toString()}@${t[1]}`;for(;0!==i.length;){const t=i.pop(),e=t[0];if(s[a(t)])continue;let n=!1;for(;!n;)if(o.length<2)o.push(t),n=!0;else{const r=o.pop(),l=r[0],c=o.pop(),h=c[0],u=h.cross(l,e);if(u<0)o.push(c),o.push(r),o.push(t),n=!0;else if(0===u){const t=1e-10,n=l.angleBetween(h,e);Math.abs(n-180)<t||l.equals(e)||h.equals(l)?(s[a(r)]=l,o.push(c)):Math.abs((n+1)%360-1)<t&&(o.push(c),i.push(r))}else s[a(r)]=l,o.push(c)}}let l;o.length>2&&o.pop();let c=-1;for(let t=0,e=o.length;t<e;t+=1){const e=o[t][1];(void 0===l||e<l)&&(l=e,c=t)}let h=[];if(c>0){const t=o.slice(c),e=o.slice(0,c);h=t.concat(e)}else h=o;const u=[];for(let t=0,e=h.length;t<e;t+=1)u.push(h[t][0]);return new t(u)}equals(t){return null!=t&&(t.points.length===this.points.length&&t.points.every(((t,e)=>t.equals(this.points[e]))))}clone(){return new t(this.points.map((t=>t.clone())))}toJSON(){return this.points.map((t=>t.toJSON()))}serialize(){return this.points.map((t=>`${t.serialize()}`)).join(" ")}};!function(t){t.isPolyline=function(e){return null!=e&&e instanceof t}}(zy||(zy={})),function(t){t.parse=function(e){const n=e.trim();if(""===n)return new t;const r=[],i=n.split(/\s*,\s*|\s+/);for(let t=0,e=i.length;t<e;t+=2)r.push({x:+i[t],y:+i[t+1]});return new t(r)}}(zy||(zy={}));class $y extends Ty{constructor(t,e,n,r){super(),this.PRECISION=3,this.start=ky.create(t),this.controlPoint1=ky.create(e),this.controlPoint2=ky.create(n),this.end=ky.create(r)}bbox(){const t=this.start,e=this.controlPoint1,n=this.controlPoint2,r=this.end,i=t.x,s=t.y,o=e.x,a=e.y,l=n.x,c=n.y,h=r.x,u=r.y,g=[],d=[[],[]];let f,p,m,y,v,b,x,w,A,C,P;for(let t=0;t<2;t+=1)if(0===t?(p=6*i-12*o+6*l,f=-3*i+9*o-9*l+3*h,m=3*o-3*i):(p=6*s-12*a+6*c,f=-3*s+9*a-9*c+3*u,m=3*a-3*s),Math.abs(f)<1e-12){if(Math.abs(p)<1e-12)continue;y=-m/p,y>0&&y<1&&g.push(y)}else x=p*p-4*m*f,w=Math.sqrt(x),x<0||(v=(-p+w)/(2*f),v>0&&v<1&&g.push(v),b=(-p-w)/(2*f),b>0&&b<1&&g.push(b));let M=g.length;const E=M;for(;M;)M-=1,y=g[M],P=1-y,A=P*P*P*i+3*P*P*y*o+3*P*y*y*l+y*y*y*h,d[0][M]=A,C=P*P*P*s+3*P*P*y*a+3*P*y*y*c+y*y*y*u,d[1][M]=C;g[E]=0,g[E+1]=1,d[0][E]=i,d[1][E]=s,d[0][E+1]=h,d[1][E+1]=u,g.length=E+2,d[0].length=E+2,d[1].length=E+2;const S=Math.min.apply(null,d[0]),O=Math.min.apply(null,d[1]),T=Math.max.apply(null,d[0]),k=Math.max.apply(null,d[1]);return new Ny(S,O,T-S,k-O)}closestPoint(t,e={}){return this.pointAtT(this.closestPointT(t,e))}closestPointLength(t,e={}){const n=this.getOptions(e);return this.lengthAtT(this.closestPointT(t,n),n)}closestPointNormalizedLength(t,e={}){const n=this.getOptions(e),r=this.closestPointLength(t,n);if(!r)return 0;const i=this.length(n);return 0===i?0:r/i}closestPointT(t,e={}){const n=this.getPrecision(e),r=this.getDivisions(e),i=Math.pow(10,-n);let s=null,o=0,a=0,l=0,c=0,h=0,u=null;const g=r.length;let d=g>0?1/g:0;for(r.forEach(((e,n)=>{const r=e.start.distance(t),i=e.end.distance(t),g=r+i;(null==u||g<u)&&(s=e,o=n*d,a=(n+1)*d,l=r,c=i,u=g,h=e.endpointDistance())}));;){const e=l?Math.abs(l-c)/l:0,n=null!=c?Math.abs(l-c)/c:0;if(e<i||n<i||(!l||l<h*i||(!c||c<h*i)))return l<=c?o:a;const r=s.divide(.5);d/=2;const u=r[0].start.distance(t),g=r[0].end.distance(t),f=u+g,p=r[1].start.distance(t),m=r[1].end.distance(t);f<=p+m?(s=r[0],a-=d,l=u,c=g):(s=r[1],o+=d,l=p,c=m)}}closestPointTangent(t,e={}){return this.tangentAtT(this.closestPointT(t,e))}containsPoint(t,e={}){return this.toPolyline(e).containsPoint(t)}divideAt(t,e={}){if(t<=0)return this.divideAtT(0);if(t>=1)return this.divideAtT(1);const n=this.tAt(t,e);return this.divideAtT(n)}divideAtLength(t,e={}){const n=this.tAtLength(t,e);return this.divideAtT(n)}divide(t){return this.divideAtT(t)}divideAtT(t){const e=this.start,n=this.controlPoint1,r=this.controlPoint2,i=this.end;if(t<=0)return[new $y(e,e,e,e),new $y(e,n,r,i)];if(t>=1)return[new $y(e,n,r,i),new $y(i,i,i,i)];const s=this.getSkeletonPoints(t),o=s.startControlPoint1,a=s.startControlPoint2,l=s.divider,c=s.dividerControlPoint1,h=s.dividerControlPoint2;return[new $y(e,o,a,l),new $y(l,c,h,i)]}endpointDistance(){return this.start.distance(this.end)}getSkeletonPoints(t){const e=this.start,n=this.controlPoint1,r=this.controlPoint2,i=this.end;if(t<=0)return{startControlPoint1:e.clone(),startControlPoint2:e.clone(),divider:e.clone(),dividerControlPoint1:n.clone(),dividerControlPoint2:r.clone()};if(t>=1)return{startControlPoint1:n.clone(),startControlPoint2:r.clone(),divider:i.clone(),dividerControlPoint1:i.clone(),dividerControlPoint2:i.clone()};const s=new jy(e,n).pointAt(t),o=new jy(n,r).pointAt(t),a=new jy(r,i).pointAt(t),l=new jy(s,o).pointAt(t),c=new jy(o,a).pointAt(t);return{startControlPoint1:s,startControlPoint2:l,divider:new jy(l,c).pointAt(t),dividerControlPoint1:c,dividerControlPoint2:a}}getSubdivisions(t={}){const e=this.getPrecision(t);let n=[new $y(this.start,this.controlPoint1,this.controlPoint2,this.end)];if(0===e)return n;let r=this.endpointDistance();const i=Math.pow(10,-e);let s=0;for(;;){s+=1;const t=[];n.forEach((e=>{const n=e.divide(.5);t.push(n[0],n[1])}));const e=t.reduce(((t,e)=>t+e.endpointDistance()),0);if(s>1&&(0!==e?(e-r)/e:0)<i)return t;n=t,r=e}}length(t={}){return this.getDivisions(t).reduce(((t,e)=>t+e.endpointDistance()),0)}lengthAtT(t,e={}){if(t<=0)return 0;const n=void 0===e.precision?this.PRECISION:e.precision;return this.divide(t)[0].length({precision:n})}pointAt(t,e={}){if(t<=0)return this.start.clone();if(t>=1)return this.end.clone();const n=this.tAt(t,e);return this.pointAtT(n)}pointAtLength(t,e={}){const n=this.tAtLength(t,e);return this.pointAtT(n)}pointAtT(t){return t<=0?this.start.clone():t>=1?this.end.clone():this.getSkeletonPoints(t).divider}isDifferentiable(){const t=this.start,e=this.controlPoint1,n=this.controlPoint2,r=this.end;return!(t.equals(e)&&e.equals(n)&&n.equals(r))}tangentAt(t,e={}){if(!this.isDifferentiable())return null;t<0?t=0:t>1&&(t=1);const n=this.tAt(t,e);return this.tangentAtT(n)}tangentAtLength(t,e={}){if(!this.isDifferentiable())return null;const n=this.tAtLength(t,e);return this.tangentAtT(n)}tangentAtT(t){if(!this.isDifferentiable())return null;t<0&&(t=0),t>1&&(t=1);const e=this.getSkeletonPoints(t),n=e.startControlPoint2,r=e.dividerControlPoint1,i=e.divider,s=new jy(n,r);return s.translate(i.x-n.x,i.y-n.y),s}getPrecision(t={}){return null==t.precision?this.PRECISION:t.precision}getDivisions(t={}){if(null!=t.subdivisions)return t.subdivisions;const e=this.getPrecision(t);return this.getSubdivisions({precision:e})}getOptions(t={}){return{precision:this.getPrecision(t),subdivisions:this.getDivisions(t)}}tAt(t,e={}){if(t<=0)return 0;if(t>=1)return 1;const n=this.getOptions(e),r=this.length(n)*t;return this.tAtLength(r,n)}tAtLength(t,e={}){let n=!0;t<0&&(n=!1,t=-t);const r=this.getPrecision(e),i=this.getDivisions(e),s={precision:r,subdivisions:i};let o,a,l=null,c=0,h=0,u=0;const g=i.length;let d=g>0?1/g:0;for(let e=0;e<g;e+=1){const r=n?e:g-1-e,s=i[e],f=s.endpointDistance();if(t<=u+f){l=s,o=r*d,a=(r+1)*d,c=n?t-u:f+u-t,h=n?f+u-t:t-u;break}u+=f}if(null==l)return n?1:0;const f=this.length(s),p=Math.pow(10,-r);for(;;){let t,e,n;if(t=0!==f?c/f:0,t<p)return o;if(t=0!==f?h/f:0,t<p)return a;const r=l.divide(.5);d/=2;const i=r[0].endpointDistance(),s=r[1].endpointDistance();c<=i?(l=r[0],a-=d,e=c,n=i-e):(l=r[1],o+=d,e=c-i,n=s-e),c=e,h=n}}toPoints(t={}){const e=this.getDivisions(t),n=[e[0].start.clone()];return e.forEach((t=>n.push(t.end.clone()))),n}toPolyline(t={}){return new zy(this.toPoints(t))}scale(t,e,n){return this.start.scale(t,e,n),this.controlPoint1.scale(t,e,n),this.controlPoint2.scale(t,e,n),this.end.scale(t,e,n),this}rotate(t,e){return this.start.rotate(t,e),this.controlPoint1.rotate(t,e),this.controlPoint2.rotate(t,e),this.end.rotate(t,e),this}translate(t,e){return"number"==typeof t?(this.start.translate(t,e),this.controlPoint1.translate(t,e),this.controlPoint2.translate(t,e),this.end.translate(t,e)):(this.start.translate(t),this.controlPoint1.translate(t),this.controlPoint2.translate(t),this.end.translate(t)),this}equals(t){return null!=t&&this.start.equals(t.start)&&this.controlPoint1.equals(t.controlPoint1)&&this.controlPoint2.equals(t.controlPoint2)&&this.end.equals(t.end)}clone(){return new $y(this.start,this.controlPoint1,this.controlPoint2,this.end)}toJSON(){return{start:this.start.toJSON(),controlPoint1:this.controlPoint1.toJSON(),controlPoint2:this.controlPoint2.toJSON(),end:this.end.toJSON()}}serialize(){return[this.start.serialize(),this.controlPoint1.serialize(),this.controlPoint2.serialize(),this.end.serialize()].join(" ")}}!function(t){t.isCurve=function(e){return null!=e&&e instanceof t}}($y||($y={})),function(t){function e(t){const e=t.length,n=[],r=[];let i=2;n[0]=t[0]/i;for(let s=1;s<e;s+=1)r[s]=1/i,i=(s<e-1?4:3.5)-r[s],n[s]=(t[s]-n[s-1])/i;for(let t=1;t<e;t+=1)n[e-t-1]-=r[e-t]*n[e-t];return n}t.throughPoints=function(n){if(null==n||Array.isArray(n)&&n.length<2)throw new Error("At least 2 points are required");const r=function(t){const n=t.map((t=>ky.clone(t))),r=[],i=[],s=n.length-1;if(1===s)return r[0]=new ky((2*n[0].x+n[1].x)/3,(2*n[0].y+n[1].y)/3),i[0]=new ky(2*r[0].x-n[0].x,2*r[0].y-n[0].y),[r,i];const o=[];for(let t=1;t<s-1;t+=1)o[t]=4*n[t].x+2*n[t+1].x;o[0]=n[0].x+2*n[1].x,o[s-1]=(8*n[s-1].x+n[s].x)/2;const a=e(o);for(let t=1;t<s-1;t+=1)o[t]=4*n[t].y+2*n[t+1].y;o[0]=n[0].y+2*n[1].y,o[s-1]=(8*n[s-1].y+n[s].y)/2;const l=e(o);for(let t=0;t<s;t+=1)r.push(new ky(a[t],l[t])),t<s-1?i.push(new ky(2*n[t+1].x-a[t+1],2*n[t+1].y-l[t+1])):i.push(new ky((n[s].x+a[s-1])/2,(n[s].y+l[s-1])/2));return[r,i]}(n),i=[];for(let e=0,s=r[0].length;e<s;e+=1){const s=new ky(r[0][e].x,r[0][e].y),o=new ky(r[1][e].x,r[1][e].y);i.push(new t(n[e],s,o,n[e+1]))}return i}}($y||($y={}));class Fy extends Ty{constructor(){super(...arguments),this.isVisible=!0,this.isSegment=!0,this.isSubpathStart=!1}get end(){return this.endPoint}get start(){if(null==this.previousSegment)throw new Error("Missing previous segment. (This segment cannot be the first segment of a path, or segment has not yet been added to a path.)");return this.previousSegment.end}closestPointT(t,e){if(this.closestPointNormalizedLength)return this.closestPointNormalizedLength(t);throw new Error("Neither `closestPointT` nor `closestPointNormalizedLength` method is implemented.")}lengthAtT(t,e){if(t<=0)return 0;const n=this.length();return t>=1?n:n*t}divideAtT(t){if(this.divideAt)return this.divideAt(t);throw new Error("Neither `divideAtT` nor `divideAt` method is implemented.")}pointAtT(t){if(this.pointAt)return this.pointAt(t);throw new Error("Neither `pointAtT` nor `pointAt` method is implemented.")}tangentAtT(t){if(this.tangentAt)return this.tangentAt(t);throw new Error("Neither `tangentAtT` nor `tangentAt` method is implemented.")}}class Gy extends Fy{constructor(t,e){super(),jy.isLine(t)?this.endPoint=t.end.clone().round(2):this.endPoint=ky.create(t,e).round(2)}get type(){return"L"}get line(){return new jy(this.start,this.end)}bbox(){return this.line.bbox()}closestPoint(t){return this.line.closestPoint(t)}closestPointLength(t){return this.line.closestPointLength(t)}closestPointNormalizedLength(t){return this.line.closestPointNormalizedLength(t)}closestPointTangent(t){return this.line.closestPointTangent(t)}length(){return this.line.length()}divideAt(t){const e=this.line.divideAt(t);return[new Gy(e[0]),new Gy(e[1])]}divideAtLength(t){const e=this.line.divideAtLength(t);return[new Gy(e[0]),new Gy(e[1])]}getSubdivisions(){return[]}pointAt(t){return this.line.pointAt(t)}pointAtLength(t){return this.line.pointAtLength(t)}tangentAt(t){return this.line.tangentAt(t)}tangentAtLength(t){return this.line.tangentAtLength(t)}isDifferentiable(){return null!=this.previousSegment&&!this.start.equals(this.end)}clone(){return new Gy(this.end)}scale(t,e,n){return this.end.scale(t,e,n),this}rotate(t,e){return this.end.rotate(t,e),this}translate(t,e){return"number"==typeof t?this.end.translate(t,e):this.end.translate(t),this}equals(t){return this.type===t.type&&this.start.equals(t.start)&&this.end.equals(t.end)}toJSON(){return{type:this.type,start:this.start.toJSON(),end:this.end.toJSON()}}serialize(){const t=this.end;return`${this.type} ${t.x} ${t.y}`}}!function(t){t.create=function(...e){const n=e.length,r=e[0];if(jy.isLine(r))return new t(r);if(ky.isPointLike(r))return 1===n?new t(r):e.map((e=>new t(e)));if(2===n)return new t(+e[0],+e[1]);const i=[];for(let r=0;r<n;r+=2){const n=+e[r],s=+e[r+1];i.push(new t(n,s))}return i}}(Gy||(Gy={}));class Uy extends Fy{get end(){if(!this.subpathStartSegment)throw new Error("Missing subpath start segment. (This segment needs a subpath start segment (e.g. MoveTo), or segment has not yet been added to a path.)");return this.subpathStartSegment.end}get type(){return"Z"}get line(){return new jy(this.start,this.end)}bbox(){return this.line.bbox()}closestPoint(t){return this.line.closestPoint(t)}closestPointLength(t){return this.line.closestPointLength(t)}closestPointNormalizedLength(t){return this.line.closestPointNormalizedLength(t)}closestPointTangent(t){return this.line.closestPointTangent(t)}length(){return this.line.length()}divideAt(t){const e=this.line.divideAt(t);return[e[1].isDifferentiable()?new Gy(e[0]):this.clone(),new Gy(e[1])]}divideAtLength(t){const e=this.line.divideAtLength(t);return[e[1].isDifferentiable()?new Gy(e[0]):this.clone(),new Gy(e[1])]}getSubdivisions(){return[]}pointAt(t){return this.line.pointAt(t)}pointAtLength(t){return this.line.pointAtLength(t)}tangentAt(t){return this.line.tangentAt(t)}tangentAtLength(t){return this.line.tangentAtLength(t)}isDifferentiable(){return!(!this.previousSegment||!this.subpathStartSegment)&&!this.start.equals(this.end)}scale(){return this}rotate(){return this}translate(){return this}equals(t){return this.type===t.type&&this.start.equals(t.start)&&this.end.equals(t.end)}clone(){return new Uy}toJSON(){return{type:this.type,start:this.start.toJSON(),end:this.end.toJSON()}}serialize(){return this.type}}!function(t){t.create=function(){return new t}}(Uy||(Uy={}));class qy extends Fy{constructor(t,e){super(),this.isVisible=!1,this.isSubpathStart=!0,jy.isLine(t)||$y.isCurve(t)?this.endPoint=t.end.clone().round(2):this.endPoint=ky.create(t,e).round(2)}get start(){throw new Error("Illegal access. Moveto segments should not need a start property.")}get type(){return"M"}bbox(){return null}closestPoint(){return this.end.clone()}closestPointLength(){return 0}closestPointNormalizedLength(){return 0}closestPointT(){return 1}closestPointTangent(){return null}length(){return 0}lengthAtT(){return 0}divideAt(){return[this.clone(),this.clone()]}divideAtLength(){return[this.clone(),this.clone()]}getSubdivisions(){return[]}pointAt(){return this.end.clone()}pointAtLength(){return this.end.clone()}pointAtT(){return this.end.clone()}tangentAt(){return null}tangentAtLength(){return null}tangentAtT(){return null}isDifferentiable(){return!1}scale(t,e,n){return this.end.scale(t,e,n),this}rotate(t,e){return this.end.rotate(t,e),this}translate(t,e){return"number"==typeof t?this.end.translate(t,e):this.end.translate(t),this}clone(){return new qy(this.end)}equals(t){return this.type===t.type&&this.end.equals(t.end)}toJSON(){return{type:this.type,end:this.end.toJSON()}}serialize(){const t=this.end;return`${this.type} ${t.x} ${t.y}`}}!function(t){t.create=function(...e){const n=e.length,r=e[0];if(jy.isLine(r))return new t(r);if($y.isCurve(r))return new t(r);if(ky.isPointLike(r)){if(1===n)return new t(r);const i=[];for(let r=0;r<n;r+=1)0===r?i.push(new t(e[r])):i.push(new Gy(e[r]));return i}if(2===n)return new t(+e[0],+e[1]);const i=[];for(let r=0;r<n;r+=2){const n=+e[r],s=+e[r+1];0===r?i.push(new t(n,s)):i.push(new Gy(n,s))}return i}}(qy||(qy={}));class Wy extends Fy{constructor(t,e,n,r,i,s){super(),$y.isCurve(t)?(this.controlPoint1=t.controlPoint1.clone().round(2),this.controlPoint2=t.controlPoint2.clone().round(2),this.endPoint=t.end.clone().round(2)):"number"==typeof t?(this.controlPoint1=new ky(t,e).round(2),this.controlPoint2=new ky(n,r).round(2),this.endPoint=new ky(i,s).round(2)):(this.controlPoint1=ky.create(t).round(2),this.controlPoint2=ky.create(e).round(2),this.endPoint=ky.create(n).round(2))}get type(){return"C"}get curve(){return new $y(this.start,this.controlPoint1,this.controlPoint2,this.end)}bbox(){return this.curve.bbox()}closestPoint(t){return this.curve.closestPoint(t)}closestPointLength(t){return this.curve.closestPointLength(t)}closestPointNormalizedLength(t){return this.curve.closestPointNormalizedLength(t)}closestPointTangent(t){return this.curve.closestPointTangent(t)}length(){return this.curve.length()}divideAt(t,e={}){const n=this.curve.divideAt(t,e);return[new Wy(n[0]),new Wy(n[1])]}divideAtLength(t,e={}){const n=this.curve.divideAtLength(t,e);return[new Wy(n[0]),new Wy(n[1])]}divideAtT(t){const e=this.curve.divideAtT(t);return[new Wy(e[0]),new Wy(e[1])]}getSubdivisions(){return[]}pointAt(t){return this.curve.pointAt(t)}pointAtLength(t){return this.curve.pointAtLength(t)}tangentAt(t){return this.curve.tangentAt(t)}tangentAtLength(t){return this.curve.tangentAtLength(t)}isDifferentiable(){if(!this.previousSegment)return!1;const t=this.start,e=this.controlPoint1,n=this.controlPoint2,r=this.end;return!(t.equals(e)&&e.equals(n)&&n.equals(r))}scale(t,e,n){return this.controlPoint1.scale(t,e,n),this.controlPoint2.scale(t,e,n),this.end.scale(t,e,n),this}rotate(t,e){return this.controlPoint1.rotate(t,e),this.controlPoint2.rotate(t,e),this.end.rotate(t,e),this}translate(t,e){return"number"==typeof t?(this.controlPoint1.translate(t,e),this.controlPoint2.translate(t,e),this.end.translate(t,e)):(this.controlPoint1.translate(t),this.controlPoint2.translate(t),this.end.translate(t)),this}equals(t){return this.start.equals(t.start)&&this.end.equals(t.end)&&this.controlPoint1.equals(t.controlPoint1)&&this.controlPoint2.equals(t.controlPoint2)}clone(){return new Wy(this.controlPoint1,this.controlPoint2,this.end)}toJSON(){return{type:this.type,start:this.start.toJSON(),controlPoint1:this.controlPoint1.toJSON(),controlPoint2:this.controlPoint2.toJSON(),end:this.end.toJSON()}}serialize(){const t=this.controlPoint1,e=this.controlPoint2,n=this.end;return[this.type,t.x,t.y,e.x,e.y,n.x,n.y].join(" ")}}function Hy(t,e,n){return{x:t*Math.cos(n)-e*Math.sin(n),y:t*Math.sin(n)+e*Math.cos(n)}}function Jy(t,e,n,r,i,s){const o=1/3,a=2/3;return[o*t+a*n,o*e+a*r,o*i+a*n,o*s+a*r,i,s]}function Xy(t,e,n,r,i,s,o,a,l,c){const h=120*Math.PI/180,u=Math.PI/180*(+i||0);let g,d,f,p,m,y=[];if(c)d=c[0],f=c[1],p=c[2],m=c[3];else{g=Hy(t,e,-u),t=g.x,e=g.y,g=Hy(a,l,-u);const i=(t-(a=g.x))/2,c=(e-(l=g.y))/2;let h=i*i/(n*n)+c*c/(r*r);h>1&&(h=Math.sqrt(h),n*=h,r*=h);const y=n*n,v=r*r,b=(s===o?-1:1)*Math.sqrt(Math.abs((y*v-y*c*c-v*i*i)/(y*c*c+v*i*i)));p=b*n*c/r+(t+a)/2,m=b*-r*i/n+(e+l)/2,d=Math.asin((e-m)/r),f=Math.asin((l-m)/r),d=t<p?Math.PI-d:d,f=a<p?Math.PI-f:f,d<0&&(d=2*Math.PI+d),f<0&&(f=2*Math.PI+f),o&&d>f&&(d-=2*Math.PI),!o&&f>d&&(f-=2*Math.PI)}let v=f-d;if(Math.abs(v)>h){const t=f,e=a,s=l;f=d+h*(o&&f>d?1:-1),y=Xy(a=p+n*Math.cos(f),l=m+r*Math.sin(f),n,r,i,0,o,e,s,[f,t,p,m])}v=f-d;const b=Math.cos(d),x=Math.sin(d),w=Math.cos(f),A=Math.sin(f),C=Math.tan(v/4),P=4/3*(n*C),M=4/3*(r*C),E=[t,e],S=[t+P*x,e-M*b],O=[a+P*A,l-M*w],T=[a,l];if(S[0]=2*E[0]-S[0],S[1]=2*E[1]-S[1],c)return[S,O,T].concat(y);{y=[S,O,T].concat(y).join().split(",");const t=[],e=y.length;for(let n=0;n<e;n+=1)t[n]=n%2?Hy(+y[n-1],+y[n],u).y:Hy(+y[n],+y[n+1],u).x;return t}}function Yy(t){const e=function(t){if(!t)return null;const e="\t\n\v\f\r \u2028\u2029",n=new RegExp(`([a-z])[${e},]*((-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?[${e}]*,?[${e}]*)+)`,"ig"),r=new RegExp(`(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[${e}]*,?[${e}]*`,"ig"),i={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},s=[];return t.replace(n,((t,e,n)=>{const o=[];let a=e.toLowerCase();n.replace(r,((t,e)=>(e&&o.push(+e),t))),"m"===a&&o.length>2&&(s.push([e,...o.splice(0,2)]),a="l",e="m"===e?"l":"L");const l=i[a];for(;o.length>=l&&(s.push([e,...o.splice(0,l)]),l););return t})),s}(t);if(!e||!e.length)return[["M",0,0]];let n=0,r=0,i=0,s=0;const o=[];for(let t=0,a=e.length;t<a;t+=1){const a=[];o.push(a);const l=e[t],c=l[0];if(c!==c.toUpperCase())switch(a[0]=c.toUpperCase(),a[0]){case"A":a[1]=l[1],a[2]=l[2],a[3]=l[3],a[4]=l[4],a[5]=l[5],a[6]=+l[6]+n,a[7]=+l[7]+r;break;case"V":a[1]=+l[1]+r;break;case"H":a[1]=+l[1]+n;break;case"M":i=+l[1]+n,s=+l[2]+r;for(let t=1,e=l.length;t<e;t+=1)a[t]=+l[t]+(t%2?n:r);break;default:for(let t=1,e=l.length;t<e;t+=1)a[t]=+l[t]+(t%2?n:r)}else for(let t=0,e=l.length;t<e;t+=1)a[t]=l[t];switch(a[0]){case"Z":n=+i,r=+s;break;case"H":n=a[1];break;case"V":r=a[1];break;case"M":i=a[a.length-2],s=a[a.length-1],n=a[a.length-2],r=a[a.length-1];break;default:n=a[a.length-2],r=a[a.length-1]}}return o}function Zy(t){const e=Yy(t),n={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null};function r(t,e,n){let r,i;if(!t)return["C",e.x,e.y,e.x,e.y,e.x,e.y];switch(t[0]in{T:1,Q:1}||(e.qx=null,e.qy=null),t[0]){case"M":e.X=t[1],e.Y=t[2];break;case"A":return 0===parseFloat(t[1])||0===parseFloat(t[2])?["L",t[6],t[7]]:["C"].concat(Xy.apply(0,[e.x,e.y].concat(t.slice(1))));case"S":return"C"===n||"S"===n?(r=2*e.x-e.bx,i=2*e.y-e.by):(r=e.x,i=e.y),["C",r,i].concat(t.slice(1));case"T":return"Q"===n||"T"===n?(e.qx=2*e.x-e.qx,e.qy=2*e.y-e.qy):(e.qx=e.x,e.qy=e.y),["C"].concat(Jy(e.x,e.y,e.qx,e.qy,t[1],t[2]));case"Q":return e.qx=t[1],e.qy=t[2],["C"].concat(Jy(e.x,e.y,t[1],t[2],t[3],t[4]));case"H":return["L"].concat(t[1],e.y);case"V":return["L"].concat(e.x,t[1])}return t}function i(t,n){if(t[n].length>7){t[n].shift();const r=t[n];for(;r.length;)s[n]="A",n+=1,t.splice(n,0,["C"].concat(r.splice(0,6)));t.splice(n,1),a=e.length}}const s=[];let o="",a=e.length;for(let t=0;t<a;t+=1){let a="";e[t]&&(a=e[t][0]),"C"!==a&&(s[t]=a,t>0&&(o=s[t-1])),e[t]=r(e[t],n,o),"A"!==s[t]&&"C"===a&&(s[t]="C"),i(e,t);const l=e[t],c=l.length;n.x=l[c-2],n.y=l[c-1],n.bx=parseFloat(l[c-4])||n.x,n.by=parseFloat(l[c-3])||n.y}return e[0][0]&&"M"===e[0][0]||e.unshift(["M",0,0]),e}function Ky(e){return Zy(e).map((e=>e.map((e=>"string"==typeof e?e:t.GeometryUtil.round(e,2))))).join(",").split(",").join(" ")}!function(t){t.create=function(...e){const n=e.length,r=e[0];if($y.isCurve(r))return new t(r);if(ky.isPointLike(r)){if(3===n)return new t(e[0],e[1],e[2]);const r=[];for(let i=0;i<n;i+=3)r.push(new t(e[i],e[i+1],e[i+2]));return r}if(6===n)return new t(e[0],e[1],e[2],e[3],e[4],e[5]);const i=[];for(let r=0;r<n;r+=6)i.push(new t(e[r],e[r+1],e[r+2],e[r+3],e[r+4],e[r+5]));return i}}(Wy||(Wy={}));let Qy=class e extends Ty{constructor(t){if(super(),this.PRECISION=3,this.segments=[],Array.isArray(t))if(jy.isLine(t[0])||$y.isCurve(t[0])){let n=null;t.forEach(((t,r)=>{0===r&&this.appendSegment(e.createSegment("M",t.start)),null==n||n.end.equals(t.start)||this.appendSegment(e.createSegment("M",t.start)),jy.isLine(t)?this.appendSegment(e.createSegment("L",t.end)):$y.isCurve(t)&&this.appendSegment(e.createSegment("C",t.controlPoint1,t.controlPoint2,t.end)),n=t}))}else{t.forEach((t=>{t.isSegment&&this.appendSegment(t)}))}else null!=t&&(jy.isLine(t)?(this.appendSegment(e.createSegment("M",t.start)),this.appendSegment(e.createSegment("L",t.end))):$y.isCurve(t)?(this.appendSegment(e.createSegment("M",t.start)),this.appendSegment(e.createSegment("C",t.controlPoint1,t.controlPoint2,t.end))):zy.isPolyline(t)?t.points&&t.points.length&&t.points.forEach(((t,n)=>{const r=0===n?e.createSegment("M",t):e.createSegment("L",t);this.appendSegment(r)})):t.isSegment&&this.appendSegment(t))}get start(){const t=this.segments,e=t.length;if(0===e)return null;for(let n=0;n<e;n+=1){const e=t[n];if(e.isVisible)return e.start}return t[e-1].end}get end(){const t=this.segments,e=t.length;if(0===e)return null;for(let n=e-1;n>=0;n-=1){const e=t[n];if(e.isVisible)return e.end}return t[e-1].end}moveTo(...t){return this.appendSegment(qy.create.call(null,...t))}lineTo(...t){return this.appendSegment(Gy.create.call(null,...t))}curveTo(...t){return this.appendSegment(Wy.create.call(null,...t))}arcTo(t,e,n,r,i,s,o){const a=this.end||new ky,l="number"==typeof s?Ry(a.x,a.y,t,e,n,r,i,s,o):Ry(a.x,a.y,t,e,n,r,i,s.x,s.y);if(null!=l)for(let t=0,e=l.length;t<e;t+=6)this.curveTo(l[t],l[t+1],l[t+2],l[t+3],l[t+4],l[t+5]);return this}quadTo(t,n,r,i){const s=this.end||new ky,o=["M",s.x,s.y];if("number"==typeof t)o.push("Q",t,n,r,i);else{const e=n;o.push("Q",t.x,t.y,e.x,e.y)}const a=e.parse(o.join(" "));return this.appendSegment(a.segments.slice(1)),this}close(){return this.appendSegment(Uy.create())}drawPoints(t,n={}){const r=Dy(t,n),i=e.parse(r);i&&i.segments&&this.appendSegment(i.segments)}bbox(){const t=this.segments,e=t.length;if(0===e)return null;let n;for(let r=0;r<e;r+=1){const e=t[r];if(e.isVisible){const t=e.bbox();null!=t&&(n=n?n.union(t):t)}}if(null!=n)return n;const r=t[e-1];return new Ny(r.end.x,r.end.y,0,0)}appendSegment(t){const e=this.segments.length;let n,r=0!==e?this.segments[e-1]:null;if(Array.isArray(t))for(let e=0,i=t.length;e<i;e+=1){const i=t[e];n=this.prepareSegment(i,r,null),this.segments.push(n),r=n}else null!=t&&t.isSegment&&(n=this.prepareSegment(t,r,null),this.segments.push(n));return this}insertSegment(t,e){const n=this.segments.length;if(t<0&&(t=n+t+1),t>n||t<0)throw new Error("Index out of range.");let r,i=null,s=null;if(0!==n&&(t>=1?(i=this.segments[t-1],s=i.nextSegment):(i=null,s=this.segments[0])),Array.isArray(e))for(let n=0,o=e.length;n<o;n+=1){const o=e[n];r=this.prepareSegment(o,i,s),this.segments.splice(t+n,0,r),i=r}else r=this.prepareSegment(e,i,s),this.segments.splice(t,0,r);return this}removeSegment(t){const e=this.fixIndex(t),n=this.segments.splice(e,1)[0],r=n.previousSegment,i=n.nextSegment;return r&&(r.nextSegment=i),i&&(i.previousSegment=r),n.isSubpathStart&&i&&this.updateSubpathStartSegment(i),n}replaceSegment(t,e){const n=this.fixIndex(t);let r;const i=this.segments[n];let s=i.previousSegment;const o=i.nextSegment;let a=i.isSubpathStart;if(Array.isArray(e)){this.segments.splice(t,1);for(let n=0,i=e.length;n<i;n+=1){const i=e[n];r=this.prepareSegment(i,s,o),this.segments.splice(t+n,0,r),s=r,a&&r.isSubpathStart&&(a=!1)}}else r=this.prepareSegment(e,s,o),this.segments.splice(n,1,r),a&&r.isSubpathStart&&(a=!1);a&&o&&this.updateSubpathStartSegment(o)}getSegment(t){const e=this.fixIndex(t);return this.segments[e]}fixIndex(t){const e=this.segments.length;if(0===e)throw new Error("Path has no segments.");let n=t;for(;n<0;)n=e+n;if(n>=e||n<0)throw new Error("Index out of range.");return n}segmentAt(t,e={}){const n=this.segmentIndexAt(t,e);return n?this.getSegment(n):null}segmentAtLength(t,e={}){const n=this.segmentIndexAtLength(t,e);return n?this.getSegment(n):null}segmentIndexAt(e,n={}){if(0===this.segments.length)return null;const r=t.GeometryUtil.clamp(e,0,1),i=this.getOptions(n),s=this.length(i)*r;return this.segmentIndexAtLength(s,i)}segmentIndexAtLength(t,e={}){const n=this.segments.length;if(0===n)return null;let r=!0;t<0&&(r=!1,t=-t);const i=this.getPrecision(e),s=this.getSubdivisions(e);let o=0,a=null;for(let e=0;e<n;e+=1){const l=r?e:n-1-e,c=this.segments[l],h=s[l],u=c.length({precision:i,subdivisions:h});if(c.isVisible){if(t<=o+u)return l;a=l}o+=u}return a}getSegmentSubdivisions(t={}){const e=this.getPrecision(t),n=[];for(let t=0,r=this.segments.length;t<r;t+=1){const r=this.segments[t].getSubdivisions({precision:e});n.push(r)}return n}updateSubpathStartSegment(t){let e=t.previousSegment,n=t;for(;n&&!n.isSubpathStart;)n.subpathStartSegment=null!=e?e.subpathStartSegment:null,e=n,n=n.nextSegment}prepareSegment(t,e,n){t.previousSegment=e,t.nextSegment=n,null!=e&&(e.nextSegment=t),null!=n&&(n.previousSegment=t);let r=t;return t.isSubpathStart&&(t.subpathStartSegment=t,r=n),null!=r&&this.updateSubpathStartSegment(r),t}closestPoint(t,e={}){const n=this.closestPointT(t,e);return n?this.pointAtT(n):null}closestPointLength(t,e={}){const n=this.getOptions(e),r=this.closestPointT(t,n);return r?this.lengthAtT(r,n):0}closestPointNormalizedLength(t,e={}){const n=this.getOptions(e),r=this.closestPointLength(t,n);if(0===r)return 0;const i=this.length(n);return 0===i?0:r/i}closestPointT(e,n={}){if(0===this.segments.length)return null;const r=this.getPrecision(n),i=this.getSubdivisions(n);let s,o=1/0;for(let n=0,a=this.segments.length;n<a;n+=1){const a=this.segments[n],l=i[n];if(a.isVisible){const i=a.closestPointT(e,{precision:r,subdivisions:l}),c=a.pointAtT(i),h=t.GeometryUtil.squaredLength(c,e);h<o&&(s={segmentIndex:n,value:i},o=h)}}return s||{segmentIndex:this.segments.length-1,value:1}}closestPointTangent(e,n={}){if(0===this.segments.length)return null;const r=this.getPrecision(n),i=this.getSubdivisions(n);let s,o=1/0;for(let n=0,a=this.segments.length;n<a;n+=1){const a=this.segments[n],l=i[n];if(a.isDifferentiable()){const n=a.closestPointT(e,{precision:r,subdivisions:l}),i=a.pointAtT(n),c=t.GeometryUtil.squaredLength(i,e);c<o&&(s=a.tangentAtT(n),o=c)}}return s||null}containsPoint(t,e={}){const n=this.toPolylines(e);if(!n)return!1;let r=0;for(let e=0,i=n.length;e<i;e+=1){n[e].containsPoint(t)&&(r+=1)}return r%2==1}pointAt(t,e={}){if(0===this.segments.length)return null;if(t<=0)return this.start.clone();if(t>=1)return this.end.clone();const n=this.getOptions(e),r=this.length(n)*t;return this.pointAtLength(r,n)}pointAtLength(t,e={}){if(0===this.segments.length)return null;if(0===t)return this.start.clone();let n=!0;t<0&&(n=!1,t=-t);const r=this.getPrecision(e),i=this.getSubdivisions(e);let s,o=0;for(let e=0,a=this.segments.length;e<a;e+=1){const l=n?e:a-1-e,c=this.segments[l],h=i[l],u=c.length({precision:r,subdivisions:h});if(c.isVisible){if(t<=o+u)return c.pointAtLength((n?1:-1)*(t-o),{precision:r,subdivisions:h});s=c}o+=u}if(s)return n?s.end:s.start;return this.segments[this.segments.length-1].end.clone()}pointAtT(e){const n=this.segments,r=n.length;if(0===r)return null;const i=e.segmentIndex;if(i<0)return n[0].pointAtT(0);if(i>=r)return n[r-1].pointAtT(1);const s=t.GeometryUtil.clamp(e.value,0,1);return n[i].pointAtT(s)}divideAt(e,n={}){if(0===this.segments.length)return null;const r=t.GeometryUtil.clamp(e,0,1),i=this.getOptions(n),s=this.length(i)*r;return this.divideAtLength(s,i)}divideAtLength(t,n={}){if(0===this.segments.length)return null;let r=!0;t<0&&(r=!1,t=-t);const i=this.getPrecision(n),s=this.getSubdivisions(n);let o,a,l,c,h,u=0;for(let e=0,n=this.segments.length;e<n;e+=1){const h=r?e:n-1-e,g=this.getSegment(h),d={precision:i,subdivisions:s[h]},f=g.length(d);if(g.isDifferentiable()&&(l=g,c=h,t<=u+f)){a=h,o=g.divideAtLength((r?1:-1)*(t-u),d);break}u+=f}if(!l)return null;o||(a=c,h=r?1:0,o=l.divideAtT(h));const g=this.clone(),d=a;g.replaceSegment(d,o);const f=d;let p=d+1,m=d+2;o[0].isDifferentiable()||(g.removeSegment(f),p-=1,m-=1);const y=g.getSegment(p).start;g.insertSegment(p,e.createSegment("M",y)),m+=1,o[1].isDifferentiable()||(g.removeSegment(m-1),m-=1);const v=m-f-1;for(let t=m,n=g.segments.length;t<n;t+=1){const n=this.getSegment(t-v),r=g.getSegment(t);if("Z"===r.type&&!n.subpathStartSegment.end.equals(r.subpathStartSegment.end)){const r=e.createSegment("L",n.end);g.replaceSegment(t,r)}}return[new e(g.segments.slice(0,p)),new e(g.segments.slice(p))]}intersectsWithLine(t,e={}){const n=this.toPolylines(e);if(null==n)return null;let r=null;for(let e=0,i=n.length;e<i;e+=1){const i=n[e],s=t.intersect(i);s&&(null==r&&(r=[]),Array.isArray(s)?r.push(...s):r.push(s))}return r}isDifferentiable(){for(let t=0,e=this.segments.length;t<e;t+=1){if(this.segments[t].isDifferentiable())return!0}return!1}isValid(){const t=this.segments;return 0===t.length||"M"===t[0].type}length(t={}){if(0===this.segments.length)return 0;const e=this.getSubdivisions(t);let n=0;for(let t=0,r=this.segments.length;t<r;t+=1){const r=this.segments[t],i=e[t];n+=r.length({subdivisions:i})}return n}lengthAtT(e,n={}){const r=this.segments.length;if(0===r)return 0;let i=e.segmentIndex;if(i<0)return 0;let s=t.GeometryUtil.clamp(e.value,0,1);i>=r&&(i=r-1,s=1);const o=this.getPrecision(n),a=this.getSubdivisions(n);let l=0;for(let t=0;t<i;t+=1){const e=this.segments[t],n=a[t];l+=e.length({precision:o,subdivisions:n})}const c=this.segments[i],h=a[i];return l+=c.lengthAtT(s,{precision:o,subdivisions:h}),l}tangentAt(e,n={}){if(0===this.segments.length)return null;const r=t.GeometryUtil.clamp(e,0,1),i=this.getOptions(n),s=this.length(i)*r;return this.tangentAtLength(s,i)}tangentAtLength(t,e={}){if(0===this.segments.length)return null;let n=!0;t<0&&(n=!1,t=-t);const r=this.getPrecision(e),i=this.getSubdivisions(e);let s,o=0;for(let e=0,a=this.segments.length;e<a;e+=1){const l=n?e:a-1-e,c=this.segments[l],h=i[l],u=c.length({precision:r,subdivisions:h});if(c.isDifferentiable()){if(t<=o+u)return c.tangentAtLength((n?1:-1)*(t-o),{precision:r,subdivisions:h});s=c}o+=u}if(s){const t=n?1:0;return s.tangentAtT(t)}return null}tangentAtT(e){const n=this.segments.length;if(0===n)return null;const r=e.segmentIndex;if(r<0)return this.segments[0].tangentAtT(0);if(r>=n)return this.segments[n-1].tangentAtT(1);const i=t.GeometryUtil.clamp(e.value,0,1);return this.segments[r].tangentAtT(i)}getPrecision(t={}){return null==t.precision?this.PRECISION:t.precision}getSubdivisions(t={}){if(null==t.segmentSubdivisions){const e=this.getPrecision(t);return this.getSegmentSubdivisions({precision:e})}return t.segmentSubdivisions}getOptions(t={}){return{precision:this.getPrecision(t),segmentSubdivisions:this.getSubdivisions(t)}}toPoints(t={}){const e=this.segments,n=e.length;if(0===n)return null;const r=this.getSubdivisions(t),i=[];let s=[];for(let t=0;t<n;t+=1){const n=e[t];if(n.isVisible){const e=r[t];e.length>0?e.forEach((t=>s.push(t.start))):s.push(n.start)}else s.length>0&&(s.push(e[t-1].end),i.push(s),s=[])}return s.length>0&&(s.push(this.end),i.push(s)),i}toPolylines(t={}){const e=this.toPoints(t);return e?e.map((t=>new zy(t))):null}scale(t,e,n){return this.segments.forEach((r=>r.scale(t,e,n))),this}rotate(t,e){return this.segments.forEach((n=>n.rotate(t,e))),this}translate(t,e){return"number"==typeof t?this.segments.forEach((n=>n.translate(t,e))):this.segments.forEach((e=>e.translate(t))),this}clone(){const t=new e;return this.segments.forEach((e=>t.appendSegment(e.clone()))),t}equals(t){if(null==t)return!1;const e=this.segments,n=t.segments,r=e.length;if(n.length!==r)return!1;for(let t=0;t<r;t+=1){const r=e[t],i=n[t];if(r.type!==i.type||!r.equals(i))return!1}return!0}toJSON(){return this.segments.map((t=>t.toJSON()))}serialize(){if(!this.isValid())throw new Error("Invalid path segments.");return this.segments.map((t=>t.serialize())).join(" ")}toString(){return this.serialize()}};!function(t){t.isPath=function(e){return null!=e&&e instanceof t}}(Qy||(Qy={})),function(t){function e(t,...e){if("M"===t)return qy.create.call(null,...e);if("L"===t)return Gy.create.call(null,...e);if("C"===t)return Wy.create.call(null,...e);if("z"===t||"Z"===t)return Uy.create();throw new Error(`Invalid path segment type "${t}"`)}t.parse=function(n){if(!n)return new t;const r=new t,i=t.normalize(n).match(/(?:[a-zA-Z] *)(?:(?:-?\d+(?:\.\d+)?(?:e[-+]?\d+)? *,? *)|(?:-?\.\d+ *,? *))+|(?:[a-zA-Z] *)(?! |\d|-|\.)/g);if(null!=i)for(let t=0,n=i.length;t<n;t+=1){const n=/(?:[a-zA-Z])|(?:(?:-?\d+(?:\.\d+)?(?:e[-+]?\d+)?))|(?:(?:-?\.\d+))/g,s=i[t].match(n);if(null!=s){const t=s[0],n=s.slice(1).map((t=>+t)),i=e.call(null,t,...n);r.appendSegment(i)}}return r},t.createSegment=e}(Qy||(Qy={})),function(t){t.normalize=Ky,t.isValid=By,t.drawArc=Vy,t.drawPoints=Dy,t.arcToCurves=Ry}(Qy||(Qy={}));class tv{constructor(t){this.options=Object.assign({},t),this.data=this.options.data||{},this.register=this.register.bind(this),this.unregister=this.unregister.bind(this)}get names(){return Object.keys(this.data)}register(e,n,r=!1){if("object"==typeof e)return void Object.entries(e).forEach((([t,e])=>{this.register(t,e,n)}));!this.exist(e)||r||t.Platform.isApplyingHMR()||this.onDuplicated(e);const i=this.options.process,s=i?ef(i,this,e,n):n;return this.data[e]=s,s}unregister(t){const e=t?this.data[t]:null;return delete this.data[t],e}get(t){return t?this.data[t]:null}exist(t){return!!t&&null!=this.data[t]}onDuplicated(t){try{throw this.options.onConflict&&ef(this.options.onConflict,this,t),new Error(`${ri(this.options.type)} with name '${t}' already registered.`)}catch(t){throw t}}onNotFound(t,e){throw new Error(this.getSpellingSuggestion(t,e))}getSpellingSuggestion(t,e){const n=this.getSpellingSuggestionForName(t),r=e?`${e} ${mh(this.options.type)}`:this.options.type;return`${ri(r)} with name '${t}' does not exist.${n?` Did you mean '${n}'?`:""}`}getSpellingSuggestionForName(t){return _f(t,Object.keys(this.data),(t=>t))}}!function(t){t.create=function(e){return new t(e)}}(tv||(tv={}));const ev={color:"#aaaaaa",thickness:1,markup:"rect",update(t,e){const n=e.thickness*e.sx,r=e.thickness*e.sy;$p(t,{width:n,height:r,rx:n,ry:r,fill:e.color})}},nv={color:"#aaaaaa",thickness:1,markup:"rect",update(t,e){const n=e.sx<=1?e.thickness*e.sx:e.thickness;$p(t,{width:n,height:n,rx:n,ry:n,fill:e.color})}},rv={color:"rgba(224,224,224,1)",thickness:1,markup:"path",update(t,e){let n;const r=e.width,i=e.height,s=e.thickness;n=r-s>=0&&i-s>=0?["M",r,0,"H0 M0 0 V0",i].join(" "):"M 0 0 0 0",$p(t,{d:n,stroke:e.color,"stroke-width":e.thickness})}},iv=[{color:"rgba(224,224,224,1)",thickness:1,markup:"path",update(t,e){let n;const r=e.width,i=e.height,s=e.thickness;n=r-s>=0&&i-s>=0?["M",r,0,"H0 M0 0 V0",i].join(" "):"M 0 0 0 0",$p(t,{d:n,stroke:e.color,"stroke-width":e.thickness})}},{color:"rgba(224,224,224,0.2)",thickness:3,factor:4,markup:"path",update(t,e){let n;const r=e.factor||1,i=e.width*r,s=e.height*r,o=e.thickness;n=i-o>=0&&s-o>=0?["M",i,0,"H0 M0 0 V0",s].join(" "):"M 0 0 0 0",e.width=i,e.height=s,$p(t,{d:n,stroke:e.color,"stroke-width":e.thickness})}}];var sv=Object.freeze({__proto__:null,dot:ev,doubleMesh:iv,fixedDot:nv,mesh:rv});class ov{constructor(){this.patterns={},this.root=fm.create(xp(),{width:"100%",height:"100%"},[bp("defs")]).node}add(t,e){const n=this.root.childNodes[0];n&&n.appendChild(e),this.patterns[t]=e,fm.create("rect",{width:"100%",height:"100%",fill:`url(#${t})`}).appendTo(this.root)}get(t){return this.patterns[t]}has(t){return null!=this.patterns[t]}}!function(t){t.presets=sv,t.registry=tv.create({type:"grid"}),t.registry.register(t.presets,!0)}(ov||(ov={}));const av=function(t){const e=document.createElement("canvas"),n=t.width,r=t.height;e.width=2*n,e.height=r;const i=e.getContext("2d");return i.drawImage(t,0,0,n,r),i.translate(2*n,0),i.scale(-1,1),i.drawImage(t,0,0,n,r),e},lv=function(t){const e=document.createElement("canvas"),n=t.width,r=t.height;e.width=n,e.height=2*r;const i=e.getContext("2d");return i.drawImage(t,0,0,n,r),i.translate(0,2*r),i.scale(1,-1),i.drawImage(t,0,0,n,r),e},cv=function(t){const e=document.createElement("canvas"),n=t.width,r=t.height;e.width=2*n,e.height=2*r;const i=e.getContext("2d");return i.drawImage(t,0,0,n,r),i.setTransform(-1,0,0,-1,e.width,e.height),i.drawImage(t,0,0,n,r),i.setTransform(-1,0,0,1,e.width,0),i.drawImage(t,0,0,n,r),i.setTransform(1,0,0,-1,0,e.height),i.drawImage(t,0,0,n,r),e};var hv,uv=Object.freeze({__proto__:null,flipX:av,flipXY:cv,flipY:lv,watermark:function(e,n){const r=e.width,i=e.height,s=document.createElement("canvas");s.width=3*r,s.height=3*i;const o=s.getContext("2d"),a=null!=n.angle?-n.angle:-20,l=t.Angle.toRad(a),c=s.width/4,h=s.height/4;for(let t=0;t<4;t+=1)for(let n=0;n<4;n+=1)(t+n)%2>0&&(o.setTransform(1,0,0,1,(2*t-1)*c,(2*n-1)*h),o.rotate(l),o.drawImage(e,-r/2,-i/2,r,i));return s}});function gv(t,e){return null!=t?t:e}function dv(t,e){return null!=t&&Number.isFinite(t)?t:e}!function(t){t.presets=Object.assign({},uv),t.presets["flip-x"]=av,t.presets["flip-y"]=lv,t.presets["flip-xy"]=cv,t.registry=tv.create({type:"background pattern"}),t.registry.register(t.presets,!0)}(hv||(hv={}));var fv,pv=Object.freeze({__proto__:null,blur:function(t={}){const e=dv(t.x,2);return`\n <filter>\n <feGaussianBlur stdDeviation="${null!=t.y&&Number.isFinite(t.y)?[e,t.y]:e}"/>\n </filter>\n `.trim()},brightness:function(t={}){const e=dv(t.amount,1);return`\n <filter>\n <feComponentTransfer>\n <feFuncR type="linear" slope="${e}"/>\n <feFuncG type="linear" slope="${e}"/>\n <feFuncB type="linear" slope="${e}"/>\n </feComponentTransfer>\n </filter>\n `.trim()},contrast:function(t={}){const e=dv(t.amount,1),n=.5-e/2;return`\n <filter>\n <feComponentTransfer>\n <feFuncR type="linear" slope="${e}" intercept="${n}"/>\n <feFuncG type="linear" slope="${e}" intercept="${n}"/>\n <feFuncB type="linear" slope="${e}" intercept="${n}"/>\n </feComponentTransfer>\n </filter>\n `.trim()},dropShadow:function(t={}){const e=dv(t.dx,0),n=dv(t.dy,0),r=gv(t.color,"black"),i=dv(t.blur,4),s=dv(t.opacity,1);return"SVGFEDropShadowElement"in window?`<filter>\n <feDropShadow stdDeviation="${i}" dx="${e}" dy="${n}" flood-color="${r}" flood-opacity="${s}" />\n </filter>`.trim():`<filter>\n <feGaussianBlur in="SourceAlpha" stdDeviation="${i}" />\n <feOffset dx="${e}" dy="${n}" result="offsetblur" />\n <feFlood flood-color="${r}" />\n <feComposite in2="offsetblur" operator="in" />\n <feComponentTransfer>\n <feFuncA type="linear" slope="${s}" />\n </feComponentTransfer>\n <feMerge>\n <feMergeNode/>\n <feMergeNode in="SourceGraphic"/>\n </feMerge>\n </filter>`.trim()},grayScale:function(t={}){const e=dv(t.amount,1),n=.7152-.7152*(1-e);return`\n <filter>\n <feColorMatrix type="matrix" values="${.2126+.7874*(1-e)} ${n} ${.0722-.0722*(1-e)} 0 0 ${.2126-.2126*(1-e)} ${.7152+.2848*(1-e)} ${.0722-.0722*(1-e)} 0 0 ${.2126-.2126*(1-e)} ${n} ${.0722+.9278*(1-e)} 0 0 0 0 0 1 0"/>\n </filter>\n `.trim()},highlight:function(t={}){const e=gv(t.color,"red"),n=dv(t.blur,0),r=dv(t.width,1);return`\n <filter>\n <feFlood flood-color="${e}" flood-opacity="${dv(t.opacity,1)}" result="colored"/>\n <feMorphology result="morphed" in="SourceGraphic" operator="dilate" radius="${r}"/>\n <feComposite result="composed" in="colored" in2="morphed" operator="in"/>\n <feGaussianBlur result="blured" in="composed" stdDeviation="${n}"/>\n <feBlend in="SourceGraphic" in2="blured" mode="normal"/>\n </filter>\n `.trim()},hueRotate:function(t={}){return`\n <filter>\n <feColorMatrix type="hueRotate" values="${dv(t.angle,0)}"/>\n </filter>\n `.trim()},invert:function(t={}){const e=dv(t.amount,1),n=1-e;return`\n <filter>\n <feComponentTransfer>\n <feFuncR type="table" tableValues="${e} ${n}"/>\n <feFuncG type="table" tableValues="${e} ${n}"/>\n <feFuncB type="table" tableValues="${e} ${n}"/>\n </feComponentTransfer>\n </filter>\n `.trim()},outline:function(t={}){const e=gv(t.color,"blue"),n=dv(t.width,1),r=dv(t.margin,2);return`\n <filter>\n <feFlood flood-color="${e}" flood-opacity="${dv(t.opacity,1)}" result="colored"/>\n <feMorphology in="SourceAlpha" result="morphedOuter" operator="dilate" radius="${r+n}" />\n <feMorphology in="SourceAlpha" result="morphedInner" operator="dilate" radius="${r}" />\n <feComposite result="morphedOuterColored" in="colored" in2="morphedOuter" operator="in"/>\n <feComposite operator="xor" in="morphedOuterColored" in2="morphedInner" result="outline"/>\n <feMerge>\n <feMergeNode in="outline"/>\n <feMergeNode in="SourceGraphic"/>\n </feMerge>\n </filter>\n `.trim()},saturate:function(t={}){return`\n <filter>\n <feColorMatrix type="saturate" values="${1-dv(t.amount,1)}"/>\n </filter>\n `.trim()},sepia:function(t={}){const e=dv(t.amount,1);return`\n <filter>\n <feColorMatrix type="matrix" values="${.393+.607*(1-e)} ${.769-.769*(1-e)} ${.189-.189*(1-e)} 0 0 ${.349-.349*(1-e)} ${.686+.314*(1-e)} ${.168-.168*(1-e)} 0 0 ${.272-.272*(1-e)} ${.534-.534*(1-e)} ${.131+.869*(1-e)} 0 0 0 0 0 1 0"/>\n </filter>\n `.trim()}});!function(t){t.presets=pv,t.registry=tv.create({type:"filter"}),t.registry.register(t.presets,!0)}(fv||(fv={}));const mv={xlinkHref:"xlink:href",xlinkShow:"xlink:show",xlinkRole:"xlink:role",xlinkType:"xlink:type",xlinkArcrole:"xlink:arcrole",xlinkTitle:"xlink:title",xlinkActuate:"xlink:actuate",xmlSpace:"xml:space",xmlBase:"xml:base",xmlLang:"xml:lang",preserveAspectRatio:"preserveAspectRatio",requiredExtension:"requiredExtension",requiredFeatures:"requiredFeatures",systemLanguage:"systemLanguage",externalResourcesRequired:"externalResourceRequired"},yv={position:zv("x","width","origin")},vv={position:zv("y","height","origin")},bv={position:zv("x","width","corner")},xv={position:zv("y","height","corner")},wv={set:$v("width","width")},Av={set:$v("height","height")},Cv={set:$v("rx","width")},Pv={set:$v("ry","height")},Mv={set:(t=>{const e=$v("r","width"),n=$v("r","height");return function(t,r){const i=r.refBBox;return ef(i.height>i.width?e:n,this,t,r)}})()},Ev={set(t,{refBBox:e}){let n=parseFloat(t);const r=If(t);r&&(n/=100);const i=Math.sqrt(e.height*e.height+e.width*e.width);let s;return Number.isFinite(n)&&(s=r||n>=0&&n<=1?n*i:Math.max(n+i,0)),{r:s}}},Sv={set:$v("cx","width")},Ov={set:$v("cy","height")},Tv={set:Gv({resetOffset:!0})},kv={set:Gv({resetOffset:!1})},Nv={set:Uv({resetOffset:!0})},jv={set:Uv({resetOffset:!1})},_v=Mv,Lv=Tv,Bv=Nv,Iv=yv,Dv=vv,Rv=wv,Vv=Av;function zv(t,e,n){return(r,{refBBox:i})=>{if(null==r)return null;let s=parseFloat(r);const o=If(r);let a;if(o&&(s/=100),Number.isFinite(s)){const r=i[n];a=o||s>0&&s<1?r[t]+i[e]*s:r[t]+s}const l=new ky;return l[t]=a||0,l}}function $v(t,e){return function(n,{refBBox:r}){let i=parseFloat(n);const s=If(n);s&&(i/=100);const o={};if(Number.isFinite(i)){const n=s||i>=0&&i<=1?i*r[e]:Math.max(i+r[e],0);o[t]=n}return o}}function Fv(t,e){const n="x6-shape",r=e&&e.resetOffset;return function(e,{elem:i,refBBox:s}){let o=gm(i,n);if(!o||o.value!==e){const r=t(e);o={value:e,shape:r,shapeBBox:r.bbox()},gm(i,n,o)}const a=o.shape.clone(),l=o.shapeBBox.clone(),c=l.getOrigin(),h=s.getOrigin();l.x=h.x,l.y=h.y;const u=s.getMaxScaleToFit(l,h),g=0===l.width||0===s.width?1:u.sx,d=0===l.height||0===s.height?1:u.sy;return a.scale(g,d,c),r&&a.translate(-c.x,-c.y),a}}function Gv(t){const e=Fv((function(t){return Qy.parse(t)}),t);return(t,n)=>({d:e(t,n).serialize()})}function Uv(t){const e=Fv((t=>new zy(t)),t);return(t,n)=>({points:e(t,n).serialize()})}const qv={qualify:Tr,set:(t,{view:e})=>`url(#${e.graph.defineGradient(t)})`},Wv={qualify:Tr,set(t,{view:e}){const n=e.cell,r=Object.assign({},t);if(n.isEdge()&&"linearGradient"===r.type){const t=e,i=t.sourcePoint,s=t.targetPoint;r.id=`gradient-${r.type}-${n.id}`,r.attrs=Object.assign(Object.assign({},r.attrs),{x1:i.x,y1:i.y,x2:s.x,y2:s.y,gradientUnits:"userSpaceOnUse"}),e.graph.defs.remove(r.id)}return`url(#${e.graph.defineGradient(r)})`}},Hv={qualify:(t,{attrs:e})=>null==e.textWrap||!Tr(e.textWrap),set(t,{view:e,elem:n,attrs:r}){const i="x6-text",s=gm(n,i),o=t=>{try{return JSON.parse(t)}catch(e){return t}},a={x:r.x,eol:r.eol,annotations:o(r.annotations),textPath:o(r["text-path"]||r.textPath),textVerticalAnchor:r["text-vertical-anchor"]||r.textVerticalAnchor,displayEmpty:"true"===(r["display-empty"]||r.displayEmpty),lineHeight:r["line-height"]||r.lineHeight},l=r["font-size"]||r.fontSize,c=JSON.stringify([t,a]);if(l&&n.setAttribute("font-size",l),null==s||s!==c){const r=a.textPath;if(null!=r&&"object"==typeof r){const t=r.selector;if("string"==typeof t){const n=e.find(t)[0];n instanceof SVGPathElement&&(dp(n),a.textPath=Object.assign({"xlink:href":`#${n.id}`},r))}}bm(n,`${t}`,a),gm(n,i,c)}}},Jv={qualify:Tr,set(t,{view:e,elem:n,attrs:r,refBBox:i}){const s=t,o=s.width||0;If(o)?i.width*=parseFloat(o)/100:o<=0?i.width+=o:i.width=o;const a=s.height||0;let l;If(a)?i.height*=parseFloat(a)/100:a<=0?i.height+=a:i.height=a;let c=s.text;null==c&&(c=r.text||(null==n?void 0:n.textContent)),l=null!=c?Am(`${c}`,i,{"font-weight":r["font-weight"]||r.fontWeight,"font-size":r["font-size"]||r.fontSize,"font-family":r["font-family"]||r.fontFamily,lineHeight:r.lineHeight},{ellipsis:s.ellipsis}):"",ef(Hv.set,this,l,{view:e,elem:n,attrs:r,refBBox:i,cell:e.cell})}},Xv=(t,{attrs:e})=>void 0!==e.text,Yv={qualify:Xv},Zv={qualify:Xv},Kv={qualify:Xv},Qv={qualify:Xv},tb={qualify:Xv},eb={qualify:Xv},nb={qualify:(t,{elem:e})=>e instanceof SVGElement,set(t,{elem:e}){const n="x6-title",r=`${t}`,i=gm(e,n);if(null==i||i!==r){gm(e,n,r);const t=e.firstChild;if(t&&"TITLE"===t.tagName.toUpperCase()){t.textContent=r}else{const n=document.createElementNS(e.namespaceURI,"title");n.textContent=r,e.insertBefore(n,t)}}}},rb={offset:ob("x","width","right")},ib={offset:ob("y","height","bottom")},sb={offset:(t,{refBBox:e})=>t?{x:-e.x,y:-e.y}:{x:0,y:0}};function ob(t,e,n){return(r,{refBBox:i})=>{const s=new ky;let o;return o="middle"===r?i[e]/2:r===n?i[e]:"number"==typeof r&&Number.isFinite(r)?r>-1&&r<1?-i[e]*r:-r:If(r)?i[e]*parseFloat(r)/100:0,s[t]=-(i[t]+o),s}}const ab={qualify:Tr,set(t,{elem:e}){lm(e,t)}},lb={set(t,{elem:e}){e.innerHTML=`${t}`}},cb={qualify:Tr,set:(t,{view:e})=>`url(#${e.graph.defineFilter(t)})`},hb={set:t=>null!=t&&"object"==typeof t&&t.id?t.id:t};function ub(t,e,n){let r,i;"object"==typeof e?(r=e.x,i=e.y):(r=e,i=n);const s=Qy.parse(t),o=s.bbox();if(o){let t=-o.height/2-o.y,e=-o.width/2-o.x;"number"==typeof r&&(e-=r),"number"==typeof i&&(t-=i),s.translate(e,t)}return s.serialize()}function gb(t,e,n,r=3/4,i={}){const s=t.size||10,o=t.width||s,a=t.height||s,l=new Qy,c={};if(e)l.moveTo(o,0).lineTo(0,a/2).lineTo(o,a),c.fill="none";else{if(l.moveTo(0,a/2),l.lineTo(o,0),!n){const t=Hi(r,0,1);l.lineTo(o*t,a/2)}l.lineTo(o,a),l.close()}return Object.assign(Object.assign(Object.assign({},c),i),{tagName:"path",d:ub(l.serialize(),{x:null!=t.offset?t.offset:-o/2})})}const db=t=>{var{r:n}=t,r=e(t,["r"]);const i=n||5;return Object.assign(Object.assign({cx:i},r),{tagName:"circle",r:i})};var fb,pb=Object.freeze({__proto__:null,async:t=>{var{width:n,height:r,offset:i,open:s,flip:o}=t,a=e(t,["width","height","offset","open","flip"]);let l=r||6;const c=n||10,h=!0===s,u=!0===o,g=Object.assign(Object.assign({},a),{tagName:"path"});u&&(l=-l);const d=new Qy;return d.moveTo(0,l).lineTo(c,0),h?g.fill="none":(d.lineTo(c,l),d.close()),g.d=ub(d.serialize(),{x:i||-c/2,y:l/2}),g},block:t=>{var{size:n,width:r,height:i,offset:s,open:o}=t;return gb({size:n,width:r,height:i,offset:s},!0===o,!0,void 0,e(t,["size","width","height","offset","open"]))},circle:db,circlePlus:t=>{var{r:n}=t,r=e(t,["r"]);const i=n||5,s=new Qy;return s.moveTo(i,0).lineTo(i,2*i),s.moveTo(0,i).lineTo(2*i,i),{children:[Object.assign(Object.assign({},db({r:i})),{fill:"none"}),Object.assign(Object.assign({},r),{tagName:"path",d:ub(s.serialize(),-i)})]}},classic:t=>{var{size:n,width:r,height:i,offset:s,factor:o}=t;return gb({size:n,width:r,height:i,offset:s},!1,!1,o,e(t,["size","width","height","offset","factor"]))},cross:t=>{var{size:n,width:r,height:i,offset:s}=t,o=e(t,["size","width","height","offset"]);const a=n||10,l=r||a,c=i||a,h=new Qy;return h.moveTo(0,0).lineTo(l,c).moveTo(0,c).lineTo(l,0),Object.assign(Object.assign({},o),{tagName:"path",fill:"none",d:ub(h.serialize(),s||-l/2)})},diamond:t=>{var{size:n,width:r,height:i,offset:s}=t,o=e(t,["size","width","height","offset"]);const a=n||10,l=r||a,c=i||a,h=new Qy;return h.moveTo(0,c/2).lineTo(l/2,0).lineTo(l,c/2).lineTo(l/2,c).close(),Object.assign(Object.assign({},o),{tagName:"path",d:ub(h.serialize(),null==s?-l/2:s)})},ellipse:t=>{var{rx:n,ry:r}=t,i=e(t,["rx","ry"]);const s=n||5,o=r||5;return Object.assign(Object.assign({cx:s},i),{tagName:"ellipse",rx:s,ry:o})},path:t=>{var{d:n,offsetX:r,offsetY:i}=t,s=e(t,["d","offsetX","offsetY"]);return Object.assign(Object.assign({},s),{tagName:"path",d:ub(n,r,i)})}});function mb(t){return"string"==typeof t||Tr(t)}!function(t){t.presets=pb,t.registry=tv.create({type:"marker"}),t.registry.register(t.presets,!0)}(fb||(fb={})),function(t){t.normalize=ub}(fb||(fb={}));const yb={qualify:mb,set:(t,{view:e,attrs:n})=>xb("marker-start",t,e,n)},vb={qualify:mb,set:(t,{view:e,attrs:n})=>xb("marker-end",t,e,n,{transform:"rotate(180)"})},bb={qualify:mb,set:(t,{view:e,attrs:n})=>xb("marker-mid",t,e,n)};function xb(t,n,r,i,s={}){const o="string"==typeof n?{name:n}:n,{name:a,args:l}=o,c=e(o,["name","args"]);let h=c;if(a&&"string"==typeof a){const t=fb.registry.get(a);if(!t)return fb.registry.onNotFound(a);h=t(Object.assign(Object.assign({},c),l))}const u=Object.assign(Object.assign(Object.assign({},function(t,e){const n={},r=t.stroke;"string"==typeof r&&(n.stroke=r,n.fill=r);let i=t.strokeOpacity;null==i&&(i=t["stroke-opacity"]);null==i&&(i=t.opacity);null!=i&&(n["stroke-opacity"]=i,n["fill-opacity"]=i);if("marker-mid"!==e){const r=parseFloat(t.strokeWidth||t["stroke-width"]);if(Number.isFinite(r)&&r>1){const t=Math.ceil(r/2);n.refX="marker-start"===e?t:-t}}return n}(i,t)),s),h);return{[t]:`url(#${r.graph.defineMarker(u)})`}}const wb=(t,{view:e})=>e.cell.isEdge(),Ab={qualify:wb,set(t,e){var n,r,i,s;const o=e.view,a=t.reverse||!1,l=t.stubs||0;let c;if(Number.isFinite(l)&&0!==l)if(a){let t,e;const a=o.getConnectionLength()||0;l<0?(t=(a+l)/2,e=-l):(t=l,e=a-2*l);const h=o.getConnection();c=null===(s=null===(i=null===(r=null===(n=null==h?void 0:h.divideAtLength(t))||void 0===n?void 0:n[1])||void 0===r?void 0:r.divideAtLength(e))||void 0===i?void 0:i[0])||void 0===s?void 0:s.serialize()}else{let t;if(l<0){t=((o.getConnectionLength()||0)+l)/2}else t=l;const e=o.getConnection();if(e){const n=e.divideAtLength(t),r=e.divideAtLength(-t);n&&r&&(c=`${n[0].serialize()} ${r[1].serialize()}`)}}return{d:c||o.getConnectionPathData()}}},Cb={qualify:wb,set:Tb("getTangentAtLength",{rotate:!0})},Pb={qualify:wb,set:Tb("getTangentAtLength",{rotate:!1})},Mb={qualify:wb,set:Tb("getTangentAtRatio",{rotate:!0})},Eb={qualify:wb,set:Tb("getTangentAtRatio",{rotate:!1})},Sb=Cb,Ob=Mb;function Tb(t,e){const n={x:1,y:0};return(r,i)=>{let s,o;const a=i.view,l=a[t](Number(r));return l?(o=e.rotate?l.vector().vectorAngle(n):0,s=l.start):(s=a.path.start,o=0),0===o?{transform:`translate(${s.x},${s.y}')`}:{transform:`translate(${s.x},${s.y}') rotate(${o})`}}}var kb,Nb=Object.freeze({__proto__:null,annotations:Qv,atConnectionLength:Sb,atConnectionLengthIgnoreGradient:Pb,atConnectionLengthKeepGradient:Cb,atConnectionRatio:Ob,atConnectionRatioIgnoreGradient:Eb,atConnectionRatioKeepGradient:Mb,connection:Ab,displayEmpty:eb,eol:tb,fill:qv,filter:cb,html:lb,lineHeight:Yv,port:hb,ref:{},refCx:Sv,refCy:Ov,refD:Lv,refDKeepOffset:kv,refDResetOffset:Tv,refDx:bv,refDy:xv,refHeight:Av,refHeight2:Vv,refPoints:Bv,refPointsKeepOffset:jv,refPointsResetOffset:Nv,refR:_v,refRCircumscribed:Ev,refRInscribed:Mv,refRx:Cv,refRy:Pv,refWidth:wv,refWidth2:Rv,refX:yv,refX2:Iv,refY:vv,refY2:Dv,resetOffset:sb,sourceMarker:yb,stroke:Wv,style:ab,targetMarker:vb,text:Hv,textPath:Kv,textVerticalAnchor:Zv,textWrap:Jv,title:nb,vertexMarker:bb,xAlign:rb,yAlign:ib});!function(t){t.isValidDefinition=function(t,e,n){if(null!=t){if("string"==typeof t)return!0;if("function"!=typeof t.qualify||ef(t.qualify,this,e,n))return!0}return!1}}(kb||(kb={})),function(t){t.presets=Object.assign(Object.assign({},mv),Nb),t.registry=tv.create({type:"attribute definition"}),t.registry.register(t.presets,!0)}(kb||(kb={}));const jb={prefixCls:"x6",autoInsertCSS:!0,useCSSSelector:!0,prefix:t=>`${jb.prefixCls}-${t}`},_b=jb.prefix("highlighted"),Lb={highlight(t,e,n){lp(e,n&&n.className||_b)},unhighlight(t,e,n){cp(e,n&&n.className||_b)}},Bb=jb.prefix("highlight-opacity"),Ib={highlight(t,e){lp(e,Bb)},unhighlight(t,e){cp(e,Bb)}};t.Util=void 0,function(t){const e=bp("svg");function n(t,e){const n=$m(t.x,t.y).matrixTransform(e);return new ky(n.x,n.y)}function r(t,n){const r=e.createSVGPoint();r.x=t.x,r.y=t.y;const i=r.matrixTransform(n);r.x=t.x+t.width,r.y=t.y;const s=r.matrixTransform(n);r.x=t.x+t.width,r.y=t.y+t.height;const o=r.matrixTransform(n);r.x=t.x,r.y=t.y+t.height;const a=r.matrixTransform(n),l=Math.min(i.x,s.x,o.x,a.x),c=Math.max(i.x,s.x,o.x,a.x),h=Math.min(i.y,s.y,o.y,a.y),u=Math.max(i.y,s.y,o.y,a.y);return new Ny(l,h,c-l,u-h)}function i(t,e={}){let n;if(!t.ownerSVGElement||!fp(t)){if(Bp(t)){const{left:e,top:n,width:r,height:i}=s(t);return new Ny(e,n,r,i)}return new Ny(0,0,0,0)}let o=e.target;if(!e.recursive){try{n=t.getBBox()}catch(e){n={x:t.clientLeft,y:t.clientTop,width:t.clientWidth,height:t.clientHeight}}if(!o)return Ny.create(n);return r(n,ny(t,o))}{const e=t.childNodes,r=e.length;if(0===r)return i(t,{target:o});o||(o=t);for(let t=0;t<r;t+=1){const r=e[t];let s;s=0===r.childNodes.length?i(r,{target:o}):i(r,{target:o,recursive:!0}),n=n?n.union(s):s}return n}}function s(t){let e=0,n=0,r=0,i=0;if(t){let s=t;for(;s;)e+=s.offsetLeft,n+=s.offsetTop,s=s.offsetParent,s&&(e+=parseInt(nm(s,"borderLeft"),10),n+=parseInt(nm(s,"borderTop"),10));r=t.offsetWidth,i=t.offsetHeight}return{left:e,top:n,width:r,height:i}}function o(t){const e=e=>{const n=t.getAttribute(e),r=n?parseFloat(n):0;return Number.isNaN(r)?0:r};switch(t instanceof SVGElement&&t.nodeName.toLowerCase()){case"rect":return new Ny(e("x"),e("y"),e("width"),e("height"));case"circle":return new _y(e("cx"),e("cy"),e("r"),e("r"));case"ellipse":return new _y(e("cx"),e("cy"),e("rx"),e("ry"));case"polyline":{const e=km(t);return new zy(e)}case"polygon":{const e=km(t);return e.length>1&&e.push(e[0]),new zy(e)}case"path":{let e=t.getAttribute("d");return Qy.isValid(e)||(e=Qy.normalize(e)),Qy.parse(e)}case"line":return new jy(e("x1"),e("y1"),e("x2"),e("y2"))}return i(t)}function a(t){if(null==t)return null;let e=t;do{let t=e.tagName;if("string"!=typeof t)return null;if(t=t.toUpperCase(),ap(e,"x6-port"))e=e.nextElementSibling;else if("G"===t)e=e.firstElementChild;else{if("TITLE"!==t)break;e=e.nextElementSibling}}while(e);return e}t.normalizeMarker=ub,t.transformPoint=n,t.transformLine=function(t,e){return new jy(n(t.start,e),n(t.end,e))},t.transformPolyline=function(t,e){let r=t instanceof zy?t.points:t;return Array.isArray(r)||(r=[]),new zy(r.map((t=>n(t,e))))},t.transformRectangle=r,t.bbox=function(t,e,n){let i;const s=t.ownerSVGElement;if(!s)return new Ny(0,0,0,0);try{i=t.getBBox()}catch(e){i={x:t.clientLeft,y:t.clientTop,width:t.clientWidth,height:t.clientHeight}}return e?Ny.create(i):r(i,ny(t,n||s))},t.getBBox=i,t.getBoundingOffsetRect=s,t.toGeometryShape=o,t.translateAndAutoOrient=function(t,e,n,r){const s=ky.create(e),o=ky.create(n);if(!r){r=t instanceof SVGSVGElement?t:t.ownerSVGElement}const a=ey(t);t.setAttribute("transform","");const l=i(t,{target:r}).scale(a.sx,a.sy),c=Gm();c.setTranslate(-l.x-l.width/2,-l.y-l.height/2);const h=Gm(),u=s.angleBetween(o,s.clone().translate(1,0));u&&h.setRotate(u,0,0);const g=Gm(),d=s.clone().move(o,l.width/2);g.setTranslate(2*s.x-d.x,2*s.y-d.y);const f=ny(t,r),p=Gm();p.setMatrix(g.matrix.multiply(h.matrix.multiply(c.matrix.multiply(f.scale(a.sx,a.sy))))),t.setAttribute("transform",qm(p.matrix))},t.findShapeNode=a,t.getBBoxV2=function(t){const e=a(t);if(!fp(e)){if(Bp(t)){const{left:e,top:n,width:r,height:i}=s(t);return new Ny(e,n,r,i)}return new Ny(0,0,0,0)}return o(e).bbox()||Ny.create()}}(t.Util||(t.Util={}));const Db={padding:3,rx:0,ry:0,attrs:{"stroke-width":3,stroke:"#FEB663"}},Rb={highlight(e,n,r){const i=Vb.getHighlighterId(n,r);if(Vb.hasCache(i))return;r=Za({},r,Db);const s=fm.create(n);let o,a;try{o=s.toPathData()}catch(e){a=t.Util.bbox(s.node,!0),o=Lm(Object.assign(Object.assign({},r),a))}const l=bp("path");if($p(l,Object.assign({d:o,"pointer-events":"none","vector-effect":"non-scaling-stroke",fill:"none"},r.attrs?Gp(r.attrs):null)),e.isEdgeElement(n))$p(l,"d",e.getConnectionPathData());else{let n=s.getTransformToElement(e.container);const i=r.padding;if(i){null==a&&(a=t.Util.bbox(s.node,!0));const e=a.x+a.width/2,r=a.y+a.height/2;a=t.Util.transformRectangle(a,n);const o=Math.max(a.width,1),l=Math.max(a.height,1),c=(o+i)/o,h=(l+i)/l,u=Fm({a:c,b:0,c:0,d:h,e:e-c*e,f:r-h*r});n=n.multiply(u)}Km(l,n)}lp(l,jb.prefix("highlight-stroke"));const c=e.cell,h=()=>Vb.removeHighlighter(i);c.on("removed",h),c.model&&c.model.on("reseted",h),e.container.appendChild(l),Vb.setCache(i,l)},unhighlight(t,e,n){Vb.removeHighlighter(Vb.getHighlighterId(e,n))}};var Vb;!function(t){t.getHighlighterId=function(t,e){return dp(t),t.id+JSON.stringify(e)};const e={};t.setCache=function(t,n){e[t]=n},t.hasCache=function(t){return null!=e[t]},t.removeHighlighter=function(t){const n=e[t];n&&(Op(n),delete e[t])}}(Vb||(Vb={}));var zb,$b=Object.freeze({__proto__:null,className:Lb,opacity:Ib,stroke:Rb});function Fb(t,e={}){return new ky(Df(e.x,t.width),Df(e.y,t.height))}function Gb(t,e,n){return Object.assign({angle:e,position:t.toJSON()},n)}!function(t){t.check=function(t,e){if("function"!=typeof e.highlight)throw new Error(`Highlighter '${t}' is missing required \`highlight()\` method`);if("function"!=typeof e.unhighlight)throw new Error(`Highlighter '${t}' is missing required \`unhighlight()\` method`)}}(zb||(zb={})),function(t){t.presets=$b,t.registry=tv.create({type:"highlighter"}),t.registry.register(t.presets,!0)}(zb||(zb={}));function Ub(t,e,n,r){const i=e.getCenter(),s=e.getTopCenter(),o=e.width/e.height,a=_y.fromRect(e),l=t.length;return t.map(((t,e)=>{const c=n+r(e,l),h=s.clone().rotate(-c,i).scale(o,1,i),u=t.compensateRotate?-a.tangentTheta(h):0;return(t.dx||t.dy)&&h.translate(t.dx||0,t.dy||0),t.dr&&h.move(i,t.dr),Gb(h.round(),u,t)}))}function qb(t,n,r,i){const s=new jy(n,r),o=t.length;return t.map(((t,n)=>{var{strict:r}=t,a=e(t,["strict"]);const l=r||i.strict?(n+1)/(o+1):(n+.5)/o,c=s.pointAt(l);return(a.dx||a.dy)&&c.translate(a.dx||0,a.dy||0),Gb(c.round(),0,a)}))}var Wb,Hb=Object.freeze({__proto__:null,absolute:(t,e)=>t.map((({x:t,y:n,angle:r})=>Gb(Fb(e,{x:t,y:n}),r||0))),bottom:(t,e,n)=>qb(t,e.getBottomLeft(),e.getBottomRight(),n),ellipse:(t,e,n)=>{const r=n.start||0,i=n.step||20;return Ub(t,e,r,((t,e)=>(t+.5-e/2)*i))},ellipseSpread:(t,e,n)=>{const r=n.start||0,i=n.step||360/t.length;return Ub(t,e,r,(t=>t*i))},left:(t,e,n)=>qb(t,e.getTopLeft(),e.getBottomLeft(),n),line:(t,e,n)=>qb(t,Fb(e,n.start||e.getOrigin()),Fb(e,n.end||e.getCorner()),n),right:(t,e,n)=>qb(t,e.getTopRight(),e.getBottomRight(),n),top:(t,e,n)=>qb(t,e.getTopLeft(),e.getTopRight(),n)});!function(t){t.presets=Hb,t.registry=tv.create({type:"port layout"}),t.registry.register(t.presets,!0)}(Wb||(Wb={}));const Jb={position:{x:0,y:0},angle:0,attrs:{".":{y:"0","text-anchor":"start"}}};function Xb(t,e){const{x:n,y:r,angle:i,attrs:s}=e||{};return Za({},{angle:i,attrs:s,position:{x:n,y:r}},t,Jb)}function Yb(t,e,n,r){const i=null!=r.offset?r.offset:15,s=e.getCenter().theta(t),o=Kb(e);let a,l,c,h,u=0;return s<o[1]||s>o[2]?(a=".3em",l=i,c=0,h="start"):s<o[0]?(a="0",l=0,c=-i,n?(u=-90,h="start"):h="middle"):s<o[3]?(a=".3em",l=-i,c=0,h="end"):(a=".6em",l=0,c=i,n?(u=90,h="start"):h="middle"),Xb({position:{x:Math.round(l),y:Math.round(c)},angle:u,attrs:{".":{y:a,"text-anchor":h}}},r)}function Zb(t,e,n,r){const i=null!=r.offset?r.offset:15,s=e.getCenter().theta(t),o=Kb(e);let a,l,c,h,u=0;return s<o[1]||s>o[2]?(a=".3em",l=-i,c=0,h="end"):s<o[0]?(a=".6em",l=0,c=i,n?(u=90,h="start"):h="middle"):s<o[3]?(a=".3em",l=i,c=0,h="start"):(a="0em",l=0,c=-i,n?(u=-90,h="start"):h="middle"),Xb({position:{x:Math.round(l),y:Math.round(c)},angle:u,attrs:{".":{y:a,"text-anchor":h}}},r)}function Kb(t){const e=t.getCenter(),n=e.theta(t.getTopLeft()),r=e.theta(t.getBottomLeft()),i=e.theta(t.getBottomRight());return[n,e.theta(t.getTopRight()),i,r]}function Qb(t,e,n){const r=null!=n.offset?n.offset:20,i=new ky(0,0),s=-t.theta(i);let o,a=".3em",l=s;return(s+90)%180==0?(o=e?"end":"middle",e||-270!==s||(a="0em")):s>-270&&s<-90?(o="start",l=s-180):o="end",Xb({position:t.clone().move(i,r).diff(t).round().round().toJSON(),angle:e?l:0,attrs:{".":{y:a,"text-anchor":o}}},n)}var tx,ex,nx=Object.freeze({__proto__:null,bottom:(t,e,n)=>Xb({position:{x:0,y:15},attrs:{".":{y:".6em","text-anchor":"middle"}}},n),inside:(t,e,n)=>Zb(t,e,!1,n),insideOriented:(t,e,n)=>Zb(t,e,!0,n),left:(t,e,n)=>Xb({position:{x:-15,y:0},attrs:{".":{y:".3em","text-anchor":"end"}}},n),manual:(t,e,n)=>Xb({position:e.getTopLeft()},n),outside:(t,e,n)=>Yb(t,e,!1,n),outsideOriented:(t,e,n)=>Yb(t,e,!0,n),radial:(t,e,n)=>Qb(t.diff(e.getCenter()),!1,n),radialOriented:(t,e,n)=>Qb(t.diff(e.getCenter()),!0,n),right:(t,e,n)=>Xb({position:{x:15,y:0},attrs:{".":{y:".3em","text-anchor":"start"}}},n),top:(t,e,n)=>Xb({position:{x:0,y:-15},attrs:{".":{"text-anchor":"middle"}}},n)});!function(t){t.presets=nx,t.registry=tv.create({type:"port label layout"}),t.registry.register(t.presets,!0)}(tx||(tx={}));class rx extends wf{get priority(){return 2}constructor(){super(),this.cid=ex.uniqueId(),rx.views[this.cid]=this}confirmUpdate(t,e){return 0}empty(t=this.container){return Tp(t),this}unmount(t=this.container){return Op(t),this}remove(t=this.container){return t===this.container&&(this.removeEventListeners(document),this.onRemove(),delete rx.views[this.cid]),this.unmount(t),this}onRemove(){}setClass(t,e=this.container){e.classList.value=Array.isArray(t)?t.join(" "):t}addClass(t,e=this.container){return lp(e,Array.isArray(t)?t.join(" "):t),this}removeClass(t,e=this.container){return cp(e,Array.isArray(t)?t.join(" "):t),this}setStyle(t,e=this.container){return lm(e,t),this}setAttrs(t,e=this.container){return null!=t&&null!=e&&$p(e,t),this}findAttr(t,e=this.container){let n=e;for(;n&&1===n.nodeType;){const e=n.getAttribute(t);if(null!=e)return e;if(n===this.container)return null;n=n.parentNode}return null}find(t,e=this.container,n=this.selectors){return rx.find(t,e,n).elems}findOne(t,e=this.container,n=this.selectors){const r=this.find(t,e,n);return r.length>0?r[0]:null}findByAttr(t,e=this.container){let n=e;for(;n&&n.getAttribute;){const e=n.getAttribute(t);if((null!=e||n===this.container)&&"false"!==e)return n;n=n.parentNode}return null}getSelector(t,e){let n;if(t===this.container)return"string"==typeof e&&(n=`> ${e}`),n;if(t){const r=Cp(t)+1;n=`${t.tagName.toLowerCase()}:nth-child(${r})`,e&&(n+=` > ${e}`),n=this.getSelector(t.parentNode,n)}return n}prefixClassName(t){return jb.prefix(t)}delegateEvents(t,e){if(null==t)return this;e||this.undelegateEvents();const n=/^(\S+)\s*(.*)$/;return Object.keys(t).forEach((e=>{const r=e.match(n);if(null==r)return;const i=this.getEventHandler(t[e]);"function"==typeof i&&this.delegateEvent(r[1],r[2],i)})),this}undelegateEvents(){return hy.off(this.container,this.getEventNamespace()),this}delegateDocumentEvents(t,e){return this.addEventListeners(document,t,e),this}undelegateDocumentEvents(){return this.removeEventListeners(document),this}delegateEvent(t,e,n){return hy.on(this.container,t+this.getEventNamespace(),e,n),this}undelegateEvent(t,e,n){const r=t+this.getEventNamespace();return null==e?hy.off(this.container,r):"string"==typeof e?hy.off(this.container,r,e,n):hy.off(this.container,r,e),this}addEventListeners(t,e,n){if(null==e)return this;const r=this.getEventNamespace();return Object.keys(e).forEach((i=>{const s=this.getEventHandler(e[i]);"function"==typeof s&&hy.on(t,i+r,n,s)})),this}removeEventListeners(t){return null!=t&&hy.off(t,this.getEventNamespace()),this}getEventNamespace(){return`.${jb.prefixCls}-event-${this.cid}`}getEventHandler(t){let e;if("string"==typeof t){const n=this[t];"function"==typeof n&&(e=(...t)=>n.call(this,...t))}else e=(...e)=>t.call(this,...e);return e}getEventTarget(t,e={}){const{target:n,type:r,clientX:i=0,clientY:s=0}=t;return e.fromPoint||"touchmove"===r||"touchend"===r?document.elementFromPoint(i,s):n}stopPropagation(t){return this.setEventData(t,{propagationStopped:!0}),this}isPropagationStopped(t){return!0===this.getEventData(t).propagationStopped}getEventData(t){return this.eventData(t)}setEventData(t,e){return this.eventData(t,e)}eventData(t,e){if(null==t)throw new TypeError("Event object required");let n=t.data;const r=`__${this.cid}__`;return null==e?null==n?{}:n[r]||{}:(null==n&&(n=t.data={}),null==n[r]?n[r]=Object.assign({},e):n[r]=Object.assign(Object.assign({},n[r]),e),n[r])}normalizeEvent(t){return rx.normalizeEvent(t)}}!function(t){t.createElement=function(t,e){return e?bp(t||"g"):vp(t||"div")},t.find=function(t,e,n){if(!t||"."===t)return{elems:[e]};if(n){const e=n[t];if(e)return{elems:Array.isArray(e)?e:[e]}}if(jb.useCSSSelector){const n=t.includes(">")?`:scope ${t}`:t;return{isCSSSelector:!0,elems:Array.prototype.slice.call(e.querySelectorAll(n))}}return{elems:[]}},t.normalizeEvent=function(t){let e=t;const n=t.originalEvent,r=n&&n.changedTouches&&n.changedTouches[0];if(r){for(const e in t)void 0===r[e]&&(r[e]=t[e]);e=r}return e}}(rx||(rx={})),function(t){t.views={},t.getView=function(e){return t.views[e]||null}}(rx||(rx={})),function(t){let e=0;t.uniqueId=function(){const t=`v${e}`;return e+=1,t}}(ex||(ex={}));class ix{constructor(t){this.view=t,this.clean()}clean(){this.elemCache&&this.elemCache.dispose(),this.elemCache=new Ay,this.pathCache={}}get(t){return this.elemCache.has(t)||this.elemCache.set(t,{}),this.elemCache.get(t)}getData(t){const e=this.get(t);return e.data||(e.data={}),e.data}getMatrix(t){const e=this.get(t);if(null==e.matrix){const n=this.view.container;e.matrix=ry(t,n)}return Fm(e.matrix)}getShape(e){const n=this.get(e);return null==n.shape&&(n.shape=t.Util.toGeometryShape(e)),n.shape.clone()}getBoundingRect(e){const n=this.get(e);return null==n.boundingRect&&(n.boundingRect=t.Util.getBBoxV2(e)),n.boundingRect.clone()}}t.Markup=void 0,function(t){function e(t){return null!=t&&"string"==typeof t}function n(t,e={ns:pp.svg}){const n=document.createDocumentFragment(),r={},i={},s=[{markup:Array.isArray(t)?t:[t],parent:n,ns:e.ns}];for(;s.length>0;){const t=s.pop();let e=t.ns||pp.svg;const n=t.markup,o=t.parent;n.forEach((t=>{const n=t.tagName;if(!n)throw new TypeError("Invalid tagName");t.ns&&(e=t.ns);const a=e?vp(n,e):yp(n),l=t.attrs;l&&$p(a,Gp(l));const c=t.style;c&&lm(a,c);const h=t.className;null!=h&&a.setAttribute("class",Array.isArray(h)?h.join(" "):h),t.textContent&&(a.textContent=t.textContent);const u=t.selector;if(null!=u){if(i[u])throw new TypeError("Selector must be unique");i[u]=a}if(t.groupSelector){let e=t.groupSelector;Array.isArray(e)||(e=[e]),e.forEach((t=>{r[t]||(r[t]=[]),r[t].push(a)}))}o.appendChild(a);const g=t.children;Array.isArray(g)&&s.push({ns:e,markup:g,parent:a})}))}return Object.keys(r).forEach((t=>{if(i[t])throw new Error("Ambiguous group selector");i[t]=r[t]})),{fragment:n,selectors:i,groups:r}}function r(t){return t instanceof SVGElement?bp("g"):yp("div")}t.isJSONMarkup=function(t){return null!=t&&!e(t)},t.isStringMarkup=e,t.clone=function(t){return null==t||e(t)?t:xo(t)},t.sanitize=function(t){return`${t}`.trim().replace(/[\r|\n]/g," ").replace(/>\s+</g,"><")},t.parseJSONMarkup=n,t.renderMarkup=function(t){if(e(t)){const e=fm.createVectors(t),n=e.length;if(1===n)return{elem:e[0].node};if(n>1){const t=r(e[0].node);return e.forEach((e=>{t.appendChild(e.node)})),{elem:t}}return{}}const i=n(t),s=i.fragment;let o=null;return s.childNodes.length>1?(o=r(s.firstChild),o.appendChild(s)):o=s.firstChild,{elem:o,selectors:i.selectors}},t.parseLabelStringMarkup=function(t){const e=fm.createVectors(t),n=document.createDocumentFragment();for(let t=0,r=e.length;t<r;t+=1){const r=e[t].node;n.appendChild(r)}return{fragment:n,selectors:{}}}}(t.Markup||(t.Markup={})),(t.Markup||(t.Markup={})).getSelector=function t(e,n,r){if(null!=e){let i;const s=e.tagName.toLowerCase();if(e===n)return i="string"==typeof r?`> ${s} > ${r}`:`> ${s}`,i;const o=e.parentNode;return i=o&&o.childNodes.length>1?`${s}:nth-child(${Cp(e)+1})`:s,r&&(i+=` > ${r}`),t(e.parentNode,n,i)}return r},function(t){t.getPortContainerMarkup=function(){return"g"},t.getPortMarkup=function(){return{tagName:"circle",selector:"circle",attrs:{r:10,fill:"#FFFFFF",stroke:"#000000"}}},t.getPortLabelMarkup=function(){return{tagName:"text",selector:"text",attrs:{fill:"#000000"}}}}(t.Markup||(t.Markup={})),function(t){t.getEdgeMarkup=function(){return[{tagName:"path",selector:"wrap",groupSelector:"lines",attrs:{fill:"none",cursor:"pointer",stroke:"transparent",strokeLinecap:"round"}},{tagName:"path",selector:"line",groupSelector:"lines",attrs:{fill:"none",pointerEvents:"none"}}]}}(t.Markup||(t.Markup={})),function(t){t.getForeignObjectMarkup=function(t=!1){return{tagName:"foreignObject",selector:"fo",children:[{ns:pp.xhtml,tagName:"body",selector:"foBody",attrs:{xmlns:pp.xhtml},style:{width:"100%",height:"100%",background:"transparent"},children:t?[]:[{tagName:"div",selector:"foContent",style:{width:"100%",height:"100%"}}]}]}}}(t.Markup||(t.Markup={}));class sx{constructor(t){this.view=t}get cell(){return this.view.cell}getDefinition(t){return this.cell.getAttrDefinition(t)}processAttrs(t,e){let n,r,i,s;const o=[];return Object.keys(e).forEach((r=>{const i=e[r],s=this.getDefinition(r),a=ef(kb.isValidDefinition,this.view,s,i,{elem:t,attrs:e,cell:this.cell,view:this.view});if(s&&a)"string"==typeof s?(null==n&&(n={}),n[s]=i):null!==i&&o.push({name:r,definition:s});else{null==n&&(n={});const t=Ip.includes(r)?r:Pf(r);n[t]=i}})),o.forEach((({name:t,definition:n})=>{const o=e[t];"function"==typeof n.set&&(null==r&&(r={}),r[t]=o);"function"==typeof n.offset&&(null==i&&(i={}),i[t]=o);"function"==typeof n.position&&(null==s&&(s={}),s[t]=o)})),{raw:e,normal:n,set:r,offset:i,position:s}}mergeProcessedAttrs(t,e){t.set=Object.assign(Object.assign({},t.set),e.set),t.position=Object.assign(Object.assign({},t.position),e.position),t.offset=Object.assign(Object.assign({},t.offset),e.offset);const n=t.normal&&t.normal.transform;null!=n&&e.normal&&(e.normal.transform=n),t.normal=e.normal}findAttrs(t,e,n,r){const i=[],s=new Ay;return Object.keys(t).forEach((o=>{const a=t[o];if(!Tr(a))return;const{isCSSSelector:l,elems:c}=rx.find(o,e,r);n[o]=c;for(let t=0,e=c.length;t<e;t+=1){const n=c[t],h=r&&r[o]===n,u=s.get(n);if(u){u.array||(i.push(n),u.array=!0,u.attrs=[u.attrs],u.priority=[u.priority]);const t=u.attrs,r=u.priority;if(h)t.unshift(a),r.unshift(-1);else{const n=yg(r,l?-1:e);t.splice(n,0,a),r.splice(n,0,e)}}else s.set(n,{elem:n,attrs:a,priority:h?-1:e,array:!1})}})),i.forEach((t=>{const e=s.get(t),n=e.attrs;e.attrs=n.reduceRight(((t,e)=>Sh(t,e)),{})})),s}updateRelativeAttrs(e,n,r){const i=n.raw||{};let s=n.normal||{};const o=n.set,a=n.position,l=n.offset,c=()=>({elem:e,cell:this.cell,view:this.view,attrs:i,refBBox:r.clone()});if(null!=o&&Object.keys(o).forEach((t=>{const e=o[t],n=this.getDefinition(t);if(null!=n){const r=ef(n.set,this.view,e,c());"object"==typeof r?s=Object.assign(Object.assign({},s),r):null!=r&&(s[t]=r)}})),e instanceof HTMLElement)return void this.view.setAttrs(s,e);const h=s.transform,u=Um(h?`${h}`:null),g=new ky(u.e,u.f);h&&(delete s.transform,u.e=0,u.f=0);let d=!1;null!=a&&Object.keys(a).forEach((t=>{const e=a[t],n=this.getDefinition(t);if(null!=n){const t=ef(n.position,this.view,e,c());null!=t&&(d=!0,g.translate(ky.create(t)))}})),this.view.setAttrs(s,e);let f=!1;if(null!=l){const n=this.view.getBoundingRectOfElement(e);if(n.width>0&&n.height>0){const r=t.Util.transformRectangle(n,u);Object.keys(l).forEach((t=>{const n=l[t],s=this.getDefinition(t);if(null!=s){const t=ef(s.offset,this.view,n,{elem:e,cell:this.cell,view:this.view,attrs:i,refBBox:r});null!=t&&(f=!0,g.translate(ky.create(t)))}}))}}(null!=h||d||f)&&(g.round(1),u.e=g.x,u.f=g.y,e.setAttribute("transform",qm(u)))}update(e,n,r){const i={},s=this.findAttrs(r.attrs||n,e,i,r.selectors),o=r.attrs?this.findAttrs(n,e,i,r.selectors):s,a=[];s.each((t=>{const n=t.elem,s=t.attrs,l=this.processAttrs(n,s);if(null==l.set&&null==l.position&&null==l.offset)this.view.setAttrs(l.normal,n);else{const t=o.get(n),c=t?t.attrs:null,h=c&&null==s.ref?c.ref:s.ref;let u;if(h){if(u=(i[h]||this.view.find(h,e,r.selectors))[0],!u)throw new Error(`"${h}" reference does not exist.`)}else u=null;const g={node:n,refNode:u,attributes:c,processedAttributes:l},d=a.findIndex((t=>t.refNode===n));d>-1?a.splice(d,0,g):a.push(g)}}));const l=new Ay;let c;a.forEach((n=>{const i=n.node,s=n.refNode;let o;const a=null!=s&&null!=r.rotatableNode&&Sp(r.rotatableNode,s);if(s&&(o=l.get(s)),!o){const n=a?r.rotatableNode:e;o=s?t.Util.getBBox(s,{target:n}):r.rootBBox,s&&l.set(s,o)}let h;r.attrs&&n.attributes?(h=this.processAttrs(i,n.attributes),this.mergeProcessedAttrs(h,n.processedAttributes)):h=n.processedAttributes;let u=o;a&&null!=r.rotatableNode&&!r.rotatableNode.contains(i)&&(c||(c=Um($p(r.rotatableNode,"transform"))),u=t.Util.transformRectangle(o,c)),this.updateRelativeAttrs(i,h,u)}))}}class ox{get cell(){return this.view.cell}constructor(t,e,n=[]){this.view=t;const r={},i={};let s=0;Object.keys(e).forEach((t=>{let n=e[t];Array.isArray(n)||(n=[n]),n.forEach((e=>{let n=r[e];n||(s+=1,n=r[e]=1<<s),i[t]|=n}))}));let o=n;if(Array.isArray(o)||(o=[o]),o.forEach((t=>{r[t]||(s+=1,r[t]=1<<s)})),s>25)throw new Error("Maximum number of flags exceeded.");this.flags=r,this.attrs=i,this.bootstrap=n}getFlag(t){const e=this.flags;return null==e?0:Array.isArray(t)?t.reduce(((t,n)=>t|e[n]),0):0|e[t]}hasAction(t,e){return t&this.getFlag(e)}removeAction(t,e){return t^t&this.getFlag(e)}getBootstrapFlag(){return this.getFlag(this.bootstrap)}getChangedFlag(){let t=0;return this.attrs?(Object.keys(this.attrs).forEach((e=>{this.cell.hasChanged(e)&&(t|=this.attrs[e])})),t):t}}class ax extends rx{static getDefaults(){return this.defaults}static config(t){this.defaults=this.getOptions(t)}static getOptions(t){const n=(t,e)=>null!=e?ud([...Array.isArray(t)?t:[t],...Array.isArray(e)?e:[e]]):Array.isArray(t)?[...t]:[t],r=xo(this.getDefaults()),{bootstrap:i,actions:s,events:o,documentEvents:a}=t,l=e(t,["bootstrap","actions","events","documentEvents"]);return i&&(r.bootstrap=n(r.bootstrap,i)),s&&Object.entries(s).forEach((([t,e])=>{const i=r.actions[t];e&&i?r.actions[t]=n(i,e):e&&(r.actions[t]=n(e))})),o&&(r.events=Object.assign(Object.assign({},r.events),o)),t.documentEvents&&(r.documentEvents=Object.assign(Object.assign({},r.documentEvents),a)),Sh(r,l)}get[Symbol.toStringTag](){return ax.toStringTag}constructor(t,e={}){super(),this.cell=t,this.options=this.ensureOptions(e),this.graph=this.options.graph,this.attr=new sx(this),this.flag=new ox(this,this.options.actions,this.options.bootstrap),this.cache=new ix(this),this.setContainer(this.ensureContainer()),this.setup(),this.init()}init(){}onRemove(){this.removeTools()}get priority(){return this.options.priority}get rootSelector(){return this.options.rootSelector}getConstructor(){return this.constructor}ensureOptions(t){return this.getConstructor().getOptions(t)}getContainerTagName(){return this.options.isSvgElement?"g":"div"}getContainerStyle(){}getContainerAttrs(){return{"data-cell-id":this.cell.id,"data-shape":this.cell.shape}}getContainerClassName(){return this.prefixClassName("cell")}ensureContainer(){return rx.createElement(this.getContainerTagName(),this.options.isSvgElement)}setContainer(t){if(this.container!==t){this.undelegateEvents(),this.container=t,null!=this.options.events&&this.delegateEvents(this.options.events);const e=this.getContainerAttrs();null!=e&&this.setAttrs(e,t);const n=this.getContainerStyle();null!=n&&this.setStyle(n,t);const r=this.getContainerClassName();null!=r&&this.addClass(r,t)}return this}isNodeView(){return!1}isEdgeView(){return!1}render(){return this}confirmUpdate(t,e={}){return 0}getBootstrapFlag(){return this.flag.getBootstrapFlag()}getFlag(t){return this.flag.getFlag(t)}hasAction(t,e){return this.flag.hasAction(t,e)}removeAction(t,e){return this.flag.removeAction(t,e)}handleAction(t,e,n,r){if(this.hasAction(t,e)){n();const i=[e];return r&&("string"==typeof r?i.push(r):i.push(...r)),this.removeAction(t,i)}return t}setup(){this.cell.on("changed",this.onCellChanged,this)}onCellChanged({options:t}){this.onAttrsChange(t)}onAttrsChange(t){let e=this.flag.getChangedFlag();!t.updated&&e&&(t.dirty&&this.hasAction(e,"update")&&(e|=this.getFlag("render")),t.toolId&&(t.async=!1),null!=this.graph&&this.graph.renderer.requestViewUpdate(this,e,t))}parseJSONMarkup(e,n){const r=t.Markup.parseJSONMarkup(e),i=r.selectors,s=this.rootSelector;if(n&&s){if(i[s])throw new Error("Invalid root selector");i[s]=n}return r}can(t){let e=this.graph.options.interacting;if("function"==typeof e&&(e=ef(e,this.graph,this)),"object"==typeof e){let n=e[t];return"function"==typeof n&&(n=ef(n,this.graph,this)),!1!==n}return"boolean"==typeof e&&e}cleanCache(){return this.cache.clean(),this}getCache(t){return this.cache.get(t)}getDataOfElement(t){return this.cache.getData(t)}getMatrixOfElement(t){return this.cache.getMatrix(t)}getShapeOfElement(t){return this.cache.getShape(t)}getBoundingRectOfElement(t){return this.cache.getBoundingRect(t)}getBBoxOfElement(e){const n=this.getBoundingRectOfElement(e),r=this.getMatrixOfElement(e),i=this.getRootRotatedMatrix(),s=this.getRootTranslatedMatrix();return t.Util.transformRectangle(n,s.multiply(i).multiply(r))}getUnrotatedBBoxOfElement(e){const n=this.getBoundingRectOfElement(e),r=this.getMatrixOfElement(e),i=this.getRootTranslatedMatrix();return t.Util.transformRectangle(n,i.multiply(r))}getBBox(t={}){let e;if(t.useCellGeometry){const t=this.cell,n=t.isNode()?t.getAngle():0;e=t.getBBox().bbox(n)}else e=this.getBBoxOfElement(this.container);return this.graph.coord.localToGraphRect(e)}getRootTranslatedMatrix(){const t=this.cell,e=t.isNode()?t.getPosition():{x:0,y:0};return Fm().translate(e.x,e.y)}getRootRotatedMatrix(){let t=Fm();const e=this.cell,n=e.isNode()?e.getAngle():0;if(n){const r=e.getBBox(),i=r.width/2,s=r.height/2;t=t.translate(i,s).rotate(n).translate(-i,-s)}return t}findMagnet(t=this.container){return this.findByAttr("magnet",t)}updateAttrs(t,e,n={}){null==n.rootBBox&&(n.rootBBox=new Ny),null==n.selectors&&(n.selectors=this.selectors),this.attr.update(t,e,n)}isEdgeElement(t){return this.cell.isEdge()&&(null==t||t===this.container)}prepareHighlight(t,e={}){const n=t||this.container;return e.partial=n===this.container,n}highlight(t,e={}){const n=this.prepareHighlight(t,e);return this.notify("cell:highlight",{magnet:n,options:e,view:this,cell:this.cell}),this.isEdgeView()?this.notify("edge:highlight",{magnet:n,options:e,view:this,edge:this.cell,cell:this.cell}):this.isNodeView()&&this.notify("node:highlight",{magnet:n,options:e,view:this,node:this.cell,cell:this.cell}),this}unhighlight(t,e={}){const n=this.prepareHighlight(t,e);return this.notify("cell:unhighlight",{magnet:n,options:e,view:this,cell:this.cell}),this.isNodeView()?this.notify("node:unhighlight",{magnet:n,options:e,view:this,node:this.cell,cell:this.cell}):this.isEdgeView()&&this.notify("edge:unhighlight",{magnet:n,options:e,view:this,edge:this.cell,cell:this.cell}),this}notifyUnhighlight(t,e){}getEdgeTerminal(t,e,n,r,i){const s=this.cell,o=this.findAttr("port",t),a=t.getAttribute("data-selector"),l={cell:s.id};return null!=a&&(l.magnet=a),null!=o?(l.port=o,s.isNode()&&(s.hasPort(o)||null!=a||(l.selector=this.getSelector(t)))):null==a&&this.container!==t&&(l.selector=this.getSelector(t)),l}getMagnetFromEdgeTerminal(t){const e=this.cell,n=this.container,r=t.port;let i,s=t.magnet;return null!=r&&e.isNode()&&e.hasPort(r)?i=this.findPortElem(r,s)||n:(s||(s=t.selector),s||null==r||(s=`[port="${r}"]`),i=this.findOne(s,n,this.selectors)),i}hasTools(t){const e=this.tools;return null!=e&&(null==t||e.name===t)}addTools(t){if(this.removeTools(),t){if(!this.can("toolsAddable"))return this;const e=lx.isToolsView(t)?t:new lx(t);this.tools=e,e.config({view:this}),e.mount()}return this}updateTools(t={}){return this.tools&&this.tools.update(t),this}removeTools(){return this.tools&&(this.tools.remove(),this.tools=null),this}hideTools(){return this.tools&&this.tools.hide(),this}showTools(){return this.tools&&this.tools.show(),this}renderTools(){const t=this.cell.getTools();return this.addTools(t),this}notify(t,e){return this.trigger(t,e),this.graph.trigger(t,e),this}getEventArgs(t,e,n){const r=this,i=r.cell;return null==e||null==n?{e:t,view:r,cell:i}:{e:t,x:e,y:n,view:r,cell:i}}onClick(t,e,n){this.notify("cell:click",this.getEventArgs(t,e,n))}onDblClick(t,e,n){this.notify("cell:dblclick",this.getEventArgs(t,e,n))}onContextMenu(t,e,n){this.notify("cell:contextmenu",this.getEventArgs(t,e,n))}onMouseDown(t,e,n){this.cell.model&&(this.cachedModelForMouseEvent=this.cell.model,this.cachedModelForMouseEvent.startBatch("mouse")),this.notify("cell:mousedown",this.getEventArgs(t,e,n))}onMouseUp(t,e,n){this.notify("cell:mouseup",this.getEventArgs(t,e,n)),this.cachedModelForMouseEvent&&(this.cachedModelForMouseEvent.stopBatch("mouse",{cell:this.cell}),this.cachedModelForMouseEvent=null)}onMouseMove(t,e,n){this.notify("cell:mousemove",this.getEventArgs(t,e,n))}onMouseOver(t){this.notify("cell:mouseover",this.getEventArgs(t))}onMouseOut(t){this.notify("cell:mouseout",this.getEventArgs(t))}onMouseEnter(t){this.notify("cell:mouseenter",this.getEventArgs(t))}onMouseLeave(t){this.notify("cell:mouseleave",this.getEventArgs(t))}onMouseWheel(t,e,n,r){this.notify("cell:mousewheel",Object.assign({delta:r},this.getEventArgs(t,e,n)))}onCustomEvent(t,e,n,r){this.notify("cell:customevent",Object.assign({name:e},this.getEventArgs(t,n,r))),this.notify(e,Object.assign({},this.getEventArgs(t,n,r)))}onMagnetMouseDown(t,e,n,r){}onMagnetDblClick(t,e,n,r){}onMagnetContextMenu(t,e,n,r){}onLabelMouseDown(t,e,n){}checkMouseleave(t){const e=this.getEventTarget(t,{fromPoint:!0}),n=this.graph.findViewByElem(e);n!==this&&(this.onMouseLeave(t),n&&n.onMouseEnter(t))}dispose(){this.cell.off("changed",this.onCellChanged,this)}}ax.defaults={isSvgElement:!0,rootSelector:"root",priority:0,bootstrap:[],actions:{}},n([ax.dispose()],ax.prototype,"dispose",null),function(t){t.Flag=ox,t.Attr=sx}(ax||(ax={})),function(t){t.toStringTag=`X6.${t.name}`,t.isCellView=function(e){if(null==e)return!1;if(e instanceof t)return!0;const n=e[Symbol.toStringTag],r=e;return(null==n||n===t.toStringTag)&&"function"==typeof r.isNodeView&&"function"==typeof r.isEdgeView&&"function"==typeof r.confirmUpdate}}(ax||(ax={})),function(t){t.priority=function(t){return function(e){e.config({priority:t})}},t.bootstrap=function(t){return function(e){e.config({bootstrap:t})}}}(ax||(ax={})),function(t){t.registry=tv.create({type:"view"})}(ax||(ax={}));class lx extends rx{get name(){return this.options.name}get graph(){return this.cellView.graph}get cell(){return this.cellView.cell}get[Symbol.toStringTag](){return lx.toStringTag}constructor(t={}){super(),this.svgContainer=this.createContainer(!0,t),this.htmlContainer=this.createContainer(!1,t),this.config(t)}createContainer(t,e){const n=t?rx.createElement("g",!0):rx.createElement("div",!1);return lp(n,this.prefixClassName("cell-tools")),e.className&&lp(n,e.className),n}config(t){if(this.options=Object.assign(Object.assign({},this.options),t),!ax.isCellView(t.view)||t.view===this.cellView)return this;this.cellView=t.view,this.cell.isEdge()?(lp(this.svgContainer,this.prefixClassName("edge-tools")),lp(this.htmlContainer,this.prefixClassName("edge-tools"))):this.cell.isNode()&&(lp(this.svgContainer,this.prefixClassName("node-tools")),lp(this.htmlContainer,this.prefixClassName("node-tools"))),this.svgContainer.setAttribute("data-cell-id",this.cell.id),this.htmlContainer.setAttribute("data-cell-id",this.cell.id),this.name&&(this.svgContainer.setAttribute("data-tools-name",this.name),this.htmlContainer.setAttribute("data-tools-name",this.name));const e=this.options.items;if(!Array.isArray(e))return this;this.tools=[];const n=[];e.forEach((t=>{if(lx.ToolItem.isToolItem(t))"vertices"===t.name?n.unshift(t):n.push(t);else{"vertices"===("object"==typeof t?t.name:t)?n.unshift(t):n.push(t)}}));for(let t=0;t<n.length;t+=1){const e=n[t];let r;if(lx.ToolItem.isToolItem(e))r=e;else{const t="object"==typeof e?e.name:e,n="object"==typeof e&&e.args||{};if(t)if(this.cell.isNode()){const e=Ox.registry.get(t);if(!e)return Ox.registry.onNotFound(t);r=new e(n)}else if(this.cell.isEdge()){const e=Tx.registry.get(t);if(!e)return Tx.registry.onNotFound(t);r=new e(n)}}if(r){r.config(this.cellView,this),r.render();(!1!==r.options.isSVGElement?this.svgContainer:this.htmlContainer).appendChild(r.container),this.tools.push(r)}}return this}update(t={}){const e=this.tools;return e&&e.forEach((e=>{t.toolId!==e.cid&&e.isVisible()&&e.update()})),this}focus(t){const e=this.tools;return e&&e.forEach((e=>{t===e?e.show():e.hide()})),this}blur(t){const e=this.tools;return e&&e.forEach((e=>{e===t||e.isVisible()||(e.show(),e.update())})),this}hide(){return this.focus(null)}show(){return this.blur(null)}remove(){const t=this.tools;return t&&(t.forEach((t=>t.remove())),this.tools=null),Op(this.svgContainer),Op(this.htmlContainer),super.remove()}mount(){const t=this.tools,e=this.cellView;if(e&&t){const n=t.some((t=>!1!==t.options.isSVGElement)),r=t.some((t=>!1===t.options.isSVGElement));if(n){(this.options.local?e.container:e.graph.view.decorator).appendChild(this.svgContainer)}r&&this.graph.container.appendChild(this.htmlContainer)}return this}}!function(t){t.toStringTag=`X6.${t.name}`,t.isToolsView=function(e){if(null==e)return!1;if(e instanceof t)return!0;const n=e[Symbol.toStringTag],r=e;return(null==n||n===t.toStringTag)&&null!=r.graph&&null!=r.cell&&"function"==typeof r.config&&"function"==typeof r.update&&"function"==typeof r.focus&&"function"==typeof r.blur&&"function"==typeof r.show&&"function"==typeof r.hide}}(lx||(lx={})),function(e){class n extends rx{static getDefaults(){return this.defaults}static config(t){this.defaults=this.getOptions(t)}static getOptions(t){return Sh(xo(this.getDefaults()),t)}get graph(){return this.cellView.graph}get cell(){return this.cellView.cell}get name(){return this.options.name}get[Symbol.toStringTag](){return n.toStringTag}constructor(t={}){super(),this.visible=!0,this.options=this.getOptions(t),this.container=rx.createElement(this.options.tagName||"g",!1!==this.options.isSVGElement),lp(this.container,this.prefixClassName("cell-tool")),"string"==typeof this.options.className&&lp(this.container,this.options.className),this.init()}init(){}getOptions(t){return this.constructor.getOptions(t)}delegateEvents(){return this.options.events&&super.delegateEvents(this.options.events),this}config(t,e){return this.cellView=t,this.parent=e,this.stamp(this.container),this.cell.isEdge()?lp(this.container,this.prefixClassName("edge-tool")):this.cell.isNode()&&lp(this.container,this.prefixClassName("node-tool")),this.name&&this.container.setAttribute("data-tool-name",this.name),this.delegateEvents(),this}render(){this.empty();const e=this.options.markup;if(e){const n=t.Markup.parseJSONMarkup(e);this.container.appendChild(n.fragment),this.childNodes=n.selectors}return this.onRender(),this}onRender(){}update(){return this}stamp(t){t&&t.setAttribute("data-cell-id",this.cellView.cell.id)}show(){return this.container.style.display="",this.visible=!0,this}hide(){return this.container.style.display="none",this.visible=!1,this}isVisible(){return this.visible}focus(){const t=this.options.focusOpacity;return null!=t&&Number.isFinite(t)&&(this.container.style.opacity=`${t}`),this.parent.focus(this),this}blur(){return this.container.style.opacity="",this.parent.blur(this),this}guard(t){return null==this.graph||null==this.cellView||this.graph.view.guard(t,this.cellView)}}n.defaults={isSVGElement:!0,tagName:"g"},e.ToolItem=n,function(t){let e=0;t.define=function(t){const n=df((r=t.name)?Mf(r):(e+=1,`CustomTool${e}`),this);var r;return n.config(t),n}}(n=e.ToolItem||(e.ToolItem={})),function(t){t.toStringTag=`X6.${t.name}`,t.isToolItem=function(e){if(null==e)return!1;if(e instanceof t)return!0;const n=e[Symbol.toStringTag],r=e;return(null==n||n===t.toStringTag)&&null!=r.graph&&null!=r.cell&&"function"==typeof r.config&&"function"==typeof r.update&&"function"==typeof r.focus&&"function"==typeof r.blur&&"function"==typeof r.show&&"function"==typeof r.hide&&"function"==typeof r.isVisible}}(n=e.ToolItem||(e.ToolItem={}))}(lx||(lx={}));function cx(t,e){return 0===e?"0%":`${Math.round(t/e*100)}%`}function hx(t){return(e,n,r,i)=>n.isEdgeElement(r)?function(t,e,n,r,i){const s=n.getConnection();if(!s)return e;const o=s.closestPointLength(i);if(t){const t=s.length();e.anchor={name:"ratio",args:{ratio:o/t}}}else e.anchor={name:"length",args:{length:o}};return e}(t,e,n,0,i):function(t,e,n,r,i){const s=n.cell,o=s.getAngle(),a=n.getUnrotatedBBoxOfElement(r),l=s.getBBox().getCenter(),c=ky.create(i).rotate(o,l);let h=c.x-a.x,u=c.y-a.y;t&&(h=cx(h,a.width),u=cx(u,a.height));return e.anchor={name:"topLeft",args:{dx:h,dy:u,rotate:!0}},e}(t,e,n,r,i)}const ux=hx(!0),gx=hx(!1);var dx,fx=Object.freeze({__proto__:null,noop:t=>t,pinAbsolute:gx,pinRelative:ux});function px(t,e,n,r){return ef(dx.presets.pinRelative,this.graph,{},e,n,t,this.cell,r,{}).anchor}function mx(t,e){return e?t.cell.getBBox():t.cell.isEdge()?t.getConnection().bbox():t.getUnrotatedBBoxOfElement(t.container)}!function(t){t.presets=fx,t.registry=tv.create({type:"connection strategy"}),t.registry.register(t.presets,!0)}(dx||(dx={}));class yx extends lx.ToolItem{onRender(){lp(this.container,this.prefixClassName("cell-tool-button")),this.update()}update(){return this.updatePosition(),this}updatePosition(){const t=this.cellView.cell.isEdge()?this.getEdgeMatrix():this.getNodeMatrix();Km(this.container,t,{absolute:!0})}getNodeMatrix(){const t=this.cellView,e=this.options;let{x:n=0,y:r=0}=e;const{offset:i,useCellGeometry:s,rotate:o}=e;let a=mx(t,s);const l=t.cell.getAngle();o||(a=a.bbox(l));let c=0,h=0;"number"==typeof i?(c=i,h=i):"object"==typeof i&&(c=i.x,h=i.y),n=Df(n,a.width),r=Df(r,a.height);let u=Fm().translate(a.x+a.width/2,a.y+a.height/2);return o&&(u=u.rotate(l)),u=u.translate(n+c-a.width/2,r+h-a.height/2),u}getEdgeMatrix(){const t=this.cellView,e=this.options,{offset:n=0,distance:r=0,rotate:i}=e;let s,o,a;const l=Df(r,1);s=l>=0&&l<=1?t.getTangentAtRatio(l):t.getTangentAtLength(l),s?(o=s.start,a=s.vector().vectorAngle(new ky(1,0))||0):(o=t.getConnection().start,a=0);let c=Fm().translate(o.x,o.y).rotate(a);return c="object"==typeof n?c.translate(n.x||0,n.y||0):c.translate(0,n),i||(c=c.rotate(-a)),c}onMouseDown(t){if(this.guard(t))return;t.stopPropagation(),t.preventDefault();const e=this.options.onClick;"function"==typeof e&&ef(e,this.cellView,{e:t,view:this.cellView,cell:this.cellView.cell,btn:this})}}!function(t){t.config({name:"button",useCellGeometry:!0,events:{mousedown:"onMouseDown",touchstart:"onMouseDown"}})}(yx||(yx={})),function(t){t.Remove=t.define({name:"button-remove",markup:[{tagName:"circle",selector:"button",attrs:{r:7,fill:"#FF1D00",cursor:"pointer"}},{tagName:"path",selector:"icon",attrs:{d:"M -3 -3 3 3 M -3 3 3 -3",fill:"none",stroke:"#FFFFFF","stroke-width":2,"pointer-events":"none"}}],distance:60,offset:0,useCellGeometry:!0,onClick({view:t,btn:e}){e.parent.remove(),t.cell.remove({ui:!0,toolId:e.cid})}})}(yx||(yx={}));class vx extends lx.ToolItem{onRender(){if(lp(this.container,this.prefixClassName("cell-tool-boundary")),this.options.attrs){const t=this.options.attrs,{class:n}=t,r=e(t,["class"]);$p(this.container,Gp(r)),n&&lp(this.container,n)}this.update()}update(){const t=this.cellView,e=this.options,{useCellGeometry:n,rotate:r}=e,i=Rf(e.padding);let s=mx(t,n).moveAndExpand({x:-i.left,y:-i.top,width:i.left+i.right,height:i.top+i.bottom});const o=t.cell;if(o.isNode()){const t=o.getAngle();if(t)if(r){const e=o.getBBox().getCenter();ty(this.container,t,e.x,e.y,{absolute:!0})}else s=s.bbox(t)}return $p(this.container,s.toJSON()),this}}!function(t){t.config({name:"boundary",tagName:"rect",padding:10,useCellGeometry:!0,attrs:{fill:"none",stroke:"#333","stroke-width":.5,"stroke-dasharray":"5, 5","pointer-events":"none"}})}(vx||(vx={}));class bx extends lx.ToolItem{constructor(){super(...arguments),this.handles=[]}get vertices(){return this.cellView.cell.getVertices()}onRender(){return this.addClass(this.prefixClassName("edge-tool-vertices")),this.options.addable&&this.updatePath(),this.resetHandles(),this.renderHandles(),this}update(){return this.vertices.length===this.handles.length?this.updateHandles():(this.resetHandles(),this.renderHandles()),this.options.addable&&this.updatePath(),this}resetHandles(){const t=this.handles;this.handles=[],t&&t.forEach((t=>{this.stopHandleListening(t),t.remove()}))}renderHandles(){const t=this.vertices;for(let e=0,n=t.length;e<n;e+=1){const n=t[e],r=this.options.createHandle,i=this.options.processHandle,s=r({index:e,graph:this.graph,guard:t=>this.guard(t),attrs:this.options.attrs||{}});i&&i(s),s.updatePosition(n.x,n.y),this.stamp(s.container),this.container.appendChild(s.container),this.handles.push(s),this.startHandleListening(s)}}updateHandles(){const t=this.vertices;for(let e=0,n=t.length;e<n;e+=1){const n=t[e],r=this.handles[e];r&&r.updatePosition(n.x,n.y)}}updatePath(){const t=this.childNodes.connection;t&&t.setAttribute("d",this.cellView.getConnectionPathData())}startHandleListening(t){const e=this.cellView;e.can("vertexMovable")&&(t.on("change",this.onHandleChange,this),t.on("changing",this.onHandleChanging,this),t.on("changed",this.onHandleChanged,this)),e.can("vertexDeletable")&&t.on("remove",this.onHandleRemove,this)}stopHandleListening(t){const e=this.cellView;e.can("vertexMovable")&&(t.off("change",this.onHandleChange,this),t.off("changing",this.onHandleChanging,this),t.off("changed",this.onHandleChanged,this)),e.can("vertexDeletable")&&t.off("remove",this.onHandleRemove,this)}getNeighborPoints(t){const e=this.cellView,n=this.vertices,r=t>0?n[t-1]:e.sourceAnchor,i=t<n.length-1?n[t+1]:e.targetAnchor;return{prev:ky.create(r),next:ky.create(i)}}getMouseEventArgs(t){const e=this.normalizeEvent(t),{x:n,y:r}=this.graph.snapToGrid(e.clientX,e.clientY);return{e:e,x:n,y:r}}onHandleChange({e:t}){this.focus();const e=this.cellView;if(e.cell.startBatch("move-vertex",{ui:!0,toolId:this.cid}),!this.options.stopPropagation){const{e:n,x:r,y:i}=this.getMouseEventArgs(t);this.eventData(n,{start:{x:r,y:i}}),e.notifyMouseDown(n,r,i)}}onHandleChanging({handle:t,e:e}){const n=this.cellView,r=t.options.index,{e:i,x:s,y:o}=this.getMouseEventArgs(e),a={x:s,y:o};this.snapVertex(a,r),n.cell.setVertexAt(r,a,{ui:!0,toolId:this.cid}),t.updatePosition(a.x,a.y),this.options.stopPropagation||n.notifyMouseMove(i,s,o)}stopBatch(t){this.cell.stopBatch("move-vertex",{ui:!0,toolId:this.cid}),t&&this.cell.stopBatch("add-vertex",{ui:!0,toolId:this.cid})}onHandleChanged({e:t}){const e=this.options,n=this.cellView;if(e.addable&&this.updatePath(),!e.removeRedundancies)return void this.stopBatch(this.eventData(t).vertexAdded);n.removeRedundantLinearVertices({ui:!0,toolId:this.cid})&&this.render(),this.blur(),this.stopBatch(this.eventData(t).vertexAdded);const{e:r,x:i,y:s}=this.getMouseEventArgs(t);if(!this.options.stopPropagation){n.notifyMouseUp(r,i,s);const{start:t}=this.eventData(r);if(t){const{x:e,y:o}=t;e===i&&o===s&&n.onClick(r,i,s)}}n.checkMouseleave(r),e.onChanged&&e.onChanged({edge:n.cell,edgeView:n})}snapVertex(t,e){const n=this.options.snapRadius||0;if(n>0){const r=this.getNeighborPoints(e),i=r.prev,s=r.next;Math.abs(t.x-i.x)<n?t.x=i.x:Math.abs(t.x-s.x)<n&&(t.x=s.x),Math.abs(t.y-i.y)<n?t.y=r.prev.y:Math.abs(t.y-s.y)<n&&(t.y=s.y)}}onHandleRemove({handle:t,e:e}){if(this.options.removable){const n=t.options.index,r=this.cellView;r.cell.removeVertexAt(n,{ui:!0}),this.options.addable&&this.updatePath(),r.checkMouseleave(this.normalizeEvent(e))}}allowAddVertex(e){const n=this.guard(e),r=this.options.addable&&this.cellView.can("vertexAddable"),i=!this.options.modifiers||t.ModifierKey.isMatch(e,this.options.modifiers);return!n&&r&&i}onPathMouseDown(t){const e=this.cellView;if(!this.allowAddVertex(t))return;t.stopPropagation(),t.preventDefault();const n=this.normalizeEvent(t),r=this.graph.snapToGrid(n.clientX,n.clientY).toJSON();e.cell.startBatch("add-vertex",{ui:!0,toolId:this.cid});const i=e.getVertexIndex(r.x,r.y);this.snapVertex(r,i),e.cell.insertVertex(r,i,{ui:!0,toolId:this.cid}),this.render();const s=this.handles[i];this.eventData(n,{vertexAdded:!0}),s.onMouseDown(n)}onRemove(){this.resetHandles()}}!function(t){t.Handle=class extends rx{get graph(){return this.options.graph}constructor(t){super(),this.options=t,this.render(),this.delegateEvents({mousedown:"onMouseDown",touchstart:"onMouseDown",dblclick:"onDoubleClick"})}render(){this.container=rx.createElement("circle",!0);const e=this.options.attrs;if("function"==typeof e){const n=t.getDefaults();this.setAttrs(Object.assign(Object.assign({},n.attrs),e(this)))}else this.setAttrs(e);this.addClass(this.prefixClassName("edge-tool-vertex"))}updatePosition(t,e){this.setAttrs({cx:t,cy:e})}onMouseDown(t){this.options.guard(t)||(t.stopPropagation(),t.preventDefault(),this.graph.view.undelegateEvents(),this.delegateDocumentEvents({mousemove:"onMouseMove",touchmove:"onMouseMove",mouseup:"onMouseUp",touchend:"onMouseUp",touchcancel:"onMouseUp"},t.data),this.emit("change",{e:t,handle:this}))}onMouseMove(t){this.emit("changing",{e:t,handle:this})}onMouseUp(t){this.emit("changed",{e:t,handle:this}),this.undelegateDocumentEvents(),this.graph.view.delegateEvents()}onDoubleClick(t){this.emit("remove",{e:t,handle:this})}}}(bx||(bx={})),function(t){const e=jb.prefix("edge-tool-vertex-path");t.config({name:"vertices",snapRadius:20,addable:!0,removable:!0,removeRedundancies:!0,stopPropagation:!0,attrs:{r:6,fill:"#333",stroke:"#fff",cursor:"move","stroke-width":2},createHandle:e=>new t.Handle(e),markup:[{tagName:"path",selector:"connection",className:e,attrs:{fill:"none",stroke:"transparent","stroke-width":10,cursor:"pointer"}}],events:{[`mousedown .${e}`]:"onPathMouseDown",[`touchstart .${e}`]:"onPathMouseDown"}})}(bx||(bx={}));class xx extends lx.ToolItem{constructor(){super(...arguments),this.handles=[]}get vertices(){return this.cellView.cell.getVertices()}update(){return this.render(),this}onRender(){lp(this.container,this.prefixClassName("edge-tool-segments")),this.resetHandles();const t=this.cellView,e=[...this.vertices];e.unshift(t.sourcePoint),e.push(t.targetPoint);for(let t=0,n=e.length;t<n-1;t+=1){const n=e[t],r=e[t+1],i=this.renderHandle(n,r,t);this.stamp(i.container),this.handles.push(i)}return this}renderHandle(t,e,n){const r=this.options.createHandle({index:n,graph:this.graph,guard:t=>this.guard(t),attrs:this.options.attrs||{}});return this.options.processHandle&&this.options.processHandle(r),this.updateHandle(r,t,e),this.container.appendChild(r.container),this.startHandleListening(r),r}startHandleListening(t){t.on("change",this.onHandleChange,this),t.on("changing",this.onHandleChanging,this),t.on("changed",this.onHandleChanged,this)}stopHandleListening(t){t.off("change",this.onHandleChange,this),t.off("changing",this.onHandleChanging,this),t.off("changed",this.onHandleChanged,this)}resetHandles(){const t=this.handles;this.handles=[],t&&t.forEach((t=>{this.stopHandleListening(t),t.remove()}))}shiftHandleIndexes(t){const e=this.handles;for(let n=0,r=e.length;n<r;n+=1)e[n].options.index+=t}resetAnchor(t,e){const n=this.cellView.cell,r={ui:!0,toolId:this.cid};e?n.prop([t,"anchor"],e,r):n.removeProp([t,"anchor"],r)}snapHandle(t,e,n){const r=t.options.axis,i=t.options.index,s=this.cellView.cell.getVertices(),o=s[i-2]||n.sourceAnchor,a=s[i+1]||n.targetAnchor,l=this.options.snapRadius;return Math.abs(e[r]-o[r])<l?e[r]=o[r]:Math.abs(e[r]-a[r])<l&&(e[r]=a[r]),e}onHandleChanging({handle:t,e:e}){const n=this.graph,r=this.options,i=this.cellView,s=r.anchor,o=t.options.axis,a=t.options.index-1,l=this.getEventData(e),c=this.normalizeEvent(e),h=n.snapToGrid(c.clientX,c.clientY),u=this.snapHandle(t,h.clone(),l),g=xo(this.vertices);let d=g[a],f=g[a+1];const p=i.sourceView,m=i.sourceBBox;let y=!1,v=!1;if(d?0===a?m.containsPoint(d)?(g.shift(),this.shiftHandleIndexes(-1),y=!0):(d[o]=u[o],v=!0):d[o]=u[o]:(d=i.sourceAnchor.toJSON(),d[o]=u[o],m.containsPoint(d)?y=!0:(g.unshift(d),this.shiftHandleIndexes(1),v=!0)),"function"==typeof s&&p){if(y){const t=l.sourceAnchor.clone();t[o]=u[o];const e=ef(s,i,t,p,i.sourceMagnet||p.container,"source",i,this);this.resetAnchor("source",e)}v&&this.resetAnchor("source",l.sourceAnchorDef)}const b=i.targetView,x=i.targetBBox;let w=!1,A=!1;if(f?a===g.length-2?x.containsPoint(f)?(g.pop(),w=!0):(f[o]=u[o],A=!0):f[o]=u[o]:(f=i.targetAnchor.toJSON(),f[o]=u[o],x.containsPoint(f)?w=!0:(g.push(f),A=!0)),"function"==typeof s&&b){if(w){const t=l.targetAnchor.clone();t[o]=u[o];const e=ef(s,i,t,b,i.targetMagnet||b.container,"target",i,this);this.resetAnchor("target",e)}A&&this.resetAnchor("target",l.targetAnchorDef)}ky.equalPoints(g,this.vertices)||this.cellView.cell.setVertices(g,{ui:!0,toolId:this.cid}),this.updateHandle(t,d,f,0),r.stopPropagation||i.notifyMouseMove(c,h.x,h.y)}onHandleChange({handle:t,e:e}){const n=this.options,r=this.handles,i=this.cellView,s=t.options.index;if(Array.isArray(r)){for(let t=0,e=r.length;t<e;t+=1)t!==s&&r[t].hide();if(this.focus(),this.setEventData(e,{sourceAnchor:i.sourceAnchor.clone(),targetAnchor:i.targetAnchor.clone(),sourceAnchorDef:xo(this.cell.prop(["source","anchor"])),targetAnchorDef:xo(this.cell.prop(["target","anchor"]))}),this.cell.startBatch("move-segment",{ui:!0,toolId:this.cid}),!n.stopPropagation){const t=this.normalizeEvent(e),n=this.graph.snapToGrid(t.clientX,t.clientY);i.notifyMouseDown(t,n.x,n.y)}}}onHandleChanged({e:t}){const e=this.options,n=this.cellView;e.removeRedundancies&&n.removeRedundantLinearVertices({ui:!0,toolId:this.cid});const r=this.normalizeEvent(t),i=this.graph.snapToGrid(r.clientX,r.clientY);this.render(),this.blur(),this.cell.stopBatch("move-segment",{ui:!0,toolId:this.cid}),e.stopPropagation||n.notifyMouseUp(r,i.x,i.y),n.checkMouseleave(r),e.onChanged&&e.onChanged({edge:n.cell,edgeView:n})}updateHandle(t,e,n,r=0){const i=this.options.precision||0,s=Math.abs(e.x-n.x)<i,o=Math.abs(e.y-n.y)<i;if(s||o){const i=new jy(e,n);if(i.length()<this.options.threshold)t.hide();else{const e=i.getCenter(),n=s?"x":"y";e[n]+=r||0;const o=i.vector().vectorAngle(new ky(1,0));t.updatePosition(e.x,e.y,o,this.cellView),t.show(),t.options.axis=n}}else t.hide()}onRemove(){this.resetHandles()}}!function(t){t.Handle=class extends rx{constructor(t){super(),this.options=t,this.render(),this.delegateEvents({mousedown:"onMouseDown",touchstart:"onMouseDown"})}render(){this.container=rx.createElement("rect",!0);const e=this.options.attrs;if("function"==typeof e){const n=t.getDefaults();this.setAttrs(Object.assign(Object.assign({},n.attrs),e(this)))}else this.setAttrs(e);this.addClass(this.prefixClassName("edge-tool-segment"))}updatePosition(t,e,n,r){const i=r.getClosestPoint(new ky(t,e))||new ky(t,e);let s=Fm().translate(i.x,i.y);if(i.equals({x:t,y:e}))s=s.rotate(n);else{let n=new jy(t,e,i.x,i.y).vector().vectorAngle(new ky(1,0));0!==n&&(n+=90),s=s.rotate(n)}this.setAttrs({transform:qm(s),cursor:n%180==0?"row-resize":"col-resize"})}onMouseDown(t){this.options.guard(t)||(this.trigger("change",{e:t,handle:this}),t.stopPropagation(),t.preventDefault(),this.options.graph.view.undelegateEvents(),this.delegateDocumentEvents({mousemove:"onMouseMove",touchmove:"onMouseMove",mouseup:"onMouseUp",touchend:"onMouseUp",touchcancel:"onMouseUp"},t.data))}onMouseMove(t){this.emit("changing",{e:t,handle:this})}onMouseUp(t){this.emit("changed",{e:t,handle:this}),this.undelegateDocumentEvents(),this.options.graph.view.delegateEvents()}show(){this.container.style.display=""}hide(){this.container.style.display="none"}}}(xx||(xx={})),function(t){t.config({name:"segments",precision:.5,threshold:40,snapRadius:10,stopPropagation:!0,removeRedundancies:!0,attrs:{width:20,height:8,x:-10,y:-4,rx:4,ry:4,fill:"#333",stroke:"#fff","stroke-width":2},createHandle:e=>new t.Handle(e),anchor:px})}(xx||(xx={}));class wx extends lx.ToolItem{get type(){return this.options.type}onRender(){lp(this.container,this.prefixClassName(`edge-tool-${this.type}-anchor`)),this.toggleArea(!1),this.update()}update(){const t=this.type;return this.cellView.getTerminalView(t)?(this.updateAnchor(),this.updateArea(),this.container.style.display=""):this.container.style.display="none",this}updateAnchor(){const t=this.childNodes;if(!t)return;const e=t.anchor;if(!e)return;const n=this.type,r=this.cellView,i=this.options,s=r.getTerminalAnchor(n),o=r.cell.prop([n,"anchor"]);e.setAttribute("transform",`translate(${s.x}, ${s.y})`);const a=o?i.customAnchorAttrs:i.defaultAnchorAttrs;a&&Object.keys(a).forEach((t=>{e.setAttribute(t,a[t])}))}updateArea(){const t=this.childNodes;if(!t)return;const e=t.area;if(!e)return;const n=this.type,r=this.cellView,i=r.getTerminalView(n);if(i){const t=i.cell,s=r.getTerminalMagnet(n);let o,a,l,c=this.options.areaPadding||0;Number.isFinite(c)||(c=0),i.isEdgeElement(s)?(o=i.getBBox(),a=0,l=o.getCenter()):(o=i.getUnrotatedBBoxOfElement(s),a=t.getAngle(),l=o.getCenter(),a&&l.rotate(-a,t.getBBox().getCenter())),o.inflate(c),$p(e,{x:-o.width/2,y:-o.height/2,width:o.width,height:o.height,transform:`translate(${l.x}, ${l.y}) rotate(${a})`})}}toggleArea(t){if(this.childNodes){const e=this.childNodes.area;e&&(e.style.display=t?"":"none")}}onMouseDown(t){this.guard(t)||(t.stopPropagation(),t.preventDefault(),this.graph.view.undelegateEvents(),this.options.documentEvents&&this.delegateDocumentEvents(this.options.documentEvents),this.focus(),this.toggleArea(this.options.restrictArea),this.cell.startBatch("move-anchor",{ui:!0,toolId:this.cid}))}resetAnchor(t){const e=this.type,n=this.cell;t?n.prop([e,"anchor"],t,{rewrite:!0,ui:!0,toolId:this.cid}):n.removeProp([e,"anchor"],{ui:!0,toolId:this.cid})}onMouseMove(t){const e=this.type,n=this.cellView,r=n.getTerminalView(e);if(null==r)return;const i=this.normalizeEvent(t),s=r.cell,o=n.getTerminalMagnet(e);let a=this.graph.coord.clientToLocalPoint(i.clientX,i.clientY);const l=this.options.snap;if("function"==typeof l){const t=ef(l,n,a,r,o,e,n,this);a=ky.create(t)}if(this.options.restrictArea)if(r.isEdgeElement(o)){const t=r.getClosestPoint(a);t&&(a=t)}else{const t=r.getUnrotatedBBoxOfElement(o),e=s.getAngle(),n=s.getBBox().getCenter(),i=a.clone().rotate(e,n);t.containsPoint(i)||(a=t.getNearestPointToPoint(i).rotate(-e,n))}let c;const h=this.options.anchor;"function"==typeof h&&(c=ef(h,n,a,r,o,e,n,this)),this.resetAnchor(c),this.update()}onMouseUp(t){this.graph.view.delegateEvents(),this.undelegateDocumentEvents(),this.blur(),this.toggleArea(!1);const e=this.cellView;this.options.removeRedundancies&&e.removeRedundantLinearVertices({ui:!0,toolId:this.cid}),this.cell.stopBatch("move-anchor",{ui:!0,toolId:this.cid})}onDblClick(){const t=this.options.resetAnchor;t&&this.resetAnchor(!0===t?void 0:t),this.update()}}!function(t){t.config({tagName:"g",markup:[{tagName:"circle",selector:"anchor",attrs:{cursor:"pointer"}},{tagName:"rect",selector:"area",attrs:{"pointer-events":"none",fill:"none",stroke:"#33334F","stroke-dasharray":"2,4",rx:5,ry:5}}],events:{mousedown:"onMouseDown",touchstart:"onMouseDown",dblclick:"onDblClick"},documentEvents:{mousemove:"onMouseMove",touchmove:"onMouseMove",mouseup:"onMouseUp",touchend:"onMouseUp",touchcancel:"onMouseUp"},customAnchorAttrs:{"stroke-width":4,stroke:"#33334F",fill:"#FFFFFF",r:5},defaultAnchorAttrs:{"stroke-width":2,stroke:"#FFFFFF",fill:"#33334F",r:6},areaPadding:6,snapRadius:10,resetAnchor:!0,restrictArea:!0,removeRedundancies:!0,anchor:px,snap(t,e,n,r,i,s){const o=s.options.snapRadius||0,a="source"===r,l=a?0:-1,c=this.cell.getVertexAt(l)||this.getTerminalAnchor(a?"target":"source");return c&&(Math.abs(c.x-t.x)<o&&(t.x=c.x),Math.abs(c.y-t.y)<o&&(t.y=c.y)),t}})}(wx||(wx={}));const Ax=wx.define({name:"source-anchor",type:"source"}),Cx=wx.define({name:"target-anchor",type:"target"});class Px extends lx.ToolItem{get type(){return this.options.type}get ratio(){return this.options.ratio}init(){if(this.options.attrs){const t=this.options.attrs,{class:n}=t,r=e(t,["class"]);this.setAttrs(r,this.container),n&&lp(this.container,n)}}onRender(){lp(this.container,this.prefixClassName(`edge-tool-${this.type}-arrowhead`)),this.update()}update(){const t=this.ratio,e=this.cellView,n=e.getTangentAtRatio(t),r=n?n.start:e.getPointAtRatio(t),i=n&&n.vector().vectorAngle(new ky(1,0))||0;if(!r)return this;const s=Fm().translate(r.x,r.y).rotate(i);return Km(this.container,s,{absolute:!0}),this}onMouseDown(t){if(this.guard(t))return;t.stopPropagation(),t.preventDefault();const e=this.cellView;if(e.can("arrowheadMovable")){e.cell.startBatch("move-arrowhead",{ui:!0,toolId:this.cid});const n=this.graph.snapToGrid(t.clientX,t.clientY),r=e.prepareArrowheadDragging(this.type,{x:n.x,y:n.y,options:Object.assign(Object.assign({},this.options),{toolId:this.cid})});this.cellView.setEventData(t,r),this.delegateDocumentEvents(this.options.documentEvents,t.data),e.graph.view.undelegateEvents(),this.container.style.pointerEvents="none"}this.focus()}onMouseMove(t){const e=this.normalizeEvent(t),n=this.graph.snapToGrid(e.clientX,e.clientY);this.cellView.onMouseMove(e,n.x,n.y),this.update()}onMouseUp(t){this.undelegateDocumentEvents();const e=this.normalizeEvent(t),n=this.cellView,r=this.graph.snapToGrid(e.clientX,e.clientY);n.onMouseUp(e,r.x,r.y),this.graph.view.delegateEvents(),this.blur(),this.container.style.pointerEvents="",n.cell.stopBatch("move-arrowhead",{ui:!0,toolId:this.cid})}}!function(t){t.config({tagName:"path",isSVGElement:!0,events:{mousedown:"onMouseDown",touchstart:"onMouseDown"},documentEvents:{mousemove:"onMouseMove",touchmove:"onMouseMove",mouseup:"onMouseUp",touchend:"onMouseUp",touchcancel:"onMouseUp"}})}(Px||(Px={}));const Mx=Px.define({name:"source-arrowhead",type:"source",ratio:0,attrs:{d:"M 10 -8 -10 0 10 8 Z",fill:"#333",stroke:"#fff","stroke-width":2,cursor:"move"}}),Ex=Px.define({name:"target-arrowhead",type:"target",ratio:1,attrs:{d:"M -10 -8 10 0 -10 8 Z",fill:"#333",stroke:"#fff","stroke-width":2,cursor:"move"}});class Sx extends lx.ToolItem{constructor(){super(...arguments),this.labelIndex=-1,this.distance=.5,this.dblClick=this.onCellDblClick.bind(this)}onRender(){const t=this.cellView;t&&t.on("cell:dblclick",this.dblClick)}createElement(){const t=[this.prefixClassName((this.cell.isEdge()?"edge":"node")+"-tool-editor"),this.prefixClassName("cell-tool-editor")];this.editor=lx.createElement("div",!1),this.addClass(t,this.editor),this.editor.contentEditable="true",this.container.appendChild(this.editor)}removeElement(){this.undelegateDocumentEvents(),this.editor&&(this.container.removeChild(this.editor),this.editor=null)}updateEditor(){const{cell:t,editor:e}=this;if(!e)return;const{style:n}=e;t.isNode()?this.updateNodeEditorTransform():t.isEdge()&&this.updateEdgeEditorTransform();const{attrs:r}=this.options;n.fontSize=`${r.fontSize}px`,n.fontFamily=r.fontFamily,n.color=r.color,n.backgroundColor=r.backgroundColor;const i=this.getCellText()||"";return e.innerText=i,this.setCellText(""),this}updateNodeEditorTransform(){const{graph:t,cell:e,editor:n}=this;if(!n)return;let r=ky.create(),i=20,s="",{x:o,y:a}=this.options;const{width:l,height:c}=this.options;if(void 0!==o&&void 0!==a){const t=e.getBBox();o=Df(o,t.width),a=Df(a,t.height),r=t.topLeft.translate(o,a),i=t.width-2*o}else{const t=e.getBBox();r=t.center,i=t.width-4,s="translate(-50%, -50%)"}const h=t.scale(),{style:u}=n;r=t.localToGraph(r),u.left=`${r.x}px`,u.top=`${r.y}px`,u.transform=`scale(${h.sx}, ${h.sy}) ${s}`,u.minWidth=`${i}px`,"number"==typeof l&&(u.width=`${l}px`),"number"==typeof c&&(u.height=`${c}px`)}updateEdgeEditorTransform(){if(!this.event)return;const{graph:e,editor:n}=this;if(!n)return;let r=ky.create(),i=20;const{style:s}=n,o=this.event.target,a=o.parentElement;if(a&&ap(a,this.prefixClassName("edge-label"))){const e=a.getAttribute("data-index")||"0";this.labelIndex=parseInt(e,10);const n=a.getAttribute("transform"),{translation:s}=Wm(n);r=new ky(s.tx,s.ty),i=t.Util.getBBox(o).width}else{if(!this.options.labelAddable)return this;r=e.clientToLocal(ky.create(this.event.clientX,this.event.clientY));const t=this.cellView.path.closestPointLength(r);this.distance=t,this.labelIndex=-1}r=e.localToGraph(r);const l=e.scale();s.left=`${r.x}px`,s.top=`${r.y}px`,s.minWidth=`${i}px`,s.transform=`scale(${l.sx}, ${l.sy}) translate(-50%, -50%)`}onDocumentMouseUp(t){if(this.editor&&t.target!==this.editor){const t=this.editor.innerText.replace(/\n$/,"")||"";this.setCellText(""!==t?t:null),this.removeElement()}}onCellDblClick({e:t}){this.editor||(t.stopPropagation(),this.removeElement(),this.event=t,this.createElement(),this.updateEditor(),this.autoFocus(),this.delegateDocumentEvents(this.options.documentEvents))}onMouseDown(t){t.stopPropagation()}autoFocus(){setTimeout((()=>{this.editor&&(this.editor.focus(),this.selectText())}))}selectText(){if(window.getSelection&&this.editor){const t=document.createRange(),e=window.getSelection();t.selectNodeContents(this.editor),e.removeAllRanges(),e.addRange(t)}}getCellText(){const{getText:t}=this.options;if("function"==typeof t)return ef(t,this.cellView,{cell:this.cell,index:this.labelIndex});if("string"==typeof t){if(this.cell.isNode())return this.cell.attr(t);if(this.cell.isEdge()&&-1!==this.labelIndex)return this.cell.prop(`labels/${this.labelIndex}/attrs/${t}`)}}setCellText(t){const e=this.options.setText;if("function"!=typeof e){if("string"==typeof e){if(this.cell.isNode())return void(null!==t&&this.cell.attr(e,t));if(this.cell.isEdge()){const n=this.cell;if(-1===this.labelIndex){if(t){const r={position:{distance:this.distance},attrs:{}};yf(r,`attrs/${e}`,t),n.appendLabel(r)}}else null!==t?n.prop(`labels/${this.labelIndex}/attrs/${e}`,t):"number"==typeof this.labelIndex&&n.removeLabelAt(this.labelIndex)}}}else ef(e,this.cellView,{cell:this.cell,value:t,index:this.labelIndex,distance:this.distance})}onRemove(){const t=this.cellView;t&&t.off("cell:dblclick",this.dblClick),this.removeElement()}}var Ox,Tx;!function(t){t.config({tagName:"div",isSVGElement:!1,events:{mousedown:"onMouseDown",touchstart:"onMouseDown"},documentEvents:{mouseup:"onDocumentMouseUp",touchend:"onDocumentMouseUp",touchcancel:"onDocumentMouseUp"}})}(Sx||(Sx={})),function(t){t.NodeEditor=t.define({attrs:{fontSize:14,fontFamily:"Arial, helvetica, sans-serif",color:"#000",backgroundColor:"#fff"},getText:"text/text",setText:"text/text"}),t.EdgeEditor=t.define({attrs:{fontSize:14,fontFamily:"Arial, helvetica, sans-serif",color:"#000",backgroundColor:"#fff"},labelAddable:!0,getText:"label/text",setText:"label/text"})}(Sx||(Sx={})),function(t){t.presets={boundary:vx,button:yx,"button-remove":yx.Remove,"node-editor":Sx.NodeEditor},t.registry=tv.create({type:"node tool",process(t,n){if("function"==typeof n)return n;let r=lx.ToolItem;const{inherit:i}=n,s=e(n,["inherit"]);if(i){const t=this.get(i);null==t?this.onNotFound(i,"inherited"):r=t}return null==s.name&&(s.name=t),r.define.call(r,s)}}),t.registry.register(t.presets,!0)}(Ox||(Ox={})),function(t){t.presets={boundary:vx,vertices:bx,segments:xx,button:yx,"button-remove":yx.Remove,"source-anchor":Ax,"target-anchor":Cx,"source-arrowhead":Mx,"target-arrowhead":Ex,"edge-editor":Sx.EdgeEditor},t.registry=tv.create({type:"edge tool",process(t,n){if("function"==typeof n)return n;let r=lx.ToolItem;const{inherit:i}=n,s=e(n,["inherit"]);if(i){const t=this.get(i);null==t?this.onNotFound(i,"inherited"):r=t}return null==s.name&&(s.name=t),r.define.call(r,s)}}),t.registry.register(t.presets,!0)}(Tx||(Tx={}));const kx=Vx("center"),Nx=Vx("topCenter"),jx=Vx("bottomCenter"),_x=Vx("leftMiddle"),Lx=Vx("rightMiddle"),Bx=Vx("topLeft"),Ix=Vx("topRight"),Dx=Vx("bottomLeft"),Rx=Vx("bottomRight");function Vx(t){return function(e,n,r,i={}){const s=i.rotate?e.getUnrotatedBBoxOfElement(n):e.getBBoxOfElement(n),o=s[t];o.x+=Df(i.dx,s.width),o.y+=Df(i.dy,s.height);const a=e.cell;return i.rotate?o.rotate(-a.getAngle(),a.getBBox().getCenter()):o}}function zx(t){return function(e,n,r,i){if(r instanceof Element){const s=this.graph.findViewByElem(r);let o;if(s)if(s.isEdgeElement(r)){o=$x(s,null!=i.fixedAt?i.fixedAt:"50%")}else o=s.getBBoxOfElement(r).getCenter();else o=new ky;return t.call(this,e,n,o,i)}return t.apply(this,arguments)}}function $x(t,e){const n=If(e),r="string"==typeof e?parseFloat(e):e;return n?t.getPointAtRatio(r/100):t.getPointAtLength(r)}const Fx=zx((function(e,n,r,i){const s=e.cell.getAngle(),o=e.getBBoxOfElement(n),a=o.getCenter(),l=o.getTopLeft(),c=o.getBottomRight();let h=i.padding;if(Number.isFinite(h)||(h=0),l.y+h<=r.y&&r.y<=c.y-h){const e=r.y-a.y;a.x+=0===s||180===s?0:1*e/Math.tan(t.Angle.toRad(s)),a.y+=e}else if(l.x+h<=r.x&&r.x<=c.x-h){const e=r.x-a.x;a.y+=90===s||270===s?0:e*Math.tan(t.Angle.toRad(s)),a.x+=e}return a})),Gx=zx((function(t,e,n,r){let i,s,o=0;const a=t.cell;r.rotate?(i=t.getUnrotatedBBoxOfElement(e),s=a.getBBox().getCenter(),o=a.getAngle()):i=t.getBBoxOfElement(e);const l=r.padding;null!=l&&Number.isFinite(l)&&i.inflate(l),r.rotate&&n.rotate(o,s);const c=i.getNearestSideToPoint(n);let h;switch(c){case"left":h=i.getLeftMiddle();break;case"right":h=i.getRightMiddle();break;case"top":h=i.getTopCenter();break;case"bottom":h=i.getBottomCenter()}const u=r.direction;return"H"===u?"top"!==c&&"bottom"!==c||(h=n.x<=i.x+i.width?i.getLeftMiddle():i.getRightMiddle()):"V"===u&&(h=n.y<=i.y+i.height?i.getTopCenter():i.getBottomCenter()),r.rotate?h.rotate(-o,s):h}));var Ux,qx=Object.freeze({__proto__:null,bottom:jx,bottomLeft:Dx,bottomRight:Rx,center:kx,left:_x,midSide:Gx,nodeCenter:function(t,e,n,r,i){const s=t.cell.getConnectionPoint(this.cell,i);return(r.dx||r.dy)&&s.translate(r.dx||0,r.dy||0),s},orth:Fx,right:Lx,top:Nx,topLeft:Bx,topRight:Ix});!function(t){t.presets=qx,t.registry=tv.create({type:"node endpoint"}),t.registry.register(t.presets,!0)}(Ux||(Ux={}));const Wx=function(t,e,n,r){const i=t.getClosestPoint(n);return null!=i?i:new ky},Hx=zx(Wx),Jx=zx((function(t,e,n,r){const i=1e6,s=t.getConnection(),o=t.getConnectionSubdivisions(),a=new jy(n.clone().translate(0,i),n.clone().translate(0,-i)),l=new jy(n.clone().translate(i,0),n.clone().translate(-i,0)),c=a.intersect(s,{segmentSubdivisions:o}),h=l.intersect(s,{segmentSubdivisions:o}),u=[];return c&&u.push(...c),h&&u.push(...h),u.length>0?n.closest(u):null!=r.fallbackAt?$x(t,r.fallbackAt):ef(Wx,this,t,e,n,r)}));var Xx,Yx=Object.freeze({__proto__:null,closest:Hx,length:function(t,e,n,r){const i=null!=r.length?r.length:20;return t.getPointAtLength(i)},orth:Jx,ratio:function(t,e,n,r){let i=null!=r.ratio?r.ratio:.5;return i>1&&(i/=100),t.getPointAtRatio(i)}});function Zx(t,e,n){let r;if("object"==typeof n){if(Number.isFinite(n.y)){const r=new jy(e,t),{start:i,end:s}=r.parallel(n.y);e=i,t=s}r=n.x}else r=n;if(null==r||!Number.isFinite(r))return t;const i=t.distance(e);return 0===r&&i>0?t:t.move(e,-Math.min(r,i-1))}function Kx(t){const e=t.getAttribute("stroke-width");return null===e?0:parseFloat(e)||0}!function(t){t.presets=Yx,t.registry=tv.create({type:"edge endpoint"}),t.registry.register(t.presets,!0)}(Xx||(Xx={}));const Qx=function(t,e,n,r){const i=e.getBBoxOfElement(n);r.stroked&&i.inflate(Kx(n)/2);const s=t.intersect(i);return Zx(s&&s.length?t.start.closest(s):t.end,t.start,r.offset)};var tw,ew=Object.freeze({__proto__:null,anchor:function(t,e,n,r){const{alignOffset:i,align:s}=r;return s&&function(t,e,n=0){const{start:r,end:i}=t;let s,o,a,l;switch(e){case"left":l="x",s=i,o=r,a=-1;break;case"right":l="x",s=r,o=i,a=1;break;case"top":l="y",s=i,o=r,a=-1;break;case"bottom":l="y",s=r,o=i,a=1;break;default:return}r[l]<i[l]?s[l]=o[l]:o[l]=s[l],Number.isFinite(n)&&(s[l]+=a*n,o[l]+=a*n)}(t,s,i),Zx(t.end,t.start,r.offset)},bbox:Qx,boundary:function(e,n,r,i){let s,o;const a=e.end,l=i.selector;if(s="string"==typeof l?n.findOne(l):Array.isArray(l)?mf(r,l):function(t){if(null==t)return null;let e=t;do{let t=e.tagName;if("string"!=typeof t)return null;if(t=t.toUpperCase(),"G"===t)e=e.firstElementChild;else{if("TITLE"!==t)break;e=e.nextElementSibling}}while(e);return e}(r),!fp(s)){if(s===r||!fp(r))return a;s=r}const c=n.getShapeOfElement(s),h=n.getMatrixOfElement(s),u=n.getRootTranslatedMatrix(),g=n.getRootRotatedMatrix(),d=u.multiply(g).multiply(h),f=d.inverse(),p=t.Util.transformLine(e,f),m=p.start.clone(),y=n.getDataOfElement(s);if(!1===i.insideout){null==y.shapeBBox&&(y.shapeBBox=c.bbox());const t=y.shapeBBox;if(null!=t&&t.containsPoint(m))return a}let v;if(!0===i.extrapolate&&p.setLength(1e6),Qy.isPath(c)){const t=i.precision||2;null==y.segmentSubdivisions&&(y.segmentSubdivisions=c.getSegmentSubdivisions({precision:t})),v={precision:t,segmentSubdivisions:y.segmentSubdivisions},o=p.intersect(c,v)}else o=p.intersect(c);o?Array.isArray(o)&&(o=m.closest(o)):!0===i.sticky&&(o=Ny.isRectangle(c)?c.getNearestPointToPoint(m):_y.isEllipse(c)?c.intersectsWithLineFromCenterToPoint(m):c.closestPoint(m,v));const b=o?t.Util.transformPoint(o,d):a;let x=i.offset||0;return!1!==i.stroked&&("object"==typeof x?(x=Object.assign({},x),null==x.x&&(x.x=0),x.x+=Kx(s)/2):x+=Kx(s)/2),Zx(b,e.start,x)},rect:function(t,e,n,r,i){const s=e.cell,o=s.isNode()?s.getAngle():0;if(0===o)return ef(Qx,this,t,e,n,r,i);const a=e.getUnrotatedBBoxOfElement(n);r.stroked&&a.inflate(Kx(n)/2);const l=a.getCenter(),c=t.clone().rotate(o,l),h=c.setLength(1e6).intersect(a);return Zx(h&&h.length?c.start.closest(h).rotate(-o,l):t.end,t.start,r.offset)}});!function(t){t.presets=ew,t.registry=tv.create({type:"connection point"}),t.registry.register(t.presets,!0)}(tw||(tw={}));function nw(t){return new Ny(t.x,t.y,0,0)}function rw(t={}){const e=Rf(t.padding||20);return{x:-e.left,y:-e.top,width:e.left+e.right,height:e.top+e.bottom}}function iw(t,e={}){return t.sourceBBox.clone().moveAndExpand(rw(e))}function sw(t,e={}){return t.targetBBox.clone().moveAndExpand(rw(e))}const ow=function(t,e,n){let r=iw(n,e),i=sw(n,e);const s=function(t,e={}){return t.sourceAnchor?t.sourceAnchor:iw(t,e).getCenter()}(n,e),o=function(t,e={}){return t.targetAnchor?t.targetAnchor:sw(t,e).getCenter()}(n,e);r=r.union(nw(s)),i=i.union(nw(o));const a=t.map((t=>ky.create(t)));a.unshift(s),a.push(o);let l=null;const c=[];for(let t=0,n=a.length-1;t<n;t+=1){let s=null;const o=a[t],h=a[t+1],u=null!=aw.getBearing(o,h);if(0===t)t+1===n?r.intersectsWithRect(i.clone().inflate(1))?s=aw.insideNode(o,h,r,i):u||(s=aw.nodeToNode(o,h,r,i)):r.containsPoint(h)?s=aw.insideNode(o,h,r,nw(h).moveAndExpand(rw(e))):u||(s=aw.nodeToVertex(o,h,r));else if(t+1===n){const t=u&&aw.getBearing(h,o)===l;i.containsPoint(o)||t?s=aw.insideNode(o,h,nw(o).moveAndExpand(rw(e)),i,l):u||(s=aw.vertexToNode(o,h,i,l))}else u||(s=aw.vertexToVertex(o,h,l));s?(c.push(...s.points),l=s.direction):l=aw.getBearing(o,h),t+1<n&&c.push(h)}return c};var aw;!function(e){const n={N:"S",S:"N",E:"W",W:"E"},r={N:-Math.PI/2*3,S:-Math.PI/2,E:0,W:Math.PI};function i(t,e,n){let r=new ky(t.x,e.y);return n.containsPoint(r)&&(r=new ky(e.x,t.y)),r}function s(t,e){return t["W"===e||"E"===e?"width":"height"]}function o(t,e){return t.x===e.x?t.y>e.y?"N":"S":t.y===e.y?t.x>e.x?"W":"E":null}function a(t,e,r){const i=new ky(t.x,e.y),s=new ky(e.x,t.y),a=o(t,i),l=o(t,s),c=r?n[r]:null,h=a===r||a!==c&&(l===c||l!==r)?i:s;return{points:[h],direction:o(h,e)}}function l(t,e,n){const r=i(t,e,n);return{points:[r],direction:o(r,e)}}e.getBBoxSize=s,e.getBearing=o,e.vertexToVertex=a,e.nodeToVertex=l,e.vertexToNode=function(t,e,n,r){const a=[new ky(t.x,e.y),new ky(e.x,t.y)],l=a.filter((t=>!n.containsPoint(t))),c=l.filter((e=>o(e,t)!==r));let h;if(c.length>0)return h=c.filter((e=>o(t,e)===r)).pop(),h=h||c[0],{points:[h],direction:o(h,e)};{h=sl(a,l)[0];const c=ky.create(e).move(h,-s(n,r)/2);return{points:[i(c,t,n),c],direction:o(c,e)}}},e.nodeToNode=function(t,e,n,r){let i=l(e,t,r);const c=i.points[0];if(n.containsPoint(c)){i=l(t,e,n);const h=i.points[0];if(r.containsPoint(h)){const u=ky.create(t).move(h,-s(n,o(t,h))/2),g=ky.create(e).move(c,-s(r,o(e,c))/2),d=new jy(u,g).getCenter(),f=l(t,d,n),p=a(d,e,f.direction);i.points=[f.points[0],p.points[0]],i.direction=p.direction}}return i},e.insideNode=function(e,n,s,a,l){const c=s.union(a).inflate(1),h=c.getCenter(),u=h.distance(n)>h.distance(e),g=u?n:e,d=u?e:n;let f,p,m,y;return l?(f=ky.fromPolar(c.width+c.height,r[l],g),f=c.getNearestPointToPoint(f).move(f,-1)):f=c.getNearestPointToPoint(g).move(g,1),p=i(f,d,c),f.round().equals(p.round())?(p=ky.fromPolar(c.width+c.height,t.Angle.toRad(f.theta(g))+Math.PI/2,d),p=c.getNearestPointToPoint(p).move(d,1).round(),m=i(f,p,c),y=u?[p,m,f]:[f,m,p]):y=u?[p,f]:[f,p],{points:y,direction:o(u?f:p,n)}}}(aw||(aw={}));const lw={step:10,maxLoopCount:2e3,precision:1,maxDirectionChange:90,perpendicular:!0,excludeTerminals:[],excludeNodes:[],excludeShapes:[],startDirections:["top","right","bottom","left"],endDirections:["top","right","bottom","left"],directionMap:{top:{x:0,y:-1},right:{x:1,y:0},bottom:{x:0,y:1},left:{x:-1,y:0}},cost(){return cw(this.step,this)},directions(){const t=cw(this.step,this),e=cw(this.cost,this);return[{cost:e,offsetX:t,offsetY:0},{cost:e,offsetX:-t,offsetY:0},{cost:e,offsetX:0,offsetY:t},{cost:e,offsetX:0,offsetY:-t}]},penalties(){const t=cw(this.step,this);return{0:0,45:t/2,90:t/2}},paddingBox(){const t=cw(this.step,this);return{x:-t,y:-t,width:2*t,height:2*t}},fallbackRouter:ow,draggingRouter:null,snapToGrid:!0};function cw(t,e){return"function"==typeof t?t.call(e):t}class hw{constructor(){this.items=[],this.hash={},this.values={}}add(t,e){this.hash[t]?this.items.splice(this.items.indexOf(t),1):this.hash[t]=1,this.values[t]=e;const n=vg(this.items,t,(t=>this.values[t]));this.items.splice(n,0,t)}pop(){const t=this.items.shift();return t&&(this.hash[t]=2),t}isOpen(t){return 1===this.hash[t]}isClose(t){return 2===this.hash[t]}isEmpty(){return 0===this.items.length}}class uw{constructor(t){this.options=t,this.mapGridSize=100,this.map={}}build(t,e){const n=this.options,r=n.excludeTerminals.reduce(((n,r)=>{const i=e[r];if(i){const e=t.getCell(i.cell);e&&n.push(e)}return n}),[]);let i=[];const s=t.getCell(e.getSourceCellId());s&&(i=ld(i,s.getAncestors().map((t=>t.id))));const o=t.getCell(e.getTargetCellId());o&&(i=ld(i,o.getAncestors().map((t=>t.id))));const a=this.mapGridSize;return t.getNodes().reduce(((t,e)=>{const s=r.some((t=>t.id===e.id)),o=!!e.shape&&n.excludeShapes.includes(e.shape),l=n.excludeNodes.some((t=>"string"==typeof t?e.id===t:t===e)),c=i.includes(e.id),h=o||s||l||c;if(e.isVisible()&&!h){const r=e.getBBox().moveAndExpand(n.paddingBox),i=r.getOrigin().snapToGrid(a),s=r.getCorner().snapToGrid(a);for(let e=i.x;e<=s.x;e+=a)for(let n=i.y;n<=s.y;n+=a){const i=new ky(e,n).toString();null==t[i]&&(t[i]=[]),t[i].push(r)}}return t}),this.map),this}isAccessible(t){const e=t.clone().snapToGrid(this.mapGridSize).toString(),n=this.map[e];return!n||n.every((e=>!e.containsPoint(t)))}}function gw(t,e){const n=t.sourceBBox.clone();return e&&e.paddingBox?n.moveAndExpand(e.paddingBox):n}function dw(t,e){const n=t.targetBBox.clone();return e&&e.paddingBox?n.moveAndExpand(e.paddingBox):n}function fw(t,e){if(t.sourceAnchor)return t.sourceAnchor;return gw(t,e).getCenter()}function pw(e,n,r,i,s){const o=360/r,a=e.theta(function(t,e,n,r){const i=r.step,s=e.x-t.x,o=e.y-t.y,a=s/n.x,l=o/n.y,c=a*i,h=l*i;return new ky(t.x+c,t.y+h)}(e,n,i,s)),l=t.Angle.normalize(a+o/2);return o*Math.floor(l/o)}function mw(t,e){const n=Math.abs(t-e);return n>180?360-n:n}function yw(t,e){if(!t)return e;const n=Math.abs(t),r=Math.round(n/e);if(!r)return n;return e+(n-r*e)/r}function vw(t,e){return t.round(e)}function bw(e,n,r){return vw(function(e,n){const r=n.source,i=t.GeometryUtil.snapToGrid(e.x-r.x,n.x)+r.x,s=t.GeometryUtil.snapToGrid(e.y-r.y,n.y)+r.y;return new ky(i,s)}(e.clone(),n),r)}function xw(t){return t.toString()}function ww(t){return new ky(0===t.x?0:Math.abs(t.x)/t.x,0===t.y?0:Math.abs(t.y)/t.y)}function Aw(t,e){let n=1/0;for(let r=0,i=e.length;r<i;r+=1){const i=t.manhattanDistance(e[r]);i<n&&(n=i)}return n}function Cw(t,e,n,r,i){const s=i.precision,o=i.directionMap,a=t.diff(e.getCenter()),l=Object.keys(o).reduce(((i,l)=>{if(n.includes(l)){const n=o[l],c=new ky(t.x+n.x*(Math.abs(a.x)+e.width),t.y+n.y*(Math.abs(a.y)+e.height)),h=new jy(t,c).intersect(e)||[];let u,g=null;for(let e=0;e<h.length;e+=1){const n=h[e],r=t.squaredDistance(n);(null==u||r>u)&&(u=r,g=n)}if(g){let t=bw(g,r,s);e.containsPoint(t)&&(t=bw(t.translate(n.x*r.x,n.y*r.y),r,s)),i.push(t)}}return i}),[]);return e.containsPoint(t)||l.push(bw(t,r,s)),l}function Pw(t,e,n,r,i){const s=[];let o,a=ww(i.diff(n)),l=xw(n),c=t[l];for(;c;){o=e[l];const n=ww(o.diff(c));n.equals(a)||(s.unshift(o),a=n),l=xw(c),c=t[l]}const h=e[l];return ww(h.diff(r)).equals(a)||s.unshift(h),s}function Mw(t,e,n,r,i){const s=i.precision;let o,a;o=Ny.isRectangle(e)?vw(fw(t,i).clone(),s):vw(e.clone(),s),a=Ny.isRectangle(n)?vw(function(t,e){return t.targetAnchor?t.targetAnchor:dw(t,e).getCenter()}(t,i).clone(),s):vw(n.clone(),s);const l=function(t,e,n){return{source:e.clone(),x:yw(n.x-e.x,t),y:yw(n.y-e.y,t)}}(i.step,o,a),c=o,h=a;let u,g;if(u=Ny.isRectangle(e)?Cw(c,e,i.startDirections,l,i):[c],g=Ny.isRectangle(n)?Cw(a,n,i.endDirections,l,i):[h],u=u.filter((t=>r.isAccessible(t))),g=g.filter((t=>r.isAccessible(t))),u.length>0&&g.length>0){const t=new hw,e={},n={},o={};for(let n=0,r=u.length;n<r;n+=1){const r=u[n],i=xw(r);t.add(i,Aw(r,g)),e[i]=r,o[i]=0}const a=i.previousDirectionAngle,d=void 0===a;let f,p;const m=function(t,e){const n=e.step;return e.directions.forEach((e=>{e.gridOffsetX=e.offsetX/n*t.x,e.gridOffsetY=e.offsetY/n*t.y})),e.directions}(l,i),y=m.length,v=g.reduce(((t,e)=>{const n=xw(e);return t.push(n),t}),[]),b=ky.equalPoints(u,g);let x=i.maxLoopCount;for(;!t.isEmpty()&&x>0;){const u=t.pop(),w=e[u],A=n[u],C=o[u],P=w.equals(c),M=null==A;let E;E=M?d?P?null:pw(c,w,y,l,i):a:pw(A,w,y,l,i);if(!(M&&b)&&v.indexOf(u)>=0)return i.previousDirectionAngle=E,Pw(n,e,w,c,h);for(let a=0;a<y;a+=1){f=m[a];const c=f.angle;if(p=mw(E,c),(!d||!P)&&p>i.maxDirectionChange)continue;const u=bw(w.clone().translate(f.gridOffsetX||0,f.gridOffsetY||0),l,s),b=xw(u);if(t.isClose(b)||!r.isAccessible(u))continue;if(v.indexOf(b)>=0){if(!u.equals(h)){if(mw(c,pw(u,h,y,l,i))>i.maxDirectionChange)continue}}const x=C+f.cost+(P?0:i.penalties[p]);(!t.isOpen(b)||x<o[b])&&(e[b]=u,n[b]=w,o[b]=x,t.add(b,x+Aw(u,g)))}x-=1}}return i.fallbackRoute?ef(i.fallbackRoute,this,c,h,i):null}const Ew=function(e,n,r){const i=function(e){const n=Object.keys(e).reduce(((t,n)=>(t[n]="fallbackRouter"===n||"draggingRouter"===n||"fallbackRoute"===n?e[n]:cw(e[n],e),t)),{});if(n.padding){const t=Rf(n.padding);n.paddingBox={x:-t.left,y:-t.top,width:t.left+t.right,height:t.top+t.bottom}}return n.directions.forEach((e=>{const n=new ky(0,0),r=new ky(e.offsetX,e.offsetY);e.angle=t.Angle.normalize(n.theta(r))})),n}(n),s=gw(r,i),o=dw(r,i),a=fw(r,i),l=new uw(i).build(r.graph.model,r.cell),c=e.map((t=>ky.create(t))),h=[];let u,g,d=a;for(let t=0,n=c.length;t<=n;t+=1){let n=null;if(u=g||s,g=c[t],null==g){g=o;const t=r.cell;if((null==t.getSourceCellId()||null==t.getTargetCellId())&&"function"==typeof i.draggingRouter){const t=u===s?a:u,e=g.getOrigin();n=ef(i.draggingRouter,r,t,e,i)}}if(null==n&&(n=Mw(r,u,g,l,i)),null===n)return console.warn("Unable to execute manhattan algorithm, use orth instead"),ef(i.fallbackRouter,this,e,i,r);const f=n[0];f&&f.equals(d)&&n.shift(),d=n[n.length-1]||d,h.push(...n)}return i.snapToGrid?function(t,e=10){if(t.length<=1)return t;for(let n=0,r=t.length;n<r-1;n+=1){const r=t[n],i=t[n+1];if(r.x===i.x){const t=e*Math.round(r.x/e);r.x!==t&&(r.x=t,i.x=t)}else if(r.y===i.y){const t=e*Math.round(r.y/e);r.y!==t&&(r.y=t,i.y=t)}}return t}(h,r.graph.grid.getGridSize()):h},Sw=function(t,e,n){return ef(Ew,this,t,Object.assign(Object.assign({},lw),e),n)},Ow={maxDirectionChange:45,directions(){const t=cw(this.step,this),e=cw(this.cost,this),n=Math.ceil(Math.sqrt(t*t<<1));return[{cost:e,offsetX:t,offsetY:0},{cost:n,offsetX:t,offsetY:t},{cost:e,offsetX:0,offsetY:t},{cost:n,offsetX:-t,offsetY:t},{cost:e,offsetX:-t,offsetY:0},{cost:n,offsetX:-t,offsetY:-t},{cost:e,offsetX:0,offsetY:-t},{cost:n,offsetX:t,offsetY:-t}]},fallbackRoute(e,n,r){const i=e.theta(n),s=[];let o={x:n.x,y:e.y},a={x:e.x,y:n.y};if(i%180>90){const t=o;o=a,a=t}const l=i%90<45?o:a,c=new jy(e,l),h=90*Math.ceil(i/90),u=ky.fromPolar(c.squaredLength(),t.Angle.toRad(h+135),l),g=new jy(n,u),d=c.intersectsWithLine(g),f=d||n,p=d?f:e,m=360/r.directions.length,y=p.theta(n),v=t.Angle.normalize(y+m/2),b=m*Math.floor(v/m);return r.previousDirectionAngle=b,f&&s.push(f.round()),s.push(n),s}};function Tw(t,e){if(null!=e&&!1!==e){const n="boolean"==typeof e?0:e;if(n>0){const e=ky.create(t[1]).move(t[2],n),r=ky.create(t[1]).move(t[0],n);return[e.toJSON(),...t,r.toJSON()]}{const e=t[1];return[Object.assign({},e),...t,Object.assign({},e)]}}return t}var kw,Nw=Object.freeze({__proto__:null,er:function(t,e,n){const r=e.offset||32,i=null==e.min?16:e.min;let s=0,o=e.direction;const a=n.sourceBBox,l=n.targetBBox,c=a.getCenter(),h=l.getCenter();if("number"==typeof r&&(s=r),null==o){let t=l.left-a.right,e=l.top-a.bottom;t>=0&&e>=0?o=t>=e?"L":"T":t<=0&&e>=0?(t=a.left-l.right,o=t>=0&&t>=e?"R":"T"):t>=0&&e<=0?(e=a.top-l.bottom,o=e>=0?t>=e?"L":"B":"L"):(t=a.left-l.right,e=a.top-l.bottom,o=t>=0&&e>=0?t>=e?"R":"B":t<=0&&e>=0?"B":t>=0&&e<=0||Math.abs(t)>Math.abs(e)?"R":"B")}let u,g,d;"H"===o?o=h.x-c.x>=0?"L":"R":"V"===o&&(o=h.y-c.y>=0?"T":"B"),"center"===r&&("L"===o?s=(l.left-a.right)/2:"R"===o?s=(a.left-l.right)/2:"T"===o?s=(l.top-a.bottom)/2:"B"===o&&(s=(a.top-l.bottom)/2));const f="L"===o||"R"===o;if(f){if(h.y===c.y)return[...t];d="L"===o?1:-1,u="x",g="width"}else{if(h.x===c.x)return[...t];d="T"===o?1:-1,u="y",g="height"}const p=c.clone(),m=h.clone();if(p[u]+=d*(a[g]/2+s),m[u]-=d*(l[g]/2+s),f){const t=p.x,e=m.x,n=a.width/2+i,r=l.width/2+i;h.x>c.x?e<=t&&(p.x=Math.max(e,c.x+n),m.x=Math.min(t,h.x-r)):e>=t&&(p.x=Math.min(e,c.x-n),m.x=Math.max(t,h.x+r))}else{const t=p.y,e=m.y,n=a.height/2+i,r=l.height/2+i;h.y>c.y?e<=t&&(p.y=Math.max(e,c.y+n),m.y=Math.min(t,h.y-r)):e>=t&&(p.y=Math.min(e,c.y-n),m.y=Math.max(t,h.y+r))}return[p.toJSON(),...t,m.toJSON()]},loop:function(e,n,r){const i=n.width||50,s=(n.height||80)/2,o=n.angle||"auto",a=r.sourceAnchor,l=r.targetAnchor,c=r.sourceBBox,h=r.targetBBox;if(a.equals(l)){const e=e=>{const n=t.Angle.toRad(e),r=Math.sin(n),o=Math.cos(n),l=new ky(a.x+o*i,a.y+r*i),c=new ky(l.x-o*s,l.y-r*s),h=c.clone().rotate(-90,l),u=c.clone().rotate(90,l);return[h.toJSON(),l.toJSON(),u.toJSON()]},r=t=>{const e=a.clone().move(t,-1),n=new jy(e,t);return!c.containsPoint(t)&&!c.intersectsWithLine(n)},l=[0,90,180,270,45,135,225,315];if("number"==typeof o)return Tw(e(o),n.merge);const h=c.getCenter();if(h.equals(a))return Tw(e(0),n.merge);const u=h.angleBetween(a,h.clone().translate(1,0));let g=e(u);if(r(g[1]))return Tw(g,n.merge);for(let t=1,i=l.length;t<i;t+=1)if(g=e(u+l[t]),r(g[1]))return Tw(g,n.merge);return Tw(g,n.merge)}{const t=new jy(a,l);let e=t.parallel(-i),o=e.getCenter(),u=e.start.clone().move(e.end,s),g=e.end.clone().move(e.start,s);const d=t.parallel(-1),f=new jy(d.start,o),p=new jy(d.end,o);if((c.containsPoint(o)||h.containsPoint(o)||c.intersectsWithLine(f)||c.intersectsWithLine(p)||h.intersectsWithLine(f)||h.intersectsWithLine(p))&&(e=t.parallel(i),o=e.getCenter(),u=e.start.clone().move(e.end,s),g=e.end.clone().move(e.start,s)),n.merge){const t=new jy(a,l),e=new jy(o,t.center).setLength(Number.MAX_SAFE_INTEGER),n=c.intersectsWithLine(e),i=h.intersectsWithLine(e),s=n?Array.isArray(n)?n:[n]:[];i&&(Array.isArray(i)?s.push(...i):s.push(i));const u=t.center.closest(s);u?(r.sourceAnchor=u.clone(),r.targetAnchor=u.clone()):(r.sourceAnchor=t.center.clone(),r.targetAnchor=t.center.clone())}return Tw([u.toJSON(),o.toJSON(),g.toJSON()],n.merge)}},manhattan:Sw,metro:function(t,e,n){return ef(Sw,this,t,Object.assign(Object.assign({},Ow),e),n)},normal:function(t){return[...t]},oneSide:function(t,e,n){const r=e.side||"bottom",i=Rf(e.padding||40),s=n.sourceBBox,o=n.targetBBox,a=s.getCenter(),l=o.getCenter();let c,h,u;switch(r){case"top":u=-1,c="y",h="height";break;case"left":u=-1,c="x",h="width";break;case"right":u=1,c="x",h="width";break;default:u=1,c="y",h="height"}return a[c]+=u*(s[h]/2+i[r]),l[c]+=u*(o[h]/2+i[r]),u*(a[c]-l[c])>0?l[c]=a[c]:a[c]=l[c],[a.toJSON(),...t,l.toJSON()]},orth:ow});!function(t){t.presets=Nw,t.registry=tv.create({type:"router"}),t.registry.register(t.presets,!0)}(kw||(kw={}));const jw=1,_w=1/3,Lw=2/3;function Bw(t,e,n=[]){const r=[t,...n,e],i=[];return r.forEach(((t,e)=>{const n=r[e+1];null!=n&&i.push(new jy(t,n))})),i}function Iw(t,e){return new jy(t,e).squaredLength()}function Dw(t,e,n,r){const i=new Qy;let s;return s=Qy.createSegment("M",t[0].start),i.appendSegment(s),t.forEach(((o,a)=>{if(Rw.includes(o)){let t,r,a,l;if("arc"===n){t=-90,r=o.start.diff(o.end);(r.x<0||0===r.x&&r.y<0)&&(t+=180);const e=o.getCenter(),n=new jy(e,o.end).rotate(t,e);let c;c=new jy(o.start,e),a=c.pointAt(2/3).rotate(t,o.start),l=n.pointAt(1/3).rotate(-t,n.end),s=Qy.createSegment("C",a,l,n.end),i.appendSegment(s),c=new jy(e,o.end),a=n.pointAt(1/3).rotate(t,n.end),l=c.pointAt(1/3).rotate(-t,o.end),s=Qy.createSegment("C",a,l,o.end),i.appendSegment(s)}else if("gap"===n)s=Qy.createSegment("M",o.end),i.appendSegment(s);else if("cubic"===n){t=o.start.theta(o.end);const n=.6*e;let c=1.35*e;r=o.start.diff(o.end);(r.x<0||0===r.x&&r.y<0)&&(c*=-1),a=new ky(o.start.x+n,o.start.y+c).rotate(t,o.start),l=new ky(o.end.x-n,o.end.y+c).rotate(t,o.end),s=Qy.createSegment("C",a,l,o.end),i.appendSegment(s)}}else{const e=t[a+1];0===r||!e||Rw.includes(e)?(s=Qy.createSegment("L",o.end),i.appendSegment(s)):function(t,e,n,r,i){const s=n.distance(r)/2,o=n.distance(i)/2,a=-Math.min(t,s),l=-Math.min(t,o),c=n.clone().move(r,a).round(),h=n.clone().move(i,l).round(),u=new ky(_w*c.x+Lw*n.x,Lw*n.y+_w*c.y),g=new ky(_w*h.x+Lw*n.x,Lw*n.y+_w*h.y);let d;d=Qy.createSegment("L",c),e.appendSegment(d),d=Qy.createSegment("C",u,g,h),e.appendSegment(d)}(r,i,o.end,o.start,e.end)}})),i}let Rw,Vw;var zw,$w=Object.freeze({__proto__:null,jumpover:function(t,e,n,r={}){Rw=[],Vw=[],function(t){let e=t.graph._jumpOverUpdateList;if(null==e&&(e=t.graph._jumpOverUpdateList=[],t.graph.on("cell:mouseup",(()=>{const e=t.graph._jumpOverUpdateList;setTimeout((()=>{for(let t=0;t<e.length;t+=1)e[t].update()}))})),t.graph.on("model:reseted",(()=>{e=t.graph._jumpOverUpdateList=[]}))),e.indexOf(t)<0){e.push(t);const n=()=>e.splice(e.indexOf(t),1);t.cell.once("change:connector",n),t.cell.once("removed",n)}}(this);const i=r.size||5,s=r.type||"arc",o=r.radius||0,a=r.ignoreConnectors||["smooth"],l=this.graph,c=l.model.getEdges();if(1===c.length)return Dw(Bw(t,e,n),i,s,o);const h=this.cell,u=c.indexOf(h),g=l.options.connecting.connector||{},d=c.filter(((t,e)=>{const n=t.getConnector()||g;return!a.includes(n.name)&&(!(e>u)||"jumpover"!==n.name)})),f=d.map((t=>l.findViewByCell(t))),p=Bw(t,e,n),m=f.map((t=>null==t?[]:t===this?p:Bw(t.sourcePoint,t.targetPoint,t.routePoints))),y=[];p.forEach((t=>{const e=d.reduce(((e,n,r)=>{if(n!==h){const n=function(t,e){const n=[];return e.forEach((e=>{const r=t.intersectsWithLine(e);r&&n.push(r)})),n}(t,m[r]);e.push(...n)}return e}),[]).sort(((e,n)=>Iw(t.start,e)-Iw(t.start,n)));e.length>0?y.push(...function(t,e,n){return e.reduce(((r,i,s)=>{if(Vw.includes(i))return r;const o=r.pop()||t,a=ky.create(i).move(o.start,-n);let l=ky.create(i).move(o.start,+n);const c=e[s+1];if(null!=c){const t=l.distance(c);t<=n&&(l=c.move(o.start,t),Vw.push(c))}else if(a.distance(o.end)<2*n+jw)return r.push(o),r;if(l.distance(o.start)<2*n+jw)return r.push(o),r;const h=new jy(a,l);return Rw.push(h),r.push(new jy(o.start,a),h,new jy(l,o.end)),r}),[])}(t,e,i)):y.push(t)}));const v=Dw(y,i,s,o);return Rw=[],Vw=[],r.raw?v:v.serialize()},loop:function(t,e,n,r={}){const i=3===n.length?0:1,s=ky.create(n[0+i]),o=ky.create(n[2+i]),a=ky.create(n[1+i]);if(!ky.equals(t,e)){const n=new ky((t.x+e.x)/2,(t.y+e.y)/2),r=n.angleBetween(ky.create(t).rotate(90,n),a);r>1&&(s.rotate(180-r,n),o.rotate(180-r,n),a.rotate(180-r,n))}const l=`\n M ${t.x} ${t.y}\n Q ${s.x} ${s.y} ${a.x} ${a.y}\n Q ${o.x} ${o.y} ${e.x} ${e.y}\n `;return r.raw?Qy.parse(l):l},normal:function(t,e,n,r={}){const i=[t,...n,e],s=new zy(i),o=new Qy(s);return r.raw?o:o.serialize()},rounded:function(t,e,n,r={}){const i=new Qy;i.appendSegment(Qy.createSegment("M",t));const s=1/3,o=2/3,a=r.radius||10;let l,c;for(let r=0,h=n.length;r<h;r+=1){const h=ky.create(n[r]),u=n[r-1]||t,g=n[r+1]||e;l=c||h.distance(u)/2,c=h.distance(g)/2;const d=-Math.min(a,l),f=-Math.min(a,c),p=h.clone().move(u,d).round(),m=h.clone().move(g,f).round(),y=new ky(s*p.x+o*h.x,o*h.y+s*p.y),v=new ky(s*m.x+o*h.x,o*h.y+s*m.y);i.appendSegment(Qy.createSegment("L",p)),i.appendSegment(Qy.createSegment("C",y,v,m))}return i.appendSegment(Qy.createSegment("L",e)),r.raw?i:i.serialize()},smooth:function(t,e,n,r={}){let i,s=r.direction;if(n&&0!==n.length){const r=[t,...n,e],s=$y.throughPoints(r);i=new Qy(s)}else if(i=new Qy,i.appendSegment(Qy.createSegment("M",t)),s||(s=Math.abs(t.x-e.x)>=Math.abs(t.y-e.y)?"H":"V"),"H"===s){const n=(t.x+e.x)/2;i.appendSegment(Qy.createSegment("C",n,t.y,n,e.y,e.x,e.y))}else{const n=(t.y+e.y)/2;i.appendSegment(Qy.createSegment("C",t.x,n,e.x,n,e.x,e.y))}return r.raw?i:i.serialize()}});!function(t){t.presets=$w,t.registry=tv.create({type:"connector"}),t.registry.register(t.presets,!0)}(zw||(zw={}));var Fw,Gw=Object.freeze({__proto__:null,get Attr(){return kb},get Background(){return hv},get ConnectionPoint(){return tw},get Connector(){return zw},get EdgeAnchor(){return Xx},get EdgeTool(){return Tx},get Filter(){return fv},get Grid(){return ov},get Highlighter(){return zb},get Marker(){return fb},get NodeAnchor(){return Ux},get NodeTool(){return Ox},get PortLabelLayout(){return tx},get PortLayout(){return Wb},get Registry(){return tv},get Router(){return kw}});class Uw extends wf{constructor(t={}){super(),this.pending=!1,this.changing=!1,this.data={},this.mutate(xo(t)),this.changed={}}mutate(t,e={}){const n=!0===e.unset,r=!0===e.silent,i=[],s=this.changing;this.changing=!0,s||(this.previous=xo(this.data),this.changed={});const o=this.data,a=this.previous,l=this.changed;if(Object.keys(t).forEach((e=>{const r=e,s=t[r];Yc(o[r],s)||i.push(r),Yc(a[r],s)?delete l[r]:l[r]=s,n?delete o[r]:o[r]=s})),!r&&i.length>0&&(this.pending=!0,this.pendingOptions=e,i.forEach((t=>{this.emit("change:*",{key:t,options:e,store:this,current:o[t],previous:a[t]})}))),s)return this;if(!r)for(;this.pending;)this.pending=!1,this.emit("changed",{current:o,previous:a,store:this,options:this.pendingOptions});return this.pending=!1,this.changing=!1,this.pendingOptions=null,this}get(t,e){if(null==t)return this.data;const n=this.data[t];return null==n?e:n}getPrevious(t){if(this.previous){const e=this.previous[t];return null==e?void 0:e}}set(t,e,n){return null!=t&&("object"==typeof t?this.mutate(t,e):this.mutate({[t]:e},n)),this}remove(t,e){const n=void 0,r={};let i;if("string"==typeof t)r[t]=n,i=e;else if(Array.isArray(t))t.forEach((t=>r[t]=n)),i=e;else{for(const t in this.data)r[t]=n;i=t}return this.mutate(r,Object.assign(Object.assign({},i),{unset:!0})),this}getByPath(t){return mf(this.data,t,"/")}setByPath(t,e,n={}){const r="/",i=Array.isArray(t)?[...t]:t.split(r),s=Array.isArray(t)?t.join(r):t,o=i[0],a=i.length;if(n.propertyPath=s,n.propertyValue=e,n.propertyPathArray=i,1===a)this.set(o,e,n);else{const s={};let l=s,c=o;for(let t=1;t<a;t+=1){const e=i[t],n=Number.isFinite(Number(e));l=l[c]=n?[]:{},c=e}yf(s,i,e,r);const h=xo(this.data);n.rewrite&&vf(h,t,r);const u=Sh(h,s);this.set(o,u[o],n)}return this}removeByPath(t,e){const n=Array.isArray(t)?t:t.split("/"),r=n[0];if(1===n.length)this.remove(r,e);else{const t=n.slice(1),i=xo(this.get(r));i&&vf(i,t),this.set(r,i,e)}return this}hasChanged(t){return null==t?Object.keys(this.changed).length>0:t in this.changed}getChanges(t){if(null==t)return this.hasChanged()?xo(this.changed):null;const e=this.changing?this.previous:this.data,n={};let r;for(const i in t){const s=t[i];Yc(e[i],s)||(n[i]=s,r=!0)}return r?xo(n):null}toJSON(){return xo(this.data)}clone(){return new(0,this.constructor)(this.data)}dispose(){this.off(),this.data={},this.previous={},this.changed={},this.pending=!1,this.changing=!1,this.pendingOptions=null,this.trigger("disposed",{store:this})}}n([wf.dispose()],Uw.prototype,"dispose",null);class qw{constructor(t){this.cell=t,this.ids={},this.cache={}}get(){return Object.keys(this.ids)}start(t,e,n={},r="/"){const i=this.cell.getPropByPath(t),s=Ga(n,qw.defaultOptions),o=this.getTiming(s.timing),a=this.getInterp(s.interp,i,e);let l=0;const c=Array.isArray(t)?t.join(r):t,h=Array.isArray(t)?t:t.split(r),u=()=>{const t=(new Date).getTime();0===l&&(l=t);let e=(t-l)/s.duration;e<1?this.ids[c]=requestAnimationFrame(u):e=1;const r=a(o(e));this.cell.setPropByPath(h,r),n.progress&&n.progress(Object.assign({progress:e,currentValue:r},this.getArgs(c))),1===e&&(this.cell.notify("transition:complete",this.getArgs(c)),n.complete&&n.complete(this.getArgs(c)),this.cell.notify("transition:finish",this.getArgs(c)),n.finish&&n.finish(this.getArgs(c)),this.clean(c))};return setTimeout((()=>{this.stop(t,void 0,r),this.cache[c]={startValue:i,targetValue:e,options:s},this.ids[c]=requestAnimationFrame(u),this.cell.notify("transition:start",this.getArgs(c)),n.start&&n.start(this.getArgs(c))}),n.delay),this.stop.bind(this,t,r,n)}stop(t,e={},n="/"){const r=Array.isArray(t)?t:t.split(n);return Object.keys(this.ids).filter((t=>Yc(r,t.split(n).slice(0,r.length)))).forEach((t=>{cancelAnimationFrame(this.ids[t]);const n=this.cache[t],r=this.getArgs(t),i=Object.assign(Object.assign({},n.options),e),s=i.jumpedToEnd;s&&null!=n.targetValue&&(this.cell.setPropByPath(t,n.targetValue),this.cell.notify("transition:end",Object.assign({},r)),this.cell.notify("transition:complete",Object.assign({},r)),i.complete&&i.complete(Object.assign({},r)));const o=Object.assign({jumpedToEnd:s},r);this.cell.notify("transition:stop",Object.assign({},o)),i.stop&&i.stop(Object.assign({},o)),this.cell.notify("transition:finish",Object.assign({},r)),i.finish&&i.finish(Object.assign({},r)),this.clean(t)})),this}clean(t){delete this.ids[t],delete this.cache[t]}getTiming(e){return"string"==typeof e?t.Timing[e]:e}getInterp(e,n,r){return e?e(n,r):"number"==typeof r?t.Interp.number(n,r):"string"==typeof r?"#"===r[0]?t.Interp.color(n,r):t.Interp.unit(n,r):t.Interp.object(n,r)}getArgs(t){const e=this.cache[t];return{path:t,startValue:e.startValue,targetValue:e.targetValue,cell:this.cell}}}!function(t){t.defaultOptions={delay:10,duration:100,timing:"linear"}}(qw||(qw={}));class Ww extends wf{static config(t){const{markup:n,propHooks:r,attrHooks:i}=t,s=e(t,["markup","propHooks","attrHooks"]);null!=n&&(this.markup=n),r&&(this.propHooks=this.propHooks.slice(),Array.isArray(r)?this.propHooks.push(...r):"function"==typeof r?this.propHooks.push(r):Object.values(r).forEach((t=>{"function"==typeof t&&this.propHooks.push(t)}))),i&&(this.attrHooks=Object.assign(Object.assign({},this.attrHooks),i)),this.defaults=Sh({},this.defaults,s)}static getMarkup(){return this.markup}static getDefaults(t){return t?this.defaults:xo(this.defaults)}static getAttrHooks(){return this.attrHooks}static applyPropHooks(t,e){return this.propHooks.reduce(((e,n)=>n?ef(n,t,e):e),e)}get[Symbol.toStringTag](){return Ww.toStringTag}constructor(t={}){super();const e=this.constructor.getDefaults(!0),n=Sh({},this.preprocess(e),this.preprocess(t));this.id=n.id||jf(),this.store=new Uw(n),this.animation=new qw(this),this.setup(),this.init(),this.postprocess(t)}init(){}get model(){return this._model}set model(t){this._model!==t&&(this._model=t)}preprocess(t,e){const n=t.id,r=this.constructor.applyPropHooks(this,t);return null==n&&!0!==e&&(r.id=jf()),r}postprocess(t){}setup(){this.store.on("change:*",(t=>{const{key:e,current:n,previous:r,options:i}=t;this.notify("change:*",{key:e,options:i,current:n,previous:r,cell:this}),this.notify(`change:${e}`,{options:i,current:n,previous:r,cell:this});const s=e;"source"!==s&&"target"!==s||this.notify("change:terminal",{type:s,current:n,previous:r,options:i,cell:this})})),this.store.on("changed",(({options:t})=>this.notify("changed",{options:t,cell:this})))}notify(t,e){this.trigger(t,e);const n=this.model;return n&&(n.notify(`cell:${t}`,e),this.isNode()?n.notify(`node:${t}`,Object.assign(Object.assign({},e),{node:this})):this.isEdge()&&n.notify(`edge:${t}`,Object.assign(Object.assign({},e),{edge:this}))),this}isNode(){return!1}isEdge(){return!1}isSameStore(t){return this.store===t.store}get view(){return this.store.get("view")}get shape(){return this.store.get("shape","")}getProp(t,e){return null==t?this.store.get():this.store.get(t,e)}setProp(t,e,n){if("string"==typeof t)this.store.set(t,e,n);else{const n=this.preprocess(t,!0);this.store.set(Sh({},this.getProp(),n),e),this.postprocess(t)}return this}removeProp(t,e){return"string"==typeof t||Array.isArray(t)?this.store.removeByPath(t,e):this.store.remove(e),this}hasChanged(t){return null==t?this.store.hasChanged():this.store.hasChanged(t)}getPropByPath(t){return this.store.getByPath(t)}setPropByPath(t,e,n={}){return this.model&&("children"===t?this._children=e?e.map((t=>this.model.getCell(t))).filter((t=>null!=t)):null:"parent"===t&&(this._parent=e?this.model.getCell(e):null)),this.store.setByPath(t,e,n),this}removePropByPath(t,e={}){const n=Array.isArray(t)?t:t.split("/");return"attrs"===n[0]&&(e.dirty=!0),this.store.removeByPath(n,e),this}prop(t,e,n){return null==t?this.getProp():"string"==typeof t||Array.isArray(t)?1===arguments.length?this.getPropByPath(t):null==e?this.removePropByPath(t,n||{}):this.setPropByPath(t,e,n||{}):this.setProp(t,e||{})}previous(t){return this.store.getPrevious(t)}get zIndex(){return this.getZIndex()}set zIndex(t){null==t?this.removeZIndex():this.setZIndex(t)}getZIndex(){return this.store.get("zIndex")}setZIndex(t,e={}){return this.store.set("zIndex",t,e),this}removeZIndex(t={}){return this.store.remove("zIndex",t),this}toFront(t={}){const e=this.model;if(e){let n,r=e.getMaxZIndex();t.deep?(n=this.getDescendants({deep:!0,breadthFirst:!0}),n.unshift(this)):n=[this],r=r-n.length+1;const i=e.total();let s=e.indexOf(this)!==i-n.length;s||(s=n.some(((t,e)=>t.getZIndex()!==r+e))),s&&this.batchUpdate("to-front",(()=>{r+=n.length,n.forEach(((e,n)=>{e.setZIndex(r+n,t)}))}))}return this}toBack(t={}){const e=this.model;if(e){let n,r=e.getMinZIndex();t.deep?(n=this.getDescendants({deep:!0,breadthFirst:!0}),n.unshift(this)):n=[this];let i=0!==e.indexOf(this);i||(i=n.some(((t,e)=>t.getZIndex()!==r+e))),i&&this.batchUpdate("to-back",(()=>{r-=n.length,n.forEach(((e,n)=>{e.setZIndex(r+n,t)}))}))}return this}get markup(){return this.getMarkup()}set markup(t){null==t?this.removeMarkup():this.setMarkup(t)}getMarkup(){let t=this.store.get("markup");if(null==t){t=this.constructor.getMarkup()}return t}setMarkup(t,e={}){return this.store.set("markup",t,e),this}removeMarkup(t={}){return this.store.remove("markup",t),this}get attrs(){return this.getAttrs()}set attrs(t){null==t?this.removeAttrs():this.setAttrs(t)}getAttrs(){const t=this.store.get("attrs");return t?Object.assign({},t):{}}setAttrs(t,e={}){if(null==t)this.removeAttrs(e);else{const n=t=>this.store.set("attrs",t,e);if(!0===e.overwrite)n(t);else{const r=this.getAttrs();!1===e.deep?n(Object.assign(Object.assign({},r),t)):n(Sh({},r,t))}}return this}replaceAttrs(t,e={}){return this.setAttrs(t,Object.assign(Object.assign({},e),{overwrite:!0}))}updateAttrs(t,e={}){return this.setAttrs(t,Object.assign(Object.assign({},e),{deep:!1}))}removeAttrs(t={}){return this.store.remove("attrs",t),this}getAttrDefinition(t){if(!t)return null;const e=this.constructor.getAttrHooks()||{};let n=e[t]||kb.registry.get(t);if(!n){const r=Ri(t);n=e[r]||kb.registry.get(r)}return n||null}getAttrByPath(t){return null==t||""===t?this.getAttrs():this.getPropByPath(this.prefixAttrPath(t))}setAttrByPath(t,e,n={}){return this.setPropByPath(this.prefixAttrPath(t),e,n),this}removeAttrByPath(t,e={}){return this.removePropByPath(this.prefixAttrPath(t),e),this}prefixAttrPath(t){return Array.isArray(t)?["attrs"].concat(t):`attrs/${t}`}attr(t,e,n){return null==t?this.getAttrByPath():"string"==typeof t||Array.isArray(t)?1===arguments.length?this.getAttrByPath(t):null==e?this.removeAttrByPath(t,n||{}):this.setAttrByPath(t,e,n||{}):this.setAttrs(t,e||{})}get visible(){return this.isVisible()}set visible(t){this.setVisible(t)}setVisible(t,e={}){return this.store.set("visible",t,e),this}isVisible(){return!1!==this.store.get("visible")}show(t={}){return this.isVisible()||this.setVisible(!0,t),this}hide(t={}){return this.isVisible()&&this.setVisible(!1,t),this}toggleVisible(t,e={}){const n="boolean"==typeof t?e:t;return("boolean"==typeof t?t:!this.isVisible())?this.show(n):this.hide(n),this}get data(){return this.getData()}set data(t){this.setData(t)}getData(){return this.store.get("data")}setData(t,e={}){if(null==t)this.removeData(e);else{const n=t=>this.store.set("data",t,e);if(!0===e.overwrite)n(t);else{const r=this.getData();!1===e.deep?n("object"==typeof t?Object.assign(Object.assign({},r),t):t):n(Sh({},r,t))}}return this}replaceData(t,e={}){return this.setData(t,Object.assign(Object.assign({},e),{overwrite:!0}))}updateData(t,e={}){return this.setData(t,Object.assign(Object.assign({},e),{deep:!1}))}removeData(t={}){return this.store.remove("data",t),this}get parent(){return this.getParent()}get children(){return this.getChildren()}getParentId(){return this.store.get("parent")}getParent(){const t=this.getParentId();if(t&&this.model){const e=this.model.getCell(t);return this._parent=e,e}return null}getChildren(){const t=this.store.get("children");if(t&&t.length&&this.model){const e=t.map((t=>{var e;return null===(e=this.model)||void 0===e?void 0:e.getCell(t)})).filter((t=>null!=t));return this._children=e,[...e]}return null}hasParent(){return null!=this.parent}isParentOf(t){return null!=t&&t.getParent()===this}isChildOf(t){return null!=t&&this.getParent()===t}eachChild(t,e){return this.children&&this.children.forEach(t,e),this}filterChild(t,e){return this.children?this.children.filter(t,e):[]}getChildCount(){return null==this.children?0:this.children.length}getChildIndex(t){return null==this.children?-1:this.children.indexOf(t)}getChildAt(t){return null!=this.children&&t>=0?this.children[t]:null}getAncestors(t={}){const e=[];let n=this.getParent();for(;n;)e.push(n),n=!1!==t.deep?n.getParent():null;return e}getDescendants(t={}){if(!1!==t.deep){if(t.breadthFirst){const t=[],e=this.getChildren()||[];for(;e.length>0;){const n=e.shift(),r=n.getChildren();t.push(n),r&&e.push(...r)}return t}{const e=this.getChildren()||[];return e.forEach((n=>{e.push(...n.getDescendants(t))})),e}}return this.getChildren()||[]}isDescendantOf(t,e={}){if(null==t)return!1;if(!1!==e.deep){let e=this.getParent();for(;e;){if(e===t)return!0;e=e.getParent()}return!1}return this.isChildOf(t)}isAncestorOf(t,e={}){return null!=t&&t.isDescendantOf(this,e)}contains(t){return this.isAncestorOf(t)}getCommonAncestor(...t){return Ww.getCommonAncestor(this,...t)}setParent(t,e={}){return this._parent=t,t?this.store.set("parent",t.id,e):this.store.remove("parent",e),this}setChildren(t,e={}){return this._children=t,null!=t?this.store.set("children",t.map((t=>t.id)),e):this.store.remove("children",e),this}unembed(t,e={}){const n=this.children;if(null!=n&&null!=t){const r=this.getChildIndex(t);-1!==r&&(n.splice(r,1),t.setParent(null,e),this.setChildren(n,e))}return this}embed(t,e={}){return t.addTo(this,e),this}addTo(t,e={}){return Ww.isCell(t)?t.addChild(this,e):t.addCell(this,e),this}insertTo(t,e,n={}){return t.insertChild(this,e,n),this}addChild(t,e={}){return this.insertChild(t,void 0,e)}insertChild(t,e,n={}){if(null!=t&&t!==this){const r=t.getParent(),i=this!==r;let s=e;if(null==s&&(s=this.getChildCount(),i||(s-=1)),r){const e=r.getChildren();if(e){const i=e.indexOf(t);i>=0&&(t.setParent(null,n),e.splice(i,1),r.setChildren(e,n))}}let o=this.children;if(null==o?(o=[],o.push(t)):o.splice(s,0,t),t.setParent(this,n),this.setChildren(o,n),i&&this.model){const t=this.model.getIncomingEdges(this),e=this.model.getOutgoingEdges(this);t&&t.forEach((t=>t.updateParent(n))),e&&e.forEach((t=>t.updateParent(n)))}this.model&&this.model.addCell(t,n)}return this}removeFromParent(t={}){const e=this.getParent();if(null!=e){const n=e.getChildIndex(this);e.removeChildAt(n,t)}return this}removeChild(t,e={}){const n=this.getChildIndex(t);return this.removeChildAt(n,e)}removeChildAt(t,e={}){const n=this.getChildAt(t);return null!=this.children&&null!=n&&(this.unembed(n,e),n.remove(e)),n}remove(t={}){return this.batchUpdate("remove",(()=>{const e=this.getParent();e&&e.removeChild(this,t),!1!==t.deep&&this.eachChild((e=>e.remove(t))),this.model&&this.model.removeCell(this,t)})),this}transition(t,e,n={},r="/"){return this.animation.start(t,e,n,r)}stopTransition(t,e,n="/"){return this.animation.stop(t,e,n),this}getTransitions(){return this.animation.get()}translate(t,e,n){return this}scale(t,e,n,r){return this}addTools(t,e,n){const r=Array.isArray(t)?t:[t],i="string"==typeof e?e:null,s="object"==typeof e?e:"object"==typeof n?n:{};if(s.reset)return this.setTools({name:i,items:r,local:s.local},s);let o=xo(this.getTools());return null==o||null==i||o.name===i?(null==o&&(o={}),o.items||(o.items=[]),o.name=i,o.items=[...o.items,...r],this.setTools(Object.assign({},o),s)):void 0}setTools(t,e={}){return null==t?this.removeTools():this.store.set("tools",Ww.normalizeTools(t),e),this}getTools(){return this.store.get("tools")}removeTools(t={}){return this.store.remove("tools",t),this}hasTools(t){const e=this.getTools();return null!=e&&(null==t||e.name===t)}hasTool(t){const e=this.getTools();return null!=e&&e.items.some((e=>"string"==typeof e?e===t:e.name===t))}removeTool(t,e={}){const n=xo(this.getTools());if(n){let r=!1;const i=n.items.slice(),s=t=>{i.splice(t,1),r=!0};if("number"==typeof t)s(t);else for(let e=i.length-1;e>=0;e-=1){const n=i[e];("string"==typeof n?n===t:n.name===t)&&s(e)}r&&(n.items=i,this.setTools(n,e))}return this}getBBox(t){return new Ny}getConnectionPoint(t,e){return new ky}toJSON(t={}){const e=Object.assign({},this.store.get()),n=Object.prototype.toString,r=this.isNode()?"node":this.isEdge()?"edge":"cell";if(!e.shape){const t=this.constructor;throw new Error(`Unable to serialize ${r} missing "shape" prop, check the ${r} "${t.name||n.call(t)}"`)}const i=this.constructor,s=!0===t.diff,o=e.attrs||{},a=i.getDefaults(!0),l=s?this.preprocess(a,!0):a,c=l.attrs||{},h={};Object.entries(e).forEach((([t,i])=>{if(null!=i&&!Array.isArray(i)&&"object"==typeof i&&!Tr(i))throw new Error(`Can only serialize ${r} with plain-object props, but got a "${n.call(i)}" type of key "${t}" on ${r} "${this.id}"`);if("attrs"!==t&&"shape"!==t&&s){Yc(i,l[t])&&delete e[t]}})),Object.keys(o).forEach((t=>{const e=o[t],n=c[t];Object.keys(e).forEach((r=>{const i=e[r],s=n?n[r]:null;null==i||"object"!=typeof i||Array.isArray(i)?null!=n&&Yc(s,i)||(null==h[t]&&(h[t]={}),h[t][r]=i):Object.keys(i).forEach((e=>{const o=i[e];if(null==n||null==s||!B(s)||!Yc(s[e],o)){null==h[t]&&(h[t]={}),null==h[t][r]&&(h[t][r]={});h[t][r][e]=o}}))}))}));const u=Object.assign(Object.assign({},e),{attrs:Xc(h)?void 0:h});null==u.attrs&&delete u.attrs;const g=u;return 0===g.angle&&delete g.angle,xo(g)}clone(t={}){if(!t.deep){const e=Object.assign({},this.store.get());t.keepId||delete e.id,delete e.parent,delete e.children;return new(0,this.constructor)(e)}return Ww.deepClone(this)[this.id]}findView(t){return t.findViewByCell(this)}startBatch(t,e={},n=this.model){return this.notify("batch:start",{name:t,data:e,cell:this}),n&&n.startBatch(t,Object.assign(Object.assign({},e),{cell:this})),this}stopBatch(t,e={},n=this.model){return n&&n.stopBatch(t,Object.assign(Object.assign({},e),{cell:this})),this.notify("batch:stop",{name:t,data:e,cell:this}),this}batchUpdate(t,e,n){const r=this.model;this.startBatch(t,n,r);const i=e();return this.stopBatch(t,n,r),i}dispose(){this.removeFromParent(),this.store.dispose()}}Ww.defaults={},Ww.attrHooks={},Ww.propHooks=[],n([wf.dispose()],Ww.prototype,"dispose",null),function(t){t.normalizeTools=function(t){return"string"==typeof t?{items:[t]}:Array.isArray(t)?{items:t}:t.items?t:{items:[t]}}}(Ww||(Ww={})),function(t){t.toStringTag=`X6.${t.name}`,t.isCell=function(e){if(null==e)return!1;if(e instanceof t)return!0;const n=e[Symbol.toStringTag],r=e;return(null==n||n===t.toStringTag)&&"function"==typeof r.isNode&&"function"==typeof r.isEdge&&"function"==typeof r.prop&&"function"==typeof r.attr}}(Ww||(Ww={})),function(t){t.getCommonAncestor=function(...t){const e=t.filter((t=>null!=t)).map((t=>t.getAncestors())).sort(((t,e)=>t.length-e.length));return e.shift().find((t=>e.every((e=>e.includes(t)))))||null},t.getCellsBBox=function(t,e={}){let n=null;for(let r=0,i=t.length;r<i;r+=1){const i=t[r];let s=i.getBBox(e);if(s){if(i.isNode()){const t=i.getAngle();null!=t&&0!==t&&(s=s.bbox(t))}n=null==n?s:n.union(s)}}return n},t.deepClone=function(e){const n=[e,...e.getDescendants({deep:!0})];return t.cloneCells(n)},t.cloneCells=function(t){const e=ud(t),n=e.reduce(((t,e)=>(t[e.id]=e.clone(),t)),{});return e.forEach((t=>{const e=n[t.id];if(e.isEdge()){const t=e.getSourceCellId(),r=e.getTargetCellId();t&&n[t]&&e.setSource(Object.assign(Object.assign({},e.getSource()),{cell:n[t].id})),r&&n[r]&&e.setTarget(Object.assign(Object.assign({},e.getTarget()),{cell:n[r].id}))}const r=t.getParent();r&&n[r.id]&&e.setParent(n[r.id]);const i=t.getChildren();if(i&&i.length){const t=i.reduce(((t,e)=>(n[e.id]&&t.push(n[e.id]),t)),[]);t.length>0&&e.setChildren(t)}})),n}}(Ww||(Ww={})),function(t){t.config({propHooks(n){var{tools:r}=n,i=e(n,["tools"]);return r&&(i.tools=t.normalizeTools(r)),i}})}(Ww||(Ww={})),function(t){let e,n;t.exist=function(t,r){return r?null!=e&&e.exist(t):null!=n&&n.exist(t)},t.setEdgeRegistry=function(t){e=t},t.setNodeRegistry=function(t){n=t}}(Fw||(Fw={}));class Hw{constructor(t){this.ports=[],this.groups={},this.init(xo(t))}getPorts(){return this.ports}getGroup(t){return null!=t?this.groups[t]:null}getPortsByGroup(t){return this.ports.filter((e=>e.group===t||null==e.group&&null==t))}getPortsLayoutByGroup(t,e){const n=this.getPortsByGroup(t),r=t?this.getGroup(t):null,i=r?r.position:null,s=i?i.name:null;let o;if(null!=s){const t=Wb.registry.get(s);if(null==t)return Wb.registry.onNotFound(s);o=t}else o=Wb.presets.left;const a=n.map((t=>t&&t.position&&t.position.args||{})),l=i&&i.args||{};return o(a,e,l).map(((t,r)=>{const i=n[r];return{portLayout:t,portId:i.id,portSize:i.size,portAttrs:i.attrs,labelSize:i.label.size,labelLayout:this.getPortLabelLayout(i,ky.create(t.position),e)}}))}init(t){const{groups:e,items:n}=t;null!=e&&Object.keys(e).forEach((t=>{this.groups[t]=this.parseGroup(e[t])})),Array.isArray(n)&&n.forEach((t=>{this.ports.push(this.parsePort(t))}))}parseGroup(t){return Object.assign(Object.assign({},t),{label:this.getLabel(t,!0),position:this.getPortPosition(t.position,!0)})}parsePort(t){const e=Object.assign({},t),n=this.getGroup(t.group)||{};return e.markup=e.markup||n.markup,e.attrs=Sh({},n.attrs,e.attrs),e.position=this.createPosition(n,e),e.label=Sh({},n.label,this.getLabel(e)),e.zIndex=this.getZIndex(n,e),e.size=Object.assign(Object.assign({},n.size),e.size),e}getZIndex(t,e){return"number"==typeof e.zIndex?e.zIndex:"number"==typeof t.zIndex||"auto"===t.zIndex?t.zIndex:"auto"}createPosition(t,e){return Sh({name:"left",args:{}},t.position,{args:e.args})}getPortPosition(t,e=!1){if(null==t){if(e)return{name:"left",args:{}}}else{if("string"==typeof t)return{name:t,args:{}};if(Array.isArray(t))return{name:"absolute",args:{x:t[0],y:t[1]}};if("object"==typeof t)return t}return{args:{}}}getPortLabelPosition(t,e=!1){if(null==t){if(e)return{name:"left",args:{}}}else{if("string"==typeof t)return{name:t,args:{}};if("object"==typeof t)return t}return{args:{}}}getLabel(t,e=!1){const n=t.label||{};return n.position=this.getPortLabelPosition(n.position,e),n}getPortLabelLayout(t,e,n){const r=t.label.position.name||"left",i=t.label.position.args||{},s=tx.registry.get(r)||tx.presets.left;return s?s(e,n,i):null}}let Jw=class n extends Ww{get[Symbol.toStringTag](){return n.toStringTag}constructor(t={}){super(t),this.initPorts()}preprocess(t,n){const{x:r,y:i,width:s,height:o}=t,a=e(t,["x","y","width","height"]);if(null!=r||null!=i){const t=a.position;a.position=Object.assign(Object.assign({},t),{x:null!=r?r:t?t.x:0,y:null!=i?i:t?t.y:0})}if(null!=s||null!=o){const t=a.size;a.size=Object.assign(Object.assign({},t),{width:null!=s?s:t?t.width:0,height:null!=o?o:t?t.height:0})}return super.preprocess(a,n)}isNode(){return!0}size(t,e,n){return void 0===t?this.getSize():"number"==typeof t?this.setSize(t,e,n):this.setSize(t,e)}getSize(){const t=this.store.get("size");return t?Object.assign({},t):{width:1,height:1}}setSize(t,e,n){return"object"==typeof t?this.resize(t.width,t.height,e):this.resize(t,e,n),this}resize(e,n,r={}){this.startBatch("resize",r);const i=r.direction;if(i){const s=this.getSize();switch(i){case"left":case"right":n=s.height;break;case"top":case"bottom":e=s.width}let o={right:0,"top-right":0,top:1,"top-left":1,left:2,"bottom-left":2,bottom:3,"bottom-right":3}[i];const a=t.Angle.normalize(this.getAngle()||0);r.absolute&&(o+=Math.floor((a+45)/90),o%=4);const l=this.getBBox();let c;c=0===o?l.getBottomLeft():1===o?l.getCorner():2===o?l.getTopRight():l.getOrigin();const h=c.clone().rotate(-a,l.getCenter()),u=Math.sqrt(e*e+n*n)/2;let g=o*Math.PI/2;g+=Math.atan(o%2==0?n/e:e/n),g-=t.Angle.toRad(a);const d=ky.fromPolar(u,g,h).clone().translate(e/-2,n/-2);this.store.set("size",{width:e,height:n},r),this.setPosition(d.x,d.y,r)}else this.store.set("size",{width:e,height:n},r);return this.stopBatch("resize",r),this}scale(t,e,n,r={}){const i=this.getBBox().scale(t,e,null==n?void 0:n);return this.startBatch("scale",r),this.setPosition(i.x,i.y,r),this.resize(i.width,i.height,r),this.stopBatch("scale"),this}position(t,e,n){return"number"==typeof t?this.setPosition(t,e,n):this.getPosition(t)}getPosition(t={}){if(t.relative){const t=this.getParent();if(null!=t&&t.isNode()){const e=this.getPosition(),n=t.getPosition();return{x:e.x-n.x,y:e.y-n.y}}}const e=this.store.get("position");return e?Object.assign({},e):{x:0,y:0}}setPosition(t,e,n={}){let r,i,s;if("object"==typeof t?(r=t.x,i=t.y,s=e||{}):(r=t,i=e,s=n||{}),s.relative){const t=this.getParent();if(null!=t&&t.isNode()){const e=t.getPosition();r+=e.x,i+=e.y}}if(s.deep){const t=this.getPosition();this.translate(r-t.x,i-t.y,s)}else this.store.set("position",{x:r,y:i},s);return this}translate(e=0,n=0,r={}){if(0===e&&0===n)return this;r.translateBy=r.translateBy||this.id;const i=this.getPosition();if(null!=r.restrict&&r.translateBy===this.id){const t=this.getBBox({deep:!0}),s=r.restrict,o=i.x-t.x,a=i.y-t.y,l=Math.max(s.x+o,Math.min(s.x+s.width+o-t.width,i.x+e)),c=Math.max(s.y+a,Math.min(s.y+s.height+a-t.height,i.y+n));e=l-i.x,n=c-i.y}const s={x:i.x+e,y:i.y+n};return r.tx=e,r.ty=n,r.transition?("object"!=typeof r.transition&&(r.transition={}),this.transition("position",s,Object.assign(Object.assign({},r.transition),{interp:t.Interp.object})),this.eachChild((t=>{var i;(null===(i=r.exclude)||void 0===i?void 0:i.includes(t))||t.translate(e,n,r)}))):(this.startBatch("translate",r),this.store.set("position",s,r),this.eachChild((t=>{var i;(null===(i=r.exclude)||void 0===i?void 0:i.includes(t))||t.translate(e,n,r)})),this.stopBatch("translate",r)),this}angle(t,e){return null==t?this.getAngle():this.rotate(t,e)}getAngle(){return this.store.get("angle",0)}rotate(t,e={}){const n=this.getAngle();if(e.center){const r=this.getSize(),i=this.getPosition(),s=this.getBBox().getCenter();s.rotate(n-t,e.center);const o=s.x-r.width/2-i.x,a=s.y-r.height/2-i.y;this.startBatch("rotate",{angle:t,options:e}),this.setPosition(i.x+o,i.y+a,e),this.rotate(t,Object.assign(Object.assign({},e),{center:null})),this.stopBatch("rotate")}else this.store.set("angle",e.absolute?t:(n+t)%360,e);return this}getBBox(t={}){if(t.deep){const t=this.getDescendants({deep:!0,breadthFirst:!0});return t.push(this),Ww.getCellsBBox(t)}return Ny.fromPositionAndSize(this.getPosition(),this.getSize())}getConnectionPoint(t,e){const n=this.getBBox(),r=n.getCenter(),i=t.getTerminal(e);if(null==i)return r;const s=i.port;if(!s||!this.hasPort(s))return r;const o=this.getPort(s);if(!o||!o.group)return r;const a=this.getPortsPosition(o.group)[s].position,l=ky.create(a).translate(n.getOrigin()),c=this.getAngle();return c&&l.rotate(-c,r),l}fit(t={}){const e=(this.getChildren()||[]).filter((t=>t.isNode()));if(0===e.length)return this;this.startBatch("fit-embeds",t),t.deep&&e.forEach((e=>e.fit(t)));let{x:n,y:r,width:i,height:s}=Ww.getCellsBBox(e);const o=Rf(t.padding);return n-=o.left,r-=o.top,i+=o.left+o.right,s+=o.bottom+o.top,this.store.set({position:{x:n,y:r},size:{width:i,height:s}},t),this.stopBatch("fit-embeds"),this}get portContainerMarkup(){return this.getPortContainerMarkup()}set portContainerMarkup(t){this.setPortContainerMarkup(t)}getDefaultPortContainerMarkup(){return this.store.get("defaultPortContainerMarkup")||t.Markup.getPortContainerMarkup()}getPortContainerMarkup(){return this.store.get("portContainerMarkup")||this.getDefaultPortContainerMarkup()}setPortContainerMarkup(e,n={}){return this.store.set("portContainerMarkup",t.Markup.clone(e),n),this}get portMarkup(){return this.getPortMarkup()}set portMarkup(t){this.setPortMarkup(t)}getDefaultPortMarkup(){return this.store.get("defaultPortMarkup")||t.Markup.getPortMarkup()}getPortMarkup(){return this.store.get("portMarkup")||this.getDefaultPortMarkup()}setPortMarkup(e,n={}){return this.store.set("portMarkup",t.Markup.clone(e),n),this}get portLabelMarkup(){return this.getPortLabelMarkup()}set portLabelMarkup(t){this.setPortLabelMarkup(t)}getDefaultPortLabelMarkup(){return this.store.get("defaultPortLabelMarkup")||t.Markup.getPortLabelMarkup()}getPortLabelMarkup(){return this.store.get("portLabelMarkup")||this.getDefaultPortLabelMarkup()}setPortLabelMarkup(e,n={}){return this.store.set("portLabelMarkup",t.Markup.clone(e),n),this}get ports(){const t=this.store.get("ports",{items:[]});return null==t.items&&(t.items=[]),t}getPorts(){return xo(this.ports.items)}getPortsByGroup(t){return this.getPorts().filter((e=>e.group===t))}getPort(t){return xo(this.ports.items.find((e=>e.id&&e.id===t)))}getPortAt(t){return this.ports.items[t]||null}hasPorts(){return this.ports.items.length>0}hasPort(t){return-1!==this.getPortIndex(t)}getPortIndex(t){const e="string"==typeof t?t:t.id;return null!=e?this.ports.items.findIndex((t=>t.id===e)):-1}getPortsPosition(t){const e=this.getSize();return this.port.getPortsLayoutByGroup(t,new Ny(0,0,e.width,e.height)).reduce(((t,e)=>{const n=e.portLayout;return t[e.portId]={position:Object.assign({},n.position),angle:n.angle||0},t}),{})}getPortProp(t,e){return this.getPropByPath(this.prefixPortPath(t,e))}setPortProp(t,e,n,r){if("string"==typeof e||Array.isArray(e)){const i=this.prefixPortPath(t,e),s=n;return this.setPropByPath(i,s,r)}const i=this.prefixPortPath(t),s=e;return this.setPropByPath(i,s,n)}removePortProp(t,e,n){return"string"==typeof e||Array.isArray(e)?this.removePropByPath(this.prefixPortPath(t,e),n):this.removePropByPath(this.prefixPortPath(t),e)}portProp(t,e,n,r){return null==e?this.getPortProp(t):"string"==typeof e||Array.isArray(e)?2===arguments.length?this.getPortProp(t,e):null==n?this.removePortProp(t,e,r):this.setPortProp(t,e,n,r):this.setPortProp(t,e,n)}prefixPortPath(t,e){const n=this.getPortIndex(t);if(-1===n)throw new Error(`Unable to find port with id: "${t}"`);return null==e||""===e?["ports","items",`${n}`]:Array.isArray(e)?["ports","items",`${n}`,...e]:`ports/items/${n}/${e}`}addPort(t,e){const n=[...this.ports.items];return n.push(t),this.setPropByPath("ports/items",n,e),this}addPorts(t,e){return this.setPropByPath("ports/items",[...this.ports.items,...t],e),this}insertPort(t,e,n){const r=[...this.ports.items];return r.splice(t,0,e),this.setPropByPath("ports/items",r,n),this}removePort(t,e={}){return this.removePortAt(this.getPortIndex(t),e)}removePortAt(t,e={}){if(t>=0){const n=[...this.ports.items];n.splice(t,1),e.rewrite=!0,this.setPropByPath("ports/items",n,e)}return this}removePorts(t,e){let n;if(Array.isArray(t)){if(n=e||{},t.length){n.rewrite=!0;const e=[...this.ports.items].filter((e=>!t.some((t=>{const n="string"==typeof t?t:t.id;return e.id===n}))));this.setPropByPath("ports/items",e,n)}}else n=t||{},n.rewrite=!0,this.setPropByPath("ports/items",[],n);return this}getParsedPorts(){return this.port.getPorts()}getParsedGroups(){return this.port.groups}getPortsLayoutByGroup(t,e){return this.port.getPortsLayoutByGroup(t,e)}initPorts(){this.updatePortData(),this.on("change:ports",(()=>{this.processRemovedPort(),this.updatePortData()}))}processRemovedPort(){const t=this.ports,e={};t.items.forEach((t=>{t.id&&(e[t.id]=!0)}));const n={};(this.store.getPrevious("ports")||{items:[]}).items.forEach((t=>{t.id&&!e[t.id]&&(n[t.id]=!0)}));const r=this.model;if(r&&!Xc(n)){r.getConnectedEdges(this,{incoming:!0}).forEach((t=>{const e=t.getTargetPortId();e&&n[e]&&t.remove()}));r.getConnectedEdges(this,{outgoing:!0}).forEach((t=>{const e=t.getSourcePortId();e&&n[e]&&t.remove()}))}}validatePorts(){const t={},e=[];return this.ports.items.forEach((n=>{"object"!=typeof n&&e.push(`Invalid port ${n}.`),null==n.id&&(n.id=this.generatePortId()),t[n.id]&&e.push("Duplicitied port id."),t[n.id]=!0})),e}generatePortId(){return jf()}updatePortData(){const t=this.validatePorts();if(t.length>0)throw this.store.set("ports",this.store.getPrevious("ports")),new Error(t.join(" "));const e=this.port?this.port.getPorts():null;this.port=new Hw(this.ports);const n=this.port.getPorts(),r=e?n.filter((t=>e.find((e=>e.id===t.id))?null:t)):[...n],i=e?e.filter((t=>n.find((e=>e.id===t.id))?null:t)):[];r.length>0&&this.notify("ports:added",{added:r,cell:this,node:this}),i.length>0&&this.notify("ports:removed",{removed:i,cell:this,node:this})}};Jw.defaults={angle:0,position:{x:0,y:0},size:{width:1,height:1}},function(t){t.toStringTag=`X6.${t.name}`,t.isNode=function(e){if(null==e)return!1;if(e instanceof t)return!0;const n=e[Symbol.toStringTag],r=e;return(null==n||n===t.toStringTag)&&"function"==typeof r.isNode&&"function"==typeof r.isEdge&&"function"==typeof r.prop&&"function"==typeof r.attr&&"function"==typeof r.size&&"function"==typeof r.position}}(Jw||(Jw={})),function(t){t.config({propHooks(t){var{ports:n}=t,r=e(t,["ports"]);return n&&(r.ports=Array.isArray(n)?{items:n}:n),r}})}(Jw||(Jw={})),function(t){t.registry=tv.create({type:"node",process(n,r){if(Fw.exist(n,!0))throw new Error(`Node with name '${n}' was registered by anthor Edge`);if("function"==typeof r)return r.config({shape:n}),r;let i=t;const{inherit:s}=r,o=e(r,["inherit"]);if(s)if("string"==typeof s){const t=this.get(s);null==t?this.onNotFound(s,"inherited"):i=t}else i=s;null==o.constructorName&&(o.constructorName=n);const a=i.define.call(i,o);return a.config({shape:n}),a}}),Fw.setNodeRegistry(t.registry)}(Jw||(Jw={})),function(t){let n=0;t.define=function(r){const{constructorName:i,overwrite:s}=r,o=e(r,["constructorName","overwrite"]),a=df((l=i||o.shape)?Mf(l):(n+=1,`CustomNode${n}`),this);var l;return a.config(o),o.shape&&t.registry.register(o.shape,a,s),a},t.create=function(e){const n=e.shape||"rect",r=t.registry.get(n);return r?new r(e):t.registry.onNotFound(n)}}(Jw||(Jw={}));let Xw=class n extends Ww{get[Symbol.toStringTag](){return n.toStringTag}constructor(t={}){super(t)}preprocess(t,n){const{source:r,sourceCell:i,sourcePort:s,sourcePoint:o,target:a,targetCell:l,targetPort:c,targetPoint:h}=t,u=e(t,["source","sourceCell","sourcePort","sourcePoint","target","targetCell","targetPort","targetPoint"]),g=t=>"string"==typeof t||"number"==typeof t;if(null!=r)if(Ww.isCell(r))u.source={cell:r.id};else if(g(r))u.source={cell:r};else if(ky.isPoint(r))u.source=r.toJSON();else if(Array.isArray(r))u.source={x:r[0],y:r[1]};else{const t=r.cell;Ww.isCell(t)?u.source=Object.assign(Object.assign({},r),{cell:t.id}):u.source=r}if(null!=i||null!=s){let t=u.source;if(null!=i){const e=g(i)?i:i.id;t?t.cell=e:t=u.source={cell:e}}null!=s&&t&&(t.port=s)}else null!=o&&(u.source=ky.create(o).toJSON());if(null!=a)if(Ww.isCell(a))u.target={cell:a.id};else if(g(a))u.target={cell:a};else if(ky.isPoint(a))u.target=a.toJSON();else if(Array.isArray(a))u.target={x:a[0],y:a[1]};else{const t=a.cell;Ww.isCell(t)?u.target=Object.assign(Object.assign({},a),{cell:t.id}):u.target=a}if(null!=l||null!=c){let t=u.target;if(null!=l){const e=g(l)?l:l.id;t?t.cell=e:t=u.target={cell:e}}null!=c&&t&&(t.port=c)}else null!=h&&(u.target=ky.create(h).toJSON());return super.preprocess(u,n)}setup(){super.setup(),this.on("change:labels",(t=>this.onLabelsChanged(t))),this.on("change:vertices",(t=>this.onVertexsChanged(t)))}isEdge(){return!0}disconnect(t={}){return this.store.set({source:{x:0,y:0},target:{x:0,y:0}},t),this}get source(){return this.getSource()}set source(t){this.setSource(t)}getSource(){return this.getTerminal("source")}getSourceCellId(){return this.source.cell}getSourcePortId(){return this.source.port}setSource(t,e,n={}){return this.setTerminal("source",t,e,n)}get target(){return this.getTarget()}set target(t){this.setTarget(t)}getTarget(){return this.getTerminal("target")}getTargetCellId(){return this.target.cell}getTargetPortId(){return this.target.port}setTarget(t,e,n={}){return this.setTerminal("target",t,e,n)}getTerminal(t){return Object.assign({},this.store.get(t))}setTerminal(t,e,n,r={}){if(Ww.isCell(e))return this.store.set(t,Sh({},n,{cell:e.id}),r),this;const i=e;return ky.isPoint(e)||null!=i.x&&null!=i.y?(this.store.set(t,Sh({},n,{x:i.x,y:i.y}),r),this):(this.store.set(t,xo(e),r),this)}getSourcePoint(){return this.getTerminalPoint("source")}getTargetPoint(){return this.getTerminalPoint("target")}getTerminalPoint(t){const e=this[t];if(ky.isPointLike(e))return ky.create(e);const n=this.getTerminalCell(t);return n?n.getConnectionPoint(this,t):new ky}getSourceCell(){return this.getTerminalCell("source")}getTargetCell(){return this.getTerminalCell("target")}getTerminalCell(t){if(this.model){const e="source"===t?this.getSourceCellId():this.getTargetCellId();if(e)return this.model.getCell(e)}return null}getSourceNode(){return this.getTerminalNode("source")}getTargetNode(){return this.getTerminalNode("target")}getTerminalNode(t){let e=this;const n={};for(;e&&e.isEdge();){if(n[e.id])return null;n[e.id]=!0,e=e.getTerminalCell(t)}return e&&e.isNode()?e:null}get router(){return this.getRouter()}set router(t){null==t?this.removeRouter():this.setRouter(t)}getRouter(){return this.store.get("router")}setRouter(t,e,n){return"object"==typeof t?this.store.set("router",t,e):this.store.set("router",{name:t,args:e},n),this}removeRouter(t={}){return this.store.remove("router",t),this}get connector(){return this.getConnector()}set connector(t){null==t?this.removeConnector():this.setConnector(t)}getConnector(){return this.store.get("connector")}setConnector(t,e,n){return"object"==typeof t?this.store.set("connector",t,e):this.store.set("connector",{name:t,args:e},n),this}removeConnector(t={}){return this.store.remove("connector",t)}getDefaultLabel(){const t=this.constructor;return xo(this.store.get("defaultLabel")||t.defaultLabel||{})}get labels(){return this.getLabels()}set labels(t){this.setLabels(t)}getLabels(){return[...this.store.get("labels",[])].map((t=>this.parseLabel(t)))}setLabels(t,e={}){return this.store.set("labels",Array.isArray(t)?t:[t],e),this}insertLabel(t,e,n={}){const r=this.getLabels(),i=r.length;let s=null!=e&&Number.isFinite(e)?e:i;return s<0&&(s=i+s+1),r.splice(s,0,this.parseLabel(t)),this.setLabels(r,n)}appendLabel(t,e={}){return this.insertLabel(t,-1,e)}getLabelAt(t){const e=this.getLabels();return null!=t&&Number.isFinite(t)?this.parseLabel(e[t]):null}setLabelAt(t,e,n={}){if(null!=t&&Number.isFinite(t)){const r=this.getLabels();r[t]=this.parseLabel(e),this.setLabels(r,n)}return this}removeLabelAt(t,e={}){const n=this.getLabels(),r=null!=t&&Number.isFinite(t)?t:-1,i=n.splice(r,1);return this.setLabels(n,e),i.length?i[0]:null}parseLabel(t){if("string"==typeof t){return this.constructor.parseStringLabel(t)}return t}onLabelsChanged({previous:t,current:e}){const n=t&&e?e.filter((e=>t.find((t=>e===t||Yc(e,t)))?null:e)):e?[...e]:[],r=t&&e?t.filter((t=>e.find((e=>t===e||Yc(t,e)))?null:t)):t?[...t]:[];n.length>0&&this.notify("labels:added",{added:n,cell:this,edge:this}),r.length>0&&this.notify("labels:removed",{removed:r,cell:this,edge:this})}get vertices(){return this.getVertices()}set vertices(t){this.setVertices(t)}getVertices(){return[...this.store.get("vertices",[])]}setVertices(t,e={}){const n=Array.isArray(t)?t:[t];return this.store.set("vertices",n.map((t=>ky.toJSON(t))),e),this}insertVertex(t,e,n={}){const r=this.getVertices(),i=r.length;let s=null!=e&&Number.isFinite(e)?e:i;return s<0&&(s=i+s+1),r.splice(s,0,ky.toJSON(t)),this.setVertices(r,n)}appendVertex(t,e={}){return this.insertVertex(t,-1,e)}getVertexAt(t){if(null!=t&&Number.isFinite(t)){return this.getVertices()[t]}return null}setVertexAt(t,e,n={}){if(null!=t&&Number.isFinite(t)){const r=this.getVertices();r[t]=e,this.setVertices(r,n)}return this}removeVertexAt(t,e={}){const n=this.getVertices(),r=null!=t&&Number.isFinite(t)?t:-1;return n.splice(r,1),this.setVertices(n,e)}onVertexsChanged({previous:t,current:e}){const n=t&&e?e.filter((e=>t.find((t=>ky.equals(e,t)))?null:e)):e?[...e]:[],r=t&&e?t.filter((t=>e.find((e=>ky.equals(t,e)))?null:t)):t?[...t]:[];n.length>0&&this.notify("vertexs:added",{added:n,cell:this,edge:this}),r.length>0&&this.notify("vertexs:removed",{removed:r,cell:this,edge:this})}getDefaultMarkup(){return this.store.get("defaultMarkup")||t.Markup.getEdgeMarkup()}getMarkup(){return super.getMarkup()||this.getDefaultMarkup()}translate(t,e,n={}){return n.translateBy=n.translateBy||this.id,n.tx=t,n.ty=e,this.applyToPoints((n=>({x:(n.x||0)+t,y:(n.y||0)+e})),n)}scale(t,e,n,r={}){return this.applyToPoints((r=>ky.create(r).scale(t,e,n).toJSON()),r)}applyToPoints(t,e={}){const n={},r=this.getSource(),i=this.getTarget();ky.isPointLike(r)&&(n.source=t(r)),ky.isPointLike(i)&&(n.target=t(i));const s=this.getVertices();return s.length>0&&(n.vertices=s.map(t)),this.store.set(n,e),this}getBBox(){return this.getPolyline().bbox()}getConnectionPoint(){return this.getPolyline().pointAt(.5)}getPolyline(){const t=[this.getSourcePoint(),...this.getVertices().map((t=>ky.create(t))),this.getTargetPoint()];return new zy(t)}updateParent(t){let e=null;const n=this.getSourceCell(),r=this.getTargetCell(),i=this.getParent();return n&&r&&(e=n===r||n.isDescendantOf(r)?r:r.isDescendantOf(n)?n:Ww.getCommonAncestor(n,r)),i&&e&&e.id!==i.id&&i.unembed(this,t),!e||i&&i.id===e.id||e.embed(this,t),e}hasLoop(t={}){const e=this.getSource(),n=this.getTarget(),r=e.cell,i=n.cell;if(!r||!i)return!1;let s=r===i;if(!s&&t.deep&&this._model){const e=this.getSourceCell(),n=this.getTargetCell();e&&n&&(s=e.isAncestorOf(n,t)||n.isAncestorOf(e,t))}return s}getFragmentAncestor(){const t=[this,this.getSourceNode(),this.getTargetNode()].filter((t=>null!=t));return this.getCommonAncestor(...t)}isFragmentDescendantOf(t){const e=this.getFragmentAncestor();return!!e&&(e.id===t.id||e.isDescendantOf(t))}};Xw.defaults={},function(t){t.equalTerminals=function(t,e){const n=t,r=e;return n.cell===r.cell&&(n.port===r.port||null==n.port&&null==r.port)}}(Xw||(Xw={})),function(t){t.defaultLabel={markup:[{tagName:"rect",selector:"body"},{tagName:"text",selector:"label"}],attrs:{text:{fill:"#000",fontSize:14,textAnchor:"middle",textVerticalAnchor:"middle",pointerEvents:"none"},rect:{ref:"label",fill:"#fff",rx:3,ry:3,refWidth:1,refHeight:1,refX:0,refY:0}},position:{distance:.5}},t.parseStringLabel=function(t){return{attrs:{label:{text:t}}}}}(Xw||(Xw={})),function(t){t.toStringTag=`X6.${t.name}`,t.isEdge=function(e){if(null==e)return!1;if(e instanceof t)return!0;const n=e[Symbol.toStringTag],r=e;return(null==n||n===t.toStringTag)&&"function"==typeof r.isNode&&"function"==typeof r.isEdge&&"function"==typeof r.prop&&"function"==typeof r.attr&&"function"==typeof r.disconnect&&"function"==typeof r.getSource&&"function"==typeof r.getTarget}}(Xw||(Xw={})),function(t){t.registry=tv.create({type:"edge",process(n,r){if(Fw.exist(n,!1))throw new Error(`Edge with name '${n}' was registered by anthor Node`);if("function"==typeof r)return r.config({shape:n}),r;let i=t;const{inherit:s="edge"}=r,o=e(r,["inherit"]);if("string"==typeof s){const t=this.get(s||"edge");null==t&&s?this.onNotFound(s,"inherited"):i=t}else i=s;null==o.constructorName&&(o.constructorName=n);const a=i.define.call(i,o);return a.config({shape:n}),a}}),Fw.setEdgeRegistry(t.registry)}(Xw||(Xw={})),function(t){let n=0;t.define=function(r){const{constructorName:i,overwrite:s}=r,o=e(r,["constructorName","overwrite"]),a=df((l=i||o.shape)?Mf(l):(n+=1,`CustomEdge${n}`),this);var l;return a.config(o),o.shape&&t.registry.register(o.shape,a,s),a},t.create=function(e){const n=e.shape||"edge",r=t.registry.get(n);return r?new r(e):t.registry.onNotFound(n)}}(Xw||(Xw={})),function(t){const n="basic.edge";t.config({shape:n,propHooks(n){const{label:r,vertices:i}=n,s=e(n,["label","vertices"]);if(r){null==s.labels&&(s.labels=[]);const e="string"==typeof r?t.parseStringLabel(r):r;s.labels.push(e)}return i&&Array.isArray(i)&&(s.vertices=i.map((t=>ky.create(t).toJSON()))),s}}),t.registry.register(n,t)}(Xw||(Xw={}));class Yw extends wf{constructor(t,e={}){super(),this.length=0,this.comparator=e.comparator||"zIndex",this.clean(),t&&this.reset(t,{silent:!0})}toJSON(){return this.cells.map((t=>t.toJSON()))}add(t,e,n){let r,i;"number"==typeof e?(r=e,i=Object.assign({merge:!1},n)):(r=this.length,i=Object.assign({merge:!1},e)),r>this.length&&(r=this.length),r<0&&(r+=this.length+1);const s=Array.isArray(t)?t:[t],o=this.comparator&&"number"!=typeof e&&!1!==i.sort,a=this.comparator||null;let l=!1;const c=[],h=[];return s.forEach((t=>{const e=this.get(t);e?i.merge&&!t.isSameStore(e)&&(e.setProp(t.getProp(),n),h.push(e),o&&!l&&(l=null==a||"function"==typeof a?e.hasChanged():"string"==typeof a?e.hasChanged(a):a.some((t=>e.hasChanged(t))))):(c.push(t),this.reference(t))})),c.length&&(o&&(l=!0),this.cells.splice(r,0,...c),this.length=this.cells.length),l&&this.sort({silent:!0}),i.silent||(c.forEach(((t,e)=>{const n={cell:t,index:r+e,options:i};this.trigger("added",n),i.dryrun||t.notify("added",Object.assign({},n))})),l&&this.trigger("sorted"),(c.length||h.length)&&this.trigger("updated",{added:c,merged:h,removed:[],options:i})),this}remove(t,e={}){const n=Array.isArray(t)?t:[t],r=this.removeCells(n,e);return!e.silent&&r.length>0&&this.trigger("updated",{options:e,removed:r,added:[],merged:[]}),Array.isArray(t)?r:r[0]}removeCells(t,e){const n=[];for(let r=0;r<t.length;r+=1){const i=this.get(t[r]);if(null==i)continue;const s=this.cells.indexOf(i);this.cells.splice(s,1),this.length-=1,delete this.map[i.id],n.push(i),this.unreference(i),e.dryrun||i.remove(),e.silent||(this.trigger("removed",{cell:i,index:s,options:e}),e.dryrun||i.notify("removed",{cell:i,index:s,options:e}))}return n}reset(t,e={}){const n=this.cells.slice();if(n.forEach((t=>this.unreference(t))),this.clean(),this.add(t,Object.assign({silent:!0},e)),!e.silent){const t=this.cells.slice();this.trigger("reseted",{options:e,previous:n,current:t});const r=[],i=[];t.forEach((t=>{n.some((e=>e.id===t.id))||r.push(t)})),n.forEach((e=>{t.some((t=>t.id===e.id))||i.push(e)})),this.trigger("updated",{options:e,added:r,removed:i,merged:[]})}return this}push(t,e){return this.add(t,this.length,e)}pop(t){const e=this.at(this.length-1);return this.remove(e,t)}unshift(t,e){return this.add(t,0,e)}shift(t){const e=this.at(0);return this.remove(e,t)}get(t){if(null==t)return null;const e="string"==typeof t||"number"==typeof t?t:t.id;return this.map[e]||null}has(t){return null!=this.get(t)}at(t){return t<0&&(t+=this.length),this.cells[t]||null}first(){return this.at(0)}last(){return this.at(-1)}indexOf(t){return this.cells.indexOf(t)}toArray(){return this.cells.slice()}sort(t={}){return null!=this.comparator&&(this.cells=hg(this.cells,this.comparator),t.silent||this.trigger("sorted")),this}clone(){return new(0,this.constructor)(this.cells.slice(),{comparator:this.comparator})}reference(t){this.map[t.id]=t,t.on("*",this.notifyCellEvent,this)}unreference(t){t.off("*",this.notifyCellEvent,this),delete this.map[t.id]}notifyCellEvent(t,e){const n=e.cell;this.trigger(`cell:${t}`,e),n&&(n.isNode()?this.trigger(`node:${t}`,Object.assign(Object.assign({},e),{node:n})):n.isEdge()&&this.trigger(`edge:${t}`,Object.assign(Object.assign({},e),{edge:n})))}clean(){this.length=0,this.cells=[],this.map={}}dispose(){this.reset([])}}n([Yw.dispose()],Yw.prototype,"dispose",null);class Zw extends wf{get[Symbol.toStringTag](){return Zw.toStringTag}constructor(t=[]){super(),this.batches={},this.addings=new WeakMap,this.nodes={},this.edges={},this.outgoings={},this.incomings={},this.collection=new Yw(t),this.setup()}notify(t,e){this.trigger(t,e);const n=this.graph;return n&&("sorted"===t||"reseted"===t||"updated"===t?n.trigger(`model:${t}`,e):n.trigger(t,e)),this}setup(){const t=this.collection;t.on("sorted",(()=>this.notify("sorted",null))),t.on("updated",(t=>this.notify("updated",t))),t.on("cell:change:zIndex",(()=>this.sortOnChangeZ())),t.on("added",(({cell:t})=>{this.onCellAdded(t)})),t.on("removed",(t=>{const e=t.cell;this.onCellRemoved(e,t.options),this.notify("cell:removed",t),e.isNode()?this.notify("node:removed",Object.assign(Object.assign({},t),{node:e})):e.isEdge()&&this.notify("edge:removed",Object.assign(Object.assign({},t),{edge:e}))})),t.on("reseted",(t=>{this.onReset(t.current),this.notify("reseted",t)})),t.on("edge:change:source",(({edge:t})=>this.onEdgeTerminalChanged(t,"source"))),t.on("edge:change:target",(({edge:t})=>{this.onEdgeTerminalChanged(t,"target")}))}sortOnChangeZ(){this.collection.sort()}onCellAdded(t){const e=t.id;t.isEdge()?(t.updateParent(),this.edges[e]=!0,this.onEdgeTerminalChanged(t,"source"),this.onEdgeTerminalChanged(t,"target")):this.nodes[e]=!0}onCellRemoved(t,e){const n=t.id;if(t.isEdge()){delete this.edges[n];const e=t.getSource(),r=t.getTarget();if(e&&e.cell){const t=this.outgoings[e.cell],r=t?t.indexOf(n):-1;r>=0&&(t.splice(r,1),0===t.length&&delete this.outgoings[e.cell])}if(r&&r.cell){const t=this.incomings[r.cell],e=t?t.indexOf(n):-1;e>=0&&(t.splice(e,1),0===t.length&&delete this.incomings[r.cell])}}else delete this.nodes[n];e.clear||(e.disconnectEdges?this.disconnectConnectedEdges(t,e):this.removeConnectedEdges(t,e)),t.model===this&&(t.model=null)}onReset(t){this.nodes={},this.edges={},this.outgoings={},this.incomings={},t.forEach((t=>this.onCellAdded(t)))}onEdgeTerminalChanged(t,e){const n="source"===e?this.outgoings:this.incomings,r=t.previous(e);if(r&&r.cell){const e=Ww.isCell(r.cell)?r.cell.id:r.cell,i=n[e],s=i?i.indexOf(t.id):-1;s>=0&&(i.splice(s,1),0===i.length&&delete n[e])}const i=t.getTerminal(e);if(i&&i.cell){const e=Ww.isCell(i.cell)?i.cell.id:i.cell,r=n[e]||[];-1===r.indexOf(t.id)&&r.push(t.id),n[e]=r}}prepareCell(t,e){return t.model||e&&e.dryrun||(t.model=this),null==t.zIndex&&t.setZIndex(this.getMaxZIndex()+1,{silent:!0}),t}resetCells(t,e={}){return t.map((t=>this.prepareCell(t,Object.assign(Object.assign({},e),{dryrun:!0})))),this.collection.reset(t,e),t.map((t=>this.prepareCell(t,{options:e}))),this}clear(t={}){const e=this.getCells();if(0===e.length)return this;const n=Object.assign(Object.assign({},t),{clear:!0});return this.batchUpdate("clear",(()=>{const t=e.sort(((t,e)=>(t.isEdge()?1:2)-(e.isEdge()?1:2)));for(;t.length>0;){const e=t.shift();e&&e.remove(n)}}),n),this}addNode(t,e={}){const n=Jw.isNode(t)?t:this.createNode(t);return this.addCell(n,e),n}updateNode(t,e={}){const n=this.createNode(t),r=n.getProp();return n.dispose(),this.updateCell(r,e)}createNode(t){return Jw.create(t)}addEdge(t,e={}){const n=Xw.isEdge(t)?t:this.createEdge(t);return this.addCell(n,e),n}createEdge(t){return Xw.create(t)}updateEdge(t,e={}){const n=this.createEdge(t),r=n.getProp();return n.dispose(),this.updateCell(r,e)}addCell(t,e={}){return Array.isArray(t)?this.addCells(t,e):(this.collection.has(t)||this.addings.has(t)||(this.addings.set(t,!0),this.collection.add(this.prepareCell(t,e),e),t.eachChild((t=>this.addCell(t,e))),this.addings.delete(t)),this)}addCells(t,e={}){const n=t.length;if(0===n)return this;const r=Object.assign(Object.assign({},e),{position:n-1,maxPosition:n-1});return this.startBatch("add",Object.assign(Object.assign({},r),{cells:t})),t.forEach((t=>{this.addCell(t,r),r.position-=1})),this.stopBatch("add",Object.assign(Object.assign({},r),{cells:t})),this}updateCell(t,e={}){const n=t.id&&this.getCell(t.id);return!!n&&this.batchUpdate("update",(()=>(Object.entries(t).forEach((([t,r])=>n.setProp(t,r,e))),!0)),t)}removeCell(t,e={}){const n="string"==typeof t?this.getCell(t):t;return n&&this.has(n)?this.collection.remove(n,e):null}updateCellId(t,e){if(t.id===e)return;this.startBatch("update",{id:e}),t.prop("id",e);const n=t.clone({keepId:!0});this.addCell(n);return this.getConnectedEdges(t).forEach((n=>{const r=n.getSourceCell(),i=n.getTargetCell();r===t&&n.setSource(Object.assign(Object.assign({},n.getSource()),{cell:e})),i===t&&n.setTarget(Object.assign(Object.assign({},n.getTarget()),{cell:e}))})),this.removeCell(t),this.stopBatch("update",{id:e}),n}removeCells(t,e={}){return t.length?this.batchUpdate("remove",(()=>t.map((t=>this.removeCell(t,e))))):[]}removeConnectedEdges(t,e={}){const n=this.getConnectedEdges(t);return n.forEach((t=>{t.remove(e)})),n}disconnectConnectedEdges(t,e={}){const n="string"==typeof t?t:t.id;this.getConnectedEdges(t).forEach((t=>{const r=t.getSourceCellId(),i=t.getTargetCellId();r===n&&t.setSource({x:0,y:0},e),i===n&&t.setTarget({x:0,y:0},e)}))}has(t){return this.collection.has(t)}total(){return this.collection.length}indexOf(t){return this.collection.indexOf(t)}getCell(t){return this.collection.get(t)}getCells(){return this.collection.toArray()}getFirstCell(){return this.collection.first()}getLastCell(){return this.collection.last()}getMinZIndex(){const t=this.collection.first();return t&&t.getZIndex()||0}getMaxZIndex(){const t=this.collection.last();return t&&t.getZIndex()||0}getCellsFromCache(t){return t?Object.keys(t).map((t=>this.getCell(t))).filter((t=>null!=t)):[]}getNodes(){return this.getCellsFromCache(this.nodes)}getEdges(){return this.getCellsFromCache(this.edges)}getOutgoingEdges(t){const e="string"==typeof t?t:t.id,n=this.outgoings[e];return n?n.map((t=>this.getCell(t))).filter((t=>t&&t.isEdge())):null}getIncomingEdges(t){const e="string"==typeof t?t:t.id,n=this.incomings[e];return n?n.map((t=>this.getCell(t))).filter((t=>t&&t.isEdge())):null}getConnectedEdges(t,e={}){const n=[],r="string"==typeof t?this.getCell(t):t;if(null==r)return n;const i={},s=e.indirect;let o=e.incoming,a=e.outgoing;null==o&&null==a&&(o=a=!0);const l=(t,e)=>{const r=e?this.getOutgoingEdges(t):this.getIncomingEdges(t);if(null!=r&&r.forEach((t=>{i[t.id]||(n.push(t),i[t.id]=!0,s&&(o&&l(t,!1),a&&l(t,!0)))})),s&&t.isEdge()){const r=e?t.getTargetCell():t.getSourceCell();r&&r.isEdge()&&(i[r.id]||(n.push(r),l(r,e)))}};if(a&&l(r,!0),o&&l(r,!1),e.deep){const t=r.getDescendants({deep:!0}),s={};t.forEach((t=>{t.isNode()&&(s[t.id]=!0)}));const l=(t,r)=>{const o=r?this.getOutgoingEdges(t.id):this.getIncomingEdges(t.id);null!=o&&o.forEach((t=>{if(!i[t.id]){const r=t.getSourceCell(),o=t.getTargetCell();if(!e.enclosed&&r&&s[r.id]&&o&&s[o.id])return;n.push(t),i[t.id]=!0}}))};t.forEach((t=>{t.isEdge()||(a&&l(t,!0),o&&l(t,!1))}))}return n}isBoundary(t,e){const n="string"==typeof t?this.getCell(t):t,r=e?this.getIncomingEdges(n):this.getOutgoingEdges(n);return null==r||0===r.length}getBoundaryNodes(t){const e=[];return Object.keys(this.nodes).forEach((n=>{if(this.isBoundary(n,t)){const t=this.getCell(n);t&&e.push(t)}})),e}getRoots(){return this.getBoundaryNodes(!0)}getLeafs(){return this.getBoundaryNodes(!1)}isRoot(t){return this.isBoundary(t,!0)}isLeaf(t){return this.isBoundary(t,!1)}getNeighbors(t,e={}){let n=e.incoming,r=e.outgoing;null==n&&null==r&&(n=r=!0);const i=this.getConnectedEdges(t,e).reduce(((i,s)=>{const o=s.hasLoop(e),a=s.getSourceCell(),l=s.getTargetCell();return n&&a&&a.isNode()&&!i[a.id]&&(!o&&(a===t||e.deep&&a.isDescendantOf(t))||(i[a.id]=a)),r&&l&&l.isNode()&&!i[l.id]&&(!o&&(l===t||e.deep&&l.isDescendantOf(t))||(i[l.id]=l)),i}),{});if(t.isEdge()){if(n){const e=t.getSourceCell();e&&e.isNode()&&!i[e.id]&&(i[e.id]=e)}if(r){const e=t.getTargetCell();e&&e.isNode()&&!i[e.id]&&(i[e.id]=e)}}return Object.keys(i).map((t=>i[t]))}isNeighbor(t,e,n={}){let r=n.incoming,i=n.outgoing;return null==r&&null==i&&(r=i=!0),this.getConnectedEdges(t,n).some((t=>{const n=t.getSourceCell(),s=t.getTargetCell();return!(!r||!n||n.id!==e.id)||!(!i||!s||s.id!==e.id)}))}getSuccessors(t,e={}){const n=[];return this.search(t,((r,i)=>{r!==t&&this.matchDistance(i,e.distance)&&n.push(r)}),Object.assign(Object.assign({},e),{outgoing:!0})),n}isSuccessor(t,e,n={}){let r=!1;return this.search(t,((i,s)=>{if(i===e&&i!==t&&this.matchDistance(s,n.distance))return r=!0,!1}),Object.assign(Object.assign({},n),{outgoing:!0})),r}getPredecessors(t,e={}){const n=[];return this.search(t,((r,i)=>{r!==t&&this.matchDistance(i,e.distance)&&n.push(r)}),Object.assign(Object.assign({},e),{incoming:!0})),n}isPredecessor(t,e,n={}){let r=!1;return this.search(t,((i,s)=>{if(i===e&&i!==t&&this.matchDistance(s,n.distance))return r=!0,!1}),Object.assign(Object.assign({},n),{incoming:!0})),r}matchDistance(t,e){return null==e||("function"==typeof e?e(t):!(!Array.isArray(e)||!e.includes(t))||t===e)}getCommonAncestor(...t){const e=[];return t.forEach((t=>{t&&(Array.isArray(t)?e.push(...t):e.push(t))})),Ww.getCommonAncestor(...e)}getSubGraph(t,e={}){const n=[],r={},i=[],s=[],o=t=>{r[t.id]||(n.push(t),r[t.id]=t,t.isEdge()&&s.push(t),t.isNode()&&i.push(t))};return t.forEach((t=>{if(o(t),e.deep){t.getDescendants({deep:!0}).forEach((t=>o(t)))}})),s.forEach((t=>{const e=t.getSourceCell(),s=t.getTargetCell();e&&!r[e.id]&&(n.push(e),r[e.id]=e,e.isNode()&&i.push(e)),s&&!r[s.id]&&(n.push(s),r[s.id]=s,s.isNode()&&i.push(s))})),i.forEach((t=>{this.getConnectedEdges(t,e).forEach((t=>{const e=t.getSourceCell(),i=t.getTargetCell();!r[t.id]&&e&&r[e.id]&&i&&r[i.id]&&(n.push(t),r[t.id]=t)}))})),n}cloneSubGraph(t,e={}){const n=this.getSubGraph(t,e);return this.cloneCells(n)}cloneCells(t){return Ww.cloneCells(t)}getNodesFromPoint(t,e){const n="number"==typeof t?{x:t,y:e||0}:t;return this.getNodes().filter((t=>t.getBBox().containsPoint(n)))}getNodesInArea(t,e,n,r,i){const s="number"==typeof t?new Ny(t,e,n,r):Ny.create(t),o="number"==typeof t?i:e,a=o&&o.strict;return this.getNodes().filter((t=>{const e=t.getBBox();return a?s.containsRect(e):s.isIntersectWithRect(e)}))}getEdgesInArea(t,e,n,r,i){const s="number"==typeof t?new Ny(t,e,n,r):Ny.create(t),o="number"==typeof t?i:e,a=o&&o.strict;return this.getEdges().filter((t=>{const e=t.getBBox();return 0===e.width?e.inflate(1,0):0===e.height&&e.inflate(0,1),a?s.containsRect(e):s.isIntersectWithRect(e)}))}getNodesUnderNode(t,e={}){const n=t.getBBox();return(null==e.by||"bbox"===e.by?this.getNodesInArea(n):this.getNodesFromPoint(n[e.by])).filter((e=>t.id!==e.id&&!e.isDescendantOf(t)))}getAllCellsBBox(){return this.getCellsBBox(this.getCells())}getCellsBBox(t,e={}){return Ww.getCellsBBox(t,e)}search(t,e,n={}){n.breadthFirst?this.breadthFirstSearch(t,e,n):this.depthFirstSearch(t,e,n)}breadthFirstSearch(t,e,n={}){const r=[],i={},s={};for(r.push(t),s[t.id]=0;r.length>0;){const t=r.shift();if(null==t||i[t.id])continue;if(i[t.id]=!0,!1===ef(e,this,t,s[t.id]))continue;this.getNeighbors(t,n).forEach((e=>{s[e.id]=s[t.id]+1,r.push(e)}))}}depthFirstSearch(t,e,n={}){const r=[],i={},s={};for(r.push(t),s[t.id]=0;r.length>0;){const t=r.pop();if(null==t||i[t.id])continue;if(i[t.id]=!0,!1===ef(e,this,t,s[t.id]))continue;const o=this.getNeighbors(t,n),a=r.length;o.forEach((e=>{s[e.id]=s[t.id]+1,r.splice(a,0,e)}))}}getShortestPath(e,n,r={}){const i={};this.getEdges().forEach((t=>{const e=t.getSourceCellId(),n=t.getTargetCellId();e&&n&&(i[e]||(i[e]=[]),i[n]||(i[n]=[]),i[e].push(n),r.directed||i[n].push(e))}));const s="string"==typeof e?e:e.id,o=t.Dijkstra.run(i,s,r.weight),a=[];let l="string"==typeof n?n:n.id;for(o[l]&&a.push(l);l=o[l];)a.unshift(l);return a}translate(t,e,n){return this.getCells().filter((t=>!t.hasParent())).forEach((r=>r.translate(t,e,n))),this}resize(t,e,n){return this.resizeCells(t,e,this.getCells(),n)}resizeCells(t,e,n,r={}){const i=this.getCellsBBox(n);if(i){const s=Math.max(t/i.width,0),o=Math.max(e/i.height,0),a=i.getOrigin();n.forEach((t=>t.scale(s,o,a,r)))}return this}toJSON(t={}){return Zw.toJSON(this.getCells(),t)}parseJSON(t){return Zw.fromJSON(t)}fromJSON(t,e={}){const n=this.parseJSON(t);return this.resetCells(n,e),this}startBatch(t,e={}){return this.batches[t]=(this.batches[t]||0)+1,this.notify("batch:start",{name:t,data:e}),this}stopBatch(t,e={}){return this.batches[t]=(this.batches[t]||0)-1,this.notify("batch:stop",{name:t,data:e}),this}batchUpdate(t,e,n={}){this.startBatch(t,n);const r=e();return this.stopBatch(t,n),r}hasActiveBatch(t=Object.keys(this.batches)){return(Array.isArray(t)?t:[t]).some((t=>this.batches[t]>0))}dispose(){this.collection.dispose()}}n([Zw.dispose()],Zw.prototype,"dispose",null),function(t){t.toStringTag=`X6.${t.name}`,t.isModel=function(e){if(null==e)return!1;if(e instanceof t)return!0;const n=e[Symbol.toStringTag],r=e;return(null==n||n===t.toStringTag)&&"function"==typeof r.addNode&&"function"==typeof r.addEdge&&null!=r.collection}}(Zw||(Zw={})),function(t){t.toJSON=function(t,e={}){return{cells:t.map((t=>t.toJSON(e)))}},t.fromJSON=function(t){const e=[];return Array.isArray(t)?e.push(...t):(t.cells&&e.push(...t.cells),t.nodes&&t.nodes.forEach((t=>{null==t.shape&&(t.shape="rect"),e.push(t)})),t.edges&&t.edges.forEach((t=>{null==t.shape&&(t.shape="edge"),e.push(t)}))),e.map((t=>{const e=t.shape;if(e){if(Jw.registry.exist(e))return Jw.create(t);if(Xw.registry.exist(e))return Xw.create(t)}throw new Error("The `shape` should be specified when creating a node/edge instance")}))}}(Zw||(Zw={}));let Kw=class extends Jw{get label(){return this.getLabel()}set label(t){this.setLabel(t)}getLabel(){return this.getAttrByPath("text/text")}setLabel(t,e){return null==t?this.removeLabel():this.setAttrByPath("text/text",t,e),this}removeLabel(){return this.removeAttrByPath("text/text"),this}};function Qw(t,e="body"){return[{tagName:t,selector:e},{tagName:"text",selector:"label"}]}function tA(t,e,n={}){const r={constructorName:t,markup:Qw(t,n.selector),attrs:{[t]:Object.assign({},Kw.bodyAttr)}};return(n.parent||Kw).define(Sh(r,e,{shape:t}))}!function(t){t.bodyAttr={fill:"#ffffff",stroke:"#333333",strokeWidth:2},t.labelAttr={fontSize:14,fill:"#000000",refX:.5,refY:.5,textAnchor:"middle",textVerticalAnchor:"middle",fontFamily:"Arial, helvetica, sans-serif"},t.config({attrs:{text:Object.assign({},t.labelAttr)},propHooks(t){const{label:n}=t,r=e(t,["label"]);return n&&yf(r,"attrs/text/text",n),r},visible:!0})}(Kw||(Kw={}));const eA=tA("rect",{attrs:{body:{refWidth:"100%",refHeight:"100%"}}}),nA=Xw.define({shape:"edge",markup:[{tagName:"path",selector:"wrap",groupSelector:"lines",attrs:{fill:"none",cursor:"pointer",stroke:"transparent",strokeLinecap:"round"}},{tagName:"path",selector:"line",groupSelector:"lines",attrs:{fill:"none",pointerEvents:"none"}}],attrs:{lines:{connection:!0,strokeLinejoin:"round"},wrap:{strokeWidth:10},line:{stroke:"#333",strokeWidth:2,targetMarker:"classic"}}}),rA=tA("ellipse",{attrs:{body:{refCx:"50%",refCy:"50%",refRx:"50%",refRy:"50%"}}});class iA extends Kw{get points(){return this.getPoints()}set points(t){this.setPoints(t)}getPoints(){return this.getAttrByPath("body/refPoints")}setPoints(t,e){return null==t?this.removePoints():this.setAttrByPath("body/refPoints",iA.pointsToString(t),e),this}removePoints(){return this.removeAttrByPath("body/refPoints"),this}}!function(t){function n(t){return"string"==typeof t?t:t.map((t=>Array.isArray(t)?t.join(","):ky.isPointLike(t)?`${t.x}, ${t.y}`:"")).join(" ")}t.pointsToString=n,t.config({propHooks(t){const{points:r}=t,i=e(t,["points"]);if(r){const t=n(r);t&&yf(i,"attrs/body/refPoints",t)}return i}})}(iA||(iA={}));const sA=tA("polygon",{},{parent:iA}),oA=tA("polyline",{},{parent:iA}),aA=Kw.define({shape:"path",markup:[{tagName:"rect",selector:"bg"},{tagName:"path",selector:"body"},{tagName:"text",selector:"label"}],attrs:{bg:{refWidth:"100%",refHeight:"100%",fill:"none",stroke:"none",pointerEvents:"all"},body:{fill:"none",stroke:"#000",strokeWidth:2}},propHooks(t){const{path:n}=t,r=e(t,["path"]);return n&&yf(r,"attrs/body/refD",n),r}}),lA=Kw.define({shape:"text-block",markup:[{tagName:"rect",selector:"body"},t.Platform.SUPPORT_FOREIGNOBJECT?{tagName:"foreignObject",selector:"foreignObject",children:[{tagName:"div",ns:pp.xhtml,selector:"label",style:{width:"100%",height:"100%",position:"static",backgroundColor:"transparent",textAlign:"center",margin:0,padding:"0px 5px",boxSizing:"border-box",display:"flex",alignItems:"center",justifyContent:"center"}}]}:{tagName:"text",selector:"label",attrs:{textAnchor:"middle"}}],attrs:{body:Object.assign(Object.assign({},Kw.bodyAttr),{refWidth:"100%",refHeight:"100%"}),foreignObject:{refWidth:"100%",refHeight:"100%"},label:{style:{fontSize:14}}},propHooks(t){const{text:n}=t,r=e(t,["text"]);return n&&yf(r,"attrs/label/text",n),r},attrHooks:{text:{set(t,{cell:e,view:n,refBBox:r,elem:i,attrs:s}){if(!(i instanceof HTMLElement)){const o=s.style||{},a={text:t,width:-5,height:"100%"},l=Object.assign({textVerticalAnchor:"middle"},o);return ef(kb.presets.textWrap.set,this,a,{cell:e,view:n,elem:i,refBBox:r,attrs:l}),{fill:o.color||null}}i.textContent=t},position(t,{refBBox:e,elem:n}){if(n instanceof SVGElement)return e.getCenter()}}}}),cA=tA("image",{attrs:{image:{refWidth:"100%",refHeight:"100%"}},propHooks:function(t="xlink:href"){return n=>{const{imageUrl:r,imageWidth:i,imageHeight:s}=n,o=e(n,["imageUrl","imageWidth","imageHeight"]);if(null!=r||null!=i||null!=s){const e=()=>{if(o.attrs){const e=o.attrs.image;null!=r&&(e[t]=r),null!=i&&(e.width=i),null!=s&&(e.height=s),o.attrs.image=e}};o.attrs?(null==o.attrs.image&&(o.attrs.image={}),e()):(o.attrs={image:{}},e())}return o}}()},{selector:"image"}),hA=tA("circle",{attrs:{body:{refCx:"50%",refCy:"50%",refR:"50%"}}});class uA extends ax{constructor(){super(...arguments),this.portsCache={}}get[Symbol.toStringTag](){return uA.toStringTag}getContainerClassName(){const t=[super.getContainerClassName(),this.prefixClassName("node")];return this.can("nodeMovable")||t.push(this.prefixClassName("node-immovable")),t.join(" ")}updateClassName(t){const e=t.target;if(e.hasAttribute("magnet")){const t=this.prefixClassName("port-unconnectable");this.can("magnetConnectable")?cp(e,t):lp(e,t)}else{const t=this.prefixClassName("node-immovable");this.can("nodeMovable")?this.removeClass(t):this.addClass(t)}}isNodeView(){return!0}confirmUpdate(t,e={}){let n=t;return this.hasAction(n,"ports")&&(this.removePorts(),this.cleanPortsCache()),this.hasAction(n,"render")?(this.render(),n=this.removeAction(n,["render","update","resize","translate","rotate","ports","tools"])):(n=this.handleAction(n,"resize",(()=>this.resize()),"update"),n=this.handleAction(n,"update",(()=>this.update()),jb.useCSSSelector?"ports":null),n=this.handleAction(n,"translate",(()=>this.translate())),n=this.handleAction(n,"rotate",(()=>this.rotate())),n=this.handleAction(n,"ports",(()=>this.renderPorts())),n=this.handleAction(n,"tools",(()=>{this.getFlag("tools")===t?this.renderTools():this.updateTools(e)}))),n}update(t){this.cleanCache(),jb.useCSSSelector&&this.removePorts();const e=this.cell,n=e.getSize(),r=e.getAttrs();this.updateAttrs(this.container,r,{attrs:t===r?null:t,rootBBox:new Ny(0,0,n.width,n.height),selectors:this.selectors}),jb.useCSSSelector&&this.renderPorts()}renderMarkup(){const t=this.cell.markup;if(t){if("string"==typeof t)throw new TypeError("Not support string markup.");return this.renderJSONMarkup(t)}throw new TypeError("Invalid node markup.")}renderJSONMarkup(t){const e=this.parseJSONMarkup(t,this.container);this.selectors=e.selectors,this.container.appendChild(e.fragment)}render(){return this.empty(),this.renderMarkup(),this.resize(),this.updateTransform(),jb.useCSSSelector||this.renderPorts(),this.renderTools(),this}resize(){this.cell.getAngle()&&this.rotate(),this.update()}translate(){this.updateTransform()}rotate(){this.updateTransform()}getTranslationString(){const t=this.cell.getPosition();return`translate(${t.x},${t.y})`}getRotationString(){const t=this.cell.getAngle();if(t){const e=this.cell.getSize();return`rotate(${t},${e.width/2},${e.height/2})`}}updateTransform(){let t=this.getTranslationString();const e=this.getRotationString();e&&(t+=` ${e}`),this.container.setAttribute("transform",t)}findPortElem(t,e){const n=t?this.portsCache[t]:null;if(!n)return null;const r=n.portContentElement,i=n.portContentSelectors||{};return this.findOne(e,r,i)}cleanPortsCache(){this.portsCache={}}removePorts(){Object.values(this.portsCache).forEach((t=>{Op(t.portElement)}))}renderPorts(){const t=this.container,e=[];t.childNodes.forEach((t=>{e.push(t)}));const n=this.cell.getParsedPorts(),r=oc(n,"zIndex"),i="auto";r[i]&&r[i].forEach((n=>{const r=this.getPortElement(n);t.append(r),e.push(r)})),Object.keys(r).forEach((t=>{if(t!==i){const n=parseInt(t,10);this.appendPorts(r[t],n,e)}})),this.updatePorts()}appendPorts(t,e,n){const r=t.map((t=>this.getPortElement(t)));n[e]||e<0?jp(n[Math.max(e,0)],r):kp(this.container,r)}getPortElement(t){const e=this.portsCache[t.id];return e?e.portElement:this.createPortElement(t)}createPortElement(e){let n=t.Markup.renderMarkup(this.cell.getPortContainerMarkup());const r=n.elem;if(null==r)throw new Error("Invalid port container markup.");n=t.Markup.renderMarkup(this.getPortMarkup(e));const i=n.elem,s=n.selectors;if(null==i)throw new Error("Invalid port markup.");this.setAttrs({port:e.id,"port-group":e.group},i);let o="x6-port";e.group&&(o+=` x6-port-${e.group}`),lp(r,o),lp(r,"x6-port"),lp(i,"x6-port-body"),r.appendChild(i);let a,l,c=s;if(this.existPortLabel(e)){if(n=t.Markup.renderMarkup(this.getPortLabelMarkup(e.label)),a=n.elem,l=n.selectors,null==a)throw new Error("Invalid port label markup.");if(s&&l){for(const t in l)if(s[t]&&t!==this.rootSelector)throw new Error("Selectors within port must be unique.");c=Object.assign(Object.assign({},s),l)}lp(a,"x6-port-label"),r.appendChild(a)}return this.portsCache[e.id]={portElement:r,portSelectors:c,portLabelElement:a,portLabelSelectors:l,portContentElement:i,portContentSelectors:s},this.graph.options.onPortRendered&&this.graph.options.onPortRendered({port:e,node:this.cell,container:r,selectors:c,labelContainer:a,labelSelectors:l,contentContainer:i,contentSelectors:s}),r}updatePorts(){const t=this.cell.getParsedGroups(),e=Object.keys(t);0===e.length?this.updatePortGroup():e.forEach((t=>this.updatePortGroup(t)))}updatePortGroup(t){const e=Ny.fromSize(this.cell.getSize()),n=this.cell.getPortsLayoutByGroup(t,e);for(let t=0,e=n.length;t<e;t+=1){const e=n[t],r=e.portId,i=this.portsCache[r]||{},s=e.portLayout;if(this.applyPortTransform(i.portElement,s),null!=e.portAttrs){const t={selectors:i.portSelectors||{}};e.portSize&&(t.rootBBox=Ny.fromSize(e.portSize)),this.updateAttrs(i.portElement,e.portAttrs,t)}const o=e.labelLayout;if(o&&i.portLabelElement&&(this.applyPortTransform(i.portLabelElement,o,-(s.angle||0)),o.attrs)){const t={selectors:i.portLabelSelectors||{}};e.labelSize&&(t.rootBBox=Ny.fromSize(e.labelSize)),this.updateAttrs(i.portLabelElement,o.attrs,t)}}}applyPortTransform(t,e,n=0){const r=e.angle,i=e.position;Km(t,Fm().rotate(n).translate(i.x||0,i.y||0).rotate(r||0),{absolute:!0})}getPortMarkup(t){return t.markup||this.cell.portMarkup}getPortLabelMarkup(t){return t.markup||this.cell.portLabelMarkup}existPortLabel(t){return t.attrs&&t.attrs.text}getEventArgs(t,e,n){const r=this,i=r.cell;return null==e||null==n?{e:t,view:r,node:i,cell:i}:{e:t,x:e,y:n,view:r,node:i,cell:i}}getPortEventArgs(t,e,n){const r=this,i=r.cell,s=i;return n?{e:t,x:n.x,y:n.y,view:r,node:i,cell:s,port:e}:{e:t,view:r,node:i,cell:s,port:e}}notifyMouseDown(t,e,n){super.onMouseDown(t,e,n),this.notify("node:mousedown",this.getEventArgs(t,e,n))}notifyMouseMove(t,e,n){super.onMouseMove(t,e,n),this.notify("node:mousemove",this.getEventArgs(t,e,n))}notifyMouseUp(t,e,n){super.onMouseUp(t,e,n),this.notify("node:mouseup",this.getEventArgs(t,e,n))}notifyPortEvent(t,e,n){const r=this.findAttr("port",e.target);if(r){const i=e.type;"node:port:mouseenter"===t?e.type="mouseenter":"node:port:mouseleave"===t&&(e.type="mouseleave"),this.notify(t,this.getPortEventArgs(e,r,n)),e.type=i}}onClick(t,e,n){super.onClick(t,e,n),this.notify("node:click",this.getEventArgs(t,e,n)),this.notifyPortEvent("node:port:click",t,{x:e,y:n})}onDblClick(t,e,n){super.onDblClick(t,e,n),this.notify("node:dblclick",this.getEventArgs(t,e,n)),this.notifyPortEvent("node:port:dblclick",t,{x:e,y:n})}onContextMenu(t,e,n){super.onContextMenu(t,e,n),this.notify("node:contextmenu",this.getEventArgs(t,e,n)),this.notifyPortEvent("node:port:contextmenu",t,{x:e,y:n})}onMouseDown(t,e,n){this.isPropagationStopped(t)||(this.notifyMouseDown(t,e,n),this.notifyPortEvent("node:port:mousedown",t,{x:e,y:n}),this.startNodeDragging(t,e,n))}onMouseMove(t,e,n){const r=this.getEventData(t),i=r.action;if("magnet"===i)this.dragMagnet(t,e,n);else{if("move"===i){const i=r.targetView||this;i.dragNode(t,e,n),i.notify("node:moving",{e:t,x:e,y:n,view:i,cell:i.cell,node:i.cell})}this.notifyMouseMove(t,e,n),this.notifyPortEvent("node:port:mousemove",t,{x:e,y:n})}this.setEventData(t,r)}onMouseUp(t,e,n){const r=this.getEventData(t),i=r.action;if("magnet"===i)this.stopMagnetDragging(t,e,n);else if(this.notifyMouseUp(t,e,n),this.notifyPortEvent("node:port:mouseup",t,{x:e,y:n}),"move"===i){(r.targetView||this).stopNodeDragging(t,e,n)}const s=r.targetMagnet;s&&this.onMagnetClick(t,s,e,n),this.checkMouseleave(t)}onMouseOver(t){super.onMouseOver(t),this.notify("node:mouseover",this.getEventArgs(t)),this.notifyPortEvent("node:port:mouseenter",t),this.notifyPortEvent("node:port:mouseover",t)}onMouseOut(t){super.onMouseOut(t),this.notify("node:mouseout",this.getEventArgs(t)),this.notifyPortEvent("node:port:mouseleave",t),this.notifyPortEvent("node:port:mouseout",t)}onMouseEnter(t){this.updateClassName(t),super.onMouseEnter(t),this.notify("node:mouseenter",this.getEventArgs(t))}onMouseLeave(t){super.onMouseLeave(t),this.notify("node:mouseleave",this.getEventArgs(t))}onMouseWheel(t,e,n,r){super.onMouseWheel(t,e,n,r),this.notify("node:mousewheel",Object.assign({delta:r},this.getEventArgs(t,e,n)))}onMagnetClick(t,e,n,r){const i=this.graph;i.view.getMouseMovedCount(t)>i.options.clickThreshold||this.notify("node:magnet:click",Object.assign({magnet:e},this.getEventArgs(t,n,r)))}onMagnetDblClick(t,e,n,r){this.notify("node:magnet:dblclick",Object.assign({magnet:e},this.getEventArgs(t,n,r)))}onMagnetContextMenu(t,e,n,r){this.notify("node:magnet:contextmenu",Object.assign({magnet:e},this.getEventArgs(t,n,r)))}onMagnetMouseDown(t,e,n,r){this.startMagnetDragging(t,n,r)}onCustomEvent(t,e,n,r){this.notify("node:customevent",Object.assign({name:e},this.getEventArgs(t,n,r))),super.onCustomEvent(t,e,n,r)}prepareEmbedding(t){const e=this.graph,n=this.getEventData(t).cell||this.cell,r=e.findViewByCell(n),i=e.snapToGrid(t.clientX,t.clientY);this.notify("node:embed",{e:t,node:n,view:r,cell:n,x:i.x,y:i.y,currentParent:n.getParent()})}processEmbedding(t,e){const n=e.cell||this.cell,r=e.graph||this.graph,i=r.options.embedding,s=i.findParent;let o="function"==typeof s?ef(s,r,{view:this,node:this.cell}).filter((t=>Ww.isCell(t)&&this.cell.id!==t.id&&!t.isDescendantOf(this.cell))):r.model.getNodesUnderNode(n,{by:s});if(i.frontOnly&&o.length>0){const t=oc(o,"zIndex"),e=Ch(Object.keys(t).map((t=>parseInt(t,10))));e&&(o=t[e])}o=o.filter((t=>t.visible));let a=null;const l=e.candidateEmbedView,c=i.validate;for(let t=o.length-1;t>=0;t-=1){const e=o[t];if(l&&l.cell.id===e.id){a=l;break}{const t=e.findView(r);if(c&&ef(c,r,{child:this.cell,parent:t.cell,childView:this,parentView:t})){a=t;break}}}this.clearEmbedding(e),a&&a.highlight(null,{type:"embedding"}),e.candidateEmbedView=a;const h=r.snapToGrid(t.clientX,t.clientY);this.notify("node:embedding",{e:t,cell:n,node:n,view:r.findViewByCell(n),x:h.x,y:h.y,currentParent:n.getParent(),candidateParent:a?a.cell:null})}clearEmbedding(t){const e=t.candidateEmbedView;e&&(e.unhighlight(null,{type:"embedding"}),t.candidateEmbedView=null)}finalizeEmbedding(t,e){this.graph.startBatch("embedding");const n=e.cell||this.cell,r=e.graph||this.graph,i=r.findViewByCell(n),s=n.getParent(),o=e.candidateEmbedView;if(o?(o.unhighlight(null,{type:"embedding"}),e.candidateEmbedView=null,null!=s&&s.id===o.cell.id||o.cell.insertChild(n,void 0,{ui:!0})):s&&s.unembed(n,{ui:!0}),r.model.getConnectedEdges(n,{deep:!0}).forEach((t=>{t.updateParent({ui:!0})})),i&&o){const e=r.snapToGrid(t.clientX,t.clientY);i.notify("node:embedded",{e:t,cell:n,x:e.x,y:e.y,node:n,view:r.findViewByCell(n),previousParent:s,currentParent:n.getParent()})}this.graph.stopBatch("embedding")}getDelegatedView(){let t=this.cell,e=this;for(;e&&!t.isEdge();){if(!t.hasParent()||e.can("stopDelegateOnDragging"))return e;t=t.getParent(),e=this.graph.findViewByCell(t)}return null}validateMagnet(t,e,n){if("passive"!==e.getAttribute("magnet")){const r=this.graph.options.connecting.validateMagnet;return!r||ef(r,this.graph,{e:n,magnet:e,view:t,cell:t.cell})}return!1}startMagnetDragging(t,e,n){if(!this.can("magnetConnectable"))return;t.stopPropagation();const r=t.currentTarget,i=this.graph;this.setEventData(t,{targetMagnet:r}),this.validateMagnet(this,r,t)?(i.options.magnetThreshold<=0&&this.startConnectting(t,r,e,n),this.setEventData(t,{action:"magnet"}),this.stopPropagation(t)):this.onMouseDown(t,e,n),i.view.delegateDragEvents(t,this)}startConnectting(t,e,n,r){this.graph.model.startBatch("add-edge");const i=this.createEdgeFromMagnet(e,n,r);i.setEventData(t,i.prepareArrowheadDragging("target",{x:n,y:r,isNewEdge:!0,fallbackAction:"remove"})),this.setEventData(t,{edgeView:i}),i.notifyMouseDown(t,n,r)}getDefaultEdge(t,e){let n;const r=this.graph.options.connecting.createEdge;return r&&(n=ef(r,this.graph,{sourceMagnet:e,sourceView:t,sourceCell:t.cell})),n}createEdgeFromMagnet(t,e,n){const r=this.graph,i=r.model,s=this.getDefaultEdge(this,t);return s.setSource(Object.assign(Object.assign({},s.getSource()),this.getEdgeTerminal(t,e,n,s,"source"))),s.setTarget(Object.assign(Object.assign({},s.getTarget()),{x:e,y:n})),s.addTo(i,{async:!1,ui:!0}),s.findView(r)}dragMagnet(t,e,n){const r=this.getEventData(t),i=r.edgeView;if(i)i.onMouseMove(t,e,n),this.autoScrollGraph(t.clientX,t.clientY);else{const i=this.graph,s=i.options.magnetThreshold,o=this.getEventTarget(t),a=r.targetMagnet;if("onleave"===s){if(a===o||a.contains(o))return}else if(i.view.getMouseMovedCount(t)<=s)return;this.startConnectting(t,a,e,n)}}stopMagnetDragging(t,e,n){const r=this.eventData(t).edgeView;r&&(r.onMouseUp(t,e,n),this.graph.model.stopBatch("add-edge"))}notifyUnhandledMouseDown(t,e,n){this.notify("node:unhandled:mousedown",{e:t,x:e,y:n,view:this,cell:this.cell,node:this.cell})}notifyNodeMove(t,e,n,r,i){let s=[i];const o=this.graph.getPlugin("selection");if(o&&o.isSelectionMovable()){const t=o.getSelectedCells();t.includes(i)&&(s=t.filter((t=>t.isNode())))}s.forEach((i=>{this.notify(t,{e:e,x:n,y:r,cell:i,node:i,view:i.findView(this.graph)})}))}getRestrictArea(t){const e=this.graph.options.translating.restrict,n="function"==typeof e?ef(e,this.graph,t):e;return"number"==typeof n?this.graph.transform.getGraphArea().inflate(n):!0===n?this.graph.transform.getGraphArea():n||null}startNodeDragging(t,e,n){const r=this.getDelegatedView();if(null==r||!r.can("nodeMovable"))return this.notifyUnhandledMouseDown(t,e,n);this.setEventData(t,{targetView:r,action:"move"});const i=ky.create(r.cell.getPosition());r.setEventData(t,{moving:!1,offset:i.diff(e,n),restrict:this.getRestrictArea(r)})}dragNode(e,n,r){const i=this.cell,s=this.graph,o=s.getGridSize(),a=this.getEventData(e),l=a.offset,c=a.restrict;a.moving||(a.moving=!0,this.addClass("node-moving"),this.notifyNodeMove("node:move",e,n,r,this.cell)),this.autoScrollGraph(e.clientX,e.clientY);const h=t.GeometryUtil.snapToGrid(n+l.x,o),u=t.GeometryUtil.snapToGrid(r+l.y,o);i.setPosition(h,u,{restrict:c,deep:!0,ui:!0}),s.options.embedding.enabled&&(a.embedding||(this.prepareEmbedding(e),a.embedding=!0),this.processEmbedding(e,a))}stopNodeDragging(t,e,n){const r=this.getEventData(t);r.embedding&&this.finalizeEmbedding(t,r),r.moving&&(this.removeClass("node-moving"),this.notifyNodeMove("node:moved",t,e,n,this.cell)),r.moving=!1,r.embedding=!1}autoScrollGraph(t,e){const n=this.graph.getPlugin("scroller");n&&n.autoScroll(t,e)}}!function(t){t.toStringTag=`X6.${t.name}`,t.isNodeView=function(e){if(null==e)return!1;if(e instanceof t)return!0;const n=e[Symbol.toStringTag],r=e;return(null==n||n===t.toStringTag)&&"function"==typeof r.isNodeView&&"function"==typeof r.isEdgeView&&"function"==typeof r.confirmUpdate&&"function"==typeof r.update&&"function"==typeof r.findPortElem&&"function"==typeof r.resize&&"function"==typeof r.rotate&&"function"==typeof r.translate}}(uA||(uA={})),uA.config({isSvgElement:!0,priority:0,bootstrap:["render"],actions:{view:["render"],markup:["render"],attrs:["update"],size:["resize","ports","tools"],angle:["rotate","tools"],position:["translate","tools"],ports:["ports"],tools:["tools"]}}),uA.registry.register("node",uA,!0);class gA extends ax{constructor(){super(...arguments),this.POINT_ROUNDING=2}get[Symbol.toStringTag](){return gA.toStringTag}getContainerClassName(){return[super.getContainerClassName(),this.prefixClassName("edge")].join(" ")}get sourceBBox(){const t=this.sourceView;if(!t){const t=this.cell.getSource();return new Ny(t.x,t.y)}const e=this.sourceMagnet;return t.isEdgeElement(e)?new Ny(this.sourceAnchor.x,this.sourceAnchor.y):t.getBBoxOfElement(e||t.container)}get targetBBox(){const t=this.targetView;if(!t){const t=this.cell.getTarget();return new Ny(t.x,t.y)}const e=this.targetMagnet;return t.isEdgeElement(e)?new Ny(this.targetAnchor.x,this.targetAnchor.y):t.getBBoxOfElement(e||t.container)}isEdgeView(){return!0}confirmUpdate(t,e={}){let n=t;if(this.hasAction(n,"source")){if(!this.updateTerminalProperties("source"))return n;n=this.removeAction(n,"source")}if(this.hasAction(n,"target")){if(!this.updateTerminalProperties("target"))return n;n=this.removeAction(n,"target")}return this.hasAction(n,"render")?(this.render(),n=this.removeAction(n,["render","update","labels","tools"]),n):(n=this.handleAction(n,"update",(()=>this.update(e))),n=this.handleAction(n,"labels",(()=>this.onLabelsChange(e))),n=this.handleAction(n,"tools",(()=>this.renderTools())),n)}render(){return this.empty(),this.renderMarkup(),this.labelContainer=null,this.renderLabels(),this.update(),this.renderTools(),this}renderMarkup(){const t=this.cell.markup;if(t){if("string"==typeof t)throw new TypeError("Not support string markup.");return this.renderJSONMarkup(t)}throw new TypeError("Invalid edge markup.")}renderJSONMarkup(t){const e=this.parseJSONMarkup(t,this.container);this.selectors=e.selectors,this.container.append(e.fragment)}customizeLabels(){if(this.labelContainer){const t=this.cell,e=t.labels;for(let n=0,r=e.length;n<r;n+=1){const r=e[n],i=this.labelCache[n],s=this.labelSelectors[n],o=this.graph.options.onEdgeLabelRendered;o&&o({edge:t,label:r,container:i,selectors:s})}}}renderLabels(){const t=this.cell,e=t.getLabels(),n=e.length;let r=this.labelContainer;if(this.labelCache={},this.labelSelectors={},n<=0)return r&&r.parentNode&&r.parentNode.removeChild(r),this;r?this.empty(r):(r=bp("g"),this.addClass(this.prefixClassName("edge-labels"),r),this.labelContainer=r);for(let n=0,i=e.length;n<i;n+=1){const i=e[n],s=this.normalizeLabelMarkup(this.parseLabelMarkup(i.markup));let o,a;if(s)o=s.node,a=s.selectors;else{const e=t.getDefaultLabel(),n=this.normalizeLabelMarkup(this.parseLabelMarkup(e.markup));o=n.node,a=n.selectors}o.setAttribute("data-index",`${n}`),r.appendChild(o);const l=this.rootSelector;if(a[l])throw new Error("Ambiguous label root selector.");a[l]=o,this.labelCache[n]=o,this.labelSelectors[n]=a}return null==r.parentNode&&this.container.appendChild(r),this.updateLabels(),this.customizeLabels(),this}onLabelsChange(t={}){this.shouldRerenderLabels(t)?this.renderLabels():this.updateLabels(),this.updateLabelPositions()}shouldRerenderLabels(t={}){const e=this.cell.previous("labels");if(null==e)return!0;if("propertyPathArray"in t&&"propertyValue"in t){const n=t.propertyPathArray||[],r=n.length;if(r>1){if(e[n[1]]){if(2===r)return"object"==typeof t.propertyValue&&dc(t.propertyValue,"markup");if("markup"!==n[2])return!1}}}return!0}parseLabelMarkup(t){return t?"string"==typeof t?this.parseLabelStringMarkup(t):this.parseJSONMarkup(t):null}parseLabelStringMarkup(t){const e=fm.createVectors(t),n=document.createDocumentFragment();for(let t=0,r=e.length;t<r;t+=1){const r=e[t].node;n.appendChild(r)}return{fragment:n,selectors:{}}}normalizeLabelMarkup(t){if(null==t)return;const e=t.fragment;if(!(e instanceof DocumentFragment&&e.hasChildNodes()))throw new Error("Invalid label markup.");let n;const r=e.childNodes;return n=r.length>1||"G"!==r[0].nodeName.toUpperCase()?fm.create("g").append(e):fm.create(r[0]),n.addClass(this.prefixClassName("edge-label")),{node:n.node,selectors:t.selectors}}updateLabels(){if(this.labelContainer){const t=this.cell,e=t.labels,n=this.can("edgeLabelMovable"),r=t.getDefaultLabel();for(let t=0,i=e.length;t<i;t+=1){const i=this.labelCache[t],s=this.labelSelectors[t];i.setAttribute("cursor",n?"move":"default");const o=e[t],a=Sh({},r.attrs,o.attrs);this.updateAttrs(i,a,{selectors:s,rootBBox:o.size?Ny.fromSize(o.size):void 0})}}}renderTools(){const t=this.cell.getTools();return this.addTools(t),this}update(t={}){this.cleanCache(),this.updateConnection(t);const e=this.cell.getAttrs();return null!=e&&this.updateAttrs(this.container,e,{selectors:this.selectors}),this.updateLabelPositions(),this.updateTools(t),this}removeRedundantLinearVertices(t={}){const e=this.cell,n=e.getVertices(),r=[this.sourceAnchor,...n,this.targetAnchor],i=r.length,s=new zy(r);s.simplify({threshold:.01});const o=s.points.map((t=>t.toJSON())),a=o.length;return i===a?0:(e.setVertices(o.slice(1,a-1),t),i-a)}getTerminalView(t){switch(t){case"source":return this.sourceView||null;case"target":return this.targetView||null;default:throw new Error(`Unknown terminal type '${t}'`)}}getTerminalAnchor(t){switch(t){case"source":return ky.create(this.sourceAnchor);case"target":return ky.create(this.targetAnchor);default:throw new Error(`Unknown terminal type '${t}'`)}}getTerminalConnectionPoint(t){switch(t){case"source":return ky.create(this.sourcePoint);case"target":return ky.create(this.targetPoint);default:throw new Error(`Unknown terminal type '${t}'`)}}getTerminalMagnet(t,e={}){switch(t){case"source":{if(e.raw)return this.sourceMagnet;const t=this.sourceView;return t?this.sourceMagnet||t.container:null}case"target":{if(e.raw)return this.targetMagnet;const t=this.targetView;return t?this.targetMagnet||t.container:null}default:throw new Error(`Unknown terminal type '${t}'`)}}updateConnection(t={}){const e=this.cell;if(t.translateBy&&e.isFragmentDescendantOf(t.translateBy)){const e=t.tx||0,n=t.ty||0;this.routePoints=new zy(this.routePoints).translate(e,n).points,this.translateConnectionPoints(e,n),this.path.translate(e,n)}else{const t=e.getVertices(),n=this.findAnchors(t);this.sourceAnchor=n.source,this.targetAnchor=n.target,this.routePoints=this.findRoutePoints(t);const r=this.findConnectionPoints(this.routePoints,this.sourceAnchor,this.targetAnchor);this.sourcePoint=r.source,this.targetPoint=r.target;const i=this.findMarkerPoints(this.routePoints,this.sourcePoint,this.targetPoint);this.path=this.findPath(this.routePoints,i.source||this.sourcePoint,i.target||this.targetPoint)}this.cleanCache()}findAnchors(t){const e=this.cell,n=e.source,r=e.target,i=t[0],s=t[t.length-1];return r.priority&&!n.priority?this.findAnchorsOrdered("target",s,"source",i):this.findAnchorsOrdered("source",i,"target",s)}findAnchorsOrdered(t,e,n,r){let i,s;const o=this.cell,a=o[t],l=o[n],c=this.getTerminalView(t),h=this.getTerminalView(n),u=this.getTerminalMagnet(t),g=this.getTerminalMagnet(n);if(c){let n;n=e?ky.create(e):h?g:ky.create(l),i=this.getAnchor(a.anchor,c,u,n,t)}else i=ky.create(a);if(h){const t=ky.create(r||i);s=this.getAnchor(l.anchor,h,g,t,n)}else s=ky.isPointLike(l)?ky.create(l):new ky;return{[t]:i,[n]:s}}getAnchor(t,e,n,r,i){const s=e.isEdgeElement(n),o=this.graph.options.connecting;let a,l="string"==typeof t?{name:t}:t;if(!l){const t=s?("source"===i?o.sourceEdgeAnchor:o.targetEdgeAnchor)||o.edgeAnchor:("source"===i?o.sourceAnchor:o.targetAnchor)||o.anchor;l="string"==typeof t?{name:t}:t}if(!l)throw new Error("Anchor should be specified.");const c=l.name;if(s){const t=Xx.registry.get(c);if("function"!=typeof t)return Xx.registry.onNotFound(c);a=ef(t,this,e,n,r,l.args||{},i)}else{const t=Ux.registry.get(c);if("function"!=typeof t)return Ux.registry.onNotFound(c);a=ef(t,this,e,n,r,l.args||{},i)}return a?a.round(this.POINT_ROUNDING):new ky}findRoutePoints(t=[]){const e=this.graph.options.connecting.router||kw.presets.normal,n=this.cell.getRouter()||e;let r;if("function"==typeof n)r=ef(n,this,t,{},this);else{const e="string"==typeof n?n:n.name,i="string"==typeof n?{}:n.args||{},s=e?kw.registry.get(e):kw.presets.normal;if("function"!=typeof s)return kw.registry.onNotFound(e);r=ef(s,this,t,i,this)}return null==r?t.map((t=>ky.create(t))):r.map((t=>ky.create(t)))}findConnectionPoints(t,e,n){const r=this.cell,i=this.graph.options.connecting,s=r.getSource(),o=r.getTarget(),a=this.sourceView,l=this.targetView,c=t[0],h=t[t.length-1];let u,g;if(a&&!a.isEdgeElement(this.sourceMagnet)){const t=this.sourceMagnet||a.container,r=new jy(c||n,e),o=s.connectionPoint||i.sourceConnectionPoint||i.connectionPoint;u=this.getConnectionPoint(o,a,t,r,"source")}else u=e;if(l&&!l.isEdgeElement(this.targetMagnet)){const t=this.targetMagnet||l.container,r=o.connectionPoint||i.targetConnectionPoint||i.connectionPoint,s=new jy(h||e,n);g=this.getConnectionPoint(r,l,t,s,"target")}else g=n;return{source:u,target:g}}getConnectionPoint(t,e,n,r,i){const s=r.end;if(null==t)return s;const o="string"==typeof t?t:t.name,a="string"==typeof t?{}:t.args,l=tw.registry.get(o);if("function"!=typeof l)return tw.registry.onNotFound(o);const c=ef(l,this,r,e,n,a||{},i);return c?c.round(this.POINT_ROUNDING):s}findMarkerPoints(t,e,n){const r=t=>{const e=this.cell.getAttrs(),n=Object.keys(e);for(let r=0,i=n.length;r<i;r+=1){const i=e[n[r]];if(i[`${t}Marker`]||i[`${t}-marker`]){const t=i.strokeWidth||i["stroke-width"];if(t)return parseFloat(t);break}}return null},i=t[0],s=t[t.length-1];let o,a;const l=r("source");l&&(o=e.clone().move(i||n,-l));const c=r("target");return c&&(a=n.clone().move(s||e,-c)),this.sourceMarkerPoint=o||e.clone(),this.targetMarkerPoint=a||n.clone(),{source:o,target:a}}findPath(t,e,n){const r=this.cell.getConnector()||this.graph.options.connecting.connector;let i,s,o;if("string"==typeof r?i=r:(i=r.name,s=r.args),i){const t=zw.registry.get(i);if("function"!=typeof t)return zw.registry.onNotFound(i);o=t}else o=zw.presets.normal;const a=ef(o,this,e,n,t,Object.assign(Object.assign({},s),{raw:!0}),this);return"string"==typeof a?Qy.parse(a):a}translateConnectionPoints(t,e){this.sourcePoint.translate(t,e),this.targetPoint.translate(t,e),this.sourceAnchor.translate(t,e),this.targetAnchor.translate(t,e),this.sourceMarkerPoint.translate(t,e),this.targetMarkerPoint.translate(t,e)}updateLabelPositions(){if(null==this.labelContainer)return this;if(!this.path)return this;const t=this.cell,e=t.getLabels();if(0===e.length)return this;const n=t.getDefaultLabel(),r=this.normalizeLabelPosition(n.position);for(let t=0,n=e.length;t<n;t+=1){const n=e[t],i=this.labelCache[t];if(!i)continue;const s=this.normalizeLabelPosition(n.position),o=Sh({},r,s),a=this.getLabelTransformationMatrix(o);i.setAttribute("transform",qm(a))}return this}updateTerminalProperties(t){const e=this.cell,n=this.graph,r=e[t],i=r&&r.cell,s=`${t}View`;if(!i)return this[s]=null,this.updateTerminalMagnet(t),!0;const o=n.getCellById(i);if(!o)throw new Error(`Edge's ${t} node with id "${i}" not exists`);const a=o.findView(n);return!!a&&(this[s]=a,this.updateTerminalMagnet(t),!0)}updateTerminalMagnet(t){const e=`${t}Magnet`,n=this.getTerminalView(t);if(n){let r=n.getMagnetFromEdgeTerminal(this.cell[t]);r===n.container&&(r=null),this[e]=r}else this[e]=null}getLabelPositionAngle(t){const e=this.cell.getLabelAt(t);return e&&e.position&&"object"==typeof e.position&&e.position.angle||0}getLabelPositionArgs(t){const e=this.cell.getLabelAt(t);if(e&&e.position&&"object"==typeof e.position)return e.position.options}getDefaultLabelPositionArgs(){const t=this.cell.getDefaultLabel();if(t&&t.position&&"object"==typeof t.position)return t.position.options}mergeLabelPositionArgs(t,e){return null===t?null:void 0===t?null===e?null:e:Sh({},e,t)}getConnection(){return null!=this.path?this.path.clone():null}getConnectionPathData(){if(null==this.path)return"";const t=this.cache.pathCache;return dc(t,"data")||(t.data=this.path.serialize()),t.data||""}getConnectionSubdivisions(){if(null==this.path)return null;const t=this.cache.pathCache;return dc(t,"segmentSubdivisions")||(t.segmentSubdivisions=this.path.getSegmentSubdivisions()),t.segmentSubdivisions}getConnectionLength(){if(null==this.path)return 0;const t=this.cache.pathCache;return dc(t,"length")||(t.length=this.path.length({segmentSubdivisions:this.getConnectionSubdivisions()})),t.length}getPointAtLength(t){return null==this.path?null:this.path.pointAtLength(t,{segmentSubdivisions:this.getConnectionSubdivisions()})}getPointAtRatio(t){return null==this.path?null:(If(t)&&(t=parseFloat(t)/100),this.path.pointAt(t,{segmentSubdivisions:this.getConnectionSubdivisions()}))}getTangentAtLength(t){return null==this.path?null:this.path.tangentAtLength(t,{segmentSubdivisions:this.getConnectionSubdivisions()})}getTangentAtRatio(t){return null==this.path?null:this.path.tangentAt(t,{segmentSubdivisions:this.getConnectionSubdivisions()})}getClosestPoint(t){return null==this.path?null:this.path.closestPoint(t,{segmentSubdivisions:this.getConnectionSubdivisions()})}getClosestPointLength(t){return null==this.path?null:this.path.closestPointLength(t,{segmentSubdivisions:this.getConnectionSubdivisions()})}getClosestPointRatio(t){return null==this.path?null:this.path.closestPointNormalizedLength(t,{segmentSubdivisions:this.getConnectionSubdivisions()})}getLabelPosition(t,e,n,r){const i={distance:0};let s,o=0;"number"==typeof n?(o=n,s=r):s=n,null!=s&&(i.options=s);const a=s&&s.absoluteOffset,l=!(s&&s.absoluteDistance),c=s&&s.absoluteDistance&&s.reverseDistance,h=this.path,u={segmentSubdivisions:this.getConnectionSubdivisions()},g=new ky(t,e),d=h.closestPointT(g,u),f=this.getConnectionLength()||0;let p,m,y=h.lengthAtT(d,u);if(l&&(y=f>0?y/f:0),c&&(y=-1*(f-y)||1),i.distance=y,a||(p=h.tangentAtT(d)),p)m=p.pointOffset(g);else{const t=h.pointAtT(d),e=g.diff(t);m={x:e.x,y:e.y}}return i.offset=m,i.angle=o,i}normalizeLabelPosition(t){return"number"==typeof t?{distance:t}:t}getLabelTransformationMatrix(e){const n=this.normalizeLabelPosition(e),r=n.options||{},i=n.angle||0,s=n.distance,o=s>0&&s<=1;let a=0;const l={x:0,y:0},c=n.offset;c&&("number"==typeof c?a=c:(null!=c.x&&(l.x=c.x),null!=c.y&&(l.y=c.y)));const h=0!==l.x||0!==l.y||0===a,u=r.keepGradient,g=r.ensureLegibility,d=this.path,f={segmentSubdivisions:this.getConnectionSubdivisions()},p=o?s*this.getConnectionLength():s,m=d.tangentAtLength(p,f);let y,v=i;if(m){if(h)y=m.start,y.translate(l);else{const t=m.clone();t.rotate(-90,m.start),t.setLength(a),y=t.end}u&&(v=m.angle()+i,g&&(v=t.Angle.normalize((v+90)%180-90)))}else y=d.start,h&&y.translate(l);return Fm().translate(y.x,y.y).rotate(v)}getVertexIndex(t,e){const n=this.cell.getVertices(),r=this.getClosestPointLength(new ky(t,e));let i=0;if(null!=r)for(const t=n.length;i<t;i+=1){const t=n[i],e=this.getClosestPointLength(t);if(null!=e&&r<e)break}return i}getEventArgs(t,e,n){const r=this,i=r.cell;return null==e||null==n?{e:t,view:r,edge:i,cell:i}:{e:t,x:e,y:n,view:r,edge:i,cell:i}}notifyUnhandledMouseDown(t,e,n){this.notify("edge:unhandled:mousedown",{e:t,x:e,y:n,view:this,cell:this.cell,edge:this.cell})}notifyMouseDown(t,e,n){super.onMouseDown(t,e,n),this.notify("edge:mousedown",this.getEventArgs(t,e,n))}notifyMouseMove(t,e,n){super.onMouseMove(t,e,n),this.notify("edge:mousemove",this.getEventArgs(t,e,n))}notifyMouseUp(t,e,n){super.onMouseUp(t,e,n),this.notify("edge:mouseup",this.getEventArgs(t,e,n))}onClick(t,e,n){super.onClick(t,e,n),this.notify("edge:click",this.getEventArgs(t,e,n))}onDblClick(t,e,n){super.onDblClick(t,e,n),this.notify("edge:dblclick",this.getEventArgs(t,e,n))}onContextMenu(t,e,n){super.onContextMenu(t,e,n),this.notify("edge:contextmenu",this.getEventArgs(t,e,n))}onMouseDown(t,e,n){this.notifyMouseDown(t,e,n),this.startEdgeDragging(t,e,n)}onMouseMove(t,e,n){const r=this.getEventData(t);switch(r.action){case"drag-label":this.dragLabel(t,e,n);break;case"drag-arrowhead":this.dragArrowhead(t,e,n);break;case"drag-edge":this.dragEdge(t,e,n)}return this.notifyMouseMove(t,e,n),r}onMouseUp(t,e,n){const r=this.getEventData(t);switch(r.action){case"drag-label":this.stopLabelDragging(t,e,n);break;case"drag-arrowhead":this.stopArrowheadDragging(t,e,n);break;case"drag-edge":this.stopEdgeDragging(t,e,n)}return this.notifyMouseUp(t,e,n),this.checkMouseleave(t),r}onMouseOver(t){super.onMouseOver(t),this.notify("edge:mouseover",this.getEventArgs(t))}onMouseOut(t){super.onMouseOut(t),this.notify("edge:mouseout",this.getEventArgs(t))}onMouseEnter(t){super.onMouseEnter(t),this.notify("edge:mouseenter",this.getEventArgs(t))}onMouseLeave(t){super.onMouseLeave(t),this.notify("edge:mouseleave",this.getEventArgs(t))}onMouseWheel(t,e,n,r){super.onMouseWheel(t,e,n,r),this.notify("edge:mousewheel",Object.assign({delta:r},this.getEventArgs(t,e,n)))}onCustomEvent(t,e,n,r){if(Ep(t.target,"edge-tool",this.container)){if(t.stopPropagation(),this.can("useEdgeTools")){if("edge:remove"===e)return void this.cell.remove({ui:!0});this.notify("edge:customevent",Object.assign({name:e},this.getEventArgs(t,n,r)))}this.notifyMouseDown(t,n,r)}else this.notify("edge:customevent",Object.assign({name:e},this.getEventArgs(t,n,r))),super.onCustomEvent(t,e,n,r)}onLabelMouseDown(t,e,n){this.notifyMouseDown(t,e,n),this.startLabelDragging(t,e,n);this.getEventData(t).stopPropagation&&t.stopPropagation()}startEdgeDragging(t,e,n){this.can("edgeMovable")?this.setEventData(t,{x:e,y:n,moving:!1,action:"drag-edge"}):this.notifyUnhandledMouseDown(t,e,n)}dragEdge(t,e,n){const r=this.getEventData(t);r.moving||(r.moving=!0,this.addClass("edge-moving"),this.notify("edge:move",{e:t,x:e,y:n,view:this,cell:this.cell,edge:this.cell})),this.cell.translate(e-r.x,n-r.y,{ui:!0}),this.setEventData(t,{x:e,y:n}),this.notify("edge:moving",{e:t,x:e,y:n,view:this,cell:this.cell,edge:this.cell})}stopEdgeDragging(t,e,n){const r=this.getEventData(t);r.moving&&(this.removeClass("edge-moving"),this.notify("edge:moved",{e:t,x:e,y:n,view:this,cell:this.cell,edge:this.cell})),r.moving=!1}prepareArrowheadDragging(t,e){const n=this.getTerminalMagnet(t),r={action:"drag-arrowhead",x:e.x,y:e.y,isNewEdge:!0===e.isNewEdge,terminalType:t,initialMagnet:n,initialTerminal:yo(this.cell[t]),fallbackAction:e.fallbackAction||"revert",getValidateConnectionArgs:this.createValidateConnectionArgs(t),options:e.options};return this.beforeArrowheadDragging(r),r}createValidateConnectionArgs(t){const e=[];let n;e[4]=t,e[5]=this;let r=0,i=0;"source"===t?(r=2,n="target"):(i=2,n="source");const s=this.cell[n],o=s.cell;if(o){let t;const n=e[r]=this.graph.findViewByCell(o);n&&(t=n.getMagnetFromEdgeTerminal(s),t===n.container&&(t=void 0)),e[r+1]=t}return(t,n)=>(e[i]=t,e[i+1]=t.container===n?void 0:n,e)}beforeArrowheadDragging(t){t.zIndex=this.cell.zIndex,this.cell.toFront();const e=this.container.style;t.pointerEvents=e.pointerEvents,e.pointerEvents="none",this.graph.options.connecting.highlight&&this.highlightAvailableMagnets(t)}afterArrowheadDragging(t){null!=t.zIndex&&(this.cell.setZIndex(t.zIndex,{ui:!0}),t.zIndex=null);this.container.style.pointerEvents=t.pointerEvents||"",this.graph.options.connecting.highlight&&this.unhighlightAvailableMagnets(t)}validateConnection(t,e,n,r,i,s,o){const a=this.graph.options.connecting,l=a.allowLoop,c=a.allowNode,h=a.allowEdge,u=a.allowPort,g=a.allowMulti,d=a.validateConnection,f=s?s.cell:null,p="target"===i?n:t,m="target"===i?r:e;let y=!0;const v=a=>{const l="source"===i?o?o.port:null:f?f.getSourcePortId():null,c="target"===i?o?o.port:null:f?f.getTargetPortId():null;return ef(a,this.graph,{edge:f,edgeView:s,sourceView:t,targetView:n,sourcePort:l,targetPort:c,sourceMagnet:e,targetMagnet:r,sourceCell:t?t.cell:null,targetCell:n?n.cell:null,type:i})};if(null!=l&&("boolean"==typeof l?l||t!==n||(y=!1):y=v(l)),y&&null!=u&&("boolean"==typeof u?!u&&m&&(y=!1):y=v(u)),y&&null!=h&&("boolean"==typeof h?!h&&gA.isEdgeView(p)&&(y=!1):y=v(h)),y&&null!=c&&null==m&&("boolean"==typeof c?!c&&uA.isNodeView(p)&&(y=!1):y=v(c)),y&&null!=g&&s){const t=s.cell,e="source"===i?o:t.getSource(),n="target"===i?o:t.getTarget(),r=o?this.graph.getCellById(o.cell):null;if(e&&n&&e.cell&&n.cell&&r)if("function"==typeof g)y=v(g);else{const t=this.graph.model.getConnectedEdges(r,{outgoing:"source"===i,incoming:"target"===i});if(t.length)if("withPort"===g){t.some((t=>{const r=t.getSource(),i=t.getTarget();return r&&i&&r.cell===e.cell&&i.cell===n.cell&&null!=r.port&&r.port===e.port&&null!=i.port&&i.port===n.port}))&&(y=!1)}else if(!g){t.some((t=>{const r=t.getSource(),i=t.getTarget();return r&&i&&r.cell===e.cell&&i.cell===n.cell}))&&(y=!1)}}}return y&&null!=d&&(y=v(d)),y}allowConnectToBlank(t){const e=this.graph,n=e.options.connecting.allowBlank;if("function"!=typeof n)return!!n;const r=e.findViewByCell(t),i=t.getSourceCell(),s=t.getTargetCell(),o=e.findViewByCell(i),a=e.findViewByCell(s);return ef(n,e,{edge:t,edgeView:r,sourceCell:i,targetCell:s,sourceView:o,targetView:a,sourcePort:t.getSourcePortId(),targetPort:t.getTargetPortId(),sourceMagnet:r.sourceMagnet,targetMagnet:r.targetMagnet})}validateEdge(t,e,n){const r=this.graph;if(!this.allowConnectToBlank(t)){const e=t.getSourceCellId(),n=t.getTargetCellId();if(!e||!n)return!1}const i=r.options.connecting.validateEdge;return!i||ef(i,r,{edge:t,type:e,previous:n})}arrowheadDragging(t,e,n,r){r.x=e,r.y=n,r.currentTarget!==t&&(r.currentMagnet&&r.currentView&&r.currentView.unhighlight(r.currentMagnet,{type:"magnetAdsorbed"}),r.currentView=this.graph.findViewByElem(t),r.currentView?(r.currentMagnet=r.currentView.findMagnet(t),r.currentMagnet&&this.validateConnection(...r.getValidateConnectionArgs(r.currentView,r.currentMagnet),r.currentView.getEdgeTerminal(r.currentMagnet,e,n,this.cell,r.terminalType))?r.currentView.highlight(r.currentMagnet,{type:"magnetAdsorbed"}):r.currentMagnet=null):r.currentMagnet=null),r.currentTarget=t,this.cell.prop(r.terminalType,{x:e,y:n},Object.assign(Object.assign({},r.options),{ui:!0}))}arrowheadDragged(t,e,n){const r=t.currentView,i=t.currentMagnet;if(!i||!r)return;r.unhighlight(i,{type:"magnetAdsorbed"});const s=t.terminalType,o=r.getEdgeTerminal(i,e,n,this.cell,s);this.cell.setTerminal(s,o,{ui:!0})}snapArrowhead(t,e,n){const r=this.graph,{snap:i,allowEdge:s}=r.options.connecting,o="object"==typeof i&&i.radius||50,a=r.renderer.findViewsInArea({x:t-o,y:e-o,width:2*o,height:2*o},{nodeOnly:!0});if(s){const n=r.renderer.findEdgeViewsFromPoint({x:t,y:e},o).filter((t=>t!==this));a.push(...n)}const l=n.closestView||null,c=n.closestMagnet||null;let h;n.closestView=null,n.closestMagnet=null;let u=Number.MAX_SAFE_INTEGER;const g=new ky(t,e);let d;a.forEach((r=>{if("false"!==r.container.getAttribute("magnet")){if(r.isNodeView())h=r.cell.getBBox().getCenter().distance(g);else if(r.isEdgeView()){const t=r.getClosestPoint(g);h=t?t.distance(g):Number.MAX_SAFE_INTEGER}h<o&&h<u&&(c===r.container||this.validateConnection(...n.getValidateConnectionArgs(r,null),r.getEdgeTerminal(r.container,t,e,this.cell,n.terminalType)))&&(u=h,n.closestView=r,n.closestMagnet=r.container)}r.container.querySelectorAll("[magnet]").forEach((i=>{if("false"!==i.getAttribute("magnet")){const s=r.getBBoxOfElement(i);h=g.distance(s.getCenter()),h<o&&h<u&&(c===i||this.validateConnection(...n.getValidateConnectionArgs(r,i),r.getEdgeTerminal(i,t,e,this.cell,n.terminalType)))&&(u=h,n.closestView=r,n.closestMagnet=i)}}))}));const f=n.terminalType,p=n.closestView,m=n.closestMagnet,y=c!==m;if(l&&y&&l.unhighlight(c,{type:"magnetAdsorbed"}),p){if(!y)return;p.highlight(m,{type:"magnetAdsorbed"}),d=p.getEdgeTerminal(m,t,e,this.cell,f)}else d={x:t,y:e};this.cell.setTerminal(f,d,{},Object.assign(Object.assign({},n.options),{ui:!0}))}snapArrowheadEnd(t){const e=t.closestView,n=t.closestMagnet;e&&n&&(e.unhighlight(n,{type:"magnetAdsorbed"}),t.currentMagnet=e.findMagnet(n)),t.closestView=null,t.closestMagnet=null}finishEmbedding(t){this.graph.options.embedding.enabled&&this.cell.updateParent()&&(t.zIndex=null)}fallbackConnection(t){if("remove"===t.fallbackAction)this.cell.remove({ui:!0});else this.cell.prop(t.terminalType,t.initialTerminal,{ui:!0})}notifyConnectionEvent(t,e){const n=t.terminalType,r=t.initialTerminal,i=this.cell[n];if(i&&!Xw.equalTerminals(r,i)){const s=this.graph,o=r,a=o.cell?s.getCellById(o.cell):null,l=o.port,c=a?s.findViewByCell(a):null,h=a||t.isNewEdge?null:ky.create(r).toJSON(),u=i,g=u.cell?s.getCellById(u.cell):null,d=u.port,f=g?s.findViewByCell(g):null,p=g?null:ky.create(i).toJSON();this.notify("edge:connected",{e:e,previousCell:a,previousPort:l,previousView:c,previousPoint:h,currentCell:g,currentView:f,currentPort:d,currentPoint:p,previousMagnet:t.initialMagnet,currentMagnet:t.currentMagnet,edge:this.cell,view:this,type:n,isNew:t.isNewEdge})}}highlightAvailableMagnets(t){const e=this.graph,n=e.model.getCells();t.marked={};for(let r=0,i=n.length;r<i;r+=1){const i=e.findViewByCell(n[r]);if(!i||i.cell.id===this.cell.id)continue;const s=Array.prototype.slice.call(i.container.querySelectorAll("[magnet]"));"false"!==i.container.getAttribute("magnet")&&s.push(i.container);const o=s.filter((e=>this.validateConnection(...t.getValidateConnectionArgs(i,e),i.getEdgeTerminal(e,t.x,t.y,this.cell,t.terminalType))));if(o.length>0){for(let t=0,e=o.length;t<e;t+=1)i.highlight(o[t],{type:"magnetAvailable"});i.highlight(null,{type:"nodeAvailable"}),t.marked[i.cell.id]=o}}}unhighlightAvailableMagnets(t){const e=t.marked||{};Object.keys(e).forEach((t=>{const n=this.graph.findViewByCell(t);if(n){e[t].forEach((t=>{n.unhighlight(t,{type:"magnetAvailable"})})),n.unhighlight(null,{type:"nodeAvailable"})}})),t.marked=null}startArrowheadDragging(t,e,n){if(!this.can("arrowheadMovable"))return void this.notifyUnhandledMouseDown(t,e,n);const r=t.target.getAttribute("data-terminal"),i=this.prepareArrowheadDragging(r,{x:e,y:n});this.setEventData(t,i)}dragArrowhead(t,e,n){const r=this.getEventData(t);this.graph.options.connecting.snap?this.snapArrowhead(e,n,r):this.arrowheadDragging(this.getEventTarget(t),e,n,r)}stopArrowheadDragging(t,e,n){const r=this.graph,i=this.getEventData(t);r.options.connecting.snap?this.snapArrowheadEnd(i):this.arrowheadDragged(i,e,n);this.validateEdge(this.cell,i.terminalType,i.initialTerminal)?(this.finishEmbedding(i),this.notifyConnectionEvent(i,t)):this.fallbackConnection(i),this.afterArrowheadDragging(i)}startLabelDragging(t,e,n){if(this.can("edgeLabelMovable")){const e=t.currentTarget,n=parseInt(e.getAttribute("data-index"),10),r=this.getLabelPositionAngle(n),i=this.getLabelPositionArgs(n),s=this.getDefaultLabelPositionArgs(),o=this.mergeLabelPositionArgs(i,s);this.setEventData(t,{index:n,positionAngle:r,positionArgs:o,stopPropagation:!0,action:"drag-label"})}else this.setEventData(t,{stopPropagation:!0});this.graph.view.delegateDragEvents(t,this)}dragLabel(t,e,n){const r=this.getEventData(t),i=this.cell.getLabelAt(r.index),s=Sh({},i,{position:this.getLabelPosition(e,n,r.positionAngle,r.positionArgs)});this.cell.setLabelAt(r.index,s)}stopLabelDragging(t,e,n){}}!function(t){t.toStringTag=`X6.${t.name}`,t.isEdgeView=function(e){if(null==e)return!1;if(e instanceof t)return!0;const n=e[Symbol.toStringTag],r=e;return(null==n||n===t.toStringTag)&&"function"==typeof r.isNodeView&&"function"==typeof r.isEdgeView&&"function"==typeof r.confirmUpdate&&"function"==typeof r.update&&"function"==typeof r.getConnection}}(gA||(gA={})),gA.config({isSvgElement:!0,priority:1,bootstrap:["render","source","target"],actions:{view:["render"],markup:["render"],attrs:["update"],source:["source","update"],target:["target","update"],router:["update"],connector:["update"],labels:["labels"],defaultLabel:["labels"],tools:["tools"],vertices:["vertices","update"]}}),gA.registry.register("edge",gA,!0);class dA extends rx{get options(){return this.graph.options}constructor(e){super(),this.graph=e;const{selectors:n,fragment:r}=t.Markup.parseJSONMarkup(dA.markup);this.background=n.background,this.grid=n.grid,this.svg=n.svg,this.defs=n.defs,this.viewport=n.viewport,this.primer=n.primer,this.stage=n.stage,this.decorator=n.decorator,this.overlay=n.overlay,this.container=this.options.container,this.restore=dA.snapshoot(this.container),lp(this.container,this.prefixClassName("graph")),kp(this.container,r),this.delegateEvents()}delegateEvents(){const t=this.constructor;return super.delegateEvents(t.events),this}guard(t,e){return"mousedown"===t.type&&2===t.button||(!(!this.options.guard||!this.options.guard(t,e))||(t.data&&void 0!==t.data.guarded?t.data.guarded:!(e&&e.cell&&Ww.isCell(e.cell))&&(this.svg!==t.target&&this.container!==t.target&&!this.svg.contains(t.target))))}findView(t){return this.graph.findViewByElem(t)}onDblClick(t){this.options.preventDefaultDblClick&&t.preventDefault();const e=this.normalizeEvent(t),n=this.findView(e.target);if(this.guard(e,n))return;const r=this.graph.snapToGrid(e.clientX,e.clientY);n?n.onDblClick(e,r.x,r.y):this.graph.trigger("blank:dblclick",{e:e,x:r.x,y:r.y})}onClick(t){if(this.getMouseMovedCount(t)<=this.options.clickThreshold){const e=this.normalizeEvent(t),n=this.findView(e.target);if(this.guard(e,n))return;const r=this.graph.snapToGrid(e.clientX,e.clientY);n?n.onClick(e,r.x,r.y):this.graph.trigger("blank:click",{e:e,x:r.x,y:r.y})}}isPreventDefaultContextMenu(t){let e=this.options.preventDefaultContextMenu;return"function"==typeof e&&(e=ef(e,this.graph,{view:t})),e}onContextMenu(t){const e=this.normalizeEvent(t),n=this.findView(e.target);if(this.isPreventDefaultContextMenu(n)&&t.preventDefault(),this.guard(e,n))return;const r=this.graph.snapToGrid(e.clientX,e.clientY);n?n.onContextMenu(e,r.x,r.y):this.graph.trigger("blank:contextmenu",{e:e,x:r.x,y:r.y})}delegateDragEvents(t,e){null==t.data&&(t.data={}),this.setEventData(t,{currentView:e||null,mouseMovedCount:0,startPosition:{x:t.clientX,y:t.clientY}});const n=this.constructor;this.delegateDocumentEvents(n.documentEvents,t.data),this.undelegateEvents()}getMouseMovedCount(t){return this.getEventData(t).mouseMovedCount||0}onMouseDown(t){const e=this.normalizeEvent(t),n=this.findView(e.target);if(this.guard(e,n))return;this.options.preventDefaultMouseDown&&t.preventDefault();const r=this.graph.snapToGrid(e.clientX,e.clientY);n?n.onMouseDown(e,r.x,r.y):(this.options.preventDefaultBlankAction&&["touchstart"].includes(e.type)&&t.preventDefault(),this.graph.trigger("blank:mousedown",{e:e,x:r.x,y:r.y})),this.delegateDragEvents(e,n)}onMouseMove(t){const e=this.getEventData(t),n=e.startPosition;if(n&&n.x===t.clientX&&n.y===t.clientY)return;null==e.mouseMovedCount&&(e.mouseMovedCount=0),e.mouseMovedCount+=1;if(e.mouseMovedCount<=this.options.moveThreshold)return;const r=this.normalizeEvent(t),i=this.graph.snapToGrid(r.clientX,r.clientY),s=e.currentView;s?s.onMouseMove(r,i.x,i.y):this.graph.trigger("blank:mousemove",{e:r,x:i.x,y:i.y}),this.setEventData(r,e)}onMouseUp(t){this.undelegateDocumentEvents();const e=this.normalizeEvent(t),n=this.graph.snapToGrid(e.clientX,e.clientY),r=this.getEventData(t).currentView;if(r?r.onMouseUp(e,n.x,n.y):this.graph.trigger("blank:mouseup",{e:e,x:n.x,y:n.y}),!t.isPropagationStopped()){const e=new ly(t,{type:"click",data:t.data});this.onClick(e)}t.stopImmediatePropagation(),this.delegateEvents()}onMouseOver(t){const e=this.normalizeEvent(t),n=this.findView(e.target);if(!this.guard(e,n))if(n)n.onMouseOver(e);else{if(this.container===e.target)return;this.graph.trigger("blank:mouseover",{e:e})}}onMouseOut(t){const e=this.normalizeEvent(t),n=this.findView(e.target);if(!this.guard(e,n))if(n)n.onMouseOut(e);else{if(this.container===e.target)return;this.graph.trigger("blank:mouseout",{e:e})}}onMouseEnter(t){const e=this.normalizeEvent(t),n=this.findView(e.target);if(this.guard(e,n))return;const r=this.graph.findViewByElem(e.relatedTarget);if(n){if(r===n)return;n.onMouseEnter(e)}else{if(r)return;this.graph.trigger("graph:mouseenter",{e:e})}}onMouseLeave(t){const e=this.normalizeEvent(t),n=this.findView(e.target);if(this.guard(e,n))return;const r=this.graph.findViewByElem(e.relatedTarget);if(n){if(r===n)return;n.onMouseLeave(e)}else{if(r)return;this.graph.trigger("graph:mouseleave",{e:e})}}onMouseWheel(t){const e=this.normalizeEvent(t),n=this.findView(e.target);if(this.guard(e,n))return;const r=e.originalEvent,i=this.graph.snapToGrid(r.clientX,r.clientY),s=Math.max(-1,Math.min(1,r.wheelDelta||-r.detail));n?n.onMouseWheel(e,i.x,i.y,s):this.graph.trigger("blank:mousewheel",{e:e,delta:s,x:i.x,y:i.y})}onCustomEvent(t){const e=t.currentTarget,n=e.getAttribute("event")||e.getAttribute("data-event");if(n){const r=this.findView(e);if(r){const e=this.normalizeEvent(t);if(this.guard(e,r))return;const i=this.graph.snapToGrid(e.clientX,e.clientY);r.onCustomEvent(e,n,i.x,i.y)}}}handleMagnetEvent(t,e){const n=t.currentTarget,r=n.getAttribute("magnet");if(r&&"false"!==r.toLowerCase()){const r=this.findView(n);if(r){const i=this.normalizeEvent(t);if(this.guard(i,r))return;const s=this.graph.snapToGrid(i.clientX,i.clientY);ef(e,this.graph,r,i,n,s.x,s.y)}}}onMagnetMouseDown(t){this.handleMagnetEvent(t,((t,e,n,r,i)=>{t.onMagnetMouseDown(e,n,r,i)}))}onMagnetDblClick(t){this.handleMagnetEvent(t,((t,e,n,r,i)=>{t.onMagnetDblClick(e,n,r,i)}))}onMagnetContextMenu(t){const e=this.findView(t.target);this.isPreventDefaultContextMenu(e)&&t.preventDefault(),this.handleMagnetEvent(t,((t,e,n,r,i)=>{t.onMagnetContextMenu(e,n,r,i)}))}onLabelMouseDown(t){const e=t.currentTarget,n=this.findView(e);if(n){const e=this.normalizeEvent(t);if(this.guard(e,n))return;const r=this.graph.snapToGrid(e.clientX,e.clientY);n.onLabelMouseDown(e,r.x,r.y)}}onImageDragStart(){return!1}dispose(){this.undelegateEvents(),this.undelegateDocumentEvents(),this.restore(),this.restore=()=>{}}}n([rx.dispose()],dA.prototype,"dispose",null),function(t){const e=`${jb.prefixCls}-graph`;t.markup=[{ns:pp.xhtml,tagName:"div",selector:"background",className:`${e}-background`},{ns:pp.xhtml,tagName:"div",selector:"grid",className:`${e}-grid`},{ns:pp.svg,tagName:"svg",selector:"svg",className:`${e}-svg`,attrs:{width:"100%",height:"100%","xmlns:xlink":pp.xlink},children:[{tagName:"defs",selector:"defs"},{tagName:"g",selector:"viewport",className:`${e}-svg-viewport`,children:[{tagName:"g",selector:"primer",className:`${e}-svg-primer`},{tagName:"g",selector:"stage",className:`${e}-svg-stage`},{tagName:"g",selector:"decorator",className:`${e}-svg-decorator`},{tagName:"g",selector:"overlay",className:`${e}-svg-overlay`}]}]}],t.snapshoot=function(t){const e=t.cloneNode();return t.childNodes.forEach((t=>e.appendChild(t))),()=>{for(Tp(t);t.attributes.length>0;)t.removeAttribute(t.attributes[0].name);for(let n=0,r=e.attributes.length;n<r;n+=1){const r=e.attributes[n];t.setAttribute(r.name,r.value)}e.childNodes.forEach((e=>t.appendChild(e)))}}}(dA||(dA={})),function(t){const e=jb.prefixCls;t.events={dblclick:"onDblClick",contextmenu:"onContextMenu",touchstart:"onMouseDown",mousedown:"onMouseDown",mouseover:"onMouseOver",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mousewheel:"onMouseWheel",DOMMouseScroll:"onMouseWheel",[`mouseenter .${e}-cell`]:"onMouseEnter",[`mouseleave .${e}-cell`]:"onMouseLeave",[`mouseenter .${e}-cell-tools`]:"onMouseEnter",[`mouseleave .${e}-cell-tools`]:"onMouseLeave",[`mousedown .${e}-cell [event]`]:"onCustomEvent",[`touchstart .${e}-cell [event]`]:"onCustomEvent",[`mousedown .${e}-cell [data-event]`]:"onCustomEvent",[`touchstart .${e}-cell [data-event]`]:"onCustomEvent",[`dblclick .${e}-cell [magnet]`]:"onMagnetDblClick",[`contextmenu .${e}-cell [magnet]`]:"onMagnetContextMenu",[`mousedown .${e}-cell [magnet]`]:"onMagnetMouseDown",[`touchstart .${e}-cell [magnet]`]:"onMagnetMouseDown",[`dblclick .${e}-cell [data-magnet]`]:"onMagnetDblClick",[`contextmenu .${e}-cell [data-magnet]`]:"onMagnetContextMenu",[`mousedown .${e}-cell [data-magnet]`]:"onMagnetMouseDown",[`touchstart .${e}-cell [data-magnet]`]:"onMagnetMouseDown",[`dragstart .${e}-cell image`]:"onImageDragStart",[`mousedown .${e}-edge .${e}-edge-label`]:"onLabelMouseDown",[`touchstart .${e}-edge .${e}-edge-label`]:"onLabelMouseDown"},t.documentEvents={mousemove:"onMouseMove",touchmove:"onMouseMove",mouseup:"onMouseUp",touchend:"onMouseUp",touchcancel:"onMouseUp"}}(dA||(dA={}));class fA extends r{get options(){return this.graph.options}get model(){return this.graph.model}get view(){return this.graph.view}constructor(t){super(),this.graph=t,this.init()}init(){}}class pA extends fA{init(){jb.autoInsertCSS&&Py("core",".x6-graph {\n position: relative;\n overflow: hidden;\n outline: none;\n touch-action: none;\n}\n.x6-graph-background,\n.x6-graph-grid,\n.x6-graph-svg {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n.x6-graph-background-stage,\n.x6-graph-grid-stage,\n.x6-graph-svg-stage {\n user-select: none;\n}\n.x6-graph.x6-graph-pannable {\n cursor: grab;\n cursor: -moz-grab;\n cursor: -webkit-grab;\n}\n.x6-graph.x6-graph-panning {\n cursor: grabbing;\n cursor: -moz-grabbing;\n cursor: -webkit-grabbing;\n user-select: none;\n}\n.x6-node {\n cursor: move;\n /* stylelint-disable-next-line */\n}\n.x6-node.x6-node-immovable {\n cursor: default;\n}\n.x6-node * {\n -webkit-user-drag: none;\n}\n.x6-node .scalable * {\n vector-effect: non-scaling-stroke;\n}\n.x6-node [magnet='true'] {\n cursor: crosshair;\n transition: opacity 0.3s;\n}\n.x6-node [magnet='true']:hover {\n opacity: 0.7;\n}\n.x6-node foreignObject {\n display: block;\n overflow: visible;\n background-color: transparent;\n}\n.x6-node foreignObject > body {\n position: static;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n overflow: visible;\n background-color: transparent;\n}\n.x6-edge .source-marker,\n.x6-edge .target-marker {\n vector-effect: non-scaling-stroke;\n}\n.x6-edge .connection {\n stroke-linejoin: round;\n fill: none;\n}\n.x6-edge .connection-wrap {\n cursor: move;\n opacity: 0;\n fill: none;\n stroke: #000;\n stroke-width: 15;\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n.x6-edge .connection-wrap:hover {\n opacity: 0.4;\n stroke-opacity: 0.4;\n}\n.x6-edge .vertices {\n cursor: move;\n opacity: 0;\n}\n.x6-edge .vertices .vertex {\n fill: #1abc9c;\n}\n.x6-edge .vertices .vertex :hover {\n fill: #34495e;\n stroke: none;\n}\n.x6-edge .vertices .vertex-remove {\n cursor: pointer;\n fill: #fff;\n}\n.x6-edge .vertices .vertex-remove-area {\n cursor: pointer;\n opacity: 0.1;\n}\n.x6-edge .vertices .vertex-group:hover .vertex-remove-area {\n opacity: 1;\n}\n.x6-edge .arrowheads {\n cursor: move;\n opacity: 0;\n}\n.x6-edge .arrowheads .arrowhead {\n fill: #1abc9c;\n}\n.x6-edge .arrowheads .arrowhead :hover {\n fill: #f39c12;\n stroke: none;\n}\n.x6-edge .tools {\n cursor: pointer;\n opacity: 0;\n}\n.x6-edge .tools .tool-options {\n display: none;\n}\n.x6-edge .tools .tool-remove circle {\n fill: #f00;\n}\n.x6-edge .tools .tool-remove path {\n fill: #fff;\n}\n.x6-edge:hover .vertices,\n.x6-edge:hover .arrowheads,\n.x6-edge:hover .tools {\n opacity: 1;\n}\n.x6-highlight-opacity {\n opacity: 0.3;\n}\n.x6-cell-tool-editor {\n position: relative;\n display: inline-block;\n min-height: 1em;\n margin: 0;\n padding: 0;\n line-height: 1;\n white-space: normal;\n text-align: center;\n vertical-align: top;\n overflow-wrap: normal;\n outline: none;\n transform-origin: 0 0;\n -webkit-user-drag: none;\n}\n.x6-edge-tool-editor {\n border: 1px solid #275fc5;\n border-radius: 2px;\n}\n")}dispose(){My("core")}}var mA,yA;n([pA.dispose()],pA.prototype,"dispose",null),t.Options=void 0,(mA=t.Options||(t.Options={})).get=function(t){const{grid:n,panning:r,mousewheel:i,embedding:s}=t,o=e(t,["grid","panning","mousewheel","embedding"]),a=t.container;if(null==a)throw new Error("Ensure the container of the graph is specified and valid");null==o.width&&(o.width=a.clientWidth),null==o.height&&(o.height=a.clientHeight);const l=Sh({},mA.defaults,o),c={size:10,visible:!1};return l.grid="number"==typeof n?{size:n,visible:!1}:"boolean"==typeof n?Object.assign(Object.assign({},c),{visible:n}):Object.assign(Object.assign({},c),n),["panning","mousewheel","embedding"].forEach((e=>{const n=t[e];"boolean"==typeof n?l[e].enabled=n:l[e]=Object.assign(Object.assign({},l[e]),n)})),l},function(t){t.defaults={x:0,y:0,scaling:{min:.01,max:16},grid:{size:10,visible:!1},background:!1,panning:{enabled:!1,eventTypes:["leftMouseDown"]},mousewheel:{enabled:!1,factor:1.2,zoomAtMousePosition:!0},highlighting:{default:{name:"stroke",args:{padding:3}},nodeAvailable:{name:"className",args:{className:jb.prefix("available-node")}},magnetAvailable:{name:"className",args:{className:jb.prefix("available-magnet")}}},connecting:{snap:!1,allowLoop:!0,allowNode:!0,allowEdge:!1,allowPort:!0,allowBlank:!0,allowMulti:!0,highlight:!1,anchor:"center",edgeAnchor:"ratio",connectionPoint:"boundary",router:"normal",connector:"normal",validateConnection:({type:t,sourceView:e,targetView:n})=>null!=("target"===t?n:e),createEdge:()=>new nA},translating:{restrict:!1},embedding:{enabled:!1,findParent:"bbox",frontOnly:!0,validate:()=>!0},moveThreshold:0,clickThreshold:0,magnetThreshold:0,preventDefaultDblClick:!0,preventDefaultMouseDown:!1,preventDefaultContextMenu:!0,preventDefaultBlankAction:!0,interacting:{edgeLabelMovable:!1},async:!0,virtual:!1,guard:()=>!1}}(t.Options||(t.Options={}));class vA extends fA{get elem(){return this.view.grid}get grid(){return this.options.grid}init(){this.startListening(),this.draw(this.grid)}startListening(){this.graph.on("scale",this.update,this),this.graph.on("translate",this.update,this)}stopListening(){this.graph.off("scale",this.update,this),this.graph.off("translate",this.update,this)}setVisible(t){this.grid.visible!==t&&(this.grid.visible=t,this.update())}getGridSize(){return this.grid.size}setGridSize(t){this.grid.size=Math.max(t,1),this.update()}show(){this.setVisible(!0),this.update()}hide(){this.setVisible(!1),this.update()}clear(){this.elem.style.backgroundImage=""}draw(t){this.clear(),this.instance=null,Object.assign(this.grid,t),this.patterns=this.resolveGrid(t),this.update()}update(t={}){const n=this.grid.size;if(n<=1||!this.grid.visible)return this.clear();const r=this.graph.matrix(),i=this.getInstance(),s=Array.isArray(t)?t:[t];this.patterns.forEach(((t,o)=>{const a=`pattern_${o}`,l=r.a||1,c=r.d||1,{update:h,markup:u}=t,g=e(t,["update","markup"]),d=Object.assign(Object.assign(Object.assign({},g),s[o]),{sx:l,sy:c,ox:r.e||0,oy:r.f||0,width:n*l,height:n*c});i.has(a)||i.add(a,fm.create("pattern",{id:a,patternUnits:"userSpaceOnUse"},fm.createVectors(u)).node);const f=i.get(a);"function"==typeof h&&h(f.childNodes[0],d);let p=d.ox%d.width;p<0&&(p+=d.width);let m=d.oy%d.height;m<0&&(m+=d.height),$p(f,{x:p,y:m,width:d.width,height:d.height})}));const o=(new XMLSerializer).serializeToString(i.root),a=`url(data:image/svg+xml;base64,${btoa(o)})`;this.elem.style.backgroundImage=a}getInstance(){return this.instance||(this.instance=new ov),this.instance}resolveGrid(t){if(!t)return[];const e=t.type;if(null==e)return[Object.assign(Object.assign({},ov.presets.dot),t.args)];const n=ov.registry.get(e);if(n){let e=t.args||[];return Array.isArray(e)||(e=[e]),Array.isArray(n)?n.map(((t,n)=>Object.assign(Object.assign({},t),e[n]))):[Object.assign(Object.assign({},n),e[0])]}return ov.registry.onNotFound(e)}dispose(){this.stopListening(),this.clear()}}n([fA.dispose()],vA.prototype,"dispose",null);class bA extends fA{get container(){return this.graph.view.container}get viewport(){return this.graph.view.viewport}get stage(){return this.graph.view.stage}init(){this.resize()}getMatrix(){const t=this.viewport.getAttribute("transform");return t!==this.viewportTransformString&&(this.viewportMatrix=this.viewport.getCTM(),this.viewportTransformString=t),Fm(this.viewportMatrix)}setMatrix(t){const e=Fm(t),n=qm(e);this.viewport.setAttribute("transform",n),this.viewportMatrix=e,this.viewportTransformString=n}resize(t,e){let n=void 0===t?this.options.width:t,r=void 0===e?this.options.height:e;this.options.width=n,this.options.height=r,"number"==typeof n&&(n=Math.round(n)),"number"==typeof r&&(r=Math.round(r)),this.container.style.width=null==n?"":`${n}px`,this.container.style.height=null==r?"":`${r}px`;const i=this.getComputedSize();return this.graph.trigger("resize",Object.assign({},i)),this}getComputedSize(){let t=this.options.width,e=this.options.height;return th(t)||(t=this.container.clientWidth),th(e)||(e=this.container.clientHeight),{width:t,height:e}}getScale(){return Xm(this.getMatrix())}scale(t,e=t,n=0,r=0){if(t=this.clampScale(t),e=this.clampScale(e),n||r){const i=this.getTranslation(),s=i.tx-n*(t-1),o=i.ty-r*(e-1);s===i.tx&&o===i.ty||this.translate(s,o)}const i=this.getMatrix();return i.a=t,i.d=e,this.setMatrix(i),this.graph.trigger("scale",{sx:t,sy:e,ox:n,oy:r}),this}clampScale(t){const e=this.graph.options.scaling;return Hi(t,e.min||.01,e.max||16)}getZoom(){return this.getScale().sx}zoom(t,e){e=e||{};let n=t,r=t;const i=this.getScale(),s=this.getComputedSize();let o=s.width/2,a=s.height/2;if(e.absolute||(n+=i.sx,r+=i.sy),e.scaleGrid&&(n=Math.round(n/e.scaleGrid)*e.scaleGrid,r=Math.round(r/e.scaleGrid)*e.scaleGrid),e.maxScale&&(n=Math.min(e.maxScale,n),r=Math.min(e.maxScale,r)),e.minScale&&(n=Math.max(e.minScale,n),r=Math.max(e.minScale,r)),e.center&&(o=e.center.x,a=e.center.y),n=this.clampScale(n),r=this.clampScale(r),o||a){const t=this.getTranslation(),e=o-(o-t.tx)*(n/i.sx),s=a-(a-t.ty)*(r/i.sy);e===t.tx&&s===t.ty||this.translate(e,s)}return this.scale(n,r),this}getRotation(){return Ym(this.getMatrix())}rotate(e,n,r){if(null==n||null==r){const e=t.Util.getBBox(this.stage);n=e.width/2,r=e.height/2}const i=this.getMatrix().translate(n,r).rotate(e).translate(-n,-r);return this.setMatrix(i),this}getTranslation(){return Zm(this.getMatrix())}translate(t,e){const n=this.getMatrix();n.e=t||0,n.f=e||0,this.setMatrix(n);const r=this.getTranslation();return this.options.x=r.tx,this.options.y=r.ty,this.graph.trigger("translate",Object.assign({},r)),this}setOrigin(t,e){return this.translate(t||0,e||0)}fitToContent(t,e,n,r){if("object"==typeof t){const i=t;t=i.gridWidth||1,e=i.gridHeight||1,n=i.padding||0,r=i}else t=t||1,e=e||1,n=n||0,null==r&&(r={});const i=Rf(n),s=r.border||0,o=r.contentArea?Ny.create(r.contentArea):this.getContentArea(r);s>0&&o.inflate(s);const a=this.getScale(),l=this.getTranslation(),c=a.sx,h=a.sy;o.x*=c,o.y*=h,o.width*=c,o.height*=h;let u=Math.max(Math.ceil((o.width+o.x)/t),1)*t,g=Math.max(Math.ceil((o.height+o.y)/e),1)*e,d=0,f=0;("negative"===r.allowNewOrigin&&o.x<0||"positive"===r.allowNewOrigin&&o.x>=0||"any"===r.allowNewOrigin)&&(d=Math.ceil(-o.x/t)*t,d+=i.left,u+=d),("negative"===r.allowNewOrigin&&o.y<0||"positive"===r.allowNewOrigin&&o.y>=0||"any"===r.allowNewOrigin)&&(f=Math.ceil(-o.y/e)*e,f+=i.top,g+=f),u+=i.right,g+=i.bottom,u=Math.max(u,r.minWidth||0),g=Math.max(g,r.minHeight||0),u=Math.min(u,r.maxWidth||Number.MAX_SAFE_INTEGER),g=Math.min(g,r.maxHeight||Number.MAX_SAFE_INTEGER);const p=this.getComputedSize(),m=u!==p.width||g!==p.height;return(d!==l.tx||f!==l.ty)&&this.translate(d,f),m&&this.resize(u,g),new Ny(-d/c,-f/h,u/c,g/h)}scaleContentToFit(t={}){this.scaleContentToFitImpl(t)}scaleContentToFitImpl(t={},e=!0){let n,r;if(t.contentArea){const e=t.contentArea;n=this.graph.localToGraph(e),r=ky.create(e)}else n=this.getContentBBox(t),r=this.graph.graphToLocal(n);if(!n.width||!n.height)return;const i=Rf(t.padding),s=t.minScale||0,o=t.maxScale||Number.MAX_SAFE_INTEGER,a=t.minScaleX||s,l=t.maxScaleX||o,c=t.minScaleY||s,h=t.maxScaleY||o;let u;if(t.viewportArea)u=t.viewportArea;else{const t=this.getComputedSize(),e=this.getTranslation();u={x:e.tx,y:e.ty,width:t.width,height:t.height}}u=Ny.create(u).moveAndExpand({x:i.left,y:i.top,width:-i.left-i.right,height:-i.top-i.bottom});const g=this.getScale();let d=u.width/n.width*g.sx,f=u.height/n.height*g.sy;!1!==t.preserveAspectRatio&&(d=f=Math.min(d,f));const p=t.scaleGrid;if(p&&(d=p*Math.floor(d/p),f=p*Math.floor(f/p)),d=Hi(d,a,l),f=Hi(f,c,h),this.scale(d,f),e){const t=this.options,e=u.x-r.x*d-t.x,n=u.y-r.y*f-t.y;this.translate(e,n)}}getContentArea(e={}){return!1!==e.useCellGeometry?this.model.getAllCellsBBox()||new Ny:t.Util.getBBox(this.stage)}getContentBBox(t={}){return this.graph.localToGraph(this.getContentArea(t))}getGraphArea(){const t=Ny.fromSize(this.getComputedSize());return this.graph.graphToLocal(t)}zoomToRect(t,e={}){const n=Ny.create(t),r=this.graph;e.contentArea=n,null==e.viewportArea&&(e.viewportArea={x:r.options.x,y:r.options.y,width:this.options.width,height:this.options.height}),this.scaleContentToFitImpl(e,!1);const i=n.getCenter();return this.centerPoint(i.x,i.y),this}zoomToFit(t={}){return this.zoomToRect(this.getContentArea(t),t)}centerPoint(t,e){const n=this.getComputedSize(),r=this.getScale(),i=this.getTranslation(),s=n.width/2,o=n.height/2;e="number"==typeof e?e:o,t=s-(t="number"==typeof t?t:s)*r.sx,e=o-e*r.sy,i.tx===t&&i.ty===e||this.translate(t,e)}centerContent(t){const e=this.graph.getContentArea(t).getCenter();this.centerPoint(e.x,e.y)}centerCell(t){return this.positionCell(t,"center")}positionPoint(t,e,n){const r=this.getComputedSize();(e=Df(e,Math.max(0,r.width)))<0&&(e=r.width+e),(n=Df(n,Math.max(0,r.height)))<0&&(n=r.height+n);const i=this.getTranslation(),s=this.getScale(),o=e-t.x*s.sx,a=n-t.y*s.sy;i.tx===o&&i.ty===a||this.translate(o,a)}positionRect(t,e){const n=Ny.create(t);switch(e){case"center":return this.positionPoint(n.getCenter(),"50%","50%");case"top":return this.positionPoint(n.getTopCenter(),"50%",0);case"top-right":return this.positionPoint(n.getTopRight(),"100%",0);case"right":return this.positionPoint(n.getRightMiddle(),"100%","50%");case"bottom-right":return this.positionPoint(n.getBottomRight(),"100%","100%");case"bottom":return this.positionPoint(n.getBottomCenter(),"50%","100%");case"bottom-left":return this.positionPoint(n.getBottomLeft(),0,"100%");case"left":return this.positionPoint(n.getLeftMiddle(),0,"50%");case"top-left":return this.positionPoint(n.getTopLeft(),0,0);default:return this}}positionCell(t,e){const n=t.getBBox();return this.positionRect(n,e)}positionContent(t,e){const n=this.graph.getContentArea(e);return this.positionRect(n,t)}}class xA extends fA{get elem(){return this.view.background}init(){this.startListening(),this.options.background&&this.draw(this.options.background)}startListening(){this.graph.on("scale",this.update,this),this.graph.on("translate",this.update,this)}stopListening(){this.graph.off("scale",this.update,this),this.graph.off("translate",this.update,this)}updateBackgroundImage(t={}){let e=t.size||"auto auto",n=t.position||"center";const r=this.graph.transform.getScale(),i=this.graph.translate();if("object"==typeof n){n=`${i.tx+r.sx*(n.x||0)}px ${i.ty+r.sy*(n.y||0)}px`}"object"==typeof e&&(e=Ny.fromSize(e).scale(r.sx,r.sy),e=`${e.width}px ${e.height}px`),this.elem.style.backgroundSize=e,this.elem.style.backgroundPosition=n}drawBackgroundImage(t,e={}){if(!(t instanceof HTMLImageElement))return void(this.elem.style.backgroundImage="");const n=this.optionsCache;if(n&&n.image!==e.image)return;let r;const i=e.opacity,s=e.size;let o=e.repeat||"no-repeat";const a=hv.registry.get(o);if("function"==typeof a){const n=e.quality||1;t.width*=n,t.height*=n;const i=a(t,e);if(!(i instanceof HTMLCanvasElement))throw new Error("Background pattern must return an HTML Canvas instance");r=i.toDataURL("image/png"),o=e.repeat&&o!==e.repeat?e.repeat:"repeat","object"==typeof s?(s.width*=i.width/t.width,s.height*=i.height/t.height):void 0===s&&(e.size={width:i.width/n,height:i.height/n})}else r=t.src,void 0===s&&(e.size={width:t.width,height:t.height});null!=n&&"object"==typeof e.size&&e.image===n.image&&e.repeat===n.repeat&&e.quality===n.quality&&(n.size=yo(e.size));const l=this.elem.style;l.backgroundImage=`url(${r})`,l.backgroundRepeat=o,l.opacity=null==i||i>=1?"":`${i}`,this.updateBackgroundImage(e)}updateBackgroundColor(t){this.elem.style.backgroundColor=t||""}updateBackgroundOptions(t){this.graph.options.background=t}update(){this.optionsCache&&this.updateBackgroundImage(this.optionsCache)}draw(t){const e=t||{};if(this.updateBackgroundOptions(t),this.updateBackgroundColor(e.color),e.image){this.optionsCache=yo(e);const n=document.createElement("img");n.onload=()=>this.drawBackgroundImage(n,t),n.setAttribute("crossorigin","anonymous"),n.src=e.image}else this.drawBackgroundImage(null),this.optionsCache=null}clear(){this.draw()}dispose(){this.clear(),this.stopListening()}}n([fA.dispose()],xA.prototype,"dispose",null);class wA extends fA{get widgetOptions(){return this.options.panning}get pannable(){return this.widgetOptions&&!0===this.widgetOptions.enabled}init(){this.onRightMouseDown=this.onRightMouseDown.bind(this),this.startListening(),this.updateClassName()}startListening(){this.graph.on("blank:mousedown",this.onMouseDown,this),this.graph.on("node:unhandled:mousedown",this.onMouseDown,this),this.graph.on("edge:unhandled:mousedown",this.onMouseDown,this),hy.on(this.graph.container,"mousedown",this.onRightMouseDown),this.mousewheelHandle=new dy(this.graph.container,this.onMouseWheel.bind(this),this.allowMouseWheel.bind(this)),this.mousewheelHandle.enable()}stopListening(){this.graph.off("blank:mousedown",this.onMouseDown,this),this.graph.off("node:unhandled:mousedown",this.onMouseDown,this),this.graph.off("edge:unhandled:mousedown",this.onMouseDown,this),hy.off(this.graph.container,"mousedown",this.onRightMouseDown),this.mousewheelHandle&&this.mousewheelHandle.disable()}allowPanning(e,n){return this.pannable&&t.ModifierKey.isMatch(e,this.widgetOptions.modifiers,n)}startPanning(t){const e=this.view.normalizeEvent(t);this.clientX=e.clientX,this.clientY=e.clientY,this.panning=!0,this.updateClassName(),hy.on(document.body,{"mousemove.panning touchmove.panning":this.pan.bind(this),"mouseup.panning touchend.panning":this.stopPanning.bind(this),"mouseleave.panning":this.stopPanning.bind(this)}),hy.on(window,"mouseup.panning",this.stopPanning.bind(this))}pan(t){const e=this.view.normalizeEvent(t),n=e.clientX-this.clientX,r=e.clientY-this.clientY;this.clientX=e.clientX,this.clientY=e.clientY,this.graph.translateBy(n,r)}stopPanning(t){this.panning=!1,this.updateClassName(),hy.off(document.body,".panning"),hy.off(window,".panning")}updateClassName(){const t=this.view.container,e=this.view.prefixClassName("graph-panning"),n=this.view.prefixClassName("graph-pannable");this.pannable?this.panning?(lp(t,e),cp(t,n)):(cp(t,e),lp(t,n)):(cp(t,e),cp(t,n))}onMouseDown({e:t}){if(!this.allowBlankMouseDown(t))return;const e=this.graph.getPlugin("selection"),n=e&&e.allowRubberband(t,!0);(this.allowPanning(t,!0)||this.allowPanning(t)&&!n)&&this.startPanning(t)}onRightMouseDown(t){const e=this.widgetOptions.eventTypes;(null==e?void 0:e.includes("rightMouseDown"))&&2===t.button&&this.allowPanning(t,!0)&&this.startPanning(t)}onMouseWheel(t,e,n){this.graph.translateBy(-e,-n)}allowBlankMouseDown(t){const e=this.widgetOptions.eventTypes;return(null==e?void 0:e.includes("leftMouseDown"))&&0===t.button||(null==e?void 0:e.includes("mouseWheelDown"))&&1===t.button}allowMouseWheel(t){var e;return this.pannable&&!t.ctrlKey&&(null===(e=this.widgetOptions.eventTypes)||void 0===e?void 0:e.includes("mouseWheel"))}autoPanning(t,e){const n=10,r=this.graph.getGraphArea();let i=0,s=0;t<=r.left+n&&(i=-10),e<=r.top+n&&(s=-10),t>=r.right-n&&(i=n),e>=r.bottom-n&&(s=n),0===i&&0===s||this.graph.translateBy(-i,-s)}enablePanning(){this.pannable||(this.widgetOptions.enabled=!0,this.updateClassName())}disablePanning(){this.pannable&&(this.widgetOptions.enabled=!1,this.updateClassName())}dispose(){this.stopListening()}}n([fA.dispose()],wA.prototype,"dispose",null);class AA extends fA{constructor(){super(...arguments),this.cumulatedFactor=1}get widgetOptions(){return this.options.mousewheel}init(){this.container=this.graph.container,this.target=this.widgetOptions.global?document:this.container,this.mousewheelHandle=new dy(this.target,this.onMouseWheel.bind(this),this.allowMouseWheel.bind(this)),this.widgetOptions.enabled&&this.enable(!0)}get disabled(){return!0!==this.widgetOptions.enabled}enable(t){(this.disabled||t)&&(this.widgetOptions.enabled=!0,this.mousewheelHandle.enable())}disable(){this.disabled||(this.widgetOptions.enabled=!1,this.mousewheelHandle.disable())}allowMouseWheel(e){const n=this.widgetOptions.guard;return(null==n||n(e))&&t.ModifierKey.isMatch(e,this.widgetOptions.modifiers)}onMouseWheel(e){const n=this.widgetOptions.guard;if((null==n||n(e))&&t.ModifierKey.isMatch(e,this.widgetOptions.modifiers)){const t=this.widgetOptions.factor||1.2;null==this.currentScale&&(this.startPos={x:e.clientX,y:e.clientY},this.currentScale=this.graph.transform.getScale().sx);e.deltaY<0?this.currentScale<.15?this.cumulatedFactor=(this.currentScale+.01)/this.currentScale:(this.cumulatedFactor=Math.round(this.currentScale*t*20)/20/this.currentScale,1===this.cumulatedFactor&&(this.cumulatedFactor=1.05)):this.currentScale<=.15?this.cumulatedFactor=(this.currentScale-.01)/this.currentScale:(this.cumulatedFactor=Math.round(this.currentScale*(1/t)*20)/20/this.currentScale,1===this.cumulatedFactor&&(this.cumulatedFactor=.95)),this.cumulatedFactor=Math.max(.01,Math.min(this.currentScale*this.cumulatedFactor,160)/this.currentScale);const n=this.currentScale;let r=this.graph.transform.clampScale(n*this.cumulatedFactor);if(r=Hi(r,this.widgetOptions.minScale||Number.MIN_SAFE_INTEGER,this.widgetOptions.maxScale||Number.MAX_SAFE_INTEGER),r!==n)if(this.widgetOptions.zoomAtMousePosition){const t=!!this.graph.getPlugin("scroller")?this.graph.clientToLocal(this.startPos):this.graph.clientToGraph(this.startPos);this.graph.zoom(r,{absolute:!0,center:t.clone()})}else this.graph.zoom(r,{absolute:!0});this.currentScale=null,this.cumulatedFactor=1}}dispose(){this.disable()}}n([r.dispose()],AA.prototype,"dispose",null);class CA extends fA{init(){this.resetRenderArea=Fg(this.resetRenderArea,200,{leading:!0}),this.resetRenderArea(),this.startListening()}startListening(){this.graph.on("translate",this.resetRenderArea,this),this.graph.on("scale",this.resetRenderArea,this),this.graph.on("resize",this.resetRenderArea,this)}stopListening(){this.graph.off("translate",this.resetRenderArea,this),this.graph.off("scale",this.resetRenderArea,this),this.graph.off("resize",this.resetRenderArea,this)}enableVirtualRender(){this.options.virtual=!0,this.resetRenderArea()}disableVirtualRender(){this.options.virtual=!1,this.graph.renderer.setRenderArea(void 0)}resetRenderArea(){if(this.options.virtual){const t=this.graph.getGraphArea();this.graph.renderer.setRenderArea(t)}}dispose(){this.stopListening()}}n([fA.dispose()],CA.prototype,"dispose",null);class PA{constructor(){this.isFlushing=!1,this.isFlushPending=!1,this.scheduleId=0,this.queue=[],this.frameInterval=33,this.initialTime=Date.now()}queueJob(t){if(t.priority&yA.PRIOR)t.cb();else{const e=this.findInsertionIndex(t);e>=0&&this.queue.splice(e,0,t)}}queueFlush(){this.isFlushing||this.isFlushPending||(this.isFlushPending=!0,this.scheduleJob())}queueFlushSync(){this.isFlushing||this.isFlushPending||(this.isFlushPending=!0,this.flushJobsSync())}clearJobs(){this.queue.length=0,this.isFlushing=!1,this.isFlushPending=!1,this.cancelScheduleJob()}flushJobs(){this.isFlushPending=!1,this.isFlushing=!0;const t=this.getCurrentTime();let e;for(;(e=this.queue.shift())&&(e.cb(),!(this.getCurrentTime()-t>=this.frameInterval)););this.isFlushing=!1,this.queue.length&&this.queueFlush()}flushJobsSync(){let t;for(this.isFlushPending=!1,this.isFlushing=!0;t=this.queue.shift();)try{t.cb()}catch(t){console.log(t)}this.isFlushing=!1}findInsertionIndex(t){let e=0,n=this.queue.length,r=n-1;const i=t.priority;for(;e<=r;){const t=(r-e>>1)+e;i<=this.queue[t].priority?e=t+1:(n=t,r=t-1)}return n}scheduleJob(){"requestIdleCallback"in window?(this.scheduleId&&this.cancelScheduleJob(),this.scheduleId=window.requestIdleCallback(this.flushJobs.bind(this),{timeout:100})):(this.scheduleId&&this.cancelScheduleJob(),this.scheduleId=window.setTimeout(this.flushJobs.bind(this)))}cancelScheduleJob(){"cancelIdleCallback"in window?(this.scheduleId&&window.cancelIdleCallback(this.scheduleId),this.scheduleId=0):(this.scheduleId&&clearTimeout(this.scheduleId),this.scheduleId=0)}getCurrentTime(){return"object"==typeof performance&&"function"==typeof performance.now?performance.now():Date.now()-this.initialTime}}!function(t){t[t.Update=2]="Update",t[t.RenderEdge=4]="RenderEdge",t[t.RenderNode=8]="RenderNode",t[t.PRIOR=1048576]="PRIOR"}(yA||(yA={}));class MA extends r{get model(){return this.graph.model}get container(){return this.graph.view.stage}constructor(t){super(),this.views={},this.willRemoveViews={},this.queue=new PA,this.graph=t,this.init()}init(){this.startListening(),this.renderViews(this.model.getCells())}startListening(){this.model.on("reseted",this.onModelReseted,this),this.model.on("cell:added",this.onCellAdded,this),this.model.on("cell:removed",this.onCellRemoved,this),this.model.on("cell:change:zIndex",this.onCellZIndexChanged,this),this.model.on("cell:change:visible",this.onCellVisibleChanged,this)}stopListening(){this.model.off("reseted",this.onModelReseted,this),this.model.off("cell:added",this.onCellAdded,this),this.model.off("cell:removed",this.onCellRemoved,this),this.model.off("cell:change:zIndex",this.onCellZIndexChanged,this),this.model.off("cell:change:visible",this.onCellVisibleChanged,this)}onModelReseted({options:t}){this.queue.clearJobs(),this.removeZPivots(),this.resetViews();const e=this.model.getCells();this.renderViews(e,Object.assign(Object.assign({},t),{queue:e.map((t=>t.id))}))}onCellAdded({cell:t,options:e}){this.renderViews([t],e)}onCellRemoved({cell:t}){this.removeViews([t])}onCellZIndexChanged({cell:t,options:e}){const n=this.views[t.id];n&&this.requestViewUpdate(n.view,MA.FLAG_INSERT,e,yA.Update,!0)}onCellVisibleChanged({cell:t,current:e}){this.toggleVisible(t,!!e)}requestViewUpdate(t,e,n={},r=yA.Update,i=!0){const s=t.cell.id,o=this.views[s];if(!o)return;o.flag=e,o.options=n;(t.hasAction(e,["translate","resize","rotate"])||!1===n.async)&&(r=yA.PRIOR,i=!1),this.queue.queueJob({id:s,priority:r,cb:()=>{this.renderViewInArea(t,e,n);const r=n.queue;if(r){const e=r.indexOf(t.cell.id);e>=0&&r.splice(e,1),0===r.length&&this.graph.trigger("render:done")}}});this.getEffectedEdges(t).forEach((t=>{this.requestViewUpdate(t.view,t.flag,n,r,!1)})),i&&this.flush()}setRenderArea(t){this.renderArea=t,this.flushWaitingViews()}isViewMounted(t){if(null==t)return!1;const e=this.views[t.cell.id];return!!e&&e.state===MA.ViewState.MOUNTED}renderViews(t,e={}){t.sort(((t,e)=>t.isNode()&&e.isEdge()?-1:0)),t.forEach((t=>{const n=t.id;let r=0,i=this.views[n];if(i)r=MA.FLAG_INSERT;else{const s=this.createCellView(t);s&&(s.graph=this.graph,r=MA.FLAG_INSERT|s.getBootstrapFlag(),i={view:s,flag:r,options:e,state:MA.ViewState.CREATED},this.views[n]=i)}i&&this.requestViewUpdate(i.view,r,e,this.getRenderPriority(i.view),!1)})),this.flush()}renderViewInArea(t,e,n={}){const r=t.cell,i=r.id,s=this.views[i];if(!s)return;let o=0;this.isUpdatable(t)||s.state===MA.ViewState.MOUNTED?(o=this.updateView(t,e,n),s.flag=o):s.state=MA.ViewState.WAITING,o&&r.isEdge()&&0==(o&t.getFlag(["source","target"]))&&this.queue.queueJob({id:i,priority:yA.RenderEdge,cb:()=>{this.updateView(t,e,n)}})}removeViews(t){t.forEach((t=>{const e=t.id,n=this.views[e];n&&(this.willRemoveViews[e]=n,delete this.views[e],this.queue.queueJob({id:e,priority:this.getRenderPriority(n.view),cb:()=>{this.removeView(n.view)}}))})),this.flush()}flush(){this.graph.options.async?this.queue.queueFlush():this.queue.queueFlushSync()}flushWaitingViews(){Object.values(this.views).forEach((t=>{if(t&&t.state===MA.ViewState.WAITING){const{view:e,flag:n,options:r}=t;this.requestViewUpdate(e,n,r,this.getRenderPriority(e),!1)}})),this.flush()}updateView(t,e,n={}){if(null==t)return 0;if(ax.isCellView(t)){if(e&MA.FLAG_REMOVE)return this.removeView(t.cell),0;e&MA.FLAG_INSERT&&(this.insertView(t),e^=MA.FLAG_INSERT)}return e?t.confirmUpdate(e,n):0}insertView(t){const e=this.views[t.cell.id];if(e){const n=t.cell.getZIndex(),r=this.addZPivot(n);this.container.insertBefore(t.container,r),t.cell.isVisible()||this.toggleVisible(t.cell,!1),e.state=MA.ViewState.MOUNTED,this.graph.trigger("view:mounted",{view:t})}}resetViews(){this.willRemoveViews=Object.assign(Object.assign({},this.views),this.willRemoveViews),Object.values(this.willRemoveViews).forEach((t=>{t&&this.removeView(t.view)})),this.views={},this.willRemoveViews={}}removeView(t){const e=t.cell,n=this.willRemoveViews[e.id];n&&t&&(n.view.remove(),delete this.willRemoveViews[e.id],this.graph.trigger("view:unmounted",{view:t}))}toggleVisible(t,e){const n=this.model.getConnectedEdges(t);for(let t=0,r=n.length;t<r;t+=1){const r=n[t];if(e){const t=r.getSourceCell(),e=r.getTargetCell();if(t&&!t.isVisible()||e&&!e.isVisible())continue;this.toggleVisible(r,!0)}else this.toggleVisible(r,!1)}const r=this.views[t.id];r&&lm(r.view.container,{display:e?"unset":"none"})}addZPivot(t=0){null==this.zPivots&&(this.zPivots={});const e=this.zPivots;let n=e[t];if(n)return n;n=e[t]=document.createComment(`z-index:${t+1}`);let r=-1/0;for(const n in e){const e=+n;e<t&&e>r&&(r=e)}const i=this.container;if(r!==-1/0){const t=e[r];i.insertBefore(n,t.nextSibling)}else i.insertBefore(n,i.firstChild);return n}removeZPivots(){this.zPivots&&Object.values(this.zPivots).forEach((t=>{t&&t.parentNode&&t.parentNode.removeChild(t)})),this.zPivots={}}createCellView(t){const e={graph:this.graph},n=this.graph.options.createCellView;if(n){const r=ef(n,this.graph,t);if(r)return new r(t,e);if(null===r)return null}const r=t.view;if(null!=r&&"string"==typeof r){const n=ax.registry.get(r);return n?new n(t,e):ax.registry.onNotFound(r)}return t.isNode()?new uA(t,e):t.isEdge()?new gA(t,e):null}getEffectedEdges(t){const e=[],n=t.cell,r=this.model.getConnectedEdges(n);for(let t=0,i=r.length;t<i;t+=1){const i=r[t],s=this.views[i.id];if(!s)continue;const o=s.view;if(!this.isViewMounted(o))continue;const a=["update"];i.getTargetCell()===n&&a.push("target"),i.getSourceCell()===n&&a.push("source"),e.push({id:i.id,view:o,flag:o.getFlag(a)})}return e}isUpdatable(t){if(t.isNodeView())return!this.renderArea||this.renderArea.isIntersectWithRect(t.cell.getBBox());if(t.isEdgeView()){const e=t.cell,n=e.getSourceCell(),r=e.getTargetCell();if(this.renderArea&&n&&r)return this.renderArea.isIntersectWithRect(n.getBBox())||this.renderArea.isIntersectWithRect(r.getBBox())}return!0}getRenderPriority(t){return t.cell.isNode()?yA.RenderNode:yA.RenderEdge}dispose(){this.stopListening(),Object.keys(this.views).forEach((t=>{this.views[t].view.dispose()})),this.views={}}}n([r.dispose()],MA.prototype,"dispose",null),function(t){t.FLAG_INSERT=1<<30,t.FLAG_REMOVE=1<<29,t.FLAG_RENDER=67108863}(MA||(MA={})),function(t){var e;(e=t.ViewState||(t.ViewState={}))[e.CREATED=0]="CREATED",e[e.MOUNTED=1]="MOUNTED",e[e.WAITING=2]="WAITING"}(MA||(MA={}));class EA extends fA{constructor(){super(...arguments),this.schedule=new MA(this.graph)}requestViewUpdate(t,e,n={}){this.schedule.requestViewUpdate(t,e,n)}isViewMounted(t){return this.schedule.isViewMounted(t)}setRenderArea(t){this.schedule.setRenderArea(t)}findViewByElem(t){if(null==t)return null;const e=this.options.container,n="string"==typeof t?e.querySelector(t):t instanceof Element?t:t[0];if(n){const t=this.graph.view.findAttr("data-cell-id",n);if(t){const e=this.schedule.views;if(e[t])return e[t].view}}return null}findViewByCell(t){if(null==t)return null;const e=Ww.isCell(t)?t.id:t,n=this.schedule.views;return n[e]?n[e].view:null}findViewsFromPoint(e){const n={x:e.x,y:e.y};return this.model.getCells().map((t=>this.findViewByCell(t))).filter((e=>null!=e&&t.Util.getBBox(e.container,{target:this.view.stage}).containsPoint(n)))}findEdgeViewsFromPoint(t,e=5){return this.model.getEdges().map((t=>this.findViewByCell(t))).filter((n=>{if(null!=n){const r=n.getClosestPoint(t);if(r)return r.distance(t)<=e}return!1}))}findViewsInArea(e,n={}){const r=Ny.create(e);return this.model.getCells().map((t=>this.findViewByCell(t))).filter((e=>{if(e){if(n.nodeOnly&&!e.isNodeView())return!1;const i=t.Util.getBBox(e.container,{target:this.view.stage});return 0===i.width?i.inflate(1,0):0===i.height&&i.inflate(0,1),n.strict?r.containsRect(i):r.isIntersectWithRect(i)}return!1}))}dispose(){this.schedule.dispose()}}n([fA.dispose()],EA.prototype,"dispose",null);class SA extends fA{get cid(){return this.graph.view.cid}get svg(){return this.view.svg}get defs(){return this.view.defs}isDefined(t){return null!=this.svg.getElementById(t)}filter(e){let n=e.id;const r=e.name;if(n||(n=`filter-${r}-${this.cid}-${Nf(JSON.stringify(e))}`),!this.isDefined(n)){const i=fv.registry.get(r);if(null==i)return fv.registry.onNotFound(r);const s=i(e.args||{}),o=Object.assign(Object.assign({x:-1,y:-1,width:3,height:3,filterUnits:"objectBoundingBox"},e.attrs),{id:n});fm.create(t.Markup.sanitize(s),o).appendTo(this.defs)}return n}gradient(t){let e=t.id;const n=t.type;if(e||(e=`gradient-${n}-${this.cid}-${Nf(JSON.stringify(t))}`),!this.isDefined(e)){const r=t.stops.map((t=>{const e=null!=t.opacity&&Number.isFinite(t.opacity)?t.opacity:1;return`<stop offset="${t.offset}" stop-color="${t.color}" stop-opacity="${e}"/>`})),i=`<${n}>${r.join("")}</${n}>`,s=Object.assign({id:e},t.attrs);fm.create(i,s).appendTo(this.defs)}return e}marker(t){const{id:n,refX:r,refY:i,markerUnits:s,markerOrient:o,tagName:a,children:l}=t,c=e(t,["id","refX","refY","markerUnits","markerOrient","tagName","children"]);let h=n;if(h||(h=`marker-${this.cid}-${Nf(JSON.stringify(t))}`),!this.isDefined(h)){"path"!==a&&delete c.d;const t=fm.create("marker",{refX:r,refY:i,id:h,overflow:"visible",orient:null!=o?o:"auto",markerUnits:s||"userSpaceOnUse"},l?l.map((t=>{var{tagName:n}=t,r=e(t,["tagName"]);return fm.create(`${n}`||"path",Gp(Object.assign(Object.assign({},c),r)))})):[fm.create(a||"path",Gp(c))]);this.defs.appendChild(t.node)}return h}remove(t){const e=this.svg.getElementById(t);e&&e.parentNode&&e.parentNode.removeChild(e)}}class OA extends fA{getClientMatrix(){return Fm(this.view.stage.getScreenCTM())}getClientOffset(){const t=this.view.svg.getBoundingClientRect();return new ky(t.left,t.top)}getPageOffset(){return this.getClientOffset().translate(window.scrollX,window.scrollY)}snapToGrid(t,e){return("number"==typeof t?this.clientToLocalPoint(t,e):this.clientToLocalPoint(t.x,t.y)).snapToGrid(this.graph.getGridSize())}localToGraphPoint(e,n){const r=ky.create(e,n);return t.Util.transformPoint(r,this.graph.matrix())}localToClientPoint(e,n){const r=ky.create(e,n);return t.Util.transformPoint(r,this.getClientMatrix())}localToPagePoint(t,e){return("number"==typeof t?this.localToGraphPoint(t,e):this.localToGraphPoint(t)).translate(this.getPageOffset())}localToGraphRect(e,n,r,i){const s=Ny.create(e,n,r,i);return t.Util.transformRectangle(s,this.graph.matrix())}localToClientRect(e,n,r,i){const s=Ny.create(e,n,r,i);return t.Util.transformRectangle(s,this.getClientMatrix())}localToPageRect(t,e,n,r){return("number"==typeof t?this.localToGraphRect(t,e,n,r):this.localToGraphRect(t)).translate(this.getPageOffset())}graphToLocalPoint(e,n){const r=ky.create(e,n);return t.Util.transformPoint(r,this.graph.matrix().inverse())}clientToLocalPoint(e,n){const r=ky.create(e,n);return t.Util.transformPoint(r,this.getClientMatrix().inverse())}clientToGraphPoint(e,n){const r=ky.create(e,n);return t.Util.transformPoint(r,this.graph.matrix().multiply(this.getClientMatrix().inverse()))}pageToLocalPoint(t,e){const n=ky.create(t,e).diff(this.getPageOffset());return this.graphToLocalPoint(n)}graphToLocalRect(e,n,r,i){const s=Ny.create(e,n,r,i);return t.Util.transformRectangle(s,this.graph.matrix().inverse())}clientToLocalRect(e,n,r,i){const s=Ny.create(e,n,r,i);return t.Util.transformRectangle(s,this.getClientMatrix().inverse())}clientToGraphRect(e,n,r,i){const s=Ny.create(e,n,r,i);return t.Util.transformRectangle(s,this.graph.matrix().multiply(this.getClientMatrix().inverse()))}pageToLocalRect(t,e,n,r){const i=Ny.create(t,e,n,r),s=this.getPageOffset();return i.x-=s.x,i.y-=s.y,this.graphToLocalRect(i)}}class TA extends fA{constructor(){super(...arguments),this.highlights={}}init(){this.startListening()}startListening(){this.graph.on("cell:highlight",this.onCellHighlight,this),this.graph.on("cell:unhighlight",this.onCellUnhighlight,this)}stopListening(){this.graph.off("cell:highlight",this.onCellHighlight,this),this.graph.off("cell:unhighlight",this.onCellUnhighlight,this)}onCellHighlight({view:t,magnet:e,options:n={}}){const r=this.resolveHighlighter(n);if(!r)return;const i=this.getHighlighterId(e,r);if(!this.highlights[i]){const n=r.highlighter;n.highlight(t,e,Object.assign({},r.args)),this.highlights[i]={cellView:t,magnet:e,highlighter:n,args:r.args}}}onCellUnhighlight({magnet:t,options:e={}}){const n=this.resolveHighlighter(e);if(!n)return;const r=this.getHighlighterId(t,n);this.unhighlight(r)}resolveHighlighter(t){const e=this.options;let n=t.highlighter;if(null==n){const r=t.type;n=r&&e.highlighting[r]||e.highlighting.default}if(null==n)return null;const r="string"==typeof n?{name:n}:n,i=r.name,s=zb.registry.get(i);return null==s?zb.registry.onNotFound(i):(zb.check(i,s),{name:i,highlighter:s,args:r.args||{}})}getHighlighterId(t,e){return dp(t),e.name+t.id+JSON.stringify(e.args)}unhighlight(t){const e=this.highlights[t];e&&(e.highlighter.unhighlight(e.cellView,e.magnet,e.args),delete this.highlights[t])}dispose(){Object.keys(this.highlights).forEach((t=>this.unhighlight(t))),this.stopListening()}}n([TA.dispose()],TA.prototype,"dispose",null);class kA extends fA{getScroller(){const t=this.graph.getPlugin("scroller");return t&&t.options.enabled?t:null}getContainer(){const t=this.getScroller();return t?t.container.parentElement:this.graph.container.parentElement}getSensorTarget(){const t=this.options.autoResize;if(t)return"boolean"==typeof t?this.getContainer():t}init(){if(this.options.autoResize){const e=this.getSensorTarget();e&&t.SizeSensor.bind(e,(()=>{const t=e.offsetWidth,n=e.offsetHeight;this.resize(t,n)}))}}resize(t,e){const n=this.getScroller();n?n.resize(t,e):this.graph.transform.resize(t,e)}dispose(){t.SizeSensor.clear(this.graph.container)}}n([fA.dispose()],kA.prototype,"dispose",null);class NA extends wf{get container(){return this.options.container}get[Symbol.toStringTag](){return NA.toStringTag}constructor(e){super(),this.installedPlugins=new Set,this.options=t.Options.get(e),this.css=new pA(this),this.view=new dA(this),this.defs=new SA(this),this.coord=new OA(this),this.transform=new bA(this),this.highlight=new TA(this),this.grid=new vA(this),this.background=new xA(this),this.options.model?this.model=this.options.model:(this.model=new Zw,this.model.graph=this),this.renderer=new EA(this),this.panning=new wA(this),this.mousewheel=new AA(this),this.virtualRender=new CA(this),this.size=new kA(this)}isNode(t){return t.isNode()}isEdge(t){return t.isEdge()}resetCells(t,e={}){return this.model.resetCells(t,e),this}clearCells(t={}){return this.model.clear(t),this}toJSON(t={}){return this.model.toJSON(t)}parseJSON(t){return this.model.parseJSON(t)}fromJSON(t,e={}){return this.model.fromJSON(t,e),this}getCellById(t){return this.model.getCell(t)}addNode(t,e={}){return this.model.addNode(t,e)}addNodes(t,e={}){return this.addCell(t.map((t=>Jw.isNode(t)?t:this.createNode(t))),e)}createNode(t){return this.model.createNode(t)}removeNode(t,e={}){return this.model.removeCell(t,e)}addEdge(t,e={}){return this.model.addEdge(t,e)}addEdges(t,e={}){return this.addCell(t.map((t=>Xw.isEdge(t)?t:this.createEdge(t))),e)}removeEdge(t,e={}){return this.model.removeCell(t,e)}createEdge(t){return this.model.createEdge(t)}addCell(t,e={}){return this.model.addCell(t,e),this}removeCell(t,e={}){return this.model.removeCell(t,e)}removeCells(t,e={}){return this.model.removeCells(t,e)}removeConnectedEdges(t,e={}){return this.model.removeConnectedEdges(t,e)}disconnectConnectedEdges(t,e={}){return this.model.disconnectConnectedEdges(t,e),this}hasCell(t){return this.model.has(t)}getCells(){return this.model.getCells()}getCellCount(){return this.model.total()}getNodes(){return this.model.getNodes()}getEdges(){return this.model.getEdges()}getOutgoingEdges(t){return this.model.getOutgoingEdges(t)}getIncomingEdges(t){return this.model.getIncomingEdges(t)}getConnectedEdges(t,e={}){return this.model.getConnectedEdges(t,e)}getRootNodes(){return this.model.getRoots()}getLeafNodes(){return this.model.getLeafs()}isRootNode(t){return this.model.isRoot(t)}isLeafNode(t){return this.model.isLeaf(t)}getNeighbors(t,e={}){return this.model.getNeighbors(t,e)}isNeighbor(t,e,n={}){return this.model.isNeighbor(t,e,n)}getSuccessors(t,e={}){return this.model.getSuccessors(t,e)}isSuccessor(t,e,n={}){return this.model.isSuccessor(t,e,n)}getPredecessors(t,e={}){return this.model.getPredecessors(t,e)}isPredecessor(t,e,n={}){return this.model.isPredecessor(t,e,n)}getCommonAncestor(...t){return this.model.getCommonAncestor(...t)}getSubGraph(t,e={}){return this.model.getSubGraph(t,e)}cloneSubGraph(t,e={}){return this.model.cloneSubGraph(t,e)}cloneCells(t){return this.model.cloneCells(t)}getNodesFromPoint(t,e){return this.model.getNodesFromPoint(t,e)}getNodesInArea(t,e,n,r,i){return this.model.getNodesInArea(t,e,n,r,i)}getNodesUnderNode(t,e={}){return this.model.getNodesUnderNode(t,e)}searchCell(t,e,n={}){return this.model.search(t,e,n),this}getShortestPath(t,e,n={}){return this.model.getShortestPath(t,e,n)}getAllCellsBBox(){return this.model.getAllCellsBBox()}getCellsBBox(t,e={}){return this.model.getCellsBBox(t,e)}startBatch(t,e={}){this.model.startBatch(t,e)}stopBatch(t,e={}){this.model.stopBatch(t,e)}batchUpdate(t,e,n){const r="string"==typeof t?t:"update",i="string"==typeof t?e:t,s="function"==typeof e?n:e;this.startBatch(r,s);const o=i();return this.stopBatch(r,s),o}updateCellId(t,e){return this.model.updateCellId(t,e)}findView(t){return Ww.isCell(t)?this.findViewByCell(t):this.findViewByElem(t)}findViews(t){return Ny.isRectangleLike(t)?this.findViewsInArea(t):ky.isPointLike(t)?this.findViewsFromPoint(t):[]}findViewByCell(t){return this.renderer.findViewByCell(t)}findViewByElem(t){return this.renderer.findViewByElem(t)}findViewsFromPoint(t,e){const n="number"==typeof t?{x:t,y:e}:t;return this.renderer.findViewsFromPoint(n)}findViewsInArea(t,e,n,r,i){const s="number"==typeof t?{x:t,y:e,width:n,height:r}:t,o="number"==typeof t?i:e;return this.renderer.findViewsInArea(s,o)}matrix(t){return void 0===t?this.transform.getMatrix():(this.transform.setMatrix(t),this)}resize(t,e){const n=this.getPlugin("scroller");return n?n.resize(t,e):this.transform.resize(t,e),this}scale(t,e=t,n=0,r=0){return void 0===t?this.transform.getScale():(this.transform.scale(t,e,n,r),this)}zoom(t,e){const n=this.getPlugin("scroller");if(n){if(void 0===t)return n.zoom();n.zoom(t,e)}else{if(void 0===t)return this.transform.getZoom();this.transform.zoom(t,e)}return this}zoomTo(t,e={}){const n=this.getPlugin("scroller");return n?n.zoom(t,Object.assign(Object.assign({},e),{absolute:!0})):this.transform.zoom(t,Object.assign(Object.assign({},e),{absolute:!0})),this}zoomToRect(t,e={}){const n=this.getPlugin("scroller");return n?n.zoomToRect(t,e):this.transform.zoomToRect(t,e),this}zoomToFit(t={}){const e=this.getPlugin("scroller");return e?e.zoomToFit(t):this.transform.zoomToFit(t),this}rotate(t,e,n){return void 0===t?this.transform.getRotation():(this.transform.rotate(t,e,n),this)}translate(t,e){return void 0===t?this.transform.getTranslation():(this.transform.translate(t,e),this)}translateBy(t,e){const n=this.translate(),r=n.tx+t,i=n.ty+e;return this.translate(r,i)}getGraphArea(){return this.transform.getGraphArea()}getContentArea(t={}){return this.transform.getContentArea(t)}getContentBBox(t={}){return this.transform.getContentBBox(t)}fitToContent(t,e,n,r){return this.transform.fitToContent(t,e,n,r)}scaleContentToFit(t={}){return this.transform.scaleContentToFit(t),this}center(t){return this.centerPoint(t)}centerPoint(t,e,n){const r=this.getPlugin("scroller");return r?r.centerPoint(t,e,n):this.transform.centerPoint(t,e),this}centerContent(t){const e=this.getPlugin("scroller");return e?e.centerContent(t):this.transform.centerContent(t),this}centerCell(t,e){const n=this.getPlugin("scroller");return n?n.centerCell(t,e):this.transform.centerCell(t),this}positionPoint(t,e,n,r={}){const i=this.getPlugin("scroller");return i?i.positionPoint(t,e,n,r):this.transform.positionPoint(t,e,n),this}positionRect(t,e,n){const r=this.getPlugin("scroller");return r?r.positionRect(t,e,n):this.transform.positionRect(t,e),this}positionCell(t,e,n){const r=this.getPlugin("scroller");return r?r.positionCell(t,e,n):this.transform.positionCell(t,e),this}positionContent(t,e){const n=this.getPlugin("scroller");return n?n.positionContent(t,e):this.transform.positionContent(t,e),this}snapToGrid(t,e){return this.coord.snapToGrid(t,e)}pageToLocal(t,e,n,r){return Ny.isRectangleLike(t)?this.coord.pageToLocalRect(t):"number"==typeof t&&"number"==typeof e&&"number"==typeof n&&"number"==typeof r?this.coord.pageToLocalRect(t,e,n,r):this.coord.pageToLocalPoint(t,e)}localToPage(t,e,n,r){return Ny.isRectangleLike(t)?this.coord.localToPageRect(t):"number"==typeof t&&"number"==typeof e&&"number"==typeof n&&"number"==typeof r?this.coord.localToPageRect(t,e,n,r):this.coord.localToPagePoint(t,e)}clientToLocal(t,e,n,r){return Ny.isRectangleLike(t)?this.coord.clientToLocalRect(t):"number"==typeof t&&"number"==typeof e&&"number"==typeof n&&"number"==typeof r?this.coord.clientToLocalRect(t,e,n,r):this.coord.clientToLocalPoint(t,e)}localToClient(t,e,n,r){return Ny.isRectangleLike(t)?this.coord.localToClientRect(t):"number"==typeof t&&"number"==typeof e&&"number"==typeof n&&"number"==typeof r?this.coord.localToClientRect(t,e,n,r):this.coord.localToClientPoint(t,e)}localToGraph(t,e,n,r){return Ny.isRectangleLike(t)?this.coord.localToGraphRect(t):"number"==typeof t&&"number"==typeof e&&"number"==typeof n&&"number"==typeof r?this.coord.localToGraphRect(t,e,n,r):this.coord.localToGraphPoint(t,e)}graphToLocal(t,e,n,r){return Ny.isRectangleLike(t)?this.coord.graphToLocalRect(t):"number"==typeof t&&"number"==typeof e&&"number"==typeof n&&"number"==typeof r?this.coord.graphToLocalRect(t,e,n,r):this.coord.graphToLocalPoint(t,e)}clientToGraph(t,e,n,r){return Ny.isRectangleLike(t)?this.coord.clientToGraphRect(t):"number"==typeof t&&"number"==typeof e&&"number"==typeof n&&"number"==typeof r?this.coord.clientToGraphRect(t,e,n,r):this.coord.clientToGraphPoint(t,e)}defineFilter(t){return this.defs.filter(t)}defineGradient(t){return this.defs.gradient(t)}defineMarker(t){return this.defs.marker(t)}getGridSize(){return this.grid.getGridSize()}setGridSize(t){return this.grid.setGridSize(t),this}showGrid(){return this.grid.show(),this}hideGrid(){return this.grid.hide(),this}clearGrid(){return this.grid.clear(),this}drawGrid(t){return this.grid.draw(t),this}updateBackground(){return this.background.update(),this}drawBackground(t,e){const n=this.getPlugin("scroller");return null==n||null!=this.options.background&&e?this.background.draw(t):n.drawBackground(t,e),this}clearBackground(t){const e=this.getPlugin("scroller");return null==e||null!=this.options.background&&t?this.background.clear():e.clearBackground(t),this}enableVirtualRender(){return this.virtualRender.enableVirtualRender(),this}disableVirtualRender(){return this.virtualRender.disableVirtualRender(),this}isMouseWheelEnabled(){return!this.mousewheel.disabled}enableMouseWheel(){return this.mousewheel.enable(),this}disableMouseWheel(){return this.mousewheel.disable(),this}toggleMouseWheel(t){return null==t?this.isMouseWheelEnabled()?this.disableMouseWheel():this.enableMouseWheel():t?this.enableMouseWheel():this.disableMouseWheel(),this}isPannable(){const t=this.getPlugin("scroller");return t?t.isPannable():this.panning.pannable}enablePanning(){const t=this.getPlugin("scroller");return t?t.enablePanning():this.panning.enablePanning(),this}disablePanning(){const t=this.getPlugin("scroller");return t?t.disablePanning():this.panning.disablePanning(),this}togglePanning(t){return null==t?this.isPannable()?this.disablePanning():this.enablePanning():t!==this.isPannable()&&(t?this.enablePanning():this.disablePanning()),this}use(t,...e){return this.installedPlugins.has(t)||(this.installedPlugins.add(t),t.init(this,...e)),this}getPlugin(t){return Array.from(this.installedPlugins).find((e=>e.name===t))}getPlugins(t){return Array.from(this.installedPlugins).filter((e=>t.includes(e.name)))}enablePlugins(t){let e=t;Array.isArray(e)||(e=[e]);const n=this.getPlugins(e);return null==n||n.forEach((t=>{var e;null===(e=null==t?void 0:t.enable)||void 0===e||e.call(t)})),this}disablePlugins(t){let e=t;Array.isArray(e)||(e=[e]);const n=this.getPlugins(e);return null==n||n.forEach((t=>{var e;null===(e=null==t?void 0:t.disable)||void 0===e||e.call(t)})),this}isPluginEnabled(t){var e;const n=this.getPlugin(t);return null===(e=null==n?void 0:n.isEnabled)||void 0===e?void 0:e.call(n)}disposePlugins(t){let e=t;Array.isArray(e)||(e=[e]);const n=this.getPlugins(e);return null==n||n.forEach((t=>{t.dispose(),this.installedPlugins.delete(t)})),this}dispose(t=!0){t&&this.model.dispose(),this.css.dispose(),this.defs.dispose(),this.grid.dispose(),this.coord.dispose(),this.transform.dispose(),this.highlight.dispose(),this.background.dispose(),this.mousewheel.dispose(),this.panning.dispose(),this.view.dispose(),this.renderer.dispose(),this.installedPlugins.forEach((t=>{t.dispose()}))}}n([wf.dispose()],NA.prototype,"dispose",null),function(t){t.View=dA,t.Renderer=EA,t.MouseWheel=AA,t.DefsManager=SA,t.GridManager=vA,t.CoordManager=OA,t.TransformManager=bA,t.HighlightManager=TA,t.BackgroundManager=xA,t.PanningManager=wA}(NA||(NA={})),function(t){t.toStringTag=`X6.${t.name}`,t.isGraph=function(e){if(null==e)return!1;if(e instanceof t)return!0;const n=e[Symbol.toStringTag];return null==n||n===t.toStringTag}}(NA||(NA={})),function(t){t.render=function(e,n){const r=e instanceof HTMLElement?new t({container:e}):new t(e);return null!=n&&r.fromJSON(n),r}}(NA||(NA={})),function(t){t.registerNode=Jw.registry.register,t.registerEdge=Xw.registry.register,t.registerView=ax.registry.register,t.registerAttr=kb.registry.register,t.registerGrid=ov.registry.register,t.registerFilter=fv.registry.register,t.registerNodeTool=Ox.registry.register,t.registerEdgeTool=Tx.registry.register,t.registerBackground=hv.registry.register,t.registerHighlighter=zb.registry.register,t.registerPortLayout=Wb.registry.register,t.registerPortLabelLayout=tx.registry.register,t.registerMarker=fb.registry.register,t.registerRouter=kw.registry.register,t.registerConnector=zw.registry.register,t.registerAnchor=Ux.registry.register,t.registerEdgeAnchor=Xx.registry.register,t.registerConnectionPoint=tw.registry.register}(NA||(NA={})),function(t){t.unregisterNode=Jw.registry.unregister,t.unregisterEdge=Xw.registry.unregister,t.unregisterView=ax.registry.unregister,t.unregisterAttr=kb.registry.unregister,t.unregisterGrid=ov.registry.unregister,t.unregisterFilter=fv.registry.unregister,t.unregisterNodeTool=Ox.registry.unregister,t.unregisterEdgeTool=Tx.registry.unregister,t.unregisterBackground=hv.registry.unregister,t.unregisterHighlighter=zb.registry.unregister,t.unregisterPortLayout=Wb.registry.unregister,t.unregisterPortLabelLayout=tx.registry.unregister,t.unregisterMarker=fb.registry.unregister,t.unregisterRouter=kw.registry.unregister,t.unregisterConnector=zw.registry.unregister,t.unregisterAnchor=Ux.registry.unregister,t.unregisterEdgeAnchor=Xx.registry.unregister,t.unregisterConnectionPoint=tw.registry.unregister}(NA||(NA={}));class jA extends Jw{}!function(t){class e extends uA{init(){super.init(),this.cell.on("change:*",this.onCellChangeAny,this)}onCellChangeAny({key:e}){const n=t.shapeMaps[this.cell.shape];if(n){const{effect:t}=n;t&&!t.includes(e)||this.renderHTMLComponent()}}confirmUpdate(t){const n=super.confirmUpdate(t);return this.handleAction(n,e.action,(()=>this.renderHTMLComponent()))}renderHTMLComponent(){const e=this.selectors&&this.selectors.foContent;if(e){Tp(e);const n=t.shapeMaps[this.cell.shape];if(!n)return;let{html:r}=n;"function"==typeof r&&(r=r(this.cell)),r&&("string"==typeof r?e.innerHTML=r:kp(e,r))}}dispose(){this.cell.off("change:*",this.onCellChangeAny,this)}}n([e.dispose()],e.prototype,"dispose",null),t.View=e,function(t){t.action="html",t.config({bootstrap:[t.action],actions:{html:t.action}}),uA.registry.register("html-view",t,!0)}(e=t.View||(t.View={}))}(jA||(jA={})),function(e){e.config({view:"html-view",markup:[{tagName:"rect",selector:"body"},Object.assign({},t.Markup.getForeignObjectMarkup()),{tagName:"text",selector:"label"}],attrs:{body:{fill:"none",stroke:"none",refWidth:"100%",refHeight:"100%"},fo:{refWidth:"100%",refHeight:"100%"}}}),Jw.registry.register("html",e,!0)}(jA||(jA={})),function(t){t.shapeMaps={},t.register=function(n){const{shape:r,html:i,effect:s,inherit:o}=n,a=e(n,["shape","html","effect","inherit"]);if(!r)throw new Error("should specify shape in config");t.shapeMaps[r]={html:i,effect:s},NA.registerNode(r,Object.assign({inherit:o||"html"},a),!0)}}(jA||(jA={}));var _A=Object.freeze({__proto__:null,Circle:hA,Edge:nA,Ellipse:rA,get HTML(){return jA},Image:cA,Path:aA,Polygon:sA,Polyline:oA,Rect:eA,TextBlock:lA});t.ArrayExt=Af,t.BackgroundManager=xA,t.Basecoat=wf,t.Cell=Ww,t.CellView=ax,t.Collection=Yw,t.Color=wy,t.Config=jb,t.CssLoader=Oy,t.Curve=$y,t.Dictionary=Ay,t.Disablable=class extends wf{get disabled(){return!0===this._disabled}enable(){delete this._disabled}disable(){this._disabled=!0}},t.Disposable=r,t.DisposableDelegate=class{constructor(t){this.callback=t}get disposed(){return!this.callback}dispose(){if(!this.callback)return;const t=this.callback;this.callback=null,t()}},t.DisposableSet=i,t.Dom=py,t.Edge=Xw,t.EdgeView=gA,t.Ellipse=_y,t.Events=lf,t.FunctionExt=of,t.Graph=NA,t.GraphView=dA,t.Line=jy,t.Model=Zw,t.Node=Jw,t.NodeView=uA,t.NumberExt=Vf,t.ObjectExt=bf,t.Path=Qy,t.Point=ky,t.Polyline=zy,t.PriorityQueue=vy,t.Rectangle=Ny,t.Registry=Gw,t.Segment=Fy,t.Shape=_A,t.StringExt=Bf,t.Text=Jp,t.ToolsView=lx,t.TransformManager=bA,t.Vector=fm,t.View=rx,t.normalizePathData=Ky})); | ||
| 12 | +//# sourceMappingURL=index.js.map | ||
| 0 | \ No newline at end of file | 13 | \ No newline at end of file |
public/数字工厂MES系统操作指引.pdf
0 → 100644
No preview for this file type
public/车间MES打印机更换纸张.pdf
0 → 100644
No preview for this file type
src/assets/add.svg
0 → 100644
| 1 | +++ a/src/assets/add.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1565226199804" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11316" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M896 512a384 384 0 1 0-384 384 384 384 0 0 0 384-384z m64 0A448 448 0 1 1 512 64a448 448 0 0 1 448 448z" p-id="11317" fill="#1296db"></path><path d="M320 544a32 32 0 0 1 0-64h384a32 32 0 0 1 0 64z" p-id="11318" fill="#1296db"></path><path d="M480 320a32 32 0 0 1 64 0v384a32 32 0 0 1-64 0z" p-id="11319" fill="#1296db"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/addChild.svg
0 → 100644
| 1 | +++ a/src/assets/addChild.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1603693491274" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3177" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M542.117647 512H813.176471a60.235294 60.235294 0 0 1 60.235294 60.235294v120.470588h60.235294a60.235294 60.235294 0 0 1 60.235294 60.235294v180.705883a60.235294 60.235294 0 0 1-60.235294 60.235294h-180.705883a60.235294 60.235294 0 0 1-60.235294-60.235294v-180.705883a60.235294 60.235294 0 0 1 60.235294-60.235294H271.058824a60.235294 60.235294 0 0 1 60.235294 60.235294v180.705883a60.235294 60.235294 0 0 1-60.235294 60.235294H90.352941a60.235294 60.235294 0 0 1-60.235294-60.235294v-180.705883a60.235294 60.235294 0 0 1 60.235294-60.235294h60.235294v-120.470588a60.235294 60.235294 0 0 1 60.235294-60.235294h271.058824v-120.470588H331.294118a60.235294 60.235294 0 0 1-60.235294-60.235294v-240.941177a60.235294 60.235294 0 0 1 60.235294-60.235294h361.411764a60.235294 60.235294 0 0 1 60.235294 60.235294v240.941177a60.235294 60.235294 0 0 1-60.235294 60.235294H542.117647v120.470588z m-331.294118 180.705882h602.352942v-120.470588H210.823529v120.470588z" fill="#1296db" p-id="3178"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/areas.json
0 → 100644
| 1 | +++ a/src/assets/areas.json | ||
| 1 | +[{"code":"110101","name":"东城区","cityCode":"1101","provinceCode":"11"},{"code":"110102","name":"西城区","cityCode":"1101","provinceCode":"11"},{"code":"110105","name":"朝阳区","cityCode":"1101","provinceCode":"11"},{"code":"110106","name":"丰台区","cityCode":"1101","provinceCode":"11"},{"code":"110107","name":"石景山区","cityCode":"1101","provinceCode":"11"},{"code":"110108","name":"海淀区","cityCode":"1101","provinceCode":"11"},{"code":"110109","name":"门头沟区","cityCode":"1101","provinceCode":"11"},{"code":"110111","name":"房山区","cityCode":"1101","provinceCode":"11"},{"code":"110112","name":"通州区","cityCode":"1101","provinceCode":"11"},{"code":"110113","name":"顺义区","cityCode":"1101","provinceCode":"11"},{"code":"110114","name":"昌平区","cityCode":"1101","provinceCode":"11"},{"code":"110115","name":"大兴区","cityCode":"1101","provinceCode":"11"},{"code":"110116","name":"怀柔区","cityCode":"1101","provinceCode":"11"},{"code":"110117","name":"平谷区","cityCode":"1101","provinceCode":"11"},{"code":"110118","name":"密云区","cityCode":"1101","provinceCode":"11"},{"code":"110119","name":"延庆区","cityCode":"1101","provinceCode":"11"},{"code":"120101","name":"和平区","cityCode":"1201","provinceCode":"12"},{"code":"120102","name":"河东区","cityCode":"1201","provinceCode":"12"},{"code":"120103","name":"河西区","cityCode":"1201","provinceCode":"12"},{"code":"120104","name":"南开区","cityCode":"1201","provinceCode":"12"},{"code":"120105","name":"河北区","cityCode":"1201","provinceCode":"12"},{"code":"120106","name":"红桥区","cityCode":"1201","provinceCode":"12"},{"code":"120110","name":"东丽区","cityCode":"1201","provinceCode":"12"},{"code":"120111","name":"西青区","cityCode":"1201","provinceCode":"12"},{"code":"120112","name":"津南区","cityCode":"1201","provinceCode":"12"},{"code":"120113","name":"北辰区","cityCode":"1201","provinceCode":"12"},{"code":"120114","name":"武清区","cityCode":"1201","provinceCode":"12"},{"code":"120115","name":"宝坻区","cityCode":"1201","provinceCode":"12"},{"code":"120116","name":"滨海新区","cityCode":"1201","provinceCode":"12"},{"code":"120117","name":"宁河区","cityCode":"1201","provinceCode":"12"},{"code":"120118","name":"静海区","cityCode":"1201","provinceCode":"12"},{"code":"120119","name":"蓟州区","cityCode":"1201","provinceCode":"12"},{"code":"130102","name":"长安区","cityCode":"1301","provinceCode":"13"},{"code":"130104","name":"桥西区","cityCode":"1301","provinceCode":"13"},{"code":"130105","name":"新华区","cityCode":"1301","provinceCode":"13"},{"code":"130107","name":"井陉矿区","cityCode":"1301","provinceCode":"13"},{"code":"130108","name":"裕华区","cityCode":"1301","provinceCode":"13"},{"code":"130109","name":"藁城区","cityCode":"1301","provinceCode":"13"},{"code":"130110","name":"鹿泉区","cityCode":"1301","provinceCode":"13"},{"code":"130111","name":"栾城区","cityCode":"1301","provinceCode":"13"},{"code":"130121","name":"井陉县","cityCode":"1301","provinceCode":"13"},{"code":"130123","name":"正定县","cityCode":"1301","provinceCode":"13"},{"code":"130125","name":"行唐县","cityCode":"1301","provinceCode":"13"},{"code":"130126","name":"灵寿县","cityCode":"1301","provinceCode":"13"},{"code":"130127","name":"高邑县","cityCode":"1301","provinceCode":"13"},{"code":"130128","name":"深泽县","cityCode":"1301","provinceCode":"13"},{"code":"130129","name":"赞皇县","cityCode":"1301","provinceCode":"13"},{"code":"130130","name":"无极县","cityCode":"1301","provinceCode":"13"},{"code":"130131","name":"平山县","cityCode":"1301","provinceCode":"13"},{"code":"130132","name":"元氏县","cityCode":"1301","provinceCode":"13"},{"code":"130133","name":"赵县","cityCode":"1301","provinceCode":"13"},{"code":"130183","name":"晋州市","cityCode":"1301","provinceCode":"13"},{"code":"130184","name":"新乐市","cityCode":"1301","provinceCode":"13"},{"code":"130202","name":"路南区","cityCode":"1302","provinceCode":"13"},{"code":"130203","name":"路北区","cityCode":"1302","provinceCode":"13"},{"code":"130204","name":"古冶区","cityCode":"1302","provinceCode":"13"},{"code":"130205","name":"开平区","cityCode":"1302","provinceCode":"13"},{"code":"130207","name":"丰南区","cityCode":"1302","provinceCode":"13"},{"code":"130208","name":"丰润区","cityCode":"1302","provinceCode":"13"},{"code":"130209","name":"曹妃甸区","cityCode":"1302","provinceCode":"13"},{"code":"130223","name":"滦县","cityCode":"1302","provinceCode":"13"},{"code":"130224","name":"滦南县","cityCode":"1302","provinceCode":"13"},{"code":"130225","name":"乐亭县","cityCode":"1302","provinceCode":"13"},{"code":"130227","name":"迁西县","cityCode":"1302","provinceCode":"13"},{"code":"130229","name":"玉田县","cityCode":"1302","provinceCode":"13"},{"code":"130281","name":"遵化市","cityCode":"1302","provinceCode":"13"},{"code":"130283","name":"迁安市","cityCode":"1302","provinceCode":"13"},{"code":"130302","name":"海港区","cityCode":"1303","provinceCode":"13"},{"code":"130303","name":"山海关区","cityCode":"1303","provinceCode":"13"},{"code":"130304","name":"北戴河区","cityCode":"1303","provinceCode":"13"},{"code":"130306","name":"抚宁区","cityCode":"1303","provinceCode":"13"},{"code":"130321","name":"青龙满族自治县","cityCode":"1303","provinceCode":"13"},{"code":"130322","name":"昌黎县","cityCode":"1303","provinceCode":"13"},{"code":"130324","name":"卢龙县","cityCode":"1303","provinceCode":"13"},{"code":"130402","name":"邯山区","cityCode":"1304","provinceCode":"13"},{"code":"130403","name":"丛台区","cityCode":"1304","provinceCode":"13"},{"code":"130404","name":"复兴区","cityCode":"1304","provinceCode":"13"},{"code":"130406","name":"峰峰矿区","cityCode":"1304","provinceCode":"13"},{"code":"130421","name":"邯郸县","cityCode":"1304","provinceCode":"13"},{"code":"130423","name":"临漳县","cityCode":"1304","provinceCode":"13"},{"code":"130424","name":"成安县","cityCode":"1304","provinceCode":"13"},{"code":"130425","name":"大名县","cityCode":"1304","provinceCode":"13"},{"code":"130426","name":"涉县","cityCode":"1304","provinceCode":"13"},{"code":"130427","name":"磁县","cityCode":"1304","provinceCode":"13"},{"code":"130428","name":"肥乡县","cityCode":"1304","provinceCode":"13"},{"code":"130429","name":"永年县","cityCode":"1304","provinceCode":"13"},{"code":"130430","name":"邱县","cityCode":"1304","provinceCode":"13"},{"code":"130431","name":"鸡泽县","cityCode":"1304","provinceCode":"13"},{"code":"130432","name":"广平县","cityCode":"1304","provinceCode":"13"},{"code":"130433","name":"馆陶县","cityCode":"1304","provinceCode":"13"},{"code":"130434","name":"魏县","cityCode":"1304","provinceCode":"13"},{"code":"130435","name":"曲周县","cityCode":"1304","provinceCode":"13"},{"code":"130481","name":"武安市","cityCode":"1304","provinceCode":"13"},{"code":"130502","name":"桥东区","cityCode":"1305","provinceCode":"13"},{"code":"130503","name":"桥西区","cityCode":"1305","provinceCode":"13"},{"code":"130521","name":"邢台县","cityCode":"1305","provinceCode":"13"},{"code":"130522","name":"临城县","cityCode":"1305","provinceCode":"13"},{"code":"130523","name":"内丘县","cityCode":"1305","provinceCode":"13"},{"code":"130524","name":"柏乡县","cityCode":"1305","provinceCode":"13"},{"code":"130525","name":"隆尧县","cityCode":"1305","provinceCode":"13"},{"code":"130526","name":"任县","cityCode":"1305","provinceCode":"13"},{"code":"130527","name":"南和县","cityCode":"1305","provinceCode":"13"},{"code":"130528","name":"宁晋县","cityCode":"1305","provinceCode":"13"},{"code":"130529","name":"巨鹿县","cityCode":"1305","provinceCode":"13"},{"code":"130530","name":"新河县","cityCode":"1305","provinceCode":"13"},{"code":"130531","name":"广宗县","cityCode":"1305","provinceCode":"13"},{"code":"130532","name":"平乡县","cityCode":"1305","provinceCode":"13"},{"code":"130533","name":"威县","cityCode":"1305","provinceCode":"13"},{"code":"130534","name":"清河县","cityCode":"1305","provinceCode":"13"},{"code":"130535","name":"临西县","cityCode":"1305","provinceCode":"13"},{"code":"130581","name":"南宫市","cityCode":"1305","provinceCode":"13"},{"code":"130582","name":"沙河市","cityCode":"1305","provinceCode":"13"},{"code":"130602","name":"竞秀区","cityCode":"1306","provinceCode":"13"},{"code":"130606","name":"莲池区","cityCode":"1306","provinceCode":"13"},{"code":"130607","name":"满城区","cityCode":"1306","provinceCode":"13"},{"code":"130608","name":"清苑区","cityCode":"1306","provinceCode":"13"},{"code":"130609","name":"徐水区","cityCode":"1306","provinceCode":"13"},{"code":"130623","name":"涞水县","cityCode":"1306","provinceCode":"13"},{"code":"130624","name":"阜平县","cityCode":"1306","provinceCode":"13"},{"code":"130626","name":"定兴县","cityCode":"1306","provinceCode":"13"},{"code":"130627","name":"唐县","cityCode":"1306","provinceCode":"13"},{"code":"130628","name":"高阳县","cityCode":"1306","provinceCode":"13"},{"code":"130629","name":"容城县","cityCode":"1306","provinceCode":"13"},{"code":"130630","name":"涞源县","cityCode":"1306","provinceCode":"13"},{"code":"130631","name":"望都县","cityCode":"1306","provinceCode":"13"},{"code":"130632","name":"安新县","cityCode":"1306","provinceCode":"13"},{"code":"130633","name":"易县","cityCode":"1306","provinceCode":"13"},{"code":"130634","name":"曲阳县","cityCode":"1306","provinceCode":"13"},{"code":"130635","name":"蠡县","cityCode":"1306","provinceCode":"13"},{"code":"130636","name":"顺平县","cityCode":"1306","provinceCode":"13"},{"code":"130637","name":"博野县","cityCode":"1306","provinceCode":"13"},{"code":"130638","name":"雄县","cityCode":"1306","provinceCode":"13"},{"code":"130681","name":"涿州市","cityCode":"1306","provinceCode":"13"},{"code":"130683","name":"安国市","cityCode":"1306","provinceCode":"13"},{"code":"130684","name":"高碑店市","cityCode":"1306","provinceCode":"13"},{"code":"130702","name":"桥东区","cityCode":"1307","provinceCode":"13"},{"code":"130703","name":"桥西区","cityCode":"1307","provinceCode":"13"},{"code":"130705","name":"宣化区","cityCode":"1307","provinceCode":"13"},{"code":"130706","name":"下花园区","cityCode":"1307","provinceCode":"13"},{"code":"130708","name":"万全区","cityCode":"1307","provinceCode":"13"},{"code":"130709","name":"崇礼区","cityCode":"1307","provinceCode":"13"},{"code":"130722","name":"张北县","cityCode":"1307","provinceCode":"13"},{"code":"130723","name":"康保县","cityCode":"1307","provinceCode":"13"},{"code":"130724","name":"沽源县","cityCode":"1307","provinceCode":"13"},{"code":"130725","name":"尚义县","cityCode":"1307","provinceCode":"13"},{"code":"130726","name":"蔚县","cityCode":"1307","provinceCode":"13"},{"code":"130727","name":"阳原县","cityCode":"1307","provinceCode":"13"},{"code":"130728","name":"怀安县","cityCode":"1307","provinceCode":"13"},{"code":"130730","name":"怀来县","cityCode":"1307","provinceCode":"13"},{"code":"130731","name":"涿鹿县","cityCode":"1307","provinceCode":"13"},{"code":"130732","name":"赤城县","cityCode":"1307","provinceCode":"13"},{"code":"130802","name":"双桥区","cityCode":"1308","provinceCode":"13"},{"code":"130803","name":"双滦区","cityCode":"1308","provinceCode":"13"},{"code":"130804","name":"鹰手营子矿区","cityCode":"1308","provinceCode":"13"},{"code":"130821","name":"承德县","cityCode":"1308","provinceCode":"13"},{"code":"130822","name":"兴隆县","cityCode":"1308","provinceCode":"13"},{"code":"130823","name":"平泉县","cityCode":"1308","provinceCode":"13"},{"code":"130824","name":"滦平县","cityCode":"1308","provinceCode":"13"},{"code":"130825","name":"隆化县","cityCode":"1308","provinceCode":"13"},{"code":"130826","name":"丰宁满族自治县","cityCode":"1308","provinceCode":"13"},{"code":"130827","name":"宽城满族自治县","cityCode":"1308","provinceCode":"13"},{"code":"130828","name":"围场满族蒙古族自治县","cityCode":"1308","provinceCode":"13"},{"code":"130902","name":"新华区","cityCode":"1309","provinceCode":"13"},{"code":"130903","name":"运河区","cityCode":"1309","provinceCode":"13"},{"code":"130921","name":"沧县","cityCode":"1309","provinceCode":"13"},{"code":"130922","name":"青县","cityCode":"1309","provinceCode":"13"},{"code":"130923","name":"东光县","cityCode":"1309","provinceCode":"13"},{"code":"130924","name":"海兴县","cityCode":"1309","provinceCode":"13"},{"code":"130925","name":"盐山县","cityCode":"1309","provinceCode":"13"},{"code":"130926","name":"肃宁县","cityCode":"1309","provinceCode":"13"},{"code":"130927","name":"南皮县","cityCode":"1309","provinceCode":"13"},{"code":"130928","name":"吴桥县","cityCode":"1309","provinceCode":"13"},{"code":"130929","name":"献县","cityCode":"1309","provinceCode":"13"},{"code":"130930","name":"孟村回族自治县","cityCode":"1309","provinceCode":"13"},{"code":"130981","name":"泊头市","cityCode":"1309","provinceCode":"13"},{"code":"130982","name":"任丘市","cityCode":"1309","provinceCode":"13"},{"code":"130983","name":"黄骅市","cityCode":"1309","provinceCode":"13"},{"code":"130984","name":"河间市","cityCode":"1309","provinceCode":"13"},{"code":"131002","name":"安次区","cityCode":"1310","provinceCode":"13"},{"code":"131003","name":"广阳区","cityCode":"1310","provinceCode":"13"},{"code":"131022","name":"固安县","cityCode":"1310","provinceCode":"13"},{"code":"131023","name":"永清县","cityCode":"1310","provinceCode":"13"},{"code":"131024","name":"香河县","cityCode":"1310","provinceCode":"13"},{"code":"131025","name":"大城县","cityCode":"1310","provinceCode":"13"},{"code":"131026","name":"文安县","cityCode":"1310","provinceCode":"13"},{"code":"131028","name":"大厂回族自治县","cityCode":"1310","provinceCode":"13"},{"code":"131081","name":"霸州市","cityCode":"1310","provinceCode":"13"},{"code":"131082","name":"三河市","cityCode":"1310","provinceCode":"13"},{"code":"131102","name":"桃城区","cityCode":"1311","provinceCode":"13"},{"code":"131103","name":"冀州区","cityCode":"1311","provinceCode":"13"},{"code":"131121","name":"枣强县","cityCode":"1311","provinceCode":"13"},{"code":"131122","name":"武邑县","cityCode":"1311","provinceCode":"13"},{"code":"131123","name":"武强县","cityCode":"1311","provinceCode":"13"},{"code":"131124","name":"饶阳县","cityCode":"1311","provinceCode":"13"},{"code":"131125","name":"安平县","cityCode":"1311","provinceCode":"13"},{"code":"131126","name":"故城县","cityCode":"1311","provinceCode":"13"},{"code":"131127","name":"景县","cityCode":"1311","provinceCode":"13"},{"code":"131128","name":"阜城县","cityCode":"1311","provinceCode":"13"},{"code":"131182","name":"深州市","cityCode":"1311","provinceCode":"13"},{"code":"139001","name":"定州市","cityCode":"1390","provinceCode":"13"},{"code":"139002","name":"辛集市","cityCode":"1390","provinceCode":"13"},{"code":"140105","name":"小店区","cityCode":"1401","provinceCode":"14"},{"code":"140106","name":"迎泽区","cityCode":"1401","provinceCode":"14"},{"code":"140107","name":"杏花岭区","cityCode":"1401","provinceCode":"14"},{"code":"140108","name":"尖草坪区","cityCode":"1401","provinceCode":"14"},{"code":"140109","name":"万柏林区","cityCode":"1401","provinceCode":"14"},{"code":"140110","name":"晋源区","cityCode":"1401","provinceCode":"14"},{"code":"140121","name":"清徐县","cityCode":"1401","provinceCode":"14"},{"code":"140122","name":"阳曲县","cityCode":"1401","provinceCode":"14"},{"code":"140123","name":"娄烦县","cityCode":"1401","provinceCode":"14"},{"code":"140181","name":"古交市","cityCode":"1401","provinceCode":"14"},{"code":"140202","name":"城区","cityCode":"1402","provinceCode":"14"},{"code":"140203","name":"矿区","cityCode":"1402","provinceCode":"14"},{"code":"140211","name":"南郊区","cityCode":"1402","provinceCode":"14"},{"code":"140212","name":"新荣区","cityCode":"1402","provinceCode":"14"},{"code":"140221","name":"阳高县","cityCode":"1402","provinceCode":"14"},{"code":"140222","name":"天镇县","cityCode":"1402","provinceCode":"14"},{"code":"140223","name":"广灵县","cityCode":"1402","provinceCode":"14"},{"code":"140224","name":"灵丘县","cityCode":"1402","provinceCode":"14"},{"code":"140225","name":"浑源县","cityCode":"1402","provinceCode":"14"},{"code":"140226","name":"左云县","cityCode":"1402","provinceCode":"14"},{"code":"140227","name":"大同县","cityCode":"1402","provinceCode":"14"},{"code":"140302","name":"城区","cityCode":"1403","provinceCode":"14"},{"code":"140303","name":"矿区","cityCode":"1403","provinceCode":"14"},{"code":"140311","name":"郊区","cityCode":"1403","provinceCode":"14"},{"code":"140321","name":"平定县","cityCode":"1403","provinceCode":"14"},{"code":"140322","name":"盂县","cityCode":"1403","provinceCode":"14"},{"code":"140402","name":"城区","cityCode":"1404","provinceCode":"14"},{"code":"140411","name":"郊区","cityCode":"1404","provinceCode":"14"},{"code":"140421","name":"长治县","cityCode":"1404","provinceCode":"14"},{"code":"140423","name":"襄垣县","cityCode":"1404","provinceCode":"14"},{"code":"140424","name":"屯留县","cityCode":"1404","provinceCode":"14"},{"code":"140425","name":"平顺县","cityCode":"1404","provinceCode":"14"},{"code":"140426","name":"黎城县","cityCode":"1404","provinceCode":"14"},{"code":"140427","name":"壶关县","cityCode":"1404","provinceCode":"14"},{"code":"140428","name":"长子县","cityCode":"1404","provinceCode":"14"},{"code":"140429","name":"武乡县","cityCode":"1404","provinceCode":"14"},{"code":"140430","name":"沁县","cityCode":"1404","provinceCode":"14"},{"code":"140431","name":"沁源县","cityCode":"1404","provinceCode":"14"},{"code":"140481","name":"潞城市","cityCode":"1404","provinceCode":"14"},{"code":"140502","name":"城区","cityCode":"1405","provinceCode":"14"},{"code":"140521","name":"沁水县","cityCode":"1405","provinceCode":"14"},{"code":"140522","name":"阳城县","cityCode":"1405","provinceCode":"14"},{"code":"140524","name":"陵川县","cityCode":"1405","provinceCode":"14"},{"code":"140525","name":"泽州县","cityCode":"1405","provinceCode":"14"},{"code":"140581","name":"高平市","cityCode":"1405","provinceCode":"14"},{"code":"140602","name":"朔城区","cityCode":"1406","provinceCode":"14"},{"code":"140603","name":"平鲁区","cityCode":"1406","provinceCode":"14"},{"code":"140621","name":"山阴县","cityCode":"1406","provinceCode":"14"},{"code":"140622","name":"应县","cityCode":"1406","provinceCode":"14"},{"code":"140623","name":"右玉县","cityCode":"1406","provinceCode":"14"},{"code":"140624","name":"怀仁县","cityCode":"1406","provinceCode":"14"},{"code":"140702","name":"榆次区","cityCode":"1407","provinceCode":"14"},{"code":"140721","name":"榆社县","cityCode":"1407","provinceCode":"14"},{"code":"140722","name":"左权县","cityCode":"1407","provinceCode":"14"},{"code":"140723","name":"和顺县","cityCode":"1407","provinceCode":"14"},{"code":"140724","name":"昔阳县","cityCode":"1407","provinceCode":"14"},{"code":"140725","name":"寿阳县","cityCode":"1407","provinceCode":"14"},{"code":"140726","name":"太谷县","cityCode":"1407","provinceCode":"14"},{"code":"140727","name":"祁县","cityCode":"1407","provinceCode":"14"},{"code":"140728","name":"平遥县","cityCode":"1407","provinceCode":"14"},{"code":"140729","name":"灵石县","cityCode":"1407","provinceCode":"14"},{"code":"140781","name":"介休市","cityCode":"1407","provinceCode":"14"},{"code":"140802","name":"盐湖区","cityCode":"1408","provinceCode":"14"},{"code":"140821","name":"临猗县","cityCode":"1408","provinceCode":"14"},{"code":"140822","name":"万荣县","cityCode":"1408","provinceCode":"14"},{"code":"140823","name":"闻喜县","cityCode":"1408","provinceCode":"14"},{"code":"140824","name":"稷山县","cityCode":"1408","provinceCode":"14"},{"code":"140825","name":"新绛县","cityCode":"1408","provinceCode":"14"},{"code":"140826","name":"绛县","cityCode":"1408","provinceCode":"14"},{"code":"140827","name":"垣曲县","cityCode":"1408","provinceCode":"14"},{"code":"140828","name":"夏县","cityCode":"1408","provinceCode":"14"},{"code":"140829","name":"平陆县","cityCode":"1408","provinceCode":"14"},{"code":"140830","name":"芮城县","cityCode":"1408","provinceCode":"14"},{"code":"140881","name":"永济市","cityCode":"1408","provinceCode":"14"},{"code":"140882","name":"河津市","cityCode":"1408","provinceCode":"14"},{"code":"140902","name":"忻府区","cityCode":"1409","provinceCode":"14"},{"code":"140921","name":"定襄县","cityCode":"1409","provinceCode":"14"},{"code":"140922","name":"五台县","cityCode":"1409","provinceCode":"14"},{"code":"140923","name":"代县","cityCode":"1409","provinceCode":"14"},{"code":"140924","name":"繁峙县","cityCode":"1409","provinceCode":"14"},{"code":"140925","name":"宁武县","cityCode":"1409","provinceCode":"14"},{"code":"140926","name":"静乐县","cityCode":"1409","provinceCode":"14"},{"code":"140927","name":"神池县","cityCode":"1409","provinceCode":"14"},{"code":"140928","name":"五寨县","cityCode":"1409","provinceCode":"14"},{"code":"140929","name":"岢岚县","cityCode":"1409","provinceCode":"14"},{"code":"140930","name":"河曲县","cityCode":"1409","provinceCode":"14"},{"code":"140931","name":"保德县","cityCode":"1409","provinceCode":"14"},{"code":"140932","name":"偏关县","cityCode":"1409","provinceCode":"14"},{"code":"140981","name":"原平市","cityCode":"1409","provinceCode":"14"},{"code":"141002","name":"尧都区","cityCode":"1410","provinceCode":"14"},{"code":"141021","name":"曲沃县","cityCode":"1410","provinceCode":"14"},{"code":"141022","name":"翼城县","cityCode":"1410","provinceCode":"14"},{"code":"141023","name":"襄汾县","cityCode":"1410","provinceCode":"14"},{"code":"141024","name":"洪洞县","cityCode":"1410","provinceCode":"14"},{"code":"141025","name":"古县","cityCode":"1410","provinceCode":"14"},{"code":"141026","name":"安泽县","cityCode":"1410","provinceCode":"14"},{"code":"141027","name":"浮山县","cityCode":"1410","provinceCode":"14"},{"code":"141028","name":"吉县","cityCode":"1410","provinceCode":"14"},{"code":"141029","name":"乡宁县","cityCode":"1410","provinceCode":"14"},{"code":"141030","name":"大宁县","cityCode":"1410","provinceCode":"14"},{"code":"141031","name":"隰县","cityCode":"1410","provinceCode":"14"},{"code":"141032","name":"永和县","cityCode":"1410","provinceCode":"14"},{"code":"141033","name":"蒲县","cityCode":"1410","provinceCode":"14"},{"code":"141034","name":"汾西县","cityCode":"1410","provinceCode":"14"},{"code":"141081","name":"侯马市","cityCode":"1410","provinceCode":"14"},{"code":"141082","name":"霍州市","cityCode":"1410","provinceCode":"14"},{"code":"141102","name":"离石区","cityCode":"1411","provinceCode":"14"},{"code":"141121","name":"文水县","cityCode":"1411","provinceCode":"14"},{"code":"141122","name":"交城县","cityCode":"1411","provinceCode":"14"},{"code":"141123","name":"兴县","cityCode":"1411","provinceCode":"14"},{"code":"141124","name":"临县","cityCode":"1411","provinceCode":"14"},{"code":"141125","name":"柳林县","cityCode":"1411","provinceCode":"14"},{"code":"141126","name":"石楼县","cityCode":"1411","provinceCode":"14"},{"code":"141127","name":"岚县","cityCode":"1411","provinceCode":"14"},{"code":"141128","name":"方山县","cityCode":"1411","provinceCode":"14"},{"code":"141129","name":"中阳县","cityCode":"1411","provinceCode":"14"},{"code":"141130","name":"交口县","cityCode":"1411","provinceCode":"14"},{"code":"141181","name":"孝义市","cityCode":"1411","provinceCode":"14"},{"code":"141182","name":"汾阳市","cityCode":"1411","provinceCode":"14"},{"code":"150102","name":"新城区","cityCode":"1501","provinceCode":"15"},{"code":"150103","name":"回民区","cityCode":"1501","provinceCode":"15"},{"code":"150104","name":"玉泉区","cityCode":"1501","provinceCode":"15"},{"code":"150105","name":"赛罕区","cityCode":"1501","provinceCode":"15"},{"code":"150121","name":"土默特左旗","cityCode":"1501","provinceCode":"15"},{"code":"150122","name":"托克托县","cityCode":"1501","provinceCode":"15"},{"code":"150123","name":"和林格尔县","cityCode":"1501","provinceCode":"15"},{"code":"150124","name":"清水河县","cityCode":"1501","provinceCode":"15"},{"code":"150125","name":"武川县","cityCode":"1501","provinceCode":"15"},{"code":"150202","name":"东河区","cityCode":"1502","provinceCode":"15"},{"code":"150203","name":"昆都仑区","cityCode":"1502","provinceCode":"15"},{"code":"150204","name":"青山区","cityCode":"1502","provinceCode":"15"},{"code":"150205","name":"石拐区","cityCode":"1502","provinceCode":"15"},{"code":"150206","name":"白云鄂博矿区","cityCode":"1502","provinceCode":"15"},{"code":"150207","name":"九原区","cityCode":"1502","provinceCode":"15"},{"code":"150221","name":"土默特右旗","cityCode":"1502","provinceCode":"15"},{"code":"150222","name":"固阳县","cityCode":"1502","provinceCode":"15"},{"code":"150223","name":"达尔罕茂明安联合旗","cityCode":"1502","provinceCode":"15"},{"code":"150302","name":"海勃湾区","cityCode":"1503","provinceCode":"15"},{"code":"150303","name":"海南区","cityCode":"1503","provinceCode":"15"},{"code":"150304","name":"乌达区","cityCode":"1503","provinceCode":"15"},{"code":"150402","name":"红山区","cityCode":"1504","provinceCode":"15"},{"code":"150403","name":"元宝山区","cityCode":"1504","provinceCode":"15"},{"code":"150404","name":"松山区","cityCode":"1504","provinceCode":"15"},{"code":"150421","name":"阿鲁科尔沁旗","cityCode":"1504","provinceCode":"15"},{"code":"150422","name":"巴林左旗","cityCode":"1504","provinceCode":"15"},{"code":"150423","name":"巴林右旗","cityCode":"1504","provinceCode":"15"},{"code":"150424","name":"林西县","cityCode":"1504","provinceCode":"15"},{"code":"150425","name":"克什克腾旗","cityCode":"1504","provinceCode":"15"},{"code":"150426","name":"翁牛特旗","cityCode":"1504","provinceCode":"15"},{"code":"150428","name":"喀喇沁旗","cityCode":"1504","provinceCode":"15"},{"code":"150429","name":"宁城县","cityCode":"1504","provinceCode":"15"},{"code":"150430","name":"敖汉旗","cityCode":"1504","provinceCode":"15"},{"code":"150502","name":"科尔沁区","cityCode":"1505","provinceCode":"15"},{"code":"150521","name":"科尔沁左翼中旗","cityCode":"1505","provinceCode":"15"},{"code":"150522","name":"科尔沁左翼后旗","cityCode":"1505","provinceCode":"15"},{"code":"150523","name":"开鲁县","cityCode":"1505","provinceCode":"15"},{"code":"150524","name":"库伦旗","cityCode":"1505","provinceCode":"15"},{"code":"150525","name":"奈曼旗","cityCode":"1505","provinceCode":"15"},{"code":"150526","name":"扎鲁特旗","cityCode":"1505","provinceCode":"15"},{"code":"150581","name":"霍林郭勒市","cityCode":"1505","provinceCode":"15"},{"code":"150602","name":"东胜区","cityCode":"1506","provinceCode":"15"},{"code":"150603","name":"康巴什区","cityCode":"1506","provinceCode":"15"},{"code":"150621","name":"达拉特旗","cityCode":"1506","provinceCode":"15"},{"code":"150622","name":"准格尔旗","cityCode":"1506","provinceCode":"15"},{"code":"150623","name":"鄂托克前旗","cityCode":"1506","provinceCode":"15"},{"code":"150624","name":"鄂托克旗","cityCode":"1506","provinceCode":"15"},{"code":"150625","name":"杭锦旗","cityCode":"1506","provinceCode":"15"},{"code":"150626","name":"乌审旗","cityCode":"1506","provinceCode":"15"},{"code":"150627","name":"伊金霍洛旗","cityCode":"1506","provinceCode":"15"},{"code":"150702","name":"海拉尔区","cityCode":"1507","provinceCode":"15"},{"code":"150703","name":"扎赉诺尔区","cityCode":"1507","provinceCode":"15"},{"code":"150721","name":"阿荣旗","cityCode":"1507","provinceCode":"15"},{"code":"150722","name":"莫力达瓦达斡尔族自治旗","cityCode":"1507","provinceCode":"15"},{"code":"150723","name":"鄂伦春自治旗","cityCode":"1507","provinceCode":"15"},{"code":"150724","name":"鄂温克族自治旗","cityCode":"1507","provinceCode":"15"},{"code":"150725","name":"陈巴尔虎旗","cityCode":"1507","provinceCode":"15"},{"code":"150726","name":"新巴尔虎左旗","cityCode":"1507","provinceCode":"15"},{"code":"150727","name":"新巴尔虎右旗","cityCode":"1507","provinceCode":"15"},{"code":"150781","name":"满洲里市","cityCode":"1507","provinceCode":"15"},{"code":"150782","name":"牙克石市","cityCode":"1507","provinceCode":"15"},{"code":"150783","name":"扎兰屯市","cityCode":"1507","provinceCode":"15"},{"code":"150784","name":"额尔古纳市","cityCode":"1507","provinceCode":"15"},{"code":"150785","name":"根河市","cityCode":"1507","provinceCode":"15"},{"code":"150802","name":"临河区","cityCode":"1508","provinceCode":"15"},{"code":"150821","name":"五原县","cityCode":"1508","provinceCode":"15"},{"code":"150822","name":"磴口县","cityCode":"1508","provinceCode":"15"},{"code":"150823","name":"乌拉特前旗","cityCode":"1508","provinceCode":"15"},{"code":"150824","name":"乌拉特中旗","cityCode":"1508","provinceCode":"15"},{"code":"150825","name":"乌拉特后旗","cityCode":"1508","provinceCode":"15"},{"code":"150826","name":"杭锦后旗","cityCode":"1508","provinceCode":"15"},{"code":"150902","name":"集宁区","cityCode":"1509","provinceCode":"15"},{"code":"150921","name":"卓资县","cityCode":"1509","provinceCode":"15"},{"code":"150922","name":"化德县","cityCode":"1509","provinceCode":"15"},{"code":"150923","name":"商都县","cityCode":"1509","provinceCode":"15"},{"code":"150924","name":"兴和县","cityCode":"1509","provinceCode":"15"},{"code":"150925","name":"凉城县","cityCode":"1509","provinceCode":"15"},{"code":"150926","name":"察哈尔右翼前旗","cityCode":"1509","provinceCode":"15"},{"code":"150927","name":"察哈尔右翼中旗","cityCode":"1509","provinceCode":"15"},{"code":"150928","name":"察哈尔右翼后旗","cityCode":"1509","provinceCode":"15"},{"code":"150929","name":"四子王旗","cityCode":"1509","provinceCode":"15"},{"code":"150981","name":"丰镇市","cityCode":"1509","provinceCode":"15"},{"code":"152201","name":"乌兰浩特市","cityCode":"1522","provinceCode":"15"},{"code":"152202","name":"阿尔山市","cityCode":"1522","provinceCode":"15"},{"code":"152221","name":"科尔沁右翼前旗","cityCode":"1522","provinceCode":"15"},{"code":"152222","name":"科尔沁右翼中旗","cityCode":"1522","provinceCode":"15"},{"code":"152223","name":"扎赉特旗","cityCode":"1522","provinceCode":"15"},{"code":"152224","name":"突泉县","cityCode":"1522","provinceCode":"15"},{"code":"152501","name":"二连浩特市","cityCode":"1525","provinceCode":"15"},{"code":"152502","name":"锡林浩特市","cityCode":"1525","provinceCode":"15"},{"code":"152522","name":"阿巴嘎旗","cityCode":"1525","provinceCode":"15"},{"code":"152523","name":"苏尼特左旗","cityCode":"1525","provinceCode":"15"},{"code":"152524","name":"苏尼特右旗","cityCode":"1525","provinceCode":"15"},{"code":"152525","name":"东乌珠穆沁旗","cityCode":"1525","provinceCode":"15"},{"code":"152526","name":"西乌珠穆沁旗","cityCode":"1525","provinceCode":"15"},{"code":"152527","name":"太仆寺旗","cityCode":"1525","provinceCode":"15"},{"code":"152528","name":"镶黄旗","cityCode":"1525","provinceCode":"15"},{"code":"152529","name":"正镶白旗","cityCode":"1525","provinceCode":"15"},{"code":"152530","name":"正蓝旗","cityCode":"1525","provinceCode":"15"},{"code":"152531","name":"多伦县","cityCode":"1525","provinceCode":"15"},{"code":"152921","name":"阿拉善左旗","cityCode":"1529","provinceCode":"15"},{"code":"152922","name":"阿拉善右旗","cityCode":"1529","provinceCode":"15"},{"code":"152923","name":"额济纳旗","cityCode":"1529","provinceCode":"15"},{"code":"210102","name":"和平区","cityCode":"2101","provinceCode":"21"},{"code":"210103","name":"沈河区","cityCode":"2101","provinceCode":"21"},{"code":"210104","name":"大东区","cityCode":"2101","provinceCode":"21"},{"code":"210105","name":"皇姑区","cityCode":"2101","provinceCode":"21"},{"code":"210106","name":"铁西区","cityCode":"2101","provinceCode":"21"},{"code":"210111","name":"苏家屯区","cityCode":"2101","provinceCode":"21"},{"code":"210112","name":"浑南区","cityCode":"2101","provinceCode":"21"},{"code":"210113","name":"沈北新区","cityCode":"2101","provinceCode":"21"},{"code":"210114","name":"于洪区","cityCode":"2101","provinceCode":"21"},{"code":"210115","name":"辽中区","cityCode":"2101","provinceCode":"21"},{"code":"210123","name":"康平县","cityCode":"2101","provinceCode":"21"},{"code":"210124","name":"法库县","cityCode":"2101","provinceCode":"21"},{"code":"210181","name":"新民市","cityCode":"2101","provinceCode":"21"},{"code":"210202","name":"中山区","cityCode":"2102","provinceCode":"21"},{"code":"210203","name":"西岗区","cityCode":"2102","provinceCode":"21"},{"code":"210204","name":"沙河口区","cityCode":"2102","provinceCode":"21"},{"code":"210211","name":"甘井子区","cityCode":"2102","provinceCode":"21"},{"code":"210212","name":"旅顺口区","cityCode":"2102","provinceCode":"21"},{"code":"210213","name":"金州区","cityCode":"2102","provinceCode":"21"},{"code":"210214","name":"普兰店区","cityCode":"2102","provinceCode":"21"},{"code":"210224","name":"长海县","cityCode":"2102","provinceCode":"21"},{"code":"210281","name":"瓦房店市","cityCode":"2102","provinceCode":"21"},{"code":"210283","name":"庄河市","cityCode":"2102","provinceCode":"21"},{"code":"210302","name":"铁东区","cityCode":"2103","provinceCode":"21"},{"code":"210303","name":"铁西区","cityCode":"2103","provinceCode":"21"},{"code":"210304","name":"立山区","cityCode":"2103","provinceCode":"21"},{"code":"210311","name":"千山区","cityCode":"2103","provinceCode":"21"},{"code":"210321","name":"台安县","cityCode":"2103","provinceCode":"21"},{"code":"210323","name":"岫岩满族自治县","cityCode":"2103","provinceCode":"21"},{"code":"210381","name":"海城市","cityCode":"2103","provinceCode":"21"},{"code":"210402","name":"新抚区","cityCode":"2104","provinceCode":"21"},{"code":"210403","name":"东洲区","cityCode":"2104","provinceCode":"21"},{"code":"210404","name":"望花区","cityCode":"2104","provinceCode":"21"},{"code":"210411","name":"顺城区","cityCode":"2104","provinceCode":"21"},{"code":"210421","name":"抚顺县","cityCode":"2104","provinceCode":"21"},{"code":"210422","name":"新宾满族自治县","cityCode":"2104","provinceCode":"21"},{"code":"210423","name":"清原满族自治县","cityCode":"2104","provinceCode":"21"},{"code":"210502","name":"平山区","cityCode":"2105","provinceCode":"21"},{"code":"210503","name":"溪湖区","cityCode":"2105","provinceCode":"21"},{"code":"210504","name":"明山区","cityCode":"2105","provinceCode":"21"},{"code":"210505","name":"南芬区","cityCode":"2105","provinceCode":"21"},{"code":"210521","name":"本溪满族自治县","cityCode":"2105","provinceCode":"21"},{"code":"210522","name":"桓仁满族自治县","cityCode":"2105","provinceCode":"21"},{"code":"210602","name":"元宝区","cityCode":"2106","provinceCode":"21"},{"code":"210603","name":"振兴区","cityCode":"2106","provinceCode":"21"},{"code":"210604","name":"振安区","cityCode":"2106","provinceCode":"21"},{"code":"210624","name":"宽甸满族自治县","cityCode":"2106","provinceCode":"21"},{"code":"210681","name":"东港市","cityCode":"2106","provinceCode":"21"},{"code":"210682","name":"凤城市","cityCode":"2106","provinceCode":"21"},{"code":"210702","name":"古塔区","cityCode":"2107","provinceCode":"21"},{"code":"210703","name":"凌河区","cityCode":"2107","provinceCode":"21"},{"code":"210711","name":"太和区","cityCode":"2107","provinceCode":"21"},{"code":"210726","name":"黑山县","cityCode":"2107","provinceCode":"21"},{"code":"210727","name":"义县","cityCode":"2107","provinceCode":"21"},{"code":"210781","name":"凌海市","cityCode":"2107","provinceCode":"21"},{"code":"210782","name":"北镇市","cityCode":"2107","provinceCode":"21"},{"code":"210802","name":"站前区","cityCode":"2108","provinceCode":"21"},{"code":"210803","name":"西市区","cityCode":"2108","provinceCode":"21"},{"code":"210804","name":"鲅鱼圈区","cityCode":"2108","provinceCode":"21"},{"code":"210811","name":"老边区","cityCode":"2108","provinceCode":"21"},{"code":"210881","name":"盖州市","cityCode":"2108","provinceCode":"21"},{"code":"210882","name":"大石桥市","cityCode":"2108","provinceCode":"21"},{"code":"210902","name":"海州区","cityCode":"2109","provinceCode":"21"},{"code":"210903","name":"新邱区","cityCode":"2109","provinceCode":"21"},{"code":"210904","name":"太平区","cityCode":"2109","provinceCode":"21"},{"code":"210905","name":"清河门区","cityCode":"2109","provinceCode":"21"},{"code":"210911","name":"细河区","cityCode":"2109","provinceCode":"21"},{"code":"210921","name":"阜新蒙古族自治县","cityCode":"2109","provinceCode":"21"},{"code":"210922","name":"彰武县","cityCode":"2109","provinceCode":"21"},{"code":"211002","name":"白塔区","cityCode":"2110","provinceCode":"21"},{"code":"211003","name":"文圣区","cityCode":"2110","provinceCode":"21"},{"code":"211004","name":"宏伟区","cityCode":"2110","provinceCode":"21"},{"code":"211005","name":"弓长岭区","cityCode":"2110","provinceCode":"21"},{"code":"211011","name":"太子河区","cityCode":"2110","provinceCode":"21"},{"code":"211021","name":"辽阳县","cityCode":"2110","provinceCode":"21"},{"code":"211081","name":"灯塔市","cityCode":"2110","provinceCode":"21"},{"code":"211102","name":"双台子区","cityCode":"2111","provinceCode":"21"},{"code":"211103","name":"兴隆台区","cityCode":"2111","provinceCode":"21"},{"code":"211104","name":"大洼区","cityCode":"2111","provinceCode":"21"},{"code":"211122","name":"盘山县","cityCode":"2111","provinceCode":"21"},{"code":"211202","name":"银州区","cityCode":"2112","provinceCode":"21"},{"code":"211204","name":"清河区","cityCode":"2112","provinceCode":"21"},{"code":"211221","name":"铁岭县","cityCode":"2112","provinceCode":"21"},{"code":"211223","name":"西丰县","cityCode":"2112","provinceCode":"21"},{"code":"211224","name":"昌图县","cityCode":"2112","provinceCode":"21"},{"code":"211281","name":"调兵山市","cityCode":"2112","provinceCode":"21"},{"code":"211282","name":"开原市","cityCode":"2112","provinceCode":"21"},{"code":"211302","name":"双塔区","cityCode":"2113","provinceCode":"21"},{"code":"211303","name":"龙城区","cityCode":"2113","provinceCode":"21"},{"code":"211321","name":"朝阳县","cityCode":"2113","provinceCode":"21"},{"code":"211322","name":"建平县","cityCode":"2113","provinceCode":"21"},{"code":"211324","name":"喀喇沁左翼蒙古族自治县","cityCode":"2113","provinceCode":"21"},{"code":"211381","name":"北票市","cityCode":"2113","provinceCode":"21"},{"code":"211382","name":"凌源市","cityCode":"2113","provinceCode":"21"},{"code":"211402","name":"连山区","cityCode":"2114","provinceCode":"21"},{"code":"211403","name":"龙港区","cityCode":"2114","provinceCode":"21"},{"code":"211404","name":"南票区","cityCode":"2114","provinceCode":"21"},{"code":"211421","name":"绥中县","cityCode":"2114","provinceCode":"21"},{"code":"211422","name":"建昌县","cityCode":"2114","provinceCode":"21"},{"code":"211481","name":"兴城市","cityCode":"2114","provinceCode":"21"},{"code":"220102","name":"南关区","cityCode":"2201","provinceCode":"22"},{"code":"220103","name":"宽城区","cityCode":"2201","provinceCode":"22"},{"code":"220104","name":"朝阳区","cityCode":"2201","provinceCode":"22"},{"code":"220105","name":"二道区","cityCode":"2201","provinceCode":"22"},{"code":"220106","name":"绿园区","cityCode":"2201","provinceCode":"22"},{"code":"220112","name":"双阳区","cityCode":"2201","provinceCode":"22"},{"code":"220113","name":"九台区","cityCode":"2201","provinceCode":"22"},{"code":"220122","name":"农安县","cityCode":"2201","provinceCode":"22"},{"code":"220182","name":"榆树市","cityCode":"2201","provinceCode":"22"},{"code":"220183","name":"德惠市","cityCode":"2201","provinceCode":"22"},{"code":"220202","name":"昌邑区","cityCode":"2202","provinceCode":"22"},{"code":"220203","name":"龙潭区","cityCode":"2202","provinceCode":"22"},{"code":"220204","name":"船营区","cityCode":"2202","provinceCode":"22"},{"code":"220211","name":"丰满区","cityCode":"2202","provinceCode":"22"},{"code":"220221","name":"永吉县","cityCode":"2202","provinceCode":"22"},{"code":"220281","name":"蛟河市","cityCode":"2202","provinceCode":"22"},{"code":"220282","name":"桦甸市","cityCode":"2202","provinceCode":"22"},{"code":"220283","name":"舒兰市","cityCode":"2202","provinceCode":"22"},{"code":"220284","name":"磐石市","cityCode":"2202","provinceCode":"22"},{"code":"220302","name":"铁西区","cityCode":"2203","provinceCode":"22"},{"code":"220303","name":"铁东区","cityCode":"2203","provinceCode":"22"},{"code":"220322","name":"梨树县","cityCode":"2203","provinceCode":"22"},{"code":"220323","name":"伊通满族自治县","cityCode":"2203","provinceCode":"22"},{"code":"220381","name":"公主岭市","cityCode":"2203","provinceCode":"22"},{"code":"220382","name":"双辽市","cityCode":"2203","provinceCode":"22"},{"code":"220402","name":"龙山区","cityCode":"2204","provinceCode":"22"},{"code":"220403","name":"西安区","cityCode":"2204","provinceCode":"22"},{"code":"220421","name":"东丰县","cityCode":"2204","provinceCode":"22"},{"code":"220422","name":"东辽县","cityCode":"2204","provinceCode":"22"},{"code":"220502","name":"东昌区","cityCode":"2205","provinceCode":"22"},{"code":"220503","name":"二道江区","cityCode":"2205","provinceCode":"22"},{"code":"220521","name":"通化县","cityCode":"2205","provinceCode":"22"},{"code":"220523","name":"辉南县","cityCode":"2205","provinceCode":"22"},{"code":"220524","name":"柳河县","cityCode":"2205","provinceCode":"22"},{"code":"220581","name":"梅河口市","cityCode":"2205","provinceCode":"22"},{"code":"220582","name":"集安市","cityCode":"2205","provinceCode":"22"},{"code":"220602","name":"浑江区","cityCode":"2206","provinceCode":"22"},{"code":"220605","name":"江源区","cityCode":"2206","provinceCode":"22"},{"code":"220621","name":"抚松县","cityCode":"2206","provinceCode":"22"},{"code":"220622","name":"靖宇县","cityCode":"2206","provinceCode":"22"},{"code":"220623","name":"长白朝鲜族自治县","cityCode":"2206","provinceCode":"22"},{"code":"220681","name":"临江市","cityCode":"2206","provinceCode":"22"},{"code":"220702","name":"宁江区","cityCode":"2207","provinceCode":"22"},{"code":"220721","name":"前郭尔罗斯蒙古族自治县","cityCode":"2207","provinceCode":"22"},{"code":"220722","name":"长岭县","cityCode":"2207","provinceCode":"22"},{"code":"220723","name":"乾安县","cityCode":"2207","provinceCode":"22"},{"code":"220781","name":"扶余市","cityCode":"2207","provinceCode":"22"},{"code":"220802","name":"洮北区","cityCode":"2208","provinceCode":"22"},{"code":"220821","name":"镇赉县","cityCode":"2208","provinceCode":"22"},{"code":"220822","name":"通榆县","cityCode":"2208","provinceCode":"22"},{"code":"220881","name":"洮南市","cityCode":"2208","provinceCode":"22"},{"code":"220882","name":"大安市","cityCode":"2208","provinceCode":"22"},{"code":"222401","name":"延吉市","cityCode":"2224","provinceCode":"22"},{"code":"222402","name":"图们市","cityCode":"2224","provinceCode":"22"},{"code":"222403","name":"敦化市","cityCode":"2224","provinceCode":"22"},{"code":"222404","name":"珲春市","cityCode":"2224","provinceCode":"22"},{"code":"222405","name":"龙井市","cityCode":"2224","provinceCode":"22"},{"code":"222406","name":"和龙市","cityCode":"2224","provinceCode":"22"},{"code":"222424","name":"汪清县","cityCode":"2224","provinceCode":"22"},{"code":"222426","name":"安图县","cityCode":"2224","provinceCode":"22"},{"code":"230102","name":"道里区","cityCode":"2301","provinceCode":"23"},{"code":"230103","name":"南岗区","cityCode":"2301","provinceCode":"23"},{"code":"230104","name":"道外区","cityCode":"2301","provinceCode":"23"},{"code":"230108","name":"平房区","cityCode":"2301","provinceCode":"23"},{"code":"230109","name":"松北区","cityCode":"2301","provinceCode":"23"},{"code":"230110","name":"香坊区","cityCode":"2301","provinceCode":"23"},{"code":"230111","name":"呼兰区","cityCode":"2301","provinceCode":"23"},{"code":"230112","name":"阿城区","cityCode":"2301","provinceCode":"23"},{"code":"230113","name":"双城区","cityCode":"2301","provinceCode":"23"},{"code":"230123","name":"依兰县","cityCode":"2301","provinceCode":"23"},{"code":"230124","name":"方正县","cityCode":"2301","provinceCode":"23"},{"code":"230125","name":"宾县","cityCode":"2301","provinceCode":"23"},{"code":"230126","name":"巴彦县","cityCode":"2301","provinceCode":"23"},{"code":"230127","name":"木兰县","cityCode":"2301","provinceCode":"23"},{"code":"230128","name":"通河县","cityCode":"2301","provinceCode":"23"},{"code":"230129","name":"延寿县","cityCode":"2301","provinceCode":"23"},{"code":"230183","name":"尚志市","cityCode":"2301","provinceCode":"23"},{"code":"230184","name":"五常市","cityCode":"2301","provinceCode":"23"},{"code":"230202","name":"龙沙区","cityCode":"2302","provinceCode":"23"},{"code":"230203","name":"建华区","cityCode":"2302","provinceCode":"23"},{"code":"230204","name":"铁锋区","cityCode":"2302","provinceCode":"23"},{"code":"230205","name":"昂昂溪区","cityCode":"2302","provinceCode":"23"},{"code":"230206","name":"富拉尔基区","cityCode":"2302","provinceCode":"23"},{"code":"230207","name":"碾子山区","cityCode":"2302","provinceCode":"23"},{"code":"230208","name":"梅里斯达斡尔族区","cityCode":"2302","provinceCode":"23"},{"code":"230221","name":"龙江县","cityCode":"2302","provinceCode":"23"},{"code":"230223","name":"依安县","cityCode":"2302","provinceCode":"23"},{"code":"230224","name":"泰来县","cityCode":"2302","provinceCode":"23"},{"code":"230225","name":"甘南县","cityCode":"2302","provinceCode":"23"},{"code":"230227","name":"富裕县","cityCode":"2302","provinceCode":"23"},{"code":"230229","name":"克山县","cityCode":"2302","provinceCode":"23"},{"code":"230230","name":"克东县","cityCode":"2302","provinceCode":"23"},{"code":"230231","name":"拜泉县","cityCode":"2302","provinceCode":"23"},{"code":"230281","name":"讷河市","cityCode":"2302","provinceCode":"23"},{"code":"230302","name":"鸡冠区","cityCode":"2303","provinceCode":"23"},{"code":"230303","name":"恒山区","cityCode":"2303","provinceCode":"23"},{"code":"230304","name":"滴道区","cityCode":"2303","provinceCode":"23"},{"code":"230305","name":"梨树区","cityCode":"2303","provinceCode":"23"},{"code":"230306","name":"城子河区","cityCode":"2303","provinceCode":"23"},{"code":"230307","name":"麻山区","cityCode":"2303","provinceCode":"23"},{"code":"230321","name":"鸡东县","cityCode":"2303","provinceCode":"23"},{"code":"230381","name":"虎林市","cityCode":"2303","provinceCode":"23"},{"code":"230382","name":"密山市","cityCode":"2303","provinceCode":"23"},{"code":"230402","name":"向阳区","cityCode":"2304","provinceCode":"23"},{"code":"230403","name":"工农区","cityCode":"2304","provinceCode":"23"},{"code":"230404","name":"南山区","cityCode":"2304","provinceCode":"23"},{"code":"230405","name":"兴安区","cityCode":"2304","provinceCode":"23"},{"code":"230406","name":"东山区","cityCode":"2304","provinceCode":"23"},{"code":"230407","name":"兴山区","cityCode":"2304","provinceCode":"23"},{"code":"230421","name":"萝北县","cityCode":"2304","provinceCode":"23"},{"code":"230422","name":"绥滨县","cityCode":"2304","provinceCode":"23"},{"code":"230502","name":"尖山区","cityCode":"2305","provinceCode":"23"},{"code":"230503","name":"岭东区","cityCode":"2305","provinceCode":"23"},{"code":"230505","name":"四方台区","cityCode":"2305","provinceCode":"23"},{"code":"230506","name":"宝山区","cityCode":"2305","provinceCode":"23"},{"code":"230521","name":"集贤县","cityCode":"2305","provinceCode":"23"},{"code":"230522","name":"友谊县","cityCode":"2305","provinceCode":"23"},{"code":"230523","name":"宝清县","cityCode":"2305","provinceCode":"23"},{"code":"230524","name":"饶河县","cityCode":"2305","provinceCode":"23"},{"code":"230602","name":"萨尔图区","cityCode":"2306","provinceCode":"23"},{"code":"230603","name":"龙凤区","cityCode":"2306","provinceCode":"23"},{"code":"230604","name":"让胡路区","cityCode":"2306","provinceCode":"23"},{"code":"230605","name":"红岗区","cityCode":"2306","provinceCode":"23"},{"code":"230606","name":"大同区","cityCode":"2306","provinceCode":"23"},{"code":"230621","name":"肇州县","cityCode":"2306","provinceCode":"23"},{"code":"230622","name":"肇源县","cityCode":"2306","provinceCode":"23"},{"code":"230623","name":"林甸县","cityCode":"2306","provinceCode":"23"},{"code":"230624","name":"杜尔伯特蒙古族自治县","cityCode":"2306","provinceCode":"23"},{"code":"230702","name":"伊春区","cityCode":"2307","provinceCode":"23"},{"code":"230703","name":"南岔区","cityCode":"2307","provinceCode":"23"},{"code":"230704","name":"友好区","cityCode":"2307","provinceCode":"23"},{"code":"230705","name":"西林区","cityCode":"2307","provinceCode":"23"},{"code":"230706","name":"翠峦区","cityCode":"2307","provinceCode":"23"},{"code":"230707","name":"新青区","cityCode":"2307","provinceCode":"23"},{"code":"230708","name":"美溪区","cityCode":"2307","provinceCode":"23"},{"code":"230709","name":"金山屯区","cityCode":"2307","provinceCode":"23"},{"code":"230710","name":"五营区","cityCode":"2307","provinceCode":"23"},{"code":"230711","name":"乌马河区","cityCode":"2307","provinceCode":"23"},{"code":"230712","name":"汤旺河区","cityCode":"2307","provinceCode":"23"},{"code":"230713","name":"带岭区","cityCode":"2307","provinceCode":"23"},{"code":"230714","name":"乌伊岭区","cityCode":"2307","provinceCode":"23"},{"code":"230715","name":"红星区","cityCode":"2307","provinceCode":"23"},{"code":"230716","name":"上甘岭区","cityCode":"2307","provinceCode":"23"},{"code":"230722","name":"嘉荫县","cityCode":"2307","provinceCode":"23"},{"code":"230781","name":"铁力市","cityCode":"2307","provinceCode":"23"},{"code":"230803","name":"向阳区","cityCode":"2308","provinceCode":"23"},{"code":"230804","name":"前进区","cityCode":"2308","provinceCode":"23"},{"code":"230805","name":"东风区","cityCode":"2308","provinceCode":"23"},{"code":"230811","name":"郊区","cityCode":"2308","provinceCode":"23"},{"code":"230822","name":"桦南县","cityCode":"2308","provinceCode":"23"},{"code":"230826","name":"桦川县","cityCode":"2308","provinceCode":"23"},{"code":"230828","name":"汤原县","cityCode":"2308","provinceCode":"23"},{"code":"230881","name":"同江市","cityCode":"2308","provinceCode":"23"},{"code":"230882","name":"富锦市","cityCode":"2308","provinceCode":"23"},{"code":"230883","name":"抚远市","cityCode":"2308","provinceCode":"23"},{"code":"230902","name":"新兴区","cityCode":"2309","provinceCode":"23"},{"code":"230903","name":"桃山区","cityCode":"2309","provinceCode":"23"},{"code":"230904","name":"茄子河区","cityCode":"2309","provinceCode":"23"},{"code":"230921","name":"勃利县","cityCode":"2309","provinceCode":"23"},{"code":"231002","name":"东安区","cityCode":"2310","provinceCode":"23"},{"code":"231003","name":"阳明区","cityCode":"2310","provinceCode":"23"},{"code":"231004","name":"爱民区","cityCode":"2310","provinceCode":"23"},{"code":"231005","name":"西安区","cityCode":"2310","provinceCode":"23"},{"code":"231025","name":"林口县","cityCode":"2310","provinceCode":"23"},{"code":"231081","name":"绥芬河市","cityCode":"2310","provinceCode":"23"},{"code":"231083","name":"海林市","cityCode":"2310","provinceCode":"23"},{"code":"231084","name":"宁安市","cityCode":"2310","provinceCode":"23"},{"code":"231085","name":"穆棱市","cityCode":"2310","provinceCode":"23"},{"code":"231086","name":"东宁市","cityCode":"2310","provinceCode":"23"},{"code":"231102","name":"爱辉区","cityCode":"2311","provinceCode":"23"},{"code":"231121","name":"嫩江县","cityCode":"2311","provinceCode":"23"},{"code":"231123","name":"逊克县","cityCode":"2311","provinceCode":"23"},{"code":"231124","name":"孙吴县","cityCode":"2311","provinceCode":"23"},{"code":"231181","name":"北安市","cityCode":"2311","provinceCode":"23"},{"code":"231182","name":"五大连池市","cityCode":"2311","provinceCode":"23"},{"code":"231202","name":"北林区","cityCode":"2312","provinceCode":"23"},{"code":"231221","name":"望奎县","cityCode":"2312","provinceCode":"23"},{"code":"231222","name":"兰西县","cityCode":"2312","provinceCode":"23"},{"code":"231223","name":"青冈县","cityCode":"2312","provinceCode":"23"},{"code":"231224","name":"庆安县","cityCode":"2312","provinceCode":"23"},{"code":"231225","name":"明水县","cityCode":"2312","provinceCode":"23"},{"code":"231226","name":"绥棱县","cityCode":"2312","provinceCode":"23"},{"code":"231281","name":"安达市","cityCode":"2312","provinceCode":"23"},{"code":"231282","name":"肇东市","cityCode":"2312","provinceCode":"23"},{"code":"231283","name":"海伦市","cityCode":"2312","provinceCode":"23"},{"code":"232721","name":"呼玛县","cityCode":"2327","provinceCode":"23"},{"code":"232722","name":"塔河县","cityCode":"2327","provinceCode":"23"},{"code":"232723","name":"漠河县","cityCode":"2327","provinceCode":"23"},{"code":"310101","name":"黄浦区","cityCode":"3101","provinceCode":"31"},{"code":"310104","name":"徐汇区","cityCode":"3101","provinceCode":"31"},{"code":"310105","name":"长宁区","cityCode":"3101","provinceCode":"31"},{"code":"310106","name":"静安区","cityCode":"3101","provinceCode":"31"},{"code":"310107","name":"普陀区","cityCode":"3101","provinceCode":"31"},{"code":"310109","name":"虹口区","cityCode":"3101","provinceCode":"31"},{"code":"310110","name":"杨浦区","cityCode":"3101","provinceCode":"31"},{"code":"310112","name":"闵行区","cityCode":"3101","provinceCode":"31"},{"code":"310113","name":"宝山区","cityCode":"3101","provinceCode":"31"},{"code":"310114","name":"嘉定区","cityCode":"3101","provinceCode":"31"},{"code":"310115","name":"浦东新区","cityCode":"3101","provinceCode":"31"},{"code":"310116","name":"金山区","cityCode":"3101","provinceCode":"31"},{"code":"310117","name":"松江区","cityCode":"3101","provinceCode":"31"},{"code":"310118","name":"青浦区","cityCode":"3101","provinceCode":"31"},{"code":"310120","name":"奉贤区","cityCode":"3101","provinceCode":"31"},{"code":"310151","name":"崇明区","cityCode":"3101","provinceCode":"31"},{"code":"320102","name":"玄武区","cityCode":"3201","provinceCode":"32"},{"code":"320104","name":"秦淮区","cityCode":"3201","provinceCode":"32"},{"code":"320105","name":"建邺区","cityCode":"3201","provinceCode":"32"},{"code":"320106","name":"鼓楼区","cityCode":"3201","provinceCode":"32"},{"code":"320111","name":"浦口区","cityCode":"3201","provinceCode":"32"},{"code":"320113","name":"栖霞区","cityCode":"3201","provinceCode":"32"},{"code":"320114","name":"雨花台区","cityCode":"3201","provinceCode":"32"},{"code":"320115","name":"江宁区","cityCode":"3201","provinceCode":"32"},{"code":"320116","name":"六合区","cityCode":"3201","provinceCode":"32"},{"code":"320117","name":"溧水区","cityCode":"3201","provinceCode":"32"},{"code":"320118","name":"高淳区","cityCode":"3201","provinceCode":"32"},{"code":"320205","name":"锡山区","cityCode":"3202","provinceCode":"32"},{"code":"320206","name":"惠山区","cityCode":"3202","provinceCode":"32"},{"code":"320211","name":"滨湖区","cityCode":"3202","provinceCode":"32"},{"code":"320213","name":"梁溪区","cityCode":"3202","provinceCode":"32"},{"code":"320214","name":"新吴区","cityCode":"3202","provinceCode":"32"},{"code":"320281","name":"江阴市","cityCode":"3202","provinceCode":"32"},{"code":"320282","name":"宜兴市","cityCode":"3202","provinceCode":"32"},{"code":"320302","name":"鼓楼区","cityCode":"3203","provinceCode":"32"},{"code":"320303","name":"云龙区","cityCode":"3203","provinceCode":"32"},{"code":"320305","name":"贾汪区","cityCode":"3203","provinceCode":"32"},{"code":"320311","name":"泉山区","cityCode":"3203","provinceCode":"32"},{"code":"320312","name":"铜山区","cityCode":"3203","provinceCode":"32"},{"code":"320321","name":"丰县","cityCode":"3203","provinceCode":"32"},{"code":"320322","name":"沛县","cityCode":"3203","provinceCode":"32"},{"code":"320324","name":"睢宁县","cityCode":"3203","provinceCode":"32"},{"code":"320381","name":"新沂市","cityCode":"3203","provinceCode":"32"},{"code":"320382","name":"邳州市","cityCode":"3203","provinceCode":"32"},{"code":"320402","name":"天宁区","cityCode":"3204","provinceCode":"32"},{"code":"320404","name":"钟楼区","cityCode":"3204","provinceCode":"32"},{"code":"320411","name":"新北区","cityCode":"3204","provinceCode":"32"},{"code":"320412","name":"武进区","cityCode":"3204","provinceCode":"32"},{"code":"320413","name":"金坛区","cityCode":"3204","provinceCode":"32"},{"code":"320481","name":"溧阳市","cityCode":"3204","provinceCode":"32"},{"code":"320505","name":"虎丘区","cityCode":"3205","provinceCode":"32"},{"code":"320506","name":"吴中区","cityCode":"3205","provinceCode":"32"},{"code":"320507","name":"相城区","cityCode":"3205","provinceCode":"32"},{"code":"320508","name":"姑苏区","cityCode":"3205","provinceCode":"32"},{"code":"320509","name":"吴江区","cityCode":"3205","provinceCode":"32"},{"code":"320581","name":"常熟市","cityCode":"3205","provinceCode":"32"},{"code":"320582","name":"张家港市","cityCode":"3205","provinceCode":"32"},{"code":"320583","name":"昆山市","cityCode":"3205","provinceCode":"32"},{"code":"320585","name":"太仓市","cityCode":"3205","provinceCode":"32"},{"code":"320602","name":"崇川区","cityCode":"3206","provinceCode":"32"},{"code":"320611","name":"港闸区","cityCode":"3206","provinceCode":"32"},{"code":"320612","name":"通州区","cityCode":"3206","provinceCode":"32"},{"code":"320621","name":"海安县","cityCode":"3206","provinceCode":"32"},{"code":"320623","name":"如东县","cityCode":"3206","provinceCode":"32"},{"code":"320681","name":"启东市","cityCode":"3206","provinceCode":"32"},{"code":"320682","name":"如皋市","cityCode":"3206","provinceCode":"32"},{"code":"320684","name":"海门市","cityCode":"3206","provinceCode":"32"},{"code":"320703","name":"连云区","cityCode":"3207","provinceCode":"32"},{"code":"320706","name":"海州区","cityCode":"3207","provinceCode":"32"},{"code":"320707","name":"赣榆区","cityCode":"3207","provinceCode":"32"},{"code":"320722","name":"东海县","cityCode":"3207","provinceCode":"32"},{"code":"320723","name":"灌云县","cityCode":"3207","provinceCode":"32"},{"code":"320724","name":"灌南县","cityCode":"3207","provinceCode":"32"},{"code":"320803","name":"淮安区","cityCode":"3208","provinceCode":"32"},{"code":"320804","name":"淮阴区","cityCode":"3208","provinceCode":"32"},{"code":"320812","name":"清江浦区","cityCode":"3208","provinceCode":"32"},{"code":"320813","name":"洪泽区","cityCode":"3208","provinceCode":"32"},{"code":"320826","name":"涟水县","cityCode":"3208","provinceCode":"32"},{"code":"320830","name":"盱眙县","cityCode":"3208","provinceCode":"32"},{"code":"320831","name":"金湖县","cityCode":"3208","provinceCode":"32"},{"code":"320902","name":"亭湖区","cityCode":"3209","provinceCode":"32"},{"code":"320903","name":"盐都区","cityCode":"3209","provinceCode":"32"},{"code":"320904","name":"大丰区","cityCode":"3209","provinceCode":"32"},{"code":"320921","name":"响水县","cityCode":"3209","provinceCode":"32"},{"code":"320922","name":"滨海县","cityCode":"3209","provinceCode":"32"},{"code":"320923","name":"阜宁县","cityCode":"3209","provinceCode":"32"},{"code":"320924","name":"射阳县","cityCode":"3209","provinceCode":"32"},{"code":"320925","name":"建湖县","cityCode":"3209","provinceCode":"32"},{"code":"320981","name":"东台市","cityCode":"3209","provinceCode":"32"},{"code":"321002","name":"广陵区","cityCode":"3210","provinceCode":"32"},{"code":"321003","name":"邗江区","cityCode":"3210","provinceCode":"32"},{"code":"321012","name":"江都区","cityCode":"3210","provinceCode":"32"},{"code":"321023","name":"宝应县","cityCode":"3210","provinceCode":"32"},{"code":"321081","name":"仪征市","cityCode":"3210","provinceCode":"32"},{"code":"321084","name":"高邮市","cityCode":"3210","provinceCode":"32"},{"code":"321102","name":"京口区","cityCode":"3211","provinceCode":"32"},{"code":"321111","name":"润州区","cityCode":"3211","provinceCode":"32"},{"code":"321112","name":"丹徒区","cityCode":"3211","provinceCode":"32"},{"code":"321181","name":"丹阳市","cityCode":"3211","provinceCode":"32"},{"code":"321182","name":"扬中市","cityCode":"3211","provinceCode":"32"},{"code":"321183","name":"句容市","cityCode":"3211","provinceCode":"32"},{"code":"321202","name":"海陵区","cityCode":"3212","provinceCode":"32"},{"code":"321203","name":"高港区","cityCode":"3212","provinceCode":"32"},{"code":"321204","name":"姜堰区","cityCode":"3212","provinceCode":"32"},{"code":"321281","name":"兴化市","cityCode":"3212","provinceCode":"32"},{"code":"321282","name":"靖江市","cityCode":"3212","provinceCode":"32"},{"code":"321283","name":"泰兴市","cityCode":"3212","provinceCode":"32"},{"code":"321302","name":"宿城区","cityCode":"3213","provinceCode":"32"},{"code":"321311","name":"宿豫区","cityCode":"3213","provinceCode":"32"},{"code":"321322","name":"沭阳县","cityCode":"3213","provinceCode":"32"},{"code":"321323","name":"泗阳县","cityCode":"3213","provinceCode":"32"},{"code":"321324","name":"泗洪县","cityCode":"3213","provinceCode":"32"},{"code":"330102","name":"上城区","cityCode":"3301","provinceCode":"33"},{"code":"330103","name":"下城区","cityCode":"3301","provinceCode":"33"},{"code":"330104","name":"江干区","cityCode":"3301","provinceCode":"33"},{"code":"330105","name":"拱墅区","cityCode":"3301","provinceCode":"33"},{"code":"330106","name":"西湖区","cityCode":"3301","provinceCode":"33"},{"code":"330108","name":"滨江区","cityCode":"3301","provinceCode":"33"},{"code":"330109","name":"萧山区","cityCode":"3301","provinceCode":"33"},{"code":"330110","name":"余杭区","cityCode":"3301","provinceCode":"33"},{"code":"330111","name":"富阳区","cityCode":"3301","provinceCode":"33"},{"code":"330122","name":"桐庐县","cityCode":"3301","provinceCode":"33"},{"code":"330127","name":"淳安县","cityCode":"3301","provinceCode":"33"},{"code":"330182","name":"建德市","cityCode":"3301","provinceCode":"33"},{"code":"330185","name":"临安市","cityCode":"3301","provinceCode":"33"},{"code":"330203","name":"海曙区","cityCode":"3302","provinceCode":"33"},{"code":"330204","name":"江东区","cityCode":"3302","provinceCode":"33"},{"code":"330205","name":"江北区","cityCode":"3302","provinceCode":"33"},{"code":"330206","name":"北仑区","cityCode":"3302","provinceCode":"33"},{"code":"330211","name":"镇海区","cityCode":"3302","provinceCode":"33"},{"code":"330212","name":"鄞州区","cityCode":"3302","provinceCode":"33"},{"code":"330225","name":"象山县","cityCode":"3302","provinceCode":"33"},{"code":"330226","name":"宁海县","cityCode":"3302","provinceCode":"33"},{"code":"330281","name":"余姚市","cityCode":"3302","provinceCode":"33"},{"code":"330282","name":"慈溪市","cityCode":"3302","provinceCode":"33"},{"code":"330283","name":"奉化市","cityCode":"3302","provinceCode":"33"},{"code":"330302","name":"鹿城区","cityCode":"3303","provinceCode":"33"},{"code":"330303","name":"龙湾区","cityCode":"3303","provinceCode":"33"},{"code":"330304","name":"瓯海区","cityCode":"3303","provinceCode":"33"},{"code":"330305","name":"洞头区","cityCode":"3303","provinceCode":"33"},{"code":"330324","name":"永嘉县","cityCode":"3303","provinceCode":"33"},{"code":"330326","name":"平阳县","cityCode":"3303","provinceCode":"33"},{"code":"330327","name":"苍南县","cityCode":"3303","provinceCode":"33"},{"code":"330328","name":"文成县","cityCode":"3303","provinceCode":"33"},{"code":"330329","name":"泰顺县","cityCode":"3303","provinceCode":"33"},{"code":"330381","name":"瑞安市","cityCode":"3303","provinceCode":"33"},{"code":"330382","name":"乐清市","cityCode":"3303","provinceCode":"33"},{"code":"330402","name":"南湖区","cityCode":"3304","provinceCode":"33"},{"code":"330411","name":"秀洲区","cityCode":"3304","provinceCode":"33"},{"code":"330421","name":"嘉善县","cityCode":"3304","provinceCode":"33"},{"code":"330424","name":"海盐县","cityCode":"3304","provinceCode":"33"},{"code":"330481","name":"海宁市","cityCode":"3304","provinceCode":"33"},{"code":"330482","name":"平湖市","cityCode":"3304","provinceCode":"33"},{"code":"330483","name":"桐乡市","cityCode":"3304","provinceCode":"33"},{"code":"330502","name":"吴兴区","cityCode":"3305","provinceCode":"33"},{"code":"330503","name":"南浔区","cityCode":"3305","provinceCode":"33"},{"code":"330521","name":"德清县","cityCode":"3305","provinceCode":"33"},{"code":"330522","name":"长兴县","cityCode":"3305","provinceCode":"33"},{"code":"330523","name":"安吉县","cityCode":"3305","provinceCode":"33"},{"code":"330602","name":"越城区","cityCode":"3306","provinceCode":"33"},{"code":"330603","name":"柯桥区","cityCode":"3306","provinceCode":"33"},{"code":"330604","name":"上虞区","cityCode":"3306","provinceCode":"33"},{"code":"330624","name":"新昌县","cityCode":"3306","provinceCode":"33"},{"code":"330681","name":"诸暨市","cityCode":"3306","provinceCode":"33"},{"code":"330683","name":"嵊州市","cityCode":"3306","provinceCode":"33"},{"code":"330702","name":"婺城区","cityCode":"3307","provinceCode":"33"},{"code":"330703","name":"金东区","cityCode":"3307","provinceCode":"33"},{"code":"330723","name":"武义县","cityCode":"3307","provinceCode":"33"},{"code":"330726","name":"浦江县","cityCode":"3307","provinceCode":"33"},{"code":"330727","name":"磐安县","cityCode":"3307","provinceCode":"33"},{"code":"330781","name":"兰溪市","cityCode":"3307","provinceCode":"33"},{"code":"330782","name":"义乌市","cityCode":"3307","provinceCode":"33"},{"code":"330783","name":"东阳市","cityCode":"3307","provinceCode":"33"},{"code":"330784","name":"永康市","cityCode":"3307","provinceCode":"33"},{"code":"330802","name":"柯城区","cityCode":"3308","provinceCode":"33"},{"code":"330803","name":"衢江区","cityCode":"3308","provinceCode":"33"},{"code":"330822","name":"常山县","cityCode":"3308","provinceCode":"33"},{"code":"330824","name":"开化县","cityCode":"3308","provinceCode":"33"},{"code":"330825","name":"龙游县","cityCode":"3308","provinceCode":"33"},{"code":"330881","name":"江山市","cityCode":"3308","provinceCode":"33"},{"code":"330902","name":"定海区","cityCode":"3309","provinceCode":"33"},{"code":"330903","name":"普陀区","cityCode":"3309","provinceCode":"33"},{"code":"330921","name":"岱山县","cityCode":"3309","provinceCode":"33"},{"code":"330922","name":"嵊泗县","cityCode":"3309","provinceCode":"33"},{"code":"331002","name":"椒江区","cityCode":"3310","provinceCode":"33"},{"code":"331003","name":"黄岩区","cityCode":"3310","provinceCode":"33"},{"code":"331004","name":"路桥区","cityCode":"3310","provinceCode":"33"},{"code":"331021","name":"玉环县","cityCode":"3310","provinceCode":"33"},{"code":"331022","name":"三门县","cityCode":"3310","provinceCode":"33"},{"code":"331023","name":"天台县","cityCode":"3310","provinceCode":"33"},{"code":"331024","name":"仙居县","cityCode":"3310","provinceCode":"33"},{"code":"331081","name":"温岭市","cityCode":"3310","provinceCode":"33"},{"code":"331082","name":"临海市","cityCode":"3310","provinceCode":"33"},{"code":"331102","name":"莲都区","cityCode":"3311","provinceCode":"33"},{"code":"331121","name":"青田县","cityCode":"3311","provinceCode":"33"},{"code":"331122","name":"缙云县","cityCode":"3311","provinceCode":"33"},{"code":"331123","name":"遂昌县","cityCode":"3311","provinceCode":"33"},{"code":"331124","name":"松阳县","cityCode":"3311","provinceCode":"33"},{"code":"331125","name":"云和县","cityCode":"3311","provinceCode":"33"},{"code":"331126","name":"庆元县","cityCode":"3311","provinceCode":"33"},{"code":"331127","name":"景宁畲族自治县","cityCode":"3311","provinceCode":"33"},{"code":"331181","name":"龙泉市","cityCode":"3311","provinceCode":"33"},{"code":"340102","name":"瑶海区","cityCode":"3401","provinceCode":"34"},{"code":"340103","name":"庐阳区","cityCode":"3401","provinceCode":"34"},{"code":"340104","name":"蜀山区","cityCode":"3401","provinceCode":"34"},{"code":"340111","name":"包河区","cityCode":"3401","provinceCode":"34"},{"code":"340121","name":"长丰县","cityCode":"3401","provinceCode":"34"},{"code":"340122","name":"肥东县","cityCode":"3401","provinceCode":"34"},{"code":"340123","name":"肥西县","cityCode":"3401","provinceCode":"34"},{"code":"340124","name":"庐江县","cityCode":"3401","provinceCode":"34"},{"code":"340181","name":"巢湖市","cityCode":"3401","provinceCode":"34"},{"code":"340202","name":"镜湖区","cityCode":"3402","provinceCode":"34"},{"code":"340203","name":"弋江区","cityCode":"3402","provinceCode":"34"},{"code":"340207","name":"鸠江区","cityCode":"3402","provinceCode":"34"},{"code":"340208","name":"三山区","cityCode":"3402","provinceCode":"34"},{"code":"340221","name":"芜湖县","cityCode":"3402","provinceCode":"34"},{"code":"340222","name":"繁昌县","cityCode":"3402","provinceCode":"34"},{"code":"340223","name":"南陵县","cityCode":"3402","provinceCode":"34"},{"code":"340225","name":"无为县","cityCode":"3402","provinceCode":"34"},{"code":"340302","name":"龙子湖区","cityCode":"3403","provinceCode":"34"},{"code":"340303","name":"蚌山区","cityCode":"3403","provinceCode":"34"},{"code":"340304","name":"禹会区","cityCode":"3403","provinceCode":"34"},{"code":"340311","name":"淮上区","cityCode":"3403","provinceCode":"34"},{"code":"340321","name":"怀远县","cityCode":"3403","provinceCode":"34"},{"code":"340322","name":"五河县","cityCode":"3403","provinceCode":"34"},{"code":"340323","name":"固镇县","cityCode":"3403","provinceCode":"34"},{"code":"340402","name":"大通区","cityCode":"3404","provinceCode":"34"},{"code":"340403","name":"田家庵区","cityCode":"3404","provinceCode":"34"},{"code":"340404","name":"谢家集区","cityCode":"3404","provinceCode":"34"},{"code":"340405","name":"八公山区","cityCode":"3404","provinceCode":"34"},{"code":"340406","name":"潘集区","cityCode":"3404","provinceCode":"34"},{"code":"340421","name":"凤台县","cityCode":"3404","provinceCode":"34"},{"code":"340422","name":"寿县","cityCode":"3404","provinceCode":"34"},{"code":"340503","name":"花山区","cityCode":"3405","provinceCode":"34"},{"code":"340504","name":"雨山区","cityCode":"3405","provinceCode":"34"},{"code":"340506","name":"博望区","cityCode":"3405","provinceCode":"34"},{"code":"340521","name":"当涂县","cityCode":"3405","provinceCode":"34"},{"code":"340522","name":"含山县","cityCode":"3405","provinceCode":"34"},{"code":"340523","name":"和县","cityCode":"3405","provinceCode":"34"},{"code":"340602","name":"杜集区","cityCode":"3406","provinceCode":"34"},{"code":"340603","name":"相山区","cityCode":"3406","provinceCode":"34"},{"code":"340604","name":"烈山区","cityCode":"3406","provinceCode":"34"},{"code":"340621","name":"濉溪县","cityCode":"3406","provinceCode":"34"},{"code":"340705","name":"铜官区","cityCode":"3407","provinceCode":"34"},{"code":"340706","name":"义安区","cityCode":"3407","provinceCode":"34"},{"code":"340711","name":"郊区","cityCode":"3407","provinceCode":"34"},{"code":"340722","name":"枞阳县","cityCode":"3407","provinceCode":"34"},{"code":"340802","name":"迎江区","cityCode":"3408","provinceCode":"34"},{"code":"340803","name":"大观区","cityCode":"3408","provinceCode":"34"},{"code":"340811","name":"宜秀区","cityCode":"3408","provinceCode":"34"},{"code":"340822","name":"怀宁县","cityCode":"3408","provinceCode":"34"},{"code":"340824","name":"潜山县","cityCode":"3408","provinceCode":"34"},{"code":"340825","name":"太湖县","cityCode":"3408","provinceCode":"34"},{"code":"340826","name":"宿松县","cityCode":"3408","provinceCode":"34"},{"code":"340827","name":"望江县","cityCode":"3408","provinceCode":"34"},{"code":"340828","name":"岳西县","cityCode":"3408","provinceCode":"34"},{"code":"340881","name":"桐城市","cityCode":"3408","provinceCode":"34"},{"code":"341002","name":"屯溪区","cityCode":"3410","provinceCode":"34"},{"code":"341003","name":"黄山区","cityCode":"3410","provinceCode":"34"},{"code":"341004","name":"徽州区","cityCode":"3410","provinceCode":"34"},{"code":"341021","name":"歙县","cityCode":"3410","provinceCode":"34"},{"code":"341022","name":"休宁县","cityCode":"3410","provinceCode":"34"},{"code":"341023","name":"黟县","cityCode":"3410","provinceCode":"34"},{"code":"341024","name":"祁门县","cityCode":"3410","provinceCode":"34"},{"code":"341102","name":"琅琊区","cityCode":"3411","provinceCode":"34"},{"code":"341103","name":"南谯区","cityCode":"3411","provinceCode":"34"},{"code":"341122","name":"来安县","cityCode":"3411","provinceCode":"34"},{"code":"341124","name":"全椒县","cityCode":"3411","provinceCode":"34"},{"code":"341125","name":"定远县","cityCode":"3411","provinceCode":"34"},{"code":"341126","name":"凤阳县","cityCode":"3411","provinceCode":"34"},{"code":"341181","name":"天长市","cityCode":"3411","provinceCode":"34"},{"code":"341182","name":"明光市","cityCode":"3411","provinceCode":"34"},{"code":"341202","name":"颍州区","cityCode":"3412","provinceCode":"34"},{"code":"341203","name":"颍东区","cityCode":"3412","provinceCode":"34"},{"code":"341204","name":"颍泉区","cityCode":"3412","provinceCode":"34"},{"code":"341221","name":"临泉县","cityCode":"3412","provinceCode":"34"},{"code":"341222","name":"太和县","cityCode":"3412","provinceCode":"34"},{"code":"341225","name":"阜南县","cityCode":"3412","provinceCode":"34"},{"code":"341226","name":"颍上县","cityCode":"3412","provinceCode":"34"},{"code":"341282","name":"界首市","cityCode":"3412","provinceCode":"34"},{"code":"341302","name":"埇桥区","cityCode":"3413","provinceCode":"34"},{"code":"341321","name":"砀山县","cityCode":"3413","provinceCode":"34"},{"code":"341322","name":"萧县","cityCode":"3413","provinceCode":"34"},{"code":"341323","name":"灵璧县","cityCode":"3413","provinceCode":"34"},{"code":"341324","name":"泗县","cityCode":"3413","provinceCode":"34"},{"code":"341502","name":"金安区","cityCode":"3415","provinceCode":"34"},{"code":"341503","name":"裕安区","cityCode":"3415","provinceCode":"34"},{"code":"341504","name":"叶集区","cityCode":"3415","provinceCode":"34"},{"code":"341522","name":"霍邱县","cityCode":"3415","provinceCode":"34"},{"code":"341523","name":"舒城县","cityCode":"3415","provinceCode":"34"},{"code":"341524","name":"金寨县","cityCode":"3415","provinceCode":"34"},{"code":"341525","name":"霍山县","cityCode":"3415","provinceCode":"34"},{"code":"341602","name":"谯城区","cityCode":"3416","provinceCode":"34"},{"code":"341621","name":"涡阳县","cityCode":"3416","provinceCode":"34"},{"code":"341622","name":"蒙城县","cityCode":"3416","provinceCode":"34"},{"code":"341623","name":"利辛县","cityCode":"3416","provinceCode":"34"},{"code":"341702","name":"贵池区","cityCode":"3417","provinceCode":"34"},{"code":"341721","name":"东至县","cityCode":"3417","provinceCode":"34"},{"code":"341722","name":"石台县","cityCode":"3417","provinceCode":"34"},{"code":"341723","name":"青阳县","cityCode":"3417","provinceCode":"34"},{"code":"341802","name":"宣州区","cityCode":"3418","provinceCode":"34"},{"code":"341821","name":"郎溪县","cityCode":"3418","provinceCode":"34"},{"code":"341822","name":"广德县","cityCode":"3418","provinceCode":"34"},{"code":"341823","name":"泾县","cityCode":"3418","provinceCode":"34"},{"code":"341824","name":"绩溪县","cityCode":"3418","provinceCode":"34"},{"code":"341825","name":"旌德县","cityCode":"3418","provinceCode":"34"},{"code":"341881","name":"宁国市","cityCode":"3418","provinceCode":"34"},{"code":"350102","name":"鼓楼区","cityCode":"3501","provinceCode":"35"},{"code":"350103","name":"台江区","cityCode":"3501","provinceCode":"35"},{"code":"350104","name":"仓山区","cityCode":"3501","provinceCode":"35"},{"code":"350105","name":"马尾区","cityCode":"3501","provinceCode":"35"},{"code":"350111","name":"晋安区","cityCode":"3501","provinceCode":"35"},{"code":"350121","name":"闽侯县","cityCode":"3501","provinceCode":"35"},{"code":"350122","name":"连江县","cityCode":"3501","provinceCode":"35"},{"code":"350123","name":"罗源县","cityCode":"3501","provinceCode":"35"},{"code":"350124","name":"闽清县","cityCode":"3501","provinceCode":"35"},{"code":"350125","name":"永泰县","cityCode":"3501","provinceCode":"35"},{"code":"350128","name":"平潭县","cityCode":"3501","provinceCode":"35"},{"code":"350181","name":"福清市","cityCode":"3501","provinceCode":"35"},{"code":"350182","name":"长乐市","cityCode":"3501","provinceCode":"35"},{"code":"350203","name":"思明区","cityCode":"3502","provinceCode":"35"},{"code":"350205","name":"海沧区","cityCode":"3502","provinceCode":"35"},{"code":"350206","name":"湖里区","cityCode":"3502","provinceCode":"35"},{"code":"350211","name":"集美区","cityCode":"3502","provinceCode":"35"},{"code":"350212","name":"同安区","cityCode":"3502","provinceCode":"35"},{"code":"350213","name":"翔安区","cityCode":"3502","provinceCode":"35"},{"code":"350302","name":"城厢区","cityCode":"3503","provinceCode":"35"},{"code":"350303","name":"涵江区","cityCode":"3503","provinceCode":"35"},{"code":"350304","name":"荔城区","cityCode":"3503","provinceCode":"35"},{"code":"350305","name":"秀屿区","cityCode":"3503","provinceCode":"35"},{"code":"350322","name":"仙游县","cityCode":"3503","provinceCode":"35"},{"code":"350402","name":"梅列区","cityCode":"3504","provinceCode":"35"},{"code":"350403","name":"三元区","cityCode":"3504","provinceCode":"35"},{"code":"350421","name":"明溪县","cityCode":"3504","provinceCode":"35"},{"code":"350423","name":"清流县","cityCode":"3504","provinceCode":"35"},{"code":"350424","name":"宁化县","cityCode":"3504","provinceCode":"35"},{"code":"350425","name":"大田县","cityCode":"3504","provinceCode":"35"},{"code":"350426","name":"尤溪县","cityCode":"3504","provinceCode":"35"},{"code":"350427","name":"沙县","cityCode":"3504","provinceCode":"35"},{"code":"350428","name":"将乐县","cityCode":"3504","provinceCode":"35"},{"code":"350429","name":"泰宁县","cityCode":"3504","provinceCode":"35"},{"code":"350430","name":"建宁县","cityCode":"3504","provinceCode":"35"},{"code":"350481","name":"永安市","cityCode":"3504","provinceCode":"35"},{"code":"350502","name":"鲤城区","cityCode":"3505","provinceCode":"35"},{"code":"350503","name":"丰泽区","cityCode":"3505","provinceCode":"35"},{"code":"350504","name":"洛江区","cityCode":"3505","provinceCode":"35"},{"code":"350505","name":"泉港区","cityCode":"3505","provinceCode":"35"},{"code":"350521","name":"惠安县","cityCode":"3505","provinceCode":"35"},{"code":"350524","name":"安溪县","cityCode":"3505","provinceCode":"35"},{"code":"350525","name":"永春县","cityCode":"3505","provinceCode":"35"},{"code":"350526","name":"德化县","cityCode":"3505","provinceCode":"35"},{"code":"350527","name":"金门县","cityCode":"3505","provinceCode":"35"},{"code":"350581","name":"石狮市","cityCode":"3505","provinceCode":"35"},{"code":"350582","name":"晋江市","cityCode":"3505","provinceCode":"35"},{"code":"350583","name":"南安市","cityCode":"3505","provinceCode":"35"},{"code":"350602","name":"芗城区","cityCode":"3506","provinceCode":"35"},{"code":"350603","name":"龙文区","cityCode":"3506","provinceCode":"35"},{"code":"350622","name":"云霄县","cityCode":"3506","provinceCode":"35"},{"code":"350623","name":"漳浦县","cityCode":"3506","provinceCode":"35"},{"code":"350624","name":"诏安县","cityCode":"3506","provinceCode":"35"},{"code":"350625","name":"长泰县","cityCode":"3506","provinceCode":"35"},{"code":"350626","name":"东山县","cityCode":"3506","provinceCode":"35"},{"code":"350627","name":"南靖县","cityCode":"3506","provinceCode":"35"},{"code":"350628","name":"平和县","cityCode":"3506","provinceCode":"35"},{"code":"350629","name":"华安县","cityCode":"3506","provinceCode":"35"},{"code":"350681","name":"龙海市","cityCode":"3506","provinceCode":"35"},{"code":"350702","name":"延平区","cityCode":"3507","provinceCode":"35"},{"code":"350703","name":"建阳区","cityCode":"3507","provinceCode":"35"},{"code":"350721","name":"顺昌县","cityCode":"3507","provinceCode":"35"},{"code":"350722","name":"浦城县","cityCode":"3507","provinceCode":"35"},{"code":"350723","name":"光泽县","cityCode":"3507","provinceCode":"35"},{"code":"350724","name":"松溪县","cityCode":"3507","provinceCode":"35"},{"code":"350725","name":"政和县","cityCode":"3507","provinceCode":"35"},{"code":"350781","name":"邵武市","cityCode":"3507","provinceCode":"35"},{"code":"350782","name":"武夷山市","cityCode":"3507","provinceCode":"35"},{"code":"350783","name":"建瓯市","cityCode":"3507","provinceCode":"35"},{"code":"350802","name":"新罗区","cityCode":"3508","provinceCode":"35"},{"code":"350803","name":"永定区","cityCode":"3508","provinceCode":"35"},{"code":"350821","name":"长汀县","cityCode":"3508","provinceCode":"35"},{"code":"350823","name":"上杭县","cityCode":"3508","provinceCode":"35"},{"code":"350824","name":"武平县","cityCode":"3508","provinceCode":"35"},{"code":"350825","name":"连城县","cityCode":"3508","provinceCode":"35"},{"code":"350881","name":"漳平市","cityCode":"3508","provinceCode":"35"},{"code":"350902","name":"蕉城区","cityCode":"3509","provinceCode":"35"},{"code":"350921","name":"霞浦县","cityCode":"3509","provinceCode":"35"},{"code":"350922","name":"古田县","cityCode":"3509","provinceCode":"35"},{"code":"350923","name":"屏南县","cityCode":"3509","provinceCode":"35"},{"code":"350924","name":"寿宁县","cityCode":"3509","provinceCode":"35"},{"code":"350925","name":"周宁县","cityCode":"3509","provinceCode":"35"},{"code":"350926","name":"柘荣县","cityCode":"3509","provinceCode":"35"},{"code":"350981","name":"福安市","cityCode":"3509","provinceCode":"35"},{"code":"350982","name":"福鼎市","cityCode":"3509","provinceCode":"35"},{"code":"360102","name":"东湖区","cityCode":"3601","provinceCode":"36"},{"code":"360103","name":"西湖区","cityCode":"3601","provinceCode":"36"},{"code":"360104","name":"青云谱区","cityCode":"3601","provinceCode":"36"},{"code":"360105","name":"湾里区","cityCode":"3601","provinceCode":"36"},{"code":"360111","name":"青山湖区","cityCode":"3601","provinceCode":"36"},{"code":"360112","name":"新建区","cityCode":"3601","provinceCode":"36"},{"code":"360121","name":"南昌县","cityCode":"3601","provinceCode":"36"},{"code":"360123","name":"安义县","cityCode":"3601","provinceCode":"36"},{"code":"360124","name":"进贤县","cityCode":"3601","provinceCode":"36"},{"code":"360202","name":"昌江区","cityCode":"3602","provinceCode":"36"},{"code":"360203","name":"珠山区","cityCode":"3602","provinceCode":"36"},{"code":"360222","name":"浮梁县","cityCode":"3602","provinceCode":"36"},{"code":"360281","name":"乐平市","cityCode":"3602","provinceCode":"36"},{"code":"360302","name":"安源区","cityCode":"3603","provinceCode":"36"},{"code":"360313","name":"湘东区","cityCode":"3603","provinceCode":"36"},{"code":"360321","name":"莲花县","cityCode":"3603","provinceCode":"36"},{"code":"360322","name":"上栗县","cityCode":"3603","provinceCode":"36"},{"code":"360323","name":"芦溪县","cityCode":"3603","provinceCode":"36"},{"code":"360402","name":"濂溪区","cityCode":"3604","provinceCode":"36"},{"code":"360403","name":"浔阳区","cityCode":"3604","provinceCode":"36"},{"code":"360421","name":"九江县","cityCode":"3604","provinceCode":"36"},{"code":"360423","name":"武宁县","cityCode":"3604","provinceCode":"36"},{"code":"360424","name":"修水县","cityCode":"3604","provinceCode":"36"},{"code":"360425","name":"永修县","cityCode":"3604","provinceCode":"36"},{"code":"360426","name":"德安县","cityCode":"3604","provinceCode":"36"},{"code":"360428","name":"都昌县","cityCode":"3604","provinceCode":"36"},{"code":"360429","name":"湖口县","cityCode":"3604","provinceCode":"36"},{"code":"360430","name":"彭泽县","cityCode":"3604","provinceCode":"36"},{"code":"360481","name":"瑞昌市","cityCode":"3604","provinceCode":"36"},{"code":"360482","name":"共青城市","cityCode":"3604","provinceCode":"36"},{"code":"360483","name":"庐山市","cityCode":"3604","provinceCode":"36"},{"code":"360502","name":"渝水区","cityCode":"3605","provinceCode":"36"},{"code":"360521","name":"分宜县","cityCode":"3605","provinceCode":"36"},{"code":"360602","name":"月湖区","cityCode":"3606","provinceCode":"36"},{"code":"360622","name":"余江县","cityCode":"3606","provinceCode":"36"},{"code":"360681","name":"贵溪市","cityCode":"3606","provinceCode":"36"},{"code":"360702","name":"章贡区","cityCode":"3607","provinceCode":"36"},{"code":"360703","name":"南康区","cityCode":"3607","provinceCode":"36"},{"code":"360721","name":"赣县","cityCode":"3607","provinceCode":"36"},{"code":"360722","name":"信丰县","cityCode":"3607","provinceCode":"36"},{"code":"360723","name":"大余县","cityCode":"3607","provinceCode":"36"},{"code":"360724","name":"上犹县","cityCode":"3607","provinceCode":"36"},{"code":"360725","name":"崇义县","cityCode":"3607","provinceCode":"36"},{"code":"360726","name":"安远县","cityCode":"3607","provinceCode":"36"},{"code":"360727","name":"龙南县","cityCode":"3607","provinceCode":"36"},{"code":"360728","name":"定南县","cityCode":"3607","provinceCode":"36"},{"code":"360729","name":"全南县","cityCode":"3607","provinceCode":"36"},{"code":"360730","name":"宁都县","cityCode":"3607","provinceCode":"36"},{"code":"360731","name":"于都县","cityCode":"3607","provinceCode":"36"},{"code":"360732","name":"兴国县","cityCode":"3607","provinceCode":"36"},{"code":"360733","name":"会昌县","cityCode":"3607","provinceCode":"36"},{"code":"360734","name":"寻乌县","cityCode":"3607","provinceCode":"36"},{"code":"360735","name":"石城县","cityCode":"3607","provinceCode":"36"},{"code":"360781","name":"瑞金市","cityCode":"3607","provinceCode":"36"},{"code":"360802","name":"吉州区","cityCode":"3608","provinceCode":"36"},{"code":"360803","name":"青原区","cityCode":"3608","provinceCode":"36"},{"code":"360821","name":"吉安县","cityCode":"3608","provinceCode":"36"},{"code":"360822","name":"吉水县","cityCode":"3608","provinceCode":"36"},{"code":"360823","name":"峡江县","cityCode":"3608","provinceCode":"36"},{"code":"360824","name":"新干县","cityCode":"3608","provinceCode":"36"},{"code":"360825","name":"永丰县","cityCode":"3608","provinceCode":"36"},{"code":"360826","name":"泰和县","cityCode":"3608","provinceCode":"36"},{"code":"360827","name":"遂川县","cityCode":"3608","provinceCode":"36"},{"code":"360828","name":"万安县","cityCode":"3608","provinceCode":"36"},{"code":"360829","name":"安福县","cityCode":"3608","provinceCode":"36"},{"code":"360830","name":"永新县","cityCode":"3608","provinceCode":"36"},{"code":"360881","name":"井冈山市","cityCode":"3608","provinceCode":"36"},{"code":"360902","name":"袁州区","cityCode":"3609","provinceCode":"36"},{"code":"360921","name":"奉新县","cityCode":"3609","provinceCode":"36"},{"code":"360922","name":"万载县","cityCode":"3609","provinceCode":"36"},{"code":"360923","name":"上高县","cityCode":"3609","provinceCode":"36"},{"code":"360924","name":"宜丰县","cityCode":"3609","provinceCode":"36"},{"code":"360925","name":"靖安县","cityCode":"3609","provinceCode":"36"},{"code":"360926","name":"铜鼓县","cityCode":"3609","provinceCode":"36"},{"code":"360981","name":"丰城市","cityCode":"3609","provinceCode":"36"},{"code":"360982","name":"樟树市","cityCode":"3609","provinceCode":"36"},{"code":"360983","name":"高安市","cityCode":"3609","provinceCode":"36"},{"code":"361002","name":"临川区","cityCode":"3610","provinceCode":"36"},{"code":"361021","name":"南城县","cityCode":"3610","provinceCode":"36"},{"code":"361022","name":"黎川县","cityCode":"3610","provinceCode":"36"},{"code":"361023","name":"南丰县","cityCode":"3610","provinceCode":"36"},{"code":"361024","name":"崇仁县","cityCode":"3610","provinceCode":"36"},{"code":"361025","name":"乐安县","cityCode":"3610","provinceCode":"36"},{"code":"361026","name":"宜黄县","cityCode":"3610","provinceCode":"36"},{"code":"361027","name":"金溪县","cityCode":"3610","provinceCode":"36"},{"code":"361028","name":"资溪县","cityCode":"3610","provinceCode":"36"},{"code":"361029","name":"东乡县","cityCode":"3610","provinceCode":"36"},{"code":"361030","name":"广昌县","cityCode":"3610","provinceCode":"36"},{"code":"361102","name":"信州区","cityCode":"3611","provinceCode":"36"},{"code":"361103","name":"广丰区","cityCode":"3611","provinceCode":"36"},{"code":"361121","name":"上饶县","cityCode":"3611","provinceCode":"36"},{"code":"361123","name":"玉山县","cityCode":"3611","provinceCode":"36"},{"code":"361124","name":"铅山县","cityCode":"3611","provinceCode":"36"},{"code":"361125","name":"横峰县","cityCode":"3611","provinceCode":"36"},{"code":"361126","name":"弋阳县","cityCode":"3611","provinceCode":"36"},{"code":"361127","name":"余干县","cityCode":"3611","provinceCode":"36"},{"code":"361128","name":"鄱阳县","cityCode":"3611","provinceCode":"36"},{"code":"361129","name":"万年县","cityCode":"3611","provinceCode":"36"},{"code":"361130","name":"婺源县","cityCode":"3611","provinceCode":"36"},{"code":"361181","name":"德兴市","cityCode":"3611","provinceCode":"36"},{"code":"370102","name":"历下区","cityCode":"3701","provinceCode":"37"},{"code":"370103","name":"市中区","cityCode":"3701","provinceCode":"37"},{"code":"370104","name":"槐荫区","cityCode":"3701","provinceCode":"37"},{"code":"370105","name":"天桥区","cityCode":"3701","provinceCode":"37"},{"code":"370112","name":"历城区","cityCode":"3701","provinceCode":"37"},{"code":"370113","name":"长清区","cityCode":"3701","provinceCode":"37"},{"code":"370124","name":"平阴县","cityCode":"3701","provinceCode":"37"},{"code":"370125","name":"济阳县","cityCode":"3701","provinceCode":"37"},{"code":"370126","name":"商河县","cityCode":"3701","provinceCode":"37"},{"code":"370181","name":"章丘市","cityCode":"3701","provinceCode":"37"},{"code":"370202","name":"市南区","cityCode":"3702","provinceCode":"37"},{"code":"370203","name":"市北区","cityCode":"3702","provinceCode":"37"},{"code":"370211","name":"黄岛区","cityCode":"3702","provinceCode":"37"},{"code":"370212","name":"崂山区","cityCode":"3702","provinceCode":"37"},{"code":"370213","name":"李沧区","cityCode":"3702","provinceCode":"37"},{"code":"370214","name":"城阳区","cityCode":"3702","provinceCode":"37"},{"code":"370281","name":"胶州市","cityCode":"3702","provinceCode":"37"},{"code":"370282","name":"即墨市","cityCode":"3702","provinceCode":"37"},{"code":"370283","name":"平度市","cityCode":"3702","provinceCode":"37"},{"code":"370285","name":"莱西市","cityCode":"3702","provinceCode":"37"},{"code":"370302","name":"淄川区","cityCode":"3703","provinceCode":"37"},{"code":"370303","name":"张店区","cityCode":"3703","provinceCode":"37"},{"code":"370304","name":"博山区","cityCode":"3703","provinceCode":"37"},{"code":"370305","name":"临淄区","cityCode":"3703","provinceCode":"37"},{"code":"370306","name":"周村区","cityCode":"3703","provinceCode":"37"},{"code":"370321","name":"桓台县","cityCode":"3703","provinceCode":"37"},{"code":"370322","name":"高青县","cityCode":"3703","provinceCode":"37"},{"code":"370323","name":"沂源县","cityCode":"3703","provinceCode":"37"},{"code":"370402","name":"市中区","cityCode":"3704","provinceCode":"37"},{"code":"370403","name":"薛城区","cityCode":"3704","provinceCode":"37"},{"code":"370404","name":"峄城区","cityCode":"3704","provinceCode":"37"},{"code":"370405","name":"台儿庄区","cityCode":"3704","provinceCode":"37"},{"code":"370406","name":"山亭区","cityCode":"3704","provinceCode":"37"},{"code":"370481","name":"滕州市","cityCode":"3704","provinceCode":"37"},{"code":"370502","name":"东营区","cityCode":"3705","provinceCode":"37"},{"code":"370503","name":"河口区","cityCode":"3705","provinceCode":"37"},{"code":"370505","name":"垦利区","cityCode":"3705","provinceCode":"37"},{"code":"370522","name":"利津县","cityCode":"3705","provinceCode":"37"},{"code":"370523","name":"广饶县","cityCode":"3705","provinceCode":"37"},{"code":"370602","name":"芝罘区","cityCode":"3706","provinceCode":"37"},{"code":"370611","name":"福山区","cityCode":"3706","provinceCode":"37"},{"code":"370612","name":"牟平区","cityCode":"3706","provinceCode":"37"},{"code":"370613","name":"莱山区","cityCode":"3706","provinceCode":"37"},{"code":"370634","name":"长岛县","cityCode":"3706","provinceCode":"37"},{"code":"370681","name":"龙口市","cityCode":"3706","provinceCode":"37"},{"code":"370682","name":"莱阳市","cityCode":"3706","provinceCode":"37"},{"code":"370683","name":"莱州市","cityCode":"3706","provinceCode":"37"},{"code":"370684","name":"蓬莱市","cityCode":"3706","provinceCode":"37"},{"code":"370685","name":"招远市","cityCode":"3706","provinceCode":"37"},{"code":"370686","name":"栖霞市","cityCode":"3706","provinceCode":"37"},{"code":"370687","name":"海阳市","cityCode":"3706","provinceCode":"37"},{"code":"370702","name":"潍城区","cityCode":"3707","provinceCode":"37"},{"code":"370703","name":"寒亭区","cityCode":"3707","provinceCode":"37"},{"code":"370704","name":"坊子区","cityCode":"3707","provinceCode":"37"},{"code":"370705","name":"奎文区","cityCode":"3707","provinceCode":"37"},{"code":"370724","name":"临朐县","cityCode":"3707","provinceCode":"37"},{"code":"370725","name":"昌乐县","cityCode":"3707","provinceCode":"37"},{"code":"370781","name":"青州市","cityCode":"3707","provinceCode":"37"},{"code":"370782","name":"诸城市","cityCode":"3707","provinceCode":"37"},{"code":"370783","name":"寿光市","cityCode":"3707","provinceCode":"37"},{"code":"370784","name":"安丘市","cityCode":"3707","provinceCode":"37"},{"code":"370785","name":"高密市","cityCode":"3707","provinceCode":"37"},{"code":"370786","name":"昌邑市","cityCode":"3707","provinceCode":"37"},{"code":"370811","name":"任城区","cityCode":"3708","provinceCode":"37"},{"code":"370812","name":"兖州区","cityCode":"3708","provinceCode":"37"},{"code":"370826","name":"微山县","cityCode":"3708","provinceCode":"37"},{"code":"370827","name":"鱼台县","cityCode":"3708","provinceCode":"37"},{"code":"370828","name":"金乡县","cityCode":"3708","provinceCode":"37"},{"code":"370829","name":"嘉祥县","cityCode":"3708","provinceCode":"37"},{"code":"370830","name":"汶上县","cityCode":"3708","provinceCode":"37"},{"code":"370831","name":"泗水县","cityCode":"3708","provinceCode":"37"},{"code":"370832","name":"梁山县","cityCode":"3708","provinceCode":"37"},{"code":"370881","name":"曲阜市","cityCode":"3708","provinceCode":"37"},{"code":"370883","name":"邹城市","cityCode":"3708","provinceCode":"37"},{"code":"370902","name":"泰山区","cityCode":"3709","provinceCode":"37"},{"code":"370911","name":"岱岳区","cityCode":"3709","provinceCode":"37"},{"code":"370921","name":"宁阳县","cityCode":"3709","provinceCode":"37"},{"code":"370923","name":"东平县","cityCode":"3709","provinceCode":"37"},{"code":"370982","name":"新泰市","cityCode":"3709","provinceCode":"37"},{"code":"370983","name":"肥城市","cityCode":"3709","provinceCode":"37"},{"code":"371002","name":"环翠区","cityCode":"3710","provinceCode":"37"},{"code":"371003","name":"文登区","cityCode":"3710","provinceCode":"37"},{"code":"371082","name":"荣成市","cityCode":"3710","provinceCode":"37"},{"code":"371083","name":"乳山市","cityCode":"3710","provinceCode":"37"},{"code":"371102","name":"东港区","cityCode":"3711","provinceCode":"37"},{"code":"371103","name":"岚山区","cityCode":"3711","provinceCode":"37"},{"code":"371121","name":"五莲县","cityCode":"3711","provinceCode":"37"},{"code":"371122","name":"莒县","cityCode":"3711","provinceCode":"37"},{"code":"371202","name":"莱城区","cityCode":"3712","provinceCode":"37"},{"code":"371203","name":"钢城区","cityCode":"3712","provinceCode":"37"},{"code":"371302","name":"兰山区","cityCode":"3713","provinceCode":"37"},{"code":"371311","name":"罗庄区","cityCode":"3713","provinceCode":"37"},{"code":"371312","name":"河东区","cityCode":"3713","provinceCode":"37"},{"code":"371321","name":"沂南县","cityCode":"3713","provinceCode":"37"},{"code":"371322","name":"郯城县","cityCode":"3713","provinceCode":"37"},{"code":"371323","name":"沂水县","cityCode":"3713","provinceCode":"37"},{"code":"371324","name":"兰陵县","cityCode":"3713","provinceCode":"37"},{"code":"371325","name":"费县","cityCode":"3713","provinceCode":"37"},{"code":"371326","name":"平邑县","cityCode":"3713","provinceCode":"37"},{"code":"371327","name":"莒南县","cityCode":"3713","provinceCode":"37"},{"code":"371328","name":"蒙阴县","cityCode":"3713","provinceCode":"37"},{"code":"371329","name":"临沭县","cityCode":"3713","provinceCode":"37"},{"code":"371402","name":"德城区","cityCode":"3714","provinceCode":"37"},{"code":"371403","name":"陵城区","cityCode":"3714","provinceCode":"37"},{"code":"371422","name":"宁津县","cityCode":"3714","provinceCode":"37"},{"code":"371423","name":"庆云县","cityCode":"3714","provinceCode":"37"},{"code":"371424","name":"临邑县","cityCode":"3714","provinceCode":"37"},{"code":"371425","name":"齐河县","cityCode":"3714","provinceCode":"37"},{"code":"371426","name":"平原县","cityCode":"3714","provinceCode":"37"},{"code":"371427","name":"夏津县","cityCode":"3714","provinceCode":"37"},{"code":"371428","name":"武城县","cityCode":"3714","provinceCode":"37"},{"code":"371481","name":"乐陵市","cityCode":"3714","provinceCode":"37"},{"code":"371482","name":"禹城市","cityCode":"3714","provinceCode":"37"},{"code":"371502","name":"东昌府区","cityCode":"3715","provinceCode":"37"},{"code":"371521","name":"阳谷县","cityCode":"3715","provinceCode":"37"},{"code":"371522","name":"莘县","cityCode":"3715","provinceCode":"37"},{"code":"371523","name":"茌平县","cityCode":"3715","provinceCode":"37"},{"code":"371524","name":"东阿县","cityCode":"3715","provinceCode":"37"},{"code":"371525","name":"冠县","cityCode":"3715","provinceCode":"37"},{"code":"371526","name":"高唐县","cityCode":"3715","provinceCode":"37"},{"code":"371581","name":"临清市","cityCode":"3715","provinceCode":"37"},{"code":"371602","name":"滨城区","cityCode":"3716","provinceCode":"37"},{"code":"371603","name":"沾化区","cityCode":"3716","provinceCode":"37"},{"code":"371621","name":"惠民县","cityCode":"3716","provinceCode":"37"},{"code":"371622","name":"阳信县","cityCode":"3716","provinceCode":"37"},{"code":"371623","name":"无棣县","cityCode":"3716","provinceCode":"37"},{"code":"371625","name":"博兴县","cityCode":"3716","provinceCode":"37"},{"code":"371626","name":"邹平县","cityCode":"3716","provinceCode":"37"},{"code":"371702","name":"牡丹区","cityCode":"3717","provinceCode":"37"},{"code":"371703","name":"定陶区","cityCode":"3717","provinceCode":"37"},{"code":"371721","name":"曹县","cityCode":"3717","provinceCode":"37"},{"code":"371722","name":"单县","cityCode":"3717","provinceCode":"37"},{"code":"371723","name":"成武县","cityCode":"3717","provinceCode":"37"},{"code":"371724","name":"巨野县","cityCode":"3717","provinceCode":"37"},{"code":"371725","name":"郓城县","cityCode":"3717","provinceCode":"37"},{"code":"371726","name":"鄄城县","cityCode":"3717","provinceCode":"37"},{"code":"371728","name":"东明县","cityCode":"3717","provinceCode":"37"},{"code":"410102","name":"中原区","cityCode":"4101","provinceCode":"41"},{"code":"410103","name":"二七区","cityCode":"4101","provinceCode":"41"},{"code":"410104","name":"管城回族区","cityCode":"4101","provinceCode":"41"},{"code":"410105","name":"金水区","cityCode":"4101","provinceCode":"41"},{"code":"410106","name":"上街区","cityCode":"4101","provinceCode":"41"},{"code":"410108","name":"惠济区","cityCode":"4101","provinceCode":"41"},{"code":"410122","name":"中牟县","cityCode":"4101","provinceCode":"41"},{"code":"410181","name":"巩义市","cityCode":"4101","provinceCode":"41"},{"code":"410182","name":"荥阳市","cityCode":"4101","provinceCode":"41"},{"code":"410183","name":"新密市","cityCode":"4101","provinceCode":"41"},{"code":"410184","name":"新郑市","cityCode":"4101","provinceCode":"41"},{"code":"410185","name":"登封市","cityCode":"4101","provinceCode":"41"},{"code":"410202","name":"龙亭区","cityCode":"4102","provinceCode":"41"},{"code":"410203","name":"顺河回族区","cityCode":"4102","provinceCode":"41"},{"code":"410204","name":"鼓楼区","cityCode":"4102","provinceCode":"41"},{"code":"410205","name":"禹王台区","cityCode":"4102","provinceCode":"41"},{"code":"410211","name":"金明区","cityCode":"4102","provinceCode":"41"},{"code":"410212","name":"祥符区","cityCode":"4102","provinceCode":"41"},{"code":"410221","name":"杞县","cityCode":"4102","provinceCode":"41"},{"code":"410222","name":"通许县","cityCode":"4102","provinceCode":"41"},{"code":"410223","name":"尉氏县","cityCode":"4102","provinceCode":"41"},{"code":"410225","name":"兰考县","cityCode":"4102","provinceCode":"41"},{"code":"410302","name":"老城区","cityCode":"4103","provinceCode":"41"},{"code":"410303","name":"西工区","cityCode":"4103","provinceCode":"41"},{"code":"410304","name":"瀍河回族区","cityCode":"4103","provinceCode":"41"},{"code":"410305","name":"涧西区","cityCode":"4103","provinceCode":"41"},{"code":"410306","name":"吉利区","cityCode":"4103","provinceCode":"41"},{"code":"410311","name":"洛龙区","cityCode":"4103","provinceCode":"41"},{"code":"410322","name":"孟津县","cityCode":"4103","provinceCode":"41"},{"code":"410323","name":"新安县","cityCode":"4103","provinceCode":"41"},{"code":"410324","name":"栾川县","cityCode":"4103","provinceCode":"41"},{"code":"410325","name":"嵩县","cityCode":"4103","provinceCode":"41"},{"code":"410326","name":"汝阳县","cityCode":"4103","provinceCode":"41"},{"code":"410327","name":"宜阳县","cityCode":"4103","provinceCode":"41"},{"code":"410328","name":"洛宁县","cityCode":"4103","provinceCode":"41"},{"code":"410329","name":"伊川县","cityCode":"4103","provinceCode":"41"},{"code":"410381","name":"偃师市","cityCode":"4103","provinceCode":"41"},{"code":"410402","name":"新华区","cityCode":"4104","provinceCode":"41"},{"code":"410403","name":"卫东区","cityCode":"4104","provinceCode":"41"},{"code":"410404","name":"石龙区","cityCode":"4104","provinceCode":"41"},{"code":"410411","name":"湛河区","cityCode":"4104","provinceCode":"41"},{"code":"410421","name":"宝丰县","cityCode":"4104","provinceCode":"41"},{"code":"410422","name":"叶县","cityCode":"4104","provinceCode":"41"},{"code":"410423","name":"鲁山县","cityCode":"4104","provinceCode":"41"},{"code":"410425","name":"郏县","cityCode":"4104","provinceCode":"41"},{"code":"410481","name":"舞钢市","cityCode":"4104","provinceCode":"41"},{"code":"410482","name":"汝州市","cityCode":"4104","provinceCode":"41"},{"code":"410502","name":"文峰区","cityCode":"4105","provinceCode":"41"},{"code":"410503","name":"北关区","cityCode":"4105","provinceCode":"41"},{"code":"410505","name":"殷都区","cityCode":"4105","provinceCode":"41"},{"code":"410506","name":"龙安区","cityCode":"4105","provinceCode":"41"},{"code":"410522","name":"安阳县","cityCode":"4105","provinceCode":"41"},{"code":"410523","name":"汤阴县","cityCode":"4105","provinceCode":"41"},{"code":"410526","name":"滑县","cityCode":"4105","provinceCode":"41"},{"code":"410527","name":"内黄县","cityCode":"4105","provinceCode":"41"},{"code":"410581","name":"林州市","cityCode":"4105","provinceCode":"41"},{"code":"410602","name":"鹤山区","cityCode":"4106","provinceCode":"41"},{"code":"410603","name":"山城区","cityCode":"4106","provinceCode":"41"},{"code":"410611","name":"淇滨区","cityCode":"4106","provinceCode":"41"},{"code":"410621","name":"浚县","cityCode":"4106","provinceCode":"41"},{"code":"410622","name":"淇县","cityCode":"4106","provinceCode":"41"},{"code":"410702","name":"红旗区","cityCode":"4107","provinceCode":"41"},{"code":"410703","name":"卫滨区","cityCode":"4107","provinceCode":"41"},{"code":"410704","name":"凤泉区","cityCode":"4107","provinceCode":"41"},{"code":"410711","name":"牧野区","cityCode":"4107","provinceCode":"41"},{"code":"410721","name":"新乡县","cityCode":"4107","provinceCode":"41"},{"code":"410724","name":"获嘉县","cityCode":"4107","provinceCode":"41"},{"code":"410725","name":"原阳县","cityCode":"4107","provinceCode":"41"},{"code":"410726","name":"延津县","cityCode":"4107","provinceCode":"41"},{"code":"410727","name":"封丘县","cityCode":"4107","provinceCode":"41"},{"code":"410728","name":"长垣县","cityCode":"4107","provinceCode":"41"},{"code":"410781","name":"卫辉市","cityCode":"4107","provinceCode":"41"},{"code":"410782","name":"辉县市","cityCode":"4107","provinceCode":"41"},{"code":"410802","name":"解放区","cityCode":"4108","provinceCode":"41"},{"code":"410803","name":"中站区","cityCode":"4108","provinceCode":"41"},{"code":"410804","name":"马村区","cityCode":"4108","provinceCode":"41"},{"code":"410811","name":"山阳区","cityCode":"4108","provinceCode":"41"},{"code":"410821","name":"修武县","cityCode":"4108","provinceCode":"41"},{"code":"410822","name":"博爱县","cityCode":"4108","provinceCode":"41"},{"code":"410823","name":"武陟县","cityCode":"4108","provinceCode":"41"},{"code":"410825","name":"温县","cityCode":"4108","provinceCode":"41"},{"code":"410882","name":"沁阳市","cityCode":"4108","provinceCode":"41"},{"code":"410883","name":"孟州市","cityCode":"4108","provinceCode":"41"},{"code":"410902","name":"华龙区","cityCode":"4109","provinceCode":"41"},{"code":"410922","name":"清丰县","cityCode":"4109","provinceCode":"41"},{"code":"410923","name":"南乐县","cityCode":"4109","provinceCode":"41"},{"code":"410926","name":"范县","cityCode":"4109","provinceCode":"41"},{"code":"410927","name":"台前县","cityCode":"4109","provinceCode":"41"},{"code":"410928","name":"濮阳县","cityCode":"4109","provinceCode":"41"},{"code":"411002","name":"魏都区","cityCode":"4110","provinceCode":"41"},{"code":"411023","name":"许昌县","cityCode":"4110","provinceCode":"41"},{"code":"411024","name":"鄢陵县","cityCode":"4110","provinceCode":"41"},{"code":"411025","name":"襄城县","cityCode":"4110","provinceCode":"41"},{"code":"411081","name":"禹州市","cityCode":"4110","provinceCode":"41"},{"code":"411082","name":"长葛市","cityCode":"4110","provinceCode":"41"},{"code":"411102","name":"源汇区","cityCode":"4111","provinceCode":"41"},{"code":"411103","name":"郾城区","cityCode":"4111","provinceCode":"41"},{"code":"411104","name":"召陵区","cityCode":"4111","provinceCode":"41"},{"code":"411121","name":"舞阳县","cityCode":"4111","provinceCode":"41"},{"code":"411122","name":"临颍县","cityCode":"4111","provinceCode":"41"},{"code":"411202","name":"湖滨区","cityCode":"4112","provinceCode":"41"},{"code":"411203","name":"陕州区","cityCode":"4112","provinceCode":"41"},{"code":"411221","name":"渑池县","cityCode":"4112","provinceCode":"41"},{"code":"411224","name":"卢氏县","cityCode":"4112","provinceCode":"41"},{"code":"411281","name":"义马市","cityCode":"4112","provinceCode":"41"},{"code":"411282","name":"灵宝市","cityCode":"4112","provinceCode":"41"},{"code":"411302","name":"宛城区","cityCode":"4113","provinceCode":"41"},{"code":"411303","name":"卧龙区","cityCode":"4113","provinceCode":"41"},{"code":"411321","name":"南召县","cityCode":"4113","provinceCode":"41"},{"code":"411322","name":"方城县","cityCode":"4113","provinceCode":"41"},{"code":"411323","name":"西峡县","cityCode":"4113","provinceCode":"41"},{"code":"411324","name":"镇平县","cityCode":"4113","provinceCode":"41"},{"code":"411325","name":"内乡县","cityCode":"4113","provinceCode":"41"},{"code":"411326","name":"淅川县","cityCode":"4113","provinceCode":"41"},{"code":"411327","name":"社旗县","cityCode":"4113","provinceCode":"41"},{"code":"411328","name":"唐河县","cityCode":"4113","provinceCode":"41"},{"code":"411329","name":"新野县","cityCode":"4113","provinceCode":"41"},{"code":"411330","name":"桐柏县","cityCode":"4113","provinceCode":"41"},{"code":"411381","name":"邓州市","cityCode":"4113","provinceCode":"41"},{"code":"411402","name":"梁园区","cityCode":"4114","provinceCode":"41"},{"code":"411403","name":"睢阳区","cityCode":"4114","provinceCode":"41"},{"code":"411421","name":"民权县","cityCode":"4114","provinceCode":"41"},{"code":"411422","name":"睢县","cityCode":"4114","provinceCode":"41"},{"code":"411423","name":"宁陵县","cityCode":"4114","provinceCode":"41"},{"code":"411424","name":"柘城县","cityCode":"4114","provinceCode":"41"},{"code":"411425","name":"虞城县","cityCode":"4114","provinceCode":"41"},{"code":"411426","name":"夏邑县","cityCode":"4114","provinceCode":"41"},{"code":"411481","name":"永城市","cityCode":"4114","provinceCode":"41"},{"code":"411502","name":"浉河区","cityCode":"4115","provinceCode":"41"},{"code":"411503","name":"平桥区","cityCode":"4115","provinceCode":"41"},{"code":"411521","name":"罗山县","cityCode":"4115","provinceCode":"41"},{"code":"411522","name":"光山县","cityCode":"4115","provinceCode":"41"},{"code":"411523","name":"新县","cityCode":"4115","provinceCode":"41"},{"code":"411524","name":"商城县","cityCode":"4115","provinceCode":"41"},{"code":"411525","name":"固始县","cityCode":"4115","provinceCode":"41"},{"code":"411526","name":"潢川县","cityCode":"4115","provinceCode":"41"},{"code":"411527","name":"淮滨县","cityCode":"4115","provinceCode":"41"},{"code":"411528","name":"息县","cityCode":"4115","provinceCode":"41"},{"code":"411602","name":"川汇区","cityCode":"4116","provinceCode":"41"},{"code":"411621","name":"扶沟县","cityCode":"4116","provinceCode":"41"},{"code":"411622","name":"西华县","cityCode":"4116","provinceCode":"41"},{"code":"411623","name":"商水县","cityCode":"4116","provinceCode":"41"},{"code":"411624","name":"沈丘县","cityCode":"4116","provinceCode":"41"},{"code":"411625","name":"郸城县","cityCode":"4116","provinceCode":"41"},{"code":"411626","name":"淮阳县","cityCode":"4116","provinceCode":"41"},{"code":"411627","name":"太康县","cityCode":"4116","provinceCode":"41"},{"code":"411628","name":"鹿邑县","cityCode":"4116","provinceCode":"41"},{"code":"411681","name":"项城市","cityCode":"4116","provinceCode":"41"},{"code":"411702","name":"驿城区","cityCode":"4117","provinceCode":"41"},{"code":"411721","name":"西平县","cityCode":"4117","provinceCode":"41"},{"code":"411722","name":"上蔡县","cityCode":"4117","provinceCode":"41"},{"code":"411723","name":"平舆县","cityCode":"4117","provinceCode":"41"},{"code":"411724","name":"正阳县","cityCode":"4117","provinceCode":"41"},{"code":"411725","name":"确山县","cityCode":"4117","provinceCode":"41"},{"code":"411726","name":"泌阳县","cityCode":"4117","provinceCode":"41"},{"code":"411727","name":"汝南县","cityCode":"4117","provinceCode":"41"},{"code":"411728","name":"遂平县","cityCode":"4117","provinceCode":"41"},{"code":"411729","name":"新蔡县","cityCode":"4117","provinceCode":"41"},{"code":"419001","name":"济源市","cityCode":"4190","provinceCode":"41"},{"code":"420102","name":"江岸区","cityCode":"4201","provinceCode":"42"},{"code":"420103","name":"江汉区","cityCode":"4201","provinceCode":"42"},{"code":"420104","name":"硚口区","cityCode":"4201","provinceCode":"42"},{"code":"420105","name":"汉阳区","cityCode":"4201","provinceCode":"42"},{"code":"420106","name":"武昌区","cityCode":"4201","provinceCode":"42"},{"code":"420107","name":"青山区","cityCode":"4201","provinceCode":"42"},{"code":"420111","name":"洪山区","cityCode":"4201","provinceCode":"42"},{"code":"420112","name":"东西湖区","cityCode":"4201","provinceCode":"42"},{"code":"420113","name":"汉南区","cityCode":"4201","provinceCode":"42"},{"code":"420114","name":"蔡甸区","cityCode":"4201","provinceCode":"42"},{"code":"420115","name":"江夏区","cityCode":"4201","provinceCode":"42"},{"code":"420116","name":"黄陂区","cityCode":"4201","provinceCode":"42"},{"code":"420117","name":"新洲区","cityCode":"4201","provinceCode":"42"},{"code":"420202","name":"黄石港区","cityCode":"4202","provinceCode":"42"},{"code":"420203","name":"西塞山区","cityCode":"4202","provinceCode":"42"},{"code":"420204","name":"下陆区","cityCode":"4202","provinceCode":"42"},{"code":"420205","name":"铁山区","cityCode":"4202","provinceCode":"42"},{"code":"420222","name":"阳新县","cityCode":"4202","provinceCode":"42"},{"code":"420281","name":"大冶市","cityCode":"4202","provinceCode":"42"},{"code":"420302","name":"茅箭区","cityCode":"4203","provinceCode":"42"},{"code":"420303","name":"张湾区","cityCode":"4203","provinceCode":"42"},{"code":"420304","name":"郧阳区","cityCode":"4203","provinceCode":"42"},{"code":"420322","name":"郧西县","cityCode":"4203","provinceCode":"42"},{"code":"420323","name":"竹山县","cityCode":"4203","provinceCode":"42"},{"code":"420324","name":"竹溪县","cityCode":"4203","provinceCode":"42"},{"code":"420325","name":"房县","cityCode":"4203","provinceCode":"42"},{"code":"420381","name":"丹江口市","cityCode":"4203","provinceCode":"42"},{"code":"420502","name":"西陵区","cityCode":"4205","provinceCode":"42"},{"code":"420503","name":"伍家岗区","cityCode":"4205","provinceCode":"42"},{"code":"420504","name":"点军区","cityCode":"4205","provinceCode":"42"},{"code":"420505","name":"猇亭区","cityCode":"4205","provinceCode":"42"},{"code":"420506","name":"夷陵区","cityCode":"4205","provinceCode":"42"},{"code":"420525","name":"远安县","cityCode":"4205","provinceCode":"42"},{"code":"420526","name":"兴山县","cityCode":"4205","provinceCode":"42"},{"code":"420527","name":"秭归县","cityCode":"4205","provinceCode":"42"},{"code":"420528","name":"长阳土家族自治县","cityCode":"4205","provinceCode":"42"},{"code":"420529","name":"五峰土家族自治县","cityCode":"4205","provinceCode":"42"},{"code":"420581","name":"宜都市","cityCode":"4205","provinceCode":"42"},{"code":"420582","name":"当阳市","cityCode":"4205","provinceCode":"42"},{"code":"420583","name":"枝江市","cityCode":"4205","provinceCode":"42"},{"code":"420602","name":"襄城区","cityCode":"4206","provinceCode":"42"},{"code":"420606","name":"樊城区","cityCode":"4206","provinceCode":"42"},{"code":"420607","name":"襄州区","cityCode":"4206","provinceCode":"42"},{"code":"420624","name":"南漳县","cityCode":"4206","provinceCode":"42"},{"code":"420625","name":"谷城县","cityCode":"4206","provinceCode":"42"},{"code":"420626","name":"保康县","cityCode":"4206","provinceCode":"42"},{"code":"420682","name":"老河口市","cityCode":"4206","provinceCode":"42"},{"code":"420683","name":"枣阳市","cityCode":"4206","provinceCode":"42"},{"code":"420684","name":"宜城市","cityCode":"4206","provinceCode":"42"},{"code":"420702","name":"梁子湖区","cityCode":"4207","provinceCode":"42"},{"code":"420703","name":"华容区","cityCode":"4207","provinceCode":"42"},{"code":"420704","name":"鄂城区","cityCode":"4207","provinceCode":"42"},{"code":"420802","name":"东宝区","cityCode":"4208","provinceCode":"42"},{"code":"420804","name":"掇刀区","cityCode":"4208","provinceCode":"42"},{"code":"420821","name":"京山县","cityCode":"4208","provinceCode":"42"},{"code":"420822","name":"沙洋县","cityCode":"4208","provinceCode":"42"},{"code":"420881","name":"钟祥市","cityCode":"4208","provinceCode":"42"},{"code":"420902","name":"孝南区","cityCode":"4209","provinceCode":"42"},{"code":"420921","name":"孝昌县","cityCode":"4209","provinceCode":"42"},{"code":"420922","name":"大悟县","cityCode":"4209","provinceCode":"42"},{"code":"420923","name":"云梦县","cityCode":"4209","provinceCode":"42"},{"code":"420981","name":"应城市","cityCode":"4209","provinceCode":"42"},{"code":"420982","name":"安陆市","cityCode":"4209","provinceCode":"42"},{"code":"420984","name":"汉川市","cityCode":"4209","provinceCode":"42"},{"code":"421002","name":"沙市区","cityCode":"4210","provinceCode":"42"},{"code":"421003","name":"荆州区","cityCode":"4210","provinceCode":"42"},{"code":"421022","name":"公安县","cityCode":"4210","provinceCode":"42"},{"code":"421023","name":"监利县","cityCode":"4210","provinceCode":"42"},{"code":"421024","name":"江陵县","cityCode":"4210","provinceCode":"42"},{"code":"421081","name":"石首市","cityCode":"4210","provinceCode":"42"},{"code":"421083","name":"洪湖市","cityCode":"4210","provinceCode":"42"},{"code":"421087","name":"松滋市","cityCode":"4210","provinceCode":"42"},{"code":"421102","name":"黄州区","cityCode":"4211","provinceCode":"42"},{"code":"421121","name":"团风县","cityCode":"4211","provinceCode":"42"},{"code":"421122","name":"红安县","cityCode":"4211","provinceCode":"42"},{"code":"421123","name":"罗田县","cityCode":"4211","provinceCode":"42"},{"code":"421124","name":"英山县","cityCode":"4211","provinceCode":"42"},{"code":"421125","name":"浠水县","cityCode":"4211","provinceCode":"42"},{"code":"421126","name":"蕲春县","cityCode":"4211","provinceCode":"42"},{"code":"421127","name":"黄梅县","cityCode":"4211","provinceCode":"42"},{"code":"421181","name":"麻城市","cityCode":"4211","provinceCode":"42"},{"code":"421182","name":"武穴市","cityCode":"4211","provinceCode":"42"},{"code":"421202","name":"咸安区","cityCode":"4212","provinceCode":"42"},{"code":"421221","name":"嘉鱼县","cityCode":"4212","provinceCode":"42"},{"code":"421222","name":"通城县","cityCode":"4212","provinceCode":"42"},{"code":"421223","name":"崇阳县","cityCode":"4212","provinceCode":"42"},{"code":"421224","name":"通山县","cityCode":"4212","provinceCode":"42"},{"code":"421281","name":"赤壁市","cityCode":"4212","provinceCode":"42"},{"code":"421303","name":"曾都区","cityCode":"4213","provinceCode":"42"},{"code":"421321","name":"随县","cityCode":"4213","provinceCode":"42"},{"code":"421381","name":"广水市","cityCode":"4213","provinceCode":"42"},{"code":"422801","name":"恩施市","cityCode":"4228","provinceCode":"42"},{"code":"422802","name":"利川市","cityCode":"4228","provinceCode":"42"},{"code":"422822","name":"建始县","cityCode":"4228","provinceCode":"42"},{"code":"422823","name":"巴东县","cityCode":"4228","provinceCode":"42"},{"code":"422825","name":"宣恩县","cityCode":"4228","provinceCode":"42"},{"code":"422826","name":"咸丰县","cityCode":"4228","provinceCode":"42"},{"code":"422827","name":"来凤县","cityCode":"4228","provinceCode":"42"},{"code":"422828","name":"鹤峰县","cityCode":"4228","provinceCode":"42"},{"code":"429004","name":"仙桃市","cityCode":"4290","provinceCode":"42"},{"code":"429005","name":"潜江市","cityCode":"4290","provinceCode":"42"},{"code":"429006","name":"天门市","cityCode":"4290","provinceCode":"42"},{"code":"429021","name":"神农架林区","cityCode":"4290","provinceCode":"42"},{"code":"430102","name":"芙蓉区","cityCode":"4301","provinceCode":"43"},{"code":"430103","name":"天心区","cityCode":"4301","provinceCode":"43"},{"code":"430104","name":"岳麓区","cityCode":"4301","provinceCode":"43"},{"code":"430105","name":"开福区","cityCode":"4301","provinceCode":"43"},{"code":"430111","name":"雨花区","cityCode":"4301","provinceCode":"43"},{"code":"430112","name":"望城区","cityCode":"4301","provinceCode":"43"},{"code":"430121","name":"长沙县","cityCode":"4301","provinceCode":"43"},{"code":"430124","name":"宁乡县","cityCode":"4301","provinceCode":"43"},{"code":"430181","name":"浏阳市","cityCode":"4301","provinceCode":"43"},{"code":"430202","name":"荷塘区","cityCode":"4302","provinceCode":"43"},{"code":"430203","name":"芦淞区","cityCode":"4302","provinceCode":"43"},{"code":"430204","name":"石峰区","cityCode":"4302","provinceCode":"43"},{"code":"430211","name":"天元区","cityCode":"4302","provinceCode":"43"},{"code":"430221","name":"株洲县","cityCode":"4302","provinceCode":"43"},{"code":"430223","name":"攸县","cityCode":"4302","provinceCode":"43"},{"code":"430224","name":"茶陵县","cityCode":"4302","provinceCode":"43"},{"code":"430225","name":"炎陵县","cityCode":"4302","provinceCode":"43"},{"code":"430281","name":"醴陵市","cityCode":"4302","provinceCode":"43"},{"code":"430302","name":"雨湖区","cityCode":"4303","provinceCode":"43"},{"code":"430304","name":"岳塘区","cityCode":"4303","provinceCode":"43"},{"code":"430321","name":"湘潭县","cityCode":"4303","provinceCode":"43"},{"code":"430381","name":"湘乡市","cityCode":"4303","provinceCode":"43"},{"code":"430382","name":"韶山市","cityCode":"4303","provinceCode":"43"},{"code":"430405","name":"珠晖区","cityCode":"4304","provinceCode":"43"},{"code":"430406","name":"雁峰区","cityCode":"4304","provinceCode":"43"},{"code":"430407","name":"石鼓区","cityCode":"4304","provinceCode":"43"},{"code":"430408","name":"蒸湘区","cityCode":"4304","provinceCode":"43"},{"code":"430412","name":"南岳区","cityCode":"4304","provinceCode":"43"},{"code":"430421","name":"衡阳县","cityCode":"4304","provinceCode":"43"},{"code":"430422","name":"衡南县","cityCode":"4304","provinceCode":"43"},{"code":"430423","name":"衡山县","cityCode":"4304","provinceCode":"43"},{"code":"430424","name":"衡东县","cityCode":"4304","provinceCode":"43"},{"code":"430426","name":"祁东县","cityCode":"4304","provinceCode":"43"},{"code":"430481","name":"耒阳市","cityCode":"4304","provinceCode":"43"},{"code":"430482","name":"常宁市","cityCode":"4304","provinceCode":"43"},{"code":"430502","name":"双清区","cityCode":"4305","provinceCode":"43"},{"code":"430503","name":"大祥区","cityCode":"4305","provinceCode":"43"},{"code":"430511","name":"北塔区","cityCode":"4305","provinceCode":"43"},{"code":"430521","name":"邵东县","cityCode":"4305","provinceCode":"43"},{"code":"430522","name":"新邵县","cityCode":"4305","provinceCode":"43"},{"code":"430523","name":"邵阳县","cityCode":"4305","provinceCode":"43"},{"code":"430524","name":"隆回县","cityCode":"4305","provinceCode":"43"},{"code":"430525","name":"洞口县","cityCode":"4305","provinceCode":"43"},{"code":"430527","name":"绥宁县","cityCode":"4305","provinceCode":"43"},{"code":"430528","name":"新宁县","cityCode":"4305","provinceCode":"43"},{"code":"430529","name":"城步苗族自治县","cityCode":"4305","provinceCode":"43"},{"code":"430581","name":"武冈市","cityCode":"4305","provinceCode":"43"},{"code":"430602","name":"岳阳楼区","cityCode":"4306","provinceCode":"43"},{"code":"430603","name":"云溪区","cityCode":"4306","provinceCode":"43"},{"code":"430611","name":"君山区","cityCode":"4306","provinceCode":"43"},{"code":"430621","name":"岳阳县","cityCode":"4306","provinceCode":"43"},{"code":"430623","name":"华容县","cityCode":"4306","provinceCode":"43"},{"code":"430624","name":"湘阴县","cityCode":"4306","provinceCode":"43"},{"code":"430626","name":"平江县","cityCode":"4306","provinceCode":"43"},{"code":"430681","name":"汨罗市","cityCode":"4306","provinceCode":"43"},{"code":"430682","name":"临湘市","cityCode":"4306","provinceCode":"43"},{"code":"430702","name":"武陵区","cityCode":"4307","provinceCode":"43"},{"code":"430703","name":"鼎城区","cityCode":"4307","provinceCode":"43"},{"code":"430721","name":"安乡县","cityCode":"4307","provinceCode":"43"},{"code":"430722","name":"汉寿县","cityCode":"4307","provinceCode":"43"},{"code":"430723","name":"澧县","cityCode":"4307","provinceCode":"43"},{"code":"430724","name":"临澧县","cityCode":"4307","provinceCode":"43"},{"code":"430725","name":"桃源县","cityCode":"4307","provinceCode":"43"},{"code":"430726","name":"石门县","cityCode":"4307","provinceCode":"43"},{"code":"430781","name":"津市市","cityCode":"4307","provinceCode":"43"},{"code":"430802","name":"永定区","cityCode":"4308","provinceCode":"43"},{"code":"430811","name":"武陵源区","cityCode":"4308","provinceCode":"43"},{"code":"430821","name":"慈利县","cityCode":"4308","provinceCode":"43"},{"code":"430822","name":"桑植县","cityCode":"4308","provinceCode":"43"},{"code":"430902","name":"资阳区","cityCode":"4309","provinceCode":"43"},{"code":"430903","name":"赫山区","cityCode":"4309","provinceCode":"43"},{"code":"430921","name":"南县","cityCode":"4309","provinceCode":"43"},{"code":"430922","name":"桃江县","cityCode":"4309","provinceCode":"43"},{"code":"430923","name":"安化县","cityCode":"4309","provinceCode":"43"},{"code":"430981","name":"沅江市","cityCode":"4309","provinceCode":"43"},{"code":"431002","name":"北湖区","cityCode":"4310","provinceCode":"43"},{"code":"431003","name":"苏仙区","cityCode":"4310","provinceCode":"43"},{"code":"431021","name":"桂阳县","cityCode":"4310","provinceCode":"43"},{"code":"431022","name":"宜章县","cityCode":"4310","provinceCode":"43"},{"code":"431023","name":"永兴县","cityCode":"4310","provinceCode":"43"},{"code":"431024","name":"嘉禾县","cityCode":"4310","provinceCode":"43"},{"code":"431025","name":"临武县","cityCode":"4310","provinceCode":"43"},{"code":"431026","name":"汝城县","cityCode":"4310","provinceCode":"43"},{"code":"431027","name":"桂东县","cityCode":"4310","provinceCode":"43"},{"code":"431028","name":"安仁县","cityCode":"4310","provinceCode":"43"},{"code":"431081","name":"资兴市","cityCode":"4310","provinceCode":"43"},{"code":"431102","name":"零陵区","cityCode":"4311","provinceCode":"43"},{"code":"431103","name":"冷水滩区","cityCode":"4311","provinceCode":"43"},{"code":"431121","name":"祁阳县","cityCode":"4311","provinceCode":"43"},{"code":"431122","name":"东安县","cityCode":"4311","provinceCode":"43"},{"code":"431123","name":"双牌县","cityCode":"4311","provinceCode":"43"},{"code":"431124","name":"道县","cityCode":"4311","provinceCode":"43"},{"code":"431125","name":"江永县","cityCode":"4311","provinceCode":"43"},{"code":"431126","name":"宁远县","cityCode":"4311","provinceCode":"43"},{"code":"431127","name":"蓝山县","cityCode":"4311","provinceCode":"43"},{"code":"431128","name":"新田县","cityCode":"4311","provinceCode":"43"},{"code":"431129","name":"江华瑶族自治县","cityCode":"4311","provinceCode":"43"},{"code":"431202","name":"鹤城区","cityCode":"4312","provinceCode":"43"},{"code":"431221","name":"中方县","cityCode":"4312","provinceCode":"43"},{"code":"431222","name":"沅陵县","cityCode":"4312","provinceCode":"43"},{"code":"431223","name":"辰溪县","cityCode":"4312","provinceCode":"43"},{"code":"431224","name":"溆浦县","cityCode":"4312","provinceCode":"43"},{"code":"431225","name":"会同县","cityCode":"4312","provinceCode":"43"},{"code":"431226","name":"麻阳苗族自治县","cityCode":"4312","provinceCode":"43"},{"code":"431227","name":"新晃侗族自治县","cityCode":"4312","provinceCode":"43"},{"code":"431228","name":"芷江侗族自治县","cityCode":"4312","provinceCode":"43"},{"code":"431229","name":"靖州苗族侗族自治县","cityCode":"4312","provinceCode":"43"},{"code":"431230","name":"通道侗族自治县","cityCode":"4312","provinceCode":"43"},{"code":"431281","name":"洪江市","cityCode":"4312","provinceCode":"43"},{"code":"431302","name":"娄星区","cityCode":"4313","provinceCode":"43"},{"code":"431321","name":"双峰县","cityCode":"4313","provinceCode":"43"},{"code":"431322","name":"新化县","cityCode":"4313","provinceCode":"43"},{"code":"431381","name":"冷水江市","cityCode":"4313","provinceCode":"43"},{"code":"431382","name":"涟源市","cityCode":"4313","provinceCode":"43"},{"code":"433101","name":"吉首市","cityCode":"4331","provinceCode":"43"},{"code":"433122","name":"泸溪县","cityCode":"4331","provinceCode":"43"},{"code":"433123","name":"凤凰县","cityCode":"4331","provinceCode":"43"},{"code":"433124","name":"花垣县","cityCode":"4331","provinceCode":"43"},{"code":"433125","name":"保靖县","cityCode":"4331","provinceCode":"43"},{"code":"433126","name":"古丈县","cityCode":"4331","provinceCode":"43"},{"code":"433127","name":"永顺县","cityCode":"4331","provinceCode":"43"},{"code":"433130","name":"龙山县","cityCode":"4331","provinceCode":"43"},{"code":"440103","name":"荔湾区","cityCode":"4401","provinceCode":"44"},{"code":"440104","name":"越秀区","cityCode":"4401","provinceCode":"44"},{"code":"440105","name":"海珠区","cityCode":"4401","provinceCode":"44"},{"code":"440106","name":"天河区","cityCode":"4401","provinceCode":"44"},{"code":"440111","name":"白云区","cityCode":"4401","provinceCode":"44"},{"code":"440112","name":"黄埔区","cityCode":"4401","provinceCode":"44"},{"code":"440113","name":"番禺区","cityCode":"4401","provinceCode":"44"},{"code":"440114","name":"花都区","cityCode":"4401","provinceCode":"44"},{"code":"440115","name":"南沙区","cityCode":"4401","provinceCode":"44"},{"code":"440117","name":"从化区","cityCode":"4401","provinceCode":"44"},{"code":"440118","name":"增城区","cityCode":"4401","provinceCode":"44"},{"code":"440203","name":"武江区","cityCode":"4402","provinceCode":"44"},{"code":"440204","name":"浈江区","cityCode":"4402","provinceCode":"44"},{"code":"440205","name":"曲江区","cityCode":"4402","provinceCode":"44"},{"code":"440222","name":"始兴县","cityCode":"4402","provinceCode":"44"},{"code":"440224","name":"仁化县","cityCode":"4402","provinceCode":"44"},{"code":"440229","name":"翁源县","cityCode":"4402","provinceCode":"44"},{"code":"440232","name":"乳源瑶族自治县","cityCode":"4402","provinceCode":"44"},{"code":"440233","name":"新丰县","cityCode":"4402","provinceCode":"44"},{"code":"440281","name":"乐昌市","cityCode":"4402","provinceCode":"44"},{"code":"440282","name":"南雄市","cityCode":"4402","provinceCode":"44"},{"code":"440303","name":"罗湖区","cityCode":"4403","provinceCode":"44"},{"code":"440304","name":"福田区","cityCode":"4403","provinceCode":"44"},{"code":"440305","name":"南山区","cityCode":"4403","provinceCode":"44"},{"code":"440306","name":"宝安区","cityCode":"4403","provinceCode":"44"},{"code":"440307","name":"龙岗区","cityCode":"4403","provinceCode":"44"},{"code":"440308","name":"盐田区","cityCode":"4403","provinceCode":"44"},{"code":"440402","name":"香洲区","cityCode":"4404","provinceCode":"44"},{"code":"440403","name":"斗门区","cityCode":"4404","provinceCode":"44"},{"code":"440404","name":"金湾区","cityCode":"4404","provinceCode":"44"},{"code":"440507","name":"龙湖区","cityCode":"4405","provinceCode":"44"},{"code":"440511","name":"金平区","cityCode":"4405","provinceCode":"44"},{"code":"440512","name":"濠江区","cityCode":"4405","provinceCode":"44"},{"code":"440513","name":"潮阳区","cityCode":"4405","provinceCode":"44"},{"code":"440514","name":"潮南区","cityCode":"4405","provinceCode":"44"},{"code":"440515","name":"澄海区","cityCode":"4405","provinceCode":"44"},{"code":"440523","name":"南澳县","cityCode":"4405","provinceCode":"44"},{"code":"440604","name":"禅城区","cityCode":"4406","provinceCode":"44"},{"code":"440605","name":"南海区","cityCode":"4406","provinceCode":"44"},{"code":"440606","name":"顺德区","cityCode":"4406","provinceCode":"44"},{"code":"440607","name":"三水区","cityCode":"4406","provinceCode":"44"},{"code":"440608","name":"高明区","cityCode":"4406","provinceCode":"44"},{"code":"440703","name":"蓬江区","cityCode":"4407","provinceCode":"44"},{"code":"440704","name":"江海区","cityCode":"4407","provinceCode":"44"},{"code":"440705","name":"新会区","cityCode":"4407","provinceCode":"44"},{"code":"440781","name":"台山市","cityCode":"4407","provinceCode":"44"},{"code":"440783","name":"开平市","cityCode":"4407","provinceCode":"44"},{"code":"440784","name":"鹤山市","cityCode":"4407","provinceCode":"44"},{"code":"440785","name":"恩平市","cityCode":"4407","provinceCode":"44"},{"code":"440802","name":"赤坎区","cityCode":"4408","provinceCode":"44"},{"code":"440803","name":"霞山区","cityCode":"4408","provinceCode":"44"},{"code":"440804","name":"坡头区","cityCode":"4408","provinceCode":"44"},{"code":"440811","name":"麻章区","cityCode":"4408","provinceCode":"44"},{"code":"440823","name":"遂溪县","cityCode":"4408","provinceCode":"44"},{"code":"440825","name":"徐闻县","cityCode":"4408","provinceCode":"44"},{"code":"440881","name":"廉江市","cityCode":"4408","provinceCode":"44"},{"code":"440882","name":"雷州市","cityCode":"4408","provinceCode":"44"},{"code":"440883","name":"吴川市","cityCode":"4408","provinceCode":"44"},{"code":"440902","name":"茂南区","cityCode":"4409","provinceCode":"44"},{"code":"440904","name":"电白区","cityCode":"4409","provinceCode":"44"},{"code":"440981","name":"高州市","cityCode":"4409","provinceCode":"44"},{"code":"440982","name":"化州市","cityCode":"4409","provinceCode":"44"},{"code":"440983","name":"信宜市","cityCode":"4409","provinceCode":"44"},{"code":"441202","name":"端州区","cityCode":"4412","provinceCode":"44"},{"code":"441203","name":"鼎湖区","cityCode":"4412","provinceCode":"44"},{"code":"441204","name":"高要区","cityCode":"4412","provinceCode":"44"},{"code":"441223","name":"广宁县","cityCode":"4412","provinceCode":"44"},{"code":"441224","name":"怀集县","cityCode":"4412","provinceCode":"44"},{"code":"441225","name":"封开县","cityCode":"4412","provinceCode":"44"},{"code":"441226","name":"德庆县","cityCode":"4412","provinceCode":"44"},{"code":"441284","name":"四会市","cityCode":"4412","provinceCode":"44"},{"code":"441302","name":"惠城区","cityCode":"4413","provinceCode":"44"},{"code":"441303","name":"惠阳区","cityCode":"4413","provinceCode":"44"},{"code":"441322","name":"博罗县","cityCode":"4413","provinceCode":"44"},{"code":"441323","name":"惠东县","cityCode":"4413","provinceCode":"44"},{"code":"441324","name":"龙门县","cityCode":"4413","provinceCode":"44"},{"code":"441402","name":"梅江区","cityCode":"4414","provinceCode":"44"},{"code":"441403","name":"梅县区","cityCode":"4414","provinceCode":"44"},{"code":"441422","name":"大埔县","cityCode":"4414","provinceCode":"44"},{"code":"441423","name":"丰顺县","cityCode":"4414","provinceCode":"44"},{"code":"441424","name":"五华县","cityCode":"4414","provinceCode":"44"},{"code":"441426","name":"平远县","cityCode":"4414","provinceCode":"44"},{"code":"441427","name":"蕉岭县","cityCode":"4414","provinceCode":"44"},{"code":"441481","name":"兴宁市","cityCode":"4414","provinceCode":"44"},{"code":"441502","name":"城区","cityCode":"4415","provinceCode":"44"},{"code":"441521","name":"海丰县","cityCode":"4415","provinceCode":"44"},{"code":"441523","name":"陆河县","cityCode":"4415","provinceCode":"44"},{"code":"441581","name":"陆丰市","cityCode":"4415","provinceCode":"44"},{"code":"441602","name":"源城区","cityCode":"4416","provinceCode":"44"},{"code":"441621","name":"紫金县","cityCode":"4416","provinceCode":"44"},{"code":"441622","name":"龙川县","cityCode":"4416","provinceCode":"44"},{"code":"441623","name":"连平县","cityCode":"4416","provinceCode":"44"},{"code":"441624","name":"和平县","cityCode":"4416","provinceCode":"44"},{"code":"441625","name":"东源县","cityCode":"4416","provinceCode":"44"},{"code":"441702","name":"江城区","cityCode":"4417","provinceCode":"44"},{"code":"441704","name":"阳东区","cityCode":"4417","provinceCode":"44"},{"code":"441721","name":"阳西县","cityCode":"4417","provinceCode":"44"},{"code":"441781","name":"阳春市","cityCode":"4417","provinceCode":"44"},{"code":"441802","name":"清城区","cityCode":"4418","provinceCode":"44"},{"code":"441803","name":"清新区","cityCode":"4418","provinceCode":"44"},{"code":"441821","name":"佛冈县","cityCode":"4418","provinceCode":"44"},{"code":"441823","name":"阳山县","cityCode":"4418","provinceCode":"44"},{"code":"441825","name":"连山壮族瑶族自治县","cityCode":"4418","provinceCode":"44"},{"code":"441826","name":"连南瑶族自治县","cityCode":"4418","provinceCode":"44"},{"code":"441881","name":"英德市","cityCode":"4418","provinceCode":"44"},{"code":"441882","name":"连州市","cityCode":"4418","provinceCode":"44"},{"code":"441900","name":"东莞市","cityCode":"4419","provinceCode":"44"},{"code":"442000","name":"中山市","cityCode":"4420","provinceCode":"44"},{"code":"445102","name":"湘桥区","cityCode":"4451","provinceCode":"44"},{"code":"445103","name":"潮安区","cityCode":"4451","provinceCode":"44"},{"code":"445122","name":"饶平县","cityCode":"4451","provinceCode":"44"},{"code":"445202","name":"榕城区","cityCode":"4452","provinceCode":"44"},{"code":"445203","name":"揭东区","cityCode":"4452","provinceCode":"44"},{"code":"445222","name":"揭西县","cityCode":"4452","provinceCode":"44"},{"code":"445224","name":"惠来县","cityCode":"4452","provinceCode":"44"},{"code":"445281","name":"普宁市","cityCode":"4452","provinceCode":"44"},{"code":"445302","name":"云城区","cityCode":"4453","provinceCode":"44"},{"code":"445303","name":"云安区","cityCode":"4453","provinceCode":"44"},{"code":"445321","name":"新兴县","cityCode":"4453","provinceCode":"44"},{"code":"445322","name":"郁南县","cityCode":"4453","provinceCode":"44"},{"code":"445381","name":"罗定市","cityCode":"4453","provinceCode":"44"},{"code":"450102","name":"兴宁区","cityCode":"4501","provinceCode":"45"},{"code":"450103","name":"青秀区","cityCode":"4501","provinceCode":"45"},{"code":"450105","name":"江南区","cityCode":"4501","provinceCode":"45"},{"code":"450107","name":"西乡塘区","cityCode":"4501","provinceCode":"45"},{"code":"450108","name":"良庆区","cityCode":"4501","provinceCode":"45"},{"code":"450109","name":"邕宁区","cityCode":"4501","provinceCode":"45"},{"code":"450110","name":"武鸣区","cityCode":"4501","provinceCode":"45"},{"code":"450123","name":"隆安县","cityCode":"4501","provinceCode":"45"},{"code":"450124","name":"马山县","cityCode":"4501","provinceCode":"45"},{"code":"450125","name":"上林县","cityCode":"4501","provinceCode":"45"},{"code":"450126","name":"宾阳县","cityCode":"4501","provinceCode":"45"},{"code":"450127","name":"横县","cityCode":"4501","provinceCode":"45"},{"code":"450202","name":"城中区","cityCode":"4502","provinceCode":"45"},{"code":"450203","name":"鱼峰区","cityCode":"4502","provinceCode":"45"},{"code":"450204","name":"柳南区","cityCode":"4502","provinceCode":"45"},{"code":"450205","name":"柳北区","cityCode":"4502","provinceCode":"45"},{"code":"450206","name":"柳江区","cityCode":"4502","provinceCode":"45"},{"code":"450222","name":"柳城县","cityCode":"4502","provinceCode":"45"},{"code":"450223","name":"鹿寨县","cityCode":"4502","provinceCode":"45"},{"code":"450224","name":"融安县","cityCode":"4502","provinceCode":"45"},{"code":"450225","name":"融水苗族自治县","cityCode":"4502","provinceCode":"45"},{"code":"450226","name":"三江侗族自治县","cityCode":"4502","provinceCode":"45"},{"code":"450302","name":"秀峰区","cityCode":"4503","provinceCode":"45"},{"code":"450303","name":"叠彩区","cityCode":"4503","provinceCode":"45"},{"code":"450304","name":"象山区","cityCode":"4503","provinceCode":"45"},{"code":"450305","name":"七星区","cityCode":"4503","provinceCode":"45"},{"code":"450311","name":"雁山区","cityCode":"4503","provinceCode":"45"},{"code":"450312","name":"临桂区","cityCode":"4503","provinceCode":"45"},{"code":"450321","name":"阳朔县","cityCode":"4503","provinceCode":"45"},{"code":"450323","name":"灵川县","cityCode":"4503","provinceCode":"45"},{"code":"450324","name":"全州县","cityCode":"4503","provinceCode":"45"},{"code":"450325","name":"兴安县","cityCode":"4503","provinceCode":"45"},{"code":"450326","name":"永福县","cityCode":"4503","provinceCode":"45"},{"code":"450327","name":"灌阳县","cityCode":"4503","provinceCode":"45"},{"code":"450328","name":"龙胜各族自治县","cityCode":"4503","provinceCode":"45"},{"code":"450329","name":"资源县","cityCode":"4503","provinceCode":"45"},{"code":"450330","name":"平乐县","cityCode":"4503","provinceCode":"45"},{"code":"450331","name":"荔浦县","cityCode":"4503","provinceCode":"45"},{"code":"450332","name":"恭城瑶族自治县","cityCode":"4503","provinceCode":"45"},{"code":"450403","name":"万秀区","cityCode":"4504","provinceCode":"45"},{"code":"450405","name":"长洲区","cityCode":"4504","provinceCode":"45"},{"code":"450406","name":"龙圩区","cityCode":"4504","provinceCode":"45"},{"code":"450421","name":"苍梧县","cityCode":"4504","provinceCode":"45"},{"code":"450422","name":"藤县","cityCode":"4504","provinceCode":"45"},{"code":"450423","name":"蒙山县","cityCode":"4504","provinceCode":"45"},{"code":"450481","name":"岑溪市","cityCode":"4504","provinceCode":"45"},{"code":"450502","name":"海城区","cityCode":"4505","provinceCode":"45"},{"code":"450503","name":"银海区","cityCode":"4505","provinceCode":"45"},{"code":"450512","name":"铁山港区","cityCode":"4505","provinceCode":"45"},{"code":"450521","name":"合浦县","cityCode":"4505","provinceCode":"45"},{"code":"450602","name":"港口区","cityCode":"4506","provinceCode":"45"},{"code":"450603","name":"防城区","cityCode":"4506","provinceCode":"45"},{"code":"450621","name":"上思县","cityCode":"4506","provinceCode":"45"},{"code":"450681","name":"东兴市","cityCode":"4506","provinceCode":"45"},{"code":"450702","name":"钦南区","cityCode":"4507","provinceCode":"45"},{"code":"450703","name":"钦北区","cityCode":"4507","provinceCode":"45"},{"code":"450721","name":"灵山县","cityCode":"4507","provinceCode":"45"},{"code":"450722","name":"浦北县","cityCode":"4507","provinceCode":"45"},{"code":"450802","name":"港北区","cityCode":"4508","provinceCode":"45"},{"code":"450803","name":"港南区","cityCode":"4508","provinceCode":"45"},{"code":"450804","name":"覃塘区","cityCode":"4508","provinceCode":"45"},{"code":"450821","name":"平南县","cityCode":"4508","provinceCode":"45"},{"code":"450881","name":"桂平市","cityCode":"4508","provinceCode":"45"},{"code":"450902","name":"玉州区","cityCode":"4509","provinceCode":"45"},{"code":"450903","name":"福绵区","cityCode":"4509","provinceCode":"45"},{"code":"450921","name":"容县","cityCode":"4509","provinceCode":"45"},{"code":"450922","name":"陆川县","cityCode":"4509","provinceCode":"45"},{"code":"450923","name":"博白县","cityCode":"4509","provinceCode":"45"},{"code":"450924","name":"兴业县","cityCode":"4509","provinceCode":"45"},{"code":"450981","name":"北流市","cityCode":"4509","provinceCode":"45"},{"code":"451002","name":"右江区","cityCode":"4510","provinceCode":"45"},{"code":"451021","name":"田阳县","cityCode":"4510","provinceCode":"45"},{"code":"451022","name":"田东县","cityCode":"4510","provinceCode":"45"},{"code":"451023","name":"平果县","cityCode":"4510","provinceCode":"45"},{"code":"451024","name":"德保县","cityCode":"4510","provinceCode":"45"},{"code":"451026","name":"那坡县","cityCode":"4510","provinceCode":"45"},{"code":"451027","name":"凌云县","cityCode":"4510","provinceCode":"45"},{"code":"451028","name":"乐业县","cityCode":"4510","provinceCode":"45"},{"code":"451029","name":"田林县","cityCode":"4510","provinceCode":"45"},{"code":"451030","name":"西林县","cityCode":"4510","provinceCode":"45"},{"code":"451031","name":"隆林各族自治县","cityCode":"4510","provinceCode":"45"},{"code":"451081","name":"靖西市","cityCode":"4510","provinceCode":"45"},{"code":"451102","name":"八步区","cityCode":"4511","provinceCode":"45"},{"code":"451103","name":"平桂区","cityCode":"4511","provinceCode":"45"},{"code":"451121","name":"昭平县","cityCode":"4511","provinceCode":"45"},{"code":"451122","name":"钟山县","cityCode":"4511","provinceCode":"45"},{"code":"451123","name":"富川瑶族自治县","cityCode":"4511","provinceCode":"45"},{"code":"451202","name":"金城江区","cityCode":"4512","provinceCode":"45"},{"code":"451221","name":"南丹县","cityCode":"4512","provinceCode":"45"},{"code":"451222","name":"天峨县","cityCode":"4512","provinceCode":"45"},{"code":"451223","name":"凤山县","cityCode":"4512","provinceCode":"45"},{"code":"451224","name":"东兰县","cityCode":"4512","provinceCode":"45"},{"code":"451225","name":"罗城仫佬族自治县","cityCode":"4512","provinceCode":"45"},{"code":"451226","name":"环江毛南族自治县","cityCode":"4512","provinceCode":"45"},{"code":"451227","name":"巴马瑶族自治县","cityCode":"4512","provinceCode":"45"},{"code":"451228","name":"都安瑶族自治县","cityCode":"4512","provinceCode":"45"},{"code":"451229","name":"大化瑶族自治县","cityCode":"4512","provinceCode":"45"},{"code":"451281","name":"宜州市","cityCode":"4512","provinceCode":"45"},{"code":"451302","name":"兴宾区","cityCode":"4513","provinceCode":"45"},{"code":"451321","name":"忻城县","cityCode":"4513","provinceCode":"45"},{"code":"451322","name":"象州县","cityCode":"4513","provinceCode":"45"},{"code":"451323","name":"武宣县","cityCode":"4513","provinceCode":"45"},{"code":"451324","name":"金秀瑶族自治县","cityCode":"4513","provinceCode":"45"},{"code":"451381","name":"合山市","cityCode":"4513","provinceCode":"45"},{"code":"451402","name":"江州区","cityCode":"4514","provinceCode":"45"},{"code":"451421","name":"扶绥县","cityCode":"4514","provinceCode":"45"},{"code":"451422","name":"宁明县","cityCode":"4514","provinceCode":"45"},{"code":"451423","name":"龙州县","cityCode":"4514","provinceCode":"45"},{"code":"451424","name":"大新县","cityCode":"4514","provinceCode":"45"},{"code":"451425","name":"天等县","cityCode":"4514","provinceCode":"45"},{"code":"451481","name":"凭祥市","cityCode":"4514","provinceCode":"45"},{"code":"460105","name":"秀英区","cityCode":"4601","provinceCode":"46"},{"code":"460106","name":"龙华区","cityCode":"4601","provinceCode":"46"},{"code":"460107","name":"琼山区","cityCode":"4601","provinceCode":"46"},{"code":"460108","name":"美兰区","cityCode":"4601","provinceCode":"46"},{"code":"460201","name":"市辖区","cityCode":"4602","provinceCode":"46"},{"code":"460202","name":"海棠区","cityCode":"4602","provinceCode":"46"},{"code":"460203","name":"吉阳区","cityCode":"4602","provinceCode":"46"},{"code":"460204","name":"天涯区","cityCode":"4602","provinceCode":"46"},{"code":"460205","name":"崖州区","cityCode":"4602","provinceCode":"46"},{"code":"460321","name":"西沙群岛","cityCode":"4603","provinceCode":"46"},{"code":"460322","name":"南沙群岛","cityCode":"4603","provinceCode":"46"},{"code":"460323","name":"中沙群岛的岛礁及其海域","cityCode":"4603","provinceCode":"46"},{"code":"460400","name":"儋州市","cityCode":"4604","provinceCode":"46"},{"code":"469001","name":"五指山市","cityCode":"4690","provinceCode":"46"},{"code":"469002","name":"琼海市","cityCode":"4690","provinceCode":"46"},{"code":"469005","name":"文昌市","cityCode":"4690","provinceCode":"46"},{"code":"469006","name":"万宁市","cityCode":"4690","provinceCode":"46"},{"code":"469007","name":"东方市","cityCode":"4690","provinceCode":"46"},{"code":"469021","name":"定安县","cityCode":"4690","provinceCode":"46"},{"code":"469022","name":"屯昌县","cityCode":"4690","provinceCode":"46"},{"code":"469023","name":"澄迈县","cityCode":"4690","provinceCode":"46"},{"code":"469024","name":"临高县","cityCode":"4690","provinceCode":"46"},{"code":"469025","name":"白沙黎族自治县","cityCode":"4690","provinceCode":"46"},{"code":"469026","name":"昌江黎族自治县","cityCode":"4690","provinceCode":"46"},{"code":"469027","name":"乐东黎族自治县","cityCode":"4690","provinceCode":"46"},{"code":"469028","name":"陵水黎族自治县","cityCode":"4690","provinceCode":"46"},{"code":"469029","name":"保亭黎族苗族自治县","cityCode":"4690","provinceCode":"46"},{"code":"469030","name":"琼中黎族苗族自治县","cityCode":"4690","provinceCode":"46"},{"code":"500101","name":"万州区","cityCode":"5001","provinceCode":"50"},{"code":"500102","name":"涪陵区","cityCode":"5001","provinceCode":"50"},{"code":"500103","name":"渝中区","cityCode":"5001","provinceCode":"50"},{"code":"500104","name":"大渡口区","cityCode":"5001","provinceCode":"50"},{"code":"500105","name":"江北区","cityCode":"5001","provinceCode":"50"},{"code":"500106","name":"沙坪坝区","cityCode":"5001","provinceCode":"50"},{"code":"500107","name":"九龙坡区","cityCode":"5001","provinceCode":"50"},{"code":"500108","name":"南岸区","cityCode":"5001","provinceCode":"50"},{"code":"500109","name":"北碚区","cityCode":"5001","provinceCode":"50"},{"code":"500110","name":"綦江区","cityCode":"5001","provinceCode":"50"},{"code":"500111","name":"大足区","cityCode":"5001","provinceCode":"50"},{"code":"500112","name":"渝北区","cityCode":"5001","provinceCode":"50"},{"code":"500113","name":"巴南区","cityCode":"5001","provinceCode":"50"},{"code":"500114","name":"黔江区","cityCode":"5001","provinceCode":"50"},{"code":"500115","name":"长寿区","cityCode":"5001","provinceCode":"50"},{"code":"500116","name":"江津区","cityCode":"5001","provinceCode":"50"},{"code":"500117","name":"合川区","cityCode":"5001","provinceCode":"50"},{"code":"500118","name":"永川区","cityCode":"5001","provinceCode":"50"},{"code":"500119","name":"南川区","cityCode":"5001","provinceCode":"50"},{"code":"500120","name":"璧山区","cityCode":"5001","provinceCode":"50"},{"code":"500151","name":"铜梁区","cityCode":"5001","provinceCode":"50"},{"code":"500152","name":"潼南区","cityCode":"5001","provinceCode":"50"},{"code":"500153","name":"荣昌区","cityCode":"5001","provinceCode":"50"},{"code":"500154","name":"开州区","cityCode":"5001","provinceCode":"50"},{"code":"500228","name":"梁平县","cityCode":"5002","provinceCode":"50"},{"code":"500229","name":"城口县","cityCode":"5002","provinceCode":"50"},{"code":"500230","name":"丰都县","cityCode":"5002","provinceCode":"50"},{"code":"500231","name":"垫江县","cityCode":"5002","provinceCode":"50"},{"code":"500232","name":"武隆县","cityCode":"5002","provinceCode":"50"},{"code":"500233","name":"忠县","cityCode":"5002","provinceCode":"50"},{"code":"500235","name":"云阳县","cityCode":"5002","provinceCode":"50"},{"code":"500236","name":"奉节县","cityCode":"5002","provinceCode":"50"},{"code":"500237","name":"巫山县","cityCode":"5002","provinceCode":"50"},{"code":"500238","name":"巫溪县","cityCode":"5002","provinceCode":"50"},{"code":"500240","name":"石柱土家族自治县","cityCode":"5002","provinceCode":"50"},{"code":"500241","name":"秀山土家族苗族自治县","cityCode":"5002","provinceCode":"50"},{"code":"500242","name":"酉阳土家族苗族自治县","cityCode":"5002","provinceCode":"50"},{"code":"500243","name":"彭水苗族土家族自治县","cityCode":"5002","provinceCode":"50"},{"code":"510104","name":"锦江区","cityCode":"5101","provinceCode":"51"},{"code":"510105","name":"青羊区","cityCode":"5101","provinceCode":"51"},{"code":"510106","name":"金牛区","cityCode":"5101","provinceCode":"51"},{"code":"510107","name":"武侯区","cityCode":"5101","provinceCode":"51"},{"code":"510108","name":"成华区","cityCode":"5101","provinceCode":"51"},{"code":"510112","name":"龙泉驿区","cityCode":"5101","provinceCode":"51"},{"code":"510113","name":"青白江区","cityCode":"5101","provinceCode":"51"},{"code":"510114","name":"新都区","cityCode":"5101","provinceCode":"51"},{"code":"510115","name":"温江区","cityCode":"5101","provinceCode":"51"},{"code":"510116","name":"双流区","cityCode":"5101","provinceCode":"51"},{"code":"510121","name":"金堂县","cityCode":"5101","provinceCode":"51"},{"code":"510124","name":"郫县","cityCode":"5101","provinceCode":"51"},{"code":"510129","name":"大邑县","cityCode":"5101","provinceCode":"51"},{"code":"510131","name":"蒲江县","cityCode":"5101","provinceCode":"51"},{"code":"510132","name":"新津县","cityCode":"5101","provinceCode":"51"},{"code":"510181","name":"都江堰市","cityCode":"5101","provinceCode":"51"},{"code":"510182","name":"彭州市","cityCode":"5101","provinceCode":"51"},{"code":"510183","name":"邛崃市","cityCode":"5101","provinceCode":"51"},{"code":"510184","name":"崇州市","cityCode":"5101","provinceCode":"51"},{"code":"510185","name":"简阳市","cityCode":"5101","provinceCode":"51"},{"code":"510302","name":"自流井区","cityCode":"5103","provinceCode":"51"},{"code":"510303","name":"贡井区","cityCode":"5103","provinceCode":"51"},{"code":"510304","name":"大安区","cityCode":"5103","provinceCode":"51"},{"code":"510311","name":"沿滩区","cityCode":"5103","provinceCode":"51"},{"code":"510321","name":"荣县","cityCode":"5103","provinceCode":"51"},{"code":"510322","name":"富顺县","cityCode":"5103","provinceCode":"51"},{"code":"510402","name":"东区","cityCode":"5104","provinceCode":"51"},{"code":"510403","name":"西区","cityCode":"5104","provinceCode":"51"},{"code":"510411","name":"仁和区","cityCode":"5104","provinceCode":"51"},{"code":"510421","name":"米易县","cityCode":"5104","provinceCode":"51"},{"code":"510422","name":"盐边县","cityCode":"5104","provinceCode":"51"},{"code":"510502","name":"江阳区","cityCode":"5105","provinceCode":"51"},{"code":"510503","name":"纳溪区","cityCode":"5105","provinceCode":"51"},{"code":"510504","name":"龙马潭区","cityCode":"5105","provinceCode":"51"},{"code":"510521","name":"泸县","cityCode":"5105","provinceCode":"51"},{"code":"510522","name":"合江县","cityCode":"5105","provinceCode":"51"},{"code":"510524","name":"叙永县","cityCode":"5105","provinceCode":"51"},{"code":"510525","name":"古蔺县","cityCode":"5105","provinceCode":"51"},{"code":"510603","name":"旌阳区","cityCode":"5106","provinceCode":"51"},{"code":"510623","name":"中江县","cityCode":"5106","provinceCode":"51"},{"code":"510626","name":"罗江县","cityCode":"5106","provinceCode":"51"},{"code":"510681","name":"广汉市","cityCode":"5106","provinceCode":"51"},{"code":"510682","name":"什邡市","cityCode":"5106","provinceCode":"51"},{"code":"510683","name":"绵竹市","cityCode":"5106","provinceCode":"51"},{"code":"510703","name":"涪城区","cityCode":"5107","provinceCode":"51"},{"code":"510704","name":"游仙区","cityCode":"5107","provinceCode":"51"},{"code":"510705","name":"安州区","cityCode":"5107","provinceCode":"51"},{"code":"510722","name":"三台县","cityCode":"5107","provinceCode":"51"},{"code":"510723","name":"盐亭县","cityCode":"5107","provinceCode":"51"},{"code":"510725","name":"梓潼县","cityCode":"5107","provinceCode":"51"},{"code":"510726","name":"北川羌族自治县","cityCode":"5107","provinceCode":"51"},{"code":"510727","name":"平武县","cityCode":"5107","provinceCode":"51"},{"code":"510781","name":"江油市","cityCode":"5107","provinceCode":"51"},{"code":"510802","name":"利州区","cityCode":"5108","provinceCode":"51"},{"code":"510811","name":"昭化区","cityCode":"5108","provinceCode":"51"},{"code":"510812","name":"朝天区","cityCode":"5108","provinceCode":"51"},{"code":"510821","name":"旺苍县","cityCode":"5108","provinceCode":"51"},{"code":"510822","name":"青川县","cityCode":"5108","provinceCode":"51"},{"code":"510823","name":"剑阁县","cityCode":"5108","provinceCode":"51"},{"code":"510824","name":"苍溪县","cityCode":"5108","provinceCode":"51"},{"code":"510903","name":"船山区","cityCode":"5109","provinceCode":"51"},{"code":"510904","name":"安居区","cityCode":"5109","provinceCode":"51"},{"code":"510921","name":"蓬溪县","cityCode":"5109","provinceCode":"51"},{"code":"510922","name":"射洪县","cityCode":"5109","provinceCode":"51"},{"code":"510923","name":"大英县","cityCode":"5109","provinceCode":"51"},{"code":"511002","name":"市中区","cityCode":"5110","provinceCode":"51"},{"code":"511011","name":"东兴区","cityCode":"5110","provinceCode":"51"},{"code":"511024","name":"威远县","cityCode":"5110","provinceCode":"51"},{"code":"511025","name":"资中县","cityCode":"5110","provinceCode":"51"},{"code":"511028","name":"隆昌县","cityCode":"5110","provinceCode":"51"},{"code":"511102","name":"市中区","cityCode":"5111","provinceCode":"51"},{"code":"511111","name":"沙湾区","cityCode":"5111","provinceCode":"51"},{"code":"511112","name":"五通桥区","cityCode":"5111","provinceCode":"51"},{"code":"511113","name":"金口河区","cityCode":"5111","provinceCode":"51"},{"code":"511123","name":"犍为县","cityCode":"5111","provinceCode":"51"},{"code":"511124","name":"井研县","cityCode":"5111","provinceCode":"51"},{"code":"511126","name":"夹江县","cityCode":"5111","provinceCode":"51"},{"code":"511129","name":"沐川县","cityCode":"5111","provinceCode":"51"},{"code":"511132","name":"峨边彝族自治县","cityCode":"5111","provinceCode":"51"},{"code":"511133","name":"马边彝族自治县","cityCode":"5111","provinceCode":"51"},{"code":"511181","name":"峨眉山市","cityCode":"5111","provinceCode":"51"},{"code":"511302","name":"顺庆区","cityCode":"5113","provinceCode":"51"},{"code":"511303","name":"高坪区","cityCode":"5113","provinceCode":"51"},{"code":"511304","name":"嘉陵区","cityCode":"5113","provinceCode":"51"},{"code":"511321","name":"南部县","cityCode":"5113","provinceCode":"51"},{"code":"511322","name":"营山县","cityCode":"5113","provinceCode":"51"},{"code":"511323","name":"蓬安县","cityCode":"5113","provinceCode":"51"},{"code":"511324","name":"仪陇县","cityCode":"5113","provinceCode":"51"},{"code":"511325","name":"西充县","cityCode":"5113","provinceCode":"51"},{"code":"511381","name":"阆中市","cityCode":"5113","provinceCode":"51"},{"code":"511402","name":"东坡区","cityCode":"5114","provinceCode":"51"},{"code":"511403","name":"彭山区","cityCode":"5114","provinceCode":"51"},{"code":"511421","name":"仁寿县","cityCode":"5114","provinceCode":"51"},{"code":"511423","name":"洪雅县","cityCode":"5114","provinceCode":"51"},{"code":"511424","name":"丹棱县","cityCode":"5114","provinceCode":"51"},{"code":"511425","name":"青神县","cityCode":"5114","provinceCode":"51"},{"code":"511502","name":"翠屏区","cityCode":"5115","provinceCode":"51"},{"code":"511503","name":"南溪区","cityCode":"5115","provinceCode":"51"},{"code":"511521","name":"宜宾县","cityCode":"5115","provinceCode":"51"},{"code":"511523","name":"江安县","cityCode":"5115","provinceCode":"51"},{"code":"511524","name":"长宁县","cityCode":"5115","provinceCode":"51"},{"code":"511525","name":"高县","cityCode":"5115","provinceCode":"51"},{"code":"511526","name":"珙县","cityCode":"5115","provinceCode":"51"},{"code":"511527","name":"筠连县","cityCode":"5115","provinceCode":"51"},{"code":"511528","name":"兴文县","cityCode":"5115","provinceCode":"51"},{"code":"511529","name":"屏山县","cityCode":"5115","provinceCode":"51"},{"code":"511602","name":"广安区","cityCode":"5116","provinceCode":"51"},{"code":"511603","name":"前锋区","cityCode":"5116","provinceCode":"51"},{"code":"511621","name":"岳池县","cityCode":"5116","provinceCode":"51"},{"code":"511622","name":"武胜县","cityCode":"5116","provinceCode":"51"},{"code":"511623","name":"邻水县","cityCode":"5116","provinceCode":"51"},{"code":"511681","name":"华蓥市","cityCode":"5116","provinceCode":"51"},{"code":"511702","name":"通川区","cityCode":"5117","provinceCode":"51"},{"code":"511703","name":"达川区","cityCode":"5117","provinceCode":"51"},{"code":"511722","name":"宣汉县","cityCode":"5117","provinceCode":"51"},{"code":"511723","name":"开江县","cityCode":"5117","provinceCode":"51"},{"code":"511724","name":"大竹县","cityCode":"5117","provinceCode":"51"},{"code":"511725","name":"渠县","cityCode":"5117","provinceCode":"51"},{"code":"511781","name":"万源市","cityCode":"5117","provinceCode":"51"},{"code":"511802","name":"雨城区","cityCode":"5118","provinceCode":"51"},{"code":"511803","name":"名山区","cityCode":"5118","provinceCode":"51"},{"code":"511822","name":"荥经县","cityCode":"5118","provinceCode":"51"},{"code":"511823","name":"汉源县","cityCode":"5118","provinceCode":"51"},{"code":"511824","name":"石棉县","cityCode":"5118","provinceCode":"51"},{"code":"511825","name":"天全县","cityCode":"5118","provinceCode":"51"},{"code":"511826","name":"芦山县","cityCode":"5118","provinceCode":"51"},{"code":"511827","name":"宝兴县","cityCode":"5118","provinceCode":"51"},{"code":"511902","name":"巴州区","cityCode":"5119","provinceCode":"51"},{"code":"511903","name":"恩阳区","cityCode":"5119","provinceCode":"51"},{"code":"511921","name":"通江县","cityCode":"5119","provinceCode":"51"},{"code":"511922","name":"南江县","cityCode":"5119","provinceCode":"51"},{"code":"511923","name":"平昌县","cityCode":"5119","provinceCode":"51"},{"code":"512002","name":"雁江区","cityCode":"5120","provinceCode":"51"},{"code":"512021","name":"安岳县","cityCode":"5120","provinceCode":"51"},{"code":"512022","name":"乐至县","cityCode":"5120","provinceCode":"51"},{"code":"513201","name":"马尔康市","cityCode":"5132","provinceCode":"51"},{"code":"513221","name":"汶川县","cityCode":"5132","provinceCode":"51"},{"code":"513222","name":"理县","cityCode":"5132","provinceCode":"51"},{"code":"513223","name":"茂县","cityCode":"5132","provinceCode":"51"},{"code":"513224","name":"松潘县","cityCode":"5132","provinceCode":"51"},{"code":"513225","name":"九寨沟县","cityCode":"5132","provinceCode":"51"},{"code":"513226","name":"金川县","cityCode":"5132","provinceCode":"51"},{"code":"513227","name":"小金县","cityCode":"5132","provinceCode":"51"},{"code":"513228","name":"黑水县","cityCode":"5132","provinceCode":"51"},{"code":"513230","name":"壤塘县","cityCode":"5132","provinceCode":"51"},{"code":"513231","name":"阿坝县","cityCode":"5132","provinceCode":"51"},{"code":"513232","name":"若尔盖县","cityCode":"5132","provinceCode":"51"},{"code":"513233","name":"红原县","cityCode":"5132","provinceCode":"51"},{"code":"513301","name":"康定市","cityCode":"5133","provinceCode":"51"},{"code":"513322","name":"泸定县","cityCode":"5133","provinceCode":"51"},{"code":"513323","name":"丹巴县","cityCode":"5133","provinceCode":"51"},{"code":"513324","name":"九龙县","cityCode":"5133","provinceCode":"51"},{"code":"513325","name":"雅江县","cityCode":"5133","provinceCode":"51"},{"code":"513326","name":"道孚县","cityCode":"5133","provinceCode":"51"},{"code":"513327","name":"炉霍县","cityCode":"5133","provinceCode":"51"},{"code":"513328","name":"甘孜县","cityCode":"5133","provinceCode":"51"},{"code":"513329","name":"新龙县","cityCode":"5133","provinceCode":"51"},{"code":"513330","name":"德格县","cityCode":"5133","provinceCode":"51"},{"code":"513331","name":"白玉县","cityCode":"5133","provinceCode":"51"},{"code":"513332","name":"石渠县","cityCode":"5133","provinceCode":"51"},{"code":"513333","name":"色达县","cityCode":"5133","provinceCode":"51"},{"code":"513334","name":"理塘县","cityCode":"5133","provinceCode":"51"},{"code":"513335","name":"巴塘县","cityCode":"5133","provinceCode":"51"},{"code":"513336","name":"乡城县","cityCode":"5133","provinceCode":"51"},{"code":"513337","name":"稻城县","cityCode":"5133","provinceCode":"51"},{"code":"513338","name":"得荣县","cityCode":"5133","provinceCode":"51"},{"code":"513401","name":"西昌市","cityCode":"5134","provinceCode":"51"},{"code":"513422","name":"木里藏族自治县","cityCode":"5134","provinceCode":"51"},{"code":"513423","name":"盐源县","cityCode":"5134","provinceCode":"51"},{"code":"513424","name":"德昌县","cityCode":"5134","provinceCode":"51"},{"code":"513425","name":"会理县","cityCode":"5134","provinceCode":"51"},{"code":"513426","name":"会东县","cityCode":"5134","provinceCode":"51"},{"code":"513427","name":"宁南县","cityCode":"5134","provinceCode":"51"},{"code":"513428","name":"普格县","cityCode":"5134","provinceCode":"51"},{"code":"513429","name":"布拖县","cityCode":"5134","provinceCode":"51"},{"code":"513430","name":"金阳县","cityCode":"5134","provinceCode":"51"},{"code":"513431","name":"昭觉县","cityCode":"5134","provinceCode":"51"},{"code":"513432","name":"喜德县","cityCode":"5134","provinceCode":"51"},{"code":"513433","name":"冕宁县","cityCode":"5134","provinceCode":"51"},{"code":"513434","name":"越西县","cityCode":"5134","provinceCode":"51"},{"code":"513435","name":"甘洛县","cityCode":"5134","provinceCode":"51"},{"code":"513436","name":"美姑县","cityCode":"5134","provinceCode":"51"},{"code":"513437","name":"雷波县","cityCode":"5134","provinceCode":"51"},{"code":"520102","name":"南明区","cityCode":"5201","provinceCode":"52"},{"code":"520103","name":"云岩区","cityCode":"5201","provinceCode":"52"},{"code":"520111","name":"花溪区","cityCode":"5201","provinceCode":"52"},{"code":"520112","name":"乌当区","cityCode":"5201","provinceCode":"52"},{"code":"520113","name":"白云区","cityCode":"5201","provinceCode":"52"},{"code":"520115","name":"观山湖区","cityCode":"5201","provinceCode":"52"},{"code":"520121","name":"开阳县","cityCode":"5201","provinceCode":"52"},{"code":"520122","name":"息烽县","cityCode":"5201","provinceCode":"52"},{"code":"520123","name":"修文县","cityCode":"5201","provinceCode":"52"},{"code":"520181","name":"清镇市","cityCode":"5201","provinceCode":"52"},{"code":"520201","name":"钟山区","cityCode":"5202","provinceCode":"52"},{"code":"520203","name":"六枝特区","cityCode":"5202","provinceCode":"52"},{"code":"520221","name":"水城县","cityCode":"5202","provinceCode":"52"},{"code":"520222","name":"盘县","cityCode":"5202","provinceCode":"52"},{"code":"520302","name":"红花岗区","cityCode":"5203","provinceCode":"52"},{"code":"520303","name":"汇川区","cityCode":"5203","provinceCode":"52"},{"code":"520304","name":"播州区","cityCode":"5203","provinceCode":"52"},{"code":"520322","name":"桐梓县","cityCode":"5203","provinceCode":"52"},{"code":"520323","name":"绥阳县","cityCode":"5203","provinceCode":"52"},{"code":"520324","name":"正安县","cityCode":"5203","provinceCode":"52"},{"code":"520325","name":"道真仡佬族苗族自治县","cityCode":"5203","provinceCode":"52"},{"code":"520326","name":"务川仡佬族苗族自治县","cityCode":"5203","provinceCode":"52"},{"code":"520327","name":"凤冈县","cityCode":"5203","provinceCode":"52"},{"code":"520328","name":"湄潭县","cityCode":"5203","provinceCode":"52"},{"code":"520329","name":"余庆县","cityCode":"5203","provinceCode":"52"},{"code":"520330","name":"习水县","cityCode":"5203","provinceCode":"52"},{"code":"520381","name":"赤水市","cityCode":"5203","provinceCode":"52"},{"code":"520382","name":"仁怀市","cityCode":"5203","provinceCode":"52"},{"code":"520402","name":"西秀区","cityCode":"5204","provinceCode":"52"},{"code":"520403","name":"平坝区","cityCode":"5204","provinceCode":"52"},{"code":"520422","name":"普定县","cityCode":"5204","provinceCode":"52"},{"code":"520423","name":"镇宁布依族苗族自治县","cityCode":"5204","provinceCode":"52"},{"code":"520424","name":"关岭布依族苗族自治县","cityCode":"5204","provinceCode":"52"},{"code":"520425","name":"紫云苗族布依族自治县","cityCode":"5204","provinceCode":"52"},{"code":"520502","name":"七星关区","cityCode":"5205","provinceCode":"52"},{"code":"520521","name":"大方县","cityCode":"5205","provinceCode":"52"},{"code":"520522","name":"黔西县","cityCode":"5205","provinceCode":"52"},{"code":"520523","name":"金沙县","cityCode":"5205","provinceCode":"52"},{"code":"520524","name":"织金县","cityCode":"5205","provinceCode":"52"},{"code":"520525","name":"纳雍县","cityCode":"5205","provinceCode":"52"},{"code":"520526","name":"威宁彝族回族苗族自治县","cityCode":"5205","provinceCode":"52"},{"code":"520527","name":"赫章县","cityCode":"5205","provinceCode":"52"},{"code":"520602","name":"碧江区","cityCode":"5206","provinceCode":"52"},{"code":"520603","name":"万山区","cityCode":"5206","provinceCode":"52"},{"code":"520621","name":"江口县","cityCode":"5206","provinceCode":"52"},{"code":"520622","name":"玉屏侗族自治县","cityCode":"5206","provinceCode":"52"},{"code":"520623","name":"石阡县","cityCode":"5206","provinceCode":"52"},{"code":"520624","name":"思南县","cityCode":"5206","provinceCode":"52"},{"code":"520625","name":"印江土家族苗族自治县","cityCode":"5206","provinceCode":"52"},{"code":"520626","name":"德江县","cityCode":"5206","provinceCode":"52"},{"code":"520627","name":"沿河土家族自治县","cityCode":"5206","provinceCode":"52"},{"code":"520628","name":"松桃苗族自治县","cityCode":"5206","provinceCode":"52"},{"code":"522301","name":"兴义市","cityCode":"5223","provinceCode":"52"},{"code":"522322","name":"兴仁县","cityCode":"5223","provinceCode":"52"},{"code":"522323","name":"普安县","cityCode":"5223","provinceCode":"52"},{"code":"522324","name":"晴隆县","cityCode":"5223","provinceCode":"52"},{"code":"522325","name":"贞丰县","cityCode":"5223","provinceCode":"52"},{"code":"522326","name":"望谟县","cityCode":"5223","provinceCode":"52"},{"code":"522327","name":"册亨县","cityCode":"5223","provinceCode":"52"},{"code":"522328","name":"安龙县","cityCode":"5223","provinceCode":"52"},{"code":"522601","name":"凯里市","cityCode":"5226","provinceCode":"52"},{"code":"522622","name":"黄平县","cityCode":"5226","provinceCode":"52"},{"code":"522623","name":"施秉县","cityCode":"5226","provinceCode":"52"},{"code":"522624","name":"三穗县","cityCode":"5226","provinceCode":"52"},{"code":"522625","name":"镇远县","cityCode":"5226","provinceCode":"52"},{"code":"522626","name":"岑巩县","cityCode":"5226","provinceCode":"52"},{"code":"522627","name":"天柱县","cityCode":"5226","provinceCode":"52"},{"code":"522628","name":"锦屏县","cityCode":"5226","provinceCode":"52"},{"code":"522629","name":"剑河县","cityCode":"5226","provinceCode":"52"},{"code":"522630","name":"台江县","cityCode":"5226","provinceCode":"52"},{"code":"522631","name":"黎平县","cityCode":"5226","provinceCode":"52"},{"code":"522632","name":"榕江县","cityCode":"5226","provinceCode":"52"},{"code":"522633","name":"从江县","cityCode":"5226","provinceCode":"52"},{"code":"522634","name":"雷山县","cityCode":"5226","provinceCode":"52"},{"code":"522635","name":"麻江县","cityCode":"5226","provinceCode":"52"},{"code":"522636","name":"丹寨县","cityCode":"5226","provinceCode":"52"},{"code":"522701","name":"都匀市","cityCode":"5227","provinceCode":"52"},{"code":"522702","name":"福泉市","cityCode":"5227","provinceCode":"52"},{"code":"522722","name":"荔波县","cityCode":"5227","provinceCode":"52"},{"code":"522723","name":"贵定县","cityCode":"5227","provinceCode":"52"},{"code":"522725","name":"瓮安县","cityCode":"5227","provinceCode":"52"},{"code":"522726","name":"独山县","cityCode":"5227","provinceCode":"52"},{"code":"522727","name":"平塘县","cityCode":"5227","provinceCode":"52"},{"code":"522728","name":"罗甸县","cityCode":"5227","provinceCode":"52"},{"code":"522729","name":"长顺县","cityCode":"5227","provinceCode":"52"},{"code":"522730","name":"龙里县","cityCode":"5227","provinceCode":"52"},{"code":"522731","name":"惠水县","cityCode":"5227","provinceCode":"52"},{"code":"522732","name":"三都水族自治县","cityCode":"5227","provinceCode":"52"},{"code":"530102","name":"五华区","cityCode":"5301","provinceCode":"53"},{"code":"530103","name":"盘龙区","cityCode":"5301","provinceCode":"53"},{"code":"530111","name":"官渡区","cityCode":"5301","provinceCode":"53"},{"code":"530112","name":"西山区","cityCode":"5301","provinceCode":"53"},{"code":"530113","name":"东川区","cityCode":"5301","provinceCode":"53"},{"code":"530114","name":"呈贡区","cityCode":"5301","provinceCode":"53"},{"code":"530122","name":"晋宁县","cityCode":"5301","provinceCode":"53"},{"code":"530124","name":"富民县","cityCode":"5301","provinceCode":"53"},{"code":"530125","name":"宜良县","cityCode":"5301","provinceCode":"53"},{"code":"530126","name":"石林彝族自治县","cityCode":"5301","provinceCode":"53"},{"code":"530127","name":"嵩明县","cityCode":"5301","provinceCode":"53"},{"code":"530128","name":"禄劝彝族苗族自治县","cityCode":"5301","provinceCode":"53"},{"code":"530129","name":"寻甸回族彝族自治县","cityCode":"5301","provinceCode":"53"},{"code":"530181","name":"安宁市","cityCode":"5301","provinceCode":"53"},{"code":"530302","name":"麒麟区","cityCode":"5303","provinceCode":"53"},{"code":"530303","name":"沾益区","cityCode":"5303","provinceCode":"53"},{"code":"530321","name":"马龙县","cityCode":"5303","provinceCode":"53"},{"code":"530322","name":"陆良县","cityCode":"5303","provinceCode":"53"},{"code":"530323","name":"师宗县","cityCode":"5303","provinceCode":"53"},{"code":"530324","name":"罗平县","cityCode":"5303","provinceCode":"53"},{"code":"530325","name":"富源县","cityCode":"5303","provinceCode":"53"},{"code":"530326","name":"会泽县","cityCode":"5303","provinceCode":"53"},{"code":"530381","name":"宣威市","cityCode":"5303","provinceCode":"53"},{"code":"530402","name":"红塔区","cityCode":"5304","provinceCode":"53"},{"code":"530403","name":"江川区","cityCode":"5304","provinceCode":"53"},{"code":"530422","name":"澄江县","cityCode":"5304","provinceCode":"53"},{"code":"530423","name":"通海县","cityCode":"5304","provinceCode":"53"},{"code":"530424","name":"华宁县","cityCode":"5304","provinceCode":"53"},{"code":"530425","name":"易门县","cityCode":"5304","provinceCode":"53"},{"code":"530426","name":"峨山彝族自治县","cityCode":"5304","provinceCode":"53"},{"code":"530427","name":"新平彝族傣族自治县","cityCode":"5304","provinceCode":"53"},{"code":"530428","name":"元江哈尼族彝族傣族自治县","cityCode":"5304","provinceCode":"53"},{"code":"530502","name":"隆阳区","cityCode":"5305","provinceCode":"53"},{"code":"530521","name":"施甸县","cityCode":"5305","provinceCode":"53"},{"code":"530523","name":"龙陵县","cityCode":"5305","provinceCode":"53"},{"code":"530524","name":"昌宁县","cityCode":"5305","provinceCode":"53"},{"code":"530581","name":"腾冲市","cityCode":"5305","provinceCode":"53"},{"code":"530602","name":"昭阳区","cityCode":"5306","provinceCode":"53"},{"code":"530621","name":"鲁甸县","cityCode":"5306","provinceCode":"53"},{"code":"530622","name":"巧家县","cityCode":"5306","provinceCode":"53"},{"code":"530623","name":"盐津县","cityCode":"5306","provinceCode":"53"},{"code":"530624","name":"大关县","cityCode":"5306","provinceCode":"53"},{"code":"530625","name":"永善县","cityCode":"5306","provinceCode":"53"},{"code":"530626","name":"绥江县","cityCode":"5306","provinceCode":"53"},{"code":"530627","name":"镇雄县","cityCode":"5306","provinceCode":"53"},{"code":"530628","name":"彝良县","cityCode":"5306","provinceCode":"53"},{"code":"530629","name":"威信县","cityCode":"5306","provinceCode":"53"},{"code":"530630","name":"水富县","cityCode":"5306","provinceCode":"53"},{"code":"530702","name":"古城区","cityCode":"5307","provinceCode":"53"},{"code":"530721","name":"玉龙纳西族自治县","cityCode":"5307","provinceCode":"53"},{"code":"530722","name":"永胜县","cityCode":"5307","provinceCode":"53"},{"code":"530723","name":"华坪县","cityCode":"5307","provinceCode":"53"},{"code":"530724","name":"宁蒗彝族自治县","cityCode":"5307","provinceCode":"53"},{"code":"530802","name":"思茅区","cityCode":"5308","provinceCode":"53"},{"code":"530821","name":"宁洱哈尼族彝族自治县","cityCode":"5308","provinceCode":"53"},{"code":"530822","name":"墨江哈尼族自治县","cityCode":"5308","provinceCode":"53"},{"code":"530823","name":"景东彝族自治县","cityCode":"5308","provinceCode":"53"},{"code":"530824","name":"景谷傣族彝族自治县","cityCode":"5308","provinceCode":"53"},{"code":"530825","name":"镇沅彝族哈尼族拉祜族自治县","cityCode":"5308","provinceCode":"53"},{"code":"530826","name":"江城哈尼族彝族自治县","cityCode":"5308","provinceCode":"53"},{"code":"530827","name":"孟连傣族拉祜族佤族自治县","cityCode":"5308","provinceCode":"53"},{"code":"530828","name":"澜沧拉祜族自治县","cityCode":"5308","provinceCode":"53"},{"code":"530829","name":"西盟佤族自治县","cityCode":"5308","provinceCode":"53"},{"code":"530902","name":"临翔区","cityCode":"5309","provinceCode":"53"},{"code":"530921","name":"凤庆县","cityCode":"5309","provinceCode":"53"},{"code":"530922","name":"云县","cityCode":"5309","provinceCode":"53"},{"code":"530923","name":"永德县","cityCode":"5309","provinceCode":"53"},{"code":"530924","name":"镇康县","cityCode":"5309","provinceCode":"53"},{"code":"530925","name":"双江拉祜族佤族布朗族傣族自治县","cityCode":"5309","provinceCode":"53"},{"code":"530926","name":"耿马傣族佤族自治县","cityCode":"5309","provinceCode":"53"},{"code":"530927","name":"沧源佤族自治县","cityCode":"5309","provinceCode":"53"},{"code":"532301","name":"楚雄市","cityCode":"5323","provinceCode":"53"},{"code":"532322","name":"双柏县","cityCode":"5323","provinceCode":"53"},{"code":"532323","name":"牟定县","cityCode":"5323","provinceCode":"53"},{"code":"532324","name":"南华县","cityCode":"5323","provinceCode":"53"},{"code":"532325","name":"姚安县","cityCode":"5323","provinceCode":"53"},{"code":"532326","name":"大姚县","cityCode":"5323","provinceCode":"53"},{"code":"532327","name":"永仁县","cityCode":"5323","provinceCode":"53"},{"code":"532328","name":"元谋县","cityCode":"5323","provinceCode":"53"},{"code":"532329","name":"武定县","cityCode":"5323","provinceCode":"53"},{"code":"532331","name":"禄丰县","cityCode":"5323","provinceCode":"53"},{"code":"532501","name":"个旧市","cityCode":"5325","provinceCode":"53"},{"code":"532502","name":"开远市","cityCode":"5325","provinceCode":"53"},{"code":"532503","name":"蒙自市","cityCode":"5325","provinceCode":"53"},{"code":"532504","name":"弥勒市","cityCode":"5325","provinceCode":"53"},{"code":"532523","name":"屏边苗族自治县","cityCode":"5325","provinceCode":"53"},{"code":"532524","name":"建水县","cityCode":"5325","provinceCode":"53"},{"code":"532525","name":"石屏县","cityCode":"5325","provinceCode":"53"},{"code":"532527","name":"泸西县","cityCode":"5325","provinceCode":"53"},{"code":"532528","name":"元阳县","cityCode":"5325","provinceCode":"53"},{"code":"532529","name":"红河县","cityCode":"5325","provinceCode":"53"},{"code":"532530","name":"金平苗族瑶族傣族自治县","cityCode":"5325","provinceCode":"53"},{"code":"532531","name":"绿春县","cityCode":"5325","provinceCode":"53"},{"code":"532532","name":"河口瑶族自治县","cityCode":"5325","provinceCode":"53"},{"code":"532601","name":"文山市","cityCode":"5326","provinceCode":"53"},{"code":"532622","name":"砚山县","cityCode":"5326","provinceCode":"53"},{"code":"532623","name":"西畴县","cityCode":"5326","provinceCode":"53"},{"code":"532624","name":"麻栗坡县","cityCode":"5326","provinceCode":"53"},{"code":"532625","name":"马关县","cityCode":"5326","provinceCode":"53"},{"code":"532626","name":"丘北县","cityCode":"5326","provinceCode":"53"},{"code":"532627","name":"广南县","cityCode":"5326","provinceCode":"53"},{"code":"532628","name":"富宁县","cityCode":"5326","provinceCode":"53"},{"code":"532801","name":"景洪市","cityCode":"5328","provinceCode":"53"},{"code":"532822","name":"勐海县","cityCode":"5328","provinceCode":"53"},{"code":"532823","name":"勐腊县","cityCode":"5328","provinceCode":"53"},{"code":"532901","name":"大理市","cityCode":"5329","provinceCode":"53"},{"code":"532922","name":"漾濞彝族自治县","cityCode":"5329","provinceCode":"53"},{"code":"532923","name":"祥云县","cityCode":"5329","provinceCode":"53"},{"code":"532924","name":"宾川县","cityCode":"5329","provinceCode":"53"},{"code":"532925","name":"弥渡县","cityCode":"5329","provinceCode":"53"},{"code":"532926","name":"南涧彝族自治县","cityCode":"5329","provinceCode":"53"},{"code":"532927","name":"巍山彝族回族自治县","cityCode":"5329","provinceCode":"53"},{"code":"532928","name":"永平县","cityCode":"5329","provinceCode":"53"},{"code":"532929","name":"云龙县","cityCode":"5329","provinceCode":"53"},{"code":"532930","name":"洱源县","cityCode":"5329","provinceCode":"53"},{"code":"532931","name":"剑川县","cityCode":"5329","provinceCode":"53"},{"code":"532932","name":"鹤庆县","cityCode":"5329","provinceCode":"53"},{"code":"533102","name":"瑞丽市","cityCode":"5331","provinceCode":"53"},{"code":"533103","name":"芒市","cityCode":"5331","provinceCode":"53"},{"code":"533122","name":"梁河县","cityCode":"5331","provinceCode":"53"},{"code":"533123","name":"盈江县","cityCode":"5331","provinceCode":"53"},{"code":"533124","name":"陇川县","cityCode":"5331","provinceCode":"53"},{"code":"533301","name":"泸水市","cityCode":"5333","provinceCode":"53"},{"code":"533323","name":"福贡县","cityCode":"5333","provinceCode":"53"},{"code":"533324","name":"贡山独龙族怒族自治县","cityCode":"5333","provinceCode":"53"},{"code":"533325","name":"兰坪白族普米族自治县","cityCode":"5333","provinceCode":"53"},{"code":"533401","name":"香格里拉市","cityCode":"5334","provinceCode":"53"},{"code":"533422","name":"德钦县","cityCode":"5334","provinceCode":"53"},{"code":"533423","name":"维西傈僳族自治县","cityCode":"5334","provinceCode":"53"},{"code":"540102","name":"城关区","cityCode":"5401","provinceCode":"54"},{"code":"540103","name":"堆龙德庆区","cityCode":"5401","provinceCode":"54"},{"code":"540121","name":"林周县","cityCode":"5401","provinceCode":"54"},{"code":"540122","name":"当雄县","cityCode":"5401","provinceCode":"54"},{"code":"540123","name":"尼木县","cityCode":"5401","provinceCode":"54"},{"code":"540124","name":"曲水县","cityCode":"5401","provinceCode":"54"},{"code":"540126","name":"达孜县","cityCode":"5401","provinceCode":"54"},{"code":"540127","name":"墨竹工卡县","cityCode":"5401","provinceCode":"54"},{"code":"540202","name":"桑珠孜区","cityCode":"5402","provinceCode":"54"},{"code":"540221","name":"南木林县","cityCode":"5402","provinceCode":"54"},{"code":"540222","name":"江孜县","cityCode":"5402","provinceCode":"54"},{"code":"540223","name":"定日县","cityCode":"5402","provinceCode":"54"},{"code":"540224","name":"萨迦县","cityCode":"5402","provinceCode":"54"},{"code":"540225","name":"拉孜县","cityCode":"5402","provinceCode":"54"},{"code":"540226","name":"昂仁县","cityCode":"5402","provinceCode":"54"},{"code":"540227","name":"谢通门县","cityCode":"5402","provinceCode":"54"},{"code":"540228","name":"白朗县","cityCode":"5402","provinceCode":"54"},{"code":"540229","name":"仁布县","cityCode":"5402","provinceCode":"54"},{"code":"540230","name":"康马县","cityCode":"5402","provinceCode":"54"},{"code":"540231","name":"定结县","cityCode":"5402","provinceCode":"54"},{"code":"540232","name":"仲巴县","cityCode":"5402","provinceCode":"54"},{"code":"540233","name":"亚东县","cityCode":"5402","provinceCode":"54"},{"code":"540234","name":"吉隆县","cityCode":"5402","provinceCode":"54"},{"code":"540235","name":"聂拉木县","cityCode":"5402","provinceCode":"54"},{"code":"540236","name":"萨嘎县","cityCode":"5402","provinceCode":"54"},{"code":"540237","name":"岗巴县","cityCode":"5402","provinceCode":"54"},{"code":"540302","name":"卡若区","cityCode":"5403","provinceCode":"54"},{"code":"540321","name":"江达县","cityCode":"5403","provinceCode":"54"},{"code":"540322","name":"贡觉县","cityCode":"5403","provinceCode":"54"},{"code":"540323","name":"类乌齐县","cityCode":"5403","provinceCode":"54"},{"code":"540324","name":"丁青县","cityCode":"5403","provinceCode":"54"},{"code":"540325","name":"察雅县","cityCode":"5403","provinceCode":"54"},{"code":"540326","name":"八宿县","cityCode":"5403","provinceCode":"54"},{"code":"540327","name":"左贡县","cityCode":"5403","provinceCode":"54"},{"code":"540328","name":"芒康县","cityCode":"5403","provinceCode":"54"},{"code":"540329","name":"洛隆县","cityCode":"5403","provinceCode":"54"},{"code":"540330","name":"边坝县","cityCode":"5403","provinceCode":"54"},{"code":"540402","name":"巴宜区","cityCode":"5404","provinceCode":"54"},{"code":"540421","name":"工布江达县","cityCode":"5404","provinceCode":"54"},{"code":"540422","name":"米林县","cityCode":"5404","provinceCode":"54"},{"code":"540423","name":"墨脱县","cityCode":"5404","provinceCode":"54"},{"code":"540424","name":"波密县","cityCode":"5404","provinceCode":"54"},{"code":"540425","name":"察隅县","cityCode":"5404","provinceCode":"54"},{"code":"540426","name":"朗县","cityCode":"5404","provinceCode":"54"},{"code":"540502","name":"乃东区","cityCode":"5405","provinceCode":"54"},{"code":"540521","name":"扎囊县","cityCode":"5405","provinceCode":"54"},{"code":"540522","name":"贡嘎县","cityCode":"5405","provinceCode":"54"},{"code":"540523","name":"桑日县","cityCode":"5405","provinceCode":"54"},{"code":"540524","name":"琼结县","cityCode":"5405","provinceCode":"54"},{"code":"540525","name":"曲松县","cityCode":"5405","provinceCode":"54"},{"code":"540526","name":"措美县","cityCode":"5405","provinceCode":"54"},{"code":"540527","name":"洛扎县","cityCode":"5405","provinceCode":"54"},{"code":"540528","name":"加查县","cityCode":"5405","provinceCode":"54"},{"code":"540529","name":"隆子县","cityCode":"5405","provinceCode":"54"},{"code":"540530","name":"错那县","cityCode":"5405","provinceCode":"54"},{"code":"540531","name":"浪卡子县","cityCode":"5405","provinceCode":"54"},{"code":"542421","name":"那曲县","cityCode":"5424","provinceCode":"54"},{"code":"542422","name":"嘉黎县","cityCode":"5424","provinceCode":"54"},{"code":"542423","name":"比如县","cityCode":"5424","provinceCode":"54"},{"code":"542424","name":"聂荣县","cityCode":"5424","provinceCode":"54"},{"code":"542425","name":"安多县","cityCode":"5424","provinceCode":"54"},{"code":"542426","name":"申扎县","cityCode":"5424","provinceCode":"54"},{"code":"542427","name":"索县","cityCode":"5424","provinceCode":"54"},{"code":"542428","name":"班戈县","cityCode":"5424","provinceCode":"54"},{"code":"542429","name":"巴青县","cityCode":"5424","provinceCode":"54"},{"code":"542430","name":"尼玛县","cityCode":"5424","provinceCode":"54"},{"code":"542431","name":"双湖县","cityCode":"5424","provinceCode":"54"},{"code":"542521","name":"普兰县","cityCode":"5425","provinceCode":"54"},{"code":"542522","name":"札达县","cityCode":"5425","provinceCode":"54"},{"code":"542523","name":"噶尔县","cityCode":"5425","provinceCode":"54"},{"code":"542524","name":"日土县","cityCode":"5425","provinceCode":"54"},{"code":"542525","name":"革吉县","cityCode":"5425","provinceCode":"54"},{"code":"542526","name":"改则县","cityCode":"5425","provinceCode":"54"},{"code":"542527","name":"措勤县","cityCode":"5425","provinceCode":"54"},{"code":"610102","name":"新城区","cityCode":"6101","provinceCode":"61"},{"code":"610103","name":"碑林区","cityCode":"6101","provinceCode":"61"},{"code":"610104","name":"莲湖区","cityCode":"6101","provinceCode":"61"},{"code":"610111","name":"灞桥区","cityCode":"6101","provinceCode":"61"},{"code":"610112","name":"未央区","cityCode":"6101","provinceCode":"61"},{"code":"610113","name":"雁塔区","cityCode":"6101","provinceCode":"61"},{"code":"610114","name":"阎良区","cityCode":"6101","provinceCode":"61"},{"code":"610115","name":"临潼区","cityCode":"6101","provinceCode":"61"},{"code":"610116","name":"长安区","cityCode":"6101","provinceCode":"61"},{"code":"610117","name":"高陵区","cityCode":"6101","provinceCode":"61"},{"code":"610122","name":"蓝田县","cityCode":"6101","provinceCode":"61"},{"code":"610124","name":"周至县","cityCode":"6101","provinceCode":"61"},{"code":"610125","name":"户县","cityCode":"6101","provinceCode":"61"},{"code":"610202","name":"王益区","cityCode":"6102","provinceCode":"61"},{"code":"610203","name":"印台区","cityCode":"6102","provinceCode":"61"},{"code":"610204","name":"耀州区","cityCode":"6102","provinceCode":"61"},{"code":"610222","name":"宜君县","cityCode":"6102","provinceCode":"61"},{"code":"610302","name":"渭滨区","cityCode":"6103","provinceCode":"61"},{"code":"610303","name":"金台区","cityCode":"6103","provinceCode":"61"},{"code":"610304","name":"陈仓区","cityCode":"6103","provinceCode":"61"},{"code":"610322","name":"凤翔县","cityCode":"6103","provinceCode":"61"},{"code":"610323","name":"岐山县","cityCode":"6103","provinceCode":"61"},{"code":"610324","name":"扶风县","cityCode":"6103","provinceCode":"61"},{"code":"610326","name":"眉县","cityCode":"6103","provinceCode":"61"},{"code":"610327","name":"陇县","cityCode":"6103","provinceCode":"61"},{"code":"610328","name":"千阳县","cityCode":"6103","provinceCode":"61"},{"code":"610329","name":"麟游县","cityCode":"6103","provinceCode":"61"},{"code":"610330","name":"凤县","cityCode":"6103","provinceCode":"61"},{"code":"610331","name":"太白县","cityCode":"6103","provinceCode":"61"},{"code":"610402","name":"秦都区","cityCode":"6104","provinceCode":"61"},{"code":"610403","name":"杨陵区","cityCode":"6104","provinceCode":"61"},{"code":"610404","name":"渭城区","cityCode":"6104","provinceCode":"61"},{"code":"610422","name":"三原县","cityCode":"6104","provinceCode":"61"},{"code":"610423","name":"泾阳县","cityCode":"6104","provinceCode":"61"},{"code":"610424","name":"乾县","cityCode":"6104","provinceCode":"61"},{"code":"610425","name":"礼泉县","cityCode":"6104","provinceCode":"61"},{"code":"610426","name":"永寿县","cityCode":"6104","provinceCode":"61"},{"code":"610427","name":"彬县","cityCode":"6104","provinceCode":"61"},{"code":"610428","name":"长武县","cityCode":"6104","provinceCode":"61"},{"code":"610429","name":"旬邑县","cityCode":"6104","provinceCode":"61"},{"code":"610430","name":"淳化县","cityCode":"6104","provinceCode":"61"},{"code":"610431","name":"武功县","cityCode":"6104","provinceCode":"61"},{"code":"610481","name":"兴平市","cityCode":"6104","provinceCode":"61"},{"code":"610502","name":"临渭区","cityCode":"6105","provinceCode":"61"},{"code":"610503","name":"华州区","cityCode":"6105","provinceCode":"61"},{"code":"610522","name":"潼关县","cityCode":"6105","provinceCode":"61"},{"code":"610523","name":"大荔县","cityCode":"6105","provinceCode":"61"},{"code":"610524","name":"合阳县","cityCode":"6105","provinceCode":"61"},{"code":"610525","name":"澄城县","cityCode":"6105","provinceCode":"61"},{"code":"610526","name":"蒲城县","cityCode":"6105","provinceCode":"61"},{"code":"610527","name":"白水县","cityCode":"6105","provinceCode":"61"},{"code":"610528","name":"富平县","cityCode":"6105","provinceCode":"61"},{"code":"610581","name":"韩城市","cityCode":"6105","provinceCode":"61"},{"code":"610582","name":"华阴市","cityCode":"6105","provinceCode":"61"},{"code":"610602","name":"宝塔区","cityCode":"6106","provinceCode":"61"},{"code":"610603","name":"安塞区","cityCode":"6106","provinceCode":"61"},{"code":"610621","name":"延长县","cityCode":"6106","provinceCode":"61"},{"code":"610622","name":"延川县","cityCode":"6106","provinceCode":"61"},{"code":"610623","name":"子长县","cityCode":"6106","provinceCode":"61"},{"code":"610625","name":"志丹县","cityCode":"6106","provinceCode":"61"},{"code":"610626","name":"吴起县","cityCode":"6106","provinceCode":"61"},{"code":"610627","name":"甘泉县","cityCode":"6106","provinceCode":"61"},{"code":"610628","name":"富县","cityCode":"6106","provinceCode":"61"},{"code":"610629","name":"洛川县","cityCode":"6106","provinceCode":"61"},{"code":"610630","name":"宜川县","cityCode":"6106","provinceCode":"61"},{"code":"610631","name":"黄龙县","cityCode":"6106","provinceCode":"61"},{"code":"610632","name":"黄陵县","cityCode":"6106","provinceCode":"61"},{"code":"610702","name":"汉台区","cityCode":"6107","provinceCode":"61"},{"code":"610721","name":"南郑县","cityCode":"6107","provinceCode":"61"},{"code":"610722","name":"城固县","cityCode":"6107","provinceCode":"61"},{"code":"610723","name":"洋县","cityCode":"6107","provinceCode":"61"},{"code":"610724","name":"西乡县","cityCode":"6107","provinceCode":"61"},{"code":"610725","name":"勉县","cityCode":"6107","provinceCode":"61"},{"code":"610726","name":"宁强县","cityCode":"6107","provinceCode":"61"},{"code":"610727","name":"略阳县","cityCode":"6107","provinceCode":"61"},{"code":"610728","name":"镇巴县","cityCode":"6107","provinceCode":"61"},{"code":"610729","name":"留坝县","cityCode":"6107","provinceCode":"61"},{"code":"610730","name":"佛坪县","cityCode":"6107","provinceCode":"61"},{"code":"610802","name":"榆阳区","cityCode":"6108","provinceCode":"61"},{"code":"610803","name":"横山区","cityCode":"6108","provinceCode":"61"},{"code":"610821","name":"神木县","cityCode":"6108","provinceCode":"61"},{"code":"610822","name":"府谷县","cityCode":"6108","provinceCode":"61"},{"code":"610824","name":"靖边县","cityCode":"6108","provinceCode":"61"},{"code":"610825","name":"定边县","cityCode":"6108","provinceCode":"61"},{"code":"610826","name":"绥德县","cityCode":"6108","provinceCode":"61"},{"code":"610827","name":"米脂县","cityCode":"6108","provinceCode":"61"},{"code":"610828","name":"佳县","cityCode":"6108","provinceCode":"61"},{"code":"610829","name":"吴堡县","cityCode":"6108","provinceCode":"61"},{"code":"610830","name":"清涧县","cityCode":"6108","provinceCode":"61"},{"code":"610831","name":"子洲县","cityCode":"6108","provinceCode":"61"},{"code":"610902","name":"汉滨区","cityCode":"6109","provinceCode":"61"},{"code":"610921","name":"汉阴县","cityCode":"6109","provinceCode":"61"},{"code":"610922","name":"石泉县","cityCode":"6109","provinceCode":"61"},{"code":"610923","name":"宁陕县","cityCode":"6109","provinceCode":"61"},{"code":"610924","name":"紫阳县","cityCode":"6109","provinceCode":"61"},{"code":"610925","name":"岚皋县","cityCode":"6109","provinceCode":"61"},{"code":"610926","name":"平利县","cityCode":"6109","provinceCode":"61"},{"code":"610927","name":"镇坪县","cityCode":"6109","provinceCode":"61"},{"code":"610928","name":"旬阳县","cityCode":"6109","provinceCode":"61"},{"code":"610929","name":"白河县","cityCode":"6109","provinceCode":"61"},{"code":"611002","name":"商州区","cityCode":"6110","provinceCode":"61"},{"code":"611021","name":"洛南县","cityCode":"6110","provinceCode":"61"},{"code":"611022","name":"丹凤县","cityCode":"6110","provinceCode":"61"},{"code":"611023","name":"商南县","cityCode":"6110","provinceCode":"61"},{"code":"611024","name":"山阳县","cityCode":"6110","provinceCode":"61"},{"code":"611025","name":"镇安县","cityCode":"6110","provinceCode":"61"},{"code":"611026","name":"柞水县","cityCode":"6110","provinceCode":"61"},{"code":"620102","name":"城关区","cityCode":"6201","provinceCode":"62"},{"code":"620103","name":"七里河区","cityCode":"6201","provinceCode":"62"},{"code":"620104","name":"西固区","cityCode":"6201","provinceCode":"62"},{"code":"620105","name":"安宁区","cityCode":"6201","provinceCode":"62"},{"code":"620111","name":"红古区","cityCode":"6201","provinceCode":"62"},{"code":"620121","name":"永登县","cityCode":"6201","provinceCode":"62"},{"code":"620122","name":"皋兰县","cityCode":"6201","provinceCode":"62"},{"code":"620123","name":"榆中县","cityCode":"6201","provinceCode":"62"},{"code":"620201","name":"嘉峪关市","cityCode":"6202","provinceCode":"62"},{"code":"620302","name":"金川区","cityCode":"6203","provinceCode":"62"},{"code":"620321","name":"永昌县","cityCode":"6203","provinceCode":"62"},{"code":"620402","name":"白银区","cityCode":"6204","provinceCode":"62"},{"code":"620403","name":"平川区","cityCode":"6204","provinceCode":"62"},{"code":"620421","name":"靖远县","cityCode":"6204","provinceCode":"62"},{"code":"620422","name":"会宁县","cityCode":"6204","provinceCode":"62"},{"code":"620423","name":"景泰县","cityCode":"6204","provinceCode":"62"},{"code":"620502","name":"秦州区","cityCode":"6205","provinceCode":"62"},{"code":"620503","name":"麦积区","cityCode":"6205","provinceCode":"62"},{"code":"620521","name":"清水县","cityCode":"6205","provinceCode":"62"},{"code":"620522","name":"秦安县","cityCode":"6205","provinceCode":"62"},{"code":"620523","name":"甘谷县","cityCode":"6205","provinceCode":"62"},{"code":"620524","name":"武山县","cityCode":"6205","provinceCode":"62"},{"code":"620525","name":"张家川回族自治县","cityCode":"6205","provinceCode":"62"},{"code":"620602","name":"凉州区","cityCode":"6206","provinceCode":"62"},{"code":"620621","name":"民勤县","cityCode":"6206","provinceCode":"62"},{"code":"620622","name":"古浪县","cityCode":"6206","provinceCode":"62"},{"code":"620623","name":"天祝藏族自治县","cityCode":"6206","provinceCode":"62"},{"code":"620702","name":"甘州区","cityCode":"6207","provinceCode":"62"},{"code":"620721","name":"肃南裕固族自治县","cityCode":"6207","provinceCode":"62"},{"code":"620722","name":"民乐县","cityCode":"6207","provinceCode":"62"},{"code":"620723","name":"临泽县","cityCode":"6207","provinceCode":"62"},{"code":"620724","name":"高台县","cityCode":"6207","provinceCode":"62"},{"code":"620725","name":"山丹县","cityCode":"6207","provinceCode":"62"},{"code":"620802","name":"崆峒区","cityCode":"6208","provinceCode":"62"},{"code":"620821","name":"泾川县","cityCode":"6208","provinceCode":"62"},{"code":"620822","name":"灵台县","cityCode":"6208","provinceCode":"62"},{"code":"620823","name":"崇信县","cityCode":"6208","provinceCode":"62"},{"code":"620824","name":"华亭县","cityCode":"6208","provinceCode":"62"},{"code":"620825","name":"庄浪县","cityCode":"6208","provinceCode":"62"},{"code":"620826","name":"静宁县","cityCode":"6208","provinceCode":"62"},{"code":"620902","name":"肃州区","cityCode":"6209","provinceCode":"62"},{"code":"620921","name":"金塔县","cityCode":"6209","provinceCode":"62"},{"code":"620922","name":"瓜州县","cityCode":"6209","provinceCode":"62"},{"code":"620923","name":"肃北蒙古族自治县","cityCode":"6209","provinceCode":"62"},{"code":"620924","name":"阿克塞哈萨克族自治县","cityCode":"6209","provinceCode":"62"},{"code":"620981","name":"玉门市","cityCode":"6209","provinceCode":"62"},{"code":"620982","name":"敦煌市","cityCode":"6209","provinceCode":"62"},{"code":"621002","name":"西峰区","cityCode":"6210","provinceCode":"62"},{"code":"621021","name":"庆城县","cityCode":"6210","provinceCode":"62"},{"code":"621022","name":"环县","cityCode":"6210","provinceCode":"62"},{"code":"621023","name":"华池县","cityCode":"6210","provinceCode":"62"},{"code":"621024","name":"合水县","cityCode":"6210","provinceCode":"62"},{"code":"621025","name":"正宁县","cityCode":"6210","provinceCode":"62"},{"code":"621026","name":"宁县","cityCode":"6210","provinceCode":"62"},{"code":"621027","name":"镇原县","cityCode":"6210","provinceCode":"62"},{"code":"621102","name":"安定区","cityCode":"6211","provinceCode":"62"},{"code":"621121","name":"通渭县","cityCode":"6211","provinceCode":"62"},{"code":"621122","name":"陇西县","cityCode":"6211","provinceCode":"62"},{"code":"621123","name":"渭源县","cityCode":"6211","provinceCode":"62"},{"code":"621124","name":"临洮县","cityCode":"6211","provinceCode":"62"},{"code":"621125","name":"漳县","cityCode":"6211","provinceCode":"62"},{"code":"621126","name":"岷县","cityCode":"6211","provinceCode":"62"},{"code":"621202","name":"武都区","cityCode":"6212","provinceCode":"62"},{"code":"621221","name":"成县","cityCode":"6212","provinceCode":"62"},{"code":"621222","name":"文县","cityCode":"6212","provinceCode":"62"},{"code":"621223","name":"宕昌县","cityCode":"6212","provinceCode":"62"},{"code":"621224","name":"康县","cityCode":"6212","provinceCode":"62"},{"code":"621225","name":"西和县","cityCode":"6212","provinceCode":"62"},{"code":"621226","name":"礼县","cityCode":"6212","provinceCode":"62"},{"code":"621227","name":"徽县","cityCode":"6212","provinceCode":"62"},{"code":"621228","name":"两当县","cityCode":"6212","provinceCode":"62"},{"code":"622901","name":"临夏市","cityCode":"6229","provinceCode":"62"},{"code":"622921","name":"临夏县","cityCode":"6229","provinceCode":"62"},{"code":"622922","name":"康乐县","cityCode":"6229","provinceCode":"62"},{"code":"622923","name":"永靖县","cityCode":"6229","provinceCode":"62"},{"code":"622924","name":"广河县","cityCode":"6229","provinceCode":"62"},{"code":"622925","name":"和政县","cityCode":"6229","provinceCode":"62"},{"code":"622926","name":"东乡族自治县","cityCode":"6229","provinceCode":"62"},{"code":"622927","name":"积石山保安族东乡族撒拉族自治县","cityCode":"6229","provinceCode":"62"},{"code":"623001","name":"合作市","cityCode":"6230","provinceCode":"62"},{"code":"623021","name":"临潭县","cityCode":"6230","provinceCode":"62"},{"code":"623022","name":"卓尼县","cityCode":"6230","provinceCode":"62"},{"code":"623023","name":"舟曲县","cityCode":"6230","provinceCode":"62"},{"code":"623024","name":"迭部县","cityCode":"6230","provinceCode":"62"},{"code":"623025","name":"玛曲县","cityCode":"6230","provinceCode":"62"},{"code":"623026","name":"碌曲县","cityCode":"6230","provinceCode":"62"},{"code":"623027","name":"夏河县","cityCode":"6230","provinceCode":"62"},{"code":"630102","name":"城东区","cityCode":"6301","provinceCode":"63"},{"code":"630103","name":"城中区","cityCode":"6301","provinceCode":"63"},{"code":"630104","name":"城西区","cityCode":"6301","provinceCode":"63"},{"code":"630105","name":"城北区","cityCode":"6301","provinceCode":"63"},{"code":"630121","name":"大通回族土族自治县","cityCode":"6301","provinceCode":"63"},{"code":"630122","name":"湟中县","cityCode":"6301","provinceCode":"63"},{"code":"630123","name":"湟源县","cityCode":"6301","provinceCode":"63"},{"code":"630202","name":"乐都区","cityCode":"6302","provinceCode":"63"},{"code":"630203","name":"平安区","cityCode":"6302","provinceCode":"63"},{"code":"630222","name":"民和回族土族自治县","cityCode":"6302","provinceCode":"63"},{"code":"630223","name":"互助土族自治县","cityCode":"6302","provinceCode":"63"},{"code":"630224","name":"化隆回族自治县","cityCode":"6302","provinceCode":"63"},{"code":"630225","name":"循化撒拉族自治县","cityCode":"6302","provinceCode":"63"},{"code":"632221","name":"门源回族自治县","cityCode":"6322","provinceCode":"63"},{"code":"632222","name":"祁连县","cityCode":"6322","provinceCode":"63"},{"code":"632223","name":"海晏县","cityCode":"6322","provinceCode":"63"},{"code":"632224","name":"刚察县","cityCode":"6322","provinceCode":"63"},{"code":"632321","name":"同仁县","cityCode":"6323","provinceCode":"63"},{"code":"632322","name":"尖扎县","cityCode":"6323","provinceCode":"63"},{"code":"632323","name":"泽库县","cityCode":"6323","provinceCode":"63"},{"code":"632324","name":"河南蒙古族自治县","cityCode":"6323","provinceCode":"63"},{"code":"632521","name":"共和县","cityCode":"6325","provinceCode":"63"},{"code":"632522","name":"同德县","cityCode":"6325","provinceCode":"63"},{"code":"632523","name":"贵德县","cityCode":"6325","provinceCode":"63"},{"code":"632524","name":"兴海县","cityCode":"6325","provinceCode":"63"},{"code":"632525","name":"贵南县","cityCode":"6325","provinceCode":"63"},{"code":"632621","name":"玛沁县","cityCode":"6326","provinceCode":"63"},{"code":"632622","name":"班玛县","cityCode":"6326","provinceCode":"63"},{"code":"632623","name":"甘德县","cityCode":"6326","provinceCode":"63"},{"code":"632624","name":"达日县","cityCode":"6326","provinceCode":"63"},{"code":"632625","name":"久治县","cityCode":"6326","provinceCode":"63"},{"code":"632626","name":"玛多县","cityCode":"6326","provinceCode":"63"},{"code":"632701","name":"玉树市","cityCode":"6327","provinceCode":"63"},{"code":"632722","name":"杂多县","cityCode":"6327","provinceCode":"63"},{"code":"632723","name":"称多县","cityCode":"6327","provinceCode":"63"},{"code":"632724","name":"治多县","cityCode":"6327","provinceCode":"63"},{"code":"632725","name":"囊谦县","cityCode":"6327","provinceCode":"63"},{"code":"632726","name":"曲麻莱县","cityCode":"6327","provinceCode":"63"},{"code":"632801","name":"格尔木市","cityCode":"6328","provinceCode":"63"},{"code":"632802","name":"德令哈市","cityCode":"6328","provinceCode":"63"},{"code":"632821","name":"乌兰县","cityCode":"6328","provinceCode":"63"},{"code":"632822","name":"都兰县","cityCode":"6328","provinceCode":"63"},{"code":"632823","name":"天峻县","cityCode":"6328","provinceCode":"63"},{"code":"640104","name":"兴庆区","cityCode":"6401","provinceCode":"64"},{"code":"640105","name":"西夏区","cityCode":"6401","provinceCode":"64"},{"code":"640106","name":"金凤区","cityCode":"6401","provinceCode":"64"},{"code":"640121","name":"永宁县","cityCode":"6401","provinceCode":"64"},{"code":"640122","name":"贺兰县","cityCode":"6401","provinceCode":"64"},{"code":"640181","name":"灵武市","cityCode":"6401","provinceCode":"64"},{"code":"640202","name":"大武口区","cityCode":"6402","provinceCode":"64"},{"code":"640205","name":"惠农区","cityCode":"6402","provinceCode":"64"},{"code":"640221","name":"平罗县","cityCode":"6402","provinceCode":"64"},{"code":"640302","name":"利通区","cityCode":"6403","provinceCode":"64"},{"code":"640303","name":"红寺堡区","cityCode":"6403","provinceCode":"64"},{"code":"640323","name":"盐池县","cityCode":"6403","provinceCode":"64"},{"code":"640324","name":"同心县","cityCode":"6403","provinceCode":"64"},{"code":"640381","name":"青铜峡市","cityCode":"6403","provinceCode":"64"},{"code":"640402","name":"原州区","cityCode":"6404","provinceCode":"64"},{"code":"640422","name":"西吉县","cityCode":"6404","provinceCode":"64"},{"code":"640423","name":"隆德县","cityCode":"6404","provinceCode":"64"},{"code":"640424","name":"泾源县","cityCode":"6404","provinceCode":"64"},{"code":"640425","name":"彭阳县","cityCode":"6404","provinceCode":"64"},{"code":"640502","name":"沙坡头区","cityCode":"6405","provinceCode":"64"},{"code":"640521","name":"中宁县","cityCode":"6405","provinceCode":"64"},{"code":"640522","name":"海原县","cityCode":"6405","provinceCode":"64"},{"code":"650102","name":"天山区","cityCode":"6501","provinceCode":"65"},{"code":"650103","name":"沙依巴克区","cityCode":"6501","provinceCode":"65"},{"code":"650104","name":"新市区","cityCode":"6501","provinceCode":"65"},{"code":"650105","name":"水磨沟区","cityCode":"6501","provinceCode":"65"},{"code":"650106","name":"头屯河区","cityCode":"6501","provinceCode":"65"},{"code":"650107","name":"达坂城区","cityCode":"6501","provinceCode":"65"},{"code":"650109","name":"米东区","cityCode":"6501","provinceCode":"65"},{"code":"650121","name":"乌鲁木齐县","cityCode":"6501","provinceCode":"65"},{"code":"650202","name":"独山子区","cityCode":"6502","provinceCode":"65"},{"code":"650203","name":"克拉玛依区","cityCode":"6502","provinceCode":"65"},{"code":"650204","name":"白碱滩区","cityCode":"6502","provinceCode":"65"},{"code":"650205","name":"乌尔禾区","cityCode":"6502","provinceCode":"65"},{"code":"650402","name":"高昌区","cityCode":"6504","provinceCode":"65"},{"code":"650421","name":"鄯善县","cityCode":"6504","provinceCode":"65"},{"code":"650422","name":"托克逊县","cityCode":"6504","provinceCode":"65"},{"code":"650502","name":"伊州区","cityCode":"6505","provinceCode":"65"},{"code":"650521","name":"巴里坤哈萨克自治县","cityCode":"6505","provinceCode":"65"},{"code":"650522","name":"伊吾县","cityCode":"6505","provinceCode":"65"},{"code":"652301","name":"昌吉市","cityCode":"6523","provinceCode":"65"},{"code":"652302","name":"阜康市","cityCode":"6523","provinceCode":"65"},{"code":"652323","name":"呼图壁县","cityCode":"6523","provinceCode":"65"},{"code":"652324","name":"玛纳斯县","cityCode":"6523","provinceCode":"65"},{"code":"652325","name":"奇台县","cityCode":"6523","provinceCode":"65"},{"code":"652327","name":"吉木萨尔县","cityCode":"6523","provinceCode":"65"},{"code":"652328","name":"木垒哈萨克自治县","cityCode":"6523","provinceCode":"65"},{"code":"652701","name":"博乐市","cityCode":"6527","provinceCode":"65"},{"code":"652702","name":"阿拉山口市","cityCode":"6527","provinceCode":"65"},{"code":"652722","name":"精河县","cityCode":"6527","provinceCode":"65"},{"code":"652723","name":"温泉县","cityCode":"6527","provinceCode":"65"},{"code":"652801","name":"库尔勒市","cityCode":"6528","provinceCode":"65"},{"code":"652822","name":"轮台县","cityCode":"6528","provinceCode":"65"},{"code":"652823","name":"尉犁县","cityCode":"6528","provinceCode":"65"},{"code":"652824","name":"若羌县","cityCode":"6528","provinceCode":"65"},{"code":"652825","name":"且末县","cityCode":"6528","provinceCode":"65"},{"code":"652826","name":"焉耆回族自治县","cityCode":"6528","provinceCode":"65"},{"code":"652827","name":"和静县","cityCode":"6528","provinceCode":"65"},{"code":"652828","name":"和硕县","cityCode":"6528","provinceCode":"65"},{"code":"652829","name":"博湖县","cityCode":"6528","provinceCode":"65"},{"code":"652901","name":"阿克苏市","cityCode":"6529","provinceCode":"65"},{"code":"652922","name":"温宿县","cityCode":"6529","provinceCode":"65"},{"code":"652923","name":"库车县","cityCode":"6529","provinceCode":"65"},{"code":"652924","name":"沙雅县","cityCode":"6529","provinceCode":"65"},{"code":"652925","name":"新和县","cityCode":"6529","provinceCode":"65"},{"code":"652926","name":"拜城县","cityCode":"6529","provinceCode":"65"},{"code":"652927","name":"乌什县","cityCode":"6529","provinceCode":"65"},{"code":"652928","name":"阿瓦提县","cityCode":"6529","provinceCode":"65"},{"code":"652929","name":"柯坪县","cityCode":"6529","provinceCode":"65"},{"code":"653001","name":"阿图什市","cityCode":"6530","provinceCode":"65"},{"code":"653022","name":"阿克陶县","cityCode":"6530","provinceCode":"65"},{"code":"653023","name":"阿合奇县","cityCode":"6530","provinceCode":"65"},{"code":"653024","name":"乌恰县","cityCode":"6530","provinceCode":"65"},{"code":"653101","name":"喀什市","cityCode":"6531","provinceCode":"65"},{"code":"653121","name":"疏附县","cityCode":"6531","provinceCode":"65"},{"code":"653122","name":"疏勒县","cityCode":"6531","provinceCode":"65"},{"code":"653123","name":"英吉沙县","cityCode":"6531","provinceCode":"65"},{"code":"653124","name":"泽普县","cityCode":"6531","provinceCode":"65"},{"code":"653125","name":"莎车县","cityCode":"6531","provinceCode":"65"},{"code":"653126","name":"叶城县","cityCode":"6531","provinceCode":"65"},{"code":"653127","name":"麦盖提县","cityCode":"6531","provinceCode":"65"},{"code":"653128","name":"岳普湖县","cityCode":"6531","provinceCode":"65"},{"code":"653129","name":"伽师县","cityCode":"6531","provinceCode":"65"},{"code":"653130","name":"巴楚县","cityCode":"6531","provinceCode":"65"},{"code":"653131","name":"塔什库尔干塔吉克自治县","cityCode":"6531","provinceCode":"65"},{"code":"653201","name":"和田市","cityCode":"6532","provinceCode":"65"},{"code":"653221","name":"和田县","cityCode":"6532","provinceCode":"65"},{"code":"653222","name":"墨玉县","cityCode":"6532","provinceCode":"65"},{"code":"653223","name":"皮山县","cityCode":"6532","provinceCode":"65"},{"code":"653224","name":"洛浦县","cityCode":"6532","provinceCode":"65"},{"code":"653225","name":"策勒县","cityCode":"6532","provinceCode":"65"},{"code":"653226","name":"于田县","cityCode":"6532","provinceCode":"65"},{"code":"653227","name":"民丰县","cityCode":"6532","provinceCode":"65"},{"code":"654002","name":"伊宁市","cityCode":"6540","provinceCode":"65"},{"code":"654003","name":"奎屯市","cityCode":"6540","provinceCode":"65"},{"code":"654004","name":"霍尔果斯市","cityCode":"6540","provinceCode":"65"},{"code":"654021","name":"伊宁县","cityCode":"6540","provinceCode":"65"},{"code":"654022","name":"察布查尔锡伯自治县","cityCode":"6540","provinceCode":"65"},{"code":"654023","name":"霍城县","cityCode":"6540","provinceCode":"65"},{"code":"654024","name":"巩留县","cityCode":"6540","provinceCode":"65"},{"code":"654025","name":"新源县","cityCode":"6540","provinceCode":"65"},{"code":"654026","name":"昭苏县","cityCode":"6540","provinceCode":"65"},{"code":"654027","name":"特克斯县","cityCode":"6540","provinceCode":"65"},{"code":"654028","name":"尼勒克县","cityCode":"6540","provinceCode":"65"},{"code":"654201","name":"塔城市","cityCode":"6542","provinceCode":"65"},{"code":"654202","name":"乌苏市","cityCode":"6542","provinceCode":"65"},{"code":"654221","name":"额敏县","cityCode":"6542","provinceCode":"65"},{"code":"654223","name":"沙湾县","cityCode":"6542","provinceCode":"65"},{"code":"654224","name":"托里县","cityCode":"6542","provinceCode":"65"},{"code":"654225","name":"裕民县","cityCode":"6542","provinceCode":"65"},{"code":"654226","name":"和布克赛尔蒙古自治县","cityCode":"6542","provinceCode":"65"},{"code":"654301","name":"阿勒泰市","cityCode":"6543","provinceCode":"65"},{"code":"654321","name":"布尔津县","cityCode":"6543","provinceCode":"65"},{"code":"654322","name":"富蕴县","cityCode":"6543","provinceCode":"65"},{"code":"654323","name":"福海县","cityCode":"6543","provinceCode":"65"},{"code":"654324","name":"哈巴河县","cityCode":"6543","provinceCode":"65"},{"code":"654325","name":"青河县","cityCode":"6543","provinceCode":"65"},{"code":"654326","name":"吉木乃县","cityCode":"6543","provinceCode":"65"},{"code":"659001","name":"石河子市","cityCode":"6590","provinceCode":"65"},{"code":"659002","name":"阿拉尔市","cityCode":"6590","provinceCode":"65"},{"code":"659003","name":"图木舒克市","cityCode":"6590","provinceCode":"65"},{"code":"659004","name":"五家渠市","cityCode":"6590","provinceCode":"65"},{"code":"659006","name":"铁门关市","cityCode":"6590","provinceCode":"65"}] | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/btnComponentIcon/1.png
0 → 100644
583 Bytes
src/assets/btnComponentIcon/10.png
0 → 100644
936 Bytes
src/assets/btnComponentIcon/10_1.png
0 → 100644
917 Bytes
src/assets/btnComponentIcon/11.png
0 → 100644
746 Bytes
src/assets/btnComponentIcon/11_1.png
0 → 100644
724 Bytes
src/assets/btnComponentIcon/12.png
0 → 100644
743 Bytes
src/assets/btnComponentIcon/12_1.png
0 → 100644
703 Bytes
src/assets/btnComponentIcon/13.png
0 → 100644
507 Bytes
src/assets/btnComponentIcon/13_1.png
0 → 100644
505 Bytes
src/assets/btnComponentIcon/14.png
0 → 100644
378 Bytes
src/assets/btnComponentIcon/14_1.png
0 → 100644
372 Bytes
src/assets/btnComponentIcon/15.png
0 → 100644
1.03 KB
src/assets/btnComponentIcon/15_1.png
0 → 100644
1018 Bytes
src/assets/btnComponentIcon/16.png
0 → 100644
593 Bytes
src/assets/btnComponentIcon/16_1.png
0 → 100644
567 Bytes
src/assets/btnComponentIcon/17.png
0 → 100644
762 Bytes
src/assets/btnComponentIcon/17_1.png
0 → 100644
751 Bytes
src/assets/btnComponentIcon/18.png
0 → 100644
554 Bytes
src/assets/btnComponentIcon/18_1.png
0 → 100644
547 Bytes
src/assets/btnComponentIcon/19.png
0 → 100644
788 Bytes
src/assets/btnComponentIcon/19_1.png
0 → 100644
770 Bytes
src/assets/btnComponentIcon/1_1.png
0 → 100644
562 Bytes
src/assets/btnComponentIcon/2.png
0 → 100644
780 Bytes
src/assets/btnComponentIcon/20.png
0 → 100644
921 Bytes
src/assets/btnComponentIcon/20_1.png
0 → 100644
910 Bytes
src/assets/btnComponentIcon/21.png
0 → 100644
440 Bytes
src/assets/btnComponentIcon/21_1.png
0 → 100644
434 Bytes
src/assets/btnComponentIcon/22.png
0 → 100644
747 Bytes
src/assets/btnComponentIcon/22_1.png
0 → 100644
722 Bytes
src/assets/btnComponentIcon/23.png
0 → 100644
887 Bytes
src/assets/btnComponentIcon/23_1.png
0 → 100644
845 Bytes
src/assets/btnComponentIcon/24.png
0 → 100644
413 Bytes
src/assets/btnComponentIcon/24_1.png
0 → 100644
408 Bytes
src/assets/btnComponentIcon/2_1.png
0 → 100644
768 Bytes
src/assets/btnComponentIcon/3.png
0 → 100644
791 Bytes
src/assets/btnComponentIcon/3_1.png
0 → 100644
776 Bytes
src/assets/btnComponentIcon/4.png
0 → 100644
551 Bytes
src/assets/btnComponentIcon/4_1.png
0 → 100644
554 Bytes
src/assets/btnComponentIcon/5.png
0 → 100644
413 Bytes
src/assets/btnComponentIcon/5_1.png
0 → 100644
464 Bytes
src/assets/btnComponentIcon/6.png
0 → 100644
907 Bytes
src/assets/btnComponentIcon/6_1.png
0 → 100644
842 Bytes
src/assets/btnComponentIcon/7.png
0 → 100644
788 Bytes
src/assets/btnComponentIcon/7_1.png
0 → 100644
766 Bytes
src/assets/btnComponentIcon/8.png
0 → 100644
786 Bytes
src/assets/btnComponentIcon/8_1.png
0 → 100644
765 Bytes
src/assets/btnComponentIcon/9.png
0 → 100644
489 Bytes
src/assets/btnComponentIcon/9_1.png
0 → 100644
485 Bytes
src/assets/cities.json
0 → 100644
| 1 | +++ a/src/assets/cities.json | ||
| 1 | +[{"code":"1101","name":"市辖区","provinceCode":"11"},{"code":"1201","name":"市辖区","provinceCode":"12"},{"code":"1301","name":"石家庄市","provinceCode":"13"},{"code":"1302","name":"唐山市","provinceCode":"13"},{"code":"1303","name":"秦皇岛市","provinceCode":"13"},{"code":"1304","name":"邯郸市","provinceCode":"13"},{"code":"1305","name":"邢台市","provinceCode":"13"},{"code":"1306","name":"保定市","provinceCode":"13"},{"code":"1307","name":"张家口市","provinceCode":"13"},{"code":"1308","name":"承德市","provinceCode":"13"},{"code":"1309","name":"沧州市","provinceCode":"13"},{"code":"1310","name":"廊坊市","provinceCode":"13"},{"code":"1311","name":"衡水市","provinceCode":"13"},{"code":"1390","name":"省直辖县级行政区划","provinceCode":"13"},{"code":"1401","name":"太原市","provinceCode":"14"},{"code":"1402","name":"大同市","provinceCode":"14"},{"code":"1403","name":"阳泉市","provinceCode":"14"},{"code":"1404","name":"长治市","provinceCode":"14"},{"code":"1405","name":"晋城市","provinceCode":"14"},{"code":"1406","name":"朔州市","provinceCode":"14"},{"code":"1407","name":"晋中市","provinceCode":"14"},{"code":"1408","name":"运城市","provinceCode":"14"},{"code":"1409","name":"忻州市","provinceCode":"14"},{"code":"1410","name":"临汾市","provinceCode":"14"},{"code":"1411","name":"吕梁市","provinceCode":"14"},{"code":"1501","name":"呼和浩特市","provinceCode":"15"},{"code":"1502","name":"包头市","provinceCode":"15"},{"code":"1503","name":"乌海市","provinceCode":"15"},{"code":"1504","name":"赤峰市","provinceCode":"15"},{"code":"1505","name":"通辽市","provinceCode":"15"},{"code":"1506","name":"鄂尔多斯市","provinceCode":"15"},{"code":"1507","name":"呼伦贝尔市","provinceCode":"15"},{"code":"1508","name":"巴彦淖尔市","provinceCode":"15"},{"code":"1509","name":"乌兰察布市","provinceCode":"15"},{"code":"1522","name":"兴安盟","provinceCode":"15"},{"code":"1525","name":"锡林郭勒盟","provinceCode":"15"},{"code":"1529","name":"阿拉善盟","provinceCode":"15"},{"code":"2101","name":"沈阳市","provinceCode":"21"},{"code":"2102","name":"大连市","provinceCode":"21"},{"code":"2103","name":"鞍山市","provinceCode":"21"},{"code":"2104","name":"抚顺市","provinceCode":"21"},{"code":"2105","name":"本溪市","provinceCode":"21"},{"code":"2106","name":"丹东市","provinceCode":"21"},{"code":"2107","name":"锦州市","provinceCode":"21"},{"code":"2108","name":"营口市","provinceCode":"21"},{"code":"2109","name":"阜新市","provinceCode":"21"},{"code":"2110","name":"辽阳市","provinceCode":"21"},{"code":"2111","name":"盘锦市","provinceCode":"21"},{"code":"2112","name":"铁岭市","provinceCode":"21"},{"code":"2113","name":"朝阳市","provinceCode":"21"},{"code":"2114","name":"葫芦岛市","provinceCode":"21"},{"code":"2201","name":"长春市","provinceCode":"22"},{"code":"2202","name":"吉林市","provinceCode":"22"},{"code":"2203","name":"四平市","provinceCode":"22"},{"code":"2204","name":"辽源市","provinceCode":"22"},{"code":"2205","name":"通化市","provinceCode":"22"},{"code":"2206","name":"白山市","provinceCode":"22"},{"code":"2207","name":"松原市","provinceCode":"22"},{"code":"2208","name":"白城市","provinceCode":"22"},{"code":"2224","name":"延边朝鲜族自治州","provinceCode":"22"},{"code":"2301","name":"哈尔滨市","provinceCode":"23"},{"code":"2302","name":"齐齐哈尔市","provinceCode":"23"},{"code":"2303","name":"鸡西市","provinceCode":"23"},{"code":"2304","name":"鹤岗市","provinceCode":"23"},{"code":"2305","name":"双鸭山市","provinceCode":"23"},{"code":"2306","name":"大庆市","provinceCode":"23"},{"code":"2307","name":"伊春市","provinceCode":"23"},{"code":"2308","name":"佳木斯市","provinceCode":"23"},{"code":"2309","name":"七台河市","provinceCode":"23"},{"code":"2310","name":"牡丹江市","provinceCode":"23"},{"code":"2311","name":"黑河市","provinceCode":"23"},{"code":"2312","name":"绥化市","provinceCode":"23"},{"code":"2327","name":"大兴安岭地区","provinceCode":"23"},{"code":"3101","name":"市辖区","provinceCode":"31"},{"code":"3201","name":"南京市","provinceCode":"32"},{"code":"3202","name":"无锡市","provinceCode":"32"},{"code":"3203","name":"徐州市","provinceCode":"32"},{"code":"3204","name":"常州市","provinceCode":"32"},{"code":"3205","name":"苏州市","provinceCode":"32"},{"code":"3206","name":"南通市","provinceCode":"32"},{"code":"3207","name":"连云港市","provinceCode":"32"},{"code":"3208","name":"淮安市","provinceCode":"32"},{"code":"3209","name":"盐城市","provinceCode":"32"},{"code":"3210","name":"扬州市","provinceCode":"32"},{"code":"3211","name":"镇江市","provinceCode":"32"},{"code":"3212","name":"泰州市","provinceCode":"32"},{"code":"3213","name":"宿迁市","provinceCode":"32"},{"code":"3301","name":"杭州市","provinceCode":"33"},{"code":"3302","name":"宁波市","provinceCode":"33"},{"code":"3303","name":"温州市","provinceCode":"33"},{"code":"3304","name":"嘉兴市","provinceCode":"33"},{"code":"3305","name":"湖州市","provinceCode":"33"},{"code":"3306","name":"绍兴市","provinceCode":"33"},{"code":"3307","name":"金华市","provinceCode":"33"},{"code":"3308","name":"衢州市","provinceCode":"33"},{"code":"3309","name":"舟山市","provinceCode":"33"},{"code":"3310","name":"台州市","provinceCode":"33"},{"code":"3311","name":"丽水市","provinceCode":"33"},{"code":"3401","name":"合肥市","provinceCode":"34"},{"code":"3402","name":"芜湖市","provinceCode":"34"},{"code":"3403","name":"蚌埠市","provinceCode":"34"},{"code":"3404","name":"淮南市","provinceCode":"34"},{"code":"3405","name":"马鞍山市","provinceCode":"34"},{"code":"3406","name":"淮北市","provinceCode":"34"},{"code":"3407","name":"铜陵市","provinceCode":"34"},{"code":"3408","name":"安庆市","provinceCode":"34"},{"code":"3410","name":"黄山市","provinceCode":"34"},{"code":"3411","name":"滁州市","provinceCode":"34"},{"code":"3412","name":"阜阳市","provinceCode":"34"},{"code":"3413","name":"宿州市","provinceCode":"34"},{"code":"3415","name":"六安市","provinceCode":"34"},{"code":"3416","name":"亳州市","provinceCode":"34"},{"code":"3417","name":"池州市","provinceCode":"34"},{"code":"3418","name":"宣城市","provinceCode":"34"},{"code":"3501","name":"福州市","provinceCode":"35"},{"code":"3502","name":"厦门市","provinceCode":"35"},{"code":"3503","name":"莆田市","provinceCode":"35"},{"code":"3504","name":"三明市","provinceCode":"35"},{"code":"3505","name":"泉州市","provinceCode":"35"},{"code":"3506","name":"漳州市","provinceCode":"35"},{"code":"3507","name":"南平市","provinceCode":"35"},{"code":"3508","name":"龙岩市","provinceCode":"35"},{"code":"3509","name":"宁德市","provinceCode":"35"},{"code":"3601","name":"南昌市","provinceCode":"36"},{"code":"3602","name":"景德镇市","provinceCode":"36"},{"code":"3603","name":"萍乡市","provinceCode":"36"},{"code":"3604","name":"九江市","provinceCode":"36"},{"code":"3605","name":"新余市","provinceCode":"36"},{"code":"3606","name":"鹰潭市","provinceCode":"36"},{"code":"3607","name":"赣州市","provinceCode":"36"},{"code":"3608","name":"吉安市","provinceCode":"36"},{"code":"3609","name":"宜春市","provinceCode":"36"},{"code":"3610","name":"抚州市","provinceCode":"36"},{"code":"3611","name":"上饶市","provinceCode":"36"},{"code":"3701","name":"济南市","provinceCode":"37"},{"code":"3702","name":"青岛市","provinceCode":"37"},{"code":"3703","name":"淄博市","provinceCode":"37"},{"code":"3704","name":"枣庄市","provinceCode":"37"},{"code":"3705","name":"东营市","provinceCode":"37"},{"code":"3706","name":"烟台市","provinceCode":"37"},{"code":"3707","name":"潍坊市","provinceCode":"37"},{"code":"3708","name":"济宁市","provinceCode":"37"},{"code":"3709","name":"泰安市","provinceCode":"37"},{"code":"3710","name":"威海市","provinceCode":"37"},{"code":"3711","name":"日照市","provinceCode":"37"},{"code":"3712","name":"莱芜市","provinceCode":"37"},{"code":"3713","name":"临沂市","provinceCode":"37"},{"code":"3714","name":"德州市","provinceCode":"37"},{"code":"3715","name":"聊城市","provinceCode":"37"},{"code":"3716","name":"滨州市","provinceCode":"37"},{"code":"3717","name":"菏泽市","provinceCode":"37"},{"code":"4101","name":"郑州市","provinceCode":"41"},{"code":"4102","name":"开封市","provinceCode":"41"},{"code":"4103","name":"洛阳市","provinceCode":"41"},{"code":"4104","name":"平顶山市","provinceCode":"41"},{"code":"4105","name":"安阳市","provinceCode":"41"},{"code":"4106","name":"鹤壁市","provinceCode":"41"},{"code":"4107","name":"新乡市","provinceCode":"41"},{"code":"4108","name":"焦作市","provinceCode":"41"},{"code":"4109","name":"濮阳市","provinceCode":"41"},{"code":"4110","name":"许昌市","provinceCode":"41"},{"code":"4111","name":"漯河市","provinceCode":"41"},{"code":"4112","name":"三门峡市","provinceCode":"41"},{"code":"4113","name":"南阳市","provinceCode":"41"},{"code":"4114","name":"商丘市","provinceCode":"41"},{"code":"4115","name":"信阳市","provinceCode":"41"},{"code":"4116","name":"周口市","provinceCode":"41"},{"code":"4117","name":"驻马店市","provinceCode":"41"},{"code":"4190","name":"省直辖县级行政区划","provinceCode":"41"},{"code":"4201","name":"武汉市","provinceCode":"42"},{"code":"4202","name":"黄石市","provinceCode":"42"},{"code":"4203","name":"十堰市","provinceCode":"42"},{"code":"4205","name":"宜昌市","provinceCode":"42"},{"code":"4206","name":"襄阳市","provinceCode":"42"},{"code":"4207","name":"鄂州市","provinceCode":"42"},{"code":"4208","name":"荆门市","provinceCode":"42"},{"code":"4209","name":"孝感市","provinceCode":"42"},{"code":"4210","name":"荆州市","provinceCode":"42"},{"code":"4211","name":"黄冈市","provinceCode":"42"},{"code":"4212","name":"咸宁市","provinceCode":"42"},{"code":"4213","name":"随州市","provinceCode":"42"},{"code":"4228","name":"恩施土家族苗族自治州","provinceCode":"42"},{"code":"4290","name":"省直辖县级行政区划","provinceCode":"42"},{"code":"4301","name":"长沙市","provinceCode":"43"},{"code":"4302","name":"株洲市","provinceCode":"43"},{"code":"4303","name":"湘潭市","provinceCode":"43"},{"code":"4304","name":"衡阳市","provinceCode":"43"},{"code":"4305","name":"邵阳市","provinceCode":"43"},{"code":"4306","name":"岳阳市","provinceCode":"43"},{"code":"4307","name":"常德市","provinceCode":"43"},{"code":"4308","name":"张家界市","provinceCode":"43"},{"code":"4309","name":"益阳市","provinceCode":"43"},{"code":"4310","name":"郴州市","provinceCode":"43"},{"code":"4311","name":"永州市","provinceCode":"43"},{"code":"4312","name":"怀化市","provinceCode":"43"},{"code":"4313","name":"娄底市","provinceCode":"43"},{"code":"4331","name":"湘西土家族苗族自治州","provinceCode":"43"},{"code":"4401","name":"广州市","provinceCode":"44"},{"code":"4402","name":"韶关市","provinceCode":"44"},{"code":"4403","name":"深圳市","provinceCode":"44"},{"code":"4404","name":"珠海市","provinceCode":"44"},{"code":"4405","name":"汕头市","provinceCode":"44"},{"code":"4406","name":"佛山市","provinceCode":"44"},{"code":"4407","name":"江门市","provinceCode":"44"},{"code":"4408","name":"湛江市","provinceCode":"44"},{"code":"4409","name":"茂名市","provinceCode":"44"},{"code":"4412","name":"肇庆市","provinceCode":"44"},{"code":"4413","name":"惠州市","provinceCode":"44"},{"code":"4414","name":"梅州市","provinceCode":"44"},{"code":"4415","name":"汕尾市","provinceCode":"44"},{"code":"4416","name":"河源市","provinceCode":"44"},{"code":"4417","name":"阳江市","provinceCode":"44"},{"code":"4418","name":"清远市","provinceCode":"44"},{"code":"4419","name":"东莞市","provinceCode":"44"},{"code":"4420","name":"中山市","provinceCode":"44"},{"code":"4451","name":"潮州市","provinceCode":"44"},{"code":"4452","name":"揭阳市","provinceCode":"44"},{"code":"4453","name":"云浮市","provinceCode":"44"},{"code":"4501","name":"南宁市","provinceCode":"45"},{"code":"4502","name":"柳州市","provinceCode":"45"},{"code":"4503","name":"桂林市","provinceCode":"45"},{"code":"4504","name":"梧州市","provinceCode":"45"},{"code":"4505","name":"北海市","provinceCode":"45"},{"code":"4506","name":"防城港市","provinceCode":"45"},{"code":"4507","name":"钦州市","provinceCode":"45"},{"code":"4508","name":"贵港市","provinceCode":"45"},{"code":"4509","name":"玉林市","provinceCode":"45"},{"code":"4510","name":"百色市","provinceCode":"45"},{"code":"4511","name":"贺州市","provinceCode":"45"},{"code":"4512","name":"河池市","provinceCode":"45"},{"code":"4513","name":"来宾市","provinceCode":"45"},{"code":"4514","name":"崇左市","provinceCode":"45"},{"code":"4601","name":"海口市","provinceCode":"46"},{"code":"4602","name":"三亚市","provinceCode":"46"},{"code":"4603","name":"三沙市","provinceCode":"46"},{"code":"4604","name":"儋州市","provinceCode":"46"},{"code":"4690","name":"省直辖县级行政区划","provinceCode":"46"},{"code":"5001","name":"市辖区","provinceCode":"50"},{"code":"5002","name":"县","provinceCode":"50"},{"code":"5101","name":"成都市","provinceCode":"51"},{"code":"5103","name":"自贡市","provinceCode":"51"},{"code":"5104","name":"攀枝花市","provinceCode":"51"},{"code":"5105","name":"泸州市","provinceCode":"51"},{"code":"5106","name":"德阳市","provinceCode":"51"},{"code":"5107","name":"绵阳市","provinceCode":"51"},{"code":"5108","name":"广元市","provinceCode":"51"},{"code":"5109","name":"遂宁市","provinceCode":"51"},{"code":"5110","name":"内江市","provinceCode":"51"},{"code":"5111","name":"乐山市","provinceCode":"51"},{"code":"5113","name":"南充市","provinceCode":"51"},{"code":"5114","name":"眉山市","provinceCode":"51"},{"code":"5115","name":"宜宾市","provinceCode":"51"},{"code":"5116","name":"广安市","provinceCode":"51"},{"code":"5117","name":"达州市","provinceCode":"51"},{"code":"5118","name":"雅安市","provinceCode":"51"},{"code":"5119","name":"巴中市","provinceCode":"51"},{"code":"5120","name":"资阳市","provinceCode":"51"},{"code":"5132","name":"阿坝藏族羌族自治州","provinceCode":"51"},{"code":"5133","name":"甘孜藏族自治州","provinceCode":"51"},{"code":"5134","name":"凉山彝族自治州","provinceCode":"51"},{"code":"5201","name":"贵阳市","provinceCode":"52"},{"code":"5202","name":"六盘水市","provinceCode":"52"},{"code":"5203","name":"遵义市","provinceCode":"52"},{"code":"5204","name":"安顺市","provinceCode":"52"},{"code":"5205","name":"毕节市","provinceCode":"52"},{"code":"5206","name":"铜仁市","provinceCode":"52"},{"code":"5223","name":"黔西南布依族苗族自治州","provinceCode":"52"},{"code":"5226","name":"黔东南苗族侗族自治州","provinceCode":"52"},{"code":"5227","name":"黔南布依族苗族自治州","provinceCode":"52"},{"code":"5301","name":"昆明市","provinceCode":"53"},{"code":"5303","name":"曲靖市","provinceCode":"53"},{"code":"5304","name":"玉溪市","provinceCode":"53"},{"code":"5305","name":"保山市","provinceCode":"53"},{"code":"5306","name":"昭通市","provinceCode":"53"},{"code":"5307","name":"丽江市","provinceCode":"53"},{"code":"5308","name":"普洱市","provinceCode":"53"},{"code":"5309","name":"临沧市","provinceCode":"53"},{"code":"5323","name":"楚雄彝族自治州","provinceCode":"53"},{"code":"5325","name":"红河哈尼族彝族自治州","provinceCode":"53"},{"code":"5326","name":"文山壮族苗族自治州","provinceCode":"53"},{"code":"5328","name":"西双版纳傣族自治州","provinceCode":"53"},{"code":"5329","name":"大理白族自治州","provinceCode":"53"},{"code":"5331","name":"德宏傣族景颇族自治州","provinceCode":"53"},{"code":"5333","name":"怒江傈僳族自治州","provinceCode":"53"},{"code":"5334","name":"迪庆藏族自治州","provinceCode":"53"},{"code":"5401","name":"拉萨市","provinceCode":"54"},{"code":"5402","name":"日喀则市","provinceCode":"54"},{"code":"5403","name":"昌都市","provinceCode":"54"},{"code":"5404","name":"林芝市","provinceCode":"54"},{"code":"5405","name":"山南市","provinceCode":"54"},{"code":"5424","name":"那曲地区","provinceCode":"54"},{"code":"5425","name":"阿里地区","provinceCode":"54"},{"code":"6101","name":"西安市","provinceCode":"61"},{"code":"6102","name":"铜川市","provinceCode":"61"},{"code":"6103","name":"宝鸡市","provinceCode":"61"},{"code":"6104","name":"咸阳市","provinceCode":"61"},{"code":"6105","name":"渭南市","provinceCode":"61"},{"code":"6106","name":"延安市","provinceCode":"61"},{"code":"6107","name":"汉中市","provinceCode":"61"},{"code":"6108","name":"榆林市","provinceCode":"61"},{"code":"6109","name":"安康市","provinceCode":"61"},{"code":"6110","name":"商洛市","provinceCode":"61"},{"code":"6201","name":"兰州市","provinceCode":"62"},{"code":"6202","name":"嘉峪关市","provinceCode":"62"},{"code":"6203","name":"金昌市","provinceCode":"62"},{"code":"6204","name":"白银市","provinceCode":"62"},{"code":"6205","name":"天水市","provinceCode":"62"},{"code":"6206","name":"武威市","provinceCode":"62"},{"code":"6207","name":"张掖市","provinceCode":"62"},{"code":"6208","name":"平凉市","provinceCode":"62"},{"code":"6209","name":"酒泉市","provinceCode":"62"},{"code":"6210","name":"庆阳市","provinceCode":"62"},{"code":"6211","name":"定西市","provinceCode":"62"},{"code":"6212","name":"陇南市","provinceCode":"62"},{"code":"6229","name":"临夏回族自治州","provinceCode":"62"},{"code":"6230","name":"甘南藏族自治州","provinceCode":"62"},{"code":"6301","name":"西宁市","provinceCode":"63"},{"code":"6302","name":"海东市","provinceCode":"63"},{"code":"6322","name":"海北藏族自治州","provinceCode":"63"},{"code":"6323","name":"黄南藏族自治州","provinceCode":"63"},{"code":"6325","name":"海南藏族自治州","provinceCode":"63"},{"code":"6326","name":"果洛藏族自治州","provinceCode":"63"},{"code":"6327","name":"玉树藏族自治州","provinceCode":"63"},{"code":"6328","name":"海西蒙古族藏族自治州","provinceCode":"63"},{"code":"6401","name":"银川市","provinceCode":"64"},{"code":"6402","name":"石嘴山市","provinceCode":"64"},{"code":"6403","name":"吴忠市","provinceCode":"64"},{"code":"6404","name":"固原市","provinceCode":"64"},{"code":"6405","name":"中卫市","provinceCode":"64"},{"code":"6501","name":"乌鲁木齐市","provinceCode":"65"},{"code":"6502","name":"克拉玛依市","provinceCode":"65"},{"code":"6504","name":"吐鲁番市","provinceCode":"65"},{"code":"6505","name":"哈密市","provinceCode":"65"},{"code":"6523","name":"昌吉回族自治州","provinceCode":"65"},{"code":"6527","name":"博尔塔拉蒙古自治州","provinceCode":"65"},{"code":"6528","name":"巴音郭楞蒙古自治州","provinceCode":"65"},{"code":"6529","name":"阿克苏地区","provinceCode":"65"},{"code":"6530","name":"克孜勒苏柯尔克孜自治州","provinceCode":"65"},{"code":"6531","name":"喀什地区","provinceCode":"65"},{"code":"6532","name":"和田地区","provinceCode":"65"},{"code":"6540","name":"伊犁哈萨克自治州","provinceCode":"65"},{"code":"6542","name":"塔城地区","provinceCode":"65"},{"code":"6543","name":"阿勒泰地区","provinceCode":"65"},{"code":"6590","name":"自治区直辖县级行政区划","provinceCode":"65"}] | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/close.svg
0 → 100644
| 1 | +++ a/src/assets/close.svg | ||
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> | ||
| 3 | +<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | ||
| 4 | + viewBox="-197 320.9 200 200" style="enable-background:new -197 320.9 200 200;" xml:space="preserve"> | ||
| 5 | +<style type="text/css"> | ||
| 6 | + .st0{fill:#2F77F1;} | ||
| 7 | + .st1{fill:#FFFFFF;} | ||
| 8 | +</style> | ||
| 9 | +<path class="st0" d="M-175.9,320.9H3c0,9,0,9.5,0,21.1v157.9c0,11.6,0,14.7,0,21.1h-178.9c-11.6,0-21.1-9.5-21.1-21.1V341.9 | ||
| 10 | + C-197,330.4-187.5,320.9-175.9,320.9z"/> | ||
| 11 | +<g> | ||
| 12 | + <path class="st1" d="M-63.4,441.4l-24-24l24-24l-9.6-9.6l-24,24l-24-24l-9.6,9.6l24,24l-24,24l9.6,9.6l24-24l24,24L-63.4,441.4z"/> | ||
| 13 | +</g> | ||
| 14 | +</svg> |
src/assets/copy.svg
0 → 100644
| 1 | +++ a/src/assets/copy.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1568962450177" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="17039" width="24" height="24" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M202.20928 920.32c-54.32832 0-98.52928-44.20096-98.52928-98.52928V357.10464c0-54.32832 44.20096-98.52928 98.52928-98.52928h464.6912c54.31808 0 98.52928 44.20096 98.52928 98.52928v464.68608c0 54.32832-44.2112 98.52928-98.52928 98.52928h-464.6912z m0-619.58144c-33.7152 0-56.36608 22.65088-56.36608 56.36608v464.68608c0 33.7152 22.65088 56.36608 56.36608 56.36608h464.6912c33.71008 0 56.36096-22.65088 56.36096-56.36608V357.10464c0-33.7152-22.65088-56.36608-56.36096-56.36608h-464.6912z m56.36096 464.68608v-42.1632H455.6288v42.1632H258.57024z m567.9616-42.3168c31.0784-2.02752 51.63008-24.09984 51.63008-56.21248V202.20928c0-33.7152-22.65088-56.3712-56.3712-56.3712H357.10464c-32.11264 0-54.19008 20.55168-56.21248 51.6352h-42.20416c2.4832-52.14208 45.68064-93.79328 98.42176-93.79328h464.68608c54.32832 0 98.52928 44.20096 98.52928 98.52928v464.68608c0 52.74112-41.66144 95.93344-93.78816 98.42176v-42.20928z m-567.9616-60.94848v-42.15808h351.95904v42.15808H258.57024z m0-103.26016v-42.1632h351.95904v42.1632H258.57024z m0-103.26528v-42.1632h351.95904v42.1632H258.57024z" fill="#1296db" p-id="17040"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/copyall.svg
0 → 100644
| 1 | +++ a/src/assets/copyall.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1568957912045" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="21976" width="24" height="24" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M725.179728 157.115733H147.461683C68.090305 157.115733 3.487283 221.809778 3.487283 301.283556v578.548622C3.487283 959.305956 68.090305 1024 147.461683 1024H725.179728c79.371378 0 143.9744-64.694044 143.9744-144.167822V301.283556c0-79.485156-64.603022-144.1792-143.9744-144.1792z m79.371377 722.716445a78.836622 78.836622 0 0 1-79.371377 79.485155H147.461683a78.836622 78.836622 0 0 1-79.371378-79.485155V301.283556a78.836622 78.836622 0 0 1 79.371378-79.485156H725.179728a78.836622 78.836622 0 0 1 79.371377 79.485156z m0 0" p-id="21977" fill="#1296db"></path><path d="M878.438394 0H250.817417c-44.293689 0-86.744178 22.175289-114.437689 57.298489-11.070578 14.791111-7.384178 35.1232 7.384177 46.216533s35.066311 7.395556 46.136889-7.395555c14.791111-20.332089 36.909511-31.414044 62.759823-31.414045h627.564088c42.461867 0 77.5168 35.111822 77.5168 77.630578v628.440178c0 20.332089-9.227378 40.664178-23.995733 55.455289a34.224356 34.224356 0 0 0-1.831822 46.205155c3.6864 5.552356 12.925156 9.238756 22.152533 9.238756a34.019556 34.019556 0 0 0 22.152534-9.238756c27.682133-25.873067 44.293689-64.694044 44.293688-103.537778v-626.574222A142.279111 142.279111 0 0 0 878.438394 0z m0 0" p-id="21978" fill="#1296db"></path><path d="M679.042839 558.216533H468.622217V345.645511a33.223111 33.223111 0 1 0-66.446223 0V556.373333H191.755372a33.268622 33.268622 0 0 0 0 66.537245h210.420622v210.716444a33.223111 33.223111 0 1 0 66.446223 0V622.8992h210.420622a33.109333 33.109333 0 0 0 33.223111-33.268622c0-18.488889-14.791111-31.425422-33.223111-31.425422z m0 0" p-id="21979" fill="#1296db"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/default2.png
0 → 100644
11.4 KB
src/assets/delete.svg
0 → 100644
| 1 | +++ a/src/assets/delete.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1568961105953" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9439" width="22" height="22" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M799.104 874.24a62.464 62.464 0 0 1-62.4 62.4H287.36a62.464 62.464 0 0 1-62.4-62.336V212.096h574.208v662.208zM349.632 100.224c0-7.232 5.632-12.8 12.8-12.8h299.904c7.232 0 12.8 5.568 12.8 12.8v37.568H349.632v-37.568z m636.608 37.568H749.504v-37.568c0-48-39.168-87.168-87.168-87.168H362.432c-48 0-87.168 39.168-87.168 87.168v37.568H37.76a37.568 37.568 0 1 0 0 75.2h112V874.24a137.6 137.6 0 0 0 137.536 137.536h449.408a137.6 137.6 0 0 0 137.6-137.6V212.16h112a37.568 37.568 0 0 0 37.504-37.568 36.864 36.864 0 0 0-37.568-36.8zM512 823.872a37.568 37.568 0 0 0 37.568-37.568V386.432a37.568 37.568 0 1 0-75.136 0v399.872c0 20.8 16.768 37.568 37.568 37.568z m-175.168 0a37.568 37.568 0 0 0 37.632-37.568V386.432a37.568 37.568 0 1 0-75.2 0v399.872a38.592 38.592 0 0 0 37.568 37.568z m350.336 0a37.568 37.568 0 0 0 37.568-37.568V386.432a37.568 37.568 0 1 0-75.2 0v399.872c0 20.8 16.832 37.568 37.632 37.568z" fill="#D81E06" p-id="9440"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/disableadd.svg
0 → 100644
| 1 | +++ a/src/assets/disableadd.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1566806447684" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="879" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M896 512a384 384 0 1 0-384 384 384 384 0 0 0 384-384z m64 0A448 448 0 1 1 512 64a448 448 0 0 1 448 448z" fill="#8a8a8a" p-id="880"></path><path d="M320 544a32 32 0 0 1 0-64h384a32 32 0 0 1 0 64z" fill="#8a8a8a" p-id="881"></path><path d="M480 320a32 32 0 0 1 64 0v384a32 32 0 0 1-64 0z" fill="#8a8a8a" p-id="882"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/disableaddChild.svg
0 → 100644
| 1 | +++ a/src/assets/disableaddChild.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1603693491274" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3177" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M542.117647 512H813.176471a60.235294 60.235294 0 0 1 60.235294 60.235294v120.470588h60.235294a60.235294 60.235294 0 0 1 60.235294 60.235294v180.705883a60.235294 60.235294 0 0 1-60.235294 60.235294h-180.705883a60.235294 60.235294 0 0 1-60.235294-60.235294v-180.705883a60.235294 60.235294 0 0 1 60.235294-60.235294H271.058824a60.235294 60.235294 0 0 1 60.235294 60.235294v180.705883a60.235294 60.235294 0 0 1-60.235294 60.235294H90.352941a60.235294 60.235294 0 0 1-60.235294-60.235294v-180.705883a60.235294 60.235294 0 0 1 60.235294-60.235294h60.235294v-120.470588a60.235294 60.235294 0 0 1 60.235294-60.235294h271.058824v-120.470588H331.294118a60.235294 60.235294 0 0 1-60.235294-60.235294v-240.941177a60.235294 60.235294 0 0 1 60.235294-60.235294h361.411764a60.235294 60.235294 0 0 1 60.235294 60.235294v240.941177a60.235294 60.235294 0 0 1-60.235294 60.235294H542.117647v120.470588z m-331.294118 180.705882h602.352942v-120.470588H210.823529v120.470588z" fill="#8a8a8a" p-id="3178"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/disablecopy.svg
0 → 100644
| 1 | +++ a/src/assets/disablecopy.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1568962450177" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="17039" width="24" height="24" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M202.20928 920.32c-54.32832 0-98.52928-44.20096-98.52928-98.52928V357.10464c0-54.32832 44.20096-98.52928 98.52928-98.52928h464.6912c54.31808 0 98.52928 44.20096 98.52928 98.52928v464.68608c0 54.32832-44.2112 98.52928-98.52928 98.52928h-464.6912z m0-619.58144c-33.7152 0-56.36608 22.65088-56.36608 56.36608v464.68608c0 33.7152 22.65088 56.36608 56.36608 56.36608h464.6912c33.71008 0 56.36096-22.65088 56.36096-56.36608V357.10464c0-33.7152-22.65088-56.36608-56.36096-56.36608h-464.6912z m56.36096 464.68608v-42.1632H455.6288v42.1632H258.57024z m567.9616-42.3168c31.0784-2.02752 51.63008-24.09984 51.63008-56.21248V202.20928c0-33.7152-22.65088-56.3712-56.3712-56.3712H357.10464c-32.11264 0-54.19008 20.55168-56.21248 51.6352h-42.20416c2.4832-52.14208 45.68064-93.79328 98.42176-93.79328h464.68608c54.32832 0 98.52928 44.20096 98.52928 98.52928v464.68608c0 52.74112-41.66144 95.93344-93.78816 98.42176v-42.20928z m-567.9616-60.94848v-42.15808h351.95904v42.15808H258.57024z m0-103.26016v-42.1632h351.95904v42.1632H258.57024z m0-103.26528v-42.1632h351.95904v42.1632H258.57024z" fill="#8a8a8a" p-id="17040"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/disablecopyall.svg
0 → 100644
| 1 | +++ a/src/assets/disablecopyall.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1568962151043" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="14163" width="22" height="22" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M725.179728 157.115733H147.461683C68.090305 157.115733 3.487283 221.809778 3.487283 301.283556v578.548622C3.487283 959.305956 68.090305 1024 147.461683 1024H725.179728c79.371378 0 143.9744-64.694044 143.9744-144.167822V301.283556c0-79.485156-64.603022-144.1792-143.9744-144.1792z m79.371377 722.716445a78.836622 78.836622 0 0 1-79.371377 79.485155H147.461683a78.836622 78.836622 0 0 1-79.371378-79.485155V301.283556a78.836622 78.836622 0 0 1 79.371378-79.485156H725.179728a78.836622 78.836622 0 0 1 79.371377 79.485156z m0 0" p-id="14164" fill="#8a8a8a"></path><path d="M878.438394 0H250.817417c-44.293689 0-86.744178 22.175289-114.437689 57.298489-11.070578 14.791111-7.384178 35.1232 7.384177 46.216533s35.066311 7.395556 46.136889-7.395555c14.791111-20.332089 36.909511-31.414044 62.759823-31.414045h627.564088c42.461867 0 77.5168 35.111822 77.5168 77.630578v628.440178c0 20.332089-9.227378 40.664178-23.995733 55.455289a34.224356 34.224356 0 0 0-1.831822 46.205155c3.6864 5.552356 12.925156 9.238756 22.152533 9.238756a34.019556 34.019556 0 0 0 22.152534-9.238756c27.682133-25.873067 44.293689-64.694044 44.293688-103.537778v-626.574222A142.279111 142.279111 0 0 0 878.438394 0z m0 0" p-id="14165" fill="#8a8a8a"></path><path d="M679.042839 558.216533H468.622217V345.645511a33.223111 33.223111 0 1 0-66.446223 0V556.373333H191.755372a33.268622 33.268622 0 0 0 0 66.537245h210.420622v210.716444a33.223111 33.223111 0 1 0 66.446223 0V622.8992h210.420622a33.109333 33.109333 0 0 0 33.223111-33.268622c0-18.488889-14.791111-31.425422-33.223111-31.425422z m0 0" p-id="14166" fill="#8a8a8a"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/disabledelete.svg
0 → 100644
| 1 | +++ a/src/assets/disabledelete.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1568961105953" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9439" width="22" height="22" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M799.104 874.24a62.464 62.464 0 0 1-62.4 62.4H287.36a62.464 62.464 0 0 1-62.4-62.336V212.096h574.208v662.208zM349.632 100.224c0-7.232 5.632-12.8 12.8-12.8h299.904c7.232 0 12.8 5.568 12.8 12.8v37.568H349.632v-37.568z m636.608 37.568H749.504v-37.568c0-48-39.168-87.168-87.168-87.168H362.432c-48 0-87.168 39.168-87.168 87.168v37.568H37.76a37.568 37.568 0 1 0 0 75.2h112V874.24a137.6 137.6 0 0 0 137.536 137.536h449.408a137.6 137.6 0 0 0 137.6-137.6V212.16h112a37.568 37.568 0 0 0 37.504-37.568 36.864 36.864 0 0 0-37.568-36.8zM512 823.872a37.568 37.568 0 0 0 37.568-37.568V386.432a37.568 37.568 0 1 0-75.136 0v399.872c0 20.8 16.768 37.568 37.568 37.568z m-175.168 0a37.568 37.568 0 0 0 37.632-37.568V386.432a37.568 37.568 0 1 0-75.2 0v399.872a38.592 38.592 0 0 0 37.568 37.568z m350.336 0a37.568 37.568 0 0 0 37.568-37.568V386.432a37.568 37.568 0 1 0-75.2 0v399.872c0 20.8 16.832 37.568 37.632 37.568z" fill="#8a8a8a" p-id="9440"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/disablematerial.svg
0 → 100644
| 1 | +++ a/src/assets/disablematerial.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1568961927726" class="icon" viewBox="0 0 1129 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11336" width="35.28125" height="32" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M466.449655 555.784828h-10.24a93.395862 93.395862 0 1 1 10.24 0z m0-151.128276a57.908966 57.908966 0 1 0 36.369655 103.106207 57.202759 57.202759 0 0 0 21.186207-38.84138 57.908966 57.908966 0 0 0-51.2-63.911724z" fill="#8a8a8a" p-id="11337"></path><path d="M466.626207 617.931034a141.241379 141.241379 0 0 1-17.655173 0 156.248276 156.248276 0 1 1 17.655173 0z m0-275.773793a120.231724 120.231724 0 1 0 119.878621 133.296552 120.408276 120.408276 0 0 0-105.931035-132.590345 110.874483 110.874483 0 0 0-14.477241-0.529655z" fill="#8a8a8a" p-id="11338"></path><path d="M331.211034 767.470345a66.56 66.56 0 0 1-10.24 0A93.21931 93.21931 0 1 1 423.724138 684.314483a93.395862 93.395862 0 0 1-92.336552 83.155862z m0-151.128276a57.908966 57.908966 0 0 0-35.310344 12.711724 58.085517 58.085517 0 0 0-8.827587 81.390345 57.908966 57.908966 0 0 0 101.34069-30.013793 58.085517 58.085517 0 0 0-51.376552-63.735173z" fill="#8a8a8a" p-id="11339"></path><path d="M331.211034 829.793103h-17.655172a155.718621 155.718621 0 0 1 2.295172-309.671724 17.655172 17.655172 0 0 1 3.177932 35.310345 120.408276 120.408276 0 0 0-108.049656 105.931035 120.231724 120.231724 0 0 0 224.573793 70.620689 17.655172 17.655172 0 0 1 30.896552 17.655173A155.542069 155.542069 0 0 1 331.211034 829.793103zM554.195862 586.504828a17.655172 17.655172 0 0 1-13.947586-6.885518 17.655172 17.655172 0 0 1 3.177931-24.717241l175.668965-136.474483 12.888276-9.886896a185.732414 185.732414 0 0 0 63.382069-66.206897 108.049655 108.049655 0 0 0-9.533793-110.168276 125.704828 125.704828 0 0 0-134.355862-45.020689c-40.253793 10.24-74.504828 39.017931-107.696552 66.736551-13.064828 10.946207-26.482759 22.068966-40.077241 32.132414l-105.931035 77.85931A17.655172 17.655172 0 1 1 376.937931 335.448276l105.931035-77.85931c12.888276-9.357241 25.246897-19.773793 38.488275-30.72 36.193103-30.366897 73.622069-61.793103 121.467587-73.975173a159.77931 159.77931 0 0 1 171.07862 57.732414 141.241379 141.241379 0 0 1 13.771035 146.537931 217.511724 217.511724 0 0 1-74.151724 79.448276c-4.237241 3.177931-8.474483 6.355862-12.535173 9.710345L564.965517 582.62069a17.655172 17.655172 0 0 1-10.769655 3.884138zM600.275862 776.827586h-10.24a93.21931 93.21931 0 0 1 20.303448-185.202758 92.16 92.16 0 0 1 62.499311 34.251034 93.21931 93.21931 0 0 1 19.950345 68.502069A93.042759 93.042759 0 0 1 600.275862 776.827586z m0-150.951724a57.908966 57.908966 0 0 0-36.193103 12.711724 58.085517 58.085517 0 1 0 42.548965-12.35862z" fill="#8a8a8a" p-id="11340"></path><path d="M600.275862 840.033103h-17.655172a155.718621 155.718621 0 0 1-137.710345-171.608275 152.717241 152.717241 0 0 1 17.655172-56.32 17.655172 17.655172 0 1 1 31.073104 17.655172A120.231724 120.231724 0 1 0 612.457931 564.965517a17.655172 17.655172 0 0 1-15.536552-19.420689 17.655172 17.655172 0 0 1 19.42069-15.536552A155.542069 155.542069 0 0 1 600.275862 840.033103z" fill="#8a8a8a" p-id="11341"></path><path d="M687.315862 808.253793a17.655172 17.655172 0 0 1-13.947586-6.708965 17.655172 17.655172 0 0 1 3.177931-24.717242l176.551724-136.474483 12.888276-9.710344A188.733793 188.733793 0 0 0 928.485517 564.965517a108.049655 108.049655 0 0 0-9.533793-110.168276 125.704828 125.704828 0 0 0-134.355862-45.197241 17.655172 17.655172 0 1 1-8.827586-34.074483 159.77931 159.77931 0 0 1 171.078621 57.732414 141.241379 141.241379 0 0 1 13.771034 146.361379 218.041379 218.041379 0 0 1-74.151724 79.624828l-12.535173 9.533793-176.551724 136.474483a17.655172 17.655172 0 0 1-10.063448 3.001379zM279.481379 563.906207a17.655172 17.655172 0 0 1-9.533793-32.485517l57.555862-37.075862a17.655172 17.655172 0 0 1 18.714483 30.013793l-57.37931 36.193103a17.655172 17.655172 0 0 1-9.357242 3.354483z" fill="#8a8a8a" p-id="11342"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/disablematerialremark.svg
0 → 100644
| 1 | +++ a/src/assets/disablematerialremark.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1568961712047" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13138" width="22" height="22" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M230.4 256h563.2c14.08 0 25.6-11.52 25.6-25.6s-11.52-25.6-25.6-25.6H230.4c-14.08 0-25.6 11.52-25.6 25.6s11.52 25.6 25.6 25.6zM230.4 409.6h563.2c14.08 0 25.6-11.52 25.6-25.6s-11.52-25.6-25.6-25.6H230.4c-14.08 0-25.6 11.52-25.6 25.6s11.52 25.6 25.6 25.6zM571.1728 791.6304L860.8016 502l72.4064 72.4064-289.6288 289.6288zM1005.6 429.6c-20-20-52.48-20-72.48 0l-36.16 36.16 72.48 72.48 36.16-36.16c20-20.16 20-52.48 0-72.48zM532 920.48l92.96-37.92-72.48-72.48-37.92 92.96c-2.56 4.8-1.92 11.04 2.24 15.04 4.16 4.32 10.24 5.12 15.2 2.4z" p-id="13139" fill="#8a8a8a"></path><path d="M921.6 921.76c0 28.16-22.88 51.04-51.04 51.04H153.44C125.28 972.8 102.4 949.92 102.4 921.76V102.24C102.4 74.08 125.28 51.2 153.44 51.2h717.12c28.16 0 51.04 22.88 51.04 51.04v194.08l51.2-51.2V102.4c0-56.64-45.92-102.4-102.4-102.4H153.6C97.12 0 51.2 45.92 51.2 102.4v819.2c0 56.64 45.92 102.4 102.4 102.4h716.8c56.64 0 102.4-45.92 102.4-102.4V679.52l-51.2 51.2v191.04z" p-id="13140" fill="#8a8a8a"></path><path d="M230.4 563.2h424.32l51.2-51.2H230.4c-14.08 0-25.6 11.52-25.6 25.6s11.52 25.6 25.6 25.6zM230.4 716.8h270.72l51.2-51.2H230.4c-14.08 0-25.6 11.52-25.6 25.6s11.52 25.6 25.6 25.6z" p-id="13141" fill="#8a8a8a"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/disableprocess.svg
0 → 100644
| 1 | +++ a/src/assets/disableprocess.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1568961851586" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7382" width="22" height="22" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M43.049378 318.944062l-0.217999 0.333 453.811666 262.014229a29.879912 29.879912 0 0 0 14.946956 4.019989c5.392984 0 10.686969-1.451996 15.263955-4.183988l450.338677-259.994236c14.251958-8.253976 19.132944-26.569922 10.873968-40.82788-2.681992-4.634986-6.561981-8.462975-11.163968-11.039967L528.287952 9.121973a29.849912 29.849912 0 0 0-14.945956-4.025988 29.859912 29.859912 0 0 0-16.493951 4.944985L46.872367 269.828207c-14.257958 8.189976-19.193944 26.457922-11.001967 40.72188a29.784912 29.784912 0 0 0 7.179978 8.392975zM513.234996 69.459796l389.318856 225.769336L511.616001 520.938469l-390.178853-225.279338L513.235996 69.459796z m463.668637 419.145768l-84.438751-48.964856-59.686825 34.459898 69.780795 40.469881-390.942851 225.706337-390.178853-225.272338 69.929794-40.373881-59.654824-34.442899-84.839751 48.985856c-14.256958 8.189976-19.194944 26.456922-11.000967 40.71588a29.803912 29.803912 0 0 0 7.328978 8.517975l-0.189999 0.317999 453.636666 261.909231a29.875912 29.875912 0 0 0 30.209911-0.16l450.334677-259.997236c14.253958-8.257976 19.134944-26.571922 10.875968-40.82588-2.688992-4.636986-6.563981-8.466975-11.165968-11.044967z m0 219.343355l-84.089752-48.766857-59.682825 34.457899 69.427796 40.269882-390.942851 225.710336-390.178853-225.273338 69.582796-40.179881-59.653825-34.436899-84.492752 48.785856c-14.257958 8.188976-19.193944 26.457922-11.001967 40.716881a29.742913 29.742913 0 0 0 7.233978 8.436975l-0.206999 0.328999 453.745666 261.97323a29.895912 29.895912 0 0 0 14.946956 4.024988 29.875912 29.875912 0 0 0 15.263955-4.178988l450.338677-259.999235c14.251958-8.259976 19.132944-26.576922 10.873968-40.82488-2.681992-4.636986-6.557981-8.467975-11.164968-11.044968z" fill="#8a8a8a" p-id="7383"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/eject.svg
0 → 100644
| 1 | +++ a/src/assets/eject.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1585118901220" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1282" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M556.69999999 904.5l-369.09999999-369.1c-6.6-6.6-9.8-14.30000001-9.8-23.4 0-9 3.3-16.8 9.8-23.4l369.09999999-369.1c6.6-6.6 12.1-8.9 16.60000001-6.8 4.5 2.10000001 6.8 7.7 6.8 16.6L580.1 894.6c0 9-2.3 14.5-6.8 16.6-4.4 2.2-10-0.1-16.60000001-6.7z m289.50000001-758.4L846.2 877.9c0 9-3.3 16.8-9.8 23.4-6.6 6.6-14.30000001 9.8-23.4 9.8L679.9 911.1c-9 0-16.8-3.3-23.39999999-9.8-6.6-6.6-9.8-14.30000001-9.80000001-23.4l0-732c0-9 3.3-16.8 9.8-23.4 6.6-6.6 14.39999999-9.8 23.4-9.8L813 112.7c9 0 16.8 3.3 23.4 9.8 6.5 6.7 9.8 14.5 9.8 23.6z" fill="#1296DB" p-id="1283"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/ejectleft.svg
0 → 100644
| 1 | +++ a/src/assets/ejectleft.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1603849052338" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1137" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M467.30000001 119.5l369.09999999 369.1c6.6 6.6 9.8 14.30000001 9.8 23.4 0 9-3.3 16.8-9.8 23.4l-369.09999999 369.1c-6.6 6.6-12.1 8.9-16.60000001 6.8-4.5-2.10000001-6.8-7.7-6.8-16.6L443.9 129.4c0-9 2.3-14.5 6.8-16.6 4.4-2.2 10 0.1 16.60000001 6.7z m-289.50000001 758.4L177.8 146.1c0-9 3.3-16.8 9.8-23.4 6.6-6.6 14.30000001-9.8 23.4-9.8L344.1 112.9c9 0 16.8 3.3 23.39999999 9.8 6.6 6.6 9.8 14.30000001 9.80000001 23.4l0 732c0 9-3.3 16.8-9.8 23.4-6.6 6.6-14.39999999 9.8-23.4 9.8L211 911.3c-9 0-16.8-3.3-23.4-9.8-6.5-6.7-9.8-14.5-9.8-23.6z" fill="#1296DB" p-id="1138"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/file.svg
0 → 100644
| 1 | +++ a/src/assets/file.svg | ||
| 1 | +<svg width="13" height="11" viewBox="0 0 13 11" fill="none" xmlns="http://www.w3.org/2000/svg"> | ||
| 2 | +<path d="M12.4275 10.3649H0.57251C0.255895 10.3649 0 10.1373 0 9.85579V1.54257C0 1.26101 0.255895 1.03345 0.57251 1.03345H12.4275C12.7441 1.03345 13 1.26101 13 1.54257V9.85579C13 10.1361 12.7427 10.3649 12.4275 10.3649Z" fill="#FFE9B4"/> | ||
| 3 | +<path d="M6.50728 3.49384H0V0.573135C0 0.256171 0.256186 0 0.57315 0H5.02663C5.27994 0 5.50281 0.164997 5.57518 0.408139L6.50728 3.49384Z" fill="#FFB02C"/> | ||
| 4 | +<path d="M12.4275 10.3652H0.57251C0.255895 10.3652 0 10.1093 0 9.79259V2.39241C0 2.07575 0.255895 1.81982 0.57251 1.81982H12.4275C12.7441 1.81982 13 2.07575 13 2.39241V9.79259C13 10.1078 12.7427 10.3652 12.4275 10.3652Z" fill="#FFCA28"/> | ||
| 5 | +</svg> |
src/assets/file_single.svg
0 → 100644
| 1 | +++ a/src/assets/file_single.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1634709307268" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1211" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><defs><style type="text/css"></style></defs><path d="M160 0h512l256 256v704c0 35.3472-28.6528 64-64 64H160c-35.3472 0-64-28.6528-64-64V64c0-35.3472 28.6528-64 64-64z" fill="#F6AD00" p-id="1212"></path><path d="M258.528 742.0672L351.8336 604.928a14.5024 14.5024 0 0 1 22.1696-2.1824l61.664 60.416 135.296-212.064a14.5024 14.5024 0 0 1 24.8064 0.5568l168.1024 291.328a14.5024 14.5024 0 0 1-12.5696 21.7664H270.528a14.5024 14.5024 0 0 1-12.0064-22.6816z" fill="#FFF7F7" p-id="1213"></path><path d="M359.616 431.5456m-73.1456 0a73.1456 73.1456 0 1 0 146.2912 0 73.1456 73.1456 0 1 0-146.2912 0Z" fill="#FFFFFF" p-id="1214"></path><path d="M672 0l256 256h-192c-35.3472 0-64-28.6528-64-64V0z" fill="#FBDE99" p-id="1215"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/foot_logo.png
0 → 100644
15.5 KB
src/assets/footer_logo.png
0 → 100644
1.25 KB
src/assets/hasChecked.svg
0 → 100644
| 1 | +++ a/src/assets/hasChecked.svg | ||
| 1 | +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1561611823487" class="icon" viewBox="0 0 1035 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="528" xmlns:xlink="http://www.w3.org/1999/xlink" width="202.1484375" height="200"><defs><style type="text/css"></style></defs><path d="M268.288 792.576l22.528-8.192c135.168 104.448 325.632 110.592 466.944 4.096 75.776-57.344 122.88-137.216 143.36-223.232l22.528-8.192c-16.384 96.256-69.632 184.32-151.552 247.808-155.648 114.688-362.496 104.448-503.808-12.288zM116.736 438.272c8.192-110.592 63.488-215.04 155.648-284.672 159.744-122.88 385.024-102.4 528.384 38.912l-20.48 8.192c-135.168-126.976-344.064-143.36-495.616-30.72-86.016 65.536-137.216 161.792-147.456 262.144l-20.48 6.144zM428.032 737.28l30.72-10.24c73.728 20.48 153.6 8.192 217.088-40.96 22.528-16.384 40.96-36.864 53.248-55.296l30.72-10.24c-18.432 32.768-43.008 59.392-71.68 83.968C610.304 757.76 512 768 428.032 737.28z m-165.888-352.256c18.432-51.2 49.152-94.208 92.16-126.976 90.112-69.632 210.944-69.632 303.104-14.336l-24.576 8.192c-83.968-43.008-186.368-36.864-266.24 22.528-34.816 26.624-63.488 61.44-79.872 102.4l-24.576 8.192z m67.584-149.504l-4.096 10.24-4.096 4.096c-2.048 0-4.096 2.048-4.096 0l-4.096-4.096-6.144-8.192c0-2.048-4.096-4.096-6.144-2.048l-12.288-2.048c-4.096 0-6.144-4.096-6.144-8.192l2.048-2.048 6.144-10.24c2.048 0 2.048-2.048 2.048-6.144l-2.048-10.24c0-2.048 0-4.096 2.048-6.144 2.048 0 4.096-2.048 6.144 0l10.24 4.096c2.048 2.048 4.096 0 6.144 0l10.24-4.096c4.096-2.048 6.144 0 10.24 2.048l2.048 4.096v10.24l2.048 6.144 8.192 8.192c4.096 4.096 2.048 8.192-2.048 8.192l-4.096 2.048-10.24 2.048-2.048 2.048zM491.52 172.032l-8.192 6.144c-2.048 0-4.096 2.048-6.144 0-2.048-2.048-4.096-4.096-2.048-6.144v-10.24l-2.048-6.144-10.24-6.144c-4.096-4.096-2.048-8.192 0-8.192l12.288-4.096c2.048 0 4.096-2.048 4.096-4.096l8.192-14.336 4.096-4.096c2.048 0 4.096-2.048 4.096 0l4.096 4.096 6.144 8.192c0 2.048 4.096 4.096 6.144 2.048l12.288 2.048c4.096 0 6.144 4.096 4.096 6.144 0 2.048-2.048 2.048-2.048 2.048l-8.192 8.192c-2.048 0-2.048 2.048 0 4.096l2.048 14.336c0 2.048 0 4.096-2.048 6.144-2.048 0-4.096 2.048-6.144 0l-10.24-4.096c-6.144 4.096-8.192 4.096-10.24 4.096z m167.936 36.864h-10.24c-4.096 0-6.144-4.096-6.144-6.144 0-2.048 2.048-2.048 2.048-2.048l6.144-8.192c2.048-2.048 2.048-2.048 0-4.096l-2.048-12.288c0-2.048 0-4.096 2.048-6.144l4.096-4.096 10.24 2.048c2.048 2.048 4.096 0 6.144 0l8.192-4.096c4.096-2.048 8.192 0 10.24 2.048l2.048 4.096v10.24l2.048 6.144 8.192 8.192c4.096 4.096 2.048 8.192 2.048 10.24l-14.336 6.144c-2.048 0-4.096 2.048-4.096 4.096l-2.048 6.144-4.096 4.096c-2.048 0-4.096 2.048-4.096 0l-2.048-2.048-8.192-8.192c-2.048-6.144-2.048-4.096-6.144-6.144z m110.592 454.656l2.048-12.288c0-2.048 2.048-2.048 4.096-4.096l4.096-2.048 2.048 2.048 8.192 8.192c0 2.048 2.048 2.048 6.144 2.048l10.24-2.048c2.048 0 4.096 0 6.144 2.048 0 2.048 2.048 4.096 0 6.144l-6.144 12.288 6.144 16.384c0 2.048 2.048 4.096 0 6.144-2.048 2.048-4.096 4.096-6.144 2.048l-12.288-2.048-6.144 2.048-8.192 8.192-6.144 2.048c-2.048 0-2.048-2.048-6.144-2.048l-2.048-4.096-2.048-12.288c0-2.048-2.048-4.096-4.096-4.096l-8.192-6.144c-2.048-2.048-4.096-4.096-4.096-10.24l4.096-4.096 8.192-6.144c6.144 6.144 8.192 2.048 10.24 2.048z m-137.216 104.448l8.192-8.192 6.144-2.048c2.048 0 2.048 2.048 6.144 2.048l6.144 14.336c0 2.048 2.048 4.096 4.096 4.096l10.24 4.096c2.048 2.048 4.096 4.096 4.096 10.24l-4.096 6.144h-14.336c-2.048 0-4.096 4.096-2.048 6.144l-2.048 12.288c0 2.048-2.048 2.048-2.048 6.144l-4.096 2.048c-2.048 0-2.048-2.048-2.048-2.048l-8.192-8.192c0-2.048-2.048-2.048-6.144-2.048l-10.24 2.048c-2.048 0-4.096 0-6.144-2.048 0-2.048-2.048-4.096 0-6.144l4.096-10.24c2.048-2.048 0-4.096 0-6.144L614.4 778.24c0-2.048-2.048-4.096 0-6.144 2.048-2.048 4.096-4.096 6.144-2.048l6.144 2.048 6.144-4.096z m-172.032 12.288l10.24-2.048c2.048 0 4.096 0 6.144 2.048l2.048 6.144-2.048 10.24c-2.048 2.048 0 4.096 0 6.144l6.144 10.24c0 2.048 2.048 4.096 0 4.096 0 2.048-2.048 2.048-4.096 4.096l-4.096 2.048h-10.24l-6.144 2.048-4.096 10.24-6.144 2.048c-2.048 0-4.096 0-6.144-2.048l-4.096-16.384c0-2.048-2.048-4.096-4.096-4.096l-10.24-4.096c-2.048-2.048-4.096-4.096-4.096-10.24l2.048-2.048 8.192-8.192c2.048 0 4.096-4.096 2.048-6.144v-10.24c0-2.048 2.048-2.048 2.048-6.144l6.144-2.048c2.048 0 2.048 2.048 2.048 2.048l8.192 8.192c6.144 6.144 8.192 4.096 10.24 4.096zM229.376 374.784l2.048 10.24c0 2.048 0 4.096-2.048 6.144-2.048 0-4.096 2.048-6.144 0l-10.24-4.096c-2.048-2.048-4.096 0-4.096 0l-12.288 2.048c-2.048 0-4.096 0-6.144-2.048-2.048-2.048-4.096-4.096-2.048-6.144l2.048-12.288-2.048-6.144-8.192-6.144c-4.096-4.096-2.048-8.192 2.048-8.192H184.32l10.24-2.048c2.048 0 4.096-2.048 4.096-4.096l6.144-8.192 4.096-4.096h4.096l4.096 4.096 6.144 10.24c0 2.048 4.096 4.096 4.096 4.096l12.288 2.048c4.096 0 6.144 4.096 6.144 8.192l-2.048 2.048-12.288 8.192c0 2.048 0 2.048-2.048 6.144z m-176.128 131.072C34.816 512 24.576 532.48 30.72 552.96l79.872 212.992c6.144 18.432 26.624 28.672 47.104 22.528l833.536-299.008c18.432-6.144 28.672-26.624 22.528-47.104l-79.872-212.992c-6.144-18.432-26.624-28.672-47.104-22.528L53.248 505.856z m-6.144-18.432L880.64 188.416c28.672-10.24 61.44 6.144 71.68 32.768l79.872 212.992c10.24 30.72-4.096 61.44-32.768 71.68L165.888 804.864c-28.672 10.24-61.44-6.144-71.68-32.768L14.336 559.104c-8.192-28.672 4.096-61.44 32.768-71.68z m0 0" fill="#d81e06" p-id="529"></path><path d="M389.12 616.448c20.48-6.144 20.48-12.288 14.336-40.96 8.192 2.048 18.432 2.048 26.624 0 8.192 36.864 4.096 51.2-30.72 63.488l-63.488 22.528c-36.864 12.288-51.2 10.24-61.44-18.432L241.664 552.96l22.528-8.192 10.24 26.624 86.016-30.72-14.336-40.96-118.784 43.008-8.192-22.528 141.312-51.2 34.816 94.208-24.576 8.192-2.048-10.24-86.016 32.768 14.336 40.96c4.096 12.288 8.192 12.288 28.672 4.096l63.488-22.528zM573.44 399.36l12.288 34.816-24.576 8.192-4.096-12.288-116.736 40.96 4.096 14.336-22.528 8.192-12.288-34.816 69.632-24.576c-4.096-4.096-8.192-8.192-10.24-12.288l20.48-14.336 16.384 16.384 67.584-24.576z m-55.296 67.584l59.392-20.48 34.816 94.208-22.528 8.192-2.048-8.192-38.912 12.288 10.24 30.72-22.528 10.24-10.24-30.72-36.864 12.288 4.096 8.192-22.528 8.192-34.816-94.208 57.344-20.48-6.144-16.384 24.576-8.192 6.144 14.336z m-53.248 43.008l4.096 14.336 36.864-12.288-4.096-14.336-36.864 12.288z m53.248 32.768l-4.096-14.336-36.864 12.288 4.096 14.336 36.864-12.288z m6.144-55.296l4.096 14.336 34.816-12.288-4.096-14.336-34.816 12.288z m53.248 34.816l-4.096-14.336-34.816 12.288 4.096 14.336 34.816-12.288zM681.984 466.944l-16.384-16.384 30.72 86.016-20.48 6.144-24.576-69.632c0 16.384 0 30.72-4.096 43.008-4.096-6.144-12.288-14.336-18.432-18.432 6.144-18.432 6.144-49.152 4.096-73.728l-24.576 6.144-8.192-20.48 22.528-8.192-12.288-34.816 22.528-8.192 12.288 34.816 18.432-6.144 8.192 20.48-18.432 6.144 2.048 6.144c8.192 6.144 28.672 22.528 34.816 26.624l-8.192 20.48zM798.72 409.6c-2.048 16.384-8.192 30.72-16.384 45.056 14.336 4.096 30.72 10.24 40.96 16.384l-12.288 20.48c-8.192-6.144-24.576-12.288-40.96-18.432-12.288 18.432-28.672 36.864-51.2 53.248-4.096-4.096-14.336-10.24-20.48-14.336 40.96-28.672 67.584-67.584 71.68-102.4H798.72z m-26.624-32.768c-6.144 36.864-26.624 75.776-57.344 104.448-4.096-4.096-14.336-10.24-18.432-12.288 14.336-14.336 26.624-28.672 36.864-47.104-28.672 12.288-32.768 16.384-36.864 18.432-2.048-4.096-10.24-14.336-12.288-18.432 4.096-2.048 10.24-6.144 12.288-12.288 2.048-4.096 4.096-18.432 8.192-30.72l-30.72 12.288-8.192-20.48 45.056-16.384c-4.096-6.144-8.192-10.24-12.288-16.384l18.432-14.336c6.144 6.144 14.336 14.336 18.432 20.48l38.912-14.336 8.192 20.48-53.248 18.432c-2.048 10.24-4.096 24.576-8.192 34.816l24.576-10.24c2.048-6.144 4.096-14.336 4.096-20.48l22.528 4.096z" fill="#d81e06" p-id="530"></path></svg> | ||
| 0 | \ No newline at end of file | 2 | \ No newline at end of file |
src/assets/haveCancel.png
0 → 100644
27.6 KB
src/assets/haveChecked.png
0 → 100644
33.3 KB
src/assets/haveChecking.svg
0 → 100644
| 1 | +++ a/src/assets/haveChecking.svg | ||
| 1 | +<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="842.000000" height="834.000000" viewBox="0 0 842 834" fill="none" xmlns="http://www.w3.org/2000/svg"> | ||
| 2 | + <desc> | ||
| 3 | + Created with Pixso. | ||
| 4 | + </desc> | ||
| 5 | + <rect width="842.000000" height="834.000000" fill="url(#pattern_2_20)"/> | ||
| 6 | + <defs> | ||
| 7 | + <pattern id="pattern_2_20" patternContentUnits="objectBoundingBox" width="1.000000" height="1.000000"> | ||
| 8 | + <use xlink:href="#image2_2_0" transform="scale(0.001188 0.001199)"/> | ||
| 9 | + </pattern> | ||
| 10 | + <image id="image2_2_0" width="842.000000" height="834.000000" xlink:href="data:image/png;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZPL/Ae7bsyUmcIsEAAAAAElFTkSuQmCC"/> | ||
| 11 | + </defs> | ||
| 12 | +</svg> |
src/assets/icons/index.js
0 → 100644
src/assets/icons/svg/Frame 55.svg
0 → 100644
| 1 | +++ a/src/assets/icons/svg/Frame 55.svg | ||
| 1 | +<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"> | ||
| 2 | +<path d="M100.015 121.38C95.3165 121.38 90.8158 120.317 87.3355 118.378L8.02524 74.0992C1.0409 70.196 -0.00206389 63.9779 0.00245598 60.6201C0.00245598 57.2565 1.04203 51.0419 8.02524 47.1444L87.3276 2.91051C94.2826 -0.974512 105.716 -0.966577 112.659 2.91277L191.976 47.1841C198.965 51.0861 199.999 57.3041 199.999 60.6677C199.999 64.0267 198.963 70.2448 191.976 74.1377L112.676 118.376C109.204 120.317 104.702 121.38 100.015 121.38ZM15.3531 60.6235L91.5989 103.181C95.8431 105.551 104.178 105.551 108.418 103.189L184.658 60.6643L108.408 18.1037C104.162 15.7355 95.8306 15.7309 91.5898 18.1003L15.3531 60.6235V60.6235Z" /> | ||
| 3 | +<path d="M183.346 103.255L108.419 145.05C104.176 147.42 95.8432 147.42 91.599 145.042L16.7295 103.255H0.0195312C0.181117 106.733 1.54499 112.346 8.0231 115.964L87.3356 160.231C90.8159 162.171 95.3155 163.251 100.015 163.251C104.702 163.251 109.203 162.181 112.677 160.238L191.978 116.005C198.486 112.368 199.836 106.732 199.982 103.255H183.346V103.255Z" /> | ||
| 4 | +<path d="M184.584 139.234L184.656 139.278L108.417 181.805C104.174 184.177 95.8417 184.167 91.5975 181.797L15.3518 139.234H0C0 142.604 1.04522 148.822 8.02278 152.718L87.3353 196.987C90.8156 198.928 95.3152 200 100.015 200C104.702 200 109.202 198.928 112.677 196.994L191.977 152.755C198.966 148.856 200 142.648 200 139.287V139.235H184.584V139.234Z" /> | ||
| 5 | +</svg> |
src/assets/icons/svg/Frame 60.svg
0 → 100644
| 1 | +++ a/src/assets/icons/svg/Frame 60.svg | ||
| 1 | +<svg viewBox="0 0 174 200" xmlns="http://www.w3.org/2000/svg"> | ||
| 2 | +<path d="M127.337 66.4514L85.9827 90.4653L45.3416 67.1914C37.6148 62.7913 31.0213 74.3849 38.7481 78.7784L80.1492 102.486V155.974C80.1492 157.742 80.8516 159.438 82.1019 160.688C83.3522 161.938 85.0479 162.641 86.8161 162.641C88.5842 162.641 90.28 161.938 91.5303 160.688C92.7805 159.438 93.4829 157.742 93.4829 155.974V102.219C93.4829 101.999 93.3763 101.812 93.3563 101.592L133.931 78.0317C141.658 73.6449 135.064 62.0513 127.337 66.4514V66.4514Z" /> | ||
| 3 | +<path d="M163.398 41.7642L96.7093 2.72981C93.6555 0.942216 90.1808 0 86.6423 0C83.1038 0 79.6291 0.942216 76.5754 2.72981L9.93361 41.7642C6.90589 43.5433 4.39617 46.0834 2.6536 49.1323C0.911033 52.1812 -0.00376947 55.6329 1.1674e-05 59.1446V141.994C1.1674e-05 149.24 3.88011 155.927 10.1536 159.494L76.8221 197.395C79.8218 199.102 83.2141 200 86.6657 200C90.1172 200 93.5095 199.102 96.5093 197.395L163.178 159.494C166.266 157.734 168.833 155.188 170.618 152.114C172.403 149.04 173.341 145.548 173.338 141.994V59.1446C173.341 55.6323 172.425 52.1802 170.681 49.1312C168.938 46.0822 166.427 43.5425 163.398 41.7642V41.7642ZM160.004 141.994C160.004 144.407 158.711 146.64 156.618 147.827L89.9491 185.728C88.9499 186.298 87.8193 186.598 86.669 186.598C85.5186 186.598 84.3881 186.298 83.3889 185.728L16.7205 147.827C15.691 147.24 14.8352 146.392 14.2404 145.367C13.6455 144.342 13.3326 143.178 13.3337 141.994V59.1446C13.3337 56.7579 14.5937 54.5579 16.6471 53.3512L83.2889 14.3168C84.306 13.7209 85.4635 13.4067 86.6423 13.4067C87.8211 13.4067 88.9787 13.7209 89.9957 14.3168L156.691 53.3578C158.744 54.5512 160.004 56.7579 160.004 59.1446V141.994Z" /> | ||
| 4 | +</svg> |
src/assets/icons/svg/Frame 67.svg
0 → 100644
| 1 | +++ a/src/assets/icons/svg/Frame 67.svg | ||
| 1 | +<svg viewBox="0 0 168 200" xmlns="http://www.w3.org/2000/svg"> | ||
| 2 | +<path d="M146.429 0H21.4286C15.7474 0.00649856 10.3007 2.26623 6.28346 6.28346C2.26623 10.3007 0.00649856 15.7474 0 21.4286V178.571C0.00649856 184.253 2.26623 189.699 6.28346 193.717C10.3007 197.734 15.7474 199.993 21.4286 200H146.429C152.11 199.993 157.556 197.734 161.574 193.717C165.591 189.699 167.851 184.253 167.857 178.571V21.4286C167.851 15.7474 165.591 10.3007 161.574 6.28346C157.556 2.26623 152.11 0.00649856 146.429 0V0ZM153.571 178.571C153.571 180.466 152.819 182.283 151.479 183.622C150.14 184.962 148.323 185.714 146.429 185.714H21.4286C19.5342 185.714 17.7174 184.962 16.3778 183.622C15.0383 182.283 14.2857 180.466 14.2857 178.571V21.4286C14.2857 19.5342 15.0383 17.7174 16.3778 16.3778C17.7174 15.0383 19.5342 14.2857 21.4286 14.2857H146.429C148.323 14.2857 150.14 15.0383 151.479 16.3778C152.819 17.7174 153.571 19.5342 153.571 21.4286V178.571ZM120.388 39.1406C120.388 40.0786 120.204 41.0075 119.845 41.8741C119.486 42.7407 118.96 43.5281 118.296 44.1914C117.633 44.8547 116.846 45.3808 115.979 45.7398C115.112 46.0987 114.184 46.2835 113.246 46.2835H54.375C52.4806 46.2835 50.6638 45.5309 49.3242 44.1914C47.9847 42.8518 47.2321 41.035 47.2321 39.1406C47.2321 37.2462 47.9847 35.4294 49.3242 34.0899C50.6638 32.7503 52.4806 31.9978 54.375 31.9978H113.246C115.14 31.9978 116.957 32.7503 118.296 34.0899C119.636 35.4294 120.388 37.2462 120.388 39.1406V39.1406ZM120.388 70.1674C120.388 72.0618 119.636 73.8786 118.296 75.2182C116.957 76.5577 115.14 77.3103 113.246 77.3103H54.375C52.4806 77.3103 50.6638 76.5577 49.3242 75.2182C47.9847 73.8786 47.2321 72.0618 47.2321 70.1674C47.2321 68.273 47.9847 66.4562 49.3242 65.1167C50.6638 63.7771 52.4806 63.0246 54.375 63.0246H113.246C115.14 63.0246 116.956 63.7768 118.296 65.1159C119.635 66.4549 120.388 68.2712 120.388 70.1652V70.1674ZM106.844 139.705C107.48 140.395 107.974 141.203 108.298 142.083C108.622 142.964 108.769 143.899 108.731 144.836C108.694 145.774 108.472 146.694 108.078 147.546C107.684 148.397 107.127 149.163 106.438 149.799L88.654 166.212L88.5871 166.27C88.538 166.315 88.4888 166.359 88.4375 166.402L88.3192 166.5L88.154 166.632L88.0424 166.717C87.9844 166.759 87.9263 166.801 87.8661 166.842L87.75 166.92L87.5737 167.033L87.4353 167.116L87.2723 167.212C87.1719 167.268 87.0714 167.319 86.9688 167.371L86.8795 167.413L86.6451 167.52L86.5446 167.56L86.3214 167.652L86.2188 167.687C86.1406 167.717 86.0647 167.743 85.9955 167.768L85.8906 167.799L85.6674 167.866L85.5603 167.893C85.4821 167.913 85.4018 167.931 85.3237 167.946L85.2188 167.969C85.1384 167.984 85.058 168 84.9755 168.011L84.8728 168.029L84.6228 168.06L84.5268 168.071C84.4375 168.071 84.346 168.087 84.2567 168.092H83.4085C83.3192 168.092 83.2277 168.092 83.1384 168.071L83.0424 168.06L82.7924 168.029L82.6897 168.011C82.6094 168 82.529 167.984 82.4464 167.969L82.3415 167.946C82.2634 167.931 82.183 167.913 82.1049 167.893L82 167.866L81.7656 167.799L81.6607 167.768C81.5826 167.743 81.5067 167.717 81.4375 167.687L81.3326 167.652L81.1094 167.56L81.0089 167.52L80.7746 167.411C80.7455 167.397 80.7143 167.386 80.6853 167.371C80.5826 167.319 80.4821 167.268 80.3817 167.212L80.2232 167.118L80.0804 167.033C80.0223 166.998 79.9643 166.96 79.9063 166.92L79.788 166.842C79.7277 166.801 79.6719 166.759 79.6138 166.717L79.5 166.632L79.3348 166.5L79.2165 166.402L79.067 166.27L79 166.212L61.1808 149.799C60.4604 149.172 59.8732 148.406 59.4539 147.547C59.0347 146.689 58.792 145.755 58.7401 144.801C58.6883 143.847 58.8284 142.892 59.1521 141.993C59.4758 141.094 59.9766 140.269 60.6247 139.567C61.2729 138.865 62.0553 138.301 62.9257 137.906C63.796 137.512 64.7366 137.297 65.6917 137.273C66.6468 137.248 67.5971 137.416 68.4863 137.766C69.3755 138.115 70.1854 138.64 70.8683 139.308L77.4665 145.395V100.388C77.4665 98.494 78.2191 96.6772 79.5586 95.3376C80.8982 93.9981 82.715 93.2455 84.6094 93.2455C86.5038 93.2455 88.3206 93.9981 89.6601 95.3376C90.9997 96.6772 91.7522 98.494 91.7522 100.388V143.915L96.75 139.304C97.4391 138.667 98.2469 138.173 99.1271 137.849C100.007 137.524 100.943 137.377 101.88 137.414C102.817 137.451 103.738 137.673 104.59 138.066C105.442 138.459 106.207 139.016 106.844 139.705Z" /> | ||
| 3 | +</svg> |
src/assets/icons/svg/Frame 82.svg
0 → 100644
| 1 | +++ a/src/assets/icons/svg/Frame 82.svg | ||
| 1 | +<svg viewBox="0 0 200 198" xmlns="http://www.w3.org/2000/svg"> | ||
| 2 | +<path d="M151.862 70.2161C151.862 71.3787 152.091 72.5299 152.535 73.6039C152.98 74.678 153.632 75.6539 154.454 76.476C155.277 77.298 156.252 77.9501 157.327 78.395C158.401 78.8399 159.552 79.0689 160.714 79.0689C161.877 79.0689 163.028 78.8399 164.102 78.395C165.176 77.9501 166.152 77.298 166.974 76.476C167.796 75.6539 168.448 74.678 168.893 73.6039C169.338 72.5299 169.567 71.3787 169.567 70.2161C169.567 69.0535 169.338 67.9023 168.893 66.8283C168.448 65.7542 167.796 64.7783 166.974 63.9562C166.152 63.1342 165.176 62.4821 164.102 62.0372C163.028 61.5923 161.877 61.3633 160.714 61.3633C159.552 61.3633 158.401 61.5923 157.327 62.0372C156.252 62.4821 155.277 63.1342 154.454 63.9562C153.632 64.7783 152.98 65.7542 152.535 66.8283C152.091 67.9023 151.862 69.0535 151.862 70.2161V70.2161Z" fill="#333333"/> | ||
| 3 | +<path d="M17.6624 136.753V127.9V131.407C17.8355 134.394 20.303 136.753 23.3334 136.753H17.6624V136.753ZM48.1818 179.826V170.974V174.48C48.355 177.467 50.8225 179.826 53.8528 179.826H48.1818V179.826ZM182.381 136.71H173.528H177.035C180.022 136.536 182.381 134.069 182.381 131.039V136.71V136.71ZM151.948 179.718H143.095H146.602C149.589 179.545 151.948 177.078 151.948 174.047V179.718V179.718ZM151.883 17.6836V26.5364V23.0299C151.71 20.0429 149.242 17.6836 146.212 17.6836H151.883V17.6836ZM151.883 121.601V130.454V126.948C151.71 123.961 149.242 121.601 146.212 121.601H151.883V121.601ZM48.0736 17.6836H56.9264H53.4199C50.4329 17.8568 48.0736 20.3243 48.0736 23.3546V17.6836ZM48.0953 121.558H56.9697H53.4632C50.4762 121.753 48.0953 124.22 48.0953 127.229V121.558ZM17.6624 49.9996H26.5152H23.0087C20.0217 50.1728 17.6624 52.6403 17.6624 55.6706V49.9996V49.9996ZM182.316 50.0213V58.8741V55.3676C182.143 52.3806 179.675 50.0213 176.645 50.0213H182.316Z" fill="#333333"/> | ||
| 4 | +<path d="M200 141.126V45C198.983 37.8571 192.836 32.3377 185.411 32.3377H169.589V12.9437C168.745 5.84416 162.857 0.30303 155.628 0H44.6753C37.1429 0.21645 31.0173 6.1039 30.4329 13.5498V32.3377H13.3766C6.19048 32.987 0.497835 38.7662 0 45.9957V140.952C0.519481 147.814 5.71429 153.355 12.4242 154.394H30.4329V183.203C30.6926 190.736 36.6017 196.818 44.026 197.381H156.407C163.463 196.667 169.048 190.952 169.589 183.831V154.394H187.013C193.896 153.615 199.351 148.074 200 141.126V141.126ZM48.1602 17.7273H151.861V32.3377H48.1602V17.7273ZM151.861 145.519V179.632H48.1602V121.623H151.861V145.519ZM182.273 136.667H169.589V116.753C168.745 109.848 163.139 104.437 156.147 103.896H44.2641C36.8182 104.329 30.8658 110.303 30.4329 117.749V136.667H17.7489V50.0649H182.294V136.667H182.273Z" fill="#333333"/> | ||
| 5 | +</svg> |
src/assets/icons/svg/Frame 83.svg
0 → 100644
| 1 | +++ a/src/assets/icons/svg/Frame 83.svg | ||
| 1 | +<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"> | ||
| 2 | +<path d="M100 0C44.7715 0 0 44.7715 0 100C0 155.228 44.7715 200 100 200C155.228 200 200 155.228 200 100C200 44.7715 155.228 0 100 0ZM167.417 104.72C167.417 107.511 165.154 109.773 162.364 109.773H109.773V162.364C109.773 165.154 107.511 167.417 104.72 167.417H95.2798C92.4891 167.417 90.2266 165.154 90.2266 162.364L90.2266 109.773H37.6362C34.8455 109.773 32.583 107.511 32.583 104.72V95.2798C32.583 92.4891 34.8455 90.2266 37.6362 90.2266H90.2263V37.6364C90.2263 34.8457 92.4888 32.5832 95.2795 32.5832H104.72C107.511 32.5832 109.773 34.8457 109.773 37.6364V90.2266H162.363C165.154 90.2266 167.416 92.4891 167.416 95.2798V104.72H167.417Z" fill="#333333"/> | ||
| 3 | +</svg> |
src/assets/icons/svg/Frame 84.svg
0 → 100644
| 1 | +++ a/src/assets/icons/svg/Frame 84.svg | ||
| 1 | +<svg viewBox="0 0 182 200" xmlns="http://www.w3.org/2000/svg"> | ||
| 2 | +<path d="M179.11 44.1214L137.175 2.18678C135.76 0.771804 133.882 0 131.901 0C129.92 0 128.042 0.771804 126.627 2.18678L12.5289 116.234C11.4227 117.211 10.5994 118.575 10.3164 120.144L0.180086 171.932C-0.231542 174.17 0.463081 176.46 2.05814 178.081C3.37021 179.419 5.14536 180.139 6.99768 180.139C7.38359 180.139 7.79522 180.113 8.18112 180.036L60.4837 171.006C62.0273 170.852 63.5452 170.183 64.7286 168.999L179.084 54.6437C180.499 53.2287 181.271 51.3507 181.271 49.3697C181.271 47.3887 180.525 45.5364 179.11 44.1214ZM56.496 157.628L15.6676 164.677L23.5657 124.878L103.885 44.5588L136.712 77.4119L56.496 157.628ZM146.54 67.5843L113.687 34.7312L131.875 16.5423L164.729 49.3954L146.54 67.5843ZM168.433 200H6.94623C3.11294 200 0 196.887 0 193.054C0 189.22 3.11294 186.108 6.94623 186.108H168.459C172.292 186.108 175.405 189.22 175.405 193.054C175.405 196.887 172.267 200 168.433 200Z" fill="#333333"/> | ||
| 3 | +</svg> |
src/assets/icons/svg/Frame 87.svg
0 → 100644
| 1 | +++ a/src/assets/icons/svg/Frame 87.svg | ||
| 1 | +<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"> | ||
| 2 | +<path d="M18.1818 18.1818V181.818H181.836L181.818 67.4L132.6 18.1818H18.1818ZM181.818 200H18.1818C8.15454 200 0 191.845 0 181.818V18.1818C0 8.15454 8.15454 0 18.1818 0H140.136L200 59.8727V181.818C200 191.845 191.845 200 181.818 200ZM54.5455 81.8182H109.091V18.1818H54.5455V81.8182ZM113.591 100H50.0364C42.5 100 36.3636 93.8636 36.3636 86.3273V0H127.273V86.3273C127.273 93.8636 121.136 100 113.591 100V100Z" fill="#333333"/> | ||
| 3 | +</svg> |
src/assets/icons/svg/Frame 88.svg
0 → 100644
| 1 | +++ a/src/assets/icons/svg/Frame 88.svg | ||
| 1 | +<svg viewBox="0 0 201 200" xmlns="http://www.w3.org/2000/svg"> | ||
| 2 | +<path d="M186.766 158.675H186.781V158.586L186.766 158.675ZM200.003 99.9999C200.003 44.8547 155.138 0 100.003 0C44.8548 0 0 44.8547 0 99.9999C0 155.141 44.8548 200 100.003 200C155.137 200 200.003 155.141 200.003 99.9999ZM100.003 185.651C52.7793 185.651 14.3517 147.217 14.3517 99.9999C14.3517 52.7763 52.7793 14.3522 100.003 14.3522C147.219 14.3522 185.648 52.7763 185.648 99.9999C185.648 147.217 147.219 185.651 100.003 185.651ZM140.973 131.317L110.053 100.305L140.945 69.7555C143.749 66.9866 143.771 62.4611 141.001 59.6565C138.233 56.8485 133.7 56.8271 130.895 59.6031L99.9745 90.1879L69.5143 59.6317C66.7243 56.8414 62.2055 56.8273 59.4082 59.6174C56.6179 62.4114 56.6179 66.9297 59.394 69.7203L89.8188 100.234L59.1533 130.566C56.3487 133.342 56.3204 137.854 59.0967 140.659C60.4989 142.075 62.3263 142.783 64.1675 142.783C65.9806 142.783 67.8075 142.089 69.1959 140.722L99.9037 110.347L130.853 141.409C132.248 142.804 134.082 143.506 135.916 143.506C137.744 143.506 139.563 142.804 140.959 141.424C143.749 138.641 143.756 134.122 140.973 131.317Z" fill="#333333"/> | ||
| 3 | +</svg> |
src/assets/icons/svg/Frame 89.svg
0 → 100644
| 1 | +++ a/src/assets/icons/svg/Frame 89.svg | ||
| 1 | +<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"> | ||
| 2 | +<path d="M100 185.294C116.87 185.294 133.36 180.292 147.387 170.919C161.413 161.547 172.346 148.226 178.801 132.641C185.257 117.055 186.946 99.9054 183.655 83.36C180.364 66.8145 172.241 51.6166 160.312 39.688C148.383 27.7594 133.186 19.6359 116.64 16.3448C100.095 13.0537 82.9448 14.7428 67.3594 21.1986C51.7739 27.6543 38.4528 38.5866 29.0806 52.6132C19.7083 66.6397 14.7059 83.1304 14.7059 100C14.7059 122.621 23.6922 144.316 39.688 160.312C55.6837 176.308 77.3786 185.294 100 185.294V185.294ZM100 200C80.2219 200 60.8879 194.135 44.443 183.147C27.9981 172.159 15.1809 156.541 7.61209 138.268C0.0433282 119.996 -1.937 99.8891 1.92152 80.491C5.78004 61.0929 15.3041 43.2746 29.2894 29.2894C43.2746 15.3041 61.0929 5.78004 80.491 1.92152C99.8891 -1.937 119.996 0.0433282 138.268 7.61209C156.541 15.1809 172.159 27.9981 183.147 44.443C194.135 60.8879 200 80.2219 200 100C200 113.132 197.413 126.136 192.388 138.268C187.362 150.401 179.997 161.425 170.711 170.711C161.425 179.997 150.401 187.362 138.268 192.388C126.136 197.413 113.132 200 100 200V200Z" fill="#333333"/> | ||
| 3 | +<path d="M110.353 100L138.471 128.118C139.843 129.491 140.615 131.353 140.615 133.295C140.615 135.236 139.843 137.098 138.471 138.471C137.098 139.844 135.236 140.615 133.294 140.615C131.353 140.615 129.491 139.844 128.118 138.471L100 110.353L71.8824 138.471C71.2026 139.151 70.3955 139.69 69.5074 140.058C68.6192 140.426 67.6672 140.615 66.7059 140.615C65.7445 140.615 64.7926 140.426 63.9044 140.058C63.0162 139.69 62.2092 139.151 61.5294 138.471C60.8496 137.791 60.3104 136.984 59.9425 136.096C59.5746 135.208 59.3853 134.256 59.3853 133.295C59.3853 132.333 59.5746 131.381 59.9425 130.493C60.3104 129.605 60.8496 128.798 61.5294 128.118L89.6471 100L61.5294 71.8828C60.8496 71.2031 60.3104 70.396 59.9425 69.5079C59.5746 68.6197 59.3853 67.6677 59.3853 66.7064C59.3853 65.745 59.5746 64.7931 59.9425 63.9049C60.3104 63.0167 60.8496 62.2097 61.5294 61.5299C62.2092 60.8501 63.0162 60.3109 63.9044 59.943C64.7926 59.5751 65.7445 59.3857 66.7059 59.3857C67.6672 59.3857 68.6192 59.5751 69.5074 59.943C70.3955 60.3109 71.2026 60.8501 71.8824 61.5299L100 89.6475L128.118 61.5299C128.797 60.8501 129.604 60.3109 130.493 59.943C131.381 59.5751 132.333 59.3857 133.294 59.3857C134.255 59.3857 135.207 59.5751 136.096 59.943C136.984 60.3109 137.791 60.8501 138.471 61.5299C139.15 62.2097 139.69 63.0167 140.057 63.9049C140.425 64.7931 140.615 65.745 140.615 66.7064C140.615 67.6677 140.425 68.6197 140.057 69.5079C139.69 70.396 139.15 71.2031 138.471 71.8828L110.353 100Z" fill="#333333"/> | ||
| 4 | +</svg> |
src/assets/icons/svg/Frame 90.svg
0 → 100644
| 1 | +++ a/src/assets/icons/svg/Frame 90.svg | ||
| 1 | +<svg viewBox="0 0 180 200" xmlns="http://www.w3.org/2000/svg"> | ||
| 2 | +<path d="M172.032 200H7.68618C3.44127 200 0 196.559 0 192.314C0 188.069 3.44127 184.628 7.68618 184.628H172.035C176.28 184.628 179.721 188.069 179.721 192.314C179.721 196.559 176.28 200 172.032 200ZM172.017 169.418H8.04164C3.79673 169.418 0.355461 165.976 0.355461 161.731V134.552C0.355461 121.111 11.2846 110.177 24.7174 110.177H55.7815C55.3642 102.081 52.6004 89.1067 50.1147 86.2347C41.8876 75.6508 37.4032 63.3874 36.8803 50.444C36.8365 36.2823 42.6449 22.8881 52.8193 13.4117C62.8315 4.0822 76.357 -0.762874 90.0447 0.102594C103.622 -0.775753 117.078 4.01781 127.077 13.252C137.231 22.628 143.101 35.9036 143.183 49.6738C142.697 63.0087 138.21 75.3314 130.207 85.6371C127.53 88.7667 124.746 101.7 124.285 109.796H155.344C168.777 109.796 179.706 120.73 179.706 134.168V161.734C179.703 165.979 176.262 169.418 172.017 169.418ZM15.7278 154.045H164.328V134.165C164.328 129.204 160.295 125.165 155.339 125.165H119.03C116.527 125.165 114.177 123.944 112.738 121.894C110.602 118.852 109.278 115.267 108.9 111.529C108.866 111.202 108.856 110.872 108.864 110.537C109.003 105.687 111.123 84.2745 118.301 75.9135C124.081 68.4566 127.45 59.1966 127.814 49.4291C127.752 40.231 123.682 31.0379 116.648 24.5418C109.631 18.0636 100.17 14.764 90.6192 15.4672C90.2379 15.4981 89.8593 15.4956 89.4781 15.4698C79.8935 14.7306 70.327 18.1074 63.2977 24.6551C56.2477 31.226 52.2217 40.504 52.2475 50.1117C52.6339 59.5495 56.0056 68.7682 61.9943 76.4905C69.0288 84.5939 71.0766 106.092 71.1925 110.962C71.2002 111.243 71.1899 111.526 71.1667 111.805C70.8448 115.532 69.5131 119.156 67.3133 122.283C66.6034 123.291 65.6616 124.113 64.5674 124.681C63.4732 125.249 62.2586 125.546 61.0258 125.547H24.7199C19.7641 125.547 15.7304 129.585 15.7304 134.549V154.045H15.7278Z" fill="#333333"/> | ||
| 3 | +</svg> |
src/assets/icons/svg/Frame 91.svg
0 → 100644
| 1 | +++ a/src/assets/icons/svg/Frame 91.svg | ||
| 1 | +<svg viewBox="0 0 194 200" xmlns="http://www.w3.org/2000/svg"> | ||
| 2 | +<path d="M86.4198 172.84C38.2716 172.84 -2.89352e-07 134.568 0 86.4198C2.89352e-07 38.2716 38.2716 -2.89352e-07 86.4198 0C134.568 2.89352e-07 172.84 38.2716 172.84 86.4198C172.84 134.568 134.568 172.84 86.4198 172.84ZM86.4198 148.148C120.988 148.148 148.148 120.988 148.148 86.4198C148.148 51.8519 120.988 24.6914 86.4198 24.6914C51.8519 24.6914 24.6914 51.8519 24.6914 86.4198C24.6914 120.988 51.8519 148.148 86.4198 148.148V148.148ZM159.259 148.148L193.827 182.716L176.543 200L141.975 165.432L159.259 148.148Z" fill="#333333"/> | ||
| 3 | +</svg> |
src/assets/icons/svg/_account.svg
0 → 100644
| 1 | +++ a/src/assets/icons/svg/_account.svg | ||
| 1 | +<svg viewBox="0 0 190 200" xmlns="http://www.w3.org/2000/svg"> | ||
| 2 | +<path d="M94.7368 0C100.266 0 105.741 1.08909 110.85 3.20507C115.958 5.32106 120.6 8.42251 124.51 12.3323C128.42 16.2422 131.521 20.8838 133.637 25.9923C135.753 31.1007 136.842 36.5759 136.842 42.1053V68.4211C136.842 79.5881 132.406 90.2977 124.51 98.194C116.613 106.09 105.904 110.526 94.7368 110.526C83.5698 110.526 72.8602 106.09 64.9639 98.194C57.0676 90.2977 52.6316 79.5881 52.6316 68.4211V42.1053C52.6316 30.9383 57.0676 20.2286 64.9639 12.3323C72.8602 4.43608 83.5698 0 94.7368 0V0ZM94.7368 21.0526C89.1533 21.0526 83.7985 23.2707 79.8504 27.2188C75.9022 31.1669 73.6842 36.5218 73.6842 42.1053V68.4211C73.6842 71.1857 74.2288 73.9233 75.2867 76.4775C76.3447 79.0318 77.8955 81.3526 79.8504 83.3075C81.8053 85.2624 84.1261 86.8132 86.6803 87.8711C89.2346 88.9291 91.9722 89.4737 94.7368 89.4737C97.5015 89.4737 100.239 88.9291 102.793 87.8711C105.348 86.8132 107.668 85.2624 109.623 83.3075C111.578 81.3526 113.129 79.0318 114.187 76.4775C115.245 73.9233 115.789 71.1857 115.789 68.4211V42.1053C115.789 39.3406 115.245 36.603 114.187 34.0488C113.129 31.4945 111.578 29.1737 109.623 27.2188C107.668 25.2639 105.348 23.7132 102.793 22.6552C100.239 21.5972 97.5015 21.0526 94.7368 21.0526V21.0526ZM14.4737 130.911C34.421 124.337 61.1789 121.053 94.7368 121.053C128.295 121.053 155.047 124.337 175 130.911C179.21 132.296 182.876 134.974 185.475 138.564C188.073 142.154 189.473 146.473 189.474 150.905V178.947C189.474 184.531 187.256 189.886 183.307 193.834C179.359 197.782 174.005 200 168.421 200H21.0526C15.4691 200 10.1143 197.782 6.16617 193.834C2.21804 189.886 7.12348e-08 184.531 7.12348e-08 178.947V150.905C-0.000364495 146.472 1.39862 142.152 3.99754 138.561C6.59647 134.97 10.2627 132.291 14.4737 130.905V130.911ZM24.8842 149.305C23.7805 149.617 22.809 150.281 22.1173 151.196C21.4257 152.111 21.0518 153.227 21.0526 154.374V173.684C21.0526 175.08 21.6071 176.419 22.5942 177.406C23.5812 178.393 24.9199 178.947 26.3158 178.947H163.158C164.554 178.947 165.892 178.393 166.879 177.406C167.867 176.419 168.421 175.08 168.421 173.684V154.368C168.421 153.222 168.046 152.108 167.355 151.194C166.663 150.28 165.692 149.617 164.589 149.305C147.589 144.505 124.3 142.105 94.7368 142.105C65.1737 142.105 41.8895 144.505 24.8842 149.305V149.305Z" fill="black"/> | ||
| 3 | +</svg> |