{"version":1,"record":{"id":"gen-agent-24-mvnmcdvk-zj5vu","agentId":"agent-24","agentName":"Agent 24","prompt":"implement vents, panels, hardware, seams, bags, foglights, insignia, unit IDs, camo netting","model":"minimax/minimax-m3.1-flash","agentic":true,"slices":3,"sliceSteps":3,"code":"// Converted from an uploaded model. Edit parts with group.getObjectByName(\"<name>\").\nconst D = (s, T) => { const b = atob(s), u = new Uint8Array(b.length); for (let i = 0; i < b.length; i++) u[i] = b.charCodeAt(i); return new T(u.buffer); };\nconst P = (p, uv, ix, col, cs) => {\n  const g = new THREE.BufferGeometry();\n  g.setAttribute('position', new THREE.BufferAttribute(D(p, Float32Array), 3));\n  if (uv) g.setAttribute('uv', new THREE.BufferAttribute(D(uv, Float32Array), 2));\n  if (col) g.setAttribute('color', new THREE.BufferAttribute(D(col, Float32Array), cs || 3));\n  if (ix) g.setIndex(new THREE.BufferAttribute(D(ix, Uint32Array), 1));\n  g.computeVertexNormals(); g.computeBoundingSphere();\n  return g;\n};\nconst M_default = new THREE.MeshStandardMaterial({ color: '#cccccc', roughness: 0.7, metalness: 0 });\nconst n0 = new THREE.Group(); n0.name = \"AuxScene\";\nn0.position.fromArray([0, 0, 0]); n0.quaternion.fromArray([0, 0, 0, 1]); n0.scale.fromArray([1, 1, 1]);\nconst n1 = new THREE.Group(); n1.name = \"Armored_Vehicle\";\nn1.position.fromArray([0, 0, 0]); n1.quaternion.fromArray([0, 0, 0, 1]); n1.scale.fromArray([1, 1, 1]);\nn0.add(n1);\nconst n2 = new THREE.Group(); n2.name = \"Hull\";\nn2.position.fromArray([0, 0, 0]); n2.quaternion.fromArray([0, 0, 0, 1]); n2.scale.fromArray([1, 1, 1]);\nn1.add(n2);\nconst M_0 = new THREE.MeshStandardMaterial({ color: '#2e3628', roughness: 0.75, metalness: 0.1 });\nconst n3 = new THREE.Mesh(P('zcyMPzMzsz7NzAxAzcyMPzMzsz7NzAzAzcyMPzMzs77NzAxAzcyMPzMzs77NzAzAzcyMvzMzsz7NzAzAzcyMvzMzsz7NzAxAzcyMvzMzs77NzAzAzcyMvzMzs77NzAxAzcyMvzMzsz7NzAzAzcyMPzMzsz7NzAzAzcyMvzMzsz7NzAxAzcyMPzMzsz7NzAxAzcyMvzMzs77NzAxAzcyMPzMzs77NzAxAzcyMvzMzs77NzAzAzcyMPzMzs77NzAzAzcyMvzMzsz7NzAxAzcyMPzMzsz7NzAxAzcyMvzMzs77NzAxAzcyMPzMzs77NzAxAzcyMPzMzsz7NzAzAzcyMvzMzsz7NzAzAzcyMPzMzs77NzAzAzcyMvzMzs77NzAzA', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_0); n3.name = \"HullLower\";\nn3.position.fromArray([0, 0.95, 0]); n3.quaternion.fromArray([0, 0, 0, 1]); n3.scale.fromArray([1, 1, 1]);\nn2.add(n3);\nconst M_1 = new THREE.MeshStandardMaterial({ color: '#4a5d3a', roughness: 0.7, metalness: 0.1 });\nconst n4 = new THREE.Mesh(P('AACAP5qZmT4zM/M/AACAP5qZmT4zM/O/AACAP5qZmb4zM/M/AACAP5qZmb4zM/O/AACAv5qZmT4zM/O/AACAv5qZmT4zM/M/AACAv5qZmb4zM/O/AACAv5qZmb4zM/M/AACAv5qZmT4zM/O/AACAP5qZmT4zM/O/AACAv5qZmT4zM/M/AACAP5qZmT4zM/M/AACAv5qZmb4zM/M/AACAP5qZmb4zM/M/AACAv5qZmb4zM/O/AACAP5qZmb4zM/O/AACAv5qZmT4zM/M/AACAP5qZmT4zM/M/AACAv5qZmb4zM/M/AACAP5qZmb4zM/M/AACAP5qZmT4zM/O/AACAv5qZmT4zM/O/AACAP5qZmb4zM/O/AACAv5qZmb4zM/O/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n4.name = \"HullUpper\";\nn4.position.fromArray([0, 1.6, -0.1]); n4.quaternion.fromArray([0, 0, 0, 1]); n4.scale.fromArray([1, 1, 1]);\nn2.add(n4);\nconst n5 = new THREE.Mesh(P('AACAP83MjD7NzMw+AACAP83MjD7NzMy+AACAP83MjL7NzMw+AACAP83MjL7NzMy+AACAv83MjD7NzMy+AACAv83MjD7NzMw+AACAv83MjL7NzMy+AACAv83MjL7NzMw+AACAv83MjD7NzMy+AACAP83MjD7NzMy+AACAv83MjD7NzMw+AACAP83MjD7NzMw+AACAv83MjL7NzMw+AACAP83MjL7NzMw+AACAv83MjL7NzMy+AACAP83MjL7NzMy+AACAv83MjD7NzMw+AACAP83MjD7NzMw+AACAv83MjL7NzMw+AACAP83MjL7NzMw+AACAP83MjD7NzMy+AACAv83MjD7NzMy+AACAP83MjL7NzMy+AACAv83MjL7NzMy+', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n5.name = \"HullNoseGlacis\";\nn5.position.fromArray([0, 1.25, 2.15]); n5.quaternion.fromArray([-0.2474, 0, 0, 0.96891]); n5.scale.fromArray([1, 1, 1]);\nn2.add(n5);\nconst n6 = new THREE.Mesh(P('AACAPwAAgD6amZk+AACAPwAAgD6amZm+AACAPwAAgL6amZk+AACAPwAAgL6amZm+AACAvwAAgD6amZm+AACAvwAAgD6amZk+AACAvwAAgL6amZm+AACAvwAAgL6amZk+AACAvwAAgD6amZm+AACAPwAAgD6amZm+AACAvwAAgD6amZk+AACAPwAAgD6amZk+AACAvwAAgL6amZk+AACAPwAAgL6amZk+AACAvwAAgL6amZm+AACAPwAAgL6amZm+AACAvwAAgD6amZk+AACAPwAAgD6amZk+AACAvwAAgL6amZk+AACAPwAAgL6amZk+AACAPwAAgD6amZm+AACAvwAAgD6amZm+AACAPwAAgL6amZm+AACAvwAAgL6amZm+', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n6.name = \"HullRearSlope\";\nn6.position.fromArray([0, 1.3, -2.2]); n6.quaternion.fromArray([0.22311, 0, 0, 0.97479]); n6.scale.fromArray([1, 1, 1]);\nn2.add(n6);\nconst M_2 = new THREE.MeshStandardMaterial({ color: '#b30071', roughness: 0.35, metalness: 0.2 });\nconst n7 = new THREE.Mesh(P('rkeBPwrXIz0AAKA/rkeBPwrXIz0AAKC/rkeBPwrXI70AAKA/rkeBPwrXI70AAKC/rkeBvwrXIz0AAKC/rkeBvwrXIz0AAKA/rkeBvwrXI70AAKC/rkeBvwrXI70AAKA/rkeBvwrXIz0AAKC/rkeBPwrXIz0AAKC/rkeBvwrXIz0AAKA/rkeBPwrXIz0AAKA/rkeBvwrXI70AAKA/rkeBPwrXI70AAKA/rkeBvwrXI70AAKC/rkeBPwrXI70AAKC/rkeBvwrXIz0AAKA/rkeBPwrXIz0AAKA/rkeBvwrXI70AAKA/rkeBPwrXI70AAKA/rkeBPwrXIz0AAKC/rkeBvwrXIz0AAKC/rkeBPwrXI70AAKC/rkeBvwrXI70AAKC/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_2); n7.name = \"HullAccentTrim\";\nn7.position.fromArray([0, 1.45, -0.1]); n7.quaternion.fromArray([0, 0, 0, 1]); n7.scale.fromArray([1, 1, 1]);\nn2.add(n7);\nconst n8 = new THREE.Group(); n8.name = \"TurretAssembly\";\nn8.position.fromArray([0, 0, 0]); n8.quaternion.fromArray([0, 0, 0, 1]); n8.scale.fromArray([1, 1, 1]);\nn1.add(n8);\nconst n9 = new THREE.Mesh(P('AABAP83MjD4AAIA/AABAP83MjD4AAIC/AABAP83MjL4AAIA/AABAP83MjL4AAIC/AABAv83MjD4AAIC/AABAv83MjD4AAIA/AABAv83MjL4AAIC/AABAv83MjL4AAIA/AABAv83MjD4AAIC/AABAP83MjD4AAIC/AABAv83MjD4AAIA/AABAP83MjD4AAIA/AABAv83MjL4AAIA/AABAP83MjL4AAIA/AABAv83MjL4AAIC/AABAP83MjL4AAIC/AABAv83MjD4AAIA/AABAP83MjD4AAIA/AABAv83MjL4AAIA/AABAP83MjL4AAIA/AABAP83MjD4AAIC/AABAv83MjD4AAIC/AABAP83MjL4AAIC/AABAv83MjL4AAIC/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n9.name = \"TurretAssemblyHull\";\nn9.position.fromArray([0, 2.17, -0.2]); n9.quaternion.fromArray([0, 0, 0, 1]); n9.scale.fromArray([1, 1, 1]);\nn8.add(n9);\nconst M_3 = new THREE.MeshStandardMaterial({ color: '#2b2e33', roughness: 0.4, metalness: 1 });\nconst n10 = new THREE.Mesh(P('AAAAAJqZmT/sUbg9YK5YPZqZmT82HpU9ekyvPZqZmT8B1eM8ekyvPZqZmT8B1eO8YK5YPZqZmT82HpW9FFFLI5qZmT/sUbi9YK5YvZqZmT82HpW9ekyvvZqZmT8B1eO8ekyvvZqZmT8B1eM8YK5YvZqZmT82HpU9FFHLo5qZmT/sUbg9AAAAAJqZmb+uR+E9kGqEPZqZmb9fQbY9B0HWPZqZmb8POws9B0HWPZqZmb8POwu9kGqEPZqZmb9fQba9in94I5qZmb+uR+G9kGqEvZqZmb9fQba9B0HWvZqZmb8POwu9B0HWvZqZmb8POws9kGqEvZqZmb9fQbY9in/4o5qZmb+uR+E9AAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT/sUbg9YK5YPZqZmT82HpU9ekyvPZqZmT8B1eM8ekyvPZqZmT8B1eO8YK5YPZqZmT82HpW9FFFLI5qZmT/sUbi9YK5YvZqZmT82HpW9ekyvvZqZmT8B1eO8ekyvvZqZmT8B1eM8YK5YvZqZmT82HpU9FFHLo5qZmT/sUbg9AAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb+uR+E9kGqEPZqZmb9fQbY9B0HWPZqZmb8POws9B0HWPZqZmb8POwu9kGqEPZqZmb9fQba9in94I5qZmb+uR+G9kGqEvZqZmb9fQba9B0HWvZqZmb8POwu9B0HWvZqZmb8POws9kGqEvZqZmb9fQbY9in/4o5qZmb+uR+E9', 'AAAAAAAAgD/NzMw9AACAP83MTD4AAIA/mpmZPgAAgD/NzMw+AACAPwAAAD8AAIA/mpkZPwAAgD8zMzM/AACAP83MTD8AAIA/ZmZmPwAAgD8AAIA/AACAPwAAAAAAAAAAzczMPQAAAADNzEw+AAAAAJqZmT4AAAAAzczMPgAAAAAAAAA/AAAAAJqZGT8AAAAAMzMzPwAAAADNzEw/AAAAAGZmZj8AAAAAAACAPwAAAAAAAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/3o1nP4w8Sz/ejSc/OLx5P0PksD44vHk/DZHDPYw8Sz8AAAAAAAAAPw2Rwz3QDVM+Q+SwPvZ4yDzejSc/9njIPN6NZz/QDVM+AACAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/3o1nP9ANUz7ejSc/9njIPEPksD72eMg8DZHDPdANUz4AAAAAAAAAPw2Rwz2MPEs/Q+SwPji8eT/ejSc/OLx5P96NZz+MPEs/AACAPwAAAD8=', 'AAAAAAsAAAABAAAACwAAAAwAAAABAAAAAQAAAAwAAAACAAAADAAAAA0AAAACAAAAAgAAAA0AAAADAAAADQAAAA4AAAADAAAAAwAAAA4AAAAEAAAADgAAAA8AAAAEAAAABAAAAA8AAAAFAAAADwAAABAAAAAFAAAABQAAABAAAAAGAAAAEAAAABEAAAAGAAAABgAAABEAAAAHAAAAEQAAABIAAAAHAAAABwAAABIAAAAIAAAAEgAAABMAAAAIAAAACAAAABMAAAAJAAAAEwAAABQAAAAJAAAACQAAABQAAAAKAAAAFAAAABUAAAAKAAAAIAAAACEAAAAWAAAAIQAAACIAAAAXAAAAIgAAACMAAAAYAAAAIwAAACQAAAAZAAAAJAAAACUAAAAaAAAAJQAAACYAAAAbAAAAJgAAACcAAAAcAAAAJwAAACgAAAAdAAAAKAAAACkAAAAeAAAAKQAAACoAAAAfAAAANgAAADUAAAArAAAANwAAADYAAAAsAAAAOAAAADcAAAAtAAAAOQAAADgAAAAuAAAAOgAAADkAAAAvAAAAOwAAADoAAAAwAAAAPAAAADsAAAAxAAAAPQAAADwAAAAyAAAAPgAAAD0AAAAzAAAAPwAAAD4AAAA0AAAA', null), M_3); n10.name = \"TurretAssemblyBarrel\";\nn10.position.fromArray([0, 2.2, 1.9]); n10.quaternion.fromArray([0.70711, 0, 0, 0.70711]); n10.scale.fromArray([1, 1, 1]);\nn8.add(n10);\nconst n11 = new THREE.Group(); n11.name = \"Wheels\";\nn11.position.fromArray([0, 0, 0]); n11.quaternion.fromArray([0, 0, 0, 1]); n11.scale.fromArray([1, 1, 1]);\nn1.add(n11);\nconst M_4 = new THREE.MeshStandardMaterial({ color: '#1a1a1a', roughness: 0.9, metalness: 0 });\nconst n12 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n12.name = \"WheelsLeft01\";\nn12.position.fromArray([-1.1, 0.5, 1.5]); n12.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n12.scale.fromArray([1, 1, 1]);\nn11.add(n12);\nconst n13 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n13.name = \"WheelsRight01\";\nn13.position.fromArray([1.1, 0.5, 1.5]); n13.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n13.scale.fromArray([1, 1, 1]);\nn11.add(n13);\nconst n14 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n14.name = \"WheelsLeft02\";\nn14.position.fromArray([-1.1, 0.5, 0.5]); n14.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n14.scale.fromArray([1, 1, 1]);\nn11.add(n14);\nconst n15 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n15.name = \"WheelsRight02\";\nn15.position.fromArray([1.1, 0.5, 0.5]); n15.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n15.scale.fromArray([1, 1, 1]);\nn11.add(n15);\nconst n16 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n16.name = \"WheelsLeft03\";\nn16.position.fromArray([-1.1, 0.5, -0.55]); n16.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n16.scale.fromArray([1, 1, 1]);\nn11.add(n16);\nconst n17 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n17.name = \"WheelsRight03\";\nn17.position.fromArray([1.1, 0.5, -0.55]); n17.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n17.scale.fromArray([1, 1, 1]);\nn11.add(n17);\nconst n18 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n18.name = \"WheelsLeft04\";\nn18.position.fromArray([-1.1, 0.5, -1.55]); n18.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n18.scale.fromArray([1, 1, 1]);\nn11.add(n18);\nconst n19 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n19.name = \"WheelsRight04\";\nn19.position.fromArray([1.1, 0.5, -1.55]); n19.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n19.scale.fromArray([1, 1, 1]);\nn11.add(n19);\nconst group = n0;\n\n{\nconst hull = group.getObjectByName(\"Hull\");\nconst turret = group.getObjectByName(\"TurretAssembly\");\nconst wheels = group.getObjectByName(\"Wheels\");\n\nconst stdMat = (color, extra) => new THREE.MeshStandardMaterial(Object.assign({ color: color, roughness: 0.78, metalness: 0.12 }, extra || {}));\nconst boxMesh = (w, h, d, color, extra) => { const m = new THREE.Mesh(new THREE.BoxGeometry(w, h, d), stdMat(color, extra)); m.castShadow = true; m.receiveShadow = true; return m; };\nconst cylMesh = (r, h, color, extra) => { const m = new THREE.Mesh(new THREE.CylinderGeometry(r, r, h, 18), stdMat(color, extra)); m.castShadow = true; return m; };\nconst canvasTex = (w, h, draw) => { const c = document.createElement(\"canvas\"); c.width = w; c.height = h; const ctx = c.getContext(\"2d\"); draw(ctx, w, h); const t = new THREE.CanvasTexture(c); t.colorSpace = THREE.SRGBColorSpace; return t; };\n\nconst DARK = \"#20261c\";\nconst STEEL = \"#6b6f63\";\nconst OLIVE = \"#55683f\";\nconst CANVASBAG = \"#6d5c3c\";\n\n/* ---------------- VENTS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const back = boxMesh(0.04, 0.46, 0.95, \"#252c1e\");\n    back.position.set(s * 1.005, 1.62, -1.05);\n    hull.add(back);\n    for (let i = 0; i < 6; i++) {\n      const slat = boxMesh(0.07, 0.05, 0.9, \"#3f4f30\");\n      slat.position.set(s * 1.04, 1.44 + i * 0.072, -1.05);\n      slat.rotation.z = s * 0.42;\n      hull.add(slat);\n    }\n    const deck = boxMesh(0.04, 0.4, 0.7, \"#252c1e\");\n    deck.position.set(s * 1.005, 1.62, 1.15);\n    hull.add(deck);\n    for (let i = 0; i < 5; i++) {\n      const slat = boxMesh(0.07, 0.045, 0.66, \"#3f4f30\");\n      slat.position.set(s * 1.04, 1.47 + i * 0.075, 1.15);\n      slat.rotation.z = s * 0.42;\n      hull.add(slat);\n    }\n  }\n  const deckBack = boxMesh(1.35, 0.04, 0.55, \"#252c1e\");\n  deckBack.position.set(0, 1.9, -1.62);\n  hull.add(deckBack);\n  for (let i = 0; i < 7; i++) {\n    const slat = boxMesh(1.3, 0.06, 0.05, \"#3f4f30\");\n    slat.position.set(0, 1.94, -1.86 + i * 0.08);\n    hull.add(slat);\n  }\n  const grilleBack = boxMesh(1.15, 0.52, 0.05, \"#1d2318\");\n  grilleBack.position.set(0, 1.52, 2.6);\n  hull.add(grilleBack);\n  for (let i = 0; i < 7; i++) {\n    const bar = boxMesh(0.055, 0.48, 0.06, \"#3f4f30\");\n    bar.position.set(-0.45 + i * 0.15, 1.52, 2.64);\n    hull.add(bar);\n  }\n}\n\n/* ---------------- PANELS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const p1 = boxMesh(0.05, 0.52, 0.95, OLIVE);\n    p1.position.set(s * 1.03, 1.6, 0.62);\n    hull.add(p1);\n    const p2 = boxMesh(0.05, 0.52, 0.8, \"#4e6039\");\n    p2.position.set(s * 1.03, 1.6, -0.35);\n    hull.add(p2);\n    const p3 = boxMesh(0.05, 0.42, 1.3, \"#4a5d3a\");\n    p3.position.set(s * 1.11, 0.95, 0.1);\n    hull.add(p3);\n  }\n  const glacisPlate = boxMesh(1.82, 0.05, 0.88, OLIVE);\n  glacisPlate.position.set(0, 1.68, 2.16);\n  glacisPlate.rotation.x = -0.12;\n  hull.add(glacisPlate);\n  const rearPlate = boxMesh(1.86, 0.05, 0.68, \"#4e6039\");\n  rearPlate.position.set(0, 1.66, -2.2);\n  hull.add(rearPlate);\n}\n\n/* ---------------- SEAMS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const seam = boxMesh(0.035, 0.035, 4.4, DARK);\n    seam.position.set(s * 1.115, 1.3, 0);\n    hull.add(seam);\n    const v1 = boxMesh(0.035, 0.62, 0.035, DARK);\n    v1.position.set(s * 1.115, 0.96, -0.6);\n    hull.add(v1);\n    const v2 = boxMesh(0.035, 0.62, 0.035, DARK);\n    v2.position.set(s * 1.115, 0.96, 1.05);\n    hull.add(v2);\n    const v3 = boxMesh(0.035, 0.55, 0.035, DARK);\n    v3.position.set(s * 1.03, 1.6, 0.05);\n    hull.add(v3);\n  }\n  const seamF = boxMesh(2.2, 0.035, 0.035, DARK);\n  seamF.position.set(0, 1.3, 2.2);\n  hull.add(seamF);\n  const seamR = boxMesh(2.2, 0.035, 0.035, DARK);\n  seamR.position.set(0, 1.3, -2.2);\n  hull.add(seamR);\n  const gSeam = boxMesh(1.9, 0.03, 0.03, DARK);\n  gSeam.position.set(0, 1.34, 2.645);\n  hull.add(gSeam);\n  const gSeamV = boxMesh(0.03, 0.8, 0.03, DARK);\n  gSeamV.position.set(0, 1.25, 2.645);\n  hull.add(gSeamV);\n}\n\n/* ---------------- HARDWARE ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    for (let i = 0; i < 7; i++) {\n      const bolt = cylMesh(0.038, 0.05, STEEL, { metalness: 0.85, roughness: 0.35 });\n      bolt.rotation.z = Math.PI / 2;\n      bolt.position.set(s * 1.13, 1.3, -1.8 + i * 0.6);\n      hull.add(bolt);\n    }\n    for (let i = 0; i < 4; i++) {\n      const bolt = cylMesh(0.032, 0.045, STEEL, { metalness: 0.85, roughness: 0.35 });\n      bolt.rotation.z = Math.PI / 2;\n      bolt.position.set(s * 1.14, 1.62, 0.2 + i * 0.35);\n      hull.add(bolt);\n    }\n    const hook = boxMesh(0.14, 0.2, 0.24, \"#3a3f36\", { metalness: 0.6, roughness: 0.5 });\n    hook.position.set(s * 0.85, 0.72, 2.42);\n    hull.add(hook);\n    const shackle = new THREE.Mesh(new THREE.TorusGeometry(0.075, 0.026, 8, 18), stdMat(\"#8a8d80\", { metalness: 0.9, roughness: 0.3 }));\n    shackle.position.set(s * 0.85, 0.72, 2.56);\n    shackle.rotation.y = Math.PI / 2;\n    shackle.castShadow = true;\n    hull.add(shackle);\n    const step = boxMesh(0.16, 0.05, 0.5, \"#3a3f36\");\n    step.position.set(s * 1.16, 0.72, 1.9);\n    hull.add(step);\n  }\n}\nif (turret) {\n  const handle = boxMesh(0.34, 0.06, 0.07, \"#3a3f36\", { metalness: 0.6, roughness: 0.45 });\n  handle.position.set(0.32, 2.47, -0.62);\n  turret.add(handle);\n  for (let s = -1; s <= 1; s += 2) {\n    const hinge = boxMesh(0.1, 0.14, 0.22, \"#3a3f36\", { metalness: 0.7, roughness: 0.4 });\n    hinge.position.set(s * 0.55, 2.4, -1.18);\n    turret.add(hinge);\n    const antBase = cylMesh(0.05, 0.08, \"#3a3f36\", { metalness: 0.7, roughness: 0.4 });\n    antBase.position.set(s * 0.62, 2.47, -1.05);\n    turret.add(antBase);\n    const ant = cylMesh(0.016, 1.15, \"#20241d\");\n    ant.position.set(s * 0.62, 3.05, -1.05);\n    ant.rotation.z = s * 0.08;\n    turret.add(ant);\n    for (let i = 0; i < 4; i++) {\n      const bolt = cylMesh(0.03, 0.04, STEEL, { metalness: 0.85, roughness: 0.35 });\n      bolt.rotation.z = Math.PI / 2;\n      bolt.position.set(s * 0.77, 2.02, -0.9 + i * 0.5);\n      turret.add(bolt);\n    }\n  }\n  const ringSeam = boxMesh(1.52, 0.035, 0.035, DARK);\n  ringSeam.position.set(0, 2.17, 0.81);\n  turret.add(ringSeam);\n  const ringSeam2 = boxMesh(1.52, 0.035, 0.035, DARK);\n  ringSeam2.position.set(0, 2.17, -1.21);\n  turret.add(ringSeam2);\n}\n\n/* ---------------- BAGS / STOWAGE ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const bag = boxMesh(0.24, 0.42, 0.72, CANVASBAG, { roughness: 0.95, metalness: 0.0 });\n    bag.position.set(s * 1.19, 1.5, 0.35);\n    hull.add(bag);\n    const strapA = boxMesh(0.26, 0.05, 0.06, \"#3b3222\", { roughness: 0.95 });\n    strapA.position.set(s * 1.19, 1.63, 0.35);\n    hull.add(strapA);\n    const strapB = boxMesh(0.26, 0.05, 0.06, \"#3b3222\", { roughness: 0.95 });\n    strapB.position.set(s * 1.19, 1.37, 0.35);\n    hull.add(strapB);\n    const roll = cylMesh(0.11, 0.5, \"#5d4f34\", { roughness: 0.95 });\n    roll.rotation.x = Math.PI / 2;\n    roll.position.set(s * 1.18, 1.78, 0.35);\n    hull.add(roll);\n  }\n  const duffel = boxMesh(0.95, 0.36, 0.36, CANVASBAG, { roughness: 0.95 });\n  duffel.position.set(0, 1.55, -2.36);\n  hull.add(duffel);\n  const duffelStrap = boxMesh(0.08, 0.38, 0.38, \"#3b3222\", { roughness: 0.95 });\n  duffelStrap.position.set(0.25, 1.55, -2.36);\n  hull.add(duffelStrap);\n  const duffelStrap2 = boxMesh(0.08, 0.38, 0.38, \"#3b3222\", { roughness: 0.95 });\n  duffelStrap2.position.set(-0.25, 1.55, -2.36);\n  hull.add(duffelStrap2);\n}\nif (turret) {\n  for (let s = -1; s <= 1; s += 2) {\n    const bag = boxMesh(0.18, 0.3, 0.42, CANVASBAG, { roughness: 0.95 });\n    bag.position.set(s * 0.86, 2.12, -0.72);\n    turret.add(bag);\n    const strap = boxMesh(0.2, 0.04, 0.44, \"#3b3222\", { roughness: 0.95 });\n    strap.position.set(s * 0.86, 2.2, -0.72);\n    turret.add(strap);\n  }\n}\n\n/* ---------------- FOGLIGHTS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const housing = cylMesh(0.135, 0.16, \"#2f342c\", { metalness: 0.5, roughness: 0.5 });\n    housing.rotation.x = Math.PI / 2;\n    housing.position.set(s * 0.72, 1.4, 2.6);\n    hull.add(housing);\n    const lens = cylMesh(0.115, 0.04, \"#fff3c4\", { emissive: new THREE.Color(\"#ffd98a\"), emissiveIntensity: 1.1, roughness: 0.25, metalness: 0.0 });\n    lens.rotation.x = Math.PI / 2;\n    lens.position.set(s * 0.72, 1.4, 2.69);\n    hull.add(lens);\n    const guard = new THREE.Mesh(new THREE.TorusGeometry(0.145, 0.022, 8, 20), stdMat(\"#3a3f36\", { metalness: 0.7, roughness: 0.4 }));\n    guard.position.set(s * 0.72, 1.4, 2.72);\n    guard.castShadow = true;\n    hull.add(guard);\n    const bracket = boxMesh(0.07, 0.16, 0.1, \"#3a3f36\", { metalness: 0.7, roughness: 0.4 });\n    bracket.position.set(s * 0.72, 1.24, 2.58);\n    hull.add(bracket);\n  }\n}\n\n/* ---------------- INSIGNIA ---------------- */\nconst starTex = canvasTex(256, 256, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#8c1d2f\";\n  ctx.beginPath();\n  ctx.arc(128, 128, 112, 0, Math.PI * 2);\n  ctx.fill();\n  ctx.strokeStyle = \"#f2efe4\";\n  ctx.lineWidth = 7;\n  ctx.stroke();\n  ctx.fillStyle = \"#f2efe4\";\n  ctx.beginPath();\n  for (let i = 0; i < 10; i++) {\n    const r = i % 2 === 0 ? 80 : 33;\n    const a = -Math.PI / 2 + i * Math.PI / 5;\n    const x = 128 + Math.cos(a) * r;\n    const y = 128 + Math.sin(a) * r;\n    if (i === 0) { ctx.moveTo(x, y); } else { ctx.lineTo(x, y); }\n  }\n  ctx.closePath();\n  ctx.fill();\n});\nconst chevTex = canvasTex(256, 128, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#e0d9c2\";\n  ctx.beginPath();\n  ctx.moveTo(20, 100);\n  ctx.lineTo(128, 24);\n  ctx.lineTo(236, 100);\n  ctx.lineTo(236, 118);\n  ctx.lineTo(128, 42);\n  ctx.lineTo(20, 118);\n  ctx.closePath();\n  ctx.fill();\n});\nif (turret) {\n  for (let s = -1; s <= 1; s += 2) {\n    const insignia = new THREE.Mesh(new THREE.PlaneGeometry(0.56, 0.56), new THREE.MeshStandardMaterial({ map: starTex, transparent: true, roughness: 0.9, metalness: 0.0 }));\n    insignia.position.set(s * 0.762, 2.2, -0.2);\n    insignia.rotation.y = s * Math.PI / 2;\n    turret.add(insignia);\n  }\n  const chev = new THREE.Mesh(new THREE.PlaneGeometry(0.5, 0.25), new THREE.MeshStandardMaterial({ map: chevTex, transparent: true, roughness: 0.9 }));\n  chev.position.set(0, 2.22, -1.215);\n  chev.rotation.y = Math.PI;\n  turret.add(chev);\n}\nif (hull) {\n  const frontIns = new THREE.Mesh(new THREE.PlaneGeometry(0.42, 0.42), new THREE.MeshStandardMaterial({ map: starTex, transparent: true, roughness: 0.9 }));\n  frontIns.position.set(0.55, 1.32, 2.655);\n  hull.add(frontIns);\n}\n\n/* ---------------- UNIT IDS ---------------- */\nconst idTex = canvasTex(512, 160, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#e9e3cf\";\n  ctx.font = \"bold 108px Arial\";\n  ctx.textAlign = \"center\";\n  ctx.textBaseline = \"middle\";\n  ctx.fillText(\"A-17\", w / 2, h / 2 + 4);\n});\nconst idTex2 = canvasTex(512, 160, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#e9e3cf\";\n  ctx.font = \"bold 104px Arial\";\n  ctx.textAlign = \"center\";\n  ctx.textBaseline = \"middle\";\n  ctx.fillText(\"01\", w / 2, h / 2 + 4);\n});\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const id = new THREE.Mesh(new THREE.PlaneGeometry(0.82, 0.26), new THREE.MeshStandardMaterial({ map: idTex, transparent: true, roughness: 0.9 }));\n    id.position.set(s * 1.118, 0.95, 0.55);\n    id.rotation.y = s * Math.PI / 2;\n    hull.add(id);\n  }\n  const frontId = new THREE.Mesh(new THREE.PlaneGeometry(0.5, 0.16), new THREE.MeshStandardMaterial({ map: idTex2, transparent: true, roughness: 0.9 }));\n  frontId.position.set(-0.55, 1.12, 2.655);\n  hull.add(frontId);\n}\nif (turret) {\n  const tid = new THREE.Mesh(new THREE.PlaneGeometry(0.6, 0.19), new THREE.MeshStandardMaterial({ map: idTex2, transparent: true, roughness: 0.9 }));\n  tid.position.set(0.42, 2.05, -1.215);\n  tid.rotation.y = Math.PI;\n  turret.add(tid);\n}\n\n/* ---------------- CAMO NETTING ---------------- */\nconst netTex = canvasTex(256, 256, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.strokeStyle = \"rgba(58,70,38,0.95)\";\n  ctx.lineWidth = 3;\n  for (let i = 0; i <= 256; i += 16) {\n    ctx.beginPath();\n    ctx.moveTo(i + Math.sin(i * 0.7) * 3, 0);\n    ctx.lineTo(i - Math.sin(i * 0.7) * 3, 256);\n    ctx.stroke();\n    ctx.beginPath();\n    ctx.moveTo(0, i + Math.cos(i * 0.6) * 3);\n    ctx.lineTo(256, i - Math.cos(i * 0.6) * 3);\n    ctx.stroke();\n  }\n});\nnetTex.wrapS = THREE.RepeatWrapping;\nnetTex.wrapT = THREE.RepeatWrapping;\nnetTex.repeat.set(3, 4);\n\nconst netMat = new THREE.MeshStandardMaterial({ map: netTex, transparent: true, alphaTest: 0.08, side: THREE.DoubleSide, roughness: 0.95, metalness: 0.0, depthWrite: false });\n\nconst netGeo = new THREE.PlaneGeometry(2.0, 2.8, 12, 16);\nnetGeo.rotateX(-Math.PI / 2);\nconst npos = netGeo.attributes.position;\nfor (let i = 0; i < npos.count; i++) {\n  const vx = npos.getX(i);\n  const vz = npos.getZ(i) - 0.2;\n  const over = Math.max(0, Math.abs(vx) - 0.72) * 1.15 + Math.max(0, Math.abs(vz) - 0.95) * 1.15;\n  let y = 2.47 - over;\n  y += Math.sin(vx * 5.5) * Math.cos(vz * 4.5) * 0.035;\n  if (y < 1.55) { y = 1.55; }\n  npos.setXYZ(i, vx, y, vz + 0.2);\n}\nnetGeo.computeVertexNormals();\nconst net = new THREE.Mesh(netGeo, netMat);\nnet.castShadow = true;\ngroup.add(net);\n\nconst netBundle = cylMesh(0.13, 1.5, \"#3f4a2c\", { roughness: 0.95 });\nnetBundle.rotation.z = Math.PI / 2;\nnetBundle.position.set(0, 2.5, -1.42);\ngroup.add(netBundle);\nconst netBundle2 = cylMesh(0.1, 1.1, \"#44512f\", { roughness: 0.95 });\nnetBundle2.rotation.z = Math.PI / 2;\nnetBundle2.position.set(0, 2.48, -1.62);\ngroup.add(netBundle2);\n\nconst deckNetGeo = new THREE.PlaneGeometry(1.9, 1.0, 10, 6);\ndeckNetGeo.rotateX(-Math.PI / 2);\nconst dpos = deckNetGeo.attributes.position;\nfor (let i = 0; i < dpos.count; i++) {\n  const vx = dpos.getX(i);\n  const vz = dpos.getZ(i) - 1.6;\n  const over = Math.max(0, Math.abs(vx) - 0.85) * 1.1;\n  let y = 1.95 - over + Math.sin(vx * 6.0) * 0.02;\n  if (y < 1.45) { y = 1.45; }\n  dpos.setXYZ(i, vx, y, vz + 1.6);\n}\ndeckNetGeo.computeVertexNormals();\nconst deckNet = new THREE.Mesh(deckNetGeo, netMat);\ndeckNet.castShadow = true;\ngroup.add(deckNet);\n}\n\n{\nconst hull = group.getObjectByName(\"Hull\") || group;\n\nconst M = {};\nM.vent = new THREE.MeshStandardMaterial({ color: 0x252c1e, roughness: 0.9, metalness: 0.15 });\nM.slat = new THREE.MeshStandardMaterial({ color: 0x3f4f30, roughness: 0.85, metalness: 0.1 });\nM.panel = new THREE.MeshStandardMaterial({ color: 0x55683f, roughness: 0.72, metalness: 0.08 });\nM.panelDark = new THREE.MeshStandardMaterial({ color: 0x4e6039, roughness: 0.78, metalness: 0.08 });\nM.seam = new THREE.MeshStandardMaterial({ color: 0x1b2018, roughness: 0.95 });\nM.hw = new THREE.MeshStandardMaterial({ color: 0x6b6f63, roughness: 0.45, metalness: 0.65 });\nM.hwDark = new THREE.MeshStandardMaterial({ color: 0x3a3f36, roughness: 0.5, metalness: 0.6 });\nM.bag = new THREE.MeshStandardMaterial({ color: 0x3c4630, roughness: 0.98 });\nM.strap = new THREE.MeshStandardMaterial({ color: 0x23291d, roughness: 0.95 });\nM.housing = new THREE.MeshStandardMaterial({ color: 0x2e3628, roughness: 0.55, metalness: 0.45 });\nM.lens = new THREE.MeshStandardMaterial({ color: 0xfff4d0, emissive: 0xffd98a, emissiveIntensity: 0.85, roughness: 0.15, metalness: 0.1 });\nM.insignia = new THREE.MeshStandardMaterial({ color: 0xb30071, roughness: 0.55, side: THREE.DoubleSide });\nM.insigniaDark = new THREE.MeshStandardMaterial({ color: 0x1d2318, roughness: 0.6, side: THREE.DoubleSide });\nM.id = new THREE.MeshStandardMaterial({ color: 0xd9d6c4, roughness: 0.85 });\nM.idPlate = new THREE.MeshStandardMaterial({ color: 0x252c1e, roughness: 0.9 });\nM.net = new THREE.MeshStandardMaterial({ color: 0x4a5d3a, roughness: 1.0, transparent: true, opacity: 0.4, side: THREE.DoubleSide, depthWrite: false });\nM.weave = new THREE.MeshStandardMaterial({ color: 0x3c4a2c, roughness: 1.0, transparent: true, opacity: 0.7, side: THREE.DoubleSide, depthWrite: false });\nM.camoA = new THREE.MeshStandardMaterial({ color: 0x2e3628, roughness: 1.0, transparent: true, opacity: 0.6, side: THREE.DoubleSide, depthWrite: false });\nM.camoB = new THREE.MeshStandardMaterial({ color: 0x6b6f4a, roughness: 1.0, transparent: true, opacity: 0.5, side: THREE.DoubleSide, depthWrite: false });\nM.bundle = new THREE.MeshStandardMaterial({ color: 0x46512f, roughness: 1.0 });\n\nconst addBox = (name, w, h, d, x, y, z, mat, rot) => {\n  const m = new THREE.Mesh(new THREE.BoxGeometry(w, h, d), mat);\n  m.name = name;\n  m.position.set(x, y, z);\n  if (rot) { m.rotation.set(rot[0], rot[1], rot[2]); }\n  hull.add(m);\n};\n\nconst addCyl = (name, r, h, x, y, z, mat, rot) => {\n  const m = new THREE.Mesh(new THREE.CylinderGeometry(r, r, h, 16), mat);\n  m.name = name;\n  m.position.set(x, y, z);\n  if (rot) { m.rotation.set(rot[0], rot[1], rot[2]); }\n  hull.add(m);\n};\n\nconst addTorus = (name, r, t, x, y, z, mat, rot) => {\n  const m = new THREE.Mesh(new THREE.TorusGeometry(r, t, 8, 18), mat);\n  m.name = name;\n  m.position.set(x, y, z);\n  if (rot) { m.rotation.set(rot[0], rot[1], rot[2]); }\n  hull.add(m);\n};\n\nconst addRoundel = (name, x, y, z, ry, scale) => {\n  const ring = new THREE.Mesh(new THREE.RingGeometry(0.1 * scale, 0.155 * scale, 28), M.insignia);\n  ring.name = name + \"_Ring\";\n  ring.position.set(x, y, z);\n  ring.rotation.y = ry;\n  hull.add(ring);\n  const disc = new THREE.Mesh(new THREE.CircleGeometry(0.1 * scale, 28), M.insigniaDark);\n  disc.name = name + \"_Disc\";\n  disc.position.set(x + Math.sin(ry) * 0.004, y, z + Math.cos(ry) * 0.004);\n  disc.rotation.y = ry;\n  hull.add(disc);\n};\n\nconst addFog = (name, x, y, z, r) => {\n  const housing = new THREE.Mesh(new THREE.CylinderGeometry(r, r * 0.9, 0.16, 20), M.housing);\n  housing.name = name + \"_Housing\";\n  housing.position.set(x, y, z);\n  housing.rotation.x = Math.PI / 2;\n  hull.add(housing);\n  const lens = new THREE.Mesh(new THREE.CylinderGeometry(r * 0.82, r * 0.82, 0.04, 20), M.lens);\n  lens.name = name + \"_Lens\";\n  lens.position.set(x, y, z + 0.09);\n  lens.rotation.x = Math.PI / 2;\n  hull.add(lens);\n  const bracket = new THREE.Mesh(new THREE.BoxGeometry(r * 0.5, 0.1, 0.07), M.hwDark);\n  bracket.name = name + \"_Bracket\";\n  bracket.position.set(x, y - r - 0.02, z - 0.03);\n  hull.add(bracket);\n};\n\nconst addBag = (name, x, y, z, w, h, d) => {\n  const bag = new THREE.Mesh(new THREE.BoxGeometry(w, h, d), M.bag);\n  bag.name = name;\n  bag.position.set(x, y, z);\n  hull.add(bag);\n  const s1 = new THREE.Mesh(new THREE.BoxGeometry(w + 0.025, h + 0.025, 0.05), M.strap);\n  s1.name = name + \"_StrapA\";\n  s1.position.set(x, y, z + d * 0.26);\n  hull.add(s1);\n  const s2 = new THREE.Mesh(new THREE.BoxGeometry(w + 0.025, h + 0.025, 0.05), M.strap);\n  s2.name = name + \"_StrapB\";\n  s2.position.set(x, y, z - d * 0.26);\n  hull.add(s2);\n  const flap = new THREE.Mesh(new THREE.BoxGeometry(w * 0.92, 0.035, d * 0.45), M.strap);\n  flap.name = name + \"_Flap\";\n  flap.position.set(x, y + h / 2 + 0.01, z);\n  hull.add(flap);\n};\n\nconst addText = (text, ox, oy, oz, facing, mat, scale) => {\n  const w = 0.085 * scale, h = 0.15 * scale, t = 0.02 * scale, dep = 0.018;\n  const defs = {\n    a: [0, h / 2, w, t],\n    g: [0, 0, w, t],\n    d: [0, -h / 2, w, t],\n    f: [-w / 2, h / 4, t, h / 2],\n    b: [w / 2, h / 4, t, h / 2],\n    e: [-w / 2, -h / 4, t, h / 2],\n    c: [w / 2, -h / 4, t, h / 2]\n  };\n  const map = { \"0\": \"abcdef\", \"1\": \"bc\", \"2\": \"abged\", \"3\": \"abgcd\", \"4\": \"fgbc\", \"5\": \"afgcd\", \"6\": \"afgedc\", \"7\": \"abc\", \"8\": \"abcdefg\", \"9\": \"abcdfg\" };\n  const spacing = w * 1.6;\n  for (let i = 0; i < text.length; i++) {\n    const ch = text[i];\n    const segs = map[ch];\n    if (!segs) { continue; }\n    const dx = facing > 0 ? ox + i * spacing : ox - i * spacing;\n    for (let j = 0; j < segs.length; j++) {\n      const d = defs[segs[j]];\n      const sx = facing > 0 ? d[0] : -d[0];\n      const m = new THREE.Mesh(new THREE.BoxGeometry(d[2], d[3], dep), mat);\n      m.name = \"UnitID_\" + ch + \"_\" + i + \"_\" + segs[j];\n      m.position.set(dx + sx, oy + d[1], oz);\n      hull.add(m);\n    }\n  }\n};\n\n/* ---------- VENTS ---------- */\n[-1, 1].forEach((s) => {\n  addBox(\"Vent_Glacis_Base_\" + s, 0.55, 0.03, 0.5, s * 0.55, 1.775, 2.05, M.vent);\n  for (let i = 0; i < 4; i++) {\n    addBox(\"Vent_Glacis_Slat_\" + s + \"_\" + i, 0.5, 0.035, 0.05, s * 0.55, 1.8, 1.87 + i * 0.1, M.slat);\n  }\n  addBox(\"Vent_SideLower_Base_\" + s, 0.04, 0.3, 0.55, s * 1.13, 0.95, -1.35, M.vent);\n  for (let i = 0; i < 4; i++) {\n    addBox(\"Vent_SideLower_Slat_\" + s + \"_\" + i, 0.05, 0.04, 0.5, s * 1.14, 0.83 + i * 0.08, -1.35, M.slat);\n  }\n  addBox(\"Vent_UpperSide_Base_\" + s, 0.03, 0.3, 0.42, s * 1.005, 1.72, -1.78, M.vent);\n  for (let i = 0; i < 4; i++) {\n    addBox(\"Vent_UpperSide_Slat_\" + s + \"_\" + i, 0.045, 0.04, 0.38, s * 1.015, 1.62 + i * 0.07, -1.78, M.slat);\n  }\n});\naddBox(\"Vent_RearDeck_Base\", 1.5, 0.03, 0.5, 0, 1.7, -2.2, M.vent);\nfor (let i = 0; i < 5; i++) {\n  addBox(\"Vent_RearDeck_Slat_\" + i, 1.45, 0.04, 0.05, 0, 1.73, -2.4 + i * 0.1, M.slat);\n}\n\n/* ---------- PANELS ---------- */\naddBox(\"Panel_Hatch_Top\", 0.8, 0.03, 0.7, 0.5, 1.915, 0.55, M.panel);\naddBox(\"Panel_Hatch_Top_Seam_F\", 0.84, 0.02, 0.03, 0.5, 1.935, 0.2, M.seam);\naddBox(\"Panel_Hatch_Top_Seam_B\", 0.84, 0.02, 0.03, 0.5, 1.935, 0.9, M.seam);\naddBox(\"Panel_Hatch_Top_Seam_L\", 0.03, 0.02, 0.72, 0.09, 1.935, 0.55, M.seam);\naddBox(\"Panel_Hatch_Top_Seam_R\", 0.03, 0.02, 0.72, 0.91, 1.935, 0.55, M.seam);\naddBox(\"Panel_Hatch_Rear\", 1.0, 0.32, 0.03, 0, 1.15, -2.585, M.panelDark);\naddBox(\"Panel_Hatch_Rear_Seam_T\", 1.04, 0.02, 0.02, 0, 1.32, -2.605, M.seam);\naddBox(\"Panel_Hatch_Rear_Seam_B\", 1.04, 0.02, 0.02, 0, 0.98, -2.605, M.seam);\naddBox(\"Panel_Hatch_Rear_Seam_L\", 0.02, 0.36, 0.02, -0.52, 1.15, -2.605, M.seam);\naddBox(\"Panel_Hatch_Rear_Seam_R\", 0.02, 0.36, 0.02, 0.52, 1.15, -2.605, M.seam);\n[-1, 1].forEach((s) => {\n  addBox(\"Panel_SideDoor_\" + s, 0.02, 0.3, 0.5, s * 1.055, 1.6, 0.62, M.panelDark);\n  addBox(\"Panel_SideDoor_Seam_\" + s, 0.015, 0.34, 0.54, s * 1.07, 1.6, 0.62, M.seam);\n  addBox(\"Panel_GlacisSide_\" + s, 0.03, 0.5, 0.7, s * 1.005, 1.35, 2.1, M.panelDark);\n  addBox(\"Panel_RearSide_\" + s, 0.03, 0.45, 0.6, s * 1.005, 1.25, -2.2, M.panelDark);\n});\n\n/* ---------- SEAMS ---------- */\n[-1, 1].forEach((s) => {\n  addBox(\"Seam_TopEdge_\" + s, 0.03, 0.03, 3.7, s * 1.0, 1.895, -0.1, M.seam);\n  addBox(\"Seam_SideVert_A_\" + s, 0.02, 0.55, 0.03, s * 1.005, 1.6, 0.05, M.seam);\n  addBox(\"Seam_SideVert_B_\" + s, 0.02, 0.55, 0.03, s * 1.005, 1.6, -0.75, M.seam);\n  addBox(\"Seam_LowerEdge_\" + s, 0.03, 0.03, 4.3, s * 1.1, 0.62, 0, M.seam);\n});\naddBox(\"Seam_Glacis_Top\", 1.8, 0.02, 0.03, 0, 1.765, 2.16, M.seam);\naddBox(\"Seam_Nose_Vert\", 0.03, 0.8, 0.03, 0, 1.25, 2.645, M.seam);\naddBox(\"Seam_Rear_Top\", 1.9, 0.02, 0.03, 0, 1.69, -1.86, M.seam);\naddBox(\"Seam_Grille_Frame_T\", 1.25, 0.03, 0.03, 0, 1.79, 2.6, M.seam);\naddBox(\"Seam_Grille_Frame_B\", 1.25, 0.03, 0.03, 0, 1.25, 2.6, M.seam);\n\n/* ---------- HARDWARE ---------- */\n[-1, 1].forEach((s) => {\n  addBox(\"Tow_Plate_F_\" + s, 0.2, 0.14, 0.04, s * 0.72, 1.02, 2.65, M.hwDark);\n  addTorus(\"Tow_Eye_F_\" + s, 0.07, 0.02, s * 0.72, 1.02, 2.68, M.hw);\n  addBox(\"Tow_Plate_R_\" + s, 0.2, 0.14, 0.04, s * 0.72, 1.05, -2.6, M.hwDark);\n  addTorus(\"Tow_Eye_R_\" + s, 0.07, 0.02, s * 0.72, 1.05, -2.63, M.hw);\n  addBox(\"Lift_Eye_Base_\" + s, 0.12, 0.05, 0.12, s * 0.7, 1.92, -1.0, M.hwDark);\n  addTorus(\"Lift_Eye_\" + s, 0.05, 0.014, s * 0.7, 1.98, -1.0, M.hw);\n  addBox(\"Grab_Handle_\" + s, 0.05, 0.04, 0.18, s * 1.06, 1.45, 0.3, M.hw);\n  addBox(\"Grab_Handle_2_\" + s, 0.05, 0.04, 0.18, s * 1.06, 1.45, -0.35, M.hw);\n});\n[[0.13, 0.23], [0.87, 0.23], [0.13, 0.87], [0.87, 0.87], [0.5, 0.23], [0.5, 0.87]].forEach((p, i) => {\n  addCyl(\"Bolt_Hatch_\" + i, 0.022, 0.03, p[0], 1.94, p[1], M.hw);\n});\n[[-0.46, 1.02], [0.46, 1.02], [-0.46, 1.28], [0.46, 1.28]].forEach((p, i) => {\n  addCyl(\"Bolt_RearHatch_\" + i, 0.022, 0.03, p[0], p[1], -2.61, M.hw, [Math.PI / 2, 0, 0]);\n});\naddBox(\"Antenna_Base\", 0.09, 0.05, 0.09, 0.9, 1.72, -2.3, M.hwDark);\naddCyl(\"Antenna_Whip\", 0.012, 0.55, 0.9, 2.0, -2.3, M.hwDark);\naddBox(\"Bracket_Front_L\", 0.06, 0.16, 0.06, -0.95, 1.4, 2.62, M.hwDark);\naddBox(\"Bracket_Front_R\", 0.06, 0.16, 0.06, 0.95, 1.4, 2.62, M.hwDark);\n\n/* ---------- BAGS ---------- */\naddBag(\"Bag_Side_L\", -1.17, 1.0, 1.35, 0.16, 0.36, 0.75);\naddBag(\"Bag_Side_R\", 1.17, 1.0, 1.35, 0.16, 0.36, 0.75);\naddBag(\"Bag_Rear_Top\", 0.5, 1.78, -2.3, 0.75, 0.24, 0.4);\naddBag(\"Bag_Front_Left\", -0.88, 1.82, 1.95, 0.3, 0.2, 0.45);\n\n/* ---------- FOGLIGHTS ---------- */\naddFog(\"Fog_Front_L\", -0.72, 1.18, 2.62, 0.12);\naddFog(\"Fog_Front_R\", 0.72, 1.18, 2.62, 0.12);\naddFog(\"Fog_Upper_L\", -0.85, 1.82, 2.35, 0.09);\naddFog(\"Fog_Upper_R\", 0.85, 1.82, 2.35, 0.09);\n\n/* ---------- INSIGNIA ---------- */\naddRoundel(\"Insignia_Front\", 0.72, 1.28, 2.648, 0, 0.8);\naddRoundel(\"Insignia_Rear\", -0.7, 1.3, -2.592, Math.PI, 0.85);\naddRoundel(\"Insignia_Side_L\", -1.008, 1.72, 1.35, -Math.PI / 2, 0.9);\naddRoundel(\"Insignia_Side_R\", 1.008, 1.72, 1.35, Math.PI / 2, 0.9);\n\n/* ---------- UNIT IDS ---------- */\naddBox(\"ID_Plate_Front\", 0.42, 0.24, 0.015, 0, 1.02, 2.638, M.idPlate);\naddText(\"07\", 0, 1.02, 2.652, 1, M.id, 1.0);\naddBox(\"ID_Plate_Rear\", 0.52, 0.22, 0.015, 0, 1.48, -2.588, M.idPlate);\naddText(\"417\", 0, 1.48, -2.602, -1, M.id, 0.95);\n\n/* ---------- CAMO NETTING ---------- */\nconst netGeo = new THREE.PlaneGeometry(2.4, 4.3, 8, 12);\nconst netPos = netGeo.attributes.position;\nfor (let i = 0; i < netPos.count; i++) {\n  const nx = netPos.getX(i), ny = netPos.getY(i);\n  const sag = Math.sin(((nx + 1.2) / 2.4) * Math.PI) * 0.13 * Math.cos(((ny + 2.15) / 4.3) * Math.PI);\n  netPos.setZ(i, -sag);\n}\nnetGeo.computeVertexNormals();\nconst netSheet = new THREE.Mesh(netGeo, M.net);\nnetSheet.name = \"CamoNet_Sheet\";\nnetSheet.position.set(0, 2.03, -0.1);\nnetSheet.rotation.x = -Math.PI / 2;\nhull.add(netSheet);\n\nfor (let i = 0; i < 9; i++) {\n  addBox(\"CamoNet_Weave_Long_\" + i, 0.022, 0.012, 4.2, -1.05 + i * 0.2625, 2.02, -0.1, M.weave);\n}\nfor (let i = 0; i < 13; i++) {\n  addBox(\"CamoNet_Weave_Cross_\" + i, 2.2, 0.012, 0.022, 0, 2.02, -2.1 + i * 0.35, M.weave);\n}\n[[-0.85, -1.6, 0.42, 0.3], [0.35, -0.9, 0.5, 0.36], [-0.2, 0.35, 0.38, 0.28], [0.75, 1.15, 0.44, 0.32], [-0.7, 1.55, 0.34, 0.26], [0.15, -1.95, 0.4, 0.3]].forEach((c, i) => {\n  const p = new THREE.Mesh(new THREE.SphereGeometry(0.3, 12, 8), i % 2 === 0 ? M.camoA : M.camoB);\n  p.name = \"CamoNet_Patch_\" + i;\n  p.position.set(c[0], 2.045, c[1]);\n  p.scale.set(c[2] * 2.2, 0.05, c[3] * 2.2);\n  hull.add(p);\n});\n[[-1.08, -2.0], [1.08, -2.0], [-1.08, 1.8], [1.08, 1.8], [0, -0.1]].forEach((p, i) => {\n  addCyl(\"CamoNet_Pole_\" + i, 0.022, 0.24, p[0], 1.98, p[1], M.hwDark);\n});\nconst bundle = new THREE.Mesh(new THREE.CylinderGeometry(0.11, 0.11, 1.5, 14), M.bundle);\nbundle.name = \"CamoNet_RolledBundle\";\nbundle.position.set(0, 1.99, -2.05);\nbundle.rotation.z = Math.PI / 2;\nhull.add(bundle);\naddBox(\"CamoNet_BundleStrap_A\", 0.06, 0.26, 0.26, -0.45, 1.99, -2.05, M.strap);\naddBox(\"CamoNet_BundleStrap_B\", 0.06, 0.26, 0.26, 0.45, 1.99, -2.05, M.strap);\n\n/* ---------- EXISTING PART TWEAKS ---------- */\nconst deck = group.getObjectByName(\"mesh_26\");\nif (deck && deck.material && deck.material.color) { deck.material.color.set(\"#1d2318\"); }\nconst trim = group.getObjectByName(\"HullAccentTrim\");\nif (trim && trim.material && trim.material.color) { trim.material.color.set(\"#b30071\"); trim.material.roughness = 0.5; }\nconst grille = group.getObjectByName(\"mesh_34\");\nif (grille && grille.material && grille.material.color) { grille.material.color.set(\"#1d2318\"); }\nconst frontPanel = group.getObjectByName(\"mesh_48\");\nif (frontPanel && frontPanel.material && frontPanel.material.color) { frontPanel.material.color.set(\"#55683f\"); }\n}\n\n{\nconst matVentBack = new THREE.MeshStandardMaterial({ color: 0x252c1e, roughness: 0.92 });\nconst matVentSlat = new THREE.MeshStandardMaterial({ color: 0x3f4f30, roughness: 0.75 });\nconst matPanelA = new THREE.MeshStandardMaterial({ color: 0x55683f, roughness: 0.68 });\nconst matPanelB = new THREE.MeshStandardMaterial({ color: 0x4e6039, roughness: 0.72 });\nconst matHardware = new THREE.MeshStandardMaterial({ color: 0x6b6f63, roughness: 0.42, metalness: 0.55 });\nconst matSeam = new THREE.MeshStandardMaterial({ color: 0x1b2018, roughness: 0.95 });\nconst matBag = new THREE.MeshStandardMaterial({ color: 0x4b4a38, roughness: 1.0 });\nconst matStrap = new THREE.MeshStandardMaterial({ color: 0x2b2b20, roughness: 1.0 });\nconst matHousing = new THREE.MeshStandardMaterial({ color: 0x33372f, roughness: 0.5, metalness: 0.4 });\nconst matLens = new THREE.MeshStandardMaterial({ color: 0xf6f2d0, roughness: 0.15, metalness: 0.1, emissive: 0xffe9a0, emissiveIntensity: 0.55 });\nconst matMarker = new THREE.MeshStandardMaterial({ color: 0xd06a1a, roughness: 0.3, emissive: 0xff7a1a, emissiveIntensity: 0.6 });\nconst matInsignia = new THREE.MeshStandardMaterial({ color: 0xb30071, roughness: 0.6 });\nconst matInsigniaLight = new THREE.MeshStandardMaterial({ color: 0xe9e6d8, roughness: 0.6 });\nconst matStencil = new THREE.MeshStandardMaterial({ color: 0xdcdccb, roughness: 0.85 });\nconst matNet = new THREE.MeshStandardMaterial({ color: 0x3a4a2c, roughness: 1.0 });\nconst matTarp = new THREE.MeshStandardMaterial({ color: 0x46583a, roughness: 1.0 });\nconst matFoliageA = new THREE.MeshStandardMaterial({ color: 0x3d5228, roughness: 1.0 });\nconst matFoliageB = new THREE.MeshStandardMaterial({ color: 0x556b33, roughness: 1.0 });\nconst matFoliageC = new THREE.MeshStandardMaterial({ color: 0x2f3f22, roughness: 1.0 });\n\nfor (const sx of [-1, 1]) {\n  const ventBack = new THREE.Mesh(new THREE.BoxGeometry(0.03, 0.36, 0.72), matVentBack);\n  ventBack.position.set(sx * 1.115, 0.95, 1.2);\n  group.add(ventBack);\n  for (let i = 0; i < 5; i++) {\n    const slat = new THREE.Mesh(new THREE.BoxGeometry(0.05, 0.05, 0.68), matVentSlat);\n    slat.position.set(sx * 1.135, 0.83 + i * 0.06, 1.2);\n    group.add(slat);\n  }\n}\n\nconst deckVent = new THREE.Mesh(new THREE.BoxGeometry(1.25, 0.09, 0.55), matVentBack);\ndeckVent.position.set(0, 1.93, -0.85);\ngroup.add(deckVent);\nfor (let i = 0; i < 6; i++) {\n  const deckSlat = new THREE.Mesh(new THREE.BoxGeometry(1.2, 0.05, 0.05), matVentSlat);\n  deckSlat.position.set(0, 1.99, -1.08 + i * 0.09);\n  group.add(deckSlat);\n}\n\nconst roofVent = new THREE.Mesh(new THREE.BoxGeometry(0.9, 0.07, 0.3), matVentBack);\nroofVent.position.set(0, 1.94, 1.78);\ngroup.add(roofVent);\nfor (let i = 0; i < 4; i++) {\n  const roofSlat = new THREE.Mesh(new THREE.BoxGeometry(0.85, 0.04, 0.04), matVentSlat);\n  roofSlat.position.set(0, 1.99, 1.68 + i * 0.07);\n  group.add(roofSlat);\n}\n\nconst frontPlate = new THREE.Mesh(new THREE.BoxGeometry(1.6, 0.5, 0.03), matPanelA);\nfrontPlate.position.set(0, 1.6, 1.915);\ngroup.add(frontPlate);\n\nfor (const sx of [-1, 1]) {\n  const lowPlateF = new THREE.Mesh(new THREE.BoxGeometry(0.03, 0.4, 0.95), matPanelB);\n  lowPlateF.position.set(sx * 1.115, 0.95, 1.55);\n  group.add(lowPlateF);\n  const lowPlateR = new THREE.Mesh(new THREE.BoxGeometry(0.03, 0.4, 0.95), matPanelB);\n  lowPlateR.position.set(sx * 1.115, 0.95, -1.15);\n  group.add(lowPlateR);\n}\n\nconst rearPlate = new THREE.Mesh(new THREE.BoxGeometry(1.7, 0.55, 0.03), matPanelB);\nrearPlate.position.set(0, 1.3, -2.585);\ngroup.add(rearPlate);\n\nfor (const sx of [-1, 1]) {\n  for (let i = 0; i < 6; i++) {\n    const bolt = new THREE.Mesh(new THREE.CylinderGeometry(0.022, 0.022, 0.03, 8), matHardware);\n    bolt.rotation.z = Math.PI / 2;\n    bolt.position.set(sx * 1.07, 1.38, -0.72 + i * 0.16);\n    group.add(bolt);\n  }\n  for (let i = 0; i < 4; i++) {\n    const bolt = new THREE.Mesh(new THREE.CylinderGeometry(0.02, 0.02, 0.03, 8), matHardware);\n    bolt.rotation.z = Math.PI / 2;\n    bolt.position.set(sx * 1.07, 1.82, -0.72 + i * 0.16);\n    group.add(bolt);\n  }\n}\n\nfor (let i = 0; i < 5; i++) {\n  const bolt = new THREE.Mesh(new THREE.CylinderGeometry(0.022, 0.022, 0.03, 8), matHardware);\n  bolt.rotation.x = Math.PI / 2;\n  bolt.position.set(-0.7 + i * 0.35, 1.08, -2.615);\n  group.add(bolt);\n}\n\nfor (const sx of [-1, 1]) {\n  const hook = new THREE.Mesh(new THREE.BoxGeometry(0.14, 0.12, 0.14), matHardware);\n  hook.position.set(sx * 0.85, 0.9, 2.56);\n  group.add(hook);\n  const eye = new THREE.Mesh(new THREE.TorusGeometry(0.05, 0.014, 6, 14), matHardware);\n  eye.position.set(sx * 0.72, 1.93, -0.2);\n  group.add(eye);\n  const eye2 = new THREE.Mesh(new THREE.TorusGeometry(0.05, 0.014, 6, 14), matHardware);\n  eye2.position.set(sx * 0.72, 1.93, 0.2);\n  group.add(eye2);\n}\n\nconst hitch = new THREE.Mesh(new THREE.BoxGeometry(0.3, 0.12, 0.12), matHardware);\nhitch.position.set(0, 0.85, -2.6);\ngroup.add(hitch);\n\nconst seamTopL = new THREE.Mesh(new THREE.BoxGeometry(0.03, 0.02, 3.6), matSeam);\nseamTopL.position.set(-0.97, 1.905, 0);\ngroup.add(seamTopL);\nconst seamTopR = new THREE.Mesh(new THREE.BoxGeometry(0.03, 0.02, 3.6), matSeam);\nseamTopR.position.set(0.97, 1.905, 0);\ngroup.add(seamTopR);\nconst seamCrossF = new THREE.Mesh(new THREE.BoxGeometry(1.94, 0.02, 0.03), matSeam);\nseamCrossF.position.set(0, 1.905, 1.85);\ngroup.add(seamCrossF);\nconst seamCrossR = new THREE.Mesh(new THREE.BoxGeometry(1.94, 0.02, 0.03), matSeam);\nseamCrossR.position.set(0, 1.905, -1.85);\ngroup.add(seamCrossR);\nfor (const sx of [-1, 1]) {\n  const seamSideA = new THREE.Mesh(new THREE.BoxGeometry(0.02, 0.56, 0.03), matSeam);\n  seamSideA.position.set(sx * 1.005, 1.6, 0.06);\n  group.add(seamSideA);\n  const seamSideB = new THREE.Mesh(new THREE.BoxGeometry(0.02, 0.56, 0.03), matSeam);\n  seamSideB.position.set(sx * 1.005, 1.6, -0.76);\n  group.add(seamSideB);\n  const seamLower = new THREE.Mesh(new THREE.BoxGeometry(0.02, 0.02, 4.3), matSeam);\n  seamLower.position.set(sx * 1.105, 1.28, 0);\n  group.add(seamLower);\n}\n\nfor (const sx of [-1, 1]) {\n  const bag = new THREE.Mesh(new THREE.SphereGeometry(0.5, 14, 10), matBag);\n  bag.scale.set(0.19, 0.32, 0.62);\n  bag.position.set(sx * 1.16, 1.12, 0.95);\n  group.add(bag);\n  const strapA = new THREE.Mesh(new THREE.BoxGeometry(0.22, 0.36, 0.05), matStrap);\n  strapA.position.set(sx * 1.16, 1.12, 0.78);\n  group.add(strapA);\n  const strapB = new THREE.Mesh(new THREE.BoxGeometry(0.22, 0.36, 0.05), matStrap);\n  strapB.position.set(sx * 1.16, 1.12, 1.12);\n  group.add(strapB);\n  const bag2 = new THREE.Mesh(new THREE.SphereGeometry(0.5, 14, 10), matBag);\n  bag2.scale.set(0.17, 0.28, 0.52);\n  bag2.position.set(sx * 1.15, 1.1, -1.35);\n  group.add(bag2);\n  const strap2 = new THREE.Mesh(new THREE.BoxGeometry(0.2, 0.32, 0.05), matStrap);\n  strap2.position.set(sx * 1.15, 1.1, -1.2);\n  group.add(strap2);\n}\n\nconst roll = new THREE.Mesh(new THREE.CylinderGeometry(0.11, 0.11, 0.85, 12), matBag);\nroll.rotation.x = Math.PI / 2;\nroll.position.set(0.8, 1.99, -0.85);\ngroup.add(roll);\nconst rollStrap = new THREE.Mesh(new THREE.BoxGeometry(0.26, 0.26, 0.05), matStrap);\nrollStrap.position.set(0.8, 1.99, -0.85);\ngroup.add(rollStrap);\n\nfor (const sx of [-1, 1]) {\n  const bracket = new THREE.Mesh(new THREE.BoxGeometry(0.1, 0.16, 0.08), matHardware);\n  bracket.position.set(sx * 0.62, 1.6, 1.93);\n  group.add(bracket);\n  const housing = new THREE.Mesh(new THREE.CylinderGeometry(0.11, 0.11, 0.12, 16), matHousing);\n  housing.rotation.x = Math.PI / 2;\n  housing.position.set(sx * 0.62, 1.6, 2.0);\n  group.add(housing);\n  const lens = new THREE.Mesh(new THREE.CircleGeometry(0.095, 20), matLens);\n  lens.position.set(sx * 0.62, 1.6, 2.062);\n  group.add(lens);\n  const rim = new THREE.Mesh(new THREE.TorusGeometry(0.105, 0.018, 8, 20), matHardware);\n  rim.position.set(sx * 0.62, 1.6, 2.06);\n  group.add(rim);\n  const guard = new THREE.Mesh(new THREE.BoxGeometry(0.26, 0.02, 0.02), matHardware);\n  guard.position.set(sx * 0.62, 1.73, 2.02);\n  group.add(guard);\n  const marker = new THREE.Mesh(new THREE.BoxGeometry(0.08, 0.05, 0.03), matMarker);\n  marker.position.set(sx * 0.86, 1.76, 1.94);\n  group.add(marker);\n}\n\nfor (const sx of [-1, 1]) {\n  const disc = new THREE.Mesh(new THREE.CircleGeometry(0.14, 24), matInsignia);\n  disc.rotation.y = sx * Math.PI / 2;\n  disc.position.set(sx * 1.06, 1.6, 0.62);\n  group.add(disc);\n  const inner = new THREE.Mesh(new THREE.CircleGeometry(0.065, 20), matInsigniaLight);\n  inner.rotation.y = sx * Math.PI / 2;\n  inner.position.set(sx * 1.065, 1.6, 0.62);\n  group.add(inner);\n}\n\nconst rearDisc = new THREE.Mesh(new THREE.CircleGeometry(0.12, 24), matInsignia);\nrearDisc.rotation.y = Math.PI;\nrearDisc.position.set(0.6, 1.3, -2.605);\ngroup.add(rearDisc);\nconst rearInner = new THREE.Mesh(new THREE.CircleGeometry(0.055, 20), matInsigniaLight);\nrearInner.rotation.y = Math.PI;\nrearInner.position.set(0.6, 1.3, -2.61);\ngroup.add(rearInner);\n\nconst segMap = {\n  a: [0, 0.085, 0.09, 0.025],\n  b: [0.045, 0.0425, 0.025, 0.08],\n  c: [0.045, -0.0425, 0.025, 0.08],\n  d: [0, -0.085, 0.09, 0.025],\n  e: [-0.045, -0.0425, 0.025, 0.08],\n  f: [-0.045, 0.0425, 0.025, 0.08],\n  g: [0, 0, 0.09, 0.025]\n};\n\nconst rearDigits = [\n  { ox: 0.2, segs: [\"b\", \"c\"] },\n  { ox: 0.0, segs: [\"g\"] },\n  { ox: -0.2, segs: [\"a\", \"b\", \"c\"] }\n];\nfor (const d of rearDigits) {\n  for (const s of d.segs) {\n    const sg = segMap[s];\n    const m = new THREE.Mesh(new THREE.BoxGeometry(sg[2], sg[3], 0.02), matStencil);\n    m.position.set(d.ox + sg[0], 1.3 + sg[1], -2.62);\n    group.add(m);\n  }\n}\n\nfor (const sx of [-1, 1]) {\n  const sideDigits = [\n    { oz: sx * 0.2, segs: [\"b\", \"c\"] },\n    { oz: 0, segs: [\"g\"] },\n    { oz: -sx * 0.2, segs: [\"a\", \"b\", \"c\"] }\n  ];\n  for (const d of sideDigits) {\n    for (const s of d.segs) {\n      const sg = segMap[s];\n      const m = new THREE.Mesh(new THREE.BoxGeometry(0.02, sg[3], sg[2]), matStencil);\n      m.position.set(sx * 1.06, 1.6 + sg[1], -0.35 + d.oz);\n      group.add(m);\n    }\n  }\n}\n\nconst tarp = new THREE.Mesh(new THREE.BoxGeometry(1.86, 0.05, 1.25), matTarp);\ntarp.position.set(0, 1.94, 1.05);\ngroup.add(tarp);\n\nfor (let i = 0; i < 7; i++) {\n  const strand = new THREE.Mesh(new THREE.BoxGeometry(1.86, 0.014, 0.014), matNet);\n  strand.position.set(0, 1.978, 0.47 + i * 0.19);\n  group.add(strand);\n}\nfor (let i = 0; i < 10; i++) {\n  const strand = new THREE.Mesh(new THREE.BoxGeometry(0.014, 0.014, 1.25), matNet);\n  strand.position.set(-0.85 + i * 0.19, 1.978, 1.05);\n  group.add(strand);\n}\n\nconst foliageMats = [matFoliageA, matFoliageB, matFoliageC];\nfor (let i = 0; i < 18; i++) {\n  const fx = -0.78 + (i % 6) * 0.31;\n  const fz = 0.56 + Math.floor(i / 6) * 0.32;\n  const clump = new THREE.Mesh(new THREE.BoxGeometry(0.26, 0.09, 0.24), foliageMats[i % 3]);\n  clump.position.set(fx, 2.0, fz);\n  clump.rotation.y = i * 0.7;\n  group.add(clump);\n}\n\nconst netEdge = new THREE.Mesh(new THREE.BoxGeometry(1.86, 0.014, 0.014), matNet);\nnetEdge.position.set(0, 1.68, 1.68);\ngroup.add(netEdge);\nfor (let i = 0; i < 9; i++) {\n  const hang = new THREE.Mesh(new THREE.BoxGeometry(0.014, 0.3, 0.014), matNet);\n  hang.position.set(-0.82 + i * 0.2, 1.82, 1.68);\n  group.add(hang);\n}\nconst netEdgeR = new THREE.Mesh(new THREE.BoxGeometry(1.86, 0.014, 0.014), matNet);\nnetEdgeR.position.set(0, 1.68, 0.42);\ngroup.add(netEdgeR);\nfor (let i = 0; i < 9; i++) {\n  const hang = new THREE.Mesh(new THREE.BoxGeometry(0.014, 0.26, 0.014), matNet);\n  hang.position.set(-0.82 + i * 0.2, 1.8, 0.42);\n  group.add(hang);\n}\n}\nreturn group;","tone":null,"animations":[],"usage":{"requests":3,"generations":0,"promptTokens":9702,"completionTokens":53200,"totalTokens":62902,"cost":0.0271477602,"activeMs":93494,"ratingSum":0,"ratingCount":0,"judgeCost":0},"startedAt":1792920114020,"completedAt":1792920398948,"durationMs":284928,"report":"Parts: 523 meshes, 18028 triangles. Size: 2.64 x 3.62 x 5.76 (X x Y x Z). Lowest point Y=-0.000.\nValidator: no geometry defects (NaN, degenerate faces, bad winding, open shells).","sliceCount":4,"sliceIds":["gen-agent-24-mvnmcdvk-zj5vu-s1","gen-agent-24-mvnmcdvk-zj5vu-s2","gen-agent-24-mvnmcdvk-zj5vu-s3","gen-agent-24-mvnmcdvk-zj5vu-s4"],"judging":null,"thumbUrl":"https://futurelabs.now/apps/images/u2/gen-agent-24-mvnmcdvk-zj5vu.png"},"slices":[{"id":"gen-agent-24-mvnmcdvk-zj5vu-s1","index":1,"summary":"Slice 1 of 3","final":false,"code":"// Converted from an uploaded model. Edit parts with group.getObjectByName(\"<name>\").\nconst D = (s, T) => { const b = atob(s), u = new Uint8Array(b.length); for (let i = 0; i < b.length; i++) u[i] = b.charCodeAt(i); return new T(u.buffer); };\nconst P = (p, uv, ix, col, cs) => {\n  const g = new THREE.BufferGeometry();\n  g.setAttribute('position', new THREE.BufferAttribute(D(p, Float32Array), 3));\n  if (uv) g.setAttribute('uv', new THREE.BufferAttribute(D(uv, Float32Array), 2));\n  if (col) g.setAttribute('color', new THREE.BufferAttribute(D(col, Float32Array), cs || 3));\n  if (ix) g.setIndex(new THREE.BufferAttribute(D(ix, Uint32Array), 1));\n  g.computeVertexNormals(); g.computeBoundingSphere();\n  return g;\n};\nconst M_default = new THREE.MeshStandardMaterial({ color: '#cccccc', roughness: 0.7, metalness: 0 });\nconst n0 = new THREE.Group(); n0.name = \"AuxScene\";\nn0.position.fromArray([0, 0, 0]); n0.quaternion.fromArray([0, 0, 0, 1]); n0.scale.fromArray([1, 1, 1]);\nconst n1 = new THREE.Group(); n1.name = \"Armored_Vehicle\";\nn1.position.fromArray([0, 0, 0]); n1.quaternion.fromArray([0, 0, 0, 1]); n1.scale.fromArray([1, 1, 1]);\nn0.add(n1);\nconst n2 = new THREE.Group(); n2.name = \"Hull\";\nn2.position.fromArray([0, 0, 0]); n2.quaternion.fromArray([0, 0, 0, 1]); n2.scale.fromArray([1, 1, 1]);\nn1.add(n2);\nconst M_0 = new THREE.MeshStandardMaterial({ color: '#2e3628', roughness: 0.75, metalness: 0.1 });\nconst n3 = new THREE.Mesh(P('zcyMPzMzsz7NzAxAzcyMPzMzsz7NzAzAzcyMPzMzs77NzAxAzcyMPzMzs77NzAzAzcyMvzMzsz7NzAzAzcyMvzMzsz7NzAxAzcyMvzMzs77NzAzAzcyMvzMzs77NzAxAzcyMvzMzsz7NzAzAzcyMPzMzsz7NzAzAzcyMvzMzsz7NzAxAzcyMPzMzsz7NzAxAzcyMvzMzs77NzAxAzcyMPzMzs77NzAxAzcyMvzMzs77NzAzAzcyMPzMzs77NzAzAzcyMvzMzsz7NzAxAzcyMPzMzsz7NzAxAzcyMvzMzs77NzAxAzcyMPzMzs77NzAxAzcyMPzMzsz7NzAzAzcyMvzMzsz7NzAzAzcyMPzMzs77NzAzAzcyMvzMzs77NzAzA', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_0); n3.name = \"HullLower\";\nn3.position.fromArray([0, 0.95, 0]); n3.quaternion.fromArray([0, 0, 0, 1]); n3.scale.fromArray([1, 1, 1]);\nn2.add(n3);\nconst M_1 = new THREE.MeshStandardMaterial({ color: '#4a5d3a', roughness: 0.7, metalness: 0.1 });\nconst n4 = new THREE.Mesh(P('AACAP5qZmT4zM/M/AACAP5qZmT4zM/O/AACAP5qZmb4zM/M/AACAP5qZmb4zM/O/AACAv5qZmT4zM/O/AACAv5qZmT4zM/M/AACAv5qZmb4zM/O/AACAv5qZmb4zM/M/AACAv5qZmT4zM/O/AACAP5qZmT4zM/O/AACAv5qZmT4zM/M/AACAP5qZmT4zM/M/AACAv5qZmb4zM/M/AACAP5qZmb4zM/M/AACAv5qZmb4zM/O/AACAP5qZmb4zM/O/AACAv5qZmT4zM/M/AACAP5qZmT4zM/M/AACAv5qZmb4zM/M/AACAP5qZmb4zM/M/AACAP5qZmT4zM/O/AACAv5qZmT4zM/O/AACAP5qZmb4zM/O/AACAv5qZmb4zM/O/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n4.name = \"HullUpper\";\nn4.position.fromArray([0, 1.6, -0.1]); n4.quaternion.fromArray([0, 0, 0, 1]); n4.scale.fromArray([1, 1, 1]);\nn2.add(n4);\nconst n5 = new THREE.Mesh(P('AACAP83MjD7NzMw+AACAP83MjD7NzMy+AACAP83MjL7NzMw+AACAP83MjL7NzMy+AACAv83MjD7NzMy+AACAv83MjD7NzMw+AACAv83MjL7NzMy+AACAv83MjL7NzMw+AACAv83MjD7NzMy+AACAP83MjD7NzMy+AACAv83MjD7NzMw+AACAP83MjD7NzMw+AACAv83MjL7NzMw+AACAP83MjL7NzMw+AACAv83MjL7NzMy+AACAP83MjL7NzMy+AACAv83MjD7NzMw+AACAP83MjD7NzMw+AACAv83MjL7NzMw+AACAP83MjL7NzMw+AACAP83MjD7NzMy+AACAv83MjD7NzMy+AACAP83MjL7NzMy+AACAv83MjL7NzMy+', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n5.name = \"HullNoseGlacis\";\nn5.position.fromArray([0, 1.25, 2.15]); n5.quaternion.fromArray([-0.2474, 0, 0, 0.96891]); n5.scale.fromArray([1, 1, 1]);\nn2.add(n5);\nconst n6 = new THREE.Mesh(P('AACAPwAAgD6amZk+AACAPwAAgD6amZm+AACAPwAAgL6amZk+AACAPwAAgL6amZm+AACAvwAAgD6amZm+AACAvwAAgD6amZk+AACAvwAAgL6amZm+AACAvwAAgL6amZk+AACAvwAAgD6amZm+AACAPwAAgD6amZm+AACAvwAAgD6amZk+AACAPwAAgD6amZk+AACAvwAAgL6amZk+AACAPwAAgL6amZk+AACAvwAAgL6amZm+AACAPwAAgL6amZm+AACAvwAAgD6amZk+AACAPwAAgD6amZk+AACAvwAAgL6amZk+AACAPwAAgL6amZk+AACAPwAAgD6amZm+AACAvwAAgD6amZm+AACAPwAAgL6amZm+AACAvwAAgL6amZm+', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n6.name = \"HullRearSlope\";\nn6.position.fromArray([0, 1.3, -2.2]); n6.quaternion.fromArray([0.22311, 0, 0, 0.97479]); n6.scale.fromArray([1, 1, 1]);\nn2.add(n6);\nconst M_2 = new THREE.MeshStandardMaterial({ color: '#b30071', roughness: 0.35, metalness: 0.2 });\nconst n7 = new THREE.Mesh(P('rkeBPwrXIz0AAKA/rkeBPwrXIz0AAKC/rkeBPwrXI70AAKA/rkeBPwrXI70AAKC/rkeBvwrXIz0AAKC/rkeBvwrXIz0AAKA/rkeBvwrXI70AAKC/rkeBvwrXI70AAKA/rkeBvwrXIz0AAKC/rkeBPwrXIz0AAKC/rkeBvwrXIz0AAKA/rkeBPwrXIz0AAKA/rkeBvwrXI70AAKA/rkeBPwrXI70AAKA/rkeBvwrXI70AAKC/rkeBPwrXI70AAKC/rkeBvwrXIz0AAKA/rkeBPwrXIz0AAKA/rkeBvwrXI70AAKA/rkeBPwrXI70AAKA/rkeBPwrXIz0AAKC/rkeBvwrXIz0AAKC/rkeBPwrXI70AAKC/rkeBvwrXI70AAKC/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_2); n7.name = \"HullAccentTrim\";\nn7.position.fromArray([0, 1.45, -0.1]); n7.quaternion.fromArray([0, 0, 0, 1]); n7.scale.fromArray([1, 1, 1]);\nn2.add(n7);\nconst n8 = new THREE.Group(); n8.name = \"TurretAssembly\";\nn8.position.fromArray([0, 0, 0]); n8.quaternion.fromArray([0, 0, 0, 1]); n8.scale.fromArray([1, 1, 1]);\nn1.add(n8);\nconst n9 = new THREE.Mesh(P('AABAP83MjD4AAIA/AABAP83MjD4AAIC/AABAP83MjL4AAIA/AABAP83MjL4AAIC/AABAv83MjD4AAIC/AABAv83MjD4AAIA/AABAv83MjL4AAIC/AABAv83MjL4AAIA/AABAv83MjD4AAIC/AABAP83MjD4AAIC/AABAv83MjD4AAIA/AABAP83MjD4AAIA/AABAv83MjL4AAIA/AABAP83MjL4AAIA/AABAv83MjL4AAIC/AABAP83MjL4AAIC/AABAv83MjD4AAIA/AABAP83MjD4AAIA/AABAv83MjL4AAIA/AABAP83MjL4AAIA/AABAP83MjD4AAIC/AABAv83MjD4AAIC/AABAP83MjL4AAIC/AABAv83MjL4AAIC/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n9.name = \"TurretAssemblyHull\";\nn9.position.fromArray([0, 2.17, -0.2]); n9.quaternion.fromArray([0, 0, 0, 1]); n9.scale.fromArray([1, 1, 1]);\nn8.add(n9);\nconst M_3 = new THREE.MeshStandardMaterial({ color: '#2b2e33', roughness: 0.4, metalness: 1 });\nconst n10 = new THREE.Mesh(P('AAAAAJqZmT/sUbg9YK5YPZqZmT82HpU9ekyvPZqZmT8B1eM8ekyvPZqZmT8B1eO8YK5YPZqZmT82HpW9FFFLI5qZmT/sUbi9YK5YvZqZmT82HpW9ekyvvZqZmT8B1eO8ekyvvZqZmT8B1eM8YK5YvZqZmT82HpU9FFHLo5qZmT/sUbg9AAAAAJqZmb+uR+E9kGqEPZqZmb9fQbY9B0HWPZqZmb8POws9B0HWPZqZmb8POwu9kGqEPZqZmb9fQba9in94I5qZmb+uR+G9kGqEvZqZmb9fQba9B0HWvZqZmb8POwu9B0HWvZqZmb8POws9kGqEvZqZmb9fQbY9in/4o5qZmb+uR+E9AAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT/sUbg9YK5YPZqZmT82HpU9ekyvPZqZmT8B1eM8ekyvPZqZmT8B1eO8YK5YPZqZmT82HpW9FFFLI5qZmT/sUbi9YK5YvZqZmT82HpW9ekyvvZqZmT8B1eO8ekyvvZqZmT8B1eM8YK5YvZqZmT82HpU9FFHLo5qZmT/sUbg9AAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb+uR+E9kGqEPZqZmb9fQbY9B0HWPZqZmb8POws9B0HWPZqZmb8POwu9kGqEPZqZmb9fQba9in94I5qZmb+uR+G9kGqEvZqZmb9fQba9B0HWvZqZmb8POwu9B0HWvZqZmb8POws9kGqEvZqZmb9fQbY9in/4o5qZmb+uR+E9', 'AAAAAAAAgD/NzMw9AACAP83MTD4AAIA/mpmZPgAAgD/NzMw+AACAPwAAAD8AAIA/mpkZPwAAgD8zMzM/AACAP83MTD8AAIA/ZmZmPwAAgD8AAIA/AACAPwAAAAAAAAAAzczMPQAAAADNzEw+AAAAAJqZmT4AAAAAzczMPgAAAAAAAAA/AAAAAJqZGT8AAAAAMzMzPwAAAADNzEw/AAAAAGZmZj8AAAAAAACAPwAAAAAAAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/3o1nP4w8Sz/ejSc/OLx5P0PksD44vHk/DZHDPYw8Sz8AAAAAAAAAPw2Rwz3QDVM+Q+SwPvZ4yDzejSc/9njIPN6NZz/QDVM+AACAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/3o1nP9ANUz7ejSc/9njIPEPksD72eMg8DZHDPdANUz4AAAAAAAAAPw2Rwz2MPEs/Q+SwPji8eT/ejSc/OLx5P96NZz+MPEs/AACAPwAAAD8=', 'AAAAAAsAAAABAAAACwAAAAwAAAABAAAAAQAAAAwAAAACAAAADAAAAA0AAAACAAAAAgAAAA0AAAADAAAADQAAAA4AAAADAAAAAwAAAA4AAAAEAAAADgAAAA8AAAAEAAAABAAAAA8AAAAFAAAADwAAABAAAAAFAAAABQAAABAAAAAGAAAAEAAAABEAAAAGAAAABgAAABEAAAAHAAAAEQAAABIAAAAHAAAABwAAABIAAAAIAAAAEgAAABMAAAAIAAAACAAAABMAAAAJAAAAEwAAABQAAAAJAAAACQAAABQAAAAKAAAAFAAAABUAAAAKAAAAIAAAACEAAAAWAAAAIQAAACIAAAAXAAAAIgAAACMAAAAYAAAAIwAAACQAAAAZAAAAJAAAACUAAAAaAAAAJQAAACYAAAAbAAAAJgAAACcAAAAcAAAAJwAAACgAAAAdAAAAKAAAACkAAAAeAAAAKQAAACoAAAAfAAAANgAAADUAAAArAAAANwAAADYAAAAsAAAAOAAAADcAAAAtAAAAOQAAADgAAAAuAAAAOgAAADkAAAAvAAAAOwAAADoAAAAwAAAAPAAAADsAAAAxAAAAPQAAADwAAAAyAAAAPgAAAD0AAAAzAAAAPwAAAD4AAAA0AAAA', null), M_3); n10.name = \"TurretAssemblyBarrel\";\nn10.position.fromArray([0, 2.2, 1.9]); n10.quaternion.fromArray([0.70711, 0, 0, 0.70711]); n10.scale.fromArray([1, 1, 1]);\nn8.add(n10);\nconst n11 = new THREE.Group(); n11.name = \"Wheels\";\nn11.position.fromArray([0, 0, 0]); n11.quaternion.fromArray([0, 0, 0, 1]); n11.scale.fromArray([1, 1, 1]);\nn1.add(n11);\nconst M_4 = new THREE.MeshStandardMaterial({ color: '#1a1a1a', roughness: 0.9, metalness: 0 });\nconst n12 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n12.name = \"WheelsLeft01\";\nn12.position.fromArray([-1.1, 0.5, 1.5]); n12.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n12.scale.fromArray([1, 1, 1]);\nn11.add(n12);\nconst n13 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n13.name = \"WheelsRight01\";\nn13.position.fromArray([1.1, 0.5, 1.5]); n13.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n13.scale.fromArray([1, 1, 1]);\nn11.add(n13);\nconst n14 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n14.name = \"WheelsLeft02\";\nn14.position.fromArray([-1.1, 0.5, 0.5]); n14.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n14.scale.fromArray([1, 1, 1]);\nn11.add(n14);\nconst n15 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n15.name = \"WheelsRight02\";\nn15.position.fromArray([1.1, 0.5, 0.5]); n15.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n15.scale.fromArray([1, 1, 1]);\nn11.add(n15);\nconst n16 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n16.name = \"WheelsLeft03\";\nn16.position.fromArray([-1.1, 0.5, -0.55]); n16.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n16.scale.fromArray([1, 1, 1]);\nn11.add(n16);\nconst n17 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n17.name = \"WheelsRight03\";\nn17.position.fromArray([1.1, 0.5, -0.55]); n17.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n17.scale.fromArray([1, 1, 1]);\nn11.add(n17);\nconst n18 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n18.name = \"WheelsLeft04\";\nn18.position.fromArray([-1.1, 0.5, -1.55]); n18.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n18.scale.fromArray([1, 1, 1]);\nn11.add(n18);\nconst n19 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n19.name = \"WheelsRight04\";\nn19.position.fromArray([1.1, 0.5, -1.55]); n19.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n19.scale.fromArray([1, 1, 1]);\nn11.add(n19);\nconst group = n0;\nreturn group;","thumbUrl":"https://futurelabs.now/apps/images/u2/gen-agent-24-mvnmcdvk-zj5vu-s1.png"},{"id":"gen-agent-24-mvnmcdvk-zj5vu-s2","index":2,"summary":"Slice 2 of 3","final":false,"code":"// Converted from an uploaded model. Edit parts with group.getObjectByName(\"<name>\").\nconst D = (s, T) => { const b = atob(s), u = new Uint8Array(b.length); for (let i = 0; i < b.length; i++) u[i] = b.charCodeAt(i); return new T(u.buffer); };\nconst P = (p, uv, ix, col, cs) => {\n  const g = new THREE.BufferGeometry();\n  g.setAttribute('position', new THREE.BufferAttribute(D(p, Float32Array), 3));\n  if (uv) g.setAttribute('uv', new THREE.BufferAttribute(D(uv, Float32Array), 2));\n  if (col) g.setAttribute('color', new THREE.BufferAttribute(D(col, Float32Array), cs || 3));\n  if (ix) g.setIndex(new THREE.BufferAttribute(D(ix, Uint32Array), 1));\n  g.computeVertexNormals(); g.computeBoundingSphere();\n  return g;\n};\nconst M_default = new THREE.MeshStandardMaterial({ color: '#cccccc', roughness: 0.7, metalness: 0 });\nconst n0 = new THREE.Group(); n0.name = \"AuxScene\";\nn0.position.fromArray([0, 0, 0]); n0.quaternion.fromArray([0, 0, 0, 1]); n0.scale.fromArray([1, 1, 1]);\nconst n1 = new THREE.Group(); n1.name = \"Armored_Vehicle\";\nn1.position.fromArray([0, 0, 0]); n1.quaternion.fromArray([0, 0, 0, 1]); n1.scale.fromArray([1, 1, 1]);\nn0.add(n1);\nconst n2 = new THREE.Group(); n2.name = \"Hull\";\nn2.position.fromArray([0, 0, 0]); n2.quaternion.fromArray([0, 0, 0, 1]); n2.scale.fromArray([1, 1, 1]);\nn1.add(n2);\nconst M_0 = new THREE.MeshStandardMaterial({ color: '#2e3628', roughness: 0.75, metalness: 0.1 });\nconst n3 = new THREE.Mesh(P('zcyMPzMzsz7NzAxAzcyMPzMzsz7NzAzAzcyMPzMzs77NzAxAzcyMPzMzs77NzAzAzcyMvzMzsz7NzAzAzcyMvzMzsz7NzAxAzcyMvzMzs77NzAzAzcyMvzMzs77NzAxAzcyMvzMzsz7NzAzAzcyMPzMzsz7NzAzAzcyMvzMzsz7NzAxAzcyMPzMzsz7NzAxAzcyMvzMzs77NzAxAzcyMPzMzs77NzAxAzcyMvzMzs77NzAzAzcyMPzMzs77NzAzAzcyMvzMzsz7NzAxAzcyMPzMzsz7NzAxAzcyMvzMzs77NzAxAzcyMPzMzs77NzAxAzcyMPzMzsz7NzAzAzcyMvzMzsz7NzAzAzcyMPzMzs77NzAzAzcyMvzMzs77NzAzA', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_0); n3.name = \"HullLower\";\nn3.position.fromArray([0, 0.95, 0]); n3.quaternion.fromArray([0, 0, 0, 1]); n3.scale.fromArray([1, 1, 1]);\nn2.add(n3);\nconst M_1 = new THREE.MeshStandardMaterial({ color: '#4a5d3a', roughness: 0.7, metalness: 0.1 });\nconst n4 = new THREE.Mesh(P('AACAP5qZmT4zM/M/AACAP5qZmT4zM/O/AACAP5qZmb4zM/M/AACAP5qZmb4zM/O/AACAv5qZmT4zM/O/AACAv5qZmT4zM/M/AACAv5qZmb4zM/O/AACAv5qZmb4zM/M/AACAv5qZmT4zM/O/AACAP5qZmT4zM/O/AACAv5qZmT4zM/M/AACAP5qZmT4zM/M/AACAv5qZmb4zM/M/AACAP5qZmb4zM/M/AACAv5qZmb4zM/O/AACAP5qZmb4zM/O/AACAv5qZmT4zM/M/AACAP5qZmT4zM/M/AACAv5qZmb4zM/M/AACAP5qZmb4zM/M/AACAP5qZmT4zM/O/AACAv5qZmT4zM/O/AACAP5qZmb4zM/O/AACAv5qZmb4zM/O/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n4.name = \"HullUpper\";\nn4.position.fromArray([0, 1.6, -0.1]); n4.quaternion.fromArray([0, 0, 0, 1]); n4.scale.fromArray([1, 1, 1]);\nn2.add(n4);\nconst n5 = new THREE.Mesh(P('AACAP83MjD7NzMw+AACAP83MjD7NzMy+AACAP83MjL7NzMw+AACAP83MjL7NzMy+AACAv83MjD7NzMy+AACAv83MjD7NzMw+AACAv83MjL7NzMy+AACAv83MjL7NzMw+AACAv83MjD7NzMy+AACAP83MjD7NzMy+AACAv83MjD7NzMw+AACAP83MjD7NzMw+AACAv83MjL7NzMw+AACAP83MjL7NzMw+AACAv83MjL7NzMy+AACAP83MjL7NzMy+AACAv83MjD7NzMw+AACAP83MjD7NzMw+AACAv83MjL7NzMw+AACAP83MjL7NzMw+AACAP83MjD7NzMy+AACAv83MjD7NzMy+AACAP83MjL7NzMy+AACAv83MjL7NzMy+', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n5.name = \"HullNoseGlacis\";\nn5.position.fromArray([0, 1.25, 2.15]); n5.quaternion.fromArray([-0.2474, 0, 0, 0.96891]); n5.scale.fromArray([1, 1, 1]);\nn2.add(n5);\nconst n6 = new THREE.Mesh(P('AACAPwAAgD6amZk+AACAPwAAgD6amZm+AACAPwAAgL6amZk+AACAPwAAgL6amZm+AACAvwAAgD6amZm+AACAvwAAgD6amZk+AACAvwAAgL6amZm+AACAvwAAgL6amZk+AACAvwAAgD6amZm+AACAPwAAgD6amZm+AACAvwAAgD6amZk+AACAPwAAgD6amZk+AACAvwAAgL6amZk+AACAPwAAgL6amZk+AACAvwAAgL6amZm+AACAPwAAgL6amZm+AACAvwAAgD6amZk+AACAPwAAgD6amZk+AACAvwAAgL6amZk+AACAPwAAgL6amZk+AACAPwAAgD6amZm+AACAvwAAgD6amZm+AACAPwAAgL6amZm+AACAvwAAgL6amZm+', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n6.name = \"HullRearSlope\";\nn6.position.fromArray([0, 1.3, -2.2]); n6.quaternion.fromArray([0.22311, 0, 0, 0.97479]); n6.scale.fromArray([1, 1, 1]);\nn2.add(n6);\nconst M_2 = new THREE.MeshStandardMaterial({ color: '#b30071', roughness: 0.35, metalness: 0.2 });\nconst n7 = new THREE.Mesh(P('rkeBPwrXIz0AAKA/rkeBPwrXIz0AAKC/rkeBPwrXI70AAKA/rkeBPwrXI70AAKC/rkeBvwrXIz0AAKC/rkeBvwrXIz0AAKA/rkeBvwrXI70AAKC/rkeBvwrXI70AAKA/rkeBvwrXIz0AAKC/rkeBPwrXIz0AAKC/rkeBvwrXIz0AAKA/rkeBPwrXIz0AAKA/rkeBvwrXI70AAKA/rkeBPwrXI70AAKA/rkeBvwrXI70AAKC/rkeBPwrXI70AAKC/rkeBvwrXIz0AAKA/rkeBPwrXIz0AAKA/rkeBvwrXI70AAKA/rkeBPwrXI70AAKA/rkeBPwrXIz0AAKC/rkeBvwrXIz0AAKC/rkeBPwrXI70AAKC/rkeBvwrXI70AAKC/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_2); n7.name = \"HullAccentTrim\";\nn7.position.fromArray([0, 1.45, -0.1]); n7.quaternion.fromArray([0, 0, 0, 1]); n7.scale.fromArray([1, 1, 1]);\nn2.add(n7);\nconst n8 = new THREE.Group(); n8.name = \"TurretAssembly\";\nn8.position.fromArray([0, 0, 0]); n8.quaternion.fromArray([0, 0, 0, 1]); n8.scale.fromArray([1, 1, 1]);\nn1.add(n8);\nconst n9 = new THREE.Mesh(P('AABAP83MjD4AAIA/AABAP83MjD4AAIC/AABAP83MjL4AAIA/AABAP83MjL4AAIC/AABAv83MjD4AAIC/AABAv83MjD4AAIA/AABAv83MjL4AAIC/AABAv83MjL4AAIA/AABAv83MjD4AAIC/AABAP83MjD4AAIC/AABAv83MjD4AAIA/AABAP83MjD4AAIA/AABAv83MjL4AAIA/AABAP83MjL4AAIA/AABAv83MjL4AAIC/AABAP83MjL4AAIC/AABAv83MjD4AAIA/AABAP83MjD4AAIA/AABAv83MjL4AAIA/AABAP83MjL4AAIA/AABAP83MjD4AAIC/AABAv83MjD4AAIC/AABAP83MjL4AAIC/AABAv83MjL4AAIC/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n9.name = \"TurretAssemblyHull\";\nn9.position.fromArray([0, 2.17, -0.2]); n9.quaternion.fromArray([0, 0, 0, 1]); n9.scale.fromArray([1, 1, 1]);\nn8.add(n9);\nconst M_3 = new THREE.MeshStandardMaterial({ color: '#2b2e33', roughness: 0.4, metalness: 1 });\nconst n10 = new THREE.Mesh(P('AAAAAJqZmT/sUbg9YK5YPZqZmT82HpU9ekyvPZqZmT8B1eM8ekyvPZqZmT8B1eO8YK5YPZqZmT82HpW9FFFLI5qZmT/sUbi9YK5YvZqZmT82HpW9ekyvvZqZmT8B1eO8ekyvvZqZmT8B1eM8YK5YvZqZmT82HpU9FFHLo5qZmT/sUbg9AAAAAJqZmb+uR+E9kGqEPZqZmb9fQbY9B0HWPZqZmb8POws9B0HWPZqZmb8POwu9kGqEPZqZmb9fQba9in94I5qZmb+uR+G9kGqEvZqZmb9fQba9B0HWvZqZmb8POwu9B0HWvZqZmb8POws9kGqEvZqZmb9fQbY9in/4o5qZmb+uR+E9AAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT/sUbg9YK5YPZqZmT82HpU9ekyvPZqZmT8B1eM8ekyvPZqZmT8B1eO8YK5YPZqZmT82HpW9FFFLI5qZmT/sUbi9YK5YvZqZmT82HpW9ekyvvZqZmT8B1eO8ekyvvZqZmT8B1eM8YK5YvZqZmT82HpU9FFHLo5qZmT/sUbg9AAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb+uR+E9kGqEPZqZmb9fQbY9B0HWPZqZmb8POws9B0HWPZqZmb8POwu9kGqEPZqZmb9fQba9in94I5qZmb+uR+G9kGqEvZqZmb9fQba9B0HWvZqZmb8POwu9B0HWvZqZmb8POws9kGqEvZqZmb9fQbY9in/4o5qZmb+uR+E9', 'AAAAAAAAgD/NzMw9AACAP83MTD4AAIA/mpmZPgAAgD/NzMw+AACAPwAAAD8AAIA/mpkZPwAAgD8zMzM/AACAP83MTD8AAIA/ZmZmPwAAgD8AAIA/AACAPwAAAAAAAAAAzczMPQAAAADNzEw+AAAAAJqZmT4AAAAAzczMPgAAAAAAAAA/AAAAAJqZGT8AAAAAMzMzPwAAAADNzEw/AAAAAGZmZj8AAAAAAACAPwAAAAAAAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/3o1nP4w8Sz/ejSc/OLx5P0PksD44vHk/DZHDPYw8Sz8AAAAAAAAAPw2Rwz3QDVM+Q+SwPvZ4yDzejSc/9njIPN6NZz/QDVM+AACAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/3o1nP9ANUz7ejSc/9njIPEPksD72eMg8DZHDPdANUz4AAAAAAAAAPw2Rwz2MPEs/Q+SwPji8eT/ejSc/OLx5P96NZz+MPEs/AACAPwAAAD8=', 'AAAAAAsAAAABAAAACwAAAAwAAAABAAAAAQAAAAwAAAACAAAADAAAAA0AAAACAAAAAgAAAA0AAAADAAAADQAAAA4AAAADAAAAAwAAAA4AAAAEAAAADgAAAA8AAAAEAAAABAAAAA8AAAAFAAAADwAAABAAAAAFAAAABQAAABAAAAAGAAAAEAAAABEAAAAGAAAABgAAABEAAAAHAAAAEQAAABIAAAAHAAAABwAAABIAAAAIAAAAEgAAABMAAAAIAAAACAAAABMAAAAJAAAAEwAAABQAAAAJAAAACQAAABQAAAAKAAAAFAAAABUAAAAKAAAAIAAAACEAAAAWAAAAIQAAACIAAAAXAAAAIgAAACMAAAAYAAAAIwAAACQAAAAZAAAAJAAAACUAAAAaAAAAJQAAACYAAAAbAAAAJgAAACcAAAAcAAAAJwAAACgAAAAdAAAAKAAAACkAAAAeAAAAKQAAACoAAAAfAAAANgAAADUAAAArAAAANwAAADYAAAAsAAAAOAAAADcAAAAtAAAAOQAAADgAAAAuAAAAOgAAADkAAAAvAAAAOwAAADoAAAAwAAAAPAAAADsAAAAxAAAAPQAAADwAAAAyAAAAPgAAAD0AAAAzAAAAPwAAAD4AAAA0AAAA', null), M_3); n10.name = \"TurretAssemblyBarrel\";\nn10.position.fromArray([0, 2.2, 1.9]); n10.quaternion.fromArray([0.70711, 0, 0, 0.70711]); n10.scale.fromArray([1, 1, 1]);\nn8.add(n10);\nconst n11 = new THREE.Group(); n11.name = \"Wheels\";\nn11.position.fromArray([0, 0, 0]); n11.quaternion.fromArray([0, 0, 0, 1]); n11.scale.fromArray([1, 1, 1]);\nn1.add(n11);\nconst M_4 = new THREE.MeshStandardMaterial({ color: '#1a1a1a', roughness: 0.9, metalness: 0 });\nconst n12 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n12.name = \"WheelsLeft01\";\nn12.position.fromArray([-1.1, 0.5, 1.5]); n12.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n12.scale.fromArray([1, 1, 1]);\nn11.add(n12);\nconst n13 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n13.name = \"WheelsRight01\";\nn13.position.fromArray([1.1, 0.5, 1.5]); n13.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n13.scale.fromArray([1, 1, 1]);\nn11.add(n13);\nconst n14 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n14.name = \"WheelsLeft02\";\nn14.position.fromArray([-1.1, 0.5, 0.5]); n14.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n14.scale.fromArray([1, 1, 1]);\nn11.add(n14);\nconst n15 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n15.name = \"WheelsRight02\";\nn15.position.fromArray([1.1, 0.5, 0.5]); n15.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n15.scale.fromArray([1, 1, 1]);\nn11.add(n15);\nconst n16 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n16.name = \"WheelsLeft03\";\nn16.position.fromArray([-1.1, 0.5, -0.55]); n16.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n16.scale.fromArray([1, 1, 1]);\nn11.add(n16);\nconst n17 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n17.name = \"WheelsRight03\";\nn17.position.fromArray([1.1, 0.5, -0.55]); n17.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n17.scale.fromArray([1, 1, 1]);\nn11.add(n17);\nconst n18 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n18.name = \"WheelsLeft04\";\nn18.position.fromArray([-1.1, 0.5, -1.55]); n18.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n18.scale.fromArray([1, 1, 1]);\nn11.add(n18);\nconst n19 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n19.name = \"WheelsRight04\";\nn19.position.fromArray([1.1, 0.5, -1.55]); n19.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n19.scale.fromArray([1, 1, 1]);\nn11.add(n19);\nconst group = n0;\n\n{\nconst hull = group.getObjectByName(\"Hull\");\nconst turret = group.getObjectByName(\"TurretAssembly\");\nconst wheels = group.getObjectByName(\"Wheels\");\n\nconst stdMat = (color, extra) => new THREE.MeshStandardMaterial(Object.assign({ color: color, roughness: 0.78, metalness: 0.12 }, extra || {}));\nconst boxMesh = (w, h, d, color, extra) => { const m = new THREE.Mesh(new THREE.BoxGeometry(w, h, d), stdMat(color, extra)); m.castShadow = true; m.receiveShadow = true; return m; };\nconst cylMesh = (r, h, color, extra) => { const m = new THREE.Mesh(new THREE.CylinderGeometry(r, r, h, 18), stdMat(color, extra)); m.castShadow = true; return m; };\nconst canvasTex = (w, h, draw) => { const c = document.createElement(\"canvas\"); c.width = w; c.height = h; const ctx = c.getContext(\"2d\"); draw(ctx, w, h); const t = new THREE.CanvasTexture(c); t.colorSpace = THREE.SRGBColorSpace; return t; };\n\nconst DARK = \"#20261c\";\nconst STEEL = \"#6b6f63\";\nconst OLIVE = \"#55683f\";\nconst CANVASBAG = \"#6d5c3c\";\n\n/* ---------------- VENTS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const back = boxMesh(0.04, 0.46, 0.95, \"#252c1e\");\n    back.position.set(s * 1.005, 1.62, -1.05);\n    hull.add(back);\n    for (let i = 0; i < 6; i++) {\n      const slat = boxMesh(0.07, 0.05, 0.9, \"#3f4f30\");\n      slat.position.set(s * 1.04, 1.44 + i * 0.072, -1.05);\n      slat.rotation.z = s * 0.42;\n      hull.add(slat);\n    }\n    const deck = boxMesh(0.04, 0.4, 0.7, \"#252c1e\");\n    deck.position.set(s * 1.005, 1.62, 1.15);\n    hull.add(deck);\n    for (let i = 0; i < 5; i++) {\n      const slat = boxMesh(0.07, 0.045, 0.66, \"#3f4f30\");\n      slat.position.set(s * 1.04, 1.47 + i * 0.075, 1.15);\n      slat.rotation.z = s * 0.42;\n      hull.add(slat);\n    }\n  }\n  const deckBack = boxMesh(1.35, 0.04, 0.55, \"#252c1e\");\n  deckBack.position.set(0, 1.9, -1.62);\n  hull.add(deckBack);\n  for (let i = 0; i < 7; i++) {\n    const slat = boxMesh(1.3, 0.06, 0.05, \"#3f4f30\");\n    slat.position.set(0, 1.94, -1.86 + i * 0.08);\n    hull.add(slat);\n  }\n  const grilleBack = boxMesh(1.15, 0.52, 0.05, \"#1d2318\");\n  grilleBack.position.set(0, 1.52, 2.6);\n  hull.add(grilleBack);\n  for (let i = 0; i < 7; i++) {\n    const bar = boxMesh(0.055, 0.48, 0.06, \"#3f4f30\");\n    bar.position.set(-0.45 + i * 0.15, 1.52, 2.64);\n    hull.add(bar);\n  }\n}\n\n/* ---------------- PANELS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const p1 = boxMesh(0.05, 0.52, 0.95, OLIVE);\n    p1.position.set(s * 1.03, 1.6, 0.62);\n    hull.add(p1);\n    const p2 = boxMesh(0.05, 0.52, 0.8, \"#4e6039\");\n    p2.position.set(s * 1.03, 1.6, -0.35);\n    hull.add(p2);\n    const p3 = boxMesh(0.05, 0.42, 1.3, \"#4a5d3a\");\n    p3.position.set(s * 1.11, 0.95, 0.1);\n    hull.add(p3);\n  }\n  const glacisPlate = boxMesh(1.82, 0.05, 0.88, OLIVE);\n  glacisPlate.position.set(0, 1.68, 2.16);\n  glacisPlate.rotation.x = -0.12;\n  hull.add(glacisPlate);\n  const rearPlate = boxMesh(1.86, 0.05, 0.68, \"#4e6039\");\n  rearPlate.position.set(0, 1.66, -2.2);\n  hull.add(rearPlate);\n}\n\n/* ---------------- SEAMS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const seam = boxMesh(0.035, 0.035, 4.4, DARK);\n    seam.position.set(s * 1.115, 1.3, 0);\n    hull.add(seam);\n    const v1 = boxMesh(0.035, 0.62, 0.035, DARK);\n    v1.position.set(s * 1.115, 0.96, -0.6);\n    hull.add(v1);\n    const v2 = boxMesh(0.035, 0.62, 0.035, DARK);\n    v2.position.set(s * 1.115, 0.96, 1.05);\n    hull.add(v2);\n    const v3 = boxMesh(0.035, 0.55, 0.035, DARK);\n    v3.position.set(s * 1.03, 1.6, 0.05);\n    hull.add(v3);\n  }\n  const seamF = boxMesh(2.2, 0.035, 0.035, DARK);\n  seamF.position.set(0, 1.3, 2.2);\n  hull.add(seamF);\n  const seamR = boxMesh(2.2, 0.035, 0.035, DARK);\n  seamR.position.set(0, 1.3, -2.2);\n  hull.add(seamR);\n  const gSeam = boxMesh(1.9, 0.03, 0.03, DARK);\n  gSeam.position.set(0, 1.34, 2.645);\n  hull.add(gSeam);\n  const gSeamV = boxMesh(0.03, 0.8, 0.03, DARK);\n  gSeamV.position.set(0, 1.25, 2.645);\n  hull.add(gSeamV);\n}\n\n/* ---------------- HARDWARE ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    for (let i = 0; i < 7; i++) {\n      const bolt = cylMesh(0.038, 0.05, STEEL, { metalness: 0.85, roughness: 0.35 });\n      bolt.rotation.z = Math.PI / 2;\n      bolt.position.set(s * 1.13, 1.3, -1.8 + i * 0.6);\n      hull.add(bolt);\n    }\n    for (let i = 0; i < 4; i++) {\n      const bolt = cylMesh(0.032, 0.045, STEEL, { metalness: 0.85, roughness: 0.35 });\n      bolt.rotation.z = Math.PI / 2;\n      bolt.position.set(s * 1.14, 1.62, 0.2 + i * 0.35);\n      hull.add(bolt);\n    }\n    const hook = boxMesh(0.14, 0.2, 0.24, \"#3a3f36\", { metalness: 0.6, roughness: 0.5 });\n    hook.position.set(s * 0.85, 0.72, 2.42);\n    hull.add(hook);\n    const shackle = new THREE.Mesh(new THREE.TorusGeometry(0.075, 0.026, 8, 18), stdMat(\"#8a8d80\", { metalness: 0.9, roughness: 0.3 }));\n    shackle.position.set(s * 0.85, 0.72, 2.56);\n    shackle.rotation.y = Math.PI / 2;\n    shackle.castShadow = true;\n    hull.add(shackle);\n    const step = boxMesh(0.16, 0.05, 0.5, \"#3a3f36\");\n    step.position.set(s * 1.16, 0.72, 1.9);\n    hull.add(step);\n  }\n}\nif (turret) {\n  const handle = boxMesh(0.34, 0.06, 0.07, \"#3a3f36\", { metalness: 0.6, roughness: 0.45 });\n  handle.position.set(0.32, 2.47, -0.62);\n  turret.add(handle);\n  for (let s = -1; s <= 1; s += 2) {\n    const hinge = boxMesh(0.1, 0.14, 0.22, \"#3a3f36\", { metalness: 0.7, roughness: 0.4 });\n    hinge.position.set(s * 0.55, 2.4, -1.18);\n    turret.add(hinge);\n    const antBase = cylMesh(0.05, 0.08, \"#3a3f36\", { metalness: 0.7, roughness: 0.4 });\n    antBase.position.set(s * 0.62, 2.47, -1.05);\n    turret.add(antBase);\n    const ant = cylMesh(0.016, 1.15, \"#20241d\");\n    ant.position.set(s * 0.62, 3.05, -1.05);\n    ant.rotation.z = s * 0.08;\n    turret.add(ant);\n    for (let i = 0; i < 4; i++) {\n      const bolt = cylMesh(0.03, 0.04, STEEL, { metalness: 0.85, roughness: 0.35 });\n      bolt.rotation.z = Math.PI / 2;\n      bolt.position.set(s * 0.77, 2.02, -0.9 + i * 0.5);\n      turret.add(bolt);\n    }\n  }\n  const ringSeam = boxMesh(1.52, 0.035, 0.035, DARK);\n  ringSeam.position.set(0, 2.17, 0.81);\n  turret.add(ringSeam);\n  const ringSeam2 = boxMesh(1.52, 0.035, 0.035, DARK);\n  ringSeam2.position.set(0, 2.17, -1.21);\n  turret.add(ringSeam2);\n}\n\n/* ---------------- BAGS / STOWAGE ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const bag = boxMesh(0.24, 0.42, 0.72, CANVASBAG, { roughness: 0.95, metalness: 0.0 });\n    bag.position.set(s * 1.19, 1.5, 0.35);\n    hull.add(bag);\n    const strapA = boxMesh(0.26, 0.05, 0.06, \"#3b3222\", { roughness: 0.95 });\n    strapA.position.set(s * 1.19, 1.63, 0.35);\n    hull.add(strapA);\n    const strapB = boxMesh(0.26, 0.05, 0.06, \"#3b3222\", { roughness: 0.95 });\n    strapB.position.set(s * 1.19, 1.37, 0.35);\n    hull.add(strapB);\n    const roll = cylMesh(0.11, 0.5, \"#5d4f34\", { roughness: 0.95 });\n    roll.rotation.x = Math.PI / 2;\n    roll.position.set(s * 1.18, 1.78, 0.35);\n    hull.add(roll);\n  }\n  const duffel = boxMesh(0.95, 0.36, 0.36, CANVASBAG, { roughness: 0.95 });\n  duffel.position.set(0, 1.55, -2.36);\n  hull.add(duffel);\n  const duffelStrap = boxMesh(0.08, 0.38, 0.38, \"#3b3222\", { roughness: 0.95 });\n  duffelStrap.position.set(0.25, 1.55, -2.36);\n  hull.add(duffelStrap);\n  const duffelStrap2 = boxMesh(0.08, 0.38, 0.38, \"#3b3222\", { roughness: 0.95 });\n  duffelStrap2.position.set(-0.25, 1.55, -2.36);\n  hull.add(duffelStrap2);\n}\nif (turret) {\n  for (let s = -1; s <= 1; s += 2) {\n    const bag = boxMesh(0.18, 0.3, 0.42, CANVASBAG, { roughness: 0.95 });\n    bag.position.set(s * 0.86, 2.12, -0.72);\n    turret.add(bag);\n    const strap = boxMesh(0.2, 0.04, 0.44, \"#3b3222\", { roughness: 0.95 });\n    strap.position.set(s * 0.86, 2.2, -0.72);\n    turret.add(strap);\n  }\n}\n\n/* ---------------- FOGLIGHTS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const housing = cylMesh(0.135, 0.16, \"#2f342c\", { metalness: 0.5, roughness: 0.5 });\n    housing.rotation.x = Math.PI / 2;\n    housing.position.set(s * 0.72, 1.4, 2.6);\n    hull.add(housing);\n    const lens = cylMesh(0.115, 0.04, \"#fff3c4\", { emissive: new THREE.Color(\"#ffd98a\"), emissiveIntensity: 1.1, roughness: 0.25, metalness: 0.0 });\n    lens.rotation.x = Math.PI / 2;\n    lens.position.set(s * 0.72, 1.4, 2.69);\n    hull.add(lens);\n    const guard = new THREE.Mesh(new THREE.TorusGeometry(0.145, 0.022, 8, 20), stdMat(\"#3a3f36\", { metalness: 0.7, roughness: 0.4 }));\n    guard.position.set(s * 0.72, 1.4, 2.72);\n    guard.castShadow = true;\n    hull.add(guard);\n    const bracket = boxMesh(0.07, 0.16, 0.1, \"#3a3f36\", { metalness: 0.7, roughness: 0.4 });\n    bracket.position.set(s * 0.72, 1.24, 2.58);\n    hull.add(bracket);\n  }\n}\n\n/* ---------------- INSIGNIA ---------------- */\nconst starTex = canvasTex(256, 256, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#8c1d2f\";\n  ctx.beginPath();\n  ctx.arc(128, 128, 112, 0, Math.PI * 2);\n  ctx.fill();\n  ctx.strokeStyle = \"#f2efe4\";\n  ctx.lineWidth = 7;\n  ctx.stroke();\n  ctx.fillStyle = \"#f2efe4\";\n  ctx.beginPath();\n  for (let i = 0; i < 10; i++) {\n    const r = i % 2 === 0 ? 80 : 33;\n    const a = -Math.PI / 2 + i * Math.PI / 5;\n    const x = 128 + Math.cos(a) * r;\n    const y = 128 + Math.sin(a) * r;\n    if (i === 0) { ctx.moveTo(x, y); } else { ctx.lineTo(x, y); }\n  }\n  ctx.closePath();\n  ctx.fill();\n});\nconst chevTex = canvasTex(256, 128, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#e0d9c2\";\n  ctx.beginPath();\n  ctx.moveTo(20, 100);\n  ctx.lineTo(128, 24);\n  ctx.lineTo(236, 100);\n  ctx.lineTo(236, 118);\n  ctx.lineTo(128, 42);\n  ctx.lineTo(20, 118);\n  ctx.closePath();\n  ctx.fill();\n});\nif (turret) {\n  for (let s = -1; s <= 1; s += 2) {\n    const insignia = new THREE.Mesh(new THREE.PlaneGeometry(0.56, 0.56), new THREE.MeshStandardMaterial({ map: starTex, transparent: true, roughness: 0.9, metalness: 0.0 }));\n    insignia.position.set(s * 0.762, 2.2, -0.2);\n    insignia.rotation.y = s * Math.PI / 2;\n    turret.add(insignia);\n  }\n  const chev = new THREE.Mesh(new THREE.PlaneGeometry(0.5, 0.25), new THREE.MeshStandardMaterial({ map: chevTex, transparent: true, roughness: 0.9 }));\n  chev.position.set(0, 2.22, -1.215);\n  chev.rotation.y = Math.PI;\n  turret.add(chev);\n}\nif (hull) {\n  const frontIns = new THREE.Mesh(new THREE.PlaneGeometry(0.42, 0.42), new THREE.MeshStandardMaterial({ map: starTex, transparent: true, roughness: 0.9 }));\n  frontIns.position.set(0.55, 1.32, 2.655);\n  hull.add(frontIns);\n}\n\n/* ---------------- UNIT IDS ---------------- */\nconst idTex = canvasTex(512, 160, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#e9e3cf\";\n  ctx.font = \"bold 108px Arial\";\n  ctx.textAlign = \"center\";\n  ctx.textBaseline = \"middle\";\n  ctx.fillText(\"A-17\", w / 2, h / 2 + 4);\n});\nconst idTex2 = canvasTex(512, 160, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#e9e3cf\";\n  ctx.font = \"bold 104px Arial\";\n  ctx.textAlign = \"center\";\n  ctx.textBaseline = \"middle\";\n  ctx.fillText(\"01\", w / 2, h / 2 + 4);\n});\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const id = new THREE.Mesh(new THREE.PlaneGeometry(0.82, 0.26), new THREE.MeshStandardMaterial({ map: idTex, transparent: true, roughness: 0.9 }));\n    id.position.set(s * 1.118, 0.95, 0.55);\n    id.rotation.y = s * Math.PI / 2;\n    hull.add(id);\n  }\n  const frontId = new THREE.Mesh(new THREE.PlaneGeometry(0.5, 0.16), new THREE.MeshStandardMaterial({ map: idTex2, transparent: true, roughness: 0.9 }));\n  frontId.position.set(-0.55, 1.12, 2.655);\n  hull.add(frontId);\n}\nif (turret) {\n  const tid = new THREE.Mesh(new THREE.PlaneGeometry(0.6, 0.19), new THREE.MeshStandardMaterial({ map: idTex2, transparent: true, roughness: 0.9 }));\n  tid.position.set(0.42, 2.05, -1.215);\n  tid.rotation.y = Math.PI;\n  turret.add(tid);\n}\n\n/* ---------------- CAMO NETTING ---------------- */\nconst netTex = canvasTex(256, 256, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.strokeStyle = \"rgba(58,70,38,0.95)\";\n  ctx.lineWidth = 3;\n  for (let i = 0; i <= 256; i += 16) {\n    ctx.beginPath();\n    ctx.moveTo(i + Math.sin(i * 0.7) * 3, 0);\n    ctx.lineTo(i - Math.sin(i * 0.7) * 3, 256);\n    ctx.stroke();\n    ctx.beginPath();\n    ctx.moveTo(0, i + Math.cos(i * 0.6) * 3);\n    ctx.lineTo(256, i - Math.cos(i * 0.6) * 3);\n    ctx.stroke();\n  }\n});\nnetTex.wrapS = THREE.RepeatWrapping;\nnetTex.wrapT = THREE.RepeatWrapping;\nnetTex.repeat.set(3, 4);\n\nconst netMat = new THREE.MeshStandardMaterial({ map: netTex, transparent: true, alphaTest: 0.08, side: THREE.DoubleSide, roughness: 0.95, metalness: 0.0, depthWrite: false });\n\nconst netGeo = new THREE.PlaneGeometry(2.0, 2.8, 12, 16);\nnetGeo.rotateX(-Math.PI / 2);\nconst npos = netGeo.attributes.position;\nfor (let i = 0; i < npos.count; i++) {\n  const vx = npos.getX(i);\n  const vz = npos.getZ(i) - 0.2;\n  const over = Math.max(0, Math.abs(vx) - 0.72) * 1.15 + Math.max(0, Math.abs(vz) - 0.95) * 1.15;\n  let y = 2.47 - over;\n  y += Math.sin(vx * 5.5) * Math.cos(vz * 4.5) * 0.035;\n  if (y < 1.55) { y = 1.55; }\n  npos.setXYZ(i, vx, y, vz + 0.2);\n}\nnetGeo.computeVertexNormals();\nconst net = new THREE.Mesh(netGeo, netMat);\nnet.castShadow = true;\ngroup.add(net);\n\nconst netBundle = cylMesh(0.13, 1.5, \"#3f4a2c\", { roughness: 0.95 });\nnetBundle.rotation.z = Math.PI / 2;\nnetBundle.position.set(0, 2.5, -1.42);\ngroup.add(netBundle);\nconst netBundle2 = cylMesh(0.1, 1.1, \"#44512f\", { roughness: 0.95 });\nnetBundle2.rotation.z = Math.PI / 2;\nnetBundle2.position.set(0, 2.48, -1.62);\ngroup.add(netBundle2);\n\nconst deckNetGeo = new THREE.PlaneGeometry(1.9, 1.0, 10, 6);\ndeckNetGeo.rotateX(-Math.PI / 2);\nconst dpos = deckNetGeo.attributes.position;\nfor (let i = 0; i < dpos.count; i++) {\n  const vx = dpos.getX(i);\n  const vz = dpos.getZ(i) - 1.6;\n  const over = Math.max(0, Math.abs(vx) - 0.85) * 1.1;\n  let y = 1.95 - over + Math.sin(vx * 6.0) * 0.02;\n  if (y < 1.45) { y = 1.45; }\n  dpos.setXYZ(i, vx, y, vz + 1.6);\n}\ndeckNetGeo.computeVertexNormals();\nconst deckNet = new THREE.Mesh(deckNetGeo, netMat);\ndeckNet.castShadow = true;\ngroup.add(deckNet);\n}\nreturn group;","thumbUrl":"https://futurelabs.now/apps/images/u2/gen-agent-24-mvnmcdvk-zj5vu-s2.png"},{"id":"gen-agent-24-mvnmcdvk-zj5vu-s3","index":3,"summary":"Slice 3 of 3","final":false,"code":"// Converted from an uploaded model. Edit parts with group.getObjectByName(\"<name>\").\nconst D = (s, T) => { const b = atob(s), u = new Uint8Array(b.length); for (let i = 0; i < b.length; i++) u[i] = b.charCodeAt(i); return new T(u.buffer); };\nconst P = (p, uv, ix, col, cs) => {\n  const g = new THREE.BufferGeometry();\n  g.setAttribute('position', new THREE.BufferAttribute(D(p, Float32Array), 3));\n  if (uv) g.setAttribute('uv', new THREE.BufferAttribute(D(uv, Float32Array), 2));\n  if (col) g.setAttribute('color', new THREE.BufferAttribute(D(col, Float32Array), cs || 3));\n  if (ix) g.setIndex(new THREE.BufferAttribute(D(ix, Uint32Array), 1));\n  g.computeVertexNormals(); g.computeBoundingSphere();\n  return g;\n};\nconst M_default = new THREE.MeshStandardMaterial({ color: '#cccccc', roughness: 0.7, metalness: 0 });\nconst n0 = new THREE.Group(); n0.name = \"AuxScene\";\nn0.position.fromArray([0, 0, 0]); n0.quaternion.fromArray([0, 0, 0, 1]); n0.scale.fromArray([1, 1, 1]);\nconst n1 = new THREE.Group(); n1.name = \"Armored_Vehicle\";\nn1.position.fromArray([0, 0, 0]); n1.quaternion.fromArray([0, 0, 0, 1]); n1.scale.fromArray([1, 1, 1]);\nn0.add(n1);\nconst n2 = new THREE.Group(); n2.name = \"Hull\";\nn2.position.fromArray([0, 0, 0]); n2.quaternion.fromArray([0, 0, 0, 1]); n2.scale.fromArray([1, 1, 1]);\nn1.add(n2);\nconst M_0 = new THREE.MeshStandardMaterial({ color: '#2e3628', roughness: 0.75, metalness: 0.1 });\nconst n3 = new THREE.Mesh(P('zcyMPzMzsz7NzAxAzcyMPzMzsz7NzAzAzcyMPzMzs77NzAxAzcyMPzMzs77NzAzAzcyMvzMzsz7NzAzAzcyMvzMzsz7NzAxAzcyMvzMzs77NzAzAzcyMvzMzs77NzAxAzcyMvzMzsz7NzAzAzcyMPzMzsz7NzAzAzcyMvzMzsz7NzAxAzcyMPzMzsz7NzAxAzcyMvzMzs77NzAxAzcyMPzMzs77NzAxAzcyMvzMzs77NzAzAzcyMPzMzs77NzAzAzcyMvzMzsz7NzAxAzcyMPzMzsz7NzAxAzcyMvzMzs77NzAxAzcyMPzMzs77NzAxAzcyMPzMzsz7NzAzAzcyMvzMzsz7NzAzAzcyMPzMzs77NzAzAzcyMvzMzs77NzAzA', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_0); n3.name = \"HullLower\";\nn3.position.fromArray([0, 0.95, 0]); n3.quaternion.fromArray([0, 0, 0, 1]); n3.scale.fromArray([1, 1, 1]);\nn2.add(n3);\nconst M_1 = new THREE.MeshStandardMaterial({ color: '#4a5d3a', roughness: 0.7, metalness: 0.1 });\nconst n4 = new THREE.Mesh(P('AACAP5qZmT4zM/M/AACAP5qZmT4zM/O/AACAP5qZmb4zM/M/AACAP5qZmb4zM/O/AACAv5qZmT4zM/O/AACAv5qZmT4zM/M/AACAv5qZmb4zM/O/AACAv5qZmb4zM/M/AACAv5qZmT4zM/O/AACAP5qZmT4zM/O/AACAv5qZmT4zM/M/AACAP5qZmT4zM/M/AACAv5qZmb4zM/M/AACAP5qZmb4zM/M/AACAv5qZmb4zM/O/AACAP5qZmb4zM/O/AACAv5qZmT4zM/M/AACAP5qZmT4zM/M/AACAv5qZmb4zM/M/AACAP5qZmb4zM/M/AACAP5qZmT4zM/O/AACAv5qZmT4zM/O/AACAP5qZmb4zM/O/AACAv5qZmb4zM/O/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n4.name = \"HullUpper\";\nn4.position.fromArray([0, 1.6, -0.1]); n4.quaternion.fromArray([0, 0, 0, 1]); n4.scale.fromArray([1, 1, 1]);\nn2.add(n4);\nconst n5 = new THREE.Mesh(P('AACAP83MjD7NzMw+AACAP83MjD7NzMy+AACAP83MjL7NzMw+AACAP83MjL7NzMy+AACAv83MjD7NzMy+AACAv83MjD7NzMw+AACAv83MjL7NzMy+AACAv83MjL7NzMw+AACAv83MjD7NzMy+AACAP83MjD7NzMy+AACAv83MjD7NzMw+AACAP83MjD7NzMw+AACAv83MjL7NzMw+AACAP83MjL7NzMw+AACAv83MjL7NzMy+AACAP83MjL7NzMy+AACAv83MjD7NzMw+AACAP83MjD7NzMw+AACAv83MjL7NzMw+AACAP83MjL7NzMw+AACAP83MjD7NzMy+AACAv83MjD7NzMy+AACAP83MjL7NzMy+AACAv83MjL7NzMy+', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n5.name = \"HullNoseGlacis\";\nn5.position.fromArray([0, 1.25, 2.15]); n5.quaternion.fromArray([-0.2474, 0, 0, 0.96891]); n5.scale.fromArray([1, 1, 1]);\nn2.add(n5);\nconst n6 = new THREE.Mesh(P('AACAPwAAgD6amZk+AACAPwAAgD6amZm+AACAPwAAgL6amZk+AACAPwAAgL6amZm+AACAvwAAgD6amZm+AACAvwAAgD6amZk+AACAvwAAgL6amZm+AACAvwAAgL6amZk+AACAvwAAgD6amZm+AACAPwAAgD6amZm+AACAvwAAgD6amZk+AACAPwAAgD6amZk+AACAvwAAgL6amZk+AACAPwAAgL6amZk+AACAvwAAgL6amZm+AACAPwAAgL6amZm+AACAvwAAgD6amZk+AACAPwAAgD6amZk+AACAvwAAgL6amZk+AACAPwAAgL6amZk+AACAPwAAgD6amZm+AACAvwAAgD6amZm+AACAPwAAgL6amZm+AACAvwAAgL6amZm+', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n6.name = \"HullRearSlope\";\nn6.position.fromArray([0, 1.3, -2.2]); n6.quaternion.fromArray([0.22311, 0, 0, 0.97479]); n6.scale.fromArray([1, 1, 1]);\nn2.add(n6);\nconst M_2 = new THREE.MeshStandardMaterial({ color: '#b30071', roughness: 0.35, metalness: 0.2 });\nconst n7 = new THREE.Mesh(P('rkeBPwrXIz0AAKA/rkeBPwrXIz0AAKC/rkeBPwrXI70AAKA/rkeBPwrXI70AAKC/rkeBvwrXIz0AAKC/rkeBvwrXIz0AAKA/rkeBvwrXI70AAKC/rkeBvwrXI70AAKA/rkeBvwrXIz0AAKC/rkeBPwrXIz0AAKC/rkeBvwrXIz0AAKA/rkeBPwrXIz0AAKA/rkeBvwrXI70AAKA/rkeBPwrXI70AAKA/rkeBvwrXI70AAKC/rkeBPwrXI70AAKC/rkeBvwrXIz0AAKA/rkeBPwrXIz0AAKA/rkeBvwrXI70AAKA/rkeBPwrXI70AAKA/rkeBPwrXIz0AAKC/rkeBvwrXIz0AAKC/rkeBPwrXI70AAKC/rkeBvwrXI70AAKC/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_2); n7.name = \"HullAccentTrim\";\nn7.position.fromArray([0, 1.45, -0.1]); n7.quaternion.fromArray([0, 0, 0, 1]); n7.scale.fromArray([1, 1, 1]);\nn2.add(n7);\nconst n8 = new THREE.Group(); n8.name = \"TurretAssembly\";\nn8.position.fromArray([0, 0, 0]); n8.quaternion.fromArray([0, 0, 0, 1]); n8.scale.fromArray([1, 1, 1]);\nn1.add(n8);\nconst n9 = new THREE.Mesh(P('AABAP83MjD4AAIA/AABAP83MjD4AAIC/AABAP83MjL4AAIA/AABAP83MjL4AAIC/AABAv83MjD4AAIC/AABAv83MjD4AAIA/AABAv83MjL4AAIC/AABAv83MjL4AAIA/AABAv83MjD4AAIC/AABAP83MjD4AAIC/AABAv83MjD4AAIA/AABAP83MjD4AAIA/AABAv83MjL4AAIA/AABAP83MjL4AAIA/AABAv83MjL4AAIC/AABAP83MjL4AAIC/AABAv83MjD4AAIA/AABAP83MjD4AAIA/AABAv83MjL4AAIA/AABAP83MjL4AAIA/AABAP83MjD4AAIC/AABAv83MjD4AAIC/AABAP83MjL4AAIC/AABAv83MjL4AAIC/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n9.name = \"TurretAssemblyHull\";\nn9.position.fromArray([0, 2.17, -0.2]); n9.quaternion.fromArray([0, 0, 0, 1]); n9.scale.fromArray([1, 1, 1]);\nn8.add(n9);\nconst M_3 = new THREE.MeshStandardMaterial({ color: '#2b2e33', roughness: 0.4, metalness: 1 });\nconst n10 = new THREE.Mesh(P('AAAAAJqZmT/sUbg9YK5YPZqZmT82HpU9ekyvPZqZmT8B1eM8ekyvPZqZmT8B1eO8YK5YPZqZmT82HpW9FFFLI5qZmT/sUbi9YK5YvZqZmT82HpW9ekyvvZqZmT8B1eO8ekyvvZqZmT8B1eM8YK5YvZqZmT82HpU9FFHLo5qZmT/sUbg9AAAAAJqZmb+uR+E9kGqEPZqZmb9fQbY9B0HWPZqZmb8POws9B0HWPZqZmb8POwu9kGqEPZqZmb9fQba9in94I5qZmb+uR+G9kGqEvZqZmb9fQba9B0HWvZqZmb8POwu9B0HWvZqZmb8POws9kGqEvZqZmb9fQbY9in/4o5qZmb+uR+E9AAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT/sUbg9YK5YPZqZmT82HpU9ekyvPZqZmT8B1eM8ekyvPZqZmT8B1eO8YK5YPZqZmT82HpW9FFFLI5qZmT/sUbi9YK5YvZqZmT82HpW9ekyvvZqZmT8B1eO8ekyvvZqZmT8B1eM8YK5YvZqZmT82HpU9FFHLo5qZmT/sUbg9AAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb+uR+E9kGqEPZqZmb9fQbY9B0HWPZqZmb8POws9B0HWPZqZmb8POwu9kGqEPZqZmb9fQba9in94I5qZmb+uR+G9kGqEvZqZmb9fQba9B0HWvZqZmb8POwu9B0HWvZqZmb8POws9kGqEvZqZmb9fQbY9in/4o5qZmb+uR+E9', 'AAAAAAAAgD/NzMw9AACAP83MTD4AAIA/mpmZPgAAgD/NzMw+AACAPwAAAD8AAIA/mpkZPwAAgD8zMzM/AACAP83MTD8AAIA/ZmZmPwAAgD8AAIA/AACAPwAAAAAAAAAAzczMPQAAAADNzEw+AAAAAJqZmT4AAAAAzczMPgAAAAAAAAA/AAAAAJqZGT8AAAAAMzMzPwAAAADNzEw/AAAAAGZmZj8AAAAAAACAPwAAAAAAAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/3o1nP4w8Sz/ejSc/OLx5P0PksD44vHk/DZHDPYw8Sz8AAAAAAAAAPw2Rwz3QDVM+Q+SwPvZ4yDzejSc/9njIPN6NZz/QDVM+AACAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/3o1nP9ANUz7ejSc/9njIPEPksD72eMg8DZHDPdANUz4AAAAAAAAAPw2Rwz2MPEs/Q+SwPji8eT/ejSc/OLx5P96NZz+MPEs/AACAPwAAAD8=', 'AAAAAAsAAAABAAAACwAAAAwAAAABAAAAAQAAAAwAAAACAAAADAAAAA0AAAACAAAAAgAAAA0AAAADAAAADQAAAA4AAAADAAAAAwAAAA4AAAAEAAAADgAAAA8AAAAEAAAABAAAAA8AAAAFAAAADwAAABAAAAAFAAAABQAAABAAAAAGAAAAEAAAABEAAAAGAAAABgAAABEAAAAHAAAAEQAAABIAAAAHAAAABwAAABIAAAAIAAAAEgAAABMAAAAIAAAACAAAABMAAAAJAAAAEwAAABQAAAAJAAAACQAAABQAAAAKAAAAFAAAABUAAAAKAAAAIAAAACEAAAAWAAAAIQAAACIAAAAXAAAAIgAAACMAAAAYAAAAIwAAACQAAAAZAAAAJAAAACUAAAAaAAAAJQAAACYAAAAbAAAAJgAAACcAAAAcAAAAJwAAACgAAAAdAAAAKAAAACkAAAAeAAAAKQAAACoAAAAfAAAANgAAADUAAAArAAAANwAAADYAAAAsAAAAOAAAADcAAAAtAAAAOQAAADgAAAAuAAAAOgAAADkAAAAvAAAAOwAAADoAAAAwAAAAPAAAADsAAAAxAAAAPQAAADwAAAAyAAAAPgAAAD0AAAAzAAAAPwAAAD4AAAA0AAAA', null), M_3); n10.name = \"TurretAssemblyBarrel\";\nn10.position.fromArray([0, 2.2, 1.9]); n10.quaternion.fromArray([0.70711, 0, 0, 0.70711]); n10.scale.fromArray([1, 1, 1]);\nn8.add(n10);\nconst n11 = new THREE.Group(); n11.name = \"Wheels\";\nn11.position.fromArray([0, 0, 0]); n11.quaternion.fromArray([0, 0, 0, 1]); n11.scale.fromArray([1, 1, 1]);\nn1.add(n11);\nconst M_4 = new THREE.MeshStandardMaterial({ color: '#1a1a1a', roughness: 0.9, metalness: 0 });\nconst n12 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n12.name = \"WheelsLeft01\";\nn12.position.fromArray([-1.1, 0.5, 1.5]); n12.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n12.scale.fromArray([1, 1, 1]);\nn11.add(n12);\nconst n13 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n13.name = \"WheelsRight01\";\nn13.position.fromArray([1.1, 0.5, 1.5]); n13.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n13.scale.fromArray([1, 1, 1]);\nn11.add(n13);\nconst n14 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n14.name = \"WheelsLeft02\";\nn14.position.fromArray([-1.1, 0.5, 0.5]); n14.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n14.scale.fromArray([1, 1, 1]);\nn11.add(n14);\nconst n15 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n15.name = \"WheelsRight02\";\nn15.position.fromArray([1.1, 0.5, 0.5]); n15.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n15.scale.fromArray([1, 1, 1]);\nn11.add(n15);\nconst n16 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n16.name = \"WheelsLeft03\";\nn16.position.fromArray([-1.1, 0.5, -0.55]); n16.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n16.scale.fromArray([1, 1, 1]);\nn11.add(n16);\nconst n17 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n17.name = \"WheelsRight03\";\nn17.position.fromArray([1.1, 0.5, -0.55]); n17.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n17.scale.fromArray([1, 1, 1]);\nn11.add(n17);\nconst n18 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n18.name = \"WheelsLeft04\";\nn18.position.fromArray([-1.1, 0.5, -1.55]); n18.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n18.scale.fromArray([1, 1, 1]);\nn11.add(n18);\nconst n19 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n19.name = \"WheelsRight04\";\nn19.position.fromArray([1.1, 0.5, -1.55]); n19.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n19.scale.fromArray([1, 1, 1]);\nn11.add(n19);\nconst group = n0;\n\n{\nconst hull = group.getObjectByName(\"Hull\");\nconst turret = group.getObjectByName(\"TurretAssembly\");\nconst wheels = group.getObjectByName(\"Wheels\");\n\nconst stdMat = (color, extra) => new THREE.MeshStandardMaterial(Object.assign({ color: color, roughness: 0.78, metalness: 0.12 }, extra || {}));\nconst boxMesh = (w, h, d, color, extra) => { const m = new THREE.Mesh(new THREE.BoxGeometry(w, h, d), stdMat(color, extra)); m.castShadow = true; m.receiveShadow = true; return m; };\nconst cylMesh = (r, h, color, extra) => { const m = new THREE.Mesh(new THREE.CylinderGeometry(r, r, h, 18), stdMat(color, extra)); m.castShadow = true; return m; };\nconst canvasTex = (w, h, draw) => { const c = document.createElement(\"canvas\"); c.width = w; c.height = h; const ctx = c.getContext(\"2d\"); draw(ctx, w, h); const t = new THREE.CanvasTexture(c); t.colorSpace = THREE.SRGBColorSpace; return t; };\n\nconst DARK = \"#20261c\";\nconst STEEL = \"#6b6f63\";\nconst OLIVE = \"#55683f\";\nconst CANVASBAG = \"#6d5c3c\";\n\n/* ---------------- VENTS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const back = boxMesh(0.04, 0.46, 0.95, \"#252c1e\");\n    back.position.set(s * 1.005, 1.62, -1.05);\n    hull.add(back);\n    for (let i = 0; i < 6; i++) {\n      const slat = boxMesh(0.07, 0.05, 0.9, \"#3f4f30\");\n      slat.position.set(s * 1.04, 1.44 + i * 0.072, -1.05);\n      slat.rotation.z = s * 0.42;\n      hull.add(slat);\n    }\n    const deck = boxMesh(0.04, 0.4, 0.7, \"#252c1e\");\n    deck.position.set(s * 1.005, 1.62, 1.15);\n    hull.add(deck);\n    for (let i = 0; i < 5; i++) {\n      const slat = boxMesh(0.07, 0.045, 0.66, \"#3f4f30\");\n      slat.position.set(s * 1.04, 1.47 + i * 0.075, 1.15);\n      slat.rotation.z = s * 0.42;\n      hull.add(slat);\n    }\n  }\n  const deckBack = boxMesh(1.35, 0.04, 0.55, \"#252c1e\");\n  deckBack.position.set(0, 1.9, -1.62);\n  hull.add(deckBack);\n  for (let i = 0; i < 7; i++) {\n    const slat = boxMesh(1.3, 0.06, 0.05, \"#3f4f30\");\n    slat.position.set(0, 1.94, -1.86 + i * 0.08);\n    hull.add(slat);\n  }\n  const grilleBack = boxMesh(1.15, 0.52, 0.05, \"#1d2318\");\n  grilleBack.position.set(0, 1.52, 2.6);\n  hull.add(grilleBack);\n  for (let i = 0; i < 7; i++) {\n    const bar = boxMesh(0.055, 0.48, 0.06, \"#3f4f30\");\n    bar.position.set(-0.45 + i * 0.15, 1.52, 2.64);\n    hull.add(bar);\n  }\n}\n\n/* ---------------- PANELS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const p1 = boxMesh(0.05, 0.52, 0.95, OLIVE);\n    p1.position.set(s * 1.03, 1.6, 0.62);\n    hull.add(p1);\n    const p2 = boxMesh(0.05, 0.52, 0.8, \"#4e6039\");\n    p2.position.set(s * 1.03, 1.6, -0.35);\n    hull.add(p2);\n    const p3 = boxMesh(0.05, 0.42, 1.3, \"#4a5d3a\");\n    p3.position.set(s * 1.11, 0.95, 0.1);\n    hull.add(p3);\n  }\n  const glacisPlate = boxMesh(1.82, 0.05, 0.88, OLIVE);\n  glacisPlate.position.set(0, 1.68, 2.16);\n  glacisPlate.rotation.x = -0.12;\n  hull.add(glacisPlate);\n  const rearPlate = boxMesh(1.86, 0.05, 0.68, \"#4e6039\");\n  rearPlate.position.set(0, 1.66, -2.2);\n  hull.add(rearPlate);\n}\n\n/* ---------------- SEAMS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const seam = boxMesh(0.035, 0.035, 4.4, DARK);\n    seam.position.set(s * 1.115, 1.3, 0);\n    hull.add(seam);\n    const v1 = boxMesh(0.035, 0.62, 0.035, DARK);\n    v1.position.set(s * 1.115, 0.96, -0.6);\n    hull.add(v1);\n    const v2 = boxMesh(0.035, 0.62, 0.035, DARK);\n    v2.position.set(s * 1.115, 0.96, 1.05);\n    hull.add(v2);\n    const v3 = boxMesh(0.035, 0.55, 0.035, DARK);\n    v3.position.set(s * 1.03, 1.6, 0.05);\n    hull.add(v3);\n  }\n  const seamF = boxMesh(2.2, 0.035, 0.035, DARK);\n  seamF.position.set(0, 1.3, 2.2);\n  hull.add(seamF);\n  const seamR = boxMesh(2.2, 0.035, 0.035, DARK);\n  seamR.position.set(0, 1.3, -2.2);\n  hull.add(seamR);\n  const gSeam = boxMesh(1.9, 0.03, 0.03, DARK);\n  gSeam.position.set(0, 1.34, 2.645);\n  hull.add(gSeam);\n  const gSeamV = boxMesh(0.03, 0.8, 0.03, DARK);\n  gSeamV.position.set(0, 1.25, 2.645);\n  hull.add(gSeamV);\n}\n\n/* ---------------- HARDWARE ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    for (let i = 0; i < 7; i++) {\n      const bolt = cylMesh(0.038, 0.05, STEEL, { metalness: 0.85, roughness: 0.35 });\n      bolt.rotation.z = Math.PI / 2;\n      bolt.position.set(s * 1.13, 1.3, -1.8 + i * 0.6);\n      hull.add(bolt);\n    }\n    for (let i = 0; i < 4; i++) {\n      const bolt = cylMesh(0.032, 0.045, STEEL, { metalness: 0.85, roughness: 0.35 });\n      bolt.rotation.z = Math.PI / 2;\n      bolt.position.set(s * 1.14, 1.62, 0.2 + i * 0.35);\n      hull.add(bolt);\n    }\n    const hook = boxMesh(0.14, 0.2, 0.24, \"#3a3f36\", { metalness: 0.6, roughness: 0.5 });\n    hook.position.set(s * 0.85, 0.72, 2.42);\n    hull.add(hook);\n    const shackle = new THREE.Mesh(new THREE.TorusGeometry(0.075, 0.026, 8, 18), stdMat(\"#8a8d80\", { metalness: 0.9, roughness: 0.3 }));\n    shackle.position.set(s * 0.85, 0.72, 2.56);\n    shackle.rotation.y = Math.PI / 2;\n    shackle.castShadow = true;\n    hull.add(shackle);\n    const step = boxMesh(0.16, 0.05, 0.5, \"#3a3f36\");\n    step.position.set(s * 1.16, 0.72, 1.9);\n    hull.add(step);\n  }\n}\nif (turret) {\n  const handle = boxMesh(0.34, 0.06, 0.07, \"#3a3f36\", { metalness: 0.6, roughness: 0.45 });\n  handle.position.set(0.32, 2.47, -0.62);\n  turret.add(handle);\n  for (let s = -1; s <= 1; s += 2) {\n    const hinge = boxMesh(0.1, 0.14, 0.22, \"#3a3f36\", { metalness: 0.7, roughness: 0.4 });\n    hinge.position.set(s * 0.55, 2.4, -1.18);\n    turret.add(hinge);\n    const antBase = cylMesh(0.05, 0.08, \"#3a3f36\", { metalness: 0.7, roughness: 0.4 });\n    antBase.position.set(s * 0.62, 2.47, -1.05);\n    turret.add(antBase);\n    const ant = cylMesh(0.016, 1.15, \"#20241d\");\n    ant.position.set(s * 0.62, 3.05, -1.05);\n    ant.rotation.z = s * 0.08;\n    turret.add(ant);\n    for (let i = 0; i < 4; i++) {\n      const bolt = cylMesh(0.03, 0.04, STEEL, { metalness: 0.85, roughness: 0.35 });\n      bolt.rotation.z = Math.PI / 2;\n      bolt.position.set(s * 0.77, 2.02, -0.9 + i * 0.5);\n      turret.add(bolt);\n    }\n  }\n  const ringSeam = boxMesh(1.52, 0.035, 0.035, DARK);\n  ringSeam.position.set(0, 2.17, 0.81);\n  turret.add(ringSeam);\n  const ringSeam2 = boxMesh(1.52, 0.035, 0.035, DARK);\n  ringSeam2.position.set(0, 2.17, -1.21);\n  turret.add(ringSeam2);\n}\n\n/* ---------------- BAGS / STOWAGE ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const bag = boxMesh(0.24, 0.42, 0.72, CANVASBAG, { roughness: 0.95, metalness: 0.0 });\n    bag.position.set(s * 1.19, 1.5, 0.35);\n    hull.add(bag);\n    const strapA = boxMesh(0.26, 0.05, 0.06, \"#3b3222\", { roughness: 0.95 });\n    strapA.position.set(s * 1.19, 1.63, 0.35);\n    hull.add(strapA);\n    const strapB = boxMesh(0.26, 0.05, 0.06, \"#3b3222\", { roughness: 0.95 });\n    strapB.position.set(s * 1.19, 1.37, 0.35);\n    hull.add(strapB);\n    const roll = cylMesh(0.11, 0.5, \"#5d4f34\", { roughness: 0.95 });\n    roll.rotation.x = Math.PI / 2;\n    roll.position.set(s * 1.18, 1.78, 0.35);\n    hull.add(roll);\n  }\n  const duffel = boxMesh(0.95, 0.36, 0.36, CANVASBAG, { roughness: 0.95 });\n  duffel.position.set(0, 1.55, -2.36);\n  hull.add(duffel);\n  const duffelStrap = boxMesh(0.08, 0.38, 0.38, \"#3b3222\", { roughness: 0.95 });\n  duffelStrap.position.set(0.25, 1.55, -2.36);\n  hull.add(duffelStrap);\n  const duffelStrap2 = boxMesh(0.08, 0.38, 0.38, \"#3b3222\", { roughness: 0.95 });\n  duffelStrap2.position.set(-0.25, 1.55, -2.36);\n  hull.add(duffelStrap2);\n}\nif (turret) {\n  for (let s = -1; s <= 1; s += 2) {\n    const bag = boxMesh(0.18, 0.3, 0.42, CANVASBAG, { roughness: 0.95 });\n    bag.position.set(s * 0.86, 2.12, -0.72);\n    turret.add(bag);\n    const strap = boxMesh(0.2, 0.04, 0.44, \"#3b3222\", { roughness: 0.95 });\n    strap.position.set(s * 0.86, 2.2, -0.72);\n    turret.add(strap);\n  }\n}\n\n/* ---------------- FOGLIGHTS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const housing = cylMesh(0.135, 0.16, \"#2f342c\", { metalness: 0.5, roughness: 0.5 });\n    housing.rotation.x = Math.PI / 2;\n    housing.position.set(s * 0.72, 1.4, 2.6);\n    hull.add(housing);\n    const lens = cylMesh(0.115, 0.04, \"#fff3c4\", { emissive: new THREE.Color(\"#ffd98a\"), emissiveIntensity: 1.1, roughness: 0.25, metalness: 0.0 });\n    lens.rotation.x = Math.PI / 2;\n    lens.position.set(s * 0.72, 1.4, 2.69);\n    hull.add(lens);\n    const guard = new THREE.Mesh(new THREE.TorusGeometry(0.145, 0.022, 8, 20), stdMat(\"#3a3f36\", { metalness: 0.7, roughness: 0.4 }));\n    guard.position.set(s * 0.72, 1.4, 2.72);\n    guard.castShadow = true;\n    hull.add(guard);\n    const bracket = boxMesh(0.07, 0.16, 0.1, \"#3a3f36\", { metalness: 0.7, roughness: 0.4 });\n    bracket.position.set(s * 0.72, 1.24, 2.58);\n    hull.add(bracket);\n  }\n}\n\n/* ---------------- INSIGNIA ---------------- */\nconst starTex = canvasTex(256, 256, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#8c1d2f\";\n  ctx.beginPath();\n  ctx.arc(128, 128, 112, 0, Math.PI * 2);\n  ctx.fill();\n  ctx.strokeStyle = \"#f2efe4\";\n  ctx.lineWidth = 7;\n  ctx.stroke();\n  ctx.fillStyle = \"#f2efe4\";\n  ctx.beginPath();\n  for (let i = 0; i < 10; i++) {\n    const r = i % 2 === 0 ? 80 : 33;\n    const a = -Math.PI / 2 + i * Math.PI / 5;\n    const x = 128 + Math.cos(a) * r;\n    const y = 128 + Math.sin(a) * r;\n    if (i === 0) { ctx.moveTo(x, y); } else { ctx.lineTo(x, y); }\n  }\n  ctx.closePath();\n  ctx.fill();\n});\nconst chevTex = canvasTex(256, 128, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#e0d9c2\";\n  ctx.beginPath();\n  ctx.moveTo(20, 100);\n  ctx.lineTo(128, 24);\n  ctx.lineTo(236, 100);\n  ctx.lineTo(236, 118);\n  ctx.lineTo(128, 42);\n  ctx.lineTo(20, 118);\n  ctx.closePath();\n  ctx.fill();\n});\nif (turret) {\n  for (let s = -1; s <= 1; s += 2) {\n    const insignia = new THREE.Mesh(new THREE.PlaneGeometry(0.56, 0.56), new THREE.MeshStandardMaterial({ map: starTex, transparent: true, roughness: 0.9, metalness: 0.0 }));\n    insignia.position.set(s * 0.762, 2.2, -0.2);\n    insignia.rotation.y = s * Math.PI / 2;\n    turret.add(insignia);\n  }\n  const chev = new THREE.Mesh(new THREE.PlaneGeometry(0.5, 0.25), new THREE.MeshStandardMaterial({ map: chevTex, transparent: true, roughness: 0.9 }));\n  chev.position.set(0, 2.22, -1.215);\n  chev.rotation.y = Math.PI;\n  turret.add(chev);\n}\nif (hull) {\n  const frontIns = new THREE.Mesh(new THREE.PlaneGeometry(0.42, 0.42), new THREE.MeshStandardMaterial({ map: starTex, transparent: true, roughness: 0.9 }));\n  frontIns.position.set(0.55, 1.32, 2.655);\n  hull.add(frontIns);\n}\n\n/* ---------------- UNIT IDS ---------------- */\nconst idTex = canvasTex(512, 160, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#e9e3cf\";\n  ctx.font = \"bold 108px Arial\";\n  ctx.textAlign = \"center\";\n  ctx.textBaseline = \"middle\";\n  ctx.fillText(\"A-17\", w / 2, h / 2 + 4);\n});\nconst idTex2 = canvasTex(512, 160, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#e9e3cf\";\n  ctx.font = \"bold 104px Arial\";\n  ctx.textAlign = \"center\";\n  ctx.textBaseline = \"middle\";\n  ctx.fillText(\"01\", w / 2, h / 2 + 4);\n});\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const id = new THREE.Mesh(new THREE.PlaneGeometry(0.82, 0.26), new THREE.MeshStandardMaterial({ map: idTex, transparent: true, roughness: 0.9 }));\n    id.position.set(s * 1.118, 0.95, 0.55);\n    id.rotation.y = s * Math.PI / 2;\n    hull.add(id);\n  }\n  const frontId = new THREE.Mesh(new THREE.PlaneGeometry(0.5, 0.16), new THREE.MeshStandardMaterial({ map: idTex2, transparent: true, roughness: 0.9 }));\n  frontId.position.set(-0.55, 1.12, 2.655);\n  hull.add(frontId);\n}\nif (turret) {\n  const tid = new THREE.Mesh(new THREE.PlaneGeometry(0.6, 0.19), new THREE.MeshStandardMaterial({ map: idTex2, transparent: true, roughness: 0.9 }));\n  tid.position.set(0.42, 2.05, -1.215);\n  tid.rotation.y = Math.PI;\n  turret.add(tid);\n}\n\n/* ---------------- CAMO NETTING ---------------- */\nconst netTex = canvasTex(256, 256, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.strokeStyle = \"rgba(58,70,38,0.95)\";\n  ctx.lineWidth = 3;\n  for (let i = 0; i <= 256; i += 16) {\n    ctx.beginPath();\n    ctx.moveTo(i + Math.sin(i * 0.7) * 3, 0);\n    ctx.lineTo(i - Math.sin(i * 0.7) * 3, 256);\n    ctx.stroke();\n    ctx.beginPath();\n    ctx.moveTo(0, i + Math.cos(i * 0.6) * 3);\n    ctx.lineTo(256, i - Math.cos(i * 0.6) * 3);\n    ctx.stroke();\n  }\n});\nnetTex.wrapS = THREE.RepeatWrapping;\nnetTex.wrapT = THREE.RepeatWrapping;\nnetTex.repeat.set(3, 4);\n\nconst netMat = new THREE.MeshStandardMaterial({ map: netTex, transparent: true, alphaTest: 0.08, side: THREE.DoubleSide, roughness: 0.95, metalness: 0.0, depthWrite: false });\n\nconst netGeo = new THREE.PlaneGeometry(2.0, 2.8, 12, 16);\nnetGeo.rotateX(-Math.PI / 2);\nconst npos = netGeo.attributes.position;\nfor (let i = 0; i < npos.count; i++) {\n  const vx = npos.getX(i);\n  const vz = npos.getZ(i) - 0.2;\n  const over = Math.max(0, Math.abs(vx) - 0.72) * 1.15 + Math.max(0, Math.abs(vz) - 0.95) * 1.15;\n  let y = 2.47 - over;\n  y += Math.sin(vx * 5.5) * Math.cos(vz * 4.5) * 0.035;\n  if (y < 1.55) { y = 1.55; }\n  npos.setXYZ(i, vx, y, vz + 0.2);\n}\nnetGeo.computeVertexNormals();\nconst net = new THREE.Mesh(netGeo, netMat);\nnet.castShadow = true;\ngroup.add(net);\n\nconst netBundle = cylMesh(0.13, 1.5, \"#3f4a2c\", { roughness: 0.95 });\nnetBundle.rotation.z = Math.PI / 2;\nnetBundle.position.set(0, 2.5, -1.42);\ngroup.add(netBundle);\nconst netBundle2 = cylMesh(0.1, 1.1, \"#44512f\", { roughness: 0.95 });\nnetBundle2.rotation.z = Math.PI / 2;\nnetBundle2.position.set(0, 2.48, -1.62);\ngroup.add(netBundle2);\n\nconst deckNetGeo = new THREE.PlaneGeometry(1.9, 1.0, 10, 6);\ndeckNetGeo.rotateX(-Math.PI / 2);\nconst dpos = deckNetGeo.attributes.position;\nfor (let i = 0; i < dpos.count; i++) {\n  const vx = dpos.getX(i);\n  const vz = dpos.getZ(i) - 1.6;\n  const over = Math.max(0, Math.abs(vx) - 0.85) * 1.1;\n  let y = 1.95 - over + Math.sin(vx * 6.0) * 0.02;\n  if (y < 1.45) { y = 1.45; }\n  dpos.setXYZ(i, vx, y, vz + 1.6);\n}\ndeckNetGeo.computeVertexNormals();\nconst deckNet = new THREE.Mesh(deckNetGeo, netMat);\ndeckNet.castShadow = true;\ngroup.add(deckNet);\n}\n\n{\nconst hull = group.getObjectByName(\"Hull\") || group;\n\nconst M = {};\nM.vent = new THREE.MeshStandardMaterial({ color: 0x252c1e, roughness: 0.9, metalness: 0.15 });\nM.slat = new THREE.MeshStandardMaterial({ color: 0x3f4f30, roughness: 0.85, metalness: 0.1 });\nM.panel = new THREE.MeshStandardMaterial({ color: 0x55683f, roughness: 0.72, metalness: 0.08 });\nM.panelDark = new THREE.MeshStandardMaterial({ color: 0x4e6039, roughness: 0.78, metalness: 0.08 });\nM.seam = new THREE.MeshStandardMaterial({ color: 0x1b2018, roughness: 0.95 });\nM.hw = new THREE.MeshStandardMaterial({ color: 0x6b6f63, roughness: 0.45, metalness: 0.65 });\nM.hwDark = new THREE.MeshStandardMaterial({ color: 0x3a3f36, roughness: 0.5, metalness: 0.6 });\nM.bag = new THREE.MeshStandardMaterial({ color: 0x3c4630, roughness: 0.98 });\nM.strap = new THREE.MeshStandardMaterial({ color: 0x23291d, roughness: 0.95 });\nM.housing = new THREE.MeshStandardMaterial({ color: 0x2e3628, roughness: 0.55, metalness: 0.45 });\nM.lens = new THREE.MeshStandardMaterial({ color: 0xfff4d0, emissive: 0xffd98a, emissiveIntensity: 0.85, roughness: 0.15, metalness: 0.1 });\nM.insignia = new THREE.MeshStandardMaterial({ color: 0xb30071, roughness: 0.55, side: THREE.DoubleSide });\nM.insigniaDark = new THREE.MeshStandardMaterial({ color: 0x1d2318, roughness: 0.6, side: THREE.DoubleSide });\nM.id = new THREE.MeshStandardMaterial({ color: 0xd9d6c4, roughness: 0.85 });\nM.idPlate = new THREE.MeshStandardMaterial({ color: 0x252c1e, roughness: 0.9 });\nM.net = new THREE.MeshStandardMaterial({ color: 0x4a5d3a, roughness: 1.0, transparent: true, opacity: 0.4, side: THREE.DoubleSide, depthWrite: false });\nM.weave = new THREE.MeshStandardMaterial({ color: 0x3c4a2c, roughness: 1.0, transparent: true, opacity: 0.7, side: THREE.DoubleSide, depthWrite: false });\nM.camoA = new THREE.MeshStandardMaterial({ color: 0x2e3628, roughness: 1.0, transparent: true, opacity: 0.6, side: THREE.DoubleSide, depthWrite: false });\nM.camoB = new THREE.MeshStandardMaterial({ color: 0x6b6f4a, roughness: 1.0, transparent: true, opacity: 0.5, side: THREE.DoubleSide, depthWrite: false });\nM.bundle = new THREE.MeshStandardMaterial({ color: 0x46512f, roughness: 1.0 });\n\nconst addBox = (name, w, h, d, x, y, z, mat, rot) => {\n  const m = new THREE.Mesh(new THREE.BoxGeometry(w, h, d), mat);\n  m.name = name;\n  m.position.set(x, y, z);\n  if (rot) { m.rotation.set(rot[0], rot[1], rot[2]); }\n  hull.add(m);\n};\n\nconst addCyl = (name, r, h, x, y, z, mat, rot) => {\n  const m = new THREE.Mesh(new THREE.CylinderGeometry(r, r, h, 16), mat);\n  m.name = name;\n  m.position.set(x, y, z);\n  if (rot) { m.rotation.set(rot[0], rot[1], rot[2]); }\n  hull.add(m);\n};\n\nconst addTorus = (name, r, t, x, y, z, mat, rot) => {\n  const m = new THREE.Mesh(new THREE.TorusGeometry(r, t, 8, 18), mat);\n  m.name = name;\n  m.position.set(x, y, z);\n  if (rot) { m.rotation.set(rot[0], rot[1], rot[2]); }\n  hull.add(m);\n};\n\nconst addRoundel = (name, x, y, z, ry, scale) => {\n  const ring = new THREE.Mesh(new THREE.RingGeometry(0.1 * scale, 0.155 * scale, 28), M.insignia);\n  ring.name = name + \"_Ring\";\n  ring.position.set(x, y, z);\n  ring.rotation.y = ry;\n  hull.add(ring);\n  const disc = new THREE.Mesh(new THREE.CircleGeometry(0.1 * scale, 28), M.insigniaDark);\n  disc.name = name + \"_Disc\";\n  disc.position.set(x + Math.sin(ry) * 0.004, y, z + Math.cos(ry) * 0.004);\n  disc.rotation.y = ry;\n  hull.add(disc);\n};\n\nconst addFog = (name, x, y, z, r) => {\n  const housing = new THREE.Mesh(new THREE.CylinderGeometry(r, r * 0.9, 0.16, 20), M.housing);\n  housing.name = name + \"_Housing\";\n  housing.position.set(x, y, z);\n  housing.rotation.x = Math.PI / 2;\n  hull.add(housing);\n  const lens = new THREE.Mesh(new THREE.CylinderGeometry(r * 0.82, r * 0.82, 0.04, 20), M.lens);\n  lens.name = name + \"_Lens\";\n  lens.position.set(x, y, z + 0.09);\n  lens.rotation.x = Math.PI / 2;\n  hull.add(lens);\n  const bracket = new THREE.Mesh(new THREE.BoxGeometry(r * 0.5, 0.1, 0.07), M.hwDark);\n  bracket.name = name + \"_Bracket\";\n  bracket.position.set(x, y - r - 0.02, z - 0.03);\n  hull.add(bracket);\n};\n\nconst addBag = (name, x, y, z, w, h, d) => {\n  const bag = new THREE.Mesh(new THREE.BoxGeometry(w, h, d), M.bag);\n  bag.name = name;\n  bag.position.set(x, y, z);\n  hull.add(bag);\n  const s1 = new THREE.Mesh(new THREE.BoxGeometry(w + 0.025, h + 0.025, 0.05), M.strap);\n  s1.name = name + \"_StrapA\";\n  s1.position.set(x, y, z + d * 0.26);\n  hull.add(s1);\n  const s2 = new THREE.Mesh(new THREE.BoxGeometry(w + 0.025, h + 0.025, 0.05), M.strap);\n  s2.name = name + \"_StrapB\";\n  s2.position.set(x, y, z - d * 0.26);\n  hull.add(s2);\n  const flap = new THREE.Mesh(new THREE.BoxGeometry(w * 0.92, 0.035, d * 0.45), M.strap);\n  flap.name = name + \"_Flap\";\n  flap.position.set(x, y + h / 2 + 0.01, z);\n  hull.add(flap);\n};\n\nconst addText = (text, ox, oy, oz, facing, mat, scale) => {\n  const w = 0.085 * scale, h = 0.15 * scale, t = 0.02 * scale, dep = 0.018;\n  const defs = {\n    a: [0, h / 2, w, t],\n    g: [0, 0, w, t],\n    d: [0, -h / 2, w, t],\n    f: [-w / 2, h / 4, t, h / 2],\n    b: [w / 2, h / 4, t, h / 2],\n    e: [-w / 2, -h / 4, t, h / 2],\n    c: [w / 2, -h / 4, t, h / 2]\n  };\n  const map = { \"0\": \"abcdef\", \"1\": \"bc\", \"2\": \"abged\", \"3\": \"abgcd\", \"4\": \"fgbc\", \"5\": \"afgcd\", \"6\": \"afgedc\", \"7\": \"abc\", \"8\": \"abcdefg\", \"9\": \"abcdfg\" };\n  const spacing = w * 1.6;\n  for (let i = 0; i < text.length; i++) {\n    const ch = text[i];\n    const segs = map[ch];\n    if (!segs) { continue; }\n    const dx = facing > 0 ? ox + i * spacing : ox - i * spacing;\n    for (let j = 0; j < segs.length; j++) {\n      const d = defs[segs[j]];\n      const sx = facing > 0 ? d[0] : -d[0];\n      const m = new THREE.Mesh(new THREE.BoxGeometry(d[2], d[3], dep), mat);\n      m.name = \"UnitID_\" + ch + \"_\" + i + \"_\" + segs[j];\n      m.position.set(dx + sx, oy + d[1], oz);\n      hull.add(m);\n    }\n  }\n};\n\n/* ---------- VENTS ---------- */\n[-1, 1].forEach((s) => {\n  addBox(\"Vent_Glacis_Base_\" + s, 0.55, 0.03, 0.5, s * 0.55, 1.775, 2.05, M.vent);\n  for (let i = 0; i < 4; i++) {\n    addBox(\"Vent_Glacis_Slat_\" + s + \"_\" + i, 0.5, 0.035, 0.05, s * 0.55, 1.8, 1.87 + i * 0.1, M.slat);\n  }\n  addBox(\"Vent_SideLower_Base_\" + s, 0.04, 0.3, 0.55, s * 1.13, 0.95, -1.35, M.vent);\n  for (let i = 0; i < 4; i++) {\n    addBox(\"Vent_SideLower_Slat_\" + s + \"_\" + i, 0.05, 0.04, 0.5, s * 1.14, 0.83 + i * 0.08, -1.35, M.slat);\n  }\n  addBox(\"Vent_UpperSide_Base_\" + s, 0.03, 0.3, 0.42, s * 1.005, 1.72, -1.78, M.vent);\n  for (let i = 0; i < 4; i++) {\n    addBox(\"Vent_UpperSide_Slat_\" + s + \"_\" + i, 0.045, 0.04, 0.38, s * 1.015, 1.62 + i * 0.07, -1.78, M.slat);\n  }\n});\naddBox(\"Vent_RearDeck_Base\", 1.5, 0.03, 0.5, 0, 1.7, -2.2, M.vent);\nfor (let i = 0; i < 5; i++) {\n  addBox(\"Vent_RearDeck_Slat_\" + i, 1.45, 0.04, 0.05, 0, 1.73, -2.4 + i * 0.1, M.slat);\n}\n\n/* ---------- PANELS ---------- */\naddBox(\"Panel_Hatch_Top\", 0.8, 0.03, 0.7, 0.5, 1.915, 0.55, M.panel);\naddBox(\"Panel_Hatch_Top_Seam_F\", 0.84, 0.02, 0.03, 0.5, 1.935, 0.2, M.seam);\naddBox(\"Panel_Hatch_Top_Seam_B\", 0.84, 0.02, 0.03, 0.5, 1.935, 0.9, M.seam);\naddBox(\"Panel_Hatch_Top_Seam_L\", 0.03, 0.02, 0.72, 0.09, 1.935, 0.55, M.seam);\naddBox(\"Panel_Hatch_Top_Seam_R\", 0.03, 0.02, 0.72, 0.91, 1.935, 0.55, M.seam);\naddBox(\"Panel_Hatch_Rear\", 1.0, 0.32, 0.03, 0, 1.15, -2.585, M.panelDark);\naddBox(\"Panel_Hatch_Rear_Seam_T\", 1.04, 0.02, 0.02, 0, 1.32, -2.605, M.seam);\naddBox(\"Panel_Hatch_Rear_Seam_B\", 1.04, 0.02, 0.02, 0, 0.98, -2.605, M.seam);\naddBox(\"Panel_Hatch_Rear_Seam_L\", 0.02, 0.36, 0.02, -0.52, 1.15, -2.605, M.seam);\naddBox(\"Panel_Hatch_Rear_Seam_R\", 0.02, 0.36, 0.02, 0.52, 1.15, -2.605, M.seam);\n[-1, 1].forEach((s) => {\n  addBox(\"Panel_SideDoor_\" + s, 0.02, 0.3, 0.5, s * 1.055, 1.6, 0.62, M.panelDark);\n  addBox(\"Panel_SideDoor_Seam_\" + s, 0.015, 0.34, 0.54, s * 1.07, 1.6, 0.62, M.seam);\n  addBox(\"Panel_GlacisSide_\" + s, 0.03, 0.5, 0.7, s * 1.005, 1.35, 2.1, M.panelDark);\n  addBox(\"Panel_RearSide_\" + s, 0.03, 0.45, 0.6, s * 1.005, 1.25, -2.2, M.panelDark);\n});\n\n/* ---------- SEAMS ---------- */\n[-1, 1].forEach((s) => {\n  addBox(\"Seam_TopEdge_\" + s, 0.03, 0.03, 3.7, s * 1.0, 1.895, -0.1, M.seam);\n  addBox(\"Seam_SideVert_A_\" + s, 0.02, 0.55, 0.03, s * 1.005, 1.6, 0.05, M.seam);\n  addBox(\"Seam_SideVert_B_\" + s, 0.02, 0.55, 0.03, s * 1.005, 1.6, -0.75, M.seam);\n  addBox(\"Seam_LowerEdge_\" + s, 0.03, 0.03, 4.3, s * 1.1, 0.62, 0, M.seam);\n});\naddBox(\"Seam_Glacis_Top\", 1.8, 0.02, 0.03, 0, 1.765, 2.16, M.seam);\naddBox(\"Seam_Nose_Vert\", 0.03, 0.8, 0.03, 0, 1.25, 2.645, M.seam);\naddBox(\"Seam_Rear_Top\", 1.9, 0.02, 0.03, 0, 1.69, -1.86, M.seam);\naddBox(\"Seam_Grille_Frame_T\", 1.25, 0.03, 0.03, 0, 1.79, 2.6, M.seam);\naddBox(\"Seam_Grille_Frame_B\", 1.25, 0.03, 0.03, 0, 1.25, 2.6, M.seam);\n\n/* ---------- HARDWARE ---------- */\n[-1, 1].forEach((s) => {\n  addBox(\"Tow_Plate_F_\" + s, 0.2, 0.14, 0.04, s * 0.72, 1.02, 2.65, M.hwDark);\n  addTorus(\"Tow_Eye_F_\" + s, 0.07, 0.02, s * 0.72, 1.02, 2.68, M.hw);\n  addBox(\"Tow_Plate_R_\" + s, 0.2, 0.14, 0.04, s * 0.72, 1.05, -2.6, M.hwDark);\n  addTorus(\"Tow_Eye_R_\" + s, 0.07, 0.02, s * 0.72, 1.05, -2.63, M.hw);\n  addBox(\"Lift_Eye_Base_\" + s, 0.12, 0.05, 0.12, s * 0.7, 1.92, -1.0, M.hwDark);\n  addTorus(\"Lift_Eye_\" + s, 0.05, 0.014, s * 0.7, 1.98, -1.0, M.hw);\n  addBox(\"Grab_Handle_\" + s, 0.05, 0.04, 0.18, s * 1.06, 1.45, 0.3, M.hw);\n  addBox(\"Grab_Handle_2_\" + s, 0.05, 0.04, 0.18, s * 1.06, 1.45, -0.35, M.hw);\n});\n[[0.13, 0.23], [0.87, 0.23], [0.13, 0.87], [0.87, 0.87], [0.5, 0.23], [0.5, 0.87]].forEach((p, i) => {\n  addCyl(\"Bolt_Hatch_\" + i, 0.022, 0.03, p[0], 1.94, p[1], M.hw);\n});\n[[-0.46, 1.02], [0.46, 1.02], [-0.46, 1.28], [0.46, 1.28]].forEach((p, i) => {\n  addCyl(\"Bolt_RearHatch_\" + i, 0.022, 0.03, p[0], p[1], -2.61, M.hw, [Math.PI / 2, 0, 0]);\n});\naddBox(\"Antenna_Base\", 0.09, 0.05, 0.09, 0.9, 1.72, -2.3, M.hwDark);\naddCyl(\"Antenna_Whip\", 0.012, 0.55, 0.9, 2.0, -2.3, M.hwDark);\naddBox(\"Bracket_Front_L\", 0.06, 0.16, 0.06, -0.95, 1.4, 2.62, M.hwDark);\naddBox(\"Bracket_Front_R\", 0.06, 0.16, 0.06, 0.95, 1.4, 2.62, M.hwDark);\n\n/* ---------- BAGS ---------- */\naddBag(\"Bag_Side_L\", -1.17, 1.0, 1.35, 0.16, 0.36, 0.75);\naddBag(\"Bag_Side_R\", 1.17, 1.0, 1.35, 0.16, 0.36, 0.75);\naddBag(\"Bag_Rear_Top\", 0.5, 1.78, -2.3, 0.75, 0.24, 0.4);\naddBag(\"Bag_Front_Left\", -0.88, 1.82, 1.95, 0.3, 0.2, 0.45);\n\n/* ---------- FOGLIGHTS ---------- */\naddFog(\"Fog_Front_L\", -0.72, 1.18, 2.62, 0.12);\naddFog(\"Fog_Front_R\", 0.72, 1.18, 2.62, 0.12);\naddFog(\"Fog_Upper_L\", -0.85, 1.82, 2.35, 0.09);\naddFog(\"Fog_Upper_R\", 0.85, 1.82, 2.35, 0.09);\n\n/* ---------- INSIGNIA ---------- */\naddRoundel(\"Insignia_Front\", 0.72, 1.28, 2.648, 0, 0.8);\naddRoundel(\"Insignia_Rear\", -0.7, 1.3, -2.592, Math.PI, 0.85);\naddRoundel(\"Insignia_Side_L\", -1.008, 1.72, 1.35, -Math.PI / 2, 0.9);\naddRoundel(\"Insignia_Side_R\", 1.008, 1.72, 1.35, Math.PI / 2, 0.9);\n\n/* ---------- UNIT IDS ---------- */\naddBox(\"ID_Plate_Front\", 0.42, 0.24, 0.015, 0, 1.02, 2.638, M.idPlate);\naddText(\"07\", 0, 1.02, 2.652, 1, M.id, 1.0);\naddBox(\"ID_Plate_Rear\", 0.52, 0.22, 0.015, 0, 1.48, -2.588, M.idPlate);\naddText(\"417\", 0, 1.48, -2.602, -1, M.id, 0.95);\n\n/* ---------- CAMO NETTING ---------- */\nconst netGeo = new THREE.PlaneGeometry(2.4, 4.3, 8, 12);\nconst netPos = netGeo.attributes.position;\nfor (let i = 0; i < netPos.count; i++) {\n  const nx = netPos.getX(i), ny = netPos.getY(i);\n  const sag = Math.sin(((nx + 1.2) / 2.4) * Math.PI) * 0.13 * Math.cos(((ny + 2.15) / 4.3) * Math.PI);\n  netPos.setZ(i, -sag);\n}\nnetGeo.computeVertexNormals();\nconst netSheet = new THREE.Mesh(netGeo, M.net);\nnetSheet.name = \"CamoNet_Sheet\";\nnetSheet.position.set(0, 2.03, -0.1);\nnetSheet.rotation.x = -Math.PI / 2;\nhull.add(netSheet);\n\nfor (let i = 0; i < 9; i++) {\n  addBox(\"CamoNet_Weave_Long_\" + i, 0.022, 0.012, 4.2, -1.05 + i * 0.2625, 2.02, -0.1, M.weave);\n}\nfor (let i = 0; i < 13; i++) {\n  addBox(\"CamoNet_Weave_Cross_\" + i, 2.2, 0.012, 0.022, 0, 2.02, -2.1 + i * 0.35, M.weave);\n}\n[[-0.85, -1.6, 0.42, 0.3], [0.35, -0.9, 0.5, 0.36], [-0.2, 0.35, 0.38, 0.28], [0.75, 1.15, 0.44, 0.32], [-0.7, 1.55, 0.34, 0.26], [0.15, -1.95, 0.4, 0.3]].forEach((c, i) => {\n  const p = new THREE.Mesh(new THREE.SphereGeometry(0.3, 12, 8), i % 2 === 0 ? M.camoA : M.camoB);\n  p.name = \"CamoNet_Patch_\" + i;\n  p.position.set(c[0], 2.045, c[1]);\n  p.scale.set(c[2] * 2.2, 0.05, c[3] * 2.2);\n  hull.add(p);\n});\n[[-1.08, -2.0], [1.08, -2.0], [-1.08, 1.8], [1.08, 1.8], [0, -0.1]].forEach((p, i) => {\n  addCyl(\"CamoNet_Pole_\" + i, 0.022, 0.24, p[0], 1.98, p[1], M.hwDark);\n});\nconst bundle = new THREE.Mesh(new THREE.CylinderGeometry(0.11, 0.11, 1.5, 14), M.bundle);\nbundle.name = \"CamoNet_RolledBundle\";\nbundle.position.set(0, 1.99, -2.05);\nbundle.rotation.z = Math.PI / 2;\nhull.add(bundle);\naddBox(\"CamoNet_BundleStrap_A\", 0.06, 0.26, 0.26, -0.45, 1.99, -2.05, M.strap);\naddBox(\"CamoNet_BundleStrap_B\", 0.06, 0.26, 0.26, 0.45, 1.99, -2.05, M.strap);\n\n/* ---------- EXISTING PART TWEAKS ---------- */\nconst deck = group.getObjectByName(\"mesh_26\");\nif (deck && deck.material && deck.material.color) { deck.material.color.set(\"#1d2318\"); }\nconst trim = group.getObjectByName(\"HullAccentTrim\");\nif (trim && trim.material && trim.material.color) { trim.material.color.set(\"#b30071\"); trim.material.roughness = 0.5; }\nconst grille = group.getObjectByName(\"mesh_34\");\nif (grille && grille.material && grille.material.color) { grille.material.color.set(\"#1d2318\"); }\nconst frontPanel = group.getObjectByName(\"mesh_48\");\nif (frontPanel && frontPanel.material && frontPanel.material.color) { frontPanel.material.color.set(\"#55683f\"); }\n}\nreturn group;","thumbUrl":"https://futurelabs.now/apps/images/u2/gen-agent-24-mvnmcdvk-zj5vu-s3.png"},{"id":"gen-agent-24-mvnmcdvk-zj5vu-s4","index":4,"summary":"Final pass","final":true,"code":"// Converted from an uploaded model. Edit parts with group.getObjectByName(\"<name>\").\nconst D = (s, T) => { const b = atob(s), u = new Uint8Array(b.length); for (let i = 0; i < b.length; i++) u[i] = b.charCodeAt(i); return new T(u.buffer); };\nconst P = (p, uv, ix, col, cs) => {\n  const g = new THREE.BufferGeometry();\n  g.setAttribute('position', new THREE.BufferAttribute(D(p, Float32Array), 3));\n  if (uv) g.setAttribute('uv', new THREE.BufferAttribute(D(uv, Float32Array), 2));\n  if (col) g.setAttribute('color', new THREE.BufferAttribute(D(col, Float32Array), cs || 3));\n  if (ix) g.setIndex(new THREE.BufferAttribute(D(ix, Uint32Array), 1));\n  g.computeVertexNormals(); g.computeBoundingSphere();\n  return g;\n};\nconst M_default = new THREE.MeshStandardMaterial({ color: '#cccccc', roughness: 0.7, metalness: 0 });\nconst n0 = new THREE.Group(); n0.name = \"AuxScene\";\nn0.position.fromArray([0, 0, 0]); n0.quaternion.fromArray([0, 0, 0, 1]); n0.scale.fromArray([1, 1, 1]);\nconst n1 = new THREE.Group(); n1.name = \"Armored_Vehicle\";\nn1.position.fromArray([0, 0, 0]); n1.quaternion.fromArray([0, 0, 0, 1]); n1.scale.fromArray([1, 1, 1]);\nn0.add(n1);\nconst n2 = new THREE.Group(); n2.name = \"Hull\";\nn2.position.fromArray([0, 0, 0]); n2.quaternion.fromArray([0, 0, 0, 1]); n2.scale.fromArray([1, 1, 1]);\nn1.add(n2);\nconst M_0 = new THREE.MeshStandardMaterial({ color: '#2e3628', roughness: 0.75, metalness: 0.1 });\nconst n3 = new THREE.Mesh(P('zcyMPzMzsz7NzAxAzcyMPzMzsz7NzAzAzcyMPzMzs77NzAxAzcyMPzMzs77NzAzAzcyMvzMzsz7NzAzAzcyMvzMzsz7NzAxAzcyMvzMzs77NzAzAzcyMvzMzs77NzAxAzcyMvzMzsz7NzAzAzcyMPzMzsz7NzAzAzcyMvzMzsz7NzAxAzcyMPzMzsz7NzAxAzcyMvzMzs77NzAxAzcyMPzMzs77NzAxAzcyMvzMzs77NzAzAzcyMPzMzs77NzAzAzcyMvzMzsz7NzAxAzcyMPzMzsz7NzAxAzcyMvzMzs77NzAxAzcyMPzMzs77NzAxAzcyMPzMzsz7NzAzAzcyMvzMzsz7NzAzAzcyMPzMzs77NzAzAzcyMvzMzs77NzAzA', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_0); n3.name = \"HullLower\";\nn3.position.fromArray([0, 0.95, 0]); n3.quaternion.fromArray([0, 0, 0, 1]); n3.scale.fromArray([1, 1, 1]);\nn2.add(n3);\nconst M_1 = new THREE.MeshStandardMaterial({ color: '#4a5d3a', roughness: 0.7, metalness: 0.1 });\nconst n4 = new THREE.Mesh(P('AACAP5qZmT4zM/M/AACAP5qZmT4zM/O/AACAP5qZmb4zM/M/AACAP5qZmb4zM/O/AACAv5qZmT4zM/O/AACAv5qZmT4zM/M/AACAv5qZmb4zM/O/AACAv5qZmb4zM/M/AACAv5qZmT4zM/O/AACAP5qZmT4zM/O/AACAv5qZmT4zM/M/AACAP5qZmT4zM/M/AACAv5qZmb4zM/M/AACAP5qZmb4zM/M/AACAv5qZmb4zM/O/AACAP5qZmb4zM/O/AACAv5qZmT4zM/M/AACAP5qZmT4zM/M/AACAv5qZmb4zM/M/AACAP5qZmb4zM/M/AACAP5qZmT4zM/O/AACAv5qZmT4zM/O/AACAP5qZmb4zM/O/AACAv5qZmb4zM/O/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n4.name = \"HullUpper\";\nn4.position.fromArray([0, 1.6, -0.1]); n4.quaternion.fromArray([0, 0, 0, 1]); n4.scale.fromArray([1, 1, 1]);\nn2.add(n4);\nconst n5 = new THREE.Mesh(P('AACAP83MjD7NzMw+AACAP83MjD7NzMy+AACAP83MjL7NzMw+AACAP83MjL7NzMy+AACAv83MjD7NzMy+AACAv83MjD7NzMw+AACAv83MjL7NzMy+AACAv83MjL7NzMw+AACAv83MjD7NzMy+AACAP83MjD7NzMy+AACAv83MjD7NzMw+AACAP83MjD7NzMw+AACAv83MjL7NzMw+AACAP83MjL7NzMw+AACAv83MjL7NzMy+AACAP83MjL7NzMy+AACAv83MjD7NzMw+AACAP83MjD7NzMw+AACAv83MjL7NzMw+AACAP83MjL7NzMw+AACAP83MjD7NzMy+AACAv83MjD7NzMy+AACAP83MjL7NzMy+AACAv83MjL7NzMy+', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n5.name = \"HullNoseGlacis\";\nn5.position.fromArray([0, 1.25, 2.15]); n5.quaternion.fromArray([-0.2474, 0, 0, 0.96891]); n5.scale.fromArray([1, 1, 1]);\nn2.add(n5);\nconst n6 = new THREE.Mesh(P('AACAPwAAgD6amZk+AACAPwAAgD6amZm+AACAPwAAgL6amZk+AACAPwAAgL6amZm+AACAvwAAgD6amZm+AACAvwAAgD6amZk+AACAvwAAgL6amZm+AACAvwAAgL6amZk+AACAvwAAgD6amZm+AACAPwAAgD6amZm+AACAvwAAgD6amZk+AACAPwAAgD6amZk+AACAvwAAgL6amZk+AACAPwAAgL6amZk+AACAvwAAgL6amZm+AACAPwAAgL6amZm+AACAvwAAgD6amZk+AACAPwAAgD6amZk+AACAvwAAgL6amZk+AACAPwAAgL6amZk+AACAPwAAgD6amZm+AACAvwAAgD6amZm+AACAPwAAgL6amZm+AACAvwAAgL6amZm+', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n6.name = \"HullRearSlope\";\nn6.position.fromArray([0, 1.3, -2.2]); n6.quaternion.fromArray([0.22311, 0, 0, 0.97479]); n6.scale.fromArray([1, 1, 1]);\nn2.add(n6);\nconst M_2 = new THREE.MeshStandardMaterial({ color: '#b30071', roughness: 0.35, metalness: 0.2 });\nconst n7 = new THREE.Mesh(P('rkeBPwrXIz0AAKA/rkeBPwrXIz0AAKC/rkeBPwrXI70AAKA/rkeBPwrXI70AAKC/rkeBvwrXIz0AAKC/rkeBvwrXIz0AAKA/rkeBvwrXI70AAKC/rkeBvwrXI70AAKA/rkeBvwrXIz0AAKC/rkeBPwrXIz0AAKC/rkeBvwrXIz0AAKA/rkeBPwrXIz0AAKA/rkeBvwrXI70AAKA/rkeBPwrXI70AAKA/rkeBvwrXI70AAKC/rkeBPwrXI70AAKC/rkeBvwrXIz0AAKA/rkeBPwrXIz0AAKA/rkeBvwrXI70AAKA/rkeBPwrXI70AAKA/rkeBPwrXIz0AAKC/rkeBvwrXIz0AAKC/rkeBPwrXI70AAKC/rkeBvwrXI70AAKC/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_2); n7.name = \"HullAccentTrim\";\nn7.position.fromArray([0, 1.45, -0.1]); n7.quaternion.fromArray([0, 0, 0, 1]); n7.scale.fromArray([1, 1, 1]);\nn2.add(n7);\nconst n8 = new THREE.Group(); n8.name = \"TurretAssembly\";\nn8.position.fromArray([0, 0, 0]); n8.quaternion.fromArray([0, 0, 0, 1]); n8.scale.fromArray([1, 1, 1]);\nn1.add(n8);\nconst n9 = new THREE.Mesh(P('AABAP83MjD4AAIA/AABAP83MjD4AAIC/AABAP83MjL4AAIA/AABAP83MjL4AAIC/AABAv83MjD4AAIC/AABAv83MjD4AAIA/AABAv83MjL4AAIC/AABAv83MjL4AAIA/AABAv83MjD4AAIC/AABAP83MjD4AAIC/AABAv83MjD4AAIA/AABAP83MjD4AAIA/AABAv83MjL4AAIA/AABAP83MjL4AAIA/AABAv83MjL4AAIC/AABAP83MjL4AAIC/AABAv83MjD4AAIA/AABAP83MjD4AAIA/AABAv83MjL4AAIA/AABAP83MjL4AAIA/AABAP83MjD4AAIC/AABAv83MjD4AAIC/AABAP83MjL4AAIC/AABAv83MjL4AAIC/', 'AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAA', 'AAAAAAIAAAABAAAAAgAAAAMAAAABAAAABAAAAAYAAAAFAAAABgAAAAcAAAAFAAAACAAAAAoAAAAJAAAACgAAAAsAAAAJAAAADAAAAA4AAAANAAAADgAAAA8AAAANAAAAEAAAABIAAAARAAAAEgAAABMAAAARAAAAFAAAABYAAAAVAAAAFgAAABcAAAAVAAAA', null), M_1); n9.name = \"TurretAssemblyHull\";\nn9.position.fromArray([0, 2.17, -0.2]); n9.quaternion.fromArray([0, 0, 0, 1]); n9.scale.fromArray([1, 1, 1]);\nn8.add(n9);\nconst M_3 = new THREE.MeshStandardMaterial({ color: '#2b2e33', roughness: 0.4, metalness: 1 });\nconst n10 = new THREE.Mesh(P('AAAAAJqZmT/sUbg9YK5YPZqZmT82HpU9ekyvPZqZmT8B1eM8ekyvPZqZmT8B1eO8YK5YPZqZmT82HpW9FFFLI5qZmT/sUbi9YK5YvZqZmT82HpW9ekyvvZqZmT8B1eO8ekyvvZqZmT8B1eM8YK5YvZqZmT82HpU9FFHLo5qZmT/sUbg9AAAAAJqZmb+uR+E9kGqEPZqZmb9fQbY9B0HWPZqZmb8POws9B0HWPZqZmb8POwu9kGqEPZqZmb9fQba9in94I5qZmb+uR+G9kGqEvZqZmb9fQba9B0HWvZqZmb8POwu9B0HWvZqZmb8POws9kGqEvZqZmb9fQbY9in/4o5qZmb+uR+E9AAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT8AAAAAAAAAAJqZmT/sUbg9YK5YPZqZmT82HpU9ekyvPZqZmT8B1eM8ekyvPZqZmT8B1eO8YK5YPZqZmT82HpW9FFFLI5qZmT/sUbi9YK5YvZqZmT82HpW9ekyvvZqZmT8B1eO8ekyvvZqZmT8B1eM8YK5YvZqZmT82HpU9FFHLo5qZmT/sUbg9AAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb8AAAAAAAAAAJqZmb+uR+E9kGqEPZqZmb9fQbY9B0HWPZqZmb8POws9B0HWPZqZmb8POwu9kGqEPZqZmb9fQba9in94I5qZmb+uR+G9kGqEvZqZmb9fQba9B0HWvZqZmb8POwu9B0HWvZqZmb8POws9kGqEvZqZmb9fQbY9in/4o5qZmb+uR+E9', 'AAAAAAAAgD/NzMw9AACAP83MTD4AAIA/mpmZPgAAgD/NzMw+AACAPwAAAD8AAIA/mpkZPwAAgD8zMzM/AACAP83MTD8AAIA/ZmZmPwAAgD8AAIA/AACAPwAAAAAAAAAAzczMPQAAAADNzEw+AAAAAJqZmT4AAAAAzczMPgAAAAAAAAA/AAAAAJqZGT8AAAAAMzMzPwAAAADNzEw/AAAAAGZmZj8AAAAAAACAPwAAAAAAAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/3o1nP4w8Sz/ejSc/OLx5P0PksD44vHk/DZHDPYw8Sz8AAAAAAAAAPw2Rwz3QDVM+Q+SwPvZ4yDzejSc/9njIPN6NZz/QDVM+AACAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/3o1nP9ANUz7ejSc/9njIPEPksD72eMg8DZHDPdANUz4AAAAAAAAAPw2Rwz2MPEs/Q+SwPji8eT/ejSc/OLx5P96NZz+MPEs/AACAPwAAAD8=', 'AAAAAAsAAAABAAAACwAAAAwAAAABAAAAAQAAAAwAAAACAAAADAAAAA0AAAACAAAAAgAAAA0AAAADAAAADQAAAA4AAAADAAAAAwAAAA4AAAAEAAAADgAAAA8AAAAEAAAABAAAAA8AAAAFAAAADwAAABAAAAAFAAAABQAAABAAAAAGAAAAEAAAABEAAAAGAAAABgAAABEAAAAHAAAAEQAAABIAAAAHAAAABwAAABIAAAAIAAAAEgAAABMAAAAIAAAACAAAABMAAAAJAAAAEwAAABQAAAAJAAAACQAAABQAAAAKAAAAFAAAABUAAAAKAAAAIAAAACEAAAAWAAAAIQAAACIAAAAXAAAAIgAAACMAAAAYAAAAIwAAACQAAAAZAAAAJAAAACUAAAAaAAAAJQAAACYAAAAbAAAAJgAAACcAAAAcAAAAJwAAACgAAAAdAAAAKAAAACkAAAAeAAAAKQAAACoAAAAfAAAANgAAADUAAAArAAAANwAAADYAAAAsAAAAOAAAADcAAAAtAAAAOQAAADgAAAAuAAAAOgAAADkAAAAvAAAAOwAAADoAAAAwAAAAPAAAADsAAAAxAAAAPQAAADwAAAAyAAAAPgAAAD0AAAAzAAAAPwAAAD4AAAA0AAAA', null), M_3); n10.name = \"TurretAssemblyBarrel\";\nn10.position.fromArray([0, 2.2, 1.9]); n10.quaternion.fromArray([0.70711, 0, 0, 0.70711]); n10.scale.fromArray([1, 1, 1]);\nn8.add(n10);\nconst n11 = new THREE.Group(); n11.name = \"Wheels\";\nn11.position.fromArray([0, 0, 0]); n11.quaternion.fromArray([0, 0, 0, 1]); n11.scale.fromArray([1, 1, 1]);\nn1.add(n11);\nconst M_4 = new THREE.MeshStandardMaterial({ color: '#1a1a1a', roughness: 0.9, metalness: 0 });\nconst n12 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n12.name = \"WheelsLeft01\";\nn12.position.fromArray([-1.1, 0.5, 1.5]); n12.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n12.scale.fromArray([1, 1, 1]);\nn11.add(n12);\nconst n13 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n13.name = \"WheelsRight01\";\nn13.position.fromArray([1.1, 0.5, 1.5]); n13.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n13.scale.fromArray([1, 1, 1]);\nn11.add(n13);\nconst n14 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n14.name = \"WheelsLeft02\";\nn14.position.fromArray([-1.1, 0.5, 0.5]); n14.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n14.scale.fromArray([1, 1, 1]);\nn11.add(n14);\nconst n15 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n15.name = \"WheelsRight02\";\nn15.position.fromArray([1.1, 0.5, 0.5]); n15.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n15.scale.fromArray([1, 1, 1]);\nn11.add(n15);\nconst n16 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n16.name = \"WheelsLeft03\";\nn16.position.fromArray([-1.1, 0.5, -0.55]); n16.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n16.scale.fromArray([1, 1, 1]);\nn11.add(n16);\nconst n17 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n17.name = \"WheelsRight03\";\nn17.position.fromArray([1.1, 0.5, -0.55]); n17.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n17.scale.fromArray([1, 1, 1]);\nn11.add(n17);\nconst n18 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n18.name = \"WheelsLeft04\";\nn18.position.fromArray([-1.1, 0.5, -1.55]); n18.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n18.scale.fromArray([1, 1, 1]);\nn11.add(n18);\nconst n19 = new THREE.Mesh(P('AAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/AAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAAAAAAAADMzMz4AAAA/AACAPjMzMz7Xs90+17PdPjMzMz4AAIA+AAAAPzMzMz4yMQ0k17PdPjMzMz4AAIC+AACAPjMzMz7Xs92+MjGNJDMzMz4AAAC/AACAvjMzMz7Xs92+17PdvjMzMz4AAIC+AAAAvzMzMz7KydOk17PdvjMzMz4AAIA+AACAvjMzMz7Xs90+MjENpTMzMz4AAAA/AAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAAAAAAAADMzM74AAAA/AACAPjMzM77Xs90+17PdPjMzM74AAIA+AAAAPzMzM74yMQ0k17PdPjMzM74AAIC+AACAPjMzM77Xs92+MjGNJDMzM74AAAC/AACAvjMzM77Xs92+17PdvjMzM74AAIC+AAAAvzMzM77KydOk17PdvjMzM74AAIA+AACAvjMzM77Xs90+MjENpTMzM74AAAA/', 'AAAAAAAAgD+rqqo9AACAP6uqKj4AAIA/AACAPgAAgD+rqqo+AACAP1VV1T4AAIA/AAAAPwAAgD9VVRU/AACAP6uqKj8AAIA/AABAPwAAgD9VVVU/AACAP6uqaj8AAIA/AACAPwAAgD8AAAAAAAAAAKuqqj0AAAAAq6oqPgAAAAAAAIA+AAAAAKuqqj4AAAAAVVXVPgAAAAAAAAA/AAAAAFVVFT8AAAAAq6oqPwAAAAAAAEA/AAAAAFVVVT8AAAAAq6pqPwAAAAAAAIA/AAAAAAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAgD8AAAA/7NluPwAAQD8AAEA/7NluPwAAAD8AAIA/AACAPuzZbj+jMIk9AABAPwAAAAAAAAA/ozCJPQAAgD4AAIA+ozCJPQAAAD8AAAAAAABAP6MwiT3s2W4/AACAPgAAgD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AACAPwAAAD/s2W4/AACAPgAAQD+jMIk9AAAAPwAAAAAAAIA+ozCJPaMwiT0AAIA+AAAAAAAAAD+jMIk9AABAPwAAgD7s2W4/AAAAPwAAgD8AAEA/7NluP+zZbj8AAEA/AACAPwAAAD8=', 'AAAAAA0AAAABAAAADQAAAA4AAAABAAAAAQAAAA4AAAACAAAADgAAAA8AAAACAAAAAgAAAA8AAAADAAAADwAAABAAAAADAAAAAwAAABAAAAAEAAAAEAAAABEAAAAEAAAABAAAABEAAAAFAAAAEQAAABIAAAAFAAAABQAAABIAAAAGAAAAEgAAABMAAAAGAAAABgAAABMAAAAHAAAAEwAAABQAAAAHAAAABwAAABQAAAAIAAAAFAAAABUAAAAIAAAACAAAABUAAAAJAAAAFQAAABYAAAAJAAAACQAAABYAAAAKAAAAFgAAABcAAAAKAAAACgAAABcAAAALAAAAFwAAABgAAAALAAAACwAAABgAAAAMAAAAGAAAABkAAAAMAAAAJgAAACcAAAAaAAAAJwAAACgAAAAbAAAAKAAAACkAAAAcAAAAKQAAACoAAAAdAAAAKgAAACsAAAAeAAAAKwAAACwAAAAfAAAALAAAAC0AAAAgAAAALQAAAC4AAAAhAAAALgAAAC8AAAAiAAAALwAAADAAAAAjAAAAMAAAADEAAAAkAAAAMQAAADIAAAAlAAAAQAAAAD8AAAAzAAAAQQAAAEAAAAA0AAAAQgAAAEEAAAA1AAAAQwAAAEIAAAA2AAAARAAAAEMAAAA3AAAARQAAAEQAAAA4AAAARgAAAEUAAAA5AAAARwAAAEYAAAA6AAAASAAAAEcAAAA7AAAASQAAAEgAAAA8AAAASgAAAEkAAAA9AAAASwAAAEoAAAA+AAAA', null), M_4); n19.name = \"WheelsRight04\";\nn19.position.fromArray([1.1, 0.5, -1.55]); n19.quaternion.fromArray([0, 0, 0.70711, 0.70711]); n19.scale.fromArray([1, 1, 1]);\nn11.add(n19);\nconst group = n0;\n\n{\nconst hull = group.getObjectByName(\"Hull\");\nconst turret = group.getObjectByName(\"TurretAssembly\");\nconst wheels = group.getObjectByName(\"Wheels\");\n\nconst stdMat = (color, extra) => new THREE.MeshStandardMaterial(Object.assign({ color: color, roughness: 0.78, metalness: 0.12 }, extra || {}));\nconst boxMesh = (w, h, d, color, extra) => { const m = new THREE.Mesh(new THREE.BoxGeometry(w, h, d), stdMat(color, extra)); m.castShadow = true; m.receiveShadow = true; return m; };\nconst cylMesh = (r, h, color, extra) => { const m = new THREE.Mesh(new THREE.CylinderGeometry(r, r, h, 18), stdMat(color, extra)); m.castShadow = true; return m; };\nconst canvasTex = (w, h, draw) => { const c = document.createElement(\"canvas\"); c.width = w; c.height = h; const ctx = c.getContext(\"2d\"); draw(ctx, w, h); const t = new THREE.CanvasTexture(c); t.colorSpace = THREE.SRGBColorSpace; return t; };\n\nconst DARK = \"#20261c\";\nconst STEEL = \"#6b6f63\";\nconst OLIVE = \"#55683f\";\nconst CANVASBAG = \"#6d5c3c\";\n\n/* ---------------- VENTS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const back = boxMesh(0.04, 0.46, 0.95, \"#252c1e\");\n    back.position.set(s * 1.005, 1.62, -1.05);\n    hull.add(back);\n    for (let i = 0; i < 6; i++) {\n      const slat = boxMesh(0.07, 0.05, 0.9, \"#3f4f30\");\n      slat.position.set(s * 1.04, 1.44 + i * 0.072, -1.05);\n      slat.rotation.z = s * 0.42;\n      hull.add(slat);\n    }\n    const deck = boxMesh(0.04, 0.4, 0.7, \"#252c1e\");\n    deck.position.set(s * 1.005, 1.62, 1.15);\n    hull.add(deck);\n    for (let i = 0; i < 5; i++) {\n      const slat = boxMesh(0.07, 0.045, 0.66, \"#3f4f30\");\n      slat.position.set(s * 1.04, 1.47 + i * 0.075, 1.15);\n      slat.rotation.z = s * 0.42;\n      hull.add(slat);\n    }\n  }\n  const deckBack = boxMesh(1.35, 0.04, 0.55, \"#252c1e\");\n  deckBack.position.set(0, 1.9, -1.62);\n  hull.add(deckBack);\n  for (let i = 0; i < 7; i++) {\n    const slat = boxMesh(1.3, 0.06, 0.05, \"#3f4f30\");\n    slat.position.set(0, 1.94, -1.86 + i * 0.08);\n    hull.add(slat);\n  }\n  const grilleBack = boxMesh(1.15, 0.52, 0.05, \"#1d2318\");\n  grilleBack.position.set(0, 1.52, 2.6);\n  hull.add(grilleBack);\n  for (let i = 0; i < 7; i++) {\n    const bar = boxMesh(0.055, 0.48, 0.06, \"#3f4f30\");\n    bar.position.set(-0.45 + i * 0.15, 1.52, 2.64);\n    hull.add(bar);\n  }\n}\n\n/* ---------------- PANELS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const p1 = boxMesh(0.05, 0.52, 0.95, OLIVE);\n    p1.position.set(s * 1.03, 1.6, 0.62);\n    hull.add(p1);\n    const p2 = boxMesh(0.05, 0.52, 0.8, \"#4e6039\");\n    p2.position.set(s * 1.03, 1.6, -0.35);\n    hull.add(p2);\n    const p3 = boxMesh(0.05, 0.42, 1.3, \"#4a5d3a\");\n    p3.position.set(s * 1.11, 0.95, 0.1);\n    hull.add(p3);\n  }\n  const glacisPlate = boxMesh(1.82, 0.05, 0.88, OLIVE);\n  glacisPlate.position.set(0, 1.68, 2.16);\n  glacisPlate.rotation.x = -0.12;\n  hull.add(glacisPlate);\n  const rearPlate = boxMesh(1.86, 0.05, 0.68, \"#4e6039\");\n  rearPlate.position.set(0, 1.66, -2.2);\n  hull.add(rearPlate);\n}\n\n/* ---------------- SEAMS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const seam = boxMesh(0.035, 0.035, 4.4, DARK);\n    seam.position.set(s * 1.115, 1.3, 0);\n    hull.add(seam);\n    const v1 = boxMesh(0.035, 0.62, 0.035, DARK);\n    v1.position.set(s * 1.115, 0.96, -0.6);\n    hull.add(v1);\n    const v2 = boxMesh(0.035, 0.62, 0.035, DARK);\n    v2.position.set(s * 1.115, 0.96, 1.05);\n    hull.add(v2);\n    const v3 = boxMesh(0.035, 0.55, 0.035, DARK);\n    v3.position.set(s * 1.03, 1.6, 0.05);\n    hull.add(v3);\n  }\n  const seamF = boxMesh(2.2, 0.035, 0.035, DARK);\n  seamF.position.set(0, 1.3, 2.2);\n  hull.add(seamF);\n  const seamR = boxMesh(2.2, 0.035, 0.035, DARK);\n  seamR.position.set(0, 1.3, -2.2);\n  hull.add(seamR);\n  const gSeam = boxMesh(1.9, 0.03, 0.03, DARK);\n  gSeam.position.set(0, 1.34, 2.645);\n  hull.add(gSeam);\n  const gSeamV = boxMesh(0.03, 0.8, 0.03, DARK);\n  gSeamV.position.set(0, 1.25, 2.645);\n  hull.add(gSeamV);\n}\n\n/* ---------------- HARDWARE ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    for (let i = 0; i < 7; i++) {\n      const bolt = cylMesh(0.038, 0.05, STEEL, { metalness: 0.85, roughness: 0.35 });\n      bolt.rotation.z = Math.PI / 2;\n      bolt.position.set(s * 1.13, 1.3, -1.8 + i * 0.6);\n      hull.add(bolt);\n    }\n    for (let i = 0; i < 4; i++) {\n      const bolt = cylMesh(0.032, 0.045, STEEL, { metalness: 0.85, roughness: 0.35 });\n      bolt.rotation.z = Math.PI / 2;\n      bolt.position.set(s * 1.14, 1.62, 0.2 + i * 0.35);\n      hull.add(bolt);\n    }\n    const hook = boxMesh(0.14, 0.2, 0.24, \"#3a3f36\", { metalness: 0.6, roughness: 0.5 });\n    hook.position.set(s * 0.85, 0.72, 2.42);\n    hull.add(hook);\n    const shackle = new THREE.Mesh(new THREE.TorusGeometry(0.075, 0.026, 8, 18), stdMat(\"#8a8d80\", { metalness: 0.9, roughness: 0.3 }));\n    shackle.position.set(s * 0.85, 0.72, 2.56);\n    shackle.rotation.y = Math.PI / 2;\n    shackle.castShadow = true;\n    hull.add(shackle);\n    const step = boxMesh(0.16, 0.05, 0.5, \"#3a3f36\");\n    step.position.set(s * 1.16, 0.72, 1.9);\n    hull.add(step);\n  }\n}\nif (turret) {\n  const handle = boxMesh(0.34, 0.06, 0.07, \"#3a3f36\", { metalness: 0.6, roughness: 0.45 });\n  handle.position.set(0.32, 2.47, -0.62);\n  turret.add(handle);\n  for (let s = -1; s <= 1; s += 2) {\n    const hinge = boxMesh(0.1, 0.14, 0.22, \"#3a3f36\", { metalness: 0.7, roughness: 0.4 });\n    hinge.position.set(s * 0.55, 2.4, -1.18);\n    turret.add(hinge);\n    const antBase = cylMesh(0.05, 0.08, \"#3a3f36\", { metalness: 0.7, roughness: 0.4 });\n    antBase.position.set(s * 0.62, 2.47, -1.05);\n    turret.add(antBase);\n    const ant = cylMesh(0.016, 1.15, \"#20241d\");\n    ant.position.set(s * 0.62, 3.05, -1.05);\n    ant.rotation.z = s * 0.08;\n    turret.add(ant);\n    for (let i = 0; i < 4; i++) {\n      const bolt = cylMesh(0.03, 0.04, STEEL, { metalness: 0.85, roughness: 0.35 });\n      bolt.rotation.z = Math.PI / 2;\n      bolt.position.set(s * 0.77, 2.02, -0.9 + i * 0.5);\n      turret.add(bolt);\n    }\n  }\n  const ringSeam = boxMesh(1.52, 0.035, 0.035, DARK);\n  ringSeam.position.set(0, 2.17, 0.81);\n  turret.add(ringSeam);\n  const ringSeam2 = boxMesh(1.52, 0.035, 0.035, DARK);\n  ringSeam2.position.set(0, 2.17, -1.21);\n  turret.add(ringSeam2);\n}\n\n/* ---------------- BAGS / STOWAGE ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const bag = boxMesh(0.24, 0.42, 0.72, CANVASBAG, { roughness: 0.95, metalness: 0.0 });\n    bag.position.set(s * 1.19, 1.5, 0.35);\n    hull.add(bag);\n    const strapA = boxMesh(0.26, 0.05, 0.06, \"#3b3222\", { roughness: 0.95 });\n    strapA.position.set(s * 1.19, 1.63, 0.35);\n    hull.add(strapA);\n    const strapB = boxMesh(0.26, 0.05, 0.06, \"#3b3222\", { roughness: 0.95 });\n    strapB.position.set(s * 1.19, 1.37, 0.35);\n    hull.add(strapB);\n    const roll = cylMesh(0.11, 0.5, \"#5d4f34\", { roughness: 0.95 });\n    roll.rotation.x = Math.PI / 2;\n    roll.position.set(s * 1.18, 1.78, 0.35);\n    hull.add(roll);\n  }\n  const duffel = boxMesh(0.95, 0.36, 0.36, CANVASBAG, { roughness: 0.95 });\n  duffel.position.set(0, 1.55, -2.36);\n  hull.add(duffel);\n  const duffelStrap = boxMesh(0.08, 0.38, 0.38, \"#3b3222\", { roughness: 0.95 });\n  duffelStrap.position.set(0.25, 1.55, -2.36);\n  hull.add(duffelStrap);\n  const duffelStrap2 = boxMesh(0.08, 0.38, 0.38, \"#3b3222\", { roughness: 0.95 });\n  duffelStrap2.position.set(-0.25, 1.55, -2.36);\n  hull.add(duffelStrap2);\n}\nif (turret) {\n  for (let s = -1; s <= 1; s += 2) {\n    const bag = boxMesh(0.18, 0.3, 0.42, CANVASBAG, { roughness: 0.95 });\n    bag.position.set(s * 0.86, 2.12, -0.72);\n    turret.add(bag);\n    const strap = boxMesh(0.2, 0.04, 0.44, \"#3b3222\", { roughness: 0.95 });\n    strap.position.set(s * 0.86, 2.2, -0.72);\n    turret.add(strap);\n  }\n}\n\n/* ---------------- FOGLIGHTS ---------------- */\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const housing = cylMesh(0.135, 0.16, \"#2f342c\", { metalness: 0.5, roughness: 0.5 });\n    housing.rotation.x = Math.PI / 2;\n    housing.position.set(s * 0.72, 1.4, 2.6);\n    hull.add(housing);\n    const lens = cylMesh(0.115, 0.04, \"#fff3c4\", { emissive: new THREE.Color(\"#ffd98a\"), emissiveIntensity: 1.1, roughness: 0.25, metalness: 0.0 });\n    lens.rotation.x = Math.PI / 2;\n    lens.position.set(s * 0.72, 1.4, 2.69);\n    hull.add(lens);\n    const guard = new THREE.Mesh(new THREE.TorusGeometry(0.145, 0.022, 8, 20), stdMat(\"#3a3f36\", { metalness: 0.7, roughness: 0.4 }));\n    guard.position.set(s * 0.72, 1.4, 2.72);\n    guard.castShadow = true;\n    hull.add(guard);\n    const bracket = boxMesh(0.07, 0.16, 0.1, \"#3a3f36\", { metalness: 0.7, roughness: 0.4 });\n    bracket.position.set(s * 0.72, 1.24, 2.58);\n    hull.add(bracket);\n  }\n}\n\n/* ---------------- INSIGNIA ---------------- */\nconst starTex = canvasTex(256, 256, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#8c1d2f\";\n  ctx.beginPath();\n  ctx.arc(128, 128, 112, 0, Math.PI * 2);\n  ctx.fill();\n  ctx.strokeStyle = \"#f2efe4\";\n  ctx.lineWidth = 7;\n  ctx.stroke();\n  ctx.fillStyle = \"#f2efe4\";\n  ctx.beginPath();\n  for (let i = 0; i < 10; i++) {\n    const r = i % 2 === 0 ? 80 : 33;\n    const a = -Math.PI / 2 + i * Math.PI / 5;\n    const x = 128 + Math.cos(a) * r;\n    const y = 128 + Math.sin(a) * r;\n    if (i === 0) { ctx.moveTo(x, y); } else { ctx.lineTo(x, y); }\n  }\n  ctx.closePath();\n  ctx.fill();\n});\nconst chevTex = canvasTex(256, 128, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#e0d9c2\";\n  ctx.beginPath();\n  ctx.moveTo(20, 100);\n  ctx.lineTo(128, 24);\n  ctx.lineTo(236, 100);\n  ctx.lineTo(236, 118);\n  ctx.lineTo(128, 42);\n  ctx.lineTo(20, 118);\n  ctx.closePath();\n  ctx.fill();\n});\nif (turret) {\n  for (let s = -1; s <= 1; s += 2) {\n    const insignia = new THREE.Mesh(new THREE.PlaneGeometry(0.56, 0.56), new THREE.MeshStandardMaterial({ map: starTex, transparent: true, roughness: 0.9, metalness: 0.0 }));\n    insignia.position.set(s * 0.762, 2.2, -0.2);\n    insignia.rotation.y = s * Math.PI / 2;\n    turret.add(insignia);\n  }\n  const chev = new THREE.Mesh(new THREE.PlaneGeometry(0.5, 0.25), new THREE.MeshStandardMaterial({ map: chevTex, transparent: true, roughness: 0.9 }));\n  chev.position.set(0, 2.22, -1.215);\n  chev.rotation.y = Math.PI;\n  turret.add(chev);\n}\nif (hull) {\n  const frontIns = new THREE.Mesh(new THREE.PlaneGeometry(0.42, 0.42), new THREE.MeshStandardMaterial({ map: starTex, transparent: true, roughness: 0.9 }));\n  frontIns.position.set(0.55, 1.32, 2.655);\n  hull.add(frontIns);\n}\n\n/* ---------------- UNIT IDS ---------------- */\nconst idTex = canvasTex(512, 160, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#e9e3cf\";\n  ctx.font = \"bold 108px Arial\";\n  ctx.textAlign = \"center\";\n  ctx.textBaseline = \"middle\";\n  ctx.fillText(\"A-17\", w / 2, h / 2 + 4);\n});\nconst idTex2 = canvasTex(512, 160, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.fillStyle = \"#e9e3cf\";\n  ctx.font = \"bold 104px Arial\";\n  ctx.textAlign = \"center\";\n  ctx.textBaseline = \"middle\";\n  ctx.fillText(\"01\", w / 2, h / 2 + 4);\n});\nif (hull) {\n  for (let s = -1; s <= 1; s += 2) {\n    const id = new THREE.Mesh(new THREE.PlaneGeometry(0.82, 0.26), new THREE.MeshStandardMaterial({ map: idTex, transparent: true, roughness: 0.9 }));\n    id.position.set(s * 1.118, 0.95, 0.55);\n    id.rotation.y = s * Math.PI / 2;\n    hull.add(id);\n  }\n  const frontId = new THREE.Mesh(new THREE.PlaneGeometry(0.5, 0.16), new THREE.MeshStandardMaterial({ map: idTex2, transparent: true, roughness: 0.9 }));\n  frontId.position.set(-0.55, 1.12, 2.655);\n  hull.add(frontId);\n}\nif (turret) {\n  const tid = new THREE.Mesh(new THREE.PlaneGeometry(0.6, 0.19), new THREE.MeshStandardMaterial({ map: idTex2, transparent: true, roughness: 0.9 }));\n  tid.position.set(0.42, 2.05, -1.215);\n  tid.rotation.y = Math.PI;\n  turret.add(tid);\n}\n\n/* ---------------- CAMO NETTING ---------------- */\nconst netTex = canvasTex(256, 256, (ctx, w, h) => {\n  ctx.clearRect(0, 0, w, h);\n  ctx.strokeStyle = \"rgba(58,70,38,0.95)\";\n  ctx.lineWidth = 3;\n  for (let i = 0; i <= 256; i += 16) {\n    ctx.beginPath();\n    ctx.moveTo(i + Math.sin(i * 0.7) * 3, 0);\n    ctx.lineTo(i - Math.sin(i * 0.7) * 3, 256);\n    ctx.stroke();\n    ctx.beginPath();\n    ctx.moveTo(0, i + Math.cos(i * 0.6) * 3);\n    ctx.lineTo(256, i - Math.cos(i * 0.6) * 3);\n    ctx.stroke();\n  }\n});\nnetTex.wrapS = THREE.RepeatWrapping;\nnetTex.wrapT = THREE.RepeatWrapping;\nnetTex.repeat.set(3, 4);\n\nconst netMat = new THREE.MeshStandardMaterial({ map: netTex, transparent: true, alphaTest: 0.08, side: THREE.DoubleSide, roughness: 0.95, metalness: 0.0, depthWrite: false });\n\nconst netGeo = new THREE.PlaneGeometry(2.0, 2.8, 12, 16);\nnetGeo.rotateX(-Math.PI / 2);\nconst npos = netGeo.attributes.position;\nfor (let i = 0; i < npos.count; i++) {\n  const vx = npos.getX(i);\n  const vz = npos.getZ(i) - 0.2;\n  const over = Math.max(0, Math.abs(vx) - 0.72) * 1.15 + Math.max(0, Math.abs(vz) - 0.95) * 1.15;\n  let y = 2.47 - over;\n  y += Math.sin(vx * 5.5) * Math.cos(vz * 4.5) * 0.035;\n  if (y < 1.55) { y = 1.55; }\n  npos.setXYZ(i, vx, y, vz + 0.2);\n}\nnetGeo.computeVertexNormals();\nconst net = new THREE.Mesh(netGeo, netMat);\nnet.castShadow = true;\ngroup.add(net);\n\nconst netBundle = cylMesh(0.13, 1.5, \"#3f4a2c\", { roughness: 0.95 });\nnetBundle.rotation.z = Math.PI / 2;\nnetBundle.position.set(0, 2.5, -1.42);\ngroup.add(netBundle);\nconst netBundle2 = cylMesh(0.1, 1.1, \"#44512f\", { roughness: 0.95 });\nnetBundle2.rotation.z = Math.PI / 2;\nnetBundle2.position.set(0, 2.48, -1.62);\ngroup.add(netBundle2);\n\nconst deckNetGeo = new THREE.PlaneGeometry(1.9, 1.0, 10, 6);\ndeckNetGeo.rotateX(-Math.PI / 2);\nconst dpos = deckNetGeo.attributes.position;\nfor (let i = 0; i < dpos.count; i++) {\n  const vx = dpos.getX(i);\n  const vz = dpos.getZ(i) - 1.6;\n  const over = Math.max(0, Math.abs(vx) - 0.85) * 1.1;\n  let y = 1.95 - over + Math.sin(vx * 6.0) * 0.02;\n  if (y < 1.45) { y = 1.45; }\n  dpos.setXYZ(i, vx, y, vz + 1.6);\n}\ndeckNetGeo.computeVertexNormals();\nconst deckNet = new THREE.Mesh(deckNetGeo, netMat);\ndeckNet.castShadow = true;\ngroup.add(deckNet);\n}\n\n{\nconst hull = group.getObjectByName(\"Hull\") || group;\n\nconst M = {};\nM.vent = new THREE.MeshStandardMaterial({ color: 0x252c1e, roughness: 0.9, metalness: 0.15 });\nM.slat = new THREE.MeshStandardMaterial({ color: 0x3f4f30, roughness: 0.85, metalness: 0.1 });\nM.panel = new THREE.MeshStandardMaterial({ color: 0x55683f, roughness: 0.72, metalness: 0.08 });\nM.panelDark = new THREE.MeshStandardMaterial({ color: 0x4e6039, roughness: 0.78, metalness: 0.08 });\nM.seam = new THREE.MeshStandardMaterial({ color: 0x1b2018, roughness: 0.95 });\nM.hw = new THREE.MeshStandardMaterial({ color: 0x6b6f63, roughness: 0.45, metalness: 0.65 });\nM.hwDark = new THREE.MeshStandardMaterial({ color: 0x3a3f36, roughness: 0.5, metalness: 0.6 });\nM.bag = new THREE.MeshStandardMaterial({ color: 0x3c4630, roughness: 0.98 });\nM.strap = new THREE.MeshStandardMaterial({ color: 0x23291d, roughness: 0.95 });\nM.housing = new THREE.MeshStandardMaterial({ color: 0x2e3628, roughness: 0.55, metalness: 0.45 });\nM.lens = new THREE.MeshStandardMaterial({ color: 0xfff4d0, emissive: 0xffd98a, emissiveIntensity: 0.85, roughness: 0.15, metalness: 0.1 });\nM.insignia = new THREE.MeshStandardMaterial({ color: 0xb30071, roughness: 0.55, side: THREE.DoubleSide });\nM.insigniaDark = new THREE.MeshStandardMaterial({ color: 0x1d2318, roughness: 0.6, side: THREE.DoubleSide });\nM.id = new THREE.MeshStandardMaterial({ color: 0xd9d6c4, roughness: 0.85 });\nM.idPlate = new THREE.MeshStandardMaterial({ color: 0x252c1e, roughness: 0.9 });\nM.net = new THREE.MeshStandardMaterial({ color: 0x4a5d3a, roughness: 1.0, transparent: true, opacity: 0.4, side: THREE.DoubleSide, depthWrite: false });\nM.weave = new THREE.MeshStandardMaterial({ color: 0x3c4a2c, roughness: 1.0, transparent: true, opacity: 0.7, side: THREE.DoubleSide, depthWrite: false });\nM.camoA = new THREE.MeshStandardMaterial({ color: 0x2e3628, roughness: 1.0, transparent: true, opacity: 0.6, side: THREE.DoubleSide, depthWrite: false });\nM.camoB = new THREE.MeshStandardMaterial({ color: 0x6b6f4a, roughness: 1.0, transparent: true, opacity: 0.5, side: THREE.DoubleSide, depthWrite: false });\nM.bundle = new THREE.MeshStandardMaterial({ color: 0x46512f, roughness: 1.0 });\n\nconst addBox = (name, w, h, d, x, y, z, mat, rot) => {\n  const m = new THREE.Mesh(new THREE.BoxGeometry(w, h, d), mat);\n  m.name = name;\n  m.position.set(x, y, z);\n  if (rot) { m.rotation.set(rot[0], rot[1], rot[2]); }\n  hull.add(m);\n};\n\nconst addCyl = (name, r, h, x, y, z, mat, rot) => {\n  const m = new THREE.Mesh(new THREE.CylinderGeometry(r, r, h, 16), mat);\n  m.name = name;\n  m.position.set(x, y, z);\n  if (rot) { m.rotation.set(rot[0], rot[1], rot[2]); }\n  hull.add(m);\n};\n\nconst addTorus = (name, r, t, x, y, z, mat, rot) => {\n  const m = new THREE.Mesh(new THREE.TorusGeometry(r, t, 8, 18), mat);\n  m.name = name;\n  m.position.set(x, y, z);\n  if (rot) { m.rotation.set(rot[0], rot[1], rot[2]); }\n  hull.add(m);\n};\n\nconst addRoundel = (name, x, y, z, ry, scale) => {\n  const ring = new THREE.Mesh(new THREE.RingGeometry(0.1 * scale, 0.155 * scale, 28), M.insignia);\n  ring.name = name + \"_Ring\";\n  ring.position.set(x, y, z);\n  ring.rotation.y = ry;\n  hull.add(ring);\n  const disc = new THREE.Mesh(new THREE.CircleGeometry(0.1 * scale, 28), M.insigniaDark);\n  disc.name = name + \"_Disc\";\n  disc.position.set(x + Math.sin(ry) * 0.004, y, z + Math.cos(ry) * 0.004);\n  disc.rotation.y = ry;\n  hull.add(disc);\n};\n\nconst addFog = (name, x, y, z, r) => {\n  const housing = new THREE.Mesh(new THREE.CylinderGeometry(r, r * 0.9, 0.16, 20), M.housing);\n  housing.name = name + \"_Housing\";\n  housing.position.set(x, y, z);\n  housing.rotation.x = Math.PI / 2;\n  hull.add(housing);\n  const lens = new THREE.Mesh(new THREE.CylinderGeometry(r * 0.82, r * 0.82, 0.04, 20), M.lens);\n  lens.name = name + \"_Lens\";\n  lens.position.set(x, y, z + 0.09);\n  lens.rotation.x = Math.PI / 2;\n  hull.add(lens);\n  const bracket = new THREE.Mesh(new THREE.BoxGeometry(r * 0.5, 0.1, 0.07), M.hwDark);\n  bracket.name = name + \"_Bracket\";\n  bracket.position.set(x, y - r - 0.02, z - 0.03);\n  hull.add(bracket);\n};\n\nconst addBag = (name, x, y, z, w, h, d) => {\n  const bag = new THREE.Mesh(new THREE.BoxGeometry(w, h, d), M.bag);\n  bag.name = name;\n  bag.position.set(x, y, z);\n  hull.add(bag);\n  const s1 = new THREE.Mesh(new THREE.BoxGeometry(w + 0.025, h + 0.025, 0.05), M.strap);\n  s1.name = name + \"_StrapA\";\n  s1.position.set(x, y, z + d * 0.26);\n  hull.add(s1);\n  const s2 = new THREE.Mesh(new THREE.BoxGeometry(w + 0.025, h + 0.025, 0.05), M.strap);\n  s2.name = name + \"_StrapB\";\n  s2.position.set(x, y, z - d * 0.26);\n  hull.add(s2);\n  const flap = new THREE.Mesh(new THREE.BoxGeometry(w * 0.92, 0.035, d * 0.45), M.strap);\n  flap.name = name + \"_Flap\";\n  flap.position.set(x, y + h / 2 + 0.01, z);\n  hull.add(flap);\n};\n\nconst addText = (text, ox, oy, oz, facing, mat, scale) => {\n  const w = 0.085 * scale, h = 0.15 * scale, t = 0.02 * scale, dep = 0.018;\n  const defs = {\n    a: [0, h / 2, w, t],\n    g: [0, 0, w, t],\n    d: [0, -h / 2, w, t],\n    f: [-w / 2, h / 4, t, h / 2],\n    b: [w / 2, h / 4, t, h / 2],\n    e: [-w / 2, -h / 4, t, h / 2],\n    c: [w / 2, -h / 4, t, h / 2]\n  };\n  const map = { \"0\": \"abcdef\", \"1\": \"bc\", \"2\": \"abged\", \"3\": \"abgcd\", \"4\": \"fgbc\", \"5\": \"afgcd\", \"6\": \"afgedc\", \"7\": \"abc\", \"8\": \"abcdefg\", \"9\": \"abcdfg\" };\n  const spacing = w * 1.6;\n  for (let i = 0; i < text.length; i++) {\n    const ch = text[i];\n    const segs = map[ch];\n    if (!segs) { continue; }\n    const dx = facing > 0 ? ox + i * spacing : ox - i * spacing;\n    for (let j = 0; j < segs.length; j++) {\n      const d = defs[segs[j]];\n      const sx = facing > 0 ? d[0] : -d[0];\n      const m = new THREE.Mesh(new THREE.BoxGeometry(d[2], d[3], dep), mat);\n      m.name = \"UnitID_\" + ch + \"_\" + i + \"_\" + segs[j];\n      m.position.set(dx + sx, oy + d[1], oz);\n      hull.add(m);\n    }\n  }\n};\n\n/* ---------- VENTS ---------- */\n[-1, 1].forEach((s) => {\n  addBox(\"Vent_Glacis_Base_\" + s, 0.55, 0.03, 0.5, s * 0.55, 1.775, 2.05, M.vent);\n  for (let i = 0; i < 4; i++) {\n    addBox(\"Vent_Glacis_Slat_\" + s + \"_\" + i, 0.5, 0.035, 0.05, s * 0.55, 1.8, 1.87 + i * 0.1, M.slat);\n  }\n  addBox(\"Vent_SideLower_Base_\" + s, 0.04, 0.3, 0.55, s * 1.13, 0.95, -1.35, M.vent);\n  for (let i = 0; i < 4; i++) {\n    addBox(\"Vent_SideLower_Slat_\" + s + \"_\" + i, 0.05, 0.04, 0.5, s * 1.14, 0.83 + i * 0.08, -1.35, M.slat);\n  }\n  addBox(\"Vent_UpperSide_Base_\" + s, 0.03, 0.3, 0.42, s * 1.005, 1.72, -1.78, M.vent);\n  for (let i = 0; i < 4; i++) {\n    addBox(\"Vent_UpperSide_Slat_\" + s + \"_\" + i, 0.045, 0.04, 0.38, s * 1.015, 1.62 + i * 0.07, -1.78, M.slat);\n  }\n});\naddBox(\"Vent_RearDeck_Base\", 1.5, 0.03, 0.5, 0, 1.7, -2.2, M.vent);\nfor (let i = 0; i < 5; i++) {\n  addBox(\"Vent_RearDeck_Slat_\" + i, 1.45, 0.04, 0.05, 0, 1.73, -2.4 + i * 0.1, M.slat);\n}\n\n/* ---------- PANELS ---------- */\naddBox(\"Panel_Hatch_Top\", 0.8, 0.03, 0.7, 0.5, 1.915, 0.55, M.panel);\naddBox(\"Panel_Hatch_Top_Seam_F\", 0.84, 0.02, 0.03, 0.5, 1.935, 0.2, M.seam);\naddBox(\"Panel_Hatch_Top_Seam_B\", 0.84, 0.02, 0.03, 0.5, 1.935, 0.9, M.seam);\naddBox(\"Panel_Hatch_Top_Seam_L\", 0.03, 0.02, 0.72, 0.09, 1.935, 0.55, M.seam);\naddBox(\"Panel_Hatch_Top_Seam_R\", 0.03, 0.02, 0.72, 0.91, 1.935, 0.55, M.seam);\naddBox(\"Panel_Hatch_Rear\", 1.0, 0.32, 0.03, 0, 1.15, -2.585, M.panelDark);\naddBox(\"Panel_Hatch_Rear_Seam_T\", 1.04, 0.02, 0.02, 0, 1.32, -2.605, M.seam);\naddBox(\"Panel_Hatch_Rear_Seam_B\", 1.04, 0.02, 0.02, 0, 0.98, -2.605, M.seam);\naddBox(\"Panel_Hatch_Rear_Seam_L\", 0.02, 0.36, 0.02, -0.52, 1.15, -2.605, M.seam);\naddBox(\"Panel_Hatch_Rear_Seam_R\", 0.02, 0.36, 0.02, 0.52, 1.15, -2.605, M.seam);\n[-1, 1].forEach((s) => {\n  addBox(\"Panel_SideDoor_\" + s, 0.02, 0.3, 0.5, s * 1.055, 1.6, 0.62, M.panelDark);\n  addBox(\"Panel_SideDoor_Seam_\" + s, 0.015, 0.34, 0.54, s * 1.07, 1.6, 0.62, M.seam);\n  addBox(\"Panel_GlacisSide_\" + s, 0.03, 0.5, 0.7, s * 1.005, 1.35, 2.1, M.panelDark);\n  addBox(\"Panel_RearSide_\" + s, 0.03, 0.45, 0.6, s * 1.005, 1.25, -2.2, M.panelDark);\n});\n\n/* ---------- SEAMS ---------- */\n[-1, 1].forEach((s) => {\n  addBox(\"Seam_TopEdge_\" + s, 0.03, 0.03, 3.7, s * 1.0, 1.895, -0.1, M.seam);\n  addBox(\"Seam_SideVert_A_\" + s, 0.02, 0.55, 0.03, s * 1.005, 1.6, 0.05, M.seam);\n  addBox(\"Seam_SideVert_B_\" + s, 0.02, 0.55, 0.03, s * 1.005, 1.6, -0.75, M.seam);\n  addBox(\"Seam_LowerEdge_\" + s, 0.03, 0.03, 4.3, s * 1.1, 0.62, 0, M.seam);\n});\naddBox(\"Seam_Glacis_Top\", 1.8, 0.02, 0.03, 0, 1.765, 2.16, M.seam);\naddBox(\"Seam_Nose_Vert\", 0.03, 0.8, 0.03, 0, 1.25, 2.645, M.seam);\naddBox(\"Seam_Rear_Top\", 1.9, 0.02, 0.03, 0, 1.69, -1.86, M.seam);\naddBox(\"Seam_Grille_Frame_T\", 1.25, 0.03, 0.03, 0, 1.79, 2.6, M.seam);\naddBox(\"Seam_Grille_Frame_B\", 1.25, 0.03, 0.03, 0, 1.25, 2.6, M.seam);\n\n/* ---------- HARDWARE ---------- */\n[-1, 1].forEach((s) => {\n  addBox(\"Tow_Plate_F_\" + s, 0.2, 0.14, 0.04, s * 0.72, 1.02, 2.65, M.hwDark);\n  addTorus(\"Tow_Eye_F_\" + s, 0.07, 0.02, s * 0.72, 1.02, 2.68, M.hw);\n  addBox(\"Tow_Plate_R_\" + s, 0.2, 0.14, 0.04, s * 0.72, 1.05, -2.6, M.hwDark);\n  addTorus(\"Tow_Eye_R_\" + s, 0.07, 0.02, s * 0.72, 1.05, -2.63, M.hw);\n  addBox(\"Lift_Eye_Base_\" + s, 0.12, 0.05, 0.12, s * 0.7, 1.92, -1.0, M.hwDark);\n  addTorus(\"Lift_Eye_\" + s, 0.05, 0.014, s * 0.7, 1.98, -1.0, M.hw);\n  addBox(\"Grab_Handle_\" + s, 0.05, 0.04, 0.18, s * 1.06, 1.45, 0.3, M.hw);\n  addBox(\"Grab_Handle_2_\" + s, 0.05, 0.04, 0.18, s * 1.06, 1.45, -0.35, M.hw);\n});\n[[0.13, 0.23], [0.87, 0.23], [0.13, 0.87], [0.87, 0.87], [0.5, 0.23], [0.5, 0.87]].forEach((p, i) => {\n  addCyl(\"Bolt_Hatch_\" + i, 0.022, 0.03, p[0], 1.94, p[1], M.hw);\n});\n[[-0.46, 1.02], [0.46, 1.02], [-0.46, 1.28], [0.46, 1.28]].forEach((p, i) => {\n  addCyl(\"Bolt_RearHatch_\" + i, 0.022, 0.03, p[0], p[1], -2.61, M.hw, [Math.PI / 2, 0, 0]);\n});\naddBox(\"Antenna_Base\", 0.09, 0.05, 0.09, 0.9, 1.72, -2.3, M.hwDark);\naddCyl(\"Antenna_Whip\", 0.012, 0.55, 0.9, 2.0, -2.3, M.hwDark);\naddBox(\"Bracket_Front_L\", 0.06, 0.16, 0.06, -0.95, 1.4, 2.62, M.hwDark);\naddBox(\"Bracket_Front_R\", 0.06, 0.16, 0.06, 0.95, 1.4, 2.62, M.hwDark);\n\n/* ---------- BAGS ---------- */\naddBag(\"Bag_Side_L\", -1.17, 1.0, 1.35, 0.16, 0.36, 0.75);\naddBag(\"Bag_Side_R\", 1.17, 1.0, 1.35, 0.16, 0.36, 0.75);\naddBag(\"Bag_Rear_Top\", 0.5, 1.78, -2.3, 0.75, 0.24, 0.4);\naddBag(\"Bag_Front_Left\", -0.88, 1.82, 1.95, 0.3, 0.2, 0.45);\n\n/* ---------- FOGLIGHTS ---------- */\naddFog(\"Fog_Front_L\", -0.72, 1.18, 2.62, 0.12);\naddFog(\"Fog_Front_R\", 0.72, 1.18, 2.62, 0.12);\naddFog(\"Fog_Upper_L\", -0.85, 1.82, 2.35, 0.09);\naddFog(\"Fog_Upper_R\", 0.85, 1.82, 2.35, 0.09);\n\n/* ---------- INSIGNIA ---------- */\naddRoundel(\"Insignia_Front\", 0.72, 1.28, 2.648, 0, 0.8);\naddRoundel(\"Insignia_Rear\", -0.7, 1.3, -2.592, Math.PI, 0.85);\naddRoundel(\"Insignia_Side_L\", -1.008, 1.72, 1.35, -Math.PI / 2, 0.9);\naddRoundel(\"Insignia_Side_R\", 1.008, 1.72, 1.35, Math.PI / 2, 0.9);\n\n/* ---------- UNIT IDS ---------- */\naddBox(\"ID_Plate_Front\", 0.42, 0.24, 0.015, 0, 1.02, 2.638, M.idPlate);\naddText(\"07\", 0, 1.02, 2.652, 1, M.id, 1.0);\naddBox(\"ID_Plate_Rear\", 0.52, 0.22, 0.015, 0, 1.48, -2.588, M.idPlate);\naddText(\"417\", 0, 1.48, -2.602, -1, M.id, 0.95);\n\n/* ---------- CAMO NETTING ---------- */\nconst netGeo = new THREE.PlaneGeometry(2.4, 4.3, 8, 12);\nconst netPos = netGeo.attributes.position;\nfor (let i = 0; i < netPos.count; i++) {\n  const nx = netPos.getX(i), ny = netPos.getY(i);\n  const sag = Math.sin(((nx + 1.2) / 2.4) * Math.PI) * 0.13 * Math.cos(((ny + 2.15) / 4.3) * Math.PI);\n  netPos.setZ(i, -sag);\n}\nnetGeo.computeVertexNormals();\nconst netSheet = new THREE.Mesh(netGeo, M.net);\nnetSheet.name = \"CamoNet_Sheet\";\nnetSheet.position.set(0, 2.03, -0.1);\nnetSheet.rotation.x = -Math.PI / 2;\nhull.add(netSheet);\n\nfor (let i = 0; i < 9; i++) {\n  addBox(\"CamoNet_Weave_Long_\" + i, 0.022, 0.012, 4.2, -1.05 + i * 0.2625, 2.02, -0.1, M.weave);\n}\nfor (let i = 0; i < 13; i++) {\n  addBox(\"CamoNet_Weave_Cross_\" + i, 2.2, 0.012, 0.022, 0, 2.02, -2.1 + i * 0.35, M.weave);\n}\n[[-0.85, -1.6, 0.42, 0.3], [0.35, -0.9, 0.5, 0.36], [-0.2, 0.35, 0.38, 0.28], [0.75, 1.15, 0.44, 0.32], [-0.7, 1.55, 0.34, 0.26], [0.15, -1.95, 0.4, 0.3]].forEach((c, i) => {\n  const p = new THREE.Mesh(new THREE.SphereGeometry(0.3, 12, 8), i % 2 === 0 ? M.camoA : M.camoB);\n  p.name = \"CamoNet_Patch_\" + i;\n  p.position.set(c[0], 2.045, c[1]);\n  p.scale.set(c[2] * 2.2, 0.05, c[3] * 2.2);\n  hull.add(p);\n});\n[[-1.08, -2.0], [1.08, -2.0], [-1.08, 1.8], [1.08, 1.8], [0, -0.1]].forEach((p, i) => {\n  addCyl(\"CamoNet_Pole_\" + i, 0.022, 0.24, p[0], 1.98, p[1], M.hwDark);\n});\nconst bundle = new THREE.Mesh(new THREE.CylinderGeometry(0.11, 0.11, 1.5, 14), M.bundle);\nbundle.name = \"CamoNet_RolledBundle\";\nbundle.position.set(0, 1.99, -2.05);\nbundle.rotation.z = Math.PI / 2;\nhull.add(bundle);\naddBox(\"CamoNet_BundleStrap_A\", 0.06, 0.26, 0.26, -0.45, 1.99, -2.05, M.strap);\naddBox(\"CamoNet_BundleStrap_B\", 0.06, 0.26, 0.26, 0.45, 1.99, -2.05, M.strap);\n\n/* ---------- EXISTING PART TWEAKS ---------- */\nconst deck = group.getObjectByName(\"mesh_26\");\nif (deck && deck.material && deck.material.color) { deck.material.color.set(\"#1d2318\"); }\nconst trim = group.getObjectByName(\"HullAccentTrim\");\nif (trim && trim.material && trim.material.color) { trim.material.color.set(\"#b30071\"); trim.material.roughness = 0.5; }\nconst grille = group.getObjectByName(\"mesh_34\");\nif (grille && grille.material && grille.material.color) { grille.material.color.set(\"#1d2318\"); }\nconst frontPanel = group.getObjectByName(\"mesh_48\");\nif (frontPanel && frontPanel.material && frontPanel.material.color) { frontPanel.material.color.set(\"#55683f\"); }\n}\n\n{\nconst matVentBack = new THREE.MeshStandardMaterial({ color: 0x252c1e, roughness: 0.92 });\nconst matVentSlat = new THREE.MeshStandardMaterial({ color: 0x3f4f30, roughness: 0.75 });\nconst matPanelA = new THREE.MeshStandardMaterial({ color: 0x55683f, roughness: 0.68 });\nconst matPanelB = new THREE.MeshStandardMaterial({ color: 0x4e6039, roughness: 0.72 });\nconst matHardware = new THREE.MeshStandardMaterial({ color: 0x6b6f63, roughness: 0.42, metalness: 0.55 });\nconst matSeam = new THREE.MeshStandardMaterial({ color: 0x1b2018, roughness: 0.95 });\nconst matBag = new THREE.MeshStandardMaterial({ color: 0x4b4a38, roughness: 1.0 });\nconst matStrap = new THREE.MeshStandardMaterial({ color: 0x2b2b20, roughness: 1.0 });\nconst matHousing = new THREE.MeshStandardMaterial({ color: 0x33372f, roughness: 0.5, metalness: 0.4 });\nconst matLens = new THREE.MeshStandardMaterial({ color: 0xf6f2d0, roughness: 0.15, metalness: 0.1, emissive: 0xffe9a0, emissiveIntensity: 0.55 });\nconst matMarker = new THREE.MeshStandardMaterial({ color: 0xd06a1a, roughness: 0.3, emissive: 0xff7a1a, emissiveIntensity: 0.6 });\nconst matInsignia = new THREE.MeshStandardMaterial({ color: 0xb30071, roughness: 0.6 });\nconst matInsigniaLight = new THREE.MeshStandardMaterial({ color: 0xe9e6d8, roughness: 0.6 });\nconst matStencil = new THREE.MeshStandardMaterial({ color: 0xdcdccb, roughness: 0.85 });\nconst matNet = new THREE.MeshStandardMaterial({ color: 0x3a4a2c, roughness: 1.0 });\nconst matTarp = new THREE.MeshStandardMaterial({ color: 0x46583a, roughness: 1.0 });\nconst matFoliageA = new THREE.MeshStandardMaterial({ color: 0x3d5228, roughness: 1.0 });\nconst matFoliageB = new THREE.MeshStandardMaterial({ color: 0x556b33, roughness: 1.0 });\nconst matFoliageC = new THREE.MeshStandardMaterial({ color: 0x2f3f22, roughness: 1.0 });\n\nfor (const sx of [-1, 1]) {\n  const ventBack = new THREE.Mesh(new THREE.BoxGeometry(0.03, 0.36, 0.72), matVentBack);\n  ventBack.position.set(sx * 1.115, 0.95, 1.2);\n  group.add(ventBack);\n  for (let i = 0; i < 5; i++) {\n    const slat = new THREE.Mesh(new THREE.BoxGeometry(0.05, 0.05, 0.68), matVentSlat);\n    slat.position.set(sx * 1.135, 0.83 + i * 0.06, 1.2);\n    group.add(slat);\n  }\n}\n\nconst deckVent = new THREE.Mesh(new THREE.BoxGeometry(1.25, 0.09, 0.55), matVentBack);\ndeckVent.position.set(0, 1.93, -0.85);\ngroup.add(deckVent);\nfor (let i = 0; i < 6; i++) {\n  const deckSlat = new THREE.Mesh(new THREE.BoxGeometry(1.2, 0.05, 0.05), matVentSlat);\n  deckSlat.position.set(0, 1.99, -1.08 + i * 0.09);\n  group.add(deckSlat);\n}\n\nconst roofVent = new THREE.Mesh(new THREE.BoxGeometry(0.9, 0.07, 0.3), matVentBack);\nroofVent.position.set(0, 1.94, 1.78);\ngroup.add(roofVent);\nfor (let i = 0; i < 4; i++) {\n  const roofSlat = new THREE.Mesh(new THREE.BoxGeometry(0.85, 0.04, 0.04), matVentSlat);\n  roofSlat.position.set(0, 1.99, 1.68 + i * 0.07);\n  group.add(roofSlat);\n}\n\nconst frontPlate = new THREE.Mesh(new THREE.BoxGeometry(1.6, 0.5, 0.03), matPanelA);\nfrontPlate.position.set(0, 1.6, 1.915);\ngroup.add(frontPlate);\n\nfor (const sx of [-1, 1]) {\n  const lowPlateF = new THREE.Mesh(new THREE.BoxGeometry(0.03, 0.4, 0.95), matPanelB);\n  lowPlateF.position.set(sx * 1.115, 0.95, 1.55);\n  group.add(lowPlateF);\n  const lowPlateR = new THREE.Mesh(new THREE.BoxGeometry(0.03, 0.4, 0.95), matPanelB);\n  lowPlateR.position.set(sx * 1.115, 0.95, -1.15);\n  group.add(lowPlateR);\n}\n\nconst rearPlate = new THREE.Mesh(new THREE.BoxGeometry(1.7, 0.55, 0.03), matPanelB);\nrearPlate.position.set(0, 1.3, -2.585);\ngroup.add(rearPlate);\n\nfor (const sx of [-1, 1]) {\n  for (let i = 0; i < 6; i++) {\n    const bolt = new THREE.Mesh(new THREE.CylinderGeometry(0.022, 0.022, 0.03, 8), matHardware);\n    bolt.rotation.z = Math.PI / 2;\n    bolt.position.set(sx * 1.07, 1.38, -0.72 + i * 0.16);\n    group.add(bolt);\n  }\n  for (let i = 0; i < 4; i++) {\n    const bolt = new THREE.Mesh(new THREE.CylinderGeometry(0.02, 0.02, 0.03, 8), matHardware);\n    bolt.rotation.z = Math.PI / 2;\n    bolt.position.set(sx * 1.07, 1.82, -0.72 + i * 0.16);\n    group.add(bolt);\n  }\n}\n\nfor (let i = 0; i < 5; i++) {\n  const bolt = new THREE.Mesh(new THREE.CylinderGeometry(0.022, 0.022, 0.03, 8), matHardware);\n  bolt.rotation.x = Math.PI / 2;\n  bolt.position.set(-0.7 + i * 0.35, 1.08, -2.615);\n  group.add(bolt);\n}\n\nfor (const sx of [-1, 1]) {\n  const hook = new THREE.Mesh(new THREE.BoxGeometry(0.14, 0.12, 0.14), matHardware);\n  hook.position.set(sx * 0.85, 0.9, 2.56);\n  group.add(hook);\n  const eye = new THREE.Mesh(new THREE.TorusGeometry(0.05, 0.014, 6, 14), matHardware);\n  eye.position.set(sx * 0.72, 1.93, -0.2);\n  group.add(eye);\n  const eye2 = new THREE.Mesh(new THREE.TorusGeometry(0.05, 0.014, 6, 14), matHardware);\n  eye2.position.set(sx * 0.72, 1.93, 0.2);\n  group.add(eye2);\n}\n\nconst hitch = new THREE.Mesh(new THREE.BoxGeometry(0.3, 0.12, 0.12), matHardware);\nhitch.position.set(0, 0.85, -2.6);\ngroup.add(hitch);\n\nconst seamTopL = new THREE.Mesh(new THREE.BoxGeometry(0.03, 0.02, 3.6), matSeam);\nseamTopL.position.set(-0.97, 1.905, 0);\ngroup.add(seamTopL);\nconst seamTopR = new THREE.Mesh(new THREE.BoxGeometry(0.03, 0.02, 3.6), matSeam);\nseamTopR.position.set(0.97, 1.905, 0);\ngroup.add(seamTopR);\nconst seamCrossF = new THREE.Mesh(new THREE.BoxGeometry(1.94, 0.02, 0.03), matSeam);\nseamCrossF.position.set(0, 1.905, 1.85);\ngroup.add(seamCrossF);\nconst seamCrossR = new THREE.Mesh(new THREE.BoxGeometry(1.94, 0.02, 0.03), matSeam);\nseamCrossR.position.set(0, 1.905, -1.85);\ngroup.add(seamCrossR);\nfor (const sx of [-1, 1]) {\n  const seamSideA = new THREE.Mesh(new THREE.BoxGeometry(0.02, 0.56, 0.03), matSeam);\n  seamSideA.position.set(sx * 1.005, 1.6, 0.06);\n  group.add(seamSideA);\n  const seamSideB = new THREE.Mesh(new THREE.BoxGeometry(0.02, 0.56, 0.03), matSeam);\n  seamSideB.position.set(sx * 1.005, 1.6, -0.76);\n  group.add(seamSideB);\n  const seamLower = new THREE.Mesh(new THREE.BoxGeometry(0.02, 0.02, 4.3), matSeam);\n  seamLower.position.set(sx * 1.105, 1.28, 0);\n  group.add(seamLower);\n}\n\nfor (const sx of [-1, 1]) {\n  const bag = new THREE.Mesh(new THREE.SphereGeometry(0.5, 14, 10), matBag);\n  bag.scale.set(0.19, 0.32, 0.62);\n  bag.position.set(sx * 1.16, 1.12, 0.95);\n  group.add(bag);\n  const strapA = new THREE.Mesh(new THREE.BoxGeometry(0.22, 0.36, 0.05), matStrap);\n  strapA.position.set(sx * 1.16, 1.12, 0.78);\n  group.add(strapA);\n  const strapB = new THREE.Mesh(new THREE.BoxGeometry(0.22, 0.36, 0.05), matStrap);\n  strapB.position.set(sx * 1.16, 1.12, 1.12);\n  group.add(strapB);\n  const bag2 = new THREE.Mesh(new THREE.SphereGeometry(0.5, 14, 10), matBag);\n  bag2.scale.set(0.17, 0.28, 0.52);\n  bag2.position.set(sx * 1.15, 1.1, -1.35);\n  group.add(bag2);\n  const strap2 = new THREE.Mesh(new THREE.BoxGeometry(0.2, 0.32, 0.05), matStrap);\n  strap2.position.set(sx * 1.15, 1.1, -1.2);\n  group.add(strap2);\n}\n\nconst roll = new THREE.Mesh(new THREE.CylinderGeometry(0.11, 0.11, 0.85, 12), matBag);\nroll.rotation.x = Math.PI / 2;\nroll.position.set(0.8, 1.99, -0.85);\ngroup.add(roll);\nconst rollStrap = new THREE.Mesh(new THREE.BoxGeometry(0.26, 0.26, 0.05), matStrap);\nrollStrap.position.set(0.8, 1.99, -0.85);\ngroup.add(rollStrap);\n\nfor (const sx of [-1, 1]) {\n  const bracket = new THREE.Mesh(new THREE.BoxGeometry(0.1, 0.16, 0.08), matHardware);\n  bracket.position.set(sx * 0.62, 1.6, 1.93);\n  group.add(bracket);\n  const housing = new THREE.Mesh(new THREE.CylinderGeometry(0.11, 0.11, 0.12, 16), matHousing);\n  housing.rotation.x = Math.PI / 2;\n  housing.position.set(sx * 0.62, 1.6, 2.0);\n  group.add(housing);\n  const lens = new THREE.Mesh(new THREE.CircleGeometry(0.095, 20), matLens);\n  lens.position.set(sx * 0.62, 1.6, 2.062);\n  group.add(lens);\n  const rim = new THREE.Mesh(new THREE.TorusGeometry(0.105, 0.018, 8, 20), matHardware);\n  rim.position.set(sx * 0.62, 1.6, 2.06);\n  group.add(rim);\n  const guard = new THREE.Mesh(new THREE.BoxGeometry(0.26, 0.02, 0.02), matHardware);\n  guard.position.set(sx * 0.62, 1.73, 2.02);\n  group.add(guard);\n  const marker = new THREE.Mesh(new THREE.BoxGeometry(0.08, 0.05, 0.03), matMarker);\n  marker.position.set(sx * 0.86, 1.76, 1.94);\n  group.add(marker);\n}\n\nfor (const sx of [-1, 1]) {\n  const disc = new THREE.Mesh(new THREE.CircleGeometry(0.14, 24), matInsignia);\n  disc.rotation.y = sx * Math.PI / 2;\n  disc.position.set(sx * 1.06, 1.6, 0.62);\n  group.add(disc);\n  const inner = new THREE.Mesh(new THREE.CircleGeometry(0.065, 20), matInsigniaLight);\n  inner.rotation.y = sx * Math.PI / 2;\n  inner.position.set(sx * 1.065, 1.6, 0.62);\n  group.add(inner);\n}\n\nconst rearDisc = new THREE.Mesh(new THREE.CircleGeometry(0.12, 24), matInsignia);\nrearDisc.rotation.y = Math.PI;\nrearDisc.position.set(0.6, 1.3, -2.605);\ngroup.add(rearDisc);\nconst rearInner = new THREE.Mesh(new THREE.CircleGeometry(0.055, 20), matInsigniaLight);\nrearInner.rotation.y = Math.PI;\nrearInner.position.set(0.6, 1.3, -2.61);\ngroup.add(rearInner);\n\nconst segMap = {\n  a: [0, 0.085, 0.09, 0.025],\n  b: [0.045, 0.0425, 0.025, 0.08],\n  c: [0.045, -0.0425, 0.025, 0.08],\n  d: [0, -0.085, 0.09, 0.025],\n  e: [-0.045, -0.0425, 0.025, 0.08],\n  f: [-0.045, 0.0425, 0.025, 0.08],\n  g: [0, 0, 0.09, 0.025]\n};\n\nconst rearDigits = [\n  { ox: 0.2, segs: [\"b\", \"c\"] },\n  { ox: 0.0, segs: [\"g\"] },\n  { ox: -0.2, segs: [\"a\", \"b\", \"c\"] }\n];\nfor (const d of rearDigits) {\n  for (const s of d.segs) {\n    const sg = segMap[s];\n    const m = new THREE.Mesh(new THREE.BoxGeometry(sg[2], sg[3], 0.02), matStencil);\n    m.position.set(d.ox + sg[0], 1.3 + sg[1], -2.62);\n    group.add(m);\n  }\n}\n\nfor (const sx of [-1, 1]) {\n  const sideDigits = [\n    { oz: sx * 0.2, segs: [\"b\", \"c\"] },\n    { oz: 0, segs: [\"g\"] },\n    { oz: -sx * 0.2, segs: [\"a\", \"b\", \"c\"] }\n  ];\n  for (const d of sideDigits) {\n    for (const s of d.segs) {\n      const sg = segMap[s];\n      const m = new THREE.Mesh(new THREE.BoxGeometry(0.02, sg[3], sg[2]), matStencil);\n      m.position.set(sx * 1.06, 1.6 + sg[1], -0.35 + d.oz);\n      group.add(m);\n    }\n  }\n}\n\nconst tarp = new THREE.Mesh(new THREE.BoxGeometry(1.86, 0.05, 1.25), matTarp);\ntarp.position.set(0, 1.94, 1.05);\ngroup.add(tarp);\n\nfor (let i = 0; i < 7; i++) {\n  const strand = new THREE.Mesh(new THREE.BoxGeometry(1.86, 0.014, 0.014), matNet);\n  strand.position.set(0, 1.978, 0.47 + i * 0.19);\n  group.add(strand);\n}\nfor (let i = 0; i < 10; i++) {\n  const strand = new THREE.Mesh(new THREE.BoxGeometry(0.014, 0.014, 1.25), matNet);\n  strand.position.set(-0.85 + i * 0.19, 1.978, 1.05);\n  group.add(strand);\n}\n\nconst foliageMats = [matFoliageA, matFoliageB, matFoliageC];\nfor (let i = 0; i < 18; i++) {\n  const fx = -0.78 + (i % 6) * 0.31;\n  const fz = 0.56 + Math.floor(i / 6) * 0.32;\n  const clump = new THREE.Mesh(new THREE.BoxGeometry(0.26, 0.09, 0.24), foliageMats[i % 3]);\n  clump.position.set(fx, 2.0, fz);\n  clump.rotation.y = i * 0.7;\n  group.add(clump);\n}\n\nconst netEdge = new THREE.Mesh(new THREE.BoxGeometry(1.86, 0.014, 0.014), matNet);\nnetEdge.position.set(0, 1.68, 1.68);\ngroup.add(netEdge);\nfor (let i = 0; i < 9; i++) {\n  const hang = new THREE.Mesh(new THREE.BoxGeometry(0.014, 0.3, 0.014), matNet);\n  hang.position.set(-0.82 + i * 0.2, 1.82, 1.68);\n  group.add(hang);\n}\nconst netEdgeR = new THREE.Mesh(new THREE.BoxGeometry(1.86, 0.014, 0.014), matNet);\nnetEdgeR.position.set(0, 1.68, 0.42);\ngroup.add(netEdgeR);\nfor (let i = 0; i < 9; i++) {\n  const hang = new THREE.Mesh(new THREE.BoxGeometry(0.014, 0.26, 0.014), matNet);\n  hang.position.set(-0.82 + i * 0.2, 1.8, 0.42);\n  group.add(hang);\n}\n}\nreturn group;","thumbUrl":"https://futurelabs.now/apps/images/u2/gen-agent-24-mvnmcdvk-zj5vu-s4.png"}],"glbUrl":"https://futurelabs.now/apps/models/u2/gen-agent-24-mvnmcdvk-zj5vu.glb"}