diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..31708dfc --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1105 @@ +{ + "name": "fantasy-map-generator", + "version": "1.109.5", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "fantasy-map-generator", + "version": "1.109.5", + "license": "MIT", + "devDependencies": { + "vite": "^7.3.1" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", + "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", + "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.55.1", + "@rollup/rollup-android-arm64": "4.55.1", + "@rollup/rollup-darwin-arm64": "4.55.1", + "@rollup/rollup-darwin-x64": "4.55.1", + "@rollup/rollup-freebsd-arm64": "4.55.1", + "@rollup/rollup-freebsd-x64": "4.55.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", + "@rollup/rollup-linux-arm-musleabihf": "4.55.1", + "@rollup/rollup-linux-arm64-gnu": "4.55.1", + "@rollup/rollup-linux-arm64-musl": "4.55.1", + "@rollup/rollup-linux-loong64-gnu": "4.55.1", + "@rollup/rollup-linux-loong64-musl": "4.55.1", + "@rollup/rollup-linux-ppc64-gnu": "4.55.1", + "@rollup/rollup-linux-ppc64-musl": "4.55.1", + "@rollup/rollup-linux-riscv64-gnu": "4.55.1", + "@rollup/rollup-linux-riscv64-musl": "4.55.1", + "@rollup/rollup-linux-s390x-gnu": "4.55.1", + "@rollup/rollup-linux-x64-gnu": "4.55.1", + "@rollup/rollup-linux-x64-musl": "4.55.1", + "@rollup/rollup-openbsd-x64": "4.55.1", + "@rollup/rollup-openharmony-arm64": "4.55.1", + "@rollup/rollup-win32-arm64-msvc": "4.55.1", + "@rollup/rollup-win32-ia32-msvc": "4.55.1", + "@rollup/rollup-win32-x64-gnu": "4.55.1", + "@rollup/rollup-win32-x64-msvc": "4.55.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/vite": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", + "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..ad94154c --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "fantasy-map-generator", + "version": "1.109.5", + "description": "Azgaar's _Fantasy Map Generator_ is a free web application that helps fantasy writers, game masters, and cartographers create and edit fantasy maps.", + "homepage": "https://github.com/Azgaar/Fantasy-Map-Generator#readme", + "bugs": { + "url": "https://github.com/Azgaar/Fantasy-Map-Generator/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Azgaar/Fantasy-Map-Generator.git" + }, + "license": "MIT", + "author": "Azgaar", + "type": "module", + "main": "main.js", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "vite": "^7.3.1" + } +} diff --git a/run_php_server.bat b/run_php_server.bat deleted file mode 100644 index e168921d..00000000 --- a/run_php_server.bat +++ /dev/null @@ -1,3 +0,0 @@ -start chrome.exe http://localhost:3000/ -@echo off -php -S localhost:3000 diff --git a/run_python_server.bat b/run_python_server.bat deleted file mode 100644 index b74d34c1..00000000 --- a/run_python_server.bat +++ /dev/null @@ -1,3 +0,0 @@ -start chrome.exe http://localhost:8000/ -@echo off -python -m http.server 8000 \ No newline at end of file diff --git a/run_python_server.sh b/run_python_server.sh deleted file mode 100644 index 7ac82957..00000000 --- a/run_python_server.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env sh -if command -v python3 >/dev/null 2>&1; then - PYTHON=python3 -elif command -v python >/dev/null 2>&1; then - PYTHON=python -else - echo "Neither 'python' nor 'python3' was found. Please install Python 3 package." >&2 - exit 1 -fi - -chromium http://localhost:8000 - -$PYTHON -m http.server 8000 diff --git a/charges/agnusDei.svg b/src/charges/agnusDei.svg similarity index 100% rename from charges/agnusDei.svg rename to src/charges/agnusDei.svg diff --git a/charges/anchor.svg b/src/charges/anchor.svg similarity index 100% rename from charges/anchor.svg rename to src/charges/anchor.svg diff --git a/charges/angel.svg b/src/charges/angel.svg similarity index 100% rename from charges/angel.svg rename to src/charges/angel.svg diff --git a/charges/annulet.svg b/src/charges/annulet.svg similarity index 100% rename from charges/annulet.svg rename to src/charges/annulet.svg diff --git a/charges/anvil.svg b/src/charges/anvil.svg similarity index 100% rename from charges/anvil.svg rename to src/charges/anvil.svg diff --git a/charges/apple.svg b/src/charges/apple.svg similarity index 100% rename from charges/apple.svg rename to src/charges/apple.svg diff --git a/charges/arbalest.svg b/src/charges/arbalest.svg similarity index 100% rename from charges/arbalest.svg rename to src/charges/arbalest.svg diff --git a/charges/arbalest2.svg b/src/charges/arbalest2.svg similarity index 100% rename from charges/arbalest2.svg rename to src/charges/arbalest2.svg diff --git a/charges/archer.svg b/src/charges/archer.svg similarity index 100% rename from charges/archer.svg rename to src/charges/archer.svg diff --git a/charges/armEmbowedHoldingSabre.svg b/src/charges/armEmbowedHoldingSabre.svg similarity index 100% rename from charges/armEmbowedHoldingSabre.svg rename to src/charges/armEmbowedHoldingSabre.svg diff --git a/charges/armEmbowedVambraced.svg b/src/charges/armEmbowedVambraced.svg similarity index 100% rename from charges/armEmbowedVambraced.svg rename to src/charges/armEmbowedVambraced.svg diff --git a/charges/armEmbowedVambracedHoldingSword.svg b/src/charges/armEmbowedVambracedHoldingSword.svg similarity index 100% rename from charges/armEmbowedVambracedHoldingSword.svg rename to src/charges/armEmbowedVambracedHoldingSword.svg diff --git a/charges/armillarySphere.svg b/src/charges/armillarySphere.svg similarity index 100% rename from charges/armillarySphere.svg rename to src/charges/armillarySphere.svg diff --git a/charges/arrow.svg b/src/charges/arrow.svg similarity index 100% rename from charges/arrow.svg rename to src/charges/arrow.svg diff --git a/charges/arrowsSheaf.svg b/src/charges/arrowsSheaf.svg similarity index 100% rename from charges/arrowsSheaf.svg rename to src/charges/arrowsSheaf.svg diff --git a/charges/attire.svg b/src/charges/attire.svg similarity index 100% rename from charges/attire.svg rename to src/charges/attire.svg diff --git a/charges/axe.svg b/src/charges/axe.svg similarity index 100% rename from charges/axe.svg rename to src/charges/axe.svg diff --git a/charges/badgerStatant.svg b/src/charges/badgerStatant.svg similarity index 100% rename from charges/badgerStatant.svg rename to src/charges/badgerStatant.svg diff --git a/charges/banner.svg b/src/charges/banner.svg similarity index 100% rename from charges/banner.svg rename to src/charges/banner.svg diff --git a/charges/basilisk.svg b/src/charges/basilisk.svg similarity index 100% rename from charges/basilisk.svg rename to src/charges/basilisk.svg diff --git a/charges/bearPassant.svg b/src/charges/bearPassant.svg similarity index 100% rename from charges/bearPassant.svg rename to src/charges/bearPassant.svg diff --git a/charges/bearRampant.svg b/src/charges/bearRampant.svg similarity index 100% rename from charges/bearRampant.svg rename to src/charges/bearRampant.svg diff --git a/charges/bee.svg b/src/charges/bee.svg similarity index 100% rename from charges/bee.svg rename to src/charges/bee.svg diff --git a/charges/bell.svg b/src/charges/bell.svg similarity index 100% rename from charges/bell.svg rename to src/charges/bell.svg diff --git a/charges/billet.svg b/src/charges/billet.svg similarity index 100% rename from charges/billet.svg rename to src/charges/billet.svg diff --git a/charges/boarHeadErased.svg b/src/charges/boarHeadErased.svg similarity index 100% rename from charges/boarHeadErased.svg rename to src/charges/boarHeadErased.svg diff --git a/charges/boarRampant.svg b/src/charges/boarRampant.svg similarity index 100% rename from charges/boarRampant.svg rename to src/charges/boarRampant.svg diff --git a/charges/boat.svg b/src/charges/boat.svg similarity index 100% rename from charges/boat.svg rename to src/charges/boat.svg diff --git a/charges/boat2.svg b/src/charges/boat2.svg similarity index 100% rename from charges/boat2.svg rename to src/charges/boat2.svg diff --git a/charges/bone.svg b/src/charges/bone.svg similarity index 100% rename from charges/bone.svg rename to src/charges/bone.svg diff --git a/charges/bookClosed.svg b/src/charges/bookClosed.svg similarity index 100% rename from charges/bookClosed.svg rename to src/charges/bookClosed.svg diff --git a/charges/bookClosed2.svg b/src/charges/bookClosed2.svg similarity index 100% rename from charges/bookClosed2.svg rename to src/charges/bookClosed2.svg diff --git a/charges/bookOpen.svg b/src/charges/bookOpen.svg similarity index 100% rename from charges/bookOpen.svg rename to src/charges/bookOpen.svg diff --git a/charges/bow.svg b/src/charges/bow.svg similarity index 100% rename from charges/bow.svg rename to src/charges/bow.svg diff --git a/charges/bowWithArrow.svg b/src/charges/bowWithArrow.svg similarity index 100% rename from charges/bowWithArrow.svg rename to src/charges/bowWithArrow.svg diff --git a/charges/bowWithThreeArrows.svg b/src/charges/bowWithThreeArrows.svg similarity index 100% rename from charges/bowWithThreeArrows.svg rename to src/charges/bowWithThreeArrows.svg diff --git a/charges/bridge.svg b/src/charges/bridge.svg similarity index 100% rename from charges/bridge.svg rename to src/charges/bridge.svg diff --git a/charges/bridge2.svg b/src/charges/bridge2.svg similarity index 100% rename from charges/bridge2.svg rename to src/charges/bridge2.svg diff --git a/charges/bucket.svg b/src/charges/bucket.svg similarity index 100% rename from charges/bucket.svg rename to src/charges/bucket.svg diff --git a/charges/buckle.svg b/src/charges/buckle.svg similarity index 100% rename from charges/buckle.svg rename to src/charges/buckle.svg diff --git a/charges/bugleHorn.svg b/src/charges/bugleHorn.svg similarity index 100% rename from charges/bugleHorn.svg rename to src/charges/bugleHorn.svg diff --git a/charges/bugleHorn2.svg b/src/charges/bugleHorn2.svg similarity index 100% rename from charges/bugleHorn2.svg rename to src/charges/bugleHorn2.svg diff --git a/charges/bullHeadCaboshed.svg b/src/charges/bullHeadCaboshed.svg similarity index 100% rename from charges/bullHeadCaboshed.svg rename to src/charges/bullHeadCaboshed.svg diff --git a/charges/bullPassant.svg b/src/charges/bullPassant.svg similarity index 100% rename from charges/bullPassant.svg rename to src/charges/bullPassant.svg diff --git a/charges/butterfly.svg b/src/charges/butterfly.svg similarity index 100% rename from charges/butterfly.svg rename to src/charges/butterfly.svg diff --git a/charges/camel.svg b/src/charges/camel.svg similarity index 100% rename from charges/camel.svg rename to src/charges/camel.svg diff --git a/charges/cancer.svg b/src/charges/cancer.svg similarity index 100% rename from charges/cancer.svg rename to src/charges/cancer.svg diff --git a/charges/cannon.svg b/src/charges/cannon.svg similarity index 100% rename from charges/cannon.svg rename to src/charges/cannon.svg diff --git a/charges/caravel.svg b/src/charges/caravel.svg similarity index 100% rename from charges/caravel.svg rename to src/charges/caravel.svg diff --git a/charges/carreau.svg b/src/charges/carreau.svg similarity index 100% rename from charges/carreau.svg rename to src/charges/carreau.svg diff --git a/charges/castle.svg b/src/charges/castle.svg similarity index 100% rename from charges/castle.svg rename to src/charges/castle.svg diff --git a/charges/castle2.svg b/src/charges/castle2.svg similarity index 100% rename from charges/castle2.svg rename to src/charges/castle2.svg diff --git a/charges/catPassantGuardant.svg b/src/charges/catPassantGuardant.svg similarity index 100% rename from charges/catPassantGuardant.svg rename to src/charges/catPassantGuardant.svg diff --git a/charges/cavalier.svg b/src/charges/cavalier.svg similarity index 100% rename from charges/cavalier.svg rename to src/charges/cavalier.svg diff --git a/charges/centaur.svg b/src/charges/centaur.svg similarity index 100% rename from charges/centaur.svg rename to src/charges/centaur.svg diff --git a/charges/chain.svg b/src/charges/chain.svg similarity index 100% rename from charges/chain.svg rename to src/charges/chain.svg diff --git a/charges/chalice.svg b/src/charges/chalice.svg similarity index 100% rename from charges/chalice.svg rename to src/charges/chalice.svg diff --git a/charges/cinquefoil.svg b/src/charges/cinquefoil.svg similarity index 100% rename from charges/cinquefoil.svg rename to src/charges/cinquefoil.svg diff --git a/charges/cock.svg b/src/charges/cock.svg similarity index 100% rename from charges/cock.svg rename to src/charges/cock.svg diff --git a/charges/column.svg b/src/charges/column.svg similarity index 100% rename from charges/column.svg rename to src/charges/column.svg diff --git a/charges/comet.svg b/src/charges/comet.svg similarity index 100% rename from charges/comet.svg rename to src/charges/comet.svg diff --git a/charges/compassRose.svg b/src/charges/compassRose.svg similarity index 100% rename from charges/compassRose.svg rename to src/charges/compassRose.svg diff --git a/charges/cossack.svg b/src/charges/cossack.svg similarity index 100% rename from charges/cossack.svg rename to src/charges/cossack.svg diff --git a/charges/cowHorns.svg b/src/charges/cowHorns.svg similarity index 100% rename from charges/cowHorns.svg rename to src/charges/cowHorns.svg diff --git a/charges/cowStatant.svg b/src/charges/cowStatant.svg similarity index 100% rename from charges/cowStatant.svg rename to src/charges/cowStatant.svg diff --git a/charges/crescent.svg b/src/charges/crescent.svg similarity index 100% rename from charges/crescent.svg rename to src/charges/crescent.svg diff --git a/charges/crocodile.svg b/src/charges/crocodile.svg similarity index 100% rename from charges/crocodile.svg rename to src/charges/crocodile.svg diff --git a/charges/crosier.svg b/src/charges/crosier.svg similarity index 100% rename from charges/crosier.svg rename to src/charges/crosier.svg diff --git a/charges/crossAnkh.svg b/src/charges/crossAnkh.svg similarity index 100% rename from charges/crossAnkh.svg rename to src/charges/crossAnkh.svg diff --git a/charges/crossArrowed.svg b/src/charges/crossArrowed.svg similarity index 100% rename from charges/crossArrowed.svg rename to src/charges/crossArrowed.svg diff --git a/charges/crossAvellane.svg b/src/charges/crossAvellane.svg similarity index 100% rename from charges/crossAvellane.svg rename to src/charges/crossAvellane.svg diff --git a/charges/crossBiparted.svg b/src/charges/crossBiparted.svg similarity index 100% rename from charges/crossBiparted.svg rename to src/charges/crossBiparted.svg diff --git a/charges/crossBottony.svg b/src/charges/crossBottony.svg similarity index 100% rename from charges/crossBottony.svg rename to src/charges/crossBottony.svg diff --git a/charges/crossBurgundy.svg b/src/charges/crossBurgundy.svg similarity index 100% rename from charges/crossBurgundy.svg rename to src/charges/crossBurgundy.svg diff --git a/charges/crossCalvary.svg b/src/charges/crossCalvary.svg similarity index 100% rename from charges/crossCalvary.svg rename to src/charges/crossCalvary.svg diff --git a/charges/crossCarolingian.svg b/src/charges/crossCarolingian.svg similarity index 100% rename from charges/crossCarolingian.svg rename to src/charges/crossCarolingian.svg diff --git a/charges/crossCeltic.svg b/src/charges/crossCeltic.svg similarity index 100% rename from charges/crossCeltic.svg rename to src/charges/crossCeltic.svg diff --git a/charges/crossCeltic2.svg b/src/charges/crossCeltic2.svg similarity index 100% rename from charges/crossCeltic2.svg rename to src/charges/crossCeltic2.svg diff --git a/charges/crossCercelee.svg b/src/charges/crossCercelee.svg similarity index 100% rename from charges/crossCercelee.svg rename to src/charges/crossCercelee.svg diff --git a/charges/crossClechy.svg b/src/charges/crossClechy.svg similarity index 100% rename from charges/crossClechy.svg rename to src/charges/crossClechy.svg diff --git a/charges/crossDouble.svg b/src/charges/crossDouble.svg similarity index 100% rename from charges/crossDouble.svg rename to src/charges/crossDouble.svg diff --git a/charges/crossErminee.svg b/src/charges/crossErminee.svg similarity index 100% rename from charges/crossErminee.svg rename to src/charges/crossErminee.svg diff --git a/charges/crossFitchy.svg b/src/charges/crossFitchy.svg similarity index 100% rename from charges/crossFitchy.svg rename to src/charges/crossFitchy.svg diff --git a/charges/crossFleury.svg b/src/charges/crossFleury.svg similarity index 100% rename from charges/crossFleury.svg rename to src/charges/crossFleury.svg diff --git a/charges/crossFormee.svg b/src/charges/crossFormee.svg similarity index 100% rename from charges/crossFormee.svg rename to src/charges/crossFormee.svg diff --git a/charges/crossFormee2.svg b/src/charges/crossFormee2.svg similarity index 100% rename from charges/crossFormee2.svg rename to src/charges/crossFormee2.svg diff --git a/charges/crossFourchy.svg b/src/charges/crossFourchy.svg similarity index 100% rename from charges/crossFourchy.svg rename to src/charges/crossFourchy.svg diff --git a/charges/crossGamma.svg b/src/charges/crossGamma.svg similarity index 100% rename from charges/crossGamma.svg rename to src/charges/crossGamma.svg diff --git a/charges/crossHummetty.svg b/src/charges/crossHummetty.svg similarity index 100% rename from charges/crossHummetty.svg rename to src/charges/crossHummetty.svg diff --git a/charges/crossJerusalem.svg b/src/charges/crossJerusalem.svg similarity index 100% rename from charges/crossJerusalem.svg rename to src/charges/crossJerusalem.svg diff --git a/charges/crossLatin.svg b/src/charges/crossLatin.svg similarity index 100% rename from charges/crossLatin.svg rename to src/charges/crossLatin.svg diff --git a/charges/crossMaltese.svg b/src/charges/crossMaltese.svg similarity index 100% rename from charges/crossMaltese.svg rename to src/charges/crossMaltese.svg diff --git a/charges/crossMoline.svg b/src/charges/crossMoline.svg similarity index 100% rename from charges/crossMoline.svg rename to src/charges/crossMoline.svg diff --git a/charges/crossOccitan.svg b/src/charges/crossOccitan.svg similarity index 100% rename from charges/crossOccitan.svg rename to src/charges/crossOccitan.svg diff --git a/charges/crossOrthodox.svg b/src/charges/crossOrthodox.svg similarity index 100% rename from charges/crossOrthodox.svg rename to src/charges/crossOrthodox.svg diff --git a/charges/crossPatonce.svg b/src/charges/crossPatonce.svg similarity index 100% rename from charges/crossPatonce.svg rename to src/charges/crossPatonce.svg diff --git a/charges/crossPatriarchal.svg b/src/charges/crossPatriarchal.svg similarity index 100% rename from charges/crossPatriarchal.svg rename to src/charges/crossPatriarchal.svg diff --git a/charges/crossPattee.svg b/src/charges/crossPattee.svg similarity index 100% rename from charges/crossPattee.svg rename to src/charges/crossPattee.svg diff --git a/charges/crossPatteeAlisee.svg b/src/charges/crossPatteeAlisee.svg similarity index 100% rename from charges/crossPatteeAlisee.svg rename to src/charges/crossPatteeAlisee.svg diff --git a/charges/crossPommy.svg b/src/charges/crossPommy.svg similarity index 100% rename from charges/crossPommy.svg rename to src/charges/crossPommy.svg diff --git a/charges/crossPotent.svg b/src/charges/crossPotent.svg similarity index 100% rename from charges/crossPotent.svg rename to src/charges/crossPotent.svg diff --git a/charges/crossSaltire.svg b/src/charges/crossSaltire.svg similarity index 100% rename from charges/crossSaltire.svg rename to src/charges/crossSaltire.svg diff --git a/charges/crossSantiago.svg b/src/charges/crossSantiago.svg similarity index 100% rename from charges/crossSantiago.svg rename to src/charges/crossSantiago.svg diff --git a/charges/crossTau.svg b/src/charges/crossTau.svg similarity index 100% rename from charges/crossTau.svg rename to src/charges/crossTau.svg diff --git a/charges/crossTemplar.svg b/src/charges/crossTemplar.svg similarity index 100% rename from charges/crossTemplar.svg rename to src/charges/crossTemplar.svg diff --git a/charges/crossTriquetra.svg b/src/charges/crossTriquetra.svg similarity index 100% rename from charges/crossTriquetra.svg rename to src/charges/crossTriquetra.svg diff --git a/charges/crossVoided.svg b/src/charges/crossVoided.svg similarity index 100% rename from charges/crossVoided.svg rename to src/charges/crossVoided.svg diff --git a/charges/crossedBones.svg b/src/charges/crossedBones.svg similarity index 100% rename from charges/crossedBones.svg rename to src/charges/crossedBones.svg diff --git a/charges/crosslet.svg b/src/charges/crosslet.svg similarity index 100% rename from charges/crosslet.svg rename to src/charges/crosslet.svg diff --git a/charges/crown.svg b/src/charges/crown.svg similarity index 100% rename from charges/crown.svg rename to src/charges/crown.svg diff --git a/charges/crown2.svg b/src/charges/crown2.svg similarity index 100% rename from charges/crown2.svg rename to src/charges/crown2.svg diff --git a/charges/deerHeadCaboshed.svg b/src/charges/deerHeadCaboshed.svg similarity index 100% rename from charges/deerHeadCaboshed.svg rename to src/charges/deerHeadCaboshed.svg diff --git a/charges/delf.svg b/src/charges/delf.svg similarity index 100% rename from charges/delf.svg rename to src/charges/delf.svg diff --git a/charges/dolphin.svg b/src/charges/dolphin.svg similarity index 100% rename from charges/dolphin.svg rename to src/charges/dolphin.svg diff --git a/charges/donkeyHeadCaboshed.svg b/src/charges/donkeyHeadCaboshed.svg similarity index 100% rename from charges/donkeyHeadCaboshed.svg rename to src/charges/donkeyHeadCaboshed.svg diff --git a/charges/dove.svg b/src/charges/dove.svg similarity index 100% rename from charges/dove.svg rename to src/charges/dove.svg diff --git a/charges/doveDisplayed.svg b/src/charges/doveDisplayed.svg similarity index 100% rename from charges/doveDisplayed.svg rename to src/charges/doveDisplayed.svg diff --git a/charges/dragonPassant.svg b/src/charges/dragonPassant.svg similarity index 100% rename from charges/dragonPassant.svg rename to src/charges/dragonPassant.svg diff --git a/charges/dragonRampant.svg b/src/charges/dragonRampant.svg similarity index 100% rename from charges/dragonRampant.svg rename to src/charges/dragonRampant.svg diff --git a/charges/dragonfly.svg b/src/charges/dragonfly.svg similarity index 100% rename from charges/dragonfly.svg rename to src/charges/dragonfly.svg diff --git a/charges/drakkar.svg b/src/charges/drakkar.svg similarity index 100% rename from charges/drakkar.svg rename to src/charges/drakkar.svg diff --git a/charges/drawingCompass.svg b/src/charges/drawingCompass.svg similarity index 100% rename from charges/drawingCompass.svg rename to src/charges/drawingCompass.svg diff --git a/charges/drum.svg b/src/charges/drum.svg similarity index 100% rename from charges/drum.svg rename to src/charges/drum.svg diff --git a/charges/duck.svg b/src/charges/duck.svg similarity index 100% rename from charges/duck.svg rename to src/charges/duck.svg diff --git a/charges/eagle.svg b/src/charges/eagle.svg similarity index 100% rename from charges/eagle.svg rename to src/charges/eagle.svg diff --git a/charges/eagleTwoHeads.svg b/src/charges/eagleTwoHeads.svg similarity index 100% rename from charges/eagleTwoHeads.svg rename to src/charges/eagleTwoHeads.svg diff --git a/charges/earOfWheat.svg b/src/charges/earOfWheat.svg similarity index 100% rename from charges/earOfWheat.svg rename to src/charges/earOfWheat.svg diff --git a/charges/elephant.svg b/src/charges/elephant.svg similarity index 100% rename from charges/elephant.svg rename to src/charges/elephant.svg diff --git a/charges/elephantHeadErased.svg b/src/charges/elephantHeadErased.svg similarity index 100% rename from charges/elephantHeadErased.svg rename to src/charges/elephantHeadErased.svg diff --git a/charges/escallop.svg b/src/charges/escallop.svg similarity index 100% rename from charges/escallop.svg rename to src/charges/escallop.svg diff --git a/charges/estoile.svg b/src/charges/estoile.svg similarity index 100% rename from charges/estoile.svg rename to src/charges/estoile.svg diff --git a/charges/falchion.svg b/src/charges/falchion.svg similarity index 100% rename from charges/falchion.svg rename to src/charges/falchion.svg diff --git a/charges/falcon.svg b/src/charges/falcon.svg similarity index 100% rename from charges/falcon.svg rename to src/charges/falcon.svg diff --git a/charges/fan.svg b/src/charges/fan.svg similarity index 100% rename from charges/fan.svg rename to src/charges/fan.svg diff --git a/charges/fasces.svg b/src/charges/fasces.svg similarity index 100% rename from charges/fasces.svg rename to src/charges/fasces.svg diff --git a/charges/feather.svg b/src/charges/feather.svg similarity index 100% rename from charges/feather.svg rename to src/charges/feather.svg diff --git a/charges/flamberge.svg b/src/charges/flamberge.svg similarity index 100% rename from charges/flamberge.svg rename to src/charges/flamberge.svg diff --git a/charges/flangedMace.svg b/src/charges/flangedMace.svg similarity index 100% rename from charges/flangedMace.svg rename to src/charges/flangedMace.svg diff --git a/charges/fleurDeLis.svg b/src/charges/fleurDeLis.svg similarity index 100% rename from charges/fleurDeLis.svg rename to src/charges/fleurDeLis.svg diff --git a/charges/fly.svg b/src/charges/fly.svg similarity index 100% rename from charges/fly.svg rename to src/charges/fly.svg diff --git a/charges/foot.svg b/src/charges/foot.svg similarity index 100% rename from charges/foot.svg rename to src/charges/foot.svg diff --git a/charges/fountain.svg b/src/charges/fountain.svg similarity index 100% rename from charges/fountain.svg rename to src/charges/fountain.svg diff --git a/charges/frog.svg b/src/charges/frog.svg similarity index 100% rename from charges/frog.svg rename to src/charges/frog.svg diff --git a/charges/fusil.svg b/src/charges/fusil.svg similarity index 100% rename from charges/fusil.svg rename to src/charges/fusil.svg diff --git a/charges/garb.svg b/src/charges/garb.svg similarity index 100% rename from charges/garb.svg rename to src/charges/garb.svg diff --git a/charges/gauntlet.svg b/src/charges/gauntlet.svg similarity index 100% rename from charges/gauntlet.svg rename to src/charges/gauntlet.svg diff --git a/charges/gear.svg b/src/charges/gear.svg similarity index 100% rename from charges/gear.svg rename to src/charges/gear.svg diff --git a/charges/goat.svg b/src/charges/goat.svg similarity index 100% rename from charges/goat.svg rename to src/charges/goat.svg diff --git a/charges/goutte.svg b/src/charges/goutte.svg similarity index 100% rename from charges/goutte.svg rename to src/charges/goutte.svg diff --git a/charges/grapeBunch.svg b/src/charges/grapeBunch.svg similarity index 100% rename from charges/grapeBunch.svg rename to src/charges/grapeBunch.svg diff --git a/charges/grapeBunch2.svg b/src/charges/grapeBunch2.svg similarity index 100% rename from charges/grapeBunch2.svg rename to src/charges/grapeBunch2.svg diff --git a/charges/grenade.svg b/src/charges/grenade.svg similarity index 100% rename from charges/grenade.svg rename to src/charges/grenade.svg diff --git a/charges/greyhoundCourant.svg b/src/charges/greyhoundCourant.svg similarity index 100% rename from charges/greyhoundCourant.svg rename to src/charges/greyhoundCourant.svg diff --git a/charges/greyhoundRampant.svg b/src/charges/greyhoundRampant.svg similarity index 100% rename from charges/greyhoundRampant.svg rename to src/charges/greyhoundRampant.svg diff --git a/charges/greyhoundSejant.svg b/src/charges/greyhoundSejant.svg similarity index 100% rename from charges/greyhoundSejant.svg rename to src/charges/greyhoundSejant.svg diff --git a/charges/griffinPassant.svg b/src/charges/griffinPassant.svg similarity index 100% rename from charges/griffinPassant.svg rename to src/charges/griffinPassant.svg diff --git a/charges/griffinRampant.svg b/src/charges/griffinRampant.svg similarity index 100% rename from charges/griffinRampant.svg rename to src/charges/griffinRampant.svg diff --git a/charges/hand.svg b/src/charges/hand.svg similarity index 100% rename from charges/hand.svg rename to src/charges/hand.svg diff --git a/charges/harp.svg b/src/charges/harp.svg similarity index 100% rename from charges/harp.svg rename to src/charges/harp.svg diff --git a/charges/hatchet.svg b/src/charges/hatchet.svg similarity index 100% rename from charges/hatchet.svg rename to src/charges/hatchet.svg diff --git a/charges/head.svg b/src/charges/head.svg similarity index 100% rename from charges/head.svg rename to src/charges/head.svg diff --git a/charges/headWreathed.svg b/src/charges/headWreathed.svg similarity index 100% rename from charges/headWreathed.svg rename to src/charges/headWreathed.svg diff --git a/charges/heart.svg b/src/charges/heart.svg similarity index 100% rename from charges/heart.svg rename to src/charges/heart.svg diff --git a/charges/hedgehog.svg b/src/charges/hedgehog.svg similarity index 100% rename from charges/hedgehog.svg rename to src/charges/hedgehog.svg diff --git a/charges/helmet.svg b/src/charges/helmet.svg similarity index 100% rename from charges/helmet.svg rename to src/charges/helmet.svg diff --git a/charges/helmetCorinthian.svg b/src/charges/helmetCorinthian.svg similarity index 100% rename from charges/helmetCorinthian.svg rename to src/charges/helmetCorinthian.svg diff --git a/charges/helmetGreat.svg b/src/charges/helmetGreat.svg similarity index 100% rename from charges/helmetGreat.svg rename to src/charges/helmetGreat.svg diff --git a/charges/helmetZischagge.svg b/src/charges/helmetZischagge.svg similarity index 100% rename from charges/helmetZischagge.svg rename to src/charges/helmetZischagge.svg diff --git a/charges/heron.svg b/src/charges/heron.svg similarity index 100% rename from charges/heron.svg rename to src/charges/heron.svg diff --git a/charges/hindStatant.svg b/src/charges/hindStatant.svg similarity index 100% rename from charges/hindStatant.svg rename to src/charges/hindStatant.svg diff --git a/charges/hook.svg b/src/charges/hook.svg similarity index 100% rename from charges/hook.svg rename to src/charges/hook.svg diff --git a/charges/horseHeadCouped.svg b/src/charges/horseHeadCouped.svg similarity index 100% rename from charges/horseHeadCouped.svg rename to src/charges/horseHeadCouped.svg diff --git a/charges/horsePassant.svg b/src/charges/horsePassant.svg similarity index 100% rename from charges/horsePassant.svg rename to src/charges/horsePassant.svg diff --git a/charges/horseRampant.svg b/src/charges/horseRampant.svg similarity index 100% rename from charges/horseRampant.svg rename to src/charges/horseRampant.svg diff --git a/charges/horseSalient.svg b/src/charges/horseSalient.svg similarity index 100% rename from charges/horseSalient.svg rename to src/charges/horseSalient.svg diff --git a/charges/horseshoe.svg b/src/charges/horseshoe.svg similarity index 100% rename from charges/horseshoe.svg rename to src/charges/horseshoe.svg diff --git a/charges/hourglass.svg b/src/charges/hourglass.svg similarity index 100% rename from charges/hourglass.svg rename to src/charges/hourglass.svg diff --git a/charges/key.svg b/src/charges/key.svg similarity index 100% rename from charges/key.svg rename to src/charges/key.svg diff --git a/charges/ladder.svg b/src/charges/ladder.svg similarity index 100% rename from charges/ladder.svg rename to src/charges/ladder.svg diff --git a/charges/ladder2.svg b/src/charges/ladder2.svg similarity index 100% rename from charges/ladder2.svg rename to src/charges/ladder2.svg diff --git a/charges/ladybird.svg b/src/charges/ladybird.svg similarity index 100% rename from charges/ladybird.svg rename to src/charges/ladybird.svg diff --git a/charges/lamb.svg b/src/charges/lamb.svg similarity index 100% rename from charges/lamb.svg rename to src/charges/lamb.svg diff --git a/charges/lambPassantReguardant.svg b/src/charges/lambPassantReguardant.svg similarity index 100% rename from charges/lambPassantReguardant.svg rename to src/charges/lambPassantReguardant.svg diff --git a/charges/lanceHead.svg b/src/charges/lanceHead.svg similarity index 100% rename from charges/lanceHead.svg rename to src/charges/lanceHead.svg diff --git a/charges/lanceWithBanner.svg b/src/charges/lanceWithBanner.svg similarity index 100% rename from charges/lanceWithBanner.svg rename to src/charges/lanceWithBanner.svg diff --git a/charges/laurelWreath.svg b/src/charges/laurelWreath.svg similarity index 100% rename from charges/laurelWreath.svg rename to src/charges/laurelWreath.svg diff --git a/charges/laurelWreath2.svg b/src/charges/laurelWreath2.svg similarity index 100% rename from charges/laurelWreath2.svg rename to src/charges/laurelWreath2.svg diff --git a/charges/lighthouse.svg b/src/charges/lighthouse.svg similarity index 100% rename from charges/lighthouse.svg rename to src/charges/lighthouse.svg diff --git a/charges/lionHeadCaboshed.svg b/src/charges/lionHeadCaboshed.svg similarity index 100% rename from charges/lionHeadCaboshed.svg rename to src/charges/lionHeadCaboshed.svg diff --git a/charges/lionHeadErased.svg b/src/charges/lionHeadErased.svg similarity index 100% rename from charges/lionHeadErased.svg rename to src/charges/lionHeadErased.svg diff --git a/charges/lionPassant.svg b/src/charges/lionPassant.svg similarity index 100% rename from charges/lionPassant.svg rename to src/charges/lionPassant.svg diff --git a/charges/lionPassantGuardant.svg b/src/charges/lionPassantGuardant.svg similarity index 100% rename from charges/lionPassantGuardant.svg rename to src/charges/lionPassantGuardant.svg diff --git a/charges/lionRampant.svg b/src/charges/lionRampant.svg similarity index 100% rename from charges/lionRampant.svg rename to src/charges/lionRampant.svg diff --git a/charges/lionSejant.svg b/src/charges/lionSejant.svg similarity index 100% rename from charges/lionSejant.svg rename to src/charges/lionSejant.svg diff --git a/charges/lizard.svg b/src/charges/lizard.svg similarity index 100% rename from charges/lizard.svg rename to src/charges/lizard.svg diff --git a/charges/lochaberAxe.svg b/src/charges/lochaberAxe.svg similarity index 100% rename from charges/lochaberAxe.svg rename to src/charges/lochaberAxe.svg diff --git a/charges/log.svg b/src/charges/log.svg similarity index 100% rename from charges/log.svg rename to src/charges/log.svg diff --git a/charges/lozenge.svg b/src/charges/lozenge.svg similarity index 100% rename from charges/lozenge.svg rename to src/charges/lozenge.svg diff --git a/charges/lozengeFaceted.svg b/src/charges/lozengeFaceted.svg similarity index 100% rename from charges/lozengeFaceted.svg rename to src/charges/lozengeFaceted.svg diff --git a/charges/lozengePloye.svg b/src/charges/lozengePloye.svg similarity index 100% rename from charges/lozengePloye.svg rename to src/charges/lozengePloye.svg diff --git a/charges/lute.svg b/src/charges/lute.svg similarity index 100% rename from charges/lute.svg rename to src/charges/lute.svg diff --git a/charges/lymphad.svg b/src/charges/lymphad.svg similarity index 100% rename from charges/lymphad.svg rename to src/charges/lymphad.svg diff --git a/charges/lyre.svg b/src/charges/lyre.svg similarity index 100% rename from charges/lyre.svg rename to src/charges/lyre.svg diff --git a/charges/mace.svg b/src/charges/mace.svg similarity index 100% rename from charges/mace.svg rename to src/charges/mace.svg diff --git a/charges/maces.svg b/src/charges/maces.svg similarity index 100% rename from charges/maces.svg rename to src/charges/maces.svg diff --git a/charges/mallet.svg b/src/charges/mallet.svg similarity index 100% rename from charges/mallet.svg rename to src/charges/mallet.svg diff --git a/charges/mantle.svg b/src/charges/mantle.svg similarity index 100% rename from charges/mantle.svg rename to src/charges/mantle.svg diff --git a/charges/mapleLeaf.svg b/src/charges/mapleLeaf.svg similarity index 100% rename from charges/mapleLeaf.svg rename to src/charges/mapleLeaf.svg diff --git a/charges/martenCourant.svg b/src/charges/martenCourant.svg similarity index 100% rename from charges/martenCourant.svg rename to src/charges/martenCourant.svg diff --git a/charges/mascle.svg b/src/charges/mascle.svg similarity index 100% rename from charges/mascle.svg rename to src/charges/mascle.svg diff --git a/charges/mastiffStatant.svg b/src/charges/mastiffStatant.svg similarity index 100% rename from charges/mastiffStatant.svg rename to src/charges/mastiffStatant.svg diff --git a/charges/millstone.svg b/src/charges/millstone.svg similarity index 100% rename from charges/millstone.svg rename to src/charges/millstone.svg diff --git a/charges/mitre.svg b/src/charges/mitre.svg similarity index 100% rename from charges/mitre.svg rename to src/charges/mitre.svg diff --git a/charges/monk.svg b/src/charges/monk.svg similarity index 100% rename from charges/monk.svg rename to src/charges/monk.svg diff --git a/charges/moonInCrescent.svg b/src/charges/moonInCrescent.svg similarity index 100% rename from charges/moonInCrescent.svg rename to src/charges/moonInCrescent.svg diff --git a/charges/mullet.svg b/src/charges/mullet.svg similarity index 100% rename from charges/mullet.svg rename to src/charges/mullet.svg diff --git a/charges/mullet10.svg b/src/charges/mullet10.svg similarity index 100% rename from charges/mullet10.svg rename to src/charges/mullet10.svg diff --git a/charges/mullet4.svg b/src/charges/mullet4.svg similarity index 100% rename from charges/mullet4.svg rename to src/charges/mullet4.svg diff --git a/charges/mullet6.svg b/src/charges/mullet6.svg similarity index 100% rename from charges/mullet6.svg rename to src/charges/mullet6.svg diff --git a/charges/mullet6Faceted.svg b/src/charges/mullet6Faceted.svg similarity index 100% rename from charges/mullet6Faceted.svg rename to src/charges/mullet6Faceted.svg diff --git a/charges/mullet6Pierced.svg b/src/charges/mullet6Pierced.svg similarity index 100% rename from charges/mullet6Pierced.svg rename to src/charges/mullet6Pierced.svg diff --git a/charges/mullet7.svg b/src/charges/mullet7.svg similarity index 100% rename from charges/mullet7.svg rename to src/charges/mullet7.svg diff --git a/charges/mullet8.svg b/src/charges/mullet8.svg similarity index 100% rename from charges/mullet8.svg rename to src/charges/mullet8.svg diff --git a/charges/mulletFaceted.svg b/src/charges/mulletFaceted.svg similarity index 100% rename from charges/mulletFaceted.svg rename to src/charges/mulletFaceted.svg diff --git a/charges/mulletPierced.svg b/src/charges/mulletPierced.svg similarity index 100% rename from charges/mulletPierced.svg rename to src/charges/mulletPierced.svg diff --git a/charges/oak.svg b/src/charges/oak.svg similarity index 100% rename from charges/oak.svg rename to src/charges/oak.svg diff --git a/charges/orb.svg b/src/charges/orb.svg similarity index 100% rename from charges/orb.svg rename to src/charges/orb.svg diff --git a/charges/ouroboros.svg b/src/charges/ouroboros.svg similarity index 100% rename from charges/ouroboros.svg rename to src/charges/ouroboros.svg diff --git a/charges/owl.svg b/src/charges/owl.svg similarity index 100% rename from charges/owl.svg rename to src/charges/owl.svg diff --git a/charges/owlDisplayed.svg b/src/charges/owlDisplayed.svg similarity index 100% rename from charges/owlDisplayed.svg rename to src/charges/owlDisplayed.svg diff --git a/charges/palace.svg b/src/charges/palace.svg similarity index 100% rename from charges/palace.svg rename to src/charges/palace.svg diff --git a/charges/palmTree.svg b/src/charges/palmTree.svg similarity index 100% rename from charges/palmTree.svg rename to src/charges/palmTree.svg diff --git a/charges/parrot.svg b/src/charges/parrot.svg similarity index 100% rename from charges/parrot.svg rename to src/charges/parrot.svg diff --git a/charges/peacock.svg b/src/charges/peacock.svg similarity index 100% rename from charges/peacock.svg rename to src/charges/peacock.svg diff --git a/charges/peacockInPride.svg b/src/charges/peacockInPride.svg similarity index 100% rename from charges/peacockInPride.svg rename to src/charges/peacockInPride.svg diff --git a/charges/pear.svg b/src/charges/pear.svg similarity index 100% rename from charges/pear.svg rename to src/charges/pear.svg diff --git a/charges/pegasus.svg b/src/charges/pegasus.svg similarity index 100% rename from charges/pegasus.svg rename to src/charges/pegasus.svg diff --git a/charges/pike.svg b/src/charges/pike.svg similarity index 100% rename from charges/pike.svg rename to src/charges/pike.svg diff --git a/charges/pillar.svg b/src/charges/pillar.svg similarity index 100% rename from charges/pillar.svg rename to src/charges/pillar.svg diff --git a/charges/pincers.svg b/src/charges/pincers.svg similarity index 100% rename from charges/pincers.svg rename to src/charges/pincers.svg diff --git a/charges/pineCone.svg b/src/charges/pineCone.svg similarity index 100% rename from charges/pineCone.svg rename to src/charges/pineCone.svg diff --git a/charges/pineTree.svg b/src/charges/pineTree.svg similarity index 100% rename from charges/pineTree.svg rename to src/charges/pineTree.svg diff --git a/charges/pique.svg b/src/charges/pique.svg similarity index 100% rename from charges/pique.svg rename to src/charges/pique.svg diff --git a/charges/plaice.svg b/src/charges/plaice.svg similarity index 100% rename from charges/plaice.svg rename to src/charges/plaice.svg diff --git a/charges/plough.svg b/src/charges/plough.svg similarity index 100% rename from charges/plough.svg rename to src/charges/plough.svg diff --git a/charges/ploughshare.svg b/src/charges/ploughshare.svg similarity index 100% rename from charges/ploughshare.svg rename to src/charges/ploughshare.svg diff --git a/charges/porcupine.svg b/src/charges/porcupine.svg similarity index 100% rename from charges/porcupine.svg rename to src/charges/porcupine.svg diff --git a/charges/portcullis.svg b/src/charges/portcullis.svg similarity index 100% rename from charges/portcullis.svg rename to src/charges/portcullis.svg diff --git a/charges/pot.svg b/src/charges/pot.svg similarity index 100% rename from charges/pot.svg rename to src/charges/pot.svg diff --git a/charges/quatrefoil.svg b/src/charges/quatrefoil.svg similarity index 100% rename from charges/quatrefoil.svg rename to src/charges/quatrefoil.svg diff --git a/charges/rabbitSejant.svg b/src/charges/rabbitSejant.svg similarity index 100% rename from charges/rabbitSejant.svg rename to src/charges/rabbitSejant.svg diff --git a/charges/raft.svg b/src/charges/raft.svg similarity index 100% rename from charges/raft.svg rename to src/charges/raft.svg diff --git a/charges/rake.svg b/src/charges/rake.svg similarity index 100% rename from charges/rake.svg rename to src/charges/rake.svg diff --git a/charges/ramHeadErased.svg b/src/charges/ramHeadErased.svg similarity index 100% rename from charges/ramHeadErased.svg rename to src/charges/ramHeadErased.svg diff --git a/charges/ramPassant.svg b/src/charges/ramPassant.svg similarity index 100% rename from charges/ramPassant.svg rename to src/charges/ramPassant.svg diff --git a/charges/ramsHorn.svg b/src/charges/ramsHorn.svg similarity index 100% rename from charges/ramsHorn.svg rename to src/charges/ramsHorn.svg diff --git a/charges/rapier.svg b/src/charges/rapier.svg similarity index 100% rename from charges/rapier.svg rename to src/charges/rapier.svg diff --git a/charges/ratRampant.svg b/src/charges/ratRampant.svg similarity index 100% rename from charges/ratRampant.svg rename to src/charges/ratRampant.svg diff --git a/charges/raven.svg b/src/charges/raven.svg similarity index 100% rename from charges/raven.svg rename to src/charges/raven.svg diff --git a/charges/rhinoceros.svg b/src/charges/rhinoceros.svg similarity index 100% rename from charges/rhinoceros.svg rename to src/charges/rhinoceros.svg diff --git a/charges/ribbon1.svg b/src/charges/ribbon1.svg similarity index 100% rename from charges/ribbon1.svg rename to src/charges/ribbon1.svg diff --git a/charges/ribbon2.svg b/src/charges/ribbon2.svg similarity index 100% rename from charges/ribbon2.svg rename to src/charges/ribbon2.svg diff --git a/charges/ribbon3.svg b/src/charges/ribbon3.svg similarity index 100% rename from charges/ribbon3.svg rename to src/charges/ribbon3.svg diff --git a/charges/ribbon4.svg b/src/charges/ribbon4.svg similarity index 100% rename from charges/ribbon4.svg rename to src/charges/ribbon4.svg diff --git a/charges/ribbon5.svg b/src/charges/ribbon5.svg similarity index 100% rename from charges/ribbon5.svg rename to src/charges/ribbon5.svg diff --git a/charges/ribbon6.svg b/src/charges/ribbon6.svg similarity index 100% rename from charges/ribbon6.svg rename to src/charges/ribbon6.svg diff --git a/charges/ribbon7.svg b/src/charges/ribbon7.svg similarity index 100% rename from charges/ribbon7.svg rename to src/charges/ribbon7.svg diff --git a/charges/ribbon8.svg b/src/charges/ribbon8.svg similarity index 100% rename from charges/ribbon8.svg rename to src/charges/ribbon8.svg diff --git a/charges/rose.svg b/src/charges/rose.svg similarity index 100% rename from charges/rose.svg rename to src/charges/rose.svg diff --git a/charges/roundel.svg b/src/charges/roundel.svg similarity index 100% rename from charges/roundel.svg rename to src/charges/roundel.svg diff --git a/charges/roundel2.svg b/src/charges/roundel2.svg similarity index 100% rename from charges/roundel2.svg rename to src/charges/roundel2.svg diff --git a/charges/rustre.svg b/src/charges/rustre.svg similarity index 100% rename from charges/rustre.svg rename to src/charges/rustre.svg diff --git a/charges/sabre.svg b/src/charges/sabre.svg similarity index 100% rename from charges/sabre.svg rename to src/charges/sabre.svg diff --git a/charges/sabre2.svg b/src/charges/sabre2.svg similarity index 100% rename from charges/sabre2.svg rename to src/charges/sabre2.svg diff --git a/charges/sabresCrossed.svg b/src/charges/sabresCrossed.svg similarity index 100% rename from charges/sabresCrossed.svg rename to src/charges/sabresCrossed.svg diff --git a/charges/sagittarius.svg b/src/charges/sagittarius.svg similarity index 100% rename from charges/sagittarius.svg rename to src/charges/sagittarius.svg diff --git a/charges/salmon.svg b/src/charges/salmon.svg similarity index 100% rename from charges/salmon.svg rename to src/charges/salmon.svg diff --git a/charges/saw.svg b/src/charges/saw.svg similarity index 100% rename from charges/saw.svg rename to src/charges/saw.svg diff --git a/charges/scale.svg b/src/charges/scale.svg similarity index 100% rename from charges/scale.svg rename to src/charges/scale.svg diff --git a/charges/scaleImbalanced.svg b/src/charges/scaleImbalanced.svg similarity index 100% rename from charges/scaleImbalanced.svg rename to src/charges/scaleImbalanced.svg diff --git a/charges/scalesHanging.svg b/src/charges/scalesHanging.svg similarity index 100% rename from charges/scalesHanging.svg rename to src/charges/scalesHanging.svg diff --git a/charges/sceptre.svg b/src/charges/sceptre.svg similarity index 100% rename from charges/sceptre.svg rename to src/charges/sceptre.svg diff --git a/charges/scissors.svg b/src/charges/scissors.svg similarity index 100% rename from charges/scissors.svg rename to src/charges/scissors.svg diff --git a/charges/scissors2.svg b/src/charges/scissors2.svg similarity index 100% rename from charges/scissors2.svg rename to src/charges/scissors2.svg diff --git a/charges/scorpion.svg b/src/charges/scorpion.svg similarity index 100% rename from charges/scorpion.svg rename to src/charges/scorpion.svg diff --git a/charges/scrollClosed.svg b/src/charges/scrollClosed.svg similarity index 100% rename from charges/scrollClosed.svg rename to src/charges/scrollClosed.svg diff --git a/charges/scythe.svg b/src/charges/scythe.svg similarity index 100% rename from charges/scythe.svg rename to src/charges/scythe.svg diff --git a/charges/scythe2.svg b/src/charges/scythe2.svg similarity index 100% rename from charges/scythe2.svg rename to src/charges/scythe2.svg diff --git a/charges/serpent.svg b/src/charges/serpent.svg similarity index 100% rename from charges/serpent.svg rename to src/charges/serpent.svg diff --git a/charges/sextifoil.svg b/src/charges/sextifoil.svg similarity index 100% rename from charges/sextifoil.svg rename to src/charges/sextifoil.svg diff --git a/charges/shears.svg b/src/charges/shears.svg similarity index 100% rename from charges/shears.svg rename to src/charges/shears.svg diff --git a/charges/shield.svg b/src/charges/shield.svg similarity index 100% rename from charges/shield.svg rename to src/charges/shield.svg diff --git a/charges/shipWheel.svg b/src/charges/shipWheel.svg similarity index 100% rename from charges/shipWheel.svg rename to src/charges/shipWheel.svg diff --git a/charges/sickle.svg b/src/charges/sickle.svg similarity index 100% rename from charges/sickle.svg rename to src/charges/sickle.svg diff --git a/charges/skeleton.svg b/src/charges/skeleton.svg similarity index 100% rename from charges/skeleton.svg rename to src/charges/skeleton.svg diff --git a/charges/skull.svg b/src/charges/skull.svg similarity index 100% rename from charges/skull.svg rename to src/charges/skull.svg diff --git a/charges/skull2.svg b/src/charges/skull2.svg similarity index 100% rename from charges/skull2.svg rename to src/charges/skull2.svg diff --git a/charges/snail.svg b/src/charges/snail.svg similarity index 100% rename from charges/snail.svg rename to src/charges/snail.svg diff --git a/charges/snake.svg b/src/charges/snake.svg similarity index 100% rename from charges/snake.svg rename to src/charges/snake.svg diff --git a/charges/snowflake.svg b/src/charges/snowflake.svg similarity index 100% rename from charges/snowflake.svg rename to src/charges/snowflake.svg diff --git a/charges/spear.svg b/src/charges/spear.svg similarity index 100% rename from charges/spear.svg rename to src/charges/spear.svg diff --git a/charges/spiral.svg b/src/charges/spiral.svg similarity index 100% rename from charges/spiral.svg rename to src/charges/spiral.svg diff --git a/charges/squirrel.svg b/src/charges/squirrel.svg similarity index 100% rename from charges/squirrel.svg rename to src/charges/squirrel.svg diff --git a/charges/stagLodgedRegardant.svg b/src/charges/stagLodgedRegardant.svg similarity index 100% rename from charges/stagLodgedRegardant.svg rename to src/charges/stagLodgedRegardant.svg diff --git a/charges/stagPassant.svg b/src/charges/stagPassant.svg similarity index 100% rename from charges/stagPassant.svg rename to src/charges/stagPassant.svg diff --git a/charges/stagsAttires.svg b/src/charges/stagsAttires.svg similarity index 100% rename from charges/stagsAttires.svg rename to src/charges/stagsAttires.svg diff --git a/charges/stirrup.svg b/src/charges/stirrup.svg similarity index 100% rename from charges/stirrup.svg rename to src/charges/stirrup.svg diff --git a/charges/sun.svg b/src/charges/sun.svg similarity index 100% rename from charges/sun.svg rename to src/charges/sun.svg diff --git a/charges/sunInSplendour.svg b/src/charges/sunInSplendour.svg similarity index 100% rename from charges/sunInSplendour.svg rename to src/charges/sunInSplendour.svg diff --git a/charges/sunInSplendour2.svg b/src/charges/sunInSplendour2.svg similarity index 100% rename from charges/sunInSplendour2.svg rename to src/charges/sunInSplendour2.svg diff --git a/charges/swallow.svg b/src/charges/swallow.svg similarity index 100% rename from charges/swallow.svg rename to src/charges/swallow.svg diff --git a/charges/swan.svg b/src/charges/swan.svg similarity index 100% rename from charges/swan.svg rename to src/charges/swan.svg diff --git a/charges/swanErased.svg b/src/charges/swanErased.svg similarity index 100% rename from charges/swanErased.svg rename to src/charges/swanErased.svg diff --git a/charges/sword.svg b/src/charges/sword.svg similarity index 100% rename from charges/sword.svg rename to src/charges/sword.svg diff --git a/charges/talbotPassant.svg b/src/charges/talbotPassant.svg similarity index 100% rename from charges/talbotPassant.svg rename to src/charges/talbotPassant.svg diff --git a/charges/talbotSejant.svg b/src/charges/talbotSejant.svg similarity index 100% rename from charges/talbotSejant.svg rename to src/charges/talbotSejant.svg diff --git a/charges/template.svg b/src/charges/template.svg similarity index 100% rename from charges/template.svg rename to src/charges/template.svg diff --git a/charges/thistle.svg b/src/charges/thistle.svg similarity index 100% rename from charges/thistle.svg rename to src/charges/thistle.svg diff --git a/charges/tower.svg b/src/charges/tower.svg similarity index 100% rename from charges/tower.svg rename to src/charges/tower.svg diff --git a/charges/tree.svg b/src/charges/tree.svg similarity index 100% rename from charges/tree.svg rename to src/charges/tree.svg diff --git a/charges/trefle.svg b/src/charges/trefle.svg similarity index 100% rename from charges/trefle.svg rename to src/charges/trefle.svg diff --git a/charges/trefoil.svg b/src/charges/trefoil.svg similarity index 100% rename from charges/trefoil.svg rename to src/charges/trefoil.svg diff --git a/charges/triangle.svg b/src/charges/triangle.svg similarity index 100% rename from charges/triangle.svg rename to src/charges/triangle.svg diff --git a/charges/trianglePierced.svg b/src/charges/trianglePierced.svg similarity index 100% rename from charges/trianglePierced.svg rename to src/charges/trianglePierced.svg diff --git a/charges/trowel.svg b/src/charges/trowel.svg similarity index 100% rename from charges/trowel.svg rename to src/charges/trowel.svg diff --git a/charges/unicornRampant.svg b/src/charges/unicornRampant.svg similarity index 100% rename from charges/unicornRampant.svg rename to src/charges/unicornRampant.svg diff --git a/charges/wasp.svg b/src/charges/wasp.svg similarity index 100% rename from charges/wasp.svg rename to src/charges/wasp.svg diff --git a/charges/wheatStalk.svg b/src/charges/wheatStalk.svg similarity index 100% rename from charges/wheatStalk.svg rename to src/charges/wheatStalk.svg diff --git a/charges/wheel.svg b/src/charges/wheel.svg similarity index 100% rename from charges/wheel.svg rename to src/charges/wheel.svg diff --git a/charges/windmill.svg b/src/charges/windmill.svg similarity index 100% rename from charges/windmill.svg rename to src/charges/windmill.svg diff --git a/charges/wing.svg b/src/charges/wing.svg similarity index 100% rename from charges/wing.svg rename to src/charges/wing.svg diff --git a/charges/wingSword.svg b/src/charges/wingSword.svg similarity index 100% rename from charges/wingSword.svg rename to src/charges/wingSword.svg diff --git a/charges/wolfHeadErased.svg b/src/charges/wolfHeadErased.svg similarity index 100% rename from charges/wolfHeadErased.svg rename to src/charges/wolfHeadErased.svg diff --git a/charges/wolfPassant.svg b/src/charges/wolfPassant.svg similarity index 100% rename from charges/wolfPassant.svg rename to src/charges/wolfPassant.svg diff --git a/charges/wolfRampant.svg b/src/charges/wolfRampant.svg similarity index 100% rename from charges/wolfRampant.svg rename to src/charges/wolfRampant.svg diff --git a/charges/wolfStatant.svg b/src/charges/wolfStatant.svg similarity index 100% rename from charges/wolfStatant.svg rename to src/charges/wolfStatant.svg diff --git a/charges/wyvern.svg b/src/charges/wyvern.svg similarity index 100% rename from charges/wyvern.svg rename to src/charges/wyvern.svg diff --git a/charges/wyvernWithWingsDisplayed.svg b/src/charges/wyvernWithWingsDisplayed.svg similarity index 100% rename from charges/wyvernWithWingsDisplayed.svg rename to src/charges/wyvernWithWingsDisplayed.svg diff --git a/components/fill-box.js b/src/components/fill-box.js similarity index 100% rename from components/fill-box.js rename to src/components/fill-box.js diff --git a/components/slider-input.js b/src/components/slider-input.js similarity index 100% rename from components/slider-input.js rename to src/components/slider-input.js diff --git a/config/heightmap-templates.js b/src/config/heightmap-templates.js similarity index 100% rename from config/heightmap-templates.js rename to src/config/heightmap-templates.js diff --git a/config/precreated-heightmaps.js b/src/config/precreated-heightmaps.js similarity index 100% rename from config/precreated-heightmaps.js rename to src/config/precreated-heightmaps.js diff --git a/images/icons/favicon-16x16.png b/src/dist/assets/favicon-16x16-BLDeLTFe.png similarity index 100% rename from images/icons/favicon-16x16.png rename to src/dist/assets/favicon-16x16-BLDeLTFe.png diff --git a/images/icons/favicon-32x32.png b/src/dist/assets/favicon-32x32-CpQRyNjI.png similarity index 100% rename from images/icons/favicon-32x32.png rename to src/dist/assets/favicon-32x32-CpQRyNjI.png diff --git a/src/dist/assets/index-BNkOnrgE.css b/src/dist/assets/index-BNkOnrgE.css new file mode 100644 index 00000000..9b7790be --- /dev/null +++ b/src/dist/assets/index-BNkOnrgE.css @@ -0,0 +1 @@ +:root{--monospace: Consolas, monospace;--serif: Georgia, serif;--sans-serif: Helvetica, Arial, sans-serif}body>.skiptranslate{display:none}body>.skiptranslate+div{display:none}font{pointer-events:none}form input:invalid{outline:1px solid #ed4337;outline-offset:1px}input,select,button{font-size:1em}input,select,textarea{border:.5px solid #dbdfe6;border-radius:.5px;box-sizing:border-box}select{height:1.6em;border-top-color:#abadb3;padding:0;text-indent:0px}input{border-top-color:#abadb3;padding:2px;text-indent:1px}input:read-only{cursor:default}input[type=radio]{vertical-align:bottom;cursor:pointer;accent-color:var(--header)}textarea{padding:3px;box-sizing:border-box;width:100%}iframe{border:0;width:100%}#map{background-color:#000;mask-mode:alpha;mask-clip:no-clip;fill-rule:evenodd;-webkit-user-select:none;user-select:none}#canvas{position:absolute;pointer-events:none}#preview{position:absolute;bottom:1em;left:1em;cursor:pointer}#pickerContainer{position:absolute;z-index:100}input,button,select,a,textarea{outline:none}button,select,a{cursor:pointer}.pointer{cursor:pointer!important}#prec text{font-size:32px;stroke:none;text-shadow:1px 1px 1px #9daac9;-webkit-user-select:none;user-select:none}#population,#cells,#compass{fill:none}#landmass{-webkit-mask:url(#land);mask:url(#land);fill-rule:evenodd}#lakes,#coastline,#armies,#ice,#emblems{cursor:pointer}#temperature{font-family:var(--sans-serif);font-weight:700;text-anchor:middle;dominant-baseline:central;text-shadow:0px 0px 10px white;fill-rule:evenodd}#oceanLayers,#terrs{fill-rule:evenodd}#coastline{fill:none;stroke-linejoin:round}t,#regions,#cults,#relig,#biomes,#provincesBody,#terrs,#tooltip,#temperature,#texture,#landmass,#vignette,#gridOverlay,#fogging{pointer-events:none}#armies text{pointer-events:none;-webkit-user-select:none;user-select:none;stroke:none;fill:#fff;text-shadow:0 0 4px #000;dominant-baseline:central;text-anchor:middle;font-family:var(--sans-serif);fill-opacity:1}#armies text.regimentIcon{font-size:.8em}#statesHalo{fill:none;stroke-linecap:round;stroke-linejoin:round}#statesBody,#provincesBody,#relig,#biomes,#cults{stroke-linejoin:round;fill-rule:evenodd}#statesBody,#provincesBody,#relig,#cults{-webkit-mask:url(#land);mask:url(#land)}#borders{stroke-linejoin:round;fill:none}#rivers{stroke:none;-webkit-mask:url(#land);mask:url(#land);cursor:pointer;fill-rule:nonzero}#anchors{pointer-events:none}#terrain,#burgIcons{cursor:pointer}.strokes{stroke-width:.08px;width:2px;stroke:#5c5c70;stroke-dasharray:.5,.7;stroke-linecap:round}#routes{fill:none;cursor:pointer}i.icon-lock{cursor:pointer}#labelEditor div{display:inline-block}#labels{text-anchor:middle;dominant-baseline:central;cursor:pointer}.chartInfo{text-align:center;font-family:var(--sans-serif);font-style:italic;font-size:12px}#statesTree text,#provincesTree text{pointer-events:none;-webkit-user-select:none;user-select:none;stroke:none;font-size:11px}#statesTree circle{filter:url(#dropShadow05);stroke:#666;stroke-width:1}#statesTree circle.selected,#provincesTree .selected{stroke:#c13119;stroke-width:2}.regimentDragLine{marker-end:url(#end-arrow);stroke:#333;stroke-dasharray:5;stroke-dashoffset:1000;animation:dash 80s linear backwards}.arrow{marker-end:url(#end-arrow-small);stroke:#555;stroke-width:.5}@keyframes dash{to{stroke-dashoffset:0}}#provinceLabels,#burgLabels{dominant-baseline:alphabetic;text-anchor:middle}#routeLength,#coastlineArea{background-color:#eee;border:1px solid #a5a5a5;line-height:1.3em;cursor:default}#brushCircle{stroke:#373737;stroke-width:1.5px;stroke-dasharray:7;stroke-linecap:butt;fill:none}text.drag{text-shadow:0 0 1px red}#dialogs{background-color:var(--bg-dialogs)}.draggable{cursor:move}.ui-widget-header{border-bottom:1px solid var(--dark-solid);background:var(--header);color:#fff;font-weight:700}button.ui-button:disabled{filter:brightness(.95)}button.ui-button:disabled:hover{cursor:default}.ui-dialog,#optionsContainer{-webkit-user-select:none;user-select:none}#optionsTrigger{padding:.6em .45em}@media(max-width:600px){#optionsTrigger{font-size:2em;padding:0;width:1.3em;height:1.6em;border:solid 1px #5e4fa2}}#options{position:absolute;font-family:var(--monospace);border:solid 1px #5e4fa2;margin:10px;padding-bottom:.3em;background:var(--bg-light)}#options input,#options select,#options button{font-family:var(--monospace)}#collapsible{margin:11px;border:0;position:absolute;z-index:2;display:grid;grid-template-columns:2fr 7fr}.tab{border-bottom:1px solid var(--dark-solid);height:2.2em;display:flex;justify-content:space-between}div.tab>button#optionsHide{width:auto;font-family:var(--sans-serif);padding:.6em .45em}button.options{width:100%;background-color:var(--bg-main);font-weight:700;border:none;transition:.2s}button.active{background-color:var(--header);color:#fff}button.options:hover{background-color:var(--header-active);color:#fff}#options p{font-style:italic;font-weight:700;margin:.8em 0 0}#options .tip{color:#444;font-size:.9em;font-family:sans-serif;font-style:italic;margin-left:.5em}#aboutContent{text-align:justify}#aboutContent p{font-weight:400;font-style:normal}#aboutContent a{color:#1d1b1c;font-weight:700;text-decoration:underline}#optionsContent span{font-size:.9em}#options i{color:#31272c;font-size:.85em;cursor:pointer}#options button i.icon-cog{position:absolute;padding:.1em .3em;background-color:var(--bg-lighter);border-radius:50%;visibility:hidden;opacity:0;transition:.4s ease-in-out}#options button i.icon-cog:hover{color:#111;background-color:var(--bg-light);transform:rotate(180deg)}#options button i.icon-cog:active{transform:translateY(1px)}#options button:hover i.icon-cog{visibility:visible;opacity:1}input[type=color]{-webkit-appearance:none;cursor:pointer;border:1px solid #a9a9a9}input[type=color]::-webkit-color-swatch-wrapper{padding:0}#options input[type=color]{width:4.5em;height:1em;border:0}#convertImageDialog input[type=color]{width:38px;padding:0;border:0;background:none;cursor:pointer}#options select{height:1.5em;border:0;cursor:pointer;font-size:smaller}#options input[type=text]{border:0px;width:62%;font-size:smaller}#options output{text-align:right;font-size:smaller}#options input[type=number]{font-size:.8em;border:0;text-align:right;background-color:transparent;width:3.3em}#options input[type=number]::-webkit-inner-spin-button,#options input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}#options input[type=number]{appearance:textfield;-moz-appearance:textfield}#options input[type=number]:hover{outline:1px solid var(--dark-solid)}#options input.paired{text-align:center;background-color:#fff}#options input.long{width:100%;background-color:#fff;text-align:left}#options input[type=range]{width:100%;height:8px;background:0;appearance:none;margin-left:0;border:0;padding:0}#options input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border-radius:15%;width:.91em;height:.91em;background:var(--light-solid);border:1px solid var(--dark-solid);cursor:pointer;margin-top:-.4em;box-shadow:.5px .5px 0 var(--dark-solid)}#options input[type=range]::-moz-range-thumb{-moz-appearance:none;border-radius:15%;width:.73em;height:.73em;background:var(--light-solid);border:1px solid var(--dark-solid);cursor:pointer;box-shadow:.5px .5px 0 var(--dark-solid)}#options input[type=range]::-webkit-slider-runnable-track{height:2px;background:#fff}#options input[type=range]::-moz-range-track{-moz-appearance:none;background-color:#fff;height:2px}#options select{width:100%}#loadGoogleTranslateButton{font-size:smaller;padding:.4em .5em}#options input[type=color]{width:2em;padding:1px}.tabcontent button.sideButton{border-radius:15%;font-size:.8em;margin-block:-1em}#layersContent button.active,#styleContent button:active{transform:translateY(1px)}#styleSelectFont>option{font-size:2em}#sticked{display:flex;justify-content:space-evenly;width:100%}#sticked button{background-color:transparent;font-weight:700;border:0}#sticked button:hover{color:#fff}#exitCustomization{right:10px;bottom:10px;position:absolute;display:none}#exitCustomization>div{width:12em;background:var(--dark-solid);cursor:move}#finalizeHeightmap{width:100%;border:none;padding:.45em .75em;margin:.4em 0;white-space:nowrap;font-family:var(--monospace);animation:glowing 2s infinite}.glow{animation:glowing 3s infinite ease-in-out}@keyframes glowing{0%{box-shadow:0 0 1px #f44336}50%{box-shadow:0 0 10px #f44336}to{box-shadow:0 0 1px #f44336}}.tabcontent{display:none;padding:0 12px 2px;opacity:.9}.tabcontent button{background-color:var(--bg-lighter);border:none;padding:.45em .75em;margin:.35em 0;transition:.1s;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tabcontent button.pressed{background-color:var(--header);font-style:italic}.tabcontent button:hover{background-color:var(--header-active)}#toolsContent>.grid{display:grid;grid-template-columns:repeat(3,1fr);margin:.2em 0}#toolsContent button{padding:.35em 0;margin:.16em .12em}#mapLayers{display:inline-block;padding:0;margin:0}#mapFilters>button{width:23%;padding:4px 0}#viewMode>button{padding:.35em;margin:.3em .3em .6em;float:left;width:30.7%}fieldset{border:1px solid var(--dark-solid)}.tabcontent li{list-style-type:none;background-color:var(--bg-main);cursor:pointer;padding:.35em;margin:.2em .3em;float:left;width:28%;text-align:center;text-transform:capitalize;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tabcontent li.buttonoff{background-color:var(--bg-disabled);color:#444a}.tabcontent li:hover{box-shadow:0 0 2px 2px var(--dark-solid) 17}.tabcontent button:hover{background-color:var(--header)}#optionsContainer span{cursor:default}#cellInfo{-webkit-user-select:text;user-select:text}#tooltip{position:fixed;text-align:center;bottom:.5vw;width:70%;left:15%;cursor:default;text-shadow:1px 1px 2px #1d0e0f;color:#fff;font-size:calc(12px + .5vw);white-space:pre-line;z-index:99999;background:linear-gradient(.1turn,#fff0,#c71d1d66,#fff0)}#optionsContent table{border-spacing:0;line-height:1.2em}#optionsContent table td:nth-of-type(1){width:3%}#optionsContent table td:nth-of-type(2){width:40%}#optionsContent table td:nth-of-type(4){text-align:right;width:6%}.emblemShapePreview{width:1.5em;height:1.5em;margin:-.4em .1em;fill:#fff;stroke:#000;stroke-width:5px}#styleContent table{border-spacing:0;margin-left:.2em;width:100%}#styleContent table tr{width:100%;display:table}#styleContent table td:nth-of-type(1){width:34.2%}#styleElements tbody,#styleElements caption{display:none}#styleIsOff{color:#8b0000;font-weight:700;text-align:left}#styleElements .whiteButton{padding:0 .8em;border:0;background-color:#fff!important}.overflow-table{width:100%;text-align:center}.matrix-table{max-height:80vh;max-width:85vw;scrollbar-width:thin;overflow:auto}.matrix-table>table{text-align:center;border-collapse:collapse;font-size:smaller}.matrix-table>table th,.matrix-table>table td{border:1px solid var(--dark-solid);height:2em;padding:.2em;position:relative}.matrix-table>table th{background-color:#302a2a;color:#fff}.matrix-table>table td:hover{outline:2px solid var(--dark-solid);outline-offset:-1px;z-index:1;cursor:pointer}.matrix-table>table td.Ally{background-color:#73ec73;color:#000}.matrix-table>table td.Friendly{background-color:#d4f8aa}.matrix-table>table td.Neutral{background-color:#d8d9d3}.matrix-table>table td.Suspicion{background-color:#eeafaa}.matrix-table>table td.Enemy{background-color:#ffa39c;color:#af0d23}.matrix-table>table td.Unknown{background-color:#c1bfbf}.matrix-table>table td.Rival{background-color:#bd845c}.matrix-table>table td.Vassal{background-color:#87cefa}.matrix-table>table td.Suzerain{background-color:#8f8fe1}.matrix-table>table td.x{background-color:#d4ca94;cursor:initial}#sizeOutput{color:green}.setColors{display:inline-block}#templateTools>button{width:1.8em;height:1.6em;margin:1px;padding:.1em .5em;float:left;font-size:1.2em;font-family:var(--monospace)}#brushesButtons>button{padding:.3em}#brushesButtons svg{pointer-events:none}#brushesPanel>div{margin:2px 0}#templateEditor>div{margin:1px 0}#templateEditor #templateTools{display:inline-block;margin-bottom:-.3em}#templateBody>div{border:1px solid #a3a3a3;border-radius:1px;background-image:linear-gradient(to right,#fff,#fafafa 51%,#ebebeb);margin:1px;padding:.1em .2em;height:1.2em}#templateBody>div:hover{border-color:gray;background-image:linear-gradient(to right,#fcfcfc,#ededed 51%,#dedede)}#templateBody>div>div{display:inline-block}#templateBody>div>span{float:right;margin-inline:1px}#templateBody>div>i{float:right}#templateBody input,#templateBody select{width:4.5em;height:1em;border:0;background-color:#ffffff95;color:#05044d;font-style:italic;font-family:var(--monospace)}#templateBody select{width:8em;height:1.4em;cursor:pointer;font-size:.9em}#templateBody .icon-resize-vertical{cursor:row-resize;font-size:.9em;color:#555;margin:1px}#templateBody .icon-check-empty,#templateBody .icon-check{width:1.1em;cursor:pointer;color:#575957;font-size:.9em}#controlPoints{fill:red;stroke:#841f1f;stroke-width:.25;cursor:move;opacity:.8}#controlPoints>path{fill:none;stroke:#0a0909;stroke-width:2;opacity:.4;cursor:pointer}#controlCells{pointer-events:none;fill:#82c8ff80;stroke:none}#vertices>circle{fill:red;stroke:#841f1f;stroke-width:.1;cursor:move;opacity:.8}#vertices>polygon{fill:none;stroke:gray;stroke-width:.1}#controlPoints>circle:hover,#vertices>circle:hover{stroke:#2c0808}#battleBody>table{padding:.2em .6em;border:1px solid #ccc;margin:.2em 0 .4em;display:block;overflow:auto;max-height:34vh;width:100%}#battleBody>table .regiment{width:13em;font-weight:700}tr.battleCasualties,tr.battleSurvivors{font-style:italic;font-size:.9em}#battleBottom div.battleTypes{position:fixed;background-color:#ffffff30}#battleBody div.battlePhases{position:absolute;background-color:#ffffff30}#battleBody div.battlePhases>button,#battleBottom div.battleTypes>button{width:3.2em;display:block;margin:.2em 0}div#regimentSelectorBody{max-height:50vh;font-size:.9em}div#regimentSelectorBody>div{padding:.1em;border:1px solid #fff}div#regimentSelectorBody>div:hover{border:1px solid #ccc}div#regimentSelectorBody>div.selected{border:1px solid #b28585}div#regimentSelectorBody>div.inactive{background-color:#eee;color:#aaa}div#regimentSelectorBody>div>div{display:inline-block;pointer-events:none}.drag-trigger{border-left:1em solid transparent;border-right:1em solid #000;border-top:1em solid transparent;position:absolute;right:-1px;bottom:-1px;opacity:.3}.drag-trigger:hover{cursor:move;opacity:.6}.tint{filter:sepia(1) hue-rotate(200deg)}.colorsContainer{display:grid;grid-template-columns:repeat(5,1fr);grid-column-gap:.3em;grid-row-gap:.2em}.color-div{width:3em;height:1.5em;border:1px #999 solid;cursor:pointer}#colorsSelect div{height:1.7em;display:inline-block;cursor:pointer}.color-div:hover{border-color:red}.hoveredColor{box-shadow:0 0 1px 1px #717171}.selectedColor{outline:2px solid #f87b66}#colorScheme{margin:6px 1px 4px}#debug path.selected{stroke-width:.8;stroke:#da3126;fill:none}#debug>text{font-size:2px;text-anchor:middle;dominant-baseline:central}.selectedCell{stroke-width:1;stroke:#da3126}i.resetButton{float:left;padding-right:.4em;font-size:.8em;margin-top:.25em;color:#fff;cursor:pointer}i.resetButton:active{color:var(--dark-solid)}.ui-dialog button.pressed{box-shadow:inset 1px 1px #ccc;border-color:#a6a6da;background-color:#ecd8d8;border-radius:10%}.ui-dialog input[type=range]{padding:0;height:2px;background:#d4d4d4;position:relative;appearance:none;-webkit-appearance:none}.ui-dialog input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border-radius:15%;width:1em;height:1em;background:#e9e9e9;border:1px solid #9b9b9b;cursor:pointer}.ui-dialog input[type=range]::-moz-range-thumb{appearance:none;border-radius:15%;width:1em;height:1em;background:#e9e9e9;border:1px solid #9b9b9b;cursor:pointer}.ui-dialog input[type=number]{width:4.5em}.ui-dialog .disabled{opacity:.2}.ui-dialog:disabled{cursor:default}div.slider{width:40em;margin-top:.2em}div.slider .ui-slider-handle{width:3em;height:1.6em;top:50%;margin-top:-.8em;text-align:center;line-height:1.6em}#saveDropdown{display:none;position:absolute;left:29%;top:100%;border:1px solid #5e4fa2;background-color:#a4879b;width:5em}#loadDropdown{display:none;position:absolute;left:53%;top:100%;border:1px solid #5e4fa2;background-color:#a4879b;width:9em}#loadDropdown>div,#saveDropdown>div{padding:2px 4px;cursor:pointer}#loadDropdown>div:hover,#saveDropdown>div:hover{color:#fff}#rescaleHigher,#rescaleLower,#rescaleModifier{width:3.7em}.italic{font-style:italic}.hidden{display:none!important}.table{max-height:75vh;max-width:75vw;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin}@media screen and (max-width:600px){.table{max-width:unset}}.dialog::-webkit-scrollbar,#alertMessage::-webkit-scrollbar,.table::-webkit-scrollbar,.matrix-table::-webkit-scrollbar{width:6px;height:6px;background-color:transparent}.dialog::-webkit-scrollbar-thumb,#alertMessage::-webkit-scrollbar-thumb,.table::-webkit-scrollbar-thumb,.matrix-table::-webkit-scrollbar-thumb{background-color:#aaa;border-radius:6px}.dialog::-webkit-scrollbar-thumb:hover,#alertMessage::-webkit-scrollbar-thumb:hover,.table::-webkit-scrollbar-thumb:hover,.matrix-table::-webkit-scrollbar-thumb:hover{background:#666}.dialog{max-width:93vw}.dialog>div{width:max-content}div.header{display:grid;width:0;font-weight:700;font-size:.9em}div.header>div:first-child{margin-left:1.8em}.sortable{cursor:pointer}.totalLine{color:#666;font-style:italic;font-size:.9em;margin-bottom:3px}.totalLine>div{display:inline-block}div.states{border:1px solid #d4d4d4;background-image:linear-gradient(to right,#fafafa80,#f0f0f080,#c8c8c880);margin:.1em 0;padding:0 .2em;font-size:.9em;line-height:1.5em}div.states:hover,div.states.hovered{border:1px solid #c4c4c4;background-image:linear-gradient(to right,#dedede 100%,#f2f2f2,#fcfcfc 0%)}div.states>*,div.states sup,div.totalLine>div{display:inline-block}div.states>input{width:7em;background:none;border:0}div.states div{width:3.2em}div.states .biomeHabitability{width:4em;-moz-appearance:textfield}div.states>.statePopulation{width:3em}div.states:hover>.hiddenIcon{visibility:visible!important}div.states .icon-pencil,div.states .icon-trash-empty,div.states .icon-eye,div.states .icon-pin,div.states .icon-flag-empty,div.states .icon-cw,div.states .icon-lock,div.states .icon-lock-open{cursor:pointer}div.states .icon-resize-vertical{cursor:row-resize;font-size:.9em}div.states>[class^=icon-]{color:#6e5e66;padding:0}div.states>.icon-arrows-cw{color:#67575c;font-size:.9em;cursor:pointer}div.states>.before{color:#6e5e66;padding:0 1px 0 0}div.states>.small{font-size:.9em}div.states>select{width:7em;cursor:pointer;border:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}div.states span.inactive{color:#c6c2c2}div.states span.inactive:hover{color:#abaaaa}div.states>.riverName{width:7em}div.states>.riverType{width:5em}.coaIcon{stroke-width:3;width:1.4em;height:1.4em;margin:-.3em 0}.coaIcon>use{pointer-events:none}#diplomacyBodySection>div{cursor:pointer}.changeRelations>*{pointer-events:none;cursor:pointer}#diplomacySelect{width:5em;margin:.1em 0 0 -.3em;position:fixed;background-color:#fff;border:1px solid #1891ff}#diplomacySelect>div{width:100%;padding-left:.3em}#diplomacySelect>div:hover{background-color:#1891ff;color:#fff;width:calc(100% - .3em)}#burgsFooterPopulation{border:0;width:50px;color:#666;font-style:italic;line-height:1.4em}#burgBody div.label{display:inline-block;width:6em}#burgBody>div>div,#riverBody>div,#routeBody>div,#lakeBody>div{padding:.1em}#riverBody div.label,#riverBody input,#riverBody select,#routeBody div.label,#lakeBody div.label,#lakeBody input,#lakeBody select{display:inline-block;width:7em}#routeBody input,#routeBody select{display:inline-block;width:10em}#stateNameEditor div.label,#provinceNameEditor div.label,#regimentBody div.label,#markerEditor div.label{display:inline-block;width:5.5em;padding:.3em 0}#exportToPngTilesScreen div.label{display:inline-block;width:5em}#regimentBody input[type=number]{width:5em}.burgFeature{padding:1px;cursor:pointer}.burgFeature.inactive{color:#ddd}.burgFeature.inactive:hover{color:#abaaaa}.placeholder{opacity:0;cursor:default;pointer-events:none}div.states.selected{border-color:#b28585;background-image:linear-gradient(to right,#f2f2f2,#ebe7e7,#e5dadb)}div.states.active{border:1px solid #c4c4c4;background-image:linear-gradient(to right,#dedede 100%,#f2f2f2,#fcfcfc 0%)}div.states.Self{margin-bottom:.2em;cursor:default!important;padding:.2em 0 0 .5em;font-weight:700}div.states button.selectCapital{margin:-1px 21px 0 7px;padding:0 3px}div.states>input.biomeName{width:12em}div.states>div.biomeArea{width:5em}#militaryBody div.states>input{-moz-appearance:textfield}#militaryBody div.states>input,#militaryBody div.states>div,#regimentsBody div.states>div{width:5em}#emblemBody>div{padding:1px 3px;transition:all .3s ease-out}#emblemBody>div.active{background-color:#54ca7728}#emblemArmiger{text-align:center;display:block}#emblemBody .label{width:6em;display:inline-block}#emblemBody select{width:9em}#emblemsBottom{margin-top:4px;text-align:center}#emblemUploadControl,#emblemDownloadControl{margin-top:.3em;width:100%}div.editorLine{margin:.2em 0;padding:0 .2em;font-size:.9em}#emblemDownloadControl>input{width:4.1em}#picker text{cursor:default}#pickerHeader{fill:var(--header);stroke:var(--dark-solid);cursor:move}#pickerLabel{fill:#f8ffff;font-size:12px;font-weight:700;font-family:var(--sans-serif);cursor:move!important}#pickerCloseRect{cursor:pointer;fill:var(--header);stroke:#f8ffff}#pickerCloseText{fill:#f8ffff;font-size:10px;font-family:var(--sans-serif);pointer-events:none}#pickerControls line{stroke:#999;stroke-width:2}#pickerControls circle{fill:#ffeb3b;stroke:#666;cursor:ew-resize}#pickerControls circle:hover{fill:#eca116;stroke:#000}#pickerControls,#pickerSpaces{font-size:11px}#pickerSpaces input{width:22px;font-size:9px;-moz-appearance:textfield}#pickerSpaces input::-webkit-inner-spin-button,#pickerSpaces input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}#pickerColors rect,#pickerHatches rect{cursor:pointer}#picker rect.selected{outline:2px dashed #b90c0c;stroke-width:0}.hoverButton{position:sticky;margin-left:-1.8em;margin-top:1px;background-color:#dedede;font-size:8px;cursor:pointer;padding:0 3px!important}.unitsHeader{margin:.8em 0 0 -1.1em;font-weight:700;font-style:italic}#unitsBottom,#reliefBottom{margin:6px 0 0 6px}#unitsBody label{display:inline-block;width:9em}#unitsBody>div>select,#unitsBody>div>input[type=text]{width:14.4em;border:1px solid #e9e9e9}#unitsBody input[type=range]{width:9em}#unitsEditor i.icon-lock-open,#unitsEditor i.icon-lock{color:#626573;font-size:.8em;cursor:pointer;position:fixed;margin:.4em 0 0 -.9em}#ruler{cursor:move;fill:none}#ruler .rulerPoints{stroke:#4e5a69;fill:#ff0;cursor:grab}#ruler .rulerPoints .control{fill:#999}#ruler .white{stroke:#fff}#ruler .gray{stroke:#3d3d3d;pointer-events:none}#ruler text{font-family:var(--serif);fill:#3d3d3d;text-anchor:middle;text-shadow:0 0 4px white;cursor:pointer}#ruler path.planimeter{fill:#add8e6;fill-rule:evenodd;fill-opacity:.5;stroke:#737373}#militaryOptionsTable select{border:1px solid #d4d4d4}#militaryOptionsTable input{width:9em;border:1px solid #d4d4d4}#militaryOptionsTable input[type=number]{width:5em}#militaryOptionsTable button,#burgGroupsBody button{width:100%}#gridOverlay{fill:none}#coordinateLabels{fill:#333;font-family:var(--monospace);text-shadow:0 0 4px white;stroke-width:0;dominant-baseline:central;text-anchor:middle}ul.share-buttons{margin:4px 0 0;padding-left:8%}ul.share-buttons li{padding:0;background:none!important;width:16%;margin:0}ul.share-buttons img{width:2em}input[type=checkbox].native{accent-color:var(--header);cursor:pointer}input[type=checkbox]:not(.native){display:none}.checkbox,.checkbox-label{cursor:pointer}.checkbox+.checkbox-label:before{content:"";display:inline-block;vertical-align:bottom;width:.6em;height:.6em;padding:.2em;margin-right:.2em;border:1px solid darkgrey;border-radius:15%;background:#fff;font-family:var(--monospace)}.checkbox:checked+.checkbox-label:before{line-height:.8em;font-weight:700;content:"✓";color:#333}div.textual select,div.textual textarea,div.textual input{font-family:var(--monospace)}div.textual fieldset{margin:3px 3px 5px 0;border-style:dashed}div.textual span,.textual legend{font-size:.9em;font-weight:700}#namesbaseExamples{font-family:var(--monospace);cursor:pointer}#markers{cursor:pointer;font-family:var(--monospace);-webkit-user-select:none;user-select:none;text-anchor:middle;dominant-baseline:central}.highlighted{outline-width:2px;outline-style:dashed;outline-color:#0da6ff;outline-offset:100px;fill:none}#notes{display:none;position:fixed;width:28vw;right:1vw;top:1vw;font-size:1.2em;border:1px solid #5e4fa2;background:#fffae4b3;box-shadow:2px 2px 5px -3px #3a2804}@media screen and (max-width:600px){#notes{width:50vw}}#notesHeader{font-weight:700;font-size:1.3em;padding:16px 0 4px 12px;border-bottom:1px solid #5e4fa2}#notesBody{padding:14px 12px;max-height:80vh;overflow:auto}#notesBody>iframe{-webkit-user-select:none;user-select:none}#notesBody p{margin:4px}#notesLegend{width:auto;height:87%;outline:0;overflow-y:auto;padding:.6em;font-family:var(--monospace);background-color:#fff;border:1px solid #dedede;color:#000}svg.button{position:relative;background-color:transparent;margin:-5px;padding:0}#reliefEditor>div>div{font-style:italic;display:inline-block}#reliefEditor div.reliefEditorLabel{width:4em}#reliefEditor input[type=range]{width:16em}#reliefIconsDiv{margin-top:2px;padding:2px;width:100%}#reliefIconsDiv svg{width:40px;height:40px;background-color:#e7e6e4;border:1px solid #a9a9a9;cursor:pointer}#reliefIconsDiv svg:hover{border-color:#5c5c5c;background-color:#eef6fb;transition:all .3s ease-out 3s;transform:scale(2)}#reliefIconsDiv svg.pressed{border:1px solid #b3352c;background-color:#f2f2f2}#reliefIconsSeletionAny{display:none;text-anchor:middle;dominant-baseline:central}#alertMessage{-webkit-user-select:text;user-select:text;max-height:70vh;max-width:75vw;overflow:auto}#alertMessage ul{padding-left:1.2em;margin:1em 0}.pseudoLink{cursor:pointer;text-decoration:underline}.info-line{font-size:.9em;font-style:italic;color:gray;-webkit-user-select:none;user-select:none}.optionsSeedRestore{font-size:12px;cursor:pointer;margin-right:2px}.optionsSeedRestore:hover{color:#00f}#worldControls{width:16em;display:inline-block;vertical-align:top}#worldControls>div{display:block;margin:1px 0;padding:2px 0}#worldControls input[type=number]{border:1px solid #e5e5e5;padding:0;width:4em}#worldControls i.icon-lock-open,#worldControls i.icon-lock{color:#626573;font-size:.8em;cursor:pointer}#globe{stroke:#000;stroke-width:1}#globeNoteLines{stroke-dasharray:5;stroke:#bbb}#globaAxisLabels{font-style:italic;font-size:9px;font-family:var(--monospace);stroke:none;fill:#001754}#globeLatLabels{font-size:12px;font-family:var(--monospace);stroke:none;fill:#001754}#globeWindArrows{fill:none;stroke:#6072a3;cursor:pointer}#globeWindArrows path{stroke-width:1.7px;fill:none;stroke:#6072a3;pointer-events:none}#globeWindArrows circle{fill:#fff;fill-opacity:0;stroke-opacity:.05}#globaAxisLabels #restoreWind:hover{cursor:pointer;fill:#00f}#globeArea{fill:#fff;fill-opacity:.3}#globeGraticule{fill:none;stroke-width:.2}#globePrimeMeridian{stroke:#00f;stroke-width:1.4}#globeEquator{stroke:red;stroke-width:1.4}#legend{cursor:move;-webkit-user-select:none;user-select:none}.dontAsk{margin:.9em 0 0 .6em;display:inline-flex;align-items:center}#errorBox{font-size:.9em;font-family:var(--monospace);color:#920303;background-color:#dabdbd91;padding:2px;border:1px solid var(--header)}.announcement{background-color:#a18888;color:#fff;padding:.4em .5em;border:dashed 1px var(--dark-solid)}.speaker{font-size:.9em;cursor:pointer}#prompt{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:23em;padding:1.2em;background-color:var(--bg-dialogs);border:solid 1px var(--dark-solid);font-size:1.2em;z-index:1000}#promptText{padding:0 0 .6em;font-weight:700;font-family:var(--sans-serif)}#mapOverlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:10;pointer-events:none;text-align:center;background:#00000080;font-size:2.4em;color:#fff5da;text-shadow:0px 1px 4px #4c3a35}.epgrid line{stroke:#d3d3d3;stroke-opacity:.5;shape-rendering:crispEdges}.epgrid path{stroke-width:0}#debug{font-size:1px;opacity:.8}#markerTypeSelector{font-size:.85em}#markerTypeSelectorWrapper{position:relative}#markerTypeSelectMenu{display:none}#markerTypeSelectMenu.visible{display:block;position:absolute;height:250px;width:170px;overflow-y:scroll;background:inherit;bottom:100%;left:0;background:#fff}#markerTypeSelectMenu>button{display:block;width:100%;border:1px solid #ddd;margin-bottom:1px}#markerTypeSelectMenu>button:hover{background:#ccc}.separator{display:flex;align-items:center;text-align:center;font-style:italic;font-weight:700;color:#222;margin:.8em 0 0}.separator:before,.separator:after{content:"";flex:1;border-bottom:1px solid #333}.separator:not(:empty):before{margin-right:.25em}.separator:not(:empty):after{margin-left:.25em}@keyframes clockwiseBorderPulse{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#chat-widget-container{-webkit-user-select:none;user-select:none}#chat-widget-minimized{animation:fadeIn 1s ease-in;transform:scale(.65);opacity:var(--bg-opacity)}@keyframes fadeIn{0%{opacity:0}to{opacity:var(--bg-opacity)}}@media print{div,canvas{display:none}}@media only screen and (max-width:420px){table{width:100%}.tabcontent{max-width:100%}.drag-trigger{display:none}}@media(prefers-color-scheme:dark){body{background:#25252a}}@font-face{font-family:icons;src:url(data:application/font-woff2;base64,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\ ) format("woff2");font-weight:400;font-style:normal}[class^=icon-]:before,[class*=" icon-"]:before,[class^=icon-]:after,[class*=" icon-"]:after{font-family:icons;font-style:normal;font-weight:400;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-size:1em;margin:-1px;padding:0;font-variant:normal;text-transform:none;line-height:1em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-pencil:before{content:""}.icon-font:before{content:""}.icon-arrows-cw:before{content:""}.icon-doc:before{content:""}.icon-trash-empty:before{content:""}.icon-ok:before{content:""}.icon-ok-circled:before{content:""}.icon-ok-circled2:before{content:""}.icon-link:before{content:""}.icon-globe:before{content:""}.icon-plus:before{content:""}.icon-plus-circled:before{content:""}.icon-minus-circled:before{content:""}.icon-minus:before{content:""}.icon-text-height:before{content:""}.icon-adjust:before{content:""}.icon-tag:before{content:""}.icon-tags:before{content:""}.icon-logout:before{content:""}.icon-download:before{content:""}.icon-down-circled2:before{content:""}.icon-upload:before{content:""}.icon-up-circled2:before{content:""}.icon-cancel-circled2:before{content:""}.icon-cancel-circled:before{content:""}.icon-cancel:before{content:""}.icon-check:before{content:""}.icon-align-left:before{content:""}.icon-align-center:before{content:""}.icon-align-right:before{content:""}.icon-align-justify:before{content:""}.icon-star:before{content:""}.icon-star-empty:before{content:""}.icon-search:before{content:""}.icon-mail:before{content:""}.icon-eye:before{content:""}.icon-eye-off:before{content:""}.icon-pin:before{content:""}.icon-lock-open:before{content:""}.icon-lock:before{content:""}.icon-attach:before{content:""}.icon-home:before{content:""}.icon-info-circled:before{content:""}.icon-help-circled:before{content:""}.icon-shuffle:before{content:""}.icon-ccw:before{content:""}.icon-cw:before{content:""}.icon-play:before{content:""}.icon-play-circled2:before{content:""}.icon-down-big:before{content:""}.icon-left-big:before{content:""}.icon-right-big:before{content:""}.icon-up-big:before{content:""}.icon-up-open:before{content:""}.icon-right-open:before{content:""}.icon-left-open:before{content:""}.icon-down-open:before{content:""}.icon-cloud:before{content:""}.icon-text-width:before{content:""}.icon-italic:before{content:""}.icon-bold:before{content:""}.icon-retweet:before{content:""}.icon-user:before{content:""}.icon-users:before{content:""}.icon-flag:before{content:""}.icon-heart:before{content:""}.icon-heart-empty:before{content:""}.icon-edit:before{content:""}.icon-export:before{content:""}.icon-cog:before{content:""}.icon-cog-alt:before{content:""}.icon-wrench:before{content:""}.icon-resize-vertical:before{content:""}.icon-resize-small:before{content:""}.icon-resize-full:before{content:""}.icon-resize-horizontal:before{content:""}.icon-target:before{content:""}.icon-signal:before{content:""}.icon-umbrella:before{content:""}.icon-leaf:before{content:""}.icon-book:before{content:""}.icon-asterisk:before{content:""}.icon-chart-bar:before{content:""}.icon-key:before{content:""}.icon-hammer:before{content:""}.icon-star-half:before{content:""}.icon-move:before{content:""}.icon-expand-1:before{content:""}.icon-link-ext:before{content:""}.icon-check-empty:before{content:""}.icon-resize-full-alt:before{content:""}.icon-flask:before{content:""}.icon-docs:before{content:""}.icon-list-bullet:before{content:""}.icon-mail-alt:before{content:""}.icon-sitemap:before{content:""}.icon-exchange:before{content:""}.icon-download-cloud:before{content:""}.icon-upload-cloud:before{content:""}.icon-plus-squared:before{content:""}.icon-circle-empty:before{content:""}.icon-folder-empty:before{content:""}.icon-folder-open-empty:before{content:""}.icon-flag-empty:before{content:""}.icon-star-half-alt:before{content:""}.icon-fork:before{content:""}.icon-unlink:before{content:""}.icon-help:before{content:""}.icon-info:before{content:""}.icon-eraser:before{content:""}.icon-rocket:before{content:""}.icon-anchor:before{content:""}.icon-lock-open-alt:before{content:""}.icon-play-circled:before{content:""}.icon-minus-squared:before{content:""}.icon-minus-squared-alt:before{content:""}.icon-level-up:before{content:""}.icon-level-down:before{content:""}.icon-ok-squared:before{content:""}.icon-pencil-squared:before{content:""}.icon-compass:before{content:""}.icon-expand:before{content:""}.icon-collapse:before{content:""}.icon-expand-right:before{content:""}.icon-sort-alt-up:before{content:""}.icon-sort-alt-down:before{content:""}.icon-female:before{content:""}.icon-male:before{content:""}.icon-sun:before{content:""}.icon-box:before{content:""}.icon-bug:before{content:""}.icon-right-circled2:before{content:""}.icon-left-circled2:before{content:""}.icon-collapse-left:before{content:""}.icon-dot-circled:before{content:""}.icon-plus-squared-alt:before{content:""}.icon-bank:before{content:""}.icon-child:before{content:""}.icon-paw:before{content:""}.icon-tree:before{content:""}.icon-history:before{content:""}.icon-header:before{content:""}.icon-sliders:before{content:""}.icon-trash:before{content:""}.icon-brush:before{content:""}.icon-chart-area:before{content:""}.icon-chart-pie:before{content:""}.icon-chart-line:before{content:""}.icon-ship:before{content:""}.icon-user-secret:before{content:""}.icon-venus:before{content:""}.icon-mars:before{content:""}.icon-venus-mars:before{content:""}.icon-neuter:before{content:""}.icon-user-plus:before{content:""}.icon-user-times:before{content:""}.icon-object-ungroup:before{content:""}.icon-clone:before{content:""}.icon-balance-scale:before{content:""}.icon-hourglass-1:before{content:""}.icon-hand-grab-o:before{content:""}.icon-hand-paper-o:before{content:""}.icon-wikipedia-w:before{content:""}.icon-calendar-check-o:before{content:""}.icon-map-pin:before{content:""}.icon-map-signs:before{content:""}.icon-map-o:before{content:""}.icon-map:before{content:""}.icon-fort-awesome:before{content:""}.icon-percent:before{content:""}.icon-shield-alt:before{content:""}.icon-chess-bishop:before{content:""}.icon-chess-king:before{content:""}.icon-chess-knight:before{content:""}.icon-chess-pawn:before{content:""}.icon-chess-queen:before{content:""}.icon-chess-rook:before{content:""}.icon-sign:before{content:""}.icon-user-friends:before{content:""}.icon-user-shield:before{content:""}.icon-crow:before{content:""}.icon-crown:before{content:""}.icon-ruler:before{content:""}.icon-store:before{content:""}.icon-bezier-curve:before{content:""}.icon-drafting-compass:before{content:""}.icon-globe-africa:before{content:""}.icon-monument:before{content:""}.icon-mortar-pestle:before{content:""}.icon-paint-roller:before{content:""}.icon-pen-fancy:before{content:""}.icon-pen-nib:before{content:""}.icon-pencil-ruler:before{content:""}.icon-draw-polygon:before{content:""}.icon-layer-group:before{content:""}.icon-menorah:before{content:""}.icon-mosque:before{content:""}.icon-place-of-worship:before{content:""}.icon-synagogue:before{content:""}.icon-book-dead:before{content:""}.icon-campground:before{content:""}.icon-mountain:before{content:""}.icon-network-wired:before{content:""}.icon-temperature-high:before{content:""}.icon-temperature-low:before{content:""}.icon-sort-name-up:after{font-size:.9em;content:""}.icon-sort-name-down:after{font-size:.9em;content:""}.icon-sort-number-up:after{font-size:.9em;content:""}.icon-sort-number-down:after{font-size:.9em;content:""}.icon-w:before{font-style:italic;content:"w:"}.icon-f:before{font-style:italic;content:"f:"}.icon-n:before{font-style:italic;content:"n:"}.icon-i:before{font-style:italic;content:"i:"}.icon-s:before{font-style:italic;content:"s:"}.icon-r:before{font-style:italic;content:"r:"}.icon-a:before{font-style:italic;content:"a:"}.icon-smooth:before{font-weight:700;content:"∼"}.icon-disrupt:before{font-weight:700;content:"⥄"}.icon-if:before{font-style:italic;font-weight:700;content:"if"}.icon-coa:before{content:"";font-size:.9em;color:#999}.icon-half:before{font-weight:700;content:"½"}.icon-voice:before{content:"🔊"}.icon-robot:before{content:"🤖"}.icon-die:before{content:"🎲"}.icon-button-die:before{content:"🎲";padding-right:.4em}.icon-button-power:before{content:"💪";padding-right:.6em}.icon-button-melee:before{content:"⚔️";padding-right:.4em}.icon-button-skirmish:before{content:"🎯";padding-right:.4em}.icon-button-pursue:before{content:"🐎";padding-right:.4em}.icon-button-retreat:before{content:"🏳️";padding-right:.4em}.icon-button-shelling:before{content:"💣";padding-right:.4em}.icon-button-boarding:before{content:"⚔️";padding-right:.4em}.icon-button-chase:before{content:"⛵";padding-right:.4em}.icon-button-withdrawal:before{content:"🏳️";padding-right:.4em}.icon-button-bombardment:before{content:"💣";padding-right:.4em}.icon-button-blockade:before{content:"⏳";padding-right:.4em}.icon-button-sheltering:before{content:"🔒";padding-right:.4em}.icon-button-sortie:before{content:"🚪";padding-right:.4em}.icon-button-defense:before{content:"🛡️";padding-right:.4em}.icon-button-storming:before{content:"⚔️";padding-right:.4em}.icon-button-looting:before{content:"☠️";padding-right:.4em}.icon-button-surrendering:before{content:"🏳️";padding-right:.4em}.icon-button-surprise:before{content:"⚡";padding-right:.4em}.icon-button-shock:before{content:"💫";padding-right:.4em}.icon-button-flee:before{content:"⛵";padding-right:.4em}.icon-button-waiting:before{content:"⌛";padding-right:.4em}.icon-button-maneuvering:before{content:"💢";padding-right:.4em}.icon-button-dogfight:before{content:"🐕";padding-right:.4em}.icon-button-field:before{content:"🗡️";padding-right:.4em}.icon-button-naval:before{content:"🌊";padding-right:.4em}.icon-button-siege:before{content:"🏰";padding-right:.4em}.icon-button-ambush:before{content:"🌳";padding-right:.4em}.icon-button-landing:before{content:"⚓";padding-right:.4em}.icon-button-air:before{content:"💨";padding-right:.4em}.icon-button-screenshot:before{content:"🖥️";padding-right:.4em}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;white-space:nowrap}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup>.ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup>.ui-controlgroup-item:focus,.ui-controlgroup>.ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical>.ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label+.ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label+.ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc(100% - 2.4em)}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}body .ui-dialog{position:absolute;top:0;left:0;outline:0;padding:0;background-color:inherit}.ui-dialog .ui-dialog-titlebar{display:flex;padding:.3em .8em;justify-content:space-between;align-items:center;font-size:1.2em;min-width:150px}.ui-dialog .ui-dialog-title{white-space:nowrap;width:100%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar button{padding:3px;margin-left:5px;width:19px;height:18px;color:#fff;background:none;font-size:.8em;border:1px solid #c5c5c5}@media(max-width:600px){.ui-dialog .ui-dialog-title{font-size:1.6em}.ui-dialog .ui-dialog-titlebar button{padding:3px;margin-left:10px;width:40px;height:32px;font-size:1.6em}}.ui-dialog .ui-dialog-titlebar button:active{border:1px solid #5d4651;color:#5d4651}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow-y:auto;overflow-x:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-widget{font-family:var(--sans-serif)}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:var(--sans-serif);font-size:1em}.ui-widget button[class^=icon-]{padding:1px 6px}.ui-widget.ui-widget-content{border:1px solid #5e4fa2;color:#333}.ui-widget-content{border:1px solid #dddddd;color:#333}.ui-widget-content a,.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:400;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#454545}.ui-button:active{color:#5d4651;border-color:#5d4651}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a,.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:0px 0px 5px #666666;box-shadow:0 0 5px #666} diff --git a/images/icons/maskable_icon_x192.png b/src/dist/assets/maskable_icon_x192-ZWDhbqwi.png similarity index 100% rename from images/icons/maskable_icon_x192.png rename to src/dist/assets/maskable_icon_x192-ZWDhbqwi.png diff --git a/images/preview.png b/src/dist/assets/preview-DuncclQh.png similarity index 100% rename from images/preview.png rename to src/dist/assets/preview-DuncclQh.png diff --git a/src/dist/charges/agnusDei.svg b/src/dist/charges/agnusDei.svg new file mode 100644 index 00000000..60ea9d87 --- /dev/null +++ b/src/dist/charges/agnusDei.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/anchor.svg b/src/dist/charges/anchor.svg new file mode 100644 index 00000000..59678314 --- /dev/null +++ b/src/dist/charges/anchor.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/dist/charges/angel.svg b/src/dist/charges/angel.svg new file mode 100644 index 00000000..e6f3ba3e --- /dev/null +++ b/src/dist/charges/angel.svg @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/annulet.svg b/src/dist/charges/annulet.svg new file mode 100644 index 00000000..b3dad13d --- /dev/null +++ b/src/dist/charges/annulet.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/anvil.svg b/src/dist/charges/anvil.svg new file mode 100644 index 00000000..2b6b0868 --- /dev/null +++ b/src/dist/charges/anvil.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/dist/charges/apple.svg b/src/dist/charges/apple.svg new file mode 100644 index 00000000..6679428d --- /dev/null +++ b/src/dist/charges/apple.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/dist/charges/arbalest.svg b/src/dist/charges/arbalest.svg new file mode 100644 index 00000000..38adac50 --- /dev/null +++ b/src/dist/charges/arbalest.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/arbalest2.svg b/src/dist/charges/arbalest2.svg new file mode 100644 index 00000000..be9b1a6a --- /dev/null +++ b/src/dist/charges/arbalest2.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/archer.svg b/src/dist/charges/archer.svg new file mode 100644 index 00000000..00891c1b --- /dev/null +++ b/src/dist/charges/archer.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/armEmbowedHoldingSabre.svg b/src/dist/charges/armEmbowedHoldingSabre.svg new file mode 100644 index 00000000..2fbae9f6 --- /dev/null +++ b/src/dist/charges/armEmbowedHoldingSabre.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/armEmbowedVambraced.svg b/src/dist/charges/armEmbowedVambraced.svg new file mode 100644 index 00000000..ac1422b5 --- /dev/null +++ b/src/dist/charges/armEmbowedVambraced.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/armEmbowedVambracedHoldingSword.svg b/src/dist/charges/armEmbowedVambracedHoldingSword.svg new file mode 100644 index 00000000..d00d8bab --- /dev/null +++ b/src/dist/charges/armEmbowedVambracedHoldingSword.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/armillarySphere.svg b/src/dist/charges/armillarySphere.svg new file mode 100644 index 00000000..45d09b8d --- /dev/null +++ b/src/dist/charges/armillarySphere.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/arrow.svg b/src/dist/charges/arrow.svg new file mode 100644 index 00000000..2135169f --- /dev/null +++ b/src/dist/charges/arrow.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/dist/charges/arrowsSheaf.svg b/src/dist/charges/arrowsSheaf.svg new file mode 100644 index 00000000..4b879e10 --- /dev/null +++ b/src/dist/charges/arrowsSheaf.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/attire.svg b/src/dist/charges/attire.svg new file mode 100644 index 00000000..99427a60 --- /dev/null +++ b/src/dist/charges/attire.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/axe.svg b/src/dist/charges/axe.svg new file mode 100644 index 00000000..e1608145 --- /dev/null +++ b/src/dist/charges/axe.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/badgerStatant.svg b/src/dist/charges/badgerStatant.svg new file mode 100644 index 00000000..29cd5f39 --- /dev/null +++ b/src/dist/charges/badgerStatant.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/banner.svg b/src/dist/charges/banner.svg new file mode 100644 index 00000000..8ca47b97 --- /dev/null +++ b/src/dist/charges/banner.svg @@ -0,0 +1,35 @@ + + + + diff --git a/src/dist/charges/basilisk.svg b/src/dist/charges/basilisk.svg new file mode 100644 index 00000000..b2755dff --- /dev/null +++ b/src/dist/charges/basilisk.svg @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bearPassant.svg b/src/dist/charges/bearPassant.svg new file mode 100644 index 00000000..847ea7bd --- /dev/null +++ b/src/dist/charges/bearPassant.svg @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bearRampant.svg b/src/dist/charges/bearRampant.svg new file mode 100644 index 00000000..418d6fb3 --- /dev/null +++ b/src/dist/charges/bearRampant.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bee.svg b/src/dist/charges/bee.svg new file mode 100644 index 00000000..7f3a0069 --- /dev/null +++ b/src/dist/charges/bee.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bell.svg b/src/dist/charges/bell.svg new file mode 100644 index 00000000..307b6493 --- /dev/null +++ b/src/dist/charges/bell.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/billet.svg b/src/dist/charges/billet.svg new file mode 100644 index 00000000..9482f5a7 --- /dev/null +++ b/src/dist/charges/billet.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/boarHeadErased.svg b/src/dist/charges/boarHeadErased.svg new file mode 100644 index 00000000..08348586 --- /dev/null +++ b/src/dist/charges/boarHeadErased.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/boarRampant.svg b/src/dist/charges/boarRampant.svg new file mode 100644 index 00000000..436fb439 --- /dev/null +++ b/src/dist/charges/boarRampant.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/boat.svg b/src/dist/charges/boat.svg new file mode 100644 index 00000000..b50f6194 --- /dev/null +++ b/src/dist/charges/boat.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/boat2.svg b/src/dist/charges/boat2.svg new file mode 100644 index 00000000..f3e37a5b --- /dev/null +++ b/src/dist/charges/boat2.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bone.svg b/src/dist/charges/bone.svg new file mode 100644 index 00000000..27a9e410 --- /dev/null +++ b/src/dist/charges/bone.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/bookClosed.svg b/src/dist/charges/bookClosed.svg new file mode 100644 index 00000000..0cd74341 --- /dev/null +++ b/src/dist/charges/bookClosed.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bookClosed2.svg b/src/dist/charges/bookClosed2.svg new file mode 100644 index 00000000..bf8d2519 --- /dev/null +++ b/src/dist/charges/bookClosed2.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bookOpen.svg b/src/dist/charges/bookOpen.svg new file mode 100644 index 00000000..62f1c6fc --- /dev/null +++ b/src/dist/charges/bookOpen.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bow.svg b/src/dist/charges/bow.svg new file mode 100644 index 00000000..b1f2c8ec --- /dev/null +++ b/src/dist/charges/bow.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/dist/charges/bowWithArrow.svg b/src/dist/charges/bowWithArrow.svg new file mode 100644 index 00000000..12d7f9ff --- /dev/null +++ b/src/dist/charges/bowWithArrow.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bowWithThreeArrows.svg b/src/dist/charges/bowWithThreeArrows.svg new file mode 100644 index 00000000..0efc30f2 --- /dev/null +++ b/src/dist/charges/bowWithThreeArrows.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bridge.svg b/src/dist/charges/bridge.svg new file mode 100644 index 00000000..f5ce588e --- /dev/null +++ b/src/dist/charges/bridge.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bridge2.svg b/src/dist/charges/bridge2.svg new file mode 100644 index 00000000..6d3dfab5 --- /dev/null +++ b/src/dist/charges/bridge2.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bucket.svg b/src/dist/charges/bucket.svg new file mode 100644 index 00000000..56c7e83c --- /dev/null +++ b/src/dist/charges/bucket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/buckle.svg b/src/dist/charges/buckle.svg new file mode 100644 index 00000000..b83ba97d --- /dev/null +++ b/src/dist/charges/buckle.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/dist/charges/bugleHorn.svg b/src/dist/charges/bugleHorn.svg new file mode 100644 index 00000000..a7985ca6 --- /dev/null +++ b/src/dist/charges/bugleHorn.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bugleHorn2.svg b/src/dist/charges/bugleHorn2.svg new file mode 100644 index 00000000..cf5bcaa7 --- /dev/null +++ b/src/dist/charges/bugleHorn2.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bullHeadCaboshed.svg b/src/dist/charges/bullHeadCaboshed.svg new file mode 100644 index 00000000..d3ddeccc --- /dev/null +++ b/src/dist/charges/bullHeadCaboshed.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/bullPassant.svg b/src/dist/charges/bullPassant.svg new file mode 100644 index 00000000..0314b64e --- /dev/null +++ b/src/dist/charges/bullPassant.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/butterfly.svg b/src/dist/charges/butterfly.svg new file mode 100644 index 00000000..2c301fcf --- /dev/null +++ b/src/dist/charges/butterfly.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/camel.svg b/src/dist/charges/camel.svg new file mode 100644 index 00000000..e2dd8bb9 --- /dev/null +++ b/src/dist/charges/camel.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/cancer.svg b/src/dist/charges/cancer.svg new file mode 100644 index 00000000..a8bf102c --- /dev/null +++ b/src/dist/charges/cancer.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/cannon.svg b/src/dist/charges/cannon.svg new file mode 100644 index 00000000..05e88b25 --- /dev/null +++ b/src/dist/charges/cannon.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/caravel.svg b/src/dist/charges/caravel.svg new file mode 100644 index 00000000..9eb57671 --- /dev/null +++ b/src/dist/charges/caravel.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/carreau.svg b/src/dist/charges/carreau.svg new file mode 100644 index 00000000..bfeeb049 --- /dev/null +++ b/src/dist/charges/carreau.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/castle.svg b/src/dist/charges/castle.svg new file mode 100644 index 00000000..43a2fa38 --- /dev/null +++ b/src/dist/charges/castle.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/castle2.svg b/src/dist/charges/castle2.svg new file mode 100644 index 00000000..5f12a8aa --- /dev/null +++ b/src/dist/charges/castle2.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/catPassantGuardant.svg b/src/dist/charges/catPassantGuardant.svg new file mode 100644 index 00000000..b49dc820 --- /dev/null +++ b/src/dist/charges/catPassantGuardant.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/cavalier.svg b/src/dist/charges/cavalier.svg new file mode 100644 index 00000000..7bfad7ac --- /dev/null +++ b/src/dist/charges/cavalier.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/centaur.svg b/src/dist/charges/centaur.svg new file mode 100644 index 00000000..f4ddeb22 --- /dev/null +++ b/src/dist/charges/centaur.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/chain.svg b/src/dist/charges/chain.svg new file mode 100644 index 00000000..cfe4a3bb --- /dev/null +++ b/src/dist/charges/chain.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/dist/charges/chalice.svg b/src/dist/charges/chalice.svg new file mode 100644 index 00000000..0f4f95f6 --- /dev/null +++ b/src/dist/charges/chalice.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/dist/charges/cinquefoil.svg b/src/dist/charges/cinquefoil.svg new file mode 100644 index 00000000..49db293e --- /dev/null +++ b/src/dist/charges/cinquefoil.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/dist/charges/cock.svg b/src/dist/charges/cock.svg new file mode 100644 index 00000000..4b100034 --- /dev/null +++ b/src/dist/charges/cock.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/column.svg b/src/dist/charges/column.svg new file mode 100644 index 00000000..38d8b2a0 --- /dev/null +++ b/src/dist/charges/column.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/comet.svg b/src/dist/charges/comet.svg new file mode 100644 index 00000000..096ddb67 --- /dev/null +++ b/src/dist/charges/comet.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/compassRose.svg b/src/dist/charges/compassRose.svg new file mode 100644 index 00000000..dec495cc --- /dev/null +++ b/src/dist/charges/compassRose.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/dist/charges/cossack.svg b/src/dist/charges/cossack.svg new file mode 100644 index 00000000..f5cf75ed --- /dev/null +++ b/src/dist/charges/cossack.svg @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/cowHorns.svg b/src/dist/charges/cowHorns.svg new file mode 100644 index 00000000..74378210 --- /dev/null +++ b/src/dist/charges/cowHorns.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/dist/charges/cowStatant.svg b/src/dist/charges/cowStatant.svg new file mode 100644 index 00000000..66b46823 --- /dev/null +++ b/src/dist/charges/cowStatant.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/crescent.svg b/src/dist/charges/crescent.svg new file mode 100644 index 00000000..9181995b --- /dev/null +++ b/src/dist/charges/crescent.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/dist/charges/crocodile.svg b/src/dist/charges/crocodile.svg new file mode 100644 index 00000000..442e456d --- /dev/null +++ b/src/dist/charges/crocodile.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/crosier.svg b/src/dist/charges/crosier.svg new file mode 100644 index 00000000..631ef998 --- /dev/null +++ b/src/dist/charges/crosier.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/crossAnkh.svg b/src/dist/charges/crossAnkh.svg new file mode 100644 index 00000000..6bbac70e --- /dev/null +++ b/src/dist/charges/crossAnkh.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossArrowed.svg b/src/dist/charges/crossArrowed.svg new file mode 100644 index 00000000..ff4b6c02 --- /dev/null +++ b/src/dist/charges/crossArrowed.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/dist/charges/crossAvellane.svg b/src/dist/charges/crossAvellane.svg new file mode 100644 index 00000000..303e7f72 --- /dev/null +++ b/src/dist/charges/crossAvellane.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/dist/charges/crossBiparted.svg b/src/dist/charges/crossBiparted.svg new file mode 100644 index 00000000..0e6ac5f8 --- /dev/null +++ b/src/dist/charges/crossBiparted.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossBottony.svg b/src/dist/charges/crossBottony.svg new file mode 100644 index 00000000..2d246b29 --- /dev/null +++ b/src/dist/charges/crossBottony.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossBurgundy.svg b/src/dist/charges/crossBurgundy.svg new file mode 100644 index 00000000..cb681714 --- /dev/null +++ b/src/dist/charges/crossBurgundy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossCalvary.svg b/src/dist/charges/crossCalvary.svg new file mode 100644 index 00000000..dd0447b5 --- /dev/null +++ b/src/dist/charges/crossCalvary.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/crossCarolingian.svg b/src/dist/charges/crossCarolingian.svg new file mode 100644 index 00000000..761464a7 --- /dev/null +++ b/src/dist/charges/crossCarolingian.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/crossCeltic.svg b/src/dist/charges/crossCeltic.svg new file mode 100644 index 00000000..6abe10fe --- /dev/null +++ b/src/dist/charges/crossCeltic.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossCeltic2.svg b/src/dist/charges/crossCeltic2.svg new file mode 100644 index 00000000..84628911 --- /dev/null +++ b/src/dist/charges/crossCeltic2.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossCercelee.svg b/src/dist/charges/crossCercelee.svg new file mode 100644 index 00000000..2b8bff16 --- /dev/null +++ b/src/dist/charges/crossCercelee.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossClechy.svg b/src/dist/charges/crossClechy.svg new file mode 100644 index 00000000..c246534e --- /dev/null +++ b/src/dist/charges/crossClechy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossDouble.svg b/src/dist/charges/crossDouble.svg new file mode 100644 index 00000000..1a0e4bc8 --- /dev/null +++ b/src/dist/charges/crossDouble.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/crossErminee.svg b/src/dist/charges/crossErminee.svg new file mode 100644 index 00000000..1def3830 --- /dev/null +++ b/src/dist/charges/crossErminee.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossFitchy.svg b/src/dist/charges/crossFitchy.svg new file mode 100644 index 00000000..954b8e70 --- /dev/null +++ b/src/dist/charges/crossFitchy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossFleury.svg b/src/dist/charges/crossFleury.svg new file mode 100644 index 00000000..d617a15d --- /dev/null +++ b/src/dist/charges/crossFleury.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossFormee.svg b/src/dist/charges/crossFormee.svg new file mode 100644 index 00000000..efef99d4 --- /dev/null +++ b/src/dist/charges/crossFormee.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossFormee2.svg b/src/dist/charges/crossFormee2.svg new file mode 100644 index 00000000..2309e494 --- /dev/null +++ b/src/dist/charges/crossFormee2.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossFourchy.svg b/src/dist/charges/crossFourchy.svg new file mode 100644 index 00000000..9308a143 --- /dev/null +++ b/src/dist/charges/crossFourchy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossGamma.svg b/src/dist/charges/crossGamma.svg new file mode 100644 index 00000000..d2da6490 --- /dev/null +++ b/src/dist/charges/crossGamma.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossHummetty.svg b/src/dist/charges/crossHummetty.svg new file mode 100644 index 00000000..e2676ab2 --- /dev/null +++ b/src/dist/charges/crossHummetty.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossJerusalem.svg b/src/dist/charges/crossJerusalem.svg new file mode 100644 index 00000000..54ba95dc --- /dev/null +++ b/src/dist/charges/crossJerusalem.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossLatin.svg b/src/dist/charges/crossLatin.svg new file mode 100644 index 00000000..16f60138 --- /dev/null +++ b/src/dist/charges/crossLatin.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossMaltese.svg b/src/dist/charges/crossMaltese.svg new file mode 100644 index 00000000..5718dacf --- /dev/null +++ b/src/dist/charges/crossMaltese.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossMoline.svg b/src/dist/charges/crossMoline.svg new file mode 100644 index 00000000..97f3b918 --- /dev/null +++ b/src/dist/charges/crossMoline.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossOccitan.svg b/src/dist/charges/crossOccitan.svg new file mode 100644 index 00000000..15fe7587 --- /dev/null +++ b/src/dist/charges/crossOccitan.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossOrthodox.svg b/src/dist/charges/crossOrthodox.svg new file mode 100644 index 00000000..9519f84d --- /dev/null +++ b/src/dist/charges/crossOrthodox.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossPatonce.svg b/src/dist/charges/crossPatonce.svg new file mode 100644 index 00000000..aaaec339 --- /dev/null +++ b/src/dist/charges/crossPatonce.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossPatriarchal.svg b/src/dist/charges/crossPatriarchal.svg new file mode 100644 index 00000000..12338bc2 --- /dev/null +++ b/src/dist/charges/crossPatriarchal.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossPattee.svg b/src/dist/charges/crossPattee.svg new file mode 100644 index 00000000..1c3bf761 --- /dev/null +++ b/src/dist/charges/crossPattee.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossPatteeAlisee.svg b/src/dist/charges/crossPatteeAlisee.svg new file mode 100644 index 00000000..801e7113 --- /dev/null +++ b/src/dist/charges/crossPatteeAlisee.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossPommy.svg b/src/dist/charges/crossPommy.svg new file mode 100644 index 00000000..da002347 --- /dev/null +++ b/src/dist/charges/crossPommy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossPotent.svg b/src/dist/charges/crossPotent.svg new file mode 100644 index 00000000..cc3bb92f --- /dev/null +++ b/src/dist/charges/crossPotent.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossSaltire.svg b/src/dist/charges/crossSaltire.svg new file mode 100644 index 00000000..8798ba45 --- /dev/null +++ b/src/dist/charges/crossSaltire.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossSantiago.svg b/src/dist/charges/crossSantiago.svg new file mode 100644 index 00000000..7e510a90 --- /dev/null +++ b/src/dist/charges/crossSantiago.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/crossTau.svg b/src/dist/charges/crossTau.svg new file mode 100644 index 00000000..0789faf5 --- /dev/null +++ b/src/dist/charges/crossTau.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossTemplar.svg b/src/dist/charges/crossTemplar.svg new file mode 100644 index 00000000..9c33613c --- /dev/null +++ b/src/dist/charges/crossTemplar.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossTriquetra.svg b/src/dist/charges/crossTriquetra.svg new file mode 100644 index 00000000..024225c1 --- /dev/null +++ b/src/dist/charges/crossTriquetra.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/dist/charges/crossVoided.svg b/src/dist/charges/crossVoided.svg new file mode 100644 index 00000000..0fa95bd7 --- /dev/null +++ b/src/dist/charges/crossVoided.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/crossedBones.svg b/src/dist/charges/crossedBones.svg new file mode 100644 index 00000000..3b06442f --- /dev/null +++ b/src/dist/charges/crossedBones.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/dist/charges/crosslet.svg b/src/dist/charges/crosslet.svg new file mode 100644 index 00000000..645b68a3 --- /dev/null +++ b/src/dist/charges/crosslet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/crown.svg b/src/dist/charges/crown.svg new file mode 100644 index 00000000..00dbbacf --- /dev/null +++ b/src/dist/charges/crown.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/dist/charges/crown2.svg b/src/dist/charges/crown2.svg new file mode 100644 index 00000000..f06a106e --- /dev/null +++ b/src/dist/charges/crown2.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/deerHeadCaboshed.svg b/src/dist/charges/deerHeadCaboshed.svg new file mode 100644 index 00000000..aca87f99 --- /dev/null +++ b/src/dist/charges/deerHeadCaboshed.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/delf.svg b/src/dist/charges/delf.svg new file mode 100644 index 00000000..227bd04f --- /dev/null +++ b/src/dist/charges/delf.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/dolphin.svg b/src/dist/charges/dolphin.svg new file mode 100644 index 00000000..be5b00bd --- /dev/null +++ b/src/dist/charges/dolphin.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/donkeyHeadCaboshed.svg b/src/dist/charges/donkeyHeadCaboshed.svg new file mode 100644 index 00000000..da5aee0a --- /dev/null +++ b/src/dist/charges/donkeyHeadCaboshed.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/dove.svg b/src/dist/charges/dove.svg new file mode 100644 index 00000000..7406a6ec --- /dev/null +++ b/src/dist/charges/dove.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/doveDisplayed.svg b/src/dist/charges/doveDisplayed.svg new file mode 100644 index 00000000..35bd14d6 --- /dev/null +++ b/src/dist/charges/doveDisplayed.svg @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/dragonPassant.svg b/src/dist/charges/dragonPassant.svg new file mode 100644 index 00000000..b8fbc58e --- /dev/null +++ b/src/dist/charges/dragonPassant.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/dragonRampant.svg b/src/dist/charges/dragonRampant.svg new file mode 100644 index 00000000..6ff64c2a --- /dev/null +++ b/src/dist/charges/dragonRampant.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/dragonfly.svg b/src/dist/charges/dragonfly.svg new file mode 100644 index 00000000..c8b501ca --- /dev/null +++ b/src/dist/charges/dragonfly.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/drakkar.svg b/src/dist/charges/drakkar.svg new file mode 100644 index 00000000..f36c3c4d --- /dev/null +++ b/src/dist/charges/drakkar.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/drawingCompass.svg b/src/dist/charges/drawingCompass.svg new file mode 100644 index 00000000..65a252d3 --- /dev/null +++ b/src/dist/charges/drawingCompass.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/dist/charges/drum.svg b/src/dist/charges/drum.svg new file mode 100644 index 00000000..bd8fd638 --- /dev/null +++ b/src/dist/charges/drum.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/duck.svg b/src/dist/charges/duck.svg new file mode 100644 index 00000000..940c3e4d --- /dev/null +++ b/src/dist/charges/duck.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/eagle.svg b/src/dist/charges/eagle.svg new file mode 100644 index 00000000..c52fd495 --- /dev/null +++ b/src/dist/charges/eagle.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/eagleTwoHeads.svg b/src/dist/charges/eagleTwoHeads.svg new file mode 100644 index 00000000..cc8ac124 --- /dev/null +++ b/src/dist/charges/eagleTwoHeads.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/earOfWheat.svg b/src/dist/charges/earOfWheat.svg new file mode 100644 index 00000000..a1b3072c --- /dev/null +++ b/src/dist/charges/earOfWheat.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/elephant.svg b/src/dist/charges/elephant.svg new file mode 100644 index 00000000..fed4c13f --- /dev/null +++ b/src/dist/charges/elephant.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/elephantHeadErased.svg b/src/dist/charges/elephantHeadErased.svg new file mode 100644 index 00000000..f521413b --- /dev/null +++ b/src/dist/charges/elephantHeadErased.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/escallop.svg b/src/dist/charges/escallop.svg new file mode 100644 index 00000000..4fda9dda --- /dev/null +++ b/src/dist/charges/escallop.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/estoile.svg b/src/dist/charges/estoile.svg new file mode 100644 index 00000000..6966ccbc --- /dev/null +++ b/src/dist/charges/estoile.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/falchion.svg b/src/dist/charges/falchion.svg new file mode 100644 index 00000000..ccb71d3d --- /dev/null +++ b/src/dist/charges/falchion.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/dist/charges/falcon.svg b/src/dist/charges/falcon.svg new file mode 100644 index 00000000..5e4cebd5 --- /dev/null +++ b/src/dist/charges/falcon.svg @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/fan.svg b/src/dist/charges/fan.svg new file mode 100644 index 00000000..d7504ac6 --- /dev/null +++ b/src/dist/charges/fan.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/dist/charges/fasces.svg b/src/dist/charges/fasces.svg new file mode 100644 index 00000000..71e27285 --- /dev/null +++ b/src/dist/charges/fasces.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/feather.svg b/src/dist/charges/feather.svg new file mode 100644 index 00000000..0be55bf5 --- /dev/null +++ b/src/dist/charges/feather.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/dist/charges/flamberge.svg b/src/dist/charges/flamberge.svg new file mode 100644 index 00000000..ab9d2277 --- /dev/null +++ b/src/dist/charges/flamberge.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/flangedMace.svg b/src/dist/charges/flangedMace.svg new file mode 100644 index 00000000..901d942f --- /dev/null +++ b/src/dist/charges/flangedMace.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/fleurDeLis.svg b/src/dist/charges/fleurDeLis.svg new file mode 100644 index 00000000..2583e48f --- /dev/null +++ b/src/dist/charges/fleurDeLis.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/dist/charges/fly.svg b/src/dist/charges/fly.svg new file mode 100644 index 00000000..9c880f72 --- /dev/null +++ b/src/dist/charges/fly.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/foot.svg b/src/dist/charges/foot.svg new file mode 100644 index 00000000..22963e5b --- /dev/null +++ b/src/dist/charges/foot.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/dist/charges/fountain.svg b/src/dist/charges/fountain.svg new file mode 100644 index 00000000..1ed8ac67 --- /dev/null +++ b/src/dist/charges/fountain.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/dist/charges/frog.svg b/src/dist/charges/frog.svg new file mode 100644 index 00000000..392d3d05 --- /dev/null +++ b/src/dist/charges/frog.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/fusil.svg b/src/dist/charges/fusil.svg new file mode 100644 index 00000000..eac10ed4 --- /dev/null +++ b/src/dist/charges/fusil.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/garb.svg b/src/dist/charges/garb.svg new file mode 100644 index 00000000..fbefacd8 --- /dev/null +++ b/src/dist/charges/garb.svg @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/gauntlet.svg b/src/dist/charges/gauntlet.svg new file mode 100644 index 00000000..f00a03eb --- /dev/null +++ b/src/dist/charges/gauntlet.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/gear.svg b/src/dist/charges/gear.svg new file mode 100644 index 00000000..2d128dfb --- /dev/null +++ b/src/dist/charges/gear.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/goat.svg b/src/dist/charges/goat.svg new file mode 100644 index 00000000..721c3f15 --- /dev/null +++ b/src/dist/charges/goat.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/goutte.svg b/src/dist/charges/goutte.svg new file mode 100644 index 00000000..40f23183 --- /dev/null +++ b/src/dist/charges/goutte.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/grapeBunch.svg b/src/dist/charges/grapeBunch.svg new file mode 100644 index 00000000..38d4693f --- /dev/null +++ b/src/dist/charges/grapeBunch.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/grapeBunch2.svg b/src/dist/charges/grapeBunch2.svg new file mode 100644 index 00000000..0af7b6a6 --- /dev/null +++ b/src/dist/charges/grapeBunch2.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/grenade.svg b/src/dist/charges/grenade.svg new file mode 100644 index 00000000..07436784 --- /dev/null +++ b/src/dist/charges/grenade.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/greyhoundCourant.svg b/src/dist/charges/greyhoundCourant.svg new file mode 100644 index 00000000..916d70cf --- /dev/null +++ b/src/dist/charges/greyhoundCourant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/greyhoundRampant.svg b/src/dist/charges/greyhoundRampant.svg new file mode 100644 index 00000000..cf607df5 --- /dev/null +++ b/src/dist/charges/greyhoundRampant.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/greyhoundSejant.svg b/src/dist/charges/greyhoundSejant.svg new file mode 100644 index 00000000..09efa81c --- /dev/null +++ b/src/dist/charges/greyhoundSejant.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/griffinPassant.svg b/src/dist/charges/griffinPassant.svg new file mode 100644 index 00000000..871b3591 --- /dev/null +++ b/src/dist/charges/griffinPassant.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/griffinRampant.svg b/src/dist/charges/griffinRampant.svg new file mode 100644 index 00000000..da2cfebe --- /dev/null +++ b/src/dist/charges/griffinRampant.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/hand.svg b/src/dist/charges/hand.svg new file mode 100644 index 00000000..91c279ae --- /dev/null +++ b/src/dist/charges/hand.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/dist/charges/harp.svg b/src/dist/charges/harp.svg new file mode 100644 index 00000000..91e5ee08 --- /dev/null +++ b/src/dist/charges/harp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/hatchet.svg b/src/dist/charges/hatchet.svg new file mode 100644 index 00000000..37052556 --- /dev/null +++ b/src/dist/charges/hatchet.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/dist/charges/head.svg b/src/dist/charges/head.svg new file mode 100644 index 00000000..08e36060 --- /dev/null +++ b/src/dist/charges/head.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/headWreathed.svg b/src/dist/charges/headWreathed.svg new file mode 100644 index 00000000..b6dafc64 --- /dev/null +++ b/src/dist/charges/headWreathed.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/heart.svg b/src/dist/charges/heart.svg new file mode 100644 index 00000000..56d0940c --- /dev/null +++ b/src/dist/charges/heart.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/hedgehog.svg b/src/dist/charges/hedgehog.svg new file mode 100644 index 00000000..c7a84caa --- /dev/null +++ b/src/dist/charges/hedgehog.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/helmet.svg b/src/dist/charges/helmet.svg new file mode 100644 index 00000000..9099c7c3 --- /dev/null +++ b/src/dist/charges/helmet.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/dist/charges/helmetCorinthian.svg b/src/dist/charges/helmetCorinthian.svg new file mode 100644 index 00000000..3ccd9cdd --- /dev/null +++ b/src/dist/charges/helmetCorinthian.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/helmetGreat.svg b/src/dist/charges/helmetGreat.svg new file mode 100644 index 00000000..b7a7bf49 --- /dev/null +++ b/src/dist/charges/helmetGreat.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/helmetZischagge.svg b/src/dist/charges/helmetZischagge.svg new file mode 100644 index 00000000..8985d197 --- /dev/null +++ b/src/dist/charges/helmetZischagge.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/heron.svg b/src/dist/charges/heron.svg new file mode 100644 index 00000000..4893b082 --- /dev/null +++ b/src/dist/charges/heron.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/hindStatant.svg b/src/dist/charges/hindStatant.svg new file mode 100644 index 00000000..3f9cc429 --- /dev/null +++ b/src/dist/charges/hindStatant.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/hook.svg b/src/dist/charges/hook.svg new file mode 100644 index 00000000..d5679f64 --- /dev/null +++ b/src/dist/charges/hook.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/horseHeadCouped.svg b/src/dist/charges/horseHeadCouped.svg new file mode 100644 index 00000000..8c455c23 --- /dev/null +++ b/src/dist/charges/horseHeadCouped.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/horsePassant.svg b/src/dist/charges/horsePassant.svg new file mode 100644 index 00000000..b2361b84 --- /dev/null +++ b/src/dist/charges/horsePassant.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/horseRampant.svg b/src/dist/charges/horseRampant.svg new file mode 100644 index 00000000..be7fee6c --- /dev/null +++ b/src/dist/charges/horseRampant.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/horseSalient.svg b/src/dist/charges/horseSalient.svg new file mode 100644 index 00000000..21b5db48 --- /dev/null +++ b/src/dist/charges/horseSalient.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/horseshoe.svg b/src/dist/charges/horseshoe.svg new file mode 100644 index 00000000..3bd51f7a --- /dev/null +++ b/src/dist/charges/horseshoe.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/dist/charges/hourglass.svg b/src/dist/charges/hourglass.svg new file mode 100644 index 00000000..87e7930b --- /dev/null +++ b/src/dist/charges/hourglass.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/key.svg b/src/dist/charges/key.svg new file mode 100644 index 00000000..6fb883ea --- /dev/null +++ b/src/dist/charges/key.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/ladder.svg b/src/dist/charges/ladder.svg new file mode 100644 index 00000000..fc72f130 --- /dev/null +++ b/src/dist/charges/ladder.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/dist/charges/ladder2.svg b/src/dist/charges/ladder2.svg new file mode 100644 index 00000000..5596e045 --- /dev/null +++ b/src/dist/charges/ladder2.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/dist/charges/ladybird.svg b/src/dist/charges/ladybird.svg new file mode 100644 index 00000000..3cc1587e --- /dev/null +++ b/src/dist/charges/ladybird.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/lamb.svg b/src/dist/charges/lamb.svg new file mode 100644 index 00000000..1d574b53 --- /dev/null +++ b/src/dist/charges/lamb.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/lambPassantReguardant.svg b/src/dist/charges/lambPassantReguardant.svg new file mode 100644 index 00000000..90884eb7 --- /dev/null +++ b/src/dist/charges/lambPassantReguardant.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/lanceHead.svg b/src/dist/charges/lanceHead.svg new file mode 100644 index 00000000..255492db --- /dev/null +++ b/src/dist/charges/lanceHead.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/dist/charges/lanceWithBanner.svg b/src/dist/charges/lanceWithBanner.svg new file mode 100644 index 00000000..556e5ade --- /dev/null +++ b/src/dist/charges/lanceWithBanner.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/dist/charges/laurelWreath.svg b/src/dist/charges/laurelWreath.svg new file mode 100644 index 00000000..989e00c4 --- /dev/null +++ b/src/dist/charges/laurelWreath.svg @@ -0,0 +1,263 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/laurelWreath2.svg b/src/dist/charges/laurelWreath2.svg new file mode 100644 index 00000000..6dfb373e --- /dev/null +++ b/src/dist/charges/laurelWreath2.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/lighthouse.svg b/src/dist/charges/lighthouse.svg new file mode 100644 index 00000000..b66938f5 --- /dev/null +++ b/src/dist/charges/lighthouse.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/lionHeadCaboshed.svg b/src/dist/charges/lionHeadCaboshed.svg new file mode 100644 index 00000000..63022fc0 --- /dev/null +++ b/src/dist/charges/lionHeadCaboshed.svg @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/lionHeadErased.svg b/src/dist/charges/lionHeadErased.svg new file mode 100644 index 00000000..7ed39c67 --- /dev/null +++ b/src/dist/charges/lionHeadErased.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/lionPassant.svg b/src/dist/charges/lionPassant.svg new file mode 100644 index 00000000..7dd6b396 --- /dev/null +++ b/src/dist/charges/lionPassant.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/lionPassantGuardant.svg b/src/dist/charges/lionPassantGuardant.svg new file mode 100644 index 00000000..584e8835 --- /dev/null +++ b/src/dist/charges/lionPassantGuardant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/lionRampant.svg b/src/dist/charges/lionRampant.svg new file mode 100644 index 00000000..8aab2b09 --- /dev/null +++ b/src/dist/charges/lionRampant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/lionSejant.svg b/src/dist/charges/lionSejant.svg new file mode 100644 index 00000000..23ca98db --- /dev/null +++ b/src/dist/charges/lionSejant.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/lizard.svg b/src/dist/charges/lizard.svg new file mode 100644 index 00000000..dc8dbf9d --- /dev/null +++ b/src/dist/charges/lizard.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/lochaberAxe.svg b/src/dist/charges/lochaberAxe.svg new file mode 100644 index 00000000..cf09c61e --- /dev/null +++ b/src/dist/charges/lochaberAxe.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/dist/charges/log.svg b/src/dist/charges/log.svg new file mode 100644 index 00000000..387fad44 --- /dev/null +++ b/src/dist/charges/log.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/dist/charges/lozenge.svg b/src/dist/charges/lozenge.svg new file mode 100644 index 00000000..4cfb22c9 --- /dev/null +++ b/src/dist/charges/lozenge.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/lozengeFaceted.svg b/src/dist/charges/lozengeFaceted.svg new file mode 100644 index 00000000..63a575e3 --- /dev/null +++ b/src/dist/charges/lozengeFaceted.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/dist/charges/lozengePloye.svg b/src/dist/charges/lozengePloye.svg new file mode 100644 index 00000000..0187c681 --- /dev/null +++ b/src/dist/charges/lozengePloye.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/lute.svg b/src/dist/charges/lute.svg new file mode 100644 index 00000000..c88cc397 --- /dev/null +++ b/src/dist/charges/lute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/lymphad.svg b/src/dist/charges/lymphad.svg new file mode 100644 index 00000000..457f10d7 --- /dev/null +++ b/src/dist/charges/lymphad.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/lyre.svg b/src/dist/charges/lyre.svg new file mode 100644 index 00000000..d89b8550 --- /dev/null +++ b/src/dist/charges/lyre.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/mace.svg b/src/dist/charges/mace.svg new file mode 100644 index 00000000..a3f0e074 --- /dev/null +++ b/src/dist/charges/mace.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/maces.svg b/src/dist/charges/maces.svg new file mode 100644 index 00000000..93988b80 --- /dev/null +++ b/src/dist/charges/maces.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/mallet.svg b/src/dist/charges/mallet.svg new file mode 100644 index 00000000..ecb418f9 --- /dev/null +++ b/src/dist/charges/mallet.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/dist/charges/mantle.svg b/src/dist/charges/mantle.svg new file mode 100644 index 00000000..5493c30b --- /dev/null +++ b/src/dist/charges/mantle.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/mapleLeaf.svg b/src/dist/charges/mapleLeaf.svg new file mode 100644 index 00000000..93e63767 --- /dev/null +++ b/src/dist/charges/mapleLeaf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/dist/charges/martenCourant.svg b/src/dist/charges/martenCourant.svg new file mode 100644 index 00000000..1760d038 --- /dev/null +++ b/src/dist/charges/martenCourant.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/mascle.svg b/src/dist/charges/mascle.svg new file mode 100644 index 00000000..b867e47a --- /dev/null +++ b/src/dist/charges/mascle.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/mastiffStatant.svg b/src/dist/charges/mastiffStatant.svg new file mode 100644 index 00000000..14feb266 --- /dev/null +++ b/src/dist/charges/mastiffStatant.svg @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/millstone.svg b/src/dist/charges/millstone.svg new file mode 100644 index 00000000..f8d523ca --- /dev/null +++ b/src/dist/charges/millstone.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/dist/charges/mitre.svg b/src/dist/charges/mitre.svg new file mode 100644 index 00000000..1a20e002 --- /dev/null +++ b/src/dist/charges/mitre.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/monk.svg b/src/dist/charges/monk.svg new file mode 100644 index 00000000..8ede0359 --- /dev/null +++ b/src/dist/charges/monk.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/moonInCrescent.svg b/src/dist/charges/moonInCrescent.svg new file mode 100644 index 00000000..27fdb512 --- /dev/null +++ b/src/dist/charges/moonInCrescent.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/mullet.svg b/src/dist/charges/mullet.svg new file mode 100644 index 00000000..2658e971 --- /dev/null +++ b/src/dist/charges/mullet.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/mullet10.svg b/src/dist/charges/mullet10.svg new file mode 100644 index 00000000..60ed608a --- /dev/null +++ b/src/dist/charges/mullet10.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/mullet4.svg b/src/dist/charges/mullet4.svg new file mode 100644 index 00000000..37242f99 --- /dev/null +++ b/src/dist/charges/mullet4.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/mullet6.svg b/src/dist/charges/mullet6.svg new file mode 100644 index 00000000..1a1972aa --- /dev/null +++ b/src/dist/charges/mullet6.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/mullet6Faceted.svg b/src/dist/charges/mullet6Faceted.svg new file mode 100644 index 00000000..1ca0c335 --- /dev/null +++ b/src/dist/charges/mullet6Faceted.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/dist/charges/mullet6Pierced.svg b/src/dist/charges/mullet6Pierced.svg new file mode 100644 index 00000000..96d6f279 --- /dev/null +++ b/src/dist/charges/mullet6Pierced.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/mullet7.svg b/src/dist/charges/mullet7.svg new file mode 100644 index 00000000..53321978 --- /dev/null +++ b/src/dist/charges/mullet7.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/mullet8.svg b/src/dist/charges/mullet8.svg new file mode 100644 index 00000000..0239a883 --- /dev/null +++ b/src/dist/charges/mullet8.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/mulletFaceted.svg b/src/dist/charges/mulletFaceted.svg new file mode 100644 index 00000000..a43fe26e --- /dev/null +++ b/src/dist/charges/mulletFaceted.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/dist/charges/mulletPierced.svg b/src/dist/charges/mulletPierced.svg new file mode 100644 index 00000000..b469bf0c --- /dev/null +++ b/src/dist/charges/mulletPierced.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/oak.svg b/src/dist/charges/oak.svg new file mode 100644 index 00000000..b01da9b4 --- /dev/null +++ b/src/dist/charges/oak.svg @@ -0,0 +1,347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/orb.svg b/src/dist/charges/orb.svg new file mode 100644 index 00000000..2d7354f5 --- /dev/null +++ b/src/dist/charges/orb.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/ouroboros.svg b/src/dist/charges/ouroboros.svg new file mode 100644 index 00000000..f0f39146 --- /dev/null +++ b/src/dist/charges/ouroboros.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/dist/charges/owl.svg b/src/dist/charges/owl.svg new file mode 100644 index 00000000..015a7f81 --- /dev/null +++ b/src/dist/charges/owl.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/owlDisplayed.svg b/src/dist/charges/owlDisplayed.svg new file mode 100644 index 00000000..353fe5e7 --- /dev/null +++ b/src/dist/charges/owlDisplayed.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/palace.svg b/src/dist/charges/palace.svg new file mode 100644 index 00000000..9e03dd4b --- /dev/null +++ b/src/dist/charges/palace.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/palmTree.svg b/src/dist/charges/palmTree.svg new file mode 100644 index 00000000..590d14a3 --- /dev/null +++ b/src/dist/charges/palmTree.svg @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/parrot.svg b/src/dist/charges/parrot.svg new file mode 100644 index 00000000..92d7dd10 --- /dev/null +++ b/src/dist/charges/parrot.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/peacock.svg b/src/dist/charges/peacock.svg new file mode 100644 index 00000000..064831f4 --- /dev/null +++ b/src/dist/charges/peacock.svg @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/peacockInPride.svg b/src/dist/charges/peacockInPride.svg new file mode 100644 index 00000000..b8b4f8c7 --- /dev/null +++ b/src/dist/charges/peacockInPride.svg @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/pear.svg b/src/dist/charges/pear.svg new file mode 100644 index 00000000..d421e208 --- /dev/null +++ b/src/dist/charges/pear.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/pegasus.svg b/src/dist/charges/pegasus.svg new file mode 100644 index 00000000..5335022d --- /dev/null +++ b/src/dist/charges/pegasus.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/pike.svg b/src/dist/charges/pike.svg new file mode 100644 index 00000000..812002b7 --- /dev/null +++ b/src/dist/charges/pike.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/pillar.svg b/src/dist/charges/pillar.svg new file mode 100644 index 00000000..d9aa943f --- /dev/null +++ b/src/dist/charges/pillar.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/pincers.svg b/src/dist/charges/pincers.svg new file mode 100644 index 00000000..2e91f728 --- /dev/null +++ b/src/dist/charges/pincers.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/dist/charges/pineCone.svg b/src/dist/charges/pineCone.svg new file mode 100644 index 00000000..c326f2a2 --- /dev/null +++ b/src/dist/charges/pineCone.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/pineTree.svg b/src/dist/charges/pineTree.svg new file mode 100644 index 00000000..2abebe11 --- /dev/null +++ b/src/dist/charges/pineTree.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/pique.svg b/src/dist/charges/pique.svg new file mode 100644 index 00000000..06c5836e --- /dev/null +++ b/src/dist/charges/pique.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/plaice.svg b/src/dist/charges/plaice.svg new file mode 100644 index 00000000..8325d1ca --- /dev/null +++ b/src/dist/charges/plaice.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/plough.svg b/src/dist/charges/plough.svg new file mode 100644 index 00000000..7c1f42fc --- /dev/null +++ b/src/dist/charges/plough.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/ploughshare.svg b/src/dist/charges/ploughshare.svg new file mode 100644 index 00000000..45928f03 --- /dev/null +++ b/src/dist/charges/ploughshare.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/porcupine.svg b/src/dist/charges/porcupine.svg new file mode 100644 index 00000000..bdc53081 --- /dev/null +++ b/src/dist/charges/porcupine.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/portcullis.svg b/src/dist/charges/portcullis.svg new file mode 100644 index 00000000..de154326 --- /dev/null +++ b/src/dist/charges/portcullis.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/pot.svg b/src/dist/charges/pot.svg new file mode 100644 index 00000000..64cc0ff6 --- /dev/null +++ b/src/dist/charges/pot.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/dist/charges/quatrefoil.svg b/src/dist/charges/quatrefoil.svg new file mode 100644 index 00000000..ff33f762 --- /dev/null +++ b/src/dist/charges/quatrefoil.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/dist/charges/rabbitSejant.svg b/src/dist/charges/rabbitSejant.svg new file mode 100644 index 00000000..c61e0a9b --- /dev/null +++ b/src/dist/charges/rabbitSejant.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/raft.svg b/src/dist/charges/raft.svg new file mode 100644 index 00000000..d5b728b4 --- /dev/null +++ b/src/dist/charges/raft.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/rake.svg b/src/dist/charges/rake.svg new file mode 100644 index 00000000..6feed725 --- /dev/null +++ b/src/dist/charges/rake.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/ramHeadErased.svg b/src/dist/charges/ramHeadErased.svg new file mode 100644 index 00000000..c971f7b4 --- /dev/null +++ b/src/dist/charges/ramHeadErased.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/ramPassant.svg b/src/dist/charges/ramPassant.svg new file mode 100644 index 00000000..421e416c --- /dev/null +++ b/src/dist/charges/ramPassant.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/ramsHorn.svg b/src/dist/charges/ramsHorn.svg new file mode 100644 index 00000000..26585cc9 --- /dev/null +++ b/src/dist/charges/ramsHorn.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/rapier.svg b/src/dist/charges/rapier.svg new file mode 100644 index 00000000..fed83920 --- /dev/null +++ b/src/dist/charges/rapier.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/ratRampant.svg b/src/dist/charges/ratRampant.svg new file mode 100644 index 00000000..13c6746a --- /dev/null +++ b/src/dist/charges/ratRampant.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/raven.svg b/src/dist/charges/raven.svg new file mode 100644 index 00000000..6e3c4eca --- /dev/null +++ b/src/dist/charges/raven.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/rhinoceros.svg b/src/dist/charges/rhinoceros.svg new file mode 100644 index 00000000..1d43c4f4 --- /dev/null +++ b/src/dist/charges/rhinoceros.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/ribbon1.svg b/src/dist/charges/ribbon1.svg new file mode 100644 index 00000000..03bf3515 --- /dev/null +++ b/src/dist/charges/ribbon1.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/dist/charges/ribbon2.svg b/src/dist/charges/ribbon2.svg new file mode 100644 index 00000000..0f15bb04 --- /dev/null +++ b/src/dist/charges/ribbon2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/dist/charges/ribbon3.svg b/src/dist/charges/ribbon3.svg new file mode 100644 index 00000000..dd168991 --- /dev/null +++ b/src/dist/charges/ribbon3.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/dist/charges/ribbon4.svg b/src/dist/charges/ribbon4.svg new file mode 100644 index 00000000..bab35959 --- /dev/null +++ b/src/dist/charges/ribbon4.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/ribbon5.svg b/src/dist/charges/ribbon5.svg new file mode 100644 index 00000000..3c718bce --- /dev/null +++ b/src/dist/charges/ribbon5.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/ribbon6.svg b/src/dist/charges/ribbon6.svg new file mode 100644 index 00000000..a32eede7 --- /dev/null +++ b/src/dist/charges/ribbon6.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/dist/charges/ribbon7.svg b/src/dist/charges/ribbon7.svg new file mode 100644 index 00000000..2d9a1e21 --- /dev/null +++ b/src/dist/charges/ribbon7.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/ribbon8.svg b/src/dist/charges/ribbon8.svg new file mode 100644 index 00000000..f7c672a7 --- /dev/null +++ b/src/dist/charges/ribbon8.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/dist/charges/rose.svg b/src/dist/charges/rose.svg new file mode 100644 index 00000000..7ce11665 --- /dev/null +++ b/src/dist/charges/rose.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/dist/charges/roundel.svg b/src/dist/charges/roundel.svg new file mode 100644 index 00000000..344991ed --- /dev/null +++ b/src/dist/charges/roundel.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/roundel2.svg b/src/dist/charges/roundel2.svg new file mode 100644 index 00000000..fffa7ad4 --- /dev/null +++ b/src/dist/charges/roundel2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/dist/charges/rustre.svg b/src/dist/charges/rustre.svg new file mode 100644 index 00000000..60c253a1 --- /dev/null +++ b/src/dist/charges/rustre.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/sabre.svg b/src/dist/charges/sabre.svg new file mode 100644 index 00000000..0f1f002d --- /dev/null +++ b/src/dist/charges/sabre.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/sabre2.svg b/src/dist/charges/sabre2.svg new file mode 100644 index 00000000..2466a761 --- /dev/null +++ b/src/dist/charges/sabre2.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/dist/charges/sabresCrossed.svg b/src/dist/charges/sabresCrossed.svg new file mode 100644 index 00000000..e9cec5f4 --- /dev/null +++ b/src/dist/charges/sabresCrossed.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/sagittarius.svg b/src/dist/charges/sagittarius.svg new file mode 100644 index 00000000..ac5eaeeb --- /dev/null +++ b/src/dist/charges/sagittarius.svg @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/salmon.svg b/src/dist/charges/salmon.svg new file mode 100644 index 00000000..bda9bf49 --- /dev/null +++ b/src/dist/charges/salmon.svg @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/saw.svg b/src/dist/charges/saw.svg new file mode 100644 index 00000000..c356263f --- /dev/null +++ b/src/dist/charges/saw.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/dist/charges/scale.svg b/src/dist/charges/scale.svg new file mode 100644 index 00000000..b2da96ea --- /dev/null +++ b/src/dist/charges/scale.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/scaleImbalanced.svg b/src/dist/charges/scaleImbalanced.svg new file mode 100644 index 00000000..ea151649 --- /dev/null +++ b/src/dist/charges/scaleImbalanced.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/scalesHanging.svg b/src/dist/charges/scalesHanging.svg new file mode 100644 index 00000000..1065211b --- /dev/null +++ b/src/dist/charges/scalesHanging.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/sceptre.svg b/src/dist/charges/sceptre.svg new file mode 100644 index 00000000..57869cbf --- /dev/null +++ b/src/dist/charges/sceptre.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/scissors.svg b/src/dist/charges/scissors.svg new file mode 100644 index 00000000..a7437f1e --- /dev/null +++ b/src/dist/charges/scissors.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/dist/charges/scissors2.svg b/src/dist/charges/scissors2.svg new file mode 100644 index 00000000..109d8238 --- /dev/null +++ b/src/dist/charges/scissors2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/dist/charges/scorpion.svg b/src/dist/charges/scorpion.svg new file mode 100644 index 00000000..c132511d --- /dev/null +++ b/src/dist/charges/scorpion.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/scrollClosed.svg b/src/dist/charges/scrollClosed.svg new file mode 100644 index 00000000..1f7d8034 --- /dev/null +++ b/src/dist/charges/scrollClosed.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/dist/charges/scythe.svg b/src/dist/charges/scythe.svg new file mode 100644 index 00000000..b8d0a04d --- /dev/null +++ b/src/dist/charges/scythe.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/dist/charges/scythe2.svg b/src/dist/charges/scythe2.svg new file mode 100644 index 00000000..7fa9de5d --- /dev/null +++ b/src/dist/charges/scythe2.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/dist/charges/serpent.svg b/src/dist/charges/serpent.svg new file mode 100644 index 00000000..e12c9570 --- /dev/null +++ b/src/dist/charges/serpent.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/sextifoil.svg b/src/dist/charges/sextifoil.svg new file mode 100644 index 00000000..ad6e3303 --- /dev/null +++ b/src/dist/charges/sextifoil.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/dist/charges/shears.svg b/src/dist/charges/shears.svg new file mode 100644 index 00000000..3b3daeb4 --- /dev/null +++ b/src/dist/charges/shears.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/dist/charges/shield.svg b/src/dist/charges/shield.svg new file mode 100644 index 00000000..89ad41de --- /dev/null +++ b/src/dist/charges/shield.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/shipWheel.svg b/src/dist/charges/shipWheel.svg new file mode 100644 index 00000000..fa23136c --- /dev/null +++ b/src/dist/charges/shipWheel.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/sickle.svg b/src/dist/charges/sickle.svg new file mode 100644 index 00000000..753eeeaa --- /dev/null +++ b/src/dist/charges/sickle.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/dist/charges/skeleton.svg b/src/dist/charges/skeleton.svg new file mode 100644 index 00000000..cde28dae --- /dev/null +++ b/src/dist/charges/skeleton.svg @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/skull.svg b/src/dist/charges/skull.svg new file mode 100644 index 00000000..c7dc7044 --- /dev/null +++ b/src/dist/charges/skull.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/skull2.svg b/src/dist/charges/skull2.svg new file mode 100644 index 00000000..a580afd7 --- /dev/null +++ b/src/dist/charges/skull2.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/snail.svg b/src/dist/charges/snail.svg new file mode 100644 index 00000000..387dc48a --- /dev/null +++ b/src/dist/charges/snail.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/snake.svg b/src/dist/charges/snake.svg new file mode 100644 index 00000000..532f2c0c --- /dev/null +++ b/src/dist/charges/snake.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/snowflake.svg b/src/dist/charges/snowflake.svg new file mode 100644 index 00000000..d85d067b --- /dev/null +++ b/src/dist/charges/snowflake.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/spear.svg b/src/dist/charges/spear.svg new file mode 100644 index 00000000..9944f9d5 --- /dev/null +++ b/src/dist/charges/spear.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/dist/charges/spiral.svg b/src/dist/charges/spiral.svg new file mode 100644 index 00000000..05736127 --- /dev/null +++ b/src/dist/charges/spiral.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/squirrel.svg b/src/dist/charges/squirrel.svg new file mode 100644 index 00000000..bf2cc68b --- /dev/null +++ b/src/dist/charges/squirrel.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/stagLodgedRegardant.svg b/src/dist/charges/stagLodgedRegardant.svg new file mode 100644 index 00000000..024f648c --- /dev/null +++ b/src/dist/charges/stagLodgedRegardant.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/stagPassant.svg b/src/dist/charges/stagPassant.svg new file mode 100644 index 00000000..745ed25e --- /dev/null +++ b/src/dist/charges/stagPassant.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/stagsAttires.svg b/src/dist/charges/stagsAttires.svg new file mode 100644 index 00000000..c8b3692b --- /dev/null +++ b/src/dist/charges/stagsAttires.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/dist/charges/stirrup.svg b/src/dist/charges/stirrup.svg new file mode 100644 index 00000000..4350ad26 --- /dev/null +++ b/src/dist/charges/stirrup.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/sun.svg b/src/dist/charges/sun.svg new file mode 100644 index 00000000..6d58a55c --- /dev/null +++ b/src/dist/charges/sun.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/sunInSplendour.svg b/src/dist/charges/sunInSplendour.svg new file mode 100644 index 00000000..4de9c571 --- /dev/null +++ b/src/dist/charges/sunInSplendour.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/dist/charges/sunInSplendour2.svg b/src/dist/charges/sunInSplendour2.svg new file mode 100644 index 00000000..d56c221d --- /dev/null +++ b/src/dist/charges/sunInSplendour2.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/swallow.svg b/src/dist/charges/swallow.svg new file mode 100644 index 00000000..bf363a15 --- /dev/null +++ b/src/dist/charges/swallow.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/swan.svg b/src/dist/charges/swan.svg new file mode 100644 index 00000000..26a345f7 --- /dev/null +++ b/src/dist/charges/swan.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/swanErased.svg b/src/dist/charges/swanErased.svg new file mode 100644 index 00000000..510c380a --- /dev/null +++ b/src/dist/charges/swanErased.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/dist/charges/sword.svg b/src/dist/charges/sword.svg new file mode 100644 index 00000000..cdf8853b --- /dev/null +++ b/src/dist/charges/sword.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/dist/charges/talbotPassant.svg b/src/dist/charges/talbotPassant.svg new file mode 100644 index 00000000..121e6ba4 --- /dev/null +++ b/src/dist/charges/talbotPassant.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/talbotSejant.svg b/src/dist/charges/talbotSejant.svg new file mode 100644 index 00000000..e89d4b90 --- /dev/null +++ b/src/dist/charges/talbotSejant.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/template.svg b/src/dist/charges/template.svg new file mode 100644 index 00000000..cad51295 --- /dev/null +++ b/src/dist/charges/template.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/thistle.svg b/src/dist/charges/thistle.svg new file mode 100644 index 00000000..09cff52a --- /dev/null +++ b/src/dist/charges/thistle.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/tower.svg b/src/dist/charges/tower.svg new file mode 100644 index 00000000..9754803a --- /dev/null +++ b/src/dist/charges/tower.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/tree.svg b/src/dist/charges/tree.svg new file mode 100644 index 00000000..0e2854fc --- /dev/null +++ b/src/dist/charges/tree.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/dist/charges/trefle.svg b/src/dist/charges/trefle.svg new file mode 100644 index 00000000..8180526b --- /dev/null +++ b/src/dist/charges/trefle.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/trefoil.svg b/src/dist/charges/trefoil.svg new file mode 100644 index 00000000..438c993e --- /dev/null +++ b/src/dist/charges/trefoil.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/dist/charges/triangle.svg b/src/dist/charges/triangle.svg new file mode 100644 index 00000000..0a06d67c --- /dev/null +++ b/src/dist/charges/triangle.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/trianglePierced.svg b/src/dist/charges/trianglePierced.svg new file mode 100644 index 00000000..6bbe2fc2 --- /dev/null +++ b/src/dist/charges/trianglePierced.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/dist/charges/trowel.svg b/src/dist/charges/trowel.svg new file mode 100644 index 00000000..b9533474 --- /dev/null +++ b/src/dist/charges/trowel.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/dist/charges/unicornRampant.svg b/src/dist/charges/unicornRampant.svg new file mode 100644 index 00000000..a3102dbc --- /dev/null +++ b/src/dist/charges/unicornRampant.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/wasp.svg b/src/dist/charges/wasp.svg new file mode 100644 index 00000000..9d54306c --- /dev/null +++ b/src/dist/charges/wasp.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/wheatStalk.svg b/src/dist/charges/wheatStalk.svg new file mode 100644 index 00000000..c6113ccd --- /dev/null +++ b/src/dist/charges/wheatStalk.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/wheel.svg b/src/dist/charges/wheel.svg new file mode 100644 index 00000000..6133eee9 --- /dev/null +++ b/src/dist/charges/wheel.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/windmill.svg b/src/dist/charges/windmill.svg new file mode 100644 index 00000000..b814ef1e --- /dev/null +++ b/src/dist/charges/windmill.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/wing.svg b/src/dist/charges/wing.svg new file mode 100644 index 00000000..d38622f2 --- /dev/null +++ b/src/dist/charges/wing.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/wingSword.svg b/src/dist/charges/wingSword.svg new file mode 100644 index 00000000..75c2f80e --- /dev/null +++ b/src/dist/charges/wingSword.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/wolfHeadErased.svg b/src/dist/charges/wolfHeadErased.svg new file mode 100644 index 00000000..518ea83f --- /dev/null +++ b/src/dist/charges/wolfHeadErased.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/wolfPassant.svg b/src/dist/charges/wolfPassant.svg new file mode 100644 index 00000000..06f8761a --- /dev/null +++ b/src/dist/charges/wolfPassant.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/wolfRampant.svg b/src/dist/charges/wolfRampant.svg new file mode 100644 index 00000000..f5c7f57c --- /dev/null +++ b/src/dist/charges/wolfRampant.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/wolfStatant.svg b/src/dist/charges/wolfStatant.svg new file mode 100644 index 00000000..d592b9ef --- /dev/null +++ b/src/dist/charges/wolfStatant.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/wyvern.svg b/src/dist/charges/wyvern.svg new file mode 100644 index 00000000..f09b821e --- /dev/null +++ b/src/dist/charges/wyvern.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/charges/wyvernWithWingsDisplayed.svg b/src/dist/charges/wyvernWithWingsDisplayed.svg new file mode 100644 index 00000000..d3aef9b4 --- /dev/null +++ b/src/dist/charges/wyvernWithWingsDisplayed.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dist/components/fill-box.js b/src/dist/components/fill-box.js new file mode 100644 index 00000000..b4d075c3 --- /dev/null +++ b/src/dist/components/fill-box.js @@ -0,0 +1,74 @@ +{ + const style = /* css */ ` + fill-box:not([disabled]) { + cursor: pointer; + } + + fill-box > svg { + vertical-align: middle; + pointer-events: none; + } + + fill-box > svg > rect { + stroke: #666666; + stroke-width: 2; + } + `; + + const styleElement = document.createElement("style"); + styleElement.setAttribute("type", "text/css"); + styleElement.innerHTML = style; + document.head.appendChild(styleElement); +} + +{ + const template = document.createElement("template"); + template.innerHTML = /* html */ ` + + + + `; + + class FillBox extends HTMLElement { + constructor() { + super(); + + this.appendChild(template.content.cloneNode(true)); + this.querySelector("rect")?.setAttribute("fill", this.fill); + this.querySelector("svg")?.setAttribute("width", this.size); + this.querySelector("svg")?.setAttribute("height", this.size); + } + + static showTip() { + tip(this.tip); + } + + connectedCallback() { + this.addEventListener("mousemove", this.constructor.showTip); + } + + disconnectedCallback() { + this.removeEventListener("mousemove", this.constructor.showTip); + } + + get fill() { + return this.getAttribute("fill") || "#333"; + } + + set fill(newFill) { + this.setAttribute("fill", newFill); + this.querySelector("rect")?.setAttribute("fill", newFill); + } + + get size() { + return this.getAttribute("size") || "1em"; + } + + get tip() { + return this.dataset.tip || "Fill style. Click to change"; + } + } + + // cannot use Shadow DOM here as need an access to svg hatches + customElements.define("fill-box", FillBox); +} diff --git a/src/dist/components/slider-input.js b/src/dist/components/slider-input.js new file mode 100644 index 00000000..f1732027 --- /dev/null +++ b/src/dist/components/slider-input.js @@ -0,0 +1,78 @@ +{ + const style = /* css */ ` + slider-input { + display: flex; + align-items: center; + gap: .4em; + } + `; + + const styleElement = document.createElement("style"); + styleElement.setAttribute("type", "text/css"); + styleElement.innerHTML = style; + document.head.appendChild(styleElement); +} + +{ + const template = document.createElement("template"); + template.innerHTML = /* html */ ` + + + `; + + class SliderInput extends HTMLElement { + constructor() { + super(); + this.appendChild(template.content.cloneNode(true)); + + const range = this.querySelector("input[type=range]"); + const number = this.querySelector("input[type=number]"); + + range.value = number.value = this.value || this.getAttribute("value") || 50; + range.min = number.min = this.getAttribute("min") || 0; + range.max = number.max = this.getAttribute("max") || 100; + range.step = number.step = this.getAttribute("step") || 1; + + range.addEventListener("input", this.handleEvent.bind(this)); + number.addEventListener("input", this.handleEvent.bind(this)); + range.addEventListener("change", this.handleEvent.bind(this)); + number.addEventListener("change", this.handleEvent.bind(this)); + } + + handleEvent(e) { + const value = e.target.value; + const isNaN = Number.isNaN(Number(value)); + if (isNaN || value === "") return e.stopPropagation(); + + const range = this.querySelector("input[type=range]"); + const number = this.querySelector("input[type=number]"); + this.value = range.value = number.value = value; + + this.dispatchEvent( + new CustomEvent(e.type, { + detail: {value}, + bubbles: true, + composed: true + }) + ); + } + + set value(value) { + const range = this.querySelector("input[type=range]"); + const number = this.querySelector("input[type=number]"); + range.value = number.value = value; + } + + get value() { + const number = this.querySelector("input[type=number]"); + return number.value; + } + + get valueAsNumber() { + const number = this.querySelector("input[type=number]"); + return number.valueAsNumber; + } + } + + customElements.define("slider-input", SliderInput); +} diff --git a/src/dist/config/heightmap-templates.js b/src/dist/config/heightmap-templates.js new file mode 100644 index 00000000..29738609 --- /dev/null +++ b/src/dist/config/heightmap-templates.js @@ -0,0 +1,166 @@ +"use strict"; + +const heightmapTemplates = (function () { + const volcano = `Hill 1 90-100 44-56 40-60 + Multiply 0.8 50-100 0 0 + Range 1.5 30-55 45-55 40-60 + Smooth 3 0 0 0 + Hill 1.5 35-45 25-30 20-75 + Hill 1 35-55 75-80 25-75 + Hill 0.5 20-25 10-15 20-25 + Mask 3 0 0 0`; + + const highIsland = `Hill 1 90-100 65-75 47-53 + Add 7 all 0 0 + Hill 5-6 20-30 25-55 45-55 + Range 1 40-50 45-55 45-55 + Multiply 0.8 land 0 0 + Mask 3 0 0 0 + Smooth 2 0 0 0 + Trough 2-3 20-30 20-30 20-30 + Trough 2-3 20-30 60-80 70-80 + Hill 1 10-15 60-60 50-50 + Hill 1.5 13-16 15-20 20-75 + Range 1.5 30-40 15-85 30-40 + Range 1.5 30-40 15-85 60-70 + Pit 3-5 10-30 15-85 20-80`; + + const lowIsland = `Hill 1 90-99 60-80 45-55 + Hill 1-2 20-30 10-30 10-90 + Smooth 2 0 0 0 + Hill 6-7 25-35 20-70 30-70 + Range 1 40-50 45-55 45-55 + Trough 2-3 20-30 15-85 20-30 + Trough 2-3 20-30 15-85 70-80 + Hill 1.5 10-15 5-15 20-80 + Hill 1 10-15 85-95 70-80 + Pit 5-7 15-25 15-85 20-80 + Multiply 0.4 20-100 0 0 + Mask 4 0 0 0`; + + const continents = `Hill 1 80-85 60-80 40-60 + Hill 1 80-85 20-30 40-60 + Hill 6-7 15-30 25-75 15-85 + Multiply 0.6 land 0 0 + Hill 8-10 5-10 15-85 20-80 + Range 1-2 30-60 5-15 25-75 + Range 1-2 30-60 80-95 25-75 + Range 0-3 30-60 80-90 20-80 + Strait 2 vertical 0 0 + Strait 1 vertical 0 0 + Smooth 3 0 0 0 + Trough 3-4 15-20 15-85 20-80 + Trough 3-4 5-10 45-55 45-55 + Pit 3-4 10-20 15-85 20-80 + Mask 4 0 0 0`; + + const archipelago = `Add 11 all 0 0 + Range 2-3 40-60 20-80 20-80 + Hill 5 15-20 10-90 30-70 + Hill 2 10-15 10-30 20-80 + Hill 2 10-15 60-90 20-80 + Smooth 3 0 0 0 + Trough 10 20-30 5-95 5-95 + Strait 2 vertical 0 0 + Strait 2 horizontal 0 0`; + + const atoll = `Hill 1 75-80 50-60 45-55 + Hill 1.5 30-50 25-75 30-70 + Hill .5 30-50 25-35 30-70 + Smooth 1 0 0 0 + Multiply 0.2 25-100 0 0 + Hill 0.5 10-20 50-55 48-52`; + + const mediterranean = `Range 4-6 30-80 0-100 0-10 + Range 4-6 30-80 0-100 90-100 + Hill 6-8 30-50 10-90 0-5 + Hill 6-8 30-50 10-90 95-100 + Multiply 0.9 land 0 0 + Mask -2 0 0 0 + Smooth 1 0 0 0 + Hill 2-3 30-70 0-5 20-80 + Hill 2-3 30-70 95-100 20-80 + Trough 3-6 40-50 0-100 0-10 + Trough 3-6 40-50 0-100 90-100`; + + const peninsula = `Range 2-3 20-35 40-50 0-15 + Add 5 all 0 0 + Hill 1 90-100 10-90 0-5 + Add 13 all 0 0 + Hill 3-4 3-5 5-95 80-100 + Hill 1-2 3-5 5-95 40-60 + Trough 5-6 10-25 5-95 5-95 + Smooth 3 0 0 0 + Invert 0.4 both 0 0`; + + const pangea = `Hill 1-2 25-40 15-50 0-10 + Hill 1-2 5-40 50-85 0-10 + Hill 1-2 25-40 50-85 90-100 + Hill 1-2 5-40 15-50 90-100 + Hill 8-12 20-40 20-80 48-52 + Smooth 2 0 0 0 + Multiply 0.7 land 0 0 + Trough 3-4 25-35 5-95 10-20 + Trough 3-4 25-35 5-95 80-90 + Range 5-6 30-40 10-90 35-65`; + + const isthmus = `Hill 5-10 15-30 0-30 0-20 + Hill 5-10 15-30 10-50 20-40 + Hill 5-10 15-30 30-70 40-60 + Hill 5-10 15-30 50-90 60-80 + Hill 5-10 15-30 70-100 80-100 + Smooth 2 0 0 0 + Trough 4-8 15-30 0-30 0-20 + Trough 4-8 15-30 10-50 20-40 + Trough 4-8 15-30 30-70 40-60 + Trough 4-8 15-30 50-90 60-80 + Trough 4-8 15-30 70-100 80-100 + Invert 0.25 x 0 0`; + + const shattered = `Hill 8 35-40 15-85 30-70 + Trough 10-20 40-50 5-95 5-95 + Range 5-7 30-40 10-90 20-80 + Pit 12-20 30-40 15-85 20-80`; + + const taklamakan = `Hill 1-3 20-30 30-70 30-70 + Hill 2-4 60-85 0-5 0-100 + Hill 2-4 60-85 95-100 0-100 + Hill 3-4 60-85 20-80 0-5 + Hill 3-4 60-85 20-80 95-100 + Smooth 3 0 0 0`; + + const oldWorld = `Range 3 70 15-85 20-80 + Hill 2-3 50-70 15-45 20-80 + Hill 2-3 50-70 65-85 20-80 + Hill 4-6 20-25 15-85 20-80 + Multiply 0.5 land 0 0 + Smooth 2 0 0 0 + Range 3-4 20-50 15-35 20-45 + Range 2-4 20-50 65-85 45-80 + Strait 3-7 vertical 0 0 + Trough 6-8 20-50 15-85 45-65 + Pit 5-6 20-30 10-90 10-90`; + + const fractious = `Hill 12-15 50-80 5-95 5-95 + Mask -1.5 0 0 0 + Mask 3 0 0 0 + Add -20 30-100 0 0 + Range 6-8 40-50 5-95 10-90`; + + return { + volcano: {id: 0, name: "Volcano", template: volcano, probability: 3}, + highIsland: {id: 1, name: "High Island", template: highIsland, probability: 19}, + lowIsland: {id: 2, name: "Low Island", template: lowIsland, probability: 9}, + continents: {id: 3, name: "Continents", template: continents, probability: 16}, + archipelago: {id: 4, name: "Archipelago", template: archipelago, probability: 18}, + atoll: {id: 5, name: "Atoll", template: atoll, probability: 1}, + mediterranean: {id: 6, name: "Mediterranean", template: mediterranean, probability: 5}, + peninsula: {id: 7, name: "Peninsula", template: peninsula, probability: 3}, + pangea: {id: 8, name: "Pangea", template: pangea, probability: 5}, + isthmus: {id: 9, name: "Isthmus", template: isthmus, probability: 2}, + shattered: {id: 10, name: "Shattered", template: shattered, probability: 7}, + taklamakan: {id: 11, name: "Taklamakan", template: taklamakan, probability: 1}, + oldWorld: {id: 12, name: "Old World", template: oldWorld, probability: 8}, + fractious: {id: 13, name: "Fractious", template: fractious, probability: 3} + }; +})(); diff --git a/src/dist/config/precreated-heightmaps.js b/src/dist/config/precreated-heightmaps.js new file mode 100644 index 00000000..22f45abd --- /dev/null +++ b/src/dist/config/precreated-heightmaps.js @@ -0,0 +1,27 @@ +"use strict"; + +const precreatedHeightmaps = { + "africa-centric": {id: 0, name: "Africa Centric"}, + arabia: {id: 1, name: "Arabia"}, + atlantics: {id: 2, name: "Atlantics"}, + britain: {id: 3, name: "Britain"}, + caribbean: {id: 4, name: "Caribbean"}, + "east-asia": {id: 5, name: "East Asia"}, + eurasia: {id: 6, name: "Eurasia"}, + europe: {id: 7, name: "Europe"}, + "europe-accented": {id: 8, name: "Europe Accented"}, + "europe-and-central-asia": {id: 9, name: "Europe and Central Asia"}, + "europe-central": {id: 10, name: "Europe Central"}, + "europe-north": {id: 11, name: "Europe North"}, + greenland: {id: 12, name: "Greenland"}, + hellenica: {id: 13, name: "Hellenica"}, + iceland: {id: 14, name: "Iceland"}, + "indian-ocean": {id: 15, name: "Indian Ocean"}, + "mediterranean-sea": {id: 16, name: "Mediterranean Sea"}, + "middle-east": {id: 17, name: "Middle East"}, + "north-america": {id: 18, name: "North America"}, + "us-centric": {id: 19, name: "US-centric"}, + "us-mainland": {id: 20, name: "US Mainland"}, + world: {id: 21, name: "World"}, + "world-from-pacific": {id: 22, name: "World from Pacific"} +}; diff --git a/dropbox.html b/src/dist/dropbox.html similarity index 100% rename from dropbox.html rename to src/dist/dropbox.html diff --git a/heightmaps/africa-centric.png b/src/dist/heightmaps/africa-centric.png similarity index 100% rename from heightmaps/africa-centric.png rename to src/dist/heightmaps/africa-centric.png diff --git a/heightmaps/arabia.png b/src/dist/heightmaps/arabia.png similarity index 100% rename from heightmaps/arabia.png rename to src/dist/heightmaps/arabia.png diff --git a/heightmaps/atlantics.png b/src/dist/heightmaps/atlantics.png similarity index 100% rename from heightmaps/atlantics.png rename to src/dist/heightmaps/atlantics.png diff --git a/heightmaps/britain.png b/src/dist/heightmaps/britain.png similarity index 100% rename from heightmaps/britain.png rename to src/dist/heightmaps/britain.png diff --git a/heightmaps/caribbean.png b/src/dist/heightmaps/caribbean.png similarity index 100% rename from heightmaps/caribbean.png rename to src/dist/heightmaps/caribbean.png diff --git a/heightmaps/east-asia.png b/src/dist/heightmaps/east-asia.png similarity index 100% rename from heightmaps/east-asia.png rename to src/dist/heightmaps/east-asia.png diff --git a/heightmaps/eurasia.png b/src/dist/heightmaps/eurasia.png similarity index 100% rename from heightmaps/eurasia.png rename to src/dist/heightmaps/eurasia.png diff --git a/heightmaps/europe-accented.png b/src/dist/heightmaps/europe-accented.png similarity index 100% rename from heightmaps/europe-accented.png rename to src/dist/heightmaps/europe-accented.png diff --git a/heightmaps/europe-and-central-asia.png b/src/dist/heightmaps/europe-and-central-asia.png similarity index 100% rename from heightmaps/europe-and-central-asia.png rename to src/dist/heightmaps/europe-and-central-asia.png diff --git a/heightmaps/europe-central.png b/src/dist/heightmaps/europe-central.png similarity index 100% rename from heightmaps/europe-central.png rename to src/dist/heightmaps/europe-central.png diff --git a/heightmaps/europe-north.png b/src/dist/heightmaps/europe-north.png similarity index 100% rename from heightmaps/europe-north.png rename to src/dist/heightmaps/europe-north.png diff --git a/heightmaps/europe.png b/src/dist/heightmaps/europe.png similarity index 100% rename from heightmaps/europe.png rename to src/dist/heightmaps/europe.png diff --git a/heightmaps/greenland.png b/src/dist/heightmaps/greenland.png similarity index 100% rename from heightmaps/greenland.png rename to src/dist/heightmaps/greenland.png diff --git a/heightmaps/hellenica.png b/src/dist/heightmaps/hellenica.png similarity index 100% rename from heightmaps/hellenica.png rename to src/dist/heightmaps/hellenica.png diff --git a/heightmaps/iceland.png b/src/dist/heightmaps/iceland.png similarity index 100% rename from heightmaps/iceland.png rename to src/dist/heightmaps/iceland.png diff --git a/heightmaps/import-rules.txt b/src/dist/heightmaps/import-rules.txt similarity index 100% rename from heightmaps/import-rules.txt rename to src/dist/heightmaps/import-rules.txt diff --git a/heightmaps/indian-ocean.png b/src/dist/heightmaps/indian-ocean.png similarity index 100% rename from heightmaps/indian-ocean.png rename to src/dist/heightmaps/indian-ocean.png diff --git a/heightmaps/mediterranean-sea.png b/src/dist/heightmaps/mediterranean-sea.png similarity index 100% rename from heightmaps/mediterranean-sea.png rename to src/dist/heightmaps/mediterranean-sea.png diff --git a/heightmaps/middle-east.png b/src/dist/heightmaps/middle-east.png similarity index 100% rename from heightmaps/middle-east.png rename to src/dist/heightmaps/middle-east.png diff --git a/heightmaps/north-america.png b/src/dist/heightmaps/north-america.png similarity index 100% rename from heightmaps/north-america.png rename to src/dist/heightmaps/north-america.png diff --git a/heightmaps/us-centric.png b/src/dist/heightmaps/us-centric.png similarity index 100% rename from heightmaps/us-centric.png rename to src/dist/heightmaps/us-centric.png diff --git a/heightmaps/us-mainland.png b/src/dist/heightmaps/us-mainland.png similarity index 100% rename from heightmaps/us-mainland.png rename to src/dist/heightmaps/us-mainland.png diff --git a/heightmaps/world-from-pacific.png b/src/dist/heightmaps/world-from-pacific.png similarity index 100% rename from heightmaps/world-from-pacific.png rename to src/dist/heightmaps/world-from-pacific.png diff --git a/heightmaps/world.png b/src/dist/heightmaps/world.png similarity index 100% rename from heightmaps/world.png rename to src/dist/heightmaps/world.png diff --git a/icons.css b/src/dist/icons.css similarity index 100% rename from icons.css rename to src/dist/icons.css diff --git a/images/Discord.png b/src/dist/images/Discord.png similarity index 100% rename from images/Discord.png rename to src/dist/images/Discord.png diff --git a/images/Facebook.png b/src/dist/images/Facebook.png similarity index 100% rename from images/Facebook.png rename to src/dist/images/Facebook.png diff --git a/images/Pinterest.png b/src/dist/images/Pinterest.png similarity index 100% rename from images/Pinterest.png rename to src/dist/images/Pinterest.png diff --git a/images/Reddit.png b/src/dist/images/Reddit.png similarity index 100% rename from images/Reddit.png rename to src/dist/images/Reddit.png diff --git a/images/Twitter.png b/src/dist/images/Twitter.png similarity index 100% rename from images/Twitter.png rename to src/dist/images/Twitter.png diff --git a/src/dist/images/icons/favicon-16x16.png b/src/dist/images/icons/favicon-16x16.png new file mode 100644 index 00000000..ddd75b4a Binary files /dev/null and b/src/dist/images/icons/favicon-16x16.png differ diff --git a/src/dist/images/icons/favicon-32x32.png b/src/dist/images/icons/favicon-32x32.png new file mode 100644 index 00000000..13e5179d Binary files /dev/null and b/src/dist/images/icons/favicon-32x32.png differ diff --git a/images/icons/icon_x512.png b/src/dist/images/icons/icon_x512.png similarity index 100% rename from images/icons/icon_x512.png rename to src/dist/images/icons/icon_x512.png diff --git a/images/icons/maskable_icon_x128.png b/src/dist/images/icons/maskable_icon_x128.png similarity index 100% rename from images/icons/maskable_icon_x128.png rename to src/dist/images/icons/maskable_icon_x128.png diff --git a/src/dist/images/icons/maskable_icon_x192.png b/src/dist/images/icons/maskable_icon_x192.png new file mode 100644 index 00000000..3322eab3 Binary files /dev/null and b/src/dist/images/icons/maskable_icon_x192.png differ diff --git a/images/icons/maskable_icon_x384.png b/src/dist/images/icons/maskable_icon_x384.png similarity index 100% rename from images/icons/maskable_icon_x384.png rename to src/dist/images/icons/maskable_icon_x384.png diff --git a/images/icons/maskable_icon_x512.png b/src/dist/images/icons/maskable_icon_x512.png similarity index 100% rename from images/icons/maskable_icon_x512.png rename to src/dist/images/icons/maskable_icon_x512.png diff --git a/images/kiwiroo.png b/src/dist/images/kiwiroo.png similarity index 100% rename from images/kiwiroo.png rename to src/dist/images/kiwiroo.png diff --git a/images/pattern1.png b/src/dist/images/pattern1.png similarity index 100% rename from images/pattern1.png rename to src/dist/images/pattern1.png diff --git a/images/pattern2.png b/src/dist/images/pattern2.png similarity index 100% rename from images/pattern2.png rename to src/dist/images/pattern2.png diff --git a/images/pattern3.png b/src/dist/images/pattern3.png similarity index 100% rename from images/pattern3.png rename to src/dist/images/pattern3.png diff --git a/images/pattern4.png b/src/dist/images/pattern4.png similarity index 100% rename from images/pattern4.png rename to src/dist/images/pattern4.png diff --git a/images/pattern5.png b/src/dist/images/pattern5.png similarity index 100% rename from images/pattern5.png rename to src/dist/images/pattern5.png diff --git a/images/pattern6.png b/src/dist/images/pattern6.png similarity index 100% rename from images/pattern6.png rename to src/dist/images/pattern6.png diff --git a/src/dist/images/preview.png b/src/dist/images/preview.png new file mode 100644 index 00000000..2b150732 Binary files /dev/null and b/src/dist/images/preview.png differ diff --git a/images/textures/antique-big.jpg b/src/dist/images/textures/antique-big.jpg similarity index 100% rename from images/textures/antique-big.jpg rename to src/dist/images/textures/antique-big.jpg diff --git a/images/textures/antique-small.jpg b/src/dist/images/textures/antique-small.jpg similarity index 100% rename from images/textures/antique-small.jpg rename to src/dist/images/textures/antique-small.jpg diff --git a/images/textures/folded-paper-big.jpg b/src/dist/images/textures/folded-paper-big.jpg similarity index 100% rename from images/textures/folded-paper-big.jpg rename to src/dist/images/textures/folded-paper-big.jpg diff --git a/images/textures/folded-paper-small.jpg b/src/dist/images/textures/folded-paper-small.jpg similarity index 100% rename from images/textures/folded-paper-small.jpg rename to src/dist/images/textures/folded-paper-small.jpg diff --git a/images/textures/gray-paper.jpg b/src/dist/images/textures/gray-paper.jpg similarity index 100% rename from images/textures/gray-paper.jpg rename to src/dist/images/textures/gray-paper.jpg diff --git a/images/textures/iran-small.jpg b/src/dist/images/textures/iran-small.jpg similarity index 100% rename from images/textures/iran-small.jpg rename to src/dist/images/textures/iran-small.jpg diff --git a/images/textures/marble-big.jpg b/src/dist/images/textures/marble-big.jpg similarity index 100% rename from images/textures/marble-big.jpg rename to src/dist/images/textures/marble-big.jpg diff --git a/images/textures/marble-blue-big.jpg b/src/dist/images/textures/marble-blue-big.jpg similarity index 100% rename from images/textures/marble-blue-big.jpg rename to src/dist/images/textures/marble-blue-big.jpg diff --git a/images/textures/marble-blue-small.jpg b/src/dist/images/textures/marble-blue-small.jpg similarity index 100% rename from images/textures/marble-blue-small.jpg rename to src/dist/images/textures/marble-blue-small.jpg diff --git a/images/textures/marble-small.jpg b/src/dist/images/textures/marble-small.jpg similarity index 100% rename from images/textures/marble-small.jpg rename to src/dist/images/textures/marble-small.jpg diff --git a/images/textures/mars-big.jpg b/src/dist/images/textures/mars-big.jpg similarity index 100% rename from images/textures/mars-big.jpg rename to src/dist/images/textures/mars-big.jpg diff --git a/images/textures/mars-small.jpg b/src/dist/images/textures/mars-small.jpg similarity index 100% rename from images/textures/mars-small.jpg rename to src/dist/images/textures/mars-small.jpg diff --git a/images/textures/mauritania-small.jpg b/src/dist/images/textures/mauritania-small.jpg similarity index 100% rename from images/textures/mauritania-small.jpg rename to src/dist/images/textures/mauritania-small.jpg diff --git a/images/textures/mercury-big.jpg b/src/dist/images/textures/mercury-big.jpg similarity index 100% rename from images/textures/mercury-big.jpg rename to src/dist/images/textures/mercury-big.jpg diff --git a/images/textures/mercury-small.jpg b/src/dist/images/textures/mercury-small.jpg similarity index 100% rename from images/textures/mercury-small.jpg rename to src/dist/images/textures/mercury-small.jpg diff --git a/images/textures/ocean.jpg b/src/dist/images/textures/ocean.jpg similarity index 100% rename from images/textures/ocean.jpg rename to src/dist/images/textures/ocean.jpg diff --git a/images/textures/pergamena-small.jpg b/src/dist/images/textures/pergamena-small.jpg similarity index 100% rename from images/textures/pergamena-small.jpg rename to src/dist/images/textures/pergamena-small.jpg diff --git a/images/textures/plaster.jpg b/src/dist/images/textures/plaster.jpg similarity index 100% rename from images/textures/plaster.jpg rename to src/dist/images/textures/plaster.jpg diff --git a/images/textures/soiled-paper-vertical.png b/src/dist/images/textures/soiled-paper-vertical.png similarity index 100% rename from images/textures/soiled-paper-vertical.png rename to src/dist/images/textures/soiled-paper-vertical.png diff --git a/images/textures/soiled-paper.jpg b/src/dist/images/textures/soiled-paper.jpg similarity index 100% rename from images/textures/soiled-paper.jpg rename to src/dist/images/textures/soiled-paper.jpg diff --git a/images/textures/spain-small.jpg b/src/dist/images/textures/spain-small.jpg similarity index 100% rename from images/textures/spain-small.jpg rename to src/dist/images/textures/spain-small.jpg diff --git a/images/textures/timbercut-big.jpg b/src/dist/images/textures/timbercut-big.jpg similarity index 100% rename from images/textures/timbercut-big.jpg rename to src/dist/images/textures/timbercut-big.jpg diff --git a/images/textures/timbercut-small.jpg b/src/dist/images/textures/timbercut-small.jpg similarity index 100% rename from images/textures/timbercut-small.jpg rename to src/dist/images/textures/timbercut-small.jpg diff --git a/index.css b/src/dist/index.css similarity index 100% rename from index.css rename to src/dist/index.css diff --git a/src/dist/index.html b/src/dist/index.html new file mode 100644 index 00000000..0b1d1529 --- /dev/null +++ b/src/dist/index.html @@ -0,0 +1,8571 @@ + + + + + + + Azgaar's Fantasy Map Generator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+
Azgaar's
+
Fantasy Map Generator
+
‎ ‎
+

LOADING...

+
+
+ +
+
+ + +
+ + +
+ +
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libs/alea.min.js b/src/dist/libs/alea.min.js similarity index 100% rename from libs/alea.min.js rename to src/dist/libs/alea.min.js diff --git a/libs/d3.min.js b/src/dist/libs/d3.min.js similarity index 100% rename from libs/d3.min.js rename to src/dist/libs/d3.min.js diff --git a/libs/delaunator.min.js b/src/dist/libs/delaunator.min.js similarity index 100% rename from libs/delaunator.min.js rename to src/dist/libs/delaunator.min.js diff --git a/libs/dropbox-sdk.min.js b/src/dist/libs/dropbox-sdk.min.js similarity index 100% rename from libs/dropbox-sdk.min.js rename to src/dist/libs/dropbox-sdk.min.js diff --git a/libs/flatqueue.js b/src/dist/libs/flatqueue.js similarity index 100% rename from libs/flatqueue.js rename to src/dist/libs/flatqueue.js diff --git a/libs/indexedDB.js b/src/dist/libs/indexedDB.js similarity index 100% rename from libs/indexedDB.js rename to src/dist/libs/indexedDB.js diff --git a/libs/jquery-3.1.1.min.js b/src/dist/libs/jquery-3.1.1.min.js similarity index 100% rename from libs/jquery-3.1.1.min.js rename to src/dist/libs/jquery-3.1.1.min.js diff --git a/libs/jquery-ui.css b/src/dist/libs/jquery-ui.css similarity index 100% rename from libs/jquery-ui.css rename to src/dist/libs/jquery-ui.css diff --git a/libs/jquery-ui.min.js b/src/dist/libs/jquery-ui.min.js similarity index 100% rename from libs/jquery-ui.min.js rename to src/dist/libs/jquery-ui.min.js diff --git a/libs/jquery.ui.touch-punch.min.js b/src/dist/libs/jquery.ui.touch-punch.min.js similarity index 100% rename from libs/jquery.ui.touch-punch.min.js rename to src/dist/libs/jquery.ui.touch-punch.min.js diff --git a/libs/jszip.min.js b/src/dist/libs/jszip.min.js similarity index 100% rename from libs/jszip.min.js rename to src/dist/libs/jszip.min.js diff --git a/libs/lineclip.min.js b/src/dist/libs/lineclip.min.js similarity index 100% rename from libs/lineclip.min.js rename to src/dist/libs/lineclip.min.js diff --git a/libs/loopsubdivison.min.js b/src/dist/libs/loopsubdivison.min.js similarity index 100% rename from libs/loopsubdivison.min.js rename to src/dist/libs/loopsubdivison.min.js diff --git a/libs/mapControls.min.js b/src/dist/libs/mapControls.min.js similarity index 100% rename from libs/mapControls.min.js rename to src/dist/libs/mapControls.min.js diff --git a/libs/objexporter.min.js b/src/dist/libs/objexporter.min.js similarity index 100% rename from libs/objexporter.min.js rename to src/dist/libs/objexporter.min.js diff --git a/libs/openwidget.min.js b/src/dist/libs/openwidget.min.js similarity index 100% rename from libs/openwidget.min.js rename to src/dist/libs/openwidget.min.js diff --git a/libs/orbitControls.min.js b/src/dist/libs/orbitControls.min.js similarity index 100% rename from libs/orbitControls.min.js rename to src/dist/libs/orbitControls.min.js diff --git a/libs/polylabel.min.js b/src/dist/libs/polylabel.min.js similarity index 100% rename from libs/polylabel.min.js rename to src/dist/libs/polylabel.min.js diff --git a/libs/rgbquant.min.js b/src/dist/libs/rgbquant.min.js similarity index 100% rename from libs/rgbquant.min.js rename to src/dist/libs/rgbquant.min.js diff --git a/libs/simplify.js b/src/dist/libs/simplify.js similarity index 100% rename from libs/simplify.js rename to src/dist/libs/simplify.js diff --git a/libs/three.min.js b/src/dist/libs/three.min.js similarity index 100% rename from libs/three.min.js rename to src/dist/libs/three.min.js diff --git a/libs/tinymce/icons/default/icons.min.js b/src/dist/libs/tinymce/icons/default/icons.min.js similarity index 100% rename from libs/tinymce/icons/default/icons.min.js rename to src/dist/libs/tinymce/icons/default/icons.min.js diff --git a/libs/tinymce/langs/README.md b/src/dist/libs/tinymce/langs/README.md similarity index 100% rename from libs/tinymce/langs/README.md rename to src/dist/libs/tinymce/langs/README.md diff --git a/libs/tinymce/license.md b/src/dist/libs/tinymce/license.md similarity index 100% rename from libs/tinymce/license.md rename to src/dist/libs/tinymce/license.md diff --git a/libs/tinymce/models/dom/model.min.js b/src/dist/libs/tinymce/models/dom/model.min.js similarity index 100% rename from libs/tinymce/models/dom/model.min.js rename to src/dist/libs/tinymce/models/dom/model.min.js diff --git a/libs/tinymce/plugins/accordion/plugin.min.js b/src/dist/libs/tinymce/plugins/accordion/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/accordion/plugin.min.js rename to src/dist/libs/tinymce/plugins/accordion/plugin.min.js diff --git a/libs/tinymce/plugins/advlist/plugin.min.js b/src/dist/libs/tinymce/plugins/advlist/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/advlist/plugin.min.js rename to src/dist/libs/tinymce/plugins/advlist/plugin.min.js diff --git a/libs/tinymce/plugins/anchor/plugin.min.js b/src/dist/libs/tinymce/plugins/anchor/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/anchor/plugin.min.js rename to src/dist/libs/tinymce/plugins/anchor/plugin.min.js diff --git a/libs/tinymce/plugins/autolink/plugin.min.js b/src/dist/libs/tinymce/plugins/autolink/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/autolink/plugin.min.js rename to src/dist/libs/tinymce/plugins/autolink/plugin.min.js diff --git a/libs/tinymce/plugins/autoresize/plugin.min.js b/src/dist/libs/tinymce/plugins/autoresize/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/autoresize/plugin.min.js rename to src/dist/libs/tinymce/plugins/autoresize/plugin.min.js diff --git a/libs/tinymce/plugins/autosave/plugin.min.js b/src/dist/libs/tinymce/plugins/autosave/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/autosave/plugin.min.js rename to src/dist/libs/tinymce/plugins/autosave/plugin.min.js diff --git a/libs/tinymce/plugins/charmap/plugin.min.js b/src/dist/libs/tinymce/plugins/charmap/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/charmap/plugin.min.js rename to src/dist/libs/tinymce/plugins/charmap/plugin.min.js diff --git a/libs/tinymce/plugins/code/plugin.min.js b/src/dist/libs/tinymce/plugins/code/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/code/plugin.min.js rename to src/dist/libs/tinymce/plugins/code/plugin.min.js diff --git a/libs/tinymce/plugins/codesample/plugin.min.js b/src/dist/libs/tinymce/plugins/codesample/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/codesample/plugin.min.js rename to src/dist/libs/tinymce/plugins/codesample/plugin.min.js diff --git a/libs/tinymce/plugins/directionality/plugin.min.js b/src/dist/libs/tinymce/plugins/directionality/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/directionality/plugin.min.js rename to src/dist/libs/tinymce/plugins/directionality/plugin.min.js diff --git a/libs/tinymce/plugins/emoticons/js/emojiimages.js b/src/dist/libs/tinymce/plugins/emoticons/js/emojiimages.js similarity index 100% rename from libs/tinymce/plugins/emoticons/js/emojiimages.js rename to src/dist/libs/tinymce/plugins/emoticons/js/emojiimages.js diff --git a/libs/tinymce/plugins/emoticons/js/emojiimages.min.js b/src/dist/libs/tinymce/plugins/emoticons/js/emojiimages.min.js similarity index 100% rename from libs/tinymce/plugins/emoticons/js/emojiimages.min.js rename to src/dist/libs/tinymce/plugins/emoticons/js/emojiimages.min.js diff --git a/libs/tinymce/plugins/emoticons/js/emojis.js b/src/dist/libs/tinymce/plugins/emoticons/js/emojis.js similarity index 100% rename from libs/tinymce/plugins/emoticons/js/emojis.js rename to src/dist/libs/tinymce/plugins/emoticons/js/emojis.js diff --git a/libs/tinymce/plugins/emoticons/js/emojis.min.js b/src/dist/libs/tinymce/plugins/emoticons/js/emojis.min.js similarity index 100% rename from libs/tinymce/plugins/emoticons/js/emojis.min.js rename to src/dist/libs/tinymce/plugins/emoticons/js/emojis.min.js diff --git a/libs/tinymce/plugins/emoticons/plugin.min.js b/src/dist/libs/tinymce/plugins/emoticons/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/emoticons/plugin.min.js rename to src/dist/libs/tinymce/plugins/emoticons/plugin.min.js diff --git a/libs/tinymce/plugins/fullscreen/plugin.min.js b/src/dist/libs/tinymce/plugins/fullscreen/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/fullscreen/plugin.min.js rename to src/dist/libs/tinymce/plugins/fullscreen/plugin.min.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/ar.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/ar.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/ar.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/ar.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/bg_BG.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/bg_BG.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/bg_BG.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/bg_BG.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/ca.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/ca.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/ca.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/ca.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/cs.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/cs.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/cs.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/cs.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/da.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/da.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/da.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/da.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/de.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/de.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/de.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/de.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/el.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/el.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/el.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/el.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/en.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/en.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/en.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/en.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/es.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/es.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/es.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/es.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/eu.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/eu.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/eu.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/eu.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/fa.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/fa.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/fa.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/fa.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/fi.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/fi.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/fi.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/fi.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/fr_FR.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/fr_FR.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/fr_FR.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/fr_FR.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/he_IL.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/he_IL.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/he_IL.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/he_IL.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/hi.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/hi.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/hi.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/hi.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/hr.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/hr.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/hr.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/hr.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/hu_HU.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/hu_HU.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/hu_HU.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/hu_HU.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/id.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/id.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/id.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/id.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/it.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/it.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/it.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/it.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/ja.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/ja.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/ja.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/ja.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/kk.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/kk.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/kk.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/kk.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/ko_KR.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/ko_KR.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/ko_KR.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/ko_KR.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/ms.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/ms.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/ms.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/ms.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/nb_NO.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/nb_NO.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/nb_NO.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/nb_NO.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/nl.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/nl.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/nl.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/nl.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/pl.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/pl.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/pl.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/pl.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/pt_BR.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/pt_BR.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/pt_BR.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/pt_BR.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/pt_PT.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/pt_PT.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/pt_PT.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/pt_PT.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/ro.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/ro.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/ro.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/ro.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/ru.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/ru.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/ru.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/ru.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/sk.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/sk.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/sk.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/sk.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/sl_SI.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/sl_SI.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/sl_SI.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/sl_SI.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/sv_SE.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/sv_SE.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/sv_SE.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/sv_SE.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/th_TH.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/th_TH.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/th_TH.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/th_TH.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/tr.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/tr.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/tr.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/tr.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/uk.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/uk.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/uk.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/uk.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/vi.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/vi.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/vi.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/vi.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/zh_CN.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/zh_CN.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/zh_CN.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/zh_CN.js diff --git a/libs/tinymce/plugins/help/js/i18n/keynav/zh_TW.js b/src/dist/libs/tinymce/plugins/help/js/i18n/keynav/zh_TW.js similarity index 100% rename from libs/tinymce/plugins/help/js/i18n/keynav/zh_TW.js rename to src/dist/libs/tinymce/plugins/help/js/i18n/keynav/zh_TW.js diff --git a/libs/tinymce/plugins/help/plugin.min.js b/src/dist/libs/tinymce/plugins/help/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/help/plugin.min.js rename to src/dist/libs/tinymce/plugins/help/plugin.min.js diff --git a/libs/tinymce/plugins/image/plugin.min.js b/src/dist/libs/tinymce/plugins/image/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/image/plugin.min.js rename to src/dist/libs/tinymce/plugins/image/plugin.min.js diff --git a/libs/tinymce/plugins/importcss/plugin.min.js b/src/dist/libs/tinymce/plugins/importcss/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/importcss/plugin.min.js rename to src/dist/libs/tinymce/plugins/importcss/plugin.min.js diff --git a/libs/tinymce/plugins/insertdatetime/plugin.min.js b/src/dist/libs/tinymce/plugins/insertdatetime/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/insertdatetime/plugin.min.js rename to src/dist/libs/tinymce/plugins/insertdatetime/plugin.min.js diff --git a/libs/tinymce/plugins/link/plugin.min.js b/src/dist/libs/tinymce/plugins/link/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/link/plugin.min.js rename to src/dist/libs/tinymce/plugins/link/plugin.min.js diff --git a/libs/tinymce/plugins/lists/plugin.min.js b/src/dist/libs/tinymce/plugins/lists/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/lists/plugin.min.js rename to src/dist/libs/tinymce/plugins/lists/plugin.min.js diff --git a/libs/tinymce/plugins/media/plugin.min.js b/src/dist/libs/tinymce/plugins/media/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/media/plugin.min.js rename to src/dist/libs/tinymce/plugins/media/plugin.min.js diff --git a/libs/tinymce/plugins/nonbreaking/plugin.min.js b/src/dist/libs/tinymce/plugins/nonbreaking/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/nonbreaking/plugin.min.js rename to src/dist/libs/tinymce/plugins/nonbreaking/plugin.min.js diff --git a/libs/tinymce/plugins/pagebreak/plugin.min.js b/src/dist/libs/tinymce/plugins/pagebreak/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/pagebreak/plugin.min.js rename to src/dist/libs/tinymce/plugins/pagebreak/plugin.min.js diff --git a/libs/tinymce/plugins/preview/plugin.min.js b/src/dist/libs/tinymce/plugins/preview/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/preview/plugin.min.js rename to src/dist/libs/tinymce/plugins/preview/plugin.min.js diff --git a/libs/tinymce/plugins/quickbars/plugin.min.js b/src/dist/libs/tinymce/plugins/quickbars/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/quickbars/plugin.min.js rename to src/dist/libs/tinymce/plugins/quickbars/plugin.min.js diff --git a/libs/tinymce/plugins/save/plugin.min.js b/src/dist/libs/tinymce/plugins/save/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/save/plugin.min.js rename to src/dist/libs/tinymce/plugins/save/plugin.min.js diff --git a/libs/tinymce/plugins/searchreplace/plugin.min.js b/src/dist/libs/tinymce/plugins/searchreplace/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/searchreplace/plugin.min.js rename to src/dist/libs/tinymce/plugins/searchreplace/plugin.min.js diff --git a/libs/tinymce/plugins/table/plugin.min.js b/src/dist/libs/tinymce/plugins/table/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/table/plugin.min.js rename to src/dist/libs/tinymce/plugins/table/plugin.min.js diff --git a/libs/tinymce/plugins/visualblocks/plugin.min.js b/src/dist/libs/tinymce/plugins/visualblocks/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/visualblocks/plugin.min.js rename to src/dist/libs/tinymce/plugins/visualblocks/plugin.min.js diff --git a/libs/tinymce/plugins/visualchars/plugin.min.js b/src/dist/libs/tinymce/plugins/visualchars/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/visualchars/plugin.min.js rename to src/dist/libs/tinymce/plugins/visualchars/plugin.min.js diff --git a/libs/tinymce/plugins/wordcount/plugin.min.js b/src/dist/libs/tinymce/plugins/wordcount/plugin.min.js similarity index 100% rename from libs/tinymce/plugins/wordcount/plugin.min.js rename to src/dist/libs/tinymce/plugins/wordcount/plugin.min.js diff --git a/libs/tinymce/skins/content/dark/content.js b/src/dist/libs/tinymce/skins/content/dark/content.js similarity index 100% rename from libs/tinymce/skins/content/dark/content.js rename to src/dist/libs/tinymce/skins/content/dark/content.js diff --git a/libs/tinymce/skins/content/dark/content.min.css b/src/dist/libs/tinymce/skins/content/dark/content.min.css similarity index 100% rename from libs/tinymce/skins/content/dark/content.min.css rename to src/dist/libs/tinymce/skins/content/dark/content.min.css diff --git a/libs/tinymce/skins/content/default/content.css b/src/dist/libs/tinymce/skins/content/default/content.css similarity index 100% rename from libs/tinymce/skins/content/default/content.css rename to src/dist/libs/tinymce/skins/content/default/content.css diff --git a/libs/tinymce/skins/content/default/content.js b/src/dist/libs/tinymce/skins/content/default/content.js similarity index 100% rename from libs/tinymce/skins/content/default/content.js rename to src/dist/libs/tinymce/skins/content/default/content.js diff --git a/libs/tinymce/skins/content/document/content.js b/src/dist/libs/tinymce/skins/content/document/content.js similarity index 100% rename from libs/tinymce/skins/content/document/content.js rename to src/dist/libs/tinymce/skins/content/document/content.js diff --git a/libs/tinymce/skins/content/document/content.min.css b/src/dist/libs/tinymce/skins/content/document/content.min.css similarity index 100% rename from libs/tinymce/skins/content/document/content.min.css rename to src/dist/libs/tinymce/skins/content/document/content.min.css diff --git a/libs/tinymce/skins/content/tinymce-5-dark/content.js b/src/dist/libs/tinymce/skins/content/tinymce-5-dark/content.js similarity index 100% rename from libs/tinymce/skins/content/tinymce-5-dark/content.js rename to src/dist/libs/tinymce/skins/content/tinymce-5-dark/content.js diff --git a/libs/tinymce/skins/content/tinymce-5-dark/content.min.css b/src/dist/libs/tinymce/skins/content/tinymce-5-dark/content.min.css similarity index 100% rename from libs/tinymce/skins/content/tinymce-5-dark/content.min.css rename to src/dist/libs/tinymce/skins/content/tinymce-5-dark/content.min.css diff --git a/libs/tinymce/skins/content/tinymce-5/content.js b/src/dist/libs/tinymce/skins/content/tinymce-5/content.js similarity index 100% rename from libs/tinymce/skins/content/tinymce-5/content.js rename to src/dist/libs/tinymce/skins/content/tinymce-5/content.js diff --git a/libs/tinymce/skins/content/tinymce-5/content.min.css b/src/dist/libs/tinymce/skins/content/tinymce-5/content.min.css similarity index 100% rename from libs/tinymce/skins/content/tinymce-5/content.min.css rename to src/dist/libs/tinymce/skins/content/tinymce-5/content.min.css diff --git a/libs/tinymce/skins/content/writer/content.js b/src/dist/libs/tinymce/skins/content/writer/content.js similarity index 100% rename from libs/tinymce/skins/content/writer/content.js rename to src/dist/libs/tinymce/skins/content/writer/content.js diff --git a/libs/tinymce/skins/content/writer/content.min.css b/src/dist/libs/tinymce/skins/content/writer/content.min.css similarity index 100% rename from libs/tinymce/skins/content/writer/content.min.css rename to src/dist/libs/tinymce/skins/content/writer/content.min.css diff --git a/libs/tinymce/skins/ui/oxide-dark/content.inline.js b/src/dist/libs/tinymce/skins/ui/oxide-dark/content.inline.js similarity index 100% rename from libs/tinymce/skins/ui/oxide-dark/content.inline.js rename to src/dist/libs/tinymce/skins/ui/oxide-dark/content.inline.js diff --git a/libs/tinymce/skins/ui/oxide-dark/content.inline.min.css b/src/dist/libs/tinymce/skins/ui/oxide-dark/content.inline.min.css similarity index 100% rename from libs/tinymce/skins/ui/oxide-dark/content.inline.min.css rename to src/dist/libs/tinymce/skins/ui/oxide-dark/content.inline.min.css diff --git a/libs/tinymce/skins/ui/oxide-dark/content.js b/src/dist/libs/tinymce/skins/ui/oxide-dark/content.js similarity index 100% rename from libs/tinymce/skins/ui/oxide-dark/content.js rename to src/dist/libs/tinymce/skins/ui/oxide-dark/content.js diff --git a/libs/tinymce/skins/ui/oxide-dark/content.min.css b/src/dist/libs/tinymce/skins/ui/oxide-dark/content.min.css similarity index 100% rename from libs/tinymce/skins/ui/oxide-dark/content.min.css rename to src/dist/libs/tinymce/skins/ui/oxide-dark/content.min.css diff --git a/libs/tinymce/skins/ui/oxide-dark/skin.js b/src/dist/libs/tinymce/skins/ui/oxide-dark/skin.js similarity index 100% rename from libs/tinymce/skins/ui/oxide-dark/skin.js rename to src/dist/libs/tinymce/skins/ui/oxide-dark/skin.js diff --git a/libs/tinymce/skins/ui/oxide-dark/skin.min.css b/src/dist/libs/tinymce/skins/ui/oxide-dark/skin.min.css similarity index 100% rename from libs/tinymce/skins/ui/oxide-dark/skin.min.css rename to src/dist/libs/tinymce/skins/ui/oxide-dark/skin.min.css diff --git a/libs/tinymce/skins/ui/oxide-dark/skin.shadowdom.js b/src/dist/libs/tinymce/skins/ui/oxide-dark/skin.shadowdom.js similarity index 100% rename from libs/tinymce/skins/ui/oxide-dark/skin.shadowdom.js rename to src/dist/libs/tinymce/skins/ui/oxide-dark/skin.shadowdom.js diff --git a/libs/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css b/src/dist/libs/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css similarity index 100% rename from libs/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css rename to src/dist/libs/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css diff --git a/libs/tinymce/skins/ui/oxide/content.css b/src/dist/libs/tinymce/skins/ui/oxide/content.css similarity index 100% rename from libs/tinymce/skins/ui/oxide/content.css rename to src/dist/libs/tinymce/skins/ui/oxide/content.css diff --git a/libs/tinymce/skins/ui/oxide/content.inline.css b/src/dist/libs/tinymce/skins/ui/oxide/content.inline.css similarity index 100% rename from libs/tinymce/skins/ui/oxide/content.inline.css rename to src/dist/libs/tinymce/skins/ui/oxide/content.inline.css diff --git a/libs/tinymce/skins/ui/oxide/content.inline.js b/src/dist/libs/tinymce/skins/ui/oxide/content.inline.js similarity index 100% rename from libs/tinymce/skins/ui/oxide/content.inline.js rename to src/dist/libs/tinymce/skins/ui/oxide/content.inline.js diff --git a/libs/tinymce/skins/ui/oxide/content.js b/src/dist/libs/tinymce/skins/ui/oxide/content.js similarity index 100% rename from libs/tinymce/skins/ui/oxide/content.js rename to src/dist/libs/tinymce/skins/ui/oxide/content.js diff --git a/libs/tinymce/skins/ui/oxide/skin.css b/src/dist/libs/tinymce/skins/ui/oxide/skin.css similarity index 100% rename from libs/tinymce/skins/ui/oxide/skin.css rename to src/dist/libs/tinymce/skins/ui/oxide/skin.css diff --git a/libs/tinymce/skins/ui/oxide/skin.js b/src/dist/libs/tinymce/skins/ui/oxide/skin.js similarity index 100% rename from libs/tinymce/skins/ui/oxide/skin.js rename to src/dist/libs/tinymce/skins/ui/oxide/skin.js diff --git a/libs/tinymce/skins/ui/oxide/skin.shadowdom.css b/src/dist/libs/tinymce/skins/ui/oxide/skin.shadowdom.css similarity index 100% rename from libs/tinymce/skins/ui/oxide/skin.shadowdom.css rename to src/dist/libs/tinymce/skins/ui/oxide/skin.shadowdom.css diff --git a/libs/tinymce/skins/ui/oxide/skin.shadowdom.js b/src/dist/libs/tinymce/skins/ui/oxide/skin.shadowdom.js similarity index 100% rename from libs/tinymce/skins/ui/oxide/skin.shadowdom.js rename to src/dist/libs/tinymce/skins/ui/oxide/skin.shadowdom.js diff --git a/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.js b/src/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.js similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5-dark/content.inline.js rename to src/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.js diff --git a/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css b/src/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css rename to src/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css diff --git a/libs/tinymce/skins/ui/tinymce-5-dark/content.js b/src/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.js similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5-dark/content.js rename to src/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.js diff --git a/libs/tinymce/skins/ui/tinymce-5-dark/content.min.css b/src/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.min.css similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5-dark/content.min.css rename to src/dist/libs/tinymce/skins/ui/tinymce-5-dark/content.min.css diff --git a/libs/tinymce/skins/ui/tinymce-5-dark/skin.js b/src/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.js similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5-dark/skin.js rename to src/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.js diff --git a/libs/tinymce/skins/ui/tinymce-5-dark/skin.min.css b/src/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.min.css similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5-dark/skin.min.css rename to src/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.min.css diff --git a/libs/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js b/src/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js rename to src/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js diff --git a/libs/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css b/src/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css rename to src/dist/libs/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css diff --git a/libs/tinymce/skins/ui/tinymce-5/content.inline.js b/src/dist/libs/tinymce/skins/ui/tinymce-5/content.inline.js similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5/content.inline.js rename to src/dist/libs/tinymce/skins/ui/tinymce-5/content.inline.js diff --git a/libs/tinymce/skins/ui/tinymce-5/content.inline.min.css b/src/dist/libs/tinymce/skins/ui/tinymce-5/content.inline.min.css similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5/content.inline.min.css rename to src/dist/libs/tinymce/skins/ui/tinymce-5/content.inline.min.css diff --git a/libs/tinymce/skins/ui/tinymce-5/content.js b/src/dist/libs/tinymce/skins/ui/tinymce-5/content.js similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5/content.js rename to src/dist/libs/tinymce/skins/ui/tinymce-5/content.js diff --git a/libs/tinymce/skins/ui/tinymce-5/content.min.css b/src/dist/libs/tinymce/skins/ui/tinymce-5/content.min.css similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5/content.min.css rename to src/dist/libs/tinymce/skins/ui/tinymce-5/content.min.css diff --git a/libs/tinymce/skins/ui/tinymce-5/skin.js b/src/dist/libs/tinymce/skins/ui/tinymce-5/skin.js similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5/skin.js rename to src/dist/libs/tinymce/skins/ui/tinymce-5/skin.js diff --git a/libs/tinymce/skins/ui/tinymce-5/skin.min.css b/src/dist/libs/tinymce/skins/ui/tinymce-5/skin.min.css similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5/skin.min.css rename to src/dist/libs/tinymce/skins/ui/tinymce-5/skin.min.css diff --git a/libs/tinymce/skins/ui/tinymce-5/skin.shadowdom.js b/src/dist/libs/tinymce/skins/ui/tinymce-5/skin.shadowdom.js similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5/skin.shadowdom.js rename to src/dist/libs/tinymce/skins/ui/tinymce-5/skin.shadowdom.js diff --git a/libs/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css b/src/dist/libs/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css similarity index 100% rename from libs/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css rename to src/dist/libs/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css diff --git a/libs/tinymce/themes/silver/theme.min.js b/src/dist/libs/tinymce/themes/silver/theme.min.js similarity index 100% rename from libs/tinymce/themes/silver/theme.min.js rename to src/dist/libs/tinymce/themes/silver/theme.min.js diff --git a/libs/tinymce/tinymce.d.ts b/src/dist/libs/tinymce/tinymce.d.ts similarity index 100% rename from libs/tinymce/tinymce.d.ts rename to src/dist/libs/tinymce/tinymce.d.ts diff --git a/libs/tinymce/tinymce.min.js b/src/dist/libs/tinymce/tinymce.min.js similarity index 100% rename from libs/tinymce/tinymce.min.js rename to src/dist/libs/tinymce/tinymce.min.js diff --git a/libs/umami.js b/src/dist/libs/umami.js similarity index 100% rename from libs/umami.js rename to src/dist/libs/umami.js diff --git a/main.js b/src/dist/main.js similarity index 100% rename from main.js rename to src/dist/main.js diff --git a/modules/biomes.js b/src/dist/modules/biomes.js similarity index 100% rename from modules/biomes.js rename to src/dist/modules/biomes.js diff --git a/modules/burgs-generator.js b/src/dist/modules/burgs-generator.js similarity index 100% rename from modules/burgs-generator.js rename to src/dist/modules/burgs-generator.js diff --git a/modules/coa-generator.js b/src/dist/modules/coa-generator.js similarity index 100% rename from modules/coa-generator.js rename to src/dist/modules/coa-generator.js diff --git a/modules/coa-renderer.js b/src/dist/modules/coa-renderer.js similarity index 100% rename from modules/coa-renderer.js rename to src/dist/modules/coa-renderer.js diff --git a/modules/cultures-generator.js b/src/dist/modules/cultures-generator.js similarity index 100% rename from modules/cultures-generator.js rename to src/dist/modules/cultures-generator.js diff --git a/modules/dynamic/auto-update.js b/src/dist/modules/dynamic/auto-update.js similarity index 100% rename from modules/dynamic/auto-update.js rename to src/dist/modules/dynamic/auto-update.js diff --git a/modules/dynamic/editors/cultures-editor.js b/src/dist/modules/dynamic/editors/cultures-editor.js similarity index 100% rename from modules/dynamic/editors/cultures-editor.js rename to src/dist/modules/dynamic/editors/cultures-editor.js diff --git a/modules/dynamic/editors/religions-editor.js b/src/dist/modules/dynamic/editors/religions-editor.js similarity index 100% rename from modules/dynamic/editors/religions-editor.js rename to src/dist/modules/dynamic/editors/religions-editor.js diff --git a/modules/dynamic/editors/states-editor.js b/src/dist/modules/dynamic/editors/states-editor.js similarity index 100% rename from modules/dynamic/editors/states-editor.js rename to src/dist/modules/dynamic/editors/states-editor.js diff --git a/modules/dynamic/export-json.js b/src/dist/modules/dynamic/export-json.js similarity index 100% rename from modules/dynamic/export-json.js rename to src/dist/modules/dynamic/export-json.js diff --git a/modules/dynamic/heightmap-selection.js b/src/dist/modules/dynamic/heightmap-selection.js similarity index 100% rename from modules/dynamic/heightmap-selection.js rename to src/dist/modules/dynamic/heightmap-selection.js diff --git a/modules/dynamic/hierarchy-tree.js b/src/dist/modules/dynamic/hierarchy-tree.js similarity index 100% rename from modules/dynamic/hierarchy-tree.js rename to src/dist/modules/dynamic/hierarchy-tree.js diff --git a/modules/dynamic/installation.js b/src/dist/modules/dynamic/installation.js similarity index 100% rename from modules/dynamic/installation.js rename to src/dist/modules/dynamic/installation.js diff --git a/modules/dynamic/overview/charts-overview.js b/src/dist/modules/dynamic/overview/charts-overview.js similarity index 100% rename from modules/dynamic/overview/charts-overview.js rename to src/dist/modules/dynamic/overview/charts-overview.js diff --git a/modules/dynamic/supporters.js b/src/dist/modules/dynamic/supporters.js similarity index 100% rename from modules/dynamic/supporters.js rename to src/dist/modules/dynamic/supporters.js diff --git a/modules/features.js b/src/dist/modules/features.js similarity index 100% rename from modules/features.js rename to src/dist/modules/features.js diff --git a/modules/fonts.js b/src/dist/modules/fonts.js similarity index 100% rename from modules/fonts.js rename to src/dist/modules/fonts.js diff --git a/modules/heightmap-generator.js b/src/dist/modules/heightmap-generator.js similarity index 100% rename from modules/heightmap-generator.js rename to src/dist/modules/heightmap-generator.js diff --git a/modules/io/cloud.js b/src/dist/modules/io/cloud.js similarity index 100% rename from modules/io/cloud.js rename to src/dist/modules/io/cloud.js diff --git a/modules/io/export.js b/src/dist/modules/io/export.js similarity index 100% rename from modules/io/export.js rename to src/dist/modules/io/export.js diff --git a/modules/io/load.js b/src/dist/modules/io/load.js similarity index 100% rename from modules/io/load.js rename to src/dist/modules/io/load.js diff --git a/modules/io/save.js b/src/dist/modules/io/save.js similarity index 100% rename from modules/io/save.js rename to src/dist/modules/io/save.js diff --git a/modules/lakes.js b/src/dist/modules/lakes.js similarity index 100% rename from modules/lakes.js rename to src/dist/modules/lakes.js diff --git a/modules/markers-generator.js b/src/dist/modules/markers-generator.js similarity index 100% rename from modules/markers-generator.js rename to src/dist/modules/markers-generator.js diff --git a/modules/military-generator.js b/src/dist/modules/military-generator.js similarity index 100% rename from modules/military-generator.js rename to src/dist/modules/military-generator.js diff --git a/modules/names-generator.js b/src/dist/modules/names-generator.js similarity index 100% rename from modules/names-generator.js rename to src/dist/modules/names-generator.js diff --git a/modules/ocean-layers.js b/src/dist/modules/ocean-layers.js similarity index 100% rename from modules/ocean-layers.js rename to src/dist/modules/ocean-layers.js diff --git a/modules/provinces-generator.js b/src/dist/modules/provinces-generator.js similarity index 100% rename from modules/provinces-generator.js rename to src/dist/modules/provinces-generator.js diff --git a/modules/religions-generator.js b/src/dist/modules/religions-generator.js similarity index 100% rename from modules/religions-generator.js rename to src/dist/modules/religions-generator.js diff --git a/modules/renderers/draw-borders.js b/src/dist/modules/renderers/draw-borders.js similarity index 100% rename from modules/renderers/draw-borders.js rename to src/dist/modules/renderers/draw-borders.js diff --git a/modules/renderers/draw-burg-icons.js b/src/dist/modules/renderers/draw-burg-icons.js similarity index 100% rename from modules/renderers/draw-burg-icons.js rename to src/dist/modules/renderers/draw-burg-icons.js diff --git a/modules/renderers/draw-burg-labels.js b/src/dist/modules/renderers/draw-burg-labels.js similarity index 100% rename from modules/renderers/draw-burg-labels.js rename to src/dist/modules/renderers/draw-burg-labels.js diff --git a/modules/renderers/draw-emblems.js b/src/dist/modules/renderers/draw-emblems.js similarity index 100% rename from modules/renderers/draw-emblems.js rename to src/dist/modules/renderers/draw-emblems.js diff --git a/modules/renderers/draw-features.js b/src/dist/modules/renderers/draw-features.js similarity index 100% rename from modules/renderers/draw-features.js rename to src/dist/modules/renderers/draw-features.js diff --git a/modules/renderers/draw-heightmap.js b/src/dist/modules/renderers/draw-heightmap.js similarity index 100% rename from modules/renderers/draw-heightmap.js rename to src/dist/modules/renderers/draw-heightmap.js diff --git a/modules/renderers/draw-markers.js b/src/dist/modules/renderers/draw-markers.js similarity index 100% rename from modules/renderers/draw-markers.js rename to src/dist/modules/renderers/draw-markers.js diff --git a/modules/renderers/draw-military.js b/src/dist/modules/renderers/draw-military.js similarity index 100% rename from modules/renderers/draw-military.js rename to src/dist/modules/renderers/draw-military.js diff --git a/modules/renderers/draw-relief-icons.js b/src/dist/modules/renderers/draw-relief-icons.js similarity index 100% rename from modules/renderers/draw-relief-icons.js rename to src/dist/modules/renderers/draw-relief-icons.js diff --git a/modules/renderers/draw-scalebar.js b/src/dist/modules/renderers/draw-scalebar.js similarity index 100% rename from modules/renderers/draw-scalebar.js rename to src/dist/modules/renderers/draw-scalebar.js diff --git a/modules/renderers/draw-state-labels.js b/src/dist/modules/renderers/draw-state-labels.js similarity index 100% rename from modules/renderers/draw-state-labels.js rename to src/dist/modules/renderers/draw-state-labels.js diff --git a/modules/renderers/draw-temperature.js b/src/dist/modules/renderers/draw-temperature.js similarity index 100% rename from modules/renderers/draw-temperature.js rename to src/dist/modules/renderers/draw-temperature.js diff --git a/modules/resample.js b/src/dist/modules/resample.js similarity index 100% rename from modules/resample.js rename to src/dist/modules/resample.js diff --git a/modules/river-generator.js b/src/dist/modules/river-generator.js similarity index 100% rename from modules/river-generator.js rename to src/dist/modules/river-generator.js diff --git a/modules/routes-generator.js b/src/dist/modules/routes-generator.js similarity index 100% rename from modules/routes-generator.js rename to src/dist/modules/routes-generator.js diff --git a/modules/states-generator.js b/src/dist/modules/states-generator.js similarity index 100% rename from modules/states-generator.js rename to src/dist/modules/states-generator.js diff --git a/modules/submap.js b/src/dist/modules/submap.js similarity index 100% rename from modules/submap.js rename to src/dist/modules/submap.js diff --git a/modules/ui/3d.js b/src/dist/modules/ui/3d.js similarity index 100% rename from modules/ui/3d.js rename to src/dist/modules/ui/3d.js diff --git a/modules/ui/ai-generator.js b/src/dist/modules/ui/ai-generator.js similarity index 100% rename from modules/ui/ai-generator.js rename to src/dist/modules/ui/ai-generator.js diff --git a/modules/ui/battle-screen.js b/src/dist/modules/ui/battle-screen.js similarity index 100% rename from modules/ui/battle-screen.js rename to src/dist/modules/ui/battle-screen.js diff --git a/modules/ui/biomes-editor.js b/src/dist/modules/ui/biomes-editor.js similarity index 100% rename from modules/ui/biomes-editor.js rename to src/dist/modules/ui/biomes-editor.js diff --git a/modules/ui/burg-editor.js b/src/dist/modules/ui/burg-editor.js similarity index 100% rename from modules/ui/burg-editor.js rename to src/dist/modules/ui/burg-editor.js diff --git a/modules/ui/burg-group-editor.js b/src/dist/modules/ui/burg-group-editor.js similarity index 100% rename from modules/ui/burg-group-editor.js rename to src/dist/modules/ui/burg-group-editor.js diff --git a/modules/ui/burgs-overview.js b/src/dist/modules/ui/burgs-overview.js similarity index 100% rename from modules/ui/burgs-overview.js rename to src/dist/modules/ui/burgs-overview.js diff --git a/modules/ui/coastline-editor.js b/src/dist/modules/ui/coastline-editor.js similarity index 100% rename from modules/ui/coastline-editor.js rename to src/dist/modules/ui/coastline-editor.js diff --git a/modules/ui/diplomacy-editor.js b/src/dist/modules/ui/diplomacy-editor.js similarity index 100% rename from modules/ui/diplomacy-editor.js rename to src/dist/modules/ui/diplomacy-editor.js diff --git a/modules/ui/editors.js b/src/dist/modules/ui/editors.js similarity index 100% rename from modules/ui/editors.js rename to src/dist/modules/ui/editors.js diff --git a/modules/ui/elevation-profile.js b/src/dist/modules/ui/elevation-profile.js similarity index 100% rename from modules/ui/elevation-profile.js rename to src/dist/modules/ui/elevation-profile.js diff --git a/modules/ui/emblems-editor.js b/src/dist/modules/ui/emblems-editor.js similarity index 100% rename from modules/ui/emblems-editor.js rename to src/dist/modules/ui/emblems-editor.js diff --git a/modules/ui/general.js b/src/dist/modules/ui/general.js similarity index 100% rename from modules/ui/general.js rename to src/dist/modules/ui/general.js diff --git a/modules/ui/heightmap-editor.js b/src/dist/modules/ui/heightmap-editor.js similarity index 100% rename from modules/ui/heightmap-editor.js rename to src/dist/modules/ui/heightmap-editor.js diff --git a/modules/ui/hotkeys.js b/src/dist/modules/ui/hotkeys.js similarity index 100% rename from modules/ui/hotkeys.js rename to src/dist/modules/ui/hotkeys.js diff --git a/modules/ui/ice-editor.js b/src/dist/modules/ui/ice-editor.js similarity index 100% rename from modules/ui/ice-editor.js rename to src/dist/modules/ui/ice-editor.js diff --git a/modules/ui/labels-editor.js b/src/dist/modules/ui/labels-editor.js similarity index 100% rename from modules/ui/labels-editor.js rename to src/dist/modules/ui/labels-editor.js diff --git a/modules/ui/lakes-editor.js b/src/dist/modules/ui/lakes-editor.js similarity index 100% rename from modules/ui/lakes-editor.js rename to src/dist/modules/ui/lakes-editor.js diff --git a/modules/ui/layers.js b/src/dist/modules/ui/layers.js similarity index 100% rename from modules/ui/layers.js rename to src/dist/modules/ui/layers.js diff --git a/modules/ui/markers-editor.js b/src/dist/modules/ui/markers-editor.js similarity index 100% rename from modules/ui/markers-editor.js rename to src/dist/modules/ui/markers-editor.js diff --git a/modules/ui/markers-overview.js b/src/dist/modules/ui/markers-overview.js similarity index 100% rename from modules/ui/markers-overview.js rename to src/dist/modules/ui/markers-overview.js diff --git a/modules/ui/measurers.js b/src/dist/modules/ui/measurers.js similarity index 100% rename from modules/ui/measurers.js rename to src/dist/modules/ui/measurers.js diff --git a/modules/ui/military-overview.js b/src/dist/modules/ui/military-overview.js similarity index 100% rename from modules/ui/military-overview.js rename to src/dist/modules/ui/military-overview.js diff --git a/modules/ui/namesbase-editor.js b/src/dist/modules/ui/namesbase-editor.js similarity index 100% rename from modules/ui/namesbase-editor.js rename to src/dist/modules/ui/namesbase-editor.js diff --git a/modules/ui/notes-editor.js b/src/dist/modules/ui/notes-editor.js similarity index 100% rename from modules/ui/notes-editor.js rename to src/dist/modules/ui/notes-editor.js diff --git a/modules/ui/options.js b/src/dist/modules/ui/options.js similarity index 100% rename from modules/ui/options.js rename to src/dist/modules/ui/options.js diff --git a/modules/ui/provinces-editor.js b/src/dist/modules/ui/provinces-editor.js similarity index 100% rename from modules/ui/provinces-editor.js rename to src/dist/modules/ui/provinces-editor.js diff --git a/modules/ui/regiment-editor.js b/src/dist/modules/ui/regiment-editor.js similarity index 100% rename from modules/ui/regiment-editor.js rename to src/dist/modules/ui/regiment-editor.js diff --git a/modules/ui/regiments-overview.js b/src/dist/modules/ui/regiments-overview.js similarity index 100% rename from modules/ui/regiments-overview.js rename to src/dist/modules/ui/regiments-overview.js diff --git a/modules/ui/relief-editor.js b/src/dist/modules/ui/relief-editor.js similarity index 100% rename from modules/ui/relief-editor.js rename to src/dist/modules/ui/relief-editor.js diff --git a/modules/ui/rivers-creator.js b/src/dist/modules/ui/rivers-creator.js similarity index 100% rename from modules/ui/rivers-creator.js rename to src/dist/modules/ui/rivers-creator.js diff --git a/modules/ui/rivers-editor.js b/src/dist/modules/ui/rivers-editor.js similarity index 100% rename from modules/ui/rivers-editor.js rename to src/dist/modules/ui/rivers-editor.js diff --git a/modules/ui/rivers-overview.js b/src/dist/modules/ui/rivers-overview.js similarity index 100% rename from modules/ui/rivers-overview.js rename to src/dist/modules/ui/rivers-overview.js diff --git a/modules/ui/route-group-editor.js b/src/dist/modules/ui/route-group-editor.js similarity index 100% rename from modules/ui/route-group-editor.js rename to src/dist/modules/ui/route-group-editor.js diff --git a/modules/ui/routes-creator.js b/src/dist/modules/ui/routes-creator.js similarity index 100% rename from modules/ui/routes-creator.js rename to src/dist/modules/ui/routes-creator.js diff --git a/modules/ui/routes-editor.js b/src/dist/modules/ui/routes-editor.js similarity index 100% rename from modules/ui/routes-editor.js rename to src/dist/modules/ui/routes-editor.js diff --git a/modules/ui/routes-overview.js b/src/dist/modules/ui/routes-overview.js similarity index 100% rename from modules/ui/routes-overview.js rename to src/dist/modules/ui/routes-overview.js diff --git a/modules/ui/style-presets.js b/src/dist/modules/ui/style-presets.js similarity index 100% rename from modules/ui/style-presets.js rename to src/dist/modules/ui/style-presets.js diff --git a/modules/ui/style.js b/src/dist/modules/ui/style.js similarity index 100% rename from modules/ui/style.js rename to src/dist/modules/ui/style.js diff --git a/modules/ui/submap-tool.js b/src/dist/modules/ui/submap-tool.js similarity index 100% rename from modules/ui/submap-tool.js rename to src/dist/modules/ui/submap-tool.js diff --git a/modules/ui/temperature-graph.js b/src/dist/modules/ui/temperature-graph.js similarity index 100% rename from modules/ui/temperature-graph.js rename to src/dist/modules/ui/temperature-graph.js diff --git a/modules/ui/tools.js b/src/dist/modules/ui/tools.js similarity index 100% rename from modules/ui/tools.js rename to src/dist/modules/ui/tools.js diff --git a/modules/ui/transform-tool.js b/src/dist/modules/ui/transform-tool.js similarity index 100% rename from modules/ui/transform-tool.js rename to src/dist/modules/ui/transform-tool.js diff --git a/modules/ui/units-editor.js b/src/dist/modules/ui/units-editor.js similarity index 100% rename from modules/ui/units-editor.js rename to src/dist/modules/ui/units-editor.js diff --git a/modules/ui/world-configurator.js b/src/dist/modules/ui/world-configurator.js similarity index 100% rename from modules/ui/world-configurator.js rename to src/dist/modules/ui/world-configurator.js diff --git a/modules/ui/zones-editor.js b/src/dist/modules/ui/zones-editor.js similarity index 100% rename from modules/ui/zones-editor.js rename to src/dist/modules/ui/zones-editor.js diff --git a/modules/voronoi.js b/src/dist/modules/voronoi.js similarity index 100% rename from modules/voronoi.js rename to src/dist/modules/voronoi.js diff --git a/modules/zones-generator.js b/src/dist/modules/zones-generator.js similarity index 100% rename from modules/zones-generator.js rename to src/dist/modules/zones-generator.js diff --git a/styles/ancient.json b/src/dist/styles/ancient.json similarity index 100% rename from styles/ancient.json rename to src/dist/styles/ancient.json diff --git a/styles/atlas.json b/src/dist/styles/atlas.json similarity index 100% rename from styles/atlas.json rename to src/dist/styles/atlas.json diff --git a/styles/clean.json b/src/dist/styles/clean.json similarity index 100% rename from styles/clean.json rename to src/dist/styles/clean.json diff --git a/styles/cyberpunk.json b/src/dist/styles/cyberpunk.json similarity index 100% rename from styles/cyberpunk.json rename to src/dist/styles/cyberpunk.json diff --git a/styles/darkSeas.json b/src/dist/styles/darkSeas.json similarity index 100% rename from styles/darkSeas.json rename to src/dist/styles/darkSeas.json diff --git a/styles/default.json b/src/dist/styles/default.json similarity index 100% rename from styles/default.json rename to src/dist/styles/default.json diff --git a/styles/gloom.json b/src/dist/styles/gloom.json similarity index 100% rename from styles/gloom.json rename to src/dist/styles/gloom.json diff --git a/styles/light.json b/src/dist/styles/light.json similarity index 100% rename from styles/light.json rename to src/dist/styles/light.json diff --git a/styles/monochrome.json b/src/dist/styles/monochrome.json similarity index 100% rename from styles/monochrome.json rename to src/dist/styles/monochrome.json diff --git a/styles/night.json b/src/dist/styles/night.json similarity index 100% rename from styles/night.json rename to src/dist/styles/night.json diff --git a/styles/pale.json b/src/dist/styles/pale.json similarity index 100% rename from styles/pale.json rename to src/dist/styles/pale.json diff --git a/styles/watercolor.json b/src/dist/styles/watercolor.json similarity index 100% rename from styles/watercolor.json rename to src/dist/styles/watercolor.json diff --git a/utils/arrayUtils.js b/src/dist/utils/arrayUtils.js similarity index 100% rename from utils/arrayUtils.js rename to src/dist/utils/arrayUtils.js diff --git a/utils/colorUtils.js b/src/dist/utils/colorUtils.js similarity index 100% rename from utils/colorUtils.js rename to src/dist/utils/colorUtils.js diff --git a/utils/commonUtils.js b/src/dist/utils/commonUtils.js similarity index 100% rename from utils/commonUtils.js rename to src/dist/utils/commonUtils.js diff --git a/utils/debugUtils.js b/src/dist/utils/debugUtils.js similarity index 100% rename from utils/debugUtils.js rename to src/dist/utils/debugUtils.js diff --git a/utils/functionUtils.js b/src/dist/utils/functionUtils.js similarity index 100% rename from utils/functionUtils.js rename to src/dist/utils/functionUtils.js diff --git a/utils/graphUtils.js b/src/dist/utils/graphUtils.js similarity index 100% rename from utils/graphUtils.js rename to src/dist/utils/graphUtils.js diff --git a/utils/languageUtils.js b/src/dist/utils/languageUtils.js similarity index 100% rename from utils/languageUtils.js rename to src/dist/utils/languageUtils.js diff --git a/utils/nodeUtils.js b/src/dist/utils/nodeUtils.js similarity index 100% rename from utils/nodeUtils.js rename to src/dist/utils/nodeUtils.js diff --git a/utils/numberUtils.js b/src/dist/utils/numberUtils.js similarity index 100% rename from utils/numberUtils.js rename to src/dist/utils/numberUtils.js diff --git a/utils/pathUtils.js b/src/dist/utils/pathUtils.js similarity index 100% rename from utils/pathUtils.js rename to src/dist/utils/pathUtils.js diff --git a/utils/polyfills.js b/src/dist/utils/polyfills.js similarity index 100% rename from utils/polyfills.js rename to src/dist/utils/polyfills.js diff --git a/utils/probabilityUtils.js b/src/dist/utils/probabilityUtils.js similarity index 100% rename from utils/probabilityUtils.js rename to src/dist/utils/probabilityUtils.js diff --git a/utils/shorthands.js b/src/dist/utils/shorthands.js similarity index 100% rename from utils/shorthands.js rename to src/dist/utils/shorthands.js diff --git a/utils/stringUtils.js b/src/dist/utils/stringUtils.js similarity index 100% rename from utils/stringUtils.js rename to src/dist/utils/stringUtils.js diff --git a/utils/unitUtils.js b/src/dist/utils/unitUtils.js similarity index 100% rename from utils/unitUtils.js rename to src/dist/utils/unitUtils.js diff --git a/src/dropbox.html b/src/dropbox.html new file mode 100644 index 00000000..cd1921da --- /dev/null +++ b/src/dropbox.html @@ -0,0 +1,48 @@ + + + + + + FMG Dropbox Auth + + + + + diff --git a/src/heightmaps/africa-centric.png b/src/heightmaps/africa-centric.png new file mode 100644 index 00000000..02e4a311 Binary files /dev/null and b/src/heightmaps/africa-centric.png differ diff --git a/src/heightmaps/arabia.png b/src/heightmaps/arabia.png new file mode 100644 index 00000000..27946711 Binary files /dev/null and b/src/heightmaps/arabia.png differ diff --git a/src/heightmaps/atlantics.png b/src/heightmaps/atlantics.png new file mode 100644 index 00000000..be123705 Binary files /dev/null and b/src/heightmaps/atlantics.png differ diff --git a/src/heightmaps/britain.png b/src/heightmaps/britain.png new file mode 100644 index 00000000..60e08da4 Binary files /dev/null and b/src/heightmaps/britain.png differ diff --git a/src/heightmaps/caribbean.png b/src/heightmaps/caribbean.png new file mode 100644 index 00000000..e4a8ed05 Binary files /dev/null and b/src/heightmaps/caribbean.png differ diff --git a/src/heightmaps/east-asia.png b/src/heightmaps/east-asia.png new file mode 100644 index 00000000..41144db5 Binary files /dev/null and b/src/heightmaps/east-asia.png differ diff --git a/src/heightmaps/eurasia.png b/src/heightmaps/eurasia.png new file mode 100644 index 00000000..bdbdb4d7 Binary files /dev/null and b/src/heightmaps/eurasia.png differ diff --git a/src/heightmaps/europe-accented.png b/src/heightmaps/europe-accented.png new file mode 100644 index 00000000..9be9480e Binary files /dev/null and b/src/heightmaps/europe-accented.png differ diff --git a/src/heightmaps/europe-and-central-asia.png b/src/heightmaps/europe-and-central-asia.png new file mode 100644 index 00000000..c23e97ed Binary files /dev/null and b/src/heightmaps/europe-and-central-asia.png differ diff --git a/src/heightmaps/europe-central.png b/src/heightmaps/europe-central.png new file mode 100644 index 00000000..b220f546 Binary files /dev/null and b/src/heightmaps/europe-central.png differ diff --git a/src/heightmaps/europe-north.png b/src/heightmaps/europe-north.png new file mode 100644 index 00000000..1bb49184 Binary files /dev/null and b/src/heightmaps/europe-north.png differ diff --git a/src/heightmaps/europe.png b/src/heightmaps/europe.png new file mode 100644 index 00000000..59dfdfea Binary files /dev/null and b/src/heightmaps/europe.png differ diff --git a/src/heightmaps/greenland.png b/src/heightmaps/greenland.png new file mode 100644 index 00000000..3136c539 Binary files /dev/null and b/src/heightmaps/greenland.png differ diff --git a/src/heightmaps/hellenica.png b/src/heightmaps/hellenica.png new file mode 100644 index 00000000..2681d6ec Binary files /dev/null and b/src/heightmaps/hellenica.png differ diff --git a/src/heightmaps/iceland.png b/src/heightmaps/iceland.png new file mode 100644 index 00000000..88463158 Binary files /dev/null and b/src/heightmaps/iceland.png differ diff --git a/src/heightmaps/import-rules.txt b/src/heightmaps/import-rules.txt new file mode 100644 index 00000000..69499114 --- /dev/null +++ b/src/heightmaps/import-rules.txt @@ -0,0 +1,8 @@ +To get heightmap with correct height scale: +1. Open https://tangrams.github.io/heightmapper +2. Toggle off auto-exposure +3. Set max elevation to 2000 +4. Set min elevation to -500 +5. Find region you like +6. Render image +7. Optionally rescale image to a smaller size (e.g. 500x300px) as high resolution is not used diff --git a/src/heightmaps/indian-ocean.png b/src/heightmaps/indian-ocean.png new file mode 100644 index 00000000..860ca952 Binary files /dev/null and b/src/heightmaps/indian-ocean.png differ diff --git a/src/heightmaps/mediterranean-sea.png b/src/heightmaps/mediterranean-sea.png new file mode 100644 index 00000000..6a7c8bb3 Binary files /dev/null and b/src/heightmaps/mediterranean-sea.png differ diff --git a/src/heightmaps/middle-east.png b/src/heightmaps/middle-east.png new file mode 100644 index 00000000..bfcc55bb Binary files /dev/null and b/src/heightmaps/middle-east.png differ diff --git a/src/heightmaps/north-america.png b/src/heightmaps/north-america.png new file mode 100644 index 00000000..1c1f1ad5 Binary files /dev/null and b/src/heightmaps/north-america.png differ diff --git a/src/heightmaps/us-centric.png b/src/heightmaps/us-centric.png new file mode 100644 index 00000000..7094df6a Binary files /dev/null and b/src/heightmaps/us-centric.png differ diff --git a/src/heightmaps/us-mainland.png b/src/heightmaps/us-mainland.png new file mode 100644 index 00000000..3b1984e7 Binary files /dev/null and b/src/heightmaps/us-mainland.png differ diff --git a/src/heightmaps/world-from-pacific.png b/src/heightmaps/world-from-pacific.png new file mode 100644 index 00000000..02043165 Binary files /dev/null and b/src/heightmaps/world-from-pacific.png differ diff --git a/src/heightmaps/world.png b/src/heightmaps/world.png new file mode 100644 index 00000000..22a79298 Binary files /dev/null and b/src/heightmaps/world.png differ diff --git a/src/icons.css b/src/icons.css new file mode 100644 index 00000000..4740f091 --- /dev/null +++ b/src/icons.css @@ -0,0 +1,290 @@ +/* FontAwesome icons, see license https://github.com/FortAwesome/Font-Awesome/blob/master/LICENSE.txt */ +@font-face { + font-family: 'icons'; + src: url('data:application/font-woff2;base64,d09GMgABAAAAAIPAAA8AAAABD/wAAINlAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGVgCfEAggCZZwEQgKg8FUgv0QC4MmAAE2AiQDhkgEIAWFTQeTEgyBBhsI61ewdttRuvLozars4vqN594F49gUbgdBpYRNqGDHXgJ0B/dkJGwt+////7SkMsa2o/svgEpmWZDYISNkJ2RttQWajJDLqWV3jhyGfN+No9NZJxIvS9RZdFlCw5sd43o7xYs7zX5kn8E56GaHT8M/qJ2D27Jf1k2fXG2XqfVc5TsePPxMhzhYLPtAwO1ZnIY4jJ2qEZstbFa7F65o6izS76LEDVkNh/GPzOQbvyuW3VAtFaiwLlHNga8KZUskmWMsmoOlkqo1CSfvk256Bd79u9Fm/4sft734xG1l+omTsq7T6VMirWwR2LiMkawkycnrP+GWvT8zCdQTsnLnCUvFkZqwfmKhamuOVEWpuR3nilGq5u7h7nCIBAECDFAgBWZQIYRPWfoRHOScOo8rl99VLspvavceXzqtmWMVEuCq2PtQdkJegoOE0vH+Ab5tPoj4AOFxKQgCihcdXgh4ACqnqKiAgIje6Y2VSkqmdGiWVmpmZmiWZce0rNAusy37Zvtdy1bab83Z2lXtz1bWmm7lUJ79JwuzqZwUMzGb1Eu+D+AuHv8Jms+5h3IG0yDgMJGkhBmCGEARTD+4MYRui3bfVm24a7sr2gMnTiDdr6xMA0BoHfb/30zLe5//ZRoEaOw4Y8gCOJDj9uH2umatAWXqFHqkXEkoRYliKYg1dTMwTjzVrp+beOygomUrjEMIEVLKxmF7uNkHNTYCj3AaYXUT1mH+noFtM9byeRZpFJWlDpxT9UYXLVtGPkGEMc3oxLwDo5DqmmVkI+CYrWQTh/ZVBZj3iMk2e0l3mzSFVeovIgzEZP5zWn7Zybb9ip3sq8Cwy4YkgwvIgmS8EPYi+/J1la4fLGuGLWNgIAMBHKKAoO3hVDOnpmNOnZShJ+zPABWF2WlL8P0ae/tF7xCdriFRoRG6hYiFtv9ZUSqQZpZF7A6xL2jOUMmiybOipqjTVZPgfmTzdWb3zrAgCGJRAlcpKsNJ94Fs/W8F2fQm4ZlWECQQ/KXzc7fdbR8IjpLI0sH0AeoQTUf+PmKF1cit1OInsPmIDQGAv7dUK32/IcigbO9CVkLPJJRdrILm1ASZrt073M228kk3+/26G/j9Gw02Pgip0SA9IChaICB5mgAlgwCtISn6ECVflK3Rcq5bs/fRACUNCXJGFCT6IH1JGs91XeEeVxDuhLt35M023CScID2udM8snzjeIAi3GoCAf96/cfC3A3ceGL89oTikgDCrprO7mwvlhXRcSj0YEA5VXdVFZbASi++7VLoHSgEtKsClKPnSWVdZdvLuOvZGGRt1Wcv/XggB0VZW0bqCgB7/aW5jaqo4yuOVVM6SRxKBVQmVMejRNR7f9hjTakl0+/X8u9k0o2BpEQVlBAQ0OfbT+phdrvS/8kpNEWOiKCBlBmYAd/8OCnSz5gI+dVjuk7IcEIDyWEMrsJS0T9qickGvQBHegoDH1OhhTyrIze4Fa90LCQliYpqZly+naZAANoAdBDAphNDTuIi9eAbF4Rf1RVZqBrwR/PE0fNE7nXlnLNFDBCRgFqkDolPayZaILeBgtYbDDQoxgmH+v/1hZHg2VxFFCtKaAxnORCZzJ8/zMvP5zAVnnV0wYuSowqAkiWSyyKOBRppoZR8HOMRZzjPGd3zPD/zNj7+noTuGjJpTMEmNKRa6wRp32Pn8MfwBQ4505KOYp4UU3rRsk5re4tb1VAd7tvP9tPdu3C3bs5d3bP/dL3a8pk/+GPb938d8B6RCYtZVk0kO9WTnluy9/JDqNsmSRJ9+y6o3TMjJLT3zL6x/8XEuXEtfb1+GL48UkNC6AzqoI2CCbgl5Oc3yRCSmh310y/ZveJAc3oJq+Os6/L39/1c8kqIZljOazFwExXCC5PEFQpGVtVgilVG0XKFU2aht7ewdNFpHJ52z3uDi6ubu4cWrN++eYAjUxdXN3cPTy9sHBkcgUWgMFocnEElkCpVGZzBZbA6XxxcIRWKJVCZXKFVqjVanNxhNZovV5uvnDwCCwBAoDI5AotAYLA5PIJLIFCqNzmCy2Bwujy8QisQSqUyuUKpoUWu0Or3BaDJbrDa7w+nl7ePr5w+AEIygGE6QFM2wHC+4BLQcSJpL/reDTyLetZOACU6SSTFpJsPkMLlMHpPPFDCFTBFTzJQwpUwZU85UMJVMFVPN1DC1TB1TzzQwjUwT08y0MK1MG9POdDCdTBfTzfQwvUwf088MMIPMEDPMjDCjzBgzzkwwk8wUM83MMLPMHDPPLDCLzBKTZZaZFWaVWWPWmQ1mk9litpkdZpfZY/aZA+aQOWKOmRPmlDljzpkL5pK5Yq4zpVDgpijAbdGKu+IA7othPBQTeCwm8VTcwXPxHC/FS7wW/8db8Qfei3l8FIu8z0hIaCQmFyQlVyQnOlKSN1KTH9ISC+lpBTLSSmSmAGQlHrJTJHJSFHKTDHkpBvlJgYIUi8IUh6IUj+KkRElKQmlSoyxpUJ6SUZEyUZmyUJVyUJ1yUZPWoDbloe4I9UdoSI0XaSeaUtMQbysG7F6gNbWjLe1DezqAjnQInensoLXnge40Nujudxiw32PA/gD0p78xkP7FYPqMoQyC4QyKkYyK0cwdYxkT45kXJrIVmMz8MZVxMZ3xMJPFYjZLxFyWhPlMg4VMj8UsBUtZIZazDVjJqrGaWbCWbcR6VoONbAc2s05s9f8Htov42CmKxm6RGHtFUuwXyXFQpMBh0VMc5RAc53Cc5J44zZk4y+U4z5NwkafjMi/GVV6H6/wkbvJTuM0HcZefwX0+hIf8LB7zeTzln/BcqMZLYSNeC1vwVujBe+EyPgpj+Cz8i6/CMr6LleCnmOmTX37jyycle5pNQzcxw+9uwmDA038IzafUn0+BWxeO67hCvgkUmv6bbAgnc505EaIiLrWvIOjoGxLsxlVDASzA9ySlfarjlsthPrz5HETF5Vvw5asgPDMH7nXvXm0oD+j2nrTg+Kxd0JK0xtdE8N6FFfK7tIKrxwvv8tztpB3YsaKZjCN9tJW4suXg2dACBlBqWoiM4qvAM+KpubcTMTI2lFARxVgU1Xiw6o3xKJeo7qFVSc4msj21f9a9rPUGlPY6xFcuvbGgVkidvQ0ddxNSR5X5cAXavFghlgU0sxnTNoZphkTRrMgvGakqj/aODVTQ7XH+T2bHSgd3zqJFJ2K/fUkG1Z5k9OAvSEuDM7rlo24OKbrmMpQaD7tykbCgkkBOSbrR2HFGGyqYFqN99gfjJY2z/4Jgnx742Bjv6o07IYhTsQvCywIU0Q78sqGnYQjFAI7PJ0nlhdY6xuCEvCYB/Vo1/IyoPcrwT2YnuUhv2hiRP2XhLahXhKfvQpG/3k7VB//6g9Uv21+Hp2/f4k6ULwmNUVBLfs9qUwWZPGtujckL9cV/J0EZuVfQ0g8vLWdRntP5HYpMVaJPwoeoiwMhe+XTbfQ5MQA5M0Y3jafz5izArPYkiZPKVuujLMFaCZH6rsZdE4+B3rQ+XSGjR7zr6Xe0XMcEKJ8/LXG/5O8X3Ulr2EBBcrFhKiVCJgloSha0JAltSUFH0pBLNsxJBuYlx17AGt7UXgmySBZIFzfQkwQsSRYUkoS+pGAgaRhKNowkA2PJ6Z0Ad3gJpkWRUURXvNHRm/HEJwxllSgwV6z6sVnFU4MJbZ3VtK8wNf5Y24kNHcv0r+aes4rcXWmYsUKRfYf3rgI366ivlQ8hZDw16QWGr2WR/cLvzx3mnu6X1VZ6oeE6cAdTHW3iUtIut4F27068UZt4FpmVa8u3UES2cBqtcIiCZXOP87tJbT4hzBzclYuvmy3uti/gkG0QGaU6JdqbDi8u84oAd/Le3QY7nWjT01WIJ6AL/3Qgl5+9Dj/Fc7PrxrxtdswLt4IhckFo6dhPKjlGeBQwKojXEIwLpcW06JmIutt4FC5jkttJId3SdEz7bhxgOFJoVEo4ZIQXVTHG5Ih0TylNfkwMh9JuxtAKBDSq4mtEOcxG2A0go5RUdvu23tlP+fZ6aMTn2QhYEPYU37+mVF6jZjmuQ4s7Ku4SeTsCVO0d13rY7/G0qnbSPrlW6xUurMsPfiGlw588yt0xmxfuRvsQ2oIUs8c34eK2tpStxsXUBUcbvZrgmHDf8S/+BNz2DNlpNrPjuXtBRjlU3osfQMmWZV3HGXeBRdiPaRXD19zPKnN+qZj+pvZs+JCYOA+rjpDywnd030lfJ8Xqxy9aInzr0mVS1NduIdJcchVNB6aoGINsKxdYr7bkXu7+pQLu4tzg7EFZ34rw8ETIBkWLMReJRkJHEaxIb2SwdYCEigAWy6AsQkkoqIp6LU1EugNGQkFT1FsgINsBJ6GgK+o9EFLNAT+hYCDq6yCqhgPNhIItUd8GQXUc6CYUPBIdjsHCEvcnZ1uWuuyUZZztkAys4HxTFOLCiri04nBFvsX1HMeN4bg1HHeG435O4MEIPBqBJyOenvFzWMivohb5XA9lEgc5fpf8CFIXBEb/TPDL6/hLqwCWDDSoBHgFEGPRIuXuHgJVkeGiCDA4erry6FgBzatQLqwp09Rw9k3BXR0aVIJBsyLE4RfSJqZ6JS+aqSWqvFcKtTmtuDa3pl7V0Og0STVSg0I4kNgo0moTRuwyh3jXrNIX1yxX7PPMnMqqS4xhlSNin6OZHJ4b7+tsoNhMlhA2C7LmWgib2/YqTu3/nwmtbUwh0ddNgLiHrHyEhOfZdmzxJNOK5WyqA8fFWU3MBPlBgonrmq6eUksVc+/ipjG2cWXT/H46WkvbjtdxzM0M0XfXH1z0WSYQSZGiaBUrtowZqidmfUA/RC763ssDWUHq+b6Xtq2+i11NfvniXG8Yj6fjsWx/H39Ex7PyMP7okpkYhoNwPYwwDuKvtllIs2hs2x4nYu2xDYoK7rNl2b5nT9PjXYzHDOXok9p2lL3DkOMZmpgYcWLv1V1q4UVE84Z3P50wCqzJELI+oQK5Zzbkg7pt255tc4YQ9EA7MNdI2aasP/F/yGg8VhJeH8819qdTa7Kg4Gnk+PW4QxX61DSwPIS04k6WjMmwanTM2SLf8I32MLU+UJ2qT6dnW9tIpUwR3RcT17WsnyKq2av5Ph3YtXenxja+VHOsx7awRTC3gxPCzQdLiX3rjXrEfxs52CqwDqDCZOac7Rj6falLqbkCL/fpJkdimsnC9NYokHqOcsObfHosxzYKONl9vXIuRv1E+xBEukagCmMYgDe5yLTOGOSDqFfR9La1R21+U6kXmeWDw/eys93ukAsF/vjBKT/T9kNtkfi+NgBGM8gxPSppXWZynskyk4wg62Gt7Pkiu41ZVyYAghlQrdJsCWCiqAZdCjYHkqWtozULUJb8eiusZo+wY01SJzRU0NYi6y/6vQq8F/delLm5YeZ36mzMBcMTomgIOPFTsf4hbS9mV30VEB+TNPpXGRIlXNrWjyBNWnrJ8sa8f9pktUwF7FRnY4unYpdKcCAMg/jKAh5NGoR1Eko8tHYWPN7mTPVN4wDCGDZpghqsMwvV4q4G+UWkj6kJivaX+hCjC7auS4WnvNoMNMZFvKQ8IZr0CdFzHxH0vhR0xQBpxX6AG7cNMa9p9BGCImo4Js2ov5EpfedMiFTKCsXe109Nv5R2yWqT1RztcTyrLJrPacvGm3tWg3rP6yvWs+oSem33+acdJfOxoAZHMAaL5XJc9+oi7U6q6mAqIRg0kaPfGZKooXICRlHEM0kE7JiHY0p8eJzWOheKBKfpwgTFCGfoXkY6ytYt0BzNWJXmBFN8wt2cq5iV6qFBVqTAIiaRmNkAlC7czMFKY2kJJrFkYpSlSA5uQ4nKhihVM5buqYuy+NAWiNChb3m83k5DpqyVJWKIjVNNXgksithm3CeKYJH5DfPjkiibMktRLB6tKJ/ievhMvse2zolZYvGYt9GVzTS6SFiMa6ivx9wLKYkaWY4Wu22GVRHCIoyNZmUkKpggG9b5GZUL+Z9FNmNGW101rCORJSoTmeRuE8YT2DRbJU/gRjRngzK6dc/NRFTowylQZ5ZtTFzicJhBageNG9sDc6jhdCpytEiZLAH82kyaJQmjOewDmyXiwMQ5x8RGe6CyhohwGhAaLgwlDtSWzQ2bPml7/LCMm4Ct47O0AK5DUBsA1kGAmsyvg7y1mRvNpQq22YUzUSxCKc2MlzG425qB2TAImMO2l0ErI6g+KatQ3J0lvIUsM58rLxL5CFBlVaGyO1U5SMQie7rweK0aOfuTqk9OKx8wXT/WRpCZBaNlnsGuz/k7nARRnLCsRRSq91C98KlJXK9Th9d+l14Xvs9Y/mb43uTbsQvoHWuYeydagcWy4vH5pyFxvPnC1ZBiqDWr2DZ+RumPslHYIGAMKh9YXkKAccTx5BxonY2QCDZzqTF88SEGkvZESnySNo6TH6TV6RX97rD8hf0U7Wm76XXuzFlP6zFr1h7N0C9eS5OSmF4tAOEWv4CuURZxcUEsWrt1irr57HeEAhXnjNZWr+i3S1O/EPlVjRL/6E0W7XYwL8UjkGkIEEpM7+szp/nLIEwFVRnCgDju4pTqKTskVFAYDEGNgwIHVxaJ5NykOgNaFILwkWBdNE7yCSO+nUgoTZRI4Kt99lIgZlliQy+GJ1CY/FzMti1+Y7/AePo5pLApxlcUeUAZ0oOdAXfyD079cehWW1VFJsb5ieh9p4UuSW4Q20hCl8SbyVLZH99Mt1T2x7egOebGryJIQ0RXBxCUQQC81c7WguRQmJGT/KjuWKY67P5Sa5oC2xVdLRD9pKBiz0/roDFH0GK0V/PoE/4GfOAFUjrNkn8l4/HGuR/ioF77lBTIWn8EhO+02CE+QaKYekwMSJ0K0mxTG/NWH2Y4hDZ5dmAjp8fcCu+Ubdb6Wty0A7lG4GltySsT7uNdc9SgYHoEJM6lhMxYAwnvz51/smLY4f//f4U9Wi8H0d6Ex17rlAEmX/heDPVm0nsCnULOns/XzmO8EXyKCGQQHi/YKhKTz3qK1qGBQL5yEzPtIguNEpFVSQMNgguCREj7xpus5/K6vDHzYrYUjt2I+Z2lio98oFQEEN5mREOCaHUpxhIa7I9F3SpyOJzweRc5iF3GPEx9fGCr7fQ7xwkaRzSxbP6DpeNLvK3sNJ6foFB1Dgx3a8ucbDOTzqYdKdjhQPWyov1XCf3yep5kYgxTep4yLtatkiqA5KfF51moCn6nNvAJOtLeMVaLGnm6X2P8TnQowqpLR/etykBUi0yeWYjvQ2T3rBca9zu2rnp51h6uKl9PemqV76bTgzuuTifsN1hQQatx1X2cnuk8GEyt82Dbl/v3JaIiHG4QxfhUZkcjY3Lv/uP/JDzbuKLyMnkZCw+v2jOPPOKcHxv7fS4/VboET/dVwSbj4hpCIjTisMqrSlR3UoWxk13Yo24ruupUKScS054eTE3AQc70ZFcdVULgFOVN0fTiP13bc8GNuCa3Sx1/IshHZgibVOO8LJSGXb0yPKE5xr4XtH4jKtWcJeFMAP4cCOQWVeo0G/zPkqL+3NFSYqAlJM+H6F26LLm7FOtmw8ZBTTFAi2DRgXdJX2FGiwhFcGwCOklxxzhB/qmiUqsh8U82gwG4GhGoUhDBCIdMB4/HNQAjbKZDMOWLlTCIYKePtj5xjToUqpvOW74/gxrCx0TgjXl1P+gwwQ/5cLNjrf+1v9F4Vdo5uLqgVRDqvs2a699HMtTqfRKfi7KFfIHj+687RRINBm4/NZgtPBzmaThfYPcJlLVycSY7e5ede/Xwu8WjM3foQfW0z+xy/hvlRNWLwUICl8H7EqLcVQbHE/WRhFlVGtAZ1Vd7c7xxsruy/OC7d1QFgBIAHam9yFu49jrMOPnbbJ75KPIDABLQ2LksjGdsMV9g7v4UrZlzps64/B+si/6WjytIcLw3vuX4yJG3rlSNGcSYyg0IU1yVyT2o9kFbWhmOcUF5HxtVLVBTTHDapHPuNjgGE+GiNc9LUBQ69afWcn0XzJ9A7ENsx0x3Jsc8DvVWuMHb3L/51hNlgJ+wh0jj2P8PXs9+TlKi7+rGP8Nk6+rIy/V/A39/QkHFjwhoFP+5A+hGHmzOhZakTourws++lhaf34ee7IAIqkWp8zNOVuLJZ+6Iw89YhIpqqC2OSp7lGaSxa/0f/06dt2ZDpQmJrk9WmkGy+ZWRxPbK7ybX8h2+iUsSjC7OTs8vfwiYf2SWf9PTO/ewCkHqVrERY8eV8rN7SNcUEKk/EhTcZJ0NKhj79IRbM8r7bvlQ+4S5RyVy80YACbM0CQzPFpMZr9+ekGowtUxlIoggmFKKnrzxX5BxaPPqbPazMfU8S57xed5jXwKvUuiaQwAYlHKi+dIQQdnzMyWtmvECVDqnW8t1uRHwcua8fyUFKUqc6teddOv5hHDCrHrr+TAY6Okq3CzbWH4iuQCv+thJEOR4McThB7RqVyBaimcHf6lovM5j75Xs20U5fLypw7rFV6yslGS3xOCjTR1jhF/U26g8SlAGwgkAJqjq341Nwqs+stl5hEoq/RB9LJ/kRH7nW7bmm8/O7JCtJ78SwF4i+jvTXbjud114EW2aN0Ul+Xi64gn/ELrLU9IMuITHQlsl6Iyf0Res9PRk/8JFtOb8AIuWLhGFA6wiFaMdFdb/sTJjM44rrzhlqHpcrG1ZCIcSIOTvKrlsaoswBKqVRm/cQqSK2FxfUJMBfyV/CarjVfx7QRPINfWLyngoEFQ+/a7fGIen6esGLlMTxWd1mkvPtEQYz+YlzeTsR+CjwFjZiNB0hrFP/c7v/cWK8uL6thXbl3rcwVM6ymh3+wJL344FRV+2GsAZta5R9VLmyJZJn0eRpgOtElokaueZ56hgZmzIkyxqnEVkgl4ynbZt3PelRaanOEb9NrNt/+iedhP3nbmn87EgOJOjsVldN0U5WXn4kI2DVIHDnGmuh+50F5PlfB0/RGsN79mv3jWw/0ZOXIOwg/fKTDaoRNcO55TNKson60zrsDDYqOT0qDv+Lte7COp8trWQAW+4JmkZD/BNa/MXLOV+OyCYDWF8L6N0BAZlI8ExSu4R48XyhTgNTM6Ls7mqeino5coxT9dqR+1XnMuxKqcLnDrVL18MfMk+7CjFSPD9jlDeBo75R9x2y4H0PK4xtrzrBMkajDPjBppwI+Xytn0EbfiYLSPkLo0RFUIEX2GJ7q4TfkqfSLRFkrHtb4l9zaU/n95A74f/X0D9QWHIWn0EpQmiBC4nhisu5Jw1hcsef7lT8beJGoBimUK7kJOW2ZYjlzoAghvGKdQLvGAlmTfULE9xcU5aKuYcEa7nQR0ePcVNFMYBjwZ7R0sugjLjyIhGOTlBBMdqPw3f+8GmwJ2xhWE0thLjxtj8uFVLztonEiapmu9oWaFxveGGs39MKgZ03u8Tshf1siUiee3uX1NUvT1XkVyqskPXTkc0E2WdVAZVmqgN60navcrVaaWdGwLgmZg5S1P3HX5yETb0+fkHju4pRJugFq5m6+k2Yl3K+eAglK4x042b4JIpsvMU6+y668m1wFcKf8B1dXTORmW7zCVxsTwC16NGG3rTs2U2rIV4t7sbN4DK0ilZDdnv81C/IlqvHTeEZOBmgZXRV/t80Zz7N16RcJJDcF2ddoHX8i4+t0VQa24/nSctiJsPwozzxqImyAxpHUlzokqrl1tooYZs8rGpo7ijVCWWjDkYVo337CKMBilrQ6xmeLAWcK632Z5Z8F/mQxGTSA5hy3DHsCo8GaS82CWXsWJ4qWZSXDKMm3xsV+BKWKk760XauFUS6+4O7pTjJ29HpeV0uc7NxVAbokATtnidKbXUARZtQjnEbeM84EqAggHKv7rr/jr7PnPa34ur2+EZ1Ks0PCsS/JZ7NdAu+QnVp6/pOlNxc2YXY58iWdHl7WdMwuSBqmL3qGX5Uib3tDR/5juR9FpMqWy+ft2oc3rjm0XpY7k+59fa41rHJao2qgzaZbBjMFtsazmel12W1q3ecv/21UNL4M4oGA8bq6Le+X0Vxx2Pn1Mmw4RePGGgDaUtmfGiL520jG2DBJNO5OV3Xj77cHh11Qpx3A1gApUtesL3CbvVxEn0gwaoIGCedft30ZTOCmgts1yRGROfPmVbTVoP2EqGUxI2jmXpkzd8vyjSNEFUcYSaYTg8utdzqpPXSKUsLD7bbv2WZ3bRF+G6k7LcNA9ZsSTq5jnsUebrkRA7aMPQBkUzzbqrKtn74csGTDpvVQ7xNyAi5oJ2gxDHZoEvflhhgE4/T2XxpO4ZU2K7XBYL8onzlIRwFDXg4o899U/LD915GlyW2vDhGoqoxqRUyvlsPWwG0U/gJYDeB8Vubqo/pg5VJ/JdK4TH+ZMKBKjbThIJFlUq64Y7UjsnHBYTwjZyP4w5XvglYeVPkJ+l6mVLzE/YL7azZRgcvuI+57y5lpi2vbj9xVOka2LKmMScStqJwp/dTrNvOb1gbCpiHa/GUFB7IQfukREpOnCgr42B/t5XSoKJRnG9j7Wtydo4mrbqpk5t8BafBO/IWfA2zBd1hFU6MIQbMIDtNo+yNv9i1+kra0ZnGyyFUlwxdoBgt7FDGe84V4apUTdGxUTrd6I67/oQKsmVKCI2pz/ka3w3RblwnICFL63m/u1kW50GJV5msswFaV4jcKaFgSAAWcZ5+ZiPXVjxwTMt84s/ZLUlQxOdxY99nvUTFNMLek8Vz73kY3HIgWqnFwNcETdUmzp7MHNlTNQk0etwAajbDdXH1HlZzzMXw4m2hcPZ5eC9GP6H8jkqPUKEby4Mh4NZXHhgDDO/DySOLDIXjsPCk8/rvLsDpRx4fNx9E0kgPWusFwB5N8x54PREG2H9fw1cRc2kNEidAfS2NBZd/Vdxrg6QdS5U5ZVYufMs2ks1fJ/xgG4L/VK1nLW54DT7TnREA/UaukSz2TYlLjFdthE43sDBl6wRWDBxtTWInIKpZOIScFnUCShSTXVBQrGVcvuD/yJ109ooFt2SzcJ1D6VfX6xapI1mlo4Xiq46v4DP3fuG+uD00qdHJClYYxUnOacOAl2iSzfpWM2W4xHsxLEEfbFLygYEifxxnK7E2CVtd4TeEkTAj5P4qmsRNIjweeOtWR3UmE4WBye1CrUCEZaN8O0oXfpawWmf/R0IKxo5yB3eDSP/4XRg9Bit7K51taBjurw/FBYADn8mg6JtKvEi/MBdRXTFMUv9E4VP3OzTP157/EyuZjrVR2czsyYR02kh7aE8cHj8zeKkfjD2/cIEVK9tvmFTv7INVOPn3KX1KTM/O3r/klnaX1tPtm4tzUw46/P2pLoV/uTZK6GVXHZqP490G2Ckaqhc5xZpOAh4LFrGP9NaXLu1jLqJcz2vOLGOKygoS07HbROVIdYvnVOiJy7K8tQdA82e2erYhsOW7xpmtkA12oIq6NyL4ZIZx5LDSTrSI7de2iqyxI37iMplCtybW4SXUNM6SICs3zWba5N32NEw0fipPtxClmO9xQjicPHm2myvu/tEKmwzBO39D99YvBreXlz48k0/925/KWsO6HObfW3pQ+c/L83dMKj3PjjYE10eL45vWPiPyxZj8DoKXd58jE4CGHhpTdEc37wIh1hO37T1JqNFTrV3PDoFgixNpTqZffA3aPTgVU+PyoqOZpli8S/tuFNL8DPgEovb11KiDRYUpeAWz706MOlSTAjCXSU8+b6KpAXe6ouL2mJ2fr5delBC/W0sOipwdUuxAT9Ax/5/PRWv8U9xIgceeDpMbvN28+1arNXX9EN9hz95F1/N+ahfq1ZM3XGNX6QWCw1VtI2fdiCiYOV2d4bxnMonPM31b8Vis1WtoYvdWau6OKO2Ge7HIuKqNeQOmxsrS0YvJvLMyCtDz4M6zkH4YL0z84AtiV+Ao2Jpvjl1+K+3EnFTyQ/R7YOjiB+uBtH8mMSTT0IdsOWGy1wJhIBVPXtvHENLHk+fwPas83r2c64lLvmuWYp+4ktBF0VeT9sZlax1/+qGlAba8xxGlCMIZ0RcNm6GlKCLFDh5J3J40T20UKYHiHo16PsZaenFrX4wo18/Gp485eIW6W2v81dOR+m/IzPfpY6twMAGDWyFBbZz45uySZ0EANTFQXWVFprRQ4JecXJ/bu0pzISYqvqBUyIBSwuxu6737c9Ln42IWMsicWX50VbYr6vl10MXE10U2Sc2cjpWkhRbpMoLsRZKSwiOS/U91maVogbu7n76DkmfyoOfyDz/xlwUTRiw/N1wAOif465JWdSnNh+egdhA4iStO1wWHG7i9U27FH7DcrVmT7V5u5rITFgDc9/1N3K6NAjXlrmekMXnezu7UqrvFS54V7oT6bZYoALJwSafrZ03eCxUjTQCsLIf2M3UHOtEgMtIHBLKftHVcy1p3/SQrbX6OAWpSJy5fWOfskpzHqXgm6xsrdITqByjF2Z75oH/Zs7odeV/QdMaZ/rgnDnlp4bgzL9gQbiTMpi9kaCovu8XlXk3x3XEhMf/n7KuF9vBftB3tAvtzpa+njtR87ROucCiapnLshRXqFtB3Epoz0MEV1/TnohMfAX/4RfmD/5+IyzWYnmPI5KuyRv2cNgKG/0deVhmV8zEL/nEnfwNA2yDuEqSyxzp4ADbimAISyNDBia6lZfi8CgTh0fr3xb7Oq/v6HXe1rnRcdAieAeEeIsylznrvviAch9ZcXug5MQyodinP/TjLDAoIPDRRg/2sEsyuKXWU8mLpPPKeAEXszhPmXvJ7ejqA8qAugg9zZact0BmFswzsFcGyEwUiZAiHKxw/AfeyK9Nvh076uMXv6Bg4fJa7xAS/rRE9rIhl+Aydnj5Lme7UwKD8qd19vFAKi6LytE6by7+GQJKjBTUGac2LXtN2JIlw5nzM+0OVh85Oox1p9LwyTcp8W9p09/RPNI1E9215XckzgsD8SWa1YGzUhcW28dYHk1LLw7vePjJyLNRh7iGbaKBXj8l+WJchr24AZlO6qR9zoSpWoOPCkwsz7uquetv9Qom1RMGwv1+Ztf7+vMcv0y0leozdI157ZXn5s/uwkvn2g8nItIHCWmGLtFxGb/DXCRzOn68jUrRvumuBbNDTmAtl8zeC8zqWLKawlXofhwcn8Mxrht1kmBvjt6LFe7HlIL2FRk+NQtNKVbWfETiqlXfdH0z0DeM7gsuGh4laEaRI9OzTF3oRZNK9OJpzDMPn3z+Oiv50Hq8RJrsUbzRUM0FXVvPvD2U3ENxYOGFlUf6W2vfl4GP6ExQ/QyNRjRw4GyQKh9KL0klZXgU10gT4HceVtUzAw2R/5EIH7/jSj9if4YZqKN18wM2nXWq0rcTQ+twMUFCdS8Hs4t6/DiTMGhfjNcrXra93/mzeiloX+WQ/MOiEsJ5xkjb44rJHKUTXsniqy9AfXq+v+H997Anz5n/LRZq7lLZcpCts7puWy5+asksL0eAro5/0Y0fB938YmnxRU6QgFy/sAogeUNFwLkB+MQNqrcmPVNrNNXN0EEsdvDqTDjjsZ/RMDhFAZ8L2hyO49O3BzdCVR7UcrQQZgOOViktWtCDKuqw5Y6p5/TpAVC8U/W4BiszoQ6wOr5F7GO6uIJL+YEDhw/yFJsZQ44ZfAh3p5DBZWExRu1R4TgOC15KytWK/bPwbnVSiClE2HP1Dsy3tdV5D5vhpSshv8JheqsuJ+2mDl+Ve6m41d6Tyuvg4srPutbZzGcyuyJVThxUXX1W1ya6U0uVYa1wmLMWSRyO+RYfe2UGarHAOhytbKgUq9W0JbHbbk4QAk2WqEU590jDbCtyWVcV3IAhSSd8G+HUvDRRkQqs7X/9xsdPze2auuvws2PaN6PqQHk15tv+4rKZtpi251j/F87tc8378nlhWQy/lLscfX2x4Qf266C5zq9KtWXrJVJcQ7tBESf6Ax9Q3pvU9coNdnHio68xDeV9ibHXb3NJPFTP9lS/JU2MdZlqeKy7Bg0YRs3hFKs7XmPnxGVsf3js7IBzDo0q0yJOcW67gKFqbnSWluwRejBZqg+7ljc6+ILnKys46SZcgLPI/kD5sn5tLku519mRTjaTdnv/Uz7t+KxotZMnzEqk4KRvjiBgS+fI0eBsK6KMBVPYQeM/cRL9ewghnfSFX+kTsIwmruX5JKlKP81JQlVoJMqAQjWeqlojotvXTE59DNvj7GjnS2SKbYv9ncYM6xFGRdjV3W3l+qp3eZxQ8O9JTu7UdQAtB6IjyMf4v0kTL0OLJlRiiyLFpTpn1guW4lTXreoVrzCqwpLBNFAxvvQiJjquKBTxxj7Rlt5hh72jsruMzMGH1OAlEOvN4Rob6o0TrCUuE2Ulv36+AOcwJvfrXoYxSYjNOK3xnl7OLAOIChjGuYYtMbZeQhjM/ceIeI3VzPmAuZ5Tx/ecZbmvfh6I3aV7wwIwFt6FT8usdMfir6UMyE7+4GKtRncztetTity4DI/77iYHFMv9xalh+vX35oqJM8LmDx4uRjpW3DXn3rx7CuRYCw2Xf2lL9hzaE4VSa8CKBUuCpOhYz7lXPIJEFtwlsXKJK+882uB/YpooSx/XnDVyx4lQX+8ljFVkwdFoOCcwgOOExgTfnLzp5b/99mDq5Svuw246NyPjt5cZ6VyBrr6et2M/JWtJCdnr4SwK2nNn0XmCd3HUkN1g6OmITa9wXqW5ra0PqvlzoOoLJbaeh4JRoN4tyOBVPYCrGyEWm6P2dGLj5d5EJNNYYFmCzEXYMOi3i0ffS3AoVziKuc3ZE87DfT3CtcNhUO/On0Ztmq7IKwrFIE0PLoH/Fua+KyHBnLcyJ35b3FqjRYg2IXowl3NJHu56VpNQrvTmK0pArwfG4I7enb+M2jS2HB6gqkxOyOZl262ePJszT56D15E/qd+T9G/ifL/9VlRw9mwKOk8tfPmp6fhqKI1HvyRG2BA+XgsmawXOpJYLgKUANkUP/j0eba5xmHKoMVfnL1FFXJFdzX2dHH/8UHwgR+o75csRY4i8TDzO+GVsH1MPk3sbFjbETj2fn0wiLc/Nffb/7Or6xv+NUrkcXe4/vnZdpNssn+n3LuNszEHa4E8vrFY4a0ybh+32bRtjIDDQtju+qmJi0vzya/PaCfirmokx8/tRs3UiuGX376/r4v39oVZTN6NbozloG6CNrn+SpWFaTXOz9gR0t0rVAj2qbdmpGoA2avXNm5KzeSDFIVOnyZ/N5uX4W73XdTiD/EmNePSUo/cM/Fxpng/4rFEvf3aY9Kaycjk6ZDSf/ZfrTnE+EFLo1RuJJM3lIB/lnwrZ2I1bqJBw+4edc4KGfizkz53zvbXjj+o9/9gxX2mebTr/CD2jPnLeMGmumHhdj//oDes2u9LXoNiGlGBJcizAgcpMo0LPThbmFq6ZlNiuuQgyGwldd7uFEEzmslI24lyY8R5OwR1I2rGWIGLjWF/53kfMGN1v7gbzMAO9F7ZaJp3oV2t80y5KTPYuxadMjGEf17GhliTP5iWVPZYPNd0ctW5S6vjNtGrVFKmJuPOf/NKtGNVYqcdKQYP8wvGmzd5SbaBKPFxRJFRjyr6xW7iZlFQtydjsPraCN9TaefzOcs4v6rg+83jjhS+5Kg2Zz9g+KR5HSyGsWnlCOr9Xz7gGfUZvOPxu2xMBVUm7E2P1KG99OcjRnHFmJPPmcxeTZ7BT2penVeurj+rd1ZS9pSU//cVnktYkph2z37O7uFgolSqW6Tab0GJJ0prKixVHOIE0ZiUlZoiDHLZeFZpRvOZ3Gf65ofVd0URJSFWIM8YMcvrto6tJguqdU244VTtc9vSY9n5XfDwXlUubNs2g0qQ++/dEjKrKlNjQeJOn7tvUNObU3ky+xR0qmxZKHZWYPotEo3ZMz/m5sM/bUkU6Cc/4DHqiYigMF2xfGW9nmm0l2T244XRktFHnktqYUZgE34e4k4O/+APhvs3xiNNnK5t52URaVr98RfqkXsocX70kzzqZyLvcy5ekOTIE5uA0zLjyZEQsqJ9qa8NqpxRYHgZsUAtefizv+W2whzC2mtAcwj+4ISyTXhHzZPF0rjvnJpwSETvOxhjPeu6O1kH0F/qf/u08THLnhzXrKblQN87WHO+a8hyRJ8Ya4GF4+wRMk+sh3i8jKtCeovPtgQ6JGMj/IFEaAJI16ZnkcFcQ8OzrdQ6mVSDd8a346zMHvoqA/gjEI9yjUYRCHUGKScKKI6bW1cwsx5mAHO1ujWo3tF+7e6cGElT3u7t60cCwtV/0ME9n6/wYXDxeJ+C2tsroCvpLum38FTLZ/vZzfQh6ZmgMWXoo3eXIn3C4TCArUt5Jt742lgXnBzjgHekIc/mwNDNT2rTzGEbYECgEnOZkSTTry4E3+WqDLzgRNWT4anAwMGiApsUehXjXDFY7tXR0idu/YN6S23lYzsMwiqXdvAccZnxLphjsZvnuEdInNY885yi8lkmweCU2BatUwr7lF1kHPBYXuxnd49nB7thPblvCaqfaQD1mqc1NVq4E9Ha7Dp0/bN/YiDbdRNgQJq7fhFtORLTbx8Rgo0a/G9afuLtFk0ZB74TbNJD3kO1R0VGzx/lX8RbvoRmpkTfVo4dHnoPPs6rnvzJ4t3kZvpknfbqoaXQb13Ket2F5ZeTVkMVFG8M2HgUXs744HnFs7VpA2WG8RalOed5HtUYH6pQJZn0ZjqvR6EG9kiWcmX5jshzluNF15QBOS5P07jBWZAv/AaKtc2B3vinppnczuxnfbDBm8YP0QSQDw2eMwUjCuA1P9kgjr0frSW+Uys/+n/uPWzmqE5xsEI0+XDIfOF80z2AzlXbWMaZ2IFmABDLlPdvgVXBaB4j+g57y5TjygDZ4YTyfFoQsRA/A2P1bHW9N3veZffPme2D3wfX9vn3FxfcU+/563KSorfkKrHaqD8vDfIjHX/twx8SggW3/jQX1oPGEIgGMYuaWn23AcsBQ1uAPKj4H/X1JCcIbneARrSRECwHGwhbCZuQ+iP8O3PFB/MZWI5YDkRezAf3UGrC8yFkYIUIk9WlfJhi68Hg+/hV6/vbNIBLa+bro0lLDYsMlkh3lCOCDd+fmD2jXn8ks66eTnpfqPpFZ7+mbmAMnXjNLHhc//p05eGLF62/Xfbvukz3tT4dGRn19YdVvK2pvfwBt77zT3vUA3r6bXkAf5XO/+ipPVqtujywqiW6DHhW0mNa2RPTDWsSmAkEnJKFWlvfVV7LVfJzzGaJqf2Vq3OWIL486UJ/SJw1xnZUq4hlgTB0K2CAakO7jw04OBXrgWcmiUq05PeQf+kLteQdn27RgVmxON2mfcDQx3GxfjijURw+b476h20L4eL6uYYuIIi1q73gAbW8rkVIkvcwYXzG30/HHnbGxzst9MXl58ugmLTsHS6XB0ut/d4nHErcCNj/ABrljfv2JW2BeXyjQm2jtj+EVr0p6F1aCzuA5ZLaVFKYtu73BEcovfnXCu+2xKEDq10hvTc0q70YLO6Fv1VF9/T9dXSGUX2JRsOkTnBOQ7S4OSYYtsdRD5PDFTOIxbZk2+1lJ3Yq4auTXDbJiUV5GdKA0N/fDMYPz+iWEDWdD+A9Q9TVQP/WGhnHqUkOxjFXgj1gOKDesDWPQbZSnfQX0nvCecUbYKcvhE/BSctk+oB5sE2i0FqhGhS7jkWedJKRPajJ5zlFCWlZbyrrMu60zePg4vUyg1VZBtTW3etD3+m0CX1bY0XGvswNaUEYgz65iQxLFRoNIWW23vzlfW3MO8lmjkeHwOFly8tUNGi1kQ/f5896BPnMOgV4y6SwRp/f64eef9Dg2qPv5ZyY7cDmA7SWVVUWymSucsdqpmZm2mRksD4MVASIAUuvtJstxACTbxNvEeTdkK3h02d5ERnDgzvIygVr+U02BFhfI1xi3FBDKOKH8kXd9CN4I73W3JcAW84+RVAsOnT8HXE7cggZj5L973LqZHalND2A3xVTvuRMXynFCxkzHh/cSXI2nAwViR5ePjzKhgnq986ng8owmy2PHmuXEVfnhW6ZtzzRW/6wgrLvv8xGy4WEZtsfJFMx42L5m/GlNVSdvArYq78qnpx0jFW10NTDfbpf9n+TOtLlff9t+Fb/nfYW31KW1xCB2Ved1Mvf2aM7fDoe+HI2Ofqb5pzLla6iY155lkPZWmI9IU3KGNIJYHihVJuggvI+qIqT8ogCVcmUJ1BxQolSaAtbnsTYkJGD9yUvT2Gm5DUMViiu2yGRDr9RsFvdG8fZNmGFpsj/Ws/klAS/oK77hja6vNr6kKmI7D6JTJkjpekHckCoLYjgiXW9W9MKGonst5i5penJX5H8VCuhwZLA48eeeWxRsKOj+tZjZxWl/pislyL6B0EB1KXThouDpSIlxkV1eq8PZ9QxpqUnHl4UeqUDehHelv7+ZbptS0Htozcf7uQJdk9yT156lYETQm9PNSYXSbqlAajJx+TxTqYyvOyjny4kXEObD0fAZnFKTli+16YS6Y8eu8QjGiyHjzceOa4VaW9sspaUcn3A2lyZv1gm4x3vL/Px2vU5ac38/V8gNCGR0kYOn3JN/3pSePsCwsVZYjwHaQEb6IGOgt/cns+JBGqWkuPfwFZax6YNFnRUps7sZ3ay/mxbQMtCeWWFj2EYkpVWYSr6he3otCuDb23oPEVmHBnVLRjp9iS/21fT08CBTJH8+MNbWGiHZRR3tkKJ4Vc0nLKL61Knq1JZcpmpNqECrFaxao8Blmj0cHqEU1/rNkFyIAtIMxd3IgbVrrw8PUkC/vkMp9Z5eeDnU/0dJIgOio6eEQdOdXtp8QbLn3lARbT2Sjj/8ar4Vnr0GqoRlEhw9YAhHsns0PkVH3okVYMUCcF3NzHd3ANcn0bjvPL8LRv3uCtbwPIg4AQqJ4xlxHz4ygnM1mHTKo+c9LmwN/u9/hzxIo8tM0pGRUcGv7/K9jjJ7I5gu4Neu9nabBPZOAfVwr6jUutbCVcTwOP8YSqQbqJEGteCTW3goZH0mSF7nVOGEEztjEyB+az7hPMg232/HRPm/aTQR7Z4rPqQK0BmuHIfOPL9AKUY7B7IW22fVtFs0+Hp0AAND9f/XcVsiJiw02zVT4OLjc9mFN90+AqPnYJCxEAx+nBWHkTPdPeJYdHzvw+j7eqJ5LSQ5nGX8YFyZ7sym5MK2CtbDE2+jgJ5yMlxD8Ia4oyoTloeqGZ4+7Tlmn26maadMM2KkPNXEzf8RU2OfvuZ5Zni6xl0PmmYkyJjUUi7GVu7mqCH4QMmwJBOol9yWCeUG9vdsuUEYjNSS9T1PxmMVd+IUq8S+me5aQN96PbXWeqHGCju3bctpaEOtb3ym0SFCqgz4x3lS7tgppkD8FB9cUv1xiSZR+lKmSoSIGWHO4o8L+k6mU9gzBUUFlbu2NS9WeFXpFz5ixM4RrQKttvrvX90mnNFqPQfdUgO9WGsZgdc0SL5dPTulDJcaHfxFSTifBF+mlGwJlsekeBddP/yfFdwJwFbuA/TAJ3xWMGz8UY5IMgDO/WoRpXjJyXQVmWXqUu9HglrwCB59eflDSZGwyEPuGc+Xk4eQ6QgsR7iQBA6kq+Ztna4UlW9tS3MdxIsnP33owxn5KKd4Wlt2f9iyJS3JxuQT4IFkqdHgzpZ5PfrtIa9DP1TVSOkVenoHMY6aWVwsDZOGFRfHZNTi3naGLT837821aJFO5+t58EJd2puaJiaa8P5T4S0u1VUnsXR4f/xiABnHYglt7TtSXX20b12Ad1+f92f/zzrdcnQZxWau2pvFh9oKjMGxL86+EDtGeW8aFuf9f/2xsaQBOT3djQXWpLqZjBejY8UJbldpkznImPOp/1TgE9Hu0SN0geUfJaUAOGo0uaWuAcDB6ekBRiQ/U6DRbnRt0Cq9dsOr0t1SB9TmFGF7j6+q0IPyn1WqcSA/QbCnC6E0RePqEKMAtvALU5JAh9PLozO5oLy24vDvmwrAnFqnR4Ee0Xobn65PSEHH/BTEABtInV0bhM/PMOoEFl4pTeLLsPkKiQBaeLt/h5oCbE6PfCGTGU7hzAv6WMVlkG7jj0JS6aPhoyh6TT+5V+RUE5yCSb606mcemnNeKsZJ38br00uFmGKnLie0ztckZnMwWlU8Fs5VCGq/LtChRRagGF4j0mPWnEwQ4F6vRDlp3660pJf4+wQeWioKlmKk6rPtyLM61t1J1jlrDAXBSchkIKv3K9ABL2VB4fE3+9B9pSOeUCmL6QB+07suGUAWWxHrD30zIzPyb6hjRy0EshUGO0j88PwRvtqzPhnB0ZKDHwUZbNOI46a9S4gNAdi00foE4NC0gfmmUvChrk7K156RCuS1tSla7cHvSTep8dsykyDF7e1T7W1FUE85sa2RsONYptUkwB+M94dhbcamw6B+SiFUYDn00dbWbkZ3mNXG4GBjhbGglr6rtWWQNviXXXEmYsnMLlerr4zKcNxl/a7vyhWVyuKaOV4M6HKRY4bxOd7Dg2pVsYYO1L3RBR93BOSNBbWNwXmuD2SwWvtpsEevyEXms3zku2OQ83Y31UwPmWUGlCdNNVl9PTtqWxY42NI6yOCB1eG8usmAtQxfyHcVAyt6SJGgFmuo7BZJMxrPC205lvD8LkGLNF0iV4m+jIMV2o2Gb77o6vP+VLkYGxpSiWpQD+JfQ2102bbNJU39cgg1MeZ35ZqmwmoNrQEqXvd09MiROXIW2CEJAmWAFnTP3HeL9bslXUM32iavX2iQ8bXlc6wxkLFauwFDG9XMImWuXtddgLHzBV9QPP3EK7dyjdZUYqq3sbVCyoqDSlev35xDl1SrkVshZqmZi1cKMKMADOJ21tL1pbI0qWt1jSZ7C1YJObMvLIeqDuOW7xHSb/8Xy3me0x9mTZcmnKZp+67+n3NVKeuIKAD1tDreSUqdzb5JUC20ahOoFZqVaGRHDQfrZr5V7uDoQjlCd3b4AFcyREFVWoNJ3P8qD1mYDdcT5cuT2IgxKomDjbueGhGiyLpi+7tjGcJWqwS/P74BoknwSEc4j3KzVubK4xcfGsn0dgwjkmz3eiliH0eOW21K99Y4rfGoIoK9AJUBAyvnvj64SBRXBf+CPZ80I4XhHiae9BU6KOQ4krFci3jmOoLBrVqgP2LYryaHenz7/WrhLj5l6Th2RO/Tp/6velv2607TbeMK+pjz6Q7d4SP/E6bsoQ69dfUuvhK+sq4YpWh21un9ELLlb/9Xiy1ff+n5mYw2Rj5d2Cq8XR9rSVMQ7iwMtQ3lTze0NRQ+4ATMps0GkE+WuvkvQw1fpkMFYqTbgVJywOx36Uj9XriG2OWg27TpTUAPhfSmuio3tjS9oiLDWDIwYLoAqTCnlcTmTt7Sz45pTK0o/V5Af7BgTNuhiRwHGJxrWr70zl2pwNLaKpdbSBaOzKmGDHd9jnto/vJRJ5L85qefPpMBP6VLUfNgExR0RTl2arqIo9C6+I0boWw2Re7gFw4Fmh9fc1HVlw+7tmavmx/CvHW6NLVOVthnWy5vbbXwdXdu85roMNHv8/D9PAaf9eQJdWsZAyLCGWBoz8cekCpBbFBsqCg8SBeufrfgcpX4DjWLSkJ9jzp+AnkfpULOhhBQ8853LoMuC6dDkCeOo+6hPO+NmQXiaZdach/us+PtKeRdz4f974hjxIUdUxXxCj0dTclmJgxPgolmYPXklkDzZ2IYcelMP6ULIK/cXJNJjuMt60D9QncIXTT3LDxZ+X9kr7xNWZs6JacHSrKzV9/1njQ7VSrosNt8prBjP0Stvtyhhmw/MPuhRZVEDIKTLtUBPfjwA9shKlC37N8BelXW3s0QXk7Utfpy1RpuCm+Nqrz+2s/rWTjioIuHyyCxy2VeBvG0C46Vd0+d2XXOJdwa7nIuQOBVR56DnySb1il4X9BYw0LSf/7ppzd60stdjcspzJjqkydP5dfBOSu7ce7cq5lXpNmcVwWMNpLe197w5CVpLudlYdl0tP+cEfos45kROveOwfGPF5vpagJ6yk8ibIgZbC8MjLFDIBEIbeSkskkBo5BGYov3ODE825Udte3WmAPlNT6265fbTcrQj0ape58DTUyp/TVLeqn2A/krf55qz8P2kJgr+GfjDuinyIdfuyfvy88W0/0EGtjqp6tDfbQBUVu7Haf6sEeU5ZnoJruDcknhYOFI9Ey9/ag5R+mTQx/FEGaTorZ+WV8O2Z2SU4HdLsfKhu0yrA1hggCjENbQ4VI5tsdJjMEbFIPMiZ3E20qD2bx549ZN65LHySYmZLsj5flVM6dHiE2sFdOBRzS05XqqKnktq3OfWCW5vR6RYCJsVoch/2AGjvx2hM0wOTIy6SVHhmVXcnhEatF0AdS2RLlx7guT6cxs8ffhO9PiQq69mre3upk0l9NMnoP7jOUjpE9kN9Iy6ZSviDnczImL45zyJTdpJE6w0Ez+UUwlkZFNChvvv3MG6fILkilvcj11eUNpb26pFufzmfu+9WyLyveV0bvt+B2rxtc3++XlHsRVxDmkmRgRg+XxfLxzalZIQiBzUyY9OHdLTFJTVAnDcLXvlzcfaz2le14T2R8nVl2vAib+9oCZDK9p0sr9NSIdO+8vry1znhGdQcHbiQ0olyNE1GqykpnpWh61lvlNPF1WHHVRgvBZ0ylo3T1Jk5U8pkDsmazXpNPOy8sII+PIW9lbpGn285H43u3ewhuue/bRSMv2fzzGFkagneRP9reU68HXC9nXlP+y++9+F9DtLZAjdTG6eLLC9SELa33oHDBrhEaKV9PnNt9psZ94Xm91nS1/mmnuwj+lpzh62Hmmv9/T2qoDB0F9S0usMQCm0kYQNlwNwLeDo9YN9isDh5I3VCupXqNXx4YbkV0H5wPnj7MtRz8ftCG380+Pjb1J1WxPhZdjj3HwILJRMHb16pvG1Vb5CS9bt8bMW7rKRRArX+1DvEivg90NyqOXDBwE/2javwP5rNy3zCJg6wxj52WMhYrs9riyOQxq7vSgIi4iqYFxmn3Y6yFsnM+WyIpiFJCXJq/yCEvtGAwwMhURAXpTfp4Cy/mTbpXu9p7x3uszgon1dr1ig2m5RoAmKyTNuKIXosdmhlyjKC9jvfGHBYHBc8jVtaPymyjyvIAQSWqb45/XSN2l3frbufl3P6C+RVRN17HROk7hysDunh5bIM4RkHG6S+umDVu/RWVfKy76UrUPGAsi/0cLWyLVYNc++Osm+ngOoOOIVbOZUOisUazhyBA5x9E3l2XOFNO405K8U65FlZSBeowCy3lelu6QDRgsVxOwWOK36aF2iRbV1J9ssVRhnnVbEo7bTyO20cBIUeVdaGcbtBjkYW2tag5PFWokdMF7ftVdyipKkB3FdSl0oTYQNviBgfkeAg7u/ch36PUdjxhEp0YIBr9sDGTKl+Mr/w6pWJB9Azlh0P0k04s3X403o7cXpZrkyJECE3nFw+HpHq/T9ukf/fH/aQZswAsTKeyFffqM16Hh6anGDrKpYAShTzUVdkZY61JSBhgDTYO0QUfHqqpuRneTjWH7+usB2i9/VbMJ9vPfdLp7HrxQT8cPhU3HjjXN71x7mwKD+vr4Z/vogtZr2X9Zp5sP/IFTzUu9UOXlZi+O3kHGkXEjb28vF6+Nji4TlyN6GulK9wyBrEzDWuIkrZ2+xnP9/We/UrY0EMK2UrbL3dqAD7u3+X/7xu2L53zODS+Oh5IKyNpuN8BWTgbG4MFzRvS00ssuj9z8ooFcQAq98eYPxWG/w/bFG6J+3zsrk/B6cdh5DamQtMZ5cV6X0s0HIJuI90O3emzvZsDBtWtYNUY3BwcUheLrO+qUYrfLQN3w8MYNGBNEhqXZQh7G1ceE3PcrlemgCA2qXiTdGrlfCItTkwItFzvvlmx4LzwqXEVRNbn1Vgn7hKwt5ek7lvcPhuT8M3Pz8928C7ZXcFSQNCjoE0DFySpQ9Q0xnPt+JTKdA5TtWeDHmt9XOoeKHulyqjsgr+6EJBPDaoEodfXNgjNSwF1kubmkhMSWYkmbFkyVcdLt4rY5RxW2qvobsqRutLz9Bf6CUdX5XMuY3+CziKNTomr9aFZdULav7aMMb4z405jY3c+76VFHVkNFjGtQmLgNembOTaBUQSpVmkh5egkuTOQkyvwXgCId/GJsQQ9KC2Vr18yf9/4nd6LeMpNo351uzT9OMPCEonTZL14lBuhqfSP3K1pmy9cCApVq/IEov+1Ins2hf9z8JSWu+RcFCuThTAcpvL1GqhZ50ITlYVCKlBVHuXstfaSR5+C4Pa0zuyJm+LtaZvb8NsRVKEqgciUsLzExF64Sx/L/+5I0FzgHv+n9iaLHa1AwH1iQ/uRz81ruZcBsQIEfcuQeN05RAFU+ugvSxLVwsTiCo8kSsy0GrZnXCDMHGNLZ63f1NNJV3jNeiqY9bEZy/THuaeTrysmdtyuFEJO/C1srXyNPu+rJK2Pymu02hSj28eTvkhP0eUKk8LxjeFnbQN6frVgO3Tw+9elFG90WZbXA9vq9DSxs2mBiNhlB+Fu+OI9T1hwfsXlDN43H6F63tlpqwPdS3ive061dj7osBebTOEwyY1P55s9p1lzLrcdzcgYYWtrAYD3JVq00c2QNO56fh4fiFMQXFe0vKSqoz0Tonl5A2SRgcyoDRp0mg6ptHsZUYDEjHVvfoUbKyLFpo7hcf3M6ld0ERg3CfLz5uEKQ99y5c3H4tc9rtDudwfab4L7oGtN6ePja3mubUaF8Ejdv+pEvApiTFzB5ncisM01mNiSTpmMVoP5PHU4LKmJbW9uGFEP/SOzZYWLNoM9RH7DqOTOsz4TTg4ogBVYLUR3wOHbsHoXH1qCe+DyZbTbq3qnOG/9l/zdbNt/fvFm1eOBvKrmKuBKoXA4zJUpz4SpV7cKhcCnrZ/MmL4mPPIwTFyFhhunKVsNuBV+CrSrTh6Xo2eKEpelM79nPVbV+I+89nG5tHCdKzsaa9nPAk7sgKRmZWHgdQWsVOL2x0s8WvMcbremHiWJ7o0v0Ez2FuGrBu9cLLVIyLtWLW07Hcp47oOCJJJA9NQJyMCR4IgqK5blfnXu+1XinPV93H2R+Zrqb0W3btbVT684yfs0Atz5/3h2yzify4kQlGQbvLoR18iHIsjT+eRUlFxbiXt0UzEc0waP9QyNV+h3acY3rRtIayJxK2UhkREPBy8+pRTB2JswN8wSD99A+2kGTgrdANJ1G4VC2iDcQK7LLZGqd4GwYCXy6IOrIfkESZCIXuwPMhaOHk1Z3PhzLup5MueXBgkByaz7ajZgvTIRgJKsbF2h4LHg5aSJacVPRpNAhtX+4uD3Tb9OKF4o6eqw1lrdPqOhZWX0ih23Fcv7EAA8zQD+1QAe1TeqjOvKL/JQoRmEl3u1F7BG6ppkhtWCyVuBMavEDyMOHN5B9F+hrNzVcm8wacfLeeiUrXpYsVeQVQVqi8iSYRyJjXORrAFrV0VkjK+FEG5kVEHFOwIe3KLL5MedIVSdXUQ7Ys8p5xwQtC32SRZF5RXHP5AQFnekVp0CqJs3rJ2CvLBNfmmuKzpxLFffeSbcMDVVNVJgnQ1M1G1V/5R064qBUmpOjB/Xbtv32stQUI5d/L8bBQSLdWYVZAGxKYd8mquTA/1LcFeVDpWZpZjR/iR+YlN3dIeIY0cPlKtHwtJEqaWpaLm2I0VAIVCnVmkQ8TaS2u5KsVA6VkPCM2SBYfqY7/WtcJXkNfic7HSdy4i3yYmK8p/MV+QpvbkxrBBQnDWYZg3HBRlawloBylDBh1Q6+cURDlT7HLkK49LbrazROTlb2tFEDqO1qfWeYQcBj42HMEJeXczKNUgJ5KdUkSr2yMcovL86GbNo44g2gykjRVaR6X1WMixvejr8IdXMJ9VXt20CKNpGEv1v8rUy2wtWAVOXX4+r6L9Zg2q08vo+vB7tdi9iZq+hySoHHJ26xauKALOQJVXYvP624o/1eZzvsQUvbI9jurjCO1hmrx7xMUrLv8bQ8pULqLaGK1wA1s42GIDO0kWPWGyxsUWWK/PHjfQALFUadcBMECz9VHm3tsAdd7Xo+UcR2A45ieZg+w3fR8Xta9ns3oBX4/I62fGwtoUgmWpUIxIdyVjKUV2IH72LW+BREc5HiCCYdU9TZWYSrq1+IhpdbbpC3tCgBG3AmNib2XowieN8pyC/q6CiASLboM5aEe4ukqL0jKxv2bIc+6GzLh4aZF1rJ1Htnqt+IOXERUitmVxkMVex6C1tv4FRJ+AsVy3sAa+uCfd1lYzdlGq1W6LmaLRehllr4SEPNf2Jv2mAQ9m1gVL0Ee5wmUzbAtFtn8ibQU26q7hbRe8bbGtMj+hSXJr1cn2hsUOcBu5aZ7z7C9gHnuA9Wuo1uybo27MKuZhlOplTKsLJdhkY8AI40A+6G8ddI/Eewb1d+vlQomz2KKSanl17RS0XT2IX5JzCGTKfOPRFbEDvzRPFeMTMTG/vkmxTIR/KEzch4q8Kw04utiCWgHdugAMH2/NVTH/M+9pks5GqdvsRj8T7eVvBApviT2FHOly//wcdFZiNGnXyIDZEN2MqdHkX+PUsygGNAHzyIM30+LTZty+Fk8qHLRw/D8NBuX7ixSqKoXNnkaPyzbpUDeoUQ2uIOkbhJ3CDakwHGKw7ClehF3h43Ku+8B5a9g0alAQwChomJ9mv9MXhM9IBUUSCq4NMyexSGgKFmiDzjRZ4ZVBAPRuHiPhWgGCIV29t5n2XOwE/lV81BBB5E+njyLOepOLARfbOyCnwlbDE3zrcxMlelaNu2N1EenefdAIlLPVPLsDEUBK47J5iDeoPLcSeep3JQVmrImeN6byzneSGox4AkneCdltzszuujaJEEQgxpRFcOp+gRCoKMJrB7wmICle98mL2rfiKEJ6rCm+nrhAv+1IDZ8cLASDF4+vjBcGt4YmI40idRwaN3V21mjDhTeZR1BJZ+e/cu6SuVPgwb3e3FND3BZyvxKXvVj3gsicrhcpAHy6hIfP1k4ddRtW4Kv4/4fZgwlQqO6teqIkgkxcofa+URAVuZs6um6ZPBAq22b7X9XZgqUY05Bv1YyvUUH28wDMS1+sRjQUjAzY3LQetPR89RMSiYnCaau25+/ujVQaiwMrb5hAXzhz4NQtt0x0V8QRI0ugot3snfGMUwFDix4jzN86179V8xR6PaYj+E5dc6PKYtO0CABKhXks/JldqZMDpdBur6+uSgzLbkNm3666NOsOb1Gvv3EISEmdKjgKH9FKcBH7xNBKo1s/oufZRGoNvod/06saG+HF+f0NCZUF+tj7ftGKrIVV6mv/Mlr8Vy/pTFp7eW5ZNVfeoU9Pf+U2+g/f2wN6f7zZucTotPrjBD1IDtbS9cmpmZLHxxRoaTJiW9Ic9Lby7pTxJ7DW8G+c1DVSv9OP+ABGqxU7s9T1putWWgPCzwM4lR1lqmjjEnLBHx6Ov7C1onJw1NNitBODde/IB938zka/pJ0dbJ/U43gzZOXr57M3BqyMD/lAzYAJ7zfudWtiMwugeU78vAducYOuJEa+FMekunMw8Y63uvhcr3sCKQPCTCisQ4HbHzhZLQ9PHCESd8T+BIwfFLHoGMjs3AuRIZFRsVLNyRiCB2QJ6RiRi8GxtNJKMaXdGj5agFWc+q7GxTqC4U6aJSFOzZ4ekSpXgBoeHtJRmK6HO9DN7eSbfxbZSnmtmhW/Qeu4V+0TwbvtdotZ7fYoXZLbWXoVVbggHnGp9HhLP4eY9wLvkVIBi/TVSPp1qtw7VW6LktW4ag22oV4e/OdS+v2Vbv8KuOyROmqKJlYTJaZOTagKw1hSZ+m/joFdpyd3UPiYCQrnGQ5mYGxmuTDKsrg+scWgxtLlgPOTOVkVzYLZD1kahSipUqpZL6ZAGKrN++/ZaD5um1cIdKyMQEx6yLfdIh0lv0oo4n4j8hxeRs+3jBUxRx4z/n8U0IlUt1ZrUeVThvljNVRg3PTAKagCwn4klfF2UCq5yyXrWZRp/IXzU4NMKsg54MAyCoWSSzMCVEx2brQlIKLeW0FWwNe31Y3ENy3om8H8nuAsVI834M/CcxKMQVNO3GTPEsTC0v1TwfeKvvHbrKSeOFh2ZkhJa7mryMcB4n7SobQ8BEYbmHc1wDSrTX0Bf6tsc6e8LiZBcv3lStyIVqBv2G8AZNSJumCuC3FeDBeQHTbsb6/rdHPb6JOJBhwGbtlgPbN5276OIkofg5f0YlIF8D69Kj0tcBr5EJzvPO3l2u7QBx8uym7QdS/RdcMASMoS4qWQjXYFNWYFPgaqF2rxsy+jqfyszKlB2H9h+pwRArVcblUq2dizXoyxHum/7Y+uDBsz/rgqwZosovVVySVWcK8/j8vI2Oxo6Nb7WNkZGFQmFhZASrkBUyWhGRmp5ykTixR5NreCaSow8J0Rey9SnsQj2bvafM6M1DF1a+iRjJjglhkuCYqAjgnOFcnvKt+K+VuAr/LN8kEV/TqTCIKTvvemv8jMU4yl/PU25itppd7q0Rj172FDsmjcYSmLJKiaSyydHY0fT2JlOduD28PCRfL2URz7EKWRpFzMaNMQpPucc+mQcTts3BwS1JYnbh6JluXlc9Dmm9lEzFppJEkvrpivKG6/uAFSm/9yXG3wnfqgL15L+mXl/7o3rFxiOu6GcHpgUrV61UKFau8hV7ZtTtcTnNGmRdZY3FisopU6Y3f18FqzCpgIUS7bHMO0uEOsycUJRUyCI07NGtDbh12PVfX9ezLGxX33939q2AtSmrkshmS0w85jw5lyE8xirDTPYg1ruwI8E8yRtOPisRcs23TEJehs+E5Fzyap/QDJxmw6TvfyRnk/19Nly1uSPaGpeAx0s3RdapiPneL3xHggk96RRXX/oOVZ1WdgqPXJUbPDQU76WLuS+HgnN1Sh8C1yok/lRZWvEsvtt8p+4BzhX3jRV0cbPvdQneRpVSTRQZZRtvDdtpYn5iR7z/gguVSx0bzWvBeahbu4dy1VtR8E8OIXO9TRPU8+Pvfl7b3GRu27xYr79V3KRy8NTNLiklqp4Yk/H7/ceeWlrfgJiZ+4+iwPsybc+Jb1/7mRN0vExGHaPK7iJ1R9iUvXQUU8E4N13sX3pF69n3V2LNv7vbC3N8dr252NPnGHmvXX9KI9pKSk9kn6gqViZv/9UUyGHr9dx2LkL0nKBN+WdlsnRK3mlEwwsJSb5+olSQsangxNqTNS+yKVKuW/kXLJUzpJK3hY/1o6EYH3xcWu02dYLzKgwOHYxr+Zh67Nbf3+xQCAwOcx5+gXP/C2cXNA6DOrcvnd5/4ZtNbg5gxhVFVBmFRnC/Nx8QgoFi+NiuZ0ew6N6SzrrxqzVOda68YAOKhIFicNhDB2oPPRKzkR3M0HxiyA/mVsRn72/cxmzO9YSg8L0ro3TqOzubqE1yNv3JrB4l6jNyF/IzSolcVotaDouUPLsxvqJ1ZcFOJO6veFY6FZdyYR5JDDlNaiqWUdccofthL2B9GUfW7KzS4gRNJpM8CarCQ75NpUqp5/pCDUp+8Nrm5mWla4oTEX3i/8z+UhQZBZdMifZy2+YVQeVSIrpX9IvGx0X9gsILqZUHL16sBKhSrvCxANbuvDVVGpWF4g+HYz48vby7N7vq5faCr77yRklY2sVFLavmx4PMi/d8fNxIwyWTwiJtA897F5nNjGeNg0mD69ZVUC8vC149vWFiAs8hnD3L5ODF4o0WDoarl4E+f156/Rum0fj996nGqzVWamrby9ws+H5WIn3orZ3leT8U4EgpMhMTTk6DsGxMZUsxnMUR/HGMKwdStsm2oW3ocW+KzO1B9zhZ7nah8qzLIWELyAfDcYJwl2ymrvg6B69rdK3RZbJdSrmHYVLxNstcXI35yQjA2/aE0Itf3YbZUGhp81fiPE+Qg3+9fv3XW9+MEEaC8p27H576JxN956m2fj1/dVeE8FvjuHGhs8KfUE4q7055iADR4L3SzYBhYihWCgaPWeLaHi5FLv3MU/suiiqlYv+85P/337RLy1NUzgxFRjkCTfL/tySdjusT3bBQeIpTeOeoIRyL1TDTSFgtkqKDQ1SgyqiWVOlK4eynWqjcodTKpUoKl2qlSmPs+65VRSo44hMJwY3J2uJ375ILd+oSgk9wxAphNZVD/UewaLK5XFntIqwtnv8/KfvD+eVL51nZyf97tlgnQzOab+/OYnln5zrO4Hzo6uil6NWh81e918Urx3f8pcbfHOo+s0Rt3Y9X//UozfJsUNSx//YEjXt47ZqXGzvM7HVt7CGIvZUV/iMVv29fE7UpvGq8KD+ubnq4kbwxTuuydBVhlv/3G+LVJZc47Ua34vGKxa9P3QZfXLvmu0fC0N/iK4Mujr1A3zuQmgnjXz2cnu5thCcEJ/qgfODKBLjR+2yNN8o7rSYoeGbhTKpXvJ22IqQw1IvoQXrmYuXpg4P1vAouo8sDxLOSB8md/NUxzINeDNgNCoaAsWK8MJQbMIbXQQUTFeOrTG7m28fRCFyv+Y5oruc0I673XDMDmiKa+MnKVUMnnnD97ZHVn5Ic5kV7mlPoFWsTgvvHPB7MwH60vaitZsUpn1P7S1TrrFWzXb9eD8RuKm57vJ0Z/iL8ll/i1lBeMi6Yu2UcX4B9V8djY5N53t6mlq88v2rh7r/Fi4urqzvlncRMwuAxd5PWChYzfLtrbVJy0roeNSM6jF71u20oquiT/j1UGXWJ6ZZyYImaaknyzt2ZP14tWZfq/rCOWU3Wa9bCkEfJHAWko1ApsUIWqwWXIwOWymDIHy9h2AnKrR9Evt0i3w/xWxPYmKXHcmFEXj7forHkvru7SrHSea/yZYonLazCpBSWZXI1fJWCAXELA0EMv0yu3+/4MYIGDmEIVC9M3ng+32VlEZYlQUfPxke9kT4wXvqXog+KgWttFPhp+Wo2D4ju5/P4h5erbfRd/w97vB3z2p1c4da1fzGDnVp7hQZeITuOd2ISFmYJ9mXO6t0srXB0G3iK8x3Uv8wZNSVGxKVDLHNr8zqB+9g+keA8Nx0ZXuLPOPIhkTlr/1pTdiI9iOWUH8B5JBoBlo4Om4psqlX6OhpN36m1J2jj9QplW8v+JUgPp6zoDxffC9+NNb05tzbrnqPVs+ffOTk6HSW+JNyS/5vV35O69zpewGOi2wwOc7+KaOGdLa6B+DOZk6Zy2xKFkoRNT/4gL314OFLiB4jKAQo9ACT+qtGMjzTSfguj/ZI/D0SHwKF4y6rgzAgvdD2Jl60QiGu2Xy+fwx87KTJXTk/+MHfdwvCI4AGuoi4rxFRssZuYXQKqeARAH9/Eepg3b3qRkSQI4imIwHX22LkqgLNzw/6RXv5PZUks3WsVfmGo3iifdXofRnuPHjepUqTahFZRLVabh4SFYg3RBVzUOlhRCK+Yz4RubwO7b4CK8/vsQZ4PedEzbfoz5TPNgBgnCNRFZ5hxB3I41dyxAzDiLA9DFSpasH6Y+e3yeVRje1q90fNdxABlUlkYCGKVSZCBXLBBq02ba6fU0EmwYo/s+9wis9+hz/78q9OjdiOwLV0ReRIwzQovFBau1GUrS4JdlEMLlgNPG5IZfvPmYbEZJWgwmeQikeZEVbYQ0R1U9DyVkrFJZZNVO6MKpQpXsE1aF8AqbEFAJW77deNuW5j5Dm5+ngruMUlmfrd8rtxB898+6Am76glTp7cR2B7olPKAh149yZHSZn4BpoAXaEA2zDAkLf8MQUj8Eaq1Q9WgZ/mn/li9kdJZ9bb6z2tSVn+yZzEB9jQo6NgJIZAaEM2ExHkVwInv20UZVdILPNb7zXzqD7TrlmS1BQ45YK+l5hj3/t4DYCqCgIV/cQOF6AQTSWgFD3S8ifIYXUswS3SVpp6d5xzxzL+ikMOiDXYOwhqyX78Eyue96B4fwYAoBKa87ZIkXTIVqwuc/O+/d4WXD/n9KP4b4CAe5K2QqIJemAHmRkJTJVdkqGtbEKVtC4pacwF56YAqtjEUulNFNHrehmcGiTHVxfUCki65IMPTr/AN/CL3PxL+GA5/mJf62q0CcjkwCKC7neko7aEO1B5ncAq77BS2RX+EYIEGwLtgADGgg+Na+TwYSbVRXedXRQHdKgAlBN8uutz1qanfGbfWc2xcLZPQFfR1TBm1XydBJC+MQB4Hq5VypXOl2dzvYXiKiIiIcnma8l6P/daNMV/vBluQ2AHE+XYHBe78Uz9Cc/3HrykD+jtu6NQzbzgcO6kWdlC0UIpVXAr6Qr+gZ/Vc/CXkJaIqtoioXTClonrnxoHEH02wK3aLr+uyuL6KP6tVALEoArj3x9qfbq78mufYJgnBoyrVOvAYXY5DF467vFufILLruQAVs0QRbiVSdhDKOXBSt3ok8lhJ1NLtEQlOPdkLAeAGWxOkay8gcB0oRhw+SKel00GIRDBTXX+jlD7vBAzelxjiEr7CVVwXmEINKwgJynw0SraVZsrP67wU2EVkGWS1WqRkcta6WqkrQk3D2KdAQlRQZsXkj4J1+jo7fdW5yEh+84hsvEwcQykymnAlN2zaaHWDu7NokkatHuHCnfnAZ2h7zWFTxWtP+5opxxGf7aJzIKMuc6JFOxiRcUBqHiqw37ZC3OgM9ssdv6hOZaef0T6UVYN1vAtoIAP6+UNRJshIUUglkY7biTlZxGCClZp1QHgoEQsrFjEyrEJja26piTPBKw2OmaRMttER2/UzbdalMPz+vGo18/GsrBTk0MXxtGCwcfgKkEvA4hW6yYSkMGVFiEnYCnMxXxgg0vEbo6ohednf+q5eTfNJEPk6zW9FULQgoE1IgGHFDIepW+qjC1Xmac8DWH1hKTe0FIlKXmEP/5r04C+u3+mMPvaskGXXiMvQgef0PJN2+hnYi3zmjK0yXDn8f+lAS0Gw4Rwax4DYUCkTDKDhdnOqUGeIjHLWVIwS8FVRCQlQlav2D7IMFYhiBSjgAoeoyx40Gy1qDfCRtl/3fr0ppkeTmIyS0XkUq5iu0B5WLhDCYsIXuiOCA2aaQjNpiK5pJxtC2G90Ejy67CH/eIGVc0bMoHBLKNIgsGFrgNEWitBS1UsYEFxQjWC5p/Lswe/FajayruSMXm3urBAwMTtVaBQ1z7l01LPlHe1clnWcUwuGGJ7OZfrdSgyQdtLOgNPQeZ7kveJ66vnDiQpOxwSCSROYMhbswFhB6YHiLkOMhC8hEivChC2rIeWvNuGSPk+iaiiLnHKeGYQVOezOxOPLzVjUgaBMklLBd1ygimmlstRlEx0531wogeGbEOEtikEnFDzKZwQowRmihAlmWOYNId1peZ6KwuTdQimkiBAWA67tVsTKgisu6FKxlH6AjuHCCHRFhI+83lJRFCr07AbVj5zpDSEeH9D88QiqOQZ79r0BRxRpNbitJyq/upi1gpgdpmrbuETTnaGm5z/fXV81fMugYOXl3LVNxwfPclLVpRqovzIPzRDblGpUlhrNmClOqnMEHDTppZJ6dQp7QG+KPRaAZchi6MJlwjlpJt5zxaikpe7u/m07vhOWnSYsGth3Tnvgobm7XveWkkRtWcRB2kuHq9sqYAxW15VeDqVQ/+9KBy3RIIi0kIOg0YF0ZXkho2odzwTKCWh1CmInnzZ5/39TLEzoRBJNhgn4f5WAmTiR0VH5e5MDz/LncNypu/oniqHfqPyhc5Vspp8LtriFkDr6SGHNJ6beiYoFE5D/WlNsTsWjf+zyXWZyGkMwR2UkIkMuYKlp2LN1SB0eHCAEMYdDiDTmjBFdG7sZw9B2ntbGdkYaHKBw5W9gUBIibubT7Q/Tk/p41GFswxY7EuhkKbVZOnRiRBwCbz9VkcQ7jTaJY4BsmcALTB/ka/dftVlvyeHa75aWKmRqA97HkoT6rbFCUvF+f25/uDG+5g5ImIKi/0SyIfg2A05ZGByCOTvnzAwEBbdA2c4WiPPS1P1e5Bscy4Bqc0nn2tYGMmDx5bMwIxmrIyzDFkOQlPSCQhHHuIALae6lglcOmu8ED9wuxI4wMSMpSaTrytNGzt/qE0n16Mz7Vq2vNQIlrWSpEW2ii82i+YrItZAC9hqxJaQj4Yq5DlobTmE22tldqx54jmXIksjTFHi733zO/IuiKSb3E4IvRMI5AFKWzgP7M9gPCI3DBnXERFWGjbKqT6tMlZ5wjbfccLdC3EL1GDdTu8c93pPBvCV98t3BkAHga0xKKF+EIoQgMuM65qA8fP/8s/rAlE/Yx/TeO87RQkZE2IpEnRVArK0XULSpzUZ1OOMJXCTcIdAF1+zExM69vTZx08tBbvVMfX7eDFwF6j4sTPvzZeXleNgU61BQUhEcjLlESgYqKYhPJANNKjKMum9MVd7Po36TdwiUeFBngUL2hX3ldsPx8TjEY6W+uaVGcBFVF7iRPP2oYZuiEKmzhJLZxnmNf/t/Txls/u3jnlr//y7h4f83+uVln8LurhDxP0sgT/xyGYb8V9gTNaf/v7Px/t8g/uyq5q0caENCzr+BtY3NaIW2hY8MuyESlK3vINVDpLXvIwUSeaDN//f/zOkN67784q7g9LgeZE/bmjLGKFlqyBxTBTB9fUQMMZCpNPHZCoKN2lZqyOCjNz+Ypf8Y/LT6Pyr2Hqh09sfcoAbSsoR49O3y4RR72mmaO4Ma6LSxWoeG6FEIGLBjpsTR3GIvv909mRXxKvYNsRP/pZxMROWbgZHu8gMmgwvf5yO0qGf8is2kR9LjR36YUEkpW7QT+MY8s0K6H86Kez1JlwmddHfB3VSQfinJS2+q+kn8gV+zppm+97xreraqHAybUhROJJZPOCNLRHv7gp5vUP02qT+sp8ysyye0bBBMz6Crq3Sw0q+Jd0JMdD+TD74Zyvnl/emRKL/212zrtGu62lVUOpUFUp3UgrKubNGMnXFBj6713d67l1/bhsoxs4XA3pL59F7T7jwAiJX4gMY3qZbD3DISfoOBgUmmu8NlLVwiAEoDe4YIfciDV6Uqkc3ndplmETj/kcWPxkEldEKkZMgK0RSbxByZ79lRiLHTx4Y/356ftlueKwssVbn3c7uuWOl3KnDn4Tgjq56dFA/4H0s4QbzzQ02n3cGnpYdQsQ6es2ZzuigCh0CYxaNI6Zw/hoU9jImzqTIDTlLCGXWOw+NoWWONQ981S8twKPQ4usGitZmZKL/bhqJf71aGy6fdwDA3H62gRwnylf86P4JhrQF3ByJpEMhuqWpympPZi/8QWvw3x1DtX4uFZhyR+W9uErpdGpjn0ayEhEpTEEYAk1YZOAzPw/MaPq3gxP8P7aaurR0aj81t5ihrKKgIrQLAMeqJMeVFqaNal13LNZDVZS0a7FVzq/l18ZWTKO7RdcNprtXgHFZeHrdzd9hRSV0PIJijc1zIuSDKYnUPiaJzFksn45DZU5m1jZT4jixqPs/L+gu6IjIkce3a+m37qvpzl3e2kTUmQ4BxTOFnK9DkBbr+ChOOYsMVLOL360YMcXYQ5v2QdyuA9FrCKAx0HXgWIkKLy0wcyRGDa6eVeOu7bCz6cS8JiYshGyQ1A7mBIlJKhvdLeL95mUI4dcQqJAo9tH1VWfrukuF01UoaJO/L/sQFXe0CxDNseK0L03XyAeig7b0RGCKlTFfWzSEF6UtERJ4xXIfTQN9z57FdW2eAj49s84/b0LfNYbepcp2lgXSGFniOz4aPYTWZUiOj6z+ewWp3E2iuk9sggTyGpKIBQo3siCO7AbjB3q3M9ZCD4DrklEtBGSUHHlbKEcrJt4/pjEp2z4W+d3BzbhkZ+uEQ6Lv+UJvpqsZZidUUAS5DnUi3jZSaf6xJJw+vLV1VJJaqPO7XvutTN/9idAWreypFgMerNCcEopPTBD8jPA6gqW1RYjgJQiVFlB5Jj6seJgWVNGKaUQ1qwPigmOjXq4fTgyv9HfkMCrpKFbS0qAbBVHY1UAQ9kBg1168AAwwmxkA8olLHSjbxuLZnKmfXA/fett2rThA1bg2flnEzc/EsMHA4cCyXJY6jAhk7p40XvTE6Y+3k9zhQEYD0iLE+wyqps5kiAAUsUHMJ+SCsPK59u0/XviAlLYejuf4enb0QsnUUUCUk5aU5aJV1kJavsCjysWm7RAO7xhkdIB1mCFIlflwYgRMHbfBClYTZvPTLUqlsYRIfgXXpmpVurPz3kg5bn8bTH6b5zQYxTKaTY7GeqEDAqpVgYGCSgUdioGDSK+lUraeiciCne6YUL7stZdQjzvUerv8SvWx/41Fn+9C7d0m76kvqSSCBmAqQ6znIUat2VCGboR82fdhQMR47iNU2wc1ZZ3GmIYw4Gkqbp9sOCYx7GMYdxjE+T2f50+oTNzgZrk3fI3tcQgVX/v7q89Pd7cV5t1P3LXNTSq254GTrJf8LaoAssbjUK2oXzqODpMyYfgAjl3LS7ZFVUDZo+K2xXRcMzpOUY+BxJ4ZkLlJLoBF3lZCuBTmCfN2uilR4/RuEC1JqaWXjR9kbidX+V+2qo4G/3Jj8DJtVU+gxQUtJWRc5Jd0iF15P0PzHGVT75eGhjjieUXSdSzamtGQmnTSECpe1QG5sUCrjOaNpP6vg/Oc1noXV6+XY1FW69iUlyHIhE3CEYhVNQLVeKL9QY0QzfsZ4fjH0GMVOC7zEl+xO7BoPNOGBU9rOuN1yCsT2Xb97+HZfdF1JRHpLdxl10ntqJdwi2zadQ1FQ5NiMa80D4xi80Eh1l6L6Qn5MA4nQbWKKFwpnQLYcWA7QiHG9QV2rT8cd3tEjTsRR9SqyYio/PrY/K2yfJROfBwkblLjTAhDjENnHITdHQSsSGrq68qMeaY8I7+s8i0LMrOEmgmql0pkb4foUZ9kWhkVaEVJfvUaRyohfoeGw5Zg2QL4/WOfSH+Jyy/j4r+LVt/pwfLVrCXrGfSZxJ6ZcTDik3CCRZCIyG8C6StWAUFnlDR+tHSQ/s+vjwi6PHeETiBbi0IrgVVVWKgk8gs0zOPnIyo9nMOpVsm01QptlkQyJvJCkC+mWBHStdX99s5QB475BsGPDEfsa+j0KkRX7OsBUj4jW+DsFFU7YgbieWKibdHnT+eR7eXLKKjyqAIbe35V6/6zl6p4lL4HnWIamSLj7BnVfH67rM6b0GvMQeNyxrxNpbPRTjsdibrwk5GhzEh5dNMBJWxX5EdKPMvZjmgujYMExgv44eALsKIJ970Z30RNL4Hcqi+Bjp4p6bihLY466+X71pvOpSHqyn/wkUFGBrrO7z2R4VFRRJndWJ+s6ts1hv8MN3WYDUxzLnfywD6t9MIGRL7Qh3JxQITzooRNSAcwSd3ad7DxLw8athCSKb2xVZunFlB7L0KYlF9Y2sEAj8GdVNBjKFUqsxSxAbkLgGzoZ6nhfOromCtzitLdPWHyXWe9Q0qbwFHKAtHkaZpWFqGTN/lNJpuw03oadG2aRMA0F1QWveVkxpYXKltKXf7cIYA948Dv2w7fs+g/WtnU10fIJ1WlX6LQ1O80SYug5wAupAIldcKMjwylvPQv1BV0WGap8V2d7ZOiy7jPOpkG154yA9yjQKf/UFAUzpqGQqqObbv8qhkyoriAZl5LLF6Aa79B1vLGvicqR7FzesZ5+U3fozX3tIPTH48NGsSnxbBtC+SSQfqneSLnM2enXVR24yYvVqYSDjx2NGrQa8ZjoAWF1Qp+E93HlALWByJfnbMLpPo6rxmGsQaNnhBLai0YMbRyWs6Zm070ngdzG4sROQ7Ybzk1TsHq7Dj1nRem6UtA8PMDO5HUkpRh8mYmp6K63r0g0MKjDHGjfgHC5pAVlg1gUNB6RIuhqXdEO+oqI7x5bBpVADdX9piRcQLkdJdaIUk2Mny6CYmwAclx3Pr8Y+HjZrrvXSdth+hJQu0qZAOjlFhoGCXnMhrAWs6LCt+msAvxQ81TW+QXo+4GpginSzqWMEdynCGOMWS1Sk+fOXxVm6Efr9zXjuHmMzWbcnI3L3bZsq6bQabIKA9/9ViDkRLDPrnNFoXFaAMrqkxU/tK66kRorLBjGOx0QxILkkEkBSx5U7Cz83/glksokcDUg3RUcvU0JkdrCJjfHyEytXM7Dp4w7LeIuGl7ki6RIoynN1U1Xm8K1VxV6qpBW8bqD+4JrnRcVbl4r3Z7eMyz9fgCtvtqEkTah1DTJc1LNZ3SFRHbcquWq+texa7pdRVG+V4rYQ+TAyRrhN6Ve8kPRybCW4mH18ITrcuESwiKa+fP1x4ebs27Hd3VNYl5aeP3+KKZ9J/phyz6+4mgydVxu5BVGn7Fvgg790PVze3nN8g1tdNu3wIBRhnFOgFBlm6ETi0UosU8AzlzQFQNhqk2TKPI8xiYG/PzAtnIspGekSHxo34/vmyJp0iaKbet65YWtgc9kleB2Z1fV1YxEyndzZRxW7AAOEGeOARlDzq5C1DbYEiYChpfPtsbtd848cV6288p3LV3lORoeZJRxlpxfbSqiUElaEyNZmNQ/FuPFrifMwhGZsUJq0TW9IFIfSUi8yjZJDAcq4fBjSLleZkTRKxQUY1AzIBjXUTuPYTbYWZ25XOHzeZcWYn4zxobaMUW1BDeK/QSJ6oE30oOeyTlzxsGl2bQcRxJlOkFdC0R197AaWmG1ecdW3p4gYjiVAO6shB/YmWE8sTUmdnmDpEItLOnIRyOLxLt0/vvrwaoMU5u2gBIuAtQmsRVBQjgyVaTVWy3UCmaXBjnZxK8P52cnx0cdx5b4UJmlWzOSnDCbGAK/6wixIZJEHCay8yBB2VN1ZZwkLvyQkuOesbWnDDUMVHtWCnWk0ybbvmtj7+5KXDkbhbZthjjNSQXwzqxqN20Sr0JG54HX+GqWeW7CM0jhCrPun08OY/7LV4GnTU8bP899Q9pHPahSbTKzZbNuzO6lUaRdIGuwTkumUMIZKfb+M6qwA1B/7cqf8XOfZzZZxZIruPm99ulx+6pz1ay7Ns8xVKFvDnWVq1WUn5yF7o1bpvsNQAYVimVVhTINp91W26ss8RI/CQvdbPxSNIddPr/oqMqHCbQyMpInzi4PIXRjh3GFokFf19134x1CwZwxq+0UUrZz2Dk4Z/zdE0lgGRIM3bHZVDqLQskJNpsbinWkVmGKEb8yJ4bUhwwZEOxcKZZ2cCTy4ELhgJI6WCTkgIinjNP7DC11WFlkKWd4KY/0qvq/7XzFeDKPnonRuhDZ2o6uOn/FlcFoEI1+6gPUMb4YxqFRN5rzv7bAjU4ugl+lt5uJMZ/vgYsl8Px0+vwXSI9n4sUzd8jR2zwOj47vkA1eiZxX7pA7YxA3O9N9u4E3RyB5036CN2G9MDX2K3xvXE3Mx76uG07XVWu80IO/hVlT5c/vR8WeUfstb7a/ArMINlAT/vCUtfn8T4LN1EPsV0/5Ct4LgsP2iO6qSusk+XjNDvNcx7ZMQ8+2RjlvBoaZXh732/Uy9OfudGx3DbYe9tW2td7osrXIE7U1S38RmvCvQ689C9w5kgaTTzR/ixJoZKawxEpERwGWX6AoKQYGkpGzhLpVFf7EgK+eevt1FZQNH3vvFYz2g2wGq1DOxYLBJOLU+9mpnL1LCWHETDJ26UNepLFsH/1s//qjo2bdr7m2pggcWb3+DP9Zvk/iMKB2lKoTzqDaHUsqX7oBKEVqadaLJkoLi16u6AxzAvCOUKCaASN2ajP32+nYu0fLmA1FMXArDtR784Lu2Zvf9+zBqPH5TBOOOlLXCLQjvgoDunrS5YwNxDeSg7T62HvZCLVRZ5AxsOYwnMfBhvMLEo2nXx53fVcWOYa8pC5L90vfNrs6jghG5Ybv+bk3+8txYaLGgUaZQl1S+k524wpV2sh9DdB2EZgzbZDzMIzD2eYJ4PG1ofFM+XEdTt/IfCO+rzdFnqW+wI5Y8wE/uKcGnYaU704e21UAEpRpB8j94BAQv7qjqGRsf5wP4c6bGaZB4TmAX/DLQ55lihflu+7KzaQO8LWn6gB2/uESjG4kmVNrfNwZUixE7GK3dQzPoCG6GIHKsCc2935XdlJYpe62Q4tTFF79AvAuVtGogkvfCjzb0BWRY8DLbtmCy5kkWWCovgHUe8GlLuGm5ua9yxSL3oWttG1faRMBnmWZcEbixsDWiQLi2tfD68ZZTantVBcBpeEZMT4A4afliUqJpi4aMZslgTTbQYmqxtuj4q7mGJp98SgfHVFd3i/aq2muKNcqS5PtvdM3N7gfWWaYB369/N/NMiBz6Dv0Ctj9lEj1XoznvNw84XX84xLs2kghXmcxpk/RCfNjHv2RQY5jxO81WlNqadfQOqytmSpRYK1NUI7ypbUyG4EN2JKqTxfYQpsw2UcCv/tUi7BfQzxk3IxXtl6y1muzRpG/ddNGS1Vl+fq1pcVFWRnpaXpdsgZmNsGPCOPS6k7HZkczSkmnO+UvaH1mWApIvEylX+CSMPJVS7BtoGMmbYHAAMnVWRXnCRsG6jHuG56pN63VysDPAIZAboDdVL/9pkg4mQTBASNoMCUeR4pgupX90O1fDo+qvFP9p+VhIPLTPvSQSW4RVxcDI/6pGdHoEj4jczh1uanl1THAl3un435bFUm8jqTAD/eBAkfcDGZWMVRE8QJFjC54ICIkmgWSGwRmNUE+/Rjj7OB2bD8Ibh8nPpY7t9fjdbcVb4iUVcn430YlRGM1Dc9LdkTkDpljnpX1CB+t1bftdTTBeMDzQpiOk7uqtRItsDqORKPquqZg4jqWSR05nHozhXZ0Bn//lKPB2/3StSoT1L4X3i0TSEO2NVElBbGE7uRTrUjwgUydQnFQdiYgR7E3K7n3Vdl9yXpbVQAZkP1WNTaz26psKPI9TswGPKUgSyLBMJZeHfKzixyCfUmM3HfU19cA4bZqFXjUdfoqeEjuHl0AvCeWIzjDNigEB/eybHTp5YDe+0P5sW7TdoDq0/VWq0e/Bz9fkrA4tB9JfSS8UY1u0iReSWa/GL44B9KV5cjbwPhRNzDUZQKEAq42mnC3zujXUozg5kWREZL1wevlvKmygzpIMZeUYrFxK+9Xl7IhGtQVTnlzulWkR1d5lLhS97Od0727N/skFjyKSGYaKVdDyVeoYnyAXVj1FFCt6vOmzDzvr6bJKvA9wfCb+6bLpHP+far2Qef4RXehfcj3x7dm7GSS98Lt3nJTvMwZS0y/AlXGPMNs+/728hi67QeiH8BzNApjTH/4KY3i2D0CcBxQ6uE+cXlakkvDObGyLGupqbpMUEpvb4NrIXomUHz/16W57Vzmdv7GIm71BmOAP9xaR3ZX1wQeHHvevkB8Id1srvUFV3ZYoeNVGEgxIXK90ZNKt81+lyZ8LrZhYuo0ZvQpEWvV4a74o5I6LF7PTt8+RFU/Cj6a68piO/Xr5X/nqWDiUywhbmEeC9uiC+nsrg9sW9C3aFvQMtoWZEX1AkOIxUwJ9voAlQHD9DoxbzJVGvaguJNIv7uKrK1EsypN/6TG+JBbHh5K/PBP6e7UytnyNgH+86/XXn28a9Ztg6WKfXtQiS8XHa7xmveqzI6kupqvH33gGpJH2NwxGG9PdOp7xNVKKa+Z0z405QTiWs0yJdtKpsHHDo63JsmKEeuD4P2C4tiWH73MBZKn49GG3pVQy0tVQFO1xXu3pP2Jo0tskVK+GOYb8mr3s7ng59Y7J6mhXCcUr/+jWDhlfK7vwwyswKVHy8jZUlonGW1FQQlaPL5Ya2I+Mb5LNZ1AGGirkMqHY0zp7rDbep54kcs5/+09gdm/xrF7k214O4YFmzS7GcHNkW1mOPr0fl8HR8juKBF/6zh049IHNAxtzgCu82o8Sj5dYvBE8OQaKQhL9n9+C4jBzsITgiYU5GuToZCS4vyygrI1uVmZhpTkNG2aWpWgVMRIJUJBRDiHHYxzk+t4HYW+Zw9dy8BbfKu9NB+JA7WGxKfrUMj1q2CksNWlidhP9xb6+z/fe+xpwOSs7hfOi8EL/vPec+6zzjNBoQ5Nvryn78o74rYL4mBXVd7goQVuNMCVusDfnwXHdfJ15CS2T1CNa26q2VhSbEyNi40If13hW5qrizMKCpl5/PCbu7dv3hgbvXLJfnbg1Mnjh3uaupq7Nu6s2VlsKbGkFhmLYg1xBhgofgz/WOiyuahsXcaF77EVj5ab7qp3ogyN9fKE5udzwJVTA3T30aE7gAkGrePRolN9zjUMM9nMwurrtTFPkdXXfdtZpVp9ZuPTM51rLWBFqKucZuqV3KDDjTVSIyGlgONMhzHJFCJ/8WoCIL9lwxXblE2n4wMEHxg0GljQ8m1xNSRmLBRdryqiI5j+IU/B+Vz4knrU5eY8rjM1dPy+MpS8U51FMM46Als+Hunii/PouNUpnJg9ZiWdK32Z4h5+c95u7ymA5fvz+4v79ln79KiT3KubviUrQYkWsql47qrANXCfxBxlzYnXhi0XD3uZL6uercCHXWzaliM5qGwWXIzZmvME2Qzs2qabA61M8LWiDfVPeKUOrtwhR0f9DqnT1VLKjON6Hc117RiGU7OtnmvYwjJZCiHymdSgS38+pXnDnMjEm8Zdg61eKjktckJTUb6tiWKwYvUIWMLZ5jwdtaTjfgNtdOdqxHoLhubZvpGl0r39cOrDsV0Sp1er7JDGokZIwsZbFMbVZJJIGlbeIK7HwMrZEYH9HUpmz7+Y4PWo0uK3qsAjAXBvz5UbYV6zvZ/MOwOwQgBi5f+fpSBJBfgjvIl4fl0jzjtpsox5tNOAylwe3QjLhm41rk1fAqJ+vpO5INKE7xfZjy0rRH8iDjNsBIUBtUaLx6TLeOzUWh9ZlrHzex7ORP3oz0+y5qpeAsw1tFMzn/+0STdGAttNoF3yT4TyN+nXIeS7oNJ6fpuMg1wOsMD23FwAGWNprTlbzynTlc8cwwg5PW9IFzfsxe7oWVmb2udBuE12nhxqnz8eaN2GQmS5/1qToM7Fh8LQ2RLPtSsOAF+J5g3EOpuSJE+f+xqtTJLWhuaiJ7AeYriEt9L13WTfDyMRkvZ9vi84bweI8uNZWV134SY/1HXgai8TOb2rOC+/Tn+z8zB8jRD8AL1boQT+UWx4DEJ3Q2BoJxhstzPYOG7nMLgiwv+0XYKH63YZBp+0l0eJ7FoVkGAGDopy2J2H1WgnIqrSLhDS++0WIqpLpL9lu0JGn7ZrRNSn3cVb8r+QhyGde5gAhk5yTd1W9GEdQE1mmHsB4UhaROpfeKqZ+ClcDg81uc8rXPWci6O4xsX+ULY7EMhS9DTTtoZtOKaJUY66VgLJJDbS38jFsvUHoKMGfUavORvuP+umN/2leqP/ZBYLhuaiCL1QAB30YLORw+p+0L1ezzroRRk9s6gXbKl66DNNXMjpPkxlI4hT9kJZYuzLdHtk6hu53K9ehwv14BSQdKNIZPRiOjJsp/wICeZmsjSyDBplhqbSkVandZTwet5F75NL10NORn8JXsC7xo5rbp2Q/0lQ/8m2KbKiarphWrbD6cKlK5dQxoX0/CCMVus4STOl86KsNvV2tz807fHUnfvhcr3dHy+vb+9PkqIZluMFUZIVde6GEyRFMyzHC6IkK6qmG6ZlO67nB2EUJ2mWF2VVN23XD+M0L+v2/f0BEIIRFMMJkqIZluMFUZIVVdMN07Id1/ODMIqTNMuLsqqbtuuHcZqXdduP8/X+fH9/AIRgBMVwgqRohuV4QZTi8xknxXC8gN89iKN8UXucA8M13FMwrfi6I9wx85We2ploC8Vb3M1E/AWeo8kS70cQSDVy2wtvsdybj5jzMW7YjBE7kjrc3wGN/UPzG3hRuaTjFb1JhqNedSO5jHGuY2qiLPZMyZEopTVG4znPDIBHwpWka2l2wiKSZooUbJmrJORNBXPnocdvwLgkpIIC5e1AHxL9C0zrOpwfVRRKRRlIhXE/bnYkBS6kWj1JV1WrD+maJ6Lu/WlxuRlCuL6cAixSXVEexsunP1uOTd4zRl7dJKp7vJ+DQYFrml6JiaoduYJjKR3Y3wj0+s0TjzJyWxpmAUQwX4hC7SKvAKFUls8qsCs9k7b0Js/Pr8DIDNwAjbdDSJvAHfSv88erUAz7pK8ZkWEZbImQlMGUIFMZbrkqiUrjsErjWpt3sr+XIjz6Bl7kVxCuvJO+NmJt7qmw30u6hJvhSR+Olfc759U3AgdTAX9pUuByD/+U40zxkDfjAvgJuqe7wJ17Zh2Wt0+4p1CNIGZEM5Sq/MrYFoRKZ5Tgyzg6T4+v1Kyz5Bl2/gzOLAJn+ZK5XZU3OTN6w4fhJdWvmydl9yS49B9YU3nyHhsKjkfBOd1wKr565ejNA2qc41l2bhAHReuQxCfKTfXe5rCjl0KbF9hPPcLjwccnm20MJdxsr7D97kGt/CVHKd5ptsp+Sa0YqaJU5zX2c2zQadXUcc1SOropVYZHlussqZ55Fk3jWqMKvR9D7XFY0j++37fxeuJvvPMBMudujnz/sbmn1T3zt6JXDf6oZxTRu+H0FyieBkEANQ4zNUExzSsLIE/YUvpk2klCFzRxnYfnQSuABlUAjKrxWIa6oqvYD8Ve4Z1XPRnClDfd90ZF5XBbXo+JIWqjCuk+9iggCv9MThtNpzSqqp1yo4eqCKRa+GfDr0DrCn7BZDMKpZRSh1F/vQKvGTQaRc9hJ/Gu4Bic4VCRR9WZpDkyJOz6kcRF8FJTJGBOoe4HvV6bbcOeTla05WZUz6CAqWkLig0F1fTO01/RpBUzEKr5fEnpCZc07DNr6qXqO1MvYkLiPnHWE5HBT0VhnyWE7EL/j1IMvfzQzG3tO+KGbtSw8RPDRFU5gpfvFBVlmVt48WVXP6m2F9mkNeEIZXWoKP8TNgokF+O+eCzW9SvX45bfSt/QusJnS9GIqBr4QQyhYjuN3/k71dxpthANRhEmAl9zqn6ib2dbmqsQjaOdDBEAq+JWY5KsajpoKkcF2lveZ91UjjDV/aaFM3mlKxYAPt6Ls76OYdKUTtsIVsqWhCGRhQSmo507XEbW/IUhhspJ+8XREBwJlovg9ea4CvdpnNlx29m4WwkZ0tC13wwDibPzRduOm/EHcOMdPqOKtfZS9NkmJocZrgA= ') format('woff2'); + font-weight: normal; + font-style: normal; +} + + [class^="icon-"]:before, [class*=" icon-"]:before, [class^="icon-"]:after, [class*=" icon-"]:after { + font-family: "icons"; + font-style: normal; + font-weight: normal; + display: inline-block; + text-decoration: inherit; + width: 1em; + text-align: center; + font-size: 1em; + margin: -1px; + padding: 0; + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + line-height: 1em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* Font Awesome icons */ +.icon-pencil:before {content:'\e800';} /* '' */ +.icon-font:before {content:'\e801';} /* '' */ +.icon-arrows-cw:before {content:'\e802';} /* '' */ +.icon-doc:before {content:'\e803';} /* '' */ +.icon-trash-empty:before {content:'\e804';} /* '' */ +.icon-ok:before {content:'\e805';} /* '' */ +.icon-ok-circled:before {content:'\e806';} /* '' */ +.icon-ok-circled2:before {content:'\e807';} /* '' */ +.icon-link:before {content:'\e808';} /* '' */ +.icon-globe:before {content:'\e809';} /* '' */ +.icon-plus:before {content:'\e80a';} /* '' */ +.icon-plus-circled:before {content:'\e80b';} /* '' */ +.icon-minus-circled:before {content:'\e80c';} /* '' */ +.icon-minus:before {content:'\e80d';} /* '' */ +.icon-text-height:before {content:'\e80e';} /* '' */ +.icon-adjust:before {content:'\e80f';} /* '' */ +.icon-tag:before {content:'\e810';} /* '' */ +.icon-tags:before {content:'\e811';} /* '' */ +.icon-logout:before {content:'\e812';} /* '' */ +.icon-download:before {content:'\e813';} /* '' */ +.icon-down-circled2:before {content:'\e814';} /* '' */ +.icon-upload:before {content:'\e815';} /* '' */ +.icon-up-circled2:before {content:'\e816';} /* '' */ +.icon-cancel-circled2:before {content:'\e817';} /* '' */ +.icon-cancel-circled:before {content:'\e818';} /* '' */ +.icon-cancel:before {content:'\e819';} /* '' */ +.icon-check:before {content:'\e81a';} /* '' */ +.icon-align-left:before {content:'\e81b';} /* '' */ +.icon-align-center:before {content:'\e81c';} /* '' */ +.icon-align-right:before {content:'\e81d';} /* '' */ +.icon-align-justify:before {content:'\e81e';} /* '' */ +.icon-star:before {content:'\e81f';} /* '' */ +.icon-star-empty:before {content:'\e820';} /* '' */ +.icon-search:before {content:'\e821';} /* '' */ +.icon-mail:before {content:'\e822';} /* '' */ +.icon-eye:before {content:'\e823';} /* '' */ +.icon-eye-off:before {content:'\e824';} /* '' */ +.icon-pin:before {content:'\e825';} /* '' */ +.icon-lock-open:before {content:'\e826';} /* '' */ +.icon-lock:before {content:'\e827';} /* '' */ +.icon-attach:before {content:'\e828';} /* '' */ +.icon-home:before {content:'\e829';} /* '' */ +.icon-info-circled:before {content:'\e82a';} /* '' */ +.icon-help-circled:before {content:'\e82b';} /* '' */ +.icon-shuffle:before {content:'\e82c';} /* '' */ +.icon-ccw:before {content:'\e82d';} /* '' */ +.icon-cw:before {content:'\e82e';} /* '' */ +.icon-play:before {content:'\e82f';} /* '' */ +.icon-play-circled2:before {content:'\e830';} /* '' */ +.icon-down-big:before {content:'\e831';} /* '' */ +.icon-left-big:before {content:'\e832';} /* '' */ +.icon-right-big:before {content:'\e833';} /* '' */ +.icon-up-big:before {content:'\e834';} /* '' */ +.icon-up-open:before {content:'\e835';} /* '' */ +.icon-right-open:before {content:'\e836';} /* '' */ +.icon-left-open:before {content:'\e837';} /* '' */ +.icon-down-open:before {content:'\e838';} /* '' */ +.icon-cloud:before {content:'\e839';} /* '' */ +.icon-text-width:before {content:'\e83a';} /* '' */ +.icon-italic:before {content:'\e83b';} /* '' */ +.icon-bold:before {content:'\e83c';} /* '' */ +.icon-retweet:before {content:'\e83d';} /* '' */ +.icon-user:before {content:'\e83e';} /* '' */ +.icon-users:before {content:'\e83f';} /* '' */ +.icon-flag:before {content:'\e840';} /* '' */ +.icon-heart:before {content:'\e841';} /* '' */ +.icon-heart-empty:before {content:'\e842';} /* '' */ +.icon-edit:before {content:'\e843';} /* '' */ +.icon-export:before {content:'\e844';} /* '' */ +.icon-cog:before {content:'\e845';} /* '' */ +.icon-cog-alt:before {content:'\e846';} /* '' */ +.icon-wrench:before {content:'\e847';} /* '' */ +.icon-resize-vertical:before {content:'\e848';} /* '' */ +.icon-resize-small:before {content:'\e849';} /* '' */ +.icon-resize-full:before {content:'\e84a';} /* '' */ +.icon-resize-horizontal:before {content:'\e84b';} /* '' */ +.icon-target:before {content:'\e84c';} /* '' */ +.icon-signal:before {content:'\e84d';} /* '' */ +.icon-umbrella:before {content:'\e84e';} /* '' */ +.icon-leaf:before {content:'\e84f';} /* '' */ +.icon-book:before {content:'\e850';} /* '' */ +.icon-asterisk:before {content:'\e851';} /* '' */ +.icon-chart-bar:before {content:'\e852';} /* '' */ +.icon-key:before {content:'\e853';} /* '' */ +.icon-hammer:before {content:'\e854';} /* '' */ +.icon-star-half:before {content:'\e855';} /* '' */ +.icon-move:before {content:'\f047';} /* '' */ +.icon-expand-1:before {content:'\f065';} /* '' */ +.icon-link-ext:before {content:'\f08e';} /* '' */ +.icon-check-empty:before {content:'\f096';} /* '' */ +.icon-resize-full-alt:before {content:'\f0b2';} /* '' */ +.icon-flask:before {content:'\f0c3';} /* '' */ +.icon-docs:before {content:'\f0c5';} /* '' */ +.icon-list-bullet:before {content:'\f0ca';} /* '' */ +.icon-mail-alt:before {content:'\f0e0';} /* '' */ +.icon-sitemap:before {content:'\f0e8';} /* '' */ +.icon-exchange:before {content:'\f0ec';} /* '' */ +.icon-download-cloud:before {content:'\f0ed';} /* '' */ +.icon-upload-cloud:before {content:'\f0ee';} /* '' */ +.icon-plus-squared:before {content:'\f0fe';} /* '' */ +.icon-circle-empty:before {content:'\f10c';} /* '' */ +.icon-folder-empty:before {content:'\f114';} /* '' */ +.icon-folder-open-empty:before {content:'\f115';} /* '' */ +.icon-flag-empty:before {content:'\f11d';} /* '' */ +.icon-star-half-alt:before {content:'\f123';} /* '' */ +.icon-fork:before {content:'\f126';} /* '' */ +.icon-unlink:before {content:'\f127';} /* '' */ +.icon-help:before {content:'\f128';} /* '' */ +.icon-info:before {content:'\f129';} /* '' */ +.icon-eraser:before {content:'\f12d';} /* '' */ +.icon-rocket:before {content:'\f135';} /* '' */ +.icon-anchor:before {content:'\f13d';} /* '' */ +.icon-lock-open-alt:before {content:'\f13e';} /* '' */ +.icon-play-circled:before {content:'\f144';} /* '' */ +.icon-minus-squared:before {content:'\f146';} /* '' */ +.icon-minus-squared-alt:before {content:'\f147';} /* '' */ +.icon-level-up:before {content:'\f148';} /* '' */ +.icon-level-down:before {content:'\f149';} /* '' */ +.icon-ok-squared:before {content:'\f14a';} /* '' */ +.icon-pencil-squared:before {content:'\f14b';} /* '' */ +.icon-compass:before {content:'\f14e';} /* '' */ +.icon-expand:before {content:'\f150';} /* '' */ +.icon-collapse:before {content:'\f151';} /* '' */ +.icon-expand-right:before {content:'\f152';} /* '' */ +.icon-sort-alt-up:before {content:'\f160';} /* '' */ +.icon-sort-alt-down:before {content:'\f161';} /* '' */ +.icon-female:before {content:'\f182';} /* '' */ +.icon-male:before {content:'\f183';} /* '' */ +.icon-sun:before {content:'\f185';} /* '' */ +.icon-box:before {content:'\f187';} /* '' */ +.icon-bug:before {content:'\f188';} /* '' */ +.icon-right-circled2:before {content:'\f18e';} /* '' */ +.icon-left-circled2:before {content:'\f190';} /* '' */ +.icon-collapse-left:before {content:'\f191';} /* '' */ +.icon-dot-circled:before {content:'\f192';} /* '' */ +.icon-plus-squared-alt:before {content:'\f196';} /* '' */ +.icon-bank:before {content:'\f19c';} /* '' */ +.icon-child:before {content:'\f1ae';} /* '' */ +.icon-paw:before {content:'\f1b0';} /* '' */ +.icon-tree:before {content:'\f1bb';} /* '' */ +.icon-history:before {content:'\f1da';} /* '' */ +.icon-header:before {content:'\f1dc';} /* '' */ +.icon-sliders:before {content:'\f1de';} /* '' */ +.icon-trash:before {content:'\f1f8';} /* '' */ +.icon-brush:before {content:'\f1fc';} /* '' */ +.icon-chart-area:before {content:'\f1fe';} /* '' */ +.icon-chart-pie:before {content:'\f200';} /* '' */ +.icon-chart-line:before {content:'\f201';} /* '' */ +.icon-ship:before {content:'\f21a';} /* '' */ +.icon-user-secret:before {content:'\f21b';} /* '' */ +.icon-venus:before {content:'\f221';} /* '' */ +.icon-mars:before {content:'\f222';} /* '' */ +.icon-venus-mars:before {content:'\f228';} /* '' */ +.icon-neuter:before {content:'\f22c';} /* '' */ +.icon-user-plus:before {content:'\f234';} /* '' */ +.icon-user-times:before {content:'\f235';} /* '' */ +.icon-object-ungroup:before {content:'\f248';} /* '' */ +.icon-clone:before {content:'\f24d';} /* '' */ +.icon-balance-scale:before {content:'\f24e';} /* '' */ +.icon-hourglass-1:before {content:'\f251';} /* '' */ +.icon-hand-grab-o:before {content:'\f255';} /* '' */ +.icon-hand-paper-o:before {content:'\f256';} /* '' */ +.icon-wikipedia-w:before {content:'\f266';} /* '' */ +.icon-calendar-check-o:before {content:'\f274';} /* '' */ +.icon-map-pin:before {content:'\f276';} /* '' */ +.icon-map-signs:before {content:'\f277';} /* '' */ +.icon-map-o:before {content:'\f278';} /* '' */ +.icon-map:before {content:'\f279';} /* '' */ +.icon-fort-awesome:before {content:'\f286';} /* '' */ +.icon-percent:before {content:'\f295';} /* '' */ +.icon-shield-alt:before {content:'\f3ed';} /* '' */ +.icon-chess-bishop:before {content:'\f43a';} /* '' */ +.icon-chess-king:before {content:'\f43f';} /* '' */ +.icon-chess-knight:before {content:'\f441';} /* '' */ +.icon-chess-pawn:before {content:'\f443';} /* '' */ +.icon-chess-queen:before {content:'\f445';} /* '' */ +.icon-chess-rook:before {content:'\f447';} /* '' */ +.icon-sign:before {content:'\f4d9';} /* '' */ +.icon-user-friends:before {content:'\f500';} /* '' */ +.icon-user-shield:before {content:'\f505';} /* '' */ +.icon-crow:before {content:'\f520';} /* '' */ +.icon-crown:before {content:'\f521';} /* '' */ +.icon-ruler:before {content:'\f545';} /* '' */ +.icon-store:before {content:'\f54e';} /* '' */ +.icon-bezier-curve:before {content:'\f55b';} /* '' */ +.icon-drafting-compass:before {content:'\f568';} /* '' */ +.icon-globe-africa:before {content:'\f57c';} /* '' */ +.icon-monument:before {content:'\f5a6';} /* '' */ +.icon-mortar-pestle:before {content:'\f5a7';} /* '' */ +.icon-paint-roller:before {content:'\f5aa';} /* '' */ +.icon-pen-fancy:before {content:'\f5ac';} /* '' */ +.icon-pen-nib:before {content:'\f5ad';} /* '' */ +.icon-pencil-ruler:before {content:'\f5ae';} /* '' */ +.icon-draw-polygon:before {content:'\f5ee';} /* '' */ +.icon-layer-group:before {content:'\f5fd';} /* '' */ +.icon-menorah:before {content:'\f676';} /* '' */ +.icon-mosque:before {content:'\f678';} /* '' */ +.icon-place-of-worship:before {content:'\f67f';} /* '' */ +.icon-synagogue:before {content:'\f69b';} /* '' */ +.icon-book-dead:before {content:'\f6b7';} /* '' */ +.icon-campground:before {content:'\f6bb';} /* '' */ +.icon-mountain:before {content:'\f6fc';} /* '' */ +.icon-network-wired:before {content:'\f6ff';} /* '' */ +.icon-temperature-high:before {content:'\f769';} /* '' */ +.icon-temperature-low:before {content:'\f76b';} /* '' */ + +/* Amended FA icons */ +.icon-sort-name-up:after {font-size:.9em;content:'\f15d';} +.icon-sort-name-down:after {font-size:.9em;content:'\f15e';} +.icon-sort-number-up:after {font-size:.9em;content:'\f162';} +.icon-sort-number-down:after {font-size:.9em;content:'\f163';} + +/* Custom icons */ +.icon-w:before {font-style:italic;content:'w:';} +.icon-f:before {font-style:italic;content:'f:';} +.icon-n:before {font-style:italic;content:'n:';} +.icon-i:before {font-style:italic;content:'i:';} +.icon-s:before {font-style:italic;content:'s:';} +.icon-r:before {font-style:italic;content:'r:';} +.icon-a:before {font-style:italic;content:'a:';} +.icon-smooth:before {font-weight: bold;content:'∼';} +.icon-disrupt:before {font-weight: bold;content:'⥄';} +.icon-if:before {font-style: italic; font-weight: bold;content:'if';} +.icon-coa:before {content:'\f3ed'; font-size: .9em; color: #999;} /* '' */ +.icon-half:before {font-weight: bold;content:'½';} +.icon-voice:before {content:'🔊';} +.icon-robot:before {content:'🤖';} +.icon-die:before {content:'🎲';} +.icon-button-die:before {content:'🎲'; padding-right: .4em;} +.icon-button-power:before {content:'💪'; padding-right: .6em;} + +.icon-button-melee:before {content:'⚔️'; padding-right: .4em;} +.icon-button-skirmish:before {content:'🎯'; padding-right: .4em;} +.icon-button-pursue:before {content:'🐎'; padding-right: .4em;} +.icon-button-retreat:before {content:'🏳️'; padding-right: .4em;} +.icon-button-shelling:before {content:'💣'; padding-right: .4em;} +.icon-button-boarding:before {content:'⚔️'; padding-right: .4em;} +.icon-button-chase:before {content:'⛵'; padding-right: .4em;} +.icon-button-withdrawal:before {content:'🏳️'; padding-right: .4em;} +.icon-button-bombardment:before {content:'💣'; padding-right: .4em;} +.icon-button-blockade:before {content:'⏳'; padding-right: .4em;} +.icon-button-sheltering:before {content:'🔒'; padding-right: .4em;} +.icon-button-sortie:before {content:'🚪'; padding-right: .4em;} +.icon-button-defense:before {content:'🛡️'; padding-right: .4em;} +.icon-button-storming:before {content:'⚔️'; padding-right: .4em;} +.icon-button-looting:before {content:'☠️'; padding-right: .4em;} +.icon-button-surrendering:before {content:'🏳️'; padding-right: .4em;} +.icon-button-surprise:before {content:'⚡'; padding-right: .4em;} +.icon-button-shock:before {content:'💫'; padding-right: .4em;} +.icon-button-flee:before {content:'⛵'; padding-right: .4em;} +.icon-button-waiting:before {content:'⌛'; padding-right: .4em;} +.icon-button-maneuvering:before {content:'💢'; padding-right: .4em;} +.icon-button-dogfight:before {content:'🐕'; padding-right: .4em;} + +.icon-button-field:before {content:'🗡️'; padding-right: .4em;} +.icon-button-naval:before {content:'🌊'; padding-right: .4em;} +.icon-button-siege:before {content:'🏰'; padding-right: .4em;} +.icon-button-ambush:before {content:'🌳'; padding-right: .4em;} +.icon-button-landing:before {content:'⚓'; padding-right: .4em;} +.icon-button-air:before {content:'💨'; padding-right: .4em;} +.icon-button-screenshot:before {content:'🖥️'; padding-right: .4em;} diff --git a/src/images/Discord.png b/src/images/Discord.png new file mode 100644 index 00000000..78dab317 Binary files /dev/null and b/src/images/Discord.png differ diff --git a/src/images/Facebook.png b/src/images/Facebook.png new file mode 100644 index 00000000..3d249fd9 Binary files /dev/null and b/src/images/Facebook.png differ diff --git a/src/images/Pinterest.png b/src/images/Pinterest.png new file mode 100644 index 00000000..fcc85914 Binary files /dev/null and b/src/images/Pinterest.png differ diff --git a/src/images/Reddit.png b/src/images/Reddit.png new file mode 100644 index 00000000..4637f3a4 Binary files /dev/null and b/src/images/Reddit.png differ diff --git a/src/images/Twitter.png b/src/images/Twitter.png new file mode 100644 index 00000000..05e0c2c2 Binary files /dev/null and b/src/images/Twitter.png differ diff --git a/src/images/icons/favicon-16x16.png b/src/images/icons/favicon-16x16.png new file mode 100644 index 00000000..ddd75b4a Binary files /dev/null and b/src/images/icons/favicon-16x16.png differ diff --git a/src/images/icons/favicon-32x32.png b/src/images/icons/favicon-32x32.png new file mode 100644 index 00000000..13e5179d Binary files /dev/null and b/src/images/icons/favicon-32x32.png differ diff --git a/src/images/icons/icon_x512.png b/src/images/icons/icon_x512.png new file mode 100644 index 00000000..f1f8c9aa Binary files /dev/null and b/src/images/icons/icon_x512.png differ diff --git a/src/images/icons/maskable_icon_x128.png b/src/images/icons/maskable_icon_x128.png new file mode 100644 index 00000000..fa877d1b Binary files /dev/null and b/src/images/icons/maskable_icon_x128.png differ diff --git a/src/images/icons/maskable_icon_x192.png b/src/images/icons/maskable_icon_x192.png new file mode 100644 index 00000000..3322eab3 Binary files /dev/null and b/src/images/icons/maskable_icon_x192.png differ diff --git a/src/images/icons/maskable_icon_x384.png b/src/images/icons/maskable_icon_x384.png new file mode 100644 index 00000000..c7e7e705 Binary files /dev/null and b/src/images/icons/maskable_icon_x384.png differ diff --git a/src/images/icons/maskable_icon_x512.png b/src/images/icons/maskable_icon_x512.png new file mode 100644 index 00000000..5b2361fd Binary files /dev/null and b/src/images/icons/maskable_icon_x512.png differ diff --git a/src/images/kiwiroo.png b/src/images/kiwiroo.png new file mode 100644 index 00000000..4f34ae7e Binary files /dev/null and b/src/images/kiwiroo.png differ diff --git a/src/images/pattern1.png b/src/images/pattern1.png new file mode 100644 index 00000000..59375796 Binary files /dev/null and b/src/images/pattern1.png differ diff --git a/src/images/pattern2.png b/src/images/pattern2.png new file mode 100644 index 00000000..e96f68fa Binary files /dev/null and b/src/images/pattern2.png differ diff --git a/src/images/pattern3.png b/src/images/pattern3.png new file mode 100644 index 00000000..636fde6f Binary files /dev/null and b/src/images/pattern3.png differ diff --git a/src/images/pattern4.png b/src/images/pattern4.png new file mode 100644 index 00000000..d96aa18a Binary files /dev/null and b/src/images/pattern4.png differ diff --git a/src/images/pattern5.png b/src/images/pattern5.png new file mode 100644 index 00000000..82a2af7c Binary files /dev/null and b/src/images/pattern5.png differ diff --git a/src/images/pattern6.png b/src/images/pattern6.png new file mode 100644 index 00000000..dc9271ef Binary files /dev/null and b/src/images/pattern6.png differ diff --git a/src/images/preview.png b/src/images/preview.png new file mode 100644 index 00000000..2b150732 Binary files /dev/null and b/src/images/preview.png differ diff --git a/src/images/textures/antique-big.jpg b/src/images/textures/antique-big.jpg new file mode 100644 index 00000000..711b1681 Binary files /dev/null and b/src/images/textures/antique-big.jpg differ diff --git a/src/images/textures/antique-small.jpg b/src/images/textures/antique-small.jpg new file mode 100644 index 00000000..851b5d07 Binary files /dev/null and b/src/images/textures/antique-small.jpg differ diff --git a/src/images/textures/folded-paper-big.jpg b/src/images/textures/folded-paper-big.jpg new file mode 100644 index 00000000..c2c4d761 Binary files /dev/null and b/src/images/textures/folded-paper-big.jpg differ diff --git a/src/images/textures/folded-paper-small.jpg b/src/images/textures/folded-paper-small.jpg new file mode 100644 index 00000000..88418a13 Binary files /dev/null and b/src/images/textures/folded-paper-small.jpg differ diff --git a/src/images/textures/gray-paper.jpg b/src/images/textures/gray-paper.jpg new file mode 100644 index 00000000..238d6e4c Binary files /dev/null and b/src/images/textures/gray-paper.jpg differ diff --git a/src/images/textures/iran-small.jpg b/src/images/textures/iran-small.jpg new file mode 100644 index 00000000..39f34512 Binary files /dev/null and b/src/images/textures/iran-small.jpg differ diff --git a/src/images/textures/marble-big.jpg b/src/images/textures/marble-big.jpg new file mode 100644 index 00000000..c1d2a6d4 Binary files /dev/null and b/src/images/textures/marble-big.jpg differ diff --git a/src/images/textures/marble-blue-big.jpg b/src/images/textures/marble-blue-big.jpg new file mode 100644 index 00000000..dbfc0975 Binary files /dev/null and b/src/images/textures/marble-blue-big.jpg differ diff --git a/src/images/textures/marble-blue-small.jpg b/src/images/textures/marble-blue-small.jpg new file mode 100644 index 00000000..2e95fdcb Binary files /dev/null and b/src/images/textures/marble-blue-small.jpg differ diff --git a/src/images/textures/marble-small.jpg b/src/images/textures/marble-small.jpg new file mode 100644 index 00000000..10d1a9ab Binary files /dev/null and b/src/images/textures/marble-small.jpg differ diff --git a/src/images/textures/mars-big.jpg b/src/images/textures/mars-big.jpg new file mode 100644 index 00000000..3fd39dae Binary files /dev/null and b/src/images/textures/mars-big.jpg differ diff --git a/src/images/textures/mars-small.jpg b/src/images/textures/mars-small.jpg new file mode 100644 index 00000000..75de8dd3 Binary files /dev/null and b/src/images/textures/mars-small.jpg differ diff --git a/src/images/textures/mauritania-small.jpg b/src/images/textures/mauritania-small.jpg new file mode 100644 index 00000000..22d9cecf Binary files /dev/null and b/src/images/textures/mauritania-small.jpg differ diff --git a/src/images/textures/mercury-big.jpg b/src/images/textures/mercury-big.jpg new file mode 100644 index 00000000..7e06f0ee Binary files /dev/null and b/src/images/textures/mercury-big.jpg differ diff --git a/src/images/textures/mercury-small.jpg b/src/images/textures/mercury-small.jpg new file mode 100644 index 00000000..53f31ee3 Binary files /dev/null and b/src/images/textures/mercury-small.jpg differ diff --git a/src/images/textures/ocean.jpg b/src/images/textures/ocean.jpg new file mode 100644 index 00000000..981366ca Binary files /dev/null and b/src/images/textures/ocean.jpg differ diff --git a/src/images/textures/pergamena-small.jpg b/src/images/textures/pergamena-small.jpg new file mode 100644 index 00000000..951f9eda Binary files /dev/null and b/src/images/textures/pergamena-small.jpg differ diff --git a/src/images/textures/plaster.jpg b/src/images/textures/plaster.jpg new file mode 100644 index 00000000..8ec85c81 Binary files /dev/null and b/src/images/textures/plaster.jpg differ diff --git a/src/images/textures/soiled-paper-vertical.png b/src/images/textures/soiled-paper-vertical.png new file mode 100644 index 00000000..f8bb720e Binary files /dev/null and b/src/images/textures/soiled-paper-vertical.png differ diff --git a/src/images/textures/soiled-paper.jpg b/src/images/textures/soiled-paper.jpg new file mode 100644 index 00000000..00333992 Binary files /dev/null and b/src/images/textures/soiled-paper.jpg differ diff --git a/src/images/textures/spain-small.jpg b/src/images/textures/spain-small.jpg new file mode 100644 index 00000000..a413f508 Binary files /dev/null and b/src/images/textures/spain-small.jpg differ diff --git a/src/images/textures/timbercut-big.jpg b/src/images/textures/timbercut-big.jpg new file mode 100644 index 00000000..7dc9b656 Binary files /dev/null and b/src/images/textures/timbercut-big.jpg differ diff --git a/src/images/textures/timbercut-small.jpg b/src/images/textures/timbercut-small.jpg new file mode 100644 index 00000000..a73e47be Binary files /dev/null and b/src/images/textures/timbercut-small.jpg differ diff --git a/src/index.css b/src/index.css new file mode 100644 index 00000000..ea78f087 --- /dev/null +++ b/src/index.css @@ -0,0 +1,2429 @@ +:root { + --monospace: Consolas, monospace; + --serif: Georgia, serif; + --sans-serif: Helvetica, Arial, sans-serif; +} + +/* hide Google translate header */ +body > .skiptranslate { + display: none; +} + +/* hide Google translate in-progress widget */ +body > .skiptranslate + div { + display: none; +} + +/* make translated text wrapper non-blocking */ +font { + pointer-events: none; +} + +form input:invalid { + outline: 1px solid #ed4337; + outline-offset: 1px; +} + +input, +select, +button { + font-size: 1em; +} + +input, +select, +textarea { + border: 0.5px solid #dbdfe6; + border-radius: 0.5px; + box-sizing: border-box; +} + +select { + height: 1.6em; + border-top-color: #abadb3; + padding: 0; + text-indent: 0px; +} + +input { + border-top-color: #abadb3; + padding: 2px; + text-indent: 1px; +} + +input:read-only { + cursor: default; +} + +input[type="radio"] { + vertical-align: bottom; + cursor: pointer; + accent-color: var(--header); +} + +textarea { + padding: 3px; + box-sizing: border-box; + width: 100%; +} + +iframe { + border: 0; + width: 100%; +} + +#map { + background-color: #000000; + mask-mode: alpha; + mask-clip: no-clip; + fill-rule: evenodd; + user-select: none; +} + +#canvas { + position: absolute; + pointer-events: none; +} + +#preview { + position: absolute; + bottom: 1em; + left: 1em; + cursor: pointer; +} + +#pickerContainer { + position: absolute; + z-index: 100; +} + +input, +button, +select, +a, +textarea { + outline: none; +} + +button, +select, +a { + cursor: pointer; +} + +.pointer { + cursor: pointer !important; +} + +#prec text { + font-size: 32px; + stroke: none; + text-shadow: 1px 1px 1px #9daac9; + user-select: none; +} + +#population, +#cells, +#compass { + fill: none; +} + +#landmass { + mask: url(#land); + fill-rule: evenodd; +} + +#lakes, +#coastline, +#armies, +#ice, +#emblems { + cursor: pointer; +} + +#temperature { + font-family: var(--sans-serif); + font-weight: 700; + text-anchor: middle; + dominant-baseline: central; + text-shadow: 0px 0px 10px white; + fill-rule: evenodd; +} + +#oceanLayers, +#terrs { + fill-rule: evenodd; +} + +#coastline { + fill: none; + stroke-linejoin: round; +} + +t, +#regions, +#cults, +#relig, +#biomes, +#provincesBody, +#terrs, +#tooltip, +#temperature, +#texture, +#landmass, +#vignette, +#gridOverlay, +#fogging { + pointer-events: none; +} + +#armies text { + pointer-events: none; + user-select: none; + stroke: none; + fill: #fff; + text-shadow: 0 0 4px #000; + dominant-baseline: central; + text-anchor: middle; + font-family: var(--sans-serif); + fill-opacity: 1; +} + +#armies text.regimentIcon { + font-size: 0.8em; +} + +#statesHalo { + fill: none; + stroke-linecap: round; + stroke-linejoin: round; +} + +#statesBody, +#provincesBody, +#relig, +#biomes, +#cults { + stroke-linejoin: round; + fill-rule: evenodd; +} + +#statesBody, +#provincesBody, +#relig, +#cults { + mask: url(#land); +} + +#borders { + stroke-linejoin: round; + fill: none; +} + +#rivers { + stroke: none; + mask: url(#land); + cursor: pointer; + fill-rule: nonzero; +} + +#anchors { + pointer-events: none; +} + +#terrain, +#burgIcons { + cursor: pointer; +} + +.strokes { + stroke-width: 0.08px; + width: 2px; + stroke: #5c5c70; + stroke-dasharray: 0.5, 0.7; + stroke-linecap: round; +} + +#routes { + fill: none; + cursor: pointer; +} + +i.icon-lock { + cursor: pointer; +} + +#labelEditor div { + display: inline-block; +} + +#labels { + text-anchor: middle; + dominant-baseline: central; + cursor: pointer; +} + +.chartInfo { + text-align: center; + font-family: var(--sans-serif); + font-style: italic; + font-size: 12px; +} + +#statesTree text, +#provincesTree text { + pointer-events: none; + user-select: none; + stroke: none; + font-size: 11px; +} + +#statesTree circle { + filter: url(#dropShadow05); + stroke: #666666; + stroke-width: 1; +} + +#statesTree circle.selected, +#provincesTree .selected { + stroke: #c13119; + stroke-width: 2; +} + +.regimentDragLine { + marker-end: url(#end-arrow); + stroke: #333333; + stroke-dasharray: 5; + stroke-dashoffset: 1000; + animation: dash 80s linear backwards; +} + +.arrow { + marker-end: url(#end-arrow-small); + stroke: #555; + stroke-width: 0.5; +} + +@keyframes dash { + to { + stroke-dashoffset: 0; + } +} + +#provinceLabels, +#burgLabels { + dominant-baseline: alphabetic; + text-anchor: middle; +} + +#routeLength, +#coastlineArea { + background-color: #eeeeee; + border: 1px solid #a5a5a5; + line-height: 1.3em; + cursor: default; +} + +#brushCircle { + stroke: #373737; + stroke-width: 1.5px; + stroke-dasharray: 7; + stroke-linecap: butt; + fill: none; +} + +text.drag { + text-shadow: 0 0 1px red; +} + +#dialogs { + background-color: var(--bg-dialogs); +} + +.draggable { + cursor: move; +} + +.ui-widget-header { + border-bottom: 1px solid var(--dark-solid); + background: var(--header); + color: #ffffff; + font-weight: bold; +} + +button.ui-button:disabled { + filter: brightness(0.95); +} + +button.ui-button:disabled:hover { + cursor: default; +} + +.ui-dialog, +#optionsContainer { + user-select: none; +} + +#optionsTrigger { + padding: 0.6em 0.45em; +} + +@media (max-width: 600px) { + #optionsTrigger { + font-size: 2em; + padding: 0; + width: 1.3em; + height: 1.6em; + border: solid 1px #5e4fa2; + } +} + +#options { + position: absolute; + font-family: var(--monospace); + border: solid 1px #5e4fa2; + margin: 10px; + padding-bottom: 0.3em; + background: var(--bg-light); +} + +#options input, +#options select, +#options button { + font-family: var(--monospace); +} + +#collapsible { + margin: 11px; + border: 0; + position: absolute; + z-index: 2; + display: grid; + grid-template-columns: 2fr 7fr; +} + +.tab { + border-bottom: 1px solid var(--dark-solid); + height: 2.2em; + display: flex; + justify-content: space-between; +} + +div.tab > button#optionsHide { + width: auto; + font-family: var(--sans-serif); + padding: 0.6em 0.45em; +} + +button.options { + width: 100%; + background-color: var(--bg-main); + font-weight: bold; + border: none; + transition: 0.2s; +} + +button.active { + background-color: var(--header); + color: white; +} + +button.options:hover { + background-color: var(--header-active); + color: white; +} + +#options p { + font-style: italic; + font-weight: bold; + margin: 0.8em 0 0 0; +} + +#options .tip { + color: #444; + font-size: 0.9em; + font-family: sans-serif; + font-style: italic; + margin-left: 0.5em; +} + +#aboutContent { + text-align: justify; +} + +#aboutContent p { + font-weight: normal; + font-style: normal; +} + +#aboutContent a { + color: #1d1b1c; + font-weight: bold; + text-decoration: underline; +} + +#optionsContent span { + font-size: 0.9em; +} + +#options i { + color: #31272c; + font-size: 0.85em; + cursor: pointer; +} + +#options button i.icon-cog { + position: absolute; + padding: 0.1em 0.3em; + background-color: var(--bg-lighter); + border-radius: 50%; + visibility: hidden; + opacity: 0; + transition: 0.4s ease-in-out; +} + +#options button i.icon-cog:hover { + color: #111; + background-color: var(--bg-light); + transform: rotateZ(180deg); +} + +#options button i.icon-cog:active { + transform: translateY(1px); +} + +#options button:hover i.icon-cog { + visibility: visible; + opacity: 1; +} + +input[type="color"] { + -webkit-appearance: none; + cursor: pointer; + border: 1px solid #a9a9a9; +} + +input[type="color"]::-webkit-color-swatch-wrapper { + padding: 0; +} + +#options input[type="color"] { + width: 4.5em; + height: 1em; + border: 0; +} + +#convertImageDialog input[type="color"] { + width: 38px; + padding: 0; + border: 0; + background: none; + cursor: pointer; +} + +#options select { + height: 1.5em; + border: 0; + cursor: pointer; + font-size: smaller; +} + +#options input[type="text"] { + border: 0px; + width: 62%; + font-size: smaller; +} + +#options output { + text-align: right; + font-size: smaller; +} + +#options input[type="number"] { + font-size: 0.8em; + border: 0; + text-align: right; + background-color: transparent; + width: 3.3em; +} + +#options input[type="number"]::-webkit-inner-spin-button, +#options input[type="number"]::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} + +#options input[type="number"] { + appearance: textfield; + -moz-appearance: textfield; +} + +#options input[type="number"]:hover { + outline: 1px solid var(--dark-solid); +} + +#options input.paired { + text-align: center; + background-color: white; +} + +#options input.long { + width: 100%; + background-color: white; + text-align: left; +} + +#options input[type="range"] { + width: 100%; + height: 8px; + background: 0; + appearance: none; + margin-left: 0; + border: 0; + padding: 0; +} + +#options input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + border-radius: 15%; + width: 0.91em; + height: 0.91em; + background: var(--light-solid); + border: 1px solid var(--dark-solid); + cursor: pointer; + margin-top: -0.4em; + box-shadow: 0.5px 0.5px 0px var(--dark-solid); +} + +#options input[type="range"]::-moz-range-thumb { + -moz-appearance: none; + border-radius: 15%; + width: 0.73em; + height: 0.73em; + background: var(--light-solid); + border: 1px solid var(--dark-solid); + cursor: pointer; + box-shadow: 0.5px 0.5px 0px var(--dark-solid); +} + +#options input[type="range"]::-webkit-slider-runnable-track { + height: 2px; + background: #ffffff; +} + +#options input[type="range"]::-moz-range-track { + -moz-appearance: none; + background-color: #ffffff; + height: 2px; +} + +#options select { + width: 100%; +} + +#loadGoogleTranslateButton { + font-size: smaller; + padding: 0.4em 0.5em; +} + +#options input[type="color"] { + width: 2em; + padding: 1px; +} + +.tabcontent button.sideButton { + border-radius: 15%; + font-size: 0.8em; + margin-block: -1em; +} + +#layersContent button.active, +#styleContent button:active { + transform: translate(0px, 1px); +} + +#styleSelectFont > option { + font-size: 2em; +} + +#sticked { + display: flex; + justify-content: space-evenly; + width: 100%; +} + +#sticked button { + background-color: transparent; + font-weight: bold; + border: 0; +} + +#sticked button:hover { + color: white; +} + +#exitCustomization { + right: 10px; + bottom: 10px; + position: absolute; + display: none; +} + +#exitCustomization > div { + width: 12em; + background: var(--dark-solid); + cursor: move; +} + +#finalizeHeightmap { + width: 100%; + border: none; + padding: 0.45em 0.75em; + margin: 0.4em 0; + white-space: nowrap; + font-family: var(--monospace); + animation: glowing 2s infinite; +} + +.glow { + animation: glowing 3s infinite ease-in-out; +} + +@keyframes glowing { + 0% { + box-shadow: 0 0 1px #f44336; + } + 50% { + box-shadow: 0 0 10px #f44336; + } + 100% { + box-shadow: 0 0 1px #f44336; + } +} + +.tabcontent { + display: none; + padding: 0 12px 2px 12px; + opacity: 0.9; +} + +.tabcontent button { + background-color: var(--bg-lighter); + border: none; + padding: 0.45em 0.75em; + margin: 0.35em 0; + transition: 0.1s; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.tabcontent button.pressed { + background-color: var(--header); + font-style: italic; +} + +.tabcontent button:hover { + background-color: var(--header-active); +} + +#toolsContent > .grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + margin: 0.2em 0; +} + +#toolsContent button { + padding: 0.35em 0; + margin: 0.16em 0.12em; +} + +#mapLayers { + display: inline-block; + padding: 0; + margin: 0; +} + +#mapFilters > button { + width: 23%; + padding: 4px 0; +} + +#viewMode > button { + padding: 0.35em; + margin: 0.3em 0.3em 0.6em 0.3em; + float: left; + width: 30.7%; +} + +fieldset { + border: 1px solid var(--dark-solid); +} + +.tabcontent li { + list-style-type: none; + background-color: var(--bg-main); + cursor: pointer; + padding: 0.35em; + margin: 0.2em 0.3em; + float: left; + width: 28%; + text-align: center; + text-transform: capitalize; + + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.tabcontent li.buttonoff { + background-color: var(--bg-disabled); + color: #444444aa; +} + +.tabcontent li:hover { + box-shadow: 0 0 2px 2px var(--dark-solid) 17; +} + +.tabcontent button:hover { + background-color: var(--header); +} + +#optionsContainer span { + cursor: default; +} + +#cellInfo { + user-select: text; +} + +#tooltip { + position: fixed; + text-align: center; + bottom: 0.5vw; + width: 70%; + left: 15%; + cursor: default; + text-shadow: 1px 1px 2px #1d0e0f; + color: #ffffff; + font-size: calc(12px + 0.5vw); + white-space: pre-line; + z-index: 99999; + background: linear-gradient(0.1turn, #ffffff00, #c71d1d66, #ffffff00); +} + +#optionsContent table { + border-spacing: 0; + line-height: 1.2em; +} + +#optionsContent table td:nth-of-type(1) { + width: 3%; +} + +#optionsContent table td:nth-of-type(2) { + width: 40%; +} + +#optionsContent table td:nth-of-type(4) { + text-align: right; + width: 6%; +} + +.emblemShapePreview { + width: 1.5em; + height: 1.5em; + margin: -0.4em 0.1em; + fill: #fff; + stroke: #000; + stroke-width: 5px; +} + +#styleContent table { + border-spacing: 0; + margin-left: 0.2em; + width: 100%; +} + +#styleContent table tr { + width: 100%; + display: table; +} + +#styleContent table td:nth-of-type(1) { + width: 34.2%; +} + +#styleElements tbody, +#styleElements caption { + display: none; +} + +#styleIsOff { + color: darkred; + font-weight: 700; + text-align: left; +} + +#styleElements .whiteButton { + padding: 0 0.8em; + border: 0; + background-color: #ffffff !important; +} + +.overflow-table { + width: 100%; + text-align: center; +} + +.matrix-table { + max-height: 80vh; + max-width: 85vw; + scrollbar-width: thin; + overflow: auto; +} + +.matrix-table > table { + text-align: center; + border-collapse: collapse; + font-size: smaller; +} + +.matrix-table > table th, +.matrix-table > table td { + border: 1px solid var(--dark-solid); + height: 2em; + padding: 0.2em; + position: relative; +} + +.matrix-table > table th { + background-color: #302a2a; + color: #ffffff; +} + +.matrix-table > table td:hover { + outline: 2px solid var(--dark-solid); + outline-offset: -1px; + z-index: 1; + cursor: pointer; +} + +.matrix-table > table td.Ally { + background-color: #73ec73; + color: #000000; +} + +.matrix-table > table td.Friendly { + background-color: #d4f8aa; +} + +.matrix-table > table td.Neutral { + background-color: #d8d9d3; +} + +.matrix-table > table td.Suspicion { + background-color: #eeafaa; +} + +.matrix-table > table td.Enemy { + background-color: #ffa39c; + color: #af0d23; +} + +.matrix-table > table td.Unknown { + background-color: #c1bfbf; +} + +.matrix-table > table td.Rival { + background-color: #bd845c; +} + +.matrix-table > table td.Vassal { + background-color: #87cefa; +} + +.matrix-table > table td.Suzerain { + background-color: #8f8fe1; +} + +.matrix-table > table td.x { + background-color: #d4ca94; + cursor: initial; +} + +#sizeOutput { + color: green; +} + +.setColors { + display: inline-block; +} + +#templateTools > button { + width: 1.8em; + height: 1.6em; + margin: 1px; + padding: 0.1em 0.5em; + float: left; + font-size: 1.2em; + font-family: var(--monospace); +} + +#brushesButtons > button { + padding: 0.3em; +} + +#brushesButtons svg { + pointer-events: none; +} + +#brushesPanel > div { + margin: 2px 0; +} + +#templateEditor > div { + margin: 1px 0; +} + +#templateEditor #templateTools { + display: inline-block; + margin-bottom: -0.3em; +} + +#templateBody > div { + border: 1px solid #a3a3a3; + border-radius: 1px; + background-image: linear-gradient(to right, #ffffff 0%, #fafafa 51%, #ebebeb 100%); + margin: 1px 1px; + padding: 0.1em 0.2em; + height: 1.2em; +} + +#templateBody > div:hover { + border-color: #808080; + background-image: linear-gradient(to right, #fcfcfc 0%, #ededed 51%, #dedede 100%); +} + +#templateBody > div > div { + display: inline-block; +} + +#templateBody > div > span { + float: right; + margin-inline: 1px; +} + +#templateBody > div > i { + float: right; +} + +#templateBody input, +#templateBody select { + width: 4.5em; + height: 1em; + border: 0; + background-color: #ffffff95; + color: #05044d; + font-style: italic; + font-family: var(--monospace); +} + +#templateBody select { + width: 8em; + height: 1.4em; + cursor: pointer; + font-size: 0.9em; +} + +#templateBody .icon-resize-vertical { + cursor: row-resize; + font-size: 0.9em; + color: #555555; + margin: 1px 1px; +} + +#templateBody .icon-check-empty, +#templateBody .icon-check { + width: 1.1em; + cursor: pointer; + color: #575957; + font-size: 0.9em; +} + +#controlPoints { + fill: #ff0000; + stroke: #841f1f; + stroke-width: 0.25; + cursor: move; + opacity: 0.8; +} + +#controlPoints > path { + fill: none; + stroke: #0a0909; + stroke-width: 2; + opacity: 0.4; + cursor: pointer; +} + +#controlCells { + pointer-events: none; + fill: #82c8ff80; + stroke: none; +} + +#vertices > circle { + fill: #ff0000; + stroke: #841f1f; + stroke-width: 0.1; + cursor: move; + opacity: 0.8; +} + +#vertices > polygon { + fill: none; + stroke: #808080; + stroke-width: 0.1; +} + +#controlPoints > circle:hover, +#vertices > circle:hover { + stroke: #2c0808; +} + +#battleBody > table { + padding: 0.2em 0.6em 0.2em 0.6em; + border: 1px solid #ccc; + margin: 0.2em 0 0.4em 0; + display: block; + overflow: auto; + max-height: 34vh; + width: 100%; +} + +#battleBody > table .regiment { + width: 13em; + font-weight: bold; +} + +tr.battleCasualties, +tr.battleSurvivors { + font-style: italic; + font-size: 0.9em; +} + +#battleBottom div.battleTypes { + position: fixed; + background-color: #ffffff30; +} + +#battleBody div.battlePhases { + position: absolute; + background-color: #ffffff30; +} + +#battleBody div.battlePhases > button, +#battleBottom div.battleTypes > button { + width: 3.2em; + display: block; + margin: 0.2em 0; +} + +div#regimentSelectorBody { + max-height: 50vh; + font-size: 0.9em; +} + +div#regimentSelectorBody > div { + padding: 0.1em; + border: 1px solid #fff; +} + +div#regimentSelectorBody > div:hover { + border: 1px solid #ccc; +} + +div#regimentSelectorBody > div.selected { + border: 1px solid #b28585; +} + +div#regimentSelectorBody > div.inactive { + background-color: #eee; + color: #aaa; +} + +div#regimentSelectorBody > div > div { + display: inline-block; + pointer-events: none; +} + +.drag-trigger { + border-left: 1em solid transparent; + border-right: 1em solid #000; + border-top: 1em solid transparent; + position: absolute; + right: -1px; + bottom: -1px; + opacity: 0.3; +} + +.drag-trigger:hover { + cursor: move; + opacity: 0.6; +} + +.tint { + filter: sepia(1) hue-rotate(200deg); +} + +.colorsContainer { + display: grid; + grid-template-columns: repeat(5, 1fr); + grid-column-gap: 0.3em; + grid-row-gap: 0.2em; +} + +.color-div { + width: 3em; + height: 1.5em; + border: 1px #999 solid; + cursor: pointer; +} + +#colorsSelect div { + height: 1.7em; + display: inline-block; + cursor: pointer; +} + +.color-div:hover { + border-color: red; +} + +.hoveredColor { + box-shadow: 0 0 1px 1px #717171; +} + +.selectedColor { + outline: 2px solid #f87b66; +} + +#colorScheme { + margin: 6px 1px 4px 1px; +} + +#debug path.selected { + stroke-width: 0.8; + stroke: #da3126; + fill: none; +} + +#debug > text { + font-size: 2px; + text-anchor: middle; + dominant-baseline: central; +} + +.selectedCell { + stroke-width: 1; + stroke: #da3126; +} + +i.resetButton { + float: left; + padding-right: 0.4em; + font-size: 0.8em; + margin-top: 0.25em; + color: #ffffff; + cursor: pointer; +} + +i.resetButton:active { + color: var(--dark-solid); +} + +.ui-dialog button.pressed { + box-shadow: inset 1px 1px 0 0 #ccc; + border-color: #a6a6da; + background-color: #ecd8d8; + border-radius: 10%; +} + +.ui-dialog input[type="range"] { + padding: 0; + height: 2px; + background: #d4d4d4; + position: relative; + appearance: none; + -webkit-appearance: none; +} + +.ui-dialog input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + border-radius: 15%; + width: 1em; + height: 1em; + background: #e9e9e9; + border: 1px solid #9b9b9b; + cursor: pointer; +} + +.ui-dialog input[type="range"]::-moz-range-thumb { + appearance: none; + border-radius: 15%; + width: 1em; + height: 1em; + background: #e9e9e9; + border: 1px solid #9b9b9b; + cursor: pointer; +} + +.ui-dialog input[type="number"] { + width: 4.5em; +} + +.ui-dialog .disabled { + opacity: 0.2; +} + +.ui-dialog:disabled { + cursor: default; +} + +div.slider { + width: 40em; + margin-top: 0.2em; +} + +div.slider .ui-slider-handle { + width: 3em; + height: 1.6em; + top: 50%; + margin-top: -0.8em; + text-align: center; + line-height: 1.6em; +} + +#saveDropdown { + display: none; + position: absolute; + left: 29%; + top: 100%; + border: 1px solid #5e4fa2; + background-color: #a4879b; + width: 5em; +} + +#loadDropdown { + display: none; + position: absolute; + left: 53%; + top: 100%; + border: 1px solid #5e4fa2; + background-color: #a4879b; + width: 9em; +} + +#loadDropdown > div, +#saveDropdown > div { + padding: 2px 4px; + cursor: pointer; +} + +#loadDropdown > div:hover, +#saveDropdown > div:hover { + color: white; +} + +#rescaleHigher, +#rescaleLower, +#rescaleModifier { + width: 3.7em; +} + +.italic { + font-style: italic; +} + +.hidden { + display: none !important; +} + +.table { + max-height: 75vh; + max-width: 75vw; + overflow-x: hidden; + overflow-y: auto; + scrollbar-width: thin; +} + +@media screen and (max-width: 600px) { + .table { + max-width: unset; + } +} + +.dialog::-webkit-scrollbar, +#alertMessage::-webkit-scrollbar, +.table::-webkit-scrollbar, +.matrix-table::-webkit-scrollbar { + width: 6px; + height: 6px; + background-color: transparent; +} + +.dialog::-webkit-scrollbar-thumb, +#alertMessage::-webkit-scrollbar-thumb, +.table::-webkit-scrollbar-thumb, +.matrix-table::-webkit-scrollbar-thumb { + background-color: #aaa; + border-radius: 6px; +} + +.dialog::-webkit-scrollbar-thumb:hover, +#alertMessage::-webkit-scrollbar-thumb:hover, +.table::-webkit-scrollbar-thumb:hover, +.matrix-table::-webkit-scrollbar-thumb:hover { + background: #666; +} + +.dialog { + max-width: 93vw; +} + +.dialog > div { + width: max-content; +} + +div.header { + display: grid; + width: 0; + font-weight: bold; + font-size: 0.9em; +} + +div.header > div:first-child { + margin-left: 1.8em; +} + +.sortable { + cursor: pointer; +} + +.totalLine { + color: #666666; + font-style: italic; + font-size: 0.9em; + margin-bottom: 3px; +} + +.totalLine > div { + display: inline-block; +} + +div.states { + border: 1px solid #d4d4d4; + background-image: linear-gradient(to right, #fafafa80 0%, #f0f0f080 50%, #c8c8c880 100%); + margin: 0.1em 0; + padding: 0 0.2em; + font-size: 0.9em; + line-height: 1.5em; +} + +div.states:hover, +div.states.hovered { + border: 1px solid #c4c4c4; + background-image: linear-gradient(to right, #dedede 100%, #f2f2f2 50%, #fcfcfc 0%); +} + +div.states > *, +div.states sup, +div.totalLine > div { + display: inline-block; +} + +div.states > input { + width: 7em; + background: none; + border: 0; +} + +div.states div { + width: 3.2em; +} + +div.states .biomeHabitability { + width: 4em; + -moz-appearance: textfield; +} + +div.states > .statePopulation { + width: 3em; +} + +div.states:hover > .hiddenIcon { + visibility: visible !important; +} + +div.states .icon-pencil, +div.states .icon-trash-empty, +div.states .icon-eye, +div.states .icon-pin, +div.states .icon-flag-empty, +div.states .icon-cw, +div.states .icon-lock, +div.states .icon-lock-open { + cursor: pointer; +} + +div.states .icon-resize-vertical { + cursor: row-resize; + font-size: 0.9em; +} + +div.states > [class^="icon-"] { + color: #6e5e66; + padding: 0; +} + +div.states > .icon-arrows-cw { + color: #67575c; + font-size: 0.9em; + cursor: pointer; +} + +div.states > .before { + color: #6e5e66; + padding: 0 1px 0 0; +} + +div.states > .small { + font-size: 0.9em; +} + +div.states > select { + width: 7em; + cursor: pointer; + border: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +div.states span.inactive { + color: #c6c2c2; +} + +div.states span.inactive:hover { + color: #abaaaa; +} + +div.states > .riverName { + width: 7em; +} + +div.states > .riverType { + width: 5em; +} + +.coaIcon { + stroke-width: 3; + width: 1.4em; + height: 1.4em; + margin: -0.3em 0; +} + +.coaIcon > use { + pointer-events: none; +} + +#diplomacyBodySection > div { + cursor: pointer; +} + +.changeRelations > * { + pointer-events: none; + cursor: pointer; +} + +#diplomacySelect { + width: 5em; + margin: 0.1em 0 0 -0.3em; + position: fixed; + background-color: #ffffff; + border: 1px solid #1891ff; +} + +#diplomacySelect > div { + width: 100%; + padding-left: 0.3em; +} + +#diplomacySelect > div:hover { + background-color: #1891ff; + color: #ffffff; + width: calc(100% - 0.3em); +} + +#burgsFooterPopulation { + border: 0; + width: 50px; + color: #666666; + font-style: italic; + line-height: 1.4em; +} + +#burgBody div.label { + display: inline-block; + width: 6em; +} + +#burgBody > div > div, +#riverBody > div, +#routeBody > div, +#lakeBody > div { + padding: 0.1em; +} + +#riverBody div.label, +#riverBody input, +#riverBody select, +#routeBody div.label, +#lakeBody div.label, +#lakeBody input, +#lakeBody select { + display: inline-block; + width: 7em; +} + +#routeBody input, +#routeBody select { + display: inline-block; + width: 10em; +} + +#stateNameEditor div.label, +#provinceNameEditor div.label, +#regimentBody div.label, +#markerEditor div.label { + display: inline-block; + width: 5.5em; + padding: 0.3em 0; +} + +#exportToPngTilesScreen div.label { + display: inline-block; + width: 5em; +} + +#regimentBody input[type="number"] { + width: 5em; +} + +.burgFeature { + padding: 1px; + cursor: pointer; +} + +.burgFeature.inactive { + color: #ddd; +} + +.burgFeature.inactive:hover { + color: #abaaaa; +} + +.placeholder { + opacity: 0; + cursor: default; + pointer-events: none; +} + +div.states.selected { + border-color: #b28585; + background-image: linear-gradient(to right, #f2f2f2 0%, #ebe7e7 50%, #e5dadb 100%); +} + +div.states.active { + border: 1px solid #c4c4c4; + background-image: linear-gradient(to right, #dedede 100%, #f2f2f2 50%, #fcfcfc 0%); +} + +div.states.Self { + margin-bottom: 0.2em; + cursor: default !important; + padding: 0.2em 0 0 0.5em; + font-weight: bold; +} + +div.states button.selectCapital { + margin: -1px 21px 0 7px; + padding: 0px 3px; +} + +div.states > input.biomeName { + width: 12em; +} + +div.states > div.biomeArea { + width: 5em; +} + +#militaryBody div.states > input { + -moz-appearance: textfield; +} + +#militaryBody div.states > input, +#militaryBody div.states > div, +#regimentsBody div.states > div { + width: 5em; +} + +#emblemBody > div { + padding: 1px 3px; + transition: all 0.3s ease-out; +} + +#emblemBody > div.active { + background-color: #54ca7728; +} + +#emblemArmiger { + text-align: center; + display: block; +} + +#emblemBody .label { + width: 6em; + display: inline-block; +} + +#emblemBody select { + width: 9em; +} + +#emblemsBottom { + margin-top: 4px; + text-align: center; +} + +#emblemUploadControl, +#emblemDownloadControl { + margin-top: 0.3em; + width: 100%; +} + +div.editorLine { + margin: 0.2em 0; + padding: 0 0.2em; + font-size: 0.9em; +} + +#emblemDownloadControl > input { + width: 4.1em; +} + +#picker text { + cursor: default; +} + +#pickerHeader { + fill: var(--header); + stroke: var(--dark-solid); + cursor: move; +} + +#pickerLabel { + fill: #f8ffff; + font-size: 12px; + font-weight: bold; + font-family: var(--sans-serif); + cursor: move !important; +} + +#pickerCloseRect { + cursor: pointer; + fill: var(--header); + stroke: #f8ffff; +} + +#pickerCloseText { + fill: #f8ffff; + font-size: 10px; + font-family: var(--sans-serif); + pointer-events: none; +} + +#pickerControls line { + stroke: #999999; + stroke-width: 2; +} + +#pickerControls circle { + fill: #ffeb3b; + stroke: #666666; + cursor: ew-resize; +} + +#pickerControls circle:hover { + fill: #eca116; + stroke: #000000; +} + +#pickerControls, +#pickerSpaces { + font-size: 11px; +} + +#pickerSpaces input { + width: 22px; + font-size: 9px; + -moz-appearance: textfield; +} + +#pickerSpaces input::-webkit-inner-spin-button, +#pickerSpaces input::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} + +#pickerColors rect, +#pickerHatches rect { + cursor: pointer; +} + +#picker rect.selected { + outline: 2px dashed #b90c0c; + stroke-width: 0; +} + +.hoverButton { + position: sticky; + margin-left: -1.8em; + margin-top: 1px; + background-color: #dedede; + font-size: 8px; + cursor: pointer; + padding: 0px 3px !important; +} + +.unitsHeader { + margin: 0.8em 0 0 -1.1em; + font-weight: bold; + font-style: italic; +} + +#unitsBottom, +#reliefBottom { + margin: 6px 0 0 6px; +} + +#unitsBody label { + display: inline-block; + width: 9em; +} + +#unitsBody > div > select, +#unitsBody > div > input[type="text"] { + width: 14.4em; + border: 1px solid #e9e9e9; +} + +#unitsBody input[type="range"] { + width: 9em; +} + +#unitsEditor i.icon-lock-open, +#unitsEditor i.icon-lock { + color: #626573; + font-size: 0.8em; + cursor: pointer; + position: fixed; + margin: 0.4em 0 0 -0.9em; +} + +#ruler { + cursor: move; + fill: none; +} + +#ruler .rulerPoints { + stroke: #4e5a69; + fill: yellow; + cursor: grab; +} + +#ruler .rulerPoints .control { + fill: #999999; +} + +#ruler .white { + stroke: white; +} + +#ruler .gray { + stroke: #3d3d3d; + pointer-events: none; +} + +#ruler text { + font-family: var(--serif); + fill: #3d3d3d; + text-anchor: middle; + text-shadow: 0 0 4px white; + cursor: pointer; +} + +#ruler path.planimeter { + fill: lightblue; + fill-rule: evenodd; + fill-opacity: 0.5; + stroke: #737373; +} + +#militaryOptionsTable select { + border: 1px solid #d4d4d4; +} + +#militaryOptionsTable input { + width: 9em; + border: 1px solid #d4d4d4; +} + +#militaryOptionsTable input[type="number"] { + width: 5em; +} + +#militaryOptionsTable button, +#burgGroupsBody button { + width: 100%; +} + +#gridOverlay { + fill: none; +} + +#coordinateLabels { + fill: #333333; + font-family: var(--monospace); + text-shadow: 0 0 4px white; + stroke-width: 0; + dominant-baseline: central; + text-anchor: middle; +} + +ul.share-buttons { + margin: 4px 0 0 0; + padding-left: 8%; +} + +ul.share-buttons li { + padding: 0; + background: none !important; + width: 16%; + margin: 0; +} + +ul.share-buttons img { + width: 2em; +} + +input[type="checkbox"].native { + accent-color: var(--header); + cursor: pointer; +} + +input[type="checkbox"]:not(.native) { + display: none; +} + +.checkbox, +.checkbox-label { + cursor: pointer; +} + +.checkbox + .checkbox-label:before { + content: ""; + display: inline-block; + vertical-align: bottom; + width: 0.6em; + height: 0.6em; + padding: 0.2em; + margin-right: 0.2em; + border: 1px solid darkgrey; + border-radius: 15%; + background: white; + font-family: var(--monospace); +} + +.checkbox:checked + .checkbox-label:before { + line-height: 0.8em; + font-weight: bold; + content: "✓"; + color: #333333; +} + +div.textual select, +div.textual textarea, +div.textual input { + font-family: var(--monospace); +} + +div.textual fieldset { + margin: 3px 3px 5px 0; + border-style: dashed; +} + +div.textual span, +.textual legend { + font-size: 0.9em; + font-weight: bold; +} + +#namesbaseExamples { + font-family: var(--monospace); + cursor: pointer; +} + +#markers { + cursor: pointer; + font-family: var(--monospace); + user-select: none; + text-anchor: middle; + dominant-baseline: central; +} + +.highlighted { + outline-width: 2px; + outline-style: dashed; + outline-color: #0da6ff; + outline-offset: 100px; + fill: none; +} + +#notes { + display: none; + position: fixed; + width: 28vw; + right: 1vw; + top: 1vw; + font-size: 1.2em; + border: 1px solid #5e4fa2; + background: rgba(255, 250, 228, 0.7); + box-shadow: 2px 2px 5px -3px #3a2804; +} + +@media screen and (max-width: 600px) { + #notes { + width: 50vw; + } +} + +#notesHeader { + font-weight: bold; + font-size: 1.3em; + padding: 16px 0 4px 12px; + border-bottom: 1px solid #5e4fa2; +} + +#notesBody { + padding: 14px 12px; + max-height: 80vh; + overflow: auto; +} + +#notesBody > iframe { + user-select: none; +} + +#notesBody p { + margin: 4px; +} + +#notesLegend { + width: auto; + height: 87%; + outline: 0; + overflow-y: auto; + padding: 0.6em; + font-family: var(--monospace); + background-color: #fff; + border: 1px solid #dedede; + color: #000; +} + +svg.button { + position: relative; + background-color: transparent; + margin: -5px; + padding: 0; +} + +#reliefEditor > div > div { + font-style: italic; + display: inline-block; +} + +#reliefEditor div.reliefEditorLabel { + width: 4em; +} + +#reliefEditor input[type="range"] { + width: 16em; +} + +#reliefIconsDiv { + margin-top: 2px; + padding: 2px; + width: 100%; +} + +#reliefIconsDiv svg { + width: 40px; + height: 40px; + background-color: #e7e6e4; + border: 1px solid #a9a9a9; + cursor: pointer; +} + +#reliefIconsDiv svg:hover { + border-color: #5c5c5c; + background-color: #eef6fb; + transition: all 0.3s ease-out 3s; + transform: scale(2); +} + +#reliefIconsDiv svg.pressed { + border: 1px solid #b3352c; + background-color: #f2f2f2; +} + +#reliefIconsSeletionAny { + display: none; + text-anchor: middle; + dominant-baseline: central; +} + +#alertMessage { + user-select: text; + max-height: 70vh; + max-width: 75vw; + overflow: auto; +} + +#alertMessage ul { + padding-left: 1.2em; + margin: 1em 0; +} + +.pseudoLink { + cursor: pointer; + text-decoration: underline; +} + +.info-line { + font-size: 0.9em; + font-style: italic; + color: gray; + user-select: none; +} + +.optionsSeedRestore { + font-size: 12px; + cursor: pointer; + margin-right: 2px; +} + +.optionsSeedRestore:hover { + color: blue; +} + +#worldControls { + width: 16em; + display: inline-block; + vertical-align: top; +} + +#worldControls > div { + display: block; + margin: 1px 0; + padding: 2px 0; +} + +#worldControls input[type="number"] { + border: 1px solid #e5e5e5; + padding: 0px; + width: 4em; +} + +#worldControls i.icon-lock-open, +#worldControls i.icon-lock { + color: #626573; + font-size: 0.8em; + cursor: pointer; +} + +#globe { + stroke: black; + stroke-width: 1; +} + +#globeNoteLines { + stroke-dasharray: 5; + stroke: #bbb; +} + +#globaAxisLabels { + font-style: italic; + font-size: 9px; + font-family: var(--monospace); + stroke: none; + fill: #001754; +} + +#globeLatLabels { + font-size: 12px; + font-family: var(--monospace); + stroke: none; + fill: #001754; +} + +#globeWindArrows { + fill: none; + stroke: #6072a3; + cursor: pointer; +} + +#globeWindArrows path { + stroke-width: 1.7px; + fill: none; + stroke: #6072a3; + pointer-events: none; +} + +#globeWindArrows circle { + fill: #fff; + fill-opacity: 0; + stroke-opacity: 0.05; +} + +#globaAxisLabels #restoreWind:hover { + cursor: pointer; + fill: blue; +} + +#globeArea { + fill: white; + fill-opacity: 0.3; +} + +#globeGraticule { + fill: none; + stroke-width: 0.2; +} + +#globePrimeMeridian { + stroke: blue; + stroke-width: 1.4; +} + +#globeEquator { + stroke: red; + stroke-width: 1.4; +} + +#legend { + cursor: move; + user-select: none; +} + +.dontAsk { + margin: 0.9em 0 0 0.6em; + display: inline-flex; + align-items: center; +} + +#errorBox { + font-size: 0.9em; + font-family: var(--monospace); + color: #920303; + background-color: #dabdbd91; + padding: 2px; + border: 1px solid var(--header); +} + +.announcement { + background-color: #a18888; + color: white; + padding: 0.4em 0.5em; + border: dashed 1px var(--dark-solid); +} + +.speaker { + font-size: 0.9em; + cursor: pointer; +} + +#prompt { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + max-width: 23em; + padding: 1.2em; + background-color: var(--bg-dialogs); + border: solid 1px var(--dark-solid); + font-size: 1.2em; + z-index: 1000; +} + +#promptText { + padding: 0 0 0.6em 0; + font-weight: bold; + font-family: var(--sans-serif); +} + +#mapOverlay { + position: absolute; + inset: 0; + display: flex; + align-items: center; + justify-content: center; + z-index: 10; + pointer-events: none; + text-align: center; + background: rgba(0, 0, 0, 0.5); + font-size: 2.4em; + color: #fff5da; + text-shadow: 0px 1px 4px #4c3a35; +} + +.epgrid line { + stroke: lightgrey; + stroke-opacity: 0.5; + shape-rendering: crispEdges; +} + +.epgrid path { + stroke-width: 0; +} + +#debug { + font-size: 1px; + opacity: 0.8; +} + +#markerTypeSelector { + font-size: 0.85em; +} + +#markerTypeSelectorWrapper { + position: relative; +} + +#markerTypeSelectMenu { + display: none; +} + +#markerTypeSelectMenu.visible { + display: block; + position: absolute; + height: 250px; + width: 170px; + overflow-y: scroll; + background: inherit; + bottom: 100%; + left: 0; + background: white; +} + +#markerTypeSelectMenu > button { + display: block; + width: 100%; + border: 1px solid #ddd; + margin-bottom: 1px; +} + +#markerTypeSelectMenu > button:hover { + background: #ccc; +} + +.separator { + display: flex; + align-items: center; + text-align: center; + + font-style: italic; + font-weight: bold; + color: #222; + margin: 0.8em 0 0 0; +} +.separator::before, +.separator::after { + content: ""; + flex: 1; + border-bottom: 1px solid #333; +} +.separator:not(:empty)::before { + margin-right: 0.25em; +} +.separator:not(:empty)::after { + margin-left: 0.25em; +} + +@keyframes clockwiseBorderPulse { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + +#chat-widget-container { + user-select: none; +} + +#chat-widget-minimized { + animation: fadeIn 1s ease-in; + transform: scale(0.65); + opacity: var(--bg-opacity); +} + +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: var(--bg-opacity); + } +} + +@media print { + div, + canvas { + display: none; + } +} + +@media only screen and (max-width: 420px) { + table { + width: 100%; + } + + .tabcontent { + max-width: 100%; + } + + .drag-trigger { + display: none; + } +} + +@media (prefers-color-scheme: dark) { + body { + background: #25252a; + } +} diff --git a/index.html b/src/index.html similarity index 100% rename from index.html rename to src/index.html diff --git a/src/libs/alea.min.js b/src/libs/alea.min.js new file mode 100644 index 00000000..f4ecef67 --- /dev/null +++ b/src/libs/alea.min.js @@ -0,0 +1,3 @@ +/*https://github.com/macmcmeans/aleaPRNG/blob/master/aleaPRNG-1.1.js +©2010 Johannes Baagøe, MIT license; Derivative ©2017-2020 W. Mac" McMeans, BSD license.*/ +const aleaPRNG=function(){return function(n){"use strict";var r,t,e,o,a,u=new Uint32Array(3),i="";function c(n){var a=function(){var n=4022871197,r=function(r){r=r.toString();for(var t=0,e=r.length;t>>0,n=(o*=n)>>>0,n+=4294967296*(o-=n)}return 2.3283064365386963e-10*(n>>>0)};return r.version="Mash 0.9",r}();r=a(" "),t=a(" "),e=a(" "),o=1;for(var u=0;uarguments[1]&&(n=arguments[1],r=arguments[0]),f(n)&&f(r)?Math.floor(l()*(r-n+1))+n:l()*(r-n)+n},l.restart=function(){c(a)},l.seed=function(){c(Array.prototype.slice.call(arguments))},l.version=function(){return"aleaPRNG 1.1.0"},l.versions=function(){return"aleaPRNG 1.1.0, "+i},0===n.length&&(window.crypto.getRandomValues(u),n=[u[0],u[1],u[2]]),a=n,c(n),l}(Array.prototype.slice.call(arguments))}; \ No newline at end of file diff --git a/src/libs/d3.min.js b/src/libs/d3.min.js new file mode 100644 index 00000000..8ed42731 --- /dev/null +++ b/src/libs/d3.min.js @@ -0,0 +1,2 @@ +// https://d3js.org v5.8.0 Copyright 2019 Mike Bostock +!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3=t.d3||{})}(this,function(t){"use strict";function n(t,n){return tn?1:t>=n?0:NaN}function e(t){var e;return 1===t.length&&(e=t,t=function(t,r){return n(e(t),r)}),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r>>1;t(n[o],e)<0?r=o+1:i=o}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r>>1;t(n[o],e)>0?i=o:r=o+1}return r}}}var r=e(n),i=r.right,o=r.left;function a(t,n){return[t,n]}function u(t){return null===t?NaN:+t}function c(t,n){var e,r,i=t.length,o=0,a=-1,c=0,f=0;if(null==n)for(;++a1)return f/(o-1)}function f(t,n){var e=c(t,n);return e?Math.sqrt(e):e}function s(t,n){var e,r,i,o=t.length,a=-1;if(null==n){for(;++a=e)for(r=i=e;++ae&&(r=e),i=e)for(r=i=e;++ae&&(r=e),i0)return[t];if((r=n0)for(t=Math.ceil(t/a),n=Math.floor(n/a),o=new Array(i=Math.ceil(n-t+1));++u=0?(o>=y?10:o>=_?5:o>=b?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=y?10:o>=_?5:o>=b?2:1)}function w(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=y?i*=10:o>=_?i*=5:o>=b&&(i*=2),n=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,o=Math.floor(i),a=+e(t[o],o,t);return a+(+e(t[o+1],o+1,t)-a)*(i-o)}}function A(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o=e)for(r=e;++or&&(r=e)}else for(;++o=e)for(r=e;++or&&(r=e);return r}function k(t){for(var n,e,r,i=t.length,o=-1,a=0;++o=0;)for(n=(r=t[i]).length;--n>=0;)e[--a]=r[n];return e}function S(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o=e)for(r=e;++oe&&(r=e)}else for(;++o=e)for(r=e;++oe&&(r=e);return r}function T(t){if(!(i=t.length))return[];for(var n=-1,e=S(t,E),r=new Array(e);++n=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}})),a=-1,u=o.length;if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++a0)for(var e,r,i=new Array(e),o=0;o=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),V.hasOwnProperty(n)?{space:V[n],local:t}:t}function W(t){var n=$(t);return(n.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===G&&n.documentElement.namespaceURI===G?n.createElement(t):n.createElementNS(e,t)}})(n)}function Z(){}function Q(t){return null==t?Z:function(){return this.querySelector(t)}}function J(){return[]}function K(t){return null==t?J:function(){return this.querySelectorAll(t)}}function tt(t){return function(){return this.matches(t)}}function nt(t){return new Array(t.length)}function et(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}et.prototype={constructor:et,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var rt="$";function it(t,n,e,r,i,o){for(var a,u=0,c=n.length,f=o.length;un?1:t>=n?0:NaN}function ut(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function ct(t,n){return t.style.getPropertyValue(n)||ut(t).getComputedStyle(t,null).getPropertyValue(n)}function ft(t){return t.trim().split(/^|\s+/)}function st(t){return t.classList||new lt(t)}function lt(t){this._node=t,this._names=ft(t.getAttribute("class")||"")}function ht(t,n){for(var e=st(t),r=-1,i=n.length;++r=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var wt={};(t.event=null,"undefined"!=typeof document)&&("onmouseenter"in document.documentElement||(wt={mouseenter:"mouseover",mouseleave:"mouseout"}));function Mt(t,n,e){return t=Nt(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function Nt(n,e,r){return function(i){var o=t.event;t.event=i;try{n.call(this,this.__data__,e,r)}finally{t.event=o}}}function At(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r=x&&(x=m+1);!(b=y[x])&&++x=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=at);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o1?this.each((null==n?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof n?function(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}:function(t,n,e){return function(){this.style.setProperty(t,n,e)}})(t,n,null==e?"":e)):ct(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?function(t){return function(){delete this[t]}}:"function"==typeof n?function(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}:function(t,n){return function(){this[t]=n}})(t,n)):this.node()[t]},classed:function(t,n){var e=ft(t+"");if(arguments.length<2){for(var r=st(this.node()),i=-1,o=e.length;++i=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}(t+""),a=o.length;if(!(arguments.length<2)){for(u=n?kt:At,null==e&&(e=!1),r=0;r>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):(n=rn.exec(t))?dn(parseInt(n[1],16)):(n=on.exec(t))?new yn(n[1],n[2],n[3],1):(n=an.exec(t))?new yn(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=un.exec(t))?pn(n[1],n[2],n[3],n[4]):(n=cn.exec(t))?pn(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=fn.exec(t))?bn(n[1],n[2]/100,n[3]/100,1):(n=sn.exec(t))?bn(n[1],n[2]/100,n[3]/100,n[4]):ln.hasOwnProperty(t)?dn(ln[t]):"transparent"===t?new yn(NaN,NaN,NaN,0):null}function dn(t){return new yn(t>>16&255,t>>8&255,255&t,1)}function pn(t,n,e,r){return r<=0&&(t=n=e=NaN),new yn(t,n,e,r)}function vn(t){return t instanceof Jt||(t=hn(t)),t?new yn((t=t.rgb()).r,t.g,t.b,t.opacity):new yn}function gn(t,n,e,r){return 1===arguments.length?vn(t):new yn(t,n,e,null==r?1:r)}function yn(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function _n(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function bn(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new xn(t,n,e,r)}function mn(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof xn)return new xn(t.h,t.s,t.l,t.opacity);if(t instanceof Jt||(t=hn(t)),!t)return new xn;if(t instanceof xn)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,c=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e0&&c<1?0:a,new xn(a,u,c,t.opacity)}(t):new xn(t,n,e,null==r?1:r)}function xn(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function wn(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}Zt(Jt,hn,{displayable:function(){return this.rgb().displayable()},hex:function(){return this.rgb().hex()},toString:function(){return this.rgb()+""}}),Zt(yn,gn,Qt(Jt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new yn(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new yn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},hex:function(){return"#"+_n(this.r)+_n(this.g)+_n(this.b)},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),Zt(xn,mn,Qt(Jt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new xn(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new xn(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new yn(wn(t>=240?t-240:t+120,i,r),wn(t,i,r),wn(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var Mn=Math.PI/180,Nn=180/Math.PI,An=.96422,kn=1,Sn=.82521,Tn=4/29,En=6/29,Cn=3*En*En,Pn=En*En*En;function zn(t){if(t instanceof qn)return new qn(t.l,t.a,t.b,t.opacity);if(t instanceof Fn){if(isNaN(t.h))return new qn(t.l,0,0,t.opacity);var n=t.h*Mn;return new qn(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof yn||(t=vn(t));var e,r,i=On(t.r),o=On(t.g),a=On(t.b),u=Dn((.2225045*i+.7168786*o+.0606169*a)/kn);return i===o&&o===a?e=r=u:(e=Dn((.4360747*i+.3850649*o+.1430804*a)/An),r=Dn((.0139322*i+.0971045*o+.7141733*a)/Sn)),new qn(116*u-16,500*(e-u),200*(u-r),t.opacity)}function Rn(t,n,e,r){return 1===arguments.length?zn(t):new qn(t,n,e,null==r?1:r)}function qn(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function Dn(t){return t>Pn?Math.pow(t,1/3):t/Cn+Tn}function Ln(t){return t>En?t*t*t:Cn*(t-Tn)}function Un(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function On(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Yn(t){if(t instanceof Fn)return new Fn(t.h,t.c,t.l,t.opacity);if(t instanceof qn||(t=zn(t)),0===t.a&&0===t.b)return new Fn(NaN,0,t.l,t.opacity);var n=Math.atan2(t.b,t.a)*Nn;return new Fn(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function Bn(t,n,e,r){return 1===arguments.length?Yn(t):new Fn(t,n,e,null==r?1:r)}function Fn(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}Zt(qn,Rn,Qt(Jt,{brighter:function(t){return new qn(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new qn(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return new yn(Un(3.1338561*(n=An*Ln(n))-1.6168667*(t=kn*Ln(t))-.4906146*(e=Sn*Ln(e))),Un(-.9787684*n+1.9161415*t+.033454*e),Un(.0719453*n-.2289914*t+1.4052427*e),this.opacity)}})),Zt(Fn,Bn,Qt(Jt,{brighter:function(t){return new Fn(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new Fn(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return zn(this).rgb()}}));var In=-.14861,Hn=1.78277,jn=-.29227,Xn=-.90649,Gn=1.97294,Vn=Gn*Xn,$n=Gn*Hn,Wn=Hn*jn-Xn*In;function Zn(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof Qn)return new Qn(t.h,t.s,t.l,t.opacity);t instanceof yn||(t=vn(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(Wn*r+Vn*n-$n*e)/(Wn+Vn-$n),o=r-i,a=(Gn*(e-i)-jn*o)/Xn,u=Math.sqrt(a*a+o*o)/(Gn*i*(1-i)),c=u?Math.atan2(a,o)*Nn-120:NaN;return new Qn(c<0?c+360:c,u,i,t.opacity)}(t):new Qn(t,n,e,null==r?1:r)}function Qn(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Jn(t,n,e,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*n+(4-6*o+3*a)*e+(1+3*t+3*o-3*a)*r+a*i)/6}function Kn(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r180||e<-180?e-360*Math.round(e/360):e):ne(isNaN(t)?n:t)}function ie(t){return 1==(t=+t)?oe:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):ne(isNaN(n)?e:n)}}function oe(t,n){var e=n-t;return e?ee(t,e):ne(isNaN(t)?n:t)}Zt(Qn,Zn,Qt(Jt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Qn(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Qn(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Mn,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new yn(255*(n+e*(In*r+Hn*i)),255*(n+e*(jn*r+Xn*i)),255*(n+e*(Gn*r)),this.opacity)}}));var ae=function t(n){var e=ie(n);function r(t,n){var r=e((t=gn(t)).r,(n=gn(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=oe(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function ue(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),u=new Array(i);for(e=0;eo&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,c.push({i:a,x:he(e,r)})),o=ve.lastIndex;return o180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:he(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,u,c),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:he(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,u,c),function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:he(t,e)},{i:u-2,x:he(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,c),o=a=null,function(t){for(var n,e=-1,r=c.length;++e=0&&n._call.call(null,t),n=n._next;--Ge}function ar(){Qe=(Ze=Ke.now())+Je,Ge=Ve=0;try{or()}finally{Ge=0,function(){var t,n,e=je,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:je=n);Xe=t,cr(r)}(),Qe=0}}function ur(){var t=Ke.now(),n=t-Ze;n>We&&(Je-=n,Ze=t)}function cr(t){Ge||(Ve&&(Ve=clearTimeout(Ve)),t-Qe>24?(t<1/0&&(Ve=setTimeout(ar,t-Ke.now()-Je)),$e&&($e=clearInterval($e))):($e||(Ze=Ke.now(),$e=setInterval(ur,We)),Ge=1,tr(ar)))}function fr(t,n,e){var r=new rr;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r}rr.prototype=ir.prototype={constructor:rr,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?nr():+e)+(null==n?0:+n),this._next||Xe===this||(Xe?Xe._next=this:je=this,Xe=this),this._call=t,this._time=e,cr()},stop:function(){this._call&&(this._call=null,this._time=1/0,cr())}};var sr=I("start","end","cancel","interrupt"),lr=[],hr=0,dr=1,pr=2,vr=3,gr=4,yr=5,_r=6;function br(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(c){var f,s,l,h;if(e.state!==dr)return u();for(f in i)if((h=i[f]).name===e.name){if(h.state===vr)return fr(o);h.state===gr?(h.state=_r,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete i[f]):+fhr)throw new Error("too late; already scheduled");return e}function xr(t,n){var e=wr(t,n);if(e.state>vr)throw new Error("too late; already running");return e}function wr(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function Mr(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>pr&&e.state=0&&(t=t.slice(0,n)),!t||"start"===t})}(n)?mr:xr;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}(e,t,n))},attr:function(t,n){var e=$(t),r="transform"===e?Te:Ar;return this.attrTween(t,"function"==typeof n?(e.local?function(t,n,e){var r,i,o;return function(){var a,u,c=e(this);if(null!=c)return(a=this.getAttributeNS(t.space,t.local))===(u=c+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,c));this.removeAttributeNS(t.space,t.local)}}:function(t,n,e){var r,i,o;return function(){var a,u,c=e(this);if(null!=c)return(a=this.getAttribute(t))===(u=c+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,c));this.removeAttribute(t)}})(e,r,Nr(this,"attr."+t,n)):null==n?(e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(e):(e.local?function(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?i:i=n(r=a,e)}}:function(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?i:i=n(r=a,e)}})(e,r,n))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=$(t);return this.tween(e,(r.local?function(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(t,n){return function(e){this.setAttributeNS(t.space,t.local,n(e))}}(t,i)),e}return i._value=n,i}:function(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(t,n){return function(e){this.setAttribute(t,n(e))}}(t,i)),e}return i._value=n,i})(r,n))},style:function(t,n,e){var r="transform"==(t+="")?Se:Ar;return null==n?this.styleTween(t,function(t,n){var e,r,i;return function(){var o=ct(this,t),a=(this.style.removeProperty(t),ct(this,t));return o===a?null:o===e&&a===r?i:i=n(e=o,r=a)}}(t,r)).on("end.style."+t,Sr(t)):"function"==typeof n?this.styleTween(t,function(t,n,e){var r,i,o;return function(){var a=ct(this,t),u=e(this),c=u+"";return null==u&&(this.style.removeProperty(t),c=u=ct(this,t)),a===c?null:a===r&&c===i?o:(i=c,o=n(r=a,u))}}(t,r,Nr(this,"style."+t,n))).each(function(t,n){var e,r,i,o,a="style."+n,u="end."+a;return function(){var c=xr(this,t),f=c.on,s=null==c.value[a]?o||(o=Sr(n)):void 0;f===e&&i===s||(r=(e=f).copy()).on(u,i=s),c.on=r}}(this._id,t)):this.styleTween(t,function(t,n,e){var r,i,o=e+"";return function(){var a=ct(this,t);return a===o?null:a===r?i:i=n(r=a,e)}}(t,r,n),e).on("end.style."+t,null)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,function(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&function(t,n,e){return function(r){this.style.setProperty(t,n(r),e)}}(t,o,e)),r}return o._value=n,o}(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}(Nr(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},remove:function(){return this.on("end.remove",(t=this._id,function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}));var t},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=wr(this.node(),e).tween,o=0,a=i.length;o0&&(r=o-p),M<0?h=d-v:M>0&&(a=u-v),x=vi,L.attr("cursor",xi.selection),Y());break;default:return}di()},!0).on("keyup.brush",function(){switch(t.event.keyCode){case 16:P&&(y=_=P=!1,Y());break;case 18:x===yi&&(w<0?s=l:w>0&&(r=o),M<0?h=d:M>0&&(a=u),x=gi,Y());break;case 32:x===vi&&(t.event.altKey?(w&&(s=l-p*w,r=o+p*w),M&&(h=d-v*M,a=u+v*M),x=yi):(w<0?s=l:w>0&&(r=o),M<0?h=d:M>0&&(a=u),x=gi),L.attr("cursor",xi[m]),Y());break;default:return}di()},!0).on("mousemove.brush",O,!0).on("mouseup.brush",B,!0);It(t.event.view)}hi(),Mr(b),c.call(b),q.start()}function O(){var t=Ot(b);!P||y||_||(Math.abs(t[0]-R[0])>Math.abs(t[1]-R[1])?_=!0:y=!0),R=t,g=!0,di(),Y()}function Y(){var t;switch(p=R[0]-z[0],v=R[1]-z[1],x){case vi:case pi:w&&(p=Math.max(S-r,Math.min(E-s,p)),o=r+p,l=s+p),M&&(v=Math.max(T-a,Math.min(C-h,v)),u=a+v,d=h+v);break;case gi:w<0?(p=Math.max(S-r,Math.min(E-r,p)),o=r+p,l=s):w>0&&(p=Math.max(S-s,Math.min(E-s,p)),o=r,l=s+p),M<0?(v=Math.max(T-a,Math.min(C-a,v)),u=a+v,d=h):M>0&&(v=Math.max(T-h,Math.min(C-h,v)),u=a,d=h+v);break;case yi:w&&(o=Math.max(S,Math.min(E,r-p*w)),l=Math.max(S,Math.min(E,s+p*w))),M&&(u=Math.max(T,Math.min(C,a-v*M)),d=Math.max(T,Math.min(C,h+v*M)))}l1e-6)if(Math.abs(s*u-c*f)>1e-6&&i){var h=e-o,d=r-a,p=u*u+c*c,v=h*h+d*d,g=Math.sqrt(p),y=Math.sqrt(l),_=i*Math.tan((Bi-Math.acos((p+l-v)/(2*g*y)))/2),b=_/y,m=_/g;Math.abs(b-1)>1e-6&&(this._+="L"+(t+b*f)+","+(n+b*s)),this._+="A"+i+","+i+",0,0,"+ +(s*h>f*d)+","+(this._x1=t+m*u)+","+(this._y1=n+m*c)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n;var a=(e=+e)*Math.cos(r),u=e*Math.sin(r),c=t+a,f=n+u,s=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+c+","+f:(Math.abs(this._x1-c)>1e-6||Math.abs(this._y1-f)>1e-6)&&(this._+="L"+c+","+f),e&&(l<0&&(l=l%Fi+Fi),l>Ii?this._+="A"+e+","+e+",0,1,"+s+","+(t-a)+","+(n-u)+"A"+e+","+e+",0,1,"+s+","+(this._x1=c)+","+(this._y1=f):l>1e-6&&(this._+="A"+e+","+e+",0,"+ +(l>=Bi)+","+s+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};function Zi(){}function Qi(t,n){var e=new Zi;if(t instanceof Zi)t.each(function(t,n){e.set(n,t)});else if(Array.isArray(t)){var r,i=-1,o=t.length;if(null==n)for(;++ir!=d>r&&e<(h-f)*(r-s)/(d-s)+f&&(i=-i)}return i}function so(t,n,e){var r,i,o,a;return function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])==(e[0]-t[0])*(n[1]-t[1])}(t,n,e)&&(i=t[r=+(t[0]===n[0])],o=e[r],a=n[r],i<=o&&o<=a||a<=o&&o<=i)}function lo(){}var ho=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function po(){var t=1,n=1,e=M,r=u;function i(t){var n=e(t);if(Array.isArray(n))n=n.slice().sort(ao);else{var r=s(t),i=r[0],a=r[1];n=w(i,a,n),n=g(Math.floor(i/n)*n,Math.floor(a/n)*n,n)}return n.map(function(n){return o(t,n)})}function o(e,i){var o=[],u=[];return function(e,r,i){var o,u,c,f,s,l,h=new Array,d=new Array;o=u=-1,f=e[0]>=r,ho[f<<1].forEach(p);for(;++o=r,ho[c|f<<1].forEach(p);ho[f<<0].forEach(p);for(;++u=r,s=e[u*t]>=r,ho[f<<1|s<<2].forEach(p);++o=r,l=s,s=e[u*t+o+1]>=r,ho[c|f<<1|s<<2|l<<3].forEach(p);ho[f|s<<3].forEach(p)}o=-1,s=e[u*t]>=r,ho[s<<2].forEach(p);for(;++o=r,ho[s<<2|l<<3].forEach(p);function p(t){var n,e,r=[t[0][0]+o,t[0][1]+u],c=[t[1][0]+o,t[1][1]+u],f=a(r),s=a(c);(n=d[f])?(e=h[s])?(delete d[n.end],delete h[e.start],n===e?(n.ring.push(c),i(n.ring)):h[n.start]=d[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete d[n.end],n.ring.push(c),d[n.end=s]=n):(n=h[s])?(e=d[f])?(delete h[n.start],delete d[e.end],n===e?(n.ring.push(c),i(n.ring)):h[e.start]=d[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete h[n.start],n.ring.unshift(r),h[n.start=f]=n):h[f]=d[s]={start:f,end:s,ring:[r,c]}}ho[s<<3].forEach(p)}(e,i,function(t){r(t,e,i),function(t){for(var n=0,e=t.length,r=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++n0?o.push([t]):u.push(t)}),u.forEach(function(t){for(var n,e=0,r=o.length;e0&&a0&&u0&&o>0))throw new Error("invalid size");return t=r,n=o,i},i.thresholds=function(t){return arguments.length?(e="function"==typeof t?t:Array.isArray(t)?uo(oo.call(t)):uo(t),i):e},i.smooth=function(t){return arguments.length?(r=t?u:lo,i):r===u},i}function vo(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a=e&&(u>=o&&(c-=t.data[u-o+a*r]),n.data[u-e+a*r]=c/Math.min(u+1,r-1+o-u,o))}function go(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a=e&&(u>=o&&(c-=t.data[a+(u-o)*r]),n.data[a+(u-e)*r]=c/Math.min(u+1,i-1+o-u,o))}function yo(t){return t[0]}function _o(t){return t[1]}function bo(){return 1}var mo={},xo={},wo=34,Mo=10,No=13;function Ao(t){return new Function("d","return {"+t.map(function(t,n){return JSON.stringify(t)+": d["+n+"]"}).join(",")+"}")}function ko(t){var n=new RegExp('["'+t+"\n\r]"),e=t.charCodeAt(0);function r(t,n){var r,i=[],o=t.length,a=0,u=0,c=o<=0,f=!1;function s(){if(c)return xo;if(f)return f=!1,mo;var n,r,i=a;if(t.charCodeAt(i)===wo){for(;a++=o?c=!0:(r=t.charCodeAt(a++))===Mo?f=!0:r===No&&(f=!0,t.charCodeAt(a)===Mo&&++a),t.slice(i+1,n-1).replace(/""/g,'"')}for(;a=(o=(v+y)/2))?v=o:y=o,(s=e>=(a=(g+_)/2))?g=a:_=a,i=d,!(d=d[l=s<<1|f]))return i[l]=p,t;if(u=+t._x.call(null,d.data),c=+t._y.call(null,d.data),n===u&&e===c)return p.next=d,i?i[l]=p:t._root=p,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(f=n>=(o=(v+y)/2))?v=o:y=o,(s=e>=(a=(g+_)/2))?g=a:_=a}while((l=s<<1|f)==(h=(c>=a)<<1|u>=o));return i[h]=d,i[l]=p,t}function Jo(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function Ko(t){return t[0]}function ta(t){return t[1]}function na(t,n,e){var r=new ea(null==n?Ko:n,null==e?ta:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function ea(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function ra(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var ia=na.prototype=ea.prototype;function oa(t){return t.x+t.vx}function aa(t){return t.y+t.vy}function ua(t){return t.index}function ca(t,n){var e=t.get(n);if(!e)throw new Error("missing: "+n);return e}function fa(t){return t.x}function sa(t){return t.y}ia.copy=function(){var t,n,e=new ea(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=ra(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=ra(n));return e},ia.add=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return Qo(this.cover(n,e),n,e,t)},ia.addAll=function(t){var n,e,r,i,o=t.length,a=new Array(o),u=new Array(o),c=1/0,f=1/0,s=-1/0,l=-1/0;for(e=0;es&&(s=r),il&&(l=i));for(st||t>i||r>n||n>o))return this;var a,u,c=i-e,f=this._root;switch(u=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do{(a=new Array(4))[u]=f,f=a}while(o=r+(c*=2),t>(i=e+c)||n>o);break;case 1:do{(a=new Array(4))[u]=f,f=a}while(o=r+(c*=2),(e=i-c)>t||n>o);break;case 2:do{(a=new Array(4))[u]=f,f=a}while(r=o-(c*=2),t>(i=e+c)||r>n);break;case 3:do{(a=new Array(4))[u]=f,f=a}while(r=o-(c*=2),(e=i-c)>t||r>n)}this._root&&this._root.length&&(this._root=f)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},ia.data=function(){var t=[];return this.visit(function(n){if(!n.length)do{t.push(n.data)}while(n=n.next)}),t},ia.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},ia.find=function(t,n,e){var r,i,o,a,u,c,f,s=this._x0,l=this._y0,h=this._x1,d=this._y1,p=[],v=this._root;for(v&&p.push(new Jo(v,s,l,h,d)),null==e?e=1/0:(s=t-e,l=n-e,h=t+e,d=n+e,e*=e);c=p.pop();)if(!(!(v=c.node)||(i=c.x0)>h||(o=c.y0)>d||(a=c.x1)=y)<<1|t>=g)&&(c=p[p.length-1],p[p.length-1]=p[p.length-1-f],p[p.length-1-f]=c)}else{var _=t-+this._x.call(null,v.data),b=n-+this._y.call(null,v.data),m=_*_+b*b;if(m=(u=(p+g)/2))?p=u:g=u,(s=a>=(c=(v+y)/2))?v=c:y=c,n=d,!(d=d[l=s<<1|f]))return this;if(!d.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(d=n[0]||n[1]||n[2]||n[3])&&d===(n[3]||n[2]||n[1]||n[0])&&!d.length&&(e?e[h]=d:this._root=d),this):(this._root=i,this)},ia.removeAll=function(t){for(var n=0,e=t.length;n1?r[0]+r.slice(2):r,+t.slice(e+1)]}function pa(t){return(t=da(Math.abs(t)))?t[1]:NaN}var va,ga=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ya(t){return new _a(t)}function _a(t){if(!(n=ga.exec(t)))throw new Error("invalid format: "+t);var n;this.fill=n[1]||" ",this.align=n[2]||">",this.sign=n[3]||"-",this.symbol=n[4]||"",this.zero=!!n[5],this.width=n[6]&&+n[6],this.comma=!!n[7],this.precision=n[8]&&+n[8].slice(1),this.trim=!!n[9],this.type=n[10]||""}function ba(t,n){var e=da(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}ya.prototype=_a.prototype,_a.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var ma={"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return ba(100*t,n)},r:ba,s:function(t,n){var e=da(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(va=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+da(t,Math.max(0,n+o-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function xa(t){return t}var wa,Ma=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Na(t){var n,e,r=t.grouping&&t.thousands?(n=t.grouping,e=t.thousands,function(t,r){for(var i=t.length,o=[],a=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),o.push(t.substring(i-=u,i+u)),!((c+=u+1)>r));)u=n[a=(a+1)%n.length];return o.reverse().join(e)}):xa,i=t.currency,o=t.decimal,a=t.numerals?function(t){return function(n){return n.replace(/[0-9]/g,function(n){return t[+n]})}}(t.numerals):xa,u=t.percent||"%";function c(t){var n=(t=ya(t)).fill,e=t.align,c=t.sign,f=t.symbol,s=t.zero,l=t.width,h=t.comma,d=t.precision,p=t.trim,v=t.type;"n"===v?(h=!0,v="g"):ma[v]||(null==d&&(d=12),p=!0,v="g"),(s||"0"===n&&"="===e)&&(s=!0,n="0",e="=");var g="$"===f?i[0]:"#"===f&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",y="$"===f?i[1]:/[%p]/.test(v)?u:"",_=ma[v],b=/[defgprs%]/.test(v);function m(t){var i,u,f,m=g,x=y;if("c"===v)x=_(t)+x,t="";else{var w=(t=+t)<0;if(t=_(Math.abs(t),d),p&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r0){if(!+t[r])break t;i=0}}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),w&&0==+t&&(w=!1),m=(w?"("===c?c:"-":"-"===c||"("===c?"":c)+m,x=("s"===v?Ma[8+va/3]:"")+x+(w&&"("===c?")":""),b)for(i=-1,u=t.length;++i(f=t.charCodeAt(i))||f>57){x=(46===f?o+t.slice(i+1):t.slice(i))+x,t=t.slice(0,i);break}}h&&!s&&(t=r(t,1/0));var M=m.length+t.length+x.length,N=M>1)+m+t+x+N.slice(M);break;default:t=N+m+t+x}return a(t)}return d=null==d?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,d)):Math.max(0,Math.min(20,d)),m.toString=function(){return t+""},m}return{format:c,formatPrefix:function(t,n){var e=c(((t=ya(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(pa(n)/3))),i=Math.pow(10,-r),o=Ma[8+r/3];return function(t){return e(i*t)+o}}}}function Aa(n){return wa=Na(n),t.format=wa.format,t.formatPrefix=wa.formatPrefix,wa}function ka(t){return Math.max(0,-pa(Math.abs(t)))}function Sa(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(pa(n)/3)))-pa(Math.abs(t)))}function Ta(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,pa(n)-pa(t))+1}function Ea(){return new Ca}function Ca(){this.reset()}Aa({decimal:".",thousands:",",grouping:[3],currency:["$",""]}),Ca.prototype={constructor:Ca,reset:function(){this.s=this.t=0},add:function(t){za(Pa,t,this.t),za(this,Pa.s,this.s),this.s?this.t+=Pa.t:this.s=Pa.t},valueOf:function(){return this.s}};var Pa=new Ca;function za(t,n,e){var r=t.s=n+e,i=r-n,o=r-i;t.t=n-o+(e-i)}var Ra=1e-6,qa=1e-12,Da=Math.PI,La=Da/2,Ua=Da/4,Oa=2*Da,Ya=180/Da,Ba=Da/180,Fa=Math.abs,Ia=Math.atan,Ha=Math.atan2,ja=Math.cos,Xa=Math.ceil,Ga=Math.exp,Va=Math.log,$a=Math.pow,Wa=Math.sin,Za=Math.sign||function(t){return t>0?1:t<0?-1:0},Qa=Math.sqrt,Ja=Math.tan;function Ka(t){return t>1?0:t<-1?Da:Math.acos(t)}function tu(t){return t>1?La:t<-1?-La:Math.asin(t)}function nu(t){return(t=Wa(t/2))*t}function eu(){}function ru(t,n){t&&ou.hasOwnProperty(t.type)&&ou[t.type](t,n)}var iu={Feature:function(t,n){ru(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r=0?1:-1,i=r*e,o=ja(n=(n*=Ba)/2+Ua),a=Wa(n),u=du*a,c=hu*o+u*ja(i),f=u*r*Wa(i);pu.add(Ha(f,c)),lu=t,hu=o,du=a}function xu(t){return[Ha(t[1],t[0]),tu(t[2])]}function wu(t){var n=t[0],e=t[1],r=ja(e);return[r*ja(n),r*Wa(n),Wa(e)]}function Mu(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Nu(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Au(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function ku(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Su(t){var n=Qa(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var Tu,Eu,Cu,Pu,zu,Ru,qu,Du,Lu,Uu,Ou,Yu,Bu,Fu,Iu,Hu,ju,Xu,Gu,Vu,$u,Wu,Zu,Qu,Ju,Ku,tc=Ea(),nc={point:ec,lineStart:ic,lineEnd:oc,polygonStart:function(){nc.point=ac,nc.lineStart=uc,nc.lineEnd=cc,tc.reset(),gu.polygonStart()},polygonEnd:function(){gu.polygonEnd(),nc.point=ec,nc.lineStart=ic,nc.lineEnd=oc,pu<0?(Tu=-(Cu=180),Eu=-(Pu=90)):tc>Ra?Pu=90:tc<-Ra&&(Eu=-90),Uu[0]=Tu,Uu[1]=Cu}};function ec(t,n){Lu.push(Uu=[Tu=t,Cu=t]),nPu&&(Pu=n)}function rc(t,n){var e=wu([t*Ba,n*Ba]);if(Du){var r=Nu(Du,e),i=Nu([r[1],-r[0],0],r);Su(i),i=xu(i);var o,a=t-zu,u=a>0?1:-1,c=i[0]*Ya*u,f=Fa(a)>180;f^(u*zuPu&&(Pu=o):f^(u*zu<(c=(c+360)%360-180)&&cPu&&(Pu=n)),f?tfc(Tu,Cu)&&(Cu=t):fc(t,Cu)>fc(Tu,Cu)&&(Tu=t):Cu>=Tu?(tCu&&(Cu=t)):t>zu?fc(Tu,t)>fc(Tu,Cu)&&(Cu=t):fc(t,Cu)>fc(Tu,Cu)&&(Tu=t)}else Lu.push(Uu=[Tu=t,Cu=t]);nPu&&(Pu=n),Du=e,zu=t}function ic(){nc.point=rc}function oc(){Uu[0]=Tu,Uu[1]=Cu,nc.point=ec,Du=null}function ac(t,n){if(Du){var e=t-zu;tc.add(Fa(e)>180?e+(e>0?360:-360):e)}else Ru=t,qu=n;gu.point(t,n),rc(t,n)}function uc(){gu.lineStart()}function cc(){ac(Ru,qu),gu.lineEnd(),Fa(tc)>Ra&&(Tu=-(Cu=180)),Uu[0]=Tu,Uu[1]=Cu,Du=null}function fc(t,n){return(n-=t)<0?n+360:n}function sc(t,n){return t[0]-n[0]}function lc(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nDa?t+Math.round(-t/Oa)*Oa:t,n]}function kc(t,n,e){return(t%=Oa)?n||e?Nc(Tc(t),Ec(n,e)):Tc(t):n||e?Ec(n,e):Ac}function Sc(t){return function(n,e){return[(n+=t)>Da?n-Oa:n<-Da?n+Oa:n,e]}}function Tc(t){var n=Sc(t);return n.invert=Sc(-t),n}function Ec(t,n){var e=ja(t),r=Wa(t),i=ja(n),o=Wa(n);function a(t,n){var a=ja(n),u=ja(t)*a,c=Wa(t)*a,f=Wa(n),s=f*e+u*r;return[Ha(c*i-s*o,u*e-f*r),tu(s*i+c*o)]}return a.invert=function(t,n){var a=ja(n),u=ja(t)*a,c=Wa(t)*a,f=Wa(n),s=f*i-c*o;return[Ha(c*i+f*o,u*e+s*r),tu(s*e-u*r)]},a}function Cc(t){function n(n){return(n=t(n[0]*Ba,n[1]*Ba))[0]*=Ya,n[1]*=Ya,n}return t=kc(t[0]*Ba,t[1]*Ba,t.length>2?t[2]*Ba:0),n.invert=function(n){return(n=t.invert(n[0]*Ba,n[1]*Ba))[0]*=Ya,n[1]*=Ya,n},n}function Pc(t,n,e,r,i,o){if(e){var a=ja(n),u=Wa(n),c=r*e;null==i?(i=n+r*Oa,o=n-c/2):(i=zc(a,i),o=zc(a,o),(r>0?io)&&(i+=r*Oa));for(var f,s=i;r>0?s>o:s1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function qc(t,n){return Fa(t[0]-n[0])=0;--o)i.point((s=f[o])[0],s[1]);else r(h.x,h.p.x,-1,i);h=h.p}f=(h=h.o).z,d=!d}while(!h.v);i.lineEnd()}}}function Uc(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r=0?1:-1,A=N*M,k=A>Da,S=v*x;if(Oc.add(Ha(S*N*Wa(A),g*w+S*ja(A))),a+=k?M+N*Oa:M,k^d>=e^b>=e){var T=Nu(wu(h),wu(_));Su(T);var E=Nu(o,T);Su(E);var C=(k^M>=0?-1:1)*tu(E[2]);(r>C||r===C&&(T[0]||T[1]))&&(u+=k^M>=0?1:-1)}}return(a<-Ra||a0){for(l||(i.polygonStart(),l=!0),i.lineStart(),t=0;t1&&2&c&&h.push(h.pop().concat(h.shift())),a.push(h.filter(Fc))}return h}}function Fc(t){return t.length>1}function Ic(t,n){return((t=t.x)[0]<0?t[1]-La-Ra:La-t[1])-((n=n.x)[0]<0?n[1]-La-Ra:La-n[1])}var Hc=Bc(function(){return!0},function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,a){var u=o>0?Da:-Da,c=Fa(o-e);Fa(c-Da)0?La:-La),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(o,r),n=0):i!==u&&c>=Da&&(Fa(e-i)Ra?Ia((Wa(n)*(o=ja(r))*Wa(e)-Wa(r)*(i=ja(n))*Wa(t))/(i*o*a)):(n+r)/2}(e,r,o,a),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),n=0),t.point(e=o,r=a),i=u},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}},function(t,n,e,r){var i;if(null==t)i=e*La,r.point(-Da,i),r.point(0,i),r.point(Da,i),r.point(Da,0),r.point(Da,-i),r.point(0,-i),r.point(-Da,-i),r.point(-Da,0),r.point(-Da,i);else if(Fa(t[0]-n[0])>Ra){var o=t[0]0,i=Fa(n)>Ra;function o(t,e){return ja(t)*ja(e)>n}function a(t,e,r){var i=[1,0,0],o=Nu(wu(t),wu(e)),a=Mu(o,o),u=o[0],c=a-u*u;if(!c)return!r&&t;var f=n*a/c,s=-n*u/c,l=Nu(i,o),h=ku(i,f);Au(h,ku(o,s));var d=l,p=Mu(h,d),v=Mu(d,d),g=p*p-v*(Mu(h,h)-1);if(!(g<0)){var y=Qa(g),_=ku(d,(-p-y)/v);if(Au(_,h),_=xu(_),!r)return _;var b,m=t[0],x=e[0],w=t[1],M=e[1];x0^_[1]<(Fa(_[0]-m)Da^(m<=_[0]&&_[0]<=x)){var k=ku(d,(-p+y)/v);return Au(k,h),[_,xu(k)]}}}function u(n,e){var i=r?t:Da-t,o=0;return n<-i?o|=1:n>i&&(o|=2),e<-i?o|=4:e>i&&(o|=8),o}return Bc(o,function(t){var n,e,c,f,s;return{lineStart:function(){f=c=!1,s=1},point:function(l,h){var d,p=[l,h],v=o(l,h),g=r?v?0:u(l,h):v?u(l+(l<0?Da:-Da),h):0;if(!n&&(f=c=v)&&t.lineStart(),v!==c&&(!(d=a(n,p))||qc(n,d)||qc(p,d))&&(p[0]+=Ra,p[1]+=Ra,v=o(p[0],p[1])),v!==c)s=0,v?(t.lineStart(),d=a(p,n),t.point(d[0],d[1])):(d=a(n,p),t.point(d[0],d[1]),t.lineEnd()),n=d;else if(i&&n&&r^v){var y;g&e||!(y=a(p,n,!0))||(s=0,r?(t.lineStart(),t.point(y[0][0],y[0][1]),t.point(y[1][0],y[1][1]),t.lineEnd()):(t.point(y[1][0],y[1][1]),t.lineEnd(),t.lineStart(),t.point(y[0][0],y[0][1])))}!v||n&&qc(n,p)||t.point(p[0],p[1]),n=p,c=v,e=g},lineEnd:function(){c&&t.lineEnd(),n=null},clean:function(){return s|(f&&c)<<1}}},function(n,r,i,o){Pc(o,t,e,i,n,r)},r?[0,-t]:[-Da,t-Da])}var Xc=1e9,Gc=-Xc;function Vc(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,u,f){var s=0,l=0;if(null==i||(s=a(i,u))!==(l=a(o,u))||c(i,o)<0^u>0)do{f.point(0===s||3===s?t:e,s>1?r:n)}while((s=(s+u+4)%4)!==l);else f.point(o[0],o[1])}function a(r,i){return Fa(r[0]-t)0?0:3:Fa(r[0]-e)0?2:1:Fa(r[1]-n)0?1:0:i>0?3:2}function u(t,n){return c(t.x,n.x)}function c(t,n){var e=a(t,1),r=a(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(a){var c,f,s,l,h,d,p,v,g,y,_,b=a,m=Rc(),x={point:w,lineStart:function(){x.point=M,f&&f.push(s=[]);y=!0,g=!1,p=v=NaN},lineEnd:function(){c&&(M(l,h),d&&g&&m.rejoin(),c.push(m.result()));x.point=w,g&&b.lineEnd()},polygonStart:function(){b=m,c=[],f=[],_=!0},polygonEnd:function(){var n=function(){for(var n=0,e=0,i=f.length;er&&(h-o)*(r-a)>(d-a)*(t-o)&&++n:d<=r&&(h-o)*(r-a)<(d-a)*(t-o)&&--n;return n}(),e=_&&n,i=(c=k(c)).length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),i&&Lc(c,u,n,o,a),a.polygonEnd());b=a,c=f=s=null}};function w(t,n){i(t,n)&&b.point(t,n)}function M(o,a){var u=i(o,a);if(f&&s.push([o,a]),y)l=o,h=a,d=u,y=!1,u&&(b.lineStart(),b.point(o,a));else if(u&&g)b.point(o,a);else{var c=[p=Math.max(Gc,Math.min(Xc,p)),v=Math.max(Gc,Math.min(Xc,v))],m=[o=Math.max(Gc,Math.min(Xc,o)),a=Math.max(Gc,Math.min(Xc,a))];!function(t,n,e,r,i,o){var a,u=t[0],c=t[1],f=0,s=1,l=n[0]-u,h=n[1]-c;if(a=e-u,l||!(a>0)){if(a/=l,l<0){if(a0){if(a>s)return;a>f&&(f=a)}if(a=i-u,l||!(a<0)){if(a/=l,l<0){if(a>s)return;a>f&&(f=a)}else if(l>0){if(a0)){if(a/=h,h<0){if(a0){if(a>s)return;a>f&&(f=a)}if(a=o-c,h||!(a<0)){if(a/=h,h<0){if(a>s)return;a>f&&(f=a)}else if(h>0){if(a0&&(t[0]=u+f*l,t[1]=c+f*h),s<1&&(n[0]=u+s*l,n[1]=c+s*h),!0}}}}}(c,m,t,n,e,r)?u&&(b.lineStart(),b.point(o,a),_=!1):(g||(b.lineStart(),b.point(c[0],c[1])),b.point(m[0],m[1]),u||b.lineEnd(),_=!1)}p=o,v=a,g=u}return x}}var $c,Wc,Zc,Qc=Ea(),Jc={sphere:eu,point:eu,lineStart:function(){Jc.point=tf,Jc.lineEnd=Kc},lineEnd:eu,polygonStart:eu,polygonEnd:eu};function Kc(){Jc.point=Jc.lineEnd=eu}function tf(t,n){$c=t*=Ba,Wc=Wa(n*=Ba),Zc=ja(n),Jc.point=nf}function nf(t,n){t*=Ba;var e=Wa(n*=Ba),r=ja(n),i=Fa(t-$c),o=ja(i),a=r*Wa(i),u=Zc*e-Wc*r*o,c=Wc*e+Zc*r*o;Qc.add(Ha(Qa(a*a+u*u),c)),$c=t,Wc=e,Zc=r}function ef(t){return Qc.reset(),cu(t,Jc),+Qc}var rf=[null,null],of={type:"LineString",coordinates:rf};function af(t,n){return rf[0]=t,rf[1]=n,ef(of)}var uf={Feature:function(t,n){return ff(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++rRa}).map(c)).concat(g(Xa(o/d)*d,i,d).filter(function(t){return Fa(t%v)>Ra}).map(f))}return _.lines=function(){return b().map(function(t){return{type:"LineString",coordinates:t}})},_.outline=function(){return{type:"Polygon",coordinates:[s(r).concat(l(a).slice(1),s(e).reverse().slice(1),l(u).reverse().slice(1))]}},_.extent=function(t){return arguments.length?_.extentMajor(t).extentMinor(t):_.extentMinor()},_.extentMajor=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],u=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),u>a&&(t=u,u=a,a=t),_.precision(y)):[[r,u],[e,a]]},_.extentMinor=function(e){return arguments.length?(n=+e[0][0],t=+e[1][0],o=+e[0][1],i=+e[1][1],n>t&&(e=n,n=t,t=e),o>i&&(e=o,o=i,i=e),_.precision(y)):[[n,o],[t,i]]},_.step=function(t){return arguments.length?_.stepMajor(t).stepMinor(t):_.stepMinor()},_.stepMajor=function(t){return arguments.length?(p=+t[0],v=+t[1],_):[p,v]},_.stepMinor=function(t){return arguments.length?(h=+t[0],d=+t[1],_):[h,d]},_.precision=function(h){return arguments.length?(y=+h,c=vf(o,i,90),f=gf(n,t,y),s=vf(u,a,90),l=gf(r,e,y),_):y},_.extentMajor([[-180,-90+Ra],[180,90-Ra]]).extentMinor([[-180,-80-Ra],[180,80+Ra]])}function _f(t){return t}var bf,mf,xf,wf,Mf=Ea(),Nf=Ea(),Af={point:eu,lineStart:eu,lineEnd:eu,polygonStart:function(){Af.lineStart=kf,Af.lineEnd=Ef},polygonEnd:function(){Af.lineStart=Af.lineEnd=Af.point=eu,Mf.add(Fa(Nf)),Nf.reset()},result:function(){var t=Mf/2;return Mf.reset(),t}};function kf(){Af.point=Sf}function Sf(t,n){Af.point=Tf,bf=xf=t,mf=wf=n}function Tf(t,n){Nf.add(wf*t-xf*n),xf=t,wf=n}function Ef(){Tf(bf,mf)}var Cf=1/0,Pf=Cf,zf=-Cf,Rf=zf,qf={point:function(t,n){tzf&&(zf=t);nRf&&(Rf=n)},lineStart:eu,lineEnd:eu,polygonStart:eu,polygonEnd:eu,result:function(){var t=[[Cf,Pf],[zf,Rf]];return zf=Rf=-(Pf=Cf=1/0),t}};var Df,Lf,Uf,Of,Yf=0,Bf=0,Ff=0,If=0,Hf=0,jf=0,Xf=0,Gf=0,Vf=0,$f={point:Wf,lineStart:Zf,lineEnd:Kf,polygonStart:function(){$f.lineStart=ts,$f.lineEnd=ns},polygonEnd:function(){$f.point=Wf,$f.lineStart=Zf,$f.lineEnd=Kf},result:function(){var t=Vf?[Xf/Vf,Gf/Vf]:jf?[If/jf,Hf/jf]:Ff?[Yf/Ff,Bf/Ff]:[NaN,NaN];return Yf=Bf=Ff=If=Hf=jf=Xf=Gf=Vf=0,t}};function Wf(t,n){Yf+=t,Bf+=n,++Ff}function Zf(){$f.point=Qf}function Qf(t,n){$f.point=Jf,Wf(Uf=t,Of=n)}function Jf(t,n){var e=t-Uf,r=n-Of,i=Qa(e*e+r*r);If+=i*(Uf+t)/2,Hf+=i*(Of+n)/2,jf+=i,Wf(Uf=t,Of=n)}function Kf(){$f.point=Wf}function ts(){$f.point=es}function ns(){rs(Df,Lf)}function es(t,n){$f.point=rs,Wf(Df=Uf=t,Lf=Of=n)}function rs(t,n){var e=t-Uf,r=n-Of,i=Qa(e*e+r*r);If+=i*(Uf+t)/2,Hf+=i*(Of+n)/2,jf+=i,Xf+=(i=Of*t-Uf*n)*(Uf+t),Gf+=i*(Of+n),Vf+=3*i,Wf(Uf=t,Of=n)}function is(t){this._context=t}is.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,Oa)}},result:eu};var os,as,us,cs,fs,ss=Ea(),ls={point:eu,lineStart:function(){ls.point=hs},lineEnd:function(){os&&ds(as,us),ls.point=eu},polygonStart:function(){os=!0},polygonEnd:function(){os=null},result:function(){var t=+ss;return ss.reset(),t}};function hs(t,n){ls.point=ds,as=cs=t,us=fs=n}function ds(t,n){cs-=t,fs-=n,ss.add(Qa(cs*cs+fs*fs)),cs=t,fs=n}function ps(){this._string=[]}function vs(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function gs(t){return function(n){var e=new ys;for(var r in t)e[r]=t[r];return e.stream=n,e}}function ys(){}function _s(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),cu(e,t.stream(qf)),n(qf.result()),null!=r&&t.clipExtent(r),t}function bs(t,n,e){return _s(t,function(e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=Math.min(r/(e[1][0]-e[0][0]),i/(e[1][1]-e[0][1])),a=+n[0][0]+(r-o*(e[1][0]+e[0][0]))/2,u=+n[0][1]+(i-o*(e[1][1]+e[0][1]))/2;t.scale(150*o).translate([a,u])},e)}function ms(t,n,e){return bs(t,[[0,0],n],e)}function xs(t,n,e){return _s(t,function(e){var r=+n,i=r/(e[1][0]-e[0][0]),o=(r-i*(e[1][0]+e[0][0]))/2,a=-i*e[0][1];t.scale(150*i).translate([o,a])},e)}function ws(t,n,e){return _s(t,function(e){var r=+n,i=r/(e[1][1]-e[0][1]),o=-i*e[0][0],a=(r-i*(e[1][1]+e[0][1]))/2;t.scale(150*i).translate([o,a])},e)}ps.prototype={_radius:4.5,_circle:vs(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:null==this._circle&&(this._circle=vs(this._radius)),this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},ys.prototype={constructor:ys,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var Ms=16,Ns=ja(30*Ba);function As(t,n){return+n?function(t,n){function e(r,i,o,a,u,c,f,s,l,h,d,p,v,g){var y=f-r,_=s-i,b=y*y+_*_;if(b>4*n&&v--){var m=a+h,x=u+d,w=c+p,M=Qa(m*m+x*x+w*w),N=tu(w/=M),A=Fa(Fa(w)-1)n||Fa((y*E+_*C)/b-.5)>.3||a*h+u*d+c*p2?t[2]%360*Ba:0,S()):[g*Ya,y*Ya,_*Ya]},A.angle=function(t){return arguments.length?(b=t%360*Ba,S()):b*Ya},A.precision=function(t){return arguments.length?(a=As(u,N=t*t),T()):Qa(N)},A.fitExtent=function(t,n){return bs(A,t,n)},A.fitSize=function(t,n){return ms(A,t,n)},A.fitWidth=function(t,n){return xs(A,t,n)},A.fitHeight=function(t,n){return ws(A,t,n)},function(){return n=t.apply(this,arguments),A.invert=n.invert&&k,S()}}function Cs(t){var n=0,e=Da/3,r=Es(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*Ba,e=t[1]*Ba):[n*Ya,e*Ya]},i}function Ps(t,n){var e=Wa(t),r=(e+Wa(n))/2;if(Fa(r)0?n<-La+Ra&&(n=-La+Ra):n>La-Ra&&(n=La-Ra);var e=i/$a(Bs(n),r);return[e*Wa(r*t),i-e*ja(r*t)]}return o.invert=function(t,n){var e=i-n,o=Za(r)*Qa(t*t+e*e);return[Ha(t,Fa(e))/r*Za(e),2*Ia($a(i/o,1/r))-La]},o}function Is(t,n){return[t,n]}function Hs(t,n){var e=ja(t),r=t===n?Wa(t):(e-ja(n))/(n-t),i=e/r+t;if(Fa(r)=0;)n+=e[r].value;else n=1;t.value=n}function al(t,n){var e,r,i,o,a,u=new sl(t),c=+t.value&&(u.value=t.value),f=[u];for(null==n&&(n=ul);e=f.pop();)if(c&&(e.value=+e.data.value),(i=n(e.data))&&(a=i.length))for(e.children=new Array(a),o=a-1;o>=0;--o)f.push(r=e.children[o]=new sl(i[o])),r.parent=e,r.depth=e.depth+1;return u.eachBefore(fl)}function ul(t){return t.children}function cl(t){t.data=t.data.data}function fl(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function sl(t){this.data=t,this.depth=this.height=0,this.parent=null}Ws.invert=function(t,n){for(var e,r=n,i=r*r,o=i*i*i,a=0;a<12&&(o=(i=(r-=e=(r*(js+Xs*i+o*(Gs+Vs*i))-n)/(js+3*Xs*i+o*(7*Gs+9*Vs*i)))*r)*i*i,!(Fa(e)Ra&&--i>0);return[t/(.8707+(o=r*r)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),r]},Ks.invert=Ds(tu),tl.invert=Ds(function(t){return 2*Ia(t)}),nl.invert=function(t,n){return[-n,2*Ia(Ga(t))-La]},sl.prototype=al.prototype={constructor:sl,count:function(){return this.eachAfter(ol)},each:function(t){var n,e,r,i,o=this,a=[o];do{for(n=a.reverse(),a=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r=0;--e)i.push(n[e]);return this},sum:function(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})},sort:function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){var t=[];return this.each(function(n){t.push(n)}),t},leaves:function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},links:function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n},copy:function(){return al(this).eachBefore(cl)}};var ll=Array.prototype.slice;function hl(t){for(var n,e,r=0,i=(t=function(t){for(var n,e,r=t.length;r;)e=Math.random()*r--|0,n=t[r],t[r]=t[e],t[e]=n;return t}(ll.call(t))).length,o=[];r0&&e*e>r*r+i*i}function gl(t,n){for(var e=0;e(a*=a)?(r=(f+a-i)/(2*f),o=Math.sqrt(Math.max(0,a/f-r*r)),e.x=t.x-r*u-o*c,e.y=t.y-r*c+o*u):(r=(f+i-a)/(2*f),o=Math.sqrt(Math.max(0,i/f-r*r)),e.x=n.x+r*u-o*c,e.y=n.y+r*c+o*u)):(e.x=n.x+e.r,e.y=n.y)}function xl(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function wl(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,o=(n.y*e.r+e.y*n.r)/r;return i*i+o*o}function Ml(t){this._=t,this.next=null,this.previous=null}function Nl(t){if(!(i=t.length))return 0;var n,e,r,i,o,a,u,c,f,s,l;if((n=t[0]).x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;ml(e,n,r=t[2]),n=new Ml(n),e=new Ml(e),r=new Ml(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(u=3;uh&&(h=u),g=s*s*v,(d=Math.max(h/g,g/l))>p){s-=u;break}p=d}y.push(a={value:s,dice:c1?n:1)},e}(Gl);var Wl=function t(n){function e(t,e,r,i,o){if((a=t._squarify)&&a.ratio===n)for(var a,u,c,f,s,l=-1,h=a.length,d=t.value;++l1?n:1)},e}(Gl);function Zl(t,n){return t[0]-n[0]||t[1]-n[1]}function Ql(t){for(var n,e,r,i=t.length,o=[0,1],a=2,u=2;u1&&(n=t[o[a-2]],e=t[o[a-1]],r=t[u],(e[0]-n[0])*(r[1]-n[1])-(e[1]-n[1])*(r[0]-n[0])<=0);)--a;o[a++]=u}return o.slice(0,a)}function Jl(){return Math.random()}var Kl=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,1===arguments.length?(e=t,t=0):e-=t,function(){return n()*e+t}}return e.source=t,e}(Jl),th=function t(n){function e(t,e){var r,i;return t=null==t?0:+t,e=null==e?1:+e,function(){var o;if(null!=r)o=r,r=null;else do{r=2*n()-1,o=2*n()-1,i=r*r+o*o}while(!i||i>1);return t+e*o*Math.sqrt(-2*Math.log(i)/i)}}return e.source=t,e}(Jl),nh=function t(n){function e(){var t=th.source(n).apply(this,arguments);return function(){return Math.exp(t())}}return e.source=t,e}(Jl),eh=function t(n){function e(t){return function(){for(var e=0,r=0;rr&&(n=e,e=r,r=n),function(t){return Math.max(e,Math.min(r,t))}}function _h(t,n,e){var r=t[0],i=t[1],o=n[0],a=n[1];return i2?bh:_h,i=o=null,l}function l(n){return isNaN(n=+n)?e:(i||(i=r(a.map(t),u,c)))(t(f(n)))}return l.invert=function(e){return f(n((o||(o=r(u,a.map(t),he)))(e)))},l.domain=function(t){return arguments.length?(a=ch.call(t,dh),f===vh||(f=yh(a)),s()):a.slice()},l.range=function(t){return arguments.length?(u=fh.call(t),s()):u.slice()},l.rangeRound=function(t){return u=fh.call(t),c=_e,s()},l.clamp=function(t){return arguments.length?(f=t?yh(a):vh,l):f!==vh},l.interpolate=function(t){return arguments.length?(c=t,s()):c},l.unknown=function(t){return arguments.length?(e=t,l):e},function(e,r){return t=e,n=r,s()}}function wh(t,n){return xh()(t,n)}function Mh(n,e,r,i){var o,a=w(n,e,r);switch((i=ya(null==i?",f":i)).type){case"s":var u=Math.max(Math.abs(n),Math.abs(e));return null!=i.precision||isNaN(o=Sa(a,u))||(i.precision=o),t.formatPrefix(i,u);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(o=Ta(a,Math.max(Math.abs(n),Math.abs(e))))||(i.precision=o-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(o=ka(a))||(i.precision=o-2*("%"===i.type))}return t.format(i)}function Nh(t){var n=t.domain;return t.ticks=function(t){var e=n();return m(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){var r=n();return Mh(r[0],r[r.length-1],null==t?10:t,e)},t.nice=function(e){null==e&&(e=10);var r,i=n(),o=0,a=i.length-1,u=i[o],c=i[a];return c0?r=x(u=Math.floor(u/r)*r,c=Math.ceil(c/r)*r,e):r<0&&(r=x(u=Math.ceil(u*r)/r,c=Math.floor(c*r)/r,e)),r>0?(i[o]=Math.floor(u/r)*r,i[a]=Math.ceil(c/r)*r,n(i)):r<0&&(i[o]=Math.ceil(u*r)/r,i[a]=Math.floor(c*r)/r,n(i)),t},t}function Ah(t,n){var e,r=0,i=(t=t.slice()).length-1,o=t[r],a=t[i];return a0){for(;hc)break;v.push(l)}}else for(;h=1;--s)if(!((l=f*s)c)break;v.push(l)}}else v=m(h,d,Math.min(d-h,p)).map(r);return n?v.reverse():v},i.tickFormat=function(n,o){if(null==o&&(o=10===a?".0e":","),"function"!=typeof o&&(o=t.format(o)),n===1/0)return o;null==n&&(n=10);var u=Math.max(1,a*n/i.ticks().length);return function(t){var n=t/r(Math.round(e(t)));return n*a0))return u;do{u.push(a=new Date(+e)),n(e,o),t(e)}while(a=n)for(;t(n),!e(n);)n.setTime(n-1)},function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return Fh.setTime(+n),Ih.setTime(+r),t(Fh),t(Ih),Math.floor(e(Fh,Ih))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}var jh=Hh(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});jh.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Hh(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):jh:null};var Xh=jh.range,Gh=6e4,Vh=6048e5,$h=Hh(function(t){t.setTime(1e3*Math.floor(t/1e3))},function(t,n){t.setTime(+t+1e3*n)},function(t,n){return(n-t)/1e3},function(t){return t.getUTCSeconds()}),Wh=$h.range,Zh=Hh(function(t){t.setTime(Math.floor(t/Gh)*Gh)},function(t,n){t.setTime(+t+n*Gh)},function(t,n){return(n-t)/Gh},function(t){return t.getMinutes()}),Qh=Zh.range,Jh=Hh(function(t){var n=t.getTimezoneOffset()*Gh%36e5;n<0&&(n+=36e5),t.setTime(36e5*Math.floor((+t-n)/36e5)+n)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getHours()}),Kh=Jh.range,td=Hh(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Gh)/864e5},function(t){return t.getDate()-1}),nd=td.range;function ed(t){return Hh(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Gh)/Vh})}var rd=ed(0),id=ed(1),od=ed(2),ad=ed(3),ud=ed(4),cd=ed(5),fd=ed(6),sd=rd.range,ld=id.range,hd=od.range,dd=ad.range,pd=ud.range,vd=cd.range,gd=fd.range,yd=Hh(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),_d=yd.range,bd=Hh(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});bd.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Hh(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var md=bd.range,xd=Hh(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*Gh)},function(t,n){return(n-t)/Gh},function(t){return t.getUTCMinutes()}),wd=xd.range,Md=Hh(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getUTCHours()}),Nd=Md.range,Ad=Hh(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/864e5},function(t){return t.getUTCDate()-1}),kd=Ad.range;function Sd(t){return Hh(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/Vh})}var Td=Sd(0),Ed=Sd(1),Cd=Sd(2),Pd=Sd(3),zd=Sd(4),Rd=Sd(5),qd=Sd(6),Dd=Td.range,Ld=Ed.range,Ud=Cd.range,Od=Pd.range,Yd=zd.range,Bd=Rd.range,Fd=qd.range,Id=Hh(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),Hd=Id.range,jd=Hh(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});jd.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Hh(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var Xd=jd.range;function Gd(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Vd(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function $d(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function Wd(t){var n=t.dateTime,e=t.date,r=t.time,i=t.periods,o=t.days,a=t.shortDays,u=t.months,c=t.shortMonths,f=rp(i),s=ip(i),l=rp(o),h=ip(o),d=rp(a),p=ip(a),v=rp(u),g=ip(u),y=rp(c),_=ip(c),b={a:function(t){return a[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return c[t.getMonth()]},B:function(t){return u[t.getMonth()]},c:null,d:Np,e:Np,f:Ep,H:Ap,I:kp,j:Sp,L:Tp,m:Cp,M:Pp,p:function(t){return i[+(t.getHours()>=12)]},Q:ov,s:av,S:zp,u:Rp,U:qp,V:Dp,w:Lp,W:Up,x:null,X:null,y:Op,Y:Yp,Z:Bp,"%":iv},m={a:function(t){return a[t.getUTCDay()]},A:function(t){return o[t.getUTCDay()]},b:function(t){return c[t.getUTCMonth()]},B:function(t){return u[t.getUTCMonth()]},c:null,d:Fp,e:Fp,f:Gp,H:Ip,I:Hp,j:jp,L:Xp,m:Vp,M:$p,p:function(t){return i[+(t.getUTCHours()>=12)]},Q:ov,s:av,S:Wp,u:Zp,U:Qp,V:Jp,w:Kp,W:tv,x:null,X:null,y:nv,Y:ev,Z:rv,"%":iv},x={a:function(t,n,e){var r=d.exec(n.slice(e));return r?(t.w=p[r[0].toLowerCase()],e+r[0].length):-1},A:function(t,n,e){var r=l.exec(n.slice(e));return r?(t.w=h[r[0].toLowerCase()],e+r[0].length):-1},b:function(t,n,e){var r=y.exec(n.slice(e));return r?(t.m=_[r[0].toLowerCase()],e+r[0].length):-1},B:function(t,n,e){var r=v.exec(n.slice(e));return r?(t.m=g[r[0].toLowerCase()],e+r[0].length):-1},c:function(t,e,r){return N(t,n,e,r)},d:pp,e:pp,f:mp,H:gp,I:gp,j:vp,L:bp,m:dp,M:yp,p:function(t,n,e){var r=f.exec(n.slice(e));return r?(t.p=s[r[0].toLowerCase()],e+r[0].length):-1},Q:wp,s:Mp,S:_p,u:ap,U:up,V:cp,w:op,W:fp,x:function(t,n,r){return N(t,e,n,r)},X:function(t,n,e){return N(t,r,n,e)},y:lp,Y:sp,Z:hp,"%":xp};function w(t,n){return function(e){var r,i,o,a=[],u=-1,c=0,f=t.length;for(e instanceof Date||(e=new Date(+e));++u53)return null;"w"in o||(o.w=1),"Z"in o?(i=(r=Vd($d(o.y))).getUTCDay(),r=i>4||0===i?Ed.ceil(r):Ed(r),r=Ad.offset(r,7*(o.V-1)),o.y=r.getUTCFullYear(),o.m=r.getUTCMonth(),o.d=r.getUTCDate()+(o.w+6)%7):(i=(r=n($d(o.y))).getDay(),r=i>4||0===i?id.ceil(r):id(r),r=td.offset(r,7*(o.V-1)),o.y=r.getFullYear(),o.m=r.getMonth(),o.d=r.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),i="Z"in o?Vd($d(o.y)).getUTCDay():n($d(o.y)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(i+5)%7:o.w+7*o.U-(i+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,Vd(o)):n(o)}}function N(t,n,e,r){for(var i,o,a=0,u=n.length,c=e.length;a=c)return-1;if(37===(i=n.charCodeAt(a++))){if(i=n.charAt(a++),!(o=x[i in Qd?n.charAt(a++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}return b.x=w(e,b),b.X=w(r,b),b.c=w(n,b),m.x=w(e,m),m.X=w(r,m),m.c=w(n,m),{format:function(t){var n=w(t+="",b);return n.toString=function(){return t},n},parse:function(t){var n=M(t+="",Gd);return n.toString=function(){return t},n},utcFormat:function(t){var n=w(t+="",m);return n.toString=function(){return t},n},utcParse:function(t){var n=M(t,Vd);return n.toString=function(){return t},n}}}var Zd,Qd={"-":"",_:" ",0:"0"},Jd=/^\s*\d+/,Kd=/^%/,tp=/[\\^$*+?|[\]().{}]/g;function np(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o68?1900:2e3),e+r[0].length):-1}function hp(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function dp(t,n,e){var r=Jd.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function pp(t,n,e){var r=Jd.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function vp(t,n,e){var r=Jd.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function gp(t,n,e){var r=Jd.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function yp(t,n,e){var r=Jd.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function _p(t,n,e){var r=Jd.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function bp(t,n,e){var r=Jd.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function mp(t,n,e){var r=Jd.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function xp(t,n,e){var r=Kd.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function wp(t,n,e){var r=Jd.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function Mp(t,n,e){var r=Jd.exec(n.slice(e));return r?(t.Q=1e3*+r[0],e+r[0].length):-1}function Np(t,n){return np(t.getDate(),n,2)}function Ap(t,n){return np(t.getHours(),n,2)}function kp(t,n){return np(t.getHours()%12||12,n,2)}function Sp(t,n){return np(1+td.count(bd(t),t),n,3)}function Tp(t,n){return np(t.getMilliseconds(),n,3)}function Ep(t,n){return Tp(t,n)+"000"}function Cp(t,n){return np(t.getMonth()+1,n,2)}function Pp(t,n){return np(t.getMinutes(),n,2)}function zp(t,n){return np(t.getSeconds(),n,2)}function Rp(t){var n=t.getDay();return 0===n?7:n}function qp(t,n){return np(rd.count(bd(t),t),n,2)}function Dp(t,n){var e=t.getDay();return t=e>=4||0===e?ud(t):ud.ceil(t),np(ud.count(bd(t),t)+(4===bd(t).getDay()),n,2)}function Lp(t){return t.getDay()}function Up(t,n){return np(id.count(bd(t),t),n,2)}function Op(t,n){return np(t.getFullYear()%100,n,2)}function Yp(t,n){return np(t.getFullYear()%1e4,n,4)}function Bp(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+np(n/60|0,"0",2)+np(n%60,"0",2)}function Fp(t,n){return np(t.getUTCDate(),n,2)}function Ip(t,n){return np(t.getUTCHours(),n,2)}function Hp(t,n){return np(t.getUTCHours()%12||12,n,2)}function jp(t,n){return np(1+Ad.count(jd(t),t),n,3)}function Xp(t,n){return np(t.getUTCMilliseconds(),n,3)}function Gp(t,n){return Xp(t,n)+"000"}function Vp(t,n){return np(t.getUTCMonth()+1,n,2)}function $p(t,n){return np(t.getUTCMinutes(),n,2)}function Wp(t,n){return np(t.getUTCSeconds(),n,2)}function Zp(t){var n=t.getUTCDay();return 0===n?7:n}function Qp(t,n){return np(Td.count(jd(t),t),n,2)}function Jp(t,n){var e=t.getUTCDay();return t=e>=4||0===e?zd(t):zd.ceil(t),np(zd.count(jd(t),t)+(4===jd(t).getUTCDay()),n,2)}function Kp(t){return t.getUTCDay()}function tv(t,n){return np(Ed.count(jd(t),t),n,2)}function nv(t,n){return np(t.getUTCFullYear()%100,n,2)}function ev(t,n){return np(t.getUTCFullYear()%1e4,n,4)}function rv(){return"+0000"}function iv(){return"%"}function ov(t){return+t}function av(t){return Math.floor(+t/1e3)}function uv(n){return Zd=Wd(n),t.timeFormat=Zd.format,t.timeParse=Zd.parse,t.utcFormat=Zd.utcFormat,t.utcParse=Zd.utcParse,Zd}uv({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var cv=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat("%Y-%m-%dT%H:%M:%S.%LZ");var fv=+new Date("2000-01-01T00:00:00.000Z")?function(t){var n=new Date(t);return isNaN(n)?null:n}:t.utcParse("%Y-%m-%dT%H:%M:%S.%LZ"),sv=1e3,lv=60*sv,hv=60*lv,dv=24*hv,pv=7*dv,vv=30*dv,gv=365*dv;function yv(t){return new Date(t)}function _v(t){return t instanceof Date?+t:+new Date(+t)}function bv(t,n,r,i,o,a,u,c,f){var s=wh(vh,vh),l=s.invert,h=s.domain,d=f(".%L"),p=f(":%S"),v=f("%I:%M"),g=f("%I %p"),y=f("%a %d"),_=f("%b %d"),b=f("%B"),m=f("%Y"),x=[[u,1,sv],[u,5,5*sv],[u,15,15*sv],[u,30,30*sv],[a,1,lv],[a,5,5*lv],[a,15,15*lv],[a,30,30*lv],[o,1,hv],[o,3,3*hv],[o,6,6*hv],[o,12,12*hv],[i,1,dv],[i,2,2*dv],[r,1,pv],[n,1,vv],[n,3,3*vv],[t,1,gv]];function M(e){return(u(e)=1?iy:t<=-1?-iy:Math.asin(t)}function uy(t){return t.innerRadius}function cy(t){return t.outerRadius}function fy(t){return t.startAngle}function sy(t){return t.endAngle}function ly(t){return t&&t.padAngle}function hy(t,n,e,r,i,o,a){var u=t-e,c=n-r,f=(a?o:-o)/ny(u*u+c*c),s=f*c,l=-f*u,h=t+s,d=n+l,p=e+s,v=r+l,g=(h+p)/2,y=(d+v)/2,_=p-h,b=v-d,m=_*_+b*b,x=i-o,w=h*v-p*d,M=(b<0?-1:1)*ny(Jg(0,x*x*m-w*w)),N=(w*b-_*M)/m,A=(-w*_-b*M)/m,k=(w*b+_*M)/m,S=(-w*_+b*M)/m,T=N-g,E=A-y,C=k-g,P=S-y;return T*T+E*E>C*C+P*P&&(N=k,A=S),{cx:N,cy:A,x01:-s,y01:-l,x11:N*(i/x-1),y11:A*(i/x-1)}}function dy(t){this._context=t}function py(t){return new dy(t)}function vy(t){return t[0]}function gy(t){return t[1]}function yy(){var t=vy,n=gy,e=$g(!0),r=null,i=py,o=null;function a(a){var u,c,f,s=a.length,l=!1;for(null==r&&(o=i(f=ji())),u=0;u<=s;++u)!(u=s;--l)u.point(g[l],y[l]);u.lineEnd(),u.areaEnd()}v&&(g[f]=+t(h,f,c),y[f]=+e(h,f,c),u.point(n?+n(h,f,c):g[f],r?+r(h,f,c):y[f]))}if(d)return u=null,d+""||null}function f(){return yy().defined(i).curve(a).context(o)}return c.x=function(e){return arguments.length?(t="function"==typeof e?e:$g(+e),n=null,c):t},c.x0=function(n){return arguments.length?(t="function"==typeof n?n:$g(+n),c):t},c.x1=function(t){return arguments.length?(n=null==t?null:"function"==typeof t?t:$g(+t),c):n},c.y=function(t){return arguments.length?(e="function"==typeof t?t:$g(+t),r=null,c):e},c.y0=function(t){return arguments.length?(e="function"==typeof t?t:$g(+t),c):e},c.y1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:$g(+t),c):r},c.lineX0=c.lineY0=function(){return f().x(t).y(e)},c.lineY1=function(){return f().x(t).y(r)},c.lineX1=function(){return f().x(n).y(e)},c.defined=function(t){return arguments.length?(i="function"==typeof t?t:$g(!!t),c):i},c.curve=function(t){return arguments.length?(a=t,null!=o&&(u=a(o)),c):a},c.context=function(t){return arguments.length?(null==t?o=u=null:u=a(o=t),c):o},c}function by(t,n){return nt?1:n>=t?0:NaN}function my(t){return t}dy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var xy=My(py);function wy(t){this._curve=t}function My(t){function n(n){return new wy(t(n))}return n._curve=t,n}function Ny(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(My(t)):n()._curve},t}function Ay(){return Ny(yy().curve(xy))}function ky(){var t=_y().curve(xy),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return Ny(e())},delete t.lineX0,t.lineEndAngle=function(){return Ny(r())},delete t.lineX1,t.lineInnerRadius=function(){return Ny(i())},delete t.lineY0,t.lineOuterRadius=function(){return Ny(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(My(t)):n()._curve},t}function Sy(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]}wy.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var Ty=Array.prototype.slice;function Ey(t){return t.source}function Cy(t){return t.target}function Py(t){var n=Ey,e=Cy,r=vy,i=gy,o=null;function a(){var a,u=Ty.call(arguments),c=n.apply(this,u),f=e.apply(this,u);if(o||(o=a=ji()),t(o,+r.apply(this,(u[0]=c,u)),+i.apply(this,u),+r.apply(this,(u[0]=f,u)),+i.apply(this,u)),a)return o=null,a+""||null}return a.source=function(t){return arguments.length?(n=t,a):n},a.target=function(t){return arguments.length?(e=t,a):e},a.x=function(t){return arguments.length?(r="function"==typeof t?t:$g(+t),a):r},a.y=function(t){return arguments.length?(i="function"==typeof t?t:$g(+t),a):i},a.context=function(t){return arguments.length?(o=null==t?null:t,a):o},a}function zy(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n=(n+r)/2,e,n,i,r,i)}function Ry(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n,e=(e+i)/2,r,e,r,i)}function qy(t,n,e,r,i){var o=Sy(n,e),a=Sy(n,e=(e+i)/2),u=Sy(r,e),c=Sy(r,i);t.moveTo(o[0],o[1]),t.bezierCurveTo(a[0],a[1],u[0],u[1],c[0],c[1])}var Dy={draw:function(t,n){var e=Math.sqrt(n/ry);t.moveTo(e,0),t.arc(0,0,e,0,oy)}},Ly={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},Uy=Math.sqrt(1/3),Oy=2*Uy,Yy={draw:function(t,n){var e=Math.sqrt(n/Oy),r=e*Uy;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},By=Math.sin(ry/10)/Math.sin(7*ry/10),Fy=Math.sin(oy/10)*By,Iy=-Math.cos(oy/10)*By,Hy={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=Fy*e,i=Iy*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var a=oy*o/5,u=Math.cos(a),c=Math.sin(a);t.lineTo(c*e,-u*e),t.lineTo(u*r-c*i,c*r+u*i)}t.closePath()}},jy={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},Xy=Math.sqrt(3),Gy={draw:function(t,n){var e=-Math.sqrt(n/(3*Xy));t.moveTo(0,2*e),t.lineTo(-Xy*e,-e),t.lineTo(Xy*e,-e),t.closePath()}},Vy=Math.sqrt(3)/2,$y=1/Math.sqrt(12),Wy=3*($y/2+1),Zy={draw:function(t,n){var e=Math.sqrt(n/Wy),r=e/2,i=e*$y,o=r,a=e*$y+e,u=-o,c=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(u,c),t.lineTo(-.5*r-Vy*i,Vy*r+-.5*i),t.lineTo(-.5*o-Vy*a,Vy*o+-.5*a),t.lineTo(-.5*u-Vy*c,Vy*u+-.5*c),t.lineTo(-.5*r+Vy*i,-.5*i-Vy*r),t.lineTo(-.5*o+Vy*a,-.5*a-Vy*o),t.lineTo(-.5*u+Vy*c,-.5*c-Vy*u),t.closePath()}},Qy=[Dy,Ly,Yy,jy,Hy,Gy,Zy];function Jy(){}function Ky(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function t_(t){this._context=t}function n_(t){this._context=t}function e_(t){this._context=t}function r_(t,n){this._basis=new t_(t),this._beta=n}t_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Ky(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Ky(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},n_.prototype={areaStart:Jy,areaEnd:Jy,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:Ky(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},e_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:Ky(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},r_.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],a=t[e]-i,u=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*a),this._beta*n[c]+(1-this._beta)*(o+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var i_=function t(n){function e(t){return 1===n?new t_(t):new r_(t,n)}return e.beta=function(n){return t(+n)},e}(.85);function o_(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function a_(t,n){this._context=t,this._k=(1-n)/6}a_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:o_(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:o_(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var u_=function t(n){function e(t){return new a_(t,n)}return e.tension=function(n){return t(+n)},e}(0);function c_(t,n){this._context=t,this._k=(1-n)/6}c_.prototype={areaStart:Jy,areaEnd:Jy,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:o_(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var f_=function t(n){function e(t){return new c_(t,n)}return e.tension=function(n){return t(+n)},e}(0);function s_(t,n){this._context=t,this._k=(1-n)/6}s_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:o_(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var l_=function t(n){function e(t){return new s_(t,n)}return e.tension=function(n){return t(+n)},e}(0);function h_(t,n,e){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>ey){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>ey){var f=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,s=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*f+t._x1*t._l23_2a-n*t._l12_2a)/s,a=(a*f+t._y1*t._l23_2a-e*t._l12_2a)/s}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function d_(t,n){this._context=t,this._alpha=n}d_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:h_(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var p_=function t(n){function e(t){return n?new d_(t,n):new a_(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function v_(t,n){this._context=t,this._alpha=n}v_.prototype={areaStart:Jy,areaEnd:Jy,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:h_(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var g_=function t(n){function e(t){return n?new v_(t,n):new c_(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function y_(t,n){this._context=t,this._alpha=n}y_.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:h_(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var __=function t(n){function e(t){return n?new y_(t,n):new s_(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function b_(t){this._context=t}function m_(t){return t<0?-1:1}function x_(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(e-t._y1)/(i||r<0&&-0),u=(o*i+a*r)/(r+i);return(m_(o)+m_(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(u))||0}function w_(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function M_(t,n,e){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,u=(o-r)/3;t._context.bezierCurveTo(r+u,i+u*n,o-u,a-u*e,o,a)}function N_(t){this._context=t}function A_(t){this._context=new k_(t)}function k_(t){this._context=t}function S_(t){this._context=t}function T_(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],n=1;n=0;--n)i[n]=(a[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n1)for(var e,r,i,o=1,a=t[n[0]],u=a.length;o=0;)e[n]=n;return e}function z_(t,n){return t[n]}function R_(t){var n=t.map(q_);return P_(t).sort(function(t,e){return n[t]-n[e]})}function q_(t){for(var n,e=-1,r=0,i=t.length,o=-1/0;++eo&&(o=n,r=e);return r}function D_(t){var n=t.map(L_);return P_(t).sort(function(t,e){return n[t]-n[e]})}function L_(t){for(var n,e=0,r=-1,i=t.length;++r0)){if(o/=h,h<0){if(o0){if(o>l)return;o>s&&(s=o)}if(o=r-c,h||!(o<0)){if(o/=h,h<0){if(o>l)return;o>s&&(s=o)}else if(h>0){if(o0)){if(o/=d,d<0){if(o0){if(o>l)return;o>s&&(s=o)}if(o=i-f,d||!(o<0)){if(o/=d,d<0){if(o>l)return;o>s&&(s=o)}else if(d>0){if(o0||l<1)||(s>0&&(t[0]=[c+s*h,f+s*d]),l<1&&(t[1]=[c+l*h,f+l*d]),!0)}}}}}function W_(t,n,e,r,i){var o=t[1];if(o)return!0;var a,u,c=t[0],f=t.left,s=t.right,l=f[0],h=f[1],d=s[0],p=s[1],v=(l+d)/2,g=(h+p)/2;if(p===h){if(v=r)return;if(l>d){if(c){if(c[1]>=i)return}else c=[v,e];o=[v,i]}else{if(c){if(c[1]1)if(l>d){if(c){if(c[1]>=i)return}else c=[(e-u)/a,e];o=[(i-u)/a,i]}else{if(c){if(c[1]=r)return}else c=[n,a*n+u];o=[r,a*r+u]}else{if(c){if(c[0]=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}},B_.prototype={constructor:B_,insert:function(t,n){var e,r,i;if(t){if(n.P=t,n.N=t.N,t.N&&(t.N.P=n),t.N=n,t.R){for(t=t.R;t.L;)t=t.L;t.L=n}else t.R=n;e=t}else this._?(t=j_(this._),n.P=null,n.N=t,t.P=t.L=n,e=t):(n.P=n.N=null,this._=n,e=null);for(n.L=n.R=null,n.U=e,n.C=!0,t=n;e&&e.C;)e===(r=e.U).L?(i=r.R)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.R&&(I_(this,e),e=(t=e).U),e.C=!1,r.C=!0,H_(this,r)):(i=r.L)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.L&&(H_(this,e),e=(t=e).U),e.C=!1,r.C=!0,I_(this,r)),e=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var n,e,r,i=t.U,o=t.L,a=t.R;if(e=o?a?j_(a):o:a,i?i.L===t?i.L=e:i.R=e:this._=e,o&&a?(r=e.C,e.C=t.C,e.L=o,o.U=e,e!==a?(i=e.U,e.U=t.U,t=e.R,i.L=t,e.R=a,a.U=e):(e.U=i,i=e,t=e.R)):(r=t.C,t=e),t&&(t.U=i),!r)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===i.L){if((n=i.R).C&&(n.C=!1,i.C=!0,I_(this,i),n=i.R),n.L&&n.L.C||n.R&&n.R.C){n.R&&n.R.C||(n.L.C=!1,n.C=!0,H_(this,n),n=i.R),n.C=i.C,i.C=n.R.C=!1,I_(this,i),t=this._;break}}else if((n=i.L).C&&(n.C=!1,i.C=!0,H_(this,i),n=i.L),n.L&&n.L.C||n.R&&n.R.C){n.L&&n.L.C||(n.R.C=!1,n.C=!0,I_(this,n),n=i.L),n.C=i.C,i.C=n.L.C=!1,H_(this,i),t=this._;break}n.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var K_,tb=[];function nb(){F_(this),this.x=this.y=this.arc=this.site=this.cy=null}function eb(t){var n=t.P,e=t.N;if(n&&e){var r=n.site,i=t.site,o=e.site;if(r!==o){var a=i[0],u=i[1],c=r[0]-a,f=r[1]-u,s=o[0]-a,l=o[1]-u,h=2*(c*l-f*s);if(!(h>=-yb)){var d=c*c+f*f,p=s*s+l*l,v=(l*d-f*p)/h,g=(c*p-s*d)/h,y=tb.pop()||new nb;y.arc=t,y.site=i,y.x=v+a,y.y=(y.cy=g+u)+Math.sqrt(v*v+g*g),t.circle=y;for(var _=null,b=pb._;b;)if(y.ygb)u=u.L;else{if(!((i=o-lb(u,a))>gb)){r>-gb?(n=u.P,e=u):i>-gb?(n=u,e=u.N):n=e=u;break}if(!u.R){n=u;break}u=u.R}!function(t){db[t.index]={site:t,halfedges:[]}}(t);var c=ab(t);if(hb.insert(n,c),n||e){if(n===e)return rb(n),e=ab(n.site),hb.insert(c,e),c.edge=e.edge=X_(n.site,c.site),eb(n),void eb(e);if(e){rb(n),rb(e);var f=n.site,s=f[0],l=f[1],h=t[0]-s,d=t[1]-l,p=e.site,v=p[0]-s,g=p[1]-l,y=2*(h*g-d*v),_=h*h+d*d,b=v*v+g*g,m=[(g*_-d*b)/y+s,(h*b-v*_)/y+l];V_(e.edge,f,p,m),c.edge=X_(f,t,null,m),e.edge=X_(t,p,null,m),eb(n),eb(e)}else c.edge=X_(n.site,c.site)}}function sb(t,n){var e=t.site,r=e[0],i=e[1],o=i-n;if(!o)return r;var a=t.P;if(!a)return-1/0;var u=(e=a.site)[0],c=e[1],f=c-n;if(!f)return u;var s=u-r,l=1/o-1/f,h=s/f;return l?(-h+Math.sqrt(h*h-2*l*(s*s/(-2*f)-c+f/2+i-o/2)))/l+r:(r+u)/2}function lb(t,n){var e=t.N;if(e)return sb(e,n);var r=t.site;return r[1]===n?r[0]:1/0}var hb,db,pb,vb,gb=1e-6,yb=1e-12;function _b(t,n){return n[1]-t[1]||n[0]-t[0]}function bb(t,n){var e,r,i,o=t.sort(_b).pop();for(vb=[],db=new Array(t.length),hb=new B_,pb=new B_;;)if(i=K_,o&&(!i||o[1]gb||Math.abs(i[0][1]-i[1][1])>gb)||delete vb[o]}(a,u,c,f),function(t,n,e,r){var i,o,a,u,c,f,s,l,h,d,p,v,g=db.length,y=!0;for(i=0;igb||Math.abs(v-h)>gb)&&(c.splice(u,0,vb.push(G_(a,d,Math.abs(p-t)gb?[t,Math.abs(l-t)gb?[Math.abs(h-r)gb?[e,Math.abs(l-e)gb?[Math.abs(h-n)=u)return null;var c=t-i.site[0],f=n-i.site[1],s=c*c+f*f;do{i=o.cells[r=a],a=null,i.halfedges.forEach(function(e){var r=o.edges[e],u=r.left;if(u!==i.site&&u||(u=r.right)){var c=t-u[0],f=n-u[1],l=c*c+f*f;lr?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}Nb.prototype=wb.prototype,t.version="5.8.0",t.bisect=i,t.bisectRight=i,t.bisectLeft=o,t.ascending=n,t.bisector=e,t.cross=function(t,n,e){var r,i,o,u,c=t.length,f=n.length,s=new Array(c*f);for(null==e&&(e=a),r=o=0;rt?1:n>=t?0:NaN},t.deviation=f,t.extent=s,t.histogram=function(){var t=v,n=s,e=M;function r(r){var o,a,u=r.length,c=new Array(u);for(o=0;ol;)h.pop(),--d;var p,v=new Array(d+1);for(o=0;o<=d;++o)(p=v[o]=[]).x0=o>0?h[o-1]:s,p.x1=o=r.length)return null!=t&&e.sort(t),null!=n?n(e):e;for(var c,f,s,l=-1,h=e.length,d=r[i++],p=Qi(),v=a();++lr.length)return e;var a,u=i[o-1];return null!=n&&o>=r.length?a=e.entries():(a=[],e.each(function(n,e){a.push({key:e,values:t(n,o)})})),null!=u?a.sort(function(t,n){return u(t.key,n.key)}):a}(o(t,0,to,no),0)},key:function(t){return r.push(t),e},sortKeys:function(t){return i[r.length-1]=t,e},sortValues:function(n){return t=n,e},rollup:function(t){return n=t,e}}},t.set=io,t.map=Qi,t.keys=function(t){var n=[];for(var e in t)n.push(e);return n},t.values=function(t){var n=[];for(var e in t)n.push(t[e]);return n},t.entries=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},t.color=hn,t.rgb=gn,t.hsl=mn,t.lab=Rn,t.hcl=Bn,t.lch=function(t,n,e,r){return 1===arguments.length?Yn(t):new Fn(e,n,t,null==r?1:r)},t.gray=function(t,n){return new qn(t,0,0,null==n?1:n)},t.cubehelix=Zn,t.contours=po,t.contourDensity=function(){var t=yo,n=_o,e=bo,r=960,i=500,o=20,a=2,u=3*o,c=r+2*u>>a,f=i+2*u>>a,s=uo(20);function l(r){var i=new Float32Array(c*f),l=new Float32Array(c*f);r.forEach(function(r,o,s){var l=+t(r,o,s)+u>>a,h=+n(r,o,s)+u>>a,d=+e(r,o,s);l>=0&&l=0&&h>a),go({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a),vo({width:c,height:f,data:i},{width:c,height:f,data:l},o>>a),go({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a),vo({width:c,height:f,data:i},{width:c,height:f,data:l},o>>a),go({width:c,height:f,data:l},{width:c,height:f,data:i},o>>a);var d=s(i);if(!Array.isArray(d)){var p=A(i);d=w(0,p,d),(d=g(0,Math.floor(p/d)*d,d)).shift()}return po().thresholds(d).size([c,f])(i).map(h)}function h(t){return t.value*=Math.pow(2,-2*a),t.coordinates.forEach(d),t}function d(t){t.forEach(p)}function p(t){t.forEach(v)}function v(t){t[0]=t[0]*Math.pow(2,a)-u,t[1]=t[1]*Math.pow(2,a)-u}function y(){return c=r+2*(u=3*o)>>a,f=i+2*u>>a,l}return l.x=function(n){return arguments.length?(t="function"==typeof n?n:uo(+n),l):t},l.y=function(t){return arguments.length?(n="function"==typeof t?t:uo(+t),l):n},l.weight=function(t){return arguments.length?(e="function"==typeof t?t:uo(+t),l):e},l.size=function(t){if(!arguments.length)return[r,i];var n=Math.ceil(t[0]),e=Math.ceil(t[1]);if(!(n>=0||n>=0))throw new Error("invalid size");return r=n,i=e,y()},l.cellSize=function(t){if(!arguments.length)return 1<=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(t)/Math.LN2),y()},l.thresholds=function(t){return arguments.length?(s="function"==typeof t?t:Array.isArray(t)?uo(oo.call(t)):uo(t),l):s},l.bandwidth=function(t){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return o=Math.round((Math.sqrt(4*t*t+1)-1)/2),y()},l},t.dispatch=I,t.drag=function(){var n,e,r,i,o=Gt,a=Vt,u=$t,c=Wt,f={},s=I("start","drag","end"),l=0,h=0;function d(t){t.on("mousedown.drag",p).filter(c).on("touchstart.drag",y).on("touchmove.drag",_).on("touchend.drag touchcancel.drag",b).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(){if(!i&&o.apply(this,arguments)){var u=m("mouse",a.apply(this,arguments),Ot,this,arguments);u&&(zt(t.event.view).on("mousemove.drag",v,!0).on("mouseup.drag",g,!0),It(t.event.view),Bt(),r=!1,n=t.event.clientX,e=t.event.clientY,u("start"))}}function v(){if(Ft(),!r){var i=t.event.clientX-n,o=t.event.clientY-e;r=i*i+o*o>h}f.mouse("drag")}function g(){zt(t.event.view).on("mousemove.drag mouseup.drag",null),Ht(t.event.view,r),Ft(),f.mouse("end")}function y(){if(o.apply(this,arguments)){var n,e,r=t.event.changedTouches,i=a.apply(this,arguments),u=r.length;for(n=0;nc+d||if+d||ou.index){var p=c-a.x-a.vx,v=f-a.y-a.vy,g=p*p+v*v;gt.r&&(t.r=t[n].r)}function u(){if(n){var r,i,o=n.length;for(e=new Array(o),r=0;r=a)){(t.data!==n||t.next)&&(0===s&&(d+=(s=Zo())*s),0===l&&(d+=(l=Zo())*l),d1?(null==e?u.remove(t):u.set(t,d(e)),n):u.get(t)},find:function(n,e,r){var i,o,a,u,c,f=0,s=t.length;for(null==r?r=1/0:r*=r,f=0;f1?(f.on(t,e),n):f.on(t)}}},t.forceX=function(t){var n,e,r,i=Wo(.1);function o(t){for(var i,o=0,a=n.length;ofc(r[0],r[1])&&(r[1]=i[1]),fc(i[0],r[1])>fc(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=0,r=o[e=o.length-1];n<=e;r=i,++n)i=o[n],(u=fc(r[1],i[0]))>a&&(a=u,Tu=i[0],Cu=r[1])}return Lu=Uu=null,Tu===1/0||Eu===1/0?[[NaN,NaN],[NaN,NaN]]:[[Tu,Eu],[Cu,Pu]]},t.geoCentroid=function(t){Ou=Yu=Bu=Fu=Iu=Hu=ju=Xu=Gu=Vu=$u=0,cu(t,hc);var n=Gu,e=Vu,r=$u,i=n*n+e*e+r*r;return i=.12&&i<.234&&r>=-.425&&r<-.214?u:i>=.166&&i<.234&&r>=-.214&&r<-.115?c:a).invert(t)},s.stream=function(e){return t&&n===e?t:(r=[a.stream(n=e),u.stream(e),c.stream(e)],i=r.length,t={point:function(t,n){for(var e=-1;++e2?t[2]+90:90]):[(t=e())[0],t[1],t[2]-90]},e([0,0,90]).scale(159.155)},t.geoTransverseMercatorRaw=nl,t.geoRotation=Cc,t.geoStream=cu,t.geoTransform=function(t){return{stream:gs(t)}},t.cluster=function(){var t=el,n=1,e=1,r=!1;function i(i){var o,a=0;i.eachAfter(function(n){var e=n.children;e?(n.x=function(t){return t.reduce(rl,0)/t.length}(e),n.y=function(t){return 1+t.reduce(il,0)}(e)):(n.x=o?a+=t(n,o):0,n.y=0,o=n)});var u=function(t){for(var n;n=t.children;)t=n[0];return t}(i),c=function(t){for(var n;n=t.children;)t=n[n.length-1];return t}(i),f=u.x-t(u,c)/2,s=c.x+t(c,u)/2;return i.eachAfter(r?function(t){t.x=(t.x-i.x)*n,t.y=(i.y-t.y)*e}:function(t){t.x=(t.x-f)/(s-f)*n,t.y=(1-(i.y?t.y/i.y:1))*e})}return i.separation=function(n){return arguments.length?(t=n,i):t},i.size=function(t){return arguments.length?(r=!1,n=+t[0],e=+t[1],i):r?null:[n,e]},i.nodeSize=function(t){return arguments.length?(r=!0,n=+t[0],e=+t[1],i):r?[n,e]:null},i},t.hierarchy=al,t.pack=function(){var t=null,n=1,e=1,r=kl;function i(i){return i.x=n/2,i.y=e/2,t?i.eachBefore(El(t)).eachAfter(Cl(r,.5)).eachBefore(Pl(1)):i.eachBefore(El(Tl)).eachAfter(Cl(kl,1)).eachAfter(Cl(r,i.r/Math.min(n,e))).eachBefore(Pl(Math.min(n,e)/(2*i.r))),i}return i.radius=function(n){return arguments.length?(t=null==(e=n)?null:Al(e),i):t;var e},i.size=function(t){return arguments.length?(n=+t[0],e=+t[1],i):[n,e]},i.padding=function(t){return arguments.length?(r="function"==typeof t?t:Sl(+t),i):r},i},t.packSiblings=function(t){return Nl(t),t},t.packEnclose=hl,t.partition=function(){var t=1,n=1,e=0,r=!1;function i(i){var o=i.height+1;return i.x0=i.y0=e,i.x1=t,i.y1=n/o,i.eachBefore(function(t,n){return function(r){r.children&&Rl(r,r.x0,t*(r.depth+1)/n,r.x1,t*(r.depth+2)/n);var i=r.x0,o=r.y0,a=r.x1-e,u=r.y1-e;a0)throw new Error("cycle");return o}return e.id=function(n){return arguments.length?(t=Al(n),e):t},e.parentId=function(t){return arguments.length?(n=Al(t),e):n},e},t.tree=function(){var t=Yl,n=1,e=1,r=null;function i(i){var c=function(t){for(var n,e,r,i,o,a=new jl(t,0),u=[a];n=u.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)u.push(e=n.children[i]=new jl(r[i],i)),e.parent=n;return(a.parent=new jl(null,0)).children=[a],a}(i);if(c.eachAfter(o),c.parent.m=-c.z,c.eachBefore(a),r)i.eachBefore(u);else{var f=i,s=i,l=i;i.eachBefore(function(t){t.xs.x&&(s=t),t.depth>l.depth&&(l=t)});var h=f===s?1:t(f,s)/2,d=h-f.x,p=n/(s.x+h+d),v=e/(l.depth||1);i.eachBefore(function(t){t.x=(t.x+d)*p,t.y=t.depth*v})}return i}function o(n){var e=n.children,r=n.parent.children,i=n.i?r[n.i-1]:null;if(e){!function(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)(n=i[o]).z+=e,n.m+=e,e+=n.s+(r+=n.c)}(n);var o=(e[0].z+e[e.length-1].z)/2;i?(n.z=i.z+t(n._,i._),n.m=n.z-o):n.z=o}else i&&(n.z=i.z+t(n._,i._));n.parent.A=function(n,e,r){if(e){for(var i,o=n,a=n,u=e,c=o.parent.children[0],f=o.m,s=a.m,l=u.m,h=c.m;u=Fl(u),o=Bl(o),u&&o;)c=Bl(c),(a=Fl(a)).a=n,(i=u.z+l-o.z-f+t(u._,o._))>0&&(Il(Hl(u,n,r),n,i),f+=i,s+=i),l+=u.m,f+=o.m,h+=c.m,s+=a.m;u&&!Fl(a)&&(a.t=u,a.m+=l-s),o&&!Bl(c)&&(c.t=o,c.m+=f-h,r=n)}return r}(n,i,n.parent.A||r[0])}function a(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function u(t){t.x*=n,t.y=t.depth*e}return i.separation=function(n){return arguments.length?(t=n,i):t},i.size=function(t){return arguments.length?(r=!1,n=+t[0],e=+t[1],i):r?null:[n,e]},i.nodeSize=function(t){return arguments.length?(r=!0,n=+t[0],e=+t[1],i):r?[n,e]:null},i},t.treemap=function(){var t=$l,n=!1,e=1,r=1,i=[0],o=kl,a=kl,u=kl,c=kl,f=kl;function s(t){return t.x0=t.y0=0,t.x1=e,t.y1=r,t.eachBefore(l),i=[0],n&&t.eachBefore(zl),t}function l(n){var e=i[n.depth],r=n.x0+e,s=n.y0+e,l=n.x1-e,h=n.y1-e;l=e-1){var s=u[n];return s.x0=i,s.y0=o,s.x1=a,void(s.y1=c)}for(var l=f[n],h=r/2+l,d=n+1,p=e-1;d>>1;f[v]c-o){var _=(i*y+a*g)/r;t(n,d,g,i,o,_,c),t(d,e,y,_,o,a,c)}else{var b=(o*y+c*g)/r;t(n,d,g,i,o,a,b),t(d,e,y,i,b,a,c)}}(0,c,t.value,n,e,r,i)},t.treemapDice=Rl,t.treemapSlice=Xl,t.treemapSliceDice=function(t,n,e,r,i){(1&t.depth?Xl:Rl)(t,n,e,r,i)},t.treemapSquarify=$l,t.treemapResquarify=Wl,t.interpolate=ye,t.interpolateArray=se,t.interpolateBasis=Kn,t.interpolateBasisClosed=te,t.interpolateDate=le,t.interpolateDiscrete=function(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}},t.interpolateHue=function(t,n){var e=re(+t,+n);return function(t){var n=e(t);return n-360*Math.floor(n/360)}},t.interpolateNumber=he,t.interpolateObject=de,t.interpolateRound=_e,t.interpolateString=ge,t.interpolateTransformCss=Se,t.interpolateTransformSvg=Te,t.interpolateZoom=qe,t.interpolateRgb=ae,t.interpolateRgbBasis=ce,t.interpolateRgbBasisClosed=fe,t.interpolateHsl=Le,t.interpolateHslLong=Ue,t.interpolateLab=function(t,n){var e=oe((t=Rn(t)).l,(n=Rn(n)).l),r=oe(t.a,n.a),i=oe(t.b,n.b),o=oe(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}},t.interpolateHcl=Ye,t.interpolateHclLong=Be,t.interpolateCubehelix=Ie,t.interpolateCubehelixLong=He,t.piecewise=function(t,n){for(var e=0,r=n.length-1,i=n[0],o=new Array(r<0?0:r);e=0;--n)f.push(t[r[o[n]][2]]);for(n=+u;nu!=f>u&&a<(c-e)*(u-r)/(f-r)+e&&(s=!s),c=e,f=r;return s},t.polygonLength=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],a=o[0],u=o[1],c=0;++r0?a[n-1]:r[0],n=o?[a[o-1],r]:[a[n-1],a[n]]},c.unknown=function(t){return arguments.length?(n=t,c):c},c.thresholds=function(){return a.slice()},c.copy=function(){return t().domain([e,r]).range(u).unknown(n)},oh.apply(Nh(c),arguments)},t.scaleThreshold=function t(){var n,e=[.5],r=[0,1],o=1;function a(t){return t<=t?r[i(e,t,0,o)]:n}return a.domain=function(t){return arguments.length?(e=fh.call(t),o=Math.min(e.length,r.length-1),a):e.slice()},a.range=function(t){return arguments.length?(r=fh.call(t),o=Math.min(e.length,r.length-1),a):r.slice()},a.invertExtent=function(t){var n=r.indexOf(t);return[e[n-1],e[n]]},a.unknown=function(t){return arguments.length?(n=t,a):n},a.copy=function(){return t().domain(e).range(r).unknown(n)},oh.apply(a,arguments)},t.scaleTime=function(){return oh.apply(bv(bd,yd,rd,td,Jh,Zh,$h,jh,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)},t.scaleUtc=function(){return oh.apply(bv(jd,Id,Td,Ad,Md,xd,$h,jh,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)},t.scaleSequential=function t(){var n=Nh(mv()(vh));return n.copy=function(){return xv(n,t())},ah.apply(n,arguments)},t.scaleSequentialLog=function t(){var n=zh(mv()).domain([1,10]);return n.copy=function(){return xv(n,t()).base(n.base())},ah.apply(n,arguments)},t.scaleSequentialPow=wv,t.scaleSequentialSqrt=function(){return wv.apply(null,arguments).exponent(.5)},t.scaleSequentialSymlog=function t(){var n=Dh(mv());return n.copy=function(){return xv(n,t()).constant(n.constant())},ah.apply(n,arguments)},t.scaleSequentialQuantile=function t(){var e=[],r=vh;function o(t){if(!isNaN(t=+t))return r((i(e,t)-1)/(e.length-1))}return o.domain=function(t){if(!arguments.length)return e.slice();e=[];for(var r,i=0,a=t.length;i1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return Yg.h=360*t-100,Yg.s=1.5-1.5*n,Yg.l=.8-.9*n,Yg+""},t.interpolateWarm=Ug,t.interpolateCool=Og,t.interpolateSinebow=function(t){var n;return t=(.5-t)*Math.PI,Bg.r=255*(n=Math.sin(t))*n,Bg.g=255*(n=Math.sin(t+Fg))*n,Bg.b=255*(n=Math.sin(t+Ig))*n,Bg+""},t.interpolateViridis=jg,t.interpolateMagma=Xg,t.interpolateInferno=Gg,t.interpolatePlasma=Vg,t.create=function(t){return zt(W(t).call(document.documentElement))},t.creator=W,t.local=qt,t.matcher=tt,t.mouse=Ot,t.namespace=$,t.namespaces=V,t.clientPoint=Ut,t.select=zt,t.selectAll=function(t){return"string"==typeof t?new Ct([document.querySelectorAll(t)],[document.documentElement]):new Ct([null==t?[]:t],Et)},t.selection=Pt,t.selector=Q,t.selectorAll=K,t.style=ct,t.touch=Yt,t.touches=function(t,n){null==n&&(n=Lt().touches);for(var e=0,r=n?n.length:0,i=new Array(r);ed;if(u||(u=c=ji()),hey)if(v>oy-ey)u.moveTo(h*Qg(d),h*ty(d)),u.arc(0,0,h,d,p,!g),l>ey&&(u.moveTo(l*Qg(p),l*ty(p)),u.arc(0,0,l,p,d,g));else{var y,_,b=d,m=p,x=d,w=p,M=v,N=v,A=a.apply(this,arguments)/2,k=A>ey&&(r?+r.apply(this,arguments):ny(l*l+h*h)),S=Kg(Wg(h-l)/2,+e.apply(this,arguments)),T=S,E=S;if(k>ey){var C=ay(k/l*ty(A)),P=ay(k/h*ty(A));(M-=2*C)>ey?(x+=C*=g?1:-1,w-=C):(M=0,x=w=(d+p)/2),(N-=2*P)>ey?(b+=P*=g?1:-1,m-=P):(N=0,b=m=(d+p)/2)}var z=h*Qg(b),R=h*ty(b),q=l*Qg(w),D=l*ty(w);if(S>ey){var L,U=h*Qg(m),O=h*ty(m),Y=l*Qg(x),B=l*ty(x);if(v<=oy-ey&&(L=function(t,n,e,r,i,o,a,u){var c=e-t,f=r-n,s=a-i,l=u-o,h=l*c-s*f;if(!(h*h1?0:s<-1?ry:Math.acos(s))/2),G=ny(L[0]*L[0]+L[1]*L[1]);T=Kg(S,(l-G)/(X-1)),E=Kg(S,(h-G)/(X+1))}}N>ey?E>ey?(y=hy(Y,B,z,R,h,E,g),_=hy(U,O,q,D,h,E,g),u.moveTo(y.cx+y.x01,y.cy+y.y01),Eey&&M>ey?T>ey?(y=hy(q,D,U,O,l,-T,g),_=hy(z,R,Y,B,l,-T,g),u.lineTo(y.cx+y.x01,y.cy+y.y01),T0&&(d+=l);for(null!=n?p.sort(function(t,e){return n(v[t],v[e])}):null!=e&&p.sort(function(t,n){return e(a[t],a[n])}),u=0,f=d?(y-h*b)/d:0;u0?l*f:0)+b,v[c]={data:a[c],index:u,value:l,startAngle:g,endAngle:s,padAngle:_};return v}return a.value=function(n){return arguments.length?(t="function"==typeof n?n:$g(+n),a):t},a.sortValues=function(t){return arguments.length?(n=t,e=null,a):n},a.sort=function(t){return arguments.length?(e=t,n=null,a):e},a.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:$g(+t),a):r},a.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:$g(+t),a):i},a.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:$g(+t),a):o},a},t.areaRadial=ky,t.radialArea=ky,t.lineRadial=Ay,t.radialLine=Ay,t.pointRadial=Sy,t.linkHorizontal=function(){return Py(zy)},t.linkVertical=function(){return Py(Ry)},t.linkRadial=function(){var t=Py(qy);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.symbol=function(){var t=$g(Dy),n=$g(64),e=null;function r(){var r;if(e||(e=r=ji()),t.apply(this,arguments).draw(e,+n.apply(this,arguments)),r)return e=null,r+""||null}return r.type=function(n){return arguments.length?(t="function"==typeof n?n:$g(n),r):t},r.size=function(t){return arguments.length?(n="function"==typeof t?t:$g(+t),r):n},r.context=function(t){return arguments.length?(e=null==t?null:t,r):e},r},t.symbols=Qy,t.symbolCircle=Dy,t.symbolCross=Ly,t.symbolDiamond=Yy,t.symbolSquare=jy,t.symbolStar=Hy,t.symbolTriangle=Gy,t.symbolWye=Zy,t.curveBasisClosed=function(t){return new n_(t)},t.curveBasisOpen=function(t){return new e_(t)},t.curveBasis=function(t){return new t_(t)},t.curveBundle=i_,t.curveCardinalClosed=f_,t.curveCardinalOpen=l_,t.curveCardinal=u_,t.curveCatmullRomClosed=g_,t.curveCatmullRomOpen=__,t.curveCatmullRom=p_,t.curveLinearClosed=function(t){return new b_(t)},t.curveLinear=py,t.curveMonotoneX=function(t){return new N_(t)},t.curveMonotoneY=function(t){return new A_(t)},t.curveNatural=function(t){return new S_(t)},t.curveStep=function(t){return new E_(t,.5)},t.curveStepAfter=function(t){return new E_(t,1)},t.curveStepBefore=function(t){return new E_(t,0)},t.stack=function(){var t=$g([]),n=P_,e=C_,r=z_;function i(i){var o,a,u=t.apply(this,arguments),c=i.length,f=u.length,s=new Array(f);for(o=0;o0){for(var e,r,i,o=0,a=t[0].length;o1)for(var e,r,i,o,a,u,c=0,f=t[n[0]].length;c=0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=a,r[0]=a+=i):r[0]=o},t.stackOffsetNone=C_,t.stackOffsetSilhouette=function(t,n){if((e=t.length)>0){for(var e,r=0,i=t[n[0]],o=i.length;r0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,a=1;adr&&e.name===n)return new Er([[t]],fi,n,+r);return null},t.interrupt=Mr,t.voronoi=function(){var t=O_,n=Y_,e=null;function r(r){return new bb(r.map(function(e,i){var o=[Math.round(t(e,i,r)/gb)*gb,Math.round(n(e,i,r)/gb)*gb];return o.index=i,o.data=e,o}),e)}return r.polygons=function(t){return r(t).polygons()},r.links=function(t){return r(t).links()},r.triangles=function(t){return r(t).triangles()},r.x=function(n){return arguments.length?(t="function"==typeof n?n:U_(+n),r):t},r.y=function(t){return arguments.length?(n="function"==typeof t?t:U_(+t),r):n},r.extent=function(t){return arguments.length?(e=null==t?null:[[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]],r):e&&[[e[0][0],e[0][1]],[e[1][0],e[1][1]]]},r.size=function(t){return arguments.length?(e=null==t?null:[[0,0],[+t[0],+t[1]]],r):e&&[e[1][0]-e[0][0],e[1][1]-e[0][1]]},r},t.zoom=function(){var n,e,r=Sb,i=Tb,o=zb,a=Cb,u=Pb,c=[0,1/0],f=[[-1/0,-1/0],[1/0,1/0]],s=250,l=qe,h=[],d=I("start","zoom","end"),p=500,v=150,g=0;function y(t){t.property("__zoom",Eb).on("wheel.zoom",N).on("mousedown.zoom",A).on("dblclick.zoom",k).filter(u).on("touchstart.zoom",S).on("touchmove.zoom",T).on("touchend.zoom touchcancel.zoom",E).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function _(t,n){return(n=Math.max(c[0],Math.min(c[1],n)))===t.k?t:new wb(n,t.x,t.y)}function b(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new wb(t.k,r,i)}function m(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function x(t,n,e){t.on("start.zoom",function(){w(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){w(this,arguments).end()}).tween("zoom",function(){var t=arguments,r=w(this,t),o=i.apply(this,t),a=e||m(o),u=Math.max(o[1][0]-o[0][0],o[1][1]-o[0][1]),c=this.__zoom,f="function"==typeof n?n.apply(this,t):n,s=l(c.invert(a).concat(u/c.k),f.invert(a).concat(u/f.k));return function(t){if(1===t)t=f;else{var n=s(t),e=u/n[2];t=new wb(e,a[0]-n[0]*e,a[1]-n[1]*e)}r.zoom(null,t)}})}function w(t,n){for(var e,r=0,i=h.length;rg}n.zoom("mouse",o(b(n.that.__zoom,n.mouse[0]=Ot(n.that),n.mouse[1]),n.extent,f))},!0).on("mouseup.zoom",function(){i.on("mousemove.zoom mouseup.zoom",null),Ht(t.event.view,n.moved),kb(),n.end()},!0),a=Ot(this),u=t.event.clientX,c=t.event.clientY;It(t.event.view),Ab(),n.mouse=[a,this.__zoom.invert(a)],Mr(this),n.start()}}function k(){if(r.apply(this,arguments)){var n=this.__zoom,e=Ot(this),a=n.invert(e),u=n.k*(t.event.shiftKey?.5:2),c=o(b(_(n,u),e,a),i.apply(this,arguments),f);kb(),s>0?zt(this).transition().duration(s).call(x,c,e):zt(this).call(y.transform,c)}}function S(){if(r.apply(this,arguments)){var e,i,o,a,u=w(this,arguments),c=t.event.changedTouches,f=c.length;for(Ab(),i=0;ia==f>-a?(h=a,a=i[++c]):(h=f,f=e[++u]);let _=0;if(ca==f>-a?(r=a+h,l=h-(r-a),a=i[++c]):(r=f+h,l=h-(r-f),f=e[++u]),h=r,0!==l&&(n[_++]=l);ca==f>-a?(r=h+a,o=r-h,l=h-(r-o)+(a-o),a=i[++c]):(r=h+f,o=r-h,l=h-(r-o)+(f-o),f=e[++u]),h=r,0!==l&&(n[_++]=l);for(;c0!=d>0)return g;const y=Math.abs(_+d);return Math.abs(g)>=33306690738754716e-32*y?g:-function(s,o,a,f,c,u,_){let d,g,y,w,b,A,k,M,p,x,S,T,z,U,m,K,L,v;const F=s-c,P=a-c,E=o-u,H=f-u;U=F*H,A=t*F,k=A-(A-F),M=F-k,A=t*H,p=A-(A-H),x=H-p,m=M*x-(U-k*p-M*p-k*x),K=E*P,A=t*E,k=A-(A-E),M=E-k,A=t*P,p=A-(A-P),x=P-p,L=M*x-(K-k*p-M*p-k*x),S=m-L,b=m-S,e[0]=m-(S+b)+(b-L),T=U+S,b=T-U,z=U-(T-b)+(S-b),S=z-K,b=z-S,e[1]=z-(S+b)+(b-K),v=T+S,b=v-T,e[2]=T-(v-b)+(S-b),e[3]=v;let I=function(t,i){let s=i[0];for(let e=1;e=N||-I>=N)return I;if(b=s-F,d=s-(F+b)+(b-c),b=a-P,y=a-(P+b)+(b-c),b=o-E,g=o-(E+b)+(b-u),b=f-H,w=f-(H+b)+(b-u),0===d&&0===g&&0===y&&0===w)return I;if(N=11093356479670487e-47*_+33306690738754706e-32*Math.abs(I),I+=F*w+H*d-(E*y+P*g),I>=N||-I>=N)return I;U=d*H,A=t*d,k=A-(A-d),M=d-k,A=t*H,p=A-(A-H),x=H-p,m=M*x-(U-k*p-M*p-k*x),K=g*P,A=t*g,k=A-(A-g),M=g-k,A=t*P,p=A-(A-P),x=P-p,L=M*x-(K-k*p-M*p-k*x),S=m-L,b=m-S,l[0]=m-(S+b)+(b-L),T=U+S,b=T-U,z=U-(T-b)+(S-b),S=z-K,b=z-S,l[1]=z-(S+b)+(b-K),v=T+S,b=v-T,l[2]=T-(v-b)+(S-b),l[3]=v;const j=i(4,e,4,l,n);U=F*w,A=t*F,k=A-(A-F),M=F-k,A=t*w,p=A-(A-w),x=w-p,m=M*x-(U-k*p-M*p-k*x),K=E*y,A=t*E,k=A-(A-E),M=E-k,A=t*y,p=A-(A-y),x=y-p,L=M*x-(K-k*p-M*p-k*x),S=m-L,b=m-S,l[0]=m-(S+b)+(b-L),T=U+S,b=T-U,z=U-(T-b)+(S-b),S=z-K,b=z-S,l[1]=z-(S+b)+(b-K),v=T+S,b=v-T,l[2]=T-(v-b)+(S-b),l[3]=v;const q=i(j,n,4,l,h);U=d*w,A=t*d,k=A-(A-d),M=d-k,A=t*w,p=A-(A-w),x=w-p,m=M*x-(U-k*p-M*p-k*x),K=g*y,A=t*g,k=A-(A-g),M=g-k,A=t*y,p=A-(A-y),x=y-p,L=M*x-(K-k*p-M*p-k*x),S=m-L,b=m-S,l[0]=m-(S+b)+(b-L),T=U+S,b=T-U,z=U-(T-b)+(S-b),S=z-K,b=z-S,l[1]=z-(S+b)+(b-K),v=T+S,b=v-T,l[2]=T-(v-b)+(S-b),l[3]=v;const D=i(q,h,4,l,r);return r[D-1]}(s,o,a,f,c,u,y)}const a=Math.pow(2,-52),f=new Uint32Array(512);class c{static from(t,i=w,s=b){const e=t.length,n=new Float64Array(2*e);for(let h=0;h>1;if(i>0&&"number"!=typeof t[0])throw new Error("Expected coords to contain numbers.");this.coords=t;const s=Math.max(2*i-5,0);this._triangles=new Uint32Array(3*s),this._halfedges=new Int32Array(3*s),this._hashSize=Math.ceil(Math.sqrt(i)),this._hullPrev=new Uint32Array(i),this._hullNext=new Uint32Array(i),this._hullTri=new Uint32Array(i),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(i),this._dists=new Float64Array(i),this.update()}update(){const{coords:t,_hullPrev:i,_hullNext:s,_hullTri:e,_hullHash:n}=this,h=t.length>>1;let r=1/0,l=1/0,f=-1/0,c=-1/0;for(let i=0;if&&(f=s),e>c&&(c=e),this._ids[i]=i}const _=(r+f)/2,y=(l+c)/2;let w,b,A,k=1/0;for(let i=0;i0&&(b=i,k=s)}let x=t[2*b],S=t[2*b+1],T=1/0;for(let i=0;ie&&(i[s++]=n,e=this._dists[n])}return this.hull=i.subarray(0,s),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(o(M,p,x,S,z,U)<0){const t=b,i=x,s=S;b=A,x=z,S=U,A=t,z=i,U=s}const m=function(t,i,s,e,n,h){const r=s-t,l=e-i,o=n-t,a=h-i,f=r*r+l*l,c=o*o+a*a,u=.5/(r*a-l*o);return{x:t+(a*f-l*c)*u,y:i+(r*c-o*f)*u}}(M,p,x,S,z,U);this._cx=m.x,this._cy=m.y;for(let i=0;i0&&Math.abs(c-h)<=a&&Math.abs(u-r)<=a)continue;if(h=c,r=u,f===w||f===b||f===A)continue;let _=0;for(let t=0,i=this._hashKey(c,u);t=0;)if(g=d,g===_){g=-1;break}if(-1===g)continue;let y=this._addTriangle(g,f,s[g],-1,-1,e[g]);e[f]=this._legalize(y+2),e[g]=y,K++;let k=s[g];for(;d=s[k],o(c,u,t[2*k],t[2*k+1],t[2*d],t[2*d+1])<0;)y=this._addTriangle(k,f,d,e[f],-1,e[k]),e[f]=this._legalize(y+2),s[k]=k,K--,k=d;if(g===_)for(;d=i[g],o(c,u,t[2*d],t[2*d+1],t[2*g],t[2*g+1])<0;)y=this._addTriangle(d,f,g,-1,e[g],e[d]),this._legalize(y+2),e[d]=y,s[g]=g,K--,g=d;this._hullStart=i[f]=g,s[g]=i[k]=f,s[f]=k,n[this._hashKey(c,u)]=f,n[this._hashKey(t[2*g],t[2*g+1])]=g}this.hull=new Uint32Array(K);for(let t=0,i=this._hullStart;t0?3-s:1+s)/4}(t-this._cx,i-this._cy)*this._hashSize)%this._hashSize}_legalize(t){const{_triangles:i,_halfedges:s,coords:e}=this;let n=0,h=0;for(;;){const r=s[t],l=t-t%3;if(h=l+(t+2)%3,-1===r){if(0===n)break;t=f[--n];continue}const o=r-r%3,a=l+(t+1)%3,c=o+(r+2)%3,u=i[h],d=i[t],g=i[a],y=i[c];if(_(e[2*u],e[2*u+1],e[2*d],e[2*d+1],e[2*g],e[2*g+1],e[2*y],e[2*y+1])){i[t]=y,i[r]=u;const e=s[c];if(-1===e){let i=this._hullStart;do{if(this._hullTri[i]===c){this._hullTri[i]=t;break}i=this._hullPrev[i]}while(i!==this._hullStart)}this._link(t,e),this._link(r,s[h]),this._link(h,c);const l=o+(r+1)%3;n=s&&i[t[r]]>h;)t[r+1]=t[r--];t[r+1]=e}else{let n=s+1,h=e;y(t,s+e>>1,n),i[t[s]]>i[t[e]]&&y(t,s,e),i[t[n]]>i[t[e]]&&y(t,n,e),i[t[s]]>i[t[n]]&&y(t,s,n);const r=t[n],l=i[r];for(;;){do{n++}while(i[t[n]]l);if(h=h-s?(g(t,i,n,e),g(t,i,s,h-1)):(g(t,i,s,h-1),g(t,i,n,e))}}function y(t,i,s){const e=t[i];t[i]=t[s],t[s]=e}function w(t){return t[0]}function b(t){return t[1]}return c})); diff --git a/src/libs/dropbox-sdk.min.js b/src/libs/dropbox-sdk.min.js new file mode 100644 index 00000000..c5e32fc2 --- /dev/null +++ b/src/libs/dropbox-sdk.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Dropbox={})}(this,(function(e){"use strict";function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var r=0;t.length>r;r++){var s=t[r];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}function s(e,t,s){return t&&r(e.prototype,t),s&&r(e,s),e}function i(e){return(i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function n(e,t){return(n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function u(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function a(e,t,r){return(a=u()?Reflect.construct:function(e,t,r){var s=[null];s.push.apply(s,t);var i=new(Function.bind.apply(e,s));return r&&n(i,r.prototype),i}).apply(null,arguments)}function o(e){var t="function"==typeof Map?new Map:void 0;return(o=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return a(e,arguments,i(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),n(r,e)})(e)}function c(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}var p="app",l="user",f="team",h="dropboxapi.com",m="dropbox.com",d={api:"api",notify:"bolt",content:"api-content"},_={};function q(e){var t="000".concat(e.charCodeAt(0).toString(16)).slice(-4);return"\\u".concat(t)}_.accountSetProfilePhoto=function(e){return this.request("account/set_profile_photo",e,"user","api","rpc")},_.authTokenFromOauth1=function(e){return this.request("auth/token/from_oauth1",e,"app","api","rpc")},_.authTokenRevoke=function(){return this.request("auth/token/revoke",null,"user","api","rpc")},_.checkApp=function(e){return this.request("check/app",e,"app","api","rpc")},_.checkUser=function(e){return this.request("check/user",e,"user","api","rpc")},_.contactsDeleteManualContacts=function(){return this.request("contacts/delete_manual_contacts",null,"user","api","rpc")},_.contactsDeleteManualContactsBatch=function(e){return this.request("contacts/delete_manual_contacts_batch",e,"user","api","rpc")},_.filePropertiesPropertiesAdd=function(e){return this.request("file_properties/properties/add",e,"user","api","rpc")},_.filePropertiesPropertiesOverwrite=function(e){return this.request("file_properties/properties/overwrite",e,"user","api","rpc")},_.filePropertiesPropertiesRemove=function(e){return this.request("file_properties/properties/remove",e,"user","api","rpc")},_.filePropertiesPropertiesSearch=function(e){return this.request("file_properties/properties/search",e,"user","api","rpc")},_.filePropertiesPropertiesSearchContinue=function(e){return this.request("file_properties/properties/search/continue",e,"user","api","rpc")},_.filePropertiesPropertiesUpdate=function(e){return this.request("file_properties/properties/update",e,"user","api","rpc")},_.filePropertiesTemplatesAddForTeam=function(e){return this.request("file_properties/templates/add_for_team",e,"team","api","rpc")},_.filePropertiesTemplatesAddForUser=function(e){return this.request("file_properties/templates/add_for_user",e,"user","api","rpc")},_.filePropertiesTemplatesGetForTeam=function(e){return this.request("file_properties/templates/get_for_team",e,"team","api","rpc")},_.filePropertiesTemplatesGetForUser=function(e){return this.request("file_properties/templates/get_for_user",e,"user","api","rpc")},_.filePropertiesTemplatesListForTeam=function(){return this.request("file_properties/templates/list_for_team",null,"team","api","rpc")},_.filePropertiesTemplatesListForUser=function(){return this.request("file_properties/templates/list_for_user",null,"user","api","rpc")},_.filePropertiesTemplatesRemoveForTeam=function(e){return this.request("file_properties/templates/remove_for_team",e,"team","api","rpc")},_.filePropertiesTemplatesRemoveForUser=function(e){return this.request("file_properties/templates/remove_for_user",e,"user","api","rpc")},_.filePropertiesTemplatesUpdateForTeam=function(e){return this.request("file_properties/templates/update_for_team",e,"team","api","rpc")},_.filePropertiesTemplatesUpdateForUser=function(e){return this.request("file_properties/templates/update_for_user",e,"user","api","rpc")},_.fileRequestsCount=function(){return this.request("file_requests/count",null,"user","api","rpc")},_.fileRequestsCreate=function(e){return this.request("file_requests/create",e,"user","api","rpc")},_.fileRequestsDelete=function(e){return this.request("file_requests/delete",e,"user","api","rpc")},_.fileRequestsDeleteAllClosed=function(){return this.request("file_requests/delete_all_closed",null,"user","api","rpc")},_.fileRequestsGet=function(e){return this.request("file_requests/get",e,"user","api","rpc")},_.fileRequestsListV2=function(e){return this.request("file_requests/list_v2",e,"user","api","rpc")},_.fileRequestsList=function(){return this.request("file_requests/list",null,"user","api","rpc")},_.fileRequestsListContinue=function(e){return this.request("file_requests/list/continue",e,"user","api","rpc")},_.fileRequestsUpdate=function(e){return this.request("file_requests/update",e,"user","api","rpc")},_.filesAlphaGetMetadata=function(e){return this.request("files/alpha/get_metadata",e,"user","api","rpc")},_.filesAlphaUpload=function(e){return this.request("files/alpha/upload",e,"user","content","upload")},_.filesCopyV2=function(e){return this.request("files/copy_v2",e,"user","api","rpc")},_.filesCopy=function(e){return this.request("files/copy",e,"user","api","rpc")},_.filesCopyBatchV2=function(e){return this.request("files/copy_batch_v2",e,"user","api","rpc")},_.filesCopyBatch=function(e){return this.request("files/copy_batch",e,"user","api","rpc")},_.filesCopyBatchCheckV2=function(e){return this.request("files/copy_batch/check_v2",e,"user","api","rpc")},_.filesCopyBatchCheck=function(e){return this.request("files/copy_batch/check",e,"user","api","rpc")},_.filesCopyReferenceGet=function(e){return this.request("files/copy_reference/get",e,"user","api","rpc")},_.filesCopyReferenceSave=function(e){return this.request("files/copy_reference/save",e,"user","api","rpc")},_.filesCreateFolderV2=function(e){return this.request("files/create_folder_v2",e,"user","api","rpc")},_.filesCreateFolder=function(e){return this.request("files/create_folder",e,"user","api","rpc")},_.filesCreateFolderBatch=function(e){return this.request("files/create_folder_batch",e,"user","api","rpc")},_.filesCreateFolderBatchCheck=function(e){return this.request("files/create_folder_batch/check",e,"user","api","rpc")},_.filesDeleteV2=function(e){return this.request("files/delete_v2",e,"user","api","rpc")},_.filesDelete=function(e){return this.request("files/delete",e,"user","api","rpc")},_.filesDeleteBatch=function(e){return this.request("files/delete_batch",e,"user","api","rpc")},_.filesDeleteBatchCheck=function(e){return this.request("files/delete_batch/check",e,"user","api","rpc")},_.filesDownload=function(e){return this.request("files/download",e,"user","content","download")},_.filesDownloadZip=function(e){return this.request("files/download_zip",e,"user","content","download")},_.filesExport=function(e){return this.request("files/export",e,"user","content","download")},_.filesGetFileLockBatch=function(e){return this.request("files/get_file_lock_batch",e,"user","api","rpc")},_.filesGetMetadata=function(e){return this.request("files/get_metadata",e,"user","api","rpc")},_.filesGetPreview=function(e){return this.request("files/get_preview",e,"user","content","download")},_.filesGetTemporaryLink=function(e){return this.request("files/get_temporary_link",e,"user","api","rpc")},_.filesGetTemporaryUploadLink=function(e){return this.request("files/get_temporary_upload_link",e,"user","api","rpc")},_.filesGetThumbnail=function(e){return this.request("files/get_thumbnail",e,"user","content","download")},_.filesGetThumbnailV2=function(e){return this.request("files/get_thumbnail_v2",e,"app, user","content","download")},_.filesGetThumbnailBatch=function(e){return this.request("files/get_thumbnail_batch",e,"user","content","rpc")},_.filesListFolder=function(e){return this.request("files/list_folder",e,"user","api","rpc")},_.filesListFolderContinue=function(e){return this.request("files/list_folder/continue",e,"user","api","rpc")},_.filesListFolderGetLatestCursor=function(e){return this.request("files/list_folder/get_latest_cursor",e,"user","api","rpc")},_.filesListFolderLongpoll=function(e){return this.request("files/list_folder/longpoll",e,"noauth","notify","rpc")},_.filesListRevisions=function(e){return this.request("files/list_revisions",e,"user","api","rpc")},_.filesLockFileBatch=function(e){return this.request("files/lock_file_batch",e,"user","api","rpc")},_.filesMoveV2=function(e){return this.request("files/move_v2",e,"user","api","rpc")},_.filesMove=function(e){return this.request("files/move",e,"user","api","rpc")},_.filesMoveBatchV2=function(e){return this.request("files/move_batch_v2",e,"user","api","rpc")},_.filesMoveBatch=function(e){return this.request("files/move_batch",e,"user","api","rpc")},_.filesMoveBatchCheckV2=function(e){return this.request("files/move_batch/check_v2",e,"user","api","rpc")},_.filesMoveBatchCheck=function(e){return this.request("files/move_batch/check",e,"user","api","rpc")},_.filesPaperCreate=function(e){return this.request("files/paper/create",e,"user","api","upload")},_.filesPaperUpdate=function(e){return this.request("files/paper/update",e,"user","api","upload")},_.filesPermanentlyDelete=function(e){return this.request("files/permanently_delete",e,"user","api","rpc")},_.filesPropertiesAdd=function(e){return this.request("files/properties/add",e,"user","api","rpc")},_.filesPropertiesOverwrite=function(e){return this.request("files/properties/overwrite",e,"user","api","rpc")},_.filesPropertiesRemove=function(e){return this.request("files/properties/remove",e,"user","api","rpc")},_.filesPropertiesTemplateGet=function(e){return this.request("files/properties/template/get",e,"user","api","rpc")},_.filesPropertiesTemplateList=function(){return this.request("files/properties/template/list",null,"user","api","rpc")},_.filesPropertiesUpdate=function(e){return this.request("files/properties/update",e,"user","api","rpc")},_.filesRestore=function(e){return this.request("files/restore",e,"user","api","rpc")},_.filesSaveUrl=function(e){return this.request("files/save_url",e,"user","api","rpc")},_.filesSaveUrlCheckJobStatus=function(e){return this.request("files/save_url/check_job_status",e,"user","api","rpc")},_.filesSearch=function(e){return this.request("files/search",e,"user","api","rpc")},_.filesSearchV2=function(e){return this.request("files/search_v2",e,"user","api","rpc")},_.filesSearchContinueV2=function(e){return this.request("files/search/continue_v2",e,"user","api","rpc")},_.filesUnlockFileBatch=function(e){return this.request("files/unlock_file_batch",e,"user","api","rpc")},_.filesUpload=function(e){return this.request("files/upload",e,"user","content","upload")},_.filesUploadSessionAppendV2=function(e){return this.request("files/upload_session/append_v2",e,"user","content","upload")},_.filesUploadSessionAppend=function(e){return this.request("files/upload_session/append",e,"user","content","upload")},_.filesUploadSessionFinish=function(e){return this.request("files/upload_session/finish",e,"user","content","upload")},_.filesUploadSessionFinishBatch=function(e){return this.request("files/upload_session/finish_batch",e,"user","api","rpc")},_.filesUploadSessionFinishBatchCheck=function(e){return this.request("files/upload_session/finish_batch/check",e,"user","api","rpc")},_.filesUploadSessionStart=function(e){return this.request("files/upload_session/start",e,"user","content","upload")},_.paperDocsArchive=function(e){return this.request("paper/docs/archive",e,"user","api","rpc")},_.paperDocsCreate=function(e){return this.request("paper/docs/create",e,"user","api","upload")},_.paperDocsDownload=function(e){return this.request("paper/docs/download",e,"user","api","download")},_.paperDocsFolderUsersList=function(e){return this.request("paper/docs/folder_users/list",e,"user","api","rpc")},_.paperDocsFolderUsersListContinue=function(e){return this.request("paper/docs/folder_users/list/continue",e,"user","api","rpc")},_.paperDocsGetFolderInfo=function(e){return this.request("paper/docs/get_folder_info",e,"user","api","rpc")},_.paperDocsList=function(e){return this.request("paper/docs/list",e,"user","api","rpc")},_.paperDocsListContinue=function(e){return this.request("paper/docs/list/continue",e,"user","api","rpc")},_.paperDocsPermanentlyDelete=function(e){return this.request("paper/docs/permanently_delete",e,"user","api","rpc")},_.paperDocsSharingPolicyGet=function(e){return this.request("paper/docs/sharing_policy/get",e,"user","api","rpc")},_.paperDocsSharingPolicySet=function(e){return this.request("paper/docs/sharing_policy/set",e,"user","api","rpc")},_.paperDocsUpdate=function(e){return this.request("paper/docs/update",e,"user","api","upload")},_.paperDocsUsersAdd=function(e){return this.request("paper/docs/users/add",e,"user","api","rpc")},_.paperDocsUsersList=function(e){return this.request("paper/docs/users/list",e,"user","api","rpc")},_.paperDocsUsersListContinue=function(e){return this.request("paper/docs/users/list/continue",e,"user","api","rpc")},_.paperDocsUsersRemove=function(e){return this.request("paper/docs/users/remove",e,"user","api","rpc")},_.paperFoldersCreate=function(e){return this.request("paper/folders/create",e,"user","api","rpc")},_.sharingAddFileMember=function(e){return this.request("sharing/add_file_member",e,"user","api","rpc")},_.sharingAddFolderMember=function(e){return this.request("sharing/add_folder_member",e,"user","api","rpc")},_.sharingCheckJobStatus=function(e){return this.request("sharing/check_job_status",e,"user","api","rpc")},_.sharingCheckRemoveMemberJobStatus=function(e){return this.request("sharing/check_remove_member_job_status",e,"user","api","rpc")},_.sharingCheckShareJobStatus=function(e){return this.request("sharing/check_share_job_status",e,"user","api","rpc")},_.sharingCreateSharedLink=function(e){return this.request("sharing/create_shared_link",e,"user","api","rpc")},_.sharingCreateSharedLinkWithSettings=function(e){return this.request("sharing/create_shared_link_with_settings",e,"user","api","rpc")},_.sharingGetFileMetadata=function(e){return this.request("sharing/get_file_metadata",e,"user","api","rpc")},_.sharingGetFileMetadataBatch=function(e){return this.request("sharing/get_file_metadata/batch",e,"user","api","rpc")},_.sharingGetFolderMetadata=function(e){return this.request("sharing/get_folder_metadata",e,"user","api","rpc")},_.sharingGetSharedLinkFile=function(e){return this.request("sharing/get_shared_link_file",e,"user","content","download")},_.sharingGetSharedLinkMetadata=function(e){return this.request("sharing/get_shared_link_metadata",e,"user","api","rpc")},_.sharingGetSharedLinks=function(e){return this.request("sharing/get_shared_links",e,"user","api","rpc")},_.sharingListFileMembers=function(e){return this.request("sharing/list_file_members",e,"user","api","rpc")},_.sharingListFileMembersBatch=function(e){return this.request("sharing/list_file_members/batch",e,"user","api","rpc")},_.sharingListFileMembersContinue=function(e){return this.request("sharing/list_file_members/continue",e,"user","api","rpc")},_.sharingListFolderMembers=function(e){return this.request("sharing/list_folder_members",e,"user","api","rpc")},_.sharingListFolderMembersContinue=function(e){return this.request("sharing/list_folder_members/continue",e,"user","api","rpc")},_.sharingListFolders=function(e){return this.request("sharing/list_folders",e,"user","api","rpc")},_.sharingListFoldersContinue=function(e){return this.request("sharing/list_folders/continue",e,"user","api","rpc")},_.sharingListMountableFolders=function(e){return this.request("sharing/list_mountable_folders",e,"user","api","rpc")},_.sharingListMountableFoldersContinue=function(e){return this.request("sharing/list_mountable_folders/continue",e,"user","api","rpc")},_.sharingListReceivedFiles=function(e){return this.request("sharing/list_received_files",e,"user","api","rpc")},_.sharingListReceivedFilesContinue=function(e){return this.request("sharing/list_received_files/continue",e,"user","api","rpc")},_.sharingListSharedLinks=function(e){return this.request("sharing/list_shared_links",e,"user","api","rpc")},_.sharingModifySharedLinkSettings=function(e){return this.request("sharing/modify_shared_link_settings",e,"user","api","rpc")},_.sharingMountFolder=function(e){return this.request("sharing/mount_folder",e,"user","api","rpc")},_.sharingRelinquishFileMembership=function(e){return this.request("sharing/relinquish_file_membership",e,"user","api","rpc")},_.sharingRelinquishFolderMembership=function(e){return this.request("sharing/relinquish_folder_membership",e,"user","api","rpc")},_.sharingRemoveFileMember=function(e){return this.request("sharing/remove_file_member",e,"user","api","rpc")},_.sharingRemoveFileMember2=function(e){return this.request("sharing/remove_file_member_2",e,"user","api","rpc")},_.sharingRemoveFolderMember=function(e){return this.request("sharing/remove_folder_member",e,"user","api","rpc")},_.sharingRevokeSharedLink=function(e){return this.request("sharing/revoke_shared_link",e,"user","api","rpc")},_.sharingSetAccessInheritance=function(e){return this.request("sharing/set_access_inheritance",e,"user","api","rpc")},_.sharingShareFolder=function(e){return this.request("sharing/share_folder",e,"user","api","rpc")},_.sharingTransferFolder=function(e){return this.request("sharing/transfer_folder",e,"user","api","rpc")},_.sharingUnmountFolder=function(e){return this.request("sharing/unmount_folder",e,"user","api","rpc")},_.sharingUnshareFile=function(e){return this.request("sharing/unshare_file",e,"user","api","rpc")},_.sharingUnshareFolder=function(e){return this.request("sharing/unshare_folder",e,"user","api","rpc")},_.sharingUpdateFileMember=function(e){return this.request("sharing/update_file_member",e,"user","api","rpc")},_.sharingUpdateFolderMember=function(e){return this.request("sharing/update_folder_member",e,"user","api","rpc")},_.sharingUpdateFolderPolicy=function(e){return this.request("sharing/update_folder_policy",e,"user","api","rpc")},_.teamDevicesListMemberDevices=function(e){return this.request("team/devices/list_member_devices",e,"team","api","rpc")},_.teamDevicesListMembersDevices=function(e){return this.request("team/devices/list_members_devices",e,"team","api","rpc")},_.teamDevicesListTeamDevices=function(e){return this.request("team/devices/list_team_devices",e,"team","api","rpc")},_.teamDevicesRevokeDeviceSession=function(e){return this.request("team/devices/revoke_device_session",e,"team","api","rpc")},_.teamDevicesRevokeDeviceSessionBatch=function(e){return this.request("team/devices/revoke_device_session_batch",e,"team","api","rpc")},_.teamFeaturesGetValues=function(e){return this.request("team/features/get_values",e,"team","api","rpc")},_.teamGetInfo=function(){return this.request("team/get_info",null,"team","api","rpc")},_.teamGroupsCreate=function(e){return this.request("team/groups/create",e,"team","api","rpc")},_.teamGroupsDelete=function(e){return this.request("team/groups/delete",e,"team","api","rpc")},_.teamGroupsGetInfo=function(e){return this.request("team/groups/get_info",e,"team","api","rpc")},_.teamGroupsJobStatusGet=function(e){return this.request("team/groups/job_status/get",e,"team","api","rpc")},_.teamGroupsList=function(e){return this.request("team/groups/list",e,"team","api","rpc")},_.teamGroupsListContinue=function(e){return this.request("team/groups/list/continue",e,"team","api","rpc")},_.teamGroupsMembersAdd=function(e){return this.request("team/groups/members/add",e,"team","api","rpc")},_.teamGroupsMembersList=function(e){return this.request("team/groups/members/list",e,"team","api","rpc")},_.teamGroupsMembersListContinue=function(e){return this.request("team/groups/members/list/continue",e,"team","api","rpc")},_.teamGroupsMembersRemove=function(e){return this.request("team/groups/members/remove",e,"team","api","rpc")},_.teamGroupsMembersSetAccessType=function(e){return this.request("team/groups/members/set_access_type",e,"team","api","rpc")},_.teamGroupsUpdate=function(e){return this.request("team/groups/update",e,"team","api","rpc")},_.teamLegalHoldsCreatePolicy=function(e){return this.request("team/legal_holds/create_policy",e,"team","api","rpc")},_.teamLegalHoldsGetPolicy=function(e){return this.request("team/legal_holds/get_policy",e,"team","api","rpc")},_.teamLegalHoldsListHeldRevisions=function(e){return this.request("team/legal_holds/list_held_revisions",e,"team","api","rpc")},_.teamLegalHoldsListHeldRevisionsContinue=function(e){return this.request("team/legal_holds/list_held_revisions_continue",e,"team","api","rpc")},_.teamLegalHoldsListPolicies=function(e){return this.request("team/legal_holds/list_policies",e,"team","api","rpc")},_.teamLegalHoldsReleasePolicy=function(e){return this.request("team/legal_holds/release_policy",e,"team","api","rpc")},_.teamLegalHoldsUpdatePolicy=function(e){return this.request("team/legal_holds/update_policy",e,"team","api","rpc")},_.teamLinkedAppsListMemberLinkedApps=function(e){return this.request("team/linked_apps/list_member_linked_apps",e,"team","api","rpc")},_.teamLinkedAppsListMembersLinkedApps=function(e){return this.request("team/linked_apps/list_members_linked_apps",e,"team","api","rpc")},_.teamLinkedAppsListTeamLinkedApps=function(e){return this.request("team/linked_apps/list_team_linked_apps",e,"team","api","rpc")},_.teamLinkedAppsRevokeLinkedApp=function(e){return this.request("team/linked_apps/revoke_linked_app",e,"team","api","rpc")},_.teamLinkedAppsRevokeLinkedAppBatch=function(e){return this.request("team/linked_apps/revoke_linked_app_batch",e,"team","api","rpc")},_.teamMemberSpaceLimitsExcludedUsersAdd=function(e){return this.request("team/member_space_limits/excluded_users/add",e,"team","api","rpc")},_.teamMemberSpaceLimitsExcludedUsersList=function(e){return this.request("team/member_space_limits/excluded_users/list",e,"team","api","rpc")},_.teamMemberSpaceLimitsExcludedUsersListContinue=function(e){return this.request("team/member_space_limits/excluded_users/list/continue",e,"team","api","rpc")},_.teamMemberSpaceLimitsExcludedUsersRemove=function(e){return this.request("team/member_space_limits/excluded_users/remove",e,"team","api","rpc")},_.teamMemberSpaceLimitsGetCustomQuota=function(e){return this.request("team/member_space_limits/get_custom_quota",e,"team","api","rpc")},_.teamMemberSpaceLimitsRemoveCustomQuota=function(e){return this.request("team/member_space_limits/remove_custom_quota",e,"team","api","rpc")},_.teamMemberSpaceLimitsSetCustomQuota=function(e){return this.request("team/member_space_limits/set_custom_quota",e,"team","api","rpc")},_.teamMembersAddV2=function(e){return this.request("team/members/add_v2",e,"team","api","rpc")},_.teamMembersAdd=function(e){return this.request("team/members/add",e,"team","api","rpc")},_.teamMembersAddJobStatusGetV2=function(e){return this.request("team/members/add/job_status/get_v2",e,"team","api","rpc")},_.teamMembersAddJobStatusGet=function(e){return this.request("team/members/add/job_status/get",e,"team","api","rpc")},_.teamMembersDeleteProfilePhotoV2=function(e){return this.request("team/members/delete_profile_photo_v2",e,"team","api","rpc")},_.teamMembersDeleteProfilePhoto=function(e){return this.request("team/members/delete_profile_photo",e,"team","api","rpc")},_.teamMembersGetAvailableTeamMemberRoles=function(){return this.request("team/members/get_available_team_member_roles",null,"team","api","rpc")},_.teamMembersGetInfoV2=function(e){return this.request("team/members/get_info_v2",e,"team","api","rpc")},_.teamMembersGetInfo=function(e){return this.request("team/members/get_info",e,"team","api","rpc")},_.teamMembersListV2=function(e){return this.request("team/members/list_v2",e,"team","api","rpc")},_.teamMembersList=function(e){return this.request("team/members/list",e,"team","api","rpc")},_.teamMembersListContinueV2=function(e){return this.request("team/members/list/continue_v2",e,"team","api","rpc")},_.teamMembersListContinue=function(e){return this.request("team/members/list/continue",e,"team","api","rpc")},_.teamMembersMoveFormerMemberFiles=function(e){return this.request("team/members/move_former_member_files",e,"team","api","rpc")},_.teamMembersMoveFormerMemberFilesJobStatusCheck=function(e){return this.request("team/members/move_former_member_files/job_status/check",e,"team","api","rpc")},_.teamMembersRecover=function(e){return this.request("team/members/recover",e,"team","api","rpc")},_.teamMembersRemove=function(e){return this.request("team/members/remove",e,"team","api","rpc")},_.teamMembersRemoveJobStatusGet=function(e){return this.request("team/members/remove/job_status/get",e,"team","api","rpc")},_.teamMembersSecondaryEmailsAdd=function(e){return this.request("team/members/secondary_emails/add",e,"team","api","rpc")},_.teamMembersSecondaryEmailsDelete=function(e){return this.request("team/members/secondary_emails/delete",e,"team","api","rpc")},_.teamMembersSecondaryEmailsResendVerificationEmails=function(e){return this.request("team/members/secondary_emails/resend_verification_emails",e,"team","api","rpc")},_.teamMembersSendWelcomeEmail=function(e){return this.request("team/members/send_welcome_email",e,"team","api","rpc")},_.teamMembersSetAdminPermissionsV2=function(e){return this.request("team/members/set_admin_permissions_v2",e,"team","api","rpc")},_.teamMembersSetAdminPermissions=function(e){return this.request("team/members/set_admin_permissions",e,"team","api","rpc")},_.teamMembersSetProfileV2=function(e){return this.request("team/members/set_profile_v2",e,"team","api","rpc")},_.teamMembersSetProfile=function(e){return this.request("team/members/set_profile",e,"team","api","rpc")},_.teamMembersSetProfilePhotoV2=function(e){return this.request("team/members/set_profile_photo_v2",e,"team","api","rpc")},_.teamMembersSetProfilePhoto=function(e){return this.request("team/members/set_profile_photo",e,"team","api","rpc")},_.teamMembersSuspend=function(e){return this.request("team/members/suspend",e,"team","api","rpc")},_.teamMembersUnsuspend=function(e){return this.request("team/members/unsuspend",e,"team","api","rpc")},_.teamNamespacesList=function(e){return this.request("team/namespaces/list",e,"team","api","rpc")},_.teamNamespacesListContinue=function(e){return this.request("team/namespaces/list/continue",e,"team","api","rpc")},_.teamPropertiesTemplateAdd=function(e){return this.request("team/properties/template/add",e,"team","api","rpc")},_.teamPropertiesTemplateGet=function(e){return this.request("team/properties/template/get",e,"team","api","rpc")},_.teamPropertiesTemplateList=function(){return this.request("team/properties/template/list",null,"team","api","rpc")},_.teamPropertiesTemplateUpdate=function(e){return this.request("team/properties/template/update",e,"team","api","rpc")},_.teamReportsGetActivity=function(e){return this.request("team/reports/get_activity",e,"team","api","rpc")},_.teamReportsGetDevices=function(e){return this.request("team/reports/get_devices",e,"team","api","rpc")},_.teamReportsGetMembership=function(e){return this.request("team/reports/get_membership",e,"team","api","rpc")},_.teamReportsGetStorage=function(e){return this.request("team/reports/get_storage",e,"team","api","rpc")},_.teamTeamFolderActivate=function(e){return this.request("team/team_folder/activate",e,"team","api","rpc")},_.teamTeamFolderArchive=function(e){return this.request("team/team_folder/archive",e,"team","api","rpc")},_.teamTeamFolderArchiveCheck=function(e){return this.request("team/team_folder/archive/check",e,"team","api","rpc")},_.teamTeamFolderCreate=function(e){return this.request("team/team_folder/create",e,"team","api","rpc")},_.teamTeamFolderGetInfo=function(e){return this.request("team/team_folder/get_info",e,"team","api","rpc")},_.teamTeamFolderList=function(e){return this.request("team/team_folder/list",e,"team","api","rpc")},_.teamTeamFolderListContinue=function(e){return this.request("team/team_folder/list/continue",e,"team","api","rpc")},_.teamTeamFolderPermanentlyDelete=function(e){return this.request("team/team_folder/permanently_delete",e,"team","api","rpc")},_.teamTeamFolderRename=function(e){return this.request("team/team_folder/rename",e,"team","api","rpc")},_.teamTeamFolderUpdateSyncSettings=function(e){return this.request("team/team_folder/update_sync_settings",e,"team","api","rpc")},_.teamTokenGetAuthenticatedAdmin=function(){return this.request("team/token/get_authenticated_admin",null,"team","api","rpc")},_.teamLogGetEvents=function(e){return this.request("team_log/get_events",e,"team","api","rpc")},_.teamLogGetEventsContinue=function(e){return this.request("team_log/get_events/continue",e,"team","api","rpc")},_.usersFeaturesGetValues=function(e){return this.request("users/features/get_values",e,"user","api","rpc")},_.usersGetAccount=function(e){return this.request("users/get_account",e,"user","api","rpc")},_.usersGetAccountBatch=function(e){return this.request("users/get_account_batch",e,"user","api","rpc")},_.usersGetCurrentAccount=function(){return this.request("users/get_current_account",null,"user","api","rpc")},_.usersGetSpaceUsage=function(){return this.request("users/get_space_usage",null,"user","api","rpc")};var g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:h,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";return t!==h&&void 0!==d[e]&&(e=d[e],r="-"),"https://".concat(e).concat(r).concat(t,"/2/")},b=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;return e!==m&&(e="meta-".concat(e)),"https://".concat(e,"/oauth2/authorize")},v=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:".",r="api";return e!==h&&(r=d[r],t="-"),"https://".concat(r).concat(t).concat(e,"/oauth2/token")};function k(e){return JSON.stringify(e).replace(/[\u007f-\uffff]/g,q)}function y(e){return new Date(Date.now()+1e3*e)}function A(){return"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope||"undefined"==typeof module||"undefined"!=typeof window}function C(){return"undefined"!=typeof window}function S(e){return e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var T,L,w,M=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&n(e,t)}(o,e);var r,s,a=(r=o,s=u(),function(){var e,t=i(r);if(s){var n=i(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return c(this,e)});function o(e,r,s){var i;return t(this,o),(i=a.call(this,"Response failed with a ".concat(e," code"))).name="DropboxResponseError",i.status=e,i.headers=r,i.error=s,i}return o}(o(Error)),P=function e(r,s,i){t(this,e),this.status=r,this.headers=s,this.result=i};function R(e){return e.text().then((function(t){var r;try{r=JSON.parse(t)}catch(e){r=t}throw new M(e.status,e.headers,r)}))}function F(e){return e.ok?e.text().then((function(t){var r;try{r=JSON.parse(t)}catch(e){r=t}return new P(e.status,e.headers,r)})):R(e)}T=C()?window.fetch.bind(window):require("node-fetch"),L=C()?window.crypto||window.msCrypto:require("crypto"),w="undefined"==typeof TextEncoder?require("util").TextEncoder:TextEncoder;var D,G=["legacy","offline","online"],U=["code","token"],x=["none","user","team"],E=function(){function e(r){t(this,e),this.fetch=(r=r||{}).fetch||T,this.accessToken=r.accessToken,this.accessTokenExpiresAt=r.accessTokenExpiresAt,this.refreshToken=r.refreshToken,this.clientId=r.clientId,this.clientSecret=r.clientSecret,this.domain=r.domain,this.domainDelimiter=r.domainDelimiter}return s(e,[{key:"setAccessToken",value:function(e){this.accessToken=e}},{key:"getAccessToken",value:function(){return this.accessToken}},{key:"setClientId",value:function(e){this.clientId=e}},{key:"getClientId",value:function(){return this.clientId}},{key:"setClientSecret",value:function(e){this.clientSecret=e}},{key:"getClientSecret",value:function(){return this.clientSecret}},{key:"getRefreshToken",value:function(){return this.refreshToken}},{key:"setRefreshToken",value:function(e){this.refreshToken=e}},{key:"getAccessTokenExpiresAt",value:function(){return this.accessTokenExpiresAt}},{key:"setAccessTokenExpiresAt",value:function(e){this.accessTokenExpiresAt=e}},{key:"setCodeVerifier",value:function(e){this.codeVerifier=e}},{key:"getCodeVerifier",value:function(){return this.codeVerifier}},{key:"generateCodeChallenge",value:function(){var e,t=this,r=(new w).encode(this.codeVerifier);if(C())return L.subtle.digest("SHA-256",r).then((function(r){var s=btoa(String.fromCharCode.apply(null,new Uint8Array(r)));e=S(s).substr(0,128),t.codeChallenge=e}));var s=L.createHash("sha256").update(r).digest();return e=S(s),this.codeChallenge=e,Promise.resolve()}},{key:"generatePKCECodes",value:function(){var e;if(C()){var t=new Uint8Array(128),r=L.getRandomValues(t);e=S(btoa(r)).substr(0,128)}else{e=S(L.randomBytes(128)).substr(0,128)}return this.codeVerifier=e,this.generateCodeChallenge()}},{key:"getAuthenticationUrl",value:function(e,t){var r,s=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"token",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"none",o=arguments.length>6&&void 0!==arguments[6]&&arguments[6],c=this.getClientId(),p=b(this.domain);if(!c)throw Error("A client id is required. You can set the client id using .setClientId().");if("code"!==i&&!e)throw Error("A redirect uri is required.");if(!U.includes(i))throw Error("Authorization type must be code or token");if(n&&!G.includes(n))throw Error("Token Access Type must be legacy, offline, or online");if(u&&!(u instanceof Array))throw Error("Scope must be an array of strings");if(!x.includes(a))throw Error("includeGrantedScopes must be none, user, or team");return r="code"===i?"".concat(p,"?response_type=code&client_id=").concat(c):"".concat(p,"?response_type=token&client_id=").concat(c),e&&(r+="&redirect_uri=".concat(e)),t&&(r+="&state=".concat(t)),n&&(r+="&token_access_type=".concat(n)),u&&(r+="&scope=".concat(u.join(" "))),"none"!==a&&(r+="&include_granted_scopes=".concat(a)),o?this.generatePKCECodes().then((function(){return r+="&code_challenge_method=S256",r+="&code_challenge=".concat(s.codeChallenge)})):Promise.resolve(r)}},{key:"getAccessTokenFromCode",value:function(e,t){var r=this.getClientId(),s=this.getClientSecret();if(!r)throw Error("A client id is required. You can set the client id using .setClientId().");var i=v(this.domain,this.domainDelimiter);if(i+="?grant_type=authorization_code",i+="&code=".concat(t),i+="&client_id=".concat(r),s)i+="&client_secret=".concat(s);else{if(!this.codeVerifier)throw Error("You must use PKCE when generating the authorization URL to not include a client secret");i+="&code_verifier=".concat(this.codeVerifier)}e&&(i+="&redirect_uri=".concat(e));return this.fetch(i,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then((function(e){return F(e)}))}},{key:"checkAndRefreshAccessToken",value:function(){var e=this.getRefreshToken()&&this.getClientId(),t=!this.getAccessTokenExpiresAt()||new Date(Date.now()+3e5)>=this.getAccessTokenExpiresAt(),r=!this.getAccessToken();return(t||r)&&e?this.refreshAccessToken():Promise.resolve()}},{key:"refreshAccessToken",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,r=v(this.domain,this.domainDelimiter),s=this.getClientId(),i=this.getClientSecret();if(!s)throw Error("A client id is required. You can set the client id using .setClientId().");if(t&&!(t instanceof Array))throw Error("Scope must be an array of strings");var n={"Content-Type":"application/json"};r+="?grant_type=refresh_token&refresh_token=".concat(this.getRefreshToken()),r+="&client_id=".concat(s),i&&(r+="&client_secret=".concat(i)),t&&(r+="&scope=".concat(t.join(" ")));var u={method:"POST"};return u.headers=n,this.fetch(r,u).then((function(e){return F(e)})).then((function(t){e.setAccessToken(t.result.access_token),e.setAccessTokenExpiresAt(y(t.result.expires_in))}))}}]),e}();D="undefined"!=typeof window?window.fetch.bind(window):require("node-fetch");var V="undefined"==typeof btoa?function(e){return Buffer.from(e).toString("base64")}:btoa;e.Dropbox=function(){function e(r){t(this,e),this.auth=(r=r||{}).auth?r.auth:new E(r),this.fetch=r.fetch||D,this.selectUser=r.selectUser,this.selectAdmin=r.selectAdmin,this.pathRoot=r.pathRoot,this.domain=r.domain,this.domainDelimiter=r.domainDelimiter,Object.assign(this,_)}return s(e,[{key:"request",value:function(e,t,r,s,i){if(r.split(",").length>1){var n=r.replace(" ","").split(",");n.includes(l)&&this.auth.getAccessToken()?r=l:n.includes(f)&&this.auth.getAccessToken()?r=f:n.includes(p)&&(r=p)}switch(i){case"rpc":return this.rpcRequest(e,t,r,s);case"download":return this.downloadRequest(e,t,r,s);case"upload":return this.uploadRequest(e,t,r,s);default:throw Error("Invalid request style: ".concat(i))}}},{key:"rpcRequest",value:function(e,t,r,s){var i=this;return this.auth.checkAndRefreshAccessToken().then((function(){var e,s={method:"POST",body:t?JSON.stringify(t):null,headers:{}};switch(t&&(s.headers["Content-Type"]="application/json"),r){case p:if(!i.auth.clientId||!i.auth.clientSecret)throw Error("A client id and secret is required for this function");e=V("".concat(i.auth.clientId,":").concat(i.auth.clientSecret)),s.headers.Authorization="Basic ".concat(e);break;case f:case l:s.headers.Authorization="Bearer ".concat(i.auth.getAccessToken());break;case"noauth":break;default:throw Error("Unhandled auth type: ".concat(r))}return i.setCommonHeaders(s),s})).then((function(t){return i.fetch(g(s,i.domain,i.domainDelimiter)+e,t)})).then((function(e){return F(e)}))}},{key:"downloadRequest",value:function(e,t,r,s){var i=this;return this.auth.checkAndRefreshAccessToken().then((function(){if(r!==l)throw Error("Unexpected auth type: ".concat(r));var e={method:"POST",headers:{Authorization:"Bearer ".concat(i.auth.getAccessToken()),"Dropbox-API-Arg":k(t)}};return i.setCommonHeaders(e),e})).then((function(t){return i.fetch(g(s,i.domain,i.domainDelimiter)+e,t)})).then((function(e){return function(e){return e.ok?new Promise((function(t){A()?e.blob().then((function(e){return t(e)})):e.buffer().then((function(e){return t(e)}))})).then((function(t){var r=JSON.parse(e.headers.get("dropbox-api-result"));return A()?r.fileBlob=t:r.fileBinary=t,new P(e.status,e.headers,r)})):R(e)}(e)}))}},{key:"uploadRequest",value:function(e,t,r,s){var i=this;return this.auth.checkAndRefreshAccessToken().then((function(){if(r!==l)throw Error("Unexpected auth type: ".concat(r));var e=t.contents;delete t.contents;var s={body:e,method:"POST",headers:{Authorization:"Bearer ".concat(i.auth.getAccessToken()),"Content-Type":"application/octet-stream","Dropbox-API-Arg":k(t)}};return i.setCommonHeaders(s),s})).then((function(t){return i.fetch(g(s,i.domain,i.domainDelimiter)+e,t)})).then((function(e){return F(e)}))}},{key:"setCommonHeaders",value:function(e){this.selectUser&&(e.headers["Dropbox-API-Select-User"]=this.selectUser),this.selectAdmin&&(e.headers["Dropbox-API-Select-Admin"]=this.selectAdmin),this.pathRoot&&(e.headers["Dropbox-API-Path-Root"]=this.pathRoot)}}]),e}(),e.DropboxAuth=E,e.DropboxResponse=P,e.DropboxResponseError=M,Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/src/libs/flatqueue.js b/src/libs/flatqueue.js new file mode 100644 index 00000000..271aaf32 --- /dev/null +++ b/src/libs/flatqueue.js @@ -0,0 +1,57 @@ +!(function (t, s) { + "object" == typeof exports && "undefined" != typeof module + ? (module.exports = s()) + : "function" == typeof define && define.amd + ? define(s) + : ((t = "undefined" != typeof globalThis ? globalThis : t || self).FlatQueue = s()); +})(this, function () { + "use strict"; + return class { + constructor() { + (this.ids = []), (this.values = []), (this.length = 0); + } + clear() { + this.length = 0; + } + push(t, s) { + let i = this.length++; + for (; i > 0; ) { + const t = (i - 1) >> 1, + e = this.values[t]; + if (s >= e) break; + (this.ids[i] = this.ids[t]), (this.values[i] = e), (i = t); + } + (this.ids[i] = t), (this.values[i] = s); + } + pop() { + if (0 === this.length) return; + const t = this.ids[0]; + if ((this.length--, this.length > 0)) { + const t = (this.ids[0] = this.ids[this.length]), + s = (this.values[0] = this.values[this.length]), + i = this.length >> 1; + let e = 0; + for (; e < i; ) { + let t = 1 + (e << 1); + const i = t + 1; + let h = this.ids[t], + l = this.values[t]; + const n = this.values[i]; + if ((i < this.length && n < l && ((t = i), (h = this.ids[i]), (l = n)), l >= s)) break; + (this.ids[e] = h), (this.values[e] = l), (e = t); + } + (this.ids[e] = t), (this.values[e] = s); + } + return t; + } + peek() { + if (0 !== this.length) return this.ids[0]; + } + peekValue() { + if (0 !== this.length) return this.values[0]; + } + shrink() { + this.ids.length = this.values.length = this.length; + } + }; +}); diff --git a/src/libs/indexedDB.js b/src/libs/indexedDB.js new file mode 100644 index 00000000..37e89c13 --- /dev/null +++ b/src/libs/indexedDB.js @@ -0,0 +1,65 @@ +let db; + +const DATABASE_NAME = "d2"; +const STORE_NAME = "s"; + +const openDatabase = () => { + return new Promise((resolve, reject) => { + if (db) resolve(); + + if (!window.indexedDB) return reject("IndexedDB is not supported"); + const request = window.indexedDB.open(DATABASE_NAME); + + request.onsuccess = event => { + db = event.target.result; + resolve(); + }; + + request.onerror = event => { + console.error("IndexedDB request error"); + reject(); + }; + + request.onupgradeneeded = event => { + db = event.target.result; + const objectStore = db.createObjectStore(STORE_NAME, {keyPath: "key"}); + objectStore.transaction.oncomplete = () => { + db = event.target.result; + }; + }; + }); +}; + +const ldb = { + get: key => { + return new Promise((resolve, reject) => { + openDatabase().then(() => { + const hasStore = Array.from(db.objectStoreNames).includes(STORE_NAME); + if (!hasStore) return reject("IndexedDB: no store found"); + + const transaction = db.transaction(STORE_NAME, "readonly"); + const objectStore = transaction.objectStore(STORE_NAME); + const getRequest = objectStore.get(key); + + getRequest.onsuccess = event => { + const result = event.target.result?.value || null; + resolve(result); + }; + }); + }); + }, + + set: (keyName, value) => { + return new Promise(resolve => { + openDatabase().then(() => { + const transaction = db.transaction(STORE_NAME, "readwrite"); + const objectStore = transaction.objectStore([STORE_NAME]); + const putRequest = objectStore.put({key: keyName, value}); + + putRequest.onsuccess = () => { + resolve(); + }; + }); + }); + } +}; diff --git a/src/libs/jquery-3.1.1.min.js b/src/libs/jquery-3.1.1.min.js new file mode 100644 index 00000000..4c5be4c0 --- /dev/null +++ b/src/libs/jquery-3.1.1.min.js @@ -0,0 +1,4 @@ +/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R), +a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)), +void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("