├── src ├── vite-env.d.ts ├── layouts │ ├── index.module.scss │ └── index.tsx ├── assets │ ├── images │ │ └── gradient.png │ └── react.svg ├── THREE │ ├── models │ │ └── examples │ │ │ ├── cube.fbx │ │ │ ├── ball.mtl │ │ │ ├── cone.mtl │ │ │ └── cone.obj │ ├── atmosphere.ts │ └── index.ts ├── App.tsx ├── declare │ └── THREE │ │ ├── addons.ts │ │ └── index.ts ├── main.tsx ├── constant │ └── THREE │ │ └── BuiltinShaderAttributeName.ts ├── utils │ ├── VerticesDuplicateRemove.ts │ └── GetFlatGeometry.ts ├── pages │ └── IndexPage │ │ ├── index.module.scss │ │ └── index.tsx ├── App.scss └── index.css ├── Img └── 1.jpg ├── tsconfig.node.json ├── .gitignore ├── index.html ├── vite.config.ts ├── tsconfig.json ├── .eslintrc.cjs ├── LICENSE ├── package.json ├── public └── vite.svg └── README.md /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | import 'vite/client' 2 | -------------------------------------------------------------------------------- /src/layouts/index.module.scss: -------------------------------------------------------------------------------- 1 | .layout { 2 | width: 100%; 3 | height: 100%; 4 | } -------------------------------------------------------------------------------- /Img/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QingXia-Ela/Up2017-Particles-Effect-Template/HEAD/Img/1.jpg -------------------------------------------------------------------------------- /src/assets/images/gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QingXia-Ela/Up2017-Particles-Effect-Template/HEAD/src/assets/images/gradient.png -------------------------------------------------------------------------------- /src/THREE/models/examples/cube.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QingXia-Ela/Up2017-Particles-Effect-Template/HEAD/src/THREE/models/examples/cube.fbx -------------------------------------------------------------------------------- /src/THREE/models/examples/ball.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL File: 'None' 2 | # Material Count: 1 3 | 4 | newmtl None 5 | Ns 500 6 | Ka 0.8 0.8 0.8 7 | Kd 0.8 0.8 0.8 8 | Ks 0.8 0.8 0.8 9 | d 1 10 | illum 2 11 | -------------------------------------------------------------------------------- /src/THREE/models/examples/cone.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL File: 'None' 2 | # Material Count: 1 3 | 4 | newmtl None 5 | Ns 500 6 | Ka 0.8 0.8 0.8 7 | Kd 0.8 0.8 0.8 8 | Ks 0.8 0.8 0.8 9 | d 1 10 | illum 2 11 | -------------------------------------------------------------------------------- /src/App.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import './App.scss' 3 | import Layout from './layouts' 4 | 5 | function App() { 6 | return ( 7 | 8 | ) 9 | } 10 | 11 | export default App 12 | -------------------------------------------------------------------------------- /src/declare/THREE/addons.ts: -------------------------------------------------------------------------------- 1 | export abstract class addonsBasic { 2 | public Geometry?: THREE.Object3D 3 | /** 渲染更新函数 */ 4 | public update?: Function 5 | /** 模型改变触发函数 */ 6 | public ChangeModel?: (...args: any) => void 7 | } 8 | -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App' 4 | import './index.css' 5 | 6 | ReactDOM.createRoot(document.getElementById('root') as Element).render( 7 | 8 | 9 | 10 | ) 11 | -------------------------------------------------------------------------------- /src/layouts/index.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import Styles from './index.module.scss' 3 | import IndexPage from '@/pages/IndexPage' 4 | 5 | function Layout() { 6 | return ( 7 |
8 | 9 |
10 | ) 11 | } 12 | 13 | export default Layout 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + React + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/constant/THREE/BuiltinShaderAttributeName.ts: -------------------------------------------------------------------------------- 1 | export default [ 2 | 'position', 3 | 'normal', 4 | 'uv', 5 | 'color', 6 | 'skinIndex', 7 | 'skinWeight', 8 | 'instanceMatri', 9 | 'morphTarget0', 10 | 'morphTarget1', 11 | 'morphTarget2', 12 | 'morphTarget3', 13 | 'morphTarget4', 14 | 'morphTarget5', 15 | 'morphTarget6', 16 | 'morphTarget7', 17 | 'morphNormal0', 18 | 'morphNormal1', 19 | 'morphNormal2', 20 | 'morphNormal3' 21 | ] 22 | -------------------------------------------------------------------------------- /src/utils/VerticesDuplicateRemove.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * 数组粒子去重方法 3 | * @param arr 待去重的数组 4 | * @returns {Float32Array} 5 | */ 6 | export default function VerticesDuplicateRemove(arr: Float32Array) { 7 | const set = new Set(); let t = [] 8 | for (let i = 0; i < arr.length; i++) { 9 | t.push(arr[i]) 10 | if (i % 3 === 2) { 11 | set.add(t.join(',')) 12 | t = [] 13 | } 14 | } 15 | const res: number[] = [] 16 | set.forEach((val) => { 17 | res.push(...val.split(',').map((val) => Number(val))) 18 | }) 19 | 20 | return new Float32Array(res) 21 | } 22 | -------------------------------------------------------------------------------- /src/pages/IndexPage/index.module.scss: -------------------------------------------------------------------------------- 1 | .index_page { 2 | width: 100%; 3 | height: 100%; 4 | } 5 | 6 | .canvas_wrapper { 7 | position: fixed; 8 | top: 0; 9 | left: 0; 10 | right: 0; 11 | bottom: 0; 12 | } 13 | 14 | .list, 15 | .function_list { 16 | position: fixed; 17 | right: .6rem; 18 | top: 50%; 19 | width: fit-content; 20 | transform: translateY(-50%); 21 | 22 | li { 23 | width: fit-content; 24 | color: #fff; 25 | font-size: .4rem; 26 | cursor: pointer; 27 | opacity: .8; 28 | 29 | &:hover { 30 | opacity: 1; 31 | } 32 | } 33 | } 34 | 35 | .list { 36 | right: .6rem; 37 | 38 | } 39 | 40 | .function_list { 41 | left: .6rem; 42 | } -------------------------------------------------------------------------------- /src/App.scss: -------------------------------------------------------------------------------- 1 | #root { 2 | width: 100%; 3 | height: 100%; 4 | background-color: #0a0d1b; 5 | } 6 | 7 | .logo { 8 | height: 6em; 9 | padding: 1.5em; 10 | will-change: filter; 11 | } 12 | 13 | .logo:hover { 14 | filter: drop-shadow(0 0 2em #646cffaa); 15 | } 16 | 17 | .logo.react:hover { 18 | filter: drop-shadow(0 0 2em #61dafbaa); 19 | } 20 | 21 | @keyframes logo-spin { 22 | from { 23 | transform: rotate(0deg); 24 | } 25 | 26 | to { 27 | transform: rotate(360deg); 28 | } 29 | } 30 | 31 | @media (prefers-reduced-motion: no-preference) { 32 | a:nth-of-type(2) .logo { 33 | animation: logo-spin infinite 20s linear; 34 | } 35 | } 36 | 37 | .card { 38 | padding: 2em; 39 | } 40 | 41 | .read-the-docs { 42 | color: #888; 43 | } -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | import { splitVendorChunkPlugin } from 'vite' 4 | import viteCompression from 'vite-plugin-compression'; 5 | import path from 'path' 6 | 7 | // https://vitejs.dev/config/ 8 | export default defineConfig({ 9 | base: '/up2017-particle-effect/', 10 | server: { 11 | host: '0.0.0.0', 12 | port: 5173 13 | }, 14 | plugins: [ 15 | react(), 16 | splitVendorChunkPlugin(), 17 | viteCompression() 18 | ], 19 | resolve: { 20 | alias: { 21 | "@": path.resolve(__dirname, './src/'), 22 | "@components/*": path.resolve(__dirname, './src/'), 23 | "@constant/*": path.resolve(__dirname, './src/constant/'), 24 | "@declare/*": path.resolve(__dirname, './src/declare/'), 25 | "@THREE/*": path.resolve(__dirname, './src/THREE/'), 26 | } 27 | } 28 | }) 29 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 6 | "allowJs": false, 7 | "skipLibCheck": true, 8 | "esModuleInterop": false, 9 | "allowSyntheticDefaultImports": true, 10 | "strict": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "module": "ESNext", 13 | "moduleResolution": "Node", 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "noEmit": true, 17 | "jsx": "react-jsx", 18 | "baseUrl": ".", 19 | "paths": { 20 | "@/*":["src/*"], 21 | "@components/*": ["src/components/*"], 22 | "@constant/*": ["src/constant/*"], 23 | "@declare/*": ["src/declare/*"], 24 | "@THREE/*": ["src/THREE/*"] 25 | } 26 | }, 27 | "include": ["src"], 28 | "references": [{ "path": "./tsconfig.node.json" }] 29 | } 30 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | browser: true, 4 | es2021: true 5 | }, 6 | extends: [ 7 | 'plugin:react/recommended', 8 | 'standard-with-typescript' 9 | ], 10 | overrides: [ 11 | ], 12 | parserOptions: { 13 | parser: 'babel-eslint', 14 | ecmaVersion: 'latest', 15 | sourceType: 'module', 16 | project: './tsconfig.json', 17 | ecmaFeatures: { 18 | jsx: true, 19 | tsx: true 20 | } 21 | }, 22 | plugins: [ 23 | 'react' 24 | ], 25 | rules: { 26 | '@typescript-eslint/explicit-function-return-type': 'off', 27 | 'space-before-function-paren': 'off', 28 | '@typescript-eslint/space-before-function-paren': 'off', 29 | '@typescript-eslint/no-unused-vars': 'warn', 30 | '@typescript-eslint/no-non-null-assertion': 'off', 31 | '@typescript-eslint/prefer-optional-chain': 'off', 32 | 'no-useless-call': 'off' 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022-present QingXia-Ela 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "up2017-particles-effect-template", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc && vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "@tweenjs/tween.js": "^18.6.4", 13 | "lodash": "^4.17.21", 14 | "react": "^18.2.0", 15 | "react-dom": "^18.2.0", 16 | "three": "^0.145.0" 17 | }, 18 | "devDependencies": { 19 | "@types/lodash": "^4.14.186", 20 | "@types/node": "^18.11.0", 21 | "@types/react": "^18.0.17", 22 | "@types/react-dom": "^18.0.6", 23 | "@types/three": "^0.144.0", 24 | "@typescript-eslint/eslint-plugin": "^5.40.0", 25 | "@vitejs/plugin-react": "^2.1.0", 26 | "eslint": "^8.25.0", 27 | "eslint-config-standard-with-typescript": "^23.0.0", 28 | "eslint-plugin-import": "^2.26.0", 29 | "eslint-plugin-n": "^15.3.0", 30 | "eslint-plugin-promise": "^6.1.0", 31 | "eslint-plugin-react": "^7.31.10", 32 | "node-sass": "^7.0.3", 33 | "prettier": "2.7.1", 34 | "sass": "^1.55.0", 35 | "sass-loader": "^10.3.1", 36 | "typescript": "^4.8.4", 37 | "vite": "^3.2.7", 38 | "vite-plugin-compression": "^0.5.1" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/utils/GetFlatGeometry.ts: -------------------------------------------------------------------------------- 1 | import * as THREE from 'three' 2 | import g from '@/assets/images/gradient.png' 3 | 4 | export default function GetFlatGeometry() { 5 | const AMOUNTX = 50 6 | const AMOUNTY = 50 7 | const SEPARATION = 100 8 | const numParticles = AMOUNTX * AMOUNTY 9 | const vertices = new Float32Array(numParticles * 3) 10 | const scales = new Float32Array(numParticles) 11 | 12 | let i = 0 13 | const TextureLoader = new THREE.TextureLoader() 14 | const material = new THREE.PointsMaterial({ 15 | // 粒子大小 16 | size: 5, 17 | // false:粒子尺寸相同 ;true:取决于摄像头远近 18 | sizeAttenuation: true, 19 | transparent: true, 20 | opacity: 1, 21 | blending: THREE.AdditiveBlending, 22 | depthWrite: false, 23 | map: TextureLoader.load(g) 24 | }) 25 | 26 | for (let ix = 0; ix < AMOUNTX; ix++) { 27 | for (let iy = 0; iy < AMOUNTY; iy++) { 28 | vertices[i] = ix * SEPARATION - ((AMOUNTX * SEPARATION) / 2) // x 29 | vertices[i + 1] = -300 // y 30 | vertices[i + 2] = iy * SEPARATION - ((AMOUNTY * SEPARATION) / 2) // z 31 | i += 3 32 | } 33 | } 34 | 35 | const geometry = new THREE.BufferGeometry() 36 | geometry.setAttribute( 37 | 'position', 38 | new THREE.Float32BufferAttribute(vertices, 3) 39 | ) 40 | geometry.setAttribute('scale', new THREE.BufferAttribute(scales, 1)) 41 | const points = new THREE.Points(geometry, material) 42 | const wave = points.geometry 43 | // console.log(wave); 44 | wave.attributes.position.needsUpdate = true 45 | // wave.translate(0, -500, 0) 46 | // wave.rotateY(-30) 47 | return wave 48 | } 49 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | :root { 2 | font-family: Inter, Avenir, Helvetica, Arial, sans-serif; 3 | line-height: 24px; 4 | font-weight: 400; 5 | 6 | color-scheme: light dark; 7 | color: rgba(255, 255, 255, 0.87); 8 | background-color: #242424; 9 | 10 | font-synthesis: none; 11 | text-rendering: optimizeLegibility; 12 | -webkit-font-smoothing: antialiased; 13 | -moz-osx-font-smoothing: grayscale; 14 | -webkit-text-size-adjust: 100%; 15 | } 16 | 17 | * { 18 | margin: 0; 19 | padding: 0; 20 | box-sizing: border-box; 21 | } 22 | 23 | a { 24 | font-weight: 500; 25 | color: #646cff; 26 | text-decoration: inherit; 27 | } 28 | 29 | a:hover { 30 | color: #535bf2; 31 | } 32 | 33 | html { 34 | font-size: 50px; 35 | width: 100%; 36 | height: 100%; 37 | overflow: hidden; 38 | } 39 | 40 | body { 41 | width: 100%; 42 | height: 100%; 43 | overflow: hidden; 44 | } 45 | 46 | h1 { 47 | font-size: 3.2em; 48 | line-height: 1.1; 49 | } 50 | 51 | button { 52 | border-radius: 8px; 53 | border: 1px solid transparent; 54 | padding: 0.6em 1.2em; 55 | font-size: 1em; 56 | font-weight: 500; 57 | font-family: inherit; 58 | background-color: #1a1a1a; 59 | cursor: pointer; 60 | transition: border-color 0.25s; 61 | } 62 | 63 | button:hover { 64 | border-color: #646cff; 65 | } 66 | 67 | button:focus, 68 | button:focus-visible { 69 | outline: 4px auto -webkit-focus-ring-color; 70 | } 71 | 72 | @media (prefers-color-scheme: light) { 73 | :root { 74 | color: #213547; 75 | background-color: #ffffff; 76 | } 77 | 78 | a:hover { 79 | color: #747bff; 80 | } 81 | 82 | button { 83 | background-color: #f9f9f9; 84 | } 85 | } -------------------------------------------------------------------------------- /src/THREE/atmosphere.ts: -------------------------------------------------------------------------------- 1 | import * as THREE from 'three' 2 | import g from '@/assets/images/gradient.png' 3 | import { addonsBasic } from '../declare/THREE/addons' 4 | 5 | export interface AtmosphereParticleProps { 6 | longestDistance: number 7 | particleSum: number 8 | renderUpdate?: (Point: THREE.Points) => void 9 | callback?: (Point: THREE.Points) => void 10 | onChangeModel?: (Point: THREE.Points) => void 11 | } 12 | 13 | const loader = new THREE.TextureLoader() 14 | loader.crossOrigin = '' 15 | 16 | const n = new THREE.PointsMaterial({ 17 | size: 7, 18 | map: loader.load(g), 19 | blending: THREE.AdditiveBlending, 20 | depthWrite: false, 21 | transparent: true 22 | }) 23 | 24 | function getRangeRandom(e: number, t: number) { 25 | return Math.random() * (t - e) + e 26 | } 27 | 28 | class AtmosphereParticle extends addonsBasic { 29 | private readonly longestDistance: number 30 | private readonly particleSum: number 31 | private readonly renderUpdate?: (Point: THREE.Points) => void 32 | private readonly onChangeModel?: (Point: THREE.Points) => void 33 | private readonly callback?: (Point: THREE.Points) => void 34 | public Geometry?: THREE.Points 35 | 36 | constructor(options: AtmosphereParticleProps) { 37 | super() 38 | const { longestDistance, particleSum, renderUpdate, onChangeModel } = options 39 | this.longestDistance = longestDistance 40 | this.particleSum = particleSum 41 | this.renderUpdate = renderUpdate 42 | this.onChangeModel = onChangeModel 43 | 44 | const vertices = [] 45 | for (let i = 0; i < this.particleSum; i++) { 46 | const x = getRangeRandom(-1 * longestDistance, longestDistance) 47 | const y = getRangeRandom(-1 * longestDistance, longestDistance) 48 | const z = getRangeRandom(-1 * longestDistance, longestDistance) 49 | vertices.push(x, y, z) 50 | } 51 | const geometry = new THREE.BufferGeometry() 52 | geometry.setAttribute('position', new THREE.Float32BufferAttribute(vertices, 3)) 53 | this.Geometry = new THREE.Points(geometry, n) 54 | options.callback?.call(this, this.Geometry) 55 | } 56 | 57 | update = () => { 58 | this.renderUpdate?.call(this, this.Geometry!) 59 | } 60 | 61 | ChangeModel = () => { 62 | this.onChangeModel?.call(this, this.Geometry!) 63 | } 64 | } 65 | 66 | export default AtmosphereParticle 67 | -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/declare/THREE/index.ts: -------------------------------------------------------------------------------- 1 | import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader' 2 | import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader' 3 | import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader' 4 | import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader' 5 | import { MMDLoader } from 'three/examples/jsm/loaders/MMDLoader' 6 | import { PCDLoader } from 'three/examples/jsm/loaders/PCDLoader' 7 | import { PDBLoader } from 'three/examples/jsm/loaders/PDBLoader' 8 | import { PRWMLoader } from 'three/examples/jsm/loaders/PRWMLoader' 9 | import { SVGLoader } from 'three/examples/jsm/loaders/SVGLoader' 10 | 11 | import type { Tween as TweenProps } from '@tweenjs/tween.js' 12 | 13 | export type ALL_LOADER = OBJLoader | FBXLoader | DRACOLoader | GLTFLoader | MMDLoader | PCDLoader | PDBLoader | PRWMLoader | SVGLoader 14 | 15 | export interface TWEEN_POINT { 16 | x: number 17 | y: number 18 | z: number 19 | /** tween 实例 */ 20 | tweenctx?: TweenProps 21 | /** 粒子是否处于模型切换中的状态 */ 22 | isPlaying?: boolean 23 | } 24 | 25 | export interface CustomLoader { 26 | /** 加载器实例 */ 27 | loaderInstance: ALL_LOADER 28 | /** 29 | * 完成加载的回调函数 30 | * 31 | * 接受的参数是你指定加载器加载后的结果,比如 obj 和 fbx 就是 `Group` 实例,gltf 就是 `GLTF` 实例 32 | * 33 | * 你需要返回一个 `BufferGeometry` 对象,他记录着你想展示的模型的所有顶点信息 34 | */ 35 | load: (...args: any) => THREE.BufferGeometry 36 | } 37 | 38 | export interface ParticleModelProps { 39 | /** 模型名字,请确保是唯一名字 */ 40 | name: string 41 | /** 42 | * 自定义 Geometry,传入后则会取消从指定路径加载的功能 43 | * 44 | * **通过这种方式设置的几何体不会通过内置的粒子去重方法进行处理**,可以引入 `src/utils` 下的去重方法自行处理 45 | */ 46 | geometry?: THREE.BufferGeometry 47 | /** 48 | * 模型路径,相对当前文件路径引入,如果传入了自定义 geometry 可以省略 49 | * 50 | * 可以查看这篇指南引入:https://vitejs.cn/vite3-cn/guide/assets.html#new-url-url-import-meta-url 51 | */ 52 | path?: string 53 | /** 54 | * 自定义加载器 55 | * @example 56 | * loader: { 57 | * loaderInstance: new OBJLoader(), 58 | * // OBJLoader 读取出的模型是 group 59 | * load: (group) => { 60 | * let finalVertices = new Float32Array([]), finalGeometry = new THREE.BufferGeometry() 61 | * // 对 group 提取其坐标点 62 | * for (const i of group.children) { 63 | * const arr = i.geometry.attributes.position.array 64 | * finalVertices = new Float32Array([...finalVertices, ...arr]) 65 | * } 66 | * // 设置属性 67 | * finalGeometry.setAttribute('position', new THREE.BufferAttribute(finalVertices, 3)) 68 | * // 返回结果 69 | * return finalGeometry 70 | * } 71 | * } 72 | */ 73 | loader?: CustomLoader 74 | /** 75 | * 是否需要进行粒子去重 76 | * 77 | * 通过加载器加载的几何体对于每一个面都进行了一次粒子的单独计算,这样会造成大量粒子的位置重叠,增加不必要的性能开销与影响体验,因此该功能会默认开启 78 | * 79 | * 本质上是对 `BufferGeometry` 内的数组进行粒子位置去重,如果自定义模型展示不正常可以考虑关闭该功能 80 | * @default true 81 | */ 82 | NeedRemoveDuplicateParticle?: boolean 83 | /** 84 | * 模型加载完成后的回调 85 | * 86 | * @param {THREE.BufferGeometry} Geometry 加载完成后的几何体 87 | * */ 88 | onLoadComplete?: (Geometry: THREE.BufferGeometry) => void 89 | /** 90 | * 开始进入该模型时触发的回调 91 | * @param {THREE.Points} PointGeometry 表演粒子实例 92 | * */ 93 | onEnterStart?: (PointGeometry: THREE.Points) => void 94 | /** 95 | * 模型切换完成时触发的回调 96 | * 97 | * **注意!**只有在模型彻底切换完成后才会触发,中途切换则不会触发该钩子 98 | * 99 | * @param {THREE.Points} PointGeometry 表演粒子实例 100 | */ 101 | onEnterEnd?: (PointGeometry: THREE.Points) => void 102 | /** 103 | * 动画帧更新时的回调 104 | * 105 | * 执行区间:模型开始入场时 -> 切换到其他模型时的第一帧 106 | * 107 | * @param PerfromPoint 表演粒子实例,即渲染到屏幕上的实例 108 | * @param TweenList tween 实例列表 109 | * @param Geometry 原几何体 110 | * @returns 一个 `boolean` 值或不返回任何内容,如果返回 `true` 则会帮你自动更新表演粒子的几何体上的所有 `attribute` 属性,详情见: 111 | * https://threejs.org/docs/index.html#api/zh/core/BufferAttribute.needsUpdate 112 | */ 113 | onAnimationFrameUpdate?: (PerfromPoint: THREE.Points, TweenList: TWEEN_POINT[], Geometry: THREE.BufferGeometry) => unknown 114 | } 115 | -------------------------------------------------------------------------------- /src/pages/IndexPage/index.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react' 2 | import Styles from './index.module.scss' 3 | import ParticleSystem from '@/THREE' 4 | import { useEffect, useRef } from 'react' 5 | import AtmosphereParticle from '@/THREE/atmosphere' 6 | import { ParticleModelProps } from '@/declare/THREE' 7 | import Tween from '@tweenjs/tween.js' 8 | import GetFlatGeometry from '@/utils/GetFlatGeometry' 9 | import { BufferGeometry, Float32BufferAttribute } from 'three' 10 | import VerticesDuplicateRemove from '@/utils/VerticesDuplicateRemove' 11 | import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader' 12 | 13 | function IndexPage() { 14 | const wrapper = useRef(null) 15 | let MainParticle: ParticleSystem | null = null 16 | 17 | const TurnBasicNum = { firefly: 0.002 } 18 | const al = 1500 19 | 20 | const tween2 = new Tween.Tween(TurnBasicNum).easing(Tween.Easing.Exponential.In) 21 | const tween1 = new Tween.Tween(TurnBasicNum).easing(Tween.Easing.Exponential.In) 22 | 23 | const Atomsphere1 = new AtmosphereParticle({ 24 | longestDistance: al, 25 | particleSum: 500, 26 | renderUpdate: (Point) => { 27 | Point.rotation.x -= TurnBasicNum.firefly 28 | }, 29 | callback: (Point) => { 30 | Point.position.z = -1 * al 31 | }, 32 | onChangeModel: () => { 33 | tween2.stop() 34 | tween1.stop().to({ firefly: 0.04 }, 1500).chain(tween2) 35 | tween2.to({ firefly: 0.002 }, 1500) 36 | tween1.start() 37 | } 38 | }) 39 | const Atomsphere2 = new AtmosphereParticle({ 40 | longestDistance: al, 41 | particleSum: 500, 42 | renderUpdate: (Point) => { 43 | Point.rotation.y += TurnBasicNum.firefly 44 | }, 45 | callback: (Point) => { 46 | Point.position.y = -0.2 * al 47 | Point.position.z = -1 * al 48 | } 49 | }) 50 | const Atomsphere3 = new AtmosphereParticle({ 51 | longestDistance: al, 52 | particleSum: 500, 53 | renderUpdate: (Point) => { 54 | Point.rotation.z += TurnBasicNum.firefly / 2 55 | }, 56 | callback: (Point) => { 57 | Point.position.z = -1.2 * al 58 | } 59 | }) 60 | 61 | const scaleNum = 600 62 | let Q = 0 63 | const Models: ParticleModelProps[] = [ 64 | { 65 | name: 'cube', 66 | path: new URL('../../THREE/models/examples/cube.fbx', import.meta.url).href, 67 | onLoadComplete(Geometry) { 68 | const s = 400 69 | Geometry.scale(s, s, s) 70 | }, 71 | loader: { 72 | loaderInstance: new FBXLoader(), 73 | load(group) { 74 | const g = new BufferGeometry() 75 | console.log(group) 76 | let arr = new Float32Array([]) 77 | for (const i of group.children) { 78 | arr = new Float32Array([...arr, ...i.geometry.attributes.position.array]) 79 | } 80 | g.setAttribute('position', new Float32BufferAttribute(VerticesDuplicateRemove(arr), 3)) 81 | return g 82 | } 83 | } 84 | }, 85 | { 86 | name: 'ball', 87 | path: new URL('../../THREE/models/examples/ball.obj', import.meta.url).href, 88 | onLoadComplete(Geometry) { 89 | Geometry.scale(scaleNum, scaleNum, scaleNum) 90 | Geometry.translate(-600, 0, -100) 91 | }, 92 | onEnterStart(PointGeometry) { 93 | console.log('ball enter start') 94 | }, 95 | onEnterEnd(PointGeometry) { 96 | console.log('ball enter end') 97 | } 98 | }, 99 | { 100 | name: 'wave', 101 | geometry: GetFlatGeometry(), 102 | onAnimationFrameUpdate(PerfromPoint, TweenList, Geometry) { 103 | const p = PerfromPoint.geometry.getAttribute('position') 104 | TweenList.forEach((val, i) => { 105 | if (val.isPlaying === false) { 106 | p.setY(i, Math.sin((i + 1 + Q) * 0.3) * 50 + Math.sin((i + Q) * 0.5) * 50 - 500) 107 | } 108 | }) 109 | Q += 0.08 110 | return true 111 | } 112 | }, 113 | { 114 | name: 'cone', 115 | path: new URL('../../THREE/models/examples/cone.obj', import.meta.url).href, 116 | onLoadComplete(Geometry) { 117 | Geometry.scale(scaleNum, scaleNum, scaleNum) 118 | Geometry.translate(600, 100, -100) 119 | } 120 | } 121 | ] 122 | // @ts-expect-error 123 | window.changeModel = (name: string) => { 124 | if (MainParticle != null) { 125 | MainParticle.ChangeModel(name) 126 | } 127 | } 128 | 129 | useEffect(() => { 130 | if ((MainParticle == null) && wrapper.current != null) { 131 | MainParticle = new ParticleSystem({ 132 | CanvasWrapper: wrapper.current, 133 | Models, 134 | addons: [Atomsphere1, Atomsphere2, Atomsphere3], 135 | onModelsFinishedLoad: (point) => { 136 | MainParticle?.ListenMouseMove() 137 | } 138 | }) 139 | } 140 | }) 141 | 142 | return ( 143 |
144 |
145 |
    146 | { 147 | Models.map((val) => { 148 | return ( 149 |
  • MainParticle?.ChangeModel(val.name)}>{val.name}
  • 150 | ) 151 | }) 152 | } 153 |
154 |
    155 |
  • MainParticle?.ListenMouseMove()}>ListenMouseMove
  • 156 |
  • MainParticle?.StopListenMouseMove()}>StopListenMouseMove
  • 157 |
  • MainParticle?.AlignCameraCenter()}>AlignCameraCenter
  • 158 |
  • MainParticle?.AlignCameraCenter(true)}>AlignCameraCenter(immediately)
  • 159 |
160 |
161 | ) 162 | } 163 | 164 | export default IndexPage 165 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Up2017-Particles-Effect-Template 2 | 3 | ## 前言 4 | 5 | 这是一个模仿 [UP2017腾讯互动娱乐年度发布会 - 腾讯互动娱乐](http://up.qq.com/act/a20170301pre/index.html#) 的页面模板 6 | 7 | 使用 React + Typescript + ThreeJs 制作 8 | 9 | 10 | ## 项目解析 + 实现过程 11 | 12 | https://blog.shiinafan.top/posts/%E5%9F%BA%E4%BA%8EThreeJs%E5%AE%9E%E7%8E%B0%E7%9A%84%E7%BD%91%E9%A1%B53D%E7%B2%92%E5%AD%90%E6%95%88%E6%9E%9C%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/ 13 | 14 | ## 使用本项目 15 | 16 | ### 克隆到本地 17 | 18 | ```bash 19 | git clone https://github.com/QingXia-Ela/Up2017-Particles-Effect-Template.git 20 | cd Up2017-Particles-Effect-Template 21 | npm install 22 | ``` 23 | 24 | ### 启动项目 25 | 26 | ``` 27 | npm run dev 28 | ``` 29 | 30 | ### 基本体验 31 | 32 | 启动 dev 后就可以看到如下基本界面: 33 | 34 | ![](Img/1.jpg) 35 | 36 | 左侧部分是场景部分的 api,右侧是可变化的模型选择 37 | 38 | 核心使用部分位于 `src/pages/IndexPage/index.tsx` 下 39 | 40 | ## 项目核心部分 41 | 42 | 位于 `src/THREE` 下的 `index.ts` 文件是本项目的核心库,配套的部分声明文件在 `src/declare/THREE/index.ts` 下,常量文件在 `src/constant/THREE` 下 43 | 44 | ### 使用核心 45 | 46 | 模型列表 47 | 48 | ```ts 49 | import { ParticleModelProps } from '@/declare/THREE' 50 | 51 | const Models: ParticleModelProps[] = [ 52 | // Your Code... 53 | ] 54 | 55 | export default Models 56 | ``` 57 | 58 | 组件内使用 59 | 60 | ```tsx 61 | import ParticleSystem from '@/THREE' 62 | 63 | let hasInit = false 64 | function IndexPage() { 65 | const wrapper = useRef(null) 66 | 67 | useEffect(() => { 68 | if (!hasInit) { 69 | hasInit = true 70 | let MainParticle = new ParticleSystem({ 71 | CanvasWrapper: wrapper.current, 72 | Models, 73 | onModelsFinishedLoad: (point) => { 74 | MainParticle?.ListenMouseMove() 75 | } 76 | }) 77 | } 78 | }) 79 | 80 | return ( 81 |
82 |
83 |
84 | ) 85 | } 86 | ``` 87 | 88 | ### 核心粒子实例 api 89 | 90 | #### 举例使用 91 | 92 | ```ts 93 | const m = new ParticleSystem({ 94 | // ... 95 | }) 96 | 97 | // 改变模型 98 | m.ChangeModel('111', 2000) 99 | ``` 100 | 101 | #### constructor 102 | 103 | 接受一个对象,对象内参数如下: 104 | 105 | | 参数名 | 类型 | 备注 | 106 | | -------------------- | -------------------- | -------------------------------------------------------- | 107 | | CanvasWrapper | HTMLDivElement | 需要将 `canvas` 插入到内部的目标元素 | 108 | | Models | ParticleModelProps[] | 模型列表 | 109 | | addons | | (可选) addons,他应该是一个继承了 `addonsBasic` 类的对象 | 110 | | AnimateDuration | number | (可选) 粒子动画时间,默认 1500 | 111 | | onModelsFinishedLoad | Function | (可选) 所有模型加载完成的回调 | 112 | | LoadingManager | THREE.LoadingManager | (可选) 加载管理器,会被放入默认加载器进行处理 | 113 | 114 | 详细内容可以查看源码 115 | 116 | #### ChangeModel 117 | 118 | 改变当前展示的模型 119 | 120 | | 参数名 | 类型 | 备注 | 121 | | ------ | ------ | ------------------------------------------------------ | 122 | | name | string | 要切换的模型名字,如果指定名字的模型不存在则会抛出警告 | 123 | | time | number | (可选) 动画执行时长,实际表演时长为 `time * 2` | 124 | 125 | `time * 2` 的具体原因可以查看:https://tgideas.qq.com/gicp/news/475/6515254.html?from=list **切换动画** 部分 126 | 127 | #### ListenMouseMove 128 | 129 | 开始监听鼠标移动的钩子,不接受参数,调用后场景会随着鼠标移动产生一个重力感的微小移动 130 | 131 | #### StopListenMouseMove 132 | 133 | 停止监听鼠标移动的钩子,不接受参数 134 | 135 | #### AlignCameraCenter 136 | 137 | 使场景归中,默认归中时是带有重力感的归中方式 138 | 139 | | 参数名 | 类型 | 备注 | 140 | | ----------- | ------- | ------------------------------------------------------------ | 141 | | immediately | boolean | 立即归中,默认为 `false`,启用后场景将立刻归中而不会带着富有重力感的移动模式 | 142 | 143 | ### ParticleModelProps 的配置使用 144 | 145 | `ParticleModelProps ` 对象参数如下: 146 | 147 | | 参数名 | 类型 | 备注 | 148 | | --------------------------- | ----------------------------- | -------------------------------------------- | 149 | | name | string | 模型名字 | 150 | | geometry | (二选一) THREE.BufferGeometry | 自定义几何体,需要拥有 `position` attributes | 151 | | path | (二选一) string | 模型路径,内部使用 `OBJLoader` 进行加载 | 152 | | loader | (可选) CustomLoader | 自定义加载器,内容需自行前往 ts 声明文件查看 | 153 | | NeedRemoveDuplicateParticle | (可选) boolean | 是否需要进行粒子去重,默认为 `true` | 154 | | onLoadComplete | (可选) Function | 模型加载完成后的回调 | 155 | | onEnterStart | (可选) Function | 开始进入该模型时触发的回调 | 156 | | onEnterEnd | (可选) Function | 模型切换完成时触发的回调 | 157 | | onAnimationFrameUpdate | (可选) Function | 动画帧更新时的回调 | 158 | 159 | 详细内容可以前往 `src/declare/THREE/index.ts` 查看 160 | 161 | 其中 `geometry` 和 `path` 是二选一必填项。 162 | 163 | ### 关于 addons 164 | 165 | 这个制作的目标是解决氛围粒子的问题,由于本人 `ts`使用不熟练所以暂时用 `any[]` 进行替代,它原本应该是一个继承了 `addonsBasic` 的子类对象。 166 | 167 | #### 使用方法 168 | 169 | 此处使用的例子是本模板自行编写的氛围例子 170 | 171 | ```ts 172 | import { addonsBasic } from '../declare/THREE/addons' 173 | class AtmosphereParticle extends addonsBasic { 174 | constructor() { 175 | super() 176 | // ... 177 | } 178 | 179 | update() { 180 | 181 | } 182 | 183 | ChangeModel() { 184 | 185 | } 186 | } 187 | 188 | const a = new AtmosphereParticle({ 189 | // ... 190 | }) 191 | 192 | // 使用 193 | const m = new ParticleSystem({ 194 | // ... 195 | addons: [a] 196 | }) 197 | ``` 198 | 199 | 在 `addonsBasic` 下有两个函数钩子比较重要: 200 | 201 | 1. `update()` 当每一帧更新的时候调用的钩子 202 | 2. `ChangeModel()` 模型改变时触发的钩子 203 | 204 | ## License 205 | [MIT](https://github.com/QingXia-Ela/Up2017-Particles-Effect-Template/blob/main/LICENSE) License 206 | -------------------------------------------------------------------------------- /src/THREE/index.ts: -------------------------------------------------------------------------------- 1 | import * as THREE from 'three' 2 | import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js' 3 | import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls' 4 | import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer' 5 | import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass' 6 | import { BloomPass } from 'three/examples/jsm/postprocessing/BloomPass' 7 | import { FilmPass } from 'three/examples/jsm/postprocessing/FilmPass' 8 | import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass' 9 | import { FocusShader } from 'three/examples/jsm/shaders/FocusShader' 10 | 11 | import Tween from '@tweenjs/tween.js' 12 | import type { Group as TweenGroup } from '@tweenjs/tween.js' 13 | 14 | import Stats from 'three/examples/jsm/libs/stats.module.js' 15 | import { throttle } from 'lodash' 16 | 17 | import g from '@/assets/images/gradient.png' 18 | import { ParticleModelProps, TWEEN_POINT } from '@/declare/THREE' 19 | import VerticesDuplicateRemove from '@/utils/VerticesDuplicateRemove.js' 20 | import BuiltinShaderAttributeName from '@/constant/THREE/BuiltinShaderAttributeName' 21 | import { addonsBasic } from '@/declare/THREE/addons' 22 | 23 | function getRangeRandom(e: number, t: number) { 24 | return Math.random() * (t - e) + e 25 | } 26 | 27 | type THREE_POINT = THREE.Points 28 | interface addonsItem extends addonsBasic { } 29 | interface ParticleSystemProps { 30 | CanvasWrapper: HTMLDivElement 31 | Models: ParticleModelProps[] 32 | /** addons,他应该是一个继承了 `addonsBasic` 类的对象,一般用来做氛围粒子 */ 33 | addons?: addonsItem[] 34 | /** 粒子动画时间,默认 1500 */ 35 | AnimateDuration?: number 36 | /** 所有模型加载完成的回调 */ 37 | onModelsFinishedLoad?: (preformPoint: THREE_POINT, scene: THREE.Scene) => void 38 | /** 独立加载器,会被送入默认的加载器进行进度处理 */ 39 | LoadingManager?: THREE.LoadingManager 40 | } 41 | 42 | class ParticleSystem { 43 | private readonly CanvasWrapper: HTMLDivElement 44 | private readonly modelList: Map 45 | private _LOAD_COUNT_: number 46 | private readonly ModelPointer: number 47 | private maxParticlesCount: number 48 | private WIDTH: number 49 | private HEIGHT: number 50 | private readonly orbitControls?: OrbitControls 51 | private stats?: Stats 52 | /** 主要表演场景对象 */ 53 | public scene?: THREE.Scene 54 | /** 主要相机对象 */ 55 | public camera?: THREE.PerspectiveCamera 56 | /** 渲染器 */ 57 | public renderer?: THREE.WebGLRenderer 58 | /** 效果器 */ 59 | public composer?: EffectComposer 60 | /** 加载进度管理器 */ 61 | public manager?: THREE.LoadingManager 62 | /** 粒子默认材质 */ 63 | public PointMaterial?: THREE.PointsMaterial 64 | /** 表演粒子,即用于呈现模型的粒子载体对象 */ 65 | public AnimateEffectParticle?: THREE.Points 66 | 67 | private readonly AnimateDuration: number 68 | private mouseV: number 69 | private mouseK: number 70 | private hadListenMouseMove?: boolean 71 | private MainParticleGroup?: TweenGroup 72 | private readonly defaultLoader: OBJLoader 73 | /** 表演粒子 tween 实例数组 */ 74 | public readonly ParticleAnimeMap: TWEEN_POINT[] 75 | /** 模型数组 */ 76 | public Models: Map 77 | /** 额外插件的数组 */ 78 | public addons?: any[] 79 | // 函数相关 80 | /** 当所有模型加载完成时进行调用 */ 81 | private readonly onModelsFinishedLoad?: (preformPoint: THREE_POINT, scene: THREE.Scene) => void 82 | 83 | /** 对象内置的更新函数,内部使用 `requestAnimationFrame`,每渲染新的一帧时进行调用 */ 84 | public onRendering?: (t: number) => void 85 | public CurrentUseModelName?: string 86 | public LastUseModelName?: string 87 | 88 | // 新编写的物体添加核心 89 | constructor(options: ParticleSystemProps) { 90 | const { AnimateDuration, onModelsFinishedLoad, LoadingManager } = options 91 | this.CanvasWrapper = options.CanvasWrapper 92 | this.addons = options.addons != null ? options.addons : [] 93 | this.Models = new Map() 94 | for (const i of options.Models) { 95 | this.Models.set(i.name, i) 96 | } 97 | this.AnimateDuration = typeof AnimateDuration === 'number' ? AnimateDuration : 1500 98 | this.onModelsFinishedLoad = onModelsFinishedLoad 99 | this.manager = LoadingManager 100 | this.defaultLoader = new OBJLoader(this.manager) 101 | /** 粒子Map */ 102 | this.ParticleAnimeMap = [] 103 | /* 宽高 */ 104 | this.HEIGHT = window.innerHeight 105 | this.WIDTH = window.innerWidth 106 | /** 模型列表 */ 107 | this.modelList = new Map() 108 | /** 已加载的模型数量统计 */ 109 | this._LOAD_COUNT_ = 0 110 | /** 模型指针 */ 111 | this.ModelPointer = 0 112 | /** 载入模型中粒子的最大数量 */ 113 | this.maxParticlesCount = 0 114 | // 创建场景 115 | this.createScene() 116 | // 性能监控插件 117 | this.initStats() 118 | // 载入模型 119 | this._addModels() 120 | // 效果器 121 | this.createEffect() 122 | // 轨道控制插件(鼠标拖拽视角、缩放等) 123 | this.orbitControls = new OrbitControls(this.camera!, this.renderer!.domElement) 124 | this.mouseK = 0 125 | this.mouseV = 0 126 | // 循环更新渲染场景 127 | this.update(0) 128 | } 129 | 130 | private createScene() { 131 | // 创建场景 132 | this.scene = new THREE.Scene() 133 | // 在场景中添加雾的效果,参数分别代表‘雾的颜色’、‘开始雾化的视线距离’、刚好雾化至看不见的视线距离’ 134 | this.scene.fog = new THREE.FogExp2(328972, 5e-4) 135 | // 创建相机 136 | const fieldOfView = 100 137 | const aspectRatio = this.WIDTH / this.HEIGHT 138 | const nearPlane = 1 139 | const farPlane = 5e4 140 | 141 | this.camera = new THREE.PerspectiveCamera(fieldOfView, aspectRatio, nearPlane, farPlane) 142 | 143 | // 设置相机的位置 144 | this.camera.position.set(0, 0, 1e3) 145 | this.camera.lookAt(new THREE.Vector3(0, 0, 0)) 146 | 147 | // 坐标轴辅助器 148 | const axesHelper = new THREE.AxesHelper(500) 149 | this.scene.add(axesHelper) 150 | // addons 添加 151 | if (this.addons != null) { 152 | this.addons.forEach((val) => { 153 | this.scene?.add(val.Geometry) 154 | }) 155 | } 156 | // 创建渲染器 157 | this.renderer = new THREE.WebGLRenderer({ 158 | // 在 css 中设置背景色透明显示渐变色 159 | alpha: true 160 | // 开启抗锯齿 161 | // antialias: true, 162 | }) 163 | // 自动清理,解决 bloomPass 效果器冲突 164 | this.renderer.autoClear = false 165 | // 渲染背景颜色同雾化的颜色 166 | this.renderer.setClearColor(this.scene.fog.color) 167 | // 定义渲染器的尺寸;在这里它会填满整个屏幕 168 | this.renderer.setSize(this.WIDTH, this.HEIGHT) 169 | 170 | // 打开渲染器的阴影地图 171 | this.renderer.shadowMap.enabled = true 172 | // this.renderer.shadowMapSoft = true; 173 | this.renderer.shadowMap.type = THREE.PCFSoftShadowMap 174 | // 在 HTML 创建的容器中添加渲染器的 DOM 元素 175 | this.CanvasWrapper.appendChild(this.renderer.domElement) 176 | // 监听屏幕,缩放屏幕更新相机和渲染器的尺寸 177 | window.addEventListener('resize', this.handleWindowResize, false) 178 | } 179 | 180 | // 窗口大小变动时调用 181 | private readonly handleWindowResize = () => { 182 | // 更新渲染器的高度和宽度以及相机的纵横比 183 | this.HEIGHT = window.innerHeight 184 | this.WIDTH = window.innerWidth 185 | this.renderer?.setSize(this.WIDTH, this.HEIGHT) 186 | this.composer?.reset() 187 | if (this.camera != null) { 188 | this.camera.aspect = this.WIDTH / this.HEIGHT 189 | this.camera.updateProjectionMatrix() 190 | } 191 | } 192 | 193 | // 性能监控 194 | private initStats() { 195 | this.stats = Stats() 196 | if (this.stats != null) { 197 | // 将性能监控屏区显示在左上角 198 | this.stats.domElement.style.position = 'absolute' 199 | this.stats.domElement.style.bottom = '0px' 200 | this.stats.domElement.style.top = '0px' 201 | this.stats.domElement.style.zIndex = '100' 202 | this.CanvasWrapper.appendChild(this.stats.domElement) 203 | } 204 | } 205 | 206 | // 效果器 207 | private createEffect() { 208 | this.composer = new EffectComposer(this.renderer!) 209 | const renderPass = new RenderPass(this.scene!, this.camera!) 210 | const bloomPass = new BloomPass(0.75) 211 | const filmPass = new FilmPass(0.5, 0.5, 1500, 0) 212 | const shaderPass = new ShaderPass(FocusShader) 213 | shaderPass.uniforms.screenWidth.value = window.innerWidth 214 | shaderPass.uniforms.screenHeight.value = window.innerHeight 215 | shaderPass.uniforms.sampleDistance.value = 0.4 216 | shaderPass.renderToScreen = true 217 | 218 | this.composer.addPass(renderPass) 219 | this.composer.addPass(bloomPass) 220 | this.composer.addPass(filmPass) 221 | this.composer.addPass(shaderPass) 222 | } 223 | 224 | // 添加模型 225 | private _addModels() { 226 | const TextureLoader = new THREE.TextureLoader() 227 | TextureLoader.crossOrigin = '' 228 | this.PointMaterial = new THREE.PointsMaterial({ 229 | // 粒子大小 230 | size: 5, 231 | // false:粒子尺寸相同 ;true:取决于摄像头远近 232 | sizeAttenuation: true, 233 | transparent: true, 234 | opacity: 1, 235 | blending: THREE.AdditiveBlending, 236 | depthWrite: false, 237 | map: TextureLoader.load(g) 238 | }) 239 | // 读取预置列表 240 | this.Models.forEach((i) => { 241 | let finalGeometry: THREE.BufferGeometry 242 | let finalVertices = new Float32Array([]) 243 | 244 | const finishLoad = () => { 245 | // 材质选择 246 | this.modelList.set(i.name, finalGeometry) 247 | // 回调 248 | i.onLoadComplete?.call(this, finalGeometry) 249 | this._LOAD_COUNT_++ 250 | // 所有模型加载完后触发播放事件 251 | if (this._LOAD_COUNT_ === this.Models.size) this._finishLoadModal() 252 | } 253 | 254 | if (typeof i.path === 'string') { 255 | if (i.loader != null) { 256 | const { loaderInstance, load } = i.loader 257 | loaderInstance.load(i.path, (args) => { 258 | finalGeometry = load(args) 259 | finishLoad() 260 | }) 261 | } else { 262 | this.defaultLoader.load(i.path, (group) => { 263 | for (const j of group.children) { 264 | // @ts-expect-error 不知道是什么原因导致 ts 判断出错 265 | const arr = j.geometry.attributes.position.array 266 | finalVertices = new Float32Array([...finalVertices, ...arr]) 267 | } 268 | if (!(i.NeedRemoveDuplicateParticle === false)) finalVertices = VerticesDuplicateRemove(finalVertices) 269 | 270 | finalGeometry = new THREE.BufferGeometry() 271 | // 粒子去重 272 | finalGeometry.setAttribute('position', new THREE.BufferAttribute(finalVertices, 3)) 273 | i.geometry = finalGeometry 274 | finishLoad() 275 | }) 276 | } 277 | } else if (i.geometry instanceof THREE.BufferGeometry) { 278 | finalGeometry = i.geometry 279 | finishLoad() 280 | } 281 | }) 282 | } 283 | 284 | // 完成模型加载 285 | private _finishLoadModal() { 286 | // 获得最大的粒子数量 287 | let maxParticlesCount = 0 288 | 289 | this.modelList.forEach((val) => { 290 | maxParticlesCount = Math.max(maxParticlesCount, val.attributes.position.count) 291 | }) 292 | 293 | this.maxParticlesCount = maxParticlesCount 294 | // 基于最大点构建一个动画载体 295 | const vertices = [] 296 | const randMaxLength = 1500 297 | this.MainParticleGroup = new Tween.Group() 298 | for (let i = 0; i < maxParticlesCount; i++) { 299 | const x = getRangeRandom(-1 * randMaxLength, randMaxLength) 300 | const y = getRangeRandom(-1 * randMaxLength, randMaxLength) 301 | const z = getRangeRandom(-1 * randMaxLength, randMaxLength) 302 | vertices.push(x, y, z) 303 | 304 | const p: TWEEN_POINT = { 305 | x, 306 | y, 307 | z, 308 | isPlaying: true 309 | } 310 | p.tweenctx = new Tween.Tween(p, this.MainParticleGroup) 311 | .easing(Tween.Easing.Exponential.In) 312 | // 处理内部私有变量 313 | .onComplete((o) => { 314 | // @ts-expect-error 315 | o.tweenctx!._valuesStart.x = o.x 316 | // @ts-expect-error 317 | o.tweenctx!._valuesStart.y = o.y 318 | // @ts-expect-error 319 | o.tweenctx!._valuesStart.z = o.z 320 | o.isPlaying = false 321 | }) 322 | .onStart((o) => { 323 | // @ts-expect-error 324 | o.tweenctx!._valuesStart.x = o.x 325 | // @ts-expect-error 326 | o.tweenctx!._valuesStart.y = o.y 327 | // @ts-expect-error 328 | o.tweenctx!._valuesStart.z = o.z 329 | o.isPlaying = true 330 | }) 331 | this.ParticleAnimeMap[i] = p 332 | } 333 | const AnimateEffectGeometry = new THREE.BufferGeometry() 334 | AnimateEffectGeometry.setAttribute('position', new THREE.Float32BufferAttribute(vertices, 3, false)) 335 | this.AnimateEffectParticle = new THREE.Points(AnimateEffectGeometry, this.PointMaterial) 336 | this.scene?.add(this.AnimateEffectParticle) 337 | 338 | // 开始监听鼠标移动事件 339 | // 钩子 340 | this.onModelsFinishedLoad?.call(this, this.AnimateEffectParticle, this.scene!) 341 | } 342 | 343 | /** 344 | * 修改模型 345 | * @param {string} name 模型名字 346 | * @param {number?} time 动画时间长度,默认 `1500ms` 347 | */ 348 | ChangeModel(name: string, time: number = this.AnimateDuration) { 349 | const item = this.modelList.get(name) 350 | 351 | if (item == null) { 352 | console.warn('未找到指定名字的模型,改变操作已终止!传入的名字:' + name.toString()) 353 | return 354 | } 355 | const itemHook = this.Models.get(name) 356 | if (this.CurrentUseModelName !== undefined) this.LastUseModelName = this.CurrentUseModelName 357 | this.CurrentUseModelName = name 358 | /** 模型切换开始的钩子 */ 359 | itemHook!.onEnterStart?.call(this, this.AnimateEffectParticle!) 360 | const targetModel = item.getAttribute('position') 361 | // !使用断言 362 | const sourceModel = this.AnimateEffectParticle!.geometry.getAttribute('position') 363 | const TimerId = setTimeout(() => { 364 | itemHook!.onEnterEnd?.call(this, this.AnimateEffectParticle!) 365 | }, time * 2) 366 | // 停止当前所有动画 367 | for (let i = 0; i < this.maxParticlesCount; i++) { 368 | const p = this.ParticleAnimeMap[i] 369 | this.ParticleAnimeMap[i]!.isPlaying = true 370 | const cur = i % targetModel.count 371 | // 位置同步,解决 onAnimationFrameUpdate 回调更新时位置错误的问题 372 | p.x = sourceModel.getX(i) 373 | p.y = sourceModel.getY(i) 374 | p.z = sourceModel.getZ(i) 375 | p.tweenctx!.stop() 376 | .to( 377 | { 378 | x: targetModel.array[cur * 3], 379 | y: targetModel.array[cur * 3 + 1], 380 | z: targetModel.array[cur * 3 + 2] 381 | }, 382 | time 383 | ) 384 | .delay(time * Math.random()) 385 | .onUpdate((o) => { 386 | sourceModel.setXYZ(i, o.x, o.y, o.z) 387 | sourceModel.needsUpdate = true 388 | }) 389 | .onStop((o) => { 390 | clearTimeout(TimerId) 391 | }) 392 | .start() 393 | } 394 | // 触发 addons 的钩子 395 | this.addons?.forEach((val) => { 396 | val.ChangeModel?.call(this) 397 | }) 398 | } 399 | 400 | /** 401 | * 开始监听鼠标移动的钩子 402 | * 403 | * 一般在入场动画结束后调用 404 | */ 405 | ListenMouseMove() { 406 | if (this.hadListenMouseMove !== true) { 407 | window.addEventListener('mousemove', this.rotateScene) 408 | this.hadListenMouseMove = true 409 | } 410 | } 411 | 412 | /** 413 | * 取消监听鼠标移动的钩子 414 | */ 415 | StopListenMouseMove() { 416 | if (this.hadListenMouseMove === true) { 417 | window.removeEventListener('mousemove', this.rotateScene) 418 | this.hadListenMouseMove = false 419 | } 420 | } 421 | 422 | /** 423 | * 场景归中到水平位置 424 | * 425 | * @param immediately 立即归中 426 | */ 427 | AlignCameraCenter(immediately = false) { 428 | if (immediately && this.scene != null) { 429 | this.scene.rotation.x = 0 430 | this.scene.rotation.y = 0 431 | this.mouseV = 0 432 | this.mouseK = 0 433 | return 434 | } 435 | const e = new MouseEvent('click', { 436 | clientX: this.WIDTH / 2, 437 | clientY: this.HEIGHT / 2 438 | }) 439 | this.rotateScene(e) 440 | } 441 | 442 | /** 443 | * 数组粒子去重方法 444 | * @param arr 待去重的数组 445 | * @returns {Float32Array} 446 | */ 447 | VerticesDuplicateRemove(arr: Float32Array) { 448 | const set = new Set(); let t = [] 449 | for (let i = 0; i < arr.length; i++) { 450 | t.push(arr[i]) 451 | if (i % 3 === 2) { 452 | set.add(t.join(',')) 453 | t = [] 454 | } 455 | } 456 | const res: number[] = [] 457 | set.forEach((val) => { 458 | res.push(...val.split(',').map((val) => Number(val))) 459 | }) 460 | return new Float32Array(res) 461 | } 462 | 463 | // 监听鼠标移动旋转场景 464 | private readonly rotateScene = throttle((e: MouseEvent) => { 465 | this.mouseV = 3e-4 * (e.clientX - this.WIDTH / 2) 466 | this.mouseK = 1e-4 * (e.clientY - this.HEIGHT / 2) 467 | }, 100) 468 | 469 | // 更新场景旋转 470 | private _updateRotation() { 471 | if (this.scene != null) { 472 | this.scene.rotation.y += (this.mouseV - this.scene.rotation.y) / 50 473 | this.scene.rotation.x += (this.mouseK - this.scene.rotation.x) / 50 474 | } 475 | } 476 | 477 | // 循环更新渲染 478 | private update(t: number) { 479 | // 动画插件 480 | Tween.update() 481 | // 更新自己的动画组 482 | this.MainParticleGroup?.update() 483 | // 外置的渲染函数 484 | this.onRendering?.call(this, t) 485 | // 性能监测插件 486 | this.stats?.update() 487 | // 场景旋转检测 488 | this._updateRotation() 489 | // 模型 update 钩子更新 490 | this.Models.forEach((val) => { 491 | if (val.name === this.CurrentUseModelName && val.onAnimationFrameUpdate != null) { 492 | if (val.onAnimationFrameUpdate(this.AnimateEffectParticle!, this.ParticleAnimeMap, val.geometry!) === true) { 493 | for (const i of BuiltinShaderAttributeName) { 494 | const p = this.AnimateEffectParticle?.geometry?.getAttribute(i) 495 | if (p != null) { 496 | p.needsUpdate = true 497 | } 498 | } 499 | } 500 | } 501 | }) 502 | // addons 执行更新 503 | this.addons?.forEach((val) => { 504 | val.update() 505 | }) 506 | // 渲染器执行渲染 507 | // this.renderer.render(this.scene, this.camera); 508 | // 效果器执行渲染,如果不需要效果器请使用上方的渲染模式 509 | this.composer?.render() 510 | // 循环调用 511 | requestAnimationFrame((t) => { 512 | this.update(t) 513 | }) 514 | } 515 | } 516 | 517 | export default ParticleSystem 518 | -------------------------------------------------------------------------------- /src/THREE/models/examples/cone.obj: -------------------------------------------------------------------------------- 1 | # Blender v3.2.2 OBJ File: '' 2 | # www.blender.org 3 | mtllib cone.mtl 4 | o 锥体 5 | v 0.000000 -1.000000 -1.000000 6 | v 0.195090 -1.000000 -0.980785 7 | v 0.382683 -1.000000 -0.923880 8 | v 0.555570 -1.000000 -0.831470 9 | v 0.707107 -1.000000 -0.707107 10 | v 0.831470 -1.000000 -0.555570 11 | v 0.923880 -1.000000 -0.382683 12 | v 0.980785 -1.000000 -0.195090 13 | v 1.000000 -1.000000 0.000000 14 | v 0.980785 -1.000000 0.195090 15 | v 0.923880 -1.000000 0.382683 16 | v 0.831470 -1.000000 0.555570 17 | v 0.707107 -1.000000 0.707107 18 | v 0.555570 -1.000000 0.831470 19 | v 0.382683 -1.000000 0.923880 20 | v 0.195090 -1.000000 0.980785 21 | v -0.000000 -1.000000 1.000000 22 | v -0.195090 -1.000000 0.980785 23 | v -0.382683 -1.000000 0.923880 24 | v -0.555570 -1.000000 0.831470 25 | v -0.707107 -1.000000 0.707107 26 | v -0.831469 -1.000000 0.555570 27 | v -0.923880 -1.000000 0.382684 28 | v -0.980785 -1.000000 0.195090 29 | v -1.000000 -1.000000 -0.000000 30 | v -0.980785 -1.000000 -0.195090 31 | v -0.923879 -1.000000 -0.382684 32 | v -0.831470 -1.000000 -0.555570 33 | v -0.707107 -1.000000 -0.707107 34 | v -0.555570 -1.000000 -0.831470 35 | v -0.382683 -1.000000 -0.923880 36 | v -0.195090 -1.000000 -0.980785 37 | v 0.000000 1.000000 0.000000 38 | v 0.032515 -1.000000 -0.996798 39 | v 0.065030 -1.000000 -0.993595 40 | v 0.097545 -1.000000 -0.990393 41 | v 0.130060 -1.000000 -0.987190 42 | v 0.162575 -1.000000 -0.983988 43 | v 0.000000 -0.666667 -0.833333 44 | v 0.000000 -0.333333 -0.666667 45 | v 0.000000 0.000000 -0.500000 46 | v 0.000000 0.333333 -0.333333 47 | v 0.000000 0.666667 -0.166667 48 | v 0.032515 0.666667 -0.163464 49 | v 0.065030 0.333333 -0.326928 50 | v 0.097545 -0.000000 -0.490393 51 | v 0.130060 -0.333333 -0.653857 52 | v 0.162575 -0.666667 -0.817321 53 | v 0.226356 -1.000000 -0.971301 54 | v 0.257621 -1.000000 -0.961817 55 | v 0.288887 -1.000000 -0.952332 56 | v 0.320152 -1.000000 -0.942848 57 | v 0.351418 -1.000000 -0.933364 58 | v 0.063781 0.666667 -0.153980 59 | v 0.127561 0.333333 -0.307960 60 | v 0.191342 -0.000000 -0.461940 61 | v 0.255122 -0.333333 -0.615920 62 | v 0.318903 -0.666667 -0.769900 63 | v 0.411498 -1.000000 -0.908478 64 | v 0.440312 -1.000000 -0.893076 65 | v 0.469127 -1.000000 -0.877675 66 | v 0.497941 -1.000000 -0.862273 67 | v 0.526756 -1.000000 -0.846871 68 | v 0.092595 0.666667 -0.138578 69 | v 0.185190 0.333333 -0.277157 70 | v 0.277785 -0.000000 -0.415735 71 | v 0.370380 -0.333333 -0.554313 72 | v 0.462975 -0.666667 -0.692891 73 | v 0.580826 -1.000000 -0.810742 74 | v 0.606082 -1.000000 -0.790015 75 | v 0.631339 -1.000000 -0.769288 76 | v 0.656595 -1.000000 -0.748561 77 | v 0.681851 -1.000000 -0.727834 78 | v 0.117851 0.666667 -0.117851 79 | v 0.235702 0.333333 -0.235702 80 | v 0.353553 -0.000000 -0.353553 81 | v 0.471405 -0.333333 -0.471405 82 | v 0.589256 -0.666667 -0.589256 83 | v 0.727834 -1.000000 -0.681851 84 | v 0.748561 -1.000000 -0.656595 85 | v 0.769288 -1.000000 -0.631338 86 | v 0.790015 -1.000000 -0.606082 87 | v 0.810742 -1.000000 -0.580826 88 | v 0.138578 0.666667 -0.092595 89 | v 0.277157 0.333333 -0.185190 90 | v 0.415735 -0.000000 -0.277785 91 | v 0.554313 -0.333333 -0.370380 92 | v 0.692891 -0.666667 -0.462975 93 | v 0.846871 -1.000000 -0.526756 94 | v 0.862273 -1.000000 -0.497941 95 | v 0.877675 -1.000000 -0.469127 96 | v 0.893076 -1.000000 -0.440312 97 | v 0.908478 -1.000000 -0.411498 98 | v 0.153980 0.666667 -0.063781 99 | v 0.307960 0.333333 -0.127561 100 | v 0.461940 -0.000000 -0.191342 101 | v 0.615920 -0.333333 -0.255122 102 | v 0.769900 -0.666667 -0.318903 103 | v 0.933364 -1.000000 -0.351418 104 | v 0.942848 -1.000000 -0.320152 105 | v 0.952332 -1.000000 -0.288887 106 | v 0.961817 -1.000000 -0.257621 107 | v 0.971301 -1.000000 -0.226356 108 | v 0.163464 0.666667 -0.032515 109 | v 0.326928 0.333333 -0.065030 110 | v 0.490393 -0.000000 -0.097545 111 | v 0.653857 -0.333333 -0.130060 112 | v 0.817321 -0.666667 -0.162575 113 | v 0.983988 -1.000000 -0.162575 114 | v 0.987190 -1.000000 -0.130060 115 | v 0.990393 -1.000000 -0.097545 116 | v 0.993595 -1.000000 -0.065030 117 | v 0.996798 -1.000000 -0.032515 118 | v 0.166667 0.666667 0.000000 119 | v 0.333333 0.333333 0.000000 120 | v 0.500000 -0.000000 0.000000 121 | v 0.666667 -0.333333 0.000000 122 | v 0.833333 -0.666667 0.000000 123 | v 0.996798 -1.000000 0.032515 124 | v 0.993595 -1.000000 0.065030 125 | v 0.990393 -1.000000 0.097545 126 | v 0.987190 -1.000000 0.130060 127 | v 0.983988 -1.000000 0.162575 128 | v 0.163464 0.666667 0.032515 129 | v 0.326928 0.333333 0.065030 130 | v 0.490393 -0.000000 0.097545 131 | v 0.653857 -0.333333 0.130060 132 | v 0.817321 -0.666667 0.162575 133 | v 0.971301 -1.000000 0.226356 134 | v 0.961817 -1.000000 0.257621 135 | v 0.952332 -1.000000 0.288887 136 | v 0.942848 -1.000000 0.320152 137 | v 0.933364 -1.000000 0.351418 138 | v 0.153980 0.666667 0.063781 139 | v 0.307960 0.333333 0.127561 140 | v 0.461940 -0.000000 0.191342 141 | v 0.615920 -0.333333 0.255122 142 | v 0.769900 -0.666667 0.318903 143 | v 0.908478 -1.000000 0.411498 144 | v 0.893076 -1.000000 0.440312 145 | v 0.877675 -1.000000 0.469127 146 | v 0.862273 -1.000000 0.497941 147 | v 0.846871 -1.000000 0.526756 148 | v 0.138578 0.666667 0.092595 149 | v 0.277157 0.333333 0.185190 150 | v 0.415735 -0.000000 0.277785 151 | v 0.554313 -0.333333 0.370380 152 | v 0.692891 -0.666667 0.462975 153 | v 0.810742 -1.000000 0.580826 154 | v 0.790015 -1.000000 0.606082 155 | v 0.769288 -1.000000 0.631338 156 | v 0.748561 -1.000000 0.656595 157 | v 0.727834 -1.000000 0.681851 158 | v 0.117851 0.666667 0.117851 159 | v 0.235702 0.333333 0.235702 160 | v 0.353553 -0.000000 0.353553 161 | v 0.471405 -0.333333 0.471405 162 | v 0.589256 -0.666667 0.589256 163 | v 0.681851 -1.000000 0.727834 164 | v 0.656595 -1.000000 0.748561 165 | v 0.631338 -1.000000 0.769288 166 | v 0.606082 -1.000000 0.790015 167 | v 0.580826 -1.000000 0.810742 168 | v 0.092595 0.666667 0.138578 169 | v 0.185190 0.333333 0.277157 170 | v 0.277785 -0.000000 0.415735 171 | v 0.370380 -0.333333 0.554313 172 | v 0.462975 -0.666667 0.692891 173 | v 0.526756 -1.000000 0.846871 174 | v 0.497941 -1.000000 0.862273 175 | v 0.469127 -1.000000 0.877675 176 | v 0.440312 -1.000000 0.893076 177 | v 0.411498 -1.000000 0.908478 178 | v 0.063781 0.666667 0.153980 179 | v 0.127561 0.333333 0.307960 180 | v 0.191342 -0.000000 0.461940 181 | v 0.255122 -0.333333 0.615920 182 | v 0.318903 -0.666667 0.769900 183 | v 0.351418 -1.000000 0.933364 184 | v 0.320152 -1.000000 0.942848 185 | v 0.288887 -1.000000 0.952332 186 | v 0.257621 -1.000000 0.961817 187 | v 0.226356 -1.000000 0.971301 188 | v 0.032515 0.666667 0.163464 189 | v 0.065030 0.333333 0.326928 190 | v 0.097545 -0.000000 0.490393 191 | v 0.130060 -0.333333 0.653857 192 | v 0.162575 -0.666667 0.817321 193 | v 0.162575 -1.000000 0.983988 194 | v 0.130060 -1.000000 0.987190 195 | v 0.097545 -1.000000 0.990393 196 | v 0.065030 -1.000000 0.993595 197 | v 0.032515 -1.000000 0.996798 198 | v -0.000000 0.666667 0.166667 199 | v -0.000000 0.333333 0.333333 200 | v -0.000000 -0.000000 0.500000 201 | v -0.000000 -0.333333 0.666667 202 | v -0.000000 -0.666667 0.833333 203 | v -0.032515 -1.000000 0.996798 204 | v -0.065030 -1.000000 0.993595 205 | v -0.097545 -1.000000 0.990393 206 | v -0.130060 -1.000000 0.987190 207 | v -0.162575 -1.000000 0.983988 208 | v -0.032515 0.666667 0.163464 209 | v -0.065030 0.333333 0.326928 210 | v -0.097545 -0.000000 0.490393 211 | v -0.130060 -0.333333 0.653857 212 | v -0.162575 -0.666667 0.817321 213 | v -0.226356 -1.000000 0.971301 214 | v -0.257621 -1.000000 0.961817 215 | v -0.288887 -1.000000 0.952332 216 | v -0.320152 -1.000000 0.942848 217 | v -0.351418 -1.000000 0.933364 218 | v -0.063781 0.666667 0.153980 219 | v -0.127561 0.333333 0.307960 220 | v -0.191342 -0.000000 0.461940 221 | v -0.255122 -0.333333 0.615920 222 | v -0.318903 -0.666667 0.769900 223 | v -0.411498 -1.000000 0.908478 224 | v -0.440312 -1.000000 0.893076 225 | v -0.469127 -1.000000 0.877675 226 | v -0.497941 -1.000000 0.862273 227 | v -0.526756 -1.000000 0.846871 228 | v -0.092595 0.666667 0.138578 229 | v -0.185190 0.333333 0.277157 230 | v -0.277785 -0.000000 0.415735 231 | v -0.370380 -0.333333 0.554313 232 | v -0.462975 -0.666667 0.692891 233 | v -0.580826 -1.000000 0.810742 234 | v -0.606082 -1.000000 0.790015 235 | v -0.631338 -1.000000 0.769288 236 | v -0.656595 -1.000000 0.748561 237 | v -0.681851 -1.000000 0.727834 238 | v -0.117851 0.666667 0.117851 239 | v -0.235702 0.333333 0.235702 240 | v -0.353553 -0.000000 0.353553 241 | v -0.471404 -0.333333 0.471405 242 | v -0.589256 -0.666667 0.589256 243 | v -0.727834 -1.000000 0.681851 244 | v -0.748561 -1.000000 0.656595 245 | v -0.769288 -1.000000 0.631339 246 | v -0.790015 -1.000000 0.606083 247 | v -0.810742 -1.000000 0.580827 248 | v -0.138578 0.666667 0.092595 249 | v -0.277157 0.333333 0.185190 250 | v -0.415735 -0.000000 0.277785 251 | v -0.554313 -0.333333 0.370380 252 | v -0.692891 -0.666667 0.462975 253 | v -0.846871 -1.000000 0.526756 254 | v -0.862273 -1.000000 0.497941 255 | v -0.877674 -1.000000 0.469127 256 | v -0.893076 -1.000000 0.440313 257 | v -0.908478 -1.000000 0.411498 258 | v -0.153980 0.666667 0.063781 259 | v -0.307960 0.333333 0.127561 260 | v -0.461940 -0.000000 0.191342 261 | v -0.615920 -0.333333 0.255122 262 | v -0.769900 -0.666667 0.318903 263 | v -0.933364 -1.000000 0.351418 264 | v -0.942848 -1.000000 0.320153 265 | v -0.952332 -1.000000 0.288887 266 | v -0.961817 -1.000000 0.257621 267 | v -0.971301 -1.000000 0.226356 268 | v -0.163464 0.666667 0.032515 269 | v -0.326928 0.333333 0.065030 270 | v -0.490393 -0.000000 0.097545 271 | v -0.653857 -0.333333 0.130060 272 | v -0.817321 -0.666667 0.162575 273 | v -0.983988 -1.000000 0.162575 274 | v -0.987190 -1.000000 0.130060 275 | v -0.990393 -1.000000 0.097545 276 | v -0.993595 -1.000000 0.065030 277 | v -0.996798 -1.000000 0.032515 278 | v -0.166667 0.666667 -0.000000 279 | v -0.333333 0.333333 -0.000000 280 | v -0.500000 -0.000000 -0.000000 281 | v -0.666667 -0.333333 -0.000000 282 | v -0.833333 -0.666667 -0.000000 283 | v -0.996798 -1.000000 -0.032515 284 | v -0.993595 -1.000000 -0.065030 285 | v -0.990393 -1.000000 -0.097545 286 | v -0.987190 -1.000000 -0.130060 287 | v -0.983988 -1.000000 -0.162575 288 | v -0.163464 0.666667 -0.032515 289 | v -0.326928 0.333333 -0.065030 290 | v -0.490393 -0.000000 -0.097545 291 | v -0.653857 -0.333333 -0.130060 292 | v -0.817321 -0.666667 -0.162575 293 | v -0.971301 -1.000000 -0.226356 294 | v -0.961817 -1.000000 -0.257621 295 | v -0.952332 -1.000000 -0.288887 296 | v -0.942848 -1.000000 -0.320153 297 | v -0.933364 -1.000000 -0.351418 298 | v -0.153980 0.666667 -0.063781 299 | v -0.307960 0.333333 -0.127561 300 | v -0.461940 -0.000000 -0.191342 301 | v -0.615920 -0.333333 -0.255122 302 | v -0.769900 -0.666667 -0.318903 303 | v -0.908478 -1.000000 -0.411498 304 | v -0.893076 -1.000000 -0.440312 305 | v -0.877675 -1.000000 -0.469127 306 | v -0.862273 -1.000000 -0.497941 307 | v -0.846871 -1.000000 -0.526756 308 | v -0.138578 0.666667 -0.092595 309 | v -0.277157 0.333333 -0.185190 310 | v -0.415735 -0.000000 -0.277785 311 | v -0.554313 -0.333333 -0.370380 312 | v -0.692891 -0.666667 -0.462975 313 | v -0.810743 -1.000000 -0.580826 314 | v -0.790015 -1.000000 -0.606082 315 | v -0.769288 -1.000000 -0.631338 316 | v -0.748561 -1.000000 -0.656594 317 | v -0.727834 -1.000000 -0.681851 318 | v -0.117851 0.666667 -0.117851 319 | v -0.235702 0.333333 -0.235702 320 | v -0.353553 -0.000000 -0.353553 321 | v -0.471405 -0.333333 -0.471404 322 | v -0.589256 -0.666667 -0.589256 323 | v -0.681851 -1.000000 -0.727834 324 | v -0.656595 -1.000000 -0.748561 325 | v -0.631339 -1.000000 -0.769288 326 | v -0.606082 -1.000000 -0.790015 327 | v -0.580826 -1.000000 -0.810742 328 | v -0.092595 0.666667 -0.138578 329 | v -0.185190 0.333333 -0.277157 330 | v -0.277785 -0.000000 -0.415735 331 | v -0.370380 -0.333333 -0.554313 332 | v -0.462975 -0.666667 -0.692891 333 | v -0.526756 -1.000000 -0.846871 334 | v -0.497941 -1.000000 -0.862273 335 | v -0.469127 -1.000000 -0.877675 336 | v -0.440312 -1.000000 -0.893076 337 | v -0.411498 -1.000000 -0.908478 338 | v -0.063781 0.666667 -0.153980 339 | v -0.127561 0.333333 -0.307960 340 | v -0.191342 -0.000000 -0.461940 341 | v -0.255122 -0.333333 -0.615920 342 | v -0.318903 -0.666667 -0.769900 343 | v -0.351418 -1.000000 -0.933364 344 | v -0.320152 -1.000000 -0.942848 345 | v -0.288887 -1.000000 -0.952332 346 | v -0.257621 -1.000000 -0.961817 347 | v -0.226356 -1.000000 -0.971301 348 | v -0.032515 0.666667 -0.163464 349 | v -0.065030 0.333333 -0.326928 350 | v -0.097545 -0.000000 -0.490393 351 | v -0.130060 -0.333333 -0.653857 352 | v -0.162575 -0.666667 -0.817321 353 | v -0.162575 -1.000000 -0.983988 354 | v -0.130060 -1.000000 -0.987190 355 | v -0.097545 -1.000000 -0.990393 356 | v -0.065030 -1.000000 -0.993595 357 | v -0.032515 -1.000000 -0.996798 358 | v -0.032515 -0.666667 -0.830131 359 | v -0.065030 -0.666667 -0.826928 360 | v -0.032515 -0.333333 -0.663464 361 | v -0.097545 -0.666667 -0.823726 362 | v -0.065030 -0.333333 -0.660262 363 | v -0.032515 0.000000 -0.496798 364 | v -0.130060 -0.666667 -0.820524 365 | v -0.097545 -0.333333 -0.657059 366 | v -0.065030 0.000000 -0.493595 367 | v -0.032515 0.333333 -0.330131 368 | v -0.193841 -0.666667 -0.807837 369 | v -0.225106 -0.666667 -0.798352 370 | v -0.161326 -0.333333 -0.644373 371 | v -0.256372 -0.666667 -0.788868 372 | v -0.192591 -0.333333 -0.634888 373 | v -0.128811 -0.000000 -0.480908 374 | v -0.287637 -0.666667 -0.779384 375 | v -0.223857 -0.333333 -0.625404 376 | v -0.160076 0.000000 -0.471424 377 | v -0.096296 0.333333 -0.317444 378 | v -0.347717 -0.666667 -0.754498 379 | v -0.376532 -0.666667 -0.739096 380 | v -0.283937 -0.333333 -0.600518 381 | v -0.405346 -0.666667 -0.723695 382 | v -0.312751 -0.333333 -0.585116 383 | v -0.220156 -0.000000 -0.446538 384 | v -0.434161 -0.666667 -0.708293 385 | v -0.341566 -0.333333 -0.569715 386 | v -0.248971 0.000000 -0.431136 387 | v -0.156376 0.333333 -0.292558 388 | v -0.488231 -0.666667 -0.672164 389 | v -0.513487 -0.666667 -0.651437 390 | v -0.395636 -0.333333 -0.533586 391 | v -0.538744 -0.666667 -0.630710 392 | v -0.420892 -0.333333 -0.512859 393 | v -0.303041 -0.000000 -0.395008 394 | v -0.564000 -0.666667 -0.609983 395 | v -0.446149 -0.333333 -0.492132 396 | v -0.328297 0.000000 -0.374281 397 | v -0.210446 0.333333 -0.256429 398 | v -0.609983 -0.666667 -0.563999 399 | v -0.630710 -0.666667 -0.538743 400 | v -0.492132 -0.333333 -0.446148 401 | v -0.651437 -0.666667 -0.513487 402 | v -0.512859 -0.333333 -0.420892 403 | v -0.374281 -0.000000 -0.328297 404 | v -0.672164 -0.666667 -0.488231 405 | v -0.533586 -0.333333 -0.395636 406 | v -0.395008 0.000000 -0.303041 407 | v -0.256429 0.333333 -0.210446 408 | v -0.708293 -0.666667 -0.434161 409 | v -0.723695 -0.666667 -0.405346 410 | v -0.569715 -0.333333 -0.341566 411 | v -0.739096 -0.666667 -0.376532 412 | v -0.585116 -0.333333 -0.312751 413 | v -0.431136 -0.000000 -0.248971 414 | v -0.754498 -0.666667 -0.347717 415 | v -0.600518 -0.333333 -0.283937 416 | v -0.446538 0.000000 -0.220156 417 | v -0.292558 0.333333 -0.156376 418 | v -0.779384 -0.666667 -0.287637 419 | v -0.788868 -0.666667 -0.256372 420 | v -0.625404 -0.333333 -0.223857 421 | v -0.798352 -0.666667 -0.225106 422 | v -0.634888 -0.333333 -0.192591 423 | v -0.471424 -0.000000 -0.160076 424 | v -0.807837 -0.666667 -0.193841 425 | v -0.644373 -0.333333 -0.161326 426 | v -0.480908 0.000000 -0.128811 427 | v -0.317444 0.333333 -0.096296 428 | v -0.820524 -0.666667 -0.130060 429 | v -0.823726 -0.666667 -0.097545 430 | v -0.657059 -0.333333 -0.097545 431 | v -0.826928 -0.666667 -0.065030 432 | v -0.660262 -0.333333 -0.065030 433 | v -0.493595 -0.000000 -0.065030 434 | v -0.830131 -0.666667 -0.032515 435 | v -0.663464 -0.333333 -0.032515 436 | v -0.496798 0.000000 -0.032515 437 | v -0.330131 0.333333 -0.032515 438 | v -0.830131 -0.666667 0.032515 439 | v -0.826928 -0.666667 0.065030 440 | v -0.663464 -0.333333 0.032515 441 | v -0.823726 -0.666667 0.097545 442 | v -0.660262 -0.333333 0.065030 443 | v -0.496798 -0.000000 0.032515 444 | v -0.820524 -0.666667 0.130060 445 | v -0.657059 -0.333333 0.097545 446 | v -0.493595 0.000000 0.065030 447 | v -0.330131 0.333333 0.032515 448 | v -0.807837 -0.666667 0.193841 449 | v -0.798352 -0.666667 0.225106 450 | v -0.644373 -0.333333 0.161326 451 | v -0.788868 -0.666667 0.256372 452 | v -0.634888 -0.333333 0.192591 453 | v -0.480908 -0.000000 0.128811 454 | v -0.779384 -0.666667 0.287637 455 | v -0.625404 -0.333333 0.223857 456 | v -0.471424 0.000000 0.160076 457 | v -0.317444 0.333333 0.096296 458 | v -0.754498 -0.666667 0.347717 459 | v -0.739096 -0.666667 0.376532 460 | v -0.600518 -0.333333 0.283937 461 | v -0.723695 -0.666667 0.405346 462 | v -0.585116 -0.333333 0.312751 463 | v -0.446538 -0.000000 0.220156 464 | v -0.708293 -0.666667 0.434161 465 | v -0.569715 -0.333333 0.341566 466 | v -0.431136 0.000000 0.248971 467 | v -0.292558 0.333333 0.156376 468 | v -0.672164 -0.666667 0.488231 469 | v -0.651437 -0.666667 0.513487 470 | v -0.533586 -0.333333 0.395636 471 | v -0.630710 -0.666667 0.538744 472 | v -0.512859 -0.333333 0.420892 473 | v -0.395008 -0.000000 0.303041 474 | v -0.609983 -0.666667 0.564000 475 | v -0.492132 -0.333333 0.446149 476 | v -0.374280 0.000000 0.328297 477 | v -0.256429 0.333333 0.210446 478 | v -0.564000 -0.666667 0.609983 479 | v -0.538743 -0.666667 0.630710 480 | v -0.446148 -0.333333 0.492132 481 | v -0.513487 -0.666667 0.651437 482 | v -0.420892 -0.333333 0.512859 483 | v -0.328297 -0.000000 0.374281 484 | v -0.488231 -0.666667 0.672164 485 | v -0.395636 -0.333333 0.533586 486 | v -0.303041 0.000000 0.395008 487 | v -0.210446 0.333333 0.256429 488 | v -0.434161 -0.666667 0.708293 489 | v -0.405346 -0.666667 0.723695 490 | v -0.341566 -0.333333 0.569715 491 | v -0.376532 -0.666667 0.739096 492 | v -0.312751 -0.333333 0.585116 493 | v -0.248971 -0.000000 0.431136 494 | v -0.347717 -0.666667 0.754498 495 | v -0.283937 -0.333333 0.600518 496 | v -0.220156 0.000000 0.446538 497 | v -0.156376 0.333333 0.292558 498 | v -0.287637 -0.666667 0.779384 499 | v -0.256372 -0.666667 0.788868 500 | v -0.223857 -0.333333 0.625404 501 | v -0.225106 -0.666667 0.798352 502 | v -0.192591 -0.333333 0.634888 503 | v -0.160076 -0.000000 0.471424 504 | v -0.193841 -0.666667 0.807837 505 | v -0.161326 -0.333333 0.644373 506 | v -0.128811 0.000000 0.480908 507 | v -0.096296 0.333333 0.317444 508 | v -0.130060 -0.666667 0.820524 509 | v -0.097545 -0.666667 0.823726 510 | v -0.097545 -0.333333 0.657059 511 | v -0.065030 -0.666667 0.826928 512 | v -0.065030 -0.333333 0.660262 513 | v -0.065030 -0.000000 0.493595 514 | v -0.032515 -0.666667 0.830131 515 | v -0.032515 -0.333333 0.663464 516 | v -0.032515 0.000000 0.496798 517 | v -0.032515 0.333333 0.330131 518 | v 0.032515 -0.666667 0.830131 519 | v 0.065030 -0.666667 0.826928 520 | v 0.032515 -0.333333 0.663464 521 | v 0.097545 -0.666667 0.823726 522 | v 0.065030 -0.333333 0.660262 523 | v 0.032515 -0.000000 0.496798 524 | v 0.130060 -0.666667 0.820524 525 | v 0.097545 -0.333333 0.657059 526 | v 0.065030 0.000000 0.493595 527 | v 0.032515 0.333333 0.330131 528 | v 0.193841 -0.666667 0.807837 529 | v 0.225106 -0.666667 0.798352 530 | v 0.161326 -0.333333 0.644373 531 | v 0.256372 -0.666667 0.788868 532 | v 0.192591 -0.333333 0.634888 533 | v 0.128811 -0.000000 0.480908 534 | v 0.287637 -0.666667 0.779384 535 | v 0.223857 -0.333333 0.625404 536 | v 0.160076 0.000000 0.471424 537 | v 0.096296 0.333333 0.317444 538 | v 0.347717 -0.666667 0.754498 539 | v 0.376532 -0.666667 0.739096 540 | v 0.283937 -0.333333 0.600518 541 | v 0.405346 -0.666667 0.723695 542 | v 0.312751 -0.333333 0.585116 543 | v 0.220156 -0.000000 0.446538 544 | v 0.434161 -0.666667 0.708293 545 | v 0.341566 -0.333333 0.569715 546 | v 0.248971 0.000000 0.431136 547 | v 0.156376 0.333333 0.292558 548 | v 0.488231 -0.666667 0.672164 549 | v 0.513487 -0.666667 0.651437 550 | v 0.395636 -0.333333 0.533586 551 | v 0.538743 -0.666667 0.630710 552 | v 0.420892 -0.333333 0.512859 553 | v 0.303041 -0.000000 0.395008 554 | v 0.564000 -0.666667 0.609983 555 | v 0.446148 -0.333333 0.492132 556 | v 0.328297 0.000000 0.374281 557 | v 0.210446 0.333333 0.256429 558 | v 0.609983 -0.666667 0.564000 559 | v 0.630710 -0.666667 0.538743 560 | v 0.492132 -0.333333 0.446148 561 | v 0.651437 -0.666667 0.513487 562 | v 0.512859 -0.333333 0.420892 563 | v 0.374281 -0.000000 0.328297 564 | v 0.672164 -0.666667 0.488231 565 | v 0.533586 -0.333333 0.395636 566 | v 0.395008 0.000000 0.303041 567 | v 0.256429 0.333333 0.210446 568 | v 0.708293 -0.666667 0.434161 569 | v 0.723695 -0.666667 0.405346 570 | v 0.569715 -0.333333 0.341566 571 | v 0.739096 -0.666667 0.376532 572 | v 0.585116 -0.333333 0.312751 573 | v 0.431136 -0.000000 0.248971 574 | v 0.754498 -0.666667 0.347717 575 | v 0.600518 -0.333333 0.283937 576 | v 0.446538 0.000000 0.220156 577 | v 0.292558 0.333333 0.156376 578 | v 0.779384 -0.666667 0.287637 579 | v 0.788868 -0.666667 0.256372 580 | v 0.625404 -0.333333 0.223857 581 | v 0.798352 -0.666667 0.225106 582 | v 0.634888 -0.333333 0.192591 583 | v 0.471424 -0.000000 0.160076 584 | v 0.807837 -0.666667 0.193841 585 | v 0.644373 -0.333333 0.161326 586 | v 0.480908 0.000000 0.128811 587 | v 0.317444 0.333333 0.096296 588 | v 0.820524 -0.666667 0.130060 589 | v 0.823726 -0.666667 0.097545 590 | v 0.657059 -0.333333 0.097545 591 | v 0.826928 -0.666667 0.065030 592 | v 0.660262 -0.333333 0.065030 593 | v 0.493595 -0.000000 0.065030 594 | v 0.830131 -0.666667 0.032515 595 | v 0.663464 -0.333333 0.032515 596 | v 0.496798 0.000000 0.032515 597 | v 0.330131 0.333333 0.032515 598 | v 0.830131 -0.666667 -0.032515 599 | v 0.826928 -0.666667 -0.065030 600 | v 0.663464 -0.333333 -0.032515 601 | v 0.823726 -0.666667 -0.097545 602 | v 0.660262 -0.333333 -0.065030 603 | v 0.496798 -0.000000 -0.032515 604 | v 0.820524 -0.666667 -0.130060 605 | v 0.657059 -0.333333 -0.097545 606 | v 0.493595 0.000000 -0.065030 607 | v 0.330131 0.333333 -0.032515 608 | v 0.807837 -0.666667 -0.193841 609 | v 0.798352 -0.666667 -0.225106 610 | v 0.644373 -0.333333 -0.161326 611 | v 0.788868 -0.666667 -0.256372 612 | v 0.634888 -0.333333 -0.192591 613 | v 0.480908 -0.000000 -0.128811 614 | v 0.779384 -0.666667 -0.287637 615 | v 0.625404 -0.333333 -0.223857 616 | v 0.471424 0.000000 -0.160076 617 | v 0.317444 0.333333 -0.096296 618 | v 0.754498 -0.666667 -0.347717 619 | v 0.739096 -0.666667 -0.376532 620 | v 0.600518 -0.333333 -0.283937 621 | v 0.723695 -0.666667 -0.405346 622 | v 0.585116 -0.333333 -0.312751 623 | v 0.446538 -0.000000 -0.220156 624 | v 0.708293 -0.666667 -0.434161 625 | v 0.569715 -0.333333 -0.341566 626 | v 0.431136 0.000000 -0.248971 627 | v 0.292558 0.333333 -0.156376 628 | v 0.672164 -0.666667 -0.488231 629 | v 0.651437 -0.666667 -0.513487 630 | v 0.533586 -0.333333 -0.395636 631 | v 0.630710 -0.666667 -0.538743 632 | v 0.512859 -0.333333 -0.420892 633 | v 0.395008 -0.000000 -0.303041 634 | v 0.609983 -0.666667 -0.564000 635 | v 0.492132 -0.333333 -0.446148 636 | v 0.374281 0.000000 -0.328297 637 | v 0.256429 0.333333 -0.210446 638 | v 0.564000 -0.666667 -0.609983 639 | v 0.538743 -0.666667 -0.630710 640 | v 0.446148 -0.333333 -0.492132 641 | v 0.513487 -0.666667 -0.651437 642 | v 0.420892 -0.333333 -0.512859 643 | v 0.328297 -0.000000 -0.374281 644 | v 0.488231 -0.666667 -0.672164 645 | v 0.395636 -0.333333 -0.533586 646 | v 0.303041 0.000000 -0.395008 647 | v 0.210446 0.333333 -0.256429 648 | v 0.434161 -0.666667 -0.708293 649 | v 0.405346 -0.666667 -0.723695 650 | v 0.341566 -0.333333 -0.569715 651 | v 0.376532 -0.666667 -0.739096 652 | v 0.312751 -0.333333 -0.585116 653 | v 0.248971 -0.000000 -0.431136 654 | v 0.347717 -0.666667 -0.754498 655 | v 0.283937 -0.333333 -0.600518 656 | v 0.220156 0.000000 -0.446538 657 | v 0.156376 0.333333 -0.292558 658 | v 0.287637 -0.666667 -0.779384 659 | v 0.256372 -0.666667 -0.788868 660 | v 0.223857 -0.333333 -0.625404 661 | v 0.225106 -0.666667 -0.798352 662 | v 0.192591 -0.333333 -0.634888 663 | v 0.160076 -0.000000 -0.471424 664 | v 0.193841 -0.666667 -0.807837 665 | v 0.161326 -0.333333 -0.644373 666 | v 0.128811 0.000000 -0.480908 667 | v 0.096296 0.333333 -0.317444 668 | v 0.130060 -0.666667 -0.820524 669 | v 0.097545 -0.666667 -0.823726 670 | v 0.097545 -0.333333 -0.657059 671 | v 0.065030 -0.666667 -0.826928 672 | v 0.065030 -0.333333 -0.660262 673 | v 0.065030 -0.000000 -0.493595 674 | v 0.032515 -0.666667 -0.830131 675 | v 0.032515 -0.333333 -0.663464 676 | v 0.032515 0.000000 -0.496798 677 | v 0.032515 0.333333 -0.330131 678 | vt 0.250000 0.490000 679 | vt 0.250000 0.450000 680 | vt 0.257804 0.489231 681 | vt 0.296822 0.485388 682 | vt 0.289018 0.446157 683 | vt 0.304325 0.483112 684 | vt 0.341844 0.471731 685 | vt 0.326537 0.434776 686 | vt 0.348759 0.468035 687 | vt 0.383337 0.449553 688 | vt 0.361114 0.416294 689 | vt 0.389398 0.444578 690 | vt 0.419706 0.419706 691 | vt 0.391421 0.391421 692 | vt 0.424680 0.413644 693 | vt 0.449553 0.383337 694 | vt 0.416294 0.361114 695 | vt 0.453249 0.376421 696 | vt 0.471731 0.341844 697 | vt 0.434776 0.326537 698 | vt 0.474007 0.334340 699 | vt 0.485388 0.296822 700 | vt 0.446157 0.289018 701 | vt 0.486157 0.289018 702 | vt 0.490000 0.250000 703 | vt 0.450000 0.250000 704 | vt 0.489231 0.242196 705 | vt 0.485388 0.203178 706 | vt 0.446157 0.210982 707 | vt 0.483112 0.195675 708 | vt 0.471731 0.158156 709 | vt 0.434776 0.173463 710 | vt 0.468035 0.151240 711 | vt 0.449553 0.116663 712 | vt 0.416294 0.138886 713 | vt 0.444578 0.110602 714 | vt 0.419706 0.080294 715 | vt 0.391421 0.108579 716 | vt 0.413644 0.075320 717 | vt 0.383337 0.050447 718 | vt 0.361114 0.083706 719 | vt 0.376421 0.046751 720 | vt 0.341844 0.028269 721 | vt 0.326537 0.065224 722 | vt 0.334340 0.025993 723 | vt 0.296822 0.014612 724 | vt 0.289018 0.053843 725 | vt 0.289018 0.013843 726 | vt 0.250000 0.010000 727 | vt 0.250000 0.050000 728 | vt 0.242196 0.010769 729 | vt 0.203178 0.014612 730 | vt 0.210982 0.053843 731 | vt 0.195675 0.016888 732 | vt 0.158156 0.028269 733 | vt 0.173463 0.065224 734 | vt 0.151240 0.031965 735 | vt 0.116663 0.050447 736 | vt 0.138886 0.083706 737 | vt 0.110602 0.055422 738 | vt 0.080294 0.080294 739 | vt 0.108579 0.108579 740 | vt 0.075320 0.086356 741 | vt 0.050447 0.116663 742 | vt 0.083706 0.138886 743 | vt 0.046751 0.123579 744 | vt 0.028269 0.158156 745 | vt 0.065224 0.173463 746 | vt 0.025993 0.165660 747 | vt 0.014612 0.203178 748 | vt 0.053843 0.210982 749 | vt 0.013843 0.210982 750 | vt 0.010000 0.250000 751 | vt 0.050000 0.250000 752 | vt 0.010769 0.257804 753 | vt 0.014612 0.296822 754 | vt 0.053843 0.289018 755 | vt 0.016888 0.304325 756 | vt 0.028269 0.341844 757 | vt 0.065224 0.326537 758 | vt 0.031965 0.348760 759 | vt 0.050447 0.383337 760 | vt 0.083706 0.361114 761 | vt 0.055422 0.389398 762 | vt 0.080294 0.419706 763 | vt 0.108579 0.391421 764 | vt 0.086356 0.424680 765 | vt 0.116663 0.449553 766 | vt 0.138886 0.416294 767 | vt 0.123579 0.453249 768 | vt 0.750000 0.490000 769 | vt 0.757804 0.489231 770 | vt 0.765607 0.488463 771 | vt 0.773411 0.487694 772 | vt 0.781214 0.486926 773 | vt 0.789018 0.486157 774 | vt 0.796822 0.485388 775 | vt 0.804325 0.483112 776 | vt 0.811829 0.480836 777 | vt 0.819333 0.478560 778 | vt 0.826837 0.476284 779 | vt 0.834340 0.474007 780 | vt 0.841844 0.471731 781 | vt 0.848759 0.468035 782 | vt 0.855675 0.464338 783 | vt 0.862590 0.460642 784 | vt 0.869506 0.456945 785 | vt 0.876421 0.453249 786 | vt 0.883337 0.449553 787 | vt 0.889398 0.444578 788 | vt 0.895460 0.439604 789 | vt 0.901521 0.434629 790 | vt 0.907583 0.429655 791 | vt 0.913644 0.424680 792 | vt 0.919706 0.419706 793 | vt 0.924680 0.413644 794 | vt 0.929655 0.407583 795 | vt 0.934629 0.401521 796 | vt 0.939604 0.395460 797 | vt 0.944578 0.389398 798 | vt 0.949553 0.383337 799 | vt 0.953249 0.376421 800 | vt 0.956946 0.369506 801 | vt 0.960642 0.362590 802 | vt 0.964338 0.355675 803 | vt 0.968035 0.348759 804 | vt 0.971731 0.341844 805 | vt 0.974007 0.334340 806 | vt 0.976284 0.326837 807 | vt 0.978560 0.319333 808 | vt 0.980836 0.311829 809 | vt 0.983112 0.304325 810 | vt 0.985388 0.296822 811 | vt 0.986157 0.289018 812 | vt 0.986926 0.281214 813 | vt 0.987694 0.273411 814 | vt 0.988463 0.265607 815 | vt 0.989231 0.257804 816 | vt 0.990000 0.250000 817 | vt 0.989231 0.242196 818 | vt 0.988463 0.234393 819 | vt 0.987694 0.226589 820 | vt 0.986926 0.218786 821 | vt 0.986157 0.210982 822 | vt 0.985388 0.203178 823 | vt 0.983112 0.195675 824 | vt 0.980836 0.188171 825 | vt 0.978560 0.180667 826 | vt 0.976284 0.173163 827 | vt 0.974007 0.165660 828 | vt 0.971731 0.158156 829 | vt 0.968035 0.151240 830 | vt 0.964338 0.144325 831 | vt 0.960642 0.137410 832 | vt 0.956945 0.130494 833 | vt 0.953249 0.123579 834 | vt 0.949553 0.116663 835 | vt 0.944578 0.110602 836 | vt 0.939604 0.104540 837 | vt 0.934629 0.098479 838 | vt 0.929655 0.092417 839 | vt 0.924680 0.086356 840 | vt 0.919706 0.080294 841 | vt 0.913644 0.075320 842 | vt 0.907583 0.070345 843 | vt 0.901521 0.065371 844 | vt 0.895460 0.060396 845 | vt 0.889398 0.055422 846 | vt 0.883337 0.050447 847 | vt 0.876421 0.046751 848 | vt 0.869506 0.043054 849 | vt 0.862590 0.039358 850 | vt 0.855675 0.035662 851 | vt 0.848759 0.031965 852 | vt 0.841844 0.028269 853 | vt 0.834340 0.025993 854 | vt 0.826837 0.023716 855 | vt 0.819333 0.021440 856 | vt 0.811829 0.019164 857 | vt 0.804325 0.016888 858 | vt 0.796822 0.014612 859 | vt 0.789018 0.013843 860 | vt 0.781214 0.013074 861 | vt 0.773411 0.012306 862 | vt 0.765607 0.011537 863 | vt 0.757804 0.010769 864 | vt 0.750000 0.010000 865 | vt 0.742196 0.010769 866 | vt 0.734393 0.011537 867 | vt 0.726589 0.012306 868 | vt 0.718786 0.013074 869 | vt 0.710982 0.013843 870 | vt 0.703178 0.014612 871 | vt 0.695675 0.016888 872 | vt 0.688171 0.019164 873 | vt 0.680667 0.021440 874 | vt 0.673163 0.023716 875 | vt 0.665660 0.025993 876 | vt 0.658156 0.028269 877 | vt 0.651240 0.031965 878 | vt 0.644325 0.035662 879 | vt 0.637410 0.039358 880 | vt 0.630494 0.043055 881 | vt 0.623579 0.046751 882 | vt 0.616663 0.050447 883 | vt 0.610602 0.055422 884 | vt 0.604540 0.060396 885 | vt 0.598479 0.065371 886 | vt 0.592417 0.070345 887 | vt 0.586356 0.075320 888 | vt 0.580294 0.080294 889 | vt 0.575320 0.086356 890 | vt 0.570345 0.092417 891 | vt 0.565371 0.098479 892 | vt 0.560396 0.104540 893 | vt 0.555422 0.110602 894 | vt 0.550447 0.116663 895 | vt 0.546751 0.123579 896 | vt 0.543055 0.130494 897 | vt 0.539358 0.137410 898 | vt 0.535662 0.144325 899 | vt 0.531965 0.151240 900 | vt 0.528269 0.158156 901 | vt 0.525993 0.165660 902 | vt 0.523716 0.173163 903 | vt 0.521440 0.180667 904 | vt 0.519164 0.188171 905 | vt 0.516888 0.195675 906 | vt 0.514612 0.203178 907 | vt 0.513843 0.210982 908 | vt 0.513074 0.218786 909 | vt 0.512306 0.226589 910 | vt 0.511537 0.234393 911 | vt 0.510769 0.242196 912 | vt 0.510000 0.250000 913 | vt 0.510769 0.257804 914 | vt 0.511537 0.265607 915 | vt 0.512306 0.273411 916 | vt 0.513074 0.281214 917 | vt 0.513843 0.289018 918 | vt 0.514612 0.296822 919 | vt 0.516888 0.304325 920 | vt 0.519164 0.311829 921 | vt 0.521440 0.319333 922 | vt 0.523716 0.326837 923 | vt 0.525993 0.334340 924 | vt 0.528269 0.341844 925 | vt 0.531965 0.348760 926 | vt 0.535662 0.355675 927 | vt 0.539358 0.362590 928 | vt 0.543054 0.369506 929 | vt 0.546751 0.376421 930 | vt 0.550447 0.383337 931 | vt 0.555422 0.389398 932 | vt 0.560396 0.395460 933 | vt 0.565371 0.401521 934 | vt 0.570345 0.407583 935 | vt 0.575320 0.413644 936 | vt 0.580294 0.419706 937 | vt 0.586356 0.424680 938 | vt 0.592417 0.429655 939 | vt 0.598479 0.434629 940 | vt 0.604540 0.439604 941 | vt 0.610602 0.444578 942 | vt 0.616663 0.449553 943 | vt 0.623579 0.453249 944 | vt 0.630494 0.456946 945 | vt 0.637410 0.460642 946 | vt 0.644325 0.464338 947 | vt 0.651240 0.468035 948 | vt 0.658156 0.471731 949 | vt 0.665660 0.474007 950 | vt 0.673163 0.476284 951 | vt 0.680667 0.478560 952 | vt 0.688171 0.480836 953 | vt 0.695675 0.483112 954 | vt 0.703178 0.485388 955 | vt 0.710982 0.486157 956 | vt 0.718786 0.486926 957 | vt 0.726589 0.487694 958 | vt 0.734393 0.488463 959 | vt 0.742196 0.489231 960 | vt 0.158156 0.471731 961 | vt 0.173463 0.434776 962 | vt 0.165660 0.474007 963 | vt 0.203178 0.485388 964 | vt 0.210982 0.446157 965 | vt 0.210982 0.486157 966 | vt 0.242196 0.489231 967 | vt 0.234393 0.488463 968 | vt 0.242196 0.449231 969 | vt 0.226589 0.487694 970 | vt 0.234393 0.448463 971 | vt 0.218786 0.486926 972 | vt 0.226589 0.447694 973 | vt 0.218786 0.446926 974 | vt 0.250000 0.410000 975 | vt 0.242196 0.409231 976 | vt 0.250000 0.370000 977 | vt 0.234393 0.408463 978 | vt 0.242196 0.369231 979 | vt 0.250000 0.330000 980 | vt 0.226589 0.407694 981 | vt 0.234393 0.368463 982 | vt 0.242196 0.329231 983 | vt 0.250000 0.290000 984 | vt 0.218786 0.406926 985 | vt 0.226589 0.367694 986 | vt 0.234393 0.328463 987 | vt 0.242196 0.289231 988 | vt 0.250000 0.250000 989 | vt 0.195675 0.483112 990 | vt 0.188171 0.480836 991 | vt 0.203478 0.443881 992 | vt 0.180667 0.478560 993 | vt 0.195974 0.441605 994 | vt 0.173163 0.476284 995 | vt 0.188471 0.439328 996 | vt 0.180967 0.437052 997 | vt 0.211282 0.404649 998 | vt 0.203778 0.402373 999 | vt 0.219085 0.365418 1000 | vt 0.196274 0.400097 1001 | vt 0.211582 0.363142 1002 | vt 0.226889 0.326187 1003 | vt 0.188771 0.397821 1004 | vt 0.204078 0.360866 1005 | vt 0.219385 0.323910 1006 | vt 0.234693 0.286955 1007 | vt 0.151240 0.468035 1008 | vt 0.144325 0.464338 1009 | vt 0.166548 0.431080 1010 | vt 0.137410 0.460642 1011 | vt 0.159632 0.427383 1012 | vt 0.130494 0.456946 1013 | vt 0.152717 0.423687 1014 | vt 0.145801 0.419990 1015 | vt 0.181855 0.394124 1016 | vt 0.174940 0.390428 1017 | vt 0.197163 0.357169 1018 | vt 0.168024 0.386732 1019 | vt 0.190247 0.353473 1020 | vt 0.212470 0.320214 1021 | vt 0.161109 0.383035 1022 | vt 0.183332 0.349776 1023 | vt 0.205554 0.316518 1024 | vt 0.227777 0.283259 1025 | vt 0.110602 0.444578 1026 | vt 0.104540 0.439604 1027 | vt 0.132824 0.411319 1028 | vt 0.098479 0.434629 1029 | vt 0.126763 0.406345 1030 | vt 0.092417 0.429655 1031 | vt 0.120702 0.401370 1032 | vt 0.114640 0.396396 1033 | vt 0.155047 0.378061 1034 | vt 0.148986 0.373086 1035 | vt 0.177270 0.344802 1036 | vt 0.142924 0.368112 1037 | vt 0.171209 0.339827 1038 | vt 0.199493 0.311543 1039 | vt 0.136863 0.363137 1040 | vt 0.165147 0.334853 1041 | vt 0.193431 0.306569 1042 | vt 0.221716 0.278284 1043 | vt 0.075320 0.413644 1044 | vt 0.070345 0.407583 1045 | vt 0.103604 0.385360 1046 | vt 0.065371 0.401521 1047 | vt 0.098630 0.379298 1048 | vt 0.060396 0.395460 1049 | vt 0.093655 0.373237 1050 | vt 0.088681 0.367175 1051 | vt 0.131888 0.357076 1052 | vt 0.126914 0.351014 1053 | vt 0.160173 0.328791 1054 | vt 0.121939 0.344953 1055 | vt 0.155198 0.322730 1056 | vt 0.188457 0.300507 1057 | vt 0.116965 0.338891 1058 | vt 0.150224 0.316668 1059 | vt 0.183482 0.294446 1060 | vt 0.216741 0.272223 1061 | vt 0.046751 0.376421 1062 | vt 0.043054 0.369506 1063 | vt 0.080010 0.354199 1064 | vt 0.039358 0.362590 1065 | vt 0.076313 0.347283 1066 | vt 0.035662 0.355675 1067 | vt 0.072617 0.340368 1068 | vt 0.068921 0.333452 1069 | vt 0.113268 0.331976 1070 | vt 0.109572 0.325060 1071 | vt 0.146527 0.309753 1072 | vt 0.105876 0.318145 1073 | vt 0.142831 0.302837 1074 | vt 0.179786 0.287530 1075 | vt 0.102179 0.311229 1076 | vt 0.139134 0.295922 1077 | vt 0.176090 0.280615 1078 | vt 0.213045 0.265307 1079 | vt 0.025993 0.334340 1080 | vt 0.023716 0.326837 1081 | vt 0.062948 0.319033 1082 | vt 0.021440 0.319333 1083 | vt 0.060672 0.311529 1084 | vt 0.019164 0.311829 1085 | vt 0.058395 0.304026 1086 | vt 0.056119 0.296522 1087 | vt 0.099903 0.303726 1088 | vt 0.097627 0.296222 1089 | vt 0.136858 0.288418 1090 | vt 0.095351 0.288718 1091 | vt 0.134582 0.280915 1092 | vt 0.173813 0.273111 1093 | vt 0.093074 0.281214 1094 | vt 0.132306 0.273411 1095 | vt 0.171537 0.265607 1096 | vt 0.210769 0.257804 1097 | vt 0.013843 0.289018 1098 | vt 0.013074 0.281214 1099 | vt 0.053074 0.281214 1100 | vt 0.012306 0.273411 1101 | vt 0.052306 0.273411 1102 | vt 0.011537 0.265607 1103 | vt 0.051537 0.265607 1104 | vt 0.050769 0.257804 1105 | vt 0.092306 0.273411 1106 | vt 0.091537 0.265607 1107 | vt 0.131537 0.265607 1108 | vt 0.090769 0.257804 1109 | vt 0.130769 0.257804 1110 | vt 0.170769 0.257804 1111 | vt 0.090000 0.250000 1112 | vt 0.130000 0.250000 1113 | vt 0.170000 0.250000 1114 | vt 0.210000 0.250000 1115 | vt 0.010769 0.242196 1116 | vt 0.011537 0.234393 1117 | vt 0.050769 0.242196 1118 | vt 0.012306 0.226589 1119 | vt 0.051537 0.234393 1120 | vt 0.013074 0.218786 1121 | vt 0.052306 0.226589 1122 | vt 0.053074 0.218786 1123 | vt 0.090769 0.242196 1124 | vt 0.091537 0.234393 1125 | vt 0.130769 0.242196 1126 | vt 0.092306 0.226589 1127 | vt 0.131537 0.234393 1128 | vt 0.170769 0.242196 1129 | vt 0.093074 0.218786 1130 | vt 0.132306 0.226589 1131 | vt 0.171537 0.234393 1132 | vt 0.210769 0.242196 1133 | vt 0.016888 0.195675 1134 | vt 0.019164 0.188171 1135 | vt 0.056119 0.203478 1136 | vt 0.021440 0.180667 1137 | vt 0.058395 0.195974 1138 | vt 0.023716 0.173163 1139 | vt 0.060672 0.188471 1140 | vt 0.062948 0.180967 1141 | vt 0.095351 0.211282 1142 | vt 0.097627 0.203778 1143 | vt 0.134582 0.219085 1144 | vt 0.099903 0.196274 1145 | vt 0.136858 0.211582 1146 | vt 0.173813 0.226889 1147 | vt 0.102179 0.188771 1148 | vt 0.139134 0.204078 1149 | vt 0.176090 0.219385 1150 | vt 0.213045 0.234693 1151 | vt 0.031965 0.151240 1152 | vt 0.035662 0.144325 1153 | vt 0.068921 0.166548 1154 | vt 0.039358 0.137410 1155 | vt 0.072617 0.159632 1156 | vt 0.043055 0.130494 1157 | vt 0.076313 0.152717 1158 | vt 0.080010 0.145801 1159 | vt 0.105876 0.181855 1160 | vt 0.109572 0.174940 1161 | vt 0.142831 0.197162 1162 | vt 0.113268 0.168024 1163 | vt 0.146527 0.190247 1164 | vt 0.179786 0.212470 1165 | vt 0.116965 0.161109 1166 | vt 0.150224 0.183332 1167 | vt 0.183482 0.205554 1168 | vt 0.216741 0.227777 1169 | vt 0.055422 0.110602 1170 | vt 0.060396 0.104540 1171 | vt 0.088681 0.132824 1172 | vt 0.065371 0.098479 1173 | vt 0.093655 0.126763 1174 | vt 0.070345 0.092417 1175 | vt 0.098630 0.120702 1176 | vt 0.103604 0.114640 1177 | vt 0.121939 0.155047 1178 | vt 0.126914 0.148986 1179 | vt 0.155198 0.177270 1180 | vt 0.131888 0.142924 1181 | vt 0.160173 0.171209 1182 | vt 0.188457 0.199493 1183 | vt 0.136863 0.136863 1184 | vt 0.165147 0.165147 1185 | vt 0.193431 0.193431 1186 | vt 0.221716 0.221716 1187 | vt 0.086356 0.075320 1188 | vt 0.092417 0.070345 1189 | vt 0.114640 0.103604 1190 | vt 0.098479 0.065371 1191 | vt 0.120702 0.098630 1192 | vt 0.104540 0.060396 1193 | vt 0.126763 0.093655 1194 | vt 0.132824 0.088681 1195 | vt 0.142924 0.131888 1196 | vt 0.148986 0.126914 1197 | vt 0.171209 0.160173 1198 | vt 0.155047 0.121939 1199 | vt 0.177270 0.155198 1200 | vt 0.199493 0.188457 1201 | vt 0.161109 0.116965 1202 | vt 0.183332 0.150224 1203 | vt 0.205554 0.183482 1204 | vt 0.227777 0.216741 1205 | vt 0.123579 0.046751 1206 | vt 0.130494 0.043055 1207 | vt 0.145801 0.080010 1208 | vt 0.137410 0.039358 1209 | vt 0.152717 0.076313 1210 | vt 0.144325 0.035662 1211 | vt 0.159632 0.072617 1212 | vt 0.166548 0.068921 1213 | vt 0.168024 0.113268 1214 | vt 0.174940 0.109572 1215 | vt 0.190247 0.146527 1216 | vt 0.181855 0.105876 1217 | vt 0.197163 0.142831 1218 | vt 0.212470 0.179786 1219 | vt 0.188771 0.102179 1220 | vt 0.204078 0.139134 1221 | vt 0.219385 0.176090 1222 | vt 0.234693 0.213045 1223 | vt 0.165660 0.025993 1224 | vt 0.173163 0.023716 1225 | vt 0.180967 0.062948 1226 | vt 0.180667 0.021440 1227 | vt 0.188471 0.060672 1228 | vt 0.188171 0.019164 1229 | vt 0.195974 0.058395 1230 | vt 0.203478 0.056119 1231 | vt 0.196274 0.099903 1232 | vt 0.203778 0.097627 1233 | vt 0.211582 0.136858 1234 | vt 0.211282 0.095351 1235 | vt 0.219085 0.134582 1236 | vt 0.226889 0.173813 1237 | vt 0.218786 0.093074 1238 | vt 0.226589 0.132306 1239 | vt 0.234393 0.171537 1240 | vt 0.242196 0.210769 1241 | vt 0.210982 0.013843 1242 | vt 0.218786 0.013074 1243 | vt 0.218786 0.053074 1244 | vt 0.226589 0.012306 1245 | vt 0.226589 0.052306 1246 | vt 0.234393 0.011537 1247 | vt 0.234393 0.051537 1248 | vt 0.242196 0.050769 1249 | vt 0.226589 0.092306 1250 | vt 0.234393 0.091537 1251 | vt 0.234393 0.131537 1252 | vt 0.242196 0.090769 1253 | vt 0.242196 0.130769 1254 | vt 0.242196 0.170769 1255 | vt 0.250000 0.090000 1256 | vt 0.250000 0.130000 1257 | vt 0.250000 0.170000 1258 | vt 0.250000 0.210000 1259 | vt 0.257804 0.010769 1260 | vt 0.265607 0.011537 1261 | vt 0.257804 0.050769 1262 | vt 0.273411 0.012306 1263 | vt 0.265607 0.051537 1264 | vt 0.281214 0.013074 1265 | vt 0.273411 0.052306 1266 | vt 0.281214 0.053074 1267 | vt 0.257804 0.090769 1268 | vt 0.265607 0.091537 1269 | vt 0.257804 0.130769 1270 | vt 0.273411 0.092306 1271 | vt 0.265607 0.131537 1272 | vt 0.257804 0.170769 1273 | vt 0.281214 0.093074 1274 | vt 0.273411 0.132306 1275 | vt 0.265607 0.171537 1276 | vt 0.257804 0.210769 1277 | vt 0.304325 0.016888 1278 | vt 0.311829 0.019164 1279 | vt 0.296522 0.056119 1280 | vt 0.319333 0.021440 1281 | vt 0.304026 0.058395 1282 | vt 0.326837 0.023716 1283 | vt 0.311529 0.060672 1284 | vt 0.319033 0.062948 1285 | vt 0.288718 0.095351 1286 | vt 0.296222 0.097627 1287 | vt 0.280915 0.134582 1288 | vt 0.303726 0.099903 1289 | vt 0.288418 0.136858 1290 | vt 0.273111 0.173813 1291 | vt 0.311229 0.102179 1292 | vt 0.295922 0.139134 1293 | vt 0.280615 0.176090 1294 | vt 0.265307 0.213045 1295 | vt 0.348759 0.031965 1296 | vt 0.355675 0.035662 1297 | vt 0.333452 0.068920 1298 | vt 0.362590 0.039358 1299 | vt 0.340368 0.072617 1300 | vt 0.369506 0.043054 1301 | vt 0.347283 0.076313 1302 | vt 0.354199 0.080010 1303 | vt 0.318145 0.105876 1304 | vt 0.325060 0.109572 1305 | vt 0.302837 0.142831 1306 | vt 0.331976 0.113268 1307 | vt 0.309753 0.146527 1308 | vt 0.287530 0.179786 1309 | vt 0.338891 0.116965 1310 | vt 0.316668 0.150224 1311 | vt 0.294446 0.183482 1312 | vt 0.272223 0.216741 1313 | vt 0.389398 0.055422 1314 | vt 0.395460 0.060396 1315 | vt 0.367175 0.088681 1316 | vt 0.401521 0.065371 1317 | vt 0.373237 0.093655 1318 | vt 0.407583 0.070345 1319 | vt 0.379298 0.098630 1320 | vt 0.385360 0.103604 1321 | vt 0.344953 0.121939 1322 | vt 0.351014 0.126914 1323 | vt 0.322730 0.155198 1324 | vt 0.357076 0.131888 1325 | vt 0.328791 0.160173 1326 | vt 0.300507 0.188457 1327 | vt 0.363137 0.136863 1328 | vt 0.334853 0.165147 1329 | vt 0.306569 0.193431 1330 | vt 0.278284 0.221716 1331 | vt 0.424680 0.086356 1332 | vt 0.429655 0.092417 1333 | vt 0.396396 0.114640 1334 | vt 0.434629 0.098479 1335 | vt 0.401370 0.120702 1336 | vt 0.439604 0.104540 1337 | vt 0.406345 0.126763 1338 | vt 0.411319 0.132825 1339 | vt 0.368112 0.142924 1340 | vt 0.373086 0.148986 1341 | vt 0.339827 0.171209 1342 | vt 0.378061 0.155047 1343 | vt 0.344802 0.177270 1344 | vt 0.311543 0.199493 1345 | vt 0.383035 0.161109 1346 | vt 0.349776 0.183332 1347 | vt 0.316518 0.205554 1348 | vt 0.283259 0.227777 1349 | vt 0.453249 0.123579 1350 | vt 0.456946 0.130494 1351 | vt 0.419990 0.145801 1352 | vt 0.460642 0.137410 1353 | vt 0.423687 0.152717 1354 | vt 0.464338 0.144325 1355 | vt 0.427383 0.159632 1356 | vt 0.431080 0.166548 1357 | vt 0.386732 0.168024 1358 | vt 0.390428 0.174940 1359 | vt 0.353473 0.190247 1360 | vt 0.394124 0.181855 1361 | vt 0.357169 0.197163 1362 | vt 0.320214 0.212470 1363 | vt 0.397821 0.188771 1364 | vt 0.360866 0.204078 1365 | vt 0.323910 0.219385 1366 | vt 0.286955 0.234693 1367 | vt 0.474007 0.165660 1368 | vt 0.476284 0.173163 1369 | vt 0.437052 0.180967 1370 | vt 0.478560 0.180667 1371 | vt 0.439328 0.188471 1372 | vt 0.480836 0.188171 1373 | vt 0.441605 0.195974 1374 | vt 0.443881 0.203478 1375 | vt 0.400097 0.196274 1376 | vt 0.402373 0.203778 1377 | vt 0.363142 0.211582 1378 | vt 0.404649 0.211282 1379 | vt 0.365418 0.219085 1380 | vt 0.326187 0.226889 1381 | vt 0.406926 0.218786 1382 | vt 0.367694 0.226589 1383 | vt 0.328463 0.234393 1384 | vt 0.289231 0.242196 1385 | vt 0.486157 0.210982 1386 | vt 0.486926 0.218786 1387 | vt 0.446926 0.218786 1388 | vt 0.487694 0.226589 1389 | vt 0.447694 0.226589 1390 | vt 0.488463 0.234393 1391 | vt 0.448463 0.234393 1392 | vt 0.449231 0.242196 1393 | vt 0.407694 0.226589 1394 | vt 0.408463 0.234393 1395 | vt 0.368463 0.234393 1396 | vt 0.409231 0.242196 1397 | vt 0.369231 0.242196 1398 | vt 0.329231 0.242196 1399 | vt 0.410000 0.250000 1400 | vt 0.370000 0.250000 1401 | vt 0.330000 0.250000 1402 | vt 0.290000 0.250000 1403 | vt 0.489231 0.257804 1404 | vt 0.488463 0.265607 1405 | vt 0.449231 0.257804 1406 | vt 0.487694 0.273411 1407 | vt 0.448463 0.265607 1408 | vt 0.486926 0.281214 1409 | vt 0.447694 0.273411 1410 | vt 0.446926 0.281214 1411 | vt 0.409231 0.257804 1412 | vt 0.408463 0.265607 1413 | vt 0.369231 0.257804 1414 | vt 0.407694 0.273411 1415 | vt 0.368463 0.265607 1416 | vt 0.329231 0.257804 1417 | vt 0.406926 0.281214 1418 | vt 0.367694 0.273411 1419 | vt 0.328463 0.265607 1420 | vt 0.289231 0.257804 1421 | vt 0.483112 0.304325 1422 | vt 0.480836 0.311829 1423 | vt 0.443881 0.296522 1424 | vt 0.478560 0.319333 1425 | vt 0.441605 0.304026 1426 | vt 0.476284 0.326837 1427 | vt 0.439328 0.311529 1428 | vt 0.437052 0.319033 1429 | vt 0.404649 0.288718 1430 | vt 0.402373 0.296222 1431 | vt 0.365418 0.280915 1432 | vt 0.400097 0.303726 1433 | vt 0.363142 0.288418 1434 | vt 0.326187 0.273111 1435 | vt 0.397821 0.311229 1436 | vt 0.360866 0.295922 1437 | vt 0.323910 0.280615 1438 | vt 0.286955 0.265307 1439 | vt 0.468035 0.348759 1440 | vt 0.464338 0.355675 1441 | vt 0.431080 0.333452 1442 | vt 0.460642 0.362590 1443 | vt 0.427383 0.340368 1444 | vt 0.456946 0.369506 1445 | vt 0.423687 0.347283 1446 | vt 0.419990 0.354199 1447 | vt 0.394124 0.318145 1448 | vt 0.390428 0.325060 1449 | vt 0.357169 0.302837 1450 | vt 0.386732 0.331976 1451 | vt 0.353473 0.309753 1452 | vt 0.320214 0.287530 1453 | vt 0.383035 0.338891 1454 | vt 0.349776 0.316668 1455 | vt 0.316518 0.294446 1456 | vt 0.283259 0.272223 1457 | vt 0.444578 0.389398 1458 | vt 0.439604 0.395460 1459 | vt 0.411319 0.367175 1460 | vt 0.434629 0.401521 1461 | vt 0.406345 0.373237 1462 | vt 0.429655 0.407583 1463 | vt 0.401370 0.379298 1464 | vt 0.396396 0.385360 1465 | vt 0.378061 0.344953 1466 | vt 0.373086 0.351014 1467 | vt 0.344802 0.322730 1468 | vt 0.368112 0.357076 1469 | vt 0.339827 0.328791 1470 | vt 0.311543 0.300507 1471 | vt 0.363137 0.363137 1472 | vt 0.334853 0.334853 1473 | vt 0.306569 0.306569 1474 | vt 0.278284 0.278284 1475 | vt 0.413644 0.424680 1476 | vt 0.407583 0.429655 1477 | vt 0.385360 0.396396 1478 | vt 0.401521 0.434629 1479 | vt 0.379298 0.401370 1480 | vt 0.395460 0.439604 1481 | vt 0.373237 0.406345 1482 | vt 0.367175 0.411319 1483 | vt 0.357076 0.368112 1484 | vt 0.351014 0.373086 1485 | vt 0.328791 0.339827 1486 | vt 0.344953 0.378061 1487 | vt 0.322730 0.344802 1488 | vt 0.300507 0.311543 1489 | vt 0.338891 0.383035 1490 | vt 0.316668 0.349776 1491 | vt 0.294446 0.316518 1492 | vt 0.272223 0.283259 1493 | vt 0.376421 0.453249 1494 | vt 0.369506 0.456945 1495 | vt 0.354199 0.419990 1496 | vt 0.362590 0.460642 1497 | vt 0.347283 0.423687 1498 | vt 0.355675 0.464338 1499 | vt 0.340368 0.427383 1500 | vt 0.333452 0.431080 1501 | vt 0.331976 0.386732 1502 | vt 0.325060 0.390428 1503 | vt 0.309753 0.353473 1504 | vt 0.318145 0.394124 1505 | vt 0.302837 0.357169 1506 | vt 0.287530 0.320214 1507 | vt 0.311229 0.397821 1508 | vt 0.295922 0.360866 1509 | vt 0.280615 0.323910 1510 | vt 0.265307 0.286955 1511 | vt 0.334340 0.474007 1512 | vt 0.326837 0.476284 1513 | vt 0.319033 0.437052 1514 | vt 0.319333 0.478560 1515 | vt 0.311529 0.439328 1516 | vt 0.311829 0.480836 1517 | vt 0.304026 0.441605 1518 | vt 0.296522 0.443881 1519 | vt 0.303726 0.400097 1520 | vt 0.296222 0.402373 1521 | vt 0.288418 0.363142 1522 | vt 0.288718 0.404649 1523 | vt 0.280915 0.365418 1524 | vt 0.273111 0.326187 1525 | vt 0.281214 0.406926 1526 | vt 0.273411 0.367694 1527 | vt 0.265607 0.328463 1528 | vt 0.257804 0.289231 1529 | vt 0.289018 0.486157 1530 | vt 0.281214 0.486926 1531 | vt 0.281214 0.446926 1532 | vt 0.273411 0.487694 1533 | vt 0.273411 0.447694 1534 | vt 0.265607 0.488463 1535 | vt 0.265607 0.448463 1536 | vt 0.257804 0.449231 1537 | vt 0.273411 0.407694 1538 | vt 0.265607 0.408463 1539 | vt 0.265607 0.368463 1540 | vt 0.257804 0.409231 1541 | vt 0.257804 0.369231 1542 | vt 0.257804 0.329231 1543 | vn 0.0878 0.4455 -0.8910 1544 | vn 0.2599 0.4455 -0.8567 1545 | vn 0.4220 0.4455 -0.7896 1546 | vn 0.5680 0.4455 -0.6921 1547 | vn 0.6921 0.4455 -0.5680 1548 | vn 0.7896 0.4455 -0.4220 1549 | vn 0.8567 0.4455 -0.2599 1550 | vn 0.8910 0.4455 -0.0878 1551 | vn 0.8910 0.4455 0.0878 1552 | vn 0.8567 0.4455 0.2599 1553 | vn 0.7896 0.4455 0.4220 1554 | vn 0.6921 0.4455 0.5680 1555 | vn 0.5680 0.4455 0.6921 1556 | vn 0.4220 0.4455 0.7896 1557 | vn 0.2599 0.4455 0.8567 1558 | vn 0.0878 0.4455 0.8910 1559 | vn -0.0878 0.4455 0.8910 1560 | vn -0.2599 0.4455 0.8567 1561 | vn -0.4220 0.4455 0.7896 1562 | vn -0.5680 0.4455 0.6921 1563 | vn -0.6921 0.4455 0.5680 1564 | vn -0.7896 0.4455 0.4220 1565 | vn -0.8567 0.4455 0.2599 1566 | vn -0.8910 0.4455 0.0878 1567 | vn -0.8910 0.4455 -0.0878 1568 | vn -0.8567 0.4455 -0.2599 1569 | vn -0.7896 0.4455 -0.4220 1570 | vn -0.6921 0.4455 -0.5680 1571 | vn -0.5680 0.4455 -0.6921 1572 | vn -0.4220 0.4455 -0.7896 1573 | vn 0.0000 -1.0000 -0.0000 1574 | vn -0.2599 0.4455 -0.8567 1575 | vn -0.0878 0.4455 -0.8910 1576 | vn -0.8910 0.4455 -0.0877 1577 | vn -0.0877 0.4455 0.8910 1578 | vn 0.0877 0.4455 0.8910 1579 | vn 0.8910 0.4455 0.0877 1580 | vn 0.0877 0.4455 -0.8910 1581 | usemtl None 1582 | s off 1583 | f 1/1/1 39/2/1 34/3/1 1584 | f 2/4/2 48/5/2 49/6/2 1585 | f 3/7/3 58/8/3 59/9/3 1586 | f 4/10/4 68/11/4 69/12/4 1587 | f 5/13/5 78/14/5 79/15/5 1588 | f 6/16/6 88/17/6 89/18/6 1589 | f 7/19/7 98/20/7 99/21/7 1590 | f 8/22/8 108/23/8 109/24/8 1591 | f 9/25/9 118/26/9 119/27/9 1592 | f 10/28/10 128/29/10 129/30/10 1593 | f 11/31/11 138/32/11 139/33/11 1594 | f 12/34/12 148/35/12 149/36/12 1595 | f 13/37/13 158/38/13 159/39/13 1596 | f 14/40/14 168/41/14 169/42/14 1597 | f 15/43/15 178/44/15 179/45/15 1598 | f 16/46/16 188/47/16 189/48/16 1599 | f 17/49/17 198/50/17 199/51/17 1600 | f 18/52/18 208/53/18 209/54/18 1601 | f 19/55/19 218/56/19 219/57/19 1602 | f 20/58/20 228/59/20 229/60/20 1603 | f 21/61/21 238/62/21 239/63/21 1604 | f 22/64/22 248/65/22 249/66/22 1605 | f 23/67/23 258/68/23 259/69/23 1606 | f 24/70/24 268/71/24 269/72/24 1607 | f 25/73/25 278/74/25 279/75/25 1608 | f 26/76/26 288/77/26 289/78/26 1609 | f 27/79/27 298/80/27 299/81/27 1610 | f 28/82/28 308/83/28 309/84/28 1611 | f 29/85/29 318/86/29 319/87/29 1612 | f 30/88/30 328/89/30 329/90/30 1613 | f 1/91/31 34/92/31 35/93/31 36/94/31 37/95/31 38/96/31 2/97/31 49/98/31 50/99/31 51/100/31 52/101/31 53/102/31 3/103/31 59/104/31 60/105/31 61/106/31 62/107/31 63/108/31 4/109/31 69/110/31 70/111/31 71/112/31 72/113/31 73/114/31 5/115/31 79/116/31 80/117/31 81/118/31 82/119/31 83/120/31 6/121/31 89/122/31 90/123/31 91/124/31 92/125/31 93/126/31 7/127/31 99/128/31 100/129/31 101/130/31 102/131/31 103/132/31 8/133/31 109/134/31 110/135/31 111/136/31 112/137/31 113/138/31 9/139/31 119/140/31 120/141/31 121/142/31 122/143/31 123/144/31 10/145/31 129/146/31 130/147/31 131/148/31 132/149/31 133/150/31 11/151/31 139/152/31 140/153/31 141/154/31 142/155/31 143/156/31 12/157/31 149/158/31 150/159/31 151/160/31 152/161/31 153/162/31 13/163/31 159/164/31 160/165/31 161/166/31 162/167/31 163/168/31 14/169/31 169/170/31 170/171/31 171/172/31 172/173/31 173/174/31 15/175/31 179/176/31 180/177/31 181/178/31 182/179/31 183/180/31 16/181/31 189/182/31 190/183/31 191/184/31 192/185/31 193/186/31 17/187/31 199/188/31 200/189/31 201/190/31 202/191/31 203/192/31 18/193/31 209/194/31 210/195/31 211/196/31 212/197/31 213/198/31 19/199/31 219/200/31 220/201/31 221/202/31 222/203/31 223/204/31 20/205/31 229/206/31 230/207/31 231/208/31 232/209/31 233/210/31 21/211/31 239/212/31 240/213/31 241/214/31 242/215/31 243/216/31 22/217/31 249/218/31 250/219/31 251/220/31 252/221/31 253/222/31 23/223/31 259/224/31 260/225/31 261/226/31 262/227/31 263/228/31 24/229/31 269/230/31 270/231/31 271/232/31 272/233/31 273/234/31 25/235/31 279/236/31 280/237/31 281/238/31 282/239/31 283/240/31 26/241/31 289/242/31 290/243/31 291/244/31 292/245/31 293/246/31 27/247/31 299/248/31 300/249/31 301/250/31 302/251/31 303/252/31 28/253/31 309/254/31 310/255/31 311/256/31 312/257/31 313/258/31 29/259/31 319/260/31 320/261/31 321/262/31 322/263/31 323/264/31 30/265/31 329/266/31 330/267/31 331/268/31 332/269/31 333/270/31 31/271/31 339/272/31 340/273/31 341/274/31 342/275/31 343/276/31 32/277/31 349/278/31 350/279/31 351/280/31 352/281/31 353/282/31 1614 | f 31/283/32 338/284/32 339/285/32 1615 | f 32/286/33 348/287/33 349/288/33 1616 | f 353/289/33 39/2/33 1/1/33 1617 | f 352/290/33 354/291/33 353/289/33 1618 | f 351/292/33 355/293/33 352/290/33 1619 | f 350/294/33 357/295/33 351/292/33 1620 | f 349/288/33 360/296/33 350/294/33 1621 | f 353/289/33 354/291/33 39/2/33 1622 | f 354/291/33 40/297/33 39/2/33 1623 | f 352/290/33 355/293/33 354/291/33 1624 | f 355/293/33 356/298/33 354/291/33 1625 | f 354/291/33 356/298/33 40/297/33 1626 | f 356/298/33 41/299/33 40/297/33 1627 | f 351/292/33 357/295/33 355/293/33 1628 | f 357/295/33 358/300/33 355/293/33 1629 | f 355/293/33 358/300/33 356/298/33 1630 | f 358/300/33 359/301/33 356/298/33 1631 | f 356/298/33 359/301/33 41/299/33 1632 | f 359/301/33 42/302/33 41/299/33 1633 | f 350/294/33 360/296/33 357/295/33 1634 | f 360/296/33 361/303/33 357/295/33 1635 | f 357/295/33 361/303/33 358/300/33 1636 | f 361/303/33 362/304/33 358/300/33 1637 | f 358/300/33 362/304/33 359/301/33 1638 | f 362/304/33 363/305/33 359/301/33 1639 | f 359/301/33 363/305/33 42/302/33 1640 | f 363/305/33 43/306/33 42/302/33 1641 | f 349/288/33 348/287/33 360/296/33 1642 | f 348/287/33 347/307/33 360/296/33 1643 | f 360/296/33 347/307/33 361/303/33 1644 | f 347/307/33 346/308/33 361/303/33 1645 | f 361/303/33 346/308/33 362/304/33 1646 | f 346/308/33 345/309/33 362/304/33 1647 | f 362/304/33 345/309/33 363/305/33 1648 | f 345/309/33 344/310/33 363/305/33 1649 | f 363/305/33 344/310/33 43/306/33 1650 | f 344/310/33 33/311/33 43/306/33 1651 | f 343/312/32 348/287/32 32/286/32 1652 | f 342/313/32 364/314/32 343/312/32 1653 | f 341/315/32 365/316/32 342/313/32 1654 | f 340/317/32 367/318/32 341/315/32 1655 | f 339/285/32 370/319/32 340/317/32 1656 | f 343/312/32 364/314/32 348/287/32 1657 | f 364/314/32 347/307/32 348/287/32 1658 | f 342/313/32 365/316/32 364/314/32 1659 | f 365/316/32 366/320/32 364/314/32 1660 | f 364/314/32 366/320/32 347/307/32 1661 | f 366/320/32 346/308/32 347/307/32 1662 | f 341/315/32 367/318/32 365/316/32 1663 | f 367/318/32 368/321/32 365/316/32 1664 | f 365/316/32 368/321/32 366/320/32 1665 | f 368/321/32 369/322/32 366/320/32 1666 | f 366/320/32 369/322/32 346/308/32 1667 | f 369/322/32 345/309/32 346/308/32 1668 | f 340/317/32 370/319/32 367/318/32 1669 | f 370/319/32 371/323/32 367/318/32 1670 | f 367/318/32 371/323/32 368/321/32 1671 | f 371/323/32 372/324/32 368/321/32 1672 | f 368/321/32 372/324/32 369/322/32 1673 | f 372/324/32 373/325/32 369/322/32 1674 | f 369/322/32 373/325/32 345/309/32 1675 | f 373/325/32 344/310/32 345/309/32 1676 | f 339/285/32 338/284/32 370/319/32 1677 | f 338/284/32 337/326/32 370/319/32 1678 | f 370/319/32 337/326/32 371/323/32 1679 | f 337/326/32 336/327/32 371/323/32 1680 | f 371/323/32 336/327/32 372/324/32 1681 | f 336/327/32 335/328/32 372/324/32 1682 | f 372/324/32 335/328/32 373/325/32 1683 | f 335/328/32 334/329/32 373/325/32 1684 | f 373/325/32 334/329/32 344/310/32 1685 | f 334/329/32 33/311/32 344/310/32 1686 | f 333/330/30 338/284/30 31/283/30 1687 | f 332/331/30 374/332/30 333/330/30 1688 | f 331/333/30 375/334/30 332/331/30 1689 | f 330/335/30 377/336/30 331/333/30 1690 | f 329/90/30 380/337/30 330/335/30 1691 | f 333/330/30 374/332/30 338/284/30 1692 | f 374/332/30 337/326/30 338/284/30 1693 | f 332/331/30 375/334/30 374/332/30 1694 | f 375/334/30 376/338/30 374/332/30 1695 | f 374/332/30 376/338/30 337/326/30 1696 | f 376/338/30 336/327/30 337/326/30 1697 | f 331/333/30 377/336/30 375/334/30 1698 | f 377/336/30 378/339/30 375/334/30 1699 | f 375/334/30 378/339/30 376/338/30 1700 | f 378/339/30 379/340/30 376/338/30 1701 | f 376/338/30 379/340/30 336/327/30 1702 | f 379/340/30 335/328/30 336/327/30 1703 | f 330/335/30 380/337/30 377/336/30 1704 | f 380/337/30 381/341/30 377/336/30 1705 | f 377/336/30 381/341/30 378/339/30 1706 | f 381/341/30 382/342/30 378/339/30 1707 | f 378/339/30 382/342/30 379/340/30 1708 | f 382/342/30 383/343/30 379/340/30 1709 | f 379/340/30 383/343/30 335/328/30 1710 | f 383/343/30 334/329/30 335/328/30 1711 | f 329/90/30 328/89/30 380/337/30 1712 | f 328/89/30 327/344/30 380/337/30 1713 | f 380/337/30 327/344/30 381/341/30 1714 | f 327/344/30 326/345/30 381/341/30 1715 | f 381/341/30 326/345/30 382/342/30 1716 | f 326/345/30 325/346/30 382/342/30 1717 | f 382/342/30 325/346/30 383/343/30 1718 | f 325/346/30 324/347/30 383/343/30 1719 | f 383/343/30 324/347/30 334/329/30 1720 | f 324/347/30 33/311/30 334/329/30 1721 | f 323/348/29 328/89/29 30/88/29 1722 | f 322/349/29 384/350/29 323/348/29 1723 | f 321/351/29 385/352/29 322/349/29 1724 | f 320/353/29 387/354/29 321/351/29 1725 | f 319/87/29 390/355/29 320/353/29 1726 | f 323/348/29 384/350/29 328/89/29 1727 | f 384/350/29 327/344/29 328/89/29 1728 | f 322/349/29 385/352/29 384/350/29 1729 | f 385/352/29 386/356/29 384/350/29 1730 | f 384/350/29 386/356/29 327/344/29 1731 | f 386/356/29 326/345/29 327/344/29 1732 | f 321/351/29 387/354/29 385/352/29 1733 | f 387/354/29 388/357/29 385/352/29 1734 | f 385/352/29 388/357/29 386/356/29 1735 | f 388/357/29 389/358/29 386/356/29 1736 | f 386/356/29 389/358/29 326/345/29 1737 | f 389/358/29 325/346/29 326/345/29 1738 | f 320/353/29 390/355/29 387/354/29 1739 | f 390/355/29 391/359/29 387/354/29 1740 | f 387/354/29 391/359/29 388/357/29 1741 | f 391/359/29 392/360/29 388/357/29 1742 | f 388/357/29 392/360/29 389/358/29 1743 | f 392/360/29 393/361/29 389/358/29 1744 | f 389/358/29 393/361/29 325/346/29 1745 | f 393/361/29 324/347/29 325/346/29 1746 | f 319/87/29 318/86/29 390/355/29 1747 | f 318/86/29 317/362/29 390/355/29 1748 | f 390/355/29 317/362/29 391/359/29 1749 | f 317/362/29 316/363/29 391/359/29 1750 | f 391/359/29 316/363/29 392/360/29 1751 | f 316/363/29 315/364/29 392/360/29 1752 | f 392/360/29 315/364/29 393/361/29 1753 | f 315/364/29 314/365/29 393/361/29 1754 | f 393/361/29 314/365/29 324/347/29 1755 | f 314/365/29 33/311/29 324/347/29 1756 | f 313/366/28 318/86/28 29/85/28 1757 | f 312/367/28 394/368/28 313/366/28 1758 | f 311/369/28 395/370/28 312/367/28 1759 | f 310/371/28 397/372/28 311/369/28 1760 | f 309/84/28 400/373/28 310/371/28 1761 | f 313/366/28 394/368/28 318/86/28 1762 | f 394/368/28 317/362/28 318/86/28 1763 | f 312/367/28 395/370/28 394/368/28 1764 | f 395/370/28 396/374/28 394/368/28 1765 | f 394/368/28 396/374/28 317/362/28 1766 | f 396/374/28 316/363/28 317/362/28 1767 | f 311/369/28 397/372/28 395/370/28 1768 | f 397/372/28 398/375/28 395/370/28 1769 | f 395/370/28 398/375/28 396/374/28 1770 | f 398/375/28 399/376/28 396/374/28 1771 | f 396/374/28 399/376/28 316/363/28 1772 | f 399/376/28 315/364/28 316/363/28 1773 | f 310/371/28 400/373/28 397/372/28 1774 | f 400/373/28 401/377/28 397/372/28 1775 | f 397/372/28 401/377/28 398/375/28 1776 | f 401/377/28 402/378/28 398/375/28 1777 | f 398/375/28 402/378/28 399/376/28 1778 | f 402/378/28 403/379/28 399/376/28 1779 | f 399/376/28 403/379/28 315/364/28 1780 | f 403/379/28 314/365/28 315/364/28 1781 | f 309/84/28 308/83/28 400/373/28 1782 | f 308/83/28 307/380/28 400/373/28 1783 | f 400/373/28 307/380/28 401/377/28 1784 | f 307/380/28 306/381/28 401/377/28 1785 | f 401/377/28 306/381/28 402/378/28 1786 | f 306/381/28 305/382/28 402/378/28 1787 | f 402/378/28 305/382/28 403/379/28 1788 | f 305/382/28 304/383/28 403/379/28 1789 | f 403/379/28 304/383/28 314/365/28 1790 | f 304/383/28 33/311/28 314/365/28 1791 | f 303/384/27 308/83/27 28/82/27 1792 | f 302/385/27 404/386/27 303/384/27 1793 | f 301/387/27 405/388/27 302/385/27 1794 | f 300/389/27 407/390/27 301/387/27 1795 | f 299/81/27 410/391/27 300/389/27 1796 | f 303/384/27 404/386/27 308/83/27 1797 | f 404/386/27 307/380/27 308/83/27 1798 | f 302/385/27 405/388/27 404/386/27 1799 | f 405/388/27 406/392/27 404/386/27 1800 | f 404/386/27 406/392/27 307/380/27 1801 | f 406/392/27 306/381/27 307/380/27 1802 | f 301/387/27 407/390/27 405/388/27 1803 | f 407/390/27 408/393/27 405/388/27 1804 | f 405/388/27 408/393/27 406/392/27 1805 | f 408/393/27 409/394/27 406/392/27 1806 | f 406/392/27 409/394/27 306/381/27 1807 | f 409/394/27 305/382/27 306/381/27 1808 | f 300/389/27 410/391/27 407/390/27 1809 | f 410/391/27 411/395/27 407/390/27 1810 | f 407/390/27 411/395/27 408/393/27 1811 | f 411/395/27 412/396/27 408/393/27 1812 | f 408/393/27 412/396/27 409/394/27 1813 | f 412/396/27 413/397/27 409/394/27 1814 | f 409/394/27 413/397/27 305/382/27 1815 | f 413/397/27 304/383/27 305/382/27 1816 | f 299/81/27 298/80/27 410/391/27 1817 | f 298/80/27 297/398/27 410/391/27 1818 | f 410/391/27 297/398/27 411/395/27 1819 | f 297/398/27 296/399/27 411/395/27 1820 | f 411/395/27 296/399/27 412/396/27 1821 | f 296/399/27 295/400/27 412/396/27 1822 | f 412/396/27 295/400/27 413/397/27 1823 | f 295/400/27 294/401/27 413/397/27 1824 | f 413/397/27 294/401/27 304/383/27 1825 | f 294/401/27 33/311/27 304/383/27 1826 | f 293/402/26 298/80/26 27/79/26 1827 | f 292/403/26 414/404/26 293/402/26 1828 | f 291/405/26 415/406/26 292/403/26 1829 | f 290/407/26 417/408/26 291/405/26 1830 | f 289/78/26 420/409/26 290/407/26 1831 | f 293/402/26 414/404/26 298/80/26 1832 | f 414/404/26 297/398/26 298/80/26 1833 | f 292/403/26 415/406/26 414/404/26 1834 | f 415/406/26 416/410/26 414/404/26 1835 | f 414/404/26 416/410/26 297/398/26 1836 | f 416/410/26 296/399/26 297/398/26 1837 | f 291/405/26 417/408/26 415/406/26 1838 | f 417/408/26 418/411/26 415/406/26 1839 | f 415/406/26 418/411/26 416/410/26 1840 | f 418/411/26 419/412/26 416/410/26 1841 | f 416/410/26 419/412/26 296/399/26 1842 | f 419/412/26 295/400/26 296/399/26 1843 | f 290/407/26 420/409/26 417/408/26 1844 | f 420/409/26 421/413/26 417/408/26 1845 | f 417/408/26 421/413/26 418/411/26 1846 | f 421/413/26 422/414/26 418/411/26 1847 | f 418/411/26 422/414/26 419/412/26 1848 | f 422/414/26 423/415/26 419/412/26 1849 | f 419/412/26 423/415/26 295/400/26 1850 | f 423/415/26 294/401/26 295/400/26 1851 | f 289/78/26 288/77/26 420/409/26 1852 | f 288/77/26 287/416/26 420/409/26 1853 | f 420/409/26 287/416/26 421/413/26 1854 | f 287/416/26 286/417/26 421/413/26 1855 | f 421/413/26 286/417/26 422/414/26 1856 | f 286/417/26 285/418/26 422/414/26 1857 | f 422/414/26 285/418/26 423/415/26 1858 | f 285/418/26 284/419/26 423/415/26 1859 | f 423/415/26 284/419/26 294/401/26 1860 | f 284/419/26 33/311/26 294/401/26 1861 | f 283/420/25 288/77/25 26/76/25 1862 | f 282/421/25 424/422/25 283/420/25 1863 | f 281/423/25 425/424/25 282/421/25 1864 | f 280/425/25 427/426/25 281/423/25 1865 | f 279/75/25 430/427/25 280/425/25 1866 | f 283/420/25 424/422/25 288/77/25 1867 | f 424/422/25 287/416/25 288/77/25 1868 | f 282/421/25 425/424/25 424/422/25 1869 | f 425/424/25 426/428/25 424/422/25 1870 | f 424/422/25 426/428/25 287/416/25 1871 | f 426/428/25 286/417/25 287/416/25 1872 | f 281/423/34 427/426/34 425/424/34 1873 | f 427/426/25 428/429/25 425/424/25 1874 | f 425/424/25 428/429/25 426/428/25 1875 | f 428/429/25 429/430/25 426/428/25 1876 | f 426/428/25 429/430/25 286/417/25 1877 | f 429/430/25 285/418/25 286/417/25 1878 | f 280/425/25 430/427/25 427/426/25 1879 | f 430/427/25 431/431/25 427/426/25 1880 | f 427/426/25 431/431/25 428/429/25 1881 | f 431/431/25 432/432/25 428/429/25 1882 | f 428/429/25 432/432/25 429/430/25 1883 | f 432/432/25 433/433/25 429/430/25 1884 | f 429/430/25 433/433/25 285/418/25 1885 | f 433/433/25 284/419/25 285/418/25 1886 | f 279/75/25 278/74/25 430/427/25 1887 | f 278/74/25 277/434/25 430/427/25 1888 | f 430/427/25 277/434/25 431/431/25 1889 | f 277/434/25 276/435/25 431/431/25 1890 | f 431/431/25 276/435/25 432/432/25 1891 | f 276/435/25 275/436/25 432/432/25 1892 | f 432/432/25 275/436/25 433/433/25 1893 | f 275/436/25 274/437/25 433/433/25 1894 | f 433/433/25 274/437/25 284/419/25 1895 | f 274/437/25 33/311/25 284/419/25 1896 | f 273/438/24 278/74/24 25/73/24 1897 | f 272/439/24 434/440/24 273/438/24 1898 | f 271/441/24 435/442/24 272/439/24 1899 | f 270/443/24 437/444/24 271/441/24 1900 | f 269/72/24 440/445/24 270/443/24 1901 | f 273/438/24 434/440/24 278/74/24 1902 | f 434/440/24 277/434/24 278/74/24 1903 | f 272/439/24 435/442/24 434/440/24 1904 | f 435/442/24 436/446/24 434/440/24 1905 | f 434/440/24 436/446/24 277/434/24 1906 | f 436/446/24 276/435/24 277/434/24 1907 | f 271/441/24 437/444/24 435/442/24 1908 | f 437/444/24 438/447/24 435/442/24 1909 | f 435/442/24 438/447/24 436/446/24 1910 | f 438/447/24 439/448/24 436/446/24 1911 | f 436/446/24 439/448/24 276/435/24 1912 | f 439/448/24 275/436/24 276/435/24 1913 | f 270/443/24 440/445/24 437/444/24 1914 | f 440/445/24 441/449/24 437/444/24 1915 | f 437/444/24 441/449/24 438/447/24 1916 | f 441/449/24 442/450/24 438/447/24 1917 | f 438/447/24 442/450/24 439/448/24 1918 | f 442/450/24 443/451/24 439/448/24 1919 | f 439/448/24 443/451/24 275/436/24 1920 | f 443/451/24 274/437/24 275/436/24 1921 | f 269/72/24 268/71/24 440/445/24 1922 | f 268/71/24 267/452/24 440/445/24 1923 | f 440/445/24 267/452/24 441/449/24 1924 | f 267/452/24 266/453/24 441/449/24 1925 | f 441/449/24 266/453/24 442/450/24 1926 | f 266/453/24 265/454/24 442/450/24 1927 | f 442/450/24 265/454/24 443/451/24 1928 | f 265/454/24 264/455/24 443/451/24 1929 | f 443/451/24 264/455/24 274/437/24 1930 | f 264/455/24 33/311/24 274/437/24 1931 | f 263/456/23 268/71/23 24/70/23 1932 | f 262/457/23 444/458/23 263/456/23 1933 | f 261/459/23 445/460/23 262/457/23 1934 | f 260/461/23 447/462/23 261/459/23 1935 | f 259/69/23 450/463/23 260/461/23 1936 | f 263/456/23 444/458/23 268/71/23 1937 | f 444/458/23 267/452/23 268/71/23 1938 | f 262/457/23 445/460/23 444/458/23 1939 | f 445/460/23 446/464/23 444/458/23 1940 | f 444/458/23 446/464/23 267/452/23 1941 | f 446/464/23 266/453/23 267/452/23 1942 | f 261/459/23 447/462/23 445/460/23 1943 | f 447/462/23 448/465/23 445/460/23 1944 | f 445/460/23 448/465/23 446/464/23 1945 | f 448/465/23 449/466/23 446/464/23 1946 | f 446/464/23 449/466/23 266/453/23 1947 | f 449/466/23 265/454/23 266/453/23 1948 | f 260/461/23 450/463/23 447/462/23 1949 | f 450/463/23 451/467/23 447/462/23 1950 | f 447/462/23 451/467/23 448/465/23 1951 | f 451/467/23 452/468/23 448/465/23 1952 | f 448/465/23 452/468/23 449/466/23 1953 | f 452/468/23 453/469/23 449/466/23 1954 | f 449/466/23 453/469/23 265/454/23 1955 | f 453/469/23 264/455/23 265/454/23 1956 | f 259/69/23 258/68/23 450/463/23 1957 | f 258/68/23 257/470/23 450/463/23 1958 | f 450/463/23 257/470/23 451/467/23 1959 | f 257/470/23 256/471/23 451/467/23 1960 | f 451/467/23 256/471/23 452/468/23 1961 | f 256/471/23 255/472/23 452/468/23 1962 | f 452/468/23 255/472/23 453/469/23 1963 | f 255/472/23 254/473/23 453/469/23 1964 | f 453/469/23 254/473/23 264/455/23 1965 | f 254/473/23 33/311/23 264/455/23 1966 | f 253/474/22 258/68/22 23/67/22 1967 | f 252/475/22 454/476/22 253/474/22 1968 | f 251/477/22 455/478/22 252/475/22 1969 | f 250/479/22 457/480/22 251/477/22 1970 | f 249/66/22 460/481/22 250/479/22 1971 | f 253/474/22 454/476/22 258/68/22 1972 | f 454/476/22 257/470/22 258/68/22 1973 | f 252/475/22 455/478/22 454/476/22 1974 | f 455/478/22 456/482/22 454/476/22 1975 | f 454/476/22 456/482/22 257/470/22 1976 | f 456/482/22 256/471/22 257/470/22 1977 | f 251/477/22 457/480/22 455/478/22 1978 | f 457/480/22 458/483/22 455/478/22 1979 | f 455/478/22 458/483/22 456/482/22 1980 | f 458/483/22 459/484/22 456/482/22 1981 | f 456/482/22 459/484/22 256/471/22 1982 | f 459/484/22 255/472/22 256/471/22 1983 | f 250/479/22 460/481/22 457/480/22 1984 | f 460/481/22 461/485/22 457/480/22 1985 | f 457/480/22 461/485/22 458/483/22 1986 | f 461/485/22 462/486/22 458/483/22 1987 | f 458/483/22 462/486/22 459/484/22 1988 | f 462/486/22 463/487/22 459/484/22 1989 | f 459/484/22 463/487/22 255/472/22 1990 | f 463/487/22 254/473/22 255/472/22 1991 | f 249/66/22 248/65/22 460/481/22 1992 | f 248/65/22 247/488/22 460/481/22 1993 | f 460/481/22 247/488/22 461/485/22 1994 | f 247/488/22 246/489/22 461/485/22 1995 | f 461/485/22 246/489/22 462/486/22 1996 | f 246/489/22 245/490/22 462/486/22 1997 | f 462/486/22 245/490/22 463/487/22 1998 | f 245/490/22 244/491/22 463/487/22 1999 | f 463/487/22 244/491/22 254/473/22 2000 | f 244/491/22 33/311/22 254/473/22 2001 | f 243/492/21 248/65/21 22/64/21 2002 | f 242/493/21 464/494/21 243/492/21 2003 | f 241/495/21 465/496/21 242/493/21 2004 | f 240/497/21 467/498/21 241/495/21 2005 | f 239/63/21 470/499/21 240/497/21 2006 | f 243/492/21 464/494/21 248/65/21 2007 | f 464/494/21 247/488/21 248/65/21 2008 | f 242/493/21 465/496/21 464/494/21 2009 | f 465/496/21 466/500/21 464/494/21 2010 | f 464/494/21 466/500/21 247/488/21 2011 | f 466/500/21 246/489/21 247/488/21 2012 | f 241/495/21 467/498/21 465/496/21 2013 | f 467/498/21 468/501/21 465/496/21 2014 | f 465/496/21 468/501/21 466/500/21 2015 | f 468/501/21 469/502/21 466/500/21 2016 | f 466/500/21 469/502/21 246/489/21 2017 | f 469/502/21 245/490/21 246/489/21 2018 | f 240/497/21 470/499/21 467/498/21 2019 | f 470/499/21 471/503/21 467/498/21 2020 | f 467/498/21 471/503/21 468/501/21 2021 | f 471/503/21 472/504/21 468/501/21 2022 | f 468/501/21 472/504/21 469/502/21 2023 | f 472/504/21 473/505/21 469/502/21 2024 | f 469/502/21 473/505/21 245/490/21 2025 | f 473/505/21 244/491/21 245/490/21 2026 | f 239/63/21 238/62/21 470/499/21 2027 | f 238/62/21 237/506/21 470/499/21 2028 | f 470/499/21 237/506/21 471/503/21 2029 | f 237/506/21 236/507/21 471/503/21 2030 | f 471/503/21 236/507/21 472/504/21 2031 | f 236/507/21 235/508/21 472/504/21 2032 | f 472/504/21 235/508/21 473/505/21 2033 | f 235/508/21 234/509/21 473/505/21 2034 | f 473/505/21 234/509/21 244/491/21 2035 | f 234/509/21 33/311/21 244/491/21 2036 | f 233/510/20 238/62/20 21/61/20 2037 | f 232/511/20 474/512/20 233/510/20 2038 | f 231/513/20 475/514/20 232/511/20 2039 | f 230/515/20 477/516/20 231/513/20 2040 | f 229/60/20 480/517/20 230/515/20 2041 | f 233/510/20 474/512/20 238/62/20 2042 | f 474/512/20 237/506/20 238/62/20 2043 | f 232/511/20 475/514/20 474/512/20 2044 | f 475/514/20 476/518/20 474/512/20 2045 | f 474/512/20 476/518/20 237/506/20 2046 | f 476/518/20 236/507/20 237/506/20 2047 | f 231/513/20 477/516/20 475/514/20 2048 | f 477/516/20 478/519/20 475/514/20 2049 | f 475/514/20 478/519/20 476/518/20 2050 | f 478/519/20 479/520/20 476/518/20 2051 | f 476/518/20 479/520/20 236/507/20 2052 | f 479/520/20 235/508/20 236/507/20 2053 | f 230/515/20 480/517/20 477/516/20 2054 | f 480/517/20 481/521/20 477/516/20 2055 | f 477/516/20 481/521/20 478/519/20 2056 | f 481/521/20 482/522/20 478/519/20 2057 | f 478/519/20 482/522/20 479/520/20 2058 | f 482/522/20 483/523/20 479/520/20 2059 | f 479/520/20 483/523/20 235/508/20 2060 | f 483/523/20 234/509/20 235/508/20 2061 | f 229/60/20 228/59/20 480/517/20 2062 | f 228/59/20 227/524/20 480/517/20 2063 | f 480/517/20 227/524/20 481/521/20 2064 | f 227/524/20 226/525/20 481/521/20 2065 | f 481/521/20 226/525/20 482/522/20 2066 | f 226/525/20 225/526/20 482/522/20 2067 | f 482/522/20 225/526/20 483/523/20 2068 | f 225/526/20 224/527/20 483/523/20 2069 | f 483/523/20 224/527/20 234/509/20 2070 | f 224/527/20 33/311/20 234/509/20 2071 | f 223/528/19 228/59/19 20/58/19 2072 | f 222/529/19 484/530/19 223/528/19 2073 | f 221/531/19 485/532/19 222/529/19 2074 | f 220/533/19 487/534/19 221/531/19 2075 | f 219/57/19 490/535/19 220/533/19 2076 | f 223/528/19 484/530/19 228/59/19 2077 | f 484/530/19 227/524/19 228/59/19 2078 | f 222/529/19 485/532/19 484/530/19 2079 | f 485/532/19 486/536/19 484/530/19 2080 | f 484/530/19 486/536/19 227/524/19 2081 | f 486/536/19 226/525/19 227/524/19 2082 | f 221/531/19 487/534/19 485/532/19 2083 | f 487/534/19 488/537/19 485/532/19 2084 | f 485/532/19 488/537/19 486/536/19 2085 | f 488/537/19 489/538/19 486/536/19 2086 | f 486/536/19 489/538/19 226/525/19 2087 | f 489/538/19 225/526/19 226/525/19 2088 | f 220/533/19 490/535/19 487/534/19 2089 | f 490/535/19 491/539/19 487/534/19 2090 | f 487/534/19 491/539/19 488/537/19 2091 | f 491/539/19 492/540/19 488/537/19 2092 | f 488/537/19 492/540/19 489/538/19 2093 | f 492/540/19 493/541/19 489/538/19 2094 | f 489/538/19 493/541/19 225/526/19 2095 | f 493/541/19 224/527/19 225/526/19 2096 | f 219/57/19 218/56/19 490/535/19 2097 | f 218/56/19 217/542/19 490/535/19 2098 | f 490/535/19 217/542/19 491/539/19 2099 | f 217/542/19 216/543/19 491/539/19 2100 | f 491/539/19 216/543/19 492/540/19 2101 | f 216/543/19 215/544/19 492/540/19 2102 | f 492/540/19 215/544/19 493/541/19 2103 | f 215/544/19 214/545/19 493/541/19 2104 | f 493/541/19 214/545/19 224/527/19 2105 | f 214/545/19 33/311/19 224/527/19 2106 | f 213/546/18 218/56/18 19/55/18 2107 | f 212/547/18 494/548/18 213/546/18 2108 | f 211/549/18 495/550/18 212/547/18 2109 | f 210/551/18 497/552/18 211/549/18 2110 | f 209/54/18 500/553/18 210/551/18 2111 | f 213/546/18 494/548/18 218/56/18 2112 | f 494/548/18 217/542/18 218/56/18 2113 | f 212/547/18 495/550/18 494/548/18 2114 | f 495/550/18 496/554/18 494/548/18 2115 | f 494/548/18 496/554/18 217/542/18 2116 | f 496/554/18 216/543/18 217/542/18 2117 | f 211/549/18 497/552/18 495/550/18 2118 | f 497/552/18 498/555/18 495/550/18 2119 | f 495/550/18 498/555/18 496/554/18 2120 | f 498/555/18 499/556/18 496/554/18 2121 | f 496/554/18 499/556/18 216/543/18 2122 | f 499/556/18 215/544/18 216/543/18 2123 | f 210/551/18 500/553/18 497/552/18 2124 | f 500/553/18 501/557/18 497/552/18 2125 | f 497/552/18 501/557/18 498/555/18 2126 | f 501/557/18 502/558/18 498/555/18 2127 | f 498/555/18 502/558/18 499/556/18 2128 | f 502/558/18 503/559/18 499/556/18 2129 | f 499/556/18 503/559/18 215/544/18 2130 | f 503/559/18 214/545/18 215/544/18 2131 | f 209/54/18 208/53/18 500/553/18 2132 | f 208/53/18 207/560/18 500/553/18 2133 | f 500/553/18 207/560/18 501/557/18 2134 | f 207/560/18 206/561/18 501/557/18 2135 | f 501/557/18 206/561/18 502/558/18 2136 | f 206/561/18 205/562/18 502/558/18 2137 | f 502/558/18 205/562/18 503/559/18 2138 | f 205/562/18 204/563/18 503/559/18 2139 | f 503/559/18 204/563/18 214/545/18 2140 | f 204/563/18 33/311/18 214/545/18 2141 | f 203/564/17 208/53/17 18/52/17 2142 | f 202/565/17 504/566/17 203/564/17 2143 | f 201/567/17 505/568/17 202/565/17 2144 | f 200/569/17 507/570/17 201/567/17 2145 | f 199/51/17 510/571/17 200/569/17 2146 | f 203/564/17 504/566/17 208/53/17 2147 | f 504/566/17 207/560/17 208/53/17 2148 | f 202/565/17 505/568/17 504/566/17 2149 | f 505/568/17 506/572/17 504/566/17 2150 | f 504/566/17 506/572/17 207/560/17 2151 | f 506/572/17 206/561/17 207/560/17 2152 | f 201/567/35 507/570/35 505/568/35 2153 | f 507/570/17 508/573/17 505/568/17 2154 | f 505/568/17 508/573/17 506/572/17 2155 | f 508/573/17 509/574/17 506/572/17 2156 | f 506/572/17 509/574/17 206/561/17 2157 | f 509/574/17 205/562/17 206/561/17 2158 | f 200/569/17 510/571/17 507/570/17 2159 | f 510/571/17 511/575/17 507/570/17 2160 | f 507/570/17 511/575/17 508/573/17 2161 | f 511/575/17 512/576/17 508/573/17 2162 | f 508/573/17 512/576/17 509/574/17 2163 | f 512/576/17 513/577/17 509/574/17 2164 | f 509/574/17 513/577/17 205/562/17 2165 | f 513/577/17 204/563/17 205/562/17 2166 | f 199/51/17 198/50/17 510/571/17 2167 | f 198/50/17 197/578/17 510/571/17 2168 | f 510/571/17 197/578/17 511/575/17 2169 | f 197/578/17 196/579/17 511/575/17 2170 | f 511/575/17 196/579/17 512/576/17 2171 | f 196/579/17 195/580/17 512/576/17 2172 | f 512/576/17 195/580/17 513/577/17 2173 | f 195/580/17 194/581/17 513/577/17 2174 | f 513/577/17 194/581/17 204/563/17 2175 | f 194/581/17 33/311/17 204/563/17 2176 | f 193/582/16 198/50/16 17/49/16 2177 | f 192/583/16 514/584/16 193/582/16 2178 | f 191/585/16 515/586/16 192/583/16 2179 | f 190/587/16 517/588/16 191/585/16 2180 | f 189/48/16 520/589/16 190/587/16 2181 | f 193/582/16 514/584/16 198/50/16 2182 | f 514/584/16 197/578/16 198/50/16 2183 | f 192/583/36 515/586/36 514/584/36 2184 | f 515/586/16 516/590/16 514/584/16 2185 | f 514/584/16 516/590/16 197/578/16 2186 | f 516/590/16 196/579/16 197/578/16 2187 | f 191/585/16 517/588/16 515/586/16 2188 | f 517/588/16 518/591/16 515/586/16 2189 | f 515/586/16 518/591/16 516/590/16 2190 | f 518/591/16 519/592/16 516/590/16 2191 | f 516/590/16 519/592/16 196/579/16 2192 | f 519/592/16 195/580/16 196/579/16 2193 | f 190/587/16 520/589/16 517/588/16 2194 | f 520/589/16 521/593/16 517/588/16 2195 | f 517/588/16 521/593/16 518/591/16 2196 | f 521/593/16 522/594/16 518/591/16 2197 | f 518/591/16 522/594/16 519/592/16 2198 | f 522/594/16 523/595/16 519/592/16 2199 | f 519/592/16 523/595/16 195/580/16 2200 | f 523/595/16 194/581/16 195/580/16 2201 | f 189/48/16 188/47/16 520/589/16 2202 | f 188/47/16 187/596/16 520/589/16 2203 | f 520/589/16 187/596/16 521/593/16 2204 | f 187/596/16 186/597/16 521/593/16 2205 | f 521/593/16 186/597/16 522/594/16 2206 | f 186/597/16 185/598/16 522/594/16 2207 | f 522/594/16 185/598/16 523/595/16 2208 | f 185/598/16 184/599/16 523/595/16 2209 | f 523/595/16 184/599/16 194/581/16 2210 | f 184/599/16 33/311/16 194/581/16 2211 | f 183/600/15 188/47/15 16/46/15 2212 | f 182/601/15 524/602/15 183/600/15 2213 | f 181/603/15 525/604/15 182/601/15 2214 | f 180/605/15 527/606/15 181/603/15 2215 | f 179/45/15 530/607/15 180/605/15 2216 | f 183/600/15 524/602/15 188/47/15 2217 | f 524/602/15 187/596/15 188/47/15 2218 | f 182/601/15 525/604/15 524/602/15 2219 | f 525/604/15 526/608/15 524/602/15 2220 | f 524/602/15 526/608/15 187/596/15 2221 | f 526/608/15 186/597/15 187/596/15 2222 | f 181/603/15 527/606/15 525/604/15 2223 | f 527/606/15 528/609/15 525/604/15 2224 | f 525/604/15 528/609/15 526/608/15 2225 | f 528/609/15 529/610/15 526/608/15 2226 | f 526/608/15 529/610/15 186/597/15 2227 | f 529/610/15 185/598/15 186/597/15 2228 | f 180/605/15 530/607/15 527/606/15 2229 | f 530/607/15 531/611/15 527/606/15 2230 | f 527/606/15 531/611/15 528/609/15 2231 | f 531/611/15 532/612/15 528/609/15 2232 | f 528/609/15 532/612/15 529/610/15 2233 | f 532/612/15 533/613/15 529/610/15 2234 | f 529/610/15 533/613/15 185/598/15 2235 | f 533/613/15 184/599/15 185/598/15 2236 | f 179/45/15 178/44/15 530/607/15 2237 | f 178/44/15 177/614/15 530/607/15 2238 | f 530/607/15 177/614/15 531/611/15 2239 | f 177/614/15 176/615/15 531/611/15 2240 | f 531/611/15 176/615/15 532/612/15 2241 | f 176/615/15 175/616/15 532/612/15 2242 | f 532/612/15 175/616/15 533/613/15 2243 | f 175/616/15 174/617/15 533/613/15 2244 | f 533/613/15 174/617/15 184/599/15 2245 | f 174/617/15 33/311/15 184/599/15 2246 | f 173/618/14 178/44/14 15/43/14 2247 | f 172/619/14 534/620/14 173/618/14 2248 | f 171/621/14 535/622/14 172/619/14 2249 | f 170/623/14 537/624/14 171/621/14 2250 | f 169/42/14 540/625/14 170/623/14 2251 | f 173/618/14 534/620/14 178/44/14 2252 | f 534/620/14 177/614/14 178/44/14 2253 | f 172/619/14 535/622/14 534/620/14 2254 | f 535/622/14 536/626/14 534/620/14 2255 | f 534/620/14 536/626/14 177/614/14 2256 | f 536/626/14 176/615/14 177/614/14 2257 | f 171/621/14 537/624/14 535/622/14 2258 | f 537/624/14 538/627/14 535/622/14 2259 | f 535/622/14 538/627/14 536/626/14 2260 | f 538/627/14 539/628/14 536/626/14 2261 | f 536/626/14 539/628/14 176/615/14 2262 | f 539/628/14 175/616/14 176/615/14 2263 | f 170/623/14 540/625/14 537/624/14 2264 | f 540/625/14 541/629/14 537/624/14 2265 | f 537/624/14 541/629/14 538/627/14 2266 | f 541/629/14 542/630/14 538/627/14 2267 | f 538/627/14 542/630/14 539/628/14 2268 | f 542/630/14 543/631/14 539/628/14 2269 | f 539/628/14 543/631/14 175/616/14 2270 | f 543/631/14 174/617/14 175/616/14 2271 | f 169/42/14 168/41/14 540/625/14 2272 | f 168/41/14 167/632/14 540/625/14 2273 | f 540/625/14 167/632/14 541/629/14 2274 | f 167/632/14 166/633/14 541/629/14 2275 | f 541/629/14 166/633/14 542/630/14 2276 | f 166/633/14 165/634/14 542/630/14 2277 | f 542/630/14 165/634/14 543/631/14 2278 | f 165/634/14 164/635/14 543/631/14 2279 | f 543/631/14 164/635/14 174/617/14 2280 | f 164/635/14 33/311/14 174/617/14 2281 | f 163/636/13 168/41/13 14/40/13 2282 | f 162/637/13 544/638/13 163/636/13 2283 | f 161/639/13 545/640/13 162/637/13 2284 | f 160/641/13 547/642/13 161/639/13 2285 | f 159/39/13 550/643/13 160/641/13 2286 | f 163/636/13 544/638/13 168/41/13 2287 | f 544/638/13 167/632/13 168/41/13 2288 | f 162/637/13 545/640/13 544/638/13 2289 | f 545/640/13 546/644/13 544/638/13 2290 | f 544/638/13 546/644/13 167/632/13 2291 | f 546/644/13 166/633/13 167/632/13 2292 | f 161/639/13 547/642/13 545/640/13 2293 | f 547/642/13 548/645/13 545/640/13 2294 | f 545/640/13 548/645/13 546/644/13 2295 | f 548/645/13 549/646/13 546/644/13 2296 | f 546/644/13 549/646/13 166/633/13 2297 | f 549/646/13 165/634/13 166/633/13 2298 | f 160/641/13 550/643/13 547/642/13 2299 | f 550/643/13 551/647/13 547/642/13 2300 | f 547/642/13 551/647/13 548/645/13 2301 | f 551/647/13 552/648/13 548/645/13 2302 | f 548/645/13 552/648/13 549/646/13 2303 | f 552/648/13 553/649/13 549/646/13 2304 | f 549/646/13 553/649/13 165/634/13 2305 | f 553/649/13 164/635/13 165/634/13 2306 | f 159/39/13 158/38/13 550/643/13 2307 | f 158/38/13 157/650/13 550/643/13 2308 | f 550/643/13 157/650/13 551/647/13 2309 | f 157/650/13 156/651/13 551/647/13 2310 | f 551/647/13 156/651/13 552/648/13 2311 | f 156/651/13 155/652/13 552/648/13 2312 | f 552/648/13 155/652/13 553/649/13 2313 | f 155/652/13 154/653/13 553/649/13 2314 | f 553/649/13 154/653/13 164/635/13 2315 | f 154/653/13 33/311/13 164/635/13 2316 | f 153/654/12 158/38/12 13/37/12 2317 | f 152/655/12 554/656/12 153/654/12 2318 | f 151/657/12 555/658/12 152/655/12 2319 | f 150/659/12 557/660/12 151/657/12 2320 | f 149/36/12 560/661/12 150/659/12 2321 | f 153/654/12 554/656/12 158/38/12 2322 | f 554/656/12 157/650/12 158/38/12 2323 | f 152/655/12 555/658/12 554/656/12 2324 | f 555/658/12 556/662/12 554/656/12 2325 | f 554/656/12 556/662/12 157/650/12 2326 | f 556/662/12 156/651/12 157/650/12 2327 | f 151/657/12 557/660/12 555/658/12 2328 | f 557/660/12 558/663/12 555/658/12 2329 | f 555/658/12 558/663/12 556/662/12 2330 | f 558/663/12 559/664/12 556/662/12 2331 | f 556/662/12 559/664/12 156/651/12 2332 | f 559/664/12 155/652/12 156/651/12 2333 | f 150/659/12 560/661/12 557/660/12 2334 | f 560/661/12 561/665/12 557/660/12 2335 | f 557/660/12 561/665/12 558/663/12 2336 | f 561/665/12 562/666/12 558/663/12 2337 | f 558/663/12 562/666/12 559/664/12 2338 | f 562/666/12 563/667/12 559/664/12 2339 | f 559/664/12 563/667/12 155/652/12 2340 | f 563/667/12 154/653/12 155/652/12 2341 | f 149/36/12 148/35/12 560/661/12 2342 | f 148/35/12 147/668/12 560/661/12 2343 | f 560/661/12 147/668/12 561/665/12 2344 | f 147/668/12 146/669/12 561/665/12 2345 | f 561/665/12 146/669/12 562/666/12 2346 | f 146/669/12 145/670/12 562/666/12 2347 | f 562/666/12 145/670/12 563/667/12 2348 | f 145/670/12 144/671/12 563/667/12 2349 | f 563/667/12 144/671/12 154/653/12 2350 | f 144/671/12 33/311/12 154/653/12 2351 | f 143/672/11 148/35/11 12/34/11 2352 | f 142/673/11 564/674/11 143/672/11 2353 | f 141/675/11 565/676/11 142/673/11 2354 | f 140/677/11 567/678/11 141/675/11 2355 | f 139/33/11 570/679/11 140/677/11 2356 | f 143/672/11 564/674/11 148/35/11 2357 | f 564/674/11 147/668/11 148/35/11 2358 | f 142/673/11 565/676/11 564/674/11 2359 | f 565/676/11 566/680/11 564/674/11 2360 | f 564/674/11 566/680/11 147/668/11 2361 | f 566/680/11 146/669/11 147/668/11 2362 | f 141/675/11 567/678/11 565/676/11 2363 | f 567/678/11 568/681/11 565/676/11 2364 | f 565/676/11 568/681/11 566/680/11 2365 | f 568/681/11 569/682/11 566/680/11 2366 | f 566/680/11 569/682/11 146/669/11 2367 | f 569/682/11 145/670/11 146/669/11 2368 | f 140/677/11 570/679/11 567/678/11 2369 | f 570/679/11 571/683/11 567/678/11 2370 | f 567/678/11 571/683/11 568/681/11 2371 | f 571/683/11 572/684/11 568/681/11 2372 | f 568/681/11 572/684/11 569/682/11 2373 | f 572/684/11 573/685/11 569/682/11 2374 | f 569/682/11 573/685/11 145/670/11 2375 | f 573/685/11 144/671/11 145/670/11 2376 | f 139/33/11 138/32/11 570/679/11 2377 | f 138/32/11 137/686/11 570/679/11 2378 | f 570/679/11 137/686/11 571/683/11 2379 | f 137/686/11 136/687/11 571/683/11 2380 | f 571/683/11 136/687/11 572/684/11 2381 | f 136/687/11 135/688/11 572/684/11 2382 | f 572/684/11 135/688/11 573/685/11 2383 | f 135/688/11 134/689/11 573/685/11 2384 | f 573/685/11 134/689/11 144/671/11 2385 | f 134/689/11 33/311/11 144/671/11 2386 | f 133/690/10 138/32/10 11/31/10 2387 | f 132/691/10 574/692/10 133/690/10 2388 | f 131/693/10 575/694/10 132/691/10 2389 | f 130/695/10 577/696/10 131/693/10 2390 | f 129/30/10 580/697/10 130/695/10 2391 | f 133/690/10 574/692/10 138/32/10 2392 | f 574/692/10 137/686/10 138/32/10 2393 | f 132/691/10 575/694/10 574/692/10 2394 | f 575/694/10 576/698/10 574/692/10 2395 | f 574/692/10 576/698/10 137/686/10 2396 | f 576/698/10 136/687/10 137/686/10 2397 | f 131/693/10 577/696/10 575/694/10 2398 | f 577/696/10 578/699/10 575/694/10 2399 | f 575/694/10 578/699/10 576/698/10 2400 | f 578/699/10 579/700/10 576/698/10 2401 | f 576/698/10 579/700/10 136/687/10 2402 | f 579/700/10 135/688/10 136/687/10 2403 | f 130/695/10 580/697/10 577/696/10 2404 | f 580/697/10 581/701/10 577/696/10 2405 | f 577/696/10 581/701/10 578/699/10 2406 | f 581/701/10 582/702/10 578/699/10 2407 | f 578/699/10 582/702/10 579/700/10 2408 | f 582/702/10 583/703/10 579/700/10 2409 | f 579/700/10 583/703/10 135/688/10 2410 | f 583/703/10 134/689/10 135/688/10 2411 | f 129/30/10 128/29/10 580/697/10 2412 | f 128/29/10 127/704/10 580/697/10 2413 | f 580/697/10 127/704/10 581/701/10 2414 | f 127/704/10 126/705/10 581/701/10 2415 | f 581/701/10 126/705/10 582/702/10 2416 | f 126/705/10 125/706/10 582/702/10 2417 | f 582/702/10 125/706/10 583/703/10 2418 | f 125/706/10 124/707/10 583/703/10 2419 | f 583/703/10 124/707/10 134/689/10 2420 | f 124/707/10 33/311/10 134/689/10 2421 | f 123/708/9 128/29/9 10/28/9 2422 | f 122/709/9 584/710/9 123/708/9 2423 | f 121/711/9 585/712/9 122/709/9 2424 | f 120/713/9 587/714/9 121/711/9 2425 | f 119/27/9 590/715/9 120/713/9 2426 | f 123/708/9 584/710/9 128/29/9 2427 | f 584/710/9 127/704/9 128/29/9 2428 | f 122/709/9 585/712/9 584/710/9 2429 | f 585/712/9 586/716/9 584/710/9 2430 | f 584/710/9 586/716/9 127/704/9 2431 | f 586/716/9 126/705/9 127/704/9 2432 | f 121/711/37 587/714/37 585/712/37 2433 | f 587/714/9 588/717/9 585/712/9 2434 | f 585/712/9 588/717/9 586/716/9 2435 | f 588/717/9 589/718/9 586/716/9 2436 | f 586/716/9 589/718/9 126/705/9 2437 | f 589/718/9 125/706/9 126/705/9 2438 | f 120/713/9 590/715/9 587/714/9 2439 | f 590/715/9 591/719/9 587/714/9 2440 | f 587/714/9 591/719/9 588/717/9 2441 | f 591/719/9 592/720/9 588/717/9 2442 | f 588/717/9 592/720/9 589/718/9 2443 | f 592/720/9 593/721/9 589/718/9 2444 | f 589/718/9 593/721/9 125/706/9 2445 | f 593/721/9 124/707/9 125/706/9 2446 | f 119/27/9 118/26/9 590/715/9 2447 | f 118/26/9 117/722/9 590/715/9 2448 | f 590/715/9 117/722/9 591/719/9 2449 | f 117/722/9 116/723/9 591/719/9 2450 | f 591/719/9 116/723/9 592/720/9 2451 | f 116/723/9 115/724/9 592/720/9 2452 | f 592/720/9 115/724/9 593/721/9 2453 | f 115/724/9 114/725/9 593/721/9 2454 | f 593/721/9 114/725/9 124/707/9 2455 | f 114/725/9 33/311/9 124/707/9 2456 | f 113/726/8 118/26/8 9/25/8 2457 | f 112/727/8 594/728/8 113/726/8 2458 | f 111/729/8 595/730/8 112/727/8 2459 | f 110/731/8 597/732/8 111/729/8 2460 | f 109/24/8 600/733/8 110/731/8 2461 | f 113/726/8 594/728/8 118/26/8 2462 | f 594/728/8 117/722/8 118/26/8 2463 | f 112/727/8 595/730/8 594/728/8 2464 | f 595/730/8 596/734/8 594/728/8 2465 | f 594/728/8 596/734/8 117/722/8 2466 | f 596/734/8 116/723/8 117/722/8 2467 | f 111/729/8 597/732/8 595/730/8 2468 | f 597/732/8 598/735/8 595/730/8 2469 | f 595/730/8 598/735/8 596/734/8 2470 | f 598/735/8 599/736/8 596/734/8 2471 | f 596/734/8 599/736/8 116/723/8 2472 | f 599/736/8 115/724/8 116/723/8 2473 | f 110/731/8 600/733/8 597/732/8 2474 | f 600/733/8 601/737/8 597/732/8 2475 | f 597/732/8 601/737/8 598/735/8 2476 | f 601/737/8 602/738/8 598/735/8 2477 | f 598/735/8 602/738/8 599/736/8 2478 | f 602/738/8 603/739/8 599/736/8 2479 | f 599/736/8 603/739/8 115/724/8 2480 | f 603/739/8 114/725/8 115/724/8 2481 | f 109/24/8 108/23/8 600/733/8 2482 | f 108/23/8 107/740/8 600/733/8 2483 | f 600/733/8 107/740/8 601/737/8 2484 | f 107/740/8 106/741/8 601/737/8 2485 | f 601/737/8 106/741/8 602/738/8 2486 | f 106/741/8 105/742/8 602/738/8 2487 | f 602/738/8 105/742/8 603/739/8 2488 | f 105/742/8 104/743/8 603/739/8 2489 | f 603/739/8 104/743/8 114/725/8 2490 | f 104/743/8 33/311/8 114/725/8 2491 | f 103/744/7 108/23/7 8/22/7 2492 | f 102/745/7 604/746/7 103/744/7 2493 | f 101/747/7 605/748/7 102/745/7 2494 | f 100/749/7 607/750/7 101/747/7 2495 | f 99/21/7 610/751/7 100/749/7 2496 | f 103/744/7 604/746/7 108/23/7 2497 | f 604/746/7 107/740/7 108/23/7 2498 | f 102/745/7 605/748/7 604/746/7 2499 | f 605/748/7 606/752/7 604/746/7 2500 | f 604/746/7 606/752/7 107/740/7 2501 | f 606/752/7 106/741/7 107/740/7 2502 | f 101/747/7 607/750/7 605/748/7 2503 | f 607/750/7 608/753/7 605/748/7 2504 | f 605/748/7 608/753/7 606/752/7 2505 | f 608/753/7 609/754/7 606/752/7 2506 | f 606/752/7 609/754/7 106/741/7 2507 | f 609/754/7 105/742/7 106/741/7 2508 | f 100/749/7 610/751/7 607/750/7 2509 | f 610/751/7 611/755/7 607/750/7 2510 | f 607/750/7 611/755/7 608/753/7 2511 | f 611/755/7 612/756/7 608/753/7 2512 | f 608/753/7 612/756/7 609/754/7 2513 | f 612/756/7 613/757/7 609/754/7 2514 | f 609/754/7 613/757/7 105/742/7 2515 | f 613/757/7 104/743/7 105/742/7 2516 | f 99/21/7 98/20/7 610/751/7 2517 | f 98/20/7 97/758/7 610/751/7 2518 | f 610/751/7 97/758/7 611/755/7 2519 | f 97/758/7 96/759/7 611/755/7 2520 | f 611/755/7 96/759/7 612/756/7 2521 | f 96/759/7 95/760/7 612/756/7 2522 | f 612/756/7 95/760/7 613/757/7 2523 | f 95/760/7 94/761/7 613/757/7 2524 | f 613/757/7 94/761/7 104/743/7 2525 | f 94/761/7 33/311/7 104/743/7 2526 | f 93/762/6 98/20/6 7/19/6 2527 | f 92/763/6 614/764/6 93/762/6 2528 | f 91/765/6 615/766/6 92/763/6 2529 | f 90/767/6 617/768/6 91/765/6 2530 | f 89/18/6 620/769/6 90/767/6 2531 | f 93/762/6 614/764/6 98/20/6 2532 | f 614/764/6 97/758/6 98/20/6 2533 | f 92/763/6 615/766/6 614/764/6 2534 | f 615/766/6 616/770/6 614/764/6 2535 | f 614/764/6 616/770/6 97/758/6 2536 | f 616/770/6 96/759/6 97/758/6 2537 | f 91/765/6 617/768/6 615/766/6 2538 | f 617/768/6 618/771/6 615/766/6 2539 | f 615/766/6 618/771/6 616/770/6 2540 | f 618/771/6 619/772/6 616/770/6 2541 | f 616/770/6 619/772/6 96/759/6 2542 | f 619/772/6 95/760/6 96/759/6 2543 | f 90/767/6 620/769/6 617/768/6 2544 | f 620/769/6 621/773/6 617/768/6 2545 | f 617/768/6 621/773/6 618/771/6 2546 | f 621/773/6 622/774/6 618/771/6 2547 | f 618/771/6 622/774/6 619/772/6 2548 | f 622/774/6 623/775/6 619/772/6 2549 | f 619/772/6 623/775/6 95/760/6 2550 | f 623/775/6 94/761/6 95/760/6 2551 | f 89/18/6 88/17/6 620/769/6 2552 | f 88/17/6 87/776/6 620/769/6 2553 | f 620/769/6 87/776/6 621/773/6 2554 | f 87/776/6 86/777/6 621/773/6 2555 | f 621/773/6 86/777/6 622/774/6 2556 | f 86/777/6 85/778/6 622/774/6 2557 | f 622/774/6 85/778/6 623/775/6 2558 | f 85/778/6 84/779/6 623/775/6 2559 | f 623/775/6 84/779/6 94/761/6 2560 | f 84/779/6 33/311/6 94/761/6 2561 | f 83/780/5 88/17/5 6/16/5 2562 | f 82/781/5 624/782/5 83/780/5 2563 | f 81/783/5 625/784/5 82/781/5 2564 | f 80/785/5 627/786/5 81/783/5 2565 | f 79/15/5 630/787/5 80/785/5 2566 | f 83/780/5 624/782/5 88/17/5 2567 | f 624/782/5 87/776/5 88/17/5 2568 | f 82/781/5 625/784/5 624/782/5 2569 | f 625/784/5 626/788/5 624/782/5 2570 | f 624/782/5 626/788/5 87/776/5 2571 | f 626/788/5 86/777/5 87/776/5 2572 | f 81/783/5 627/786/5 625/784/5 2573 | f 627/786/5 628/789/5 625/784/5 2574 | f 625/784/5 628/789/5 626/788/5 2575 | f 628/789/5 629/790/5 626/788/5 2576 | f 626/788/5 629/790/5 86/777/5 2577 | f 629/790/5 85/778/5 86/777/5 2578 | f 80/785/5 630/787/5 627/786/5 2579 | f 630/787/5 631/791/5 627/786/5 2580 | f 627/786/5 631/791/5 628/789/5 2581 | f 631/791/5 632/792/5 628/789/5 2582 | f 628/789/5 632/792/5 629/790/5 2583 | f 632/792/5 633/793/5 629/790/5 2584 | f 629/790/5 633/793/5 85/778/5 2585 | f 633/793/5 84/779/5 85/778/5 2586 | f 79/15/5 78/14/5 630/787/5 2587 | f 78/14/5 77/794/5 630/787/5 2588 | f 630/787/5 77/794/5 631/791/5 2589 | f 77/794/5 76/795/5 631/791/5 2590 | f 631/791/5 76/795/5 632/792/5 2591 | f 76/795/5 75/796/5 632/792/5 2592 | f 632/792/5 75/796/5 633/793/5 2593 | f 75/796/5 74/797/5 633/793/5 2594 | f 633/793/5 74/797/5 84/779/5 2595 | f 74/797/5 33/311/5 84/779/5 2596 | f 73/798/4 78/14/4 5/13/4 2597 | f 72/799/4 634/800/4 73/798/4 2598 | f 71/801/4 635/802/4 72/799/4 2599 | f 70/803/4 637/804/4 71/801/4 2600 | f 69/12/4 640/805/4 70/803/4 2601 | f 73/798/4 634/800/4 78/14/4 2602 | f 634/800/4 77/794/4 78/14/4 2603 | f 72/799/4 635/802/4 634/800/4 2604 | f 635/802/4 636/806/4 634/800/4 2605 | f 634/800/4 636/806/4 77/794/4 2606 | f 636/806/4 76/795/4 77/794/4 2607 | f 71/801/4 637/804/4 635/802/4 2608 | f 637/804/4 638/807/4 635/802/4 2609 | f 635/802/4 638/807/4 636/806/4 2610 | f 638/807/4 639/808/4 636/806/4 2611 | f 636/806/4 639/808/4 76/795/4 2612 | f 639/808/4 75/796/4 76/795/4 2613 | f 70/803/4 640/805/4 637/804/4 2614 | f 640/805/4 641/809/4 637/804/4 2615 | f 637/804/4 641/809/4 638/807/4 2616 | f 641/809/4 642/810/4 638/807/4 2617 | f 638/807/4 642/810/4 639/808/4 2618 | f 642/810/4 643/811/4 639/808/4 2619 | f 639/808/4 643/811/4 75/796/4 2620 | f 643/811/4 74/797/4 75/796/4 2621 | f 69/12/4 68/11/4 640/805/4 2622 | f 68/11/4 67/812/4 640/805/4 2623 | f 640/805/4 67/812/4 641/809/4 2624 | f 67/812/4 66/813/4 641/809/4 2625 | f 641/809/4 66/813/4 642/810/4 2626 | f 66/813/4 65/814/4 642/810/4 2627 | f 642/810/4 65/814/4 643/811/4 2628 | f 65/814/4 64/815/4 643/811/4 2629 | f 643/811/4 64/815/4 74/797/4 2630 | f 64/815/4 33/311/4 74/797/4 2631 | f 63/816/3 68/11/3 4/10/3 2632 | f 62/817/3 644/818/3 63/816/3 2633 | f 61/819/3 645/820/3 62/817/3 2634 | f 60/821/3 647/822/3 61/819/3 2635 | f 59/9/3 650/823/3 60/821/3 2636 | f 63/816/3 644/818/3 68/11/3 2637 | f 644/818/3 67/812/3 68/11/3 2638 | f 62/817/3 645/820/3 644/818/3 2639 | f 645/820/3 646/824/3 644/818/3 2640 | f 644/818/3 646/824/3 67/812/3 2641 | f 646/824/3 66/813/3 67/812/3 2642 | f 61/819/3 647/822/3 645/820/3 2643 | f 647/822/3 648/825/3 645/820/3 2644 | f 645/820/3 648/825/3 646/824/3 2645 | f 648/825/3 649/826/3 646/824/3 2646 | f 646/824/3 649/826/3 66/813/3 2647 | f 649/826/3 65/814/3 66/813/3 2648 | f 60/821/3 650/823/3 647/822/3 2649 | f 650/823/3 651/827/3 647/822/3 2650 | f 647/822/3 651/827/3 648/825/3 2651 | f 651/827/3 652/828/3 648/825/3 2652 | f 648/825/3 652/828/3 649/826/3 2653 | f 652/828/3 653/829/3 649/826/3 2654 | f 649/826/3 653/829/3 65/814/3 2655 | f 653/829/3 64/815/3 65/814/3 2656 | f 59/9/3 58/8/3 650/823/3 2657 | f 58/8/3 57/830/3 650/823/3 2658 | f 650/823/3 57/830/3 651/827/3 2659 | f 57/830/3 56/831/3 651/827/3 2660 | f 651/827/3 56/831/3 652/828/3 2661 | f 56/831/3 55/832/3 652/828/3 2662 | f 652/828/3 55/832/3 653/829/3 2663 | f 55/832/3 54/833/3 653/829/3 2664 | f 653/829/3 54/833/3 64/815/3 2665 | f 54/833/3 33/311/3 64/815/3 2666 | f 53/834/2 58/8/2 3/7/2 2667 | f 52/835/2 654/836/2 53/834/2 2668 | f 51/837/2 655/838/2 52/835/2 2669 | f 50/839/2 657/840/2 51/837/2 2670 | f 49/6/2 660/841/2 50/839/2 2671 | f 53/834/2 654/836/2 58/8/2 2672 | f 654/836/2 57/830/2 58/8/2 2673 | f 52/835/2 655/838/2 654/836/2 2674 | f 655/838/2 656/842/2 654/836/2 2675 | f 654/836/2 656/842/2 57/830/2 2676 | f 656/842/2 56/831/2 57/830/2 2677 | f 51/837/2 657/840/2 655/838/2 2678 | f 657/840/2 658/843/2 655/838/2 2679 | f 655/838/2 658/843/2 656/842/2 2680 | f 658/843/2 659/844/2 656/842/2 2681 | f 656/842/2 659/844/2 56/831/2 2682 | f 659/844/2 55/832/2 56/831/2 2683 | f 50/839/2 660/841/2 657/840/2 2684 | f 660/841/2 661/845/2 657/840/2 2685 | f 657/840/2 661/845/2 658/843/2 2686 | f 661/845/2 662/846/2 658/843/2 2687 | f 658/843/2 662/846/2 659/844/2 2688 | f 662/846/2 663/847/2 659/844/2 2689 | f 659/844/2 663/847/2 55/832/2 2690 | f 663/847/2 54/833/2 55/832/2 2691 | f 49/6/2 48/5/2 660/841/2 2692 | f 48/5/2 47/848/2 660/841/2 2693 | f 660/841/2 47/848/2 661/845/2 2694 | f 47/848/2 46/849/2 661/845/2 2695 | f 661/845/2 46/849/2 662/846/2 2696 | f 46/849/2 45/850/2 662/846/2 2697 | f 662/846/2 45/850/2 663/847/2 2698 | f 45/850/2 44/851/2 663/847/2 2699 | f 663/847/2 44/851/2 54/833/2 2700 | f 44/851/2 33/311/2 54/833/2 2701 | f 38/852/1 48/5/1 2/4/1 2702 | f 37/853/1 664/854/1 38/852/1 2703 | f 36/855/1 665/856/1 37/853/1 2704 | f 35/857/1 667/858/1 36/855/1 2705 | f 34/3/1 670/859/1 35/857/1 2706 | f 38/852/1 664/854/1 48/5/1 2707 | f 664/854/1 47/848/1 48/5/1 2708 | f 37/853/1 665/856/1 664/854/1 2709 | f 665/856/1 666/860/1 664/854/1 2710 | f 664/854/1 666/860/1 47/848/1 2711 | f 666/860/1 46/849/1 47/848/1 2712 | f 36/855/38 667/858/38 665/856/38 2713 | f 667/858/1 668/861/1 665/856/1 2714 | f 665/856/1 668/861/1 666/860/1 2715 | f 668/861/1 669/862/1 666/860/1 2716 | f 666/860/1 669/862/1 46/849/1 2717 | f 669/862/1 45/850/1 46/849/1 2718 | f 35/857/1 670/859/1 667/858/1 2719 | f 670/859/1 671/863/1 667/858/1 2720 | f 667/858/1 671/863/1 668/861/1 2721 | f 671/863/1 672/864/1 668/861/1 2722 | f 668/861/1 672/864/1 669/862/1 2723 | f 672/864/1 673/865/1 669/862/1 2724 | f 669/862/1 673/865/1 45/850/1 2725 | f 673/865/1 44/851/1 45/850/1 2726 | f 34/3/1 39/2/1 670/859/1 2727 | f 39/2/1 40/297/1 670/859/1 2728 | f 670/859/1 40/297/1 671/863/1 2729 | f 40/297/1 41/299/1 671/863/1 2730 | f 671/863/1 41/299/1 672/864/1 2731 | f 41/299/1 42/302/1 672/864/1 2732 | f 672/864/1 42/302/1 673/865/1 2733 | f 42/302/1 43/306/1 673/865/1 2734 | f 673/865/1 43/306/1 44/851/1 2735 | f 43/306/1 33/311/1 44/851/1 2736 | --------------------------------------------------------------------------------