--- /dev/null
+{
+ "materials": [{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__1.005",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "BC3187A1-7BA9-32F8-8EF0-988F0A4965DB",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__10.002",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "791ED2CA-4CF7-37BD-B7A5-93E5C53334E6",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__11.003",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "E1C33DF2-8F43-302A-9D0D-E28306BED34C",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__12.002",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "0B0F01C9-8714-3C8E-982F-65EA7E4CAAD7",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__13",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "B80EEB38-A743-3E46-8FCF-2980C906ABF8",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__14.001",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "C7EE7895-5448-3E31-AD9E-585A06B2436D",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__15.001",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "0900AA13-3AAA-35EE-924B-384C6758BE52",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__16.002",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "800B5119-8B3F-36C6-94A0-A5A539678C74",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__17.004",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "444E0A9B-3E53-339A-B7CE-C89B8733E0DD",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__18.005",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "8A540E16-F140-3A80-918E-0626BBE324A0",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__19.002",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "BF9DB5D5-19C6-3106-88B0-71EB3963ECE5",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__2.002",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "69015046-C32F-37C8-9BD7-85C69F43A187",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__21.004",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "D35E67A3-94FC-3970-8C0E-9B88AB66070B",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__22.004",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "5CC2BB2B-1487-3519-8A92-971CA3BFFDD8",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__23.002",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "77FDF23B-DF16-3F79-92F9-1E81A7C388E1",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__24.004",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "A2C4E408-6162-31D7-8B4E-1D49CA0ADE5C",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__25.004",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "D4294D8A-3AC2-37AE-8B96-DA280B52674A",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__26",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "46EC61AD-1F64-370E-8F66-BB5E08490B28",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__27.001",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "0734F973-3EEC-3B1A-A7D3-DCD616642E7A",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__28",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "8540320A-85EF-37FA-A1D8-61D6920F449D",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__29.005",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "7FACB788-2021-3EB9-9D96-FA2F65928C61",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__3",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "F20FB3E5-C08E-32C2-B39F-E474BFF42466",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__4",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "D576C33C-5622-34A8-9053-49E51AAD0A1E",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__5",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "31F72AF1-4654-36BC-9F22-A85315B05D0B",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__6",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "ABC0B408-AE53-36EE-A398-C0FB8A44291D",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__7.003",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "19F0F770-4EEB-35C5-8360-B754546D1F80",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__8.003",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "DB1EC116-7961-38D4-AACD-3A6085AAC5F8",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "depthWrite": true,
+ "name": "07___Default_Slot__9.002",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "EF0D6FED-F199-360E-8CC8-8D386638725E",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 0,
+ "ambient": 0
+ },{
+ "blending": "NormalBlending",
+ "map": "7738E2DA-557B-3F32-B4A5-19A9302EF3F1",
+ "depthWrite": true,
+ "name": "2.001",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "8DF1CFAB-E744-3C88-BA40-D246A7439BAA",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 9868950,
+ "ambient": 9868950
+ },{
+ "blending": "NormalBlending",
+ "map": "5FCAB75F-200B-38C7-86E7-27E6D26F3D32",
+ "depthWrite": true,
+ "name": "3.005",
+ "type": "MeshPhongMaterial",
+ "specular": 131586,
+ "uuid": "7E64CE34-38C6-3FC6-BF62-C782D9458625",
+ "vertexColors": false,
+ "depthTest": true,
+ "emissive": 0,
+ "shininess": 50,
+ "color": 9868950,
+ "ambient": 9868950
+ }],
+ "geometries": [{
+ "materials": [{
+ "visible": true,
+ "mapDiffuse": "fluidbook-4pages 3.jpg",
+ "wireframe": false,
+ "shading": "phong",
+ "mapDiffuseRepeat": [1,1],
+ "specularCoef": 50,
+ "depthWrite": true,
+ "colorSpecular": [0.01,0.01,0.01],
+ "mapDiffuseAnisotropy": 1,
+ "colorDiffuse": [0.588235,0.588235,0.588235],
+ "colorAmbient": [0.588235,0.588235,0.588235],
+ "DbgIndex": 29,
+ "blending": "NormalBlending",
+ "DbgName": "3.005",
+ "opacity": 1,
+ "colorEmissive": [0,0,0],
+ "depthTest": true,
+ "mapDiffuseWrap": ["RepeatWrapping","RepeatWrapping"],
+ "DbgColor": 15658734,
+ "transparent": false
+ },{
+ "visible": true,
+ "mapDiffuse": "fluidbook-4pages 2.jpg",
+ "wireframe": false,
+ "shading": "phong",
+ "mapDiffuseRepeat": [1,1],
+ "specularCoef": 50,
+ "depthWrite": true,
+ "colorSpecular": [0.01,0.01,0.01],
+ "mapDiffuseAnisotropy": 1,
+ "colorDiffuse": [0.588235,0.588235,0.588235],
+ "colorAmbient": [0.588235,0.588235,0.588235],
+ "DbgIndex": 19,
+ "blending": "NormalBlending",
+ "DbgName": "2.001",
+ "opacity": 1,
+ "colorEmissive": [0,0,0],
+ "depthTest": true,
+ "mapDiffuseWrap": ["RepeatWrapping","RepeatWrapping"],
+ "DbgColor": 15658734,
+ "transparent": false
+ },{
+ "visible": true,
+ "wireframe": false,
+ "shading": "phong",
+ "specularCoef": 50,
+ "depthWrite": true,
+ "colorSpecular": [0.01,0.01,0.01],
+ "colorDiffuse": [0,0,0],
+ "colorAmbient": [0,0,0],
+ "DbgIndex": 4,
+ "blending": "NormalBlending",
+ "DbgName": "07___Default_Slot__5",
+ "opacity": 1,
+ "colorEmissive": [0,0,0],
+ "depthTest": true,
+ "DbgColor": 15658496,
+ "transparent": false
+ },{
+ "visible": true,
+ "wireframe": false,
+ "shading": "phong",
+ "specularCoef": 50,
+ "depthWrite": true,
+ "colorSpecular": [0.01,0.01,0.01],
+ "colorDiffuse": [0,0,0],
+ "colorAmbient": [0,0,0],
+ "DbgIndex": 3,
+ "blending": "NormalBlending",
+ "DbgName": "07___Default_Slot__4",
+ "opacity": 1,
+ "colorEmissive": [0,0,0],
+ "depthTest": true,
+ "DbgColor": 238,
+ "transparent": false
+ },{
+ "visible": true,
+ "wireframe": false,
+ "shading": "phong",
+ "specularCoef": 50,
+ "depthWrite": true,
+ "colorSpecular": [0.01,0.01,0.01],
+ "colorDiffuse": [0,0,0],
+ "colorAmbient": [0,0,0],
+ "DbgIndex": 5,
+ "blending": "NormalBlending",
+ "DbgName": "07___Default_Slot__6",
+ "opacity": 1,
+ "colorEmissive": [0,0,0],
+ "depthTest": true,
+ "DbgColor": 61166,
+ "transparent": false
+ },{
+ "visible": true,
+ "wireframe": false,
+ "shading": "phong",
+ "specularCoef": 50,
+ "depthWrite": true,
+ "colorSpecular": [0.01,0.01,0.01],
+ "colorDiffuse": [0,0,0],
+ "colorAmbient": [0,0,0],
+ "DbgIndex": 2,
+ "blending": "NormalBlending",
+ "DbgName": "07___Default_Slot__3",
+ "opacity": 1,
+ "colorEmissive": [0,0,0],
+ "depthTest": true,
+ "DbgColor": 60928,
+ "transparent": false
+ }],
+ "type": "Geometry",
+ "data": {
+ "skinWeights": [],
+ "metadata": {
+ "generator": "io_three",
+ "materials": 6,
+ "uvs": 1,
+ "normals": 20,
+ "bones": 0,
+ "vertices": 1302,
+ "morphTargets": 3,
+ "faces": 2600,
+ "version": 3
+ },
+ "bones": [],
+ "animations": [],
+ "name": "004Geometry",
+ "morphTargets": [{
+ "vertices": [[-6.9e-05,1.35431,-148.189],[12.5981,0.633327,-148.361],[24.4402,0.850573,-148.327],[35.5261,2.00604,-148.085],[45.8558,4.09975,-147.636],[55.4294,7.13168,-146.979],[64.2469,11.1018,-146.116],[72.3082,16.0102,-145.046],[79.6133,21.8568,-143.768],[86.1622,28.6417,-142.283],[91.955,36.3647,-140.591],[96.9917,45.026,-138.692],[101.272,54.6256,-136.586],[104.797,65.1633,-134.273],[107.565,76.6393,-131.752],[109.577,89.0535,-129.024],[110.833,102.406,-126.09],[111.332,116.697,-122.948],[111.076,131.925,-119.599],[110.063,148.093,-116.042],[108.295,165.198,-112.279],[-6.9e-05,1.35431,-138.309],[12.5564,0.627329,-138.471],[24.3724,0.82658,-138.439],[35.4479,1.95206,-138.213],[45.783,4.00378,-137.793],[55.3775,6.98172,-137.18],[64.2316,10.8859,-136.373],[72.3452,15.7163,-135.372],[79.7183,21.4729,-134.178],[86.3509,28.1558,-132.79],[92.243,35.7649,-131.209],[97.3947,44.3002,-129.434],[101.806,53.7618,-127.465],[105.477,64.1496,-125.302],[108.407,75.4636,-122.946],[110.596,87.7039,-120.397],[112.046,100.87,-117.653],[112.754,114.963,-114.716],[112.723,129.982,-111.585],[111.951,145.927,-108.261],[110.438,162.799,-104.743],[-6.9e-05,1.35431,-128.429],[12.5163,0.621304,-128.581],[24.3077,0.802479,-128.551],[35.3742,1.89783,-128.341],[45.7157,3.90737,-127.95],[55.3323,6.83109,-127.378],[64.2239,10.669,-126.626],[72.3906,15.4211,-125.692],[79.8323,21.0873,-124.578],[86.5491,27.6678,-123.283],[92.5409,35.1624,-121.807],[97.8078,43.5712,-120.151],[102.35,52.8942,-118.313],[106.167,63.1313,-116.295],[109.259,74.2827,-114.096],[111.626,86.3482,-111.716],[113.268,99.3279,-109.155],[114.185,113.222,-106.414],[114.378,128.03,-103.492],[113.845,143.752,-100.389],[112.587,160.389,-97.1046],[-6.9e-05,1.35431,-118.548],[12.4778,0.615252,-118.691],[24.2461,0.778271,-118.665],[35.3048,1.84337,-118.47],[45.654,3.81054,-118.107],[55.2937,6.67979,-117.575],[64.2238,10.4511,-116.875],[72.4444,15.1245,-116.006],[79.9554,20.7,-114.968],[86.7569,27.1776,-113.762],[92.8488,34.5572,-112.387],[98.2312,42.8389,-110.843],[102.904,52.0227,-109.131],[106.867,62.1085,-107.25],[110.121,73.0965,-105.201],[112.665,84.9865,-102.983],[114.5,97.7786,-100.597],[115.625,111.473,-98.0416],[116.041,126.069,-95.3178],[115.747,141.567,-92.4254],[114.743,157.968,-89.3645],[-6.9e-05,1.35431,-108.666],[12.4409,0.609173,-108.801],[24.1875,0.753955,-108.779],[35.2399,1.78866,-108.6],[45.598,3.71328,-108.263],[55.2618,6.52782,-107.77],[64.2314,10.2323,-107.119],[72.5066,14.8267,-106.312],[80.0876,20.3109,-105.347],[86.9743,26.6852,-104.226],[93.1666,33.9493,-102.947],[98.6647,42.1034,-101.511],[103.469,51.1473,-99.9185],[107.578,61.0812,-98.1687],[110.993,71.905,-96.2618],[113.714,83.6188,-94.1978],[115.741,96.2224,-91.9768],[117.073,109.716,-89.5988],[117.712,124.099,-87.0637],[117.655,139.373,-84.3716],[116.905,155.536,-81.5224],[-6.9e-05,1.35431,-98.7841],[12.4056,0.603067,-98.9121],[24.1321,0.729532,-98.894],[35.1795,1.7337,-98.7298],[45.5476,3.61558,-98.4194],[55.2367,6.37517,-97.9628],[64.2466,10.0125,-97.3602],[72.5773,14.5275,-96.6114],[80.2288,19.9202,-95.7164],[87.2012,26.1906,-94.6753],[93.4944,33.3387,-93.4881],[99.1085,41.3646,-92.1547],[104.043,50.2681,-90.6752],[108.299,60.0493,-89.0496],[111.876,70.7083,-87.2778],[114.773,82.245,-85.3599],[116.992,94.6593,-83.2959],[118.531,107.951,-81.0857],[119.391,122.121,-78.7294],[119.571,137.169,-76.2269],[119.073,153.094,-73.5783],[-6.9e-05,1.35431,-88.901],[12.3719,0.596934,-89.0233],[24.0797,0.705001,-89.0098],[35.1234,1.67851,-88.8604],[45.5029,3.51746,-88.575],[55.2182,6.22186,-88.1539],[64.2693,9.79169,-87.5968],[72.6563,14.227,-86.9039],[80.3791,19.5277,-86.0751],[87.4377,25.6939,-85.1105],[93.8322,32.7255,-84.01],[99.5625,40.6225,-82.7737],[104.629,49.385,-81.4014],[109.031,59.0129,-79.8933],[112.768,69.5063,-78.2493],[115.842,80.8651,-76.4695],[118.251,93.0894,-74.5538],[119.997,106.179,-72.5022],[121.078,120.134,-70.3148],[121.495,134.955,-67.9915],[121.247,150.641,-65.5323],[-6.9e-05,1.35431,-79.0173],[12.3399,0.590775,-79.1349],[24.0305,0.680363,-79.1263],[35.0718,1.62307,-78.9915],[45.4637,3.41891,-78.7304],[55.2064,6.06787,-78.343],[64.2997,9.56995,-77.8295],[72.7437,13.9252,-77.1897],[80.5384,19.1335,-76.4236],[87.6838,25.1949,-75.5313],[94.1799,32.1095,-74.5128],[100.027,39.8772,-73.368],[105.224,48.498,-72.097],[109.772,57.9719,-70.6998],[113.671,68.299,-69.1763],[116.92,79.4792,-67.5266],[119.521,91.5125,-65.7506],[121.471,104.399,-63.8484],[122.773,118.138,-61.8199],[123.425,132.731,-59.6653],[123.428,148.177,-57.3843],[-6.9e-05,1.35431,-69.1328],[12.3094,0.584588,-69.2468],[23.9843,0.655617,-69.2436],[35.0245,1.5674,-69.1231],[45.4302,3.31993,-68.8853],[55.2013,5.91321,-68.5303],[64.3378,9.34724,-68.0581],[72.8396,13.622,-67.4685],[80.7069,18.7375,-66.7618],[87.9395,24.6938,-65.9377],[94.5376,31.4909,-64.9964],[100.501,39.1286,-63.9379],[105.83,47.6072,-62.7621],[110.524,56.9264,-61.469],[114.584,67.0865,-60.0587],[118.009,78.0873,-58.5311],[120.799,89.9288,-56.8863],[122.955,102.611,-55.1242],[124.476,116.134,-53.2448],[125.363,130.498,-51.2483],[125.615,145.702,-49.1344],[-6.9e-05,1.35431,-59.2477],[12.2806,0.578375,-59.3591],[23.9412,0.630764,-59.3617],[34.9818,1.51148,-59.2553],[45.4023,3.22051,-59.04],[55.2029,5.75787,-58.7157],[64.3834,9.12356,-58.2826],[72.9439,13.3176,-57.7406],[80.8843,18.3399,-57.0896],[88.2048,24.1905,-56.3297],[94.9052,30.8695,-55.4609],[100.986,38.3768,-54.4832],[106.446,46.7125,-53.3966],[111.286,55.8764,-52.201],[115.507,65.8687,-50.8965],[119.107,76.6893,-49.4832],[122.087,88.3382,-47.9609],[124.447,100.815,-46.3297],[126.188,114.121,-44.5895],[127.308,128.255,-42.7405],[127.808,143.217,-40.7825],[-6.9e-05,1.35431,-49.3618],[12.2533,0.572135,-49.4718],[23.9012,0.605803,-49.4805],[34.9434,1.45531,-49.388],[45.3801,3.12067,-49.1942],[55.2111,5.60187,-48.8993],[64.4366,8.89891,-48.5031],[73.0565,13.0118,-48.0057],[81.0709,17.9405,-47.4071],[88.4796,23.6851,-46.7073],[95.2828,30.2455,-45.9063],[101.48,37.6218,-45.004],[107.072,45.8139,-44.0005],[112.059,54.8218,-42.8958],[116.44,64.6456,-41.6899],[120.215,75.2852,-40.3827],[123.384,86.7407,-38.9744],[125.948,99.012,-37.4648],[127.907,112.099,-35.854],[129.26,126.002,-34.1419],[130.007,140.721,-32.3287],[-6.9e-05,1.35431,-39.4753],[12.2277,0.565868,-39.5847],[23.8642,0.580735,-39.6001],[34.9095,1.39891,-39.5212],[45.3634,3.0204,-39.3481],[55.2261,5.44519,-39.081],[64.4975,8.67329,-38.7196],[73.1776,12.7047,-38.264],[81.2665,17.5394,-37.7143],[88.764,23.1775,-37.0705],[95.6703,29.6188,-36.3324],[101.985,36.8634,-35.5002],[107.709,44.9114,-34.5739],[112.841,53.7627,-33.5533],[117.383,63.4172,-32.4386],[121.332,73.8751,-31.2298],[124.691,85.1363,-29.9267],[127.458,97.2008,-28.5295],[129.634,110.069,-27.0381],[131.219,123.74,-25.4526],[132.213,138.214,-23.7729],[-6.9e-05,1.35431,-29.5881],[12.2037,0.559574,-29.6981],[23.8304,0.555559,-29.7204],[34.88,1.34227,-29.6549],[45.3524,2.91969,-29.5017],[55.2478,5.28784,-29.2607],[64.566,8.44671,-28.932],[73.3071,12.3963,-28.5155],[81.4711,17.1366,-28.0112],[89.058,22.6676,-27.4192],[96.0678,28.9894,-26.7395],[102.5,36.1019,-25.9719],[108.356,44.0051,-25.1167],[113.634,52.699,-24.1736],[118.336,62.1836,-23.1428],[122.46,72.459,-22.0243],[126.007,83.5251,-20.818],[128.977,95.3819,-19.5239],[131.37,108.029,-18.1421],[133.186,121.468,-16.6725],[134.424,135.697,-15.1152],[-6.9e-05,1.35431,-19.7002],[12.1813,0.553253,-19.8118],[23.7997,0.530276,-19.8416],[34.8549,1.28538,-19.7892],[45.3471,2.81856,-19.6549],[55.2761,5.12982,-19.4386],[64.6421,8.21916,-19.1404],[73.445,12.0866,-18.7601],[81.6849,16.7321,-18.2978],[89.3616,22.1557,-17.7536],[96.4753,28.3573,-17.1273],[103.026,35.3371,-16.4191],[109.013,43.0949,-15.6289],[114.438,51.6308,-14.7567],[119.299,60.9447,-13.8025],[123.597,71.0368,-12.7663],[127.333,81.9069,-11.6481],[130.505,93.5552,-10.4479],[133.114,105.981,-9.16577],[135.16,119.186,-7.80162],[136.642,133.168,-6.35547],[-6.9e-05,1.35431,-9.81157],[12.1606,0.546905,-9.9259],[23.772,0.504885,-9.96343],[34.8342,1.22825,-9.92404],[45.3473,2.717,-9.80779],[55.3112,4.97113,-9.61466],[64.7258,7.99064,-9.3447],[73.5913,11.7755,-8.99786],[81.9076,16.3258,-8.57413],[89.6748,21.6415,-8.07353],[96.8927,27.7225,-7.49609],[103.561,34.569,-6.84175],[109.681,42.1808,-6.11058],[115.251,50.558,-5.30252],[120.273,59.7006,-4.4176],[124.744,69.6086,-3.4558],[128.667,80.2819,-2.41715],[132.041,91.7207,-1.30162],[134.865,103.925,-0.109238],[137.141,116.894,1.16003],[138.867,130.629,2.50615],[-6.9e-05,1.35431,0.077713],[12.1414,0.540531,-0.040359],[23.7474,0.479387,-0.086075],[34.818,1.17088,-0.059372],[45.3532,2.615,0.039703],[55.3529,4.81176,0.211182],[64.8172,7.76116,0.455032],[73.7461,11.4632,0.771271],[82.1395,15.9179,1.15991],[89.9975,21.1252,1.62094],[97.3201,27.0851,2.15433],[104.107,33.7977,2.76012],[110.359,41.2629,3.43831],[116.075,49.4807,4.18889],[121.256,58.4512,5.01184],[125.901,68.1743,5.9072],[130.011,78.65,6.87494],[133.586,89.8784,7.91505],[136.625,101.859,9.02757],[139.129,114.593,10.2125],[141.097,128.079,11.4697],[-6.9e-05,1.35431,9.9677],[12.1238,0.534129,9.84483],[23.7259,0.453781,9.7905],[34.8062,1.11326,9.80476],[45.3647,2.51258,9.88756],[55.4013,4.65173,10.0389],[64.9162,7.53071,10.2588],[73.9092,11.1495,10.5472],[82.3804,15.5082,10.9042],[90.3298,20.6066,11.3298],[97.7574,26.4449,11.8239],[104.663,33.0231,12.3866],[111.047,40.3411,13.0177],[116.909,48.3988,13.7175],[122.25,57.1965,14.4858],[127.068,66.734,15.3227],[131.365,77.0112,16.2281],[135.14,88.0284,17.2021],[138.393,99.7853,18.2446],[141.124,112.282,19.3557],[143.334,125.519,20.5353],[-6.9e-05,1.35431,19.8584],[12.1079,0.527701,19.7297],[23.7075,0.428067,19.6663],[34.7988,1.05541,19.6684],[45.3818,2.40973,19.7358],[55.4564,4.49102,19.8685],[65.0228,7.29929,20.0666],[74.0807,10.8345,20.33],[82.6304,15.0967,20.6589],[90.6717,20.0859,21.0531],[98.2047,25.8021,21.5126],[105.229,32.2452,22.0375],[111.746,39.4154,22.6278],[117.754,47.3124,23.2834],[123.253,55.9365,24.0044],[128.245,65.2876,24.7907],[132.728,75.3656,25.6424],[136.702,86.1706,26.5595],[140.169,97.7025,27.5419],[143.127,109.962,28.5897],[145.576,122.947,29.7028],[-6.9e-05,1.35431,29.7498],[12.0936,0.521246,29.6142],[23.6922,0.402246,29.5414],[34.7959,0.997312,29.5315],[45.4045,2.30644,29.5843],[55.5182,4.32964,29.7],[65.1369,7.0669,29.8785],[74.2607,10.5182,30.1197],[82.8894,14.6836,30.4239],[91.0232,19.5631,30.7908],[98.6619,25.1566,31.2205],[105.806,31.4642,31.713],[112.455,38.4858,32.2684],[118.608,46.2215,32.8865],[124.267,54.6713,33.5675],[129.431,63.8351,34.3112],[134.1,73.7131,35.1178],[138.274,84.305,35.9872],[141.953,95.611,36.9194],[145.137,107.631,37.9144],[147.826,120.365,38.9723],[-6.9e-05,1.35431,39.6418],[12.0808,0.514763,39.4983],[23.68,0.376318,39.4157],[34.7973,0.938972,39.394],[45.4329,2.20273,39.4332],[55.5867,4.16758,39.5333],[65.2588,6.83354,39.6944],[74.449,10.2006,39.9163],[83.1575,14.2688,40.1992],[91.3842,19.038,40.5429],[99.1291,24.5084,40.9475],[106.392,30.6798,41.413],[113.174,37.5524,41.9395],[119.473,45.126,42.5269],[125.291,53.4008,43.1751],[130.627,62.3767,43.8843],[135.482,72.0536,44.6544],[139.854,82.4317,45.4853],[143.745,93.5108,46.3772],[147.154,105.291,47.33],[150.081,117.772,48.3437],[-6.9e-05,1.35431,49.5345],[12.0697,0.508254,49.3821],[23.6708,0.350282,49.2892],[34.8032,0.880391,49.256],[45.4669,2.09858,49.2825],[55.6619,4.00486,49.3686],[65.3882,6.59922,49.5143],[74.6458,9.88166,49.7196],[83.4347,13.8522,49.9847],[91.7548,18.5108,50.3094],[99.6063,23.8575,50.6936],[106.989,29.8922,51.1376],[113.903,36.6151,51.6412],[120.349,44.026,52.2044],[126.325,52.125,52.8273],[131.833,60.9121,53.5098],[136.872,70.3873,54.252],[141.443,80.5506,55.0538],[145.545,91.4019,55.9152],[149.178,102.941,56.8363],[152.342,115.169,57.817],[-6.9e-05,1.35431,59.428],[12.0602,0.501719,59.2655],[23.6648,0.324138,59.162],[34.8135,0.821568,59.1175],[45.5065,1.99401,59.1321],[55.7438,3.84146,59.2057],[65.5253,6.36393,59.3383],[74.851,9.5614,59.5299],[83.7209,13.4339,59.7806],[92.135,17.9814,60.0903],[100.093,23.2039,60.459],[107.596,29.1014,60.8867],[114.643,35.6739,61.3734],[121.234,42.9215,61.9192],[127.369,50.844,62.5241],[133.049,59.4416,63.1879],[138.273,68.7141,63.9107],[143.041,78.6617,64.6926],[147.353,89.2843,65.5335],[151.209,100.582,66.4334],[154.61,112.555,67.3924],[-6.9e-05,1.35431,69.3221],[12.0523,0.495156,69.1485],[23.6618,0.297887,69.034],[34.8283,0.762503,68.9785],[45.5518,1.88901,68.9821],[55.8323,3.67739,69.0447],[65.6699,6.12767,69.1663],[75.0645,9.23982,69.347],[84.0162,13.0139,69.5868],[92.5248,17.4498,69.8856],[100.591,22.5476,70.2434],[108.213,28.3073,70.6603],[115.393,34.7289,71.1363],[122.13,41.8123,71.6713],[128.424,49.5577,72.2653],[134.274,57.965,72.9184],[139.682,67.0341,73.6306],[144.647,76.7651,74.4018],[149.169,87.158,75.232],[153.248,98.2128,76.1213],[156.884,109.929,77.0697],[-6.9e-05,1.35431,79.2169],[12.0461,0.488566,79.0312],[23.6619,0.271529,78.9052],[34.8475,0.703197,78.8389],[45.6027,1.78357,78.8324],[55.9276,3.51265,78.8855],[65.8222,5.89044,78.9984],[75.2865,8.91693,79.1709],[84.3205,12.5921,79.4033],[92.9242,16.916,79.6953],[101.098,21.8886,80.047],[108.841,27.51,80.4585],[116.153,33.78,80.9297],[123.036,40.6987,81.4606],[129.488,48.2661,82.0512],[135.51,56.4823,82.7015],[141.101,65.3471,83.4115],[146.263,74.8607,84.1813],[150.994,85.0229,85.0108],[155.294,95.8339,85.9],[159.164,107.294,86.8489],[-6.9e-05,1.35431,89.1124],[12.0414,0.48195,88.9136],[23.6651,0.245063,88.7757],[34.8711,0.643648,88.6988],[45.6592,1.67771,88.6831],[56.0295,3.34724,88.7283],[65.9821,5.65224,88.8345],[75.5169,8.59272,89.0018],[84.6339,12.1687,89.2301],[93.3331,16.3801,89.5195],[101.615,21.227,89.8698],[109.478,26.7094,90.2812],[116.924,32.8272,90.7537],[123.952,39.5805,91.2871],[130.563,46.9693,91.8816],[136.755,54.9936,92.5371],[142.53,63.6533,93.2536],[147.887,72.9485,94.0312],[152.826,82.8792,94.8698],[157.347,93.4453,95.7694],[161.451,104.647,96.7301],[-6.9e-05,1.35431,99.0087],[12.0384,0.475306,98.7956],[23.6714,0.218489,98.6454],[34.8991,0.583857,98.5583],[45.7213,1.57141,98.5341],[56.1382,3.18115,98.5729],[66.1496,5.41308,98.6747],[75.7557,8.26719,98.8395],[84.9564,11.7435,99.0673],[93.7517,15.842,99.358],[102.142,20.5626,99.7117],[110.126,25.9055,100.128],[117.705,31.8706,100.608],[124.879,38.4578,101.151],[131.647,45.6672,101.757],[138.01,53.4988,102.425],[143.968,61.9526,103.157],[149.52,71.0286,103.951],[154.666,80.7267,104.809],[159.408,91.0471,105.73],[163.744,101.99,106.713],[-6.9e-05,1.35431,108.906],[12.0369,0.468636,108.677],[23.6808,0.191808,108.514],[34.9315,0.523825,108.417],[45.7891,1.46469,108.385],[56.2535,3.0144,108.419],[66.3248,5.17295,108.519],[76.0029,7.94035,108.684],[85.2879,11.3166,108.915],[94.1797,15.3017,109.211],[102.678,19.8956,109.573],[110.784,25.0984,110],[118.496,30.91,110.493],[125.816,37.3305,111.052],[132.742,44.3598,111.676],[139.275,51.998,112.366],[145.415,60.245,113.121],[151.161,69.1008,113.942],[156.515,78.5655,114.829],[161.475,88.6391,115.781],[166.042,99.3215,116.798],[-6.9e-05,1.35431,118.803],[12.0371,0.461939,118.558],[23.6933,0.165019,118.382],[34.9684,0.46355,118.275],[45.8625,1.35753,118.237],[56.3755,2.84697,118.268],[66.5076,4.93185,118.367],[76.2585,7.61219,118.535],[85.6285,10.888,118.772],[94.6174,14.7592,119.078],[103.225,19.2259,119.453],[111.452,24.288,119.897],[119.298,29.9456,120.409],[126.763,36.1987,120.99],[133.847,43.0472,121.64],[140.549,50.4911,122.359],[146.871,58.5305,123.147],[152.812,67.1654,124.003],[158.371,76.3956,124.928],[163.55,86.2214,125.922],[168.348,96.6426,126.985],[-6.9e-05,1.35431,128.701],[12.0389,0.455215,128.439],[23.7088,0.138123,128.25],[35.0097,0.403034,128.133],[45.9415,1.24995,128.089],[56.5042,2.67887,128.118],[66.6979,4.68979,128.219],[76.5226,7.28271,128.394],[85.9781,10.4576,128.641],[95.0647,14.2146,128.96],[103.782,18.5535,129.352],[112.131,23.4744,129.817],[120.11,28.9774,130.355],[127.72,35.0623,130.966],[134.962,41.7293,131.649],[141.834,48.9782,132.405],[148.337,56.8092,133.233],[154.471,65.2221,134.134],[160.236,74.2171,135.108],[165.632,83.794,136.155],[170.659,93.953,137.274],[-6.9e-05,1.35431,138.6],[12.0423,0.448464,138.32],[23.7274,0.111119,138.117],[35.0554,0.342275,137.991],[46.0261,1.14193,137.942],[56.6396,2.51009,137.97],[66.8959,4.44675,138.076],[76.795,6.95191,138.259],[86.3369,10.0256,138.519],[95.5215,13.6677,138.856],[104.349,17.8784,139.271],[112.819,22.6576,139.763],[120.932,28.0052,140.332],[128.688,33.9214,140.978],[136.087,40.4061,141.702],[143.128,47.4592,142.503],[149.812,55.0809,143.381],[156.139,63.2711,144.336],[162.109,72.0298,145.368],[167.721,81.3569,146.478],[172.977,91.2526,147.665],[-6.9e-05,1.35431,148.5],[12.0473,0.441686,148.2],[23.7492,0.084008,147.982],[35.1055,0.281275,147.847],[46.1164,1.03349,147.794],[56.7817,2.34065,147.824],[67.1015,4.20275,147.936],[77.0758,6.6198,148.131],[86.7046,9.5918,148.408],[95.9879,13.1187,148.767],[104.926,17.2006,149.209],[113.518,21.8375,149.733],[121.765,27.0292,150.339],[129.666,32.776,151.028],[137.222,39.0776,151.799],[144.432,45.9342,152.653],[151.297,53.3458,153.589],[157.816,61.3123,154.608],[163.99,69.8337,155.709],[169.818,78.9102,156.892],[175.3,88.5415,158.158],[-6.9e-05,1.25431,-148.189],[12.5975,0.533327,-148.366],[24.439,0.750572,-148.335],[35.5243,1.90604,-148.097],[45.8536,3.99974,-147.651],[55.4268,7.03167,-146.997],[64.244,11.0018,-146.136],[72.305,15.9102,-145.067],[79.61,21.7568,-143.791],[86.1588,28.5417,-142.307],[91.9516,36.2647,-140.615],[96.9883,44.926,-138.716],[101.269,54.5255,-136.609],[104.793,65.0633,-134.294],[107.562,76.5393,-131.772],[109.574,88.9535,-129.042],[110.83,102.306,-126.105],[111.331,116.597,-122.96],[111.075,131.825,-119.607],[110.063,147.993,-116.047],[108.295,165.098,-112.279],[-6.9e-05,1.25431,-138.309],[12.5558,0.527329,-138.475],[24.3712,0.726579,-138.447],[35.4463,1.85206,-138.224],[45.7809,3.90377,-137.807],[55.3751,6.88172,-137.197],[64.2289,10.7859,-136.392],[72.3422,15.6163,-135.393],[79.7151,21.3729,-134.2],[86.3477,28.0558,-132.813],[92.2398,35.6649,-131.231],[97.3915,44.2002,-129.456],[101.803,53.6618,-127.486],[105.474,64.0496,-125.323],[108.404,75.3636,-122.965],[110.594,87.6039,-120.413],[112.044,100.77,-117.667],[112.753,114.863,-114.727],[112.722,129.882,-111.593],[111.95,145.827,-108.265],[110.438,162.699,-104.743],[-6.9e-05,1.25431,-128.429],[12.5157,0.521303,-128.585],[24.3066,0.702478,-128.559],[35.3726,1.79783,-128.352],[45.7138,3.80737,-127.964],[55.33,6.73109,-127.394],[64.2214,10.569,-126.643],[72.3878,15.3211,-125.712],[79.8294,20.9873,-124.598],[86.5461,27.5678,-123.304],[92.5379,35.0624,-121.828],[97.8048,43.4712,-120.172],[102.347,52.7942,-118.333],[106.164,63.0313,-116.314],[109.256,74.1827,-114.114],[111.624,86.2482,-111.732],[113.266,99.2279,-109.169],[114.184,113.122,-106.425],[114.377,127.93,-103.499],[113.844,143.652,-100.393],[112.587,160.289,-97.1046],[-6.9e-05,1.25431,-118.548],[12.4772,0.515252,-118.694],[24.2451,0.67827,-118.672],[35.3034,1.74337,-118.48],[45.6522,3.71054,-118.119],[55.2916,6.57979,-117.59],[64.2215,10.3511,-116.891],[72.4418,15.0245,-116.023],[79.9527,20.6,-114.987],[86.7541,27.0775,-113.781],[92.846,34.4572,-112.406],[98.2284,42.7389,-110.863],[102.901,51.9227,-109.15],[106.865,62.0085,-107.268],[110.119,72.9965,-105.218],[112.663,84.8865,-102.998],[114.498,97.6786,-100.609],[115.624,111.373,-98.0515],[116.04,125.969,-95.3248],[115.746,141.467,-92.4291],[114.743,157.868,-89.3645],[-6.9e-05,1.25431,-108.666],[12.4404,0.509173,-108.805],[24.1866,0.653955,-108.786],[35.2386,1.68866,-108.609],[45.5964,3.61327,-108.275],[55.2599,6.42781,-107.783],[64.2292,10.1323,-107.135],[72.5042,14.7266,-106.328],[80.0851,20.2109,-105.365],[86.9717,26.5852,-104.244],[93.164,33.8493,-102.965],[98.6622,42.0033,-101.529],[103.466,51.0473,-99.9358],[107.576,60.9812,-98.1851],[110.991,71.805,-96.2769],[113.712,83.5187,-94.2114],[115.739,96.1224,-91.9884],[117.072,109.616,-89.608],[117.711,123.999,-87.0702],[117.655,139.273,-84.375],[116.905,155.436,-81.5224],[-6.9e-05,1.25431,-98.7841],[12.4051,0.503067,-98.9153],[24.1312,0.629532,-98.9],[35.1782,1.6337,-98.7383],[45.5461,3.51558,-98.4301],[55.2349,6.27517,-97.9754],[64.2445,9.91246,-97.3742],[72.5751,14.4275,-96.6266],[80.2265,19.8202,-95.7324],[87.1988,26.0906,-94.6919],[93.492,33.2387,-93.5048],[99.1061,41.2645,-92.1713],[104.041,50.1681,-90.6913],[108.297,59.9493,-89.0648],[111.874,70.6083,-87.2919],[114.771,82.1449,-85.3725],[116.99,94.5593,-83.3066],[118.529,107.851,-81.0942],[119.39,122.021,-78.7354],[119.571,137.069,-76.2301],[119.073,152.994,-73.5783],[-6.9e-05,1.25431,-88.901],[12.3715,0.496934,-89.0263],[24.0789,0.605001,-89.0153],[35.1223,1.57851,-88.8682],[45.5014,3.41746,-88.5849],[55.2165,6.12185,-88.1654],[64.2675,9.69169,-87.6098],[72.6543,14.127,-86.918],[80.377,19.4277,-86.0899],[87.4355,25.5938,-85.1258],[93.83,32.6254,-84.0254],[99.5603,40.5225,-82.7889],[104.626,49.285,-81.4162],[109.029,58.9129,-79.9073],[112.766,69.4063,-78.2623],[115.84,80.7651,-76.481],[118.25,92.9894,-74.5636],[119.996,106.079,-72.5101],[121.077,120.034,-70.3203],[121.494,134.855,-67.9944],[121.247,150.541,-65.5323],[-6.9e-05,1.25431,-79.0173],[12.3395,0.490774,-79.1376],[24.0297,0.580362,-79.1314],[35.0707,1.52307,-78.9987],[45.4624,3.31891,-78.7394],[55.2049,5.96786,-78.3537],[64.298,9.46994,-77.8414],[72.7419,13.8251,-77.2025],[80.5365,19.0335,-76.4372],[87.6818,25.0949,-75.5453],[94.1778,32.0095,-74.5269],[100.025,39.7772,-73.382],[105.222,48.398,-72.1106],[109.77,57.8719,-70.7127],[113.669,68.199,-69.1882],[116.919,79.3792,-67.5372],[119.519,91.4125,-65.7597],[121.47,104.299,-63.8556],[122.772,118.038,-61.825],[123.425,132.631,-59.6679],[123.428,148.077,-57.3843],[-6.9e-05,1.25431,-69.1328],[12.3091,0.484588,-69.2493],[23.9836,0.555617,-69.2483],[35.0236,1.4674,-69.1297],[45.429,3.21992,-68.8936],[55.1999,5.8132,-68.54],[64.3362,9.24723,-68.0689],[72.8379,13.522,-67.4803],[80.7051,18.6375,-66.7742],[87.9377,24.5938,-65.9505],[94.5357,31.3908,-65.0094],[100.499,39.0286,-63.9507],[105.828,47.5072,-62.7745],[110.522,56.8264,-61.4808],[114.582,66.9865,-60.0696],[118.007,77.9872,-58.5408],[120.798,89.8288,-56.8946],[122.954,102.511,-55.1308],[124.476,116.034,-53.2495],[125.363,130.398,-51.2507],[125.615,145.602,-49.1344],[-6.9e-05,1.25431,-59.2477],[12.2802,0.478375,-59.3614],[23.9406,0.530764,-59.3659],[34.9809,1.41148,-59.2613],[45.4012,3.12051,-59.0475],[55.2016,5.65787,-58.7246],[64.382,9.02355,-58.2925],[72.9423,13.2176,-57.7513],[80.8827,18.2399,-57.1009],[88.2031,24.0905,-56.3414],[94.9035,30.7695,-55.4727],[100.984,38.2768,-54.4949],[106.444,46.6124,-53.4079],[111.285,55.7764,-52.2117],[115.505,65.7687,-50.9064],[119.106,76.5892,-49.492],[122.086,88.2382,-47.9684],[124.446,100.715,-46.3357],[126.187,114.021,-44.5938],[127.307,128.155,-42.7427],[127.808,143.117,-40.7825],[-6.9e-05,1.25431,-49.3618],[12.253,0.472135,-49.4738],[23.9006,0.505803,-49.4843],[34.9426,1.35531,-49.3934],[45.3791,3.02067,-49.2011],[55.21,5.50186,-48.9073],[64.4353,8.79891,-48.5121],[73.0552,12.9118,-48.0155],[81.0694,17.8405,-47.4174],[88.4781,23.5851,-46.7179],[95.2812,30.1455,-45.917],[101.479,37.5217,-45.0146],[107.071,45.7139,-44.0108],[112.057,54.7218,-42.9055],[116.438,64.5456,-41.6989],[120.214,75.1852,-40.3907],[123.383,86.6407,-38.9812],[125.948,98.912,-37.4702],[127.906,111.999,-35.8578],[129.26,125.902,-34.144],[130.007,140.621,-32.3287],[-6.9e-05,1.25431,-39.4753],[12.2275,0.465868,-39.5866],[23.8637,0.480735,-39.6035],[34.9088,1.29891,-39.5261],[45.3625,2.9204,-39.3543],[55.2251,5.34519,-39.0882],[64.4964,8.57329,-38.7277],[73.1764,12.6047,-38.2728],[81.2651,17.4394,-37.7236],[88.7626,23.0774,-37.08],[95.6689,29.5188,-36.3421],[101.984,36.7634,-35.5098],[107.708,44.8114,-34.5831],[112.84,53.6626,-33.5621],[117.381,63.3172,-32.4467],[121.331,73.7751,-31.237],[124.69,85.0363,-29.9329],[127.458,97.1008,-28.5344],[129.634,109.969,-27.0416],[131.219,123.64,-25.4544],[132.213,138.114,-23.7729],[-6.9e-05,1.25431,-29.5881],[12.2035,0.459574,-29.6998],[23.83,0.455559,-29.7235],[34.8793,1.24226,-29.6594],[45.3516,2.81969,-29.5073],[55.2468,5.18784,-29.2672],[64.565,8.34671,-28.9393],[73.306,12.2963,-28.5234],[81.4699,17.0366,-28.0195],[89.0568,22.5676,-27.4278],[96.0666,28.8894,-26.7481],[102.499,36.0019,-25.9805],[108.355,43.9051,-25.125],[113.633,52.599,-24.1815],[118.335,62.0836,-23.1501],[122.459,72.359,-22.0308],[126.006,83.4251,-20.8235],[128.977,95.2819,-19.5283],[131.37,107.929,-18.1452],[133.186,121.368,-16.6741],[134.424,135.597,-15.1152],[-6.9e-05,1.25431,-19.7002],[12.1811,0.453253,-19.8133],[23.7993,0.430275,-19.8443],[34.8543,1.18538,-19.7932],[45.3463,2.71856,-19.6599],[55.2753,5.02982,-19.4444],[64.6412,8.11916,-19.1468],[73.444,11.9866,-18.7671],[81.6838,16.6321,-18.3053],[89.3605,22.0557,-17.7612],[96.4742,28.2573,-17.1351],[103.025,35.237,-16.4268],[109.012,42.9949,-15.6363],[114.437,51.5307,-14.7637],[119.298,60.8447,-13.809],[123.597,70.9368,-12.7721],[127.332,81.8069,-11.653],[130.504,93.4551,-10.4519],[133.113,105.881,-9.16855],[135.159,119.086,-7.80309],[136.642,133.068,-6.35547],[-6.9e-05,1.25431,-9.81157],[12.1604,0.446905,-9.92722],[23.7716,0.404884,-9.96588],[34.8337,1.12825,-9.92754],[45.3467,2.617,-9.81216],[55.3104,4.87113,-9.6198],[64.725,7.89064,-9.35045],[73.5904,11.6755,-9.00407],[81.9067,16.2258,-8.58069],[89.6738,21.5415,-8.08031],[96.8917,27.6225,-7.50293],[103.56,34.469,-6.84854],[109.68,42.0808,-6.11714],[115.25,50.458,-5.30875],[120.272,59.6006,-4.42334],[124.744,69.5086,-3.46094],[128.667,80.1819,-2.42152],[132.04,91.6206,-1.3051],[134.865,103.825,-0.111694],[137.14,116.794,1.15874],[138.867,130.529,2.50615],[-6.9e-05,1.25431,0.077713],[12.1412,0.44053,-0.041489],[23.7471,0.379386,-0.088242],[34.8176,1.07088,-0.062439],[45.3526,2.515,0.035858],[55.3523,4.71176,0.206665],[64.8165,7.66116,0.449982],[73.7453,11.3632,0.765793],[82.1387,15.8178,1.15414],[89.9966,21.0251,1.61498],[97.3192,26.9851,2.14832],[104.106,33.6976,2.75417],[110.358,41.1629,3.43253],[116.074,49.3807,4.18343],[121.255,58.3512,5.00679],[125.901,68.0743,5.90269],[130.011,78.55,6.87108],[133.586,89.7784,7.91199],[136.625,101.759,9.02541],[139.129,114.493,10.2113],[141.097,127.979,11.4697],[-6.9e-05,1.25431,9.9677],[12.1237,0.434129,9.84384],[23.7257,0.35378,9.78862],[34.8058,1.01326,9.80209],[45.3642,2.41258,9.8842],[55.4008,4.55172,10.035],[64.9155,7.4307,10.2544],[73.9085,11.0495,10.5425],[82.3797,15.4082,10.8992],[90.3291,20.5066,11.3246],[97.7566,26.3449,11.8187],[104.662,32.9231,12.3814],[111.046,40.241,13.0127],[116.909,48.2988,13.7128],[122.249,57.0965,14.4814],[127.068,66.6339,15.3188],[131.364,76.9112,16.2248],[135.139,87.9284,17.1994],[138.393,99.6853,18.2427],[141.124,112.182,19.3547],[143.334,125.419,20.5353],[-6.9e-05,1.25431,19.8584],[12.1078,0.427701,19.7288],[23.7073,0.328067,19.6647],[34.7985,0.955408,19.6661],[45.3814,2.30972,19.7329],[55.4559,4.39102,19.8651],[65.0222,7.19928,20.0628],[74.0801,10.7345,20.3259],[82.6297,14.9967,20.6546],[90.6711,19.9859,21.0486],[98.204,25.7021,21.5081],[105.229,32.1452,22.033],[111.745,39.3154,22.6234],[117.753,47.2124,23.2793],[123.253,55.8365,24.0006],[128.244,65.1876,24.7873],[132.727,75.2656,25.6395],[136.702,86.0706,26.5572],[140.169,97.6025,27.5403],[143.127,109.861,28.5888],[145.576,122.847,29.7028],[-6.9e-05,1.25431,29.7498],[12.0935,0.421245,29.6135],[23.692,0.302246,29.54],[34.7956,0.897311,29.5295],[45.4042,2.20644,29.5819],[55.5178,4.22964,29.6971],[65.1365,6.96689,29.8752],[74.2602,10.4182,30.1162],[82.8889,14.5836,30.4202],[91.0226,19.4631,30.7869],[98.6614,25.0566,31.2166],[105.805,31.3642,31.7092],[112.454,38.3858,32.2646],[118.608,46.1215,32.883],[124.267,54.5713,33.5643],[129.431,63.7351,34.3084],[134.1,73.613,35.1154],[138.274,84.205,35.9853],[141.953,95.511,36.918],[145.137,107.531,37.9137],[147.826,120.265,38.9723],[-6.9e-05,1.25431,39.6418],[12.0808,0.414763,39.4977],[23.6798,0.276317,39.4145],[34.7971,0.838972,39.3923],[45.4326,2.10273,39.4312],[55.5864,4.06758,39.5309],[65.2584,6.73354,39.6917],[74.4486,10.1006,39.9133],[83.1571,14.1688,40.196],[91.3838,18.938,40.5397],[99.1287,24.4084,40.9442],[106.392,30.5798,41.4099],[113.173,37.4524,41.9364],[119.473,45.026,42.5239],[125.291,53.3008,43.1724],[130.627,62.2766,43.8819],[135.481,71.9536,44.6523],[139.854,82.3317,45.4837],[143.745,93.4108,46.3761],[147.154,105.191,47.3294],[150.081,117.672,48.3437],[-6.9e-05,1.25431,49.5345],[12.0697,0.408254,49.3816],[23.6707,0.250282,49.2883],[34.803,0.780391,49.2547],[45.4667,1.99858,49.2808],[55.6616,3.90486,49.3666],[65.3879,6.49921,49.512],[74.6454,9.78165,49.7172],[83.4343,13.7522,49.9821],[91.7545,18.4108,50.3067],[99.6059,23.7575,50.691],[106.989,29.7922,51.135],[113.903,36.5151,51.6386],[120.348,43.926,52.202],[126.325,52.025,52.8251],[131.833,60.8121,53.5078],[136.872,70.2873,54.2503],[141.443,80.4506,55.0524],[145.545,91.3019,55.9143],[149.178,102.841,56.8358],[152.342,115.069,57.817],[-6.9e-05,1.25431,59.428],[12.0602,0.401718,59.265],[23.6647,0.224138,59.1612],[34.8134,0.721568,59.1164],[45.5063,1.89401,59.1307],[55.7435,3.74146,59.204],[65.525,6.26392,59.3364],[74.8507,9.46139,59.528],[83.7206,13.3339,59.7785],[92.1347,17.8814,60.0881],[100.093,23.1039,60.4568],[107.596,29.0014,60.8846],[114.643,35.5739,61.3714],[121.234,42.8214,61.9173],[127.369,50.744,62.5222],[133.049,59.3416,63.1862],[138.273,68.6141,63.9093],[143.041,78.5617,64.6915],[147.353,89.1843,65.5327],[151.209,100.482,66.433],[154.61,112.454,67.3924],[-6.9e-05,1.25431,69.3221],[12.0523,0.395156,69.1482],[23.6617,0.197887,69.0334],[34.8282,0.662503,68.9776],[45.5516,1.789,68.981],[55.8322,3.57739,69.0434],[65.6697,6.02766,69.1649],[75.0643,9.13982,69.3455],[84.0159,12.9139,69.5852],[92.5246,17.3498,69.8839],[100.59,22.4476,70.2417],[108.213,28.2073,70.6586],[115.393,34.6289,71.1346],[122.13,41.7123,71.6697],[128.423,49.4577,72.2639],[134.274,57.8649,72.9172],[139.682,66.9341,73.6295],[144.647,76.6651,74.4009],[149.169,87.0579,75.2314],[153.248,98.1127,76.121],[156.884,109.829,77.0697],[-6.9e-05,1.25431,79.2169],[12.046,0.388566,79.031],[23.6619,0.171528,78.9047],[34.8474,0.603196,78.8382],[45.6026,1.68357,78.8315],[55.9275,3.41265,78.8845],[65.8221,5.79044,78.9973],[75.2863,8.81693,79.1698],[84.3203,12.4921,79.4021],[92.924,16.816,79.694],[101.097,21.7886,80.0457],[108.84,27.4099,80.4572],[116.153,33.68,80.9284],[123.036,40.5987,81.4594],[129.488,48.1661,82.0501],[135.51,56.3823,82.7005],[141.101,65.2471,83.4107],[146.263,74.7607,84.1806],[150.993,84.9229,85.0103],[155.294,95.7339,85.8997],[159.164,107.194,86.8489],[-6.9e-05,1.25431,89.1124],[12.0414,0.381949,88.9134],[23.6651,0.145062,88.7754],[34.871,0.543648,88.6984],[45.6591,1.57771,88.6824],[56.0294,3.24724,88.7275],[65.982,5.55224,88.8337],[75.5168,8.49272,89.0009],[84.6338,12.0687,89.2292],[93.333,16.2801,89.5185],[101.614,21.127,89.8689],[109.478,26.6093,90.2803],[116.924,32.7272,90.7527],[123.952,39.4805,91.2862],[130.562,46.8693,91.8808],[136.755,54.8936,92.5364],[142.53,63.5533,93.253],[147.887,72.8485,94.0307],[152.826,82.7792,94.8694],[157.347,93.3453,95.7692],[161.451,104.547,96.7301],[-6.9e-05,1.25431,99.0087],[12.0384,0.375306,98.7954],[23.6714,0.118488,98.6451],[34.899,0.483857,98.5579],[45.7213,1.47141,98.5337],[56.1381,3.08115,98.5724],[66.1496,5.31308,98.6742],[75.7556,8.16719,98.8389],[84.9563,11.6435,99.0666],[93.7516,15.742,99.3574],[102.141,20.4626,99.7111],[110.126,25.8055,100.128],[117.705,31.7705,100.608],[124.879,38.3578,101.15],[131.647,45.5672,101.756],[138.01,53.3988,102.425],[143.967,61.8526,103.156],[149.52,70.9285,103.951],[154.666,80.6267,104.809],[159.408,90.947,105.73],[163.744,101.89,106.713],[-6.9e-05,1.25431,108.906],[12.0369,0.368636,108.677],[23.6808,0.091807,108.514],[34.9315,0.423824,108.417],[45.789,1.36469,108.385],[56.2535,2.91439,108.419],[66.3247,5.07295,108.519],[76.0029,7.84035,108.684],[85.2878,11.2166,108.914],[94.1797,15.2017,109.211],[102.678,19.7956,109.572],[110.784,24.9984,110],[118.496,30.81,110.493],[125.816,37.2305,111.051],[132.742,44.2598,111.676],[139.275,51.898,112.365],[145.415,60.145,113.121],[151.161,69.0008,113.942],[156.515,78.4655,114.828],[161.475,88.5391,115.781],[166.042,99.2214,116.798],[-6.9e-05,1.25431,118.803],[12.0371,0.361939,118.558],[23.6932,0.065019,118.382],[34.9684,0.36355,118.275],[45.8624,1.25753,118.237],[56.3755,2.74696,118.268],[66.5075,4.83185,118.367],[76.2585,7.51218,118.535],[85.6285,10.788,118.772],[94.6174,14.6592,119.078],[103.225,19.1259,119.453],[111.452,24.188,119.896],[119.298,29.8456,120.409],[126.763,36.0987,120.99],[133.847,42.9472,121.64],[140.549,50.3911,122.359],[146.871,58.4305,123.146],[152.812,67.0653,124.003],[158.371,76.2956,124.928],[163.55,86.1214,125.922],[168.348,96.5426,126.985],[-6.9e-05,1.25431,128.701],[12.0389,0.355215,128.439],[23.7088,0.038123,128.25],[35.0097,0.303034,128.133],[45.9415,1.14995,128.089],[56.5042,2.57886,128.118],[66.6979,4.58978,128.219],[76.5225,7.18271,128.394],[85.9781,10.3576,128.64],[95.0647,14.1146,128.96],[103.782,18.4535,129.352],[112.131,23.3744,129.817],[120.11,28.8774,130.355],[127.72,34.9623,130.965],[134.962,41.6292,131.649],[141.834,48.8782,132.404],[148.337,56.7091,133.233],[154.471,65.1221,134.134],[160.236,74.117,135.108],[165.632,83.694,136.155],[170.659,93.853,137.274],[-6.9e-05,1.25431,138.6],[12.0423,0.348464,138.32],[23.7274,0.011119,138.117],[35.0554,0.242275,137.99],[46.0261,1.04193,137.942],[56.6396,2.41009,137.97],[66.8959,4.34675,138.076],[76.795,6.85191,138.259],[86.3369,9.92557,138.519],[95.5215,13.5677,138.856],[104.349,17.7784,139.271],[112.819,22.5576,139.763],[120.932,27.9052,140.332],[128.688,33.8214,140.978],[136.087,40.3061,141.702],[143.128,47.3592,142.503],[149.812,54.9809,143.381],[156.139,63.1711,144.336],[162.109,71.9297,145.368],[167.721,81.2569,146.478],[172.977,91.1526,147.665],[-6.9e-05,1.25431,148.5],[12.0473,0.341686,148.2],[23.7492,-0.015992,147.982],[35.1055,0.181275,147.847],[46.1164,0.933488,147.794],[56.7817,2.24065,147.824],[67.1015,4.10275,147.936],[77.0758,6.5198,148.131],[86.7046,9.49179,148.408],[95.9879,13.0187,148.767],[104.926,17.1006,149.209],[113.518,21.7375,149.733],[121.765,26.9292,150.339],[129.666,32.6759,151.028],[137.222,38.9776,151.799],[144.432,45.8342,152.653],[151.297,53.2458,153.589],[157.816,61.2123,154.608],[163.99,69.7337,155.709],[169.818,78.8101,156.892],[175.3,88.4415,158.158]],
+ "name": "ffd"
+ },{
+ "vertices": [[-6.9e-05,0.049026,-148.5],[10.4999,0.049026,-148.5],[20.9999,0.049026,-148.5],[31.4999,0.049026,-148.5],[41.9999,0.049026,-148.5],[52.4999,0.049026,-148.5],[62.9999,0.049026,-148.5],[73.4999,0.049026,-148.5],[83.9999,0.049026,-148.5],[94.4999,0.049026,-148.5],[105,0.049026,-148.5],[115.5,0.049026,-148.5],[126,0.049026,-148.5],[136.5,0.049026,-148.5],[147,0.049026,-148.5],[157.5,0.049026,-148.5],[168,0.049026,-148.5],[178.5,0.049026,-148.5],[189,0.049026,-148.5],[199.5,0.049026,-148.5],[210,0.049026,-148.5],[-6.9e-05,0.049026,-138.6],[10.4999,0.049026,-138.6],[20.9999,0.049026,-138.6],[31.4999,0.049026,-138.6],[41.9999,0.049026,-138.6],[52.4999,0.049026,-138.6],[62.9999,0.049026,-138.6],[73.4999,0.049026,-138.6],[83.9999,0.049026,-138.6],[94.4999,0.049026,-138.6],[105,0.049026,-138.6],[115.5,0.049026,-138.6],[126,0.049026,-138.6],[136.5,0.049026,-138.6],[147,0.049026,-138.6],[157.5,0.049026,-138.6],[168,0.049026,-138.6],[178.5,0.049026,-138.6],[189,0.049026,-138.6],[199.5,0.049026,-138.6],[210,0.049026,-138.6],[-6.9e-05,0.049026,-128.7],[10.4999,0.049026,-128.7],[20.9999,0.049026,-128.7],[31.4999,0.049026,-128.7],[41.9999,0.049026,-128.7],[52.4999,0.049026,-128.7],[62.9999,0.049026,-128.7],[73.4999,0.049026,-128.7],[83.9999,0.049026,-128.7],[94.4999,0.049026,-128.7],[105,0.049026,-128.7],[115.5,0.049026,-128.7],[126,0.049026,-128.7],[136.5,0.049026,-128.7],[147,0.049026,-128.7],[157.5,0.049026,-128.7],[168,0.049026,-128.7],[178.5,0.049026,-128.7],[189,0.049026,-128.7],[199.5,0.049026,-128.7],[210,0.049026,-128.7],[-6.9e-05,0.049026,-118.8],[10.4999,0.049026,-118.8],[20.9999,0.049026,-118.8],[31.4999,0.049026,-118.8],[41.9999,0.049026,-118.8],[52.4999,0.049026,-118.8],[62.9999,0.049026,-118.8],[73.4999,0.049026,-118.8],[83.9999,0.049026,-118.8],[94.4999,0.049026,-118.8],[105,0.049026,-118.8],[115.5,0.049026,-118.8],[126,0.049026,-118.8],[136.5,0.049026,-118.8],[147,0.049026,-118.8],[157.5,0.049026,-118.8],[168,0.049026,-118.8],[178.5,0.049026,-118.8],[189,0.049026,-118.8],[199.5,0.049026,-118.8],[210,0.049026,-118.8],[-6.9e-05,0.049026,-108.9],[10.4999,0.049026,-108.9],[20.9999,0.049026,-108.9],[31.4999,0.049026,-108.9],[41.9999,0.049026,-108.9],[52.4999,0.049026,-108.9],[62.9999,0.049026,-108.9],[73.4999,0.049026,-108.9],[83.9999,0.049026,-108.9],[94.4999,0.049026,-108.9],[105,0.049026,-108.9],[115.5,0.049026,-108.9],[126,0.049026,-108.9],[136.5,0.049026,-108.9],[147,0.049026,-108.9],[157.5,0.049026,-108.9],[168,0.049026,-108.9],[178.5,0.049026,-108.9],[189,0.049026,-108.9],[199.5,0.049026,-108.9],[210,0.049026,-108.9],[-6.9e-05,0.049026,-99],[10.4999,0.049026,-99],[20.9999,0.049026,-99],[31.4999,0.049026,-99],[41.9999,0.049026,-99],[52.4999,0.049026,-99],[62.9999,0.049026,-99],[73.4999,0.049026,-99],[83.9999,0.049026,-99],[94.4999,0.049026,-99],[105,0.049026,-99],[115.5,0.049026,-99],[126,0.049026,-99],[136.5,0.049026,-99],[147,0.049026,-99],[157.5,0.049026,-99],[168,0.049026,-99],[178.5,0.049026,-99],[189,0.049026,-99],[199.5,0.049026,-99],[210,0.049026,-99],[-6.9e-05,0.049026,-89.1],[10.4999,0.049026,-89.1],[20.9999,0.049026,-89.1],[31.4999,0.049026,-89.1],[41.9999,0.049026,-89.1],[52.4999,0.049026,-89.1],[62.9999,0.049026,-89.1],[73.4999,0.049026,-89.1],[83.9999,0.049026,-89.1],[94.4999,0.049026,-89.1],[105,0.049026,-89.1],[115.5,0.049026,-89.1],[126,0.049026,-89.1],[136.5,0.049026,-89.1],[147,0.049026,-89.1],[157.5,0.049026,-89.1],[168,0.049026,-89.1],[178.5,0.049026,-89.1],[189,0.049026,-89.1],[199.5,0.049026,-89.1],[210,0.049026,-89.1],[-6.9e-05,0.049026,-79.2],[10.4999,0.049026,-79.2],[20.9999,0.049026,-79.2],[31.4999,0.049026,-79.2],[41.9999,0.049026,-79.2],[52.4999,0.049026,-79.2],[62.9999,0.049026,-79.2],[73.4999,0.049026,-79.2],[83.9999,0.049026,-79.2],[94.4999,0.049026,-79.2],[105,0.049026,-79.2],[115.5,0.049026,-79.2],[126,0.049026,-79.2],[136.5,0.049026,-79.2],[147,0.049026,-79.2],[157.5,0.049026,-79.2],[168,0.049026,-79.2],[178.5,0.049026,-79.2],[189,0.049026,-79.2],[199.5,0.049026,-79.2],[210,0.049026,-79.2],[-6.9e-05,0.049026,-69.3],[10.4999,0.049026,-69.3],[20.9999,0.049026,-69.3],[31.4999,0.049026,-69.3],[41.9999,0.049026,-69.3],[52.4999,0.049026,-69.3],[62.9999,0.049026,-69.3],[73.4999,0.049026,-69.3],[83.9999,0.049026,-69.3],[94.4999,0.049026,-69.3],[105,0.049026,-69.3],[115.5,0.049026,-69.3],[126,0.049026,-69.3],[136.5,0.049026,-69.3],[147,0.049026,-69.3],[157.5,0.049026,-69.3],[168,0.049026,-69.3],[178.5,0.049026,-69.3],[189,0.049026,-69.3],[199.5,0.049026,-69.3],[210,0.049026,-69.3],[-6.9e-05,0.049026,-59.4],[10.4999,0.049026,-59.4],[20.9999,0.049026,-59.4],[31.4999,0.049026,-59.4],[41.9999,0.049026,-59.4],[52.4999,0.049026,-59.4],[62.9999,0.049026,-59.4],[73.4999,0.049026,-59.4],[83.9999,0.049026,-59.4],[94.4999,0.049026,-59.4],[105,0.049026,-59.4],[115.5,0.049026,-59.4],[126,0.049026,-59.4],[136.5,0.049026,-59.4],[147,0.049026,-59.4],[157.5,0.049026,-59.4],[168,0.049026,-59.4],[178.5,0.049026,-59.4],[189,0.049026,-59.4],[199.5,0.049026,-59.4],[210,0.049026,-59.4],[-6.9e-05,0.049026,-49.5],[10.4999,0.049026,-49.5],[20.9999,0.049026,-49.5],[31.4999,0.049026,-49.5],[41.9999,0.049026,-49.5],[52.4999,0.049026,-49.5],[62.9999,0.049026,-49.5],[73.4999,0.049026,-49.5],[83.9999,0.049026,-49.5],[94.4999,0.049026,-49.5],[105,0.049026,-49.5],[115.5,0.049026,-49.5],[126,0.049026,-49.5],[136.5,0.049026,-49.5],[147,0.049026,-49.5],[157.5,0.049026,-49.5],[168,0.049026,-49.5],[178.5,0.049026,-49.5],[189,0.049026,-49.5],[199.5,0.049026,-49.5],[210,0.049026,-49.5],[-6.9e-05,0.049026,-39.6],[10.4999,0.049026,-39.6],[20.9999,0.049026,-39.6],[31.4999,0.049026,-39.6],[41.9999,0.049026,-39.6],[52.4999,0.049026,-39.6],[62.9999,0.049026,-39.6],[73.4999,0.049026,-39.6],[83.9999,0.049026,-39.6],[94.4999,0.049026,-39.6],[105,0.049026,-39.6],[115.5,0.049026,-39.6],[126,0.049026,-39.6],[136.5,0.049026,-39.6],[147,0.049026,-39.6],[157.5,0.049026,-39.6],[168,0.049026,-39.6],[178.5,0.049026,-39.6],[189,0.049026,-39.6],[199.5,0.049026,-39.6],[210,0.049026,-39.6],[-6.9e-05,0.049026,-29.7],[10.4999,0.049026,-29.7],[20.9999,0.049026,-29.7],[31.4999,0.049026,-29.7],[41.9999,0.049026,-29.7],[52.4999,0.049026,-29.7],[62.9999,0.049026,-29.7],[73.4999,0.049026,-29.7],[83.9999,0.049026,-29.7],[94.4999,0.049026,-29.7],[105,0.049026,-29.7],[115.5,0.049026,-29.7],[126,0.049026,-29.7],[136.5,0.049026,-29.7],[147,0.049026,-29.7],[157.5,0.049026,-29.7],[168,0.049026,-29.7],[178.5,0.049026,-29.7],[189,0.049026,-29.7],[199.5,0.049026,-29.7],[210,0.049026,-29.7],[-6.9e-05,0.049026,-19.8],[10.4999,0.049026,-19.8],[20.9999,0.049026,-19.8],[31.4999,0.049026,-19.8],[41.9999,0.049026,-19.8],[52.4999,0.049026,-19.8],[62.9999,0.049026,-19.8],[73.4999,0.049026,-19.8],[83.9999,0.049026,-19.8],[94.4999,0.049026,-19.8],[105,0.049026,-19.8],[115.5,0.049026,-19.8],[126,0.049026,-19.8],[136.5,0.049026,-19.8],[147,0.049026,-19.8],[157.5,0.049026,-19.8],[168,0.049026,-19.8],[178.5,0.049026,-19.8],[189,0.049026,-19.8],[199.5,0.049026,-19.8],[210,0.049026,-19.8],[-6.9e-05,0.049026,-9.9],[10.4999,0.049026,-9.9],[20.9999,0.049026,-9.9],[31.4999,0.049026,-9.9],[41.9999,0.049026,-9.9],[52.4999,0.049026,-9.9],[62.9999,0.049026,-9.9],[73.4999,0.049026,-9.9],[83.9999,0.049026,-9.9],[94.4999,0.049026,-9.9],[105,0.049026,-9.9],[115.5,0.049026,-9.9],[126,0.049026,-9.9],[136.5,0.049026,-9.9],[147,0.049026,-9.9],[157.5,0.049026,-9.9],[168,0.049026,-9.9],[178.5,0.049026,-9.9],[189,0.049026,-9.9],[199.5,0.049026,-9.9],[210,0.049026,-9.9],[-6.9e-05,0.049026,-0],[10.4999,0.049026,-0],[20.9999,0.049026,-0],[31.4999,0.049026,-0],[41.9999,0.049026,-0],[52.4999,0.049026,-0],[62.9999,0.049026,-0],[73.4999,0.049026,-0],[83.9999,0.049026,-0],[94.4999,0.049026,-0],[105,0.049026,-0],[115.5,0.049026,-0],[126,0.049026,-0],[136.5,0.049026,-0],[147,0.049026,-0],[157.5,0.049026,-0],[168,0.049026,-0],[178.5,0.049026,-0],[189,0.049026,-0],[199.5,0.049026,-0],[210,0.049026,-0],[-6.9e-05,0.049026,9.9],[10.4999,0.049026,9.9],[20.9999,0.049026,9.9],[31.4999,0.049026,9.9],[41.9999,0.049026,9.9],[52.4999,0.049026,9.9],[62.9999,0.049026,9.9],[73.4999,0.049026,9.9],[83.9999,0.049026,9.9],[94.4999,0.049026,9.9],[105,0.049026,9.9],[115.5,0.049026,9.9],[126,0.049026,9.9],[136.5,0.049026,9.9],[147,0.049026,9.9],[157.5,0.049026,9.9],[168,0.049026,9.9],[178.5,0.049026,9.9],[189,0.049026,9.9],[199.5,0.049026,9.9],[210,0.049026,9.9],[-6.9e-05,0.049026,19.8],[10.4999,0.049026,19.8],[20.9999,0.049026,19.8],[31.4999,0.049026,19.8],[41.9999,0.049026,19.8],[52.4999,0.049026,19.8],[62.9999,0.049026,19.8],[73.4999,0.049026,19.8],[83.9999,0.049026,19.8],[94.4999,0.049026,19.8],[105,0.049026,19.8],[115.5,0.049026,19.8],[126,0.049026,19.8],[136.5,0.049026,19.8],[147,0.049026,19.8],[157.5,0.049026,19.8],[168,0.049026,19.8],[178.5,0.049026,19.8],[189,0.049026,19.8],[199.5,0.049026,19.8],[210,0.049026,19.8],[-6.9e-05,0.049026,29.7],[10.4999,0.049026,29.7],[20.9999,0.049026,29.7],[31.4999,0.049026,29.7],[41.9999,0.049026,29.7],[52.4999,0.049026,29.7],[62.9999,0.049026,29.7],[73.4999,0.049026,29.7],[83.9999,0.049026,29.7],[94.4999,0.049026,29.7],[105,0.049026,29.7],[115.5,0.049026,29.7],[126,0.049026,29.7],[136.5,0.049026,29.7],[147,0.049026,29.7],[157.5,0.049026,29.7],[168,0.049026,29.7],[178.5,0.049026,29.7],[189,0.049026,29.7],[199.5,0.049026,29.7],[210,0.049026,29.7],[-6.9e-05,0.049026,39.6],[10.4999,0.049026,39.6],[20.9999,0.049026,39.6],[31.4999,0.049026,39.6],[41.9999,0.049026,39.6],[52.4999,0.049026,39.6],[62.9999,0.049026,39.6],[73.4999,0.049026,39.6],[83.9999,0.049026,39.6],[94.4999,0.049026,39.6],[105,0.049026,39.6],[115.5,0.049026,39.6],[126,0.049026,39.6],[136.5,0.049026,39.6],[147,0.049026,39.6],[157.5,0.049026,39.6],[168,0.049026,39.6],[178.5,0.049026,39.6],[189,0.049026,39.6],[199.5,0.049026,39.6],[210,0.049026,39.6],[-6.9e-05,0.049026,49.5],[10.4999,0.049026,49.5],[20.9999,0.049026,49.5],[31.4999,0.049026,49.5],[41.9999,0.049026,49.5],[52.4999,0.049026,49.5],[62.9999,0.049026,49.5],[73.4999,0.049026,49.5],[83.9999,0.049026,49.5],[94.4999,0.049026,49.5],[105,0.049026,49.5],[115.5,0.049026,49.5],[126,0.049026,49.5],[136.5,0.049026,49.5],[147,0.049026,49.5],[157.5,0.049026,49.5],[168,0.049026,49.5],[178.5,0.049026,49.5],[189,0.049026,49.5],[199.5,0.049026,49.5],[210,0.049026,49.5],[-6.9e-05,0.049026,59.4],[10.4999,0.049026,59.4],[20.9999,0.049026,59.4],[31.4999,0.049026,59.4],[41.9999,0.049026,59.4],[52.4999,0.049026,59.4],[62.9999,0.049026,59.4],[73.4999,0.049026,59.4],[83.9999,0.049026,59.4],[94.4999,0.049026,59.4],[105,0.049026,59.4],[115.5,0.049026,59.4],[126,0.049026,59.4],[136.5,0.049026,59.4],[147,0.049026,59.4],[157.5,0.049026,59.4],[168,0.049026,59.4],[178.5,0.049026,59.4],[189,0.049026,59.4],[199.5,0.049026,59.4],[210,0.049026,59.4],[-6.9e-05,0.049026,69.3],[10.4999,0.049026,69.3],[20.9999,0.049026,69.3],[31.4999,0.049026,69.3],[41.9999,0.049026,69.3],[52.4999,0.049026,69.3],[62.9999,0.049026,69.3],[73.4999,0.049026,69.3],[83.9999,0.049026,69.3],[94.4999,0.049026,69.3],[105,0.049026,69.3],[115.5,0.049026,69.3],[126,0.049026,69.3],[136.5,0.049026,69.3],[147,0.049026,69.3],[157.5,0.049026,69.3],[168,0.049026,69.3],[178.5,0.049026,69.3],[189,0.049026,69.3],[199.5,0.049026,69.3],[210,0.049026,69.3],[-6.9e-05,0.049026,79.2],[10.4999,0.049026,79.2],[20.9999,0.049026,79.2],[31.4999,0.049026,79.2],[41.9999,0.049026,79.2],[52.4999,0.049026,79.2],[62.9999,0.049026,79.2],[73.4999,0.049026,79.2],[83.9999,0.049026,79.2],[94.4999,0.049026,79.2],[105,0.049026,79.2],[115.5,0.049026,79.2],[126,0.049026,79.2],[136.5,0.049026,79.2],[147,0.049026,79.2],[157.5,0.049026,79.2],[168,0.049026,79.2],[178.5,0.049026,79.2],[189,0.049026,79.2],[199.5,0.049026,79.2],[210,0.049026,79.2],[-6.9e-05,0.049026,89.1],[10.4999,0.049026,89.1],[20.9999,0.049026,89.1],[31.4999,0.049026,89.1],[41.9999,0.049026,89.1],[52.4999,0.049026,89.1],[62.9999,0.049026,89.1],[73.4999,0.049026,89.1],[83.9999,0.049026,89.1],[94.4999,0.049026,89.1],[105,0.049026,89.1],[115.5,0.049026,89.1],[126,0.049026,89.1],[136.5,0.049026,89.1],[147,0.049026,89.1],[157.5,0.049026,89.1],[168,0.049026,89.1],[178.5,0.049026,89.1],[189,0.049026,89.1],[199.5,0.049026,89.1],[210,0.049026,89.1],[-6.9e-05,0.049026,99],[10.4999,0.049026,99],[20.9999,0.049026,99],[31.4999,0.049026,99],[41.9999,0.049026,99],[52.4999,0.049026,99],[62.9999,0.049026,99],[73.4999,0.049026,99],[83.9999,0.049026,99],[94.4999,0.049026,99],[105,0.049026,99],[115.5,0.049026,99],[126,0.049026,99],[136.5,0.049026,99],[147,0.049026,99],[157.5,0.049026,99],[168,0.049026,99],[178.5,0.049026,99],[189,0.049026,99],[199.5,0.049026,99],[210,0.049026,99],[-6.9e-05,0.049026,108.9],[10.4999,0.049026,108.9],[20.9999,0.049026,108.9],[31.4999,0.049026,108.9],[41.9999,0.049026,108.9],[52.4999,0.049026,108.9],[62.9999,0.049026,108.9],[73.4999,0.049026,108.9],[83.9999,0.049026,108.9],[94.4999,0.049026,108.9],[105,0.049026,108.9],[115.5,0.049026,108.9],[126,0.049026,108.9],[136.5,0.049026,108.9],[147,0.049026,108.9],[157.5,0.049026,108.9],[168,0.049026,108.9],[178.5,0.049026,108.9],[189,0.049026,108.9],[199.5,0.049026,108.9],[210,0.049026,108.9],[-6.9e-05,0.049026,118.8],[10.4999,0.049026,118.8],[20.9999,0.049026,118.8],[31.4999,0.049026,118.8],[41.9999,0.049026,118.8],[52.4999,0.049026,118.8],[62.9999,0.049026,118.8],[73.4999,0.049026,118.8],[83.9999,0.049026,118.8],[94.4999,0.049026,118.8],[105,0.049026,118.8],[115.5,0.049026,118.8],[126,0.049026,118.8],[136.5,0.049026,118.8],[147,0.049026,118.8],[157.5,0.049026,118.8],[168,0.049026,118.8],[178.5,0.049026,118.8],[189,0.049026,118.8],[199.5,0.049026,118.8],[210,0.049026,118.8],[-6.9e-05,0.049026,128.7],[10.4999,0.049026,128.7],[20.9999,0.049026,128.7],[31.4999,0.049026,128.7],[41.9999,0.049026,128.7],[52.4999,0.049026,128.7],[62.9999,0.049026,128.7],[73.4999,0.049026,128.7],[83.9999,0.049026,128.7],[94.4999,0.049026,128.7],[105,0.049026,128.7],[115.5,0.049026,128.7],[126,0.049026,128.7],[136.5,0.049026,128.7],[147,0.049026,128.7],[157.5,0.049026,128.7],[168,0.049026,128.7],[178.5,0.049026,128.7],[189,0.049026,128.7],[199.5,0.049026,128.7],[210,0.049026,128.7],[-6.9e-05,0.049026,138.6],[10.4999,0.049026,138.6],[20.9999,0.049026,138.6],[31.4999,0.049026,138.6],[41.9999,0.049026,138.6],[52.4999,0.049026,138.6],[62.9999,0.049026,138.6],[73.4999,0.049026,138.6],[83.9999,0.049026,138.6],[94.4999,0.049026,138.6],[105,0.049026,138.6],[115.5,0.049026,138.6],[126,0.049026,138.6],[136.5,0.049026,138.6],[147,0.049026,138.6],[157.5,0.049026,138.6],[168,0.049026,138.6],[178.5,0.049026,138.6],[189,0.049026,138.6],[199.5,0.049026,138.6],[210,0.049026,138.6],[-6.9e-05,0.049026,148.5],[10.4999,0.049026,148.5],[20.9999,0.049026,148.5],[31.4999,0.049026,148.5],[41.9999,0.049026,148.5],[52.4999,0.049026,148.5],[62.9999,0.049026,148.5],[73.4999,0.049026,148.5],[83.9999,0.049026,148.5],[94.4999,0.049026,148.5],[105,0.049026,148.5],[115.5,0.049026,148.5],[126,0.049026,148.5],[136.5,0.049026,148.5],[147,0.049026,148.5],[157.5,0.049026,148.5],[168,0.049026,148.5],[178.5,0.049026,148.5],[189,0.049026,148.5],[199.5,0.049026,148.5],[210,0.049026,148.5],[-6.9e-05,-0.050974,-148.5],[10.4999,-0.050974,-148.5],[20.9999,-0.050974,-148.5],[31.4999,-0.050974,-148.5],[41.9999,-0.050974,-148.5],[52.4999,-0.050974,-148.5],[62.9999,-0.050974,-148.5],[73.4999,-0.050974,-148.5],[83.9999,-0.050974,-148.5],[94.4999,-0.050974,-148.5],[105,-0.050974,-148.5],[115.5,-0.050974,-148.5],[126,-0.050974,-148.5],[136.5,-0.050974,-148.5],[147,-0.050974,-148.5],[157.5,-0.050974,-148.5],[168,-0.050974,-148.5],[178.5,-0.050974,-148.5],[189,-0.050974,-148.5],[199.5,-0.050974,-148.5],[210,-0.050974,-148.5],[-6.9e-05,-0.050974,-138.6],[10.4999,-0.050974,-138.6],[20.9999,-0.050974,-138.6],[31.4999,-0.050974,-138.6],[41.9999,-0.050974,-138.6],[52.4999,-0.050974,-138.6],[62.9999,-0.050974,-138.6],[73.4999,-0.050974,-138.6],[83.9999,-0.050974,-138.6],[94.4999,-0.050974,-138.6],[105,-0.050974,-138.6],[115.5,-0.050974,-138.6],[126,-0.050974,-138.6],[136.5,-0.050974,-138.6],[147,-0.050974,-138.6],[157.5,-0.050974,-138.6],[168,-0.050974,-138.6],[178.5,-0.050974,-138.6],[189,-0.050974,-138.6],[199.5,-0.050974,-138.6],[210,-0.050974,-138.6],[-6.9e-05,-0.050974,-128.7],[10.4999,-0.050974,-128.7],[20.9999,-0.050974,-128.7],[31.4999,-0.050974,-128.7],[41.9999,-0.050974,-128.7],[52.4999,-0.050974,-128.7],[62.9999,-0.050974,-128.7],[73.4999,-0.050974,-128.7],[83.9999,-0.050974,-128.7],[94.4999,-0.050974,-128.7],[105,-0.050974,-128.7],[115.5,-0.050974,-128.7],[126,-0.050974,-128.7],[136.5,-0.050974,-128.7],[147,-0.050974,-128.7],[157.5,-0.050974,-128.7],[168,-0.050974,-128.7],[178.5,-0.050974,-128.7],[189,-0.050974,-128.7],[199.5,-0.050974,-128.7],[210,-0.050974,-128.7],[-6.9e-05,-0.050974,-118.8],[10.4999,-0.050974,-118.8],[20.9999,-0.050974,-118.8],[31.4999,-0.050974,-118.8],[41.9999,-0.050974,-118.8],[52.4999,-0.050974,-118.8],[62.9999,-0.050974,-118.8],[73.4999,-0.050974,-118.8],[83.9999,-0.050974,-118.8],[94.4999,-0.050974,-118.8],[105,-0.050974,-118.8],[115.5,-0.050974,-118.8],[126,-0.050974,-118.8],[136.5,-0.050974,-118.8],[147,-0.050974,-118.8],[157.5,-0.050974,-118.8],[168,-0.050974,-118.8],[178.5,-0.050974,-118.8],[189,-0.050974,-118.8],[199.5,-0.050974,-118.8],[210,-0.050974,-118.8],[-6.9e-05,-0.050974,-108.9],[10.4999,-0.050974,-108.9],[20.9999,-0.050974,-108.9],[31.4999,-0.050974,-108.9],[41.9999,-0.050974,-108.9],[52.4999,-0.050974,-108.9],[62.9999,-0.050974,-108.9],[73.4999,-0.050974,-108.9],[83.9999,-0.050974,-108.9],[94.4999,-0.050974,-108.9],[105,-0.050974,-108.9],[115.5,-0.050974,-108.9],[126,-0.050974,-108.9],[136.5,-0.050974,-108.9],[147,-0.050974,-108.9],[157.5,-0.050974,-108.9],[168,-0.050974,-108.9],[178.5,-0.050974,-108.9],[189,-0.050974,-108.9],[199.5,-0.050974,-108.9],[210,-0.050974,-108.9],[-6.9e-05,-0.050974,-99],[10.4999,-0.050974,-99],[20.9999,-0.050974,-99],[31.4999,-0.050974,-99],[41.9999,-0.050974,-99],[52.4999,-0.050974,-99],[62.9999,-0.050974,-99],[73.4999,-0.050974,-99],[83.9999,-0.050974,-99],[94.4999,-0.050974,-99],[105,-0.050974,-99],[115.5,-0.050974,-99],[126,-0.050974,-99],[136.5,-0.050974,-99],[147,-0.050974,-99],[157.5,-0.050974,-99],[168,-0.050974,-99],[178.5,-0.050974,-99],[189,-0.050974,-99],[199.5,-0.050974,-99],[210,-0.050974,-99],[-6.9e-05,-0.050974,-89.1],[10.4999,-0.050974,-89.1],[20.9999,-0.050974,-89.1],[31.4999,-0.050974,-89.1],[41.9999,-0.050974,-89.1],[52.4999,-0.050974,-89.1],[62.9999,-0.050974,-89.1],[73.4999,-0.050974,-89.1],[83.9999,-0.050974,-89.1],[94.4999,-0.050974,-89.1],[105,-0.050974,-89.1],[115.5,-0.050974,-89.1],[126,-0.050974,-89.1],[136.5,-0.050974,-89.1],[147,-0.050974,-89.1],[157.5,-0.050974,-89.1],[168,-0.050974,-89.1],[178.5,-0.050974,-89.1],[189,-0.050974,-89.1],[199.5,-0.050974,-89.1],[210,-0.050974,-89.1],[-6.9e-05,-0.050974,-79.2],[10.4999,-0.050974,-79.2],[20.9999,-0.050974,-79.2],[31.4999,-0.050974,-79.2],[41.9999,-0.050974,-79.2],[52.4999,-0.050974,-79.2],[62.9999,-0.050974,-79.2],[73.4999,-0.050974,-79.2],[83.9999,-0.050974,-79.2],[94.4999,-0.050974,-79.2],[105,-0.050974,-79.2],[115.5,-0.050974,-79.2],[126,-0.050974,-79.2],[136.5,-0.050974,-79.2],[147,-0.050974,-79.2],[157.5,-0.050974,-79.2],[168,-0.050974,-79.2],[178.5,-0.050974,-79.2],[189,-0.050974,-79.2],[199.5,-0.050974,-79.2],[210,-0.050974,-79.2],[-6.9e-05,-0.050974,-69.3],[10.4999,-0.050974,-69.3],[20.9999,-0.050974,-69.3],[31.4999,-0.050974,-69.3],[41.9999,-0.050974,-69.3],[52.4999,-0.050974,-69.3],[62.9999,-0.050974,-69.3],[73.4999,-0.050974,-69.3],[83.9999,-0.050974,-69.3],[94.4999,-0.050974,-69.3],[105,-0.050974,-69.3],[115.5,-0.050974,-69.3],[126,-0.050974,-69.3],[136.5,-0.050974,-69.3],[147,-0.050974,-69.3],[157.5,-0.050974,-69.3],[168,-0.050974,-69.3],[178.5,-0.050974,-69.3],[189,-0.050974,-69.3],[199.5,-0.050974,-69.3],[210,-0.050974,-69.3],[-6.9e-05,-0.050974,-59.4],[10.4999,-0.050974,-59.4],[20.9999,-0.050974,-59.4],[31.4999,-0.050974,-59.4],[41.9999,-0.050974,-59.4],[52.4999,-0.050974,-59.4],[62.9999,-0.050974,-59.4],[73.4999,-0.050974,-59.4],[83.9999,-0.050974,-59.4],[94.4999,-0.050974,-59.4],[105,-0.050974,-59.4],[115.5,-0.050974,-59.4],[126,-0.050974,-59.4],[136.5,-0.050974,-59.4],[147,-0.050974,-59.4],[157.5,-0.050974,-59.4],[168,-0.050974,-59.4],[178.5,-0.050974,-59.4],[189,-0.050974,-59.4],[199.5,-0.050974,-59.4],[210,-0.050974,-59.4],[-6.9e-05,-0.050974,-49.5],[10.4999,-0.050974,-49.5],[20.9999,-0.050974,-49.5],[31.4999,-0.050974,-49.5],[41.9999,-0.050974,-49.5],[52.4999,-0.050974,-49.5],[62.9999,-0.050974,-49.5],[73.4999,-0.050974,-49.5],[83.9999,-0.050974,-49.5],[94.4999,-0.050974,-49.5],[105,-0.050974,-49.5],[115.5,-0.050974,-49.5],[126,-0.050974,-49.5],[136.5,-0.050974,-49.5],[147,-0.050974,-49.5],[157.5,-0.050974,-49.5],[168,-0.050974,-49.5],[178.5,-0.050974,-49.5],[189,-0.050974,-49.5],[199.5,-0.050974,-49.5],[210,-0.050974,-49.5],[-6.9e-05,-0.050974,-39.6],[10.4999,-0.050974,-39.6],[20.9999,-0.050974,-39.6],[31.4999,-0.050974,-39.6],[41.9999,-0.050974,-39.6],[52.4999,-0.050974,-39.6],[62.9999,-0.050974,-39.6],[73.4999,-0.050974,-39.6],[83.9999,-0.050974,-39.6],[94.4999,-0.050974,-39.6],[105,-0.050974,-39.6],[115.5,-0.050974,-39.6],[126,-0.050974,-39.6],[136.5,-0.050974,-39.6],[147,-0.050974,-39.6],[157.5,-0.050974,-39.6],[168,-0.050974,-39.6],[178.5,-0.050974,-39.6],[189,-0.050974,-39.6],[199.5,-0.050974,-39.6],[210,-0.050974,-39.6],[-6.9e-05,-0.050974,-29.7],[10.4999,-0.050974,-29.7],[20.9999,-0.050974,-29.7],[31.4999,-0.050974,-29.7],[41.9999,-0.050974,-29.7],[52.4999,-0.050974,-29.7],[62.9999,-0.050974,-29.7],[73.4999,-0.050974,-29.7],[83.9999,-0.050974,-29.7],[94.4999,-0.050974,-29.7],[105,-0.050974,-29.7],[115.5,-0.050974,-29.7],[126,-0.050974,-29.7],[136.5,-0.050974,-29.7],[147,-0.050974,-29.7],[157.5,-0.050974,-29.7],[168,-0.050974,-29.7],[178.5,-0.050974,-29.7],[189,-0.050974,-29.7],[199.5,-0.050974,-29.7],[210,-0.050974,-29.7],[-6.9e-05,-0.050974,-19.8],[10.4999,-0.050974,-19.8],[20.9999,-0.050974,-19.8],[31.4999,-0.050974,-19.8],[41.9999,-0.050974,-19.8],[52.4999,-0.050974,-19.8],[62.9999,-0.050974,-19.8],[73.4999,-0.050974,-19.8],[83.9999,-0.050974,-19.8],[94.4999,-0.050974,-19.8],[105,-0.050974,-19.8],[115.5,-0.050974,-19.8],[126,-0.050974,-19.8],[136.5,-0.050974,-19.8],[147,-0.050974,-19.8],[157.5,-0.050974,-19.8],[168,-0.050974,-19.8],[178.5,-0.050974,-19.8],[189,-0.050974,-19.8],[199.5,-0.050974,-19.8],[210,-0.050974,-19.8],[-6.9e-05,-0.050974,-9.9],[10.4999,-0.050974,-9.9],[20.9999,-0.050974,-9.9],[31.4999,-0.050974,-9.9],[41.9999,-0.050974,-9.9],[52.4999,-0.050974,-9.9],[62.9999,-0.050974,-9.9],[73.4999,-0.050974,-9.9],[83.9999,-0.050974,-9.9],[94.4999,-0.050974,-9.9],[105,-0.050974,-9.9],[115.5,-0.050974,-9.9],[126,-0.050974,-9.9],[136.5,-0.050974,-9.9],[147,-0.050974,-9.9],[157.5,-0.050974,-9.9],[168,-0.050974,-9.9],[178.5,-0.050974,-9.9],[189,-0.050974,-9.9],[199.5,-0.050974,-9.9],[210,-0.050974,-9.9],[-6.9e-05,-0.050974,-0],[10.4999,-0.050974,-0],[20.9999,-0.050974,-0],[31.4999,-0.050974,-0],[41.9999,-0.050974,-0],[52.4999,-0.050974,-0],[62.9999,-0.050974,-0],[73.4999,-0.050974,-0],[83.9999,-0.050974,-0],[94.4999,-0.050974,-0],[105,-0.050974,-0],[115.5,-0.050974,-0],[126,-0.050974,-0],[136.5,-0.050974,-0],[147,-0.050974,-0],[157.5,-0.050974,-0],[168,-0.050974,-0],[178.5,-0.050974,-0],[189,-0.050974,-0],[199.5,-0.050974,-0],[210,-0.050974,-0],[-6.9e-05,-0.050974,9.9],[10.4999,-0.050974,9.9],[20.9999,-0.050974,9.9],[31.4999,-0.050974,9.9],[41.9999,-0.050974,9.9],[52.4999,-0.050974,9.9],[62.9999,-0.050974,9.9],[73.4999,-0.050974,9.9],[83.9999,-0.050974,9.9],[94.4999,-0.050974,9.9],[105,-0.050974,9.9],[115.5,-0.050974,9.9],[126,-0.050974,9.9],[136.5,-0.050974,9.9],[147,-0.050974,9.9],[157.5,-0.050974,9.9],[168,-0.050974,9.9],[178.5,-0.050974,9.9],[189,-0.050974,9.9],[199.5,-0.050974,9.9],[210,-0.050974,9.9],[-6.9e-05,-0.050974,19.8],[10.4999,-0.050974,19.8],[20.9999,-0.050974,19.8],[31.4999,-0.050974,19.8],[41.9999,-0.050974,19.8],[52.4999,-0.050974,19.8],[62.9999,-0.050974,19.8],[73.4999,-0.050974,19.8],[83.9999,-0.050974,19.8],[94.4999,-0.050974,19.8],[105,-0.050974,19.8],[115.5,-0.050974,19.8],[126,-0.050974,19.8],[136.5,-0.050974,19.8],[147,-0.050974,19.8],[157.5,-0.050974,19.8],[168,-0.050974,19.8],[178.5,-0.050974,19.8],[189,-0.050974,19.8],[199.5,-0.050974,19.8],[210,-0.050974,19.8],[-6.9e-05,-0.050974,29.7],[10.4999,-0.050974,29.7],[20.9999,-0.050974,29.7],[31.4999,-0.050974,29.7],[41.9999,-0.050974,29.7],[52.4999,-0.050974,29.7],[62.9999,-0.050974,29.7],[73.4999,-0.050974,29.7],[83.9999,-0.050974,29.7],[94.4999,-0.050974,29.7],[105,-0.050974,29.7],[115.5,-0.050974,29.7],[126,-0.050974,29.7],[136.5,-0.050974,29.7],[147,-0.050974,29.7],[157.5,-0.050974,29.7],[168,-0.050974,29.7],[178.5,-0.050974,29.7],[189,-0.050974,29.7],[199.5,-0.050974,29.7],[210,-0.050974,29.7],[-6.9e-05,-0.050974,39.6],[10.4999,-0.050974,39.6],[20.9999,-0.050974,39.6],[31.4999,-0.050974,39.6],[41.9999,-0.050974,39.6],[52.4999,-0.050974,39.6],[62.9999,-0.050974,39.6],[73.4999,-0.050974,39.6],[83.9999,-0.050974,39.6],[94.4999,-0.050974,39.6],[105,-0.050974,39.6],[115.5,-0.050974,39.6],[126,-0.050974,39.6],[136.5,-0.050974,39.6],[147,-0.050974,39.6],[157.5,-0.050974,39.6],[168,-0.050974,39.6],[178.5,-0.050974,39.6],[189,-0.050974,39.6],[199.5,-0.050974,39.6],[210,-0.050974,39.6],[-6.9e-05,-0.050974,49.5],[10.4999,-0.050974,49.5],[20.9999,-0.050974,49.5],[31.4999,-0.050974,49.5],[41.9999,-0.050974,49.5],[52.4999,-0.050974,49.5],[62.9999,-0.050974,49.5],[73.4999,-0.050974,49.5],[83.9999,-0.050974,49.5],[94.4999,-0.050974,49.5],[105,-0.050974,49.5],[115.5,-0.050974,49.5],[126,-0.050974,49.5],[136.5,-0.050974,49.5],[147,-0.050974,49.5],[157.5,-0.050974,49.5],[168,-0.050974,49.5],[178.5,-0.050974,49.5],[189,-0.050974,49.5],[199.5,-0.050974,49.5],[210,-0.050974,49.5],[-6.9e-05,-0.050974,59.4],[10.4999,-0.050974,59.4],[20.9999,-0.050974,59.4],[31.4999,-0.050974,59.4],[41.9999,-0.050974,59.4],[52.4999,-0.050974,59.4],[62.9999,-0.050974,59.4],[73.4999,-0.050974,59.4],[83.9999,-0.050974,59.4],[94.4999,-0.050974,59.4],[105,-0.050974,59.4],[115.5,-0.050974,59.4],[126,-0.050974,59.4],[136.5,-0.050974,59.4],[147,-0.050974,59.4],[157.5,-0.050974,59.4],[168,-0.050974,59.4],[178.5,-0.050974,59.4],[189,-0.050974,59.4],[199.5,-0.050974,59.4],[210,-0.050974,59.4],[-6.9e-05,-0.050974,69.3],[10.4999,-0.050974,69.3],[20.9999,-0.050974,69.3],[31.4999,-0.050974,69.3],[41.9999,-0.050974,69.3],[52.4999,-0.050974,69.3],[62.9999,-0.050974,69.3],[73.4999,-0.050974,69.3],[83.9999,-0.050974,69.3],[94.4999,-0.050974,69.3],[105,-0.050974,69.3],[115.5,-0.050974,69.3],[126,-0.050974,69.3],[136.5,-0.050974,69.3],[147,-0.050974,69.3],[157.5,-0.050974,69.3],[168,-0.050974,69.3],[178.5,-0.050974,69.3],[189,-0.050974,69.3],[199.5,-0.050974,69.3],[210,-0.050974,69.3],[-6.9e-05,-0.050974,79.2],[10.4999,-0.050974,79.2],[20.9999,-0.050974,79.2],[31.4999,-0.050974,79.2],[41.9999,-0.050974,79.2],[52.4999,-0.050974,79.2],[62.9999,-0.050974,79.2],[73.4999,-0.050974,79.2],[83.9999,-0.050974,79.2],[94.4999,-0.050974,79.2],[105,-0.050974,79.2],[115.5,-0.050974,79.2],[126,-0.050974,79.2],[136.5,-0.050974,79.2],[147,-0.050974,79.2],[157.5,-0.050974,79.2],[168,-0.050974,79.2],[178.5,-0.050974,79.2],[189,-0.050974,79.2],[199.5,-0.050974,79.2],[210,-0.050974,79.2],[-6.9e-05,-0.050974,89.1],[10.4999,-0.050974,89.1],[20.9999,-0.050974,89.1],[31.4999,-0.050974,89.1],[41.9999,-0.050974,89.1],[52.4999,-0.050974,89.1],[62.9999,-0.050974,89.1],[73.4999,-0.050974,89.1],[83.9999,-0.050974,89.1],[94.4999,-0.050974,89.1],[105,-0.050974,89.1],[115.5,-0.050974,89.1],[126,-0.050974,89.1],[136.5,-0.050974,89.1],[147,-0.050974,89.1],[157.5,-0.050974,89.1],[168,-0.050974,89.1],[178.5,-0.050974,89.1],[189,-0.050974,89.1],[199.5,-0.050974,89.1],[210,-0.050974,89.1],[-6.9e-05,-0.050974,99],[10.4999,-0.050974,99],[20.9999,-0.050974,99],[31.4999,-0.050974,99],[41.9999,-0.050974,99],[52.4999,-0.050974,99],[62.9999,-0.050974,99],[73.4999,-0.050974,99],[83.9999,-0.050974,99],[94.4999,-0.050974,99],[105,-0.050974,99],[115.5,-0.050974,99],[126,-0.050974,99],[136.5,-0.050974,99],[147,-0.050974,99],[157.5,-0.050974,99],[168,-0.050974,99],[178.5,-0.050974,99],[189,-0.050974,99],[199.5,-0.050974,99],[210,-0.050974,99],[-6.9e-05,-0.050974,108.9],[10.4999,-0.050974,108.9],[20.9999,-0.050974,108.9],[31.4999,-0.050974,108.9],[41.9999,-0.050974,108.9],[52.4999,-0.050974,108.9],[62.9999,-0.050974,108.9],[73.4999,-0.050974,108.9],[83.9999,-0.050974,108.9],[94.4999,-0.050974,108.9],[105,-0.050974,108.9],[115.5,-0.050974,108.9],[126,-0.050974,108.9],[136.5,-0.050974,108.9],[147,-0.050974,108.9],[157.5,-0.050974,108.9],[168,-0.050974,108.9],[178.5,-0.050974,108.9],[189,-0.050974,108.9],[199.5,-0.050974,108.9],[210,-0.050974,108.9],[-6.9e-05,-0.050974,118.8],[10.4999,-0.050974,118.8],[20.9999,-0.050974,118.8],[31.4999,-0.050974,118.8],[41.9999,-0.050974,118.8],[52.4999,-0.050974,118.8],[62.9999,-0.050974,118.8],[73.4999,-0.050974,118.8],[83.9999,-0.050974,118.8],[94.4999,-0.050974,118.8],[105,-0.050974,118.8],[115.5,-0.050974,118.8],[126,-0.050974,118.8],[136.5,-0.050974,118.8],[147,-0.050974,118.8],[157.5,-0.050974,118.8],[168,-0.050974,118.8],[178.5,-0.050974,118.8],[189,-0.050974,118.8],[199.5,-0.050974,118.8],[210,-0.050974,118.8],[-6.9e-05,-0.050974,128.7],[10.4999,-0.050974,128.7],[20.9999,-0.050974,128.7],[31.4999,-0.050974,128.7],[41.9999,-0.050974,128.7],[52.4999,-0.050974,128.7],[62.9999,-0.050974,128.7],[73.4999,-0.050974,128.7],[83.9999,-0.050974,128.7],[94.4999,-0.050974,128.7],[105,-0.050974,128.7],[115.5,-0.050974,128.7],[126,-0.050974,128.7],[136.5,-0.050974,128.7],[147,-0.050974,128.7],[157.5,-0.050974,128.7],[168,-0.050974,128.7],[178.5,-0.050974,128.7],[189,-0.050974,128.7],[199.5,-0.050974,128.7],[210,-0.050974,128.7],[-6.9e-05,-0.050974,138.6],[10.4999,-0.050974,138.6],[20.9999,-0.050974,138.6],[31.4999,-0.050974,138.6],[41.9999,-0.050974,138.6],[52.4999,-0.050974,138.6],[62.9999,-0.050974,138.6],[73.4999,-0.050974,138.6],[83.9999,-0.050974,138.6],[94.4999,-0.050974,138.6],[105,-0.050974,138.6],[115.5,-0.050974,138.6],[126,-0.050974,138.6],[136.5,-0.050974,138.6],[147,-0.050974,138.6],[157.5,-0.050974,138.6],[168,-0.050974,138.6],[178.5,-0.050974,138.6],[189,-0.050974,138.6],[199.5,-0.050974,138.6],[210,-0.050974,138.6],[-6.9e-05,-0.050974,148.5],[10.4999,-0.050974,148.5],[20.9999,-0.050974,148.5],[31.4999,-0.050974,148.5],[41.9999,-0.050974,148.5],[52.4999,-0.050974,148.5],[62.9999,-0.050974,148.5],[73.4999,-0.050974,148.5],[83.9999,-0.050974,148.5],[94.4999,-0.050974,148.5],[105,-0.050974,148.5],[115.5,-0.050974,148.5],[126,-0.050974,148.5],[136.5,-0.050974,148.5],[147,-0.050974,148.5],[157.5,-0.050974,148.5],[168,-0.050974,148.5],[178.5,-0.050974,148.5],[189,-0.050974,148.5],[199.5,-0.050974,148.5],[210,-0.050974,148.5]],
+ "name": "Basis.001"
+ },{
+ "vertices": [[-6.9e-05,0.049026,-148.5],[10.4999,0.049026,-148.5],[20.9999,0.049026,-148.5],[31.4999,0.049026,-148.5],[41.9999,0.049026,-148.5],[52.4999,0.049026,-148.5],[62.9999,0.049026,-148.5],[73.4999,0.049026,-148.5],[83.9999,0.049026,-148.5],[94.4999,0.049026,-148.5],[105,0.049026,-148.5],[115.5,0.049026,-148.5],[126,0.049026,-148.5],[136.5,0.049026,-148.5],[147,0.049026,-148.5],[157.5,0.049026,-148.5],[168,0.049026,-148.5],[178.5,0.049026,-148.5],[189,0.049026,-148.5],[199.5,0.049026,-148.5],[210,0.049026,-148.5],[-6.9e-05,0.049026,-138.6],[10.4999,0.049026,-138.6],[20.9999,0.049026,-138.6],[31.4999,0.049026,-138.6],[41.9999,0.049026,-138.6],[52.4999,0.049026,-138.6],[62.9999,0.049026,-138.6],[73.4999,0.049026,-138.6],[83.9999,0.049026,-138.6],[94.4999,0.049026,-138.6],[105,0.049026,-138.6],[115.5,0.049026,-138.6],[126,0.049026,-138.6],[136.5,0.049026,-138.6],[147,0.049026,-138.6],[157.5,0.049026,-138.6],[168,0.049026,-138.6],[178.5,0.049026,-138.6],[189,0.049026,-138.6],[199.5,0.049026,-138.6],[210,0.049026,-138.6],[-6.9e-05,0.049026,-128.7],[10.4999,0.049026,-128.7],[20.9999,0.049026,-128.7],[31.4999,0.049026,-128.7],[41.9999,0.049026,-128.7],[52.4999,0.049026,-128.7],[62.9999,0.049026,-128.7],[73.4999,0.049026,-128.7],[83.9999,0.049026,-128.7],[94.4999,0.049026,-128.7],[105,0.049026,-128.7],[115.5,0.049026,-128.7],[126,0.049026,-128.7],[136.5,0.049026,-128.7],[147,0.049026,-128.7],[157.5,0.049026,-128.7],[168,0.049026,-128.7],[178.5,0.049026,-128.7],[189,0.049026,-128.7],[199.5,0.049026,-128.7],[210,0.049026,-128.7],[-6.9e-05,0.049026,-118.8],[10.4999,0.049026,-118.8],[20.9999,0.049026,-118.8],[31.4999,0.049026,-118.8],[41.9999,0.049026,-118.8],[52.4999,0.049026,-118.8],[62.9999,0.049026,-118.8],[73.4999,0.049026,-118.8],[83.9999,0.049026,-118.8],[94.4999,0.049026,-118.8],[105,0.049026,-118.8],[115.5,0.049026,-118.8],[126,0.049026,-118.8],[136.5,0.049026,-118.8],[147,0.049026,-118.8],[157.5,0.049026,-118.8],[168,0.049026,-118.8],[178.5,0.049026,-118.8],[189,0.049026,-118.8],[199.5,0.049026,-118.8],[210,0.049026,-118.8],[-6.9e-05,0.049026,-108.9],[10.4999,0.049026,-108.9],[20.9999,0.049026,-108.9],[31.4999,0.049026,-108.9],[41.9999,0.049026,-108.9],[52.4999,0.049026,-108.9],[62.9999,0.049026,-108.9],[73.4999,0.049026,-108.9],[83.9999,0.049026,-108.9],[94.4999,0.049026,-108.9],[105,0.049026,-108.9],[115.5,0.049026,-108.9],[126,0.049026,-108.9],[136.5,0.049026,-108.9],[147,0.049026,-108.9],[157.5,0.049026,-108.9],[168,0.049026,-108.9],[178.5,0.049026,-108.9],[189,0.049026,-108.9],[199.5,0.049026,-108.9],[210,0.049026,-108.9],[-6.9e-05,0.049026,-99],[10.4999,0.049026,-99],[20.9999,0.049026,-99],[31.4999,0.049026,-99],[41.9999,0.049026,-99],[52.4999,0.049026,-99],[62.9999,0.049026,-99],[73.4999,0.049026,-99],[83.9999,0.049026,-99],[94.4999,0.049026,-99],[105,0.049026,-99],[115.5,0.049026,-99],[126,0.049026,-99],[136.5,0.049026,-99],[147,0.049026,-99],[157.5,0.049026,-99],[168,0.049026,-99],[178.5,0.049026,-99],[189,0.049026,-99],[199.5,0.049026,-99],[210,0.049026,-99],[-6.9e-05,0.049026,-89.1],[10.4999,0.049026,-89.1],[20.9999,0.049026,-89.1],[31.4999,0.049026,-89.1],[41.9999,0.049026,-89.1],[52.4999,0.049026,-89.1],[62.9999,0.049026,-89.1],[73.4999,0.049026,-89.1],[83.9999,0.049026,-89.1],[94.4999,0.049026,-89.1],[105,0.049026,-89.1],[115.5,0.049026,-89.1],[126,0.049026,-89.1],[136.5,0.049026,-89.1],[147,0.049026,-89.1],[157.5,0.049026,-89.1],[168,0.049026,-89.1],[178.5,0.049026,-89.1],[189,0.049026,-89.1],[199.5,0.049026,-89.1],[210,0.049026,-89.1],[-6.9e-05,0.049026,-79.2],[10.4999,0.049026,-79.2],[20.9999,0.049026,-79.2],[31.4999,0.049026,-79.2],[41.9999,0.049026,-79.2],[52.4999,0.049026,-79.2],[62.9999,0.049026,-79.2],[73.4999,0.049026,-79.2],[83.9999,0.049026,-79.2],[94.4999,0.049026,-79.2],[105,0.049026,-79.2],[115.5,0.049026,-79.2],[126,0.049026,-79.2],[136.5,0.049026,-79.2],[147,0.049026,-79.2],[157.5,0.049026,-79.2],[168,0.049026,-79.2],[178.5,0.049026,-79.2],[189,0.049026,-79.2],[199.5,0.049026,-79.2],[210,0.049026,-79.2],[-6.9e-05,0.049026,-69.3],[10.4999,0.049026,-69.3],[20.9999,0.049026,-69.3],[31.4999,0.049026,-69.3],[41.9999,0.049026,-69.3],[52.4999,0.049026,-69.3],[62.9999,0.049026,-69.3],[73.4999,0.049026,-69.3],[83.9999,0.049026,-69.3],[94.4999,0.049026,-69.3],[105,0.049026,-69.3],[115.5,0.049026,-69.3],[126,0.049026,-69.3],[136.5,0.049026,-69.3],[147,0.049026,-69.3],[157.5,0.049026,-69.3],[168,0.049026,-69.3],[178.5,0.049026,-69.3],[189,0.049026,-69.3],[199.5,0.049026,-69.3],[210,0.049026,-69.3],[-6.9e-05,0.049026,-59.4],[10.4999,0.049026,-59.4],[20.9999,0.049026,-59.4],[31.4999,0.049026,-59.4],[41.9999,0.049026,-59.4],[52.4999,0.049026,-59.4],[62.9999,0.049026,-59.4],[73.4999,0.049026,-59.4],[83.9999,0.049026,-59.4],[94.4999,0.049026,-59.4],[105,0.049026,-59.4],[115.5,0.049026,-59.4],[126,0.049026,-59.4],[136.5,0.049026,-59.4],[147,0.049026,-59.4],[157.5,0.049026,-59.4],[168,0.049026,-59.4],[178.5,0.049026,-59.4],[189,0.049026,-59.4],[199.5,0.049026,-59.4],[210,0.049026,-59.4],[-6.9e-05,0.049026,-49.5],[10.4999,0.049026,-49.5],[20.9999,0.049026,-49.5],[31.4999,0.049026,-49.5],[41.9999,0.049026,-49.5],[52.4999,0.049026,-49.5],[62.9999,0.049026,-49.5],[73.4999,0.049026,-49.5],[83.9999,0.049026,-49.5],[94.4999,0.049026,-49.5],[105,0.049026,-49.5],[115.5,0.049026,-49.5],[126,0.049026,-49.5],[136.5,0.049026,-49.5],[147,0.049026,-49.5],[157.5,0.049026,-49.5],[168,0.049026,-49.5],[178.5,0.049026,-49.5],[189,0.049026,-49.5],[199.5,0.049026,-49.5],[210,0.049026,-49.5],[-6.9e-05,0.049026,-39.6],[10.4999,0.049026,-39.6],[20.9999,0.049026,-39.6],[31.4999,0.049026,-39.6],[41.9999,0.049026,-39.6],[52.4999,0.049026,-39.6],[62.9999,0.049026,-39.6],[73.4999,0.049026,-39.6],[83.9999,0.049026,-39.6],[94.4999,0.049026,-39.6],[105,0.049026,-39.6],[115.5,0.049026,-39.6],[126,0.049026,-39.6],[136.5,0.049026,-39.6],[147,0.049026,-39.6],[157.5,0.049026,-39.6],[168,0.049026,-39.6],[178.5,0.049026,-39.6],[189,0.049026,-39.6],[199.5,0.049026,-39.6],[210,0.049026,-39.6],[-6.9e-05,0.049026,-29.7],[10.4999,0.049026,-29.7],[20.9999,0.049026,-29.7],[31.4999,0.049026,-29.7],[41.9999,0.049026,-29.7],[52.4999,0.049026,-29.7],[62.9999,0.049026,-29.7],[73.4999,0.049026,-29.7],[83.9999,0.049026,-29.7],[94.4999,0.049026,-29.7],[105,0.049026,-29.7],[115.5,0.049026,-29.7],[126,0.049026,-29.7],[136.5,0.049026,-29.7],[147,0.049026,-29.7],[157.5,0.049026,-29.7],[168,0.049026,-29.7],[178.5,0.049026,-29.7],[189,0.049026,-29.7],[199.5,0.049026,-29.7],[210,0.049026,-29.7],[-6.9e-05,0.049026,-19.8],[10.4999,0.049026,-19.8],[20.9999,0.049026,-19.8],[31.4999,0.049026,-19.8],[41.9999,0.049026,-19.8],[52.4999,0.049026,-19.8],[62.9999,0.049026,-19.8],[73.4999,0.049026,-19.8],[83.9999,0.049026,-19.8],[94.4999,0.049026,-19.8],[105,0.049026,-19.8],[115.5,0.049026,-19.8],[126,0.049026,-19.8],[136.5,0.049026,-19.8],[147,0.049026,-19.8],[157.5,0.049026,-19.8],[168,0.049026,-19.8],[178.5,0.049026,-19.8],[189,0.049026,-19.8],[199.5,0.049026,-19.8],[210,0.049026,-19.8],[-6.9e-05,0.049026,-9.9],[10.4999,0.049026,-9.9],[20.9999,0.049026,-9.9],[31.4999,0.049026,-9.9],[41.9999,0.049026,-9.9],[52.4999,0.049026,-9.9],[62.9999,0.049026,-9.9],[73.4999,0.049026,-9.9],[83.9999,0.049026,-9.9],[94.4999,0.049026,-9.9],[105,0.049026,-9.9],[115.5,0.049026,-9.9],[126,0.049026,-9.9],[136.5,0.049026,-9.9],[147,0.049026,-9.9],[157.5,0.049026,-9.9],[168,0.049026,-9.9],[178.5,0.049026,-9.9],[189,0.049026,-9.9],[199.5,0.049026,-9.9],[210,0.049026,-9.9],[-6.9e-05,0.049026,-0],[10.4999,0.049026,-0],[20.9999,0.049026,-0],[31.4999,0.049026,-0],[41.9999,0.049026,-0],[52.4999,0.049026,-0],[62.9999,0.049026,-0],[73.4999,0.049026,-0],[83.9999,0.049026,-0],[94.4999,0.049026,-0],[105,0.049026,-0],[115.5,0.049026,-0],[126,0.049026,-0],[136.5,0.049026,-0],[147,0.049026,-0],[157.5,0.049026,-0],[168,0.049026,-0],[178.5,0.049026,-0],[189,0.049026,-0],[199.5,0.049026,-0],[210,0.049026,-0],[-6.9e-05,0.049026,9.9],[10.4999,0.049026,9.9],[20.9999,0.049026,9.9],[31.4999,0.049026,9.9],[41.9999,0.049026,9.9],[52.4999,0.049026,9.9],[62.9999,0.049026,9.9],[73.4999,0.049026,9.9],[83.9999,0.049026,9.9],[94.4999,0.049026,9.9],[105,0.049026,9.9],[115.5,0.049026,9.9],[126,0.049026,9.9],[136.5,0.049026,9.9],[147,0.049026,9.9],[157.5,0.049026,9.9],[168,0.049026,9.9],[178.5,0.049026,9.9],[189,0.049026,9.9],[199.5,0.049026,9.9],[210,0.049026,9.9],[-6.9e-05,0.049026,19.8],[10.4999,0.049026,19.8],[20.9999,0.049026,19.8],[31.4999,0.049026,19.8],[41.9999,0.049026,19.8],[52.4999,0.049026,19.8],[62.9999,0.049026,19.8],[73.4999,0.049026,19.8],[83.9999,0.049026,19.8],[94.4999,0.049026,19.8],[105,0.049026,19.8],[115.5,0.049026,19.8],[126,0.049026,19.8],[136.5,0.049026,19.8],[147,0.049026,19.8],[157.5,0.049026,19.8],[168,0.049026,19.8],[178.5,0.049026,19.8],[189,0.049026,19.8],[199.5,0.049026,19.8],[210,0.049026,19.8],[-6.9e-05,0.049026,29.7],[10.4999,0.049026,29.7],[20.9999,0.049026,29.7],[31.4999,0.049026,29.7],[41.9999,0.049026,29.7],[52.4999,0.049026,29.7],[62.9999,0.049026,29.7],[73.4999,0.049026,29.7],[83.9999,0.049026,29.7],[94.4999,0.049026,29.7],[105,0.049026,29.7],[115.5,0.049026,29.7],[126,0.049026,29.7],[136.5,0.049026,29.7],[147,0.049026,29.7],[157.5,0.049026,29.7],[168,0.049026,29.7],[178.5,0.049026,29.7],[189,0.049026,29.7],[199.5,0.049026,29.7],[210,0.049026,29.7],[-6.9e-05,0.049026,39.6],[10.4999,0.049026,39.6],[20.9999,0.049026,39.6],[31.4999,0.049026,39.6],[41.9999,0.049026,39.6],[52.4999,0.049026,39.6],[62.9999,0.049026,39.6],[73.4999,0.049026,39.6],[83.9999,0.049026,39.6],[94.4999,0.049026,39.6],[105,0.049026,39.6],[115.5,0.049026,39.6],[126,0.049026,39.6],[136.5,0.049026,39.6],[147,0.049026,39.6],[157.5,0.049026,39.6],[168,0.049026,39.6],[178.5,0.049026,39.6],[189,0.049026,39.6],[199.5,0.049026,39.6],[210,0.049026,39.6],[-6.9e-05,0.049026,49.5],[10.4999,0.049026,49.5],[20.9999,0.049026,49.5],[31.4999,0.049026,49.5],[41.9999,0.049026,49.5],[52.4999,0.049026,49.5],[62.9999,0.049026,49.5],[73.4999,0.049026,49.5],[83.9999,0.049026,49.5],[94.4999,0.049026,49.5],[105,0.049026,49.5],[115.5,0.049026,49.5],[126,0.049026,49.5],[136.5,0.049026,49.5],[147,0.049026,49.5],[157.5,0.049026,49.5],[168,0.049026,49.5],[178.5,0.049026,49.5],[189,0.049026,49.5],[199.5,0.049026,49.5],[210,0.049026,49.5],[-6.9e-05,0.049026,59.4],[10.4999,0.049026,59.4],[20.9999,0.049026,59.4],[31.4999,0.049026,59.4],[41.9999,0.049026,59.4],[52.4999,0.049026,59.4],[62.9999,0.049026,59.4],[73.4999,0.049026,59.4],[83.9999,0.049026,59.4],[94.4999,0.049026,59.4],[105,0.049026,59.4],[115.5,0.049026,59.4],[126,0.049026,59.4],[136.5,0.049026,59.4],[147,0.049026,59.4],[157.5,0.049026,59.4],[168,0.049026,59.4],[178.5,0.049026,59.4],[189,0.049026,59.4],[199.5,0.049026,59.4],[210,0.049026,59.4],[-6.9e-05,0.049026,69.3],[10.4999,0.049026,69.3],[20.9999,0.049026,69.3],[31.4999,0.049026,69.3],[41.9999,0.049026,69.3],[52.4999,0.049026,69.3],[62.9999,0.049026,69.3],[73.4999,0.049026,69.3],[83.9999,0.049026,69.3],[94.4999,0.049026,69.3],[105,0.049026,69.3],[115.5,0.049026,69.3],[126,0.049026,69.3],[136.5,0.049026,69.3],[147,0.049026,69.3],[157.5,0.049026,69.3],[168,0.049026,69.3],[178.5,0.049026,69.3],[189,0.049026,69.3],[199.5,0.049026,69.3],[210,0.049026,69.3],[-6.9e-05,0.049026,79.2],[10.4999,0.049026,79.2],[20.9999,0.049026,79.2],[31.4999,0.049026,79.2],[41.9999,0.049026,79.2],[52.4999,0.049026,79.2],[62.9999,0.049026,79.2],[73.4999,0.049026,79.2],[83.9999,0.049026,79.2],[94.4999,0.049026,79.2],[105,0.049026,79.2],[115.5,0.049026,79.2],[126,0.049026,79.2],[136.5,0.049026,79.2],[147,0.049026,79.2],[157.5,0.049026,79.2],[168,0.049026,79.2],[178.5,0.049026,79.2],[189,0.049026,79.2],[199.5,0.049026,79.2],[210,0.049026,79.2],[-6.9e-05,0.049026,89.1],[10.4999,0.049026,89.1],[20.9999,0.049026,89.1],[31.4999,0.049026,89.1],[41.9999,0.049026,89.1],[52.4999,0.049026,89.1],[62.9999,0.049026,89.1],[73.4999,0.049026,89.1],[83.9999,0.049026,89.1],[94.4999,0.049026,89.1],[105,0.049026,89.1],[115.5,0.049026,89.1],[126,0.049026,89.1],[136.5,0.049026,89.1],[147,0.049026,89.1],[157.5,0.049026,89.1],[168,0.049026,89.1],[178.5,0.049026,89.1],[189,0.049026,89.1],[199.5,0.049026,89.1],[210,0.049026,89.1],[-6.9e-05,0.049026,99],[10.4999,0.049026,99],[20.9999,0.049026,99],[31.4999,0.049026,99],[41.9999,0.049026,99],[52.4999,0.049026,99],[62.9999,0.049026,99],[73.4999,0.049026,99],[83.9999,0.049026,99],[94.4999,0.049026,99],[105,0.049026,99],[115.5,0.049026,99],[126,0.049026,99],[136.5,0.049026,99],[147,0.049026,99],[157.5,0.049026,99],[168,0.049026,99],[178.5,0.049026,99],[189,0.049026,99],[199.5,0.049026,99],[210,0.049026,99],[-6.9e-05,0.049026,108.9],[10.4999,0.049026,108.9],[20.9999,0.049026,108.9],[31.4999,0.049026,108.9],[41.9999,0.049026,108.9],[52.4999,0.049026,108.9],[62.9999,0.049026,108.9],[73.4999,0.049026,108.9],[83.9999,0.049026,108.9],[94.4999,0.049026,108.9],[105,0.049026,108.9],[115.5,0.049026,108.9],[126,0.049026,108.9],[136.5,0.049026,108.9],[147,0.049026,108.9],[157.5,0.049026,108.9],[168,0.049026,108.9],[178.5,0.049026,108.9],[189,0.049026,108.9],[199.5,0.049026,108.9],[210,0.049026,108.9],[-6.9e-05,0.049026,118.8],[10.4999,0.049026,118.8],[20.9999,0.049026,118.8],[31.4999,0.049026,118.8],[41.9999,0.049026,118.8],[52.4999,0.049026,118.8],[62.9999,0.049026,118.8],[73.4999,0.049026,118.8],[83.9999,0.049026,118.8],[94.4999,0.049026,118.8],[105,0.049026,118.8],[115.5,0.049026,118.8],[126,0.049026,118.8],[136.5,0.049026,118.8],[147,0.049026,118.8],[157.5,0.049026,118.8],[168,0.049026,118.8],[178.5,0.049026,118.8],[189,0.049026,118.8],[199.5,0.049026,118.8],[210,0.049026,118.8],[-6.9e-05,0.049026,128.7],[10.4999,0.049026,128.7],[20.9999,0.049026,128.7],[31.4999,0.049026,128.7],[41.9999,0.049026,128.7],[52.4999,0.049026,128.7],[62.9999,0.049026,128.7],[73.4999,0.049026,128.7],[83.9999,0.049026,128.7],[94.4999,0.049026,128.7],[105,0.049026,128.7],[115.5,0.049026,128.7],[126,0.049026,128.7],[136.5,0.049026,128.7],[147,0.049026,128.7],[157.5,0.049026,128.7],[168,0.049026,128.7],[178.5,0.049026,128.7],[189,0.049026,128.7],[199.5,0.049026,128.7],[210,0.049026,128.7],[-6.9e-05,0.049026,138.6],[10.4999,0.049026,138.6],[20.9999,0.049026,138.6],[31.4999,0.049026,138.6],[41.9999,0.049026,138.6],[52.4999,0.049026,138.6],[62.9999,0.049026,138.6],[73.4999,0.049026,138.6],[83.9999,0.049026,138.6],[94.4999,0.049026,138.6],[105,0.049026,138.6],[115.5,0.049026,138.6],[126,0.049026,138.6],[136.5,0.049026,138.6],[147,0.049026,138.6],[157.5,0.049026,138.6],[168,0.049026,138.6],[178.5,0.049026,138.6],[189,0.049026,138.6],[199.5,0.049026,138.6],[210,0.049026,138.6],[-6.9e-05,0.049026,148.5],[10.4999,0.049026,148.5],[20.9999,0.049026,148.5],[31.4999,0.049026,148.5],[41.9999,0.049026,148.5],[52.4999,0.049026,148.5],[62.9999,0.049026,148.5],[73.4999,0.049026,148.5],[83.9999,0.049026,148.5],[94.4999,0.049026,148.5],[105,0.049026,148.5],[115.5,0.049026,148.5],[126,0.049026,148.5],[136.5,0.049026,148.5],[147,0.049026,148.5],[157.5,0.049026,148.5],[168,0.049026,148.5],[178.5,0.049026,148.5],[189,0.049026,148.5],[199.5,0.049026,148.5],[210,0.049026,148.5],[-6.9e-05,-0.050974,-148.5],[10.4999,-0.050974,-148.5],[20.9999,-0.050974,-148.5],[31.4999,-0.050974,-148.5],[41.9999,-0.050974,-148.5],[52.4999,-0.050974,-148.5],[62.9999,-0.050974,-148.5],[73.4999,-0.050974,-148.5],[83.9999,-0.050974,-148.5],[94.4999,-0.050974,-148.5],[105,-0.050974,-148.5],[115.5,-0.050974,-148.5],[126,-0.050974,-148.5],[136.5,-0.050974,-148.5],[147,-0.050974,-148.5],[157.5,-0.050974,-148.5],[168,-0.050974,-148.5],[178.5,-0.050974,-148.5],[189,-0.050974,-148.5],[199.5,-0.050974,-148.5],[210,-0.050974,-148.5],[-6.9e-05,-0.050974,-138.6],[10.4999,-0.050974,-138.6],[20.9999,-0.050974,-138.6],[31.4999,-0.050974,-138.6],[41.9999,-0.050974,-138.6],[52.4999,-0.050974,-138.6],[62.9999,-0.050974,-138.6],[73.4999,-0.050974,-138.6],[83.9999,-0.050974,-138.6],[94.4999,-0.050974,-138.6],[105,-0.050974,-138.6],[115.5,-0.050974,-138.6],[126,-0.050974,-138.6],[136.5,-0.050974,-138.6],[147,-0.050974,-138.6],[157.5,-0.050974,-138.6],[168,-0.050974,-138.6],[178.5,-0.050974,-138.6],[189,-0.050974,-138.6],[199.5,-0.050974,-138.6],[210,-0.050974,-138.6],[-6.9e-05,-0.050974,-128.7],[10.4999,-0.050974,-128.7],[20.9999,-0.050974,-128.7],[31.4999,-0.050974,-128.7],[41.9999,-0.050974,-128.7],[52.4999,-0.050974,-128.7],[62.9999,-0.050974,-128.7],[73.4999,-0.050974,-128.7],[83.9999,-0.050974,-128.7],[94.4999,-0.050974,-128.7],[105,-0.050974,-128.7],[115.5,-0.050974,-128.7],[126,-0.050974,-128.7],[136.5,-0.050974,-128.7],[147,-0.050974,-128.7],[157.5,-0.050974,-128.7],[168,-0.050974,-128.7],[178.5,-0.050974,-128.7],[189,-0.050974,-128.7],[199.5,-0.050974,-128.7],[210,-0.050974,-128.7],[-6.9e-05,-0.050974,-118.8],[10.4999,-0.050974,-118.8],[20.9999,-0.050974,-118.8],[31.4999,-0.050974,-118.8],[41.9999,-0.050974,-118.8],[52.4999,-0.050974,-118.8],[62.9999,-0.050974,-118.8],[73.4999,-0.050974,-118.8],[83.9999,-0.050974,-118.8],[94.4999,-0.050974,-118.8],[105,-0.050974,-118.8],[115.5,-0.050974,-118.8],[126,-0.050974,-118.8],[136.5,-0.050974,-118.8],[147,-0.050974,-118.8],[157.5,-0.050974,-118.8],[168,-0.050974,-118.8],[178.5,-0.050974,-118.8],[189,-0.050974,-118.8],[199.5,-0.050974,-118.8],[210,-0.050974,-118.8],[-6.9e-05,-0.050974,-108.9],[10.4999,-0.050974,-108.9],[20.9999,-0.050974,-108.9],[31.4999,-0.050974,-108.9],[41.9999,-0.050974,-108.9],[52.4999,-0.050974,-108.9],[62.9999,-0.050974,-108.9],[73.4999,-0.050974,-108.9],[83.9999,-0.050974,-108.9],[94.4999,-0.050974,-108.9],[105,-0.050974,-108.9],[115.5,-0.050974,-108.9],[126,-0.050974,-108.9],[136.5,-0.050974,-108.9],[147,-0.050974,-108.9],[157.5,-0.050974,-108.9],[168,-0.050974,-108.9],[178.5,-0.050974,-108.9],[189,-0.050974,-108.9],[199.5,-0.050974,-108.9],[210,-0.050974,-108.9],[-6.9e-05,-0.050974,-99],[10.4999,-0.050974,-99],[20.9999,-0.050974,-99],[31.4999,-0.050974,-99],[41.9999,-0.050974,-99],[52.4999,-0.050974,-99],[62.9999,-0.050974,-99],[73.4999,-0.050974,-99],[83.9999,-0.050974,-99],[94.4999,-0.050974,-99],[105,-0.050974,-99],[115.5,-0.050974,-99],[126,-0.050974,-99],[136.5,-0.050974,-99],[147,-0.050974,-99],[157.5,-0.050974,-99],[168,-0.050974,-99],[178.5,-0.050974,-99],[189,-0.050974,-99],[199.5,-0.050974,-99],[210,-0.050974,-99],[-6.9e-05,-0.050974,-89.1],[10.4999,-0.050974,-89.1],[20.9999,-0.050974,-89.1],[31.4999,-0.050974,-89.1],[41.9999,-0.050974,-89.1],[52.4999,-0.050974,-89.1],[62.9999,-0.050974,-89.1],[73.4999,-0.050974,-89.1],[83.9999,-0.050974,-89.1],[94.4999,-0.050974,-89.1],[105,-0.050974,-89.1],[115.5,-0.050974,-89.1],[126,-0.050974,-89.1],[136.5,-0.050974,-89.1],[147,-0.050974,-89.1],[157.5,-0.050974,-89.1],[168,-0.050974,-89.1],[178.5,-0.050974,-89.1],[189,-0.050974,-89.1],[199.5,-0.050974,-89.1],[210,-0.050974,-89.1],[-6.9e-05,-0.050974,-79.2],[10.4999,-0.050974,-79.2],[20.9999,-0.050974,-79.2],[31.4999,-0.050974,-79.2],[41.9999,-0.050974,-79.2],[52.4999,-0.050974,-79.2],[62.9999,-0.050974,-79.2],[73.4999,-0.050974,-79.2],[83.9999,-0.050974,-79.2],[94.4999,-0.050974,-79.2],[105,-0.050974,-79.2],[115.5,-0.050974,-79.2],[126,-0.050974,-79.2],[136.5,-0.050974,-79.2],[147,-0.050974,-79.2],[157.5,-0.050974,-79.2],[168,-0.050974,-79.2],[178.5,-0.050974,-79.2],[189,-0.050974,-79.2],[199.5,-0.050974,-79.2],[210,-0.050974,-79.2],[-6.9e-05,-0.050974,-69.3],[10.4999,-0.050974,-69.3],[20.9999,-0.050974,-69.3],[31.4999,-0.050974,-69.3],[41.9999,-0.050974,-69.3],[52.4999,-0.050974,-69.3],[62.9999,-0.050974,-69.3],[73.4999,-0.050974,-69.3],[83.9999,-0.050974,-69.3],[94.4999,-0.050974,-69.3],[105,-0.050974,-69.3],[115.5,-0.050974,-69.3],[126,-0.050974,-69.3],[136.5,-0.050974,-69.3],[147,-0.050974,-69.3],[157.5,-0.050974,-69.3],[168,-0.050974,-69.3],[178.5,-0.050974,-69.3],[189,-0.050974,-69.3],[199.5,-0.050974,-69.3],[210,-0.050974,-69.3],[-6.9e-05,-0.050974,-59.4],[10.4999,-0.050974,-59.4],[20.9999,-0.050974,-59.4],[31.4999,-0.050974,-59.4],[41.9999,-0.050974,-59.4],[52.4999,-0.050974,-59.4],[62.9999,-0.050974,-59.4],[73.4999,-0.050974,-59.4],[83.9999,-0.050974,-59.4],[94.4999,-0.050974,-59.4],[105,-0.050974,-59.4],[115.5,-0.050974,-59.4],[126,-0.050974,-59.4],[136.5,-0.050974,-59.4],[147,-0.050974,-59.4],[157.5,-0.050974,-59.4],[168,-0.050974,-59.4],[178.5,-0.050974,-59.4],[189,-0.050974,-59.4],[199.5,-0.050974,-59.4],[210,-0.050974,-59.4],[-6.9e-05,-0.050974,-49.5],[10.4999,-0.050974,-49.5],[20.9999,-0.050974,-49.5],[31.4999,-0.050974,-49.5],[41.9999,-0.050974,-49.5],[52.4999,-0.050974,-49.5],[62.9999,-0.050974,-49.5],[73.4999,-0.050974,-49.5],[83.9999,-0.050974,-49.5],[94.4999,-0.050974,-49.5],[105,-0.050974,-49.5],[115.5,-0.050974,-49.5],[126,-0.050974,-49.5],[136.5,-0.050974,-49.5],[147,-0.050974,-49.5],[157.5,-0.050974,-49.5],[168,-0.050974,-49.5],[178.5,-0.050974,-49.5],[189,-0.050974,-49.5],[199.5,-0.050974,-49.5],[210,-0.050974,-49.5],[-6.9e-05,-0.050974,-39.6],[10.4999,-0.050974,-39.6],[20.9999,-0.050974,-39.6],[31.4999,-0.050974,-39.6],[41.9999,-0.050974,-39.6],[52.4999,-0.050974,-39.6],[62.9999,-0.050974,-39.6],[73.4999,-0.050974,-39.6],[83.9999,-0.050974,-39.6],[94.4999,-0.050974,-39.6],[105,-0.050974,-39.6],[115.5,-0.050974,-39.6],[126,-0.050974,-39.6],[136.5,-0.050974,-39.6],[147,-0.050974,-39.6],[157.5,-0.050974,-39.6],[168,-0.050974,-39.6],[178.5,-0.050974,-39.6],[189,-0.050974,-39.6],[199.5,-0.050974,-39.6],[210,-0.050974,-39.6],[-6.9e-05,-0.050974,-29.7],[10.4999,-0.050974,-29.7],[20.9999,-0.050974,-29.7],[31.4999,-0.050974,-29.7],[41.9999,-0.050974,-29.7],[52.4999,-0.050974,-29.7],[62.9999,-0.050974,-29.7],[73.4999,-0.050974,-29.7],[83.9999,-0.050974,-29.7],[94.4999,-0.050974,-29.7],[105,-0.050974,-29.7],[115.5,-0.050974,-29.7],[126,-0.050974,-29.7],[136.5,-0.050974,-29.7],[147,-0.050974,-29.7],[157.5,-0.050974,-29.7],[168,-0.050974,-29.7],[178.5,-0.050974,-29.7],[189,-0.050974,-29.7],[199.5,-0.050974,-29.7],[210,-0.050974,-29.7],[-6.9e-05,-0.050974,-19.8],[10.4999,-0.050974,-19.8],[20.9999,-0.050974,-19.8],[31.4999,-0.050974,-19.8],[41.9999,-0.050974,-19.8],[52.4999,-0.050974,-19.8],[62.9999,-0.050974,-19.8],[73.4999,-0.050974,-19.8],[83.9999,-0.050974,-19.8],[94.4999,-0.050974,-19.8],[105,-0.050974,-19.8],[115.5,-0.050974,-19.8],[126,-0.050974,-19.8],[136.5,-0.050974,-19.8],[147,-0.050974,-19.8],[157.5,-0.050974,-19.8],[168,-0.050974,-19.8],[178.5,-0.050974,-19.8],[189,-0.050974,-19.8],[199.5,-0.050974,-19.8],[210,-0.050974,-19.8],[-6.9e-05,-0.050974,-9.9],[10.4999,-0.050974,-9.9],[20.9999,-0.050974,-9.9],[31.4999,-0.050974,-9.9],[41.9999,-0.050974,-9.9],[52.4999,-0.050974,-9.9],[62.9999,-0.050974,-9.9],[73.4999,-0.050974,-9.9],[83.9999,-0.050974,-9.9],[94.4999,-0.050974,-9.9],[105,-0.050974,-9.9],[115.5,-0.050974,-9.9],[126,-0.050974,-9.9],[136.5,-0.050974,-9.9],[147,-0.050974,-9.9],[157.5,-0.050974,-9.9],[168,-0.050974,-9.9],[178.5,-0.050974,-9.9],[189,-0.050974,-9.9],[199.5,-0.050974,-9.9],[210,-0.050974,-9.9],[-6.9e-05,-0.050974,-0],[10.4999,-0.050974,-0],[20.9999,-0.050974,-0],[31.4999,-0.050974,-0],[41.9999,-0.050974,-0],[52.4999,-0.050974,-0],[62.9999,-0.050974,-0],[73.4999,-0.050974,-0],[83.9999,-0.050974,-0],[94.4999,-0.050974,-0],[105,-0.050974,-0],[115.5,-0.050974,-0],[126,-0.050974,-0],[136.5,-0.050974,-0],[147,-0.050974,-0],[157.5,-0.050974,-0],[168,-0.050974,-0],[178.5,-0.050974,-0],[189,-0.050974,-0],[199.5,-0.050974,-0],[210,-0.050974,-0],[-6.9e-05,-0.050974,9.9],[10.4999,-0.050974,9.9],[20.9999,-0.050974,9.9],[31.4999,-0.050974,9.9],[41.9999,-0.050974,9.9],[52.4999,-0.050974,9.9],[62.9999,-0.050974,9.9],[73.4999,-0.050974,9.9],[83.9999,-0.050974,9.9],[94.4999,-0.050974,9.9],[105,-0.050974,9.9],[115.5,-0.050974,9.9],[126,-0.050974,9.9],[136.5,-0.050974,9.9],[147,-0.050974,9.9],[157.5,-0.050974,9.9],[168,-0.050974,9.9],[178.5,-0.050974,9.9],[189,-0.050974,9.9],[199.5,-0.050974,9.9],[210,-0.050974,9.9],[-6.9e-05,-0.050974,19.8],[10.4999,-0.050974,19.8],[20.9999,-0.050974,19.8],[31.4999,-0.050974,19.8],[41.9999,-0.050974,19.8],[52.4999,-0.050974,19.8],[62.9999,-0.050974,19.8],[73.4999,-0.050974,19.8],[83.9999,-0.050974,19.8],[94.4999,-0.050974,19.8],[105,-0.050974,19.8],[115.5,-0.050974,19.8],[126,-0.050974,19.8],[136.5,-0.050974,19.8],[147,-0.050974,19.8],[157.5,-0.050974,19.8],[168,-0.050974,19.8],[178.5,-0.050974,19.8],[189,-0.050974,19.8],[199.5,-0.050974,19.8],[210,-0.050974,19.8],[-6.9e-05,-0.050974,29.7],[10.4999,-0.050974,29.7],[20.9999,-0.050974,29.7],[31.4999,-0.050974,29.7],[41.9999,-0.050974,29.7],[52.4999,-0.050974,29.7],[62.9999,-0.050974,29.7],[73.4999,-0.050974,29.7],[83.9999,-0.050974,29.7],[94.4999,-0.050974,29.7],[105,-0.050974,29.7],[115.5,-0.050974,29.7],[126,-0.050974,29.7],[136.5,-0.050974,29.7],[147,-0.050974,29.7],[157.5,-0.050974,29.7],[168,-0.050974,29.7],[178.5,-0.050974,29.7],[189,-0.050974,29.7],[199.5,-0.050974,29.7],[210,-0.050974,29.7],[-6.9e-05,-0.050974,39.6],[10.4999,-0.050974,39.6],[20.9999,-0.050974,39.6],[31.4999,-0.050974,39.6],[41.9999,-0.050974,39.6],[52.4999,-0.050974,39.6],[62.9999,-0.050974,39.6],[73.4999,-0.050974,39.6],[83.9999,-0.050974,39.6],[94.4999,-0.050974,39.6],[105,-0.050974,39.6],[115.5,-0.050974,39.6],[126,-0.050974,39.6],[136.5,-0.050974,39.6],[147,-0.050974,39.6],[157.5,-0.050974,39.6],[168,-0.050974,39.6],[178.5,-0.050974,39.6],[189,-0.050974,39.6],[199.5,-0.050974,39.6],[210,-0.050974,39.6],[-6.9e-05,-0.050974,49.5],[10.4999,-0.050974,49.5],[20.9999,-0.050974,49.5],[31.4999,-0.050974,49.5],[41.9999,-0.050974,49.5],[52.4999,-0.050974,49.5],[62.9999,-0.050974,49.5],[73.4999,-0.050974,49.5],[83.9999,-0.050974,49.5],[94.4999,-0.050974,49.5],[105,-0.050974,49.5],[115.5,-0.050974,49.5],[126,-0.050974,49.5],[136.5,-0.050974,49.5],[147,-0.050974,49.5],[157.5,-0.050974,49.5],[168,-0.050974,49.5],[178.5,-0.050974,49.5],[189,-0.050974,49.5],[199.5,-0.050974,49.5],[210,-0.050974,49.5],[-6.9e-05,-0.050974,59.4],[10.4999,-0.050974,59.4],[20.9999,-0.050974,59.4],[31.4999,-0.050974,59.4],[41.9999,-0.050974,59.4],[52.4999,-0.050974,59.4],[62.9999,-0.050974,59.4],[73.4999,-0.050974,59.4],[83.9999,-0.050974,59.4],[94.4999,-0.050974,59.4],[105,-0.050974,59.4],[115.5,-0.050974,59.4],[126,-0.050974,59.4],[136.5,-0.050974,59.4],[147,-0.050974,59.4],[157.5,-0.050974,59.4],[168,-0.050974,59.4],[178.5,-0.050974,59.4],[189,-0.050974,59.4],[199.5,-0.050974,59.4],[210,-0.050974,59.4],[-6.9e-05,-0.050974,69.3],[10.4999,-0.050974,69.3],[20.9999,-0.050974,69.3],[31.4999,-0.050974,69.3],[41.9999,-0.050974,69.3],[52.4999,-0.050974,69.3],[62.9999,-0.050974,69.3],[73.4999,-0.050974,69.3],[83.9999,-0.050974,69.3],[94.4999,-0.050974,69.3],[105,-0.050974,69.3],[115.5,-0.050974,69.3],[126,-0.050974,69.3],[136.5,-0.050974,69.3],[147,-0.050974,69.3],[157.5,-0.050974,69.3],[168,-0.050974,69.3],[178.5,-0.050974,69.3],[189,-0.050974,69.3],[199.5,-0.050974,69.3],[210,-0.050974,69.3],[-6.9e-05,-0.050974,79.2],[10.4999,-0.050974,79.2],[20.9999,-0.050974,79.2],[31.4999,-0.050974,79.2],[41.9999,-0.050974,79.2],[52.4999,-0.050974,79.2],[62.9999,-0.050974,79.2],[73.4999,-0.050974,79.2],[83.9999,-0.050974,79.2],[94.4999,-0.050974,79.2],[105,-0.050974,79.2],[115.5,-0.050974,79.2],[126,-0.050974,79.2],[136.5,-0.050974,79.2],[147,-0.050974,79.2],[157.5,-0.050974,79.2],[168,-0.050974,79.2],[178.5,-0.050974,79.2],[189,-0.050974,79.2],[199.5,-0.050974,79.2],[210,-0.050974,79.2],[-6.9e-05,-0.050974,89.1],[10.4999,-0.050974,89.1],[20.9999,-0.050974,89.1],[31.4999,-0.050974,89.1],[41.9999,-0.050974,89.1],[52.4999,-0.050974,89.1],[62.9999,-0.050974,89.1],[73.4999,-0.050974,89.1],[83.9999,-0.050974,89.1],[94.4999,-0.050974,89.1],[105,-0.050974,89.1],[115.5,-0.050974,89.1],[126,-0.050974,89.1],[136.5,-0.050974,89.1],[147,-0.050974,89.1],[157.5,-0.050974,89.1],[168,-0.050974,89.1],[178.5,-0.050974,89.1],[189,-0.050974,89.1],[199.5,-0.050974,89.1],[210,-0.050974,89.1],[-6.9e-05,-0.050974,99],[10.4999,-0.050974,99],[20.9999,-0.050974,99],[31.4999,-0.050974,99],[41.9999,-0.050974,99],[52.4999,-0.050974,99],[62.9999,-0.050974,99],[73.4999,-0.050974,99],[83.9999,-0.050974,99],[94.4999,-0.050974,99],[105,-0.050974,99],[115.5,-0.050974,99],[126,-0.050974,99],[136.5,-0.050974,99],[147,-0.050974,99],[157.5,-0.050974,99],[168,-0.050974,99],[178.5,-0.050974,99],[189,-0.050974,99],[199.5,-0.050974,99],[210,-0.050974,99],[-6.9e-05,-0.050974,108.9],[10.4999,-0.050974,108.9],[20.9999,-0.050974,108.9],[31.4999,-0.050974,108.9],[41.9999,-0.050974,108.9],[52.4999,-0.050974,108.9],[62.9999,-0.050974,108.9],[73.4999,-0.050974,108.9],[83.9999,-0.050974,108.9],[94.4999,-0.050974,108.9],[105,-0.050974,108.9],[115.5,-0.050974,108.9],[126,-0.050974,108.9],[136.5,-0.050974,108.9],[147,-0.050974,108.9],[157.5,-0.050974,108.9],[168,-0.050974,108.9],[178.5,-0.050974,108.9],[189,-0.050974,108.9],[199.5,-0.050974,108.9],[210,-0.050974,108.9],[-6.9e-05,-0.050974,118.8],[10.4999,-0.050974,118.8],[20.9999,-0.050974,118.8],[31.4999,-0.050974,118.8],[41.9999,-0.050974,118.8],[52.4999,-0.050974,118.8],[62.9999,-0.050974,118.8],[73.4999,-0.050974,118.8],[83.9999,-0.050974,118.8],[94.4999,-0.050974,118.8],[105,-0.050974,118.8],[115.5,-0.050974,118.8],[126,-0.050974,118.8],[136.5,-0.050974,118.8],[147,-0.050974,118.8],[157.5,-0.050974,118.8],[168,-0.050974,118.8],[178.5,-0.050974,118.8],[189,-0.050974,118.8],[199.5,-0.050974,118.8],[210,-0.050974,118.8],[-6.9e-05,-0.050974,128.7],[10.4999,-0.050974,128.7],[20.9999,-0.050974,128.7],[31.4999,-0.050974,128.7],[41.9999,-0.050974,128.7],[52.4999,-0.050974,128.7],[62.9999,-0.050974,128.7],[73.4999,-0.050974,128.7],[83.9999,-0.050974,128.7],[94.4999,-0.050974,128.7],[105,-0.050974,128.7],[115.5,-0.050974,128.7],[126,-0.050974,128.7],[136.5,-0.050974,128.7],[147,-0.050974,128.7],[157.5,-0.050974,128.7],[168,-0.050974,128.7],[178.5,-0.050974,128.7],[189,-0.050974,128.7],[199.5,-0.050974,128.7],[210,-0.050974,128.7],[-6.9e-05,-0.050974,138.6],[10.4999,-0.050974,138.6],[20.9999,-0.050974,138.6],[31.4999,-0.050974,138.6],[41.9999,-0.050974,138.6],[52.4999,-0.050974,138.6],[62.9999,-0.050974,138.6],[73.4999,-0.050974,138.6],[83.9999,-0.050974,138.6],[94.4999,-0.050974,138.6],[105,-0.050974,138.6],[115.5,-0.050974,138.6],[126,-0.050974,138.6],[136.5,-0.050974,138.6],[147,-0.050974,138.6],[157.5,-0.050974,138.6],[168,-0.050974,138.6],[178.5,-0.050974,138.6],[189,-0.050974,138.6],[199.5,-0.050974,138.6],[210,-0.050974,138.6],[-6.9e-05,-0.050974,148.5],[10.4999,-0.050974,148.5],[20.9999,-0.050974,148.5],[31.4999,-0.050974,148.5],[41.9999,-0.050974,148.5],[52.4999,-0.050974,148.5],[62.9999,-0.050974,148.5],[73.4999,-0.050974,148.5],[83.9999,-0.050974,148.5],[94.4999,-0.050974,148.5],[105,-0.050974,148.5],[115.5,-0.050974,148.5],[126,-0.050974,148.5],[136.5,-0.050974,148.5],[147,-0.050974,148.5],[157.5,-0.050974,148.5],[168,-0.050974,148.5],[178.5,-0.050974,148.5],[189,-0.050974,148.5],[199.5,-0.050974,148.5],[210,-0.050974,148.5]],
+ "name": "ffd.001"
+ }],
+ "skinIndices": [],
+ "faces": [42,0,21,22,0,0,1,2,0,1,2,42,22,1,0,0,2,3,0,2,3,0,42,1,22,23,0,3,2,4,3,2,2,42,23,2,1,0,4,5,3,2,3,3,42,2,23,24,0,5,4,6,3,2,2,42,24,3,2,0,6,7,5,2,3,3,42,3,24,25,0,7,6,8,3,2,2,42,25,4,3,0,8,9,7,2,3,3,42,4,25,26,0,9,8,10,3,2,4,42,26,5,4,0,10,11,9,4,3,3,42,5,26,27,0,11,10,12,3,4,2,42,27,6,5,0,12,13,11,2,3,3,42,6,27,28,0,13,12,14,3,2,2,42,28,7,6,0,14,15,13,2,3,3,42,7,28,29,0,15,14,16,3,2,2,42,29,8,7,0,16,17,15,2,3,3,42,8,29,30,0,17,16,18,3,2,2,42,30,9,8,0,18,19,17,2,3,3,42,9,30,31,0,19,18,20,3,2,2,42,31,10,9,0,20,21,19,2,3,3,42,10,31,32,0,21,20,22,3,2,2,42,32,11,10,0,22,23,21,2,3,3,42,11,32,33,0,23,22,24,3,2,2,42,33,12,11,0,24,25,23,2,3,3,42,12,33,34,0,25,24,26,3,2,2,42,34,13,12,0,26,27,25,2,3,3,42,13,34,35,0,27,26,28,3,2,2,42,35,14,13,0,28,29,27,2,3,3,42,14,35,36,0,29,28,30,3,2,2,42,36,15,14,0,30,31,29,2,3,3,42,15,36,37,0,31,30,32,3,2,2,42,37,16,15,0,32,33,31,2,3,3,42,16,37,38,0,33,32,34,3,2,2,42,38,17,16,0,34,35,33,2,3,3,42,17,38,39,0,35,34,36,3,2,2,42,39,18,17,0,36,37,35,2,3,3,42,18,39,40,0,37,36,38,3,2,2,42,40,19,18,0,38,39,37,2,3,3,42,19,40,41,0,39,38,40,3,2,5,42,41,20,19,0,40,41,39,5,6,3,42,21,42,43,0,1,42,43,1,1,4,42,43,22,21,0,43,2,1,4,2,1,42,22,43,44,0,2,43,44,2,4,4,42,44,23,22,0,44,4,2,4,2,2,42,23,44,45,0,4,44,45,2,4,4,42,45,24,23,0,45,6,4,4,2,2,42,24,45,46,0,6,45,46,2,4,4,42,46,25,24,0,46,8,6,4,2,2,42,25,46,47,0,8,46,47,2,4,4,42,47,26,25,0,47,10,8,4,4,2,42,26,47,48,0,10,47,48,4,4,2,42,48,27,26,0,48,12,10,2,2,4,42,27,48,49,0,12,48,49,2,2,2,42,49,28,27,0,49,14,12,2,2,2,42,28,49,50,0,14,49,50,2,2,2,42,50,29,28,0,50,16,14,2,2,2,42,29,50,51,0,16,50,51,2,2,4,42,51,30,29,0,51,18,16,4,2,2,42,30,51,52,0,18,51,52,2,4,4,42,52,31,30,0,52,20,18,4,2,2,42,31,52,53,0,20,52,53,2,4,2,42,53,32,31,0,53,22,20,2,2,2,42,32,53,54,0,22,53,54,2,2,2,42,54,33,32,0,54,24,22,2,2,2,42,33,54,55,0,24,54,55,2,2,2,42,55,34,33,0,55,26,24,2,2,2,42,34,55,56,0,26,55,56,2,2,2,42,56,35,34,0,56,28,26,2,2,2,42,35,56,57,0,28,56,57,2,2,2,42,57,36,35,0,57,30,28,2,2,2,42,36,57,58,0,30,57,58,2,2,2,42,58,37,36,0,58,32,30,2,2,2,42,37,58,59,0,32,58,59,2,2,2,42,59,38,37,0,59,34,32,2,2,2,42,38,59,60,0,34,59,60,2,2,2,42,60,39,38,0,60,36,34,2,2,2,42,39,60,61,0,36,60,61,2,2,2,42,61,40,39,0,61,38,36,2,2,2,42,40,61,62,0,38,61,62,2,2,5,42,62,41,40,0,62,40,38,5,5,2,42,42,63,64,0,42,63,64,1,1,4,42,64,43,42,0,64,43,42,4,4,1,42,43,64,65,0,43,64,65,4,4,4,42,65,44,43,0,65,44,43,4,4,4,42,44,65,66,0,44,65,66,4,4,4,42,66,45,44,0,66,45,44,4,4,4,42,45,66,67,0,45,66,67,4,4,4,42,67,46,45,0,67,46,45,4,4,4,42,46,67,68,0,46,67,68,4,4,4,42,68,47,46,0,68,47,46,4,4,4,42,47,68,69,0,47,68,69,4,4,4,42,69,48,47,0,69,48,47,4,2,4,42,48,69,70,0,48,69,70,2,4,4,42,70,49,48,0,70,49,48,4,2,2,42,49,70,71,0,49,70,71,2,4,4,42,71,50,49,0,71,50,49,4,2,2,42,50,71,72,0,50,71,72,2,4,4,42,72,51,50,0,72,51,50,4,4,2,42,51,72,73,0,51,72,73,4,4,4,42,73,52,51,0,73,52,51,4,4,4,42,52,73,74,0,52,73,74,4,4,2,42,74,53,52,0,74,53,52,2,2,4,42,53,74,75,0,53,74,75,2,2,2,42,75,54,53,0,75,54,53,2,2,2,42,54,75,76,0,54,75,76,2,2,4,42,76,55,54,0,76,55,54,4,2,2,42,55,76,77,0,55,76,77,2,4,2,42,77,56,55,0,77,56,55,2,2,2,42,56,77,78,0,56,77,78,2,2,2,42,78,57,56,0,78,57,56,2,2,2,42,57,78,79,0,57,78,79,2,2,2,42,79,58,57,0,79,58,57,2,2,2,42,58,79,80,0,58,79,80,2,2,2,42,80,59,58,0,80,59,58,2,2,2,42,59,80,81,0,59,80,81,2,2,2,42,81,60,59,0,81,60,59,2,2,2,42,60,81,82,0,60,81,82,2,2,2,42,82,61,60,0,82,61,60,2,2,2,42,61,82,83,0,61,82,83,2,2,5,42,83,62,61,0,83,62,61,5,5,2,42,63,84,85,0,63,84,85,1,1,4,42,85,64,63,0,85,64,63,4,4,1,42,64,85,86,0,64,85,86,4,4,4,42,86,65,64,0,86,65,64,4,4,4,42,65,86,87,0,65,86,87,4,4,4,42,87,66,65,0,87,66,65,4,4,4,42,66,87,88,0,66,87,88,4,4,4,42,88,67,66,0,88,67,66,4,4,4,42,67,88,89,0,67,88,89,4,4,4,42,89,68,67,0,89,68,67,4,4,4,42,68,89,90,0,68,89,90,4,4,4,42,90,69,68,0,90,69,68,4,4,4,42,69,90,91,0,69,90,91,4,4,4,42,91,70,69,0,91,70,69,4,4,4,42,70,91,92,0,70,91,92,4,4,4,42,92,71,70,0,92,71,70,4,4,4,42,71,92,93,0,71,92,93,4,4,4,42,93,72,71,0,93,72,71,4,4,4,42,72,93,94,0,72,93,94,4,4,4,42,94,73,72,0,94,73,72,4,4,4,42,73,94,95,0,73,94,95,4,4,2,42,95,74,73,0,95,74,73,2,2,4,42,74,95,96,0,74,95,96,2,2,2,42,96,75,74,0,96,75,74,2,2,2,42,75,96,97,0,75,96,97,2,2,4,42,97,76,75,0,97,76,75,4,4,2,42,76,97,98,0,76,97,98,4,4,2,42,98,77,76,0,98,77,76,2,2,4,42,77,98,99,0,77,98,99,2,2,2,42,99,78,77,0,99,78,77,2,2,2,42,78,99,100,0,78,99,100,2,2,2,42,100,79,78,0,100,79,78,2,2,2,42,79,100,101,0,79,100,101,2,2,2,42,101,80,79,0,101,80,79,2,2,2,42,80,101,102,0,80,101,102,2,2,2,42,102,81,80,0,102,81,80,2,2,2,42,81,102,103,0,81,102,103,2,2,2,42,103,82,81,0,103,82,81,2,2,2,42,82,103,104,0,82,103,104,2,2,5,42,104,83,82,0,104,83,82,5,5,2,42,84,105,106,0,84,105,106,1,1,4,42,106,85,84,0,106,85,84,4,4,1,42,85,106,107,0,85,106,107,4,4,4,42,107,86,85,0,107,86,85,4,4,4,42,86,107,108,0,86,107,108,4,4,4,42,108,87,86,0,108,87,86,4,4,4,42,87,108,109,0,87,108,109,4,4,4,42,109,88,87,0,109,88,87,4,4,4,42,88,109,110,0,88,109,110,4,4,4,42,110,89,88,0,110,89,88,4,4,4,42,89,110,111,0,89,110,111,4,4,4,42,111,90,89,0,111,90,89,4,4,4,42,90,111,112,0,90,111,112,4,4,4,42,112,91,90,0,112,91,90,4,4,4,42,91,112,113,0,91,112,113,4,4,4,42,113,92,91,0,113,92,91,4,4,4,42,92,113,114,0,92,113,114,4,4,4,42,114,93,92,0,114,93,92,4,4,4,42,93,114,115,0,93,114,115,4,4,4,42,115,94,93,0,115,94,93,4,4,4,42,94,115,116,0,94,115,116,4,4,2,42,116,95,94,0,116,95,94,2,2,4,42,95,116,117,0,95,116,117,2,2,2,42,117,96,95,0,117,96,95,2,2,2,42,96,117,118,0,96,117,118,2,2,4,42,118,97,96,0,118,97,96,4,4,2,42,97,118,119,0,97,118,119,4,4,2,42,119,98,97,0,119,98,97,2,2,4,42,98,119,120,0,98,119,120,2,2,2,42,120,99,98,0,120,99,98,2,2,2,42,99,120,121,0,99,120,121,2,2,2,42,121,100,99,0,121,100,99,2,2,2,42,100,121,122,0,100,121,122,2,2,2,42,122,101,100,0,122,101,100,2,2,2,42,101,122,123,0,101,122,123,2,2,2,42,123,102,101,0,123,102,101,2,2,2,42,102,123,124,0,102,123,124,2,2,2,42,124,103,102,0,124,103,102,2,2,2,42,103,124,125,0,103,124,125,2,2,5,42,125,104,103,0,125,104,103,5,5,2,42,105,126,127,0,105,126,127,1,1,4,42,127,106,105,0,127,106,105,4,4,1,42,106,127,128,0,106,127,128,4,4,4,42,128,107,106,0,128,107,106,4,4,4,42,107,128,129,0,107,128,129,4,4,4,42,129,108,107,0,129,108,107,4,4,4,42,108,129,130,0,108,129,130,4,4,4,42,130,109,108,0,130,109,108,4,4,4,42,109,130,131,0,109,130,131,4,4,4,42,131,110,109,0,131,110,109,4,4,4,42,110,131,132,0,110,131,132,4,4,4,42,132,111,110,0,132,111,110,4,4,4,42,111,132,133,0,111,132,133,4,4,4,42,133,112,111,0,133,112,111,4,4,4,42,112,133,134,0,112,133,134,4,4,4,42,134,113,112,0,134,113,112,4,4,4,42,113,134,135,0,113,134,135,4,4,4,42,135,114,113,0,135,114,113,4,4,4,42,114,135,136,0,114,135,136,4,4,4,42,136,115,114,0,136,115,114,4,4,4,42,115,136,137,0,115,136,137,4,4,2,42,137,116,115,0,137,116,115,2,2,4,42,116,137,138,0,116,137,138,2,2,2,42,138,117,116,0,138,117,116,2,2,2,42,117,138,139,0,117,138,139,2,2,4,42,139,118,117,0,139,118,117,4,4,2,42,118,139,140,0,118,139,140,4,4,2,42,140,119,118,0,140,119,118,2,2,4,42,119,140,141,0,119,140,141,2,2,2,42,141,120,119,0,141,120,119,2,2,2,42,120,141,142,0,120,141,142,2,2,2,42,142,121,120,0,142,121,120,2,2,2,42,121,142,143,0,121,142,143,2,2,2,42,143,122,121,0,143,122,121,2,2,2,42,122,143,144,0,122,143,144,2,2,2,42,144,123,122,0,144,123,122,2,2,2,42,123,144,145,0,123,144,145,2,2,2,42,145,124,123,0,145,124,123,2,2,2,42,124,145,146,0,124,145,146,2,2,5,42,146,125,124,0,146,125,124,5,5,2,42,126,147,148,0,126,147,148,1,1,4,42,148,127,126,0,148,127,126,4,4,1,42,127,148,149,0,127,148,149,4,4,4,42,149,128,127,0,149,128,127,4,4,4,42,128,149,150,0,128,149,150,4,4,4,42,150,129,128,0,150,129,128,4,4,4,42,129,150,151,0,129,150,151,4,4,4,42,151,130,129,0,151,130,129,4,4,4,42,130,151,152,0,130,151,152,4,4,4,42,152,131,130,0,152,131,130,4,4,4,42,131,152,153,0,131,152,153,4,4,4,42,153,132,131,0,153,132,131,4,4,4,42,132,153,154,0,132,153,154,4,4,4,42,154,133,132,0,154,133,132,4,4,4,42,133,154,155,0,133,154,155,4,4,4,42,155,134,133,0,155,134,133,4,4,4,42,134,155,156,0,134,155,156,4,4,4,42,156,135,134,0,156,135,134,4,4,4,42,135,156,157,0,135,156,157,4,4,4,42,157,136,135,0,157,136,135,4,4,4,42,136,157,158,0,136,157,158,4,4,2,42,158,137,136,0,158,137,136,2,2,4,42,137,158,159,0,137,158,159,2,2,2,42,159,138,137,0,159,138,137,2,2,2,42,138,159,160,0,138,159,160,2,2,4,42,160,139,138,0,160,139,138,4,4,2,42,139,160,161,0,139,160,161,4,4,2,42,161,140,139,0,161,140,139,2,2,4,42,140,161,162,0,140,161,162,2,2,2,42,162,141,140,0,162,141,140,2,2,2,42,141,162,163,0,141,162,163,2,2,2,42,163,142,141,0,163,142,141,2,2,2,42,142,163,164,0,142,163,164,2,2,2,42,164,143,142,0,164,143,142,2,2,2,42,143,164,165,0,143,164,165,2,2,2,42,165,144,143,0,165,144,143,2,2,2,42,144,165,166,0,144,165,166,2,2,2,42,166,145,144,0,166,145,144,2,2,2,42,145,166,167,0,145,166,167,2,2,5,42,167,146,145,0,167,146,145,5,5,2,42,147,168,169,0,147,168,169,1,1,4,42,169,148,147,0,169,148,147,4,4,1,42,148,169,170,0,148,169,170,4,4,4,42,170,149,148,0,170,149,148,4,4,4,42,149,170,171,0,149,170,171,4,4,4,42,171,150,149,0,171,150,149,4,4,4,42,150,171,172,0,150,171,172,4,4,4,42,172,151,150,0,172,151,150,4,4,4,42,151,172,173,0,151,172,173,4,4,4,42,173,152,151,0,173,152,151,4,4,4,42,152,173,174,0,152,173,174,4,4,4,42,174,153,152,0,174,153,152,4,4,4,42,153,174,175,0,153,174,175,4,4,4,42,175,154,153,0,175,154,153,4,4,4,42,154,175,176,0,154,175,176,4,4,4,42,176,155,154,0,176,155,154,4,4,4,42,155,176,177,0,155,176,177,4,4,4,42,177,156,155,0,177,156,155,4,4,4,42,156,177,178,0,156,177,178,4,4,4,42,178,157,156,0,178,157,156,4,4,4,42,157,178,179,0,157,178,179,4,4,2,42,179,158,157,0,179,158,157,2,2,4,42,158,179,180,0,158,179,180,2,2,2,42,180,159,158,0,180,159,158,2,2,2,42,159,180,181,0,159,180,181,2,2,4,42,181,160,159,0,181,160,159,4,4,2,42,160,181,182,0,160,181,182,4,4,2,42,182,161,160,0,182,161,160,2,2,4,42,161,182,183,0,161,182,183,2,2,2,42,183,162,161,0,183,162,161,2,2,2,42,162,183,184,0,162,183,184,2,2,2,42,184,163,162,0,184,163,162,2,2,2,42,163,184,185,0,163,184,185,2,2,2,42,185,164,163,0,185,164,163,2,2,2,42,164,185,186,0,164,185,186,2,2,2,42,186,165,164,0,186,165,164,2,2,2,42,165,186,187,0,165,186,187,2,2,2,42,187,166,165,0,187,166,165,2,2,2,42,166,187,188,0,166,187,188,2,2,5,42,188,167,166,0,188,167,166,5,5,2,42,168,189,190,0,168,189,190,1,1,4,42,190,169,168,0,190,169,168,4,4,1,42,169,190,191,0,169,190,191,4,4,4,42,191,170,169,0,191,170,169,4,4,4,42,170,191,192,0,170,191,192,4,4,4,42,192,171,170,0,192,171,170,4,4,4,42,171,192,193,0,171,192,193,4,4,4,42,193,172,171,0,193,172,171,4,4,4,42,172,193,194,0,172,193,194,4,4,4,42,194,173,172,0,194,173,172,4,4,4,42,173,194,195,0,173,194,195,4,4,4,42,195,174,173,0,195,174,173,4,4,4,42,174,195,196,0,174,195,196,4,4,4,42,196,175,174,0,196,175,174,4,4,4,42,175,196,197,0,175,196,197,4,4,4,42,197,176,175,0,197,176,175,4,4,4,42,176,197,198,0,176,197,198,4,4,4,42,198,177,176,0,198,177,176,4,4,4,42,177,198,199,0,177,198,199,4,4,4,42,199,178,177,0,199,178,177,4,4,4,42,178,199,200,0,178,199,200,4,4,2,42,200,179,178,0,200,179,178,2,2,4,42,179,200,201,0,179,200,201,2,2,2,42,201,180,179,0,201,180,179,2,2,2,42,180,201,202,0,180,201,202,2,2,4,42,202,181,180,0,202,181,180,4,4,2,42,181,202,203,0,181,202,203,4,4,2,42,203,182,181,0,203,182,181,2,2,4,42,182,203,204,0,182,203,204,2,2,2,42,204,183,182,0,204,183,182,2,2,2,42,183,204,205,0,183,204,205,2,2,2,42,205,184,183,0,205,184,183,2,2,2,42,184,205,206,0,184,205,206,2,2,2,42,206,185,184,0,206,185,184,2,2,2,42,185,206,207,0,185,206,207,2,2,2,42,207,186,185,0,207,186,185,2,2,2,42,186,207,208,0,186,207,208,2,2,2,42,208,187,186,0,208,187,186,2,2,2,42,187,208,209,0,187,208,209,2,2,5,42,209,188,187,0,209,188,187,5,5,2,42,189,210,211,0,189,210,211,1,1,4,42,211,190,189,0,211,190,189,4,4,1,42,190,211,212,0,190,211,212,4,4,4,42,212,191,190,0,212,191,190,4,4,4,42,191,212,213,0,191,212,213,4,4,4,42,213,192,191,0,213,192,191,4,4,4,42,192,213,214,0,192,213,214,4,4,4,42,214,193,192,0,214,193,192,4,4,4,42,193,214,215,0,193,214,215,4,4,4,42,215,194,193,0,215,194,193,4,4,4,42,194,215,216,0,194,215,216,4,4,4,42,216,195,194,0,216,195,194,4,4,4,42,195,216,217,0,195,216,217,4,4,4,42,217,196,195,0,217,196,195,4,4,4,42,196,217,218,0,196,217,218,4,4,4,42,218,197,196,0,218,197,196,4,4,4,42,197,218,219,0,197,218,219,4,4,4,42,219,198,197,0,219,198,197,4,4,4,42,198,219,220,0,198,219,220,4,4,4,42,220,199,198,0,220,199,198,4,4,4,42,199,220,221,0,199,220,221,4,4,2,42,221,200,199,0,221,200,199,2,2,4,42,200,221,222,0,200,221,222,2,2,2,42,222,201,200,0,222,201,200,2,2,2,42,201,222,223,0,201,222,223,2,2,4,42,223,202,201,0,223,202,201,4,4,2,42,202,223,224,0,202,223,224,4,4,2,42,224,203,202,0,224,203,202,2,2,4,42,203,224,225,0,203,224,225,2,2,2,42,225,204,203,0,225,204,203,2,2,2,42,204,225,226,0,204,225,226,2,2,2,42,226,205,204,0,226,205,204,2,2,2,42,205,226,227,0,205,226,227,2,2,2,42,227,206,205,0,227,206,205,2,2,2,42,206,227,228,0,206,227,228,2,2,2,42,228,207,206,0,228,207,206,2,2,2,42,207,228,229,0,207,228,229,2,2,2,42,229,208,207,0,229,208,207,2,2,2,42,208,229,230,0,208,229,230,2,2,5,42,230,209,208,0,230,209,208,5,5,2,42,210,231,232,0,210,231,232,1,1,4,42,232,211,210,0,232,211,210,4,4,1,42,211,232,233,0,211,232,233,4,4,4,42,233,212,211,0,233,212,211,4,4,4,42,212,233,234,0,212,233,234,4,4,4,42,234,213,212,0,234,213,212,4,4,4,42,213,234,235,0,213,234,235,4,4,4,42,235,214,213,0,235,214,213,4,4,4,42,214,235,236,0,214,235,236,4,4,4,42,236,215,214,0,236,215,214,4,4,4,42,215,236,237,0,215,236,237,4,4,4,42,237,216,215,0,237,216,215,4,4,4,42,216,237,238,0,216,237,238,4,4,4,42,238,217,216,0,238,217,216,4,4,4,42,217,238,239,0,217,238,239,4,4,4,42,239,218,217,0,239,218,217,4,4,4,42,218,239,240,0,218,239,240,4,4,4,42,240,219,218,0,240,219,218,4,4,4,42,219,240,241,0,219,240,241,4,4,4,42,241,220,219,0,241,220,219,4,4,4,42,220,241,242,0,220,241,242,4,4,2,42,242,221,220,0,242,221,220,2,2,4,42,221,242,243,0,221,242,243,2,2,2,42,243,222,221,0,243,222,221,2,2,2,42,222,243,244,0,222,243,244,2,2,4,42,244,223,222,0,244,223,222,4,4,2,42,223,244,245,0,223,244,245,4,4,2,42,245,224,223,0,245,224,223,2,2,4,42,224,245,246,0,224,245,246,2,2,2,42,246,225,224,0,246,225,224,2,2,2,42,225,246,247,0,225,246,247,2,2,2,42,247,226,225,0,247,226,225,2,2,2,42,226,247,248,0,226,247,248,2,2,2,42,248,227,226,0,248,227,226,2,2,2,42,227,248,249,0,227,248,249,2,2,2,42,249,228,227,0,249,228,227,2,2,2,42,228,249,250,0,228,249,250,2,2,2,42,250,229,228,0,250,229,228,2,2,2,42,229,250,251,0,229,250,251,2,2,5,42,251,230,229,0,251,230,229,5,5,2,42,231,252,253,0,231,252,253,1,1,4,42,253,232,231,0,253,232,231,4,4,1,42,232,253,254,0,232,253,254,4,4,4,42,254,233,232,0,254,233,232,4,4,4,42,233,254,255,0,233,254,255,4,4,4,42,255,234,233,0,255,234,233,4,4,4,42,234,255,256,0,234,255,256,4,4,4,42,256,235,234,0,256,235,234,4,4,4,42,235,256,257,0,235,256,257,4,4,4,42,257,236,235,0,257,236,235,4,4,4,42,236,257,258,0,236,257,258,4,4,4,42,258,237,236,0,258,237,236,4,4,4,42,237,258,259,0,237,258,259,4,4,4,42,259,238,237,0,259,238,237,4,4,4,42,238,259,260,0,238,259,260,4,4,4,42,260,239,238,0,260,239,238,4,4,4,42,239,260,261,0,239,260,261,4,4,4,42,261,240,239,0,261,240,239,4,4,4,42,240,261,262,0,240,261,262,4,4,4,42,262,241,240,0,262,241,240,4,4,4,42,241,262,263,0,241,262,263,4,4,4,42,263,242,241,0,263,242,241,4,2,4,42,242,263,264,0,242,263,264,2,4,4,42,264,243,242,0,264,243,242,4,2,2,42,243,264,265,0,243,264,265,2,4,2,42,265,244,243,0,265,244,243,2,4,2,42,244,265,266,0,244,265,266,4,2,4,42,266,245,244,0,266,245,244,4,2,4,42,245,266,267,0,245,266,267,2,4,4,42,267,246,245,0,267,246,245,4,2,2,42,246,267,268,0,246,267,268,2,4,4,42,268,247,246,0,268,247,246,4,2,2,42,247,268,269,0,247,268,269,2,4,4,42,269,248,247,0,269,248,247,4,2,2,42,248,269,270,0,248,269,270,2,4,4,42,270,249,248,0,270,249,248,4,2,2,42,249,270,271,0,249,270,271,2,4,4,42,271,250,249,0,271,250,249,4,2,2,42,250,271,272,0,250,271,272,2,4,5,42,272,251,250,0,272,251,250,5,5,2,42,252,273,274,0,252,273,274,1,1,4,42,274,253,252,0,274,253,252,4,4,1,42,253,274,275,0,253,274,275,4,4,4,42,275,254,253,0,275,254,253,4,4,4,42,254,275,276,0,254,275,276,4,4,4,42,276,255,254,0,276,255,254,4,4,4,42,255,276,277,0,255,276,277,4,4,4,42,277,256,255,0,277,256,255,4,4,4,42,256,277,278,0,256,277,278,4,4,4,42,278,257,256,0,278,257,256,4,4,4,42,257,278,279,0,257,278,279,4,4,4,42,279,258,257,0,279,258,257,4,4,4,42,258,279,280,0,258,279,280,4,4,4,42,280,259,258,0,280,259,258,4,4,4,42,259,280,281,0,259,280,281,4,4,4,42,281,260,259,0,281,260,259,4,4,4,42,260,281,282,0,260,281,282,4,4,4,42,282,261,260,0,282,261,260,4,4,4,42,261,282,283,0,261,282,283,4,4,4,42,283,262,261,0,283,262,261,4,4,4,42,262,283,284,0,262,283,284,4,4,4,42,284,263,262,0,284,263,262,4,4,4,42,263,284,285,0,263,284,285,4,4,4,42,285,264,263,0,285,264,263,4,4,4,42,264,285,286,0,264,285,286,4,4,2,42,286,265,264,0,286,265,264,2,2,4,42,265,286,287,0,265,286,287,2,2,4,42,287,266,265,0,287,266,265,4,4,2,42,266,287,288,0,266,287,288,4,4,4,42,288,267,266,0,288,267,266,4,4,4,42,267,288,289,0,267,288,289,4,4,4,42,289,268,267,0,289,268,267,4,4,4,42,268,289,290,0,268,289,290,4,4,4,42,290,269,268,0,290,269,268,4,4,4,42,269,290,291,0,269,290,291,4,4,4,42,291,270,269,0,291,270,269,4,4,4,42,270,291,292,0,270,291,292,4,4,4,42,292,271,270,0,292,271,270,4,4,4,42,271,292,293,0,271,292,293,4,4,5,42,293,272,271,0,293,272,271,5,5,4,42,273,294,295,0,273,294,295,1,1,4,42,295,274,273,0,295,274,273,4,4,1,42,274,295,296,0,274,295,296,4,4,4,42,296,275,274,0,296,275,274,4,4,4,42,275,296,297,0,275,296,297,4,4,4,42,297,276,275,0,297,276,275,4,4,4,42,276,297,298,0,276,297,298,4,4,4,42,298,277,276,0,298,277,276,4,4,4,42,277,298,299,0,277,298,299,4,4,4,42,299,278,277,0,299,278,277,4,4,4,42,278,299,300,0,278,299,300,4,4,4,42,300,279,278,0,300,279,278,4,4,4,42,279,300,301,0,279,300,301,4,4,4,42,301,280,279,0,301,280,279,4,4,4,42,280,301,302,0,280,301,302,4,4,4,42,302,281,280,0,302,281,280,4,4,4,42,281,302,303,0,281,302,303,4,4,4,42,303,282,281,0,303,282,281,4,4,4,42,282,303,304,0,282,303,304,4,4,4,42,304,283,282,0,304,283,282,4,4,4,42,283,304,305,0,283,304,305,4,4,4,42,305,284,283,0,305,284,283,4,4,4,42,284,305,306,0,284,305,306,4,4,4,42,306,285,284,0,306,285,284,4,4,4,42,285,306,307,0,285,306,307,4,4,2,42,307,286,285,0,307,286,285,2,2,4,42,286,307,308,0,286,307,308,2,2,4,42,308,287,286,0,308,287,286,4,4,2,42,287,308,309,0,287,308,309,4,4,4,42,309,288,287,0,309,288,287,4,4,4,42,288,309,310,0,288,309,310,4,4,4,42,310,289,288,0,310,289,288,4,4,4,42,289,310,311,0,289,310,311,4,4,4,42,311,290,289,0,311,290,289,4,4,4,42,290,311,312,0,290,311,312,4,4,4,42,312,291,290,0,312,291,290,4,4,4,42,291,312,313,0,291,312,313,4,4,4,42,313,292,291,0,313,292,291,4,4,4,42,292,313,314,0,292,313,314,4,4,5,42,314,293,292,0,314,293,292,5,5,4,42,294,315,316,0,294,315,316,1,1,4,42,316,295,294,0,316,295,294,4,4,1,42,295,316,317,0,295,316,317,4,4,4,42,317,296,295,0,317,296,295,4,4,4,42,296,317,318,0,296,317,318,4,4,4,42,318,297,296,0,318,297,296,4,4,4,42,297,318,319,0,297,318,319,4,4,4,42,319,298,297,0,319,298,297,4,4,4,42,298,319,320,0,298,319,320,4,4,4,42,320,299,298,0,320,299,298,4,4,4,42,299,320,321,0,299,320,321,4,4,4,42,321,300,299,0,321,300,299,4,4,4,42,300,321,322,0,300,321,322,4,4,4,42,322,301,300,0,322,301,300,4,4,4,42,301,322,323,0,301,322,323,4,4,4,42,323,302,301,0,323,302,301,4,4,4,42,302,323,324,0,302,323,324,4,4,4,42,324,303,302,0,324,303,302,4,4,4,42,303,324,325,0,303,324,325,4,4,4,42,325,304,303,0,325,304,303,4,4,4,42,304,325,326,0,304,325,326,4,4,4,42,326,305,304,0,326,305,304,4,4,4,42,305,326,327,0,305,326,327,4,4,4,42,327,306,305,0,327,306,305,4,4,4,42,306,327,328,0,306,327,328,4,4,2,42,328,307,306,0,328,307,306,2,2,4,42,307,328,329,0,307,328,329,2,2,4,42,329,308,307,0,329,308,307,4,4,2,42,308,329,330,0,308,329,330,4,4,4,42,330,309,308,0,330,309,308,4,4,4,42,309,330,331,0,309,330,331,4,4,4,42,331,310,309,0,331,310,309,4,4,4,42,310,331,332,0,310,331,332,4,4,4,42,332,311,310,0,332,311,310,4,4,4,42,311,332,333,0,311,332,333,4,4,4,42,333,312,311,0,333,312,311,4,4,4,42,312,333,334,0,312,333,334,4,4,4,42,334,313,312,0,334,313,312,4,4,4,42,313,334,335,0,313,334,335,4,4,5,42,335,314,313,0,335,314,313,5,5,4,42,315,336,337,0,315,336,337,1,1,4,42,337,316,315,0,337,316,315,4,4,1,42,316,337,338,0,316,337,338,4,4,4,42,338,317,316,0,338,317,316,4,4,4,42,317,338,339,0,317,338,339,4,4,4,42,339,318,317,0,339,318,317,4,4,4,42,318,339,340,0,318,339,340,4,4,4,42,340,319,318,0,340,319,318,4,4,4,42,319,340,341,0,319,340,341,4,4,4,42,341,320,319,0,341,320,319,4,4,4,42,320,341,342,0,320,341,342,4,4,4,42,342,321,320,0,342,321,320,4,4,4,42,321,342,343,0,321,342,343,4,4,4,42,343,322,321,0,343,322,321,4,4,4,42,322,343,344,0,322,343,344,4,4,4,42,344,323,322,0,344,323,322,4,4,4,42,323,344,345,0,323,344,345,4,4,4,42,345,324,323,0,345,324,323,4,4,4,42,324,345,346,0,324,345,346,4,4,4,42,346,325,324,0,346,325,324,4,4,4,42,325,346,347,0,325,346,347,4,4,4,42,347,326,325,0,347,326,325,4,4,4,42,326,347,348,0,326,347,348,4,4,4,42,348,327,326,0,348,327,326,4,4,4,42,327,348,349,0,327,348,349,4,4,2,42,349,328,327,0,349,328,327,2,2,4,42,328,349,350,0,328,349,350,2,2,4,42,350,329,328,0,350,329,328,4,4,2,42,329,350,351,0,329,350,351,4,4,4,42,351,330,329,0,351,330,329,4,4,4,42,330,351,352,0,330,351,352,4,4,4,42,352,331,330,0,352,331,330,4,4,4,42,331,352,353,0,331,352,353,4,4,4,42,353,332,331,0,353,332,331,4,4,4,42,332,353,354,0,332,353,354,4,4,4,42,354,333,332,0,354,333,332,4,4,4,42,333,354,355,0,333,354,355,4,4,4,42,355,334,333,0,355,334,333,4,4,4,42,334,355,356,0,334,355,356,4,4,5,42,356,335,334,0,356,335,334,5,5,4,42,336,357,358,0,336,357,358,1,1,4,42,358,337,336,0,358,337,336,4,4,1,42,337,358,359,0,337,358,359,4,4,4,42,359,338,337,0,359,338,337,4,4,4,42,338,359,360,0,338,359,360,4,4,4,42,360,339,338,0,360,339,338,4,4,4,42,339,360,361,0,339,360,361,4,4,4,42,361,340,339,0,361,340,339,4,4,4,42,340,361,362,0,340,361,362,4,4,4,42,362,341,340,0,362,341,340,4,4,4,42,341,362,363,0,341,362,363,4,4,4,42,363,342,341,0,363,342,341,4,4,4,42,342,363,364,0,342,363,364,4,4,4,42,364,343,342,0,364,343,342,4,4,4,42,343,364,365,0,343,364,365,4,4,4,42,365,344,343,0,365,344,343,4,4,4,42,344,365,366,0,344,365,366,4,4,4,42,366,345,344,0,366,345,344,4,4,4,42,345,366,367,0,345,366,367,4,4,4,42,367,346,345,0,367,346,345,4,4,4,42,346,367,368,0,346,367,368,4,4,4,42,368,347,346,0,368,347,346,4,4,4,42,347,368,369,0,347,368,369,4,4,4,42,369,348,347,0,369,348,347,4,4,4,42,348,369,370,0,348,369,370,4,4,2,42,370,349,348,0,370,349,348,2,2,4,42,349,370,371,0,349,370,371,2,2,4,42,371,350,349,0,371,350,349,4,4,2,42,350,371,372,0,350,371,372,4,4,4,42,372,351,350,0,372,351,350,4,4,4,42,351,372,373,0,351,372,373,4,4,4,42,373,352,351,0,373,352,351,4,4,4,42,352,373,374,0,352,373,374,4,4,4,42,374,353,352,0,374,353,352,4,4,4,42,353,374,375,0,353,374,375,4,4,4,42,375,354,353,0,375,354,353,4,4,4,42,354,375,376,0,354,375,376,4,4,4,42,376,355,354,0,376,355,354,4,4,4,42,355,376,377,0,355,376,377,4,4,5,42,377,356,355,0,377,356,355,5,5,4,42,357,378,379,0,357,378,379,1,1,4,42,379,358,357,0,379,358,357,4,4,1,42,358,379,380,0,358,379,380,4,4,4,42,380,359,358,0,380,359,358,4,4,4,42,359,380,381,0,359,380,381,4,4,4,42,381,360,359,0,381,360,359,4,4,4,42,360,381,382,0,360,381,382,4,4,4,42,382,361,360,0,382,361,360,4,4,4,42,361,382,383,0,361,382,383,4,4,4,42,383,362,361,0,383,362,361,4,4,4,42,362,383,384,0,362,383,384,4,4,4,42,384,363,362,0,384,363,362,4,4,4,42,363,384,385,0,363,384,385,4,4,4,42,385,364,363,0,385,364,363,4,4,4,42,364,385,386,0,364,385,386,4,4,4,42,386,365,364,0,386,365,364,4,4,4,42,365,386,387,0,365,386,387,4,4,4,42,387,366,365,0,387,366,365,4,4,4,42,366,387,388,0,366,387,388,4,4,4,42,388,367,366,0,388,367,366,4,4,4,42,367,388,389,0,367,388,389,4,4,4,42,389,368,367,0,389,368,367,4,4,4,42,368,389,390,0,368,389,390,4,4,4,42,390,369,368,0,390,369,368,4,4,4,42,369,390,391,0,369,390,391,4,4,2,42,391,370,369,0,391,370,369,2,2,4,42,370,391,392,0,370,391,392,2,2,4,42,392,371,370,0,392,371,370,4,4,2,42,371,392,393,0,371,392,393,4,4,4,42,393,372,371,0,393,372,371,4,4,4,42,372,393,394,0,372,393,394,4,4,4,42,394,373,372,0,394,373,372,4,4,4,42,373,394,395,0,373,394,395,4,4,4,42,395,374,373,0,395,374,373,4,4,4,42,374,395,396,0,374,395,396,4,4,4,42,396,375,374,0,396,375,374,4,4,4,42,375,396,397,0,375,396,397,4,4,4,42,397,376,375,0,397,376,375,4,4,4,42,376,397,398,0,376,397,398,4,4,5,42,398,377,376,0,398,377,376,5,5,4,42,378,399,400,0,378,399,400,1,1,4,42,400,379,378,0,400,379,378,4,4,1,42,379,400,401,0,379,400,401,4,4,4,42,401,380,379,0,401,380,379,4,4,4,42,380,401,402,0,380,401,402,4,4,4,42,402,381,380,0,402,381,380,4,4,4,42,381,402,403,0,381,402,403,4,4,4,42,403,382,381,0,403,382,381,4,4,4,42,382,403,404,0,382,403,404,4,4,4,42,404,383,382,0,404,383,382,4,4,4,42,383,404,405,0,383,404,405,4,4,4,42,405,384,383,0,405,384,383,4,4,4,42,384,405,406,0,384,405,406,4,4,4,42,406,385,384,0,406,385,384,4,4,4,42,385,406,407,0,385,406,407,4,4,4,42,407,386,385,0,407,386,385,4,4,4,42,386,407,408,0,386,407,408,4,4,4,42,408,387,386,0,408,387,386,4,4,4,42,387,408,409,0,387,408,409,4,4,4,42,409,388,387,0,409,388,387,4,4,4,42,388,409,410,0,388,409,410,4,4,4,42,410,389,388,0,410,389,388,4,4,4,42,389,410,411,0,389,410,411,4,4,4,42,411,390,389,0,411,390,389,4,4,4,42,390,411,412,0,390,411,412,4,4,2,42,412,391,390,0,412,391,390,2,2,4,42,391,412,413,0,391,412,413,2,2,4,42,413,392,391,0,413,392,391,4,4,2,42,392,413,414,0,392,413,414,4,4,4,42,414,393,392,0,414,393,392,4,4,4,42,393,414,415,0,393,414,415,4,4,4,42,415,394,393,0,415,394,393,4,4,4,42,394,415,416,0,394,415,416,4,4,4,42,416,395,394,0,416,395,394,4,4,4,42,395,416,417,0,395,416,417,4,4,4,42,417,396,395,0,417,396,395,4,4,4,42,396,417,418,0,396,417,418,4,4,4,42,418,397,396,0,418,397,396,4,4,4,42,397,418,419,0,397,418,419,4,4,5,42,419,398,397,0,419,398,397,5,5,4,42,399,420,421,0,399,420,421,1,1,4,42,421,400,399,0,421,400,399,4,4,1,42,400,421,422,0,400,421,422,4,4,4,42,422,401,400,0,422,401,400,4,4,4,42,401,422,423,0,401,422,423,4,4,4,42,423,402,401,0,423,402,401,4,4,4,42,402,423,424,0,402,423,424,4,4,4,42,424,403,402,0,424,403,402,4,4,4,42,403,424,425,0,403,424,425,4,4,4,42,425,404,403,0,425,404,403,4,4,4,42,404,425,426,0,404,425,426,4,4,4,42,426,405,404,0,426,405,404,4,4,4,42,405,426,427,0,405,426,427,4,4,4,42,427,406,405,0,427,406,405,4,4,4,42,406,427,428,0,406,427,428,4,4,4,42,428,407,406,0,428,407,406,4,4,4,42,407,428,429,0,407,428,429,4,4,4,42,429,408,407,0,429,408,407,4,4,4,42,408,429,430,0,408,429,430,4,4,4,42,430,409,408,0,430,409,408,4,4,4,42,409,430,431,0,409,430,431,4,4,2,42,431,410,409,0,431,410,409,2,4,4,42,410,431,432,0,410,431,432,4,2,2,42,432,411,410,0,432,411,410,2,4,4,42,411,432,433,0,411,432,433,4,2,4,42,433,412,411,0,433,412,411,4,2,4,42,412,433,434,0,412,433,434,2,4,2,42,434,413,412,0,434,413,412,2,4,2,42,413,434,435,0,413,434,435,4,2,2,42,435,414,413,0,435,414,413,2,4,4,42,414,435,436,0,414,435,436,4,2,2,42,436,415,414,0,436,415,414,2,4,4,42,415,436,437,0,415,436,437,4,2,2,42,437,416,415,0,437,416,415,2,4,4,42,416,437,438,0,416,437,438,4,2,2,42,438,417,416,0,438,417,416,2,4,4,42,417,438,439,0,417,438,439,4,2,2,42,439,418,417,0,439,418,417,2,4,4,42,418,439,440,0,418,439,440,4,2,5,42,440,419,418,0,440,419,418,5,5,4,42,420,441,442,0,420,441,442,1,1,4,42,442,421,420,0,442,421,420,4,4,1,42,421,442,443,0,421,442,443,4,4,4,42,443,422,421,0,443,422,421,4,4,4,42,422,443,444,0,422,443,444,4,4,4,42,444,423,422,0,444,423,422,4,4,4,42,423,444,445,0,423,444,445,4,4,4,42,445,424,423,0,445,424,423,4,4,4,42,424,445,446,0,424,445,446,4,4,4,42,446,425,424,0,446,425,424,4,4,4,42,425,446,447,0,425,446,447,4,4,4,42,447,426,425,0,447,426,425,4,4,4,42,426,447,448,0,426,447,448,4,4,4,42,448,427,426,0,448,427,426,4,4,4,42,427,448,449,0,427,448,449,4,4,4,42,449,428,427,0,449,428,427,4,4,4,42,428,449,450,0,428,449,450,4,4,4,42,450,429,428,0,450,429,428,4,4,4,42,429,450,451,0,429,450,451,4,4,4,42,451,430,429,0,451,430,429,4,4,4,42,430,451,452,0,430,451,452,4,4,2,42,452,431,430,0,452,431,430,2,2,4,42,431,452,453,0,431,452,453,2,2,2,42,453,432,431,0,453,432,431,2,2,2,42,432,453,454,0,432,453,454,2,2,4,42,454,433,432,0,454,433,432,4,4,2,42,433,454,455,0,433,454,455,4,4,2,42,455,434,433,0,455,434,433,2,2,4,42,434,455,456,0,434,455,456,2,2,2,42,456,435,434,0,456,435,434,2,2,2,42,435,456,457,0,435,456,457,2,2,2,42,457,436,435,0,457,436,435,2,2,2,42,436,457,458,0,436,457,458,2,2,2,42,458,437,436,0,458,437,436,2,2,2,42,437,458,459,0,437,458,459,2,2,2,42,459,438,437,0,459,438,437,2,2,2,42,438,459,460,0,438,459,460,2,2,2,42,460,439,438,0,460,439,438,2,2,2,42,439,460,461,0,439,460,461,2,2,5,42,461,440,439,0,461,440,439,5,5,2,42,441,462,463,0,441,462,463,1,1,4,42,463,442,441,0,463,442,441,4,4,1,42,442,463,464,0,442,463,464,4,4,4,42,464,443,442,0,464,443,442,4,4,4,42,443,464,465,0,443,464,465,4,4,4,42,465,444,443,0,465,444,443,4,4,4,42,444,465,466,0,444,465,466,4,4,4,42,466,445,444,0,466,445,444,4,4,4,42,445,466,467,0,445,466,467,4,4,4,42,467,446,445,0,467,446,445,4,4,4,42,446,467,468,0,446,467,468,4,4,4,42,468,447,446,0,468,447,446,4,4,4,42,447,468,469,0,447,468,469,4,4,4,42,469,448,447,0,469,448,447,4,4,4,42,448,469,470,0,448,469,470,4,4,4,42,470,449,448,0,470,449,448,4,4,4,42,449,470,471,0,449,470,471,4,4,4,42,471,450,449,0,471,450,449,4,4,4,42,450,471,472,0,450,471,472,4,4,4,42,472,451,450,0,472,451,450,4,4,4,42,451,472,473,0,451,472,473,4,4,2,42,473,452,451,0,473,452,451,2,2,4,42,452,473,474,0,452,473,474,2,2,2,42,474,453,452,0,474,453,452,2,2,2,42,453,474,475,0,453,474,475,2,2,4,42,475,454,453,0,475,454,453,4,4,2,42,454,475,476,0,454,475,476,4,4,2,42,476,455,454,0,476,455,454,2,2,4,42,455,476,477,0,455,476,477,2,2,2,42,477,456,455,0,477,456,455,2,2,2,42,456,477,478,0,456,477,478,2,2,2,42,478,457,456,0,478,457,456,2,2,2,42,457,478,479,0,457,478,479,2,2,2,42,479,458,457,0,479,458,457,2,2,2,42,458,479,480,0,458,479,480,2,2,2,42,480,459,458,0,480,459,458,2,2,2,42,459,480,481,0,459,480,481,2,2,2,42,481,460,459,0,481,460,459,2,2,2,42,460,481,482,0,460,481,482,2,2,5,42,482,461,460,0,482,461,460,5,5,2,42,462,483,484,0,462,483,484,1,1,4,42,484,463,462,0,484,463,462,4,4,1,42,463,484,485,0,463,484,485,4,4,4,42,485,464,463,0,485,464,463,4,4,4,42,464,485,486,0,464,485,486,4,4,4,42,486,465,464,0,486,465,464,4,4,4,42,465,486,487,0,465,486,487,4,4,4,42,487,466,465,0,487,466,465,4,4,4,42,466,487,488,0,466,487,488,4,4,4,42,488,467,466,0,488,467,466,4,4,4,42,467,488,489,0,467,488,489,4,4,4,42,489,468,467,0,489,468,467,4,4,4,42,468,489,490,0,468,489,490,4,4,4,42,490,469,468,0,490,469,468,4,4,4,42,469,490,491,0,469,490,491,4,4,4,42,491,470,469,0,491,470,469,4,4,4,42,470,491,492,0,470,491,492,4,4,4,42,492,471,470,0,492,471,470,4,4,4,42,471,492,493,0,471,492,493,4,4,4,42,493,472,471,0,493,472,471,4,4,4,42,472,493,494,0,472,493,494,4,4,2,42,494,473,472,0,494,473,472,2,2,4,42,473,494,495,0,473,494,495,2,2,2,42,495,474,473,0,495,474,473,2,2,2,42,474,495,496,0,474,495,496,2,2,4,42,496,475,474,0,496,475,474,4,4,2,42,475,496,497,0,475,496,497,4,4,2,42,497,476,475,0,497,476,475,2,2,4,42,476,497,498,0,476,497,498,2,2,2,42,498,477,476,0,498,477,476,2,2,2,42,477,498,499,0,477,498,499,2,2,2,42,499,478,477,0,499,478,477,2,2,2,42,478,499,500,0,478,499,500,2,2,2,42,500,479,478,0,500,479,478,2,2,2,42,479,500,501,0,479,500,501,2,2,2,42,501,480,479,0,501,480,479,2,2,2,42,480,501,502,0,480,501,502,2,2,2,42,502,481,480,0,502,481,480,2,2,2,42,481,502,503,0,481,502,503,2,2,5,42,503,482,481,0,503,482,481,5,5,2,42,483,504,505,0,483,504,505,1,1,4,42,505,484,483,0,505,484,483,4,4,1,42,484,505,506,0,484,505,506,4,4,4,42,506,485,484,0,506,485,484,4,4,4,42,485,506,507,0,485,506,507,4,4,4,42,507,486,485,0,507,486,485,4,4,4,42,486,507,508,0,486,507,508,4,4,4,42,508,487,486,0,508,487,486,4,4,4,42,487,508,509,0,487,508,509,4,4,4,42,509,488,487,0,509,488,487,4,4,4,42,488,509,510,0,488,509,510,4,4,4,42,510,489,488,0,510,489,488,4,4,4,42,489,510,511,0,489,510,511,4,4,4,42,511,490,489,0,511,490,489,4,4,4,42,490,511,512,0,490,511,512,4,4,4,42,512,491,490,0,512,491,490,4,4,4,42,491,512,513,0,491,512,513,4,4,4,42,513,492,491,0,513,492,491,4,4,4,42,492,513,514,0,492,513,514,4,4,4,42,514,493,492,0,514,493,492,4,4,4,42,493,514,515,0,493,514,515,4,4,2,42,515,494,493,0,515,494,493,2,2,4,42,494,515,516,0,494,515,516,2,2,2,42,516,495,494,0,516,495,494,2,2,2,42,495,516,517,0,495,516,517,2,2,4,42,517,496,495,0,517,496,495,4,4,2,42,496,517,518,0,496,517,518,4,4,2,42,518,497,496,0,518,497,496,2,2,4,42,497,518,519,0,497,518,519,2,2,2,42,519,498,497,0,519,498,497,2,2,2,42,498,519,520,0,498,519,520,2,2,2,42,520,499,498,0,520,499,498,2,2,2,42,499,520,521,0,499,520,521,2,2,2,42,521,500,499,0,521,500,499,2,2,2,42,500,521,522,0,500,521,522,2,2,2,42,522,501,500,0,522,501,500,2,2,2,42,501,522,523,0,501,522,523,2,2,2,42,523,502,501,0,523,502,501,2,2,2,42,502,523,524,0,502,523,524,2,2,5,42,524,503,502,0,524,503,502,5,5,2,42,504,525,526,0,504,525,526,1,1,4,42,526,505,504,0,526,505,504,4,4,1,42,505,526,527,0,505,526,527,4,4,4,42,527,506,505,0,527,506,505,4,4,4,42,506,527,528,0,506,527,528,4,4,4,42,528,507,506,0,528,507,506,4,4,4,42,507,528,529,0,507,528,529,4,4,4,42,529,508,507,0,529,508,507,4,4,4,42,508,529,530,0,508,529,530,4,4,4,42,530,509,508,0,530,509,508,4,4,4,42,509,530,531,0,509,530,531,4,4,4,42,531,510,509,0,531,510,509,4,4,4,42,510,531,532,0,510,531,532,4,4,4,42,532,511,510,0,532,511,510,4,4,4,42,511,532,533,0,511,532,533,4,4,4,42,533,512,511,0,533,512,511,4,4,4,42,512,533,534,0,512,533,534,4,4,4,42,534,513,512,0,534,513,512,4,4,4,42,513,534,535,0,513,534,535,4,4,4,42,535,514,513,0,535,514,513,4,4,4,42,514,535,536,0,514,535,536,4,4,2,42,536,515,514,0,536,515,514,2,2,4,42,515,536,537,0,515,536,537,2,2,2,42,537,516,515,0,537,516,515,2,2,2,42,516,537,538,0,516,537,538,2,2,4,42,538,517,516,0,538,517,516,4,4,2,42,517,538,539,0,517,538,539,4,4,2,42,539,518,517,0,539,518,517,2,2,4,42,518,539,540,0,518,539,540,2,2,2,42,540,519,518,0,540,519,518,2,2,2,42,519,540,541,0,519,540,541,2,2,2,42,541,520,519,0,541,520,519,2,2,2,42,520,541,542,0,520,541,542,2,2,2,42,542,521,520,0,542,521,520,2,2,2,42,521,542,543,0,521,542,543,2,2,2,42,543,522,521,0,543,522,521,2,2,2,42,522,543,544,0,522,543,544,2,2,2,42,544,523,522,0,544,523,522,2,2,2,42,523,544,545,0,523,544,545,2,2,5,42,545,524,523,0,545,524,523,5,5,2,42,525,546,547,0,525,546,547,1,1,4,42,547,526,525,0,547,526,525,4,4,1,42,526,547,548,0,526,547,548,4,4,4,42,548,527,526,0,548,527,526,4,4,4,42,527,548,549,0,527,548,549,4,4,4,42,549,528,527,0,549,528,527,4,4,4,42,528,549,550,0,528,549,550,4,4,4,42,550,529,528,0,550,529,528,4,4,4,42,529,550,551,0,529,550,551,4,4,4,42,551,530,529,0,551,530,529,4,4,4,42,530,551,552,0,530,551,552,4,4,4,42,552,531,530,0,552,531,530,4,4,4,42,531,552,553,0,531,552,553,4,4,4,42,553,532,531,0,553,532,531,4,4,4,42,532,553,554,0,532,553,554,4,4,4,42,554,533,532,0,554,533,532,4,4,4,42,533,554,555,0,533,554,555,4,4,4,42,555,534,533,0,555,534,533,4,4,4,42,534,555,556,0,534,555,556,4,4,4,42,556,535,534,0,556,535,534,4,4,4,42,535,556,557,0,535,556,557,4,4,2,42,557,536,535,0,557,536,535,2,2,4,42,536,557,558,0,536,557,558,2,2,2,42,558,537,536,0,558,537,536,2,2,2,42,537,558,559,0,537,558,559,2,2,4,42,559,538,537,0,559,538,537,4,4,2,42,538,559,560,0,538,559,560,4,4,2,42,560,539,538,0,560,539,538,2,2,4,42,539,560,561,0,539,560,561,2,2,2,42,561,540,539,0,561,540,539,2,2,2,42,540,561,562,0,540,561,562,2,2,2,42,562,541,540,0,562,541,540,2,2,2,42,541,562,563,0,541,562,563,2,2,2,42,563,542,541,0,563,542,541,2,2,2,42,542,563,564,0,542,563,564,2,2,2,42,564,543,542,0,564,543,542,2,2,2,42,543,564,565,0,543,564,565,2,2,2,42,565,544,543,0,565,544,543,2,2,2,42,544,565,566,0,544,565,566,2,2,5,42,566,545,544,0,566,545,544,5,5,2,42,546,567,568,0,546,567,568,1,1,4,42,568,547,546,0,568,547,546,4,4,1,42,547,568,569,0,547,568,569,4,4,4,42,569,548,547,0,569,548,547,4,4,4,42,548,569,570,0,548,569,570,4,4,4,42,570,549,548,0,570,549,548,4,4,4,42,549,570,571,0,549,570,571,4,4,4,42,571,550,549,0,571,550,549,4,4,4,42,550,571,572,0,550,571,572,4,4,4,42,572,551,550,0,572,551,550,4,4,4,42,551,572,573,0,551,572,573,4,4,4,42,573,552,551,0,573,552,551,4,4,4,42,552,573,574,0,552,573,574,4,4,4,42,574,553,552,0,574,553,552,4,4,4,42,553,574,575,0,553,574,575,4,4,4,42,575,554,553,0,575,554,553,4,4,4,42,554,575,576,0,554,575,576,4,4,4,42,576,555,554,0,576,555,554,4,4,4,42,555,576,577,0,555,576,577,4,4,4,42,577,556,555,0,577,556,555,4,4,4,42,556,577,578,0,556,577,578,4,4,2,42,578,557,556,0,578,557,556,2,2,4,42,557,578,579,0,557,578,579,2,2,2,42,579,558,557,0,579,558,557,2,2,2,42,558,579,580,0,558,579,580,2,2,4,42,580,559,558,0,580,559,558,4,4,2,42,559,580,581,0,559,580,581,4,4,2,42,581,560,559,0,581,560,559,2,2,4,42,560,581,582,0,560,581,582,2,2,2,42,582,561,560,0,582,561,560,2,2,2,42,561,582,583,0,561,582,583,2,2,2,42,583,562,561,0,583,562,561,2,2,2,42,562,583,584,0,562,583,584,2,2,2,42,584,563,562,0,584,563,562,2,2,2,42,563,584,585,0,563,584,585,2,2,2,42,585,564,563,0,585,564,563,2,2,2,42,564,585,586,0,564,585,586,2,2,2,42,586,565,564,0,586,565,564,2,2,2,42,565,586,587,0,565,586,587,2,2,5,42,587,566,565,0,587,566,565,5,5,2,42,567,588,589,0,567,588,589,1,1,4,42,589,568,567,0,589,568,567,4,4,1,42,568,589,590,0,568,589,590,4,4,4,42,590,569,568,0,590,569,568,4,4,4,42,569,590,591,0,569,590,591,4,4,4,42,591,570,569,0,591,570,569,4,4,4,42,570,591,592,0,570,591,592,4,4,4,42,592,571,570,0,592,571,570,4,4,4,42,571,592,593,0,571,592,593,4,4,4,42,593,572,571,0,593,572,571,4,4,4,42,572,593,594,0,572,593,594,4,4,4,42,594,573,572,0,594,573,572,4,4,4,42,573,594,595,0,573,594,595,4,4,4,42,595,574,573,0,595,574,573,4,4,4,42,574,595,596,0,574,595,596,4,4,4,42,596,575,574,0,596,575,574,4,4,4,42,575,596,597,0,575,596,597,4,4,4,42,597,576,575,0,597,576,575,4,4,4,42,576,597,598,0,576,597,598,4,4,4,42,598,577,576,0,598,577,576,4,4,4,42,577,598,599,0,577,598,599,4,4,2,42,599,578,577,0,599,578,577,2,2,4,42,578,599,600,0,578,599,600,2,2,2,42,600,579,578,0,600,579,578,2,2,2,42,579,600,601,0,579,600,601,2,2,4,42,601,580,579,0,601,580,579,4,4,2,42,580,601,602,0,580,601,602,4,4,2,42,602,581,580,0,602,581,580,2,2,4,42,581,602,603,0,581,602,603,2,2,2,42,603,582,581,0,603,582,581,2,2,2,42,582,603,604,0,582,603,604,2,2,2,42,604,583,582,0,604,583,582,2,2,2,42,583,604,605,0,583,604,605,2,2,2,42,605,584,583,0,605,584,583,2,2,2,42,584,605,606,0,584,605,606,2,2,2,42,606,585,584,0,606,585,584,2,2,2,42,585,606,607,0,585,606,607,2,2,2,42,607,586,585,0,607,586,585,2,2,2,42,586,607,608,0,586,607,608,2,2,5,42,608,587,586,0,608,587,586,5,5,2,42,588,609,610,0,588,609,610,1,1,2,42,610,589,588,0,610,589,588,2,4,1,42,589,610,611,0,589,610,611,4,2,2,42,611,590,589,0,611,590,589,2,4,4,42,590,611,612,0,590,611,612,4,2,2,42,612,591,590,0,612,591,590,2,4,4,42,591,612,613,0,591,612,613,4,2,2,42,613,592,591,0,613,592,591,2,4,4,42,592,613,614,0,592,613,614,4,2,4,42,614,593,592,0,614,593,592,4,4,4,42,593,614,615,0,593,614,615,4,4,2,42,615,594,593,0,615,594,593,2,4,4,42,594,615,616,0,594,615,616,4,2,2,42,616,595,594,0,616,595,594,2,4,4,42,595,616,617,0,595,616,617,4,2,2,42,617,596,595,0,617,596,595,2,4,4,42,596,617,618,0,596,617,618,4,2,2,42,618,597,596,0,618,597,596,2,4,4,42,597,618,619,0,597,618,619,4,2,2,42,619,598,597,0,619,598,597,2,4,4,42,598,619,620,0,598,619,620,4,2,2,42,620,599,598,0,620,599,598,2,2,4,42,599,620,621,0,599,620,621,2,2,2,42,621,600,599,0,621,600,599,2,2,2,42,600,621,622,0,600,621,622,2,2,2,42,622,601,600,0,622,601,600,2,4,2,42,601,622,623,0,601,622,623,4,2,2,42,623,602,601,0,623,602,601,2,2,4,42,602,623,624,0,602,623,624,2,2,2,42,624,603,602,0,624,603,602,2,2,2,42,603,624,625,0,603,624,625,2,2,2,42,625,604,603,0,625,604,603,2,2,2,42,604,625,626,0,604,625,626,2,2,2,42,626,605,604,0,626,605,604,2,2,2,42,605,626,627,0,605,626,627,2,2,2,42,627,606,605,0,627,606,605,2,2,2,42,606,627,628,0,606,627,628,2,2,2,42,628,607,606,0,628,607,606,2,2,2,42,607,628,629,0,607,628,629,2,2,5,42,629,608,607,0,629,608,607,5,5,2,42,609,630,631,0,609,630,631,1,7,8,42,631,610,609,0,631,610,609,8,2,1,42,610,631,632,0,610,631,632,2,8,8,42,632,611,610,0,632,611,610,8,2,2,42,611,632,633,0,611,632,633,2,8,8,42,633,612,611,0,633,612,611,8,2,2,42,612,633,634,0,612,633,634,2,8,8,42,634,613,612,0,634,613,612,8,2,2,42,613,634,635,0,613,634,635,2,8,8,42,635,614,613,0,635,614,613,8,4,2,42,614,635,636,0,614,635,636,4,8,8,42,636,615,614,0,636,615,614,8,2,4,42,615,636,637,0,615,636,637,2,8,8,42,637,616,615,0,637,616,615,8,2,2,42,616,637,638,0,616,637,638,2,8,8,42,638,617,616,0,638,617,616,8,2,2,42,617,638,639,0,617,638,639,2,8,8,42,639,618,617,0,639,618,617,8,2,2,42,618,639,640,0,618,639,640,2,8,8,42,640,619,618,0,640,619,618,8,2,2,42,619,640,641,0,619,640,641,2,8,8,42,641,620,619,0,641,620,619,8,2,2,42,620,641,642,0,620,641,642,2,8,8,42,642,621,620,0,642,621,620,8,2,2,42,621,642,643,0,621,642,643,2,8,8,42,643,622,621,0,643,622,621,8,2,2,42,622,643,644,0,622,643,644,2,8,8,42,644,623,622,0,644,623,622,8,2,2,42,623,644,645,0,623,644,645,2,8,8,42,645,624,623,0,645,624,623,8,2,2,42,624,645,646,0,624,645,646,2,8,8,42,646,625,624,0,646,625,624,8,2,2,42,625,646,647,0,625,646,647,2,8,8,42,647,626,625,0,647,626,625,8,2,2,42,626,647,648,0,626,647,648,2,8,8,42,648,627,626,0,648,627,626,8,2,2,42,627,648,649,0,627,648,649,2,8,8,42,649,628,627,0,649,628,627,8,2,2,42,628,649,650,0,628,649,650,2,8,9,42,650,629,628,0,650,629,628,9,5,2,42,651,652,673,1,41,39,38,10,11,12,42,673,672,651,1,38,40,41,12,13,10,42,652,653,674,1,39,37,36,11,11,12,42,674,673,652,1,36,38,39,12,12,11,42,653,654,675,1,37,35,34,11,11,12,42,675,674,653,1,34,36,37,12,12,11,42,654,655,676,1,35,33,32,11,11,12,42,676,675,654,1,32,34,35,12,12,11,42,655,656,677,1,33,31,30,11,11,14,42,677,676,655,1,30,32,33,14,12,11,42,656,657,678,1,31,29,28,11,11,12,42,678,677,656,1,28,30,31,12,14,11,42,657,658,679,1,29,27,26,11,11,12,42,679,678,657,1,26,28,29,12,12,11,42,658,659,680,1,27,25,24,11,11,12,42,680,679,658,1,24,26,27,12,12,11,42,659,660,681,1,25,23,22,11,11,12,42,681,680,659,1,22,24,25,12,12,11,42,660,661,682,1,23,21,20,11,11,12,42,682,681,660,1,20,22,23,12,12,11,42,661,662,683,1,21,19,18,11,11,12,42,683,682,661,1,18,20,21,12,12,11,42,662,663,684,1,19,17,16,11,11,12,42,684,683,662,1,16,18,19,12,12,11,42,663,664,685,1,17,15,14,11,11,12,42,685,684,663,1,14,16,17,12,12,11,42,664,665,686,1,15,13,12,11,11,12,42,686,685,664,1,12,14,15,12,12,11,42,665,666,687,1,13,11,10,11,11,12,42,687,686,665,1,10,12,13,12,12,11,42,666,667,688,1,11,9,8,11,11,12,42,688,687,666,1,8,10,11,12,12,11,42,667,668,689,1,9,7,6,11,11,12,42,689,688,667,1,6,8,9,12,12,11,42,668,669,690,1,7,5,4,11,11,12,42,690,689,668,1,4,6,7,12,12,11,42,669,670,691,1,5,3,2,11,11,12,42,691,690,669,1,2,4,5,12,12,11,42,670,671,692,1,3,0,1,11,15,16,42,692,691,670,1,1,2,3,16,12,11,42,672,673,694,1,40,38,61,13,12,14,42,694,693,672,1,61,62,40,14,13,13,42,673,674,695,1,38,36,60,12,12,14,42,695,694,673,1,60,61,38,14,14,12,42,674,675,696,1,36,34,59,12,12,14,42,696,695,674,1,59,60,36,14,14,12,42,675,676,697,1,34,32,58,12,12,14,42,697,696,675,1,58,59,34,14,14,12,42,676,677,698,1,32,30,57,12,14,14,42,698,697,676,1,57,58,32,14,14,12,42,677,678,699,1,30,28,56,14,12,12,42,699,698,677,1,56,57,30,12,14,14,42,678,679,700,1,28,26,55,12,12,12,42,700,699,678,1,55,56,28,12,12,12,42,679,680,701,1,26,24,54,12,12,12,42,701,700,679,1,54,55,26,12,12,12,42,680,681,702,1,24,22,53,12,12,14,42,702,701,680,1,53,54,24,14,12,12,42,681,682,703,1,22,20,52,12,12,14,42,703,702,681,1,52,53,22,14,14,12,42,682,683,704,1,20,18,51,12,12,12,42,704,703,682,1,51,52,20,12,14,12,42,683,684,705,1,18,16,50,12,12,12,42,705,704,683,1,50,51,18,12,12,12,42,684,685,706,1,16,14,49,12,12,12,42,706,705,684,1,49,50,16,12,12,12,42,685,686,707,1,14,12,48,12,12,12,42,707,706,685,1,48,49,14,12,12,12,42,686,687,708,1,12,10,47,12,12,12,42,708,707,686,1,47,48,12,12,12,12,42,687,688,709,1,10,8,46,12,12,12,42,709,708,687,1,46,47,10,12,12,12,42,688,689,710,1,8,6,45,12,12,12,42,710,709,688,1,45,46,8,12,12,12,42,689,690,711,1,6,4,44,12,12,12,42,711,710,689,1,44,45,6,12,12,12,42,690,691,712,1,4,2,43,12,12,12,42,712,711,690,1,43,44,4,12,12,12,42,691,692,713,1,2,1,42,12,16,16,42,713,712,691,1,42,43,2,16,12,12,42,693,694,715,1,62,61,82,13,14,14,42,715,714,693,1,82,83,62,14,13,13,42,694,695,716,1,61,60,81,14,14,14,42,716,715,694,1,81,82,61,14,14,14,42,695,696,717,1,60,59,80,14,14,14,42,717,716,695,1,80,81,60,14,14,14,42,696,697,718,1,59,58,79,14,14,14,42,718,717,696,1,79,80,59,14,14,14,42,697,698,719,1,58,57,78,14,14,14,42,719,718,697,1,78,79,58,14,14,14,42,698,699,720,1,57,56,77,14,12,14,42,720,719,698,1,77,78,57,14,14,14,42,699,700,721,1,56,55,76,12,12,14,42,721,720,699,1,76,77,56,14,14,12,42,700,701,722,1,55,54,75,12,12,14,42,722,721,700,1,75,76,55,14,14,12,42,701,702,723,1,54,53,74,12,14,14,42,723,722,701,1,74,75,54,14,14,12,42,702,703,724,1,53,52,73,14,14,14,42,724,723,702,1,73,74,53,14,14,14,42,703,704,725,1,52,51,72,14,12,12,42,725,724,703,1,72,73,52,12,14,14,42,704,705,726,1,51,50,71,12,12,12,42,726,725,704,1,71,72,51,12,12,12,42,705,706,727,1,50,49,70,12,12,14,42,727,726,705,1,70,71,50,14,12,12,42,706,707,728,1,49,48,69,12,12,12,42,728,727,706,1,69,70,49,12,14,12,42,707,708,729,1,48,47,68,12,12,12,42,729,728,707,1,68,69,48,12,12,12,42,708,709,730,1,47,46,67,12,12,12,42,730,729,708,1,67,68,47,12,12,12,42,709,710,731,1,46,45,66,12,12,12,42,731,730,709,1,66,67,46,12,12,12,42,710,711,732,1,45,44,65,12,12,12,42,732,731,710,1,65,66,45,12,12,12,42,711,712,733,1,44,43,64,12,12,12,42,733,732,711,1,64,65,44,12,12,12,42,712,713,734,1,43,42,63,12,16,16,42,734,733,712,1,63,64,43,16,12,12,42,714,715,736,1,83,82,103,13,14,14,42,736,735,714,1,103,104,83,14,13,13,42,715,716,737,1,82,81,102,14,14,14,42,737,736,715,1,102,103,82,14,14,14,42,716,717,738,1,81,80,101,14,14,14,42,738,737,716,1,101,102,81,14,14,14,42,717,718,739,1,80,79,100,14,14,14,42,739,738,717,1,100,101,80,14,14,14,42,718,719,740,1,79,78,99,14,14,14,42,740,739,718,1,99,100,79,14,14,14,42,719,720,741,1,78,77,98,14,14,14,42,741,740,719,1,98,99,78,14,14,14,42,720,721,742,1,77,76,97,14,14,14,42,742,741,720,1,97,98,77,14,14,14,42,721,722,743,1,76,75,96,14,14,14,42,743,742,721,1,96,97,76,14,14,14,42,722,723,744,1,75,74,95,14,14,14,42,744,743,722,1,95,96,75,14,14,14,42,723,724,745,1,74,73,94,14,14,14,42,745,744,723,1,94,95,74,14,14,14,42,724,725,746,1,73,72,93,14,12,12,42,746,745,724,1,93,94,73,12,14,14,42,725,726,747,1,72,71,92,12,12,12,42,747,746,725,1,92,93,72,12,12,12,42,726,727,748,1,71,70,91,12,14,14,42,748,747,726,1,91,92,71,14,12,12,42,727,728,749,1,70,69,90,14,12,12,42,749,748,727,1,90,91,70,12,14,14,42,728,729,750,1,69,68,89,12,12,12,42,750,749,728,1,89,90,69,12,12,12,42,729,730,751,1,68,67,88,12,12,12,42,751,750,729,1,88,89,68,12,12,12,42,730,731,752,1,67,66,87,12,12,12,42,752,751,730,1,87,88,67,12,12,12,42,731,732,753,1,66,65,86,12,12,12,42,753,752,731,1,86,87,66,12,12,12,42,732,733,754,1,65,64,85,12,12,12,42,754,753,732,1,85,86,65,12,12,12,42,733,734,755,1,64,63,84,12,16,16,42,755,754,733,1,84,85,64,16,12,12,42,735,736,757,1,104,103,124,13,14,14,42,757,756,735,1,124,125,104,14,13,13,42,736,737,758,1,103,102,123,14,14,14,42,758,757,736,1,123,124,103,14,14,14,42,737,738,759,1,102,101,122,14,14,14,42,759,758,737,1,122,123,102,14,14,14,42,738,739,760,1,101,100,121,14,14,14,42,760,759,738,1,121,122,101,14,14,14,42,739,740,761,1,100,99,120,14,14,14,42,761,760,739,1,120,121,100,14,14,14,42,740,741,762,1,99,98,119,14,14,14,42,762,761,740,1,119,120,99,14,14,14,42,741,742,763,1,98,97,118,14,14,14,42,763,762,741,1,118,119,98,14,14,14,42,742,743,764,1,97,96,117,14,14,14,42,764,763,742,1,117,118,97,14,14,14,42,743,744,765,1,96,95,116,14,14,14,42,765,764,743,1,116,117,96,14,14,14,42,744,745,766,1,95,94,115,14,14,14,42,766,765,744,1,115,116,95,14,14,14,42,745,746,767,1,94,93,114,14,12,12,42,767,766,745,1,114,115,94,12,14,14,42,746,747,768,1,93,92,113,12,12,12,42,768,767,746,1,113,114,93,12,12,12,42,747,748,769,1,92,91,112,12,14,14,42,769,768,747,1,112,113,92,14,12,12,42,748,749,770,1,91,90,111,14,12,12,42,770,769,748,1,111,112,91,12,14,14,42,749,750,771,1,90,89,110,12,12,12,42,771,770,749,1,110,111,90,12,12,12,42,750,751,772,1,89,88,109,12,12,12,42,772,771,750,1,109,110,89,12,12,12,42,751,752,773,1,88,87,108,12,12,12,42,773,772,751,1,108,109,88,12,12,12,42,752,753,774,1,87,86,107,12,12,12,42,774,773,752,1,107,108,87,12,12,12,42,753,754,775,1,86,85,106,12,12,12,42,775,774,753,1,106,107,86,12,12,12,42,754,755,776,1,85,84,105,12,16,16,42,776,775,754,1,105,106,85,16,12,12,42,756,757,778,1,125,124,145,13,14,14,42,778,777,756,1,145,146,125,14,13,13,42,757,758,779,1,124,123,144,14,14,14,42,779,778,757,1,144,145,124,14,14,14,42,758,759,780,1,123,122,143,14,14,14,42,780,779,758,1,143,144,123,14,14,14,42,759,760,781,1,122,121,142,14,14,14,42,781,780,759,1,142,143,122,14,14,14,42,760,761,782,1,121,120,141,14,14,14,42,782,781,760,1,141,142,121,14,14,14,42,761,762,783,1,120,119,140,14,14,14,42,783,782,761,1,140,141,120,14,14,14,42,762,763,784,1,119,118,139,14,14,14,42,784,783,762,1,139,140,119,14,14,14,42,763,764,785,1,118,117,138,14,14,14,42,785,784,763,1,138,139,118,14,14,14,42,764,765,786,1,117,116,137,14,14,14,42,786,785,764,1,137,138,117,14,14,14,42,765,766,787,1,116,115,136,14,14,14,42,787,786,765,1,136,137,116,14,14,14,42,766,767,788,1,115,114,135,14,12,12,42,788,787,766,1,135,136,115,12,14,14,42,767,768,789,1,114,113,134,12,12,12,42,789,788,767,1,134,135,114,12,12,12,42,768,769,790,1,113,112,133,12,14,14,42,790,789,768,1,133,134,113,14,12,12,42,769,770,791,1,112,111,132,14,12,12,42,791,790,769,1,132,133,112,12,14,14,42,770,771,792,1,111,110,131,12,12,12,42,792,791,770,1,131,132,111,12,12,12,42,771,772,793,1,110,109,130,12,12,12,42,793,792,771,1,130,131,110,12,12,12,42,772,773,794,1,109,108,129,12,12,12,42,794,793,772,1,129,130,109,12,12,12,42,773,774,795,1,108,107,128,12,12,12,42,795,794,773,1,128,129,108,12,12,12,42,774,775,796,1,107,106,127,12,12,12,42,796,795,774,1,127,128,107,12,12,12,42,775,776,797,1,106,105,126,12,16,16,42,797,796,775,1,126,127,106,16,12,12,42,777,778,799,1,146,145,166,13,14,14,42,799,798,777,1,166,167,146,14,13,13,42,778,779,800,1,145,144,165,14,14,14,42,800,799,778,1,165,166,145,14,14,14,42,779,780,801,1,144,143,164,14,14,14,42,801,800,779,1,164,165,144,14,14,14,42,780,781,802,1,143,142,163,14,14,14,42,802,801,780,1,163,164,143,14,14,14,42,781,782,803,1,142,141,162,14,14,14,42,803,802,781,1,162,163,142,14,14,14,42,782,783,804,1,141,140,161,14,14,14,42,804,803,782,1,161,162,141,14,14,14,42,783,784,805,1,140,139,160,14,14,14,42,805,804,783,1,160,161,140,14,14,14,42,784,785,806,1,139,138,159,14,14,14,42,806,805,784,1,159,160,139,14,14,14,42,785,786,807,1,138,137,158,14,14,14,42,807,806,785,1,158,159,138,14,14,14,42,786,787,808,1,137,136,157,14,14,14,42,808,807,786,1,157,158,137,14,14,14,42,787,788,809,1,136,135,156,14,12,12,42,809,808,787,1,156,157,136,12,14,14,42,788,789,810,1,135,134,155,12,12,12,42,810,809,788,1,155,156,135,12,12,12,42,789,790,811,1,134,133,154,12,14,14,42,811,810,789,1,154,155,134,14,12,12,42,790,791,812,1,133,132,153,14,12,12,42,812,811,790,1,153,154,133,12,14,14,42,791,792,813,1,132,131,152,12,12,12,42,813,812,791,1,152,153,132,12,12,12,42,792,793,814,1,131,130,151,12,12,12,42,814,813,792,1,151,152,131,12,12,12,42,793,794,815,1,130,129,150,12,12,12,42,815,814,793,1,150,151,130,12,12,12,42,794,795,816,1,129,128,149,12,12,12,42,816,815,794,1,149,150,129,12,12,12,42,795,796,817,1,128,127,148,12,12,12,42,817,816,795,1,148,149,128,12,12,12,42,796,797,818,1,127,126,147,12,16,16,42,818,817,796,1,147,148,127,16,12,12,42,798,799,820,1,167,166,187,13,14,14,42,820,819,798,1,187,188,167,14,13,13,42,799,800,821,1,166,165,186,14,14,14,42,821,820,799,1,186,187,166,14,14,14,42,800,801,822,1,165,164,185,14,14,14,42,822,821,800,1,185,186,165,14,14,14,42,801,802,823,1,164,163,184,14,14,14,42,823,822,801,1,184,185,164,14,14,14,42,802,803,824,1,163,162,183,14,14,14,42,824,823,802,1,183,184,163,14,14,14,42,803,804,825,1,162,161,182,14,14,14,42,825,824,803,1,182,183,162,14,14,14,42,804,805,826,1,161,160,181,14,14,14,42,826,825,804,1,181,182,161,14,14,14,42,805,806,827,1,160,159,180,14,14,14,42,827,826,805,1,180,181,160,14,14,14,42,806,807,828,1,159,158,179,14,14,14,42,828,827,806,1,179,180,159,14,14,14,42,807,808,829,1,158,157,178,14,14,14,42,829,828,807,1,178,179,158,14,14,14,42,808,809,830,1,157,156,177,14,12,12,42,830,829,808,1,177,178,157,12,14,14,42,809,810,831,1,156,155,176,12,12,12,42,831,830,809,1,176,177,156,12,12,12,42,810,811,832,1,155,154,175,12,14,14,42,832,831,810,1,175,176,155,14,12,12,42,811,812,833,1,154,153,174,14,12,12,42,833,832,811,1,174,175,154,12,14,14,42,812,813,834,1,153,152,173,12,12,12,42,834,833,812,1,173,174,153,12,12,12,42,813,814,835,1,152,151,172,12,12,12,42,835,834,813,1,172,173,152,12,12,12,42,814,815,836,1,151,150,171,12,12,12,42,836,835,814,1,171,172,151,12,12,12,42,815,816,837,1,150,149,170,12,12,12,42,837,836,815,1,170,171,150,12,12,12,42,816,817,838,1,149,148,169,12,12,12,42,838,837,816,1,169,170,149,12,12,12,42,817,818,839,1,148,147,168,12,16,16,42,839,838,817,1,168,169,148,16,12,12,42,819,820,841,1,188,187,208,13,14,14,42,841,840,819,1,208,209,188,14,13,13,42,820,821,842,1,187,186,207,14,14,14,42,842,841,820,1,207,208,187,14,14,14,42,821,822,843,1,186,185,206,14,14,14,42,843,842,821,1,206,207,186,14,14,14,42,822,823,844,1,185,184,205,14,14,14,42,844,843,822,1,205,206,185,14,14,14,42,823,824,845,1,184,183,204,14,14,14,42,845,844,823,1,204,205,184,14,14,14,42,824,825,846,1,183,182,203,14,14,14,42,846,845,824,1,203,204,183,14,14,14,42,825,826,847,1,182,181,202,14,14,14,42,847,846,825,1,202,203,182,14,14,14,42,826,827,848,1,181,180,201,14,14,14,42,848,847,826,1,201,202,181,14,14,14,42,827,828,849,1,180,179,200,14,14,14,42,849,848,827,1,200,201,180,14,14,14,42,828,829,850,1,179,178,199,14,14,14,42,850,849,828,1,199,200,179,14,14,14,42,829,830,851,1,178,177,198,14,12,12,42,851,850,829,1,198,199,178,12,14,14,42,830,831,852,1,177,176,197,12,12,12,42,852,851,830,1,197,198,177,12,12,12,42,831,832,853,1,176,175,196,12,14,14,42,853,852,831,1,196,197,176,14,12,12,42,832,833,854,1,175,174,195,14,12,12,42,854,853,832,1,195,196,175,12,14,14,42,833,834,855,1,174,173,194,12,12,12,42,855,854,833,1,194,195,174,12,12,12,42,834,835,856,1,173,172,193,12,12,12,42,856,855,834,1,193,194,173,12,12,12,42,835,836,857,1,172,171,192,12,12,12,42,857,856,835,1,192,193,172,12,12,12,42,836,837,858,1,171,170,191,12,12,12,42,858,857,836,1,191,192,171,12,12,12,42,837,838,859,1,170,169,190,12,12,12,42,859,858,837,1,190,191,170,12,12,12,42,838,839,860,1,169,168,189,12,16,16,42,860,859,838,1,189,190,169,16,12,12,42,840,841,862,1,209,208,229,13,14,14,42,862,861,840,1,229,230,209,14,13,13,42,841,842,863,1,208,207,228,14,14,14,42,863,862,841,1,228,229,208,14,14,14,42,842,843,864,1,207,206,227,14,14,14,42,864,863,842,1,227,228,207,14,14,14,42,843,844,865,1,206,205,226,14,14,14,42,865,864,843,1,226,227,206,14,14,14,42,844,845,866,1,205,204,225,14,14,14,42,866,865,844,1,225,226,205,14,14,14,42,845,846,867,1,204,203,224,14,14,14,42,867,866,845,1,224,225,204,14,14,14,42,846,847,868,1,203,202,223,14,14,14,42,868,867,846,1,223,224,203,14,14,14,42,847,848,869,1,202,201,222,14,14,14,42,869,868,847,1,222,223,202,14,14,14,42,848,849,870,1,201,200,221,14,14,14,42,870,869,848,1,221,222,201,14,14,14,42,849,850,871,1,200,199,220,14,14,14,42,871,870,849,1,220,221,200,14,14,14,42,850,851,872,1,199,198,219,14,12,12,42,872,871,850,1,219,220,199,12,14,14,42,851,852,873,1,198,197,218,12,12,12,42,873,872,851,1,218,219,198,12,12,12,42,852,853,874,1,197,196,217,12,14,14,42,874,873,852,1,217,218,197,14,12,12,42,853,854,875,1,196,195,216,14,12,12,42,875,874,853,1,216,217,196,12,14,14,42,854,855,876,1,195,194,215,12,12,12,42,876,875,854,1,215,216,195,12,12,12,42,855,856,877,1,194,193,214,12,12,12,42,877,876,855,1,214,215,194,12,12,12,42,856,857,878,1,193,192,213,12,12,12,42,878,877,856,1,213,214,193,12,12,12,42,857,858,879,1,192,191,212,12,12,12,42,879,878,857,1,212,213,192,12,12,12,42,858,859,880,1,191,190,211,12,12,12,42,880,879,858,1,211,212,191,12,12,12,42,859,860,881,1,190,189,210,12,16,16,42,881,880,859,1,210,211,190,16,12,12,42,861,862,883,1,230,229,250,13,14,14,42,883,882,861,1,250,251,230,14,13,13,42,862,863,884,1,229,228,249,14,14,14,42,884,883,862,1,249,250,229,14,14,14,42,863,864,885,1,228,227,248,14,14,14,42,885,884,863,1,248,249,228,14,14,14,42,864,865,886,1,227,226,247,14,14,14,42,886,885,864,1,247,248,227,14,14,14,42,865,866,887,1,226,225,246,14,14,14,42,887,886,865,1,246,247,226,14,14,14,42,866,867,888,1,225,224,245,14,14,14,42,888,887,866,1,245,246,225,14,14,14,42,867,868,889,1,224,223,244,14,14,14,42,889,888,867,1,244,245,224,14,14,14,42,868,869,890,1,223,222,243,14,14,14,42,890,889,868,1,243,244,223,14,14,14,42,869,870,891,1,222,221,242,14,14,14,42,891,890,869,1,242,243,222,14,14,14,42,870,871,892,1,221,220,241,14,14,14,42,892,891,870,1,241,242,221,14,14,14,42,871,872,893,1,220,219,240,14,12,12,42,893,892,871,1,240,241,220,12,14,14,42,872,873,894,1,219,218,239,12,12,12,42,894,893,872,1,239,240,219,12,12,12,42,873,874,895,1,218,217,238,12,14,14,42,895,894,873,1,238,239,218,14,12,12,42,874,875,896,1,217,216,237,14,12,12,42,896,895,874,1,237,238,217,12,14,14,42,875,876,897,1,216,215,236,12,12,12,42,897,896,875,1,236,237,216,12,12,12,42,876,877,898,1,215,214,235,12,12,12,42,898,897,876,1,235,236,215,12,12,12,42,877,878,899,1,214,213,234,12,12,12,42,899,898,877,1,234,235,214,12,12,12,42,878,879,900,1,213,212,233,12,12,12,42,900,899,878,1,233,234,213,12,12,12,42,879,880,901,1,212,211,232,12,12,12,42,901,900,879,1,232,233,212,12,12,12,42,880,881,902,1,211,210,231,12,16,16,42,902,901,880,1,231,232,211,16,12,12,42,882,883,904,1,251,250,271,13,14,14,42,904,903,882,1,271,272,251,14,13,13,42,883,884,905,1,250,249,270,14,14,14,42,905,904,883,1,270,271,250,14,14,14,42,884,885,906,1,249,248,269,14,14,14,42,906,905,884,1,269,270,249,14,14,14,42,885,886,907,1,248,247,268,14,14,14,42,907,906,885,1,268,269,248,14,14,14,42,886,887,908,1,247,246,267,14,14,14,42,908,907,886,1,267,268,247,14,14,14,42,887,888,909,1,246,245,266,14,14,14,42,909,908,887,1,266,267,246,14,14,14,42,888,889,910,1,245,244,265,14,14,14,42,910,909,888,1,265,266,245,14,14,14,42,889,890,911,1,244,243,264,14,14,14,42,911,910,889,1,264,265,244,14,14,14,42,890,891,912,1,243,242,263,14,14,14,42,912,911,890,1,263,264,243,14,14,14,42,891,892,913,1,242,241,262,14,14,14,42,913,912,891,1,262,263,242,14,14,14,42,892,893,914,1,241,240,261,14,12,14,42,914,913,892,1,261,262,241,14,14,14,42,893,894,915,1,240,239,260,12,12,14,42,915,914,893,1,260,261,240,14,14,12,42,894,895,916,1,239,238,259,12,14,12,42,916,915,894,1,259,260,239,12,14,12,42,895,896,917,1,238,237,258,14,12,14,42,917,916,895,1,258,259,238,14,12,14,42,896,897,918,1,237,236,257,12,12,14,42,918,917,896,1,257,258,237,14,14,12,42,897,898,919,1,236,235,256,12,12,14,42,919,918,897,1,256,257,236,14,14,12,42,898,899,920,1,235,234,255,12,12,14,42,920,919,898,1,255,256,235,14,14,12,42,899,900,921,1,234,233,254,12,12,14,42,921,920,899,1,254,255,234,14,14,12,42,900,901,922,1,233,232,253,12,12,14,42,922,921,900,1,253,254,233,14,14,12,42,901,902,923,1,232,231,252,12,16,16,42,923,922,901,1,252,253,232,16,14,12,42,903,904,925,1,272,271,292,13,14,14,42,925,924,903,1,292,293,272,14,13,13,42,904,905,926,1,271,270,291,14,14,14,42,926,925,904,1,291,292,271,14,14,14,42,905,906,927,1,270,269,290,14,14,14,42,927,926,905,1,290,291,270,14,14,14,42,906,907,928,1,269,268,289,14,14,14,42,928,927,906,1,289,290,269,14,14,14,42,907,908,929,1,268,267,288,14,14,14,42,929,928,907,1,288,289,268,14,14,14,42,908,909,930,1,267,266,287,14,14,14,42,930,929,908,1,287,288,267,14,14,14,42,909,910,931,1,266,265,286,14,14,14,42,931,930,909,1,286,287,266,14,14,14,42,910,911,932,1,265,264,285,14,14,14,42,932,931,910,1,285,286,265,14,14,14,42,911,912,933,1,264,263,284,14,14,14,42,933,932,911,1,284,285,264,14,14,14,42,912,913,934,1,263,262,283,14,14,14,42,934,933,912,1,283,284,263,14,14,14,42,913,914,935,1,262,261,282,14,14,14,42,935,934,913,1,282,283,262,14,14,14,42,914,915,936,1,261,260,281,14,14,14,42,936,935,914,1,281,282,261,14,14,14,42,915,916,937,1,260,259,280,14,12,12,42,937,936,915,1,280,281,260,12,14,14,42,916,917,938,1,259,258,279,12,14,14,42,938,937,916,1,279,280,259,14,12,12,42,917,918,939,1,258,257,278,14,14,14,42,939,938,917,1,278,279,258,14,14,14,42,918,919,940,1,257,256,277,14,14,14,42,940,939,918,1,277,278,257,14,14,14,42,919,920,941,1,256,255,276,14,14,14,42,941,940,919,1,276,277,256,14,14,14,42,920,921,942,1,255,254,275,14,14,14,42,942,941,920,1,275,276,255,14,14,14,42,921,922,943,1,254,253,274,14,14,14,42,943,942,921,1,274,275,254,14,14,14,42,922,923,944,1,253,252,273,14,16,16,42,944,943,922,1,273,274,253,16,14,14,42,924,925,946,1,293,292,313,13,14,14,42,946,945,924,1,313,314,293,14,13,13,42,925,926,947,1,292,291,312,14,14,14,42,947,946,925,1,312,313,292,14,14,14,42,926,927,948,1,291,290,311,14,14,14,42,948,947,926,1,311,312,291,14,14,14,42,927,928,949,1,290,289,310,14,14,14,42,949,948,927,1,310,311,290,14,14,14,42,928,929,950,1,289,288,309,14,14,14,42,950,949,928,1,309,310,289,14,14,14,42,929,930,951,1,288,287,308,14,14,14,42,951,950,929,1,308,309,288,14,14,14,42,930,931,952,1,287,286,307,14,14,14,42,952,951,930,1,307,308,287,14,14,14,42,931,932,953,1,286,285,306,14,14,14,42,953,952,931,1,306,307,286,14,14,14,42,932,933,954,1,285,284,305,14,14,14,42,954,953,932,1,305,306,285,14,14,14,42,933,934,955,1,284,283,304,14,14,14,42,955,954,933,1,304,305,284,14,14,14,42,934,935,956,1,283,282,303,14,14,14,42,956,955,934,1,303,304,283,14,14,14,42,935,936,957,1,282,281,302,14,14,14,42,957,956,935,1,302,303,282,14,14,14,42,936,937,958,1,281,280,301,14,12,12,42,958,957,936,1,301,302,281,12,14,14,42,937,938,959,1,280,279,300,12,14,14,42,959,958,937,1,300,301,280,14,12,12,42,938,939,960,1,279,278,299,14,14,14,42,960,959,938,1,299,300,279,14,14,14,42,939,940,961,1,278,277,298,14,14,14,42,961,960,939,1,298,299,278,14,14,14,42,940,941,962,1,277,276,297,14,14,14,42,962,961,940,1,297,298,277,14,14,14,42,941,942,963,1,276,275,296,14,14,14,42,963,962,941,1,296,297,276,14,14,14,42,942,943,964,1,275,274,295,14,14,14,42,964,963,942,1,295,296,275,14,14,14,42,943,944,965,1,274,273,294,14,16,16,42,965,964,943,1,294,295,274,16,14,14,42,945,946,967,1,314,313,334,13,14,14,42,967,966,945,1,334,335,314,14,13,13,42,946,947,968,1,313,312,333,14,14,14,42,968,967,946,1,333,334,313,14,14,14,42,947,948,969,1,312,311,332,14,14,14,42,969,968,947,1,332,333,312,14,14,14,42,948,949,970,1,311,310,331,14,14,14,42,970,969,948,1,331,332,311,14,14,14,42,949,950,971,1,310,309,330,14,14,14,42,971,970,949,1,330,331,310,14,14,14,42,950,951,972,1,309,308,329,14,14,14,42,972,971,950,1,329,330,309,14,14,14,42,951,952,973,1,308,307,328,14,14,14,42,973,972,951,1,328,329,308,14,14,14,42,952,953,974,1,307,306,327,14,14,14,42,974,973,952,1,327,328,307,14,14,14,42,953,954,975,1,306,305,326,14,14,14,42,975,974,953,1,326,327,306,14,14,14,42,954,955,976,1,305,304,325,14,14,14,42,976,975,954,1,325,326,305,14,14,14,42,955,956,977,1,304,303,324,14,14,14,42,977,976,955,1,324,325,304,14,14,14,42,956,957,978,1,303,302,323,14,14,14,42,978,977,956,1,323,324,303,14,14,14,42,957,958,979,1,302,301,322,14,12,12,42,979,978,957,1,322,323,302,12,14,14,42,958,959,980,1,301,300,321,12,14,14,42,980,979,958,1,321,322,301,14,12,12,42,959,960,981,1,300,299,320,14,14,14,42,981,980,959,1,320,321,300,14,14,14,42,960,961,982,1,299,298,319,14,14,14,42,982,981,960,1,319,320,299,14,14,14,42,961,962,983,1,298,297,318,14,14,14,42,983,982,961,1,318,319,298,14,14,14,42,962,963,984,1,297,296,317,14,14,14,42,984,983,962,1,317,318,297,14,14,14,42,963,964,985,1,296,295,316,14,14,14,42,985,984,963,1,316,317,296,14,14,14,42,964,965,986,1,295,294,315,14,16,16,42,986,985,964,1,315,316,295,16,14,14,42,966,967,988,1,335,334,355,13,14,14,42,988,987,966,1,355,356,335,14,13,13,42,967,968,989,1,334,333,354,14,14,14,42,989,988,967,1,354,355,334,14,14,14,42,968,969,990,1,333,332,353,14,14,14,42,990,989,968,1,353,354,333,14,14,14,42,969,970,991,1,332,331,352,14,14,14,42,991,990,969,1,352,353,332,14,14,14,42,970,971,992,1,331,330,351,14,14,14,42,992,991,970,1,351,352,331,14,14,14,42,971,972,993,1,330,329,350,14,14,14,42,993,992,971,1,350,351,330,14,14,14,42,972,973,994,1,329,328,349,14,14,14,42,994,993,972,1,349,350,329,14,14,14,42,973,974,995,1,328,327,348,14,14,14,42,995,994,973,1,348,349,328,14,14,14,42,974,975,996,1,327,326,347,14,14,14,42,996,995,974,1,347,348,327,14,14,14,42,975,976,997,1,326,325,346,14,14,14,42,997,996,975,1,346,347,326,14,14,14,42,976,977,998,1,325,324,345,14,14,14,42,998,997,976,1,345,346,325,14,14,14,42,977,978,999,1,324,323,344,14,14,14,42,999,998,977,1,344,345,324,14,14,14,42,978,979,1000,1,323,322,343,14,12,12,42,1000,999,978,1,343,344,323,12,14,14,42,979,980,1001,1,322,321,342,12,14,14,42,1001,1000,979,1,342,343,322,14,12,12,42,980,981,1002,1,321,320,341,14,14,14,42,1002,1001,980,1,341,342,321,14,14,14,42,981,982,1003,1,320,319,340,14,14,14,42,1003,1002,981,1,340,341,320,14,14,14,42,982,983,1004,1,319,318,339,14,14,14,42,1004,1003,982,1,339,340,319,14,14,14,42,983,984,1005,1,318,317,338,14,14,14,42,1005,1004,983,1,338,339,318,14,14,14,42,984,985,1006,1,317,316,337,14,14,14,42,1006,1005,984,1,337,338,317,14,14,14,42,985,986,1007,1,316,315,336,14,16,16,42,1007,1006,985,1,336,337,316,16,14,14,42,987,988,1009,1,356,355,376,13,14,14,42,1009,1008,987,1,376,377,356,14,13,13,42,988,989,1010,1,355,354,375,14,14,14,42,1010,1009,988,1,375,376,355,14,14,14,42,989,990,1011,1,354,353,374,14,14,14,42,1011,1010,989,1,374,375,354,14,14,14,42,990,991,1012,1,353,352,373,14,14,14,42,1012,1011,990,1,373,374,353,14,14,14,42,991,992,1013,1,352,351,372,14,14,14,42,1013,1012,991,1,372,373,352,14,14,14,42,992,993,1014,1,351,350,371,14,14,14,42,1014,1013,992,1,371,372,351,14,14,14,42,993,994,1015,1,350,349,370,14,14,14,42,1015,1014,993,1,370,371,350,14,14,14,42,994,995,1016,1,349,348,369,14,14,14,42,1016,1015,994,1,369,370,349,14,14,14,42,995,996,1017,1,348,347,368,14,14,14,42,1017,1016,995,1,368,369,348,14,14,14,42,996,997,1018,1,347,346,367,14,14,14,42,1018,1017,996,1,367,368,347,14,14,14,42,997,998,1019,1,346,345,366,14,14,14,42,1019,1018,997,1,366,367,346,14,14,14,42,998,999,1020,1,345,344,365,14,14,14,42,1020,1019,998,1,365,366,345,14,14,14,42,999,1000,1021,1,344,343,364,14,12,12,42,1021,1020,999,1,364,365,344,12,14,14,42,1000,1001,1022,1,343,342,363,12,14,14,42,1022,1021,1000,1,363,364,343,14,12,12,42,1001,1002,1023,1,342,341,362,14,14,14,42,1023,1022,1001,1,362,363,342,14,14,14,42,1002,1003,1024,1,341,340,361,14,14,14,42,1024,1023,1002,1,361,362,341,14,14,14,42,1003,1004,1025,1,340,339,360,14,14,14,42,1025,1024,1003,1,360,361,340,14,14,14,42,1004,1005,1026,1,339,338,359,14,14,14,42,1026,1025,1004,1,359,360,339,14,14,14,42,1005,1006,1027,1,338,337,358,14,14,14,42,1027,1026,1005,1,358,359,338,14,14,14,42,1006,1007,1028,1,337,336,357,14,16,16,42,1028,1027,1006,1,357,358,337,16,14,14,42,1008,1009,1030,1,377,376,397,13,14,14,42,1030,1029,1008,1,397,398,377,14,13,13,42,1009,1010,1031,1,376,375,396,14,14,14,42,1031,1030,1009,1,396,397,376,14,14,14,42,1010,1011,1032,1,375,374,395,14,14,14,42,1032,1031,1010,1,395,396,375,14,14,14,42,1011,1012,1033,1,374,373,394,14,14,14,42,1033,1032,1011,1,394,395,374,14,14,14,42,1012,1013,1034,1,373,372,393,14,14,14,42,1034,1033,1012,1,393,394,373,14,14,14,42,1013,1014,1035,1,372,371,392,14,14,14,42,1035,1034,1013,1,392,393,372,14,14,14,42,1014,1015,1036,1,371,370,391,14,14,14,42,1036,1035,1014,1,391,392,371,14,14,14,42,1015,1016,1037,1,370,369,390,14,14,14,42,1037,1036,1015,1,390,391,370,14,14,14,42,1016,1017,1038,1,369,368,389,14,14,14,42,1038,1037,1016,1,389,390,369,14,14,14,42,1017,1018,1039,1,368,367,388,14,14,14,42,1039,1038,1017,1,388,389,368,14,14,14,42,1018,1019,1040,1,367,366,387,14,14,14,42,1040,1039,1018,1,387,388,367,14,14,14,42,1019,1020,1041,1,366,365,386,14,14,14,42,1041,1040,1019,1,386,387,366,14,14,14,42,1020,1021,1042,1,365,364,385,14,12,12,42,1042,1041,1020,1,385,386,365,12,14,14,42,1021,1022,1043,1,364,363,384,12,14,14,42,1043,1042,1021,1,384,385,364,14,12,12,42,1022,1023,1044,1,363,362,383,14,14,14,42,1044,1043,1022,1,383,384,363,14,14,14,42,1023,1024,1045,1,362,361,382,14,14,14,42,1045,1044,1023,1,382,383,362,14,14,14,42,1024,1025,1046,1,361,360,381,14,14,14,42,1046,1045,1024,1,381,382,361,14,14,14,42,1025,1026,1047,1,360,359,380,14,14,14,42,1047,1046,1025,1,380,381,360,14,14,14,42,1026,1027,1048,1,359,358,379,14,14,14,42,1048,1047,1026,1,379,380,359,14,14,14,42,1027,1028,1049,1,358,357,378,14,16,16,42,1049,1048,1027,1,378,379,358,16,14,14,42,1029,1030,1051,1,398,397,418,13,14,14,42,1051,1050,1029,1,418,419,398,14,13,13,42,1030,1031,1052,1,397,396,417,14,14,14,42,1052,1051,1030,1,417,418,397,14,14,14,42,1031,1032,1053,1,396,395,416,14,14,14,42,1053,1052,1031,1,416,417,396,14,14,14,42,1032,1033,1054,1,395,394,415,14,14,14,42,1054,1053,1032,1,415,416,395,14,14,14,42,1033,1034,1055,1,394,393,414,14,14,14,42,1055,1054,1033,1,414,415,394,14,14,14,42,1034,1035,1056,1,393,392,413,14,14,14,42,1056,1055,1034,1,413,414,393,14,14,14,42,1035,1036,1057,1,392,391,412,14,14,14,42,1057,1056,1035,1,412,413,392,14,14,14,42,1036,1037,1058,1,391,390,411,14,14,14,42,1058,1057,1036,1,411,412,391,14,14,14,42,1037,1038,1059,1,390,389,410,14,14,14,42,1059,1058,1037,1,410,411,390,14,14,14,42,1038,1039,1060,1,389,388,409,14,14,14,42,1060,1059,1038,1,409,410,389,14,14,14,42,1039,1040,1061,1,388,387,408,14,14,14,42,1061,1060,1039,1,408,409,388,14,14,14,42,1040,1041,1062,1,387,386,407,14,14,14,42,1062,1061,1040,1,407,408,387,14,14,14,42,1041,1042,1063,1,386,385,406,14,12,12,42,1063,1062,1041,1,406,407,386,12,14,14,42,1042,1043,1064,1,385,384,405,12,14,14,42,1064,1063,1042,1,405,406,385,14,12,12,42,1043,1044,1065,1,384,383,404,14,14,14,42,1065,1064,1043,1,404,405,384,14,14,14,42,1044,1045,1066,1,383,382,403,14,14,14,42,1066,1065,1044,1,403,404,383,14,14,14,42,1045,1046,1067,1,382,381,402,14,14,14,42,1067,1066,1045,1,402,403,382,14,14,14,42,1046,1047,1068,1,381,380,401,14,14,14,42,1068,1067,1046,1,401,402,381,14,14,14,42,1047,1048,1069,1,380,379,400,14,14,14,42,1069,1068,1047,1,400,401,380,14,14,14,42,1048,1049,1070,1,379,378,399,14,16,16,42,1070,1069,1048,1,399,400,379,16,14,14,42,1050,1051,1072,1,419,418,439,13,14,14,42,1072,1071,1050,1,439,440,419,14,13,13,42,1051,1052,1073,1,418,417,438,14,14,14,42,1073,1072,1051,1,438,439,418,14,14,14,42,1052,1053,1074,1,417,416,437,14,14,14,42,1074,1073,1052,1,437,438,417,14,14,14,42,1053,1054,1075,1,416,415,436,14,14,14,42,1075,1074,1053,1,436,437,416,14,14,14,42,1054,1055,1076,1,415,414,435,14,14,14,42,1076,1075,1054,1,435,436,415,14,14,14,42,1055,1056,1077,1,414,413,434,14,14,14,42,1077,1076,1055,1,434,435,414,14,14,14,42,1056,1057,1078,1,413,412,433,14,14,14,42,1078,1077,1056,1,433,434,413,14,14,14,42,1057,1058,1079,1,412,411,432,14,14,14,42,1079,1078,1057,1,432,433,412,14,14,14,42,1058,1059,1080,1,411,410,431,14,14,14,42,1080,1079,1058,1,431,432,411,14,14,14,42,1059,1060,1081,1,410,409,430,14,14,14,42,1081,1080,1059,1,430,431,410,14,14,14,42,1060,1061,1082,1,409,408,429,14,14,12,42,1082,1081,1060,1,429,430,409,12,14,14,42,1061,1062,1083,1,408,407,428,14,14,12,42,1083,1082,1061,1,428,429,408,12,12,14,42,1062,1063,1084,1,407,406,427,14,12,14,42,1084,1083,1062,1,427,428,407,14,12,14,42,1063,1064,1085,1,406,405,426,12,14,12,42,1085,1084,1063,1,426,427,406,12,14,12,42,1064,1065,1086,1,405,404,425,14,14,12,42,1086,1085,1064,1,425,426,405,12,12,14,42,1065,1066,1087,1,404,403,424,14,14,12,42,1087,1086,1065,1,424,425,404,12,12,14,42,1066,1067,1088,1,403,402,423,14,14,12,42,1088,1087,1066,1,423,424,403,12,12,14,42,1067,1068,1089,1,402,401,422,14,14,12,42,1089,1088,1067,1,422,423,402,12,12,14,42,1068,1069,1090,1,401,400,421,14,14,12,42,1090,1089,1068,1,421,422,401,12,12,14,42,1069,1070,1091,1,400,399,420,14,16,16,42,1091,1090,1069,1,420,421,400,16,12,14,42,1071,1072,1093,1,440,439,460,13,14,14,42,1093,1092,1071,1,460,461,440,14,13,13,42,1072,1073,1094,1,439,438,459,14,14,14,42,1094,1093,1072,1,459,460,439,14,14,14,42,1073,1074,1095,1,438,437,458,14,14,14,42,1095,1094,1073,1,458,459,438,14,14,14,42,1074,1075,1096,1,437,436,457,14,14,14,42,1096,1095,1074,1,457,458,437,14,14,14,42,1075,1076,1097,1,436,435,456,14,14,14,42,1097,1096,1075,1,456,457,436,14,14,14,42,1076,1077,1098,1,435,434,455,14,14,14,42,1098,1097,1076,1,455,456,435,14,14,14,42,1077,1078,1099,1,434,433,454,14,14,14,42,1099,1098,1077,1,454,455,434,14,14,14,42,1078,1079,1100,1,433,432,453,14,14,14,42,1100,1099,1078,1,453,454,433,14,14,14,42,1079,1080,1101,1,432,431,452,14,14,14,42,1101,1100,1079,1,452,453,432,14,14,14,42,1080,1081,1102,1,431,430,451,14,14,14,42,1102,1101,1080,1,451,452,431,14,14,14,42,1081,1082,1103,1,430,429,450,14,12,12,42,1103,1102,1081,1,450,451,430,12,14,14,42,1082,1083,1104,1,429,428,449,12,12,12,42,1104,1103,1082,1,449,450,429,12,12,12,42,1083,1084,1105,1,428,427,448,12,14,14,42,1105,1104,1083,1,448,449,428,14,12,12,42,1084,1085,1106,1,427,426,447,14,12,12,42,1106,1105,1084,1,447,448,427,12,14,14,42,1085,1086,1107,1,426,425,446,12,12,12,42,1107,1106,1085,1,446,447,426,12,12,12,42,1086,1087,1108,1,425,424,445,12,12,12,42,1108,1107,1086,1,445,446,425,12,12,12,42,1087,1088,1109,1,424,423,444,12,12,12,42,1109,1108,1087,1,444,445,424,12,12,12,42,1088,1089,1110,1,423,422,443,12,12,12,42,1110,1109,1088,1,443,444,423,12,12,12,42,1089,1090,1111,1,422,421,442,12,12,12,42,1111,1110,1089,1,442,443,422,12,12,12,42,1090,1091,1112,1,421,420,441,12,16,16,42,1112,1111,1090,1,441,442,421,16,12,12,42,1092,1093,1114,1,461,460,481,13,14,14,42,1114,1113,1092,1,481,482,461,14,13,13,42,1093,1094,1115,1,460,459,480,14,14,14,42,1115,1114,1093,1,480,481,460,14,14,14,42,1094,1095,1116,1,459,458,479,14,14,14,42,1116,1115,1094,1,479,480,459,14,14,14,42,1095,1096,1117,1,458,457,478,14,14,14,42,1117,1116,1095,1,478,479,458,14,14,14,42,1096,1097,1118,1,457,456,477,14,14,14,42,1118,1117,1096,1,477,478,457,14,14,14,42,1097,1098,1119,1,456,455,476,14,14,14,42,1119,1118,1097,1,476,477,456,14,14,14,42,1098,1099,1120,1,455,454,475,14,14,14,42,1120,1119,1098,1,475,476,455,14,14,14,42,1099,1100,1121,1,454,453,474,14,14,14,42,1121,1120,1099,1,474,475,454,14,14,14,42,1100,1101,1122,1,453,452,473,14,14,14,42,1122,1121,1100,1,473,474,453,14,14,14,42,1101,1102,1123,1,452,451,472,14,14,14,42,1123,1122,1101,1,472,473,452,14,14,14,42,1102,1103,1124,1,451,450,471,14,12,12,42,1124,1123,1102,1,471,472,451,12,14,14,42,1103,1104,1125,1,450,449,470,12,12,12,42,1125,1124,1103,1,470,471,450,12,12,12,42,1104,1105,1126,1,449,448,469,12,14,14,42,1126,1125,1104,1,469,470,449,14,12,12,42,1105,1106,1127,1,448,447,468,14,12,12,42,1127,1126,1105,1,468,469,448,12,14,14,42,1106,1107,1128,1,447,446,467,12,12,12,42,1128,1127,1106,1,467,468,447,12,12,12,42,1107,1108,1129,1,446,445,466,12,12,12,42,1129,1128,1107,1,466,467,446,12,12,12,42,1108,1109,1130,1,445,444,465,12,12,12,42,1130,1129,1108,1,465,466,445,12,12,12,42,1109,1110,1131,1,444,443,464,12,12,12,42,1131,1130,1109,1,464,465,444,12,12,12,42,1110,1111,1132,1,443,442,463,12,12,12,42,1132,1131,1110,1,463,464,443,12,12,12,42,1111,1112,1133,1,442,441,462,12,16,16,42,1133,1132,1111,1,462,463,442,16,12,12,42,1113,1114,1135,1,482,481,502,13,14,14,42,1135,1134,1113,1,502,503,482,14,13,13,42,1114,1115,1136,1,481,480,501,14,14,14,42,1136,1135,1114,1,501,502,481,14,14,14,42,1115,1116,1137,1,480,479,500,14,14,14,42,1137,1136,1115,1,500,501,480,14,14,14,42,1116,1117,1138,1,479,478,499,14,14,14,42,1138,1137,1116,1,499,500,479,14,14,14,42,1117,1118,1139,1,478,477,498,14,14,14,42,1139,1138,1117,1,498,499,478,14,14,14,42,1118,1119,1140,1,477,476,497,14,14,14,42,1140,1139,1118,1,497,498,477,14,14,14,42,1119,1120,1141,1,476,475,496,14,14,14,42,1141,1140,1119,1,496,497,476,14,14,14,42,1120,1121,1142,1,475,474,495,14,14,14,42,1142,1141,1120,1,495,496,475,14,14,14,42,1121,1122,1143,1,474,473,494,14,14,14,42,1143,1142,1121,1,494,495,474,14,14,14,42,1122,1123,1144,1,473,472,493,14,14,14,42,1144,1143,1122,1,493,494,473,14,14,14,42,1123,1124,1145,1,472,471,492,14,12,12,42,1145,1144,1123,1,492,493,472,12,14,14,42,1124,1125,1146,1,471,470,491,12,12,12,42,1146,1145,1124,1,491,492,471,12,12,12,42,1125,1126,1147,1,470,469,490,12,14,14,42,1147,1146,1125,1,490,491,470,14,12,12,42,1126,1127,1148,1,469,468,489,14,12,12,42,1148,1147,1126,1,489,490,469,12,14,14,42,1127,1128,1149,1,468,467,488,12,12,12,42,1149,1148,1127,1,488,489,468,12,12,12,42,1128,1129,1150,1,467,466,487,12,12,12,42,1150,1149,1128,1,487,488,467,12,12,12,42,1129,1130,1151,1,466,465,486,12,12,12,42,1151,1150,1129,1,486,487,466,12,12,12,42,1130,1131,1152,1,465,464,485,12,12,12,42,1152,1151,1130,1,485,486,465,12,12,12,42,1131,1132,1153,1,464,463,484,12,12,12,42,1153,1152,1131,1,484,485,464,12,12,12,42,1132,1133,1154,1,463,462,483,12,16,16,42,1154,1153,1132,1,483,484,463,16,12,12,42,1134,1135,1156,1,503,502,523,13,14,14,42,1156,1155,1134,1,523,524,503,14,13,13,42,1135,1136,1157,1,502,501,522,14,14,14,42,1157,1156,1135,1,522,523,502,14,14,14,42,1136,1137,1158,1,501,500,521,14,14,14,42,1158,1157,1136,1,521,522,501,14,14,14,42,1137,1138,1159,1,500,499,520,14,14,14,42,1159,1158,1137,1,520,521,500,14,14,14,42,1138,1139,1160,1,499,498,519,14,14,14,42,1160,1159,1138,1,519,520,499,14,14,14,42,1139,1140,1161,1,498,497,518,14,14,14,42,1161,1160,1139,1,518,519,498,14,14,14,42,1140,1141,1162,1,497,496,517,14,14,14,42,1162,1161,1140,1,517,518,497,14,14,14,42,1141,1142,1163,1,496,495,516,14,14,14,42,1163,1162,1141,1,516,517,496,14,14,14,42,1142,1143,1164,1,495,494,515,14,14,14,42,1164,1163,1142,1,515,516,495,14,14,14,42,1143,1144,1165,1,494,493,514,14,14,14,42,1165,1164,1143,1,514,515,494,14,14,14,42,1144,1145,1166,1,493,492,513,14,12,12,42,1166,1165,1144,1,513,514,493,12,14,14,42,1145,1146,1167,1,492,491,512,12,12,12,42,1167,1166,1145,1,512,513,492,12,12,12,42,1146,1147,1168,1,491,490,511,12,14,14,42,1168,1167,1146,1,511,512,491,14,12,12,42,1147,1148,1169,1,490,489,510,14,12,12,42,1169,1168,1147,1,510,511,490,12,14,14,42,1148,1149,1170,1,489,488,509,12,12,12,42,1170,1169,1148,1,509,510,489,12,12,12,42,1149,1150,1171,1,488,487,508,12,12,12,42,1171,1170,1149,1,508,509,488,12,12,12,42,1150,1151,1172,1,487,486,507,12,12,12,42,1172,1171,1150,1,507,508,487,12,12,12,42,1151,1152,1173,1,486,485,506,12,12,12,42,1173,1172,1151,1,506,507,486,12,12,12,42,1152,1153,1174,1,485,484,505,12,12,12,42,1174,1173,1152,1,505,506,485,12,12,12,42,1153,1154,1175,1,484,483,504,12,16,16,42,1175,1174,1153,1,504,505,484,16,12,12,42,1155,1156,1177,1,524,523,544,13,14,14,42,1177,1176,1155,1,544,545,524,14,13,13,42,1156,1157,1178,1,523,522,543,14,14,14,42,1178,1177,1156,1,543,544,523,14,14,14,42,1157,1158,1179,1,522,521,542,14,14,14,42,1179,1178,1157,1,542,543,522,14,14,14,42,1158,1159,1180,1,521,520,541,14,14,14,42,1180,1179,1158,1,541,542,521,14,14,14,42,1159,1160,1181,1,520,519,540,14,14,14,42,1181,1180,1159,1,540,541,520,14,14,14,42,1160,1161,1182,1,519,518,539,14,14,14,42,1182,1181,1160,1,539,540,519,14,14,14,42,1161,1162,1183,1,518,517,538,14,14,14,42,1183,1182,1161,1,538,539,518,14,14,14,42,1162,1163,1184,1,517,516,537,14,14,14,42,1184,1183,1162,1,537,538,517,14,14,14,42,1163,1164,1185,1,516,515,536,14,14,14,42,1185,1184,1163,1,536,537,516,14,14,14,42,1164,1165,1186,1,515,514,535,14,14,14,42,1186,1185,1164,1,535,536,515,14,14,14,42,1165,1166,1187,1,514,513,534,14,12,12,42,1187,1186,1165,1,534,535,514,12,14,14,42,1166,1167,1188,1,513,512,533,12,12,12,42,1188,1187,1166,1,533,534,513,12,12,12,42,1167,1168,1189,1,512,511,532,12,14,14,42,1189,1188,1167,1,532,533,512,14,12,12,42,1168,1169,1190,1,511,510,531,14,12,12,42,1190,1189,1168,1,531,532,511,12,14,14,42,1169,1170,1191,1,510,509,530,12,12,12,42,1191,1190,1169,1,530,531,510,12,12,12,42,1170,1171,1192,1,509,508,529,12,12,12,42,1192,1191,1170,1,529,530,509,12,12,12,42,1171,1172,1193,1,508,507,528,12,12,12,42,1193,1192,1171,1,528,529,508,12,12,12,42,1172,1173,1194,1,507,506,527,12,12,12,42,1194,1193,1172,1,527,528,507,12,12,12,42,1173,1174,1195,1,506,505,526,12,12,12,42,1195,1194,1173,1,526,527,506,12,12,12,42,1174,1175,1196,1,505,504,525,12,16,16,42,1196,1195,1174,1,525,526,505,16,12,12,42,1176,1177,1198,1,545,544,565,13,14,14,42,1198,1197,1176,1,565,566,545,14,13,13,42,1177,1178,1199,1,544,543,564,14,14,14,42,1199,1198,1177,1,564,565,544,14,14,14,42,1178,1179,1200,1,543,542,563,14,14,14,42,1200,1199,1178,1,563,564,543,14,14,14,42,1179,1180,1201,1,542,541,562,14,14,14,42,1201,1200,1179,1,562,563,542,14,14,14,42,1180,1181,1202,1,541,540,561,14,14,14,42,1202,1201,1180,1,561,562,541,14,14,14,42,1181,1182,1203,1,540,539,560,14,14,14,42,1203,1202,1181,1,560,561,540,14,14,14,42,1182,1183,1204,1,539,538,559,14,14,14,42,1204,1203,1182,1,559,560,539,14,14,14,42,1183,1184,1205,1,538,537,558,14,14,14,42,1205,1204,1183,1,558,559,538,14,14,14,42,1184,1185,1206,1,537,536,557,14,14,14,42,1206,1205,1184,1,557,558,537,14,14,14,42,1185,1186,1207,1,536,535,556,14,14,14,42,1207,1206,1185,1,556,557,536,14,14,14,42,1186,1187,1208,1,535,534,555,14,12,12,42,1208,1207,1186,1,555,556,535,12,14,14,42,1187,1188,1209,1,534,533,554,12,12,12,42,1209,1208,1187,1,554,555,534,12,12,12,42,1188,1189,1210,1,533,532,553,12,14,14,42,1210,1209,1188,1,553,554,533,14,12,12,42,1189,1190,1211,1,532,531,552,14,12,12,42,1211,1210,1189,1,552,553,532,12,14,14,42,1190,1191,1212,1,531,530,551,12,12,12,42,1212,1211,1190,1,551,552,531,12,12,12,42,1191,1192,1213,1,530,529,550,12,12,12,42,1213,1212,1191,1,550,551,530,12,12,12,42,1192,1193,1214,1,529,528,549,12,12,12,42,1214,1213,1192,1,549,550,529,12,12,12,42,1193,1194,1215,1,528,527,548,12,12,12,42,1215,1214,1193,1,548,549,528,12,12,12,42,1194,1195,1216,1,527,526,547,12,12,12,42,1216,1215,1194,1,547,548,527,12,12,12,42,1195,1196,1217,1,526,525,546,12,16,16,42,1217,1216,1195,1,546,547,526,16,12,12,42,1197,1198,1219,1,566,565,586,13,14,14,42,1219,1218,1197,1,586,587,566,14,13,13,42,1198,1199,1220,1,565,564,585,14,14,14,42,1220,1219,1198,1,585,586,565,14,14,14,42,1199,1200,1221,1,564,563,584,14,14,14,42,1221,1220,1199,1,584,585,564,14,14,14,42,1200,1201,1222,1,563,562,583,14,14,14,42,1222,1221,1200,1,583,584,563,14,14,14,42,1201,1202,1223,1,562,561,582,14,14,14,42,1223,1222,1201,1,582,583,562,14,14,14,42,1202,1203,1224,1,561,560,581,14,14,14,42,1224,1223,1202,1,581,582,561,14,14,14,42,1203,1204,1225,1,560,559,580,14,14,14,42,1225,1224,1203,1,580,581,560,14,14,14,42,1204,1205,1226,1,559,558,579,14,14,14,42,1226,1225,1204,1,579,580,559,14,14,14,42,1205,1206,1227,1,558,557,578,14,14,14,42,1227,1226,1205,1,578,579,558,14,14,14,42,1206,1207,1228,1,557,556,577,14,14,14,42,1228,1227,1206,1,577,578,557,14,14,14,42,1207,1208,1229,1,556,555,576,14,12,12,42,1229,1228,1207,1,576,577,556,12,14,14,42,1208,1209,1230,1,555,554,575,12,12,12,42,1230,1229,1208,1,575,576,555,12,12,12,42,1209,1210,1231,1,554,553,574,12,14,14,42,1231,1230,1209,1,574,575,554,14,12,12,42,1210,1211,1232,1,553,552,573,14,12,12,42,1232,1231,1210,1,573,574,553,12,14,14,42,1211,1212,1233,1,552,551,572,12,12,12,42,1233,1232,1211,1,572,573,552,12,12,12,42,1212,1213,1234,1,551,550,571,12,12,12,42,1234,1233,1212,1,571,572,551,12,12,12,42,1213,1214,1235,1,550,549,570,12,12,12,42,1235,1234,1213,1,570,571,550,12,12,12,42,1214,1215,1236,1,549,548,569,12,12,12,42,1236,1235,1214,1,569,570,549,12,12,12,42,1215,1216,1237,1,548,547,568,12,12,12,42,1237,1236,1215,1,568,569,548,12,12,12,42,1216,1217,1238,1,547,546,567,12,16,16,42,1238,1237,1216,1,567,568,547,16,12,12,42,1218,1219,1240,1,587,586,607,13,14,14,42,1240,1239,1218,1,607,608,587,14,13,13,42,1219,1220,1241,1,586,585,606,14,14,14,42,1241,1240,1219,1,606,607,586,14,14,14,42,1220,1221,1242,1,585,584,605,14,14,14,42,1242,1241,1220,1,605,606,585,14,14,14,42,1221,1222,1243,1,584,583,604,14,14,14,42,1243,1242,1221,1,604,605,584,14,14,14,42,1222,1223,1244,1,583,582,603,14,14,14,42,1244,1243,1222,1,603,604,583,14,14,14,42,1223,1224,1245,1,582,581,602,14,14,14,42,1245,1244,1223,1,602,603,582,14,14,14,42,1224,1225,1246,1,581,580,601,14,14,14,42,1246,1245,1224,1,601,602,581,14,14,14,42,1225,1226,1247,1,580,579,600,14,14,14,42,1247,1246,1225,1,600,601,580,14,14,14,42,1226,1227,1248,1,579,578,599,14,14,14,42,1248,1247,1226,1,599,600,579,14,14,14,42,1227,1228,1249,1,578,577,598,14,14,14,42,1249,1248,1227,1,598,599,578,14,14,14,42,1228,1229,1250,1,577,576,597,14,12,12,42,1250,1249,1228,1,597,598,577,12,14,14,42,1229,1230,1251,1,576,575,596,12,12,12,42,1251,1250,1229,1,596,597,576,12,12,12,42,1230,1231,1252,1,575,574,595,12,14,14,42,1252,1251,1230,1,595,596,575,14,12,12,42,1231,1232,1253,1,574,573,594,14,12,12,42,1253,1252,1231,1,594,595,574,12,14,14,42,1232,1233,1254,1,573,572,593,12,12,12,42,1254,1253,1232,1,593,594,573,12,12,12,42,1233,1234,1255,1,572,571,592,12,12,12,42,1255,1254,1233,1,592,593,572,12,12,12,42,1234,1235,1256,1,571,570,591,12,12,12,42,1256,1255,1234,1,591,592,571,12,12,12,42,1235,1236,1257,1,570,569,590,12,12,12,42,1257,1256,1235,1,590,591,570,12,12,12,42,1236,1237,1258,1,569,568,589,12,12,12,42,1258,1257,1236,1,589,590,569,12,12,12,42,1237,1238,1259,1,568,567,588,12,16,16,42,1259,1258,1237,1,588,589,568,16,12,12,42,1239,1240,1261,1,608,607,628,13,14,12,42,1261,1260,1239,1,628,629,608,12,13,13,42,1240,1241,1262,1,607,606,627,14,14,12,42,1262,1261,1240,1,627,628,607,12,12,14,42,1241,1242,1263,1,606,605,626,14,14,12,42,1263,1262,1241,1,626,627,606,12,12,14,42,1242,1243,1264,1,605,604,625,14,14,12,42,1264,1263,1242,1,625,626,605,12,12,14,42,1243,1244,1265,1,604,603,624,14,14,14,42,1265,1264,1243,1,624,625,604,14,12,14,42,1244,1245,1266,1,603,602,623,14,14,12,42,1266,1265,1244,1,623,624,603,12,14,14,42,1245,1246,1267,1,602,601,622,14,14,12,42,1267,1266,1245,1,622,623,602,12,12,14,42,1246,1247,1268,1,601,600,621,14,14,12,42,1268,1267,1246,1,621,622,601,12,12,14,42,1247,1248,1269,1,600,599,620,14,14,12,42,1269,1268,1247,1,620,621,600,12,12,14,42,1248,1249,1270,1,599,598,619,14,14,12,42,1270,1269,1248,1,619,620,599,12,12,14,42,1249,1250,1271,1,598,597,618,14,12,12,42,1271,1270,1249,1,618,619,598,12,12,14,42,1250,1251,1272,1,597,596,617,12,12,12,42,1272,1271,1250,1,617,618,597,12,12,12,42,1251,1252,1273,1,596,595,616,12,14,12,42,1273,1272,1251,1,616,617,596,12,12,12,42,1252,1253,1274,1,595,594,615,14,12,12,42,1274,1273,1252,1,615,616,595,12,12,14,42,1253,1254,1275,1,594,593,614,12,12,12,42,1275,1274,1253,1,614,615,594,12,12,12,42,1254,1255,1276,1,593,592,613,12,12,12,42,1276,1275,1254,1,613,614,593,12,12,12,42,1255,1256,1277,1,592,591,612,12,12,12,42,1277,1276,1255,1,612,613,592,12,12,12,42,1256,1257,1278,1,591,590,611,12,12,12,42,1278,1277,1256,1,611,612,591,12,12,12,42,1257,1258,1279,1,590,589,610,12,12,12,42,1279,1278,1257,1,610,611,590,12,12,12,42,1258,1259,1280,1,589,588,609,12,16,16,42,1280,1279,1258,1,609,610,589,16,12,12,42,1260,1261,1282,1,629,628,649,13,12,17,42,1282,1281,1260,1,649,650,629,17,18,13,42,1261,1262,1283,1,628,627,648,12,12,17,42,1283,1282,1261,1,648,649,628,17,17,12,42,1262,1263,1284,1,627,626,647,12,12,17,42,1284,1283,1262,1,647,648,627,17,17,12,42,1263,1264,1285,1,626,625,646,12,12,17,42,1285,1284,1263,1,646,647,626,17,17,12,42,1264,1265,1286,1,625,624,645,12,14,17,42,1286,1285,1264,1,645,646,625,17,17,12,42,1265,1266,1287,1,624,623,644,14,12,17,42,1287,1286,1265,1,644,645,624,17,17,14,42,1266,1267,1288,1,623,622,643,12,12,17,42,1288,1287,1266,1,643,644,623,17,17,12,42,1267,1268,1289,1,622,621,642,12,12,17,42,1289,1288,1267,1,642,643,622,17,17,12,42,1268,1269,1290,1,621,620,641,12,12,17,42,1290,1289,1268,1,641,642,621,17,17,12,42,1269,1270,1291,1,620,619,640,12,12,17,42,1291,1290,1269,1,640,641,620,17,17,12,42,1270,1271,1292,1,619,618,639,12,12,17,42,1292,1291,1270,1,639,640,619,17,17,12,42,1271,1272,1293,1,618,617,638,12,12,17,42,1293,1292,1271,1,638,639,618,17,17,12,42,1272,1273,1294,1,617,616,637,12,12,17,42,1294,1293,1272,1,637,638,617,17,17,12,42,1273,1274,1295,1,616,615,636,12,12,17,42,1295,1294,1273,1,636,637,616,17,17,12,42,1274,1275,1296,1,615,614,635,12,12,17,42,1296,1295,1274,1,635,636,615,17,17,12,42,1275,1276,1297,1,614,613,634,12,12,17,42,1297,1296,1275,1,634,635,614,17,17,12,42,1276,1277,1298,1,613,612,633,12,12,17,42,1298,1297,1276,1,633,634,613,17,17,12,42,1277,1278,1299,1,612,611,632,12,12,17,42,1299,1298,1277,1,632,633,612,17,17,12,42,1278,1279,1300,1,611,610,631,12,12,17,42,1300,1299,1278,1,631,632,611,17,17,12,42,1279,1280,1301,1,610,609,630,12,16,19,42,1301,1300,1279,1,630,631,610,19,17,12,42,0,1,652,2,41,39,651,0,3,11,42,652,651,0,2,651,652,41,11,10,0,42,1,2,653,2,39,37,653,3,3,11,42,653,652,1,2,653,651,39,11,11,3,42,2,3,654,2,37,35,654,3,3,11,42,654,653,2,2,654,653,37,11,11,3,42,3,4,655,2,35,33,655,3,3,11,42,655,654,3,2,655,654,35,11,11,3,42,4,5,656,2,33,31,656,3,3,11,42,656,655,4,2,656,655,33,11,11,3,42,5,6,657,2,31,29,657,3,3,11,42,657,656,5,2,657,656,31,11,11,3,42,6,7,658,2,29,27,658,3,3,11,42,658,657,6,2,658,657,29,11,11,3,42,7,8,659,2,27,25,659,3,3,11,42,659,658,7,2,659,658,27,11,11,3,42,8,9,660,2,25,23,660,3,3,11,42,660,659,8,2,660,659,25,11,11,3,42,9,10,661,2,23,21,661,3,3,11,42,661,660,9,2,661,660,23,11,11,3,42,10,11,662,2,21,19,662,3,3,11,42,662,661,10,2,662,661,21,11,11,3,42,11,12,663,2,19,17,663,3,3,11,42,663,662,11,2,663,662,19,11,11,3,42,12,13,664,2,17,15,664,3,3,11,42,664,663,12,2,664,663,17,11,11,3,42,13,14,665,2,15,13,665,3,3,11,42,665,664,13,2,665,664,15,11,11,3,42,14,15,666,2,13,11,666,3,3,11,42,666,665,14,2,666,665,13,11,11,3,42,15,16,667,2,11,9,667,3,3,11,42,667,666,15,2,667,666,11,11,11,3,42,16,17,668,2,9,7,668,3,3,11,42,668,667,16,2,668,667,9,11,11,3,42,17,18,669,2,7,5,669,3,3,11,42,669,668,17,2,669,668,7,11,11,3,42,18,19,670,2,5,3,670,3,3,11,42,670,669,18,2,670,669,5,11,11,3,42,19,20,671,2,3,0,671,3,6,15,42,671,670,19,2,671,670,3,15,11,3,42,20,41,692,3,41,672,673,6,5,16,42,692,671,20,3,673,652,41,16,15,6,42,41,62,713,3,672,674,675,5,5,16,42,713,692,41,3,675,673,672,16,16,5,42,62,83,734,3,674,676,677,5,5,16,42,734,713,62,3,677,675,674,16,16,5,42,83,104,755,3,676,678,679,5,5,16,42,755,734,83,3,679,677,676,16,16,5,42,104,125,776,3,678,680,681,5,5,16,42,776,755,104,3,681,679,678,16,16,5,42,125,146,797,3,680,33,655,5,5,16,42,797,776,125,3,655,681,680,16,16,5,42,146,167,818,3,33,682,683,5,5,16,42,818,797,146,3,683,655,33,16,16,5,42,167,188,839,3,682,684,685,5,5,16,42,839,818,167,3,685,683,682,16,16,5,42,188,209,860,3,684,29,657,5,5,16,42,860,839,188,3,657,685,684,16,16,5,42,209,230,881,3,29,686,687,5,5,16,42,881,860,209,3,687,657,29,16,16,5,42,230,251,902,3,686,688,689,5,5,16,42,902,881,230,3,689,687,686,16,16,5,42,251,272,923,3,688,690,691,5,5,16,42,923,902,251,3,691,689,688,16,16,5,42,272,293,944,3,690,692,693,5,5,16,42,944,923,272,3,693,691,690,16,16,5,42,293,314,965,3,692,694,695,5,5,16,42,965,944,293,3,695,693,692,16,16,5,42,314,335,986,3,694,696,697,5,5,16,42,986,965,314,3,697,695,694,16,16,5,42,335,356,1007,3,696,698,699,5,5,16,42,1007,986,335,3,699,697,696,16,16,5,42,356,377,1028,3,698,700,701,5,5,16,42,1028,1007,356,3,701,699,698,16,16,5,42,377,398,1049,3,700,17,663,5,5,16,42,1049,1028,377,3,663,701,700,16,16,5,42,398,419,1070,3,17,702,703,5,5,16,42,1070,1049,398,3,703,663,17,16,16,5,42,419,440,1091,3,702,704,705,5,5,16,42,1091,1070,419,3,705,703,702,16,16,5,42,440,461,1112,3,704,706,707,5,5,16,42,1112,1091,440,3,707,705,704,16,16,5,42,461,482,1133,3,706,708,709,5,5,16,42,1133,1112,461,3,709,707,706,16,16,5,42,482,503,1154,3,708,710,711,5,5,16,42,1154,1133,482,3,711,709,708,16,16,5,42,503,524,1175,3,710,712,713,5,5,16,42,1175,1154,503,3,713,711,710,16,16,5,42,524,545,1196,3,712,714,715,5,5,16,42,1196,1175,524,3,715,713,712,16,16,5,42,545,566,1217,3,714,716,717,5,5,16,42,1217,1196,545,3,717,715,714,16,16,5,42,566,587,1238,3,716,718,719,5,5,16,42,1238,1217,566,3,719,717,716,16,16,5,42,587,608,1259,3,718,720,721,5,5,16,42,1259,1238,587,3,721,719,718,16,16,5,42,608,629,1280,3,720,722,723,5,5,16,42,1280,1259,608,3,723,721,720,16,16,5,42,629,650,1301,3,722,724,725,5,9,19,42,1301,1280,629,3,725,723,722,19,16,5,42,650,649,1300,4,41,39,651,9,8,17,42,1300,1301,650,4,651,652,41,17,19,9,42,649,648,1299,4,39,37,653,8,8,17,42,1299,1300,649,4,653,651,39,17,17,8,42,648,647,1298,4,37,35,654,8,8,17,42,1298,1299,648,4,654,653,37,17,17,8,42,647,646,1297,4,35,33,655,8,8,17,42,1297,1298,647,4,655,654,35,17,17,8,42,646,645,1296,4,33,31,656,8,8,17,42,1296,1297,646,4,656,655,33,17,17,8,42,645,644,1295,4,31,29,657,8,8,17,42,1295,1296,645,4,657,656,31,17,17,8,42,644,643,1294,4,29,27,658,8,8,17,42,1294,1295,644,4,658,657,29,17,17,8,42,643,642,1293,4,27,25,659,8,8,17,42,1293,1294,643,4,659,658,27,17,17,8,42,642,641,1292,4,25,23,660,8,8,17,42,1292,1293,642,4,660,659,25,17,17,8,42,641,640,1291,4,23,21,661,8,8,17,42,1291,1292,641,4,661,660,23,17,17,8,42,640,639,1290,4,21,19,662,8,8,17,42,1290,1291,640,4,662,661,21,17,17,8,42,639,638,1289,4,19,17,663,8,8,17,42,1289,1290,639,4,663,662,19,17,17,8,42,638,637,1288,4,17,15,664,8,8,17,42,1288,1289,638,4,664,663,17,17,17,8,42,637,636,1287,4,15,13,665,8,8,17,42,1287,1288,637,4,665,664,15,17,17,8,42,636,635,1286,4,13,11,666,8,8,17,42,1286,1287,636,4,666,665,13,17,17,8,42,635,634,1285,4,11,9,667,8,8,17,42,1285,1286,635,4,667,666,11,17,17,8,42,634,633,1284,4,9,7,668,8,8,17,42,1284,1285,634,4,668,667,9,17,17,8,42,633,632,1283,4,7,5,669,8,8,17,42,1283,1284,633,4,669,668,7,17,17,8,42,632,631,1282,4,5,3,670,8,8,17,42,1282,1283,632,4,670,669,5,17,17,8,42,631,630,1281,4,3,0,671,8,7,18,42,1281,1282,631,4,671,670,3,18,17,8,42,630,609,1260,5,41,672,673,7,1,13,42,1260,1281,630,5,673,652,41,13,18,7,42,609,588,1239,5,672,674,675,1,1,13,42,1239,1260,609,5,675,673,672,13,13,1,42,588,567,1218,5,674,676,677,1,1,13,42,1218,1239,588,5,677,675,674,13,13,1,42,567,546,1197,5,676,678,679,1,1,13,42,1197,1218,567,5,679,677,676,13,13,1,42,546,525,1176,5,678,680,681,1,1,13,42,1176,1197,546,5,681,679,678,13,13,1,42,525,504,1155,5,680,33,655,1,1,13,42,1155,1176,525,5,655,681,680,13,13,1,42,504,483,1134,5,33,682,683,1,1,13,42,1134,1155,504,5,683,655,33,13,13,1,42,483,462,1113,5,682,684,685,1,1,13,42,1113,1134,483,5,685,683,682,13,13,1,42,462,441,1092,5,684,29,657,1,1,13,42,1092,1113,462,5,657,685,684,13,13,1,42,441,420,1071,5,29,686,687,1,1,13,42,1071,1092,441,5,687,657,29,13,13,1,42,420,399,1050,5,686,688,689,1,1,13,42,1050,1071,420,5,689,687,686,13,13,1,42,399,378,1029,5,688,690,691,1,1,13,42,1029,1050,399,5,691,689,688,13,13,1,42,378,357,1008,5,690,692,693,1,1,13,42,1008,1029,378,5,693,691,690,13,13,1,42,357,336,987,5,692,694,695,1,1,13,42,987,1008,357,5,695,693,692,13,13,1,42,336,315,966,5,694,696,697,1,1,13,42,966,987,336,5,697,695,694,13,13,1,42,315,294,945,5,696,698,699,1,1,13,42,945,966,315,5,699,697,696,13,13,1,42,294,273,924,5,698,700,701,1,1,13,42,924,945,294,5,701,699,698,13,13,1,42,273,252,903,5,700,17,663,1,1,13,42,903,924,273,5,663,701,700,13,13,1,42,252,231,882,5,17,702,703,1,1,13,42,882,903,252,5,703,663,17,13,13,1,42,231,210,861,5,702,704,705,1,1,13,42,861,882,231,5,705,703,702,13,13,1,42,210,189,840,5,704,706,707,1,1,13,42,840,861,210,5,707,705,704,13,13,1,42,189,168,819,5,706,708,709,1,1,13,42,819,840,189,5,709,707,706,13,13,1,42,168,147,798,5,708,710,711,1,1,13,42,798,819,168,5,711,709,708,13,13,1,42,147,126,777,5,710,712,713,1,1,13,42,777,798,147,5,713,711,710,13,13,1,42,126,105,756,5,712,714,715,1,1,13,42,756,777,126,5,715,713,712,13,13,1,42,105,84,735,5,714,716,717,1,1,13,42,735,756,105,5,717,715,714,13,13,1,42,84,63,714,5,716,718,719,1,1,13,42,714,735,84,5,719,717,716,13,13,1,42,63,42,693,5,718,720,721,1,1,13,42,693,714,63,5,721,719,718,13,13,1,42,42,21,672,5,720,722,723,1,1,13,42,672,693,42,5,723,721,720,13,13,1,42,21,0,651,5,722,724,725,1,0,10,42,651,672,21,5,725,723,722,10,13,1],
+ "uvs": [[1,0,1,0.033333,0.95,0.033333,0.95,0,0.9,0.033333,0.9,0,0.85,0.033333,0.85,0,0.8,0.033333,0.8,0,0.75,0.033333,0.75,0,0.7,0.033333,0.7,0,0.65,0.033333,0.65,0,0.6,0.033333,0.6,0,0.55,0.033333,0.55,0,0.5,0.033333,0.5,0,0.45,0.033333,0.45,0,0.4,0.033333,0.4,0,0.35,0.033333,0.35,0,0.3,0.033333,0.3,0,0.25,0.033333,0.25,0,0.2,0.033333,0.2,0,0.15,0.033333,0.15,0,0.1,0.033333,0.1,0,0.05,0.033333,0.05,0,0,0.033333,0,0,1,0.066667,0.95,0.066667,0.9,0.066667,0.85,0.066667,0.8,0.066667,0.75,0.066667,0.7,0.066667,0.65,0.066667,0.6,0.066667,0.55,0.066667,0.5,0.066667,0.45,0.066667,0.4,0.066667,0.35,0.066667,0.3,0.066667,0.25,0.066667,0.2,0.066667,0.15,0.066667,0.1,0.066667,0.05,0.066667,0,0.066667,1,0.1,0.95,0.1,0.9,0.1,0.85,0.1,0.8,0.1,0.75,0.1,0.7,0.1,0.65,0.1,0.6,0.1,0.55,0.1,0.5,0.1,0.45,0.1,0.4,0.1,0.35,0.1,0.3,0.1,0.25,0.1,0.2,0.1,0.15,0.1,0.1,0.1,0.05,0.1,0,0.1,1,0.133333,0.95,0.133333,0.9,0.133333,0.85,0.133333,0.8,0.133333,0.75,0.133333,0.7,0.133333,0.65,0.133333,0.6,0.133333,0.55,0.133333,0.5,0.133333,0.45,0.133333,0.4,0.133333,0.35,0.133333,0.3,0.133333,0.25,0.133333,0.2,0.133333,0.15,0.133333,0.1,0.133333,0.05,0.133333,0,0.133333,1,0.166667,0.95,0.166667,0.9,0.166667,0.85,0.166667,0.8,0.166667,0.75,0.166667,0.7,0.166667,0.65,0.166667,0.6,0.166667,0.55,0.166667,0.5,0.166667,0.45,0.166667,0.4,0.166667,0.35,0.166667,0.3,0.166667,0.25,0.166667,0.2,0.166667,0.15,0.166667,0.1,0.166667,0.05,0.166667,0,0.166667,1,0.2,0.95,0.2,0.9,0.2,0.85,0.2,0.8,0.2,0.75,0.2,0.7,0.2,0.65,0.2,0.6,0.2,0.55,0.2,0.5,0.2,0.45,0.2,0.4,0.2,0.35,0.2,0.3,0.2,0.25,0.2,0.2,0.2,0.15,0.2,0.1,0.2,0.05,0.2,0,0.2,1,0.233333,0.95,0.233333,0.9,0.233333,0.85,0.233333,0.8,0.233333,0.75,0.233333,0.7,0.233333,0.65,0.233333,0.6,0.233333,0.55,0.233333,0.5,0.233333,0.45,0.233333,0.4,0.233333,0.35,0.233333,0.3,0.233333,0.25,0.233333,0.2,0.233333,0.15,0.233333,0.1,0.233333,0.05,0.233333,0,0.233333,1,0.266667,0.95,0.266667,0.9,0.266667,0.85,0.266667,0.8,0.266667,0.75,0.266667,0.7,0.266667,0.65,0.266667,0.6,0.266667,0.55,0.266667,0.5,0.266667,0.45,0.266667,0.4,0.266667,0.35,0.266667,0.3,0.266667,0.25,0.266667,0.2,0.266667,0.15,0.266667,0.1,0.266667,0.05,0.266667,0,0.266667,1,0.3,0.95,0.3,0.9,0.3,0.85,0.3,0.8,0.3,0.75,0.3,0.7,0.3,0.65,0.3,0.6,0.3,0.55,0.3,0.5,0.3,0.45,0.3,0.4,0.3,0.35,0.3,0.3,0.3,0.25,0.3,0.2,0.3,0.15,0.3,0.1,0.3,0.05,0.3,0,0.3,1,0.333333,0.95,0.333333,0.9,0.333333,0.85,0.333333,0.8,0.333333,0.75,0.333333,0.7,0.333333,0.65,0.333333,0.6,0.333333,0.55,0.333333,0.5,0.333333,0.45,0.333333,0.4,0.333333,0.35,0.333333,0.3,0.333333,0.25,0.333333,0.2,0.333333,0.15,0.333333,0.1,0.333333,0.05,0.333333,0,0.333333,1,0.366667,0.95,0.366667,0.9,0.366667,0.85,0.366667,0.8,0.366667,0.75,0.366667,0.7,0.366667,0.65,0.366667,0.6,0.366667,0.55,0.366667,0.5,0.366667,0.45,0.366667,0.4,0.366667,0.35,0.366667,0.3,0.366667,0.25,0.366667,0.2,0.366667,0.15,0.366667,0.1,0.366667,0.05,0.366667,0,0.366667,1,0.4,0.95,0.4,0.9,0.4,0.85,0.4,0.8,0.4,0.75,0.4,0.7,0.4,0.65,0.4,0.6,0.4,0.55,0.4,0.5,0.4,0.45,0.4,0.4,0.4,0.35,0.4,0.3,0.4,0.25,0.4,0.2,0.4,0.15,0.4,0.1,0.4,0.05,0.4,0,0.4,1,0.433333,0.95,0.433333,0.9,0.433333,0.85,0.433333,0.8,0.433333,0.75,0.433333,0.7,0.433333,0.65,0.433333,0.6,0.433333,0.55,0.433333,0.5,0.433333,0.45,0.433333,0.4,0.433333,0.35,0.433333,0.3,0.433333,0.25,0.433333,0.2,0.433333,0.15,0.433333,0.1,0.433333,0.05,0.433333,0,0.433333,1,0.466667,0.95,0.466667,0.9,0.466667,0.85,0.466667,0.8,0.466667,0.75,0.466667,0.7,0.466667,0.65,0.466667,0.6,0.466667,0.55,0.466667,0.5,0.466667,0.45,0.466667,0.4,0.466667,0.35,0.466667,0.3,0.466667,0.25,0.466667,0.2,0.466667,0.15,0.466667,0.1,0.466667,0.05,0.466667,0,0.466667,1,0.5,0.95,0.5,0.9,0.5,0.85,0.5,0.8,0.5,0.75,0.5,0.7,0.5,0.65,0.5,0.6,0.5,0.55,0.5,0.5,0.5,0.45,0.5,0.4,0.5,0.35,0.5,0.3,0.5,0.25,0.5,0.2,0.5,0.15,0.5,0.1,0.5,0.05,0.5,0,0.5,1,0.533333,0.95,0.533333,0.9,0.533333,0.85,0.533333,0.8,0.533333,0.75,0.533333,0.7,0.533333,0.65,0.533333,0.6,0.533333,0.55,0.533333,0.5,0.533333,0.45,0.533333,0.4,0.533333,0.35,0.533333,0.3,0.533333,0.25,0.533333,0.2,0.533333,0.15,0.533333,0.1,0.533333,0.05,0.533333,0,0.533333,1,0.566667,0.95,0.566667,0.9,0.566667,0.85,0.566667,0.8,0.566667,0.75,0.566667,0.7,0.566667,0.65,0.566667,0.6,0.566667,0.55,0.566667,0.5,0.566667,0.45,0.566667,0.4,0.566667,0.35,0.566667,0.3,0.566667,0.25,0.566667,0.2,0.566667,0.15,0.566667,0.1,0.566667,0.05,0.566667,0,0.566667,1,0.6,0.95,0.6,0.9,0.6,0.85,0.6,0.8,0.6,0.75,0.6,0.7,0.6,0.65,0.6,0.6,0.6,0.55,0.6,0.5,0.6,0.45,0.6,0.4,0.6,0.35,0.6,0.3,0.6,0.25,0.6,0.2,0.6,0.15,0.6,0.1,0.6,0.05,0.6,0,0.6,1,0.633333,0.95,0.633333,0.9,0.633333,0.85,0.633333,0.8,0.633333,0.75,0.633333,0.7,0.633333,0.65,0.633333,0.6,0.633333,0.55,0.633333,0.5,0.633333,0.45,0.633333,0.4,0.633333,0.35,0.633333,0.3,0.633333,0.25,0.633333,0.2,0.633333,0.15,0.633333,0.1,0.633333,0.05,0.633333,0,0.633333,1,0.666667,0.95,0.666667,0.9,0.666667,0.85,0.666667,0.8,0.666667,0.75,0.666667,0.7,0.666667,0.65,0.666667,0.6,0.666667,0.55,0.666667,0.5,0.666667,0.45,0.666667,0.4,0.666667,0.35,0.666667,0.3,0.666667,0.25,0.666667,0.2,0.666667,0.15,0.666667,0.1,0.666667,0.05,0.666667,0,0.666667,1,0.7,0.95,0.7,0.9,0.7,0.85,0.7,0.8,0.7,0.75,0.7,0.7,0.7,0.65,0.7,0.6,0.7,0.55,0.7,0.5,0.7,0.45,0.7,0.4,0.7,0.35,0.7,0.3,0.7,0.25,0.7,0.2,0.7,0.15,0.7,0.1,0.7,0.05,0.7,0,0.7,1,0.733334,0.95,0.733334,0.9,0.733334,0.85,0.733334,0.8,0.733334,0.75,0.733334,0.7,0.733334,0.65,0.733334,0.6,0.733334,0.55,0.733334,0.5,0.733334,0.45,0.733334,0.4,0.733334,0.35,0.733334,0.3,0.733334,0.25,0.733334,0.2,0.733334,0.15,0.733334,0.1,0.733334,0.05,0.733334,0,0.733334,1,0.766667,0.95,0.766667,0.9,0.766667,0.85,0.766667,0.8,0.766667,0.75,0.766667,0.7,0.766667,0.65,0.766667,0.6,0.766667,0.55,0.766667,0.5,0.766667,0.45,0.766667,0.4,0.766667,0.35,0.766667,0.3,0.766667,0.25,0.766667,0.2,0.766667,0.15,0.766667,0.1,0.766667,0.05,0.766667,0,0.766667,1,0.8,0.95,0.8,0.9,0.8,0.85,0.8,0.8,0.8,0.75,0.8,0.7,0.8,0.65,0.8,0.6,0.8,0.55,0.8,0.5,0.8,0.45,0.8,0.4,0.8,0.35,0.8,0.3,0.8,0.25,0.8,0.2,0.8,0.15,0.8,0.1,0.8,0.05,0.8,0,0.8,1,0.833334,0.95,0.833334,0.9,0.833334,0.85,0.833334,0.8,0.833334,0.75,0.833334,0.7,0.833334,0.65,0.833334,0.6,0.833334,0.55,0.833334,0.5,0.833334,0.45,0.833334,0.4,0.833334,0.35,0.833334,0.3,0.833334,0.25,0.833334,0.2,0.833334,0.15,0.833334,0.1,0.833334,0.05,0.833334,0,0.833334,1,0.866667,0.95,0.866667,0.9,0.866667,0.85,0.866667,0.8,0.866667,0.75,0.866667,0.7,0.866667,0.65,0.866667,0.6,0.866667,0.55,0.866667,0.5,0.866667,0.45,0.866667,0.4,0.866667,0.35,0.866667,0.3,0.866667,0.25,0.866667,0.2,0.866667,0.15,0.866667,0.1,0.866667,0.05,0.866667,0,0.866667,1,0.9,0.95,0.9,0.9,0.9,0.85,0.9,0.8,0.9,0.75,0.9,0.7,0.9,0.65,0.9,0.6,0.9,0.55,0.9,0.5,0.9,0.45,0.9,0.4,0.9,0.35,0.9,0.3,0.9,0.25,0.9,0.2,0.9,0.15,0.9,0.1,0.9,0.05,0.9,0,0.9,1,0.933334,0.95,0.933334,0.9,0.933334,0.85,0.933334,0.8,0.933334,0.75,0.933334,0.7,0.933334,0.65,0.933334,0.6,0.933334,0.55,0.933334,0.5,0.933334,0.45,0.933334,0.4,0.933334,0.35,0.933334,0.3,0.933334,0.25,0.933334,0.2,0.933334,0.15,0.933334,0.1,0.933334,0.05,0.933334,0,0.933334,1,0.966667,0.95,0.966667,0.9,0.966667,0.85,0.966667,0.8,0.966667,0.75,0.966667,0.7,0.966667,0.65,0.966667,0.6,0.966667,0.55,0.966667,0.5,0.966667,0.45,0.966667,0.4,0.966667,0.35,0.966667,0.3,0.966667,0.25,0.966667,0.2,0.966667,0.15,0.966667,0.1,0.966667,0.05,0.966667,0,0.966667,1,1,0.95,1,0.9,1,0.85,1,0.8,1,0.75,1,0.7,1,0.65,1,0.6,1,0.55,1,0.5,1,0.45,1,0.4,1,0.35,1,0.3,1,0.25,1,0.2,1,0.15,1,0.1,1,0.05,1,0,1,0.05,1,0,1,0.1,1,0.15,1,0.2,1,0.25,1,0.3,1,0.35,1,0.4,1,0.45,1,0.5,1,0.55,1,0.6,1,0.65,1,0.7,1,0.75,1,0.8,1,0.85,1,0.9,1,0.95,1,1,1,0.033333,0,0.033333,1,0.066667,0,0.066667,1,0.1,0,0.1,1,0.133333,0,0.133333,1,0.166667,0,0.166667,1,0.233333,0,0.233333,1,0.266667,0,0.266667,1,0.333333,0,0.333333,1,0.366667,0,0.366667,1,0.4,0,0.4,1,0.433333,0,0.433333,1,0.466667,0,0.466667,1,0.5,0,0.5,1,0.533333,0,0.533333,1,0.566667,0,0.566667,1,0.633333,0,0.633333,1,0.666667,0,0.666667,1,0.7,0,0.7,1,0.733334,0,0.733334,1,0.766667,0,0.766667,1,0.8,0,0.8,1,0.833334,0,0.833334,1,0.866667,0,0.866667,1,0.9,0,0.9,1,0.933334,0,0.933334,1,0.966667,0,0.966667,1,1,0,1,1]],
+ "normals": [-0.577349,0.577349,-0.577349,-0.707083,0.707083,0,0,0.999969,0,0,0.707083,-0.707083,0,1,0,0.707083,0.707083,0,0.577349,0.577349,-0.577349,-0.577349,0.577349,0.577349,0,0.707083,0.707083,0.577349,0.577349,0.577349,-0.577349,-0.577349,-0.577349,0,-0.707083,-0.707083,0,-0.999969,0,-0.707083,-0.707083,0,0,-1,0,0.577349,-0.577349,-0.577349,0.707083,-0.707083,0,0,-0.707083,0.707083,-0.577349,-0.577349,0.577349,0.577349,-0.577349,0.577349],
+ "influencesPerVertex": 2,
+ "vertices": [-6.9e-05,0.049026,-148.5,10.4999,0.049026,-148.5,20.9999,0.049026,-148.5,31.4999,0.049026,-148.5,41.9999,0.049026,-148.5,52.4999,0.049026,-148.5,62.9999,0.049026,-148.5,73.4999,0.049026,-148.5,83.9999,0.049026,-148.5,94.4999,0.049026,-148.5,105,0.049026,-148.5,115.5,0.049026,-148.5,126,0.049026,-148.5,136.5,0.049026,-148.5,147,0.049026,-148.5,157.5,0.049026,-148.5,168,0.049026,-148.5,178.5,0.049026,-148.5,189,0.049026,-148.5,199.5,0.049026,-148.5,210,0.049026,-148.5,-6.9e-05,0.049026,-138.6,10.4999,0.049026,-138.6,20.9999,0.049026,-138.6,31.4999,0.049026,-138.6,41.9999,0.049026,-138.6,52.4999,0.049026,-138.6,62.9999,0.049026,-138.6,73.4999,0.049026,-138.6,83.9999,0.049026,-138.6,94.4999,0.049026,-138.6,105,0.049026,-138.6,115.5,0.049026,-138.6,126,0.049026,-138.6,136.5,0.049026,-138.6,147,0.049026,-138.6,157.5,0.049026,-138.6,168,0.049026,-138.6,178.5,0.049026,-138.6,189,0.049026,-138.6,199.5,0.049026,-138.6,210,0.049026,-138.6,-6.9e-05,0.049026,-128.7,10.4999,0.049026,-128.7,20.9999,0.049026,-128.7,31.4999,0.049026,-128.7,41.9999,0.049026,-128.7,52.4999,0.049026,-128.7,62.9999,0.049026,-128.7,73.4999,0.049026,-128.7,83.9999,0.049026,-128.7,94.4999,0.049026,-128.7,105,0.049026,-128.7,115.5,0.049026,-128.7,126,0.049026,-128.7,136.5,0.049026,-128.7,147,0.049026,-128.7,157.5,0.049026,-128.7,168,0.049026,-128.7,178.5,0.049026,-128.7,189,0.049026,-128.7,199.5,0.049026,-128.7,210,0.049026,-128.7,-6.9e-05,0.049026,-118.8,10.4999,0.049026,-118.8,20.9999,0.049026,-118.8,31.4999,0.049026,-118.8,41.9999,0.049026,-118.8,52.4999,0.049026,-118.8,62.9999,0.049026,-118.8,73.4999,0.049026,-118.8,83.9999,0.049026,-118.8,94.4999,0.049026,-118.8,105,0.049026,-118.8,115.5,0.049026,-118.8,126,0.049026,-118.8,136.5,0.049026,-118.8,147,0.049026,-118.8,157.5,0.049026,-118.8,168,0.049026,-118.8,178.5,0.049026,-118.8,189,0.049026,-118.8,199.5,0.049026,-118.8,210,0.049026,-118.8,-6.9e-05,0.049026,-108.9,10.4999,0.049026,-108.9,20.9999,0.049026,-108.9,31.4999,0.049026,-108.9,41.9999,0.049026,-108.9,52.4999,0.049026,-108.9,62.9999,0.049026,-108.9,73.4999,0.049026,-108.9,83.9999,0.049026,-108.9,94.4999,0.049026,-108.9,105,0.049026,-108.9,115.5,0.049026,-108.9,126,0.049026,-108.9,136.5,0.049026,-108.9,147,0.049026,-108.9,157.5,0.049026,-108.9,168,0.049026,-108.9,178.5,0.049026,-108.9,189,0.049026,-108.9,199.5,0.049026,-108.9,210,0.049026,-108.9,-6.9e-05,0.049026,-99,10.4999,0.049026,-99,20.9999,0.049026,-99,31.4999,0.049026,-99,41.9999,0.049026,-99,52.4999,0.049026,-99,62.9999,0.049026,-99,73.4999,0.049026,-99,83.9999,0.049026,-99,94.4999,0.049026,-99,105,0.049026,-99,115.5,0.049026,-99,126,0.049026,-99,136.5,0.049026,-99,147,0.049026,-99,157.5,0.049026,-99,168,0.049026,-99,178.5,0.049026,-99,189,0.049026,-99,199.5,0.049026,-99,210,0.049026,-99,-6.9e-05,0.049026,-89.1,10.4999,0.049026,-89.1,20.9999,0.049026,-89.1,31.4999,0.049026,-89.1,41.9999,0.049026,-89.1,52.4999,0.049026,-89.1,62.9999,0.049026,-89.1,73.4999,0.049026,-89.1,83.9999,0.049026,-89.1,94.4999,0.049026,-89.1,105,0.049026,-89.1,115.5,0.049026,-89.1,126,0.049026,-89.1,136.5,0.049026,-89.1,147,0.049026,-89.1,157.5,0.049026,-89.1,168,0.049026,-89.1,178.5,0.049026,-89.1,189,0.049026,-89.1,199.5,0.049026,-89.1,210,0.049026,-89.1,-6.9e-05,0.049026,-79.2,10.4999,0.049026,-79.2,20.9999,0.049026,-79.2,31.4999,0.049026,-79.2,41.9999,0.049026,-79.2,52.4999,0.049026,-79.2,62.9999,0.049026,-79.2,73.4999,0.049026,-79.2,83.9999,0.049026,-79.2,94.4999,0.049026,-79.2,105,0.049026,-79.2,115.5,0.049026,-79.2,126,0.049026,-79.2,136.5,0.049026,-79.2,147,0.049026,-79.2,157.5,0.049026,-79.2,168,0.049026,-79.2,178.5,0.049026,-79.2,189,0.049026,-79.2,199.5,0.049026,-79.2,210,0.049026,-79.2,-6.9e-05,0.049026,-69.3,10.4999,0.049026,-69.3,20.9999,0.049026,-69.3,31.4999,0.049026,-69.3,41.9999,0.049026,-69.3,52.4999,0.049026,-69.3,62.9999,0.049026,-69.3,73.4999,0.049026,-69.3,83.9999,0.049026,-69.3,94.4999,0.049026,-69.3,105,0.049026,-69.3,115.5,0.049026,-69.3,126,0.049026,-69.3,136.5,0.049026,-69.3,147,0.049026,-69.3,157.5,0.049026,-69.3,168,0.049026,-69.3,178.5,0.049026,-69.3,189,0.049026,-69.3,199.5,0.049026,-69.3,210,0.049026,-69.3,-6.9e-05,0.049026,-59.4,10.4999,0.049026,-59.4,20.9999,0.049026,-59.4,31.4999,0.049026,-59.4,41.9999,0.049026,-59.4,52.4999,0.049026,-59.4,62.9999,0.049026,-59.4,73.4999,0.049026,-59.4,83.9999,0.049026,-59.4,94.4999,0.049026,-59.4,105,0.049026,-59.4,115.5,0.049026,-59.4,126,0.049026,-59.4,136.5,0.049026,-59.4,147,0.049026,-59.4,157.5,0.049026,-59.4,168,0.049026,-59.4,178.5,0.049026,-59.4,189,0.049026,-59.4,199.5,0.049026,-59.4,210,0.049026,-59.4,-6.9e-05,0.049026,-49.5,10.4999,0.049026,-49.5,20.9999,0.049026,-49.5,31.4999,0.049026,-49.5,41.9999,0.049026,-49.5,52.4999,0.049026,-49.5,62.9999,0.049026,-49.5,73.4999,0.049026,-49.5,83.9999,0.049026,-49.5,94.4999,0.049026,-49.5,105,0.049026,-49.5,115.5,0.049026,-49.5,126,0.049026,-49.5,136.5,0.049026,-49.5,147,0.049026,-49.5,157.5,0.049026,-49.5,168,0.049026,-49.5,178.5,0.049026,-49.5,189,0.049026,-49.5,199.5,0.049026,-49.5,210,0.049026,-49.5,-6.9e-05,0.049026,-39.6,10.4999,0.049026,-39.6,20.9999,0.049026,-39.6,31.4999,0.049026,-39.6,41.9999,0.049026,-39.6,52.4999,0.049026,-39.6,62.9999,0.049026,-39.6,73.4999,0.049026,-39.6,83.9999,0.049026,-39.6,94.4999,0.049026,-39.6,105,0.049026,-39.6,115.5,0.049026,-39.6,126,0.049026,-39.6,136.5,0.049026,-39.6,147,0.049026,-39.6,157.5,0.049026,-39.6,168,0.049026,-39.6,178.5,0.049026,-39.6,189,0.049026,-39.6,199.5,0.049026,-39.6,210,0.049026,-39.6,-6.9e-05,0.049026,-29.7,10.4999,0.049026,-29.7,20.9999,0.049026,-29.7,31.4999,0.049026,-29.7,41.9999,0.049026,-29.7,52.4999,0.049026,-29.7,62.9999,0.049026,-29.7,73.4999,0.049026,-29.7,83.9999,0.049026,-29.7,94.4999,0.049026,-29.7,105,0.049026,-29.7,115.5,0.049026,-29.7,126,0.049026,-29.7,136.5,0.049026,-29.7,147,0.049026,-29.7,157.5,0.049026,-29.7,168,0.049026,-29.7,178.5,0.049026,-29.7,189,0.049026,-29.7,199.5,0.049026,-29.7,210,0.049026,-29.7,-6.9e-05,0.049026,-19.8,10.4999,0.049026,-19.8,20.9999,0.049026,-19.8,31.4999,0.049026,-19.8,41.9999,0.049026,-19.8,52.4999,0.049026,-19.8,62.9999,0.049026,-19.8,73.4999,0.049026,-19.8,83.9999,0.049026,-19.8,94.4999,0.049026,-19.8,105,0.049026,-19.8,115.5,0.049026,-19.8,126,0.049026,-19.8,136.5,0.049026,-19.8,147,0.049026,-19.8,157.5,0.049026,-19.8,168,0.049026,-19.8,178.5,0.049026,-19.8,189,0.049026,-19.8,199.5,0.049026,-19.8,210,0.049026,-19.8,-6.9e-05,0.049026,-9.9,10.4999,0.049026,-9.9,20.9999,0.049026,-9.9,31.4999,0.049026,-9.9,41.9999,0.049026,-9.9,52.4999,0.049026,-9.9,62.9999,0.049026,-9.9,73.4999,0.049026,-9.9,83.9999,0.049026,-9.9,94.4999,0.049026,-9.9,105,0.049026,-9.9,115.5,0.049026,-9.9,126,0.049026,-9.9,136.5,0.049026,-9.9,147,0.049026,-9.9,157.5,0.049026,-9.9,168,0.049026,-9.9,178.5,0.049026,-9.9,189,0.049026,-9.9,199.5,0.049026,-9.9,210,0.049026,-9.9,-6.9e-05,0.049026,-0,10.4999,0.049026,-0,20.9999,0.049026,-0,31.4999,0.049026,-0,41.9999,0.049026,-0,52.4999,0.049026,-0,62.9999,0.049026,-0,73.4999,0.049026,-0,83.9999,0.049026,-0,94.4999,0.049026,-0,105,0.049026,-0,115.5,0.049026,-0,126,0.049026,-0,136.5,0.049026,-0,147,0.049026,-0,157.5,0.049026,-0,168,0.049026,-0,178.5,0.049026,-0,189,0.049026,-0,199.5,0.049026,-0,210,0.049026,-0,-6.9e-05,0.049026,9.9,10.4999,0.049026,9.9,20.9999,0.049026,9.9,31.4999,0.049026,9.9,41.9999,0.049026,9.9,52.4999,0.049026,9.9,62.9999,0.049026,9.9,73.4999,0.049026,9.9,83.9999,0.049026,9.9,94.4999,0.049026,9.9,105,0.049026,9.9,115.5,0.049026,9.9,126,0.049026,9.9,136.5,0.049026,9.9,147,0.049026,9.9,157.5,0.049026,9.9,168,0.049026,9.9,178.5,0.049026,9.9,189,0.049026,9.9,199.5,0.049026,9.9,210,0.049026,9.9,-6.9e-05,0.049026,19.8,10.4999,0.049026,19.8,20.9999,0.049026,19.8,31.4999,0.049026,19.8,41.9999,0.049026,19.8,52.4999,0.049026,19.8,62.9999,0.049026,19.8,73.4999,0.049026,19.8,83.9999,0.049026,19.8,94.4999,0.049026,19.8,105,0.049026,19.8,115.5,0.049026,19.8,126,0.049026,19.8,136.5,0.049026,19.8,147,0.049026,19.8,157.5,0.049026,19.8,168,0.049026,19.8,178.5,0.049026,19.8,189,0.049026,19.8,199.5,0.049026,19.8,210,0.049026,19.8,-6.9e-05,0.049026,29.7,10.4999,0.049026,29.7,20.9999,0.049026,29.7,31.4999,0.049026,29.7,41.9999,0.049026,29.7,52.4999,0.049026,29.7,62.9999,0.049026,29.7,73.4999,0.049026,29.7,83.9999,0.049026,29.7,94.4999,0.049026,29.7,105,0.049026,29.7,115.5,0.049026,29.7,126,0.049026,29.7,136.5,0.049026,29.7,147,0.049026,29.7,157.5,0.049026,29.7,168,0.049026,29.7,178.5,0.049026,29.7,189,0.049026,29.7,199.5,0.049026,29.7,210,0.049026,29.7,-6.9e-05,0.049026,39.6,10.4999,0.049026,39.6,20.9999,0.049026,39.6,31.4999,0.049026,39.6,41.9999,0.049026,39.6,52.4999,0.049026,39.6,62.9999,0.049026,39.6,73.4999,0.049026,39.6,83.9999,0.049026,39.6,94.4999,0.049026,39.6,105,0.049026,39.6,115.5,0.049026,39.6,126,0.049026,39.6,136.5,0.049026,39.6,147,0.049026,39.6,157.5,0.049026,39.6,168,0.049026,39.6,178.5,0.049026,39.6,189,0.049026,39.6,199.5,0.049026,39.6,210,0.049026,39.6,-6.9e-05,0.049026,49.5,10.4999,0.049026,49.5,20.9999,0.049026,49.5,31.4999,0.049026,49.5,41.9999,0.049026,49.5,52.4999,0.049026,49.5,62.9999,0.049026,49.5,73.4999,0.049026,49.5,83.9999,0.049026,49.5,94.4999,0.049026,49.5,105,0.049026,49.5,115.5,0.049026,49.5,126,0.049026,49.5,136.5,0.049026,49.5,147,0.049026,49.5,157.5,0.049026,49.5,168,0.049026,49.5,178.5,0.049026,49.5,189,0.049026,49.5,199.5,0.049026,49.5,210,0.049026,49.5,-6.9e-05,0.049026,59.4,10.4999,0.049026,59.4,20.9999,0.049026,59.4,31.4999,0.049026,59.4,41.9999,0.049026,59.4,52.4999,0.049026,59.4,62.9999,0.049026,59.4,73.4999,0.049026,59.4,83.9999,0.049026,59.4,94.4999,0.049026,59.4,105,0.049026,59.4,115.5,0.049026,59.4,126,0.049026,59.4,136.5,0.049026,59.4,147,0.049026,59.4,157.5,0.049026,59.4,168,0.049026,59.4,178.5,0.049026,59.4,189,0.049026,59.4,199.5,0.049026,59.4,210,0.049026,59.4,-6.9e-05,0.049026,69.3,10.4999,0.049026,69.3,20.9999,0.049026,69.3,31.4999,0.049026,69.3,41.9999,0.049026,69.3,52.4999,0.049026,69.3,62.9999,0.049026,69.3,73.4999,0.049026,69.3,83.9999,0.049026,69.3,94.4999,0.049026,69.3,105,0.049026,69.3,115.5,0.049026,69.3,126,0.049026,69.3,136.5,0.049026,69.3,147,0.049026,69.3,157.5,0.049026,69.3,168,0.049026,69.3,178.5,0.049026,69.3,189,0.049026,69.3,199.5,0.049026,69.3,210,0.049026,69.3,-6.9e-05,0.049026,79.2,10.4999,0.049026,79.2,20.9999,0.049026,79.2,31.4999,0.049026,79.2,41.9999,0.049026,79.2,52.4999,0.049026,79.2,62.9999,0.049026,79.2,73.4999,0.049026,79.2,83.9999,0.049026,79.2,94.4999,0.049026,79.2,105,0.049026,79.2,115.5,0.049026,79.2,126,0.049026,79.2,136.5,0.049026,79.2,147,0.049026,79.2,157.5,0.049026,79.2,168,0.049026,79.2,178.5,0.049026,79.2,189,0.049026,79.2,199.5,0.049026,79.2,210,0.049026,79.2,-6.9e-05,0.049026,89.1,10.4999,0.049026,89.1,20.9999,0.049026,89.1,31.4999,0.049026,89.1,41.9999,0.049026,89.1,52.4999,0.049026,89.1,62.9999,0.049026,89.1,73.4999,0.049026,89.1,83.9999,0.049026,89.1,94.4999,0.049026,89.1,105,0.049026,89.1,115.5,0.049026,89.1,126,0.049026,89.1,136.5,0.049026,89.1,147,0.049026,89.1,157.5,0.049026,89.1,168,0.049026,89.1,178.5,0.049026,89.1,189,0.049026,89.1,199.5,0.049026,89.1,210,0.049026,89.1,-6.9e-05,0.049026,99,10.4999,0.049026,99,20.9999,0.049026,99,31.4999,0.049026,99,41.9999,0.049026,99,52.4999,0.049026,99,62.9999,0.049026,99,73.4999,0.049026,99,83.9999,0.049026,99,94.4999,0.049026,99,105,0.049026,99,115.5,0.049026,99,126,0.049026,99,136.5,0.049026,99,147,0.049026,99,157.5,0.049026,99,168,0.049026,99,178.5,0.049026,99,189,0.049026,99,199.5,0.049026,99,210,0.049026,99,-6.9e-05,0.049026,108.9,10.4999,0.049026,108.9,20.9999,0.049026,108.9,31.4999,0.049026,108.9,41.9999,0.049026,108.9,52.4999,0.049026,108.9,62.9999,0.049026,108.9,73.4999,0.049026,108.9,83.9999,0.049026,108.9,94.4999,0.049026,108.9,105,0.049026,108.9,115.5,0.049026,108.9,126,0.049026,108.9,136.5,0.049026,108.9,147,0.049026,108.9,157.5,0.049026,108.9,168,0.049026,108.9,178.5,0.049026,108.9,189,0.049026,108.9,199.5,0.049026,108.9,210,0.049026,108.9,-6.9e-05,0.049026,118.8,10.4999,0.049026,118.8,20.9999,0.049026,118.8,31.4999,0.049026,118.8,41.9999,0.049026,118.8,52.4999,0.049026,118.8,62.9999,0.049026,118.8,73.4999,0.049026,118.8,83.9999,0.049026,118.8,94.4999,0.049026,118.8,105,0.049026,118.8,115.5,0.049026,118.8,126,0.049026,118.8,136.5,0.049026,118.8,147,0.049026,118.8,157.5,0.049026,118.8,168,0.049026,118.8,178.5,0.049026,118.8,189,0.049026,118.8,199.5,0.049026,118.8,210,0.049026,118.8,-6.9e-05,0.049026,128.7,10.4999,0.049026,128.7,20.9999,0.049026,128.7,31.4999,0.049026,128.7,41.9999,0.049026,128.7,52.4999,0.049026,128.7,62.9999,0.049026,128.7,73.4999,0.049026,128.7,83.9999,0.049026,128.7,94.4999,0.049026,128.7,105,0.049026,128.7,115.5,0.049026,128.7,126,0.049026,128.7,136.5,0.049026,128.7,147,0.049026,128.7,157.5,0.049026,128.7,168,0.049026,128.7,178.5,0.049026,128.7,189,0.049026,128.7,199.5,0.049026,128.7,210,0.049026,128.7,-6.9e-05,0.049026,138.6,10.4999,0.049026,138.6,20.9999,0.049026,138.6,31.4999,0.049026,138.6,41.9999,0.049026,138.6,52.4999,0.049026,138.6,62.9999,0.049026,138.6,73.4999,0.049026,138.6,83.9999,0.049026,138.6,94.4999,0.049026,138.6,105,0.049026,138.6,115.5,0.049026,138.6,126,0.049026,138.6,136.5,0.049026,138.6,147,0.049026,138.6,157.5,0.049026,138.6,168,0.049026,138.6,178.5,0.049026,138.6,189,0.049026,138.6,199.5,0.049026,138.6,210,0.049026,138.6,-6.9e-05,0.049026,148.5,10.4999,0.049026,148.5,20.9999,0.049026,148.5,31.4999,0.049026,148.5,41.9999,0.049026,148.5,52.4999,0.049026,148.5,62.9999,0.049026,148.5,73.4999,0.049026,148.5,83.9999,0.049026,148.5,94.4999,0.049026,148.5,105,0.049026,148.5,115.5,0.049026,148.5,126,0.049026,148.5,136.5,0.049026,148.5,147,0.049026,148.5,157.5,0.049026,148.5,168,0.049026,148.5,178.5,0.049026,148.5,189,0.049026,148.5,199.5,0.049026,148.5,210,0.049026,148.5,-6.9e-05,-0.050974,-148.5,10.4999,-0.050974,-148.5,20.9999,-0.050974,-148.5,31.4999,-0.050974,-148.5,41.9999,-0.050974,-148.5,52.4999,-0.050974,-148.5,62.9999,-0.050974,-148.5,73.4999,-0.050974,-148.5,83.9999,-0.050974,-148.5,94.4999,-0.050974,-148.5,105,-0.050974,-148.5,115.5,-0.050974,-148.5,126,-0.050974,-148.5,136.5,-0.050974,-148.5,147,-0.050974,-148.5,157.5,-0.050974,-148.5,168,-0.050974,-148.5,178.5,-0.050974,-148.5,189,-0.050974,-148.5,199.5,-0.050974,-148.5,210,-0.050974,-148.5,-6.9e-05,-0.050974,-138.6,10.4999,-0.050974,-138.6,20.9999,-0.050974,-138.6,31.4999,-0.050974,-138.6,41.9999,-0.050974,-138.6,52.4999,-0.050974,-138.6,62.9999,-0.050974,-138.6,73.4999,-0.050974,-138.6,83.9999,-0.050974,-138.6,94.4999,-0.050974,-138.6,105,-0.050974,-138.6,115.5,-0.050974,-138.6,126,-0.050974,-138.6,136.5,-0.050974,-138.6,147,-0.050974,-138.6,157.5,-0.050974,-138.6,168,-0.050974,-138.6,178.5,-0.050974,-138.6,189,-0.050974,-138.6,199.5,-0.050974,-138.6,210,-0.050974,-138.6,-6.9e-05,-0.050974,-128.7,10.4999,-0.050974,-128.7,20.9999,-0.050974,-128.7,31.4999,-0.050974,-128.7,41.9999,-0.050974,-128.7,52.4999,-0.050974,-128.7,62.9999,-0.050974,-128.7,73.4999,-0.050974,-128.7,83.9999,-0.050974,-128.7,94.4999,-0.050974,-128.7,105,-0.050974,-128.7,115.5,-0.050974,-128.7,126,-0.050974,-128.7,136.5,-0.050974,-128.7,147,-0.050974,-128.7,157.5,-0.050974,-128.7,168,-0.050974,-128.7,178.5,-0.050974,-128.7,189,-0.050974,-128.7,199.5,-0.050974,-128.7,210,-0.050974,-128.7,-6.9e-05,-0.050974,-118.8,10.4999,-0.050974,-118.8,20.9999,-0.050974,-118.8,31.4999,-0.050974,-118.8,41.9999,-0.050974,-118.8,52.4999,-0.050974,-118.8,62.9999,-0.050974,-118.8,73.4999,-0.050974,-118.8,83.9999,-0.050974,-118.8,94.4999,-0.050974,-118.8,105,-0.050974,-118.8,115.5,-0.050974,-118.8,126,-0.050974,-118.8,136.5,-0.050974,-118.8,147,-0.050974,-118.8,157.5,-0.050974,-118.8,168,-0.050974,-118.8,178.5,-0.050974,-118.8,189,-0.050974,-118.8,199.5,-0.050974,-118.8,210,-0.050974,-118.8,-6.9e-05,-0.050974,-108.9,10.4999,-0.050974,-108.9,20.9999,-0.050974,-108.9,31.4999,-0.050974,-108.9,41.9999,-0.050974,-108.9,52.4999,-0.050974,-108.9,62.9999,-0.050974,-108.9,73.4999,-0.050974,-108.9,83.9999,-0.050974,-108.9,94.4999,-0.050974,-108.9,105,-0.050974,-108.9,115.5,-0.050974,-108.9,126,-0.050974,-108.9,136.5,-0.050974,-108.9,147,-0.050974,-108.9,157.5,-0.050974,-108.9,168,-0.050974,-108.9,178.5,-0.050974,-108.9,189,-0.050974,-108.9,199.5,-0.050974,-108.9,210,-0.050974,-108.9,-6.9e-05,-0.050974,-99,10.4999,-0.050974,-99,20.9999,-0.050974,-99,31.4999,-0.050974,-99,41.9999,-0.050974,-99,52.4999,-0.050974,-99,62.9999,-0.050974,-99,73.4999,-0.050974,-99,83.9999,-0.050974,-99,94.4999,-0.050974,-99,105,-0.050974,-99,115.5,-0.050974,-99,126,-0.050974,-99,136.5,-0.050974,-99,147,-0.050974,-99,157.5,-0.050974,-99,168,-0.050974,-99,178.5,-0.050974,-99,189,-0.050974,-99,199.5,-0.050974,-99,210,-0.050974,-99,-6.9e-05,-0.050974,-89.1,10.4999,-0.050974,-89.1,20.9999,-0.050974,-89.1,31.4999,-0.050974,-89.1,41.9999,-0.050974,-89.1,52.4999,-0.050974,-89.1,62.9999,-0.050974,-89.1,73.4999,-0.050974,-89.1,83.9999,-0.050974,-89.1,94.4999,-0.050974,-89.1,105,-0.050974,-89.1,115.5,-0.050974,-89.1,126,-0.050974,-89.1,136.5,-0.050974,-89.1,147,-0.050974,-89.1,157.5,-0.050974,-89.1,168,-0.050974,-89.1,178.5,-0.050974,-89.1,189,-0.050974,-89.1,199.5,-0.050974,-89.1,210,-0.050974,-89.1,-6.9e-05,-0.050974,-79.2,10.4999,-0.050974,-79.2,20.9999,-0.050974,-79.2,31.4999,-0.050974,-79.2,41.9999,-0.050974,-79.2,52.4999,-0.050974,-79.2,62.9999,-0.050974,-79.2,73.4999,-0.050974,-79.2,83.9999,-0.050974,-79.2,94.4999,-0.050974,-79.2,105,-0.050974,-79.2,115.5,-0.050974,-79.2,126,-0.050974,-79.2,136.5,-0.050974,-79.2,147,-0.050974,-79.2,157.5,-0.050974,-79.2,168,-0.050974,-79.2,178.5,-0.050974,-79.2,189,-0.050974,-79.2,199.5,-0.050974,-79.2,210,-0.050974,-79.2,-6.9e-05,-0.050974,-69.3,10.4999,-0.050974,-69.3,20.9999,-0.050974,-69.3,31.4999,-0.050974,-69.3,41.9999,-0.050974,-69.3,52.4999,-0.050974,-69.3,62.9999,-0.050974,-69.3,73.4999,-0.050974,-69.3,83.9999,-0.050974,-69.3,94.4999,-0.050974,-69.3,105,-0.050974,-69.3,115.5,-0.050974,-69.3,126,-0.050974,-69.3,136.5,-0.050974,-69.3,147,-0.050974,-69.3,157.5,-0.050974,-69.3,168,-0.050974,-69.3,178.5,-0.050974,-69.3,189,-0.050974,-69.3,199.5,-0.050974,-69.3,210,-0.050974,-69.3,-6.9e-05,-0.050974,-59.4,10.4999,-0.050974,-59.4,20.9999,-0.050974,-59.4,31.4999,-0.050974,-59.4,41.9999,-0.050974,-59.4,52.4999,-0.050974,-59.4,62.9999,-0.050974,-59.4,73.4999,-0.050974,-59.4,83.9999,-0.050974,-59.4,94.4999,-0.050974,-59.4,105,-0.050974,-59.4,115.5,-0.050974,-59.4,126,-0.050974,-59.4,136.5,-0.050974,-59.4,147,-0.050974,-59.4,157.5,-0.050974,-59.4,168,-0.050974,-59.4,178.5,-0.050974,-59.4,189,-0.050974,-59.4,199.5,-0.050974,-59.4,210,-0.050974,-59.4,-6.9e-05,-0.050974,-49.5,10.4999,-0.050974,-49.5,20.9999,-0.050974,-49.5,31.4999,-0.050974,-49.5,41.9999,-0.050974,-49.5,52.4999,-0.050974,-49.5,62.9999,-0.050974,-49.5,73.4999,-0.050974,-49.5,83.9999,-0.050974,-49.5,94.4999,-0.050974,-49.5,105,-0.050974,-49.5,115.5,-0.050974,-49.5,126,-0.050974,-49.5,136.5,-0.050974,-49.5,147,-0.050974,-49.5,157.5,-0.050974,-49.5,168,-0.050974,-49.5,178.5,-0.050974,-49.5,189,-0.050974,-49.5,199.5,-0.050974,-49.5,210,-0.050974,-49.5,-6.9e-05,-0.050974,-39.6,10.4999,-0.050974,-39.6,20.9999,-0.050974,-39.6,31.4999,-0.050974,-39.6,41.9999,-0.050974,-39.6,52.4999,-0.050974,-39.6,62.9999,-0.050974,-39.6,73.4999,-0.050974,-39.6,83.9999,-0.050974,-39.6,94.4999,-0.050974,-39.6,105,-0.050974,-39.6,115.5,-0.050974,-39.6,126,-0.050974,-39.6,136.5,-0.050974,-39.6,147,-0.050974,-39.6,157.5,-0.050974,-39.6,168,-0.050974,-39.6,178.5,-0.050974,-39.6,189,-0.050974,-39.6,199.5,-0.050974,-39.6,210,-0.050974,-39.6,-6.9e-05,-0.050974,-29.7,10.4999,-0.050974,-29.7,20.9999,-0.050974,-29.7,31.4999,-0.050974,-29.7,41.9999,-0.050974,-29.7,52.4999,-0.050974,-29.7,62.9999,-0.050974,-29.7,73.4999,-0.050974,-29.7,83.9999,-0.050974,-29.7,94.4999,-0.050974,-29.7,105,-0.050974,-29.7,115.5,-0.050974,-29.7,126,-0.050974,-29.7,136.5,-0.050974,-29.7,147,-0.050974,-29.7,157.5,-0.050974,-29.7,168,-0.050974,-29.7,178.5,-0.050974,-29.7,189,-0.050974,-29.7,199.5,-0.050974,-29.7,210,-0.050974,-29.7,-6.9e-05,-0.050974,-19.8,10.4999,-0.050974,-19.8,20.9999,-0.050974,-19.8,31.4999,-0.050974,-19.8,41.9999,-0.050974,-19.8,52.4999,-0.050974,-19.8,62.9999,-0.050974,-19.8,73.4999,-0.050974,-19.8,83.9999,-0.050974,-19.8,94.4999,-0.050974,-19.8,105,-0.050974,-19.8,115.5,-0.050974,-19.8,126,-0.050974,-19.8,136.5,-0.050974,-19.8,147,-0.050974,-19.8,157.5,-0.050974,-19.8,168,-0.050974,-19.8,178.5,-0.050974,-19.8,189,-0.050974,-19.8,199.5,-0.050974,-19.8,210,-0.050974,-19.8,-6.9e-05,-0.050974,-9.9,10.4999,-0.050974,-9.9,20.9999,-0.050974,-9.9,31.4999,-0.050974,-9.9,41.9999,-0.050974,-9.9,52.4999,-0.050974,-9.9,62.9999,-0.050974,-9.9,73.4999,-0.050974,-9.9,83.9999,-0.050974,-9.9,94.4999,-0.050974,-9.9,105,-0.050974,-9.9,115.5,-0.050974,-9.9,126,-0.050974,-9.9,136.5,-0.050974,-9.9,147,-0.050974,-9.9,157.5,-0.050974,-9.9,168,-0.050974,-9.9,178.5,-0.050974,-9.9,189,-0.050974,-9.9,199.5,-0.050974,-9.9,210,-0.050974,-9.9,-6.9e-05,-0.050974,-0,10.4999,-0.050974,-0,20.9999,-0.050974,-0,31.4999,-0.050974,-0,41.9999,-0.050974,-0,52.4999,-0.050974,-0,62.9999,-0.050974,-0,73.4999,-0.050974,-0,83.9999,-0.050974,-0,94.4999,-0.050974,-0,105,-0.050974,-0,115.5,-0.050974,-0,126,-0.050974,-0,136.5,-0.050974,-0,147,-0.050974,-0,157.5,-0.050974,-0,168,-0.050974,-0,178.5,-0.050974,-0,189,-0.050974,-0,199.5,-0.050974,-0,210,-0.050974,-0,-6.9e-05,-0.050974,9.9,10.4999,-0.050974,9.9,20.9999,-0.050974,9.9,31.4999,-0.050974,9.9,41.9999,-0.050974,9.9,52.4999,-0.050974,9.9,62.9999,-0.050974,9.9,73.4999,-0.050974,9.9,83.9999,-0.050974,9.9,94.4999,-0.050974,9.9,105,-0.050974,9.9,115.5,-0.050974,9.9,126,-0.050974,9.9,136.5,-0.050974,9.9,147,-0.050974,9.9,157.5,-0.050974,9.9,168,-0.050974,9.9,178.5,-0.050974,9.9,189,-0.050974,9.9,199.5,-0.050974,9.9,210,-0.050974,9.9,-6.9e-05,-0.050974,19.8,10.4999,-0.050974,19.8,20.9999,-0.050974,19.8,31.4999,-0.050974,19.8,41.9999,-0.050974,19.8,52.4999,-0.050974,19.8,62.9999,-0.050974,19.8,73.4999,-0.050974,19.8,83.9999,-0.050974,19.8,94.4999,-0.050974,19.8,105,-0.050974,19.8,115.5,-0.050974,19.8,126,-0.050974,19.8,136.5,-0.050974,19.8,147,-0.050974,19.8,157.5,-0.050974,19.8,168,-0.050974,19.8,178.5,-0.050974,19.8,189,-0.050974,19.8,199.5,-0.050974,19.8,210,-0.050974,19.8,-6.9e-05,-0.050974,29.7,10.4999,-0.050974,29.7,20.9999,-0.050974,29.7,31.4999,-0.050974,29.7,41.9999,-0.050974,29.7,52.4999,-0.050974,29.7,62.9999,-0.050974,29.7,73.4999,-0.050974,29.7,83.9999,-0.050974,29.7,94.4999,-0.050974,29.7,105,-0.050974,29.7,115.5,-0.050974,29.7,126,-0.050974,29.7,136.5,-0.050974,29.7,147,-0.050974,29.7,157.5,-0.050974,29.7,168,-0.050974,29.7,178.5,-0.050974,29.7,189,-0.050974,29.7,199.5,-0.050974,29.7,210,-0.050974,29.7,-6.9e-05,-0.050974,39.6,10.4999,-0.050974,39.6,20.9999,-0.050974,39.6,31.4999,-0.050974,39.6,41.9999,-0.050974,39.6,52.4999,-0.050974,39.6,62.9999,-0.050974,39.6,73.4999,-0.050974,39.6,83.9999,-0.050974,39.6,94.4999,-0.050974,39.6,105,-0.050974,39.6,115.5,-0.050974,39.6,126,-0.050974,39.6,136.5,-0.050974,39.6,147,-0.050974,39.6,157.5,-0.050974,39.6,168,-0.050974,39.6,178.5,-0.050974,39.6,189,-0.050974,39.6,199.5,-0.050974,39.6,210,-0.050974,39.6,-6.9e-05,-0.050974,49.5,10.4999,-0.050974,49.5,20.9999,-0.050974,49.5,31.4999,-0.050974,49.5,41.9999,-0.050974,49.5,52.4999,-0.050974,49.5,62.9999,-0.050974,49.5,73.4999,-0.050974,49.5,83.9999,-0.050974,49.5,94.4999,-0.050974,49.5,105,-0.050974,49.5,115.5,-0.050974,49.5,126,-0.050974,49.5,136.5,-0.050974,49.5,147,-0.050974,49.5,157.5,-0.050974,49.5,168,-0.050974,49.5,178.5,-0.050974,49.5,189,-0.050974,49.5,199.5,-0.050974,49.5,210,-0.050974,49.5,-6.9e-05,-0.050974,59.4,10.4999,-0.050974,59.4,20.9999,-0.050974,59.4,31.4999,-0.050974,59.4,41.9999,-0.050974,59.4,52.4999,-0.050974,59.4,62.9999,-0.050974,59.4,73.4999,-0.050974,59.4,83.9999,-0.050974,59.4,94.4999,-0.050974,59.4,105,-0.050974,59.4,115.5,-0.050974,59.4,126,-0.050974,59.4,136.5,-0.050974,59.4,147,-0.050974,59.4,157.5,-0.050974,59.4,168,-0.050974,59.4,178.5,-0.050974,59.4,189,-0.050974,59.4,199.5,-0.050974,59.4,210,-0.050974,59.4,-6.9e-05,-0.050974,69.3,10.4999,-0.050974,69.3,20.9999,-0.050974,69.3,31.4999,-0.050974,69.3,41.9999,-0.050974,69.3,52.4999,-0.050974,69.3,62.9999,-0.050974,69.3,73.4999,-0.050974,69.3,83.9999,-0.050974,69.3,94.4999,-0.050974,69.3,105,-0.050974,69.3,115.5,-0.050974,69.3,126,-0.050974,69.3,136.5,-0.050974,69.3,147,-0.050974,69.3,157.5,-0.050974,69.3,168,-0.050974,69.3,178.5,-0.050974,69.3,189,-0.050974,69.3,199.5,-0.050974,69.3,210,-0.050974,69.3,-6.9e-05,-0.050974,79.2,10.4999,-0.050974,79.2,20.9999,-0.050974,79.2,31.4999,-0.050974,79.2,41.9999,-0.050974,79.2,52.4999,-0.050974,79.2,62.9999,-0.050974,79.2,73.4999,-0.050974,79.2,83.9999,-0.050974,79.2,94.4999,-0.050974,79.2,105,-0.050974,79.2,115.5,-0.050974,79.2,126,-0.050974,79.2,136.5,-0.050974,79.2,147,-0.050974,79.2,157.5,-0.050974,79.2,168,-0.050974,79.2,178.5,-0.050974,79.2,189,-0.050974,79.2,199.5,-0.050974,79.2,210,-0.050974,79.2,-6.9e-05,-0.050974,89.1,10.4999,-0.050974,89.1,20.9999,-0.050974,89.1,31.4999,-0.050974,89.1,41.9999,-0.050974,89.1,52.4999,-0.050974,89.1,62.9999,-0.050974,89.1,73.4999,-0.050974,89.1,83.9999,-0.050974,89.1,94.4999,-0.050974,89.1,105,-0.050974,89.1,115.5,-0.050974,89.1,126,-0.050974,89.1,136.5,-0.050974,89.1,147,-0.050974,89.1,157.5,-0.050974,89.1,168,-0.050974,89.1,178.5,-0.050974,89.1,189,-0.050974,89.1,199.5,-0.050974,89.1,210,-0.050974,89.1,-6.9e-05,-0.050974,99,10.4999,-0.050974,99,20.9999,-0.050974,99,31.4999,-0.050974,99,41.9999,-0.050974,99,52.4999,-0.050974,99,62.9999,-0.050974,99,73.4999,-0.050974,99,83.9999,-0.050974,99,94.4999,-0.050974,99,105,-0.050974,99,115.5,-0.050974,99,126,-0.050974,99,136.5,-0.050974,99,147,-0.050974,99,157.5,-0.050974,99,168,-0.050974,99,178.5,-0.050974,99,189,-0.050974,99,199.5,-0.050974,99,210,-0.050974,99,-6.9e-05,-0.050974,108.9,10.4999,-0.050974,108.9,20.9999,-0.050974,108.9,31.4999,-0.050974,108.9,41.9999,-0.050974,108.9,52.4999,-0.050974,108.9,62.9999,-0.050974,108.9,73.4999,-0.050974,108.9,83.9999,-0.050974,108.9,94.4999,-0.050974,108.9,105,-0.050974,108.9,115.5,-0.050974,108.9,126,-0.050974,108.9,136.5,-0.050974,108.9,147,-0.050974,108.9,157.5,-0.050974,108.9,168,-0.050974,108.9,178.5,-0.050974,108.9,189,-0.050974,108.9,199.5,-0.050974,108.9,210,-0.050974,108.9,-6.9e-05,-0.050974,118.8,10.4999,-0.050974,118.8,20.9999,-0.050974,118.8,31.4999,-0.050974,118.8,41.9999,-0.050974,118.8,52.4999,-0.050974,118.8,62.9999,-0.050974,118.8,73.4999,-0.050974,118.8,83.9999,-0.050974,118.8,94.4999,-0.050974,118.8,105,-0.050974,118.8,115.5,-0.050974,118.8,126,-0.050974,118.8,136.5,-0.050974,118.8,147,-0.050974,118.8,157.5,-0.050974,118.8,168,-0.050974,118.8,178.5,-0.050974,118.8,189,-0.050974,118.8,199.5,-0.050974,118.8,210,-0.050974,118.8,-6.9e-05,-0.050974,128.7,10.4999,-0.050974,128.7,20.9999,-0.050974,128.7,31.4999,-0.050974,128.7,41.9999,-0.050974,128.7,52.4999,-0.050974,128.7,62.9999,-0.050974,128.7,73.4999,-0.050974,128.7,83.9999,-0.050974,128.7,94.4999,-0.050974,128.7,105,-0.050974,128.7,115.5,-0.050974,128.7,126,-0.050974,128.7,136.5,-0.050974,128.7,147,-0.050974,128.7,157.5,-0.050974,128.7,168,-0.050974,128.7,178.5,-0.050974,128.7,189,-0.050974,128.7,199.5,-0.050974,128.7,210,-0.050974,128.7,-6.9e-05,-0.050974,138.6,10.4999,-0.050974,138.6,20.9999,-0.050974,138.6,31.4999,-0.050974,138.6,41.9999,-0.050974,138.6,52.4999,-0.050974,138.6,62.9999,-0.050974,138.6,73.4999,-0.050974,138.6,83.9999,-0.050974,138.6,94.4999,-0.050974,138.6,105,-0.050974,138.6,115.5,-0.050974,138.6,126,-0.050974,138.6,136.5,-0.050974,138.6,147,-0.050974,138.6,157.5,-0.050974,138.6,168,-0.050974,138.6,178.5,-0.050974,138.6,189,-0.050974,138.6,199.5,-0.050974,138.6,210,-0.050974,138.6,-6.9e-05,-0.050974,148.5,10.4999,-0.050974,148.5,20.9999,-0.050974,148.5,31.4999,-0.050974,148.5,41.9999,-0.050974,148.5,52.4999,-0.050974,148.5,62.9999,-0.050974,148.5,73.4999,-0.050974,148.5,83.9999,-0.050974,148.5,94.4999,-0.050974,148.5,105,-0.050974,148.5,115.5,-0.050974,148.5,126,-0.050974,148.5,136.5,-0.050974,148.5,147,-0.050974,148.5,157.5,-0.050974,148.5,168,-0.050974,148.5,178.5,-0.050974,148.5,189,-0.050974,148.5,199.5,-0.050974,148.5,210,-0.050974,148.5]
+ },
+ "uuid": "9CA3EA4A-05C8-378C-B2E8-75131F7D1E82"
+ }],
+ "metadata": {
+ "generator": "io_three",
+ "version": 4.4,
+ "type": "Object"
+ },
+ "images": [{
+ "name": "fluidbook-4pages 2.jpg",
+ "url": "fluidbook-4pages 2.jpg",
+ "uuid": "E5240A01-C476-31DF-9AAE-3177628E6A50"
+ },{
+ "name": "fluidbook-4pages 3.jpg",
+ "url": "fluidbook-4pages 3.jpg",
+ "uuid": "F4001E31-2FB4-31A7-B6AA-2712B355E831"
+ }],
+ "animations": [{
+ "fps": 29,
+ "name": "default",
+ "tracks": [{
+ "name": "004.morphTargetInfluences[ffd]",
+ "keys": [{
+ "value": 0,
+ "time": 0
+ },{
+ "value": 0.8,
+ "time": 30
+ },{
+ "value": 0,
+ "time": 100
+ }],
+ "type": "number"
+ },{
+ "name": "CameraPreset.position",
+ "keys": [{
+ "value": [0.069363,-0.000541,0.054776],
+ "time": 0
+ },{
+ "value": [0.069363,-0.000541,0.054776],
+ "time": 120
+ },{
+ "value": [0.069363,-0.000541,0.054776],
+ "time": 240
+ },{
+ "value": [0.069363,-0.000541,0.054776],
+ "time": 360
+ }],
+ "type": "vector3"
+ },{
+ "name": "CameraPreset.scale",
+ "keys": [{
+ "value": [1,1,1],
+ "time": 0
+ },{
+ "value": [1,1,1],
+ "time": 120
+ },{
+ "value": [1,1,1],
+ "time": 240
+ },{
+ "value": [1,1,1],
+ "time": 360
+ }],
+ "type": "vector3"
+ },{
+ "name": "CameraPreset.quaternion",
+ "keys": [{
+ "value": [0,0.707107,0.707107,0],
+ "time": 0
+ },{
+ "value": [-0.612372,-0.353553,-0.353553,0.612372],
+ "time": 120
+ },{
+ "value": [-0.612372,0.353553,0.353553,0.612372],
+ "time": 240
+ },{
+ "value": [-0,0.707107,0.707107,0],
+ "time": 360
+ }],
+ "type": "quaternion"
+ },{
+ "name": "004.position",
+ "keys": [{
+ "value": [-0.069363,0.054814,-0.000541],
+ "time": 0
+ },{
+ "value": [-0.069362,0.054916,-0.000567],
+ "time": 5
+ },{
+ "value": [-0.069384,0.055115,-0.000612],
+ "time": 10
+ },{
+ "value": [-0.069455,0.05536,-0.000657],
+ "time": 15
+ },{
+ "value": [-0.069593,0.05558,-0.000714],
+ "time": 20
+ },{
+ "value": [-0.069799,0.055701,-0.000767],
+ "time": 25
+ },{
+ "value": [-0.069996,0.05568,-0.000792],
+ "time": 30
+ },{
+ "value": [-0.070148,0.055528,-0.000792],
+ "time": 35
+ },{
+ "value": [-0.07025,0.05532,-0.00079],
+ "time": 40
+ },{
+ "value": [-0.07027,0.055115,-0.000775],
+ "time": 45
+ },{
+ "value": [-0.070225,0.054855,-0.00072],
+ "time": 50
+ },{
+ "value": [-0.070093,0.054687,-0.000729],
+ "time": 55
+ },{
+ "value": [-0.069942,0.054572,-0.000694],
+ "time": 60
+ },{
+ "value": [-0.06963,0.054524,-0.00064],
+ "time": 70
+ },{
+ "value": [-0.069445,0.054623,-0.000586],
+ "time": 80
+ },{
+ "value": [-0.069377,0.05479,-0.00055],
+ "time": 90
+ },{
+ "value": [-0.06936,0.05479,-0.000537],
+ "time": 100
+ }],
+ "type": "vector3"
+ },{
+ "name": "004.scale",
+ "keys": [{
+ "value": [0.001,0.001,0.001],
+ "time": 0
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 5
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 10
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 15
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 20
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 25
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 30
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 35
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 40
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 45
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 50
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 55
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 60
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 70
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 80
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 90
+ },{
+ "value": [0.001,0.001,0.001],
+ "time": 100
+ }],
+ "type": "vector3"
+ },{
+ "name": "004.quaternion",
+ "keys": [{
+ "value": [-0,0,1,-0],
+ "time": 0
+ },{
+ "value": [-1e-06,-0,-0.996917,0.078459],
+ "time": 5
+ },{
+ "value": [-0,-0,-0.987688,0.156434],
+ "time": 10
+ },{
+ "value": [-0,-0,-0.97237,0.233445],
+ "time": 15
+ },{
+ "value": [-0,-0,-0.951057,0.309017],
+ "time": 20
+ },{
+ "value": [0,-0,-0.92388,0.382684],
+ "time": 25
+ },{
+ "value": [0,-0,-0.891007,0.453991],
+ "time": 30
+ },{
+ "value": [0,-0,-0.85264,0.522499],
+ "time": 35
+ },{
+ "value": [0,-0,-0.809017,0.587785],
+ "time": 40
+ },{
+ "value": [0,-0,-0.760406,0.649448],
+ "time": 45
+ },{
+ "value": [0,-0,-0.707107,0.707107],
+ "time": 50
+ },{
+ "value": [0,-0,-0.649448,0.760406],
+ "time": 55
+ },{
+ "value": [0,-0,-0.587785,0.809017],
+ "time": 60
+ },{
+ "value": [0,-0,-0.453991,0.891007],
+ "time": 70
+ },{
+ "value": [0,-0,-0.309017,0.951057],
+ "time": 80
+ },{
+ "value": [0,-0,-0.156435,0.987688],
+ "time": 90
+ },{
+ "value": [0,-0,-0,1],
+ "time": 100
+ }],
+ "type": "quaternion"
+ }]
+ }],
+ "textures": [{
+ "repeat": [1,1],
+ "minFilter": 1008,
+ "mapping": 300,
+ "wrap": [1000,1000],
+ "image": "E5240A01-C476-31DF-9AAE-3177628E6A50",
+ "name": "fluidbook_4pages_2_jpg",
+ "anisotropy": 1,
+ "magFilter": 1006,
+ "uuid": "7738E2DA-557B-3F32-B4A5-19A9302EF3F1"
+ },{
+ "repeat": [1,1],
+ "minFilter": 1008,
+ "mapping": 300,
+ "wrap": [1000,1000],
+ "image": "F4001E31-2FB4-31A7-B6AA-2712B355E831",
+ "name": "fluidbook_4pages_3_jpg",
+ "anisotropy": 1,
+ "magFilter": 1006,
+ "uuid": "5FCAB75F-200B-38C7-86E7-27E6D26F3D32"
+ }],
+ "object": {
+ "matrix": [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],
+ "children": [{
+ "name": "Camera",
+ "uuid": "DE0714B3-5D16-30EF-9A0A-6C5D6DD394B9",
+ "matrix": [-1,0,0,0,0,1,-0,0,0,-0,-1,0,0.0806,0,-1.2977,1],
+ "visible": true,
+ "type": "PerspectiveCamera",
+ "far": 50000,
+ "near": 0.1,
+ "aspect": 1.77778,
+ "fov": 73.1429
+ },{
+ "name": "CameraPreset",
+ "uuid": "B0C4E574-DECC-3D97-99F0-60577F3026BF",
+ "matrix": [-1,0,-0,0,-0,0,1,0,0,1,0,0,0.069363,-0.000541,0.054776,1],
+ "visible": true,
+ "type": "Object"
+ },{
+ "name": "morpher_test10",
+ "uuid": "74E6AD62-35E6-319C-8BF2-486A9B501AA1",
+ "matrix": [-1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1],
+ "visible": true,
+ "type": "Object",
+ "children": [{
+ "name": "004",
+ "uuid": "9B16AC6D-29DB-3664-9FE0-C1EDB37E18F6",
+ "matrix": [-0.001,-0,0,0,0,-0.001,0,0,-0,0,0.001,0,-0.069363,0.054814,-0.000541,1],
+ "visible": true,
+ "type": "Mesh",
+ "material": "BC3187A1-7BA9-32F8-8EF0-988F0A4965DB",
+ "castShadow": true,
+ "receiveShadow": true,
+ "geometry": "9CA3EA4A-05C8-378C-B2E8-75131F7D1E82"
+ },{
+ "name": "Omni001",
+ "uuid": "197F6021-DA53-3FB5-99FD-3B7AAB139D81",
+ "matrix": [0.001,0,0,0,0,0.001,0,0,0,0,0.001,0,1.5888,-1.72503,0.080994,1],
+ "visible": true,
+ "type": "PointLight",
+ "color": 16777215,
+ "intensity": 7,
+ "distance": 0,
+ "decayExponent": 2
+ },{
+ "name": "Omni002",
+ "uuid": "55D49FBD-3AE6-38D6-AE64-5C29F5BEEAB6",
+ "matrix": [0.001,0,0,0,0,0.001,0,0,0,0,0.001,0,-1.73819,-1.72503,0.080994,1],
+ "visible": true,
+ "type": "PointLight",
+ "color": 16777215,
+ "intensity": 7,
+ "distance": 0,
+ "decayExponent": 2
+ }]
+ }],
+ "type": "Scene",
+ "uuid": "EE91DC53-E239-42BC-9D61-C7AE77A06F71"
+ }
+}
\ No newline at end of file
+++ /dev/null
-// Three.js - http://github.com/mrdoob/three.js
-'use strict';var THREE=THREE||{REVISION:"48"};if(!self.Int32Array)self.Int32Array=Array,self.Float32Array=Array;
-(function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!window.requestAnimationFrame;++c)window.requestAnimationFrame=window[b[c]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[b[c]+"CancelAnimationFrame"]||window[b[c]+"CancelRequestAnimationFrame"];if(!window.requestAnimationFrame)window.requestAnimationFrame=function(b){var c=(new Date).getTime(),g=Math.max(0,16-(c-a)),e=window.setTimeout(function(){b(c+g)},g);a=c+g;return e};if(!window.cancelAnimationFrame)window.cancelAnimationFrame=
-function(a){clearTimeout(a)}})();THREE.Clock=function(a){this.autoStart=void 0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1};THREE.Clock.prototype.start=function(){this.oldTime=this.startTime=Date.now();this.running=!0};THREE.Clock.prototype.stop=function(){this.getElapsedTime();this.running=!1};THREE.Clock.prototype.getElapsedTime=function(){return this.elapsedTime+=this.getDelta()};
-THREE.Clock.prototype.getDelta=function(){var a=0;this.autoStart&&!this.running&&this.start();if(this.running){var b=Date.now(),a=0.001*(b-this.oldTime);this.oldTime=b;this.elapsedTime+=a}return a};THREE.Color=function(a){void 0!==a&&this.setHex(a);return this};
-THREE.Color.prototype={constructor:THREE.Color,r:1,g:1,b:1,copy:function(a){this.r=a.r;this.g=a.g;this.b=a.b;return this},copyGammaToLinear:function(a){this.r=a.r*a.r;this.g=a.g*a.g;this.b=a.b*a.b;return this},copyLinearToGamma:function(a){this.r=Math.sqrt(a.r);this.g=Math.sqrt(a.g);this.b=Math.sqrt(a.b);return this},convertGammaToLinear:function(){var a=this.r,b=this.g,c=this.b;this.r=a*a;this.g=b*b;this.b=c*c;return this},convertLinearToGamma:function(){this.r=Math.sqrt(this.r);this.g=Math.sqrt(this.g);
-this.b=Math.sqrt(this.b);return this},setRGB:function(a,b,c){this.r=a;this.g=b;this.b=c;return this},setHSV:function(a,b,c){var d,f,g;if(0===c)this.r=this.g=this.b=0;else switch(d=Math.floor(6*a),f=6*a-d,a=c*(1-b),g=c*(1-b*f),b=c*(1-b*(1-f)),d){case 1:this.r=g;this.g=c;this.b=a;break;case 2:this.r=a;this.g=c;this.b=b;break;case 3:this.r=a;this.g=g;this.b=c;break;case 4:this.r=b;this.g=a;this.b=c;break;case 5:this.r=c;this.g=a;this.b=g;break;case 6:case 0:this.r=c,this.g=b,this.b=a}return this},setHex:function(a){a=
-Math.floor(a);this.r=(a>>16&255)/255;this.g=(a>>8&255)/255;this.b=(a&255)/255;return this},getHex:function(){return Math.floor(255*this.r)<<16^Math.floor(255*this.g)<<8^Math.floor(255*this.b)},getContextStyle:function(){return"rgb("+Math.floor(255*this.r)+","+Math.floor(255*this.g)+","+Math.floor(255*this.b)+")"},clone:function(){return(new THREE.Color).setRGB(this.r,this.g,this.b)}};THREE.Vector2=function(a,b){this.x=a||0;this.y=b||0};
-THREE.Vector2.prototype={constructor:THREE.Vector2,set:function(a,b){this.x=a;this.y=b;return this},copy:function(a){this.x=a.x;this.y=a.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},add:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;return this},sub:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},
-divideScalar:function(a){a?(this.x/=a,this.y/=a):this.set(0,0);return this},negate:function(){return this.multiplyScalar(-1)},dot:function(a){return this.x*a.x+this.y*a.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.lengthSq())},normalize:function(){return this.divideScalar(this.length())},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x,a=this.y-a.y;return b*b+a*a},setLength:function(a){return this.normalize().multiplyScalar(a)},
-lerpSelf:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;return this},equals:function(a){return a.x===this.x&&a.y===this.y},isZero:function(){return 1.0E-4>this.lengthSq()}};THREE.Vector3=function(a,b,c){this.x=a||0;this.y=b||0;this.z=c||0};
-THREE.Vector3.prototype={constructor:THREE.Vector3,set:function(a,b,c){this.x=a;this.y=b;this.z=c;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},add:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},
-addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},sub:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;return this},multiply:function(a,b){this.x=a.x*b.x;this.y=a.y*b.y;this.z=a.z*b.z;return this},multiplySelf:function(a){this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},divideSelf:function(a){this.x/=a.x;this.y/=a.y;this.z/=a.z;return this},
-divideScalar:function(a){a?(this.x/=a,this.y/=a,this.z/=a):this.z=this.y=this.x=0;return this},negate:function(){return this.multiplyScalar(-1)},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.lengthSq())},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length())},setLength:function(a){return this.normalize().multiplyScalar(a)},
-lerpSelf:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;return this},cross:function(a,b){this.x=a.y*b.z-a.z*b.y;this.y=a.z*b.x-a.x*b.z;this.z=a.x*b.y-a.y*b.x;return this},crossSelf:function(a){var b=this.x,c=this.y,d=this.z;this.x=c*a.z-d*a.y;this.y=d*a.x-b*a.z;this.z=b*a.y-c*a.x;return this},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){return(new THREE.Vector3).sub(this,a).lengthSq()},getPositionFromMatrix:function(a){this.x=
-a.n14;this.y=a.n24;this.z=a.n34;return this},getRotationFromMatrix:function(a,b){var c=b?b.x:1,d=b?b.y:1,f=b?b.z:1,g=a.n11/c,e=a.n12/d,c=a.n21/c,d=a.n22/d,h=a.n23/f,i=a.n33/f;this.y=Math.asin(a.n13/f);f=Math.cos(this.y);1.0E-5<Math.abs(f)?(this.x=Math.atan2(-h/f,i/f),this.z=Math.atan2(-e/f,g/f)):(this.x=0,this.z=Math.atan2(c,d));return this},getScaleFromMatrix:function(a){var b=this.set(a.n11,a.n21,a.n31).length(),c=this.set(a.n12,a.n22,a.n32).length(),a=this.set(a.n13,a.n23,a.n33).length();this.x=
-b;this.y=c;this.z=a},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z},isZero:function(){return 1.0E-4>this.lengthSq()}};THREE.Vector4=function(a,b,c,d){this.x=a||0;this.y=b||0;this.z=c||0;this.w=void 0!==d?d:1};
-THREE.Vector4.prototype={constructor:THREE.Vector4,set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;this.w=d;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=void 0!==a.w?a.w:1;return this},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},add:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;return this},addSelf:function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},sub:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;
-this.z=a.z-b.z;this.w=a.w-b.w;return this},subSelf:function(a){this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},divideScalar:function(a){a?(this.x/=a,this.y/=a,this.z/=a,this.w/=a):(this.z=this.y=this.x=0,this.w=1);return this},negate:function(){return this.multiplyScalar(-1)},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z+this.w*a.w},lengthSq:function(){return this.dot(this)},length:function(){return Math.sqrt(this.lengthSq())},
-normalize:function(){return this.divideScalar(this.length())},setLength:function(a){return this.normalize().multiplyScalar(a)},lerpSelf:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;this.w+=(a.w-this.w)*b;return this}};THREE.Frustum=function(){this.planes=[new THREE.Vector4,new THREE.Vector4,new THREE.Vector4,new THREE.Vector4,new THREE.Vector4,new THREE.Vector4]};
-THREE.Frustum.prototype.setFromMatrix=function(a){var b,c=this.planes;c[0].set(a.n41-a.n11,a.n42-a.n12,a.n43-a.n13,a.n44-a.n14);c[1].set(a.n41+a.n11,a.n42+a.n12,a.n43+a.n13,a.n44+a.n14);c[2].set(a.n41+a.n21,a.n42+a.n22,a.n43+a.n23,a.n44+a.n24);c[3].set(a.n41-a.n21,a.n42-a.n22,a.n43-a.n23,a.n44-a.n24);c[4].set(a.n41-a.n31,a.n42-a.n32,a.n43-a.n33,a.n44-a.n34);c[5].set(a.n41+a.n31,a.n42+a.n32,a.n43+a.n33,a.n44+a.n34);for(a=0;6>a;a++)b=c[a],b.divideScalar(Math.sqrt(b.x*b.x+b.y*b.y+b.z*b.z))};
-THREE.Frustum.prototype.contains=function(a){for(var b=this.planes,c=a.matrixWorld,d=THREE.Frustum.__v1.set(c.getColumnX().length(),c.getColumnY().length(),c.getColumnZ().length()),d=-a.geometry.boundingSphere.radius*Math.max(d.x,Math.max(d.y,d.z)),f=0;6>f;f++)if(a=b[f].x*c.n14+b[f].y*c.n24+b[f].z*c.n34+b[f].w,a<=d)return!1;return!0};THREE.Frustum.__v1=new THREE.Vector3;
-THREE.Ray=function(a,b){function c(a,b,c){p.sub(c,a);s=p.dot(b);t=n.add(a,r.copy(b).multiplyScalar(s));return w=c.distanceTo(t)}function d(a,b,c,d){p.sub(d,b);n.sub(c,b);r.sub(a,b);u=p.dot(p);v=p.dot(n);A=p.dot(r);F=n.dot(n);B=n.dot(r);D=1/(u*F-v*v);H=(F*A-v*B)*D;I=(u*B-v*A)*D;return 0<=H&&0<=I&&1>H+I}this.origin=a||new THREE.Vector3;this.direction=b||new THREE.Vector3;this.intersectObjects=function(a){var b,c,d=[];for(b=0,c=a.length;b<c;b++)Array.prototype.push.apply(d,this.intersectObject(a[b]));
-d.sort(function(a,b){return a.distance-b.distance});return d};var f=1.0E-4;this.setPrecision=function(a){f=a};var g=new THREE.Vector3,e=new THREE.Vector3,h=new THREE.Vector3,i=new THREE.Vector3,j=new THREE.Vector3,k=new THREE.Vector3,q=new THREE.Vector3,m=new THREE.Vector3,o=new THREE.Vector3;this.intersectObject=function(a){var b,n=[];if(a instanceof THREE.Particle){var p=c(this.origin,this.direction,a.matrixWorld.getPosition());if(p>a.scale.x)return[];b={distance:p,point:a.position,face:null,object:a};
-n.push(b)}else if(a instanceof THREE.Mesh){var p=c(this.origin,this.direction,a.matrixWorld.getPosition()),r=THREE.Frustum.__v1.set(a.matrixWorld.getColumnX().length(),a.matrixWorld.getColumnY().length(),a.matrixWorld.getColumnZ().length());if(p>a.geometry.boundingSphere.radius*Math.max(r.x,Math.max(r.y,r.z)))return n;var s,l,t=a.geometry,u=t.vertices,E;a.matrixRotationWorld.extractRotation(a.matrixWorld);for(p=0,r=t.faces.length;p<r;p++)if(b=t.faces[p],j.copy(this.origin),k.copy(this.direction),
-E=a.matrixWorld,q=E.multiplyVector3(q.copy(b.centroid)).subSelf(j),m=a.matrixRotationWorld.multiplyVector3(m.copy(b.normal)),s=k.dot(m),!(Math.abs(s)<f)&&(l=m.dot(q)/s,!(0>l)&&(a.doubleSided||(a.flipSided?0<s:0>s))))if(o.add(j,k.multiplyScalar(l)),b instanceof THREE.Face3)g=E.multiplyVector3(g.copy(u[b.a].position)),e=E.multiplyVector3(e.copy(u[b.b].position)),h=E.multiplyVector3(h.copy(u[b.c].position)),d(o,g,e,h)&&(b={distance:j.distanceTo(o),point:o.clone(),face:b,object:a},n.push(b));else if(b instanceof
-THREE.Face4&&(g=E.multiplyVector3(g.copy(u[b.a].position)),e=E.multiplyVector3(e.copy(u[b.b].position)),h=E.multiplyVector3(h.copy(u[b.c].position)),i=E.multiplyVector3(i.copy(u[b.d].position)),d(o,g,e,i)||d(o,e,h,i)))b={distance:j.distanceTo(o),point:o.clone(),face:b,object:a},n.push(b)}return n};var p=new THREE.Vector3,n=new THREE.Vector3,r=new THREE.Vector3,s,t,w,u,v,A,F,B,D,H,I};
-THREE.Rectangle=function(){function a(){g=d-b;e=f-c}var b,c,d,f,g,e,h=!0;this.getX=function(){return b};this.getY=function(){return c};this.getWidth=function(){return g};this.getHeight=function(){return e};this.getLeft=function(){return b};this.getTop=function(){return c};this.getRight=function(){return d};this.getBottom=function(){return f};this.set=function(g,e,k,q){h=!1;b=g;c=e;d=k;f=q;a()};this.addPoint=function(g,e){h?(h=!1,b=g,c=e,d=g,f=e):(b=b<g?b:g,c=c<e?c:e,d=d>g?d:g,f=f>e?f:e);a()};this.add3Points=
-function(g,e,k,q,m,o){h?(h=!1,b=g<k?g<m?g:m:k<m?k:m,c=e<q?e<o?e:o:q<o?q:o,d=g>k?g>m?g:m:k>m?k:m,f=e>q?e>o?e:o:q>o?q:o):(b=g<k?g<m?g<b?g:b:m<b?m:b:k<m?k<b?k:b:m<b?m:b,c=e<q?e<o?e<c?e:c:o<c?o:c:q<o?q<c?q:c:o<c?o:c,d=g>k?g>m?g>d?g:d:m>d?m:d:k>m?k>d?k:d:m>d?m:d,f=e>q?e>o?e>f?e:f:o>f?o:f:q>o?q>f?q:f:o>f?o:f);a()};this.addRectangle=function(g){h?(h=!1,b=g.getLeft(),c=g.getTop(),d=g.getRight(),f=g.getBottom()):(b=b<g.getLeft()?b:g.getLeft(),c=c<g.getTop()?c:g.getTop(),d=d>g.getRight()?d:g.getRight(),f=f>
-g.getBottom()?f:g.getBottom());a()};this.inflate=function(g){b-=g;c-=g;d+=g;f+=g;a()};this.minSelf=function(g){b=b>g.getLeft()?b:g.getLeft();c=c>g.getTop()?c:g.getTop();d=d<g.getRight()?d:g.getRight();f=f<g.getBottom()?f:g.getBottom();a()};this.intersects=function(a){return d<a.getLeft()||b>a.getRight()||f<a.getTop()||c>a.getBottom()?!1:!0};this.empty=function(){h=!0;f=d=c=b=0;a()};this.isEmpty=function(){return h}};
-THREE.Math={clamp:function(a,b,c){return a<b?b:a>c?c:a},clampBottom:function(a,b){return a<b?b:a},mapLinear:function(a,b,c,d,f){return d+(a-b)*(f-d)/(c-b)},random16:function(){return(65280*Math.random()+255*Math.random())/65535},randInt:function(a,b){return a+Math.floor(Math.random()*(b-a+1))},randFloat:function(a,b){return a+Math.random()*(b-a)},randFloatSpread:function(a){return a*(0.5-Math.random())},sign:function(a){return 0>a?-1:0<a?1:0}};THREE.Matrix3=function(){this.m=[]};
-THREE.Matrix3.prototype={constructor:THREE.Matrix3,transposeIntoArray:function(a){var b=this.m;a[0]=b[0];a[1]=b[3];a[2]=b[6];a[3]=b[1];a[4]=b[4];a[5]=b[7];a[6]=b[2];a[7]=b[5];a[8]=b[8];return this}};THREE.Matrix4=function(a,b,c,d,f,g,e,h,i,j,k,q,m,o,p,n){this.set(void 0!==a?a:1,b||0,c||0,d||0,f||0,void 0!==g?g:1,e||0,h||0,i||0,j||0,void 0!==k?k:1,q||0,m||0,o||0,p||0,void 0!==n?n:1);this.m33=new THREE.Matrix3};
-THREE.Matrix4.prototype={constructor:THREE.Matrix4,set:function(a,b,c,d,f,g,e,h,i,j,k,q,m,o,p,n){this.n11=a;this.n12=b;this.n13=c;this.n14=d;this.n21=f;this.n22=g;this.n23=e;this.n24=h;this.n31=i;this.n32=j;this.n33=k;this.n34=q;this.n41=m;this.n42=o;this.n43=p;this.n44=n;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},copy:function(a){this.set(a.n11,a.n12,a.n13,a.n14,a.n21,a.n22,a.n23,a.n24,a.n31,a.n32,a.n33,a.n34,a.n41,a.n42,a.n43,a.n44);return this},lookAt:function(a,
-b,c){var d=THREE.Matrix4.__v1,f=THREE.Matrix4.__v2,g=THREE.Matrix4.__v3;g.sub(a,b).normalize();if(0===g.length())g.z=1;d.cross(c,g).normalize();0===d.length()&&(g.x+=1.0E-4,d.cross(c,g).normalize());f.cross(g,d);this.n11=d.x;this.n12=f.x;this.n13=g.x;this.n21=d.y;this.n22=f.y;this.n23=g.y;this.n31=d.z;this.n32=f.z;this.n33=g.z;return this},multiply:function(a,b){var c=a.n11,d=a.n12,f=a.n13,g=a.n14,e=a.n21,h=a.n22,i=a.n23,j=a.n24,k=a.n31,q=a.n32,m=a.n33,o=a.n34,p=a.n41,n=a.n42,r=a.n43,s=a.n44,t=b.n11,
-w=b.n12,u=b.n13,v=b.n14,A=b.n21,F=b.n22,B=b.n23,D=b.n24,H=b.n31,I=b.n32,Q=b.n33,P=b.n34,L=b.n41,K=b.n42,O=b.n43,y=b.n44;this.n11=c*t+d*A+f*H+g*L;this.n12=c*w+d*F+f*I+g*K;this.n13=c*u+d*B+f*Q+g*O;this.n14=c*v+d*D+f*P+g*y;this.n21=e*t+h*A+i*H+j*L;this.n22=e*w+h*F+i*I+j*K;this.n23=e*u+h*B+i*Q+j*O;this.n24=e*v+h*D+i*P+j*y;this.n31=k*t+q*A+m*H+o*L;this.n32=k*w+q*F+m*I+o*K;this.n33=k*u+q*B+m*Q+o*O;this.n34=k*v+q*D+m*P+o*y;this.n41=p*t+n*A+r*H+s*L;this.n42=p*w+n*F+r*I+s*K;this.n43=p*u+n*B+r*Q+s*O;this.n44=
-p*v+n*D+r*P+s*y;return this},multiplySelf:function(a){return this.multiply(this,a)},multiplyToArray:function(a,b,c){this.multiply(a,b);c[0]=this.n11;c[1]=this.n21;c[2]=this.n31;c[3]=this.n41;c[4]=this.n12;c[5]=this.n22;c[6]=this.n32;c[7]=this.n42;c[8]=this.n13;c[9]=this.n23;c[10]=this.n33;c[11]=this.n43;c[12]=this.n14;c[13]=this.n24;c[14]=this.n34;c[15]=this.n44;return this},multiplyScalar:function(a){this.n11*=a;this.n12*=a;this.n13*=a;this.n14*=a;this.n21*=a;this.n22*=a;this.n23*=a;this.n24*=a;
-this.n31*=a;this.n32*=a;this.n33*=a;this.n34*=a;this.n41*=a;this.n42*=a;this.n43*=a;this.n44*=a;return this},multiplyVector3:function(a){var b=a.x,c=a.y,d=a.z,f=1/(this.n41*b+this.n42*c+this.n43*d+this.n44);a.x=(this.n11*b+this.n12*c+this.n13*d+this.n14)*f;a.y=(this.n21*b+this.n22*c+this.n23*d+this.n24)*f;a.z=(this.n31*b+this.n32*c+this.n33*d+this.n34)*f;return a},multiplyVector4:function(a){var b=a.x,c=a.y,d=a.z,f=a.w;a.x=this.n11*b+this.n12*c+this.n13*d+this.n14*f;a.y=this.n21*b+this.n22*c+this.n23*
-d+this.n24*f;a.z=this.n31*b+this.n32*c+this.n33*d+this.n34*f;a.w=this.n41*b+this.n42*c+this.n43*d+this.n44*f;return a},rotateAxis:function(a){var b=a.x,c=a.y,d=a.z;a.x=b*this.n11+c*this.n12+d*this.n13;a.y=b*this.n21+c*this.n22+d*this.n23;a.z=b*this.n31+c*this.n32+d*this.n33;a.normalize();return a},crossVector:function(a){var b=new THREE.Vector4;b.x=this.n11*a.x+this.n12*a.y+this.n13*a.z+this.n14*a.w;b.y=this.n21*a.x+this.n22*a.y+this.n23*a.z+this.n24*a.w;b.z=this.n31*a.x+this.n32*a.y+this.n33*a.z+
-this.n34*a.w;b.w=a.w?this.n41*a.x+this.n42*a.y+this.n43*a.z+this.n44*a.w:1;return b},determinant:function(){var a=this.n11,b=this.n12,c=this.n13,d=this.n14,f=this.n21,g=this.n22,e=this.n23,h=this.n24,i=this.n31,j=this.n32,k=this.n33,q=this.n34,m=this.n41,o=this.n42,p=this.n43,n=this.n44;return d*e*j*m-c*h*j*m-d*g*k*m+b*h*k*m+c*g*q*m-b*e*q*m-d*e*i*o+c*h*i*o+d*f*k*o-a*h*k*o-c*f*q*o+a*e*q*o+d*g*i*p-b*h*i*p-d*f*j*p+a*h*j*p+b*f*q*p-a*g*q*p-c*g*i*n+b*e*i*n+c*f*j*n-a*e*j*n-b*f*k*n+a*g*k*n},transpose:function(){var a;
-a=this.n21;this.n21=this.n12;this.n12=a;a=this.n31;this.n31=this.n13;this.n13=a;a=this.n32;this.n32=this.n23;this.n23=a;a=this.n41;this.n41=this.n14;this.n14=a;a=this.n42;this.n42=this.n24;this.n24=a;a=this.n43;this.n43=this.n34;this.n34=a;return this},clone:function(){var a=new THREE.Matrix4;a.n11=this.n11;a.n12=this.n12;a.n13=this.n13;a.n14=this.n14;a.n21=this.n21;a.n22=this.n22;a.n23=this.n23;a.n24=this.n24;a.n31=this.n31;a.n32=this.n32;a.n33=this.n33;a.n34=this.n34;a.n41=this.n41;a.n42=this.n42;
-a.n43=this.n43;a.n44=this.n44;return a},flattenToArray:function(a){a[0]=this.n11;a[1]=this.n21;a[2]=this.n31;a[3]=this.n41;a[4]=this.n12;a[5]=this.n22;a[6]=this.n32;a[7]=this.n42;a[8]=this.n13;a[9]=this.n23;a[10]=this.n33;a[11]=this.n43;a[12]=this.n14;a[13]=this.n24;a[14]=this.n34;a[15]=this.n44;return a},flattenToArrayOffset:function(a,b){a[b]=this.n11;a[b+1]=this.n21;a[b+2]=this.n31;a[b+3]=this.n41;a[b+4]=this.n12;a[b+5]=this.n22;a[b+6]=this.n32;a[b+7]=this.n42;a[b+8]=this.n13;a[b+9]=this.n23;a[b+
-10]=this.n33;a[b+11]=this.n43;a[b+12]=this.n14;a[b+13]=this.n24;a[b+14]=this.n34;a[b+15]=this.n44;return a},setTranslation:function(a,b,c){this.set(1,0,0,a,0,1,0,b,0,0,1,c,0,0,0,1);return this},setScale:function(a,b,c){this.set(a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,1);return this},setRotationX:function(a){var b=Math.cos(a),a=Math.sin(a);this.set(1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1);return this},setRotationY:function(a){var b=Math.cos(a),a=Math.sin(a);this.set(b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1);return this},setRotationZ:function(a){var b=
-Math.cos(a),a=Math.sin(a);this.set(b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1);return this},setRotationAxis:function(a,b){var c=Math.cos(b),d=Math.sin(b),f=1-c,g=a.x,e=a.y,h=a.z,i=f*g,j=f*e;this.set(i*g+c,i*e-d*h,i*h+d*e,0,i*e+d*h,j*e+c,j*h-d*g,0,i*h-d*e,j*h+d*g,f*h*h+c,0,0,0,0,1);return this},setPosition:function(a){this.n14=a.x;this.n24=a.y;this.n34=a.z;return this},getPosition:function(){return THREE.Matrix4.__v1.set(this.n14,this.n24,this.n34)},getColumnX:function(){return THREE.Matrix4.__v1.set(this.n11,
-this.n21,this.n31)},getColumnY:function(){return THREE.Matrix4.__v1.set(this.n12,this.n22,this.n32)},getColumnZ:function(){return THREE.Matrix4.__v1.set(this.n13,this.n23,this.n33)},getInverse:function(a){var b=a.n11,c=a.n12,d=a.n13,f=a.n14,g=a.n21,e=a.n22,h=a.n23,i=a.n24,j=a.n31,k=a.n32,q=a.n33,m=a.n34,o=a.n41,p=a.n42,n=a.n43,r=a.n44;this.n11=h*m*p-i*q*p+i*k*n-e*m*n-h*k*r+e*q*r;this.n12=f*q*p-d*m*p-f*k*n+c*m*n+d*k*r-c*q*r;this.n13=d*i*p-f*h*p+f*e*n-c*i*n-d*e*r+c*h*r;this.n14=f*h*k-d*i*k-f*e*q+c*
-i*q+d*e*m-c*h*m;this.n21=i*q*o-h*m*o-i*j*n+g*m*n+h*j*r-g*q*r;this.n22=d*m*o-f*q*o+f*j*n-b*m*n-d*j*r+b*q*r;this.n23=f*h*o-d*i*o-f*g*n+b*i*n+d*g*r-b*h*r;this.n24=d*i*j-f*h*j+f*g*q-b*i*q-d*g*m+b*h*m;this.n31=e*m*o-i*k*o+i*j*p-g*m*p-e*j*r+g*k*r;this.n32=f*k*o-c*m*o-f*j*p+b*m*p+c*j*r-b*k*r;this.n33=c*i*o-f*e*o+f*g*p-b*i*p-c*g*r+b*e*r;this.n34=f*e*j-c*i*j-f*g*k+b*i*k+c*g*m-b*e*m;this.n41=h*k*o-e*q*o-h*j*p+g*q*p+e*j*n-g*k*n;this.n42=c*q*o-d*k*o+d*j*p-b*q*p-c*j*n+b*k*n;this.n43=d*e*o-c*h*o-d*g*p+b*h*p+c*
-g*n-b*e*n;this.n44=c*h*j-d*e*j+d*g*k-b*h*k-c*g*q+b*e*q;this.multiplyScalar(1/a.determinant());return this},setRotationFromEuler:function(a,b){var c=a.x,d=a.y,f=a.z,g=Math.cos(c),c=Math.sin(c),e=Math.cos(d),d=Math.sin(d),h=Math.cos(f),f=Math.sin(f);switch(b){case "YXZ":var i=e*h,j=e*f,k=d*h,q=d*f;this.n11=i+q*c;this.n12=k*c-j;this.n13=g*d;this.n21=g*f;this.n22=g*h;this.n23=-c;this.n31=j*c-k;this.n32=q+i*c;this.n33=g*e;break;case "ZXY":i=e*h;j=e*f;k=d*h;q=d*f;this.n11=i-q*c;this.n12=-g*f;this.n13=k+
-j*c;this.n21=j+k*c;this.n22=g*h;this.n23=q-i*c;this.n31=-g*d;this.n32=c;this.n33=g*e;break;case "ZYX":i=g*h;j=g*f;k=c*h;q=c*f;this.n11=e*h;this.n12=k*d-j;this.n13=i*d+q;this.n21=e*f;this.n22=q*d+i;this.n23=j*d-k;this.n31=-d;this.n32=c*e;this.n33=g*e;break;case "YZX":i=g*e;j=g*d;k=c*e;q=c*d;this.n11=e*h;this.n12=q-i*f;this.n13=k*f+j;this.n21=f;this.n22=g*h;this.n23=-c*h;this.n31=-d*h;this.n32=j*f+k;this.n33=i-q*f;break;case "XZY":i=g*e;j=g*d;k=c*e;q=c*d;this.n11=e*h;this.n12=-f;this.n13=d*h;this.n21=
-i*f+q;this.n22=g*h;this.n23=j*f-k;this.n31=k*f-j;this.n32=c*h;this.n33=q*f+i;break;default:i=g*h,j=g*f,k=c*h,q=c*f,this.n11=e*h,this.n12=-e*f,this.n13=d,this.n21=j+k*d,this.n22=i-q*d,this.n23=-c*e,this.n31=q-i*d,this.n32=k+j*d,this.n33=g*e}return this},setRotationFromQuaternion:function(a){var b=a.x,c=a.y,d=a.z,f=a.w,g=b+b,e=c+c,h=d+d,a=b*g,i=b*e,b=b*h,j=c*e,c=c*h,d=d*h,g=f*g,e=f*e,f=f*h;this.n11=1-(j+d);this.n12=i-f;this.n13=b+e;this.n21=i+f;this.n22=1-(a+d);this.n23=c-g;this.n31=b-e;this.n32=c+
-g;this.n33=1-(a+j);return this},scale:function(a){var b=a.x,c=a.y,a=a.z;this.n11*=b;this.n12*=c;this.n13*=a;this.n21*=b;this.n22*=c;this.n23*=a;this.n31*=b;this.n32*=c;this.n33*=a;this.n41*=b;this.n42*=c;this.n43*=a;return this},compose:function(a,b,c){var d=THREE.Matrix4.__m1,f=THREE.Matrix4.__m2;d.identity();d.setRotationFromQuaternion(b);f.setScale(c.x,c.y,c.z);this.multiply(d,f);this.n14=a.x;this.n24=a.y;this.n34=a.z;return this},decompose:function(a,b,c){var d=THREE.Matrix4.__v1,f=THREE.Matrix4.__v2,
-g=THREE.Matrix4.__v3;d.set(this.n11,this.n21,this.n31);f.set(this.n12,this.n22,this.n32);g.set(this.n13,this.n23,this.n33);a=a instanceof THREE.Vector3?a:new THREE.Vector3;b=b instanceof THREE.Quaternion?b:new THREE.Quaternion;c=c instanceof THREE.Vector3?c:new THREE.Vector3;c.x=d.length();c.y=f.length();c.z=g.length();a.x=this.n14;a.y=this.n24;a.z=this.n34;d=THREE.Matrix4.__m1;d.copy(this);d.n11/=c.x;d.n21/=c.x;d.n31/=c.x;d.n12/=c.y;d.n22/=c.y;d.n32/=c.y;d.n13/=c.z;d.n23/=c.z;d.n33/=c.z;b.setFromRotationMatrix(d);
-return[a,b,c]},extractPosition:function(a){this.n14=a.n14;this.n24=a.n24;this.n34=a.n34;return this},extractRotation:function(a){var b=THREE.Matrix4.__v1,c=1/b.set(a.n11,a.n21,a.n31).length(),d=1/b.set(a.n12,a.n22,a.n32).length(),b=1/b.set(a.n13,a.n23,a.n33).length();this.n11=a.n11*c;this.n21=a.n21*c;this.n31=a.n31*c;this.n12=a.n12*d;this.n22=a.n22*d;this.n32=a.n32*d;this.n13=a.n13*b;this.n23=a.n23*b;this.n33=a.n33*b;return this},rotateByAxis:function(a,b){if(1===a.x&&0===a.y&&0===a.z)return this.rotateX(b);
-if(0===a.x&&1===a.y&&0===a.z)return this.rotateY(b);if(0===a.x&&0===a.y&&1===a.z)return this.rotateZ(b);var c=a.x,d=a.y,f=a.z,g=Math.sqrt(c*c+d*d+f*f),c=c/g,d=d/g,f=f/g,g=c*c,e=d*d,h=f*f,i=Math.cos(b),j=Math.sin(b),k=1-i,q=c*d*k,m=c*f*k,k=d*f*k,c=c*j,o=d*j,j=f*j,f=g+(1-g)*i,g=q+j,d=m-o,q=q-j,e=e+(1-e)*i,j=k+c,m=m+o,k=k-c,h=h+(1-h)*i,i=this.n11,c=this.n21,o=this.n31,p=this.n41,n=this.n12,r=this.n22,s=this.n32,t=this.n42,w=this.n13,u=this.n23,v=this.n33,A=this.n43;this.n11=f*i+g*n+d*w;this.n21=f*c+
-g*r+d*u;this.n31=f*o+g*s+d*v;this.n41=f*p+g*t+d*A;this.n12=q*i+e*n+j*w;this.n22=q*c+e*r+j*u;this.n32=q*o+e*s+j*v;this.n42=q*p+e*t+j*A;this.n13=m*i+k*n+h*w;this.n23=m*c+k*r+h*u;this.n33=m*o+k*s+h*v;this.n43=m*p+k*t+h*A;return this},rotateX:function(a){var b=this.n12,c=this.n22,d=this.n32,f=this.n42,g=this.n13,e=this.n23,h=this.n33,i=this.n43,j=Math.cos(a),a=Math.sin(a);this.n12=j*b+a*g;this.n22=j*c+a*e;this.n32=j*d+a*h;this.n42=j*f+a*i;this.n13=j*g-a*b;this.n23=j*e-a*c;this.n33=j*h-a*d;this.n43=j*
-i-a*f;return this},rotateY:function(a){var b=this.n11,c=this.n21,d=this.n31,f=this.n41,g=this.n13,e=this.n23,h=this.n33,i=this.n43,j=Math.cos(a),a=Math.sin(a);this.n11=j*b-a*g;this.n21=j*c-a*e;this.n31=j*d-a*h;this.n41=j*f-a*i;this.n13=j*g+a*b;this.n23=j*e+a*c;this.n33=j*h+a*d;this.n43=j*i+a*f;return this},rotateZ:function(a){var b=this.n11,c=this.n21,d=this.n31,f=this.n41,g=this.n12,e=this.n22,h=this.n32,i=this.n42,j=Math.cos(a),a=Math.sin(a);this.n11=j*b+a*g;this.n21=j*c+a*e;this.n31=j*d+a*h;this.n41=
-j*f+a*i;this.n12=j*g-a*b;this.n22=j*e-a*c;this.n32=j*h-a*d;this.n42=j*i-a*f;return this},translate:function(a){var b=a.x,c=a.y,a=a.z;this.n14=this.n11*b+this.n12*c+this.n13*a+this.n14;this.n24=this.n21*b+this.n22*c+this.n23*a+this.n24;this.n34=this.n31*b+this.n32*c+this.n33*a+this.n34;this.n44=this.n41*b+this.n42*c+this.n43*a+this.n44;return this}};
-THREE.Matrix4.makeInvert3x3=function(a){var b=a.m33,c=b.m,d=a.n33*a.n22-a.n32*a.n23,f=-a.n33*a.n21+a.n31*a.n23,g=a.n32*a.n21-a.n31*a.n22,e=-a.n33*a.n12+a.n32*a.n13,h=a.n33*a.n11-a.n31*a.n13,i=-a.n32*a.n11+a.n31*a.n12,j=a.n23*a.n12-a.n22*a.n13,k=-a.n23*a.n11+a.n21*a.n13,q=a.n22*a.n11-a.n21*a.n12,a=a.n11*d+a.n21*e+a.n31*j;if(0===a)return null;a=1/a;c[0]=a*d;c[1]=a*f;c[2]=a*g;c[3]=a*e;c[4]=a*h;c[5]=a*i;c[6]=a*j;c[7]=a*k;c[8]=a*q;return b};
-THREE.Matrix4.makeFrustum=function(a,b,c,d,f,g){var e;e=new THREE.Matrix4;e.n11=2*f/(b-a);e.n12=0;e.n13=(b+a)/(b-a);e.n14=0;e.n21=0;e.n22=2*f/(d-c);e.n23=(d+c)/(d-c);e.n24=0;e.n31=0;e.n32=0;e.n33=-(g+f)/(g-f);e.n34=-2*g*f/(g-f);e.n41=0;e.n42=0;e.n43=-1;e.n44=0;return e};THREE.Matrix4.makePerspective=function(a,b,c,d){var f,a=c*Math.tan(a*Math.PI/360);f=-a;return THREE.Matrix4.makeFrustum(f*b,a*b,f,a,c,d)};
-THREE.Matrix4.makeOrtho=function(a,b,c,d,f,g){var e,h,i,j;e=new THREE.Matrix4;h=b-a;i=c-d;j=g-f;e.n11=2/h;e.n12=0;e.n13=0;e.n14=-((b+a)/h);e.n21=0;e.n22=2/i;e.n23=0;e.n24=-((c+d)/i);e.n31=0;e.n32=0;e.n33=-2/j;e.n34=-((g+f)/j);e.n41=0;e.n42=0;e.n43=0;e.n44=1;return e};THREE.Matrix4.__v1=new THREE.Vector3;THREE.Matrix4.__v2=new THREE.Vector3;THREE.Matrix4.__v3=new THREE.Vector3;THREE.Matrix4.__m1=new THREE.Matrix4;THREE.Matrix4.__m2=new THREE.Matrix4;
-THREE.Object3D=function(){this.id=THREE.Object3DCount++;this.name="";this.parent=void 0;this.children=[];this.up=new THREE.Vector3(0,1,0);this.position=new THREE.Vector3;this.rotation=new THREE.Vector3;this.eulerOrder="XYZ";this.scale=new THREE.Vector3(1,1,1);this.flipSided=this.doubleSided=!1;this.renderDepth=null;this.rotationAutoUpdate=!0;this.matrix=new THREE.Matrix4;this.matrixWorld=new THREE.Matrix4;this.matrixRotationWorld=new THREE.Matrix4;this.matrixWorldNeedsUpdate=this.matrixAutoUpdate=
-!0;this.quaternion=new THREE.Quaternion;this.useQuaternion=!1;this.boundRadius=0;this.boundRadiusScale=1;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this._vector=new THREE.Vector3};
-THREE.Object3D.prototype={constructor:THREE.Object3D,applyMatrix:function(a){this.matrix.multiply(a,this.matrix);this.scale.getScaleFromMatrix(this.matrix);this.rotation.getRotationFromMatrix(this.matrix,this.scale);this.position.getPositionFromMatrix(this.matrix)},translate:function(a,b){this.matrix.rotateAxis(b);this.position.addSelf(b.multiplyScalar(a))},translateX:function(a){this.translate(a,this._vector.set(1,0,0))},translateY:function(a){this.translate(a,this._vector.set(0,1,0))},translateZ:function(a){this.translate(a,
-this._vector.set(0,0,1))},lookAt:function(a){this.matrix.lookAt(a,this.position,this.up);this.rotationAutoUpdate&&this.rotation.getRotationFromMatrix(this.matrix)},add:function(a){if(a===this)console.warn("THREE.Object3D.add: An object can't be added as a child of itself.");else if(-1===this.children.indexOf(a)){void 0!==a.parent&&a.parent.remove(a);a.parent=this;this.children.push(a);for(var b=this;void 0!==b.parent;)b=b.parent;void 0!==b&&b instanceof THREE.Scene&&b.__addObject(a)}},remove:function(a){var b=
-this.children.indexOf(a);if(-1!==b){a.parent=void 0;this.children.splice(b,1);for(b=this;void 0!==b.parent;)b=b.parent;void 0!==b&&b instanceof THREE.Scene&&b.__removeObject(a)}},getChildByName:function(a,b){var c,d,f;for(c=0,d=this.children.length;c<d;c++){f=this.children[c];if(f.name===a||b&&(f=f.getChildByName(a,b),void 0!==f))return f}},updateMatrix:function(){this.matrix.setPosition(this.position);this.useQuaternion?this.matrix.setRotationFromQuaternion(this.quaternion):this.matrix.setRotationFromEuler(this.rotation,
-this.eulerOrder);if(1!==this.scale.x||1!==this.scale.y||1!==this.scale.z)this.matrix.scale(this.scale),this.boundRadiusScale=Math.max(this.scale.x,Math.max(this.scale.y,this.scale.z));this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(a){this.matrixAutoUpdate&&this.updateMatrix();if(this.matrixWorldNeedsUpdate||a)this.parent?this.matrixWorld.multiply(this.parent.matrixWorld,this.matrix):this.matrixWorld.copy(this.matrix),this.matrixWorldNeedsUpdate=!1,a=!0;for(var b=0,c=this.children.length;b<
-c;b++)this.children[b].updateMatrixWorld(a)}};THREE.Object3DCount=0;
-THREE.Projector=function(){function a(){var a=e[g]=e[g]||new THREE.RenderableObject;g++;return a}function b(){var a=j[i]=j[i]||new THREE.RenderableVertex;i++;return a}function c(a,b){return b.z-a.z}function d(a,b){var c=0,d=1,f=a.z+a.w,g=b.z+b.w,e=-a.z+a.w,h=-b.z+b.w;if(0<=f&&0<=g&&0<=e&&0<=h)return!0;if(0>f&&0>g||0>e&&0>h)return!1;0>f?c=Math.max(c,f/(f-g)):0>g&&(d=Math.min(d,f/(f-g)));0>e?c=Math.max(c,e/(e-h)):0>h&&(d=Math.min(d,e/(e-h)));if(d<c)return!1;a.lerpSelf(b,c);b.lerpSelf(a,1-d);return!0}
-var f,g,e=[],h,i,j=[],k,q,m=[],o,p=[],n,r,s=[],t,w,u=[],v={objects:[],sprites:[],lights:[],elements:[]},A=new THREE.Vector3,F=new THREE.Vector4,B=new THREE.Matrix4,D=new THREE.Matrix4,H=new THREE.Frustum,I=new THREE.Vector4,Q=new THREE.Vector4;this.projectVector=function(a,b){b.matrixWorldInverse.getInverse(b.matrixWorld);B.multiply(b.projectionMatrix,b.matrixWorldInverse);B.multiplyVector3(a);return a};this.unprojectVector=function(a,b){b.projectionMatrixInverse.getInverse(b.projectionMatrix);B.multiply(b.matrixWorld,
-b.projectionMatrixInverse);B.multiplyVector3(a);return a};this.pickingRay=function(a,b){var c;a.z=-1;c=new THREE.Vector3(a.x,a.y,1);this.unprojectVector(a,b);this.unprojectVector(c,b);c.subSelf(a).normalize();return new THREE.Ray(a,c)};this.projectGraph=function(b,d){g=0;v.objects.length=0;v.sprites.length=0;v.lights.length=0;var e=function(b){if(!1!==b.visible){(b instanceof THREE.Mesh||b instanceof THREE.Line)&&(!1===b.frustumCulled||H.contains(b))?(B.multiplyVector3(A.copy(b.position)),f=a(),f.object=
-b,f.z=A.z,v.objects.push(f)):b instanceof THREE.Sprite||b instanceof THREE.Particle?(B.multiplyVector3(A.copy(b.position)),f=a(),f.object=b,f.z=A.z,v.sprites.push(f)):b instanceof THREE.Light&&v.lights.push(b);for(var c=0,d=b.children.length;c<d;c++)e(b.children[c])}};e(b);d&&v.objects.sort(c);return v};this.projectScene=function(a,f,g){var e=f.near,y=f.far,l=!1,A,C,E,S,R,ca,ka,ia,N,aa,U,ba,ea,Ta,Ja;w=r=o=q=0;v.elements.length=0;void 0===f.parent&&(console.warn("DEPRECATED: Camera hasn't been added to a Scene. Adding it..."),
-a.add(f));a.updateMatrixWorld();f.matrixWorldInverse.getInverse(f.matrixWorld);B.multiply(f.projectionMatrix,f.matrixWorldInverse);H.setFromMatrix(B);v=this.projectGraph(a,!1);for(a=0,A=v.objects.length;a<A;a++)if(N=v.objects[a].object,aa=N.matrixWorld,i=0,N instanceof THREE.Mesh){U=N.geometry;ba=N.geometry.materials;S=U.vertices;ea=U.faces;Ta=U.faceVertexUvs;U=N.matrixRotationWorld.extractRotation(aa);for(C=0,E=S.length;C<E;C++)h=b(),h.positionWorld.copy(S[C].position),aa.multiplyVector3(h.positionWorld),
-h.positionScreen.copy(h.positionWorld),B.multiplyVector4(h.positionScreen),h.positionScreen.x/=h.positionScreen.w,h.positionScreen.y/=h.positionScreen.w,h.visible=h.positionScreen.z>e&&h.positionScreen.z<y;for(S=0,C=ea.length;S<C;S++){E=ea[S];if(E instanceof THREE.Face3)if(R=j[E.a],ca=j[E.b],ka=j[E.c],R.visible&&ca.visible&&ka.visible)if(l=0>(ka.positionScreen.x-R.positionScreen.x)*(ca.positionScreen.y-R.positionScreen.y)-(ka.positionScreen.y-R.positionScreen.y)*(ca.positionScreen.x-R.positionScreen.x),
-N.doubleSided||l!=N.flipSided)ia=m[q]=m[q]||new THREE.RenderableFace3,q++,k=ia,k.v1.copy(R),k.v2.copy(ca),k.v3.copy(ka);else continue;else continue;else if(E instanceof THREE.Face4)if(R=j[E.a],ca=j[E.b],ka=j[E.c],ia=j[E.d],R.visible&&ca.visible&&ka.visible&&ia.visible)if(l=0>(ia.positionScreen.x-R.positionScreen.x)*(ca.positionScreen.y-R.positionScreen.y)-(ia.positionScreen.y-R.positionScreen.y)*(ca.positionScreen.x-R.positionScreen.x)||0>(ca.positionScreen.x-ka.positionScreen.x)*(ia.positionScreen.y-
-ka.positionScreen.y)-(ca.positionScreen.y-ka.positionScreen.y)*(ia.positionScreen.x-ka.positionScreen.x),N.doubleSided||l!=N.flipSided)Ja=p[o]=p[o]||new THREE.RenderableFace4,o++,k=Ja,k.v1.copy(R),k.v2.copy(ca),k.v3.copy(ka),k.v4.copy(ia);else continue;else continue;k.normalWorld.copy(E.normal);!l&&(N.flipSided||N.doubleSided)&&k.normalWorld.negate();U.multiplyVector3(k.normalWorld);k.centroidWorld.copy(E.centroid);aa.multiplyVector3(k.centroidWorld);k.centroidScreen.copy(k.centroidWorld);B.multiplyVector3(k.centroidScreen);
-ka=E.vertexNormals;for(R=0,ca=ka.length;R<ca;R++)ia=k.vertexNormalsWorld[R],ia.copy(ka[R]),!l&&(N.flipSided||N.doubleSided)&&ia.negate(),U.multiplyVector3(ia);for(R=0,ca=Ta.length;R<ca;R++)if(Ja=Ta[R][S])for(ka=0,ia=Ja.length;ka<ia;ka++)k.uvs[R][ka]=Ja[ka];k.material=N.material;k.faceMaterial=null!==E.materialIndex?ba[E.materialIndex]:null;k.z=k.centroidScreen.z;v.elements.push(k)}}else if(N instanceof THREE.Line){D.multiply(B,aa);S=N.geometry.vertices;R=b();R.positionScreen.copy(S[0].position);D.multiplyVector4(R.positionScreen);
-for(C=1,E=S.length;C<E;C++)if(R=b(),R.positionScreen.copy(S[C].position),D.multiplyVector4(R.positionScreen),ca=j[i-2],I.copy(R.positionScreen),Q.copy(ca.positionScreen),d(I,Q))I.multiplyScalar(1/I.w),Q.multiplyScalar(1/Q.w),aa=s[r]=s[r]||new THREE.RenderableLine,r++,n=aa,n.v1.positionScreen.copy(I),n.v2.positionScreen.copy(Q),n.z=Math.max(I.z,Q.z),n.material=N.material,v.elements.push(n)}for(a=0,A=v.sprites.length;a<A;a++)if(N=v.sprites[a].object,aa=N.matrixWorld,N instanceof THREE.Particle&&(F.set(aa.n14,
-aa.n24,aa.n34,1),B.multiplyVector4(F),F.z/=F.w,0<F.z&&1>F.z))e=u[w]=u[w]||new THREE.RenderableParticle,w++,t=e,t.x=F.x/F.w,t.y=F.y/F.w,t.z=F.z,t.rotation=N.rotation.z,t.scale.x=N.scale.x*Math.abs(t.x-(F.x+f.projectionMatrix.n11)/(F.w+f.projectionMatrix.n14)),t.scale.y=N.scale.y*Math.abs(t.y-(F.y+f.projectionMatrix.n22)/(F.w+f.projectionMatrix.n24)),t.material=N.material,v.elements.push(t);g&&v.elements.sort(c);return v}};
-THREE.Quaternion=function(a,b,c,d){this.x=a||0;this.y=b||0;this.z=c||0;this.w=void 0!==d?d:1};
-THREE.Quaternion.prototype={constructor:THREE.Quaternion,set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;this.w=d;return this},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=a.w;return this},clone:function(){return new THREE.Quaternion(this.x,this.y,this.z,this.w)},setFromEuler:function(a){var b=Math.PI/360,c=a.x*b,d=a.y*b,f=a.z*b,a=Math.cos(d),d=Math.sin(d),b=Math.cos(-f),f=Math.sin(-f),g=Math.cos(c),c=Math.sin(c),e=a*b,h=d*f;this.w=e*g-h*c;this.x=e*c+h*g;this.y=d*b*g+a*f*c;this.z=a*f*
-g-d*b*c;return this},setFromAxisAngle:function(a,b){var c=b/2,d=Math.sin(c);this.x=a.x*d;this.y=a.y*d;this.z=a.z*d;this.w=Math.cos(c);return this},setFromRotationMatrix:function(a){var b=Math.pow(a.determinant(),1/3);this.w=Math.sqrt(Math.max(0,b+a.n11+a.n22+a.n33))/2;this.x=Math.sqrt(Math.max(0,b+a.n11-a.n22-a.n33))/2;this.y=Math.sqrt(Math.max(0,b-a.n11+a.n22-a.n33))/2;this.z=Math.sqrt(Math.max(0,b-a.n11-a.n22+a.n33))/2;this.x=0>a.n32-a.n23?-Math.abs(this.x):Math.abs(this.x);this.y=0>a.n13-a.n31?
--Math.abs(this.y):Math.abs(this.y);this.z=0>a.n21-a.n12?-Math.abs(this.z):Math.abs(this.z);this.normalize();return this},calculateW:function(){this.w=-Math.sqrt(Math.abs(1-this.x*this.x-this.y*this.y-this.z*this.z));return this},inverse:function(){this.x*=-1;this.y*=-1;this.z*=-1;return this},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},normalize:function(){var a=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);0===a?this.w=this.z=
-this.y=this.x=0:(a=1/a,this.x*=a,this.y*=a,this.z*=a,this.w*=a);return this},multiplySelf:function(a){var b=this.x,c=this.y,d=this.z,f=this.w,g=a.x,e=a.y,h=a.z,a=a.w;this.x=b*a+f*g+c*h-d*e;this.y=c*a+f*e+d*g-b*h;this.z=d*a+f*h+b*e-c*g;this.w=f*a-b*g-c*e-d*h;return this},multiply:function(a,b){this.x=a.x*b.w+a.y*b.z-a.z*b.y+a.w*b.x;this.y=-a.x*b.z+a.y*b.w+a.z*b.x+a.w*b.y;this.z=a.x*b.y-a.y*b.x+a.z*b.w+a.w*b.z;this.w=-a.x*b.x-a.y*b.y-a.z*b.z+a.w*b.w;return this},multiplyVector3:function(a,b){b||(b=
-a);var c=a.x,d=a.y,f=a.z,g=this.x,e=this.y,h=this.z,i=this.w,j=i*c+e*f-h*d,k=i*d+h*c-g*f,q=i*f+g*d-e*c,c=-g*c-e*d-h*f;b.x=j*i+c*-g+k*-h-q*-e;b.y=k*i+c*-e+q*-g-j*-h;b.z=q*i+c*-h+j*-e-k*-g;return b}};
-THREE.Quaternion.slerp=function(a,b,c,d){var f=a.w*b.w+a.x*b.x+a.y*b.y+a.z*b.z;0>f?(c.w=-b.w,c.x=-b.x,c.y=-b.y,c.z=-b.z,f=-f):c.copy(b);if(1<=Math.abs(f))return c.w=a.w,c.x=a.x,c.y=a.y,c.z=a.z,c;var g=Math.acos(f),f=Math.sqrt(1-f*f);if(0.001>Math.abs(f))return c.w=0.5*(a.w+b.w),c.x=0.5*(a.x+b.x),c.y=0.5*(a.y+b.y),c.z=0.5*(a.z+b.z),c;b=Math.sin((1-d)*g)/f;d=Math.sin(d*g)/f;c.w=a.w*b+c.w*d;c.x=a.x*b+c.x*d;c.y=a.y*b+c.y*d;c.z=a.z*b+c.z*d;return c};THREE.Vertex=function(a){this.position=a||new THREE.Vector3};
-THREE.Vertex.prototype={constructor:THREE.Vertex,clone:function(){return new THREE.Vertex(this.position.clone())}};THREE.Face3=function(a,b,c,d,f,g){this.a=a;this.b=b;this.c=c;this.normal=d instanceof THREE.Vector3?d:new THREE.Vector3;this.vertexNormals=d instanceof Array?d:[];this.color=f instanceof THREE.Color?f:new THREE.Color;this.vertexColors=f instanceof Array?f:[];this.vertexTangents=[];this.materialIndex=g;this.centroid=new THREE.Vector3};
-THREE.Face3.prototype={constructor:THREE.Face3,clone:function(){var a=new THREE.Face3(this.a,this.b,this.c);a.normal.copy(this.normal);a.color.copy(this.color);a.centroid.copy(this.centroid);a.materialIndex=this.materialIndex;var b,c;for(b=0,c=this.vertexNormals.length;b<c;b++)a.vertexNormals[b]=this.vertexNormals[b].clone();for(b=0,c=this.vertexColors.length;b<c;b++)a.vertexColors[b]=this.vertexColors[b].clone();for(b=0,c=this.vertexTangents.length;b<c;b++)a.vertexTangents[b]=this.vertexTangents[b].clone();
-return a}};THREE.Face4=function(a,b,c,d,f,g,e){this.a=a;this.b=b;this.c=c;this.d=d;this.normal=f instanceof THREE.Vector3?f:new THREE.Vector3;this.vertexNormals=f instanceof Array?f:[];this.color=g instanceof THREE.Color?g:new THREE.Color;this.vertexColors=g instanceof Array?g:[];this.vertexTangents=[];this.materialIndex=e;this.centroid=new THREE.Vector3};
-THREE.Face4.prototype={constructor:THREE.Face4,clone:function(){var a=new THREE.Face4(this.a,this.b,this.c,this.d);a.normal.copy(this.normal);a.color.copy(this.color);a.centroid.copy(this.centroid);a.materialIndex=this.materialIndex;var b,c;for(b=0,c=this.vertexNormals.length;b<c;b++)a.vertexNormals[b]=this.vertexNormals[b].clone();for(b=0,c=this.vertexColors.length;b<c;b++)a.vertexColors[b]=this.vertexColors[b].clone();for(b=0,c=this.vertexTangents.length;b<c;b++)a.vertexTangents[b]=this.vertexTangents[b].clone();
-return a}};THREE.UV=function(a,b){this.u=a||0;this.v=b||0};THREE.UV.prototype={constructor:THREE.UV,set:function(a,b){this.u=a;this.v=b;return this},copy:function(a){this.u=a.u;this.v=a.v;return this},lerpSelf:function(a,b){this.u+=(a.u-this.u)*b;this.v+=(a.v-this.v)*b;return this},clone:function(){return new THREE.UV(this.u,this.v)}};
-THREE.Geometry=function(){this.id=THREE.GeometryCount++;this.vertices=[];this.colors=[];this.materials=[];this.faces=[];this.faceUvs=[[]];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphColors=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.boundingSphere=this.boundingBox=null;this.dynamic=this.hasTangents=!1};
-THREE.Geometry.prototype={constructor:THREE.Geometry,applyMatrix:function(a){var b=new THREE.Matrix4;b.extractRotation(a);for(var c=0,d=this.vertices.length;c<d;c++)a.multiplyVector3(this.vertices[c].position);c=0;for(d=this.faces.length;c<d;c++){var f=this.faces[c];b.multiplyVector3(f.normal);for(var g=0,e=f.vertexNormals.length;g<e;g++)b.multiplyVector3(f.vertexNormals[g]);a.multiplyVector3(f.centroid)}},computeCentroids:function(){var a,b,c;for(a=0,b=this.faces.length;a<b;a++)c=this.faces[a],c.centroid.set(0,
-0,0),c instanceof THREE.Face3?(c.centroid.addSelf(this.vertices[c.a].position),c.centroid.addSelf(this.vertices[c.b].position),c.centroid.addSelf(this.vertices[c.c].position),c.centroid.divideScalar(3)):c instanceof THREE.Face4&&(c.centroid.addSelf(this.vertices[c.a].position),c.centroid.addSelf(this.vertices[c.b].position),c.centroid.addSelf(this.vertices[c.c].position),c.centroid.addSelf(this.vertices[c.d].position),c.centroid.divideScalar(4))},computeFaceNormals:function(){var a,b,c,d,f,g,e=new THREE.Vector3,
-h=new THREE.Vector3;for(a=0,b=this.faces.length;a<b;a++)c=this.faces[a],d=this.vertices[c.a],f=this.vertices[c.b],g=this.vertices[c.c],e.sub(g.position,f.position),h.sub(d.position,f.position),e.crossSelf(h),e.isZero()||e.normalize(),c.normal.copy(e)},computeVertexNormals:function(){var a,b,c,d;if(void 0===this.__tmpVertices){d=this.__tmpVertices=Array(this.vertices.length);for(a=0,b=this.vertices.length;a<b;a++)d[a]=new THREE.Vector3;for(a=0,b=this.faces.length;a<b;a++)if(c=this.faces[a],c instanceof
-THREE.Face3)c.vertexNormals=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];else if(c instanceof THREE.Face4)c.vertexNormals=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3]}else{d=this.__tmpVertices;for(a=0,b=this.vertices.length;a<b;a++)d[a].set(0,0,0)}for(a=0,b=this.faces.length;a<b;a++)c=this.faces[a],c instanceof THREE.Face3?(d[c.a].addSelf(c.normal),d[c.b].addSelf(c.normal),d[c.c].addSelf(c.normal)):c instanceof THREE.Face4&&(d[c.a].addSelf(c.normal),d[c.b].addSelf(c.normal),
-d[c.c].addSelf(c.normal),d[c.d].addSelf(c.normal));for(a=0,b=this.vertices.length;a<b;a++)d[a].normalize();for(a=0,b=this.faces.length;a<b;a++)c=this.faces[a],c instanceof THREE.Face3?(c.vertexNormals[0].copy(d[c.a]),c.vertexNormals[1].copy(d[c.b]),c.vertexNormals[2].copy(d[c.c])):c instanceof THREE.Face4&&(c.vertexNormals[0].copy(d[c.a]),c.vertexNormals[1].copy(d[c.b]),c.vertexNormals[2].copy(d[c.c]),c.vertexNormals[3].copy(d[c.d]))},computeMorphNormals:function(){var a,b,c,d,f;for(c=0,d=this.faces.length;c<
-d;c++){f=this.faces[c];f.__originalFaceNormal?f.__originalFaceNormal.copy(f.normal):f.__originalFaceNormal=f.normal.clone();if(!f.__originalVertexNormals)f.__originalVertexNormals=[];for(a=0,b=f.vertexNormals.length;a<b;a++)f.__originalVertexNormals[a]?f.__originalVertexNormals[a].copy(f.vertexNormals[a]):f.__originalVertexNormals[a]=f.vertexNormals[a].clone()}var g=new THREE.Geometry;g.faces=this.faces;for(a=0,b=this.morphTargets.length;a<b;a++){if(!this.morphNormals[a]){this.morphNormals[a]={};
-this.morphNormals[a].faceNormals=[];this.morphNormals[a].vertexNormals=[];var e=this.morphNormals[a].faceNormals,h=this.morphNormals[a].vertexNormals,i,j;for(c=0,d=this.faces.length;c<d;c++)f=this.faces[c],i=new THREE.Vector3,j=f instanceof THREE.Face3?{a:new THREE.Vector3,b:new THREE.Vector3,c:new THREE.Vector3}:{a:new THREE.Vector3,b:new THREE.Vector3,c:new THREE.Vector3,d:new THREE.Vector3},e.push(i),h.push(j)}e=this.morphNormals[a];g.vertices=this.morphTargets[a].vertices;g.computeFaceNormals();
-g.computeVertexNormals();for(c=0,d=this.faces.length;c<d;c++)f=this.faces[c],i=e.faceNormals[c],j=e.vertexNormals[c],i.copy(f.normal),f instanceof THREE.Face3?(j.a.copy(f.vertexNormals[0]),j.b.copy(f.vertexNormals[1]),j.c.copy(f.vertexNormals[2])):(j.a.copy(f.vertexNormals[0]),j.b.copy(f.vertexNormals[1]),j.c.copy(f.vertexNormals[2]),j.d.copy(f.vertexNormals[3]))}for(c=0,d=this.faces.length;c<d;c++)f=this.faces[c],f.normal=f.__originalFaceNormal,f.vertexNormals=f.__originalVertexNormals},computeTangents:function(){function a(a,
-b,c,d,f,g,R){h=a.vertices[b].position;i=a.vertices[c].position;j=a.vertices[d].position;k=e[f];q=e[g];m=e[R];o=i.x-h.x;p=j.x-h.x;n=i.y-h.y;r=j.y-h.y;s=i.z-h.z;t=j.z-h.z;w=q.u-k.u;u=m.u-k.u;v=q.v-k.v;A=m.v-k.v;F=1/(w*A-u*v);I.set((A*o-v*p)*F,(A*n-v*r)*F,(A*s-v*t)*F);Q.set((w*p-u*o)*F,(w*r-u*n)*F,(w*t-u*s)*F);D[b].addSelf(I);D[c].addSelf(I);D[d].addSelf(I);H[b].addSelf(Q);H[c].addSelf(Q);H[d].addSelf(Q)}var b,c,d,f,g,e,h,i,j,k,q,m,o,p,n,r,s,t,w,u,v,A,F,B,D=[],H=[],I=new THREE.Vector3,Q=new THREE.Vector3,
-P=new THREE.Vector3,L=new THREE.Vector3,K=new THREE.Vector3;for(b=0,c=this.vertices.length;b<c;b++)D[b]=new THREE.Vector3,H[b]=new THREE.Vector3;for(b=0,c=this.faces.length;b<c;b++)g=this.faces[b],e=this.faceVertexUvs[0][b],g instanceof THREE.Face3?a(this,g.a,g.b,g.c,0,1,2):g instanceof THREE.Face4&&(a(this,g.a,g.b,g.c,0,1,2),a(this,g.a,g.b,g.d,0,1,3));var O=["a","b","c","d"];for(b=0,c=this.faces.length;b<c;b++){g=this.faces[b];for(d=0;d<g.vertexNormals.length;d++)K.copy(g.vertexNormals[d]),f=g[O[d]],
-B=D[f],P.copy(B),P.subSelf(K.multiplyScalar(K.dot(B))).normalize(),L.cross(g.vertexNormals[d],B),f=L.dot(H[f]),f=0>f?-1:1,g.vertexTangents[d]=new THREE.Vector4(P.x,P.y,P.z,f)}this.hasTangents=!0},computeBoundingBox:function(){if(!this.boundingBox)this.boundingBox={min:new THREE.Vector3,max:new THREE.Vector3};if(0<this.vertices.length){var a;a=this.vertices[0].position;this.boundingBox.min.copy(a);this.boundingBox.max.copy(a);for(var b=this.boundingBox.min,c=this.boundingBox.max,d=1,f=this.vertices.length;d<
-f;d++){a=this.vertices[d].position;if(a.x<b.x)b.x=a.x;else if(a.x>c.x)c.x=a.x;if(a.y<b.y)b.y=a.y;else if(a.y>c.y)c.y=a.y;if(a.z<b.z)b.z=a.z;else if(a.z>c.z)c.z=a.z}}else this.boundingBox.min.set(0,0,0),this.boundingBox.max.set(0,0,0)},computeBoundingSphere:function(){if(!this.boundingSphere)this.boundingSphere={radius:0};for(var a,b=0,c=0,d=this.vertices.length;c<d;c++)a=this.vertices[c].position.length(),a>b&&(b=a);this.boundingSphere.radius=b},mergeVertices:function(){var a={},b=[],c=[],d,f=Math.pow(10,
-4),g,e;for(g=0,e=this.vertices.length;g<e;g++)d=this.vertices[g].position,d=[Math.round(d.x*f),Math.round(d.y*f),Math.round(d.z*f)].join("_"),void 0===a[d]?(a[d]=g,b.push(this.vertices[g]),c[g]=b.length-1):c[g]=c[a[d]];for(g=0,e=this.faces.length;g<e;g++)if(a=this.faces[g],a instanceof THREE.Face3)a.a=c[a.a],a.b=c[a.b],a.c=c[a.c];else if(a instanceof THREE.Face4)a.a=c[a.a],a.b=c[a.b],a.c=c[a.c],a.d=c[a.d];this.vertices=b}};THREE.GeometryCount=0;
-THREE.Spline=function(a){function b(a,b,c,d,f,g,e){a=0.5*(c-a);d=0.5*(d-b);return(2*(b-c)+a+d)*e+(-3*(b-c)-2*a-d)*g+a*f+b}this.points=a;var c=[],d={x:0,y:0,z:0},f,g,e,h,i,j,k,q,m;this.initFromArray=function(a){this.points=[];for(var b=0;b<a.length;b++)this.points[b]={x:a[b][0],y:a[b][1],z:a[b][2]}};this.getPoint=function(a){f=(this.points.length-1)*a;g=Math.floor(f);e=f-g;c[0]=0===g?g:g-1;c[1]=g;c[2]=g>this.points.length-2?g:g+1;c[3]=g>this.points.length-3?g:g+2;j=this.points[c[0]];k=this.points[c[1]];
-q=this.points[c[2]];m=this.points[c[3]];h=e*e;i=e*h;d.x=b(j.x,k.x,q.x,m.x,e,h,i);d.y=b(j.y,k.y,q.y,m.y,e,h,i);d.z=b(j.z,k.z,q.z,m.z,e,h,i);return d};this.getControlPointsArray=function(){var a,b,c=this.points.length,d=[];for(a=0;a<c;a++)b=this.points[a],d[a]=[b.x,b.y,b.z];return d};this.getLength=function(a){var b,c,d,f=b=b=0,g=new THREE.Vector3,e=new THREE.Vector3,h=[],i=0;h[0]=0;a||(a=100);c=this.points.length*a;g.copy(this.points[0]);for(a=1;a<c;a++)b=a/c,d=this.getPoint(b),e.copy(d),i+=e.distanceTo(g),
-g.copy(d),b*=this.points.length-1,b=Math.floor(b),b!=f&&(h[b]=i,f=b);h[h.length]=i;return{chunks:h,total:i}};this.reparametrizeByArcLength=function(a){var b,c,d,f,g,e,h=[],i=new THREE.Vector3,j=this.getLength();h.push(i.copy(this.points[0]).clone());for(b=1;b<this.points.length;b++){c=j.chunks[b]-j.chunks[b-1];e=Math.ceil(a*c/j.total);f=(b-1)/(this.points.length-1);g=b/(this.points.length-1);for(c=1;c<e-1;c++)d=f+c*(1/e)*(g-f),d=this.getPoint(d),h.push(i.copy(d).clone());h.push(i.copy(this.points[b]).clone())}this.points=
-h}};THREE.Camera=function(){THREE.Object3D.call(this);this.matrixWorldInverse=new THREE.Matrix4;this.projectionMatrix=new THREE.Matrix4;this.projectionMatrixInverse=new THREE.Matrix4};THREE.Camera.prototype=new THREE.Object3D;THREE.Camera.prototype.constructor=THREE.Camera;THREE.Camera.prototype.lookAt=function(a){this.matrix.lookAt(this.position,a,this.up);this.rotationAutoUpdate&&this.rotation.getRotationFromMatrix(this.matrix)};
-THREE.OrthographicCamera=function(a,b,c,d,f,g){THREE.Camera.call(this);this.left=a;this.right=b;this.top=c;this.bottom=d;this.near=void 0!==f?f:0.1;this.far=void 0!==g?g:2E3;this.updateProjectionMatrix()};THREE.OrthographicCamera.prototype=new THREE.Camera;THREE.OrthographicCamera.prototype.constructor=THREE.OrthographicCamera;THREE.OrthographicCamera.prototype.updateProjectionMatrix=function(){this.projectionMatrix=THREE.Matrix4.makeOrtho(this.left,this.right,this.top,this.bottom,this.near,this.far)};
-THREE.PerspectiveCamera=function(a,b,c,d){THREE.Camera.call(this);this.fov=void 0!==a?a:50;this.aspect=void 0!==b?b:1;this.near=void 0!==c?c:0.1;this.far=void 0!==d?d:2E3;this.updateProjectionMatrix()};THREE.PerspectiveCamera.prototype=new THREE.Camera;THREE.PerspectiveCamera.prototype.constructor=THREE.PerspectiveCamera;THREE.PerspectiveCamera.prototype.setLens=function(a,b){this.fov=2*Math.atan((void 0!==b?b:24)/(2*a))*(180/Math.PI);this.updateProjectionMatrix()};
-THREE.PerspectiveCamera.prototype.setViewOffset=function(a,b,c,d,f,g){this.fullWidth=a;this.fullHeight=b;this.x=c;this.y=d;this.width=f;this.height=g;this.updateProjectionMatrix()};
-THREE.PerspectiveCamera.prototype.updateProjectionMatrix=function(){if(this.fullWidth){var a=this.fullWidth/this.fullHeight,b=Math.tan(this.fov*Math.PI/360)*this.near,c=-b,d=a*c,a=Math.abs(a*b-d),c=Math.abs(b-c);this.projectionMatrix=THREE.Matrix4.makeFrustum(d+this.x*a/this.fullWidth,d+(this.x+this.width)*a/this.fullWidth,b-(this.y+this.height)*c/this.fullHeight,b-this.y*c/this.fullHeight,this.near,this.far)}else this.projectionMatrix=THREE.Matrix4.makePerspective(this.fov,this.aspect,this.near,
-this.far)};THREE.Light=function(a){THREE.Object3D.call(this);this.color=new THREE.Color(a)};THREE.Light.prototype=new THREE.Object3D;THREE.Light.prototype.constructor=THREE.Light;THREE.Light.prototype.supr=THREE.Object3D.prototype;THREE.AmbientLight=function(a){THREE.Light.call(this,a)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight;
-THREE.DirectionalLight=function(a,b,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.target=new THREE.Object3D;this.intensity=void 0!==b?b:1;this.distance=void 0!==c?c:0;this.onlyShadow=this.castShadow=!1;this.shadowCameraNear=50;this.shadowCameraFar=5E3;this.shadowCameraLeft=-500;this.shadowCameraTop=this.shadowCameraRight=500;this.shadowCameraBottom=-500;this.shadowCameraVisible=!1;this.shadowBias=0;this.shadowDarkness=0.5;this.shadowMapHeight=this.shadowMapWidth=512;this.shadowCascade=
-!1;this.shadowCascadeOffset=new THREE.Vector3(0,0,-1E3);this.shadowCascadeCount=2;this.shadowCascadeBias=[0,0,0];this.shadowCascadeWidth=[512,512,512];this.shadowCascadeHeight=[512,512,512];this.shadowCascadeNearZ=[-1,0.99,0.998];this.shadowCascadeFarZ=[0.99,0.998,1];this.shadowCascadeArray=[];this.shadowMatrix=this.shadowCamera=this.shadowMapSize=this.shadowMap=null};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight;
-THREE.PointLight=function(a,b,c){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,0,0);this.intensity=void 0!==b?b:1;this.distance=void 0!==c?c:0};THREE.PointLight.prototype=new THREE.Light;THREE.PointLight.prototype.constructor=THREE.PointLight;
-THREE.SpotLight=function(a,b,c,d){THREE.Light.call(this,a);this.position=new THREE.Vector3(0,1,0);this.target=new THREE.Object3D;this.intensity=void 0!==b?b:1;this.distance=void 0!==c?c:0;this.castShadow=void 0!==d?d:!1;this.onlyShadow=!1;this.shadowCameraNear=50;this.shadowCameraFar=5E3;this.shadowCameraFov=50;this.shadowCameraVisible=!1;this.shadowBias=0;this.shadowDarkness=0.5;this.shadowMapHeight=this.shadowMapWidth=512;this.shadowMatrix=this.shadowCamera=this.shadowMapSize=this.shadowMap=null};
-THREE.SpotLight.prototype=new THREE.Light;THREE.SpotLight.prototype.constructor=THREE.SpotLight;
-THREE.Material=function(a){a=a||{};this.id=THREE.MaterialCount++;this.name="";this.opacity=void 0!==a.opacity?a.opacity:1;this.transparent=void 0!==a.transparent?a.transparent:!1;this.blending=void 0!==a.blending?a.blending:THREE.NormalBlending;this.depthTest=void 0!==a.depthTest?a.depthTest:!0;this.depthWrite=void 0!==a.depthWrite?a.depthWrite:!0;this.polygonOffset=void 0!==a.polygonOffset?a.polygonOffset:!1;this.polygonOffsetFactor=void 0!==a.polygonOffsetFactor?a.polygonOffsetFactor:0;this.polygonOffsetUnits=
-void 0!==a.polygonOffsetUnits?a.polygonOffsetUnits:0;this.alphaTest=void 0!==a.alphaTest?a.alphaTest:0;this.overdraw=void 0!==a.overdraw?a.overdraw:!1};THREE.MaterialCount=0;THREE.NoShading=0;THREE.FlatShading=1;THREE.SmoothShading=2;THREE.NoColors=0;THREE.FaceColors=1;THREE.VertexColors=2;THREE.NoBlending=0;THREE.NormalBlending=1;THREE.AdditiveBlending=2;THREE.SubtractiveBlending=3;THREE.MultiplyBlending=4;THREE.AdditiveAlphaBlending=5;
-THREE.LineBasicMaterial=function(a){THREE.Material.call(this,a);a=a||{};this.color=void 0!==a.color?new THREE.Color(a.color):new THREE.Color(16777215);this.linewidth=void 0!==a.linewidth?a.linewidth:1;this.linecap=void 0!==a.linecap?a.linecap:"round";this.linejoin=void 0!==a.linejoin?a.linejoin:"round";this.vertexColors=a.vertexColors?a.vertexColors:!1;this.fog=void 0!==a.fog?a.fog:!0};THREE.LineBasicMaterial.prototype=new THREE.Material;THREE.LineBasicMaterial.prototype.constructor=THREE.LineBasicMaterial;
-THREE.MeshBasicMaterial=function(a){THREE.Material.call(this,a);a=a||{};this.color=void 0!==a.color?new THREE.Color(a.color):new THREE.Color(16777215);this.map=void 0!==a.map?a.map:null;this.lightMap=void 0!==a.lightMap?a.lightMap:null;this.envMap=void 0!==a.envMap?a.envMap:null;this.combine=void 0!==a.combine?a.combine:THREE.MultiplyOperation;this.reflectivity=void 0!==a.reflectivity?a.reflectivity:1;this.refractionRatio=void 0!==a.refractionRatio?a.refractionRatio:0.98;this.fog=void 0!==a.fog?a.fog:
-!0;this.shading=void 0!==a.shading?a.shading:THREE.SmoothShading;this.wireframe=void 0!==a.wireframe?a.wireframe:!1;this.wireframeLinewidth=void 0!==a.wireframeLinewidth?a.wireframeLinewidth:1;this.wireframeLinecap=void 0!==a.wireframeLinecap?a.wireframeLinecap:"round";this.wireframeLinejoin=void 0!==a.wireframeLinejoin?a.wireframeLinejoin:"round";this.vertexColors=void 0!==a.vertexColors?a.vertexColors:!1;this.skinning=void 0!==a.skinning?a.skinning:!1;this.morphTargets=void 0!==a.morphTargets?a.morphTargets:
-!1};THREE.MeshBasicMaterial.prototype=new THREE.Material;THREE.MeshBasicMaterial.prototype.constructor=THREE.MeshBasicMaterial;
-THREE.MeshLambertMaterial=function(a){THREE.Material.call(this,a);a=a||{};this.color=void 0!==a.color?new THREE.Color(a.color):new THREE.Color(16777215);this.ambient=void 0!==a.ambient?new THREE.Color(a.ambient):new THREE.Color(16777215);this.wrapAround=void 0!==a.wrapAround?a.wrapAround:!1;this.wrapRGB=new THREE.Vector3(1,1,1);this.map=void 0!==a.map?a.map:null;this.lightMap=void 0!==a.lightMap?a.lightMap:null;this.envMap=void 0!==a.envMap?a.envMap:null;this.combine=void 0!==a.combine?a.combine:
-THREE.MultiplyOperation;this.reflectivity=void 0!==a.reflectivity?a.reflectivity:1;this.refractionRatio=void 0!==a.refractionRatio?a.refractionRatio:0.98;this.fog=void 0!==a.fog?a.fog:!0;this.shading=void 0!==a.shading?a.shading:THREE.SmoothShading;this.wireframe=void 0!==a.wireframe?a.wireframe:!1;this.wireframeLinewidth=void 0!==a.wireframeLinewidth?a.wireframeLinewidth:1;this.wireframeLinecap=void 0!==a.wireframeLinecap?a.wireframeLinecap:"round";this.wireframeLinejoin=void 0!==a.wireframeLinejoin?
-a.wireframeLinejoin:"round";this.vertexColors=void 0!==a.vertexColors?a.vertexColors:!1;this.skinning=void 0!==a.skinning?a.skinning:!1;this.morphTargets=void 0!==a.morphTargets?a.morphTargets:!1;this.morphNormals=void 0!==a.morphNormals?a.morphNormals:!1};THREE.MeshLambertMaterial.prototype=new THREE.Material;THREE.MeshLambertMaterial.prototype.constructor=THREE.MeshLambertMaterial;
-THREE.MeshPhongMaterial=function(a){THREE.Material.call(this,a);a=a||{};this.color=void 0!==a.color?new THREE.Color(a.color):new THREE.Color(16777215);this.ambient=void 0!==a.ambient?new THREE.Color(a.ambient):new THREE.Color(16777215);this.specular=void 0!==a.specular?new THREE.Color(a.specular):new THREE.Color(1118481);this.shininess=void 0!==a.shininess?a.shininess:30;this.metal=void 0!==a.metal?a.metal:!1;this.perPixel=void 0!==a.perPixel?a.perPixel:!1;this.wrapAround=void 0!==a.wrapAround?a.wrapAround:
-!1;this.wrapRGB=new THREE.Vector3(1,1,1);this.map=void 0!==a.map?a.map:null;this.lightMap=void 0!==a.lightMap?a.lightMap:null;this.envMap=void 0!==a.envMap?a.envMap:null;this.combine=void 0!==a.combine?a.combine:THREE.MultiplyOperation;this.reflectivity=void 0!==a.reflectivity?a.reflectivity:1;this.refractionRatio=void 0!==a.refractionRatio?a.refractionRatio:0.98;this.fog=void 0!==a.fog?a.fog:!0;this.shading=void 0!==a.shading?a.shading:THREE.SmoothShading;this.wireframe=void 0!==a.wireframe?a.wireframe:
-!1;this.wireframeLinewidth=void 0!==a.wireframeLinewidth?a.wireframeLinewidth:1;this.wireframeLinecap=void 0!==a.wireframeLinecap?a.wireframeLinecap:"round";this.wireframeLinejoin=void 0!==a.wireframeLinejoin?a.wireframeLinejoin:"round";this.vertexColors=void 0!==a.vertexColors?a.vertexColors:!1;this.skinning=void 0!==a.skinning?a.skinning:!1;this.morphTargets=void 0!==a.morphTargets?a.morphTargets:!1;this.morphNormals=void 0!==a.morphNormals?a.morphNormals:!1};THREE.MeshPhongMaterial.prototype=new THREE.Material;
-THREE.MeshPhongMaterial.prototype.constructor=THREE.MeshPhongMaterial;THREE.MeshDepthMaterial=function(a){THREE.Material.call(this,a);a=a||{};this.shading=void 0!==a.shading?a.shading:THREE.SmoothShading;this.wireframe=void 0!==a.wireframe?a.wireframe:!1;this.wireframeLinewidth=void 0!==a.wireframeLinewidth?a.wireframeLinewidth:1};THREE.MeshDepthMaterial.prototype=new THREE.Material;THREE.MeshDepthMaterial.prototype.constructor=THREE.MeshDepthMaterial;
-THREE.MeshNormalMaterial=function(a){THREE.Material.call(this,a);a=a||{};this.shading=a.shading?a.shading:THREE.FlatShading;this.wireframe=a.wireframe?a.wireframe:!1;this.wireframeLinewidth=a.wireframeLinewidth?a.wireframeLinewidth:1};THREE.MeshNormalMaterial.prototype=new THREE.Material;THREE.MeshNormalMaterial.prototype.constructor=THREE.MeshNormalMaterial;THREE.MeshFaceMaterial=function(){};
-THREE.ParticleBasicMaterial=function(a){THREE.Material.call(this,a);a=a||{};this.color=void 0!==a.color?new THREE.Color(a.color):new THREE.Color(16777215);this.map=void 0!==a.map?a.map:null;this.size=void 0!==a.size?a.size:1;this.sizeAttenuation=void 0!==a.sizeAttenuation?a.sizeAttenuation:!0;this.vertexColors=void 0!==a.vertexColors?a.vertexColors:!1;this.fog=void 0!==a.fog?a.fog:!0};THREE.ParticleBasicMaterial.prototype=new THREE.Material;THREE.ParticleBasicMaterial.prototype.constructor=THREE.ParticleBasicMaterial;
-THREE.ParticleCanvasMaterial=function(a){THREE.Material.call(this,a);a=a||{};this.color=void 0!==a.color?new THREE.Color(a.color):new THREE.Color(16777215);this.program=void 0!==a.program?a.program:function(){}};THREE.ParticleCanvasMaterial.prototype=new THREE.Material;THREE.ParticleCanvasMaterial.prototype.constructor=THREE.ParticleCanvasMaterial;THREE.ParticleDOMMaterial=function(a){THREE.Material.call(this);this.domElement=a};
-THREE.ShaderMaterial=function(a){THREE.Material.call(this,a);a=a||{};this.fragmentShader=void 0!==a.fragmentShader?a.fragmentShader:"void main() {}";this.vertexShader=void 0!==a.vertexShader?a.vertexShader:"void main() {}";this.uniforms=void 0!==a.uniforms?a.uniforms:{};this.attributes=a.attributes;this.shading=void 0!==a.shading?a.shading:THREE.SmoothShading;this.wireframe=void 0!==a.wireframe?a.wireframe:!1;this.wireframeLinewidth=void 0!==a.wireframeLinewidth?a.wireframeLinewidth:1;this.fog=void 0!==
-a.fog?a.fog:!1;this.lights=void 0!==a.lights?a.lights:!1;this.vertexColors=void 0!==a.vertexColors?a.vertexColors:!1;this.skinning=void 0!==a.skinning?a.skinning:!1;this.morphTargets=void 0!==a.morphTargets?a.morphTargets:!1};THREE.ShaderMaterial.prototype=new THREE.Material;THREE.ShaderMaterial.prototype.constructor=THREE.ShaderMaterial;
-THREE.Texture=function(a,b,c,d,f,g,e,h){this.id=THREE.TextureCount++;this.image=a;this.mapping=void 0!==b?b:new THREE.UVMapping;this.wrapS=void 0!==c?c:THREE.ClampToEdgeWrapping;this.wrapT=void 0!==d?d:THREE.ClampToEdgeWrapping;this.magFilter=void 0!==f?f:THREE.LinearFilter;this.minFilter=void 0!==g?g:THREE.LinearMipMapLinearFilter;this.format=void 0!==e?e:THREE.RGBAFormat;this.type=void 0!==h?h:THREE.UnsignedByteType;this.offset=new THREE.Vector2(0,0);this.repeat=new THREE.Vector2(1,1);this.generateMipmaps=
-!0;this.needsUpdate=!1;this.onUpdate=null};THREE.Texture.prototype={constructor:THREE.Texture,clone:function(){var a=new THREE.Texture(this.image,this.mapping,this.wrapS,this.wrapT,this.magFilter,this.minFilter,this.format,this.type);a.offset.copy(this.offset);a.repeat.copy(this.repeat);return a}};THREE.TextureCount=0;THREE.MultiplyOperation=0;THREE.MixOperation=1;THREE.CubeReflectionMapping=function(){};THREE.CubeRefractionMapping=function(){};THREE.LatitudeReflectionMapping=function(){};
-THREE.LatitudeRefractionMapping=function(){};THREE.SphericalReflectionMapping=function(){};THREE.SphericalRefractionMapping=function(){};THREE.UVMapping=function(){};THREE.RepeatWrapping=0;THREE.ClampToEdgeWrapping=1;THREE.MirroredRepeatWrapping=2;THREE.NearestFilter=3;THREE.NearestMipMapNearestFilter=4;THREE.NearestMipMapLinearFilter=5;THREE.LinearFilter=6;THREE.LinearMipMapNearestFilter=7;THREE.LinearMipMapLinearFilter=8;THREE.ByteType=9;THREE.UnsignedByteType=10;THREE.ShortType=11;
-THREE.UnsignedShortType=12;THREE.IntType=13;THREE.UnsignedIntType=14;THREE.FloatType=15;THREE.AlphaFormat=16;THREE.RGBFormat=17;THREE.RGBAFormat=18;THREE.LuminanceFormat=19;THREE.LuminanceAlphaFormat=20;THREE.DataTexture=function(a,b,c,d,f,g,e,h,i,j){THREE.Texture.call(this,null,g,e,h,i,j,d,f);this.image={data:a,width:b,height:c}};THREE.DataTexture.prototype=new THREE.Texture;THREE.DataTexture.prototype.constructor=THREE.DataTexture;
-THREE.DataTexture.prototype.clone=function(){var a=new THREE.DataTexture(this.image.data,this.image.width,this.image.height,this.format,this.type,this.mapping,this.wrapS,this.wrapT,this.magFilter,this.minFilter);a.offset.copy(this.offset);a.repeat.copy(this.repeat);return a};THREE.Particle=function(a){THREE.Object3D.call(this);this.material=a};THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle;
-THREE.ParticleSystem=function(a,b){THREE.Object3D.call(this);this.geometry=a;this.material=void 0!==b?b:new THREE.ParticleBasicMaterial({color:16777215*Math.random()});this.sortParticles=!1;if(this.geometry)this.geometry.boundingSphere||this.geometry.computeBoundingSphere(),this.boundRadius=a.boundingSphere.radius;this.frustumCulled=!1};THREE.ParticleSystem.prototype=new THREE.Object3D;THREE.ParticleSystem.prototype.constructor=THREE.ParticleSystem;
-THREE.Line=function(a,b,c){THREE.Object3D.call(this);this.geometry=a;this.material=void 0!==b?b:new THREE.LineBasicMaterial({color:16777215*Math.random()});this.type=void 0!==c?c:THREE.LineStrip;this.geometry&&(this.geometry.boundingSphere||this.geometry.computeBoundingSphere())};THREE.LineStrip=0;THREE.LinePieces=1;THREE.Line.prototype=new THREE.Object3D;THREE.Line.prototype.constructor=THREE.Line;
-THREE.Mesh=function(a,b){THREE.Object3D.call(this);this.geometry=a;this.material=void 0!==b?b:new THREE.MeshBasicMaterial({color:16777215*Math.random(),wireframe:!0});if(this.geometry&&(this.geometry.boundingSphere||this.geometry.computeBoundingSphere(),this.boundRadius=a.boundingSphere.radius,this.geometry.morphTargets.length)){this.morphTargetBase=-1;this.morphTargetForcedOrder=[];this.morphTargetInfluences=[];this.morphTargetDictionary={};for(var c=0;c<this.geometry.morphTargets.length;c++)this.morphTargetInfluences.push(0),
-this.morphTargetDictionary[this.geometry.morphTargets[c].name]=c}};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh;THREE.Mesh.prototype.supr=THREE.Object3D.prototype;THREE.Mesh.prototype.getMorphTargetIndexByName=function(a){if(void 0!==this.morphTargetDictionary[a])return this.morphTargetDictionary[a];console.log("THREE.Mesh.getMorphTargetIndexByName: morph target "+a+" does not exist. Returning 0.");return 0};
-THREE.Bone=function(a){THREE.Object3D.call(this);this.skin=a;this.skinMatrix=new THREE.Matrix4};THREE.Bone.prototype=new THREE.Object3D;THREE.Bone.prototype.constructor=THREE.Bone;THREE.Bone.prototype.supr=THREE.Object3D.prototype;
-THREE.Bone.prototype.update=function(a,b){this.matrixAutoUpdate&&(b|=this.updateMatrix());if(b||this.matrixWorldNeedsUpdate)a?this.skinMatrix.multiply(a,this.matrix):this.skinMatrix.copy(this.matrix),this.matrixWorldNeedsUpdate=!1,b=!0;var c,d=this.children.length;for(c=0;c<d;c++)this.children[c].update(this.skinMatrix,b)};
-THREE.SkinnedMesh=function(a,b){THREE.Mesh.call(this,a,b);this.identityMatrix=new THREE.Matrix4;this.bones=[];this.boneMatrices=[];var c,d,f,g,e,h;if(void 0!==this.geometry.bones){for(c=0;c<this.geometry.bones.length;c++)f=this.geometry.bones[c],g=f.pos,e=f.rotq,h=f.scl,d=this.addBone(),d.name=f.name,d.position.set(g[0],g[1],g[2]),d.quaternion.set(e[0],e[1],e[2],e[3]),d.useQuaternion=!0,void 0!==h?d.scale.set(h[0],h[1],h[2]):d.scale.set(1,1,1);for(c=0;c<this.bones.length;c++)f=this.geometry.bones[c],
-d=this.bones[c],-1===f.parent?this.add(d):this.bones[f.parent].add(d);this.boneMatrices=new Float32Array(16*this.bones.length);this.pose()}};THREE.SkinnedMesh.prototype=new THREE.Mesh;THREE.SkinnedMesh.prototype.constructor=THREE.SkinnedMesh;THREE.SkinnedMesh.prototype.addBone=function(a){void 0===a&&(a=new THREE.Bone(this));this.bones.push(a);return a};
-THREE.SkinnedMesh.prototype.updateMatrixWorld=function(a){this.matrixAutoUpdate&&this.updateMatrix();if(this.matrixWorldNeedsUpdate||a)this.parent?this.matrixWorld.multiply(this.parent.matrixWorld,this.matrix):this.matrixWorld.copy(this.matrix),this.matrixWorldNeedsUpdate=!1;for(var a=0,b=this.children.length;a<b;a++){var c=this.children[a];c instanceof THREE.Bone?c.update(this.identityMatrix,!1):c.updateMatrixWorld(!0)}for(var b=this.bones.length,c=this.bones,d=this.boneMatrices,a=0;a<b;a++)c[a].skinMatrix.flattenToArrayOffset(d,
-16*a)};
-THREE.SkinnedMesh.prototype.pose=function(){this.updateMatrixWorld(!0);for(var a,b=[],c=0;c<this.bones.length;c++){a=this.bones[c];var d=new THREE.Matrix4;d.getInverse(a.skinMatrix);b.push(d);a.skinMatrix.flattenToArrayOffset(this.boneMatrices,16*c)}if(void 0===this.geometry.skinVerticesA){this.geometry.skinVerticesA=[];this.geometry.skinVerticesB=[];for(a=0;a<this.geometry.skinIndices.length;a++){var c=this.geometry.vertices[a].position,f=this.geometry.skinIndices[a].x,g=this.geometry.skinIndices[a].y,d=
-new THREE.Vector3(c.x,c.y,c.z);this.geometry.skinVerticesA.push(b[f].multiplyVector3(d));d=new THREE.Vector3(c.x,c.y,c.z);this.geometry.skinVerticesB.push(b[g].multiplyVector3(d));1!==this.geometry.skinWeights[a].x+this.geometry.skinWeights[a].y&&(c=0.5*(1-(this.geometry.skinWeights[a].x+this.geometry.skinWeights[a].y)),this.geometry.skinWeights[a].x+=c,this.geometry.skinWeights[a].y+=c)}}};
-THREE.MorphAnimMesh=function(a,b){THREE.Mesh.call(this,a,b);this.duration=1E3;this.mirroredLoop=!1;this.currentKeyframe=this.lastKeyframe=this.time=0;this.direction=1;this.directionBackwards=!1;this.setFrameRange(0,this.geometry.morphTargets.length-1)};THREE.MorphAnimMesh.prototype=new THREE.Mesh;THREE.MorphAnimMesh.prototype.constructor=THREE.MorphAnimMesh;
-THREE.MorphAnimMesh.prototype.setFrameRange=function(a,b){this.startKeyframe=a;this.endKeyframe=b;this.length=this.endKeyframe-this.startKeyframe+1};THREE.MorphAnimMesh.prototype.setDirectionForward=function(){this.direction=1;this.directionBackwards=!1};THREE.MorphAnimMesh.prototype.setDirectionBackward=function(){this.direction=-1;this.directionBackwards=!0};
-THREE.MorphAnimMesh.prototype.parseAnimations=function(){var a=this.geometry;if(!a.animations)a.animations={};for(var b,c=a.animations,d=/([a-z]+)(\d+)/,f=0,g=a.morphTargets.length;f<g;f++){var e=a.morphTargets[f].name.match(d);if(e&&1<e.length){e=e[1];c[e]||(c[e]={start:Infinity,end:-Infinity});var h=c[e];if(f<h.start)h.start=f;if(f>h.end)h.end=f;b||(b=e)}}a.firstAnimation=b};
-THREE.MorphAnimMesh.prototype.setAnimationLabel=function(a,b,c){if(!this.geometry.animations)this.geometry.animations={};this.geometry.animations[a]={start:b,end:c}};THREE.MorphAnimMesh.prototype.playAnimation=function(a,b){var c=this.geometry.animations[a];c?(this.setFrameRange(c.start,c.end),this.duration=1E3*((c.end-c.start)/b),this.time=0):console.warn("animation["+a+"] undefined")};
-THREE.MorphAnimMesh.prototype.updateAnimation=function(a){var b=this.duration/this.length;this.time+=this.direction*a;if(this.mirroredLoop){if(this.time>this.duration||0>this.time){this.direction*=-1;if(this.time>this.duration)this.time=this.duration,this.directionBackwards=!0;if(0>this.time)this.time=0,this.directionBackwards=!1}}else this.time%=this.duration,0>this.time&&(this.time+=this.duration);a=this.startKeyframe+THREE.Math.clamp(Math.floor(this.time/b),0,this.length-1);if(a!==this.currentKeyframe)this.morphTargetInfluences[this.lastKeyframe]=
-0,this.morphTargetInfluences[this.currentKeyframe]=1,this.morphTargetInfluences[a]=0,this.lastKeyframe=this.currentKeyframe,this.currentKeyframe=a;b=this.time%b/b;this.directionBackwards&&(b=1-b);this.morphTargetInfluences[this.currentKeyframe]=b;this.morphTargetInfluences[this.lastKeyframe]=1-b};THREE.Ribbon=function(a,b){THREE.Object3D.call(this);this.geometry=a;this.material=b};THREE.Ribbon.prototype=new THREE.Object3D;THREE.Ribbon.prototype.constructor=THREE.Ribbon;
-THREE.LOD=function(){THREE.Object3D.call(this);this.LODs=[]};THREE.LOD.prototype=new THREE.Object3D;THREE.LOD.prototype.constructor=THREE.LOD;THREE.LOD.prototype.supr=THREE.Object3D.prototype;THREE.LOD.prototype.addLevel=function(a,b){void 0===b&&(b=0);for(var b=Math.abs(b),c=0;c<this.LODs.length&&!(b<this.LODs[c].visibleAtDistance);c++);this.LODs.splice(c,0,{visibleAtDistance:b,object3D:a});this.add(a)};
-THREE.LOD.prototype.update=function(a){if(1<this.LODs.length){a.matrixWorldInverse.getInverse(a.matrixWorld);a=a.matrixWorldInverse;a=-(a.n31*this.matrixWorld.n14+a.n32*this.matrixWorld.n24+a.n33*this.matrixWorld.n34+a.n34);this.LODs[0].object3D.visible=!0;for(var b=1;b<this.LODs.length;b++)if(a>=this.LODs[b].visibleAtDistance)this.LODs[b-1].object3D.visible=!1,this.LODs[b].object3D.visible=!0;else break;for(;b<this.LODs.length;b++)this.LODs[b].object3D.visible=!1}};
-THREE.Sprite=function(a){THREE.Object3D.call(this);this.color=void 0!==a.color?new THREE.Color(a.color):new THREE.Color(16777215);this.map=void 0!==a.map?a.map:new THREE.Texture;this.blending=void 0!==a.blending?a.blending:THREE.NormalBlending;this.useScreenCoordinates=void 0!==a.useScreenCoordinates?a.useScreenCoordinates:!0;this.mergeWith3D=void 0!==a.mergeWith3D?a.mergeWith3D:!this.useScreenCoordinates;this.affectedByDistance=void 0!==a.affectedByDistance?a.affectedByDistance:!this.useScreenCoordinates;
-this.scaleByViewport=void 0!==a.scaleByViewport?a.scaleByViewport:!this.affectedByDistance;this.alignment=a.alignment instanceof THREE.Vector2?a.alignment:THREE.SpriteAlignment.center;this.rotation3d=this.rotation;this.rotation=0;this.opacity=1;this.uvOffset=new THREE.Vector2(0,0);this.uvScale=new THREE.Vector2(1,1)};THREE.Sprite.prototype=new THREE.Object3D;THREE.Sprite.prototype.constructor=THREE.Sprite;
-THREE.Sprite.prototype.updateMatrix=function(){this.matrix.setPosition(this.position);this.rotation3d.set(0,0,this.rotation);this.matrix.setRotationFromEuler(this.rotation3d);if(1!==this.scale.x||1!==this.scale.y)this.matrix.scale(this.scale),this.boundRadiusScale=Math.max(this.scale.x,this.scale.y);this.matrixWorldNeedsUpdate=!0};THREE.SpriteAlignment={};THREE.SpriteAlignment.topLeft=new THREE.Vector2(1,-1);THREE.SpriteAlignment.topCenter=new THREE.Vector2(0,-1);
-THREE.SpriteAlignment.topRight=new THREE.Vector2(-1,-1);THREE.SpriteAlignment.centerLeft=new THREE.Vector2(1,0);THREE.SpriteAlignment.center=new THREE.Vector2(0,0);THREE.SpriteAlignment.centerRight=new THREE.Vector2(-1,0);THREE.SpriteAlignment.bottomLeft=new THREE.Vector2(1,1);THREE.SpriteAlignment.bottomCenter=new THREE.Vector2(0,1);THREE.SpriteAlignment.bottomRight=new THREE.Vector2(-1,1);
-THREE.Scene=function(){THREE.Object3D.call(this);this.overrideMaterial=this.fog=null;this.matrixAutoUpdate=!1;this.__objects=[];this.__lights=[];this.__objectsAdded=[];this.__objectsRemoved=[]};THREE.Scene.prototype=new THREE.Object3D;THREE.Scene.prototype.constructor=THREE.Scene;
-THREE.Scene.prototype.__addObject=function(a){if(a instanceof THREE.Light)-1===this.__lights.indexOf(a)&&this.__lights.push(a);else if(!(a instanceof THREE.Camera||a instanceof THREE.Bone)&&-1===this.__objects.indexOf(a)){this.__objects.push(a);this.__objectsAdded.push(a);var b=this.__objectsRemoved.indexOf(a);-1!==b&&this.__objectsRemoved.splice(b,1)}for(b=0;b<a.children.length;b++)this.__addObject(a.children[b])};
-THREE.Scene.prototype.__removeObject=function(a){if(a instanceof THREE.Light){var b=this.__lights.indexOf(a);-1!==b&&this.__lights.splice(b,1)}else a instanceof THREE.Camera||(b=this.__objects.indexOf(a),-1!==b&&(this.__objects.splice(b,1),this.__objectsRemoved.push(a),b=this.__objectsAdded.indexOf(a),-1!==b&&this.__objectsAdded.splice(b,1)));for(b=0;b<a.children.length;b++)this.__removeObject(a.children[b])};
-THREE.Fog=function(a,b,c){this.color=new THREE.Color(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3};THREE.FogExp2=function(a,b){this.color=new THREE.Color(a);this.density=void 0!==b?b:2.5E-4};
-THREE.DOMRenderer=function(){var a,b,c=new THREE.Projector,d,f,g,e;this.domElement=document.createElement("div");this.setSize=function(a,b){d=a;f=b;g=d/2;e=f/2};this.render=function(d,f){var j,k,q,m,o;a=c.projectScene(d,f);b=a.elements;for(j=0,k=b.length;j<k;j++)if(q=b[j],q instanceof THREE.RenderableParticle&&(m=q.x*g+g,o=q.y*e+e,q=q.material,q instanceof THREE.ParticleDOMMaterial))q=q.domElement,q.style.left=m+"px",q.style.top=o+"px"}};
-THREE.CanvasRenderer=function(a){function b(a){if(t!=a)n.globalAlpha=t=a}function c(a){if(w!=a){switch(a){case THREE.NormalBlending:n.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:n.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:n.globalCompositeOperation="darker"}w=a}}function d(a){if(u!=a)n.strokeStyle=u=a}function f(a){if(v!=a)n.fillStyle=v=a}var a=a||{},g=this,e,h,i,j=new THREE.Projector,k=void 0!==a.canvas?a.canvas:document.createElement("canvas"),
-q,m,o,p,n=k.getContext("2d"),r=new THREE.Color(0),s=0,t=1,w=0,u=null,v=null,A=null,F=null,B=null,D,H,I,Q,P=new THREE.RenderableVertex,L=new THREE.RenderableVertex,K,O,y,l,$,C,E,S,R,ca,ka,ia,N=new THREE.Color,aa=new THREE.Color,U=new THREE.Color,ba=new THREE.Color,ea=new THREE.Color,Ta=[],Ja=[],Ka,Ga,qa,ha,ib,db,lb,cb,Za,Sa,La=new THREE.Rectangle,sa=new THREE.Rectangle,za=new THREE.Rectangle,Ea=!1,Fa=new THREE.Color,Wa=new THREE.Color,mb=new THREE.Color,Z=new THREE.Vector3,T,Fb,Uc,eb,pc,Cc,a=16;T=
-document.createElement("canvas");T.width=T.height=2;Fb=T.getContext("2d");Fb.fillStyle="rgba(0,0,0,1)";Fb.fillRect(0,0,2,2);Uc=Fb.getImageData(0,0,2,2);eb=Uc.data;pc=document.createElement("canvas");pc.width=pc.height=a;Cc=pc.getContext("2d");Cc.translate(-a/2,-a/2);Cc.scale(a,a);a--;this.domElement=k;this.sortElements=this.sortObjects=this.autoClear=!0;this.info={render:{vertices:0,faces:0}};this.setSize=function(a,b){q=a;m=b;o=Math.floor(q/2);p=Math.floor(m/2);k.width=q;k.height=m;La.set(-o,-p,
-o,p);sa.set(-o,-p,o,p);t=1;w=0;B=F=A=v=u=null};this.setClearColor=function(a,b){r.copy(a);s=b;sa.set(-o,-p,o,p)};this.setClearColorHex=function(a,b){r.setHex(a);s=b;sa.set(-o,-p,o,p)};this.clear=function(){n.setTransform(1,0,0,-1,o,p);sa.isEmpty()||(sa.minSelf(La),sa.inflate(2),1>s&&n.clearRect(Math.floor(sa.getX()),Math.floor(sa.getY()),Math.floor(sa.getWidth()),Math.floor(sa.getHeight())),0<s&&(c(THREE.NormalBlending),b(1),f("rgba("+Math.floor(255*r.r)+","+Math.floor(255*r.g)+","+Math.floor(255*
-r.b)+","+s+")"),n.fillRect(Math.floor(sa.getX()),Math.floor(sa.getY()),Math.floor(sa.getWidth()),Math.floor(sa.getHeight()))),sa.empty())};this.render=function(a,k){function m(a){var b,c,d,f;Fa.setRGB(0,0,0);Wa.setRGB(0,0,0);mb.setRGB(0,0,0);for(b=0,c=a.length;b<c;b++)d=a[b],f=d.color,d instanceof THREE.AmbientLight?(Fa.r+=f.r,Fa.g+=f.g,Fa.b+=f.b):d instanceof THREE.DirectionalLight?(Wa.r+=f.r,Wa.g+=f.g,Wa.b+=f.b):d instanceof THREE.PointLight&&(mb.r+=f.r,mb.g+=f.g,mb.b+=f.b)}function q(a,b,c,d){var f,
-g,e,h,l,i;for(f=0,g=a.length;f<g;f++)e=a[f],h=e.color,e instanceof THREE.DirectionalLight?(l=e.matrixWorld.getPosition(),i=c.dot(l),0>=i||(i*=e.intensity,d.r+=h.r*i,d.g+=h.g*i,d.b+=h.b*i)):e instanceof THREE.PointLight&&(l=e.matrixWorld.getPosition(),i=c.dot(Z.sub(l,b).normalize()),0>=i||(i*=0==e.distance?1:1-Math.min(b.distanceTo(l)/e.distance,1),0!=i&&(i*=e.intensity,d.r+=h.r*i,d.g+=h.g*i,d.b+=h.b*i)))}function r(a,g,e){b(e.opacity);c(e.blending);var Z,h,l,i,k,j;if(e instanceof THREE.ParticleBasicMaterial){if(e.map)i=
-e.map.image,k=i.width>>1,j=i.height>>1,e=g.scale.x*o,l=g.scale.y*p,Z=e*k,h=l*j,za.set(a.x-Z,a.y-h,a.x+Z,a.y+h),La.intersects(za)&&(n.save(),n.translate(a.x,a.y),n.rotate(-g.rotation),n.scale(e,-l),n.translate(-k,-j),n.drawImage(i,0,0),n.restore())}else e instanceof THREE.ParticleCanvasMaterial&&(Z=g.scale.x*o,h=g.scale.y*p,za.set(a.x-Z,a.y-h,a.x+Z,a.y+h),La.intersects(za)&&(d(e.color.getContextStyle()),f(e.color.getContextStyle()),n.save(),n.translate(a.x,a.y),n.rotate(-g.rotation),n.scale(Z,h),e.program(n),
-n.restore()))}function s(a,f,g,e){b(e.opacity);c(e.blending);n.beginPath();n.moveTo(a.positionScreen.x,a.positionScreen.y);n.lineTo(f.positionScreen.x,f.positionScreen.y);n.closePath();if(e instanceof THREE.LineBasicMaterial){a=e.linewidth;if(A!=a)n.lineWidth=A=a;a=e.linecap;if(F!=a)n.lineCap=F=a;a=e.linejoin;if(B!=a)n.lineJoin=B=a;d(e.color.getContextStyle());n.stroke();za.inflate(2*e.linewidth)}}function t(a,d,f,e,h,j,n,T){g.info.render.vertices+=3;g.info.render.faces++;b(T.opacity);c(T.blending);
-K=a.positionScreen.x;O=a.positionScreen.y;y=d.positionScreen.x;l=d.positionScreen.y;$=f.positionScreen.x;C=f.positionScreen.y;v(K,O,y,l,$,C);if(T instanceof THREE.MeshBasicMaterial)if(T.map)T.map.mapping instanceof THREE.UVMapping&&(ha=n.uvs[0],Vc(K,O,y,l,$,C,ha[e].u,ha[e].v,ha[h].u,ha[h].v,ha[j].u,ha[j].v,T.map));else if(T.envMap){if(T.envMap.mapping instanceof THREE.SphericalReflectionMapping)a=k.matrixWorldInverse,Z.copy(n.vertexNormalsWorld[e]),ib=0.5*(Z.x*a.n11+Z.y*a.n12+Z.z*a.n13)+0.5,db=0.5*
--(Z.x*a.n21+Z.y*a.n22+Z.z*a.n23)+0.5,Z.copy(n.vertexNormalsWorld[h]),lb=0.5*(Z.x*a.n11+Z.y*a.n12+Z.z*a.n13)+0.5,cb=0.5*-(Z.x*a.n21+Z.y*a.n22+Z.z*a.n23)+0.5,Z.copy(n.vertexNormalsWorld[j]),Za=0.5*(Z.x*a.n11+Z.y*a.n12+Z.z*a.n13)+0.5,Sa=0.5*-(Z.x*a.n21+Z.y*a.n22+Z.z*a.n23)+0.5,Vc(K,O,y,l,$,C,ib,db,lb,cb,Za,Sa,T.envMap)}else T.wireframe?Mb(T.color,T.wireframeLinewidth,T.wireframeLinecap,T.wireframeLinejoin):Gb(T.color);else if(T instanceof THREE.MeshLambertMaterial)T.map&&!T.wireframe&&(T.map.mapping instanceof
-THREE.UVMapping&&(ha=n.uvs[0],Vc(K,O,y,l,$,C,ha[e].u,ha[e].v,ha[h].u,ha[h].v,ha[j].u,ha[j].v,T.map)),c(THREE.SubtractiveBlending)),Ea?!T.wireframe&&T.shading==THREE.SmoothShading&&3==n.vertexNormalsWorld.length?(aa.r=U.r=ba.r=Fa.r,aa.g=U.g=ba.g=Fa.g,aa.b=U.b=ba.b=Fa.b,q(i,n.v1.positionWorld,n.vertexNormalsWorld[0],aa),q(i,n.v2.positionWorld,n.vertexNormalsWorld[1],U),q(i,n.v3.positionWorld,n.vertexNormalsWorld[2],ba),aa.r=Math.max(0,Math.min(T.color.r*aa.r,1)),aa.g=Math.max(0,Math.min(T.color.g*aa.g,
-1)),aa.b=Math.max(0,Math.min(T.color.b*aa.b,1)),U.r=Math.max(0,Math.min(T.color.r*U.r,1)),U.g=Math.max(0,Math.min(T.color.g*U.g,1)),U.b=Math.max(0,Math.min(T.color.b*U.b,1)),ba.r=Math.max(0,Math.min(T.color.r*ba.r,1)),ba.g=Math.max(0,Math.min(T.color.g*ba.g,1)),ba.b=Math.max(0,Math.min(T.color.b*ba.b,1)),ea.r=0.5*(U.r+ba.r),ea.g=0.5*(U.g+ba.g),ea.b=0.5*(U.b+ba.b),qa=Dc(aa,U,ba,ea),gc(K,O,y,l,$,C,0,0,1,0,0,1,qa)):(N.r=Fa.r,N.g=Fa.g,N.b=Fa.b,q(i,n.centroidWorld,n.normalWorld,N),N.r=Math.max(0,Math.min(T.color.r*
-N.r,1)),N.g=Math.max(0,Math.min(T.color.g*N.g,1)),N.b=Math.max(0,Math.min(T.color.b*N.b,1)),T.wireframe?Mb(N,T.wireframeLinewidth,T.wireframeLinecap,T.wireframeLinejoin):Gb(N)):T.wireframe?Mb(T.color,T.wireframeLinewidth,T.wireframeLinecap,T.wireframeLinejoin):Gb(T.color);else if(T instanceof THREE.MeshDepthMaterial)Ka=k.near,Ga=k.far,aa.r=aa.g=aa.b=1-ac(a.positionScreen.z,Ka,Ga),U.r=U.g=U.b=1-ac(d.positionScreen.z,Ka,Ga),ba.r=ba.g=ba.b=1-ac(f.positionScreen.z,Ka,Ga),ea.r=0.5*(U.r+ba.r),ea.g=0.5*
-(U.g+ba.g),ea.b=0.5*(U.b+ba.b),qa=Dc(aa,U,ba,ea),gc(K,O,y,l,$,C,0,0,1,0,0,1,qa);else if(T instanceof THREE.MeshNormalMaterial)N.r=hc(n.normalWorld.x),N.g=hc(n.normalWorld.y),N.b=hc(n.normalWorld.z),T.wireframe?Mb(N,T.wireframeLinewidth,T.wireframeLinecap,T.wireframeLinejoin):Gb(N)}function u(a,d,f,e,Z,h,T,j,n){g.info.render.vertices+=4;g.info.render.faces++;b(j.opacity);c(j.blending);if(j.map||j.envMap)t(a,d,e,0,1,3,T,j,n),t(Z,f,h,1,2,3,T,j,n);else if(K=a.positionScreen.x,O=a.positionScreen.y,y=d.positionScreen.x,
-l=d.positionScreen.y,$=f.positionScreen.x,C=f.positionScreen.y,E=e.positionScreen.x,S=e.positionScreen.y,R=Z.positionScreen.x,ca=Z.positionScreen.y,ka=h.positionScreen.x,ia=h.positionScreen.y,j instanceof THREE.MeshBasicMaterial)w(K,O,y,l,$,C,E,S),j.wireframe?Mb(j.color,j.wireframeLinewidth,j.wireframeLinecap,j.wireframeLinejoin):Gb(j.color);else if(j instanceof THREE.MeshLambertMaterial)Ea?!j.wireframe&&j.shading==THREE.SmoothShading&&4==T.vertexNormalsWorld.length?(aa.r=U.r=ba.r=ea.r=Fa.r,aa.g=
-U.g=ba.g=ea.g=Fa.g,aa.b=U.b=ba.b=ea.b=Fa.b,q(i,T.v1.positionWorld,T.vertexNormalsWorld[0],aa),q(i,T.v2.positionWorld,T.vertexNormalsWorld[1],U),q(i,T.v4.positionWorld,T.vertexNormalsWorld[3],ba),q(i,T.v3.positionWorld,T.vertexNormalsWorld[2],ea),aa.r=Math.max(0,Math.min(j.color.r*aa.r,1)),aa.g=Math.max(0,Math.min(j.color.g*aa.g,1)),aa.b=Math.max(0,Math.min(j.color.b*aa.b,1)),U.r=Math.max(0,Math.min(j.color.r*U.r,1)),U.g=Math.max(0,Math.min(j.color.g*U.g,1)),U.b=Math.max(0,Math.min(j.color.b*U.b,1)),
-ba.r=Math.max(0,Math.min(j.color.r*ba.r,1)),ba.g=Math.max(0,Math.min(j.color.g*ba.g,1)),ba.b=Math.max(0,Math.min(j.color.b*ba.b,1)),ea.r=Math.max(0,Math.min(j.color.r*ea.r,1)),ea.g=Math.max(0,Math.min(j.color.g*ea.g,1)),ea.b=Math.max(0,Math.min(j.color.b*ea.b,1)),qa=Dc(aa,U,ba,ea),v(K,O,y,l,E,S),gc(K,O,y,l,E,S,0,0,1,0,0,1,qa),v(R,ca,$,C,ka,ia),gc(R,ca,$,C,ka,ia,1,0,1,1,0,1,qa)):(N.r=Fa.r,N.g=Fa.g,N.b=Fa.b,q(i,T.centroidWorld,T.normalWorld,N),N.r=Math.max(0,Math.min(j.color.r*N.r,1)),N.g=Math.max(0,
-Math.min(j.color.g*N.g,1)),N.b=Math.max(0,Math.min(j.color.b*N.b,1)),w(K,O,y,l,$,C,E,S),j.wireframe?Mb(N,j.wireframeLinewidth,j.wireframeLinecap,j.wireframeLinejoin):Gb(N)):(w(K,O,y,l,$,C,E,S),j.wireframe?Mb(j.color,j.wireframeLinewidth,j.wireframeLinecap,j.wireframeLinejoin):Gb(j.color));else if(j instanceof THREE.MeshNormalMaterial)N.r=hc(T.normalWorld.x),N.g=hc(T.normalWorld.y),N.b=hc(T.normalWorld.z),w(K,O,y,l,$,C,E,S),j.wireframe?Mb(N,j.wireframeLinewidth,j.wireframeLinecap,j.wireframeLinejoin):
-Gb(N);else if(j instanceof THREE.MeshDepthMaterial)Ka=k.near,Ga=k.far,aa.r=aa.g=aa.b=1-ac(a.positionScreen.z,Ka,Ga),U.r=U.g=U.b=1-ac(d.positionScreen.z,Ka,Ga),ba.r=ba.g=ba.b=1-ac(e.positionScreen.z,Ka,Ga),ea.r=ea.g=ea.b=1-ac(f.positionScreen.z,Ka,Ga),qa=Dc(aa,U,ba,ea),v(K,O,y,l,E,S),gc(K,O,y,l,E,S,0,0,1,0,0,1,qa),v(R,ca,$,C,ka,ia),gc(R,ca,$,C,ka,ia,1,0,1,1,0,1,qa)}function v(a,b,c,d,f,e){n.beginPath();n.moveTo(a,b);n.lineTo(c,d);n.lineTo(f,e);n.lineTo(a,b);n.closePath()}function w(a,b,c,d,f,e,g,Z){n.beginPath();
-n.moveTo(a,b);n.lineTo(c,d);n.lineTo(f,e);n.lineTo(g,Z);n.lineTo(a,b);n.closePath()}function Mb(a,b,c,f){if(A!=b)n.lineWidth=A=b;if(F!=c)n.lineCap=F=c;if(B!=f)n.lineJoin=B=f;d(a.getContextStyle());n.stroke();za.inflate(2*b)}function Gb(a){f(a.getContextStyle());n.fill()}function Vc(a,b,c,d,e,g,Z,h,l,i,j,T,k){if(0!=k.image.width){if(!0==k.needsUpdate||void 0==Ta[k.id]){var m=k.wrapS==THREE.RepeatWrapping,o=k.wrapT==THREE.RepeatWrapping;Ta[k.id]=n.createPattern(k.image,m&&o?"repeat":m&&!o?"repeat-x":
-!m&&o?"repeat-y":"no-repeat");k.needsUpdate=!1}f(Ta[k.id]);var m=k.offset.x/k.repeat.x,o=k.offset.y/k.repeat.y,p=k.image.width*k.repeat.x,Fb=k.image.height*k.repeat.y,Z=(Z+m)*p,h=(h+o)*Fb,c=c-a,d=d-b,e=e-a,g=g-b,l=(l+m)*p-Z,i=(i+o)*Fb-h,j=(j+m)*p-Z,T=(T+o)*Fb-h,m=l*T-j*i;if(0==m){if(void 0===Ja[k.id])b=document.createElement("canvas"),b.width=k.image.width,b.height=k.image.height,b=b.getContext("2d"),b.drawImage(k.image,0,0),Ja[k.id]=b.getImageData(0,0,k.image.width,k.image.height).data;b=Ja[k.id];
-Z=4*(Math.floor(Z)+Math.floor(h)*k.image.width);N.setRGB(b[Z]/255,b[Z+1]/255,b[Z+2]/255);Gb(N)}else m=1/m,k=(T*c-i*e)*m,i=(T*d-i*g)*m,c=(l*e-j*c)*m,d=(l*g-j*d)*m,a=a-k*Z-c*h,Z=b-i*Z-d*h,n.save(),n.transform(k,i,c,d,a,Z),n.fill(),n.restore()}}function gc(a,b,c,d,f,e,g,Z,h,l,i,j,T){var k,m;k=T.width-1;m=T.height-1;g*=k;Z*=m;c-=a;d-=b;f-=a;e-=b;h=h*k-g;l=l*m-Z;i=i*k-g;j=j*m-Z;m=1/(h*j-i*l);k=(j*c-l*f)*m;l=(j*d-l*e)*m;c=(h*f-i*c)*m;d=(h*e-i*d)*m;a=a-k*g-c*Z;b=b-l*g-d*Z;n.save();n.transform(k,l,c,d,a,
-b);n.clip();n.drawImage(T,0,0);n.restore()}function Dc(a,b,c,d){var f=~~(255*a.r),e=~~(255*a.g),a=~~(255*a.b),g=~~(255*b.r),Z=~~(255*b.g),b=~~(255*b.b),h=~~(255*c.r),l=~~(255*c.g),c=~~(255*c.b),i=~~(255*d.r),j=~~(255*d.g),d=~~(255*d.b);eb[0]=0>f?0:255<f?255:f;eb[1]=0>e?0:255<e?255:e;eb[2]=0>a?0:255<a?255:a;eb[4]=0>g?0:255<g?255:g;eb[5]=0>Z?0:255<Z?255:Z;eb[6]=0>b?0:255<b?255:b;eb[8]=0>h?0:255<h?255:h;eb[9]=0>l?0:255<l?255:l;eb[10]=0>c?0:255<c?255:c;eb[12]=0>i?0:255<i?255:i;eb[13]=0>j?0:255<j?255:
-j;eb[14]=0>d?0:255<d?255:d;Fb.putImageData(Uc,0,0);Cc.drawImage(T,0,0);return pc}function ac(a,b,c){a=(a-b)/(c-b);return a*a*(3-2*a)}function hc(a){a=0.5*(a+1);return 0>a?0:1<a?1:a}function Nb(a,b){var c=b.x-a.x,d=b.y-a.y,f=c*c+d*d;0!=f&&(f=1/Math.sqrt(f),c*=f,d*=f,b.x+=c,b.y+=d,a.x-=c,a.y-=d)}var Ec,fd,Pa,jb;this.autoClear?this.clear():n.setTransform(1,0,0,-1,o,p);g.info.render.vertices=0;g.info.render.faces=0;e=j.projectScene(a,k,this.sortElements);h=e.elements;i=e.lights;(Ea=0<i.length)&&m(i);
-for(Ec=0,fd=h.length;Ec<fd;Ec++)if(Pa=h[Ec],jb=Pa.material,jb=jb instanceof THREE.MeshFaceMaterial?Pa.faceMaterial:jb,!(null==jb||0==jb.opacity)){za.empty();if(Pa instanceof THREE.RenderableParticle)D=Pa,D.x*=o,D.y*=p,r(D,Pa,jb,a);else if(Pa instanceof THREE.RenderableLine)D=Pa.v1,H=Pa.v2,D.positionScreen.x*=o,D.positionScreen.y*=p,H.positionScreen.x*=o,H.positionScreen.y*=p,za.addPoint(D.positionScreen.x,D.positionScreen.y),za.addPoint(H.positionScreen.x,H.positionScreen.y),La.intersects(za)&&s(D,
-H,Pa,jb,a);else if(Pa instanceof THREE.RenderableFace3)D=Pa.v1,H=Pa.v2,I=Pa.v3,D.positionScreen.x*=o,D.positionScreen.y*=p,H.positionScreen.x*=o,H.positionScreen.y*=p,I.positionScreen.x*=o,I.positionScreen.y*=p,jb.overdraw&&(Nb(D.positionScreen,H.positionScreen),Nb(H.positionScreen,I.positionScreen),Nb(I.positionScreen,D.positionScreen)),za.add3Points(D.positionScreen.x,D.positionScreen.y,H.positionScreen.x,H.positionScreen.y,I.positionScreen.x,I.positionScreen.y),La.intersects(za)&&t(D,H,I,0,1,2,
-Pa,jb,a);else if(Pa instanceof THREE.RenderableFace4)D=Pa.v1,H=Pa.v2,I=Pa.v3,Q=Pa.v4,D.positionScreen.x*=o,D.positionScreen.y*=p,H.positionScreen.x*=o,H.positionScreen.y*=p,I.positionScreen.x*=o,I.positionScreen.y*=p,Q.positionScreen.x*=o,Q.positionScreen.y*=p,P.positionScreen.copy(H.positionScreen),L.positionScreen.copy(Q.positionScreen),jb.overdraw&&(Nb(D.positionScreen,H.positionScreen),Nb(H.positionScreen,Q.positionScreen),Nb(Q.positionScreen,D.positionScreen),Nb(I.positionScreen,P.positionScreen),
-Nb(I.positionScreen,L.positionScreen)),za.addPoint(D.positionScreen.x,D.positionScreen.y),za.addPoint(H.positionScreen.x,H.positionScreen.y),za.addPoint(I.positionScreen.x,I.positionScreen.y),za.addPoint(Q.positionScreen.x,Q.positionScreen.y),La.intersects(za)&&u(D,H,I,Q,P,L,Pa,jb,a);sa.addRectangle(za)}n.setTransform(1,0,0,1,0,0)}};
-THREE.SVGRenderer=function(){function a(a,b,c,d){var f,e,g,h,i,j;for(f=0,e=a.length;f<e;f++)g=a[f],h=g.color,g instanceof THREE.DirectionalLight?(i=g.matrixWorld.getPosition(),j=c.dot(i),0>=j||(j*=g.intensity,d.r+=h.r*j,d.g+=h.g*j,d.b+=h.b*j)):g instanceof THREE.PointLight&&(i=g.matrixWorld.getPosition(),j=c.dot(D.sub(i,b).normalize()),0>=j||(j*=0==g.distance?1:1-Math.min(b.distanceTo(i)/g.distance,1),0!=j&&(j*=g.intensity,d.r+=h.r*j,d.g+=h.g*j,d.b+=h.b*j)))}function b(a){null==H[a]&&(H[a]=document.createElementNS("http://www.w3.org/2000/svg",
-"path"),0==K&&H[a].setAttribute("shape-rendering","crispEdges"));return H[a]}function c(a){a=0.5*(a+1);return 0>a?0:1<a?1:a}var d=this,f,g,e,h=new THREE.Projector,i=document.createElementNS("http://www.w3.org/2000/svg","svg"),j,k,q,m,o,p,n,r,s=new THREE.Rectangle,t=new THREE.Rectangle,w=!1,u=new THREE.Color,v=new THREE.Color,A=new THREE.Color,F=new THREE.Color,B,D=new THREE.Vector3,H=[],I=[],Q,P,L,K=1;this.domElement=i;this.sortElements=this.sortObjects=this.autoClear=!0;this.info={render:{vertices:0,
-faces:0}};this.setQuality=function(a){switch(a){case "high":K=1;break;case "low":K=0}};this.setSize=function(a,b){j=a;k=b;q=j/2;m=k/2;i.setAttribute("viewBox",-q+" "+-m+" "+j+" "+k);i.setAttribute("width",j);i.setAttribute("height",k);s.set(-q,-m,q,m)};this.clear=function(){for(;0<i.childNodes.length;)i.removeChild(i.childNodes[0])};this.render=function(j,k){var l,D,C,E;this.autoClear&&this.clear();d.info.render.vertices=0;d.info.render.faces=0;f=h.projectScene(j,k,this.sortElements);g=f.elements;
-e=f.lights;L=P=0;if(w=0<e.length){v.setRGB(0,0,0);A.setRGB(0,0,0);F.setRGB(0,0,0);for(l=0,D=e.length;l<D;l++)E=e[l],C=E.color,E instanceof THREE.AmbientLight?(v.r+=C.r,v.g+=C.g,v.b+=C.b):E instanceof THREE.DirectionalLight?(A.r+=C.r,A.g+=C.g,A.b+=C.b):E instanceof THREE.PointLight&&(F.r+=C.r,F.g+=C.g,F.b+=C.b)}for(l=0,D=g.length;l<D;l++)if(C=g[l],E=C.material,E=E instanceof THREE.MeshFaceMaterial?C.faceMaterial:E,!(null==E||0==E.opacity))if(t.empty(),C instanceof THREE.RenderableParticle)o=C,o.x*=
-q,o.y*=-m;else if(C instanceof THREE.RenderableLine){if(o=C.v1,p=C.v2,o.positionScreen.x*=q,o.positionScreen.y*=-m,p.positionScreen.x*=q,p.positionScreen.y*=-m,t.addPoint(o.positionScreen.x,o.positionScreen.y),t.addPoint(p.positionScreen.x,p.positionScreen.y),s.intersects(t)){C=o;var S=p,R=L++;null==I[R]&&(I[R]=document.createElementNS("http://www.w3.org/2000/svg","line"),0==K&&I[R].setAttribute("shape-rendering","crispEdges"));Q=I[R];Q.setAttribute("x1",C.positionScreen.x);Q.setAttribute("y1",C.positionScreen.y);
-Q.setAttribute("x2",S.positionScreen.x);Q.setAttribute("y2",S.positionScreen.y);E instanceof THREE.LineBasicMaterial&&(Q.setAttribute("style","fill: none; stroke: "+E.color.getContextStyle()+"; stroke-width: "+E.linewidth+"; stroke-opacity: "+E.opacity+"; stroke-linecap: "+E.linecap+"; stroke-linejoin: "+E.linejoin),i.appendChild(Q))}}else if(C instanceof THREE.RenderableFace3){if(o=C.v1,p=C.v2,n=C.v3,o.positionScreen.x*=q,o.positionScreen.y*=-m,p.positionScreen.x*=q,p.positionScreen.y*=-m,n.positionScreen.x*=
-q,n.positionScreen.y*=-m,t.addPoint(o.positionScreen.x,o.positionScreen.y),t.addPoint(p.positionScreen.x,p.positionScreen.y),t.addPoint(n.positionScreen.x,n.positionScreen.y),s.intersects(t)){var S=o,R=p,H=n;d.info.render.vertices+=3;d.info.render.faces++;Q=b(P++);Q.setAttribute("d","M "+S.positionScreen.x+" "+S.positionScreen.y+" L "+R.positionScreen.x+" "+R.positionScreen.y+" L "+H.positionScreen.x+","+H.positionScreen.y+"z");E instanceof THREE.MeshBasicMaterial?u.copy(E.color):E instanceof THREE.MeshLambertMaterial?
-w?(u.r=v.r,u.g=v.g,u.b=v.b,a(e,C.centroidWorld,C.normalWorld,u),u.r=Math.max(0,Math.min(E.color.r*u.r,1)),u.g=Math.max(0,Math.min(E.color.g*u.g,1)),u.b=Math.max(0,Math.min(E.color.b*u.b,1))):u.copy(E.color):E instanceof THREE.MeshDepthMaterial?(B=1-E.__2near/(E.__farPlusNear-C.z*E.__farMinusNear),u.setRGB(B,B,B)):E instanceof THREE.MeshNormalMaterial&&u.setRGB(c(C.normalWorld.x),c(C.normalWorld.y),c(C.normalWorld.z));E.wireframe?Q.setAttribute("style","fill: none; stroke: "+u.getContextStyle()+"; stroke-width: "+
-E.wireframeLinewidth+"; stroke-opacity: "+E.opacity+"; stroke-linecap: "+E.wireframeLinecap+"; stroke-linejoin: "+E.wireframeLinejoin):Q.setAttribute("style","fill: "+u.getContextStyle()+"; fill-opacity: "+E.opacity);i.appendChild(Q)}}else if(C instanceof THREE.RenderableFace4&&(o=C.v1,p=C.v2,n=C.v3,r=C.v4,o.positionScreen.x*=q,o.positionScreen.y*=-m,p.positionScreen.x*=q,p.positionScreen.y*=-m,n.positionScreen.x*=q,n.positionScreen.y*=-m,r.positionScreen.x*=q,r.positionScreen.y*=-m,t.addPoint(o.positionScreen.x,
-o.positionScreen.y),t.addPoint(p.positionScreen.x,p.positionScreen.y),t.addPoint(n.positionScreen.x,n.positionScreen.y),t.addPoint(r.positionScreen.x,r.positionScreen.y),s.intersects(t))){var S=o,R=p,H=n,ka=r;d.info.render.vertices+=4;d.info.render.faces++;Q=b(P++);Q.setAttribute("d","M "+S.positionScreen.x+" "+S.positionScreen.y+" L "+R.positionScreen.x+" "+R.positionScreen.y+" L "+H.positionScreen.x+","+H.positionScreen.y+" L "+ka.positionScreen.x+","+ka.positionScreen.y+"z");E instanceof THREE.MeshBasicMaterial?
-u.copy(E.color):E instanceof THREE.MeshLambertMaterial?w?(u.r=v.r,u.g=v.g,u.b=v.b,a(e,C.centroidWorld,C.normalWorld,u),u.r=Math.max(0,Math.min(E.color.r*u.r,1)),u.g=Math.max(0,Math.min(E.color.g*u.g,1)),u.b=Math.max(0,Math.min(E.color.b*u.b,1))):u.copy(E.color):E instanceof THREE.MeshDepthMaterial?(B=1-E.__2near/(E.__farPlusNear-C.z*E.__farMinusNear),u.setRGB(B,B,B)):E instanceof THREE.MeshNormalMaterial&&u.setRGB(c(C.normalWorld.x),c(C.normalWorld.y),c(C.normalWorld.z));E.wireframe?Q.setAttribute("style",
-"fill: none; stroke: "+u.getContextStyle()+"; stroke-width: "+E.wireframeLinewidth+"; stroke-opacity: "+E.opacity+"; stroke-linecap: "+E.wireframeLinecap+"; stroke-linejoin: "+E.wireframeLinejoin):Q.setAttribute("style","fill: "+u.getContextStyle()+"; fill-opacity: "+E.opacity);i.appendChild(Q)}}};
-THREE.ShaderChunk={fog_pars_fragment:"#ifdef USE_FOG\nuniform vec3 fogColor;\n#ifdef FOG_EXP2\nuniform float fogDensity;\n#else\nuniform float fogNear;\nuniform float fogFar;\n#endif\n#endif",fog_fragment:"#ifdef USE_FOG\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n#ifdef FOG_EXP2\nconst float LOG2 = 1.442695;\nfloat fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\nfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n#else\nfloat fogFactor = smoothstep( fogNear, fogFar, depth );\n#endif\ngl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\nvarying vec3 vReflect;\nuniform float reflectivity;\nuniform samplerCube envMap;\nuniform float flipEnvMap;\nuniform int combine;\n#endif",
-envmap_fragment:"#ifdef USE_ENVMAP\n#ifdef DOUBLE_SIDED\nfloat flipNormal = ( -1.0 + 2.0 * float( gl_FrontFacing ) );\nvec4 cubeColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * vReflect.x, vReflect.yz ) );\n#else\nvec4 cubeColor = textureCube( envMap, vec3( flipEnvMap * vReflect.x, vReflect.yz ) );\n#endif\n#ifdef GAMMA_INPUT\ncubeColor.xyz *= cubeColor.xyz;\n#endif\nif ( combine == 1 ) {\ngl_FragColor.xyz = mix( gl_FragColor.xyz, cubeColor.xyz, reflectivity );\n} else {\ngl_FragColor.xyz = gl_FragColor.xyz * cubeColor.xyz;\n}\n#endif",
-envmap_pars_vertex:"#ifdef USE_ENVMAP\nvarying vec3 vReflect;\nuniform float refractionRatio;\nuniform bool useRefract;\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\nvec4 mPosition = objectMatrix * vec4( position, 1.0 );\nvec3 nWorld = mat3( objectMatrix[ 0 ].xyz, objectMatrix[ 1 ].xyz, objectMatrix[ 2 ].xyz ) * normal;\nif ( useRefract ) {\nvReflect = refract( normalize( mPosition.xyz - cameraPosition ), normalize( nWorld.xyz ), refractionRatio );\n} else {\nvReflect = reflect( normalize( mPosition.xyz - cameraPosition ), normalize( nWorld.xyz ) );\n}\n#endif",
-map_particle_pars_fragment:"#ifdef USE_MAP\nuniform sampler2D map;\n#endif",map_particle_fragment:"#ifdef USE_MAP\ngl_FragColor = gl_FragColor * texture2D( map, gl_PointCoord );\n#endif",map_pars_vertex:"#ifdef USE_MAP\nvarying vec2 vUv;\nuniform vec4 offsetRepeat;\n#endif",map_pars_fragment:"#ifdef USE_MAP\nvarying vec2 vUv;\nuniform sampler2D map;\n#endif",map_vertex:"#ifdef USE_MAP\nvUv = uv * offsetRepeat.zw + offsetRepeat.xy;\n#endif",map_fragment:"#ifdef USE_MAP\n#ifdef GAMMA_INPUT\nvec4 texelColor = texture2D( map, vUv );\ntexelColor.xyz *= texelColor.xyz;\ngl_FragColor = gl_FragColor * texelColor;\n#else\ngl_FragColor = gl_FragColor * texture2D( map, vUv );\n#endif\n#endif",
-lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\nvarying vec2 vUv2;\nuniform sampler2D lightMap;\n#endif",lightmap_pars_vertex:"#ifdef USE_LIGHTMAP\nvarying vec2 vUv2;\n#endif",lightmap_fragment:"#ifdef USE_LIGHTMAP\ngl_FragColor = gl_FragColor * texture2D( lightMap, vUv2 );\n#endif",lightmap_vertex:"#ifdef USE_LIGHTMAP\nvUv2 = uv2;\n#endif",lights_lambert_pars_vertex:"uniform vec3 ambient;\nuniform vec3 diffuse;\nuniform vec3 ambientLightColor;\n#if MAX_DIR_LIGHTS > 0\nuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\nuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n#endif\n#if MAX_POINT_LIGHTS > 0\nuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\nuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\nuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n#endif\n#ifdef WRAP_AROUND\nuniform vec3 wrapRGB;\n#endif",
-lights_lambert_vertex:"vLightFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\nvLightBack = vec3( 0.0 );\n#endif\ntransformedNormal = normalize( transformedNormal );\n#if MAX_DIR_LIGHTS > 0\nfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\nvec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );\nvec3 dirVector = normalize( lDirection.xyz );\nfloat dotProduct = dot( transformedNormal, dirVector );\nvec3 directionalLightWeighting = vec3( max( dotProduct, 0.0 ) );\n#ifdef DOUBLE_SIDED\nvec3 directionalLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n#ifdef WRAP_AROUND\nvec3 directionalLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n#endif\n#endif\n#ifdef WRAP_AROUND\nvec3 directionalLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\ndirectionalLightWeighting = mix( directionalLightWeighting, directionalLightWeightingHalf, wrapRGB );\n#ifdef DOUBLE_SIDED\ndirectionalLightWeightingBack = mix( directionalLightWeightingBack, directionalLightWeightingHalfBack, wrapRGB );\n#endif\n#endif\nvLightFront += directionalLightColor[ i ] * directionalLightWeighting;\n#ifdef DOUBLE_SIDED\nvLightBack += directionalLightColor[ i ] * directionalLightWeightingBack;\n#endif\n}\n#endif\n#if MAX_POINT_LIGHTS > 0\nfor( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\nvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\nvec3 lVector = lPosition.xyz - mvPosition.xyz;\nfloat lDistance = 1.0;\nif ( pointLightDistance[ i ] > 0.0 )\nlDistance = 1.0 - min( ( length( lVector ) / pointLightDistance[ i ] ), 1.0 );\nlVector = normalize( lVector );\nfloat dotProduct = dot( transformedNormal, lVector );\nvec3 pointLightWeighting = vec3( max( dotProduct, 0.0 ) );\n#ifdef DOUBLE_SIDED\nvec3 pointLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n#ifdef WRAP_AROUND\nvec3 pointLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n#endif\n#endif\n#ifdef WRAP_AROUND\nvec3 pointLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\npointLightWeighting = mix( pointLightWeighting, pointLightWeightingHalf, wrapRGB );\n#ifdef DOUBLE_SIDED\npointLightWeightingBack = mix( pointLightWeightingBack, pointLightWeightingHalfBack, wrapRGB );\n#endif\n#endif\nvLightFront += pointLightColor[ i ] * pointLightWeighting * lDistance;\n#ifdef DOUBLE_SIDED\nvLightBack += pointLightColor[ i ] * pointLightWeightingBack * lDistance;\n#endif\n}\n#endif\nvLightFront = vLightFront * diffuse + ambient * ambientLightColor;\n#ifdef DOUBLE_SIDED\nvLightBack = vLightBack * diffuse + ambient * ambientLightColor;\n#endif",
-lights_phong_pars_vertex:"#if MAX_POINT_LIGHTS > 0\n#ifndef PHONG_PER_PIXEL\nuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\nuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\nvarying vec4 vPointLight[ MAX_POINT_LIGHTS ];\n#endif\n#endif",lights_phong_vertex:"#if MAX_POINT_LIGHTS > 0\n#ifndef PHONG_PER_PIXEL\nfor( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\nvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\nvec3 lVector = lPosition.xyz - mvPosition.xyz;\nfloat lDistance = 1.0;\nif ( pointLightDistance[ i ] > 0.0 )\nlDistance = 1.0 - min( ( length( lVector ) / pointLightDistance[ i ] ), 1.0 );\nvPointLight[ i ] = vec4( lVector, lDistance );\n}\n#endif\n#endif",
-lights_phong_pars_fragment:"uniform vec3 ambientLightColor;\n#if MAX_DIR_LIGHTS > 0\nuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\nuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n#endif\n#if MAX_POINT_LIGHTS > 0\nuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\n#ifdef PHONG_PER_PIXEL\nuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\nuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n#else\nvarying vec4 vPointLight[ MAX_POINT_LIGHTS ];\n#endif\n#endif\n#ifdef WRAP_AROUND\nuniform vec3 wrapRGB;\n#endif\nvarying vec3 vViewPosition;\nvarying vec3 vNormal;",
-lights_phong_fragment:"vec3 normal = normalize( vNormal );\nvec3 viewPosition = normalize( vViewPosition );\n#ifdef DOUBLE_SIDED\nnormal = normal * ( -1.0 + 2.0 * float( gl_FrontFacing ) );\n#endif\n#if MAX_POINT_LIGHTS > 0\nvec3 pointDiffuse = vec3( 0.0 );\nvec3 pointSpecular = vec3( 0.0 );\nfor ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\n#ifdef PHONG_PER_PIXEL\nvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\nvec3 lVector = lPosition.xyz + vViewPosition.xyz;\nfloat lDistance = 1.0;\nif ( pointLightDistance[ i ] > 0.0 )\nlDistance = 1.0 - min( ( length( lVector ) / pointLightDistance[ i ] ), 1.0 );\nlVector = normalize( lVector );\n#else\nvec3 lVector = normalize( vPointLight[ i ].xyz );\nfloat lDistance = vPointLight[ i ].w;\n#endif\nfloat dotProduct = dot( normal, lVector );\n#ifdef WRAP_AROUND\nfloat pointDiffuseWeightFull = max( dotProduct, 0.0 );\nfloat pointDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\nvec3 pointDiffuseWeight = mix( vec3 ( pointDiffuseWeightFull ), vec3( pointDiffuseWeightHalf ), wrapRGB );\n#else\nfloat pointDiffuseWeight = max( dotProduct, 0.0 );\n#endif\npointDiffuse += diffuse * pointLightColor[ i ] * pointDiffuseWeight * lDistance;\nvec3 pointHalfVector = normalize( lVector + viewPosition );\nfloat pointDotNormalHalf = max( dot( normal, pointHalfVector ), 0.0 );\nfloat pointSpecularWeight = max( pow( pointDotNormalHalf, shininess ), 0.0 );\n#ifdef PHYSICALLY_BASED_SHADING\nvec3 schlick = specular + vec3( 1.0 - specular ) * pow( dot( lVector, pointHalfVector ), 5.0 );\npointSpecular += schlick * pointLightColor[ i ] * pointSpecularWeight * pointDiffuseWeight * lDistance;\n#else\npointSpecular += specular * pointLightColor[ i ] * pointSpecularWeight * pointDiffuseWeight * lDistance;\n#endif\n}\n#endif\n#if MAX_DIR_LIGHTS > 0\nvec3 dirDiffuse = vec3( 0.0 );\nvec3 dirSpecular = vec3( 0.0 );\nfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\nvec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );\nvec3 dirVector = normalize( lDirection.xyz );\nfloat dotProduct = dot( normal, dirVector );\n#ifdef WRAP_AROUND\nfloat dirDiffuseWeightFull = max( dotProduct, 0.0 );\nfloat dirDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\nvec3 dirDiffuseWeight = mix( vec3( dirDiffuseWeightFull ), vec3( dirDiffuseWeightHalf ), wrapRGB );\n#else\nfloat dirDiffuseWeight = max( dotProduct, 0.0 );\n#endif\ndirDiffuse += diffuse * directionalLightColor[ i ] * dirDiffuseWeight;\nvec3 dirHalfVector = normalize( dirVector + viewPosition );\nfloat dirDotNormalHalf = max( dot( normal, dirHalfVector ), 0.0 );\nfloat dirSpecularWeight = max( pow( dirDotNormalHalf, shininess ), 0.0 );\n#ifdef PHYSICALLY_BASED_SHADING\nvec3 schlick = specular + vec3( 1.0 - specular ) * pow( dot( dirVector, dirHalfVector ), 5.0 );\ndirSpecular += schlick * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight;\n#else\ndirSpecular += specular * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight;\n#endif\n}\n#endif\nvec3 totalDiffuse = vec3( 0.0 );\nvec3 totalSpecular = vec3( 0.0 );\n#if MAX_DIR_LIGHTS > 0\ntotalDiffuse += dirDiffuse;\ntotalSpecular += dirSpecular;\n#endif\n#if MAX_POINT_LIGHTS > 0\ntotalDiffuse += pointDiffuse;\ntotalSpecular += pointSpecular;\n#endif\n#ifdef METAL\ngl_FragColor.xyz = gl_FragColor.xyz * ( totalDiffuse + ambientLightColor * ambient + totalSpecular );\n#else\ngl_FragColor.xyz = gl_FragColor.xyz * ( totalDiffuse + ambientLightColor * ambient ) + totalSpecular;\n#endif",
-color_pars_fragment:"#ifdef USE_COLOR\nvarying vec3 vColor;\n#endif",color_fragment:"#ifdef USE_COLOR\ngl_FragColor = gl_FragColor * vec4( vColor, opacity );\n#endif",color_pars_vertex:"#ifdef USE_COLOR\nvarying vec3 vColor;\n#endif",color_vertex:"#ifdef USE_COLOR\n#ifdef GAMMA_INPUT\nvColor = color * color;\n#else\nvColor = color;\n#endif\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\nuniform mat4 boneGlobalMatrices[ MAX_BONES ];\n#endif",skinning_vertex:"#ifdef USE_SKINNING\ngl_Position = ( boneGlobalMatrices[ int( skinIndex.x ) ] * skinVertexA ) * skinWeight.x;\ngl_Position += ( boneGlobalMatrices[ int( skinIndex.y ) ] * skinVertexB ) * skinWeight.y;\ngl_Position = projectionMatrix * modelViewMatrix * gl_Position;\n#endif",
-morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n#ifndef USE_MORPHNORMALS\nuniform float morphTargetInfluences[ 8 ];\n#else\nuniform float morphTargetInfluences[ 4 ];\n#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\nvec3 morphed = vec3( 0.0 );\nmorphed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\nmorphed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\nmorphed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\nmorphed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n#ifndef USE_MORPHNORMALS\nmorphed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\nmorphed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\nmorphed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\nmorphed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n#endif\nmorphed += position;\ngl_Position = projectionMatrix * modelViewMatrix * vec4( morphed, 1.0 );\n#endif",
-default_vertex:"#ifndef USE_MORPHTARGETS\n#ifndef USE_SKINNING\ngl_Position = projectionMatrix * mvPosition;\n#endif\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\nvec3 morphedNormal = vec3( 0.0 );\nmorphedNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\nmorphedNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\nmorphedNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\nmorphedNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\nmorphedNormal += normal;\nvec3 transformedNormal = normalMatrix * morphedNormal;\n#else\nvec3 transformedNormal = normalMatrix * normal;\n#endif",
-shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\nuniform sampler2D shadowMap[ MAX_SHADOWS ];\nuniform vec2 shadowMapSize[ MAX_SHADOWS ];\nuniform float shadowDarkness[ MAX_SHADOWS ];\nuniform float shadowBias[ MAX_SHADOWS ];\nvarying vec4 vShadowCoord[ MAX_SHADOWS ];\nfloat unpackDepth( const in vec4 rgba_depth ) {\nconst vec4 bit_shift = vec4( 1.0 / ( 256.0 * 256.0 * 256.0 ), 1.0 / ( 256.0 * 256.0 ), 1.0 / 256.0, 1.0 );\nfloat depth = dot( rgba_depth, bit_shift );\nreturn depth;\n}\n#endif",shadowmap_fragment:"#ifdef USE_SHADOWMAP\n#ifdef SHADOWMAP_DEBUG\nvec3 frustumColors[3];\nfrustumColors[0] = vec3( 1.0, 0.5, 0.0 );\nfrustumColors[1] = vec3( 0.0, 1.0, 0.8 );\nfrustumColors[2] = vec3( 0.0, 0.5, 1.0 );\n#endif\n#ifdef SHADOWMAP_CASCADE\nint inFrustumCount = 0;\n#endif\nfloat fDepth;\nvec3 shadowColor = vec3( 1.0 );\nfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\nvec3 shadowCoord = vShadowCoord[ i ].xyz / vShadowCoord[ i ].w;\nbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\nbool inFrustum = all( inFrustumVec );\n#ifdef SHADOWMAP_CASCADE\ninFrustumCount += int( inFrustum );\nbvec3 frustumTestVec = bvec3( inFrustum, inFrustumCount == 1, shadowCoord.z <= 1.0 );\n#else\nbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n#endif\nbool frustumTest = all( frustumTestVec );\nif ( frustumTest ) {\nshadowCoord.z += shadowBias[ i ];\n#ifdef SHADOWMAP_SOFT\nfloat shadow = 0.0;\nconst float shadowDelta = 1.0 / 9.0;\nfloat xPixelOffset = 1.0 / shadowMapSize[ i ].x;\nfloat yPixelOffset = 1.0 / shadowMapSize[ i ].y;\nfloat dx0 = -1.25 * xPixelOffset;\nfloat dy0 = -1.25 * yPixelOffset;\nfloat dx1 = 1.25 * xPixelOffset;\nfloat dy1 = 1.25 * yPixelOffset;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy0 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy0 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy1 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy1 ) ) );\nif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\nshadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ i ] * shadow ) );\n#else\nvec4 rgbaDepth = texture2D( shadowMap[ i ], shadowCoord.xy );\nfloat fDepth = unpackDepth( rgbaDepth );\nif ( fDepth < shadowCoord.z )\nshadowColor = shadowColor * vec3( 1.0 - shadowDarkness[ i ] );\n#endif\n}\n#ifdef SHADOWMAP_DEBUG\n#ifdef SHADOWMAP_CASCADE\nif ( inFrustum && inFrustumCount == 1 ) gl_FragColor.xyz *= frustumColors[ i ];\n#else\nif ( inFrustum ) gl_FragColor.xyz *= frustumColors[ i ];\n#endif\n#endif\n}\n#ifdef GAMMA_OUTPUT\nshadowColor *= shadowColor;\n#endif\ngl_FragColor.xyz = gl_FragColor.xyz * shadowColor;\n#endif",
-shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\nvarying vec4 vShadowCoord[ MAX_SHADOWS ];\nuniform mat4 shadowMatrix[ MAX_SHADOWS ];\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\nfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\n#ifdef USE_MORPHTARGETS\nvShadowCoord[ i ] = shadowMatrix[ i ] * objectMatrix * vec4( morphed, 1.0 );\n#else\nvShadowCoord[ i ] = shadowMatrix[ i ] * objectMatrix * vec4( position, 1.0 );\n#endif\n}\n#endif",alphatest_fragment:"#ifdef ALPHATEST\nif ( gl_FragColor.a < ALPHATEST ) discard;\n#endif",
-linear_to_gamma_fragment:"#ifdef GAMMA_OUTPUT\ngl_FragColor.xyz = sqrt( gl_FragColor.xyz );\n#endif"};
-THREE.UniformsUtils={merge:function(a){var b,c,d,f={};for(b=0;b<a.length;b++)for(c in d=this.clone(a[b]),d)f[c]=d[c];return f},clone:function(a){var b,c,d,f={};for(b in a)for(c in f[b]={},a[b])d=a[b][c],f[b][c]=d instanceof THREE.Color||d instanceof THREE.Vector2||d instanceof THREE.Vector3||d instanceof THREE.Vector4||d instanceof THREE.Matrix4||d instanceof THREE.Texture?d.clone():d instanceof Array?d.slice():d;return f}};
-THREE.UniformsLib={common:{diffuse:{type:"c",value:new THREE.Color(15658734)},opacity:{type:"f",value:1},map:{type:"t",value:0,texture:null},offsetRepeat:{type:"v4",value:new THREE.Vector4(0,0,1,1)},lightMap:{type:"t",value:2,texture:null},envMap:{type:"t",value:1,texture:null},flipEnvMap:{type:"f",value:-1},useRefract:{type:"i",value:0},reflectivity:{type:"f",value:1},refractionRatio:{type:"f",value:0.98},combine:{type:"i",value:0},morphTargetInfluences:{type:"f",value:0}},fog:{fogDensity:{type:"f",
-value:2.5E-4},fogNear:{type:"f",value:1},fogFar:{type:"f",value:2E3},fogColor:{type:"c",value:new THREE.Color(16777215)}},lights:{ambientLightColor:{type:"fv",value:[]},directionalLightDirection:{type:"fv",value:[]},directionalLightColor:{type:"fv",value:[]},pointLightColor:{type:"fv",value:[]},pointLightPosition:{type:"fv",value:[]},pointLightDistance:{type:"fv1",value:[]}},particle:{psColor:{type:"c",value:new THREE.Color(15658734)},opacity:{type:"f",value:1},size:{type:"f",value:1},scale:{type:"f",
-value:1},map:{type:"t",value:0,texture:null},fogDensity:{type:"f",value:2.5E-4},fogNear:{type:"f",value:1},fogFar:{type:"f",value:2E3},fogColor:{type:"c",value:new THREE.Color(16777215)}},shadowmap:{shadowMap:{type:"tv",value:6,texture:[]},shadowMapSize:{type:"v2v",value:[]},shadowBias:{type:"fv1",value:[]},shadowDarkness:{type:"fv1",value:[]},shadowMatrix:{type:"m4v",value:[]}}};
-THREE.ShaderLib={depth:{uniforms:{mNear:{type:"f",value:1},mFar:{type:"f",value:2E3},opacity:{type:"f",value:1}},vertexShader:"void main() {\ngl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",fragmentShader:"uniform float mNear;\nuniform float mFar;\nuniform float opacity;\nvoid main() {\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\nfloat color = 1.0 - smoothstep( mNear, mFar, depth );\ngl_FragColor = vec4( vec3( color ), opacity );\n}"},normal:{uniforms:{opacity:{type:"f",
-value:1}},vertexShader:"varying vec3 vNormal;\nvoid main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvNormal = normalize( normalMatrix * normal );\ngl_Position = projectionMatrix * mvPosition;\n}",fragmentShader:"uniform float opacity;\nvarying vec3 vNormal;\nvoid main() {\ngl_FragColor = vec4( 0.5 * normalize( vNormal ) + 0.5, opacity );\n}"},basic:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.common,THREE.UniformsLib.fog,THREE.UniformsLib.shadowmap]),vertexShader:[THREE.ShaderChunk.map_pars_vertex,
-THREE.ShaderChunk.lightmap_pars_vertex,THREE.ShaderChunk.envmap_pars_vertex,THREE.ShaderChunk.color_pars_vertex,THREE.ShaderChunk.skinning_pars_vertex,THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.shadowmap_pars_vertex,"void main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",THREE.ShaderChunk.map_vertex,THREE.ShaderChunk.lightmap_vertex,THREE.ShaderChunk.envmap_vertex,THREE.ShaderChunk.color_vertex,THREE.ShaderChunk.skinning_vertex,THREE.ShaderChunk.morphtarget_vertex,
-THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n"),fragmentShader:["uniform vec3 diffuse;\nuniform float opacity;",THREE.ShaderChunk.color_pars_fragment,THREE.ShaderChunk.map_pars_fragment,THREE.ShaderChunk.lightmap_pars_fragment,THREE.ShaderChunk.envmap_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.shadowmap_pars_fragment,"void main() {\ngl_FragColor = vec4( diffuse, opacity );",THREE.ShaderChunk.map_fragment,THREE.ShaderChunk.alphatest_fragment,
-THREE.ShaderChunk.lightmap_fragment,THREE.ShaderChunk.color_fragment,THREE.ShaderChunk.envmap_fragment,THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.linear_to_gamma_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n")},lambert:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.common,THREE.UniformsLib.fog,THREE.UniformsLib.lights,THREE.UniformsLib.shadowmap,{ambient:{type:"c",value:new THREE.Color(328965)},wrapRGB:{type:"v3",value:new THREE.Vector3(1,1,1)}}]),vertexShader:["varying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\nvarying vec3 vLightBack;\n#endif",
-THREE.ShaderChunk.map_pars_vertex,THREE.ShaderChunk.lightmap_pars_vertex,THREE.ShaderChunk.envmap_pars_vertex,THREE.ShaderChunk.lights_lambert_pars_vertex,THREE.ShaderChunk.color_pars_vertex,THREE.ShaderChunk.skinning_pars_vertex,THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.shadowmap_pars_vertex,"void main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",THREE.ShaderChunk.map_vertex,THREE.ShaderChunk.lightmap_vertex,THREE.ShaderChunk.envmap_vertex,THREE.ShaderChunk.color_vertex,
-THREE.ShaderChunk.morphnormal_vertex,THREE.ShaderChunk.lights_lambert_vertex,THREE.ShaderChunk.skinning_vertex,THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n"),fragmentShader:["uniform float opacity;\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\nvarying vec3 vLightBack;\n#endif",THREE.ShaderChunk.color_pars_fragment,THREE.ShaderChunk.map_pars_fragment,THREE.ShaderChunk.lightmap_pars_fragment,THREE.ShaderChunk.envmap_pars_fragment,
-THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.shadowmap_pars_fragment,"void main() {\ngl_FragColor = vec4( vec3 ( 1.0 ), opacity );",THREE.ShaderChunk.map_fragment,THREE.ShaderChunk.alphatest_fragment,"#ifdef DOUBLE_SIDED\nif ( gl_FrontFacing )\ngl_FragColor.xyz *= vLightFront;\nelse\ngl_FragColor.xyz *= vLightBack;\n#else\ngl_FragColor.xyz *= vLightFront;\n#endif",THREE.ShaderChunk.lightmap_fragment,THREE.ShaderChunk.color_fragment,THREE.ShaderChunk.envmap_fragment,THREE.ShaderChunk.shadowmap_fragment,
-THREE.ShaderChunk.linear_to_gamma_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n")},phong:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.common,THREE.UniformsLib.fog,THREE.UniformsLib.lights,THREE.UniformsLib.shadowmap,{ambient:{type:"c",value:new THREE.Color(328965)},specular:{type:"c",value:new THREE.Color(1118481)},shininess:{type:"f",value:30},wrapRGB:{type:"v3",value:new THREE.Vector3(1,1,1)}}]),vertexShader:["varying vec3 vViewPosition;\nvarying vec3 vNormal;",THREE.ShaderChunk.map_pars_vertex,
-THREE.ShaderChunk.lightmap_pars_vertex,THREE.ShaderChunk.envmap_pars_vertex,THREE.ShaderChunk.lights_phong_pars_vertex,THREE.ShaderChunk.color_pars_vertex,THREE.ShaderChunk.skinning_pars_vertex,THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.shadowmap_pars_vertex,"void main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",THREE.ShaderChunk.map_vertex,THREE.ShaderChunk.lightmap_vertex,THREE.ShaderChunk.envmap_vertex,THREE.ShaderChunk.color_vertex,"#ifndef USE_ENVMAP\nvec4 mPosition = objectMatrix * vec4( position, 1.0 );\n#endif\nvViewPosition = -mvPosition.xyz;",
-THREE.ShaderChunk.morphnormal_vertex,"vNormal = transformedNormal;",THREE.ShaderChunk.lights_phong_vertex,THREE.ShaderChunk.skinning_vertex,THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n"),fragmentShader:["uniform vec3 diffuse;\nuniform float opacity;\nuniform vec3 ambient;\nuniform vec3 specular;\nuniform float shininess;",THREE.ShaderChunk.color_pars_fragment,THREE.ShaderChunk.map_pars_fragment,THREE.ShaderChunk.lightmap_pars_fragment,
-THREE.ShaderChunk.envmap_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.lights_phong_pars_fragment,THREE.ShaderChunk.shadowmap_pars_fragment,"void main() {\ngl_FragColor = vec4( vec3 ( 1.0 ), opacity );",THREE.ShaderChunk.map_fragment,THREE.ShaderChunk.alphatest_fragment,THREE.ShaderChunk.lights_phong_fragment,THREE.ShaderChunk.lightmap_fragment,THREE.ShaderChunk.color_fragment,THREE.ShaderChunk.envmap_fragment,THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.linear_to_gamma_fragment,
-THREE.ShaderChunk.fog_fragment,"}"].join("\n")},particle_basic:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.particle,THREE.UniformsLib.shadowmap]),vertexShader:["uniform float size;\nuniform float scale;",THREE.ShaderChunk.color_pars_vertex,THREE.ShaderChunk.shadowmap_pars_vertex,"void main() {",THREE.ShaderChunk.color_vertex,"vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n#ifdef USE_SIZEATTENUATION\ngl_PointSize = size * ( scale / length( mvPosition.xyz ) );\n#else\ngl_PointSize = size;\n#endif\ngl_Position = projectionMatrix * mvPosition;",
-THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n"),fragmentShader:["uniform vec3 psColor;\nuniform float opacity;",THREE.ShaderChunk.color_pars_fragment,THREE.ShaderChunk.map_particle_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.shadowmap_pars_fragment,"void main() {\ngl_FragColor = vec4( psColor, opacity );",THREE.ShaderChunk.map_particle_fragment,THREE.ShaderChunk.alphatest_fragment,THREE.ShaderChunk.color_fragment,THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.fog_fragment,
-"}"].join("\n")},depthRGBA:{uniforms:{},vertexShader:[THREE.ShaderChunk.morphtarget_pars_vertex,"void main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.default_vertex,"}"].join("\n"),fragmentShader:"vec4 pack_depth( const in float depth ) {\nconst vec4 bit_shift = vec4( 256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0 );\nconst vec4 bit_mask = vec4( 0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0 );\nvec4 res = fract( depth * bit_shift );\nres -= res.xxyz * bit_mask;\nreturn res;\n}\nvoid main() {\ngl_FragData[ 0 ] = pack_depth( gl_FragCoord.z );\n}"}};
-THREE.WebGLRenderer=function(a){function b(a,b){var c=a.vertices.length,d=b.material;if(d.attributes){if(void 0===a.__webglCustomAttributesList)a.__webglCustomAttributesList=[];for(var f in d.attributes){var e=d.attributes[f];if(!e.__webglInitialized||e.createUniqueBuffers){e.__webglInitialized=!0;var g=1;"v2"===e.type?g=2:"v3"===e.type?g=3:"v4"===e.type?g=4:"c"===e.type&&(g=3);e.size=g;e.array=new Float32Array(c*g);e.buffer=l.createBuffer();e.buffer.belongsToAttribute=f;e.needsUpdate=!0}a.__webglCustomAttributesList.push(e)}}}
-function c(a,b){if(a.material&&!(a.material instanceof THREE.MeshFaceMaterial))return a.material;if(0<=b.materialIndex)return a.geometry.materials[b.materialIndex]}function d(a){return a instanceof THREE.MeshBasicMaterial&&!a.envMap||a instanceof THREE.MeshDepthMaterial?!1:a&&void 0!==a.shading&&a.shading===THREE.SmoothShading?THREE.SmoothShading:THREE.FlatShading}function f(a){return a.map||a.lightMap||a instanceof THREE.ShaderMaterial?!0:!1}function g(a,b,c){var d,f,e,g,h=a.vertices;g=h.length;
-var i=a.colors,j=i.length,k=a.__vertexArray,n=a.__colorArray,m=a.__sortArray,o=a.__dirtyVertices,p=a.__dirtyColors,q=a.__webglCustomAttributesList;if(c.sortParticles){Za.multiplySelf(c.matrixWorld);for(d=0;d<g;d++)f=h[d].position,Sa.copy(f),Za.multiplyVector3(Sa),m[d]=[Sa.z,d];m.sort(function(a,b){return b[0]-a[0]});for(d=0;d<g;d++)f=h[m[d][1]].position,e=3*d,k[e]=f.x,k[e+1]=f.y,k[e+2]=f.z;for(d=0;d<j;d++)e=3*d,f=i[m[d][1]],n[e]=f.r,n[e+1]=f.g,n[e+2]=f.b;if(q)for(i=0,j=q.length;i<j;i++)if(h=q[i],
-void 0===h.boundTo||"vertices"===h.boundTo)if(e=0,f=h.value.length,1===h.size)for(d=0;d<f;d++)g=m[d][1],h.array[d]=h.value[g];else if(2===h.size)for(d=0;d<f;d++)g=m[d][1],g=h.value[g],h.array[e]=g.x,h.array[e+1]=g.y,e+=2;else if(3===h.size)if("c"===h.type)for(d=0;d<f;d++)g=m[d][1],g=h.value[g],h.array[e]=g.r,h.array[e+1]=g.g,h.array[e+2]=g.b,e+=3;else for(d=0;d<f;d++)g=m[d][1],g=h.value[g],h.array[e]=g.x,h.array[e+1]=g.y,h.array[e+2]=g.z,e+=3;else if(4===h.size)for(d=0;d<f;d++)g=m[d][1],g=h.value[g],
-h.array[e]=g.x,h.array[e+1]=g.y,h.array[e+2]=g.z,h.array[e+3]=g.w,e+=4}else{if(o)for(d=0;d<g;d++)f=h[d].position,e=3*d,k[e]=f.x,k[e+1]=f.y,k[e+2]=f.z;if(p)for(d=0;d<j;d++)f=i[d],e=3*d,n[e]=f.r,n[e+1]=f.g,n[e+2]=f.b;if(q)for(i=0,j=q.length;i<j;i++)if(h=q[i],h.needsUpdate&&(void 0===h.boundTo||"vertices"===h.boundTo))if(f=h.value.length,e=0,1===h.size)for(d=0;d<f;d++)h.array[d]=h.value[d];else if(2===h.size)for(d=0;d<f;d++)g=h.value[d],h.array[e]=g.x,h.array[e+1]=g.y,e+=2;else if(3===h.size)if("c"===
-h.type)for(d=0;d<f;d++)g=h.value[d],h.array[e]=g.r,h.array[e+1]=g.g,h.array[e+2]=g.b,e+=3;else for(d=0;d<f;d++)g=h.value[d],h.array[e]=g.x,h.array[e+1]=g.y,h.array[e+2]=g.z,e+=3;else if(4===h.size)for(d=0;d<f;d++)g=h.value[d],h.array[e]=g.x,h.array[e+1]=g.y,h.array[e+2]=g.z,h.array[e+3]=g.w,e+=4}if(o||c.sortParticles)l.bindBuffer(l.ARRAY_BUFFER,a.__webglVertexBuffer),l.bufferData(l.ARRAY_BUFFER,k,b);if(p||c.sortParticles)l.bindBuffer(l.ARRAY_BUFFER,a.__webglColorBuffer),l.bufferData(l.ARRAY_BUFFER,
-n,b);if(q)for(i=0,j=q.length;i<j;i++)if(h=q[i],h.needsUpdate||c.sortParticles)l.bindBuffer(l.ARRAY_BUFFER,h.buffer),l.bufferData(l.ARRAY_BUFFER,h.array,b)}function e(a,b){return b.z-a.z}function h(a,b,c){if(a.length)for(var d=0,f=a.length;d<f;d++)ca=C=null,S=R=ba=U=aa=-1,a[d].render(b,c,db,lb),ca=C=null,S=R=ba=U=aa=-1}function i(a,b,c,d,f,e,g,h){var i,l,j,k;b?(l=a.length-1,k=b=-1):(l=0,b=a.length,k=1);for(var n=l;n!==b;n+=k)if(i=a[n],i.render){l=i.object;j=i.buffer;if(h)i=h;else{i=i[c];if(!i)continue;
-g&&y.setBlending(i.blending);y.setDepthTest(i.depthTest);y.setDepthWrite(i.depthWrite);s(i.polygonOffset,i.polygonOffsetFactor,i.polygonOffsetUnits)}y.setObjectFaces(l);j instanceof THREE.BufferGeometry?y.renderBufferDirect(d,f,e,i,j,l):y.renderBuffer(d,f,e,i,j,l)}}function j(a,b,c,d,f,e,g){for(var h,i,l=0,j=a.length;l<j;l++)if(h=a[l],i=h.object,i.visible){if(g)h=g;else{h=h[b];if(!h)continue;e&&y.setBlending(h.blending);y.setDepthTest(h.depthTest);y.setDepthWrite(h.depthWrite);s(h.polygonOffset,h.polygonOffsetFactor,
-h.polygonOffsetUnits)}y.renderImmediateObject(c,d,f,h,i)}}function k(a,b,c){a.push({buffer:b,object:c,opaque:null,transparent:null})}function q(a){for(var b in a.attributes)if(a.attributes[b].needsUpdate)return!0;return!1}function m(a){for(var b in a.attributes)a.attributes[b].needsUpdate=!1}function o(a,b){for(var c=a.length-1;0<=c;c--)a[c].object===b&&a.splice(c,1)}function p(a,b){for(var c=a.length-1;0<=c;c--)a[c]===b&&a.splice(c,1)}function n(a,b,c,d,f){d.program||y.initMaterial(d,b,c,f);if(d.morphTargets&&
-!f.__webglMorphTargetInfluences){f.__webglMorphTargetInfluences=new Float32Array(y.maxMorphTargets);for(var e=0,g=y.maxMorphTargets;e<g;e++)f.__webglMorphTargetInfluences[e]=0}var h=!1,e=d.program,g=e.uniforms,i=d.uniforms;e!==C&&(l.useProgram(e),C=e,h=!0);if(d.id!==S)S=d.id,h=!0;if(h||a!==ca)l.uniformMatrix4fv(g.projectionMatrix,!1,a._projectionMatrixArray),a!==ca&&(ca=a);if(h){if(c&&d.fog)if(i.fogColor.value=c.color,c instanceof THREE.Fog)i.fogNear.value=c.near,i.fogFar.value=c.far;else if(c instanceof
-THREE.FogExp2)i.fogDensity.value=c.density;if(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d.lights){var j,k=0,n=0,m=0,o,p,q,r=sa,s=r.directional.colors,t=r.directional.positions,E=r.point.colors,u=r.point.positions,v=r.point.distances,B=0,R=0,D=q=0;for(c=0,h=b.length;c<h;c++)if(j=b[c],!j.onlyShadow)if(o=j.color,p=j.intensity,q=j.distance,j instanceof THREE.AmbientLight)y.gammaInput?(k+=o.r*o.r,n+=o.g*o.g,m+=o.b*o.b):(k+=o.r,n+=o.g,m+=o.b);else if(j instanceof THREE.DirectionalLight)q=
-3*B,y.gammaInput?(s[q]=o.r*o.r*p*p,s[q+1]=o.g*o.g*p*p,s[q+2]=o.b*o.b*p*p):(s[q]=o.r*p,s[q+1]=o.g*p,s[q+2]=o.b*p),La.copy(j.matrixWorld.getPosition()),La.subSelf(j.target.matrixWorld.getPosition()),La.normalize(),t[q]=La.x,t[q+1]=La.y,t[q+2]=La.z,B+=1;else if(j instanceof THREE.PointLight||j instanceof THREE.SpotLight)D=3*R,y.gammaInput?(E[D]=o.r*o.r*p*p,E[D+1]=o.g*o.g*p*p,E[D+2]=o.b*o.b*p*p):(E[D]=o.r*p,E[D+1]=o.g*p,E[D+2]=o.b*p),j=j.matrixWorld.getPosition(),u[D]=j.x,u[D+1]=j.y,u[D+2]=j.z,v[R]=q,
-R+=1;for(c=3*B,h=s.length;c<h;c++)s[c]=0;for(c=3*R,h=E.length;c<h;c++)E[c]=0;r.point.length=R;r.directional.length=B;r.ambient[0]=k;r.ambient[1]=n;r.ambient[2]=m;c=sa;i.ambientLightColor.value=c.ambient;i.directionalLightColor.value=c.directional.colors;i.directionalLightDirection.value=c.directional.positions;i.pointLightColor.value=c.point.colors;i.pointLightPosition.value=c.point.positions;i.pointLightDistance.value=c.point.distances}if(d instanceof THREE.MeshBasicMaterial||d instanceof THREE.MeshLambertMaterial||
-d instanceof THREE.MeshPhongMaterial)i.opacity.value=d.opacity,y.gammaInput?i.diffuse.value.copyGammaToLinear(d.color):i.diffuse.value=d.color,(i.map.texture=d.map)&&i.offsetRepeat.value.set(d.map.offset.x,d.map.offset.y,d.map.repeat.x,d.map.repeat.y),i.lightMap.texture=d.lightMap,i.envMap.texture=d.envMap,i.flipEnvMap.value=d.envMap instanceof THREE.WebGLRenderTargetCube?1:-1,i.reflectivity.value=d.reflectivity,i.refractionRatio.value=d.refractionRatio,i.combine.value=d.combine,i.useRefract.value=
-d.envMap&&d.envMap.mapping instanceof THREE.CubeRefractionMapping;if(d instanceof THREE.LineBasicMaterial)i.diffuse.value=d.color,i.opacity.value=d.opacity;else if(d instanceof THREE.ParticleBasicMaterial)i.psColor.value=d.color,i.opacity.value=d.opacity,i.size.value=d.size,i.scale.value=F.height/2,i.map.texture=d.map;else if(d instanceof THREE.MeshPhongMaterial)i.shininess.value=d.shininess,y.gammaInput?(i.ambient.value.copyGammaToLinear(d.ambient),i.specular.value.copyGammaToLinear(d.specular)):
-(i.ambient.value=d.ambient,i.specular.value=d.specular),d.wrapAround&&i.wrapRGB.value.copy(d.wrapRGB);else if(d instanceof THREE.MeshLambertMaterial)y.gammaInput?i.ambient.value.copyGammaToLinear(d.ambient):i.ambient.value=d.ambient,d.wrapAround&&i.wrapRGB.value.copy(d.wrapRGB);else if(d instanceof THREE.MeshDepthMaterial)i.mNear.value=a.near,i.mFar.value=a.far,i.opacity.value=d.opacity;else if(d instanceof THREE.MeshNormalMaterial)i.opacity.value=d.opacity;if(f.receiveShadow&&!d._shadowPass&&i.shadowMatrix){h=
-c=0;for(k=b.length;h<k;h++)if(n=b[h],n.castShadow&&(n instanceof THREE.SpotLight||n instanceof THREE.DirectionalLight&&!n.shadowCascade))i.shadowMap.texture[c]=n.shadowMap,i.shadowMapSize.value[c]=n.shadowMapSize,i.shadowMatrix.value[c]=n.shadowMatrix,i.shadowDarkness.value[c]=n.shadowDarkness,i.shadowBias.value[c]=n.shadowBias,c++}b=d.uniformsList;for(i=0,c=b.length;i<c;i++)if(n=e.uniforms[b[i][1]])if(h=b[i][0],m=h.type,k=h.value,"i"===m)l.uniform1i(n,k);else if("f"===m)l.uniform1f(n,k);else if("v2"===
-m)l.uniform2f(n,k.x,k.y);else if("v3"===m)l.uniform3f(n,k.x,k.y,k.z);else if("v4"===m)l.uniform4f(n,k.x,k.y,k.z,k.w);else if("c"===m)l.uniform3f(n,k.r,k.g,k.b);else if("fv1"===m)l.uniform1fv(n,k);else if("fv"===m)l.uniform3fv(n,k);else if("v2v"===m){if(!h._array)h._array=new Float32Array(2*k.length);for(m=0,r=k.length;m<r;m++)s=2*m,h._array[s]=k[m].x,h._array[s+1]=k[m].y;l.uniform2fv(n,h._array)}else if("v3v"===m){if(!h._array)h._array=new Float32Array(3*k.length);for(m=0,r=k.length;m<r;m++)s=3*m,
-h._array[s]=k[m].x,h._array[s+1]=k[m].y,h._array[s+2]=k[m].z;l.uniform3fv(n,h._array)}else if("v4v"==m){if(!h._array)h._array=new Float32Array(4*k.length);for(m=0,r=k.length;m<r;m++)s=4*m,h._array[s]=k[m].x,h._array[s+1]=k[m].y,h._array[s+2]=k[m].z,h._array[s+3]=k[m].w;l.uniform4fv(n,h._array)}else if("m4"===m){if(!h._array)h._array=new Float32Array(16);k.flattenToArray(h._array);l.uniformMatrix4fv(n,!1,h._array)}else if("m4v"===m){if(!h._array)h._array=new Float32Array(16*k.length);for(m=0,r=k.length;m<
-r;m++)k[m].flattenToArrayOffset(h._array,16*m);l.uniformMatrix4fv(n,!1,h._array)}else if("t"===m){if(l.uniform1i(n,k),n=h.texture)if(n.image instanceof Array&&6===n.image.length){if(h=n,6===h.image.length)if(h.needsUpdate){if(!h.image.__webglTextureCube)h.image.__webglTextureCube=l.createTexture();l.activeTexture(l.TEXTURE0+k);l.bindTexture(l.TEXTURE_CUBE_MAP,h.image.__webglTextureCube);k=[];for(n=0;6>n;n++){m=k;r=n;if(y.autoScaleCubemaps){if(s=h.image[n],E=Ea,!(s.width<=E&&s.height<=E))u=Math.max(s.width,
-s.height),t=Math.floor(s.width*E/u),E=Math.floor(s.height*E/u),u=document.createElement("canvas"),u.width=t,u.height=E,u.getContext("2d").drawImage(s,0,0,s.width,s.height,0,0,t,E),s=u}else s=h.image[n];m[r]=s}n=k[0];m=0===(n.width&n.width-1)&&0===(n.height&n.height-1);r=A(h.format);s=A(h.type);w(l.TEXTURE_CUBE_MAP,h,m);for(n=0;6>n;n++)l.texImage2D(l.TEXTURE_CUBE_MAP_POSITIVE_X+n,0,r,r,s,k[n]);h.generateMipmaps&&m&&l.generateMipmap(l.TEXTURE_CUBE_MAP);h.needsUpdate=!1;if(h.onUpdate)h.onUpdate()}else l.activeTexture(l.TEXTURE0+
-k),l.bindTexture(l.TEXTURE_CUBE_MAP,h.image.__webglTextureCube)}else n instanceof THREE.WebGLRenderTargetCube?(h=n,l.activeTexture(l.TEXTURE0+k),l.bindTexture(l.TEXTURE_CUBE_MAP,h.__webglTexture)):y.setTexture(n,k)}else if("tv"===m){if(!h._array){h._array=[];for(m=0,r=h.texture.length;m<r;m++)h._array[m]=k+m}l.uniform1iv(n,h._array);for(m=0,r=h.texture.length;m<r;m++)(n=h.texture[m])&&y.setTexture(n,h._array[m])}if((d instanceof THREE.ShaderMaterial||d instanceof THREE.MeshPhongMaterial||d.envMap)&&
-null!==g.cameraPosition)b=a.matrixWorld.getPosition(),l.uniform3f(g.cameraPosition,b.x,b.y,b.z);(d instanceof THREE.MeshPhongMaterial||d instanceof THREE.MeshLambertMaterial||d instanceof THREE.ShaderMaterial||d.skinning)&&null!==g.viewMatrix&&l.uniformMatrix4fv(g.viewMatrix,!1,a._viewMatrixArray);d.skinning&&l.uniformMatrix4fv(g.boneGlobalMatrices,!1,f.boneMatrices)}l.uniformMatrix4fv(g.modelViewMatrix,!1,f._modelViewMatrixArray);g.normalMatrix&&l.uniformMatrix3fv(g.normalMatrix,!1,f._normalMatrixArray);
-(d instanceof THREE.ShaderMaterial||d.envMap||d.skinning||f.receiveShadow)&&null!==g.objectMatrix&&l.uniformMatrix4fv(g.objectMatrix,!1,f._objectMatrixArray);return e}function r(a,b){a._modelViewMatrix.multiplyToArray(b.matrixWorldInverse,a.matrixWorld,a._modelViewMatrixArray);var c=THREE.Matrix4.makeInvert3x3(a._modelViewMatrix);c&&c.transposeIntoArray(a._normalMatrixArray)}function s(a,b,c){ea!==a&&(a?l.enable(l.POLYGON_OFFSET_FILL):l.disable(l.POLYGON_OFFSET_FILL),ea=a);if(a&&(Ta!==b||Ja!==c))l.polygonOffset(b,
-c),Ta=b,Ja=c}function t(a,b){var c;"fragment"===a?c=l.createShader(l.FRAGMENT_SHADER):"vertex"===a&&(c=l.createShader(l.VERTEX_SHADER));l.shaderSource(c,b);l.compileShader(c);return!l.getShaderParameter(c,l.COMPILE_STATUS)?(console.error(l.getShaderInfoLog(c)),console.error(b),null):c}function w(a,b,c){c?(l.texParameteri(a,l.TEXTURE_WRAP_S,A(b.wrapS)),l.texParameteri(a,l.TEXTURE_WRAP_T,A(b.wrapT)),l.texParameteri(a,l.TEXTURE_MAG_FILTER,A(b.magFilter)),l.texParameteri(a,l.TEXTURE_MIN_FILTER,A(b.minFilter))):
-(l.texParameteri(a,l.TEXTURE_WRAP_S,l.CLAMP_TO_EDGE),l.texParameteri(a,l.TEXTURE_WRAP_T,l.CLAMP_TO_EDGE),l.texParameteri(a,l.TEXTURE_MAG_FILTER,v(b.magFilter)),l.texParameteri(a,l.TEXTURE_MIN_FILTER,v(b.minFilter)))}function u(a,b){l.bindRenderbuffer(l.RENDERBUFFER,a);b.depthBuffer&&!b.stencilBuffer?(l.renderbufferStorage(l.RENDERBUFFER,l.DEPTH_COMPONENT16,b.width,b.height),l.framebufferRenderbuffer(l.FRAMEBUFFER,l.DEPTH_ATTACHMENT,l.RENDERBUFFER,a)):b.depthBuffer&&b.stencilBuffer?(l.renderbufferStorage(l.RENDERBUFFER,
-l.DEPTH_STENCIL,b.width,b.height),l.framebufferRenderbuffer(l.FRAMEBUFFER,l.DEPTH_STENCIL_ATTACHMENT,l.RENDERBUFFER,a)):l.renderbufferStorage(l.RENDERBUFFER,l.RGBA4,b.width,b.height)}function v(a){switch(a){case THREE.NearestFilter:case THREE.NearestMipMapNearestFilter:case THREE.NearestMipMapLinearFilter:return l.NEAREST;default:return l.LINEAR}}function A(a){switch(a){case THREE.RepeatWrapping:return l.REPEAT;case THREE.ClampToEdgeWrapping:return l.CLAMP_TO_EDGE;case THREE.MirroredRepeatWrapping:return l.MIRRORED_REPEAT;
-case THREE.NearestFilter:return l.NEAREST;case THREE.NearestMipMapNearestFilter:return l.NEAREST_MIPMAP_NEAREST;case THREE.NearestMipMapLinearFilter:return l.NEAREST_MIPMAP_LINEAR;case THREE.LinearFilter:return l.LINEAR;case THREE.LinearMipMapNearestFilter:return l.LINEAR_MIPMAP_NEAREST;case THREE.LinearMipMapLinearFilter:return l.LINEAR_MIPMAP_LINEAR;case THREE.ByteType:return l.BYTE;case THREE.UnsignedByteType:return l.UNSIGNED_BYTE;case THREE.ShortType:return l.SHORT;case THREE.UnsignedShortType:return l.UNSIGNED_SHORT;
-case THREE.IntType:return l.INT;case THREE.UnsignedIntType:return l.UNSIGNED_INT;case THREE.FloatType:return l.FLOAT;case THREE.AlphaFormat:return l.ALPHA;case THREE.RGBFormat:return l.RGB;case THREE.RGBAFormat:return l.RGBA;case THREE.LuminanceFormat:return l.LUMINANCE;case THREE.LuminanceAlphaFormat:return l.LUMINANCE_ALPHA}return 0}var a=a||{},F=void 0!==a.canvas?a.canvas:document.createElement("canvas"),B=void 0!==a.precision?a.precision:"mediump",D=void 0!==a.alpha?a.alpha:!0,H=void 0!==a.premultipliedAlpha?
-a.premultipliedAlpha:!0,I=void 0!==a.antialias?a.antialias:!1,Q=void 0!==a.stencil?a.stencil:!0,P=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,L=void 0!==a.clearColor?new THREE.Color(a.clearColor):new THREE.Color(0),K=void 0!==a.clearAlpha?a.clearAlpha:0,O=void 0!==a.maxLights?a.maxLights:4;this.domElement=F;this.context=null;this.autoUpdateScene=this.autoUpdateObjects=this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.shadowMapEnabled=
-this.physicallyBasedShading=this.gammaOutput=this.gammaInput=!1;this.shadowMapCullFrontFaces=this.shadowMapSoft=this.shadowMapAutoUpdate=!0;this.shadowMapCascade=this.shadowMapDebug=!1;this.maxMorphTargets=8;this.maxMorphNormals=4;this.autoScaleCubemaps=!0;this.renderPluginsPre=[];this.renderPluginsPost=[];this.info={memory:{programs:0,geometries:0,textures:0},render:{calls:0,vertices:0,faces:0,points:0}};var y=this,l,$=[],C=null,E=null,S=-1,R=null,ca=null,ka=0,ia=null,N=null,aa=null,U=null,ba=null,
-ea=null,Ta=null,Ja=null,Ka=null,Ga=0,qa=0,ha=0,ib=0,db=0,lb=0,cb=new THREE.Frustum,Za=new THREE.Matrix4,Sa=new THREE.Vector4,La=new THREE.Vector3,sa={ambient:[0,0,0],directional:{length:0,colors:[],positions:[]},point:{length:0,colors:[],positions:[],distances:[]}};l=function(){var a;try{if(!(a=F.getContext("experimental-webgl",{alpha:D,premultipliedAlpha:H,antialias:I,stencil:Q,preserveDrawingBuffer:P})))throw"Error creating WebGL context.";console.log(navigator.userAgent+" | "+a.getParameter(a.VERSION)+
-" | "+a.getParameter(a.VENDOR)+" | "+a.getParameter(a.RENDERER)+" | "+a.getParameter(a.SHADING_LANGUAGE_VERSION))}catch(b){console.error(b)}return a}();l.clearColor(0,0,0,1);l.clearDepth(1);l.clearStencil(0);l.enable(l.DEPTH_TEST);l.depthFunc(l.LEQUAL);l.frontFace(l.CCW);l.cullFace(l.BACK);l.enable(l.CULL_FACE);l.enable(l.BLEND);l.blendEquation(l.FUNC_ADD);l.blendFunc(l.SRC_ALPHA,l.ONE_MINUS_SRC_ALPHA);l.clearColor(L.r,L.g,L.b,K);this.context=l;var za=l.getParameter(l.MAX_VERTEX_TEXTURE_IMAGE_UNITS);
-l.getParameter(l.MAX_TEXTURE_SIZE);var Ea=l.getParameter(l.MAX_CUBE_MAP_TEXTURE_SIZE);this.getContext=function(){return l};this.supportsVertexTextures=function(){return 0<za};this.setSize=function(a,b){F.width=a;F.height=b;this.setViewport(0,0,F.width,F.height)};this.setViewport=function(a,b,c,d){Ga=a;qa=b;ha=c;ib=d;l.viewport(Ga,qa,ha,ib)};this.setScissor=function(a,b,c,d){l.scissor(a,b,c,d)};this.enableScissorTest=function(a){a?l.enable(l.SCISSOR_TEST):l.disable(l.SCISSOR_TEST)};this.setClearColorHex=
-function(a,b){L.setHex(a);K=b;l.clearColor(L.r,L.g,L.b,K)};this.setClearColor=function(a,b){L.copy(a);K=b;l.clearColor(L.r,L.g,L.b,K)};this.getClearColor=function(){return L};this.getClearAlpha=function(){return K};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=l.COLOR_BUFFER_BIT;if(void 0===b||b)d|=l.DEPTH_BUFFER_BIT;if(void 0===c||c)d|=l.STENCIL_BUFFER_BIT;l.clear(d)};this.clearTarget=function(a,b,c,d){this.setRenderTarget(a);this.clear(b,c,d)};this.addPostPlugin=function(a){a.init(this);
-this.renderPluginsPost.push(a)};this.addPrePlugin=function(a){a.init(this);this.renderPluginsPre.push(a)};this.deallocateObject=function(a){if(a.__webglInit)if(a.__webglInit=!1,delete a._modelViewMatrix,delete a._normalMatrixArray,delete a._modelViewMatrixArray,delete a._objectMatrixArray,a instanceof THREE.Mesh)for(var b in a.geometry.geometryGroups){var c=a.geometry.geometryGroups[b];l.deleteBuffer(c.__webglVertexBuffer);l.deleteBuffer(c.__webglNormalBuffer);l.deleteBuffer(c.__webglTangentBuffer);
-l.deleteBuffer(c.__webglColorBuffer);l.deleteBuffer(c.__webglUVBuffer);l.deleteBuffer(c.__webglUV2Buffer);l.deleteBuffer(c.__webglSkinVertexABuffer);l.deleteBuffer(c.__webglSkinVertexBBuffer);l.deleteBuffer(c.__webglSkinIndicesBuffer);l.deleteBuffer(c.__webglSkinWeightsBuffer);l.deleteBuffer(c.__webglFaceBuffer);l.deleteBuffer(c.__webglLineBuffer);var d=void 0,f=void 0;if(c.numMorphTargets)for(d=0,f=c.numMorphTargets;d<f;d++)l.deleteBuffer(c.__webglMorphTargetsBuffers[d]);if(c.numMorphNormals)for(d=
-0,f=c.numMorphNormals;d<f;d++)l.deleteBuffer(c.__webglMorphNormalsBuffers[d]);if(c.__webglCustomAttributesList)for(d in d=void 0,c.__webglCustomAttributesList)l.deleteBuffer(c.__webglCustomAttributesList[d].buffer);y.info.memory.geometries--}else if(a instanceof THREE.Ribbon)a=a.geometry,l.deleteBuffer(a.__webglVertexBuffer),l.deleteBuffer(a.__webglColorBuffer),y.info.memory.geometries--;else if(a instanceof THREE.Line)a=a.geometry,l.deleteBuffer(a.__webglVertexBuffer),l.deleteBuffer(a.__webglColorBuffer),
-y.info.memory.geometries--;else if(a instanceof THREE.ParticleSystem)a=a.geometry,l.deleteBuffer(a.__webglVertexBuffer),l.deleteBuffer(a.__webglColorBuffer),y.info.memory.geometries--};this.deallocateTexture=function(a){if(a.__webglInit)a.__webglInit=!1,l.deleteTexture(a.__webglTexture),y.info.memory.textures--};this.updateShadowMap=function(a,b){C=null;S=R=ba=U=aa=-1;this.shadowMapPlugin.update(a,b)};this.renderBufferImmediate=function(a,b,c){if(!a.__webglVertexBuffer)a.__webglVertexBuffer=l.createBuffer();
-if(!a.__webglNormalBuffer)a.__webglNormalBuffer=l.createBuffer();a.hasPos&&(l.bindBuffer(l.ARRAY_BUFFER,a.__webglVertexBuffer),l.bufferData(l.ARRAY_BUFFER,a.positionArray,l.DYNAMIC_DRAW),l.enableVertexAttribArray(b.attributes.position),l.vertexAttribPointer(b.attributes.position,3,l.FLOAT,!1,0,0));if(a.hasNormal){l.bindBuffer(l.ARRAY_BUFFER,a.__webglNormalBuffer);if(c===THREE.FlatShading){var d,f,e,g,h,i,j,k,n,m,o=3*a.count;for(m=0;m<o;m+=9)c=a.normalArray,d=c[m],f=c[m+1],e=c[m+2],g=c[m+3],i=c[m+
-4],k=c[m+5],h=c[m+6],j=c[m+7],n=c[m+8],d=(d+g+h)/3,f=(f+i+j)/3,e=(e+k+n)/3,c[m]=d,c[m+1]=f,c[m+2]=e,c[m+3]=d,c[m+4]=f,c[m+5]=e,c[m+6]=d,c[m+7]=f,c[m+8]=e}l.bufferData(l.ARRAY_BUFFER,a.normalArray,l.DYNAMIC_DRAW);l.enableVertexAttribArray(b.attributes.normal);l.vertexAttribPointer(b.attributes.normal,3,l.FLOAT,!1,0,0)}l.drawArrays(l.TRIANGLES,0,a.count);a.count=0};this.renderBufferDirect=function(a,b,c,d,f,e){if(0!==d.opacity&&(c=n(a,b,c,d,e),a=c.attributes,b=!1,d=16777215*f.id+2*c.id+(d.wireframe?
-1:0),d!==R&&(R=d,b=!0),e instanceof THREE.Mesh)){e=f.offsets;d=0;for(c=e.length;d<c;++d)b&&(l.bindBuffer(l.ARRAY_BUFFER,f.vertexPositionBuffer),l.vertexAttribPointer(a.position,f.vertexPositionBuffer.itemSize,l.FLOAT,!1,0,12*e[d].index),0<=a.normal&&f.vertexNormalBuffer&&(l.bindBuffer(l.ARRAY_BUFFER,f.vertexNormalBuffer),l.vertexAttribPointer(a.normal,f.vertexNormalBuffer.itemSize,l.FLOAT,!1,0,12*e[d].index)),0<=a.uv&&f.vertexUvBuffer&&(f.vertexUvBuffer?(l.bindBuffer(l.ARRAY_BUFFER,f.vertexUvBuffer),
-l.vertexAttribPointer(a.uv,f.vertexUvBuffer.itemSize,l.FLOAT,!1,0,8*e[d].index),l.enableVertexAttribArray(a.uv)):l.disableVertexAttribArray(a.uv)),0<=a.color&&f.vertexColorBuffer&&(l.bindBuffer(l.ARRAY_BUFFER,f.vertexColorBuffer),l.vertexAttribPointer(a.color,f.vertexColorBuffer.itemSize,l.FLOAT,!1,0,16*e[d].index)),l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,f.vertexIndexBuffer)),l.drawElements(l.TRIANGLES,e[d].count,l.UNSIGNED_SHORT,2*e[d].start),y.info.render.calls++,y.info.render.vertices+=e[d].count,
-y.info.render.faces+=e[d].count/3}};this.renderBuffer=function(a,b,c,d,f,e){if(0!==d.opacity){var g,h,c=n(a,b,c,d,e),b=c.attributes,a=!1,c=16777215*f.id+2*c.id+(d.wireframe?1:0);c!==R&&(R=c,a=!0);if(!d.morphTargets&&0<=b.position)a&&(l.bindBuffer(l.ARRAY_BUFFER,f.__webglVertexBuffer),l.vertexAttribPointer(b.position,3,l.FLOAT,!1,0,0));else if(e.morphTargetBase){c=d.program.attributes;-1!==e.morphTargetBase?(l.bindBuffer(l.ARRAY_BUFFER,f.__webglMorphTargetsBuffers[e.morphTargetBase]),l.vertexAttribPointer(c.position,
-3,l.FLOAT,!1,0,0)):0<=c.position&&(l.bindBuffer(l.ARRAY_BUFFER,f.__webglVertexBuffer),l.vertexAttribPointer(c.position,3,l.FLOAT,!1,0,0));if(e.morphTargetForcedOrder.length){g=0;var i=e.morphTargetForcedOrder;for(h=e.morphTargetInfluences;g<d.numSupportedMorphTargets&&g<i.length;)l.bindBuffer(l.ARRAY_BUFFER,f.__webglMorphTargetsBuffers[i[g]]),l.vertexAttribPointer(c["morphTarget"+g],3,l.FLOAT,!1,0,0),d.morphNormals&&(l.bindBuffer(l.ARRAY_BUFFER,f.__webglMorphNormalsBuffers[i[g]]),l.vertexAttribPointer(c["morphNormal"+
-g],3,l.FLOAT,!1,0,0)),e.__webglMorphTargetInfluences[g]=h[i[g]],g++}else{var i=[],j=-1,k=0;h=e.morphTargetInfluences;var m,o=h.length;g=0;for(-1!==e.morphTargetBase&&(i[e.morphTargetBase]=!0);g<d.numSupportedMorphTargets;){for(m=0;m<o;m++)!i[m]&&h[m]>j&&(k=m,j=h[k]);l.bindBuffer(l.ARRAY_BUFFER,f.__webglMorphTargetsBuffers[k]);l.vertexAttribPointer(c["morphTarget"+g],3,l.FLOAT,!1,0,0);d.morphNormals&&(l.bindBuffer(l.ARRAY_BUFFER,f.__webglMorphNormalsBuffers[k]),l.vertexAttribPointer(c["morphNormal"+
-g],3,l.FLOAT,!1,0,0));e.__webglMorphTargetInfluences[g]=j;i[k]=1;j=-1;g++}}null!==d.program.uniforms.morphTargetInfluences&&l.uniform1fv(d.program.uniforms.morphTargetInfluences,e.__webglMorphTargetInfluences)}if(a){if(f.__webglCustomAttributesList)for(g=0,h=f.__webglCustomAttributesList.length;g<h;g++)c=f.__webglCustomAttributesList[g],0<=b[c.buffer.belongsToAttribute]&&(l.bindBuffer(l.ARRAY_BUFFER,c.buffer),l.vertexAttribPointer(b[c.buffer.belongsToAttribute],c.size,l.FLOAT,!1,0,0));0<=b.color&&
-(l.bindBuffer(l.ARRAY_BUFFER,f.__webglColorBuffer),l.vertexAttribPointer(b.color,3,l.FLOAT,!1,0,0));0<=b.normal&&(l.bindBuffer(l.ARRAY_BUFFER,f.__webglNormalBuffer),l.vertexAttribPointer(b.normal,3,l.FLOAT,!1,0,0));0<=b.tangent&&(l.bindBuffer(l.ARRAY_BUFFER,f.__webglTangentBuffer),l.vertexAttribPointer(b.tangent,4,l.FLOAT,!1,0,0));0<=b.uv&&(f.__webglUVBuffer?(l.bindBuffer(l.ARRAY_BUFFER,f.__webglUVBuffer),l.vertexAttribPointer(b.uv,2,l.FLOAT,!1,0,0),l.enableVertexAttribArray(b.uv)):l.disableVertexAttribArray(b.uv));
-0<=b.uv2&&(f.__webglUV2Buffer?(l.bindBuffer(l.ARRAY_BUFFER,f.__webglUV2Buffer),l.vertexAttribPointer(b.uv2,2,l.FLOAT,!1,0,0),l.enableVertexAttribArray(b.uv2)):l.disableVertexAttribArray(b.uv2));d.skinning&&0<=b.skinVertexA&&0<=b.skinVertexB&&0<=b.skinIndex&&0<=b.skinWeight&&(l.bindBuffer(l.ARRAY_BUFFER,f.__webglSkinVertexABuffer),l.vertexAttribPointer(b.skinVertexA,4,l.FLOAT,!1,0,0),l.bindBuffer(l.ARRAY_BUFFER,f.__webglSkinVertexBBuffer),l.vertexAttribPointer(b.skinVertexB,4,l.FLOAT,!1,0,0),l.bindBuffer(l.ARRAY_BUFFER,
-f.__webglSkinIndicesBuffer),l.vertexAttribPointer(b.skinIndex,4,l.FLOAT,!1,0,0),l.bindBuffer(l.ARRAY_BUFFER,f.__webglSkinWeightsBuffer),l.vertexAttribPointer(b.skinWeight,4,l.FLOAT,!1,0,0))}e instanceof THREE.Mesh?(d.wireframe?(d=d.wireframeLinewidth,d!==Ka&&(l.lineWidth(d),Ka=d),a&&l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,f.__webglLineBuffer),l.drawElements(l.LINES,f.__webglLineCount,l.UNSIGNED_SHORT,0)):(a&&l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,f.__webglFaceBuffer),l.drawElements(l.TRIANGLES,f.__webglFaceCount,
-l.UNSIGNED_SHORT,0)),y.info.render.calls++,y.info.render.vertices+=f.__webglFaceCount,y.info.render.faces+=f.__webglFaceCount/3):e instanceof THREE.Line?(e=e.type===THREE.LineStrip?l.LINE_STRIP:l.LINES,d=d.linewidth,d!==Ka&&(l.lineWidth(d),Ka=d),l.drawArrays(e,0,f.__webglLineCount),y.info.render.calls++):e instanceof THREE.ParticleSystem?(l.drawArrays(l.POINTS,0,f.__webglParticleCount),y.info.render.calls++,y.info.render.points+=f.__webglParticleCount):e instanceof THREE.Ribbon&&(l.drawArrays(l.TRIANGLE_STRIP,
-0,f.__webglVertexCount),y.info.render.calls++)}};this.render=function(a,b,c,d){var f,g,k,m,n=a.__lights,o=a.fog;S=-1;this.autoUpdateObjects&&this.initWebGLObjects(a);void 0===b.parent&&(console.warn("DEPRECATED: Camera hasn't been added to a Scene. Adding it..."),a.add(b));this.autoUpdateScene&&a.updateMatrixWorld();h(this.renderPluginsPre,a,b);y.info.render.calls=0;y.info.render.vertices=0;y.info.render.faces=0;y.info.render.points=0;b.matrixWorldInverse.getInverse(b.matrixWorld);if(!b._viewMatrixArray)b._viewMatrixArray=
-new Float32Array(16);b.matrixWorldInverse.flattenToArray(b._viewMatrixArray);if(!b._projectionMatrixArray)b._projectionMatrixArray=new Float32Array(16);b.projectionMatrix.flattenToArray(b._projectionMatrixArray);Za.multiply(b.projectionMatrix,b.matrixWorldInverse);cb.setFromMatrix(Za);this.setRenderTarget(c);(this.autoClear||d)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil);m=a.__webglObjects;for(d=0,f=m.length;d<f;d++)if(g=m[d],k=g.object,g.render=!1,k.visible&&(!(k instanceof
-THREE.Mesh||k instanceof THREE.ParticleSystem)||!k.frustumCulled||cb.contains(k))){k.matrixWorld.flattenToArray(k._objectMatrixArray);r(k,b);var p=g,q=p.object,t=p.buffer,E=void 0,E=E=void 0,E=q.material;if(E instanceof THREE.MeshFaceMaterial){if(E=t.materialIndex,0<=E)E=q.geometry.materials[E],E.transparent?(p.transparent=E,p.opaque=null):(p.opaque=E,p.transparent=null)}else if(E)E.transparent?(p.transparent=E,p.opaque=null):(p.opaque=E,p.transparent=null);g.render=!0;if(this.sortObjects)k.renderDepth?
-g.z=k.renderDepth:(Sa.copy(k.position),Za.multiplyVector3(Sa),g.z=Sa.z)}this.sortObjects&&m.sort(e);m=a.__webglObjectsImmediate;for(d=0,f=m.length;d<f;d++)if(g=m[d],k=g.object,k.visible)k.matrixAutoUpdate&&k.matrixWorld.flattenToArray(k._objectMatrixArray),r(k,b),k=g.object.material,k.transparent?(g.transparent=k,g.opaque=null):(g.opaque=k,g.transparent=null);a.overrideMaterial?(this.setBlending(a.overrideMaterial.blending),this.setDepthTest(a.overrideMaterial.depthTest),this.setDepthWrite(a.overrideMaterial.depthWrite),
-s(a.overrideMaterial.polygonOffset,a.overrideMaterial.polygonOffsetFactor,a.overrideMaterial.polygonOffsetUnits),i(a.__webglObjects,!1,"",b,n,o,!0,a.overrideMaterial),j(a.__webglObjectsImmediate,"",b,n,o,!1,a.overrideMaterial)):(this.setBlending(THREE.NormalBlending),i(a.__webglObjects,!0,"opaque",b,n,o,!1),j(a.__webglObjectsImmediate,"opaque",b,n,o,!1),i(a.__webglObjects,!1,"transparent",b,n,o,!0),j(a.__webglObjectsImmediate,"transparent",b,n,o,!0));h(this.renderPluginsPost,a,b);c&&c.generateMipmaps&&
-c.minFilter!==THREE.NearestFilter&&c.minFilter!==THREE.LinearFilter&&(c instanceof THREE.WebGLRenderTargetCube?(l.bindTexture(l.TEXTURE_CUBE_MAP,c.__webglTexture),l.generateMipmap(l.TEXTURE_CUBE_MAP),l.bindTexture(l.TEXTURE_CUBE_MAP,null)):(l.bindTexture(l.TEXTURE_2D,c.__webglTexture),l.generateMipmap(l.TEXTURE_2D),l.bindTexture(l.TEXTURE_2D,null)));this.setDepthTest(!0);this.setDepthWrite(!0)};this.renderImmediateObject=function(a,b,c,d,f){var e=n(a,b,c,d,f);R=-1;y.setObjectFaces(f);f.immediateRenderCallback?
-f.immediateRenderCallback(e,l,cb):f.render(function(a){y.renderBufferImmediate(a,e,d.shading)})};this.initWebGLObjects=function(a){if(!a.__webglObjects)a.__webglObjects=[],a.__webglObjectsImmediate=[],a.__webglSprites=[],a.__webglFlares=[];for(;a.__objectsAdded.length;){var e=a.__objectsAdded[0],h=a,i=void 0,j=void 0,n=void 0;if(!e.__webglInit)if(e.__webglInit=!0,e._modelViewMatrix=new THREE.Matrix4,e._normalMatrixArray=new Float32Array(9),e._modelViewMatrixArray=new Float32Array(16),e._objectMatrixArray=
-new Float32Array(16),e.matrixWorld.flattenToArray(e._objectMatrixArray),e instanceof THREE.Mesh){if(j=e.geometry,j instanceof THREE.Geometry){if(void 0===j.geometryGroups){var r=j,s=void 0,t=void 0,E=void 0,u=void 0,v=void 0,w=void 0,C=void 0,B={},D=r.morphTargets.length,R=r.morphNormals.length;r.geometryGroups={};for(s=0,t=r.faces.length;s<t;s++)E=r.faces[s],u=E.materialIndex,w=void 0!==u?u:-1,void 0===B[w]&&(B[w]={hash:w,counter:0}),C=B[w].hash+"_"+B[w].counter,void 0===r.geometryGroups[C]&&(r.geometryGroups[C]=
-{faces3:[],faces4:[],materialIndex:u,vertices:0,numMorphTargets:D,numMorphNormals:R}),v=E instanceof THREE.Face3?3:4,65535<r.geometryGroups[C].vertices+v&&(B[w].counter+=1,C=B[w].hash+"_"+B[w].counter,void 0===r.geometryGroups[C]&&(r.geometryGroups[C]={faces3:[],faces4:[],materialIndex:u,vertices:0,numMorphTargets:D,numMorphNormals:R})),E instanceof THREE.Face3?r.geometryGroups[C].faces3.push(s):r.geometryGroups[C].faces4.push(s),r.geometryGroups[C].vertices+=v;r.geometryGroupsList=[];var A=void 0;
-for(A in r.geometryGroups)r.geometryGroups[A].id=ka++,r.geometryGroupsList.push(r.geometryGroups[A])}for(i in j.geometryGroups)if(n=j.geometryGroups[i],!n.__webglVertexBuffer){var S=n;S.__webglVertexBuffer=l.createBuffer();S.__webglNormalBuffer=l.createBuffer();S.__webglTangentBuffer=l.createBuffer();S.__webglColorBuffer=l.createBuffer();S.__webglUVBuffer=l.createBuffer();S.__webglUV2Buffer=l.createBuffer();S.__webglSkinVertexABuffer=l.createBuffer();S.__webglSkinVertexBBuffer=l.createBuffer();S.__webglSkinIndicesBuffer=
-l.createBuffer();S.__webglSkinWeightsBuffer=l.createBuffer();S.__webglFaceBuffer=l.createBuffer();S.__webglLineBuffer=l.createBuffer();var F=void 0,H=void 0;if(S.numMorphTargets){S.__webglMorphTargetsBuffers=[];for(F=0,H=S.numMorphTargets;F<H;F++)S.__webglMorphTargetsBuffers.push(l.createBuffer())}if(S.numMorphNormals){S.__webglMorphNormalsBuffers=[];for(F=0,H=S.numMorphNormals;F<H;F++)S.__webglMorphNormalsBuffers.push(l.createBuffer())}y.info.memory.geometries++;var N=n,I=e,K=I.geometry,ca=N.faces3,
-O=N.faces4,L=3*ca.length+4*O.length,P=1*ca.length+2*O.length,ia=3*ca.length+4*O.length,U=c(I,N),Q=f(U),aa=d(U),ba=U.vertexColors?U.vertexColors:!1;N.__vertexArray=new Float32Array(3*L);if(aa)N.__normalArray=new Float32Array(3*L);if(K.hasTangents)N.__tangentArray=new Float32Array(4*L);if(ba)N.__colorArray=new Float32Array(3*L);if(Q){if(0<K.faceUvs.length||0<K.faceVertexUvs.length)N.__uvArray=new Float32Array(2*L);if(1<K.faceUvs.length||1<K.faceVertexUvs.length)N.__uv2Array=new Float32Array(2*L)}if(I.geometry.skinWeights.length&&
-I.geometry.skinIndices.length)N.__skinVertexAArray=new Float32Array(4*L),N.__skinVertexBArray=new Float32Array(4*L),N.__skinIndexArray=new Float32Array(4*L),N.__skinWeightArray=new Float32Array(4*L);N.__faceArray=new Uint16Array(3*P);N.__lineArray=new Uint16Array(2*ia);var ea=void 0,$=void 0;if(N.numMorphTargets){N.__morphTargetsArrays=[];for(ea=0,$=N.numMorphTargets;ea<$;ea++)N.__morphTargetsArrays.push(new Float32Array(3*L))}if(N.numMorphNormals){N.__morphNormalsArrays=[];for(ea=0,$=N.numMorphNormals;ea<
-$;ea++)N.__morphNormalsArrays.push(new Float32Array(3*L))}N.__webglFaceCount=3*P;N.__webglLineCount=2*ia;if(U.attributes){if(void 0===N.__webglCustomAttributesList)N.__webglCustomAttributesList=[];var Ja=void 0;for(Ja in U.attributes){var Ta=U.attributes[Ja],ha={},Ka;for(Ka in Ta)ha[Ka]=Ta[Ka];if(!ha.__webglInitialized||ha.createUniqueBuffers){ha.__webglInitialized=!0;var qa=1;"v2"===ha.type?qa=2:"v3"===ha.type?qa=3:"v4"===ha.type?qa=4:"c"===ha.type&&(qa=3);ha.size=qa;ha.array=new Float32Array(L*
-qa);ha.buffer=l.createBuffer();ha.buffer.belongsToAttribute=Ja;Ta.needsUpdate=!0;ha.__original=Ta}N.__webglCustomAttributesList.push(ha)}}N.__inittedArrays=!0;j.__dirtyVertices=!0;j.__dirtyMorphTargets=!0;j.__dirtyElements=!0;j.__dirtyUvs=!0;j.__dirtyNormals=!0;j.__dirtyTangents=!0;j.__dirtyColors=!0}}}else if(e instanceof THREE.Ribbon){if(j=e.geometry,!j.__webglVertexBuffer){var Ga=j;Ga.__webglVertexBuffer=l.createBuffer();Ga.__webglColorBuffer=l.createBuffer();y.info.memory.geometries++;var sa=
-j,za=sa.vertices.length;sa.__vertexArray=new Float32Array(3*za);sa.__colorArray=new Float32Array(3*za);sa.__webglVertexCount=za;j.__dirtyVertices=!0;j.__dirtyColors=!0}}else if(e instanceof THREE.Line){if(j=e.geometry,!j.__webglVertexBuffer){var La=j;La.__webglVertexBuffer=l.createBuffer();La.__webglColorBuffer=l.createBuffer();y.info.memory.geometries++;var Ea=j,ib=e,db=Ea.vertices.length;Ea.__vertexArray=new Float32Array(3*db);Ea.__colorArray=new Float32Array(3*db);Ea.__webglLineCount=db;b(Ea,ib);
-j.__dirtyVertices=!0;j.__dirtyColors=!0}}else if(e instanceof THREE.ParticleSystem&&(j=e.geometry,!j.__webglVertexBuffer)){var Za=j;Za.__webglVertexBuffer=l.createBuffer();Za.__webglColorBuffer=l.createBuffer();y.info.geometries++;var Sa=j,lb=e,cb=Sa.vertices.length;Sa.__vertexArray=new Float32Array(3*cb);Sa.__colorArray=new Float32Array(3*cb);Sa.__sortArray=[];Sa.__webglParticleCount=cb;b(Sa,lb);j.__dirtyVertices=!0;j.__dirtyColors=!0}if(!e.__webglActive){if(e instanceof THREE.Mesh)if(j=e.geometry,
-j instanceof THREE.BufferGeometry)k(h.__webglObjects,j,e);else for(i in j.geometryGroups)n=j.geometryGroups[i],k(h.__webglObjects,n,e);else e instanceof THREE.Ribbon||e instanceof THREE.Line||e instanceof THREE.ParticleSystem?(j=e.geometry,k(h.__webglObjects,j,e)):void 0!==THREE.MarchingCubes&&e instanceof THREE.MarchingCubes||e.immediateRenderCallback?h.__webglObjectsImmediate.push({object:e,opaque:null,transparent:null}):e instanceof THREE.Sprite?h.__webglSprites.push(e):e instanceof THREE.LensFlare&&
-h.__webglFlares.push(e);e.__webglActive=!0}a.__objectsAdded.splice(0,1)}for(;a.__objectsRemoved.length;){var fb=a.__objectsRemoved[0],Fc=a;fb instanceof THREE.Mesh||fb instanceof THREE.ParticleSystem||fb instanceof THREE.Ribbon||fb instanceof THREE.Line?o(Fc.__webglObjects,fb):fb instanceof THREE.Sprite?p(Fc.__webglSprites,fb):fb instanceof THREE.LensFlare?p(Fc.__webglFlares,fb):(fb instanceof THREE.MarchingCubes||fb.immediateRenderCallback)&&o(Fc.__webglObjectsImmediate,fb);fb.__webglActive=!1;a.__objectsRemoved.splice(0,
-1)}for(var Wc=0,rd=a.__webglObjects.length;Wc<rd;Wc++){var nb=a.__webglObjects[Wc].object,ja=nb.geometry,qc=void 0,ic=void 0,Xa=void 0;if(nb instanceof THREE.Mesh)if(ja instanceof THREE.BufferGeometry)ja.__dirtyVertices=!1,ja.__dirtyElements=!1,ja.__dirtyUvs=!1,ja.__dirtyNormals=!1,ja.__dirtyColors=!1;else{for(var Xc=0,sd=ja.geometryGroupsList.length;Xc<sd;Xc++)if(qc=ja.geometryGroupsList[Xc],Xa=c(nb,qc),ic=Xa.attributes&&q(Xa),ja.__dirtyVertices||ja.__dirtyMorphTargets||ja.__dirtyElements||ja.__dirtyUvs||
-ja.__dirtyNormals||ja.__dirtyColors||ja.__dirtyTangents||ic){var fa=qc,td=nb,$a=l.DYNAMIC_DRAW,ud=!ja.dynamic,bc=Xa;if(fa.__inittedArrays){var gd=d(bc),Yc=bc.vertexColors?bc.vertexColors:!1,hd=f(bc),Gc=gd===THREE.SmoothShading,G=void 0,V=void 0,kb=void 0,M=void 0,jc=void 0,Ob=void 0,ob=void 0,Hc=void 0,Hb=void 0,kc=void 0,lc=void 0,W=void 0,X=void 0,Y=void 0,oa=void 0,pb=void 0,qb=void 0,rb=void 0,rc=void 0,sb=void 0,tb=void 0,ub=void 0,sc=void 0,vb=void 0,wb=void 0,xb=void 0,tc=void 0,yb=void 0,
-zb=void 0,Ab=void 0,uc=void 0,Bb=void 0,Cb=void 0,Db=void 0,vc=void 0,Pb=void 0,Qb=void 0,Rb=void 0,Ic=void 0,Sb=void 0,Tb=void 0,Ub=void 0,Jc=void 0,la=void 0,id=void 0,Vb=void 0,mc=void 0,nc=void 0,Ma=void 0,jd=void 0,Ha=void 0,Ia=void 0,Wb=void 0,Ib=void 0,Aa=0,Da=0,Jb=0,Kb=0,gb=0,Ra=0,pa=0,Ua=0,Ba=0,J=0,da=0,z=0,ab=void 0,Na=fa.__vertexArray,wc=fa.__uvArray,xc=fa.__uv2Array,hb=fa.__normalArray,ta=fa.__tangentArray,Oa=fa.__colorArray,ua=fa.__skinVertexAArray,va=fa.__skinVertexBArray,wa=fa.__skinIndexArray,
-xa=fa.__skinWeightArray,Zc=fa.__morphTargetsArrays,$c=fa.__morphNormalsArrays,ad=fa.__webglCustomAttributesList,x=void 0,Eb=fa.__faceArray,bb=fa.__lineArray,Va=td.geometry,vd=Va.__dirtyElements,kd=Va.__dirtyUvs,wd=Va.__dirtyNormals,xd=Va.__dirtyTangents,yd=Va.__dirtyColors,zd=Va.__dirtyMorphTargets,cc=Va.vertices,ma=fa.faces3,na=fa.faces4,Ca=Va.faces,bd=Va.faceVertexUvs[0],cd=Va.faceVertexUvs[1],dc=Va.skinVerticesA,ec=Va.skinVerticesB,fc=Va.skinIndices,Xb=Va.skinWeights,Yb=Va.morphTargets,Kc=Va.morphNormals;
-if(Va.__dirtyVertices){for(G=0,V=ma.length;G<V;G++)M=Ca[ma[G]],W=cc[M.a].position,X=cc[M.b].position,Y=cc[M.c].position,Na[Da]=W.x,Na[Da+1]=W.y,Na[Da+2]=W.z,Na[Da+3]=X.x,Na[Da+4]=X.y,Na[Da+5]=X.z,Na[Da+6]=Y.x,Na[Da+7]=Y.y,Na[Da+8]=Y.z,Da+=9;for(G=0,V=na.length;G<V;G++)M=Ca[na[G]],W=cc[M.a].position,X=cc[M.b].position,Y=cc[M.c].position,oa=cc[M.d].position,Na[Da]=W.x,Na[Da+1]=W.y,Na[Da+2]=W.z,Na[Da+3]=X.x,Na[Da+4]=X.y,Na[Da+5]=X.z,Na[Da+6]=Y.x,Na[Da+7]=Y.y,Na[Da+8]=Y.z,Na[Da+9]=oa.x,Na[Da+10]=oa.y,
-Na[Da+11]=oa.z,Da+=12;l.bindBuffer(l.ARRAY_BUFFER,fa.__webglVertexBuffer);l.bufferData(l.ARRAY_BUFFER,Na,$a)}if(zd)for(Ma=0,jd=Yb.length;Ma<jd;Ma++){da=0;for(G=0,V=ma.length;G<V;G++){Wb=ma[G];M=Ca[Wb];W=Yb[Ma].vertices[M.a].position;X=Yb[Ma].vertices[M.b].position;Y=Yb[Ma].vertices[M.c].position;Ha=Zc[Ma];Ha[da]=W.x;Ha[da+1]=W.y;Ha[da+2]=W.z;Ha[da+3]=X.x;Ha[da+4]=X.y;Ha[da+5]=X.z;Ha[da+6]=Y.x;Ha[da+7]=Y.y;Ha[da+8]=Y.z;if(bc.morphNormals)Gc?(Ib=Kc[Ma].vertexNormals[Wb],sb=Ib.a,tb=Ib.b,ub=Ib.c):ub=
-tb=sb=Kc[Ma].faceNormals[Wb],Ia=$c[Ma],Ia[da]=sb.x,Ia[da+1]=sb.y,Ia[da+2]=sb.z,Ia[da+3]=tb.x,Ia[da+4]=tb.y,Ia[da+5]=tb.z,Ia[da+6]=ub.x,Ia[da+7]=ub.y,Ia[da+8]=ub.z;da+=9}for(G=0,V=na.length;G<V;G++){Wb=na[G];M=Ca[Wb];W=Yb[Ma].vertices[M.a].position;X=Yb[Ma].vertices[M.b].position;Y=Yb[Ma].vertices[M.c].position;oa=Yb[Ma].vertices[M.d].position;Ha=Zc[Ma];Ha[da]=W.x;Ha[da+1]=W.y;Ha[da+2]=W.z;Ha[da+3]=X.x;Ha[da+4]=X.y;Ha[da+5]=X.z;Ha[da+6]=Y.x;Ha[da+7]=Y.y;Ha[da+8]=Y.z;Ha[da+9]=oa.x;Ha[da+10]=oa.y;Ha[da+
-11]=oa.z;if(bc.morphNormals)Gc?(Ib=Kc[Ma].vertexNormals[Wb],sb=Ib.a,tb=Ib.b,ub=Ib.c,sc=Ib.d):sc=ub=tb=sb=Kc[Ma].faceNormals[Wb],Ia=$c[Ma],Ia[da]=sb.x,Ia[da+1]=sb.y,Ia[da+2]=sb.z,Ia[da+3]=tb.x,Ia[da+4]=tb.y,Ia[da+5]=tb.z,Ia[da+6]=ub.x,Ia[da+7]=ub.y,Ia[da+8]=ub.z,Ia[da+9]=sc.x,Ia[da+10]=sc.y,Ia[da+11]=sc.z;da+=12}l.bindBuffer(l.ARRAY_BUFFER,fa.__webglMorphTargetsBuffers[Ma]);l.bufferData(l.ARRAY_BUFFER,Zc[Ma],$a);bc.morphNormals&&(l.bindBuffer(l.ARRAY_BUFFER,fa.__webglMorphNormalsBuffers[Ma]),l.bufferData(l.ARRAY_BUFFER,
-$c[Ma],$a))}if(Xb.length){for(G=0,V=ma.length;G<V;G++)M=Ca[ma[G]],yb=Xb[M.a],zb=Xb[M.b],Ab=Xb[M.c],xa[J]=yb.x,xa[J+1]=yb.y,xa[J+2]=yb.z,xa[J+3]=yb.w,xa[J+4]=zb.x,xa[J+5]=zb.y,xa[J+6]=zb.z,xa[J+7]=zb.w,xa[J+8]=Ab.x,xa[J+9]=Ab.y,xa[J+10]=Ab.z,xa[J+11]=Ab.w,Bb=fc[M.a],Cb=fc[M.b],Db=fc[M.c],wa[J]=Bb.x,wa[J+1]=Bb.y,wa[J+2]=Bb.z,wa[J+3]=Bb.w,wa[J+4]=Cb.x,wa[J+5]=Cb.y,wa[J+6]=Cb.z,wa[J+7]=Cb.w,wa[J+8]=Db.x,wa[J+9]=Db.y,wa[J+10]=Db.z,wa[J+11]=Db.w,Pb=dc[M.a],Qb=dc[M.b],Rb=dc[M.c],ua[J]=Pb.x,ua[J+1]=Pb.y,
-ua[J+2]=Pb.z,ua[J+3]=1,ua[J+4]=Qb.x,ua[J+5]=Qb.y,ua[J+6]=Qb.z,ua[J+7]=1,ua[J+8]=Rb.x,ua[J+9]=Rb.y,ua[J+10]=Rb.z,ua[J+11]=1,Sb=ec[M.a],Tb=ec[M.b],Ub=ec[M.c],va[J]=Sb.x,va[J+1]=Sb.y,va[J+2]=Sb.z,va[J+3]=1,va[J+4]=Tb.x,va[J+5]=Tb.y,va[J+6]=Tb.z,va[J+7]=1,va[J+8]=Ub.x,va[J+9]=Ub.y,va[J+10]=Ub.z,va[J+11]=1,J+=12;for(G=0,V=na.length;G<V;G++)M=Ca[na[G]],yb=Xb[M.a],zb=Xb[M.b],Ab=Xb[M.c],uc=Xb[M.d],xa[J]=yb.x,xa[J+1]=yb.y,xa[J+2]=yb.z,xa[J+3]=yb.w,xa[J+4]=zb.x,xa[J+5]=zb.y,xa[J+6]=zb.z,xa[J+7]=zb.w,xa[J+8]=
-Ab.x,xa[J+9]=Ab.y,xa[J+10]=Ab.z,xa[J+11]=Ab.w,xa[J+12]=uc.x,xa[J+13]=uc.y,xa[J+14]=uc.z,xa[J+15]=uc.w,Bb=fc[M.a],Cb=fc[M.b],Db=fc[M.c],vc=fc[M.d],wa[J]=Bb.x,wa[J+1]=Bb.y,wa[J+2]=Bb.z,wa[J+3]=Bb.w,wa[J+4]=Cb.x,wa[J+5]=Cb.y,wa[J+6]=Cb.z,wa[J+7]=Cb.w,wa[J+8]=Db.x,wa[J+9]=Db.y,wa[J+10]=Db.z,wa[J+11]=Db.w,wa[J+12]=vc.x,wa[J+13]=vc.y,wa[J+14]=vc.z,wa[J+15]=vc.w,Pb=dc[M.a],Qb=dc[M.b],Rb=dc[M.c],Ic=dc[M.d],ua[J]=Pb.x,ua[J+1]=Pb.y,ua[J+2]=Pb.z,ua[J+3]=1,ua[J+4]=Qb.x,ua[J+5]=Qb.y,ua[J+6]=Qb.z,ua[J+7]=1,ua[J+
-8]=Rb.x,ua[J+9]=Rb.y,ua[J+10]=Rb.z,ua[J+11]=1,ua[J+12]=Ic.x,ua[J+13]=Ic.y,ua[J+14]=Ic.z,ua[J+15]=1,Sb=ec[M.a],Tb=ec[M.b],Ub=ec[M.c],Jc=ec[M.d],va[J]=Sb.x,va[J+1]=Sb.y,va[J+2]=Sb.z,va[J+3]=1,va[J+4]=Tb.x,va[J+5]=Tb.y,va[J+6]=Tb.z,va[J+7]=1,va[J+8]=Ub.x,va[J+9]=Ub.y,va[J+10]=Ub.z,va[J+11]=1,va[J+12]=Jc.x,va[J+13]=Jc.y,va[J+14]=Jc.z,va[J+15]=1,J+=16;0<J&&(l.bindBuffer(l.ARRAY_BUFFER,fa.__webglSkinVertexABuffer),l.bufferData(l.ARRAY_BUFFER,ua,$a),l.bindBuffer(l.ARRAY_BUFFER,fa.__webglSkinVertexBBuffer),
-l.bufferData(l.ARRAY_BUFFER,va,$a),l.bindBuffer(l.ARRAY_BUFFER,fa.__webglSkinIndicesBuffer),l.bufferData(l.ARRAY_BUFFER,wa,$a),l.bindBuffer(l.ARRAY_BUFFER,fa.__webglSkinWeightsBuffer),l.bufferData(l.ARRAY_BUFFER,xa,$a))}if(yd&&Yc){for(G=0,V=ma.length;G<V;G++)M=Ca[ma[G]],ob=M.vertexColors,Hc=M.color,3===ob.length&&Yc===THREE.VertexColors?(vb=ob[0],wb=ob[1],xb=ob[2]):xb=wb=vb=Hc,Oa[Ba]=vb.r,Oa[Ba+1]=vb.g,Oa[Ba+2]=vb.b,Oa[Ba+3]=wb.r,Oa[Ba+4]=wb.g,Oa[Ba+5]=wb.b,Oa[Ba+6]=xb.r,Oa[Ba+7]=xb.g,Oa[Ba+8]=xb.b,
-Ba+=9;for(G=0,V=na.length;G<V;G++)M=Ca[na[G]],ob=M.vertexColors,Hc=M.color,4===ob.length&&Yc===THREE.VertexColors?(vb=ob[0],wb=ob[1],xb=ob[2],tc=ob[3]):tc=xb=wb=vb=Hc,Oa[Ba]=vb.r,Oa[Ba+1]=vb.g,Oa[Ba+2]=vb.b,Oa[Ba+3]=wb.r,Oa[Ba+4]=wb.g,Oa[Ba+5]=wb.b,Oa[Ba+6]=xb.r,Oa[Ba+7]=xb.g,Oa[Ba+8]=xb.b,Oa[Ba+9]=tc.r,Oa[Ba+10]=tc.g,Oa[Ba+11]=tc.b,Ba+=12;0<Ba&&(l.bindBuffer(l.ARRAY_BUFFER,fa.__webglColorBuffer),l.bufferData(l.ARRAY_BUFFER,Oa,$a))}if(xd&&Va.hasTangents){for(G=0,V=ma.length;G<V;G++)M=Ca[ma[G]],Hb=
-M.vertexTangents,pb=Hb[0],qb=Hb[1],rb=Hb[2],ta[pa]=pb.x,ta[pa+1]=pb.y,ta[pa+2]=pb.z,ta[pa+3]=pb.w,ta[pa+4]=qb.x,ta[pa+5]=qb.y,ta[pa+6]=qb.z,ta[pa+7]=qb.w,ta[pa+8]=rb.x,ta[pa+9]=rb.y,ta[pa+10]=rb.z,ta[pa+11]=rb.w,pa+=12;for(G=0,V=na.length;G<V;G++)M=Ca[na[G]],Hb=M.vertexTangents,pb=Hb[0],qb=Hb[1],rb=Hb[2],rc=Hb[3],ta[pa]=pb.x,ta[pa+1]=pb.y,ta[pa+2]=pb.z,ta[pa+3]=pb.w,ta[pa+4]=qb.x,ta[pa+5]=qb.y,ta[pa+6]=qb.z,ta[pa+7]=qb.w,ta[pa+8]=rb.x,ta[pa+9]=rb.y,ta[pa+10]=rb.z,ta[pa+11]=rb.w,ta[pa+12]=rc.x,ta[pa+
-13]=rc.y,ta[pa+14]=rc.z,ta[pa+15]=rc.w,pa+=16;l.bindBuffer(l.ARRAY_BUFFER,fa.__webglTangentBuffer);l.bufferData(l.ARRAY_BUFFER,ta,$a)}if(wd&&gd){for(G=0,V=ma.length;G<V;G++)if(M=Ca[ma[G]],jc=M.vertexNormals,Ob=M.normal,3===jc.length&&Gc)for(la=0;3>la;la++)Vb=jc[la],hb[Ra]=Vb.x,hb[Ra+1]=Vb.y,hb[Ra+2]=Vb.z,Ra+=3;else for(la=0;3>la;la++)hb[Ra]=Ob.x,hb[Ra+1]=Ob.y,hb[Ra+2]=Ob.z,Ra+=3;for(G=0,V=na.length;G<V;G++)if(M=Ca[na[G]],jc=M.vertexNormals,Ob=M.normal,4===jc.length&&Gc)for(la=0;4>la;la++)Vb=jc[la],
-hb[Ra]=Vb.x,hb[Ra+1]=Vb.y,hb[Ra+2]=Vb.z,Ra+=3;else for(la=0;4>la;la++)hb[Ra]=Ob.x,hb[Ra+1]=Ob.y,hb[Ra+2]=Ob.z,Ra+=3;l.bindBuffer(l.ARRAY_BUFFER,fa.__webglNormalBuffer);l.bufferData(l.ARRAY_BUFFER,hb,$a)}if(kd&&bd&&hd){for(G=0,V=ma.length;G<V;G++)if(kb=ma[G],M=Ca[kb],kc=bd[kb],void 0!==kc)for(la=0;3>la;la++)mc=kc[la],wc[Jb]=mc.u,wc[Jb+1]=mc.v,Jb+=2;for(G=0,V=na.length;G<V;G++)if(kb=na[G],M=Ca[kb],kc=bd[kb],void 0!==kc)for(la=0;4>la;la++)mc=kc[la],wc[Jb]=mc.u,wc[Jb+1]=mc.v,Jb+=2;0<Jb&&(l.bindBuffer(l.ARRAY_BUFFER,
-fa.__webglUVBuffer),l.bufferData(l.ARRAY_BUFFER,wc,$a))}if(kd&&cd&&hd){for(G=0,V=ma.length;G<V;G++)if(kb=ma[G],M=Ca[kb],lc=cd[kb],void 0!==lc)for(la=0;3>la;la++)nc=lc[la],xc[Kb]=nc.u,xc[Kb+1]=nc.v,Kb+=2;for(G=0,V=na.length;G<V;G++)if(kb=na[G],M=Ca[kb],lc=cd[kb],void 0!==lc)for(la=0;4>la;la++)nc=lc[la],xc[Kb]=nc.u,xc[Kb+1]=nc.v,Kb+=2;0<Kb&&(l.bindBuffer(l.ARRAY_BUFFER,fa.__webglUV2Buffer),l.bufferData(l.ARRAY_BUFFER,xc,$a))}if(vd){for(G=0,V=ma.length;G<V;G++)M=Ca[ma[G]],Eb[gb]=Aa,Eb[gb+1]=Aa+1,Eb[gb+
-2]=Aa+2,gb+=3,bb[Ua]=Aa,bb[Ua+1]=Aa+1,bb[Ua+2]=Aa,bb[Ua+3]=Aa+2,bb[Ua+4]=Aa+1,bb[Ua+5]=Aa+2,Ua+=6,Aa+=3;for(G=0,V=na.length;G<V;G++)M=Ca[na[G]],Eb[gb]=Aa,Eb[gb+1]=Aa+1,Eb[gb+2]=Aa+3,Eb[gb+3]=Aa+1,Eb[gb+4]=Aa+2,Eb[gb+5]=Aa+3,gb+=6,bb[Ua]=Aa,bb[Ua+1]=Aa+1,bb[Ua+2]=Aa,bb[Ua+3]=Aa+3,bb[Ua+4]=Aa+1,bb[Ua+5]=Aa+2,bb[Ua+6]=Aa+2,bb[Ua+7]=Aa+3,Ua+=8,Aa+=4;l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,fa.__webglFaceBuffer);l.bufferData(l.ELEMENT_ARRAY_BUFFER,Eb,$a);l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,fa.__webglLineBuffer);
-l.bufferData(l.ELEMENT_ARRAY_BUFFER,bb,$a)}if(ad)for(la=0,id=ad.length;la<id;la++)if(x=ad[la],x.__original.needsUpdate){z=0;if(1===x.size)if(void 0===x.boundTo||"vertices"===x.boundTo){for(G=0,V=ma.length;G<V;G++)M=Ca[ma[G]],x.array[z]=x.value[M.a],x.array[z+1]=x.value[M.b],x.array[z+2]=x.value[M.c],z+=3;for(G=0,V=na.length;G<V;G++)M=Ca[na[G]],x.array[z]=x.value[M.a],x.array[z+1]=x.value[M.b],x.array[z+2]=x.value[M.c],x.array[z+3]=x.value[M.d],z+=4}else{if("faces"===x.boundTo){for(G=0,V=ma.length;G<
-V;G++)ab=x.value[ma[G]],x.array[z]=ab,x.array[z+1]=ab,x.array[z+2]=ab,z+=3;for(G=0,V=na.length;G<V;G++)ab=x.value[na[G]],x.array[z]=ab,x.array[z+1]=ab,x.array[z+2]=ab,x.array[z+3]=ab,z+=4}}else if(2===x.size)if(void 0===x.boundTo||"vertices"===x.boundTo){for(G=0,V=ma.length;G<V;G++)M=Ca[ma[G]],W=x.value[M.a],X=x.value[M.b],Y=x.value[M.c],x.array[z]=W.x,x.array[z+1]=W.y,x.array[z+2]=X.x,x.array[z+3]=X.y,x.array[z+4]=Y.x,x.array[z+5]=Y.y,z+=6;for(G=0,V=na.length;G<V;G++)M=Ca[na[G]],W=x.value[M.a],X=
-x.value[M.b],Y=x.value[M.c],oa=x.value[M.d],x.array[z]=W.x,x.array[z+1]=W.y,x.array[z+2]=X.x,x.array[z+3]=X.y,x.array[z+4]=Y.x,x.array[z+5]=Y.y,x.array[z+6]=oa.x,x.array[z+7]=oa.y,z+=8}else{if("faces"===x.boundTo){for(G=0,V=ma.length;G<V;G++)Y=X=W=ab=x.value[ma[G]],x.array[z]=W.x,x.array[z+1]=W.y,x.array[z+2]=X.x,x.array[z+3]=X.y,x.array[z+4]=Y.x,x.array[z+5]=Y.y,z+=6;for(G=0,V=na.length;G<V;G++)oa=Y=X=W=ab=x.value[na[G]],x.array[z]=W.x,x.array[z+1]=W.y,x.array[z+2]=X.x,x.array[z+3]=X.y,x.array[z+
-4]=Y.x,x.array[z+5]=Y.y,x.array[z+6]=oa.x,x.array[z+7]=oa.y,z+=8}}else if(3===x.size){var ga;ga="c"===x.type?["r","g","b"]:["x","y","z"];if(void 0===x.boundTo||"vertices"===x.boundTo){for(G=0,V=ma.length;G<V;G++)M=Ca[ma[G]],W=x.value[M.a],X=x.value[M.b],Y=x.value[M.c],x.array[z]=W[ga[0]],x.array[z+1]=W[ga[1]],x.array[z+2]=W[ga[2]],x.array[z+3]=X[ga[0]],x.array[z+4]=X[ga[1]],x.array[z+5]=X[ga[2]],x.array[z+6]=Y[ga[0]],x.array[z+7]=Y[ga[1]],x.array[z+8]=Y[ga[2]],z+=9;for(G=0,V=na.length;G<V;G++)M=Ca[na[G]],
-W=x.value[M.a],X=x.value[M.b],Y=x.value[M.c],oa=x.value[M.d],x.array[z]=W[ga[0]],x.array[z+1]=W[ga[1]],x.array[z+2]=W[ga[2]],x.array[z+3]=X[ga[0]],x.array[z+4]=X[ga[1]],x.array[z+5]=X[ga[2]],x.array[z+6]=Y[ga[0]],x.array[z+7]=Y[ga[1]],x.array[z+8]=Y[ga[2]],x.array[z+9]=oa[ga[0]],x.array[z+10]=oa[ga[1]],x.array[z+11]=oa[ga[2]],z+=12}else if("faces"===x.boundTo){for(G=0,V=ma.length;G<V;G++)Y=X=W=ab=x.value[ma[G]],x.array[z]=W[ga[0]],x.array[z+1]=W[ga[1]],x.array[z+2]=W[ga[2]],x.array[z+3]=X[ga[0]],
-x.array[z+4]=X[ga[1]],x.array[z+5]=X[ga[2]],x.array[z+6]=Y[ga[0]],x.array[z+7]=Y[ga[1]],x.array[z+8]=Y[ga[2]],z+=9;for(G=0,V=na.length;G<V;G++)oa=Y=X=W=ab=x.value[na[G]],x.array[z]=W[ga[0]],x.array[z+1]=W[ga[1]],x.array[z+2]=W[ga[2]],x.array[z+3]=X[ga[0]],x.array[z+4]=X[ga[1]],x.array[z+5]=X[ga[2]],x.array[z+6]=Y[ga[0]],x.array[z+7]=Y[ga[1]],x.array[z+8]=Y[ga[2]],x.array[z+9]=oa[ga[0]],x.array[z+10]=oa[ga[1]],x.array[z+11]=oa[ga[2]],z+=12}}else if(4===x.size)if(void 0===x.boundTo||"vertices"===x.boundTo){for(G=
-0,V=ma.length;G<V;G++)M=Ca[ma[G]],W=x.value[M.a],X=x.value[M.b],Y=x.value[M.c],x.array[z]=W.x,x.array[z+1]=W.y,x.array[z+2]=W.z,x.array[z+3]=W.w,x.array[z+4]=X.x,x.array[z+5]=X.y,x.array[z+6]=X.z,x.array[z+7]=X.w,x.array[z+8]=Y.x,x.array[z+9]=Y.y,x.array[z+10]=Y.z,x.array[z+11]=Y.w,z+=12;for(G=0,V=na.length;G<V;G++)M=Ca[na[G]],W=x.value[M.a],X=x.value[M.b],Y=x.value[M.c],oa=x.value[M.d],x.array[z]=W.x,x.array[z+1]=W.y,x.array[z+2]=W.z,x.array[z+3]=W.w,x.array[z+4]=X.x,x.array[z+5]=X.y,x.array[z+6]=
-X.z,x.array[z+7]=X.w,x.array[z+8]=Y.x,x.array[z+9]=Y.y,x.array[z+10]=Y.z,x.array[z+11]=Y.w,x.array[z+12]=oa.x,x.array[z+13]=oa.y,x.array[z+14]=oa.z,x.array[z+15]=oa.w,z+=16}else if("faces"===x.boundTo){for(G=0,V=ma.length;G<V;G++)Y=X=W=ab=x.value[ma[G]],x.array[z]=W.x,x.array[z+1]=W.y,x.array[z+2]=W.z,x.array[z+3]=W.w,x.array[z+4]=X.x,x.array[z+5]=X.y,x.array[z+6]=X.z,x.array[z+7]=X.w,x.array[z+8]=Y.x,x.array[z+9]=Y.y,x.array[z+10]=Y.z,x.array[z+11]=Y.w,z+=12;for(G=0,V=na.length;G<V;G++)oa=Y=X=W=
-ab=x.value[na[G]],x.array[z]=W.x,x.array[z+1]=W.y,x.array[z+2]=W.z,x.array[z+3]=W.w,x.array[z+4]=X.x,x.array[z+5]=X.y,x.array[z+6]=X.z,x.array[z+7]=X.w,x.array[z+8]=Y.x,x.array[z+9]=Y.y,x.array[z+10]=Y.z,x.array[z+11]=Y.w,x.array[z+12]=oa.x,x.array[z+13]=oa.y,x.array[z+14]=oa.z,x.array[z+15]=oa.w,z+=16}l.bindBuffer(l.ARRAY_BUFFER,x.buffer);l.bufferData(l.ARRAY_BUFFER,x.array,$a)}ud&&(delete fa.__inittedArrays,delete fa.__colorArray,delete fa.__normalArray,delete fa.__tangentArray,delete fa.__uvArray,
-delete fa.__uv2Array,delete fa.__faceArray,delete fa.__vertexArray,delete fa.__lineArray,delete fa.__skinVertexAArray,delete fa.__skinVertexBArray,delete fa.__skinIndexArray,delete fa.__skinWeightArray)}}ja.__dirtyVertices=!1;ja.__dirtyMorphTargets=!1;ja.__dirtyElements=!1;ja.__dirtyUvs=!1;ja.__dirtyNormals=!1;ja.__dirtyColors=!1;ja.__dirtyTangents=!1;Xa.attributes&&m(Xa)}else if(nb instanceof THREE.Ribbon){if(ja.__dirtyVertices||ja.__dirtyColors){var Zb=ja,ld=l.DYNAMIC_DRAW,yc=void 0,zc=void 0,Lc=
-void 0,$b=void 0,Mc=void 0,md=Zb.vertices,nd=Zb.colors,Ad=md.length,Bd=nd.length,Nc=Zb.__vertexArray,Oc=Zb.__colorArray,Cd=Zb.__dirtyColors;if(Zb.__dirtyVertices){for(yc=0;yc<Ad;yc++)Lc=md[yc].position,$b=3*yc,Nc[$b]=Lc.x,Nc[$b+1]=Lc.y,Nc[$b+2]=Lc.z;l.bindBuffer(l.ARRAY_BUFFER,Zb.__webglVertexBuffer);l.bufferData(l.ARRAY_BUFFER,Nc,ld)}if(Cd){for(zc=0;zc<Bd;zc++)Mc=nd[zc],$b=3*zc,Oc[$b]=Mc.r,Oc[$b+1]=Mc.g,Oc[$b+2]=Mc.b;l.bindBuffer(l.ARRAY_BUFFER,Zb.__webglColorBuffer);l.bufferData(l.ARRAY_BUFFER,
-Oc,ld)}}ja.__dirtyVertices=!1;ja.__dirtyColors=!1}else if(nb instanceof THREE.Line){Xa=c(nb,qc);ic=Xa.attributes&&q(Xa);if(ja.__dirtyVertices||ja.__dirtyColors||ic){var Lb=ja,dd=l.DYNAMIC_DRAW,Ac=void 0,Bc=void 0,Pc=void 0,ya=void 0,Qc=void 0,od=Lb.vertices,pd=Lb.colors,Dd=od.length,Ed=pd.length,Rc=Lb.__vertexArray,Sc=Lb.__colorArray,Fd=Lb.__dirtyColors,ed=Lb.__webglCustomAttributesList,Tc=void 0,qd=void 0,Qa=void 0,oc=void 0,Ya=void 0,ra=void 0;if(Lb.__dirtyVertices){for(Ac=0;Ac<Dd;Ac++)Pc=od[Ac].position,
-ya=3*Ac,Rc[ya]=Pc.x,Rc[ya+1]=Pc.y,Rc[ya+2]=Pc.z;l.bindBuffer(l.ARRAY_BUFFER,Lb.__webglVertexBuffer);l.bufferData(l.ARRAY_BUFFER,Rc,dd)}if(Fd){for(Bc=0;Bc<Ed;Bc++)Qc=pd[Bc],ya=3*Bc,Sc[ya]=Qc.r,Sc[ya+1]=Qc.g,Sc[ya+2]=Qc.b;l.bindBuffer(l.ARRAY_BUFFER,Lb.__webglColorBuffer);l.bufferData(l.ARRAY_BUFFER,Sc,dd)}if(ed)for(Tc=0,qd=ed.length;Tc<qd;Tc++)if(ra=ed[Tc],ra.needsUpdate&&(void 0===ra.boundTo||"vertices"===ra.boundTo)){ya=0;oc=ra.value.length;if(1===ra.size)for(Qa=0;Qa<oc;Qa++)ra.array[Qa]=ra.value[Qa];
-else if(2===ra.size)for(Qa=0;Qa<oc;Qa++)Ya=ra.value[Qa],ra.array[ya]=Ya.x,ra.array[ya+1]=Ya.y,ya+=2;else if(3===ra.size)if("c"===ra.type)for(Qa=0;Qa<oc;Qa++)Ya=ra.value[Qa],ra.array[ya]=Ya.r,ra.array[ya+1]=Ya.g,ra.array[ya+2]=Ya.b,ya+=3;else for(Qa=0;Qa<oc;Qa++)Ya=ra.value[Qa],ra.array[ya]=Ya.x,ra.array[ya+1]=Ya.y,ra.array[ya+2]=Ya.z,ya+=3;else if(4===ra.size)for(Qa=0;Qa<oc;Qa++)Ya=ra.value[Qa],ra.array[ya]=Ya.x,ra.array[ya+1]=Ya.y,ra.array[ya+2]=Ya.z,ra.array[ya+3]=Ya.w,ya+=4;l.bindBuffer(l.ARRAY_BUFFER,
-ra.buffer);l.bufferData(l.ARRAY_BUFFER,ra.array,dd)}}ja.__dirtyVertices=!1;ja.__dirtyColors=!1;Xa.attributes&&m(Xa)}else if(nb instanceof THREE.ParticleSystem)Xa=c(nb,qc),ic=Xa.attributes&&q(Xa),(ja.__dirtyVertices||ja.__dirtyColors||nb.sortParticles||ic)&&g(ja,l.DYNAMIC_DRAW,nb),ja.__dirtyVertices=!1,ja.__dirtyColors=!1,Xa.attributes&&m(Xa)}};this.initMaterial=function(a,b,c,d){var f,e,g,h,i;a instanceof THREE.MeshDepthMaterial?i="depth":a instanceof THREE.MeshNormalMaterial?i="normal":a instanceof
-THREE.MeshBasicMaterial?i="basic":a instanceof THREE.MeshLambertMaterial?i="lambert":a instanceof THREE.MeshPhongMaterial?i="phong":a instanceof THREE.LineBasicMaterial?i="basic":a instanceof THREE.ParticleBasicMaterial&&(i="particle_basic");if(i){var j=THREE.ShaderLib[i];a.uniforms=THREE.UniformsUtils.clone(j.uniforms);a.vertexShader=j.vertexShader;a.fragmentShader=j.fragmentShader}var k,m;e=j=0;for(k=0,m=b.length;k<m;k++)f=b[k],f.onlyShadow||(f instanceof THREE.DirectionalLight&&e++,f instanceof
-THREE.PointLight&&j++,f instanceof THREE.SpotLight&&j++);j+e<=O?k=e:(k=Math.ceil(O*e/(j+e)),j=O-k);f=k;e=j;var n=0;for(j=0,k=b.length;j<k;j++)m=b[j],m.castShadow&&(m instanceof THREE.SpotLight&&n++,m instanceof THREE.DirectionalLight&&!m.shadowCascade&&n++);var o=50;if(void 0!==d&&d instanceof THREE.SkinnedMesh)o=d.bones.length;var p;a:{k=a.fragmentShader;m=a.vertexShader;var j=a.uniforms,b=a.attributes,c={map:!!a.map,envMap:!!a.envMap,lightMap:!!a.lightMap,vertexColors:a.vertexColors,fog:c,useFog:a.fog,
-sizeAttenuation:a.sizeAttenuation,skinning:a.skinning,morphTargets:a.morphTargets,morphNormals:a.morphNormals,maxMorphTargets:this.maxMorphTargets,maxMorphNormals:this.maxMorphNormals,maxDirLights:f,maxPointLights:e,maxBones:o,shadowMapEnabled:this.shadowMapEnabled&&d.receiveShadow,shadowMapSoft:this.shadowMapSoft,shadowMapDebug:this.shadowMapDebug,shadowMapCascade:this.shadowMapCascade,maxShadows:n,alphaTest:a.alphaTest,metal:a.metal,perPixel:a.perPixel,wrapAround:a.wrapAround,doubleSided:d&&d.doubleSided},
-q,d=[];i?d.push(i):(d.push(k),d.push(m));for(q in c)d.push(q),d.push(c[q]);i=d.join();for(q=0,d=$.length;q<d;q++)if($[q].code===i){p=$[q].program;break a}q=l.createProgram();d=[0<za?"#define VERTEX_TEXTURES":"",y.gammaInput?"#define GAMMA_INPUT":"",y.gammaOutput?"#define GAMMA_OUTPUT":"",y.physicallyBasedShading?"#define PHYSICALLY_BASED_SHADING":"","#define MAX_DIR_LIGHTS "+c.maxDirLights,"#define MAX_POINT_LIGHTS "+c.maxPointLights,"#define MAX_SHADOWS "+c.maxShadows,"#define MAX_BONES "+c.maxBones,
-c.map?"#define USE_MAP":"",c.envMap?"#define USE_ENVMAP":"",c.lightMap?"#define USE_LIGHTMAP":"",c.vertexColors?"#define USE_COLOR":"",c.skinning?"#define USE_SKINNING":"",c.morphTargets?"#define USE_MORPHTARGETS":"",c.morphNormals?"#define USE_MORPHNORMALS":"",c.perPixel?"#define PHONG_PER_PIXEL":"",c.wrapAround?"#define WRAP_AROUND":"",c.doubleSided?"#define DOUBLE_SIDED":"",c.shadowMapEnabled?"#define USE_SHADOWMAP":"",c.shadowMapSoft?"#define SHADOWMAP_SOFT":"",c.shadowMapDebug?"#define SHADOWMAP_DEBUG":
-"",c.shadowMapCascade?"#define SHADOWMAP_CASCADE":"",c.sizeAttenuation?"#define USE_SIZEATTENUATION":"","uniform mat4 objectMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 viewMatrix;\nuniform mat3 normalMatrix;\nuniform vec3 cameraPosition;\nattribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nattribute vec2 uv2;\n#ifdef USE_COLOR\nattribute vec3 color;\n#endif\n#ifdef USE_MORPHTARGETS\nattribute vec3 morphTarget0;\nattribute vec3 morphTarget1;\nattribute vec3 morphTarget2;\nattribute vec3 morphTarget3;\n#ifdef USE_MORPHNORMALS\nattribute vec3 morphNormal0;\nattribute vec3 morphNormal1;\nattribute vec3 morphNormal2;\nattribute vec3 morphNormal3;\n#else\nattribute vec3 morphTarget4;\nattribute vec3 morphTarget5;\nattribute vec3 morphTarget6;\nattribute vec3 morphTarget7;\n#endif\n#endif\n#ifdef USE_SKINNING\nattribute vec4 skinVertexA;\nattribute vec4 skinVertexB;\nattribute vec4 skinIndex;\nattribute vec4 skinWeight;\n#endif\n"].join("\n");
-f=["precision "+B+" float;","#define MAX_DIR_LIGHTS "+c.maxDirLights,"#define MAX_POINT_LIGHTS "+c.maxPointLights,"#define MAX_SHADOWS "+c.maxShadows,c.alphaTest?"#define ALPHATEST "+c.alphaTest:"",y.gammaInput?"#define GAMMA_INPUT":"",y.gammaOutput?"#define GAMMA_OUTPUT":"",y.physicallyBasedShading?"#define PHYSICALLY_BASED_SHADING":"",c.useFog&&c.fog?"#define USE_FOG":"",c.useFog&&c.fog instanceof THREE.FogExp2?"#define FOG_EXP2":"",c.map?"#define USE_MAP":"",c.envMap?"#define USE_ENVMAP":"",c.lightMap?
-"#define USE_LIGHTMAP":"",c.vertexColors?"#define USE_COLOR":"",c.metal?"#define METAL":"",c.perPixel?"#define PHONG_PER_PIXEL":"",c.wrapAround?"#define WRAP_AROUND":"",c.doubleSided?"#define DOUBLE_SIDED":"",c.shadowMapEnabled?"#define USE_SHADOWMAP":"",c.shadowMapSoft?"#define SHADOWMAP_SOFT":"",c.shadowMapDebug?"#define SHADOWMAP_DEBUG":"",c.shadowMapCascade?"#define SHADOWMAP_CASCADE":"","uniform mat4 viewMatrix;\nuniform vec3 cameraPosition;\n"].join("\n");l.attachShader(q,t("fragment",f+k));
-l.attachShader(q,t("vertex",d+m));l.linkProgram(q);l.getProgramParameter(q,l.LINK_STATUS)||console.error("Could not initialise shader\nVALIDATE_STATUS: "+l.getProgramParameter(q,l.VALIDATE_STATUS)+", gl error ["+l.getError()+"]");q.uniforms={};q.attributes={};var r,d="viewMatrix,modelViewMatrix,projectionMatrix,normalMatrix,objectMatrix,cameraPosition,boneGlobalMatrices,morphTargetInfluences".split(",");for(r in j)d.push(r);r=d;for(d=0,j=r.length;d<j;d++)k=r[d],q.uniforms[k]=l.getUniformLocation(q,
-k);d="position,normal,uv,uv2,tangent,color,skinVertexA,skinVertexB,skinIndex,skinWeight".split(",");for(r=0;r<c.maxMorphTargets;r++)d.push("morphTarget"+r);for(r=0;r<c.maxMorphNormals;r++)d.push("morphNormal"+r);for(p in b)d.push(p);p=d;for(r=0,b=p.length;r<b;r++)c=p[r],q.attributes[c]=l.getAttribLocation(q,c);q.id=$.length;$.push({program:q,code:i});y.info.memory.programs=$.length;p=q}a.program=p;p=a.program.attributes;0<=p.position&&l.enableVertexAttribArray(p.position);0<=p.color&&l.enableVertexAttribArray(p.color);
-0<=p.normal&&l.enableVertexAttribArray(p.normal);0<=p.tangent&&l.enableVertexAttribArray(p.tangent);a.skinning&&0<=p.skinVertexA&&0<=p.skinVertexB&&0<=p.skinIndex&&0<=p.skinWeight&&(l.enableVertexAttribArray(p.skinVertexA),l.enableVertexAttribArray(p.skinVertexB),l.enableVertexAttribArray(p.skinIndex),l.enableVertexAttribArray(p.skinWeight));if(a.attributes)for(h in a.attributes)void 0!==p[h]&&0<=p[h]&&l.enableVertexAttribArray(p[h]);if(a.morphTargets){a.numSupportedMorphTargets=0;q="morphTarget";
-for(h=0;h<this.maxMorphTargets;h++)r=q+h,0<=p[r]&&(l.enableVertexAttribArray(p[r]),a.numSupportedMorphTargets++)}if(a.morphNormals){a.numSupportedMorphNormals=0;q="morphNormal";for(h=0;h<this.maxMorphNormals;h++)r=q+h,0<=p[r]&&(l.enableVertexAttribArray(p[r]),a.numSupportedMorphNormals++)}a.uniformsList=[];for(g in a.uniforms)a.uniformsList.push([a.uniforms[g],g])};this.setFaceCulling=function(a,b){a?(!b||"ccw"===b?l.frontFace(l.CCW):l.frontFace(l.CW),"back"===a?l.cullFace(l.BACK):"front"===a?l.cullFace(l.FRONT):
-l.cullFace(l.FRONT_AND_BACK),l.enable(l.CULL_FACE)):l.disable(l.CULL_FACE)};this.setObjectFaces=function(a){if(ia!==a.doubleSided)a.doubleSided?l.disable(l.CULL_FACE):l.enable(l.CULL_FACE),ia=a.doubleSided;if(N!==a.flipSided)a.flipSided?l.frontFace(l.CW):l.frontFace(l.CCW),N=a.flipSided};this.setDepthTest=function(a){U!==a&&(a?l.enable(l.DEPTH_TEST):l.disable(l.DEPTH_TEST),U=a)};this.setDepthWrite=function(a){ba!==a&&(l.depthMask(a),ba=a)};this.setBlending=function(a){if(a!==aa){switch(a){case THREE.NoBlending:l.disable(l.BLEND);
-break;case THREE.AdditiveBlending:l.enable(l.BLEND);l.blendEquation(l.FUNC_ADD);l.blendFunc(l.SRC_ALPHA,l.ONE);break;case THREE.SubtractiveBlending:l.enable(l.BLEND);l.blendEquation(l.FUNC_ADD);l.blendFunc(l.ZERO,l.ONE_MINUS_SRC_COLOR);break;case THREE.MultiplyBlending:l.enable(l.BLEND);l.blendEquation(l.FUNC_ADD);l.blendFunc(l.ZERO,l.SRC_COLOR);break;default:l.enable(l.BLEND),l.blendEquationSeparate(l.FUNC_ADD,l.FUNC_ADD),l.blendFuncSeparate(l.SRC_ALPHA,l.ONE_MINUS_SRC_ALPHA,l.ONE,l.ONE_MINUS_SRC_ALPHA)}aa=
-a}};this.setTexture=function(a,b){if(a.needsUpdate){if(!a.__webglInit)a.__webglInit=!0,a.__webglTexture=l.createTexture(),y.info.memory.textures++;l.activeTexture(l.TEXTURE0+b);l.bindTexture(l.TEXTURE_2D,a.__webglTexture);var c=a.image,d=0===(c.width&c.width-1)&&0===(c.height&c.height-1),f=A(a.format),e=A(a.type);w(l.TEXTURE_2D,a,d);a instanceof THREE.DataTexture?l.texImage2D(l.TEXTURE_2D,0,f,c.width,c.height,0,f,e,c.data):l.texImage2D(l.TEXTURE_2D,0,f,f,e,a.image);a.generateMipmaps&&d&&l.generateMipmap(l.TEXTURE_2D);
-a.needsUpdate=!1;if(a.onUpdate)a.onUpdate()}else l.activeTexture(l.TEXTURE0+b),l.bindTexture(l.TEXTURE_2D,a.__webglTexture)};this.setRenderTarget=function(a){var b=a instanceof THREE.WebGLRenderTargetCube;if(a&&!a.__webglFramebuffer){if(void 0===a.depthBuffer)a.depthBuffer=!0;if(void 0===a.stencilBuffer)a.stencilBuffer=!0;a.__webglTexture=l.createTexture();var c=0===(a.width&a.width-1)&&0===(a.height&a.height-1),d=A(a.format),f=A(a.type);if(b){a.__webglFramebuffer=[];a.__webglRenderbuffer=[];l.bindTexture(l.TEXTURE_CUBE_MAP,
-a.__webglTexture);w(l.TEXTURE_CUBE_MAP,a,c);for(c=0;6>c;c++){a.__webglFramebuffer[c]=l.createFramebuffer();a.__webglRenderbuffer[c]=l.createRenderbuffer();l.texImage2D(l.TEXTURE_CUBE_MAP_POSITIVE_X+c,0,d,a.width,a.height,0,d,f,null);var e=a,g=l.TEXTURE_CUBE_MAP_POSITIVE_X+c;l.bindFramebuffer(l.FRAMEBUFFER,a.__webglFramebuffer[c]);l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0,g,e.__webglTexture,0);u(a.__webglRenderbuffer[c],a)}}else a.__webglFramebuffer=l.createFramebuffer(),a.__webglRenderbuffer=
-l.createRenderbuffer(),l.bindTexture(l.TEXTURE_2D,a.__webglTexture),w(l.TEXTURE_2D,a,c),l.texImage2D(l.TEXTURE_2D,0,d,a.width,a.height,0,d,f,null),d=l.TEXTURE_2D,l.bindFramebuffer(l.FRAMEBUFFER,a.__webglFramebuffer),l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0,d,a.__webglTexture,0),u(a.__webglRenderbuffer,a);b?l.bindTexture(l.TEXTURE_CUBE_MAP,null):l.bindTexture(l.TEXTURE_2D,null);l.bindRenderbuffer(l.RENDERBUFFER,null);l.bindFramebuffer(l.FRAMEBUFFER,null)}a?(b=b?a.__webglFramebuffer[a.activeCubeFace]:
-a.__webglFramebuffer,d=a.width,a=a.height,c=f=0):(b=null,d=ha,a=ib,f=Ga,c=qa);b!==E&&(l.bindFramebuffer(l.FRAMEBUFFER,b),l.viewport(f,c,d,a),E=b);db=d;lb=a};this.shadowMapPlugin=new THREE.ShadowMapPlugin;this.addPrePlugin(this.shadowMapPlugin);this.addPostPlugin(new THREE.SpritePlugin);this.addPostPlugin(new THREE.LensFlarePlugin)};
-THREE.WebGLRenderTarget=function(a,b,c){this.width=a;this.height=b;c=c||{};this.wrapS=void 0!==c.wrapS?c.wrapS:THREE.ClampToEdgeWrapping;this.wrapT=void 0!==c.wrapT?c.wrapT:THREE.ClampToEdgeWrapping;this.magFilter=void 0!==c.magFilter?c.magFilter:THREE.LinearFilter;this.minFilter=void 0!==c.minFilter?c.minFilter:THREE.LinearMipMapLinearFilter;this.offset=new THREE.Vector2(0,0);this.repeat=new THREE.Vector2(1,1);this.format=void 0!==c.format?c.format:THREE.RGBAFormat;this.type=void 0!==c.type?c.type:
-THREE.UnsignedByteType;this.depthBuffer=void 0!==c.depthBuffer?c.depthBuffer:!0;this.stencilBuffer=void 0!==c.stencilBuffer?c.stencilBuffer:!0;this.generateMipmaps=!0};
-THREE.WebGLRenderTarget.prototype.clone=function(){var a=new THREE.WebGLRenderTarget(this.width,this.height);a.wrapS=this.wrapS;a.wrapT=this.wrapT;a.magFilter=this.magFilter;a.minFilter=this.minFilter;a.offset.copy(this.offset);a.repeat.copy(this.repeat);a.format=this.format;a.type=this.type;a.depthBuffer=this.depthBuffer;a.stencilBuffer=this.stencilBuffer;return a};THREE.WebGLRenderTargetCube=function(a,b,c){THREE.WebGLRenderTarget.call(this,a,b,c);this.activeCubeFace=0};
-THREE.WebGLRenderTargetCube.prototype=new THREE.WebGLRenderTarget;THREE.WebGLRenderTargetCube.prototype.constructor=THREE.WebGLRenderTargetCube;THREE.RenderableVertex=function(){this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.visible=!0};THREE.RenderableVertex.prototype.copy=function(a){this.positionWorld.copy(a.positionWorld);this.positionScreen.copy(a.positionScreen)};
-THREE.RenderableFace3=function(){this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.v3=new THREE.RenderableVertex;this.centroidWorld=new THREE.Vector3;this.centroidScreen=new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.vertexNormalsWorld=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.faceMaterial=this.material=null;this.uvs=[[]];this.z=null};
-THREE.RenderableFace4=function(){this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.v3=new THREE.RenderableVertex;this.v4=new THREE.RenderableVertex;this.centroidWorld=new THREE.Vector3;this.centroidScreen=new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.vertexNormalsWorld=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.faceMaterial=this.material=null;this.uvs=[[]];this.z=null};THREE.RenderableObject=function(){this.z=this.object=null};
-THREE.RenderableParticle=function(){this.rotation=this.z=this.y=this.x=null;this.scale=new THREE.Vector2;this.material=null};THREE.RenderableLine=function(){this.z=null;this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.material=null};
-THREE.ColorUtils={adjustHSV:function(a,b,c,d){var f=THREE.ColorUtils.__hsv;THREE.ColorUtils.rgbToHsv(a,f);f.h=THREE.Math.clamp(f.h+b,0,1);f.s=THREE.Math.clamp(f.s+c,0,1);f.v=THREE.Math.clamp(f.v+d,0,1);a.setHSV(f.h,f.s,f.v)},rgbToHsv:function(a,b){var c=a.r,d=a.g,f=a.b,g=Math.max(Math.max(c,d),f),e=Math.min(Math.min(c,d),f);if(e===g)e=c=0;else{var h=g-e,e=h/g,c=(c===g?(d-f)/h:d===g?2+(f-c)/h:4+(c-d)/h)/6;0>c&&(c+=1);1<c&&(c-=1)}void 0===b&&(b={h:0,s:0,v:0});b.h=c;b.s=e;b.v=g;return b}};
-THREE.ColorUtils.__hsv={h:0,s:0,v:0};
-THREE.GeometryUtils={merge:function(a,b){for(var c,d,f=a.vertices.length,g=b instanceof THREE.Mesh?b.geometry:b,e=a.vertices,h=g.vertices,i=a.faces,j=g.faces,k=a.faceVertexUvs[0],q=g.faceVertexUvs[0],m={},o=0;o<a.materials.length;o++)m[a.materials[o].id]=o;if(b instanceof THREE.Mesh)b.matrixAutoUpdate&&b.updateMatrix(),c=b.matrix,d=new THREE.Matrix4,d.extractRotation(c,b.scale);for(var o=0,p=h.length;o<p;o++){var n=h[o].clone();c&&c.multiplyVector3(n.position);e.push(n)}for(o=0,p=j.length;o<p;o++){var e=
-j[o],r,s,t=e.vertexNormals,w=e.vertexColors;e instanceof THREE.Face3?r=new THREE.Face3(e.a+f,e.b+f,e.c+f):e instanceof THREE.Face4&&(r=new THREE.Face4(e.a+f,e.b+f,e.c+f,e.d+f));r.normal.copy(e.normal);d&&d.multiplyVector3(r.normal);h=0;for(n=t.length;h<n;h++)s=t[h].clone(),d&&d.multiplyVector3(s),r.vertexNormals.push(s);r.color.copy(e.color);h=0;for(n=w.length;h<n;h++)s=w[h],r.vertexColors.push(s.clone());if(void 0!==e.materialIndex){h=g.materials[e.materialIndex];n=h.id;w=m[n];if(void 0===w)w=a.materials.length,
-m[n]=w,a.materials.push(h);r.materialIndex=w}r.centroid.copy(e.centroid);c&&c.multiplyVector3(r.centroid);i.push(r)}for(o=0,p=q.length;o<p;o++){c=q[o];d=[];h=0;for(n=c.length;h<n;h++)d.push(new THREE.UV(c[h].u,c[h].v));k.push(d)}},clone:function(a){var b=new THREE.Geometry,c,d=a.vertices,f=a.faces,g=a.faceVertexUvs[0];if(a.materials)b.materials=a.materials.slice();for(a=0,c=d.length;a<c;a++)b.vertices.push(d[a].clone());for(a=0,c=f.length;a<c;a++)b.faces.push(f[a].clone());for(a=0,c=g.length;a<c;a++){for(var d=
-g[a],f=[],e=0,h=d.length;e<h;e++)f.push(new THREE.UV(d[e].u,d[e].v));b.faceVertexUvs[0].push(f)}return b},randomPointInTriangle:function(a,b,c){var d,f,g,e=new THREE.Vector3,h=THREE.GeometryUtils.__v1;d=THREE.GeometryUtils.random();f=THREE.GeometryUtils.random();1<d+f&&(d=1-d,f=1-f);g=1-d-f;e.copy(a);e.multiplyScalar(d);h.copy(b);h.multiplyScalar(f);e.addSelf(h);h.copy(c);h.multiplyScalar(g);e.addSelf(h);return e},randomPointInFace:function(a,b,c){var d,f,g;if(a instanceof THREE.Face3)return d=b.vertices[a.a].position,
-f=b.vertices[a.b].position,g=b.vertices[a.c].position,THREE.GeometryUtils.randomPointInTriangle(d,f,g);if(a instanceof THREE.Face4){d=b.vertices[a.a].position;f=b.vertices[a.b].position;g=b.vertices[a.c].position;var b=b.vertices[a.d].position,e;c?a._area1&&a._area2?(c=a._area1,e=a._area2):(c=THREE.GeometryUtils.triangleArea(d,f,b),e=THREE.GeometryUtils.triangleArea(f,g,b),a._area1=c,a._area2=e):(c=THREE.GeometryUtils.triangleArea(d,f,b),e=THREE.GeometryUtils.triangleArea(f,g,b));return THREE.GeometryUtils.random()*
-(c+e)<c?THREE.GeometryUtils.randomPointInTriangle(d,f,b):THREE.GeometryUtils.randomPointInTriangle(f,g,b)}},randomPointsInGeometry:function(a,b){function c(a){function b(c,d){if(d<c)return c;var f=c+Math.floor((d-c)/2);return j[f]>a?b(c,f-1):j[f]<a?b(f+1,d):f}return b(0,j.length-1)}var d,f,g=a.faces,e=a.vertices,h=g.length,i=0,j=[],k,q,m,o;for(f=0;f<h;f++){d=g[f];if(d instanceof THREE.Face3)k=e[d.a].position,q=e[d.b].position,m=e[d.c].position,d._area=THREE.GeometryUtils.triangleArea(k,q,m);else if(d instanceof
-THREE.Face4)k=e[d.a].position,q=e[d.b].position,m=e[d.c].position,o=e[d.d].position,d._area1=THREE.GeometryUtils.triangleArea(k,q,o),d._area2=THREE.GeometryUtils.triangleArea(q,m,o),d._area=d._area1+d._area2;i+=d._area;j[f]=i}d=[];for(f=0;f<b;f++)e=THREE.GeometryUtils.random()*i,e=c(e),d[f]=THREE.GeometryUtils.randomPointInFace(g[e],a,!0);return d},triangleArea:function(a,b,c){var d,f=THREE.GeometryUtils.__v1;f.sub(a,b);d=f.length();f.sub(a,c);a=f.length();f.sub(b,c);c=f.length();b=0.5*(d+a+c);return Math.sqrt(b*
-(b-d)*(b-a)*(b-c))},center:function(a){a.computeBoundingBox();var b=a.boundingBox,c=new THREE.Vector3;c.add(b.min,b.max);c.multiplyScalar(-0.5);a.applyMatrix((new THREE.Matrix4).setTranslation(c.x,c.y,c.z));a.computeBoundingBox();return c},normalizeUVs:function(a){for(var a=a.faceVertexUvs[0],b=0,c=a.length;b<c;b++)for(var d=a[b],f=0,g=d.length;f<g;f++)1!==d[f].u&&(d[f].u-=Math.floor(d[f].u)),1!==d[f].v&&(d[f].v-=Math.floor(d[f].v))},triangulateQuads:function(a){for(var b=a.faces.length-1;0<=b;b--){var c=
-a.faces[b];if(c instanceof THREE.Face4){var d=c.a,f=c.b,g=c.c,e=c.d,h=c.clone(),c=c.clone();h.a=d;h.b=f;h.c=e;c.a=f;c.b=g;c.c=e;a.faces.splice(b,1,h,c);for(d=0;d<a.faceVertexUvs.length;d++)a.faceVertexUvs[d].length&&(h=a.faceVertexUvs[d][b],f=h[1],g=h[2],e=h[3],h=[h[0].clone(),f.clone(),e.clone()],f=[f.clone(),g.clone(),e.clone()],a.faceVertexUvs[d].splice(b,1,h,f));for(d=0;d<a.faceUvs.length;d++)a.faceUvs[d].length&&(f=a.faceUvs[d][b],a.faceUvs[d].splice(b,1,f,f))}}a.computeCentroids();a.computeFaceNormals();
-a.computeVertexNormals();a.hasTangents&&a.computeTangents()},explode:function(a){for(var b=[],c=0,d=a.faces.length;c<d;c++){var f=b.length,g=a.faces[c];if(g instanceof THREE.Face4){var e=g.a,h=g.b,i=g.c,e=a.vertices[e],h=a.vertices[h],i=a.vertices[i],j=a.vertices[g.d];b.push(e.clone());b.push(h.clone());b.push(i.clone());b.push(j.clone());g.a=f;g.b=f+1;g.c=f+2;g.d=f+3}else e=g.a,h=g.b,i=g.c,e=a.vertices[e],h=a.vertices[h],i=a.vertices[i],b.push(e.clone()),b.push(h.clone()),b.push(i.clone()),g.a=f,
-g.b=f+1,g.c=f+2}a.vertices=b},tessellate:function(a,b){var c,d,f,g,e,h,i,j,k,q,m,o,p,n,r,s,t;for(c=a.faces.length-1;0<=c;c--)if(d=a.faces[c],d instanceof THREE.Face3){if(f=d.a,g=d.b,e=d.c,i=a.vertices[f],j=a.vertices[g],k=a.vertices[e],m=i.position.distanceTo(j.position),o=j.position.distanceTo(k.position),q=i.position.distanceTo(k.position),m>b||o>b||q>b){h=a.vertices.length;t=d.clone();d=d.clone();m>=o&&m>=q?(i=i.clone(),i.position.lerpSelf(j.position,0.5),t.a=f,t.b=h,t.c=e,d.a=h,d.b=g,d.c=e,f=
-0):o>=m&&o>=q?(i=j.clone(),i.position.lerpSelf(k.position,0.5),t.a=f,t.b=g,t.c=h,d.a=h,d.b=e,d.c=f,f=1):(i=i.clone(),i.position.lerpSelf(k.position,0.5),t.a=f,t.b=g,t.c=h,d.a=h,d.b=g,d.c=e,f=2);a.faces.splice(c,1,t,d);a.vertices.push(i);for(g=0;g<a.faceVertexUvs.length;g++)a.faceVertexUvs[g].length&&(k=a.faceVertexUvs[g][c],j=k[0],e=k[1],i=k[2],0===f?(m=j.clone(),m.lerpSelf(e,0.5),k=[j.clone(),m.clone(),i.clone()],e=[m.clone(),e.clone(),i.clone()]):1===f?(m=e.clone(),m.lerpSelf(i,0.5),k=[j.clone(),
-e.clone(),m.clone()],e=[m.clone(),i.clone(),j.clone()]):(m=j.clone(),m.lerpSelf(i,0.5),k=[j.clone(),e.clone(),m.clone()],e=[m.clone(),e.clone(),i.clone()]),a.faceVertexUvs[g].splice(c,1,k,e))}}else if(f=d.a,g=d.b,e=d.c,h=d.d,i=a.vertices[f],j=a.vertices[g],k=a.vertices[e],q=a.vertices[h],m=i.position.distanceTo(j.position),o=j.position.distanceTo(k.position),p=k.position.distanceTo(q.position),n=i.position.distanceTo(q.position),m>b||o>b||p>b||n>b){r=a.vertices.length;s=a.vertices.length+1;t=d.clone();
-d=d.clone();m>=o&&m>=p&&m>=n||p>=o&&p>=m&&p>=n?(m=i.clone(),m.position.lerpSelf(j.position,0.5),j=k.clone(),j.position.lerpSelf(q.position,0.5),t.a=f,t.b=r,t.c=s,t.d=h,d.a=r,d.b=g,d.c=e,d.d=s,f=0):(m=j.clone(),m.position.lerpSelf(k.position,0.5),j=q.clone(),j.position.lerpSelf(i.position,0.5),t.a=f,t.b=g,t.c=r,t.d=s,d.a=s,d.b=r,d.c=e,d.d=h,f=1);a.faces.splice(c,1,t,d);a.vertices.push(m);a.vertices.push(j);for(g=0;g<a.faceVertexUvs.length;g++)a.faceVertexUvs[g].length&&(k=a.faceVertexUvs[g][c],j=k[0],
-e=k[1],i=k[2],k=k[3],0===f?(m=j.clone(),m.lerpSelf(e,0.5),o=i.clone(),o.lerpSelf(k,0.5),j=[j.clone(),m.clone(),o.clone(),k.clone()],e=[m.clone(),e.clone(),i.clone(),o.clone()]):(m=e.clone(),m.lerpSelf(i,0.5),o=k.clone(),o.lerpSelf(j,0.5),j=[j.clone(),e.clone(),m.clone(),o.clone()],e=[o.clone(),m.clone(),i.clone(),k.clone()]),a.faceVertexUvs[g].splice(c,1,j,e))}}};THREE.GeometryUtils.random=THREE.Math.random16;THREE.GeometryUtils.__v1=new THREE.Vector3;
-THREE.ImageUtils={crossOrigin:"anonymous",loadTexture:function(a,b,c){var d=new Image,f=new THREE.Texture(d,b);d.onload=function(){f.needsUpdate=!0;c&&c(this)};d.crossOrigin=this.crossOrigin;d.src=a;return f},loadTextureCube:function(a,b,c){var d,f=[],g=new THREE.Texture(f,b);f.loadCount=0;for(b=0,d=a.length;b<d;++b)f[b]=new Image,f[b].onload=function(){f.loadCount+=1;if(6===f.loadCount)g.needsUpdate=!0;c&&c(this)},f[b].crossOrigin=this.crossOrigin,f[b].src=a[b];return g},getNormalMap:function(a,
-b){var c=function(a){var b=Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]);return[a[0]/b,a[1]/b,a[2]/b]},b=b|1,d=a.width,f=a.height,g=document.createElement("canvas");g.width=d;g.height=f;var e=g.getContext("2d");e.drawImage(a,0,0);for(var h=e.getImageData(0,0,d,f).data,i=e.createImageData(d,f),j=i.data,k=0;k<d;k++)for(var q=1;q<f;q++){var m=0>q-1?f-1:q-1,o=(q+1)%f,p=0>k-1?d-1:k-1,n=(k+1)%d,r=[],s=[0,0,h[4*(q*d+k)]/255*b];r.push([-1,0,h[4*(q*d+p)]/255*b]);r.push([-1,-1,h[4*(m*d+p)]/255*b]);r.push([0,-1,
-h[4*(m*d+k)]/255*b]);r.push([1,-1,h[4*(m*d+n)]/255*b]);r.push([1,0,h[4*(q*d+n)]/255*b]);r.push([1,1,h[4*(o*d+n)]/255*b]);r.push([0,1,h[4*(o*d+k)]/255*b]);r.push([-1,1,h[4*(o*d+p)]/255*b]);m=[];p=r.length;for(o=0;o<p;o++){var n=r[o],t=r[(o+1)%p],n=[n[0]-s[0],n[1]-s[1],n[2]-s[2]],t=[t[0]-s[0],t[1]-s[1],t[2]-s[2]];m.push(c([n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]))}r=[0,0,0];for(o=0;o<m.length;o++)r[0]+=m[o][0],r[1]+=m[o][1],r[2]+=m[o][2];r[0]/=m.length;r[1]/=m.length;r[2]/=m.length;
-s=4*(q*d+k);j[s]=255*((r[0]+1)/2)|0;j[s+1]=255*(r[1]+0.5)|0;j[s+2]=255*r[2]|0;j[s+3]=255}e.putImageData(i,0,0);return g},generateDataTexture:function(a,b,c){for(var d=a*b,f=new Uint8Array(3*d),g=Math.floor(255*c.r),e=Math.floor(255*c.g),c=Math.floor(255*c.b),h=0;h<d;h++)f[3*h]=g,f[3*h+1]=e,f[3*h+2]=c;a=new THREE.DataTexture(f,a,b,THREE.RGBFormat);a.needsUpdate=!0;return a}};
-THREE.SceneUtils={showHierarchy:function(a,b){THREE.SceneUtils.traverseHierarchy(a,function(a){a.visible=b})},traverseHierarchy:function(a,b){var c,d,f=a.children.length;for(d=0;d<f;d++)c=a.children[d],b(c),THREE.SceneUtils.traverseHierarchy(c,b)},createMultiMaterialObject:function(a,b){var c,d=b.length,f=new THREE.Object3D;for(c=0;c<d;c++){var g=new THREE.Mesh(a,b[c]);f.add(g)}return f},cloneObject:function(a){var b;a instanceof THREE.MorphAnimMesh?(b=new THREE.MorphAnimMesh(a.geometry,a.material),
-b.duration=a.duration,b.mirroredLoop=a.mirroredLoop,b.time=a.time,b.lastKeyframe=a.lastKeyframe,b.currentKeyframe=a.currentKeyframe,b.direction=a.direction,b.directionBackwards=a.directionBackwards):a instanceof THREE.SkinnedMesh?b=new THREE.SkinnedMesh(a.geometry,a.material):a instanceof THREE.Mesh?b=new THREE.Mesh(a.geometry,a.material):a instanceof THREE.Line?b=new THREE.Line(a.geometry,a.material,a.type):a instanceof THREE.Ribbon?b=new THREE.Ribbon(a.geometry,a.material):a instanceof THREE.ParticleSystem?
-(b=new THREE.ParticleSystem(a.geometry,a.material),b.sortParticles=a.sortParticles):a instanceof THREE.Particle?b=new THREE.Particle(a.material):a instanceof THREE.Sprite?(b=new THREE.Sprite({}),b.color.copy(a.color),b.map=a.map,b.blending=a.blending,b.useScreenCoordinates=a.useScreenCoordinates,b.mergeWith3D=a.mergeWith3D,b.affectedByDistance=a.affectedByDistance,b.scaleByViewport=a.scaleByViewport,b.alignment=a.alignment,b.rotation3d.copy(a.rotation3d),b.rotation=a.rotation,b.opacity=a.opacity,
-b.uvOffset.copy(a.uvOffset),b.uvScale.copy(a.uvScale)):a instanceof THREE.LOD?b=new THREE.LOD:a instanceof THREE.MarchingCubes?(b=new THREE.MarchingCubes(a.resolution,a.material),b.field.set(a.field),b.isolation=a.isolation):a instanceof THREE.Object3D&&(b=new THREE.Object3D);b.name=a.name;b.parent=a.parent;b.up.copy(a.up);b.position.copy(a.position);b.rotation instanceof THREE.Vector3&&b.rotation.copy(a.rotation);b.eulerOrder=a.eulerOrder;b.scale.copy(a.scale);b.dynamic=a.dynamic;b.doubleSided=a.doubleSided;
-b.flipSided=a.flipSided;b.renderDepth=a.renderDepth;b.rotationAutoUpdate=a.rotationAutoUpdate;b.matrix.copy(a.matrix);b.matrixWorld.copy(a.matrixWorld);b.matrixRotationWorld.copy(a.matrixRotationWorld);b.matrixAutoUpdate=a.matrixAutoUpdate;b.matrixWorldNeedsUpdate=a.matrixWorldNeedsUpdate;b.quaternion.copy(a.quaternion);b.useQuaternion=a.useQuaternion;b.boundRadius=a.boundRadius;b.boundRadiusScale=a.boundRadiusScale;b.visible=a.visible;b.castShadow=a.castShadow;b.receiveShadow=a.receiveShadow;b.frustumCulled=
-a.frustumCulled;for(var c=0;c<a.children.length;c++){var d=THREE.SceneUtils.cloneObject(a.children[c]);b.children[c]=d;d.parent=b}if(a instanceof THREE.LOD)for(c=0;c<a.LODs.length;c++)b.LODs[c]={visibleAtDistance:a.LODs[c].visibleAtDistance,object3D:b.children[c]};return b},detach:function(a,b,c){a.applyMatrix(b.matrixWorld);b.remove(a);c.add(a)},attach:function(a,b,c){var d=new THREE.Matrix4;d.getInverse(c.matrixWorld);a.applyMatrix(d);b.remove(a);c.add(a)}};
-if(THREE.WebGLRenderer)THREE.ShaderUtils={lib:{fresnel:{uniforms:{mRefractionRatio:{type:"f",value:1.02},mFresnelBias:{type:"f",value:0.1},mFresnelPower:{type:"f",value:2},mFresnelScale:{type:"f",value:1},tCube:{type:"t",value:1,texture:null}},fragmentShader:"uniform samplerCube tCube;\nvarying vec3 vReflect;\nvarying vec3 vRefract[3];\nvarying float vReflectionFactor;\nvoid main() {\nvec4 reflectedColor = textureCube( tCube, vec3( -vReflect.x, vReflect.yz ) );\nvec4 refractedColor = vec4( 1.0, 1.0, 1.0, 1.0 );\nrefractedColor.r = textureCube( tCube, vec3( -vRefract[0].x, vRefract[0].yz ) ).r;\nrefractedColor.g = textureCube( tCube, vec3( -vRefract[1].x, vRefract[1].yz ) ).g;\nrefractedColor.b = textureCube( tCube, vec3( -vRefract[2].x, vRefract[2].yz ) ).b;\nrefractedColor.a = 1.0;\ngl_FragColor = mix( refractedColor, reflectedColor, clamp( vReflectionFactor, 0.0, 1.0 ) );\n}",
-vertexShader:"uniform float mRefractionRatio;\nuniform float mFresnelBias;\nuniform float mFresnelScale;\nuniform float mFresnelPower;\nvarying vec3 vReflect;\nvarying vec3 vRefract[3];\nvarying float vReflectionFactor;\nvoid main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvec4 mPosition = objectMatrix * vec4( position, 1.0 );\nvec3 nWorld = normalize ( mat3( objectMatrix[0].xyz, objectMatrix[1].xyz, objectMatrix[2].xyz ) * normal );\nvec3 I = mPosition.xyz - cameraPosition;\nvReflect = reflect( I, nWorld );\nvRefract[0] = refract( normalize( I ), nWorld, mRefractionRatio );\nvRefract[1] = refract( normalize( I ), nWorld, mRefractionRatio * 0.99 );\nvRefract[2] = refract( normalize( I ), nWorld, mRefractionRatio * 0.98 );\nvReflectionFactor = mFresnelBias + mFresnelScale * pow( 1.0 + dot( normalize( I ), nWorld ), mFresnelPower );\ngl_Position = projectionMatrix * mvPosition;\n}"},
-normal:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.fog,THREE.UniformsLib.lights,THREE.UniformsLib.shadowmap,{enableAO:{type:"i",value:0},enableDiffuse:{type:"i",value:0},enableSpecular:{type:"i",value:0},enableReflection:{type:"i",value:0},tDiffuse:{type:"t",value:0,texture:null},tCube:{type:"t",value:1,texture:null},tNormal:{type:"t",value:2,texture:null},tSpecular:{type:"t",value:3,texture:null},tAO:{type:"t",value:4,texture:null},tDisplacement:{type:"t",value:5,texture:null},uNormalScale:{type:"f",
-value:1},uDisplacementBias:{type:"f",value:0},uDisplacementScale:{type:"f",value:1},uDiffuseColor:{type:"c",value:new THREE.Color(16777215)},uSpecularColor:{type:"c",value:new THREE.Color(1118481)},uAmbientColor:{type:"c",value:new THREE.Color(16777215)},uShininess:{type:"f",value:30},uOpacity:{type:"f",value:1},uReflectivity:{type:"f",value:0.5},uOffset:{type:"v2",value:new THREE.Vector2(0,0)},uRepeat:{type:"v2",value:new THREE.Vector2(1,1)},wrapRGB:{type:"v3",value:new THREE.Vector3(1,1,1)}}]),
-fragmentShader:["uniform vec3 uAmbientColor;\nuniform vec3 uDiffuseColor;\nuniform vec3 uSpecularColor;\nuniform float uShininess;\nuniform float uOpacity;\nuniform bool enableDiffuse;\nuniform bool enableSpecular;\nuniform bool enableAO;\nuniform bool enableReflection;\nuniform sampler2D tDiffuse;\nuniform sampler2D tNormal;\nuniform sampler2D tSpecular;\nuniform sampler2D tAO;\nuniform samplerCube tCube;\nuniform float uNormalScale;\nuniform float uReflectivity;\nvarying vec3 vTangent;\nvarying vec3 vBinormal;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nuniform vec3 ambientLightColor;\n#if MAX_DIR_LIGHTS > 0\nuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\nuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n#endif\n#if MAX_POINT_LIGHTS > 0\nuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\nvarying vec4 vPointLight[ MAX_POINT_LIGHTS ];\n#endif\n#ifdef WRAP_AROUND\nuniform vec3 wrapRGB;\n#endif\nvarying vec3 vViewPosition;",
-THREE.ShaderChunk.shadowmap_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,"void main() {\ngl_FragColor = vec4( vec3( 1.0 ), uOpacity );\nvec3 specularTex = vec3( 1.0 );\nvec3 normalTex = texture2D( tNormal, vUv ).xyz * 2.0 - 1.0;\nnormalTex.xy *= uNormalScale;\nnormalTex = normalize( normalTex );\nif( enableDiffuse ) {\n#ifdef GAMMA_INPUT\nvec4 texelColor = texture2D( tDiffuse, vUv );\ntexelColor.xyz *= texelColor.xyz;\ngl_FragColor = gl_FragColor * texelColor;\n#else\ngl_FragColor = gl_FragColor * texture2D( tDiffuse, vUv );\n#endif\n}\nif( enableAO ) {\n#ifdef GAMMA_INPUT\nvec4 aoColor = texture2D( tAO, vUv );\naoColor.xyz *= aoColor.xyz;\ngl_FragColor.xyz = gl_FragColor.xyz * aoColor.xyz;\n#else\ngl_FragColor.xyz = gl_FragColor.xyz * texture2D( tAO, vUv ).xyz;\n#endif\n}\nif( enableSpecular )\nspecularTex = texture2D( tSpecular, vUv ).xyz;\nmat3 tsb = mat3( normalize( vTangent ), normalize( vBinormal ), normalize( vNormal ) );\nvec3 finalNormal = tsb * normalTex;\nvec3 normal = normalize( finalNormal );\nvec3 viewPosition = normalize( vViewPosition );\n#if MAX_POINT_LIGHTS > 0\nvec3 pointDiffuse = vec3( 0.0 );\nvec3 pointSpecular = vec3( 0.0 );\nfor ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\nvec3 pointVector = normalize( vPointLight[ i ].xyz );\nfloat pointDistance = vPointLight[ i ].w;\n#ifdef WRAP_AROUND\nfloat pointDiffuseWeightFull = max( dot( normal, pointVector ), 0.0 );\nfloat pointDiffuseWeightHalf = max( 0.5 * dot( normal, pointVector ) + 0.5, 0.0 );\nvec3 pointDiffuseWeight = mix( vec3 ( pointDiffuseWeightFull ), vec3( pointDiffuseWeightHalf ), wrapRGB );\n#else\nfloat pointDiffuseWeight = max( dot( normal, pointVector ), 0.0 );\n#endif\npointDiffuse += pointDistance * pointLightColor[ i ] * uDiffuseColor * pointDiffuseWeight;\nvec3 pointHalfVector = normalize( pointVector + viewPosition );\nfloat pointDotNormalHalf = max( dot( normal, pointHalfVector ), 0.0 );\nfloat pointSpecularWeight = specularTex.r * max( pow( pointDotNormalHalf, uShininess ), 0.0 );\npointSpecular += pointDistance * pointLightColor[ i ] * uSpecularColor * pointSpecularWeight * pointDiffuseWeight;\n}\n#endif\n#if MAX_DIR_LIGHTS > 0\nvec3 dirDiffuse = vec3( 0.0 );\nvec3 dirSpecular = vec3( 0.0 );\nfor( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {\nvec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );\nvec3 dirVector = normalize( lDirection.xyz );\n#ifdef WRAP_AROUND\nfloat directionalLightWeightingFull = max( dot( normal, dirVector ), 0.0 );\nfloat directionalLightWeightingHalf = max( 0.5 * dot( normal, dirVector ) + 0.5, 0.0 );\nvec3 dirDiffuseWeight = mix( vec3( directionalLightWeightingFull ), vec3( directionalLightWeightingHalf ), wrapRGB );\n#else\nfloat dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );\n#endif\ndirDiffuse += directionalLightColor[ i ] * uDiffuseColor * dirDiffuseWeight;\nvec3 dirHalfVector = normalize( dirVector + viewPosition );\nfloat dirDotNormalHalf = max( dot( normal, dirHalfVector ), 0.0 );\nfloat dirSpecularWeight = specularTex.r * max( pow( dirDotNormalHalf, uShininess ), 0.0 );\ndirSpecular += directionalLightColor[ i ] * uSpecularColor * dirSpecularWeight * dirDiffuseWeight;\n}\n#endif\nvec3 totalDiffuse = vec3( 0.0 );\nvec3 totalSpecular = vec3( 0.0 );\n#if MAX_DIR_LIGHTS > 0\ntotalDiffuse += dirDiffuse;\ntotalSpecular += dirSpecular;\n#endif\n#if MAX_POINT_LIGHTS > 0\ntotalDiffuse += pointDiffuse;\ntotalSpecular += pointSpecular;\n#endif\ngl_FragColor.xyz = gl_FragColor.xyz * ( totalDiffuse + ambientLightColor * uAmbientColor) + totalSpecular;\nif ( enableReflection ) {\nvec3 wPos = cameraPosition - vViewPosition;\nvec3 vReflect = reflect( normalize( wPos ), normal );\nvec4 cubeColor = textureCube( tCube, vec3( -vReflect.x, vReflect.yz ) );\n#ifdef GAMMA_INPUT\ncubeColor.xyz *= cubeColor.xyz;\n#endif\ngl_FragColor.xyz = mix( gl_FragColor.xyz, cubeColor.xyz, specularTex.r * uReflectivity );\n}",
-THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.linear_to_gamma_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n"),vertexShader:["attribute vec4 tangent;\nuniform vec2 uOffset;\nuniform vec2 uRepeat;\n#ifdef VERTEX_TEXTURES\nuniform sampler2D tDisplacement;\nuniform float uDisplacementScale;\nuniform float uDisplacementBias;\n#endif\nvarying vec3 vTangent;\nvarying vec3 vBinormal;\nvarying vec3 vNormal;\nvarying vec2 vUv;\n#if MAX_POINT_LIGHTS > 0\nuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\nuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\nvarying vec4 vPointLight[ MAX_POINT_LIGHTS ];\n#endif\nvarying vec3 vViewPosition;",
-THREE.ShaderChunk.shadowmap_pars_vertex,"void main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvViewPosition = -mvPosition.xyz;\nvNormal = normalMatrix * normal;\nvTangent = normalMatrix * tangent.xyz;\nvBinormal = cross( vNormal, vTangent ) * tangent.w;\nvUv = uv * uRepeat + uOffset;\n#if MAX_POINT_LIGHTS > 0\nfor( int i = 0; i < MAX_POINT_LIGHTS; i++ ) {\nvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\nvec3 lVector = lPosition.xyz - mvPosition.xyz;\nfloat lDistance = 1.0;\nif ( pointLightDistance[ i ] > 0.0 )\nlDistance = 1.0 - min( ( length( lVector ) / pointLightDistance[ i ] ), 1.0 );\nlVector = normalize( lVector );\nvPointLight[ i ] = vec4( lVector, lDistance );\n}\n#endif\n#ifdef VERTEX_TEXTURES\nvec3 dv = texture2D( tDisplacement, uv ).xyz;\nfloat df = uDisplacementScale * dv.x + uDisplacementBias;\nvec4 displacedPosition = vec4( normalize( vNormal.xyz ) * df, 0.0 ) + mvPosition;\ngl_Position = projectionMatrix * displacedPosition;\n#else\ngl_Position = projectionMatrix * mvPosition;\n#endif",
-THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n")},cube:{uniforms:{tCube:{type:"t",value:1,texture:null},tFlip:{type:"f",value:-1}},vertexShader:"varying vec3 vViewPosition;\nvoid main() {\nvec4 mPosition = objectMatrix * vec4( position, 1.0 );\nvViewPosition = cameraPosition - mPosition.xyz;\ngl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",fragmentShader:"uniform samplerCube tCube;\nuniform float tFlip;\nvarying vec3 vViewPosition;\nvoid main() {\nvec3 wPos = cameraPosition - vViewPosition;\ngl_FragColor = textureCube( tCube, vec3( tFlip * wPos.x, wPos.yz ) );\n}"}}};
-THREE.BufferGeometry=function(){this.id=THREE.GeometryCount++;this.vertexColorArray=this.vertexUvArray=this.vertexNormalArray=this.vertexPositionArray=this.vertexIndexArray=this.vertexColorBuffer=this.vertexUvBuffer=this.vertexNormalBuffer=this.vertexPositionBuffer=this.vertexIndexBuffer=null;this.dynamic=!1;this.boundingSphere=this.boundingBox=null;this.morphTargets=[]};THREE.BufferGeometry.prototype={constructor:THREE.BufferGeometry,computeBoundingBox:function(){},computeBoundingSphere:function(){}};
-THREE.Curve=function(){};THREE.Curve.prototype.getPoint=function(){console.log("Warning, getPoint() not implemented!");return null};THREE.Curve.prototype.getPointAt=function(a){return this.getPoint(this.getUtoTmapping(a))};THREE.Curve.prototype.getPoints=function(a){a||(a=5);var b,c=[];for(b=0;b<=a;b++)c.push(this.getPoint(b/a));return c};THREE.Curve.prototype.getSpacedPoints=function(a){a||(a=5);var b,c=[];for(b=0;b<=a;b++)c.push(this.getPointAt(b/a));return c};
-THREE.Curve.prototype.getLength=function(){var a=this.getLengths();return a[a.length-1]};THREE.Curve.prototype.getLengths=function(a){a||(a=200);if(this.cacheArcLengths&&this.cacheArcLengths.length==a+1)return this.cacheArcLengths;var b=[],c,d=this.getPoint(0),f,g=0;b.push(0);for(f=1;f<=a;f++)c=this.getPoint(f/a),g+=c.distanceTo(d),b.push(g),d=c;return this.cacheArcLengths=b};
-THREE.Curve.prototype.getUtoTmapping=function(a,b){var c=this.getLengths(),d=0,f=c.length,g;g=b?b:a*c[f-1];for(var e=0,h=f-1,i;e<=h;)if(d=Math.floor(e+(h-e)/2),i=c[d]-g,0>i)e=d+1;else if(0<i)h=d-1;else{h=d;break}d=h;if(c[d]==g)return d/(f-1);e=c[d];return c=(d+(g-e)/(c[d+1]-e))/(f-1)};THREE.Curve.prototype.getNormalVector=function(a){a=this.getTangent(a);return new THREE.Vector2(-a.y,a.x)};
-THREE.Curve.prototype.getTangent=function(a){var b=a-1.0E-4,a=a+1.0E-4;0>b&&(b=0);1<a&&(a=1);b=this.getPoint(b);a=this.getPoint(a);return b.clone().subSelf(a).normalize()};THREE.Curve.prototype.getTangentAt=function(a){return this.getTangent(this.getUtoTmapping(a))};THREE.LineCurve=function(a,b){a instanceof THREE.Vector2?(this.v1=a,this.v2=b):THREE.LineCurve.oldConstructor.apply(this,arguments)};
-THREE.LineCurve.oldConstructor=function(a,b,c,d){this.constructor(new THREE.Vector2(a,b),new THREE.Vector2(c,d))};THREE.LineCurve.prototype=new THREE.Curve;THREE.LineCurve.prototype.constructor=THREE.LineCurve;THREE.LineCurve.prototype.getPoint=function(a){var b=new THREE.Vector2;b.sub(this.v2,this.v1);b.multiplyScalar(a).addSelf(this.v1);return b};THREE.LineCurve.prototype.getPointAt=function(a){return this.getPoint(a)};
-THREE.LineCurve.prototype.getTangent=function(){var a=new THREE.Vector2;a.sub(this.v2,this.v1);a.normalize();return a};THREE.QuadraticBezierCurve=function(a,b,c){if(!(b instanceof THREE.Vector2))var d=Array.prototype.slice.call(arguments),a=new THREE.Vector2(d[0],d[1]),b=new THREE.Vector2(d[2],d[3]),c=new THREE.Vector2(d[4],d[5]);this.v0=a;this.v1=b;this.v2=c};THREE.QuadraticBezierCurve.prototype=new THREE.Curve;THREE.QuadraticBezierCurve.prototype.constructor=THREE.QuadraticBezierCurve;
-THREE.QuadraticBezierCurve.prototype.getPoint=function(a){var b;b=THREE.Shape.Utils.b2(a,this.v0.x,this.v1.x,this.v2.x);a=THREE.Shape.Utils.b2(a,this.v0.y,this.v1.y,this.v2.y);return new THREE.Vector2(b,a)};THREE.QuadraticBezierCurve.prototype.getTangent=function(a){var b;b=THREE.Curve.Utils.tangentQuadraticBezier(a,this.v0.x,this.v1.x,this.v2.x);a=THREE.Curve.Utils.tangentQuadraticBezier(a,this.v0.y,this.v1.y,this.v2.y);b=new THREE.Vector2(b,a);b.normalize();return b};
-THREE.CubicBezierCurve=function(a,b,c,d){if(!(b instanceof THREE.Vector2))var f=Array.prototype.slice.call(arguments),a=new THREE.Vector2(f[0],f[1]),b=new THREE.Vector2(f[2],f[3]),c=new THREE.Vector2(f[4],f[5]),d=new THREE.Vector2(f[6],f[7]);this.v0=a;this.v1=b;this.v2=c;this.v3=d};THREE.CubicBezierCurve.prototype=new THREE.Curve;THREE.CubicBezierCurve.prototype.constructor=THREE.CubicBezierCurve;
-THREE.CubicBezierCurve.prototype.getPoint=function(a){var b;b=THREE.Shape.Utils.b3(a,this.v0.x,this.v1.x,this.v2.x,this.v3.x);a=THREE.Shape.Utils.b3(a,this.v0.y,this.v1.y,this.v2.y,this.v3.y);return new THREE.Vector2(b,a)};THREE.CubicBezierCurve.prototype.getTangent=function(a){var b;b=THREE.Curve.Utils.tangentCubicBezier(a,this.v0.x,this.v1.x,this.v2.x,this.v3.x);a=THREE.Curve.Utils.tangentCubicBezier(a,this.v0.y,this.v1.y,this.v2.y,this.v3.y);b=new THREE.Vector2(b,a);b.normalize();return b};
-THREE.SplineCurve=function(a){this.points=void 0==a?[]:a};THREE.SplineCurve.prototype=new THREE.Curve;THREE.SplineCurve.prototype.constructor=THREE.SplineCurve;
-THREE.SplineCurve.prototype.getPoint=function(a){var b=new THREE.Vector2,c=[],d=this.points,f;f=(d.length-1)*a;a=Math.floor(f);f-=a;c[0]=0==a?a:a-1;c[1]=a;c[2]=a>d.length-2?a:a+1;c[3]=a>d.length-3?a:a+2;b.x=THREE.Curve.Utils.interpolate(d[c[0]].x,d[c[1]].x,d[c[2]].x,d[c[3]].x,f);b.y=THREE.Curve.Utils.interpolate(d[c[0]].y,d[c[1]].y,d[c[2]].y,d[c[3]].y,f);return b};THREE.ArcCurve=function(a,b,c,d,f,g){this.aX=a;this.aY=b;this.aRadius=c;this.aStartAngle=d;this.aEndAngle=f;this.aClockwise=g};
-THREE.ArcCurve.prototype=new THREE.Curve;THREE.ArcCurve.prototype.constructor=THREE.ArcCurve;THREE.ArcCurve.prototype.getPoint=function(a){var b=this.aEndAngle-this.aStartAngle;this.aClockwise||(a=1-a);b=this.aStartAngle+a*b;a=this.aX+this.aRadius*Math.cos(b);b=this.aY+this.aRadius*Math.sin(b);return new THREE.Vector2(a,b)};
-THREE.Curve.Utils={tangentQuadraticBezier:function(a,b,c,d){return 2*(1-a)*(c-b)+2*a*(d-c)},tangentCubicBezier:function(a,b,c,d,f){return-3*b*(1-a)*(1-a)+3*c*(1-a)*(1-a)-6*a*c*(1-a)+6*a*d*(1-a)-3*a*a*d+3*a*a*f},tangentSpline:function(a){return 6*a*a-6*a+(3*a*a-4*a+1)+(-6*a*a+6*a)+(3*a*a-2*a)},interpolate:function(a,b,c,d,f){var a=0.5*(c-a),d=0.5*(d-b),g=f*f;return(2*b-2*c+a+d)*f*g+(-3*b+3*c-2*a-d)*g+a*f+b}};
-THREE.Curve.create=function(a,b){a.prototype=new THREE.Curve;a.prototype.constructor=a;a.prototype.getPoint=b;return a};THREE.LineCurve3=THREE.Curve.create(function(a,b){this.v1=a;this.v2=b},function(a){var b=new THREE.Vector3;b.sub(this.v2,this.v1);b.multiplyScalar(a);b.addSelf(this.v1);return b});
-THREE.QuadraticBezierCurve3=THREE.Curve.create(function(a,b,c){this.v0=a;this.v1=b;this.v2=c},function(a){var b,c;b=THREE.Shape.Utils.b2(a,this.v0.x,this.v1.x,this.v2.x);c=THREE.Shape.Utils.b2(a,this.v0.y,this.v1.y,this.v2.y);a=THREE.Shape.Utils.b2(a,this.v0.z,this.v1.z,this.v2.z);return new THREE.Vector3(b,c,a)});
-THREE.CubicBezierCurve3=THREE.Curve.create(function(a,b,c,d){this.v0=a;this.v1=b;this.v2=c;this.v3=d},function(a){var b,c;b=THREE.Shape.Utils.b3(a,this.v0.x,this.v1.x,this.v2.x,this.v3.x);c=THREE.Shape.Utils.b3(a,this.v0.y,this.v1.y,this.v2.y,this.v3.y);a=THREE.Shape.Utils.b3(a,this.v0.z,this.v1.z,this.v2.z,this.v3.z);return new THREE.Vector3(b,c,a)});
-THREE.SplineCurve3=THREE.Curve.create(function(a){this.points=void 0==a?[]:a},function(a){var b=new THREE.Vector3,c=[],d=this.points,f;f=(d.length-1)*a;a=Math.floor(f);f-=a;c[0]=0==a?a:a-1;c[1]=a;c[2]=a>d.length-2?a:a+1;c[3]=a>d.length-3?a:a+2;b.x=THREE.Curve.Utils.interpolate(d[c[0]].x,d[c[1]].x,d[c[2]].x,d[c[3]].x,f);b.y=THREE.Curve.Utils.interpolate(d[c[0]].y,d[c[1]].y,d[c[2]].y,d[c[3]].y,f);b.z=THREE.Curve.Utils.interpolate(d[c[0]].z,d[c[1]].z,d[c[2]].z,d[c[3]].z,f);return b});
-THREE.CurvePath=function(){this.curves=[];this.bends=[];this.autoClose=!1};THREE.CurvePath.prototype=new THREE.Curve;THREE.CurvePath.prototype.constructor=THREE.CurvePath;THREE.CurvePath.prototype.add=function(a){this.curves.push(a)};THREE.CurvePath.prototype.checkConnection=function(){};THREE.CurvePath.prototype.closePath=function(){var a=this.curves[0].getPoint(0),b=this.curves[this.curves.length-1].getPoint(1);a.equals(b)||this.curves.push(new THREE.LineCurve(b,a))};
-THREE.CurvePath.prototype.getPoint=function(a){for(var b=a*this.getLength(),c=this.getCurveLengths(),a=0;a<c.length;){if(c[a]>=b)return b=c[a]-b,a=this.curves[a],b=1-b/a.getLength(),a.getPointAt(b);a++}return null};THREE.CurvePath.prototype.getLength=function(){var a=this.getCurveLengths();return a[a.length-1]};
-THREE.CurvePath.prototype.getCurveLengths=function(){if(this.cacheLengths&&this.cacheLengths.length==this.curves.length)return this.cacheLengths;var a=[],b=0,c,d=this.curves.length;for(c=0;c<d;c++)b+=this.curves[c].getLength(),a.push(b);return this.cacheLengths=a};
-THREE.CurvePath.prototype.getBoundingBox=function(){var a=this.getPoints(),b,c,d,f;b=c=Number.NEGATIVE_INFINITY;d=f=Number.POSITIVE_INFINITY;var g,e,h,i;i=new THREE.Vector2;for(e=0,h=a.length;e<h;e++){g=a[e];if(g.x>b)b=g.x;else if(g.x<d)d=g.x;if(g.y>c)c=g.y;else if(g.y<c)f=g.y;i.addSelf(g.x,g.y)}return{minX:d,minY:f,maxX:b,maxY:c,centroid:i.divideScalar(h)}};THREE.CurvePath.prototype.createPointsGeometry=function(a){return this.createGeometry(this.getPoints(a,!0))};
-THREE.CurvePath.prototype.createSpacedPointsGeometry=function(a){return this.createGeometry(this.getSpacedPoints(a,!0))};THREE.CurvePath.prototype.createGeometry=function(a){for(var b=new THREE.Geometry,c=0;c<a.length;c++)b.vertices.push(new THREE.Vertex(new THREE.Vector3(a[c].x,a[c].y,0)));return b};THREE.CurvePath.prototype.addWrapPath=function(a){this.bends.push(a)};
-THREE.CurvePath.prototype.getTransformedPoints=function(a,b){var c=this.getPoints(a),d,f;if(!b)b=this.bends;for(d=0,f=b.length;d<f;d++)c=this.getWrapPoints(c,b[d]);return c};THREE.CurvePath.prototype.getTransformedSpacedPoints=function(a,b){var c=this.getSpacedPoints(a),d,f;if(!b)b=this.bends;for(d=0,f=b.length;d<f;d++)c=this.getWrapPoints(c,b[d]);return c};
-THREE.CurvePath.prototype.getWrapPoints=function(a,b){var c=this.getBoundingBox(),d,f,g,e,h,i;for(d=0,f=a.length;d<f;d++)g=a[d],e=g.x,h=g.y,i=e/c.maxX,i=b.getUtoTmapping(i,e),e=b.getPoint(i),h=b.getNormalVector(i).multiplyScalar(h),g.x=e.x+h.x,g.y=e.y+h.y;return a};
-THREE.EventTarget=function(){var a={};this.addEventListener=function(b,c){void 0==a[b]&&(a[b]=[]);-1===a[b].indexOf(c)&&a[b].push(c)};this.dispatchEvent=function(b){for(var c in a[b.type])a[b.type][c](b)};this.removeEventListener=function(b,c){var d=a[b].indexOf(c);-1!==d&&a[b].splice(d,1)}};THREE.Gyroscope=function(){THREE.Object3D.call(this)};THREE.Gyroscope.prototype=new THREE.Object3D;THREE.Gyroscope.prototype.constructor=THREE.Gyroscope;
-THREE.Gyroscope.prototype.updateMatrixWorld=function(a){this.matrixAutoUpdate&&this.updateMatrix();if(this.matrixWorldNeedsUpdate||a)this.parent?(this.matrixWorld.multiply(this.parent.matrixWorld,this.matrix),this.matrixWorld.decompose(this.translationWorld,this.rotationWorld,this.scaleWorld),this.matrix.decompose(this.translationObject,this.rotationObject,this.scaleObject),this.matrixWorld.compose(this.translationWorld,this.rotationObject,this.scaleWorld)):this.matrixWorld.copy(this.matrix),this.matrixWorldNeedsUpdate=
-!1,a=!0;for(var b=0,c=this.children.length;b<c;b++)this.children[b].updateMatrixWorld(a)};THREE.Gyroscope.prototype.translationWorld=new THREE.Vector3;THREE.Gyroscope.prototype.translationObject=new THREE.Vector3;THREE.Gyroscope.prototype.rotationWorld=new THREE.Quaternion;THREE.Gyroscope.prototype.rotationObject=new THREE.Quaternion;THREE.Gyroscope.prototype.scaleWorld=new THREE.Vector3;THREE.Gyroscope.prototype.scaleObject=new THREE.Vector3;
-THREE.Path=function(a){THREE.CurvePath.call(this);this.actions=[];a&&this.fromPoints(a)};THREE.Path.prototype=new THREE.CurvePath;THREE.Path.prototype.constructor=THREE.Path;THREE.PathActions={MOVE_TO:"moveTo",LINE_TO:"lineTo",QUADRATIC_CURVE_TO:"quadraticCurveTo",BEZIER_CURVE_TO:"bezierCurveTo",CSPLINE_THRU:"splineThru",ARC:"arc"};THREE.Path.prototype.fromPoints=function(a){this.moveTo(a[0].x,a[0].y);for(var b=1,c=a.length;b<c;b++)this.lineTo(a[b].x,a[b].y)};
-THREE.Path.prototype.moveTo=function(a,b){var c=Array.prototype.slice.call(arguments);this.actions.push({action:THREE.PathActions.MOVE_TO,args:c})};THREE.Path.prototype.lineTo=function(a,b){var c=Array.prototype.slice.call(arguments),d=this.actions[this.actions.length-1].args;this.curves.push(new THREE.LineCurve(new THREE.Vector2(d[d.length-2],d[d.length-1]),new THREE.Vector2(a,b)));this.actions.push({action:THREE.PathActions.LINE_TO,args:c})};
-THREE.Path.prototype.quadraticCurveTo=function(a,b,c,d){var f=Array.prototype.slice.call(arguments),g=this.actions[this.actions.length-1].args;this.curves.push(new THREE.QuadraticBezierCurve(new THREE.Vector2(g[g.length-2],g[g.length-1]),new THREE.Vector2(a,b),new THREE.Vector2(c,d)));this.actions.push({action:THREE.PathActions.QUADRATIC_CURVE_TO,args:f})};
-THREE.Path.prototype.bezierCurveTo=function(a,b,c,d,f,g){var e=Array.prototype.slice.call(arguments),h=this.actions[this.actions.length-1].args;this.curves.push(new THREE.CubicBezierCurve(new THREE.Vector2(h[h.length-2],h[h.length-1]),new THREE.Vector2(a,b),new THREE.Vector2(c,d),new THREE.Vector2(f,g)));this.actions.push({action:THREE.PathActions.BEZIER_CURVE_TO,args:e})};
-THREE.Path.prototype.splineThru=function(a){var b=Array.prototype.slice.call(arguments),c=this.actions[this.actions.length-1].args,c=[new THREE.Vector2(c[c.length-2],c[c.length-1])];Array.prototype.push.apply(c,a);this.curves.push(new THREE.SplineCurve(c));this.actions.push({action:THREE.PathActions.CSPLINE_THRU,args:b})};
-THREE.Path.prototype.arc=function(a,b,c,d,f,g){var e=Array.prototype.slice.call(arguments);this.curves.push(new THREE.ArcCurve(a,b,c,d,f,g));this.actions.push({action:THREE.PathActions.ARC,args:e})};THREE.Path.prototype.getSpacedPoints=function(a){a||(a=40);for(var b=[],c=0;c<a;c++)b.push(this.getPoint(c/a));return b};
-THREE.Path.prototype.getPoints=function(a,b){var a=a||12,c=[],d,f,g,e,h,i,j,k,q,m,o,p,n;for(d=0,f=this.actions.length;d<f;d++)switch(g=this.actions[d],e=g.action,g=g.args,e){case THREE.PathActions.LINE_TO:c.push(new THREE.Vector2(g[0],g[1]));break;case THREE.PathActions.QUADRATIC_CURVE_TO:h=g[2];i=g[3];q=g[0];m=g[1];0<c.length?(e=c[c.length-1],o=e.x,p=e.y):(e=this.actions[d-1].args,o=e[e.length-2],p=e[e.length-1]);for(e=1;e<=a;e++)n=e/a,g=THREE.Shape.Utils.b2(n,o,q,h),n=THREE.Shape.Utils.b2(n,p,m,
-i),c.push(new THREE.Vector2(g,n));break;case THREE.PathActions.BEZIER_CURVE_TO:h=g[4];i=g[5];q=g[0];m=g[1];j=g[2];k=g[3];0<c.length?(e=c[c.length-1],o=e.x,p=e.y):(e=this.actions[d-1].args,o=e[e.length-2],p=e[e.length-1]);for(e=1;e<=a;e++)n=e/a,g=THREE.Shape.Utils.b3(n,o,q,j,h),n=THREE.Shape.Utils.b3(n,p,m,k,i),c.push(new THREE.Vector2(g,n));break;case THREE.PathActions.CSPLINE_THRU:e=this.actions[d-1].args;e=[new THREE.Vector2(e[e.length-2],e[e.length-1])];n=a*g[0].length;e=e.concat(g[0]);g=new THREE.SplineCurve(e);
-for(e=1;e<=n;e++)c.push(g.getPointAt(e/n));break;case THREE.PathActions.ARC:e=this.actions[d-1].args;h=g[0];i=g[1];j=g[2];q=g[3];n=g[4];m=!!g[5];k=e[e.length-2];o=e[e.length-1];0==e.length&&(k=o=0);p=n-q;var r=2*a;for(e=1;e<=r;e++)n=e/r,m||(n=1-n),n=q+n*p,g=k+h+j*Math.cos(n),n=o+i+j*Math.sin(n),c.push(new THREE.Vector2(g,n))}b&&c.push(c[0]);return c};THREE.Path.prototype.transform=function(a,b){this.getBoundingBox();return this.getWrapPoints(this.getPoints(b),a)};
-THREE.Path.prototype.nltransform=function(a,b,c,d,f,g){var e=this.getPoints(),h,i,j,k,q;for(h=0,i=e.length;h<i;h++)j=e[h],k=j.x,q=j.y,j.x=a*k+b*q+c,j.y=d*q+f*k+g;return e};
-THREE.Path.prototype.debug=function(a){var b=this.getBoundingBox();a||(a=document.createElement("canvas"),a.setAttribute("width",b.maxX+100),a.setAttribute("height",b.maxY+100),document.body.appendChild(a));b=a.getContext("2d");b.fillStyle="white";b.fillRect(0,0,a.width,a.height);b.strokeStyle="black";b.beginPath();var c,d,f;for(a=0,c=this.actions.length;a<c;a++)d=this.actions[a],f=d.args,d=d.action,d!=THREE.PathActions.CSPLINE_THRU&&b[d].apply(b,f);b.stroke();b.closePath();b.strokeStyle="red";d=
-this.getPoints();for(a=0,c=d.length;a<c;a++)f=d[a],b.beginPath(),b.arc(f.x,f.y,1.5,0,2*Math.PI,!1),b.stroke(),b.closePath()};
-THREE.Path.prototype.toShapes=function(){var a,b,c,d,f=[],g=new THREE.Path;for(a=0,b=this.actions.length;a<b;a++)c=this.actions[a],d=c.args,c=c.action,c==THREE.PathActions.MOVE_TO&&0!=g.actions.length&&(f.push(g),g=new THREE.Path),g[c].apply(g,d);0!=g.actions.length&&f.push(g);if(0==f.length)return[];var e;d=[];a=!THREE.Shape.Utils.isClockWise(f[0].getPoints());if(1==f.length)return g=f[0],e=new THREE.Shape,e.actions=g.actions,e.curves=g.curves,d.push(e),d;if(a){e=new THREE.Shape;for(a=0,b=f.length;a<
-b;a++)g=f[a],THREE.Shape.Utils.isClockWise(g.getPoints())?(e.actions=g.actions,e.curves=g.curves,d.push(e),e=new THREE.Shape):e.holes.push(g)}else{for(a=0,b=f.length;a<b;a++)g=f[a],THREE.Shape.Utils.isClockWise(g.getPoints())?(e&&d.push(e),e=new THREE.Shape,e.actions=g.actions,e.curves=g.curves):e.holes.push(g);d.push(e)}return d};THREE.Shape=function(){THREE.Path.apply(this,arguments);this.holes=[]};THREE.Shape.prototype=new THREE.Path;THREE.Shape.prototype.constructor=THREE.Path;
-THREE.Shape.prototype.extrude=function(a){return new THREE.ExtrudeGeometry(this,a)};THREE.Shape.prototype.getPointsHoles=function(a){var b,c=this.holes.length,d=[];for(b=0;b<c;b++)d[b]=this.holes[b].getTransformedPoints(a,this.bends);return d};THREE.Shape.prototype.getSpacedPointsHoles=function(a){var b,c=this.holes.length,d=[];for(b=0;b<c;b++)d[b]=this.holes[b].getTransformedSpacedPoints(a,this.bends);return d};
-THREE.Shape.prototype.extractAllPoints=function(a){return{shape:this.getTransformedPoints(a),holes:this.getPointsHoles(a)}};THREE.Shape.prototype.extractAllSpacedPoints=function(a){return{shape:this.getTransformedSpacedPoints(a),holes:this.getSpacedPointsHoles(a)}};
-THREE.Shape.Utils={removeHoles:function(a,b){var c=a.concat(),d=c.concat(),f,g,e,h,i,j,k,q,m,o,p=[];for(i=0;i<b.length;i++){j=b[i];Array.prototype.push.apply(d,j);g=Number.POSITIVE_INFINITY;for(f=0;f<j.length;f++){m=j[f];o=[];for(q=0;q<c.length;q++)k=c[q],k=m.distanceToSquared(k),o.push(k),k<g&&(g=k,e=f,h=q)}f=0<=h-1?h-1:c.length-1;g=0<=e-1?e-1:j.length-1;var n=[j[e],c[h],c[f]];q=THREE.FontUtils.Triangulate.area(n);var r=[j[e],j[g],c[h]];m=THREE.FontUtils.Triangulate.area(r);o=h;k=e;h+=1;e+=-1;0>
-h&&(h+=c.length);h%=c.length;0>e&&(e+=j.length);e%=j.length;f=0<=h-1?h-1:c.length-1;g=0<=e-1?e-1:j.length-1;n=[j[e],c[h],c[f]];n=THREE.FontUtils.Triangulate.area(n);r=[j[e],j[g],c[h]];r=THREE.FontUtils.Triangulate.area(r);q+m>n+r&&(h=o,e=k,0>h&&(h+=c.length),h%=c.length,0>e&&(e+=j.length),e%=j.length,f=0<=h-1?h-1:c.length-1,g=0<=e-1?e-1:j.length-1);q=c.slice(0,h);m=c.slice(h);o=j.slice(e);k=j.slice(0,e);g=[j[e],j[g],c[h]];p.push([j[e],c[h],c[f]]);p.push(g);c=q.concat(o).concat(k).concat(m)}return{shape:c,
-isolatedPts:p,allpoints:d}},triangulateShape:function(a,b){var c=THREE.Shape.Utils.removeHoles(a,b),d=c.allpoints,f=c.isolatedPts,c=THREE.FontUtils.Triangulate(c.shape,!1),g,e,h,i,j={};for(g=0,e=d.length;g<e;g++)i=d[g].x+":"+d[g].y,void 0!==j[i]&&console.log("Duplicate point",i),j[i]=g;for(g=0,e=c.length;g<e;g++){h=c[g];for(d=0;3>d;d++)i=h[d].x+":"+h[d].y,i=j[i],void 0!==i&&(h[d]=i)}for(g=0,e=f.length;g<e;g++){h=f[g];for(d=0;3>d;d++)i=h[d].x+":"+h[d].y,i=j[i],void 0!==i&&(h[d]=i)}return c.concat(f)},
-isClockWise:function(a){return 0>THREE.FontUtils.Triangulate.area(a)},b2p0:function(a,b){var c=1-a;return c*c*b},b2p1:function(a,b){return 2*(1-a)*a*b},b2p2:function(a,b){return a*a*b},b2:function(a,b,c,d){return this.b2p0(a,b)+this.b2p1(a,c)+this.b2p2(a,d)},b3p0:function(a,b){var c=1-a;return c*c*c*b},b3p1:function(a,b){var c=1-a;return 3*c*c*a*b},b3p2:function(a,b){return 3*(1-a)*a*a*b},b3p3:function(a,b){return a*a*a*b},b3:function(a,b,c,d,f){return this.b3p0(a,b)+this.b3p1(a,c)+this.b3p2(a,d)+
-this.b3p3(a,f)}};THREE.TextPath=function(a,b){THREE.Path.call(this);this.parameters=b||{};this.set(a)};THREE.TextPath.prototype.set=function(a,b){b=b||this.parameters;this.text=a;var c=void 0!==b.curveSegments?b.curveSegments:4,d=void 0!==b.font?b.font:"helvetiker",f=void 0!==b.weight?b.weight:"normal",g=void 0!==b.style?b.style:"normal";THREE.FontUtils.size=void 0!==b.size?b.size:100;THREE.FontUtils.divisions=c;THREE.FontUtils.face=d;THREE.FontUtils.weight=f;THREE.FontUtils.style=g};
-THREE.TextPath.prototype.toShapes=function(){for(var a=THREE.FontUtils.drawText(this.text).paths,b=[],c=0,d=a.length;c<d;c++)Array.prototype.push.apply(b,a[c].toShapes());return b};
-THREE.AnimationHandler=function(){var a=[],b={},c={update:function(b){for(var c=0;c<a.length;c++)a[c].update(b)},addToUpdate:function(b){-1===a.indexOf(b)&&a.push(b)},removeFromUpdate:function(b){b=a.indexOf(b);-1!==b&&a.splice(b,1)},add:function(a){void 0!==b[a.name]&&console.log("THREE.AnimationHandler.add: Warning! "+a.name+" already exists in library. Overwriting.");b[a.name]=a;if(!0!==a.initialized){for(var c=0;c<a.hierarchy.length;c++){for(var d=0;d<a.hierarchy[c].keys.length;d++){if(0>a.hierarchy[c].keys[d].time)a.hierarchy[c].keys[d].time=
-0;if(void 0!==a.hierarchy[c].keys[d].rot&&!(a.hierarchy[c].keys[d].rot instanceof THREE.Quaternion)){var h=a.hierarchy[c].keys[d].rot;a.hierarchy[c].keys[d].rot=new THREE.Quaternion(h[0],h[1],h[2],h[3])}}if(a.hierarchy[c].keys.length&&void 0!==a.hierarchy[c].keys[0].morphTargets){h={};for(d=0;d<a.hierarchy[c].keys.length;d++)for(var i=0;i<a.hierarchy[c].keys[d].morphTargets.length;i++){var j=a.hierarchy[c].keys[d].morphTargets[i];h[j]=-1}a.hierarchy[c].usedMorphTargets=h;for(d=0;d<a.hierarchy[c].keys.length;d++){var k=
-{};for(j in h){for(i=0;i<a.hierarchy[c].keys[d].morphTargets.length;i++)if(a.hierarchy[c].keys[d].morphTargets[i]===j){k[j]=a.hierarchy[c].keys[d].morphTargetsInfluences[i];break}i===a.hierarchy[c].keys[d].morphTargets.length&&(k[j]=0)}a.hierarchy[c].keys[d].morphTargetsInfluences=k}}for(d=1;d<a.hierarchy[c].keys.length;d++)a.hierarchy[c].keys[d].time===a.hierarchy[c].keys[d-1].time&&(a.hierarchy[c].keys.splice(d,1),d--);for(d=0;d<a.hierarchy[c].keys.length;d++)a.hierarchy[c].keys[d].index=d}d=parseInt(a.length*
-a.fps,10);a.JIT={};a.JIT.hierarchy=[];for(c=0;c<a.hierarchy.length;c++)a.JIT.hierarchy.push(Array(d));a.initialized=!0}},get:function(a){if("string"===typeof a){if(b[a])return b[a];console.log("THREE.AnimationHandler.get: Couldn't find animation "+a);return null}},parse:function(a){var b=[];if(a instanceof THREE.SkinnedMesh)for(var c=0;c<a.bones.length;c++)b.push(a.bones[c]);else d(a,b);return b}},d=function(a,b){b.push(a);for(var c=0;c<a.children.length;c++)d(a.children[c],b)};c.LINEAR=0;c.CATMULLROM=
-1;c.CATMULLROM_FORWARD=2;return c}();THREE.Animation=function(a,b,c,d){this.root=a;this.data=THREE.AnimationHandler.get(b);this.hierarchy=THREE.AnimationHandler.parse(a);this.currentTime=0;this.timeScale=1;this.isPlaying=!1;this.loop=this.isPaused=!0;this.interpolationType=void 0!==c?c:THREE.AnimationHandler.LINEAR;this.JITCompile=void 0!==d?d:!0;this.points=[];this.target=new THREE.Vector3};
-THREE.Animation.prototype.play=function(a,b){if(!this.isPlaying){this.isPlaying=!0;this.loop=void 0!==a?a:!0;this.currentTime=void 0!==b?b:0;var c,d=this.hierarchy.length,f;for(c=0;c<d;c++){f=this.hierarchy[c];if(this.interpolationType!==THREE.AnimationHandler.CATMULLROM_FORWARD)f.useQuaternion=!0;f.matrixAutoUpdate=!0;if(void 0===f.animationCache)f.animationCache={},f.animationCache.prevKey={pos:0,rot:0,scl:0},f.animationCache.nextKey={pos:0,rot:0,scl:0},f.animationCache.originalMatrix=f instanceof
-THREE.Bone?f.skinMatrix:f.matrix;var g=f.animationCache.prevKey;f=f.animationCache.nextKey;g.pos=this.data.hierarchy[c].keys[0];g.rot=this.data.hierarchy[c].keys[0];g.scl=this.data.hierarchy[c].keys[0];f.pos=this.getNextKeyWith("pos",c,1);f.rot=this.getNextKeyWith("rot",c,1);f.scl=this.getNextKeyWith("scl",c,1)}this.update(0)}this.isPaused=!1;THREE.AnimationHandler.addToUpdate(this)};
-THREE.Animation.prototype.pause=function(){this.isPaused?THREE.AnimationHandler.addToUpdate(this):THREE.AnimationHandler.removeFromUpdate(this);this.isPaused=!this.isPaused};
-THREE.Animation.prototype.stop=function(){this.isPaused=this.isPlaying=!1;THREE.AnimationHandler.removeFromUpdate(this);for(var a=0;a<this.hierarchy.length;a++)if(void 0!==this.hierarchy[a].animationCache)this.hierarchy[a]instanceof THREE.Bone?this.hierarchy[a].skinMatrix=this.hierarchy[a].animationCache.originalMatrix:this.hierarchy[a].matrix=this.hierarchy[a].animationCache.originalMatrix,delete this.hierarchy[a].animationCache};
-THREE.Animation.prototype.update=function(a){if(this.isPlaying){var b=["pos","rot","scl"],c,d,f,g,e,h,i,j,k=this.data.JIT.hierarchy,q,m;m=this.currentTime+=a*this.timeScale;q=this.currentTime%=this.data.length;j=parseInt(Math.min(q*this.data.fps,this.data.length*this.data.fps),10);for(var o=0,p=this.hierarchy.length;o<p;o++)if(a=this.hierarchy[o],i=a.animationCache,this.JITCompile&&void 0!==k[o][j])a instanceof THREE.Bone?(a.skinMatrix=k[o][j],a.matrixAutoUpdate=!1,a.matrixWorldNeedsUpdate=!1):(a.matrix=
-k[o][j],a.matrixAutoUpdate=!1,a.matrixWorldNeedsUpdate=!0);else{if(this.JITCompile)a instanceof THREE.Bone?a.skinMatrix=a.animationCache.originalMatrix:a.matrix=a.animationCache.originalMatrix;for(var n=0;3>n;n++){c=b[n];e=i.prevKey[c];h=i.nextKey[c];if(h.time<=m){if(q<m)if(this.loop){e=this.data.hierarchy[o].keys[0];for(h=this.getNextKeyWith(c,o,1);h.time<q;)e=h,h=this.getNextKeyWith(c,o,h.index+1)}else{this.stop();return}else{do e=h,h=this.getNextKeyWith(c,o,h.index+1);while(h.time<q)}i.prevKey[c]=
-e;i.nextKey[c]=h}a.matrixAutoUpdate=!0;a.matrixWorldNeedsUpdate=!0;d=(q-e.time)/(h.time-e.time);f=e[c];g=h[c];if(0>d||1<d)console.log("THREE.Animation.update: Warning! Scale out of bounds:"+d+" on bone "+o),d=0>d?0:1;if("pos"===c)if(c=a.position,this.interpolationType===THREE.AnimationHandler.LINEAR)c.x=f[0]+(g[0]-f[0])*d,c.y=f[1]+(g[1]-f[1])*d,c.z=f[2]+(g[2]-f[2])*d;else{if(this.interpolationType===THREE.AnimationHandler.CATMULLROM||this.interpolationType===THREE.AnimationHandler.CATMULLROM_FORWARD)if(this.points[0]=
-this.getPrevKeyWith("pos",o,e.index-1).pos,this.points[1]=f,this.points[2]=g,this.points[3]=this.getNextKeyWith("pos",o,h.index+1).pos,d=0.33*d+0.33,f=this.interpolateCatmullRom(this.points,d),c.x=f[0],c.y=f[1],c.z=f[2],this.interpolationType===THREE.AnimationHandler.CATMULLROM_FORWARD)d=this.interpolateCatmullRom(this.points,1.01*d),this.target.set(d[0],d[1],d[2]),this.target.subSelf(c),this.target.y=0,this.target.normalize(),d=Math.atan2(this.target.x,this.target.z),a.rotation.set(0,d,0)}else if("rot"===
-c)THREE.Quaternion.slerp(f,g,a.quaternion,d);else if("scl"===c)c=a.scale,c.x=f[0]+(g[0]-f[0])*d,c.y=f[1]+(g[1]-f[1])*d,c.z=f[2]+(g[2]-f[2])*d}}if(this.JITCompile&&void 0===k[0][j]){this.hierarchy[0].updateMatrixWorld(!0);for(o=0;o<this.hierarchy.length;o++)k[o][j]=this.hierarchy[o]instanceof THREE.Bone?this.hierarchy[o].skinMatrix.clone():this.hierarchy[o].matrix.clone()}}};
-THREE.Animation.prototype.interpolateCatmullRom=function(a,b){var c=[],d=[],f,g,e,h,i,j;f=(a.length-1)*b;g=Math.floor(f);f-=g;c[0]=0===g?g:g-1;c[1]=g;c[2]=g>a.length-2?g:g+1;c[3]=g>a.length-3?g:g+2;g=a[c[0]];h=a[c[1]];i=a[c[2]];j=a[c[3]];c=f*f;e=f*c;d[0]=this.interpolate(g[0],h[0],i[0],j[0],f,c,e);d[1]=this.interpolate(g[1],h[1],i[1],j[1],f,c,e);d[2]=this.interpolate(g[2],h[2],i[2],j[2],f,c,e);return d};
-THREE.Animation.prototype.interpolate=function(a,b,c,d,f,g,e){a=0.5*(c-a);d=0.5*(d-b);return(2*(b-c)+a+d)*e+(-3*(b-c)-2*a-d)*g+a*f+b};THREE.Animation.prototype.getNextKeyWith=function(a,b,c){for(var d=this.data.hierarchy[b].keys,c=this.interpolationType===THREE.AnimationHandler.CATMULLROM||this.interpolationType===THREE.AnimationHandler.CATMULLROM_FORWARD?c<d.length-1?c:d.length-1:c%d.length;c<d.length;c++)if(void 0!==d[c][a])return d[c];return this.data.hierarchy[b].keys[0]};
-THREE.Animation.prototype.getPrevKeyWith=function(a,b,c){for(var d=this.data.hierarchy[b].keys,c=this.interpolationType===THREE.AnimationHandler.CATMULLROM||this.interpolationType===THREE.AnimationHandler.CATMULLROM_FORWARD?0<c?c:0:0<=c?c:c+d.length;0<=c;c--)if(void 0!==d[c][a])return d[c];return this.data.hierarchy[b].keys[d.length-1]};
-THREE.KeyFrameAnimation=function(a,b,c){this.root=a;this.data=THREE.AnimationHandler.get(b);this.hierarchy=THREE.AnimationHandler.parse(a);this.currentTime=0;this.timeScale=0.001;this.isPlaying=!1;this.loop=this.isPaused=!0;this.JITCompile=void 0!==c?c:!0;a=0;for(b=this.hierarchy.length;a<b;a++){var c=this.data.hierarchy[a].sids,d=this.hierarchy[a];if(this.data.hierarchy[a].keys.length&&c){for(var f=0;f<c.length;f++){var g=c[f],e=this.getNextKeyWith(g,a,0);e&&e.apply(g)}d.matrixAutoUpdate=!1;this.data.hierarchy[a].node.updateMatrix();
-d.matrixWorldNeedsUpdate=!0}}};
-THREE.KeyFrameAnimation.prototype.play=function(a,b){if(!this.isPlaying){this.isPlaying=!0;this.loop=void 0!==a?a:!0;this.currentTime=void 0!==b?b:0;this.startTimeMs=b;this.startTime=1E7;this.endTime=-this.startTime;var c,d=this.hierarchy.length,f,g;for(c=0;c<d;c++){f=this.hierarchy[c];g=this.data.hierarchy[c];f.useQuaternion=!0;if(void 0===g.animationCache)g.animationCache={},g.animationCache.prevKey=null,g.animationCache.nextKey=null,g.animationCache.originalMatrix=f instanceof THREE.Bone?f.skinMatrix:
-f.matrix;f=this.data.hierarchy[c].keys;if(f.length)g.animationCache.prevKey=f[0],g.animationCache.nextKey=f[1],this.startTime=Math.min(f[0].time,this.startTime),this.endTime=Math.max(f[f.length-1].time,this.endTime)}this.update(0)}this.isPaused=!1;THREE.AnimationHandler.addToUpdate(this)};THREE.KeyFrameAnimation.prototype.pause=function(){this.isPaused?THREE.AnimationHandler.addToUpdate(this):THREE.AnimationHandler.removeFromUpdate(this);this.isPaused=!this.isPaused};
-THREE.KeyFrameAnimation.prototype.stop=function(){this.isPaused=this.isPlaying=!1;THREE.AnimationHandler.removeFromUpdate(this);for(var a=0;a<this.data.hierarchy.length;a++){var b=this.hierarchy[a],c=this.data.hierarchy[a];if(void 0!==c.animationCache){var d=c.animationCache.originalMatrix;b instanceof THREE.Bone?(d.copy(b.skinMatrix),b.skinMatrix=d):(d.copy(b.matrix),b.matrix=d);delete c.animationCache}}};
-THREE.KeyFrameAnimation.prototype.update=function(a){if(this.isPlaying){var b,c,d,f,g=this.data.JIT.hierarchy,e,h,i;h=this.currentTime+=a*this.timeScale;e=this.currentTime%=this.data.length;if(e<this.startTimeMs)e=this.currentTime=this.startTimeMs+e;f=parseInt(Math.min(e*this.data.fps,this.data.length*this.data.fps),10);if((i=e<h)&&!this.loop){for(var a=0,j=this.hierarchy.length;a<j;a++){var k=this.data.hierarchy[a].keys,g=this.data.hierarchy[a].sids;d=k.length-1;f=this.hierarchy[a];if(k.length){for(k=
-0;k<g.length;k++)e=g[k],(h=this.getPrevKeyWith(e,a,d))&&h.apply(e);this.data.hierarchy[a].node.updateMatrix();f.matrixWorldNeedsUpdate=!0}}this.stop()}else if(!(e<this.startTime)){a=0;for(j=this.hierarchy.length;a<j;a++){d=this.hierarchy[a];b=this.data.hierarchy[a];var k=b.keys,q=b.animationCache;if(this.JITCompile&&void 0!==g[a][f])d instanceof THREE.Bone?(d.skinMatrix=g[a][f],d.matrixWorldNeedsUpdate=!1):(d.matrix=g[a][f],d.matrixWorldNeedsUpdate=!0);else if(k.length){if(this.JITCompile&&q)d instanceof
-THREE.Bone?d.skinMatrix=q.originalMatrix:d.matrix=q.originalMatrix;b=q.prevKey;c=q.nextKey;if(b&&c){if(c.time<=h){if(i&&this.loop){b=k[0];for(c=k[1];c.time<e;)b=c,c=k[b.index+1]}else if(!i)for(var m=k.length-1;c.time<e&&c.index!==m;)b=c,c=k[b.index+1];q.prevKey=b;q.nextKey=c}c.time>=e?b.interpolate(c,e):b.interpolate(c,c.time)}this.data.hierarchy[a].node.updateMatrix();d.matrixWorldNeedsUpdate=!0}}if(this.JITCompile&&void 0===g[0][f]){this.hierarchy[0].updateMatrixWorld(!0);for(a=0;a<this.hierarchy.length;a++)g[a][f]=
-this.hierarchy[a]instanceof THREE.Bone?this.hierarchy[a].skinMatrix.clone():this.hierarchy[a].matrix.clone()}}}};THREE.KeyFrameAnimation.prototype.getNextKeyWith=function(a,b,c){b=this.data.hierarchy[b].keys;for(c%=b.length;c<b.length;c++)if(b[c].hasTarget(a))return b[c];return b[0]};THREE.KeyFrameAnimation.prototype.getPrevKeyWith=function(a,b,c){b=this.data.hierarchy[b].keys;for(c=0<=c?c:c+b.length;0<=c;c--)if(b[c].hasTarget(a))return b[c];return b[b.length-1]};
-THREE.CubeCamera=function(a,b,c,d){this.heightOffset=c;this.position=new THREE.Vector3(0,c,0);this.cameraPX=new THREE.PerspectiveCamera(90,1,a,b);this.cameraNX=new THREE.PerspectiveCamera(90,1,a,b);this.cameraPY=new THREE.PerspectiveCamera(90,1,a,b);this.cameraNY=new THREE.PerspectiveCamera(90,1,a,b);this.cameraPZ=new THREE.PerspectiveCamera(90,1,a,b);this.cameraNZ=new THREE.PerspectiveCamera(90,1,a,b);this.cameraPX.position=this.position;this.cameraNX.position=this.position;this.cameraPY.position=
-this.position;this.cameraNY.position=this.position;this.cameraPZ.position=this.position;this.cameraNZ.position=this.position;this.cameraPX.up.set(0,-1,0);this.cameraNX.up.set(0,-1,0);this.cameraPY.up.set(0,0,1);this.cameraNY.up.set(0,0,-1);this.cameraPZ.up.set(0,-1,0);this.cameraNZ.up.set(0,-1,0);this.targetPX=new THREE.Vector3(0,0,0);this.targetNX=new THREE.Vector3(0,0,0);this.targetPY=new THREE.Vector3(0,0,0);this.targetNY=new THREE.Vector3(0,0,0);this.targetPZ=new THREE.Vector3(0,0,0);this.targetNZ=
-new THREE.Vector3(0,0,0);this.renderTarget=new THREE.WebGLRenderTargetCube(d,d,{format:THREE.RGBFormat,magFilter:THREE.LinearFilter,minFilter:THREE.LinearFilter});this.updatePosition=function(a){this.position.copy(a);this.position.y+=this.heightOffset;this.targetPX.copy(this.position);this.targetNX.copy(this.position);this.targetPY.copy(this.position);this.targetNY.copy(this.position);this.targetPZ.copy(this.position);this.targetNZ.copy(this.position);this.targetPX.x+=1;this.targetNX.x-=1;this.targetPY.y+=
-1;this.targetNY.y-=1;this.targetPZ.z+=1;this.targetNZ.z-=1;this.cameraPX.lookAt(this.targetPX);this.cameraNX.lookAt(this.targetNX);this.cameraPY.lookAt(this.targetPY);this.cameraNY.lookAt(this.targetNY);this.cameraPZ.lookAt(this.targetPZ);this.cameraNZ.lookAt(this.targetNZ)};this.updateCubeMap=function(a,b){var c=this.renderTarget;c.activeCubeFace=0;a.render(b,this.cameraPX,c);c.activeCubeFace=1;a.render(b,this.cameraNX,c);c.activeCubeFace=2;a.render(b,this.cameraPY,c);c.activeCubeFace=3;a.render(b,
-this.cameraNY,c);c.activeCubeFace=4;a.render(b,this.cameraPZ,c);c.activeCubeFace=5;a.render(b,this.cameraNZ,c)}};THREE.CombinedCamera=function(a,b,c,d,f,g,e){THREE.Camera.call(this);this.fov=c;this.left=-a/2;this.right=a/2;this.top=b/2;this.bottom=-b/2;this.cameraO=new THREE.OrthographicCamera(a/-2,a/2,b/2,b/-2,g,e);this.cameraP=new THREE.PerspectiveCamera(c,a/b,d,f);this.zoom=1;this.toPerspective()};THREE.CombinedCamera.prototype=new THREE.Camera;THREE.CombinedCamera.prototype.constructor=THREE.CoolCamera;
-THREE.CombinedCamera.prototype.toPerspective=function(){this.near=this.cameraP.near;this.far=this.cameraP.far;this.cameraP.fov=this.fov/this.zoom;this.cameraP.updateProjectionMatrix();this.projectionMatrix=this.cameraP.projectionMatrix;this.inPersepectiveMode=!0;this.inOrthographicMode=!1};
-THREE.CombinedCamera.prototype.toOrthographic=function(){var a=this.cameraP.aspect,b=(this.cameraP.near+this.cameraP.far)/2,b=Math.tan(this.fov/2)*b,a=2*b*a/2,b=b/this.zoom,a=a/this.zoom;this.cameraO.left=-a;this.cameraO.right=a;this.cameraO.top=b;this.cameraO.bottom=-b;this.cameraO.updateProjectionMatrix();this.near=this.cameraO.near;this.far=this.cameraO.far;this.projectionMatrix=this.cameraO.projectionMatrix;this.inPersepectiveMode=!1;this.inOrthographicMode=!0};
-THREE.CombinedCamera.prototype.setFov=function(a){this.fov=a;this.inPersepectiveMode?this.toPerspective():this.toOrthographic()};THREE.CombinedCamera.prototype.setLens=function(a,b){var c=2*Math.atan((void 0!==b?b:24)/(2*a))*(180/Math.PI);this.setFov(c);return c};THREE.CombinedCamera.prototype.setZoom=function(a){this.zoom=a;this.inPersepectiveMode?this.toPerspective():this.toOrthographic()};
-THREE.CombinedCamera.prototype.toFrontView=function(){this.rotation.x=0;this.rotation.y=0;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.CombinedCamera.prototype.toBackView=function(){this.rotation.x=0;this.rotation.y=Math.PI;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.CombinedCamera.prototype.toLeftView=function(){this.rotation.x=0;this.rotation.y=-Math.PI/2;this.rotation.z=0;this.rotationAutoUpdate=!1};
-THREE.CombinedCamera.prototype.toRightView=function(){this.rotation.x=0;this.rotation.y=Math.PI/2;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.CombinedCamera.prototype.toTopView=function(){this.rotation.x=-Math.PI/2;this.rotation.y=0;this.rotation.z=0;this.rotationAutoUpdate=!1};THREE.CombinedCamera.prototype.toBottomView=function(){this.rotation.x=Math.PI/2;this.rotation.y=0;this.rotation.z=0;this.rotationAutoUpdate=!1};
-THREE.FirstPersonControls=function(a,b){function c(a,b){return function(){b.apply(a,arguments)}}this.object=a;this.target=new THREE.Vector3(0,0,0);this.domElement=void 0!==b?b:document;this.movementSpeed=1;this.lookSpeed=0.005;this.noFly=!1;this.lookVertical=!0;this.autoForward=!1;this.activeLook=!0;this.heightSpeed=!1;this.heightCoef=1;this.heightMin=0;this.constrainVertical=!1;this.verticalMin=0;this.verticalMax=Math.PI;this.theta=this.phi=this.lon=this.lat=this.mouseY=this.mouseX=this.autoSpeedFactor=
-0;this.mouseDragOn=this.freeze=this.moveRight=this.moveLeft=this.moveBackward=this.moveForward=!1;this.domElement===document?(this.viewHalfX=window.innerWidth/2,this.viewHalfY=window.innerHeight/2):(this.viewHalfX=this.domElement.offsetWidth/2,this.viewHalfY=this.domElement.offsetHeight/2,this.domElement.setAttribute("tabindex",-1));this.onMouseDown=function(a){this.domElement!==document&&this.domElement.focus();a.preventDefault();a.stopPropagation();if(this.activeLook)switch(a.button){case 0:this.moveForward=
-!0;break;case 2:this.moveBackward=!0}this.mouseDragOn=!0};this.onMouseUp=function(a){a.preventDefault();a.stopPropagation();if(this.activeLook)switch(a.button){case 0:this.moveForward=!1;break;case 2:this.moveBackward=!1}this.mouseDragOn=!1};this.onMouseMove=function(a){this.domElement===document?(this.mouseX=a.pageX-this.viewHalfX,this.mouseY=a.pageY-this.viewHalfY):(this.mouseX=a.pageX-this.domElement.offsetLeft-this.viewHalfX,this.mouseY=a.pageY-this.domElement.offsetTop-this.viewHalfY)};this.onKeyDown=
-function(a){switch(a.keyCode){case 38:case 87:this.moveForward=!0;break;case 37:case 65:this.moveLeft=!0;break;case 40:case 83:this.moveBackward=!0;break;case 39:case 68:this.moveRight=!0;break;case 82:this.moveUp=!0;break;case 70:this.moveDown=!0;break;case 81:this.freeze=!this.freeze}};this.onKeyUp=function(a){switch(a.keyCode){case 38:case 87:this.moveForward=!1;break;case 37:case 65:this.moveLeft=!1;break;case 40:case 83:this.moveBackward=!1;break;case 39:case 68:this.moveRight=!1;break;case 82:this.moveUp=
-!1;break;case 70:this.moveDown=!1}};this.update=function(a){var b=0;if(!this.freeze){this.heightSpeed?(b=THREE.Math.clamp(this.object.position.y,this.heightMin,this.heightMax)-this.heightMin,this.autoSpeedFactor=a*b*this.heightCoef):this.autoSpeedFactor=0;b=a*this.movementSpeed;(this.moveForward||this.autoForward&&!this.moveBackward)&&this.object.translateZ(-(b+this.autoSpeedFactor));this.moveBackward&&this.object.translateZ(b);this.moveLeft&&this.object.translateX(-b);this.moveRight&&this.object.translateX(b);
-this.moveUp&&this.object.translateY(b);this.moveDown&&this.object.translateY(-b);a*=this.lookSpeed;this.activeLook||(a=0);this.lon+=this.mouseX*a;this.lookVertical&&(this.lat-=this.mouseY*a);this.lat=Math.max(-85,Math.min(85,this.lat));this.phi=(90-this.lat)*Math.PI/180;this.theta=this.lon*Math.PI/180;var b=this.target,c=this.object.position;b.x=c.x+100*Math.sin(this.phi)*Math.cos(this.theta);b.y=c.y+100*Math.cos(this.phi);b.z=c.z+100*Math.sin(this.phi)*Math.sin(this.theta);b=1;this.constrainVertical&&
-(b=Math.PI/(this.verticalMax-this.verticalMin));this.lon+=this.mouseX*a;this.lookVertical&&(this.lat-=this.mouseY*a*b);this.lat=Math.max(-85,Math.min(85,this.lat));this.phi=(90-this.lat)*Math.PI/180;this.theta=this.lon*Math.PI/180;if(this.constrainVertical)this.phi=THREE.Math.mapLinear(this.phi,0,Math.PI,this.verticalMin,this.verticalMax);b=this.target;c=this.object.position;b.x=c.x+100*Math.sin(this.phi)*Math.cos(this.theta);b.y=c.y+100*Math.cos(this.phi);b.z=c.z+100*Math.sin(this.phi)*Math.sin(this.theta);
-this.object.lookAt(b)}};this.domElement.addEventListener("contextmenu",function(a){a.preventDefault()},!1);this.domElement.addEventListener("mousemove",c(this,this.onMouseMove),!1);this.domElement.addEventListener("mousedown",c(this,this.onMouseDown),!1);this.domElement.addEventListener("mouseup",c(this,this.onMouseUp),!1);this.domElement.addEventListener("keydown",c(this,this.onKeyDown),!1);this.domElement.addEventListener("keyup",c(this,this.onKeyUp),!1)};
-THREE.PathControls=function(a,b){function c(a){return 1>(a*=2)?0.5*a*a:-0.5*(--a*(a-2)-1)}function d(a,b){return function(){b.apply(a,arguments)}}function f(a,b,c,d){var f={name:c,fps:0.6,length:d,hierarchy:[]},e,g=b.getControlPointsArray(),h=b.getLength(),r=g.length,s=0;e=r-1;b={parent:-1,keys:[]};b.keys[0]={time:0,pos:g[0],rot:[0,0,0,1],scl:[1,1,1]};b.keys[e]={time:d,pos:g[e],rot:[0,0,0,1],scl:[1,1,1]};for(e=1;e<r-1;e++)s=d*h.chunks[e]/h.total,b.keys[e]={time:s,pos:g[e]};f.hierarchy[0]=b;THREE.AnimationHandler.add(f);
-return new THREE.Animation(a,c,THREE.AnimationHandler.CATMULLROM_FORWARD,!1)}function g(a,b){var c,d,f=new THREE.Geometry;for(c=0;c<a.points.length*b;c++)d=c/(a.points.length*b),d=a.getPoint(d),f.vertices[c]=new THREE.Vertex(new THREE.Vector3(d.x,d.y,d.z));return f}this.object=a;this.domElement=void 0!==b?b:document;this.id="PathControls"+THREE.PathControlsIdCounter++;this.duration=1E4;this.waypoints=[];this.useConstantSpeed=!0;this.resamplingCoef=50;this.debugPath=new THREE.Object3D;this.debugDummy=
-new THREE.Object3D;this.animationParent=new THREE.Object3D;this.lookSpeed=0.005;this.lookHorizontal=this.lookVertical=!0;this.verticalAngleMap={srcRange:[0,2*Math.PI],dstRange:[0,2*Math.PI]};this.horizontalAngleMap={srcRange:[0,2*Math.PI],dstRange:[0,2*Math.PI]};this.target=new THREE.Object3D;this.theta=this.phi=this.lon=this.lat=this.mouseY=this.mouseX=0;this.domElement===document?(this.viewHalfX=window.innerWidth/2,this.viewHalfY=window.innerHeight/2):(this.viewHalfX=this.domElement.offsetWidth/
-2,this.viewHalfY=this.domElement.offsetHeight/2,this.domElement.setAttribute("tabindex",-1));var e=2*Math.PI,h=Math.PI/180;this.update=function(a){var b;this.lookHorizontal&&(this.lon+=this.mouseX*this.lookSpeed*a);this.lookVertical&&(this.lat-=this.mouseY*this.lookSpeed*a);this.lon=Math.max(0,Math.min(360,this.lon));this.lat=Math.max(-85,Math.min(85,this.lat));this.phi=(90-this.lat)*h;this.theta=this.lon*h;a=this.phi%e;this.phi=0<=a?a:a+e;b=this.verticalAngleMap.srcRange;a=this.verticalAngleMap.dstRange;
-b=THREE.Math.mapLinear(this.phi,b[0],b[1],a[0],a[1]);var d=a[1]-a[0];this.phi=c((b-a[0])/d)*d+a[0];b=this.horizontalAngleMap.srcRange;a=this.horizontalAngleMap.dstRange;b=THREE.Math.mapLinear(this.theta,b[0],b[1],a[0],a[1]);d=a[1]-a[0];this.theta=c((b-a[0])/d)*d+a[0];a=this.target.position;a.x=100*Math.sin(this.phi)*Math.cos(this.theta);a.y=100*Math.cos(this.phi);a.z=100*Math.sin(this.phi)*Math.sin(this.theta);this.object.lookAt(this.target.position)};this.onMouseMove=function(a){this.domElement===
-document?(this.mouseX=a.pageX-this.viewHalfX,this.mouseY=a.pageY-this.viewHalfY):(this.mouseX=a.pageX-this.domElement.offsetLeft-this.viewHalfX,this.mouseY=a.pageY-this.domElement.offsetTop-this.viewHalfY)};this.init=function(){this.spline=new THREE.Spline;this.spline.initFromArray(this.waypoints);this.useConstantSpeed&&this.spline.reparametrizeByArcLength(this.resamplingCoef);if(this.createDebugDummy){var a=new THREE.MeshLambertMaterial({color:30719}),b=new THREE.MeshLambertMaterial({color:65280}),
-c=new THREE.CubeGeometry(10,10,20),e=new THREE.CubeGeometry(2,2,10);this.animationParent=new THREE.Mesh(c,a);a=new THREE.Mesh(e,b);a.position.set(0,10,0);this.animation=f(this.animationParent,this.spline,this.id,this.duration);this.animationParent.add(this.object);this.animationParent.add(this.target);this.animationParent.add(a)}else this.animation=f(this.animationParent,this.spline,this.id,this.duration),this.animationParent.add(this.target),this.animationParent.add(this.object);if(this.createDebugPath){var a=
-this.debugPath,b=this.spline,e=g(b,10),c=g(b,10),h=new THREE.LineBasicMaterial({color:16711680,linewidth:3}),e=new THREE.Line(e,h),c=new THREE.ParticleSystem(c,new THREE.ParticleBasicMaterial({color:16755200,size:3}));e.scale.set(1,1,1);a.add(e);c.scale.set(1,1,1);a.add(c);for(var e=new THREE.SphereGeometry(1,16,8),h=new THREE.MeshBasicMaterial({color:65280}),o=0;o<b.points.length;o++)c=new THREE.Mesh(e,h),c.position.copy(b.points[o]),a.add(c)}this.domElement.addEventListener("mousemove",d(this,this.onMouseMove),
-!1)}};THREE.PathControlsIdCounter=0;
-THREE.FlyControls=function(a,b){function c(a,b){return function(){b.apply(a,arguments)}}this.object=a;this.domElement=void 0!==b?b:document;b&&this.domElement.setAttribute("tabindex",-1);this.movementSpeed=1;this.rollSpeed=0.005;this.autoForward=this.dragToLook=!1;this.object.useQuaternion=!0;this.tmpQuaternion=new THREE.Quaternion;this.mouseStatus=0;this.moveState={up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0};this.moveVector=new THREE.Vector3(0,
-0,0);this.rotationVector=new THREE.Vector3(0,0,0);this.handleEvent=function(a){if("function"==typeof this[a.type])this[a.type](a)};this.keydown=function(a){if(!a.altKey){switch(a.keyCode){case 16:this.movementSpeedMultiplier=0.1;break;case 87:this.moveState.forward=1;break;case 83:this.moveState.back=1;break;case 65:this.moveState.left=1;break;case 68:this.moveState.right=1;break;case 82:this.moveState.up=1;break;case 70:this.moveState.down=1;break;case 38:this.moveState.pitchUp=1;break;case 40:this.moveState.pitchDown=
-1;break;case 37:this.moveState.yawLeft=1;break;case 39:this.moveState.yawRight=1;break;case 81:this.moveState.rollLeft=1;break;case 69:this.moveState.rollRight=1}this.updateMovementVector();this.updateRotationVector()}};this.keyup=function(a){switch(a.keyCode){case 16:this.movementSpeedMultiplier=1;break;case 87:this.moveState.forward=0;break;case 83:this.moveState.back=0;break;case 65:this.moveState.left=0;break;case 68:this.moveState.right=0;break;case 82:this.moveState.up=0;break;case 70:this.moveState.down=
-0;break;case 38:this.moveState.pitchUp=0;break;case 40:this.moveState.pitchDown=0;break;case 37:this.moveState.yawLeft=0;break;case 39:this.moveState.yawRight=0;break;case 81:this.moveState.rollLeft=0;break;case 69:this.moveState.rollRight=0}this.updateMovementVector();this.updateRotationVector()};this.mousedown=function(a){this.domElement!==document&&this.domElement.focus();a.preventDefault();a.stopPropagation();if(this.dragToLook)this.mouseStatus++;else switch(a.button){case 0:this.object.moveForward=
-!0;break;case 2:this.object.moveBackward=!0}};this.mousemove=function(a){if(!this.dragToLook||0<this.mouseStatus){var b=this.getContainerDimensions(),c=b.size[0]/2,e=b.size[1]/2;this.moveState.yawLeft=-(a.pageX-b.offset[0]-c)/c;this.moveState.pitchDown=(a.pageY-b.offset[1]-e)/e;this.updateRotationVector()}};this.mouseup=function(a){a.preventDefault();a.stopPropagation();if(this.dragToLook)this.mouseStatus--,this.moveState.yawLeft=this.moveState.pitchDown=0;else switch(a.button){case 0:this.moveForward=
-!1;break;case 2:this.moveBackward=!1}this.updateRotationVector()};this.update=function(a){var b=a*this.movementSpeed,a=a*this.rollSpeed;this.object.translateX(this.moveVector.x*b);this.object.translateY(this.moveVector.y*b);this.object.translateZ(this.moveVector.z*b);this.tmpQuaternion.set(this.rotationVector.x*a,this.rotationVector.y*a,this.rotationVector.z*a,1).normalize();this.object.quaternion.multiplySelf(this.tmpQuaternion);this.object.matrix.setPosition(this.object.position);this.object.matrix.setRotationFromQuaternion(this.object.quaternion);
-this.object.matrixWorldNeedsUpdate=!0};this.updateMovementVector=function(){var a=this.moveState.forward||this.autoForward&&!this.moveState.back?1:0;this.moveVector.x=-this.moveState.left+this.moveState.right;this.moveVector.y=-this.moveState.down+this.moveState.up;this.moveVector.z=-a+this.moveState.back};this.updateRotationVector=function(){this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp;this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft;this.rotationVector.z=
--this.moveState.rollRight+this.moveState.rollLeft};this.getContainerDimensions=function(){return this.domElement!=document?{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]}:{size:[window.innerWidth,window.innerHeight],offset:[0,0]}};this.domElement.addEventListener("mousemove",c(this,this.mousemove),!1);this.domElement.addEventListener("mousedown",c(this,this.mousedown),!1);this.domElement.addEventListener("mouseup",c(this,
-this.mouseup),!1);this.domElement.addEventListener("keydown",c(this,this.keydown),!1);this.domElement.addEventListener("keyup",c(this,this.keyup),!1);this.updateMovementVector();this.updateRotationVector()};
-THREE.RollControls=function(a,b){this.object=a;this.domElement=void 0!==b?b:document;this.mouseLook=!0;this.autoForward=!1;this.rollSpeed=this.movementSpeed=this.lookSpeed=1;this.constrainVertical=[-0.9,0.9];this.object.matrixAutoUpdate=!1;this.forward=new THREE.Vector3(0,0,1);this.roll=0;var c=new THREE.Vector3,d=new THREE.Vector3,f=new THREE.Vector3,g=new THREE.Matrix4,e=!1,h=1,i=0,j=0,k=0,q=0,m=0,o=window.innerWidth/2,p=window.innerHeight/2;this.update=function(a){if(this.mouseLook){var b=a*this.lookSpeed;
-this.rotateHorizontally(b*q);this.rotateVertically(b*m)}b=a*this.movementSpeed;this.object.translateZ(-b*(0<i||this.autoForward&&!(0>i)?1:i));this.object.translateX(b*j);this.object.translateY(b*k);e&&(this.roll+=this.rollSpeed*a*h);if(this.forward.y>this.constrainVertical[1])this.forward.y=this.constrainVertical[1],this.forward.normalize();else if(this.forward.y<this.constrainVertical[0])this.forward.y=this.constrainVertical[0],this.forward.normalize();f.copy(this.forward);d.set(0,1,0);c.cross(d,
-f).normalize();d.cross(f,c).normalize();this.object.matrix.n11=c.x;this.object.matrix.n12=d.x;this.object.matrix.n13=f.x;this.object.matrix.n21=c.y;this.object.matrix.n22=d.y;this.object.matrix.n23=f.y;this.object.matrix.n31=c.z;this.object.matrix.n32=d.z;this.object.matrix.n33=f.z;g.identity();g.n11=Math.cos(this.roll);g.n12=-Math.sin(this.roll);g.n21=Math.sin(this.roll);g.n22=Math.cos(this.roll);this.object.matrix.multiplySelf(g);this.object.matrixWorldNeedsUpdate=!0;this.object.matrix.n14=this.object.position.x;
-this.object.matrix.n24=this.object.position.y;this.object.matrix.n34=this.object.position.z};this.translateX=function(a){this.object.position.x+=this.object.matrix.n11*a;this.object.position.y+=this.object.matrix.n21*a;this.object.position.z+=this.object.matrix.n31*a};this.translateY=function(a){this.object.position.x+=this.object.matrix.n12*a;this.object.position.y+=this.object.matrix.n22*a;this.object.position.z+=this.object.matrix.n32*a};this.translateZ=function(a){this.object.position.x-=this.object.matrix.n13*
-a;this.object.position.y-=this.object.matrix.n23*a;this.object.position.z-=this.object.matrix.n33*a};this.rotateHorizontally=function(a){c.set(this.object.matrix.n11,this.object.matrix.n21,this.object.matrix.n31);c.multiplyScalar(a);this.forward.subSelf(c);this.forward.normalize()};this.rotateVertically=function(a){d.set(this.object.matrix.n12,this.object.matrix.n22,this.object.matrix.n32);d.multiplyScalar(a);this.forward.addSelf(d);this.forward.normalize()};this.domElement.addEventListener("contextmenu",
-function(a){a.preventDefault()},!1);this.domElement.addEventListener("mousemove",function(a){q=(a.clientX-o)/window.innerWidth;m=(a.clientY-p)/window.innerHeight},!1);this.domElement.addEventListener("mousedown",function(a){a.preventDefault();a.stopPropagation();switch(a.button){case 0:i=1;break;case 2:i=-1}},!1);this.domElement.addEventListener("mouseup",function(a){a.preventDefault();a.stopPropagation();switch(a.button){case 0:i=0;break;case 2:i=0}},!1);this.domElement.addEventListener("keydown",
-function(a){switch(a.keyCode){case 38:case 87:i=1;break;case 37:case 65:j=-1;break;case 40:case 83:i=-1;break;case 39:case 68:j=1;break;case 81:e=!0;h=1;break;case 69:e=!0;h=-1;break;case 82:k=1;break;case 70:k=-1}},!1);this.domElement.addEventListener("keyup",function(a){switch(a.keyCode){case 38:case 87:i=0;break;case 37:case 65:j=0;break;case 40:case 83:i=0;break;case 39:case 68:j=0;break;case 81:e=!1;break;case 69:e=!1;break;case 82:k=0;break;case 70:k=0}},!1)};
-THREE.TrackballControls=function(a,b){THREE.EventTarget.call(this);var c=this;this.object=a;this.domElement=void 0!==b?b:document;this.enabled=!0;this.screen={width:window.innerWidth,height:window.innerHeight,offsetLeft:0,offsetTop:0};this.radius=(this.screen.width+this.screen.height)/4;this.rotateSpeed=1;this.zoomSpeed=1.2;this.panSpeed=0.3;this.staticMoving=this.noPan=this.noZoom=this.noRotate=!1;this.dynamicDampingFactor=0.2;this.minDistance=0;this.maxDistance=Infinity;this.keys=[65,83,68];this.target=
-new THREE.Vector3;var d=new THREE.Vector3,f=!1,g=-1,e=new THREE.Vector3,h=new THREE.Vector3,i=new THREE.Vector3,j=new THREE.Vector2,k=new THREE.Vector2,q=new THREE.Vector2,m=new THREE.Vector2,o={type:"change"};this.handleEvent=function(a){if("function"==typeof this[a.type])this[a.type](a)};this.getMouseOnScreen=function(a,b){return new THREE.Vector2(0.5*((a-c.screen.offsetLeft)/c.radius),0.5*((b-c.screen.offsetTop)/c.radius))};this.getMouseProjectionOnBall=function(a,b){var d=new THREE.Vector3((a-
-0.5*c.screen.width-c.screen.offsetLeft)/c.radius,(0.5*c.screen.height+c.screen.offsetTop-b)/c.radius,0),f=d.length();1<f?d.normalize():d.z=Math.sqrt(1-f*f);e.copy(c.object.position).subSelf(c.target);f=c.object.up.clone().setLength(d.y);f.addSelf(c.object.up.clone().crossSelf(e).setLength(d.x));f.addSelf(e.setLength(d.z));return f};this.rotateCamera=function(){var a=Math.acos(h.dot(i)/h.length()/i.length());if(a){var b=(new THREE.Vector3).cross(h,i).normalize(),d=new THREE.Quaternion,a=a*c.rotateSpeed;
-d.setFromAxisAngle(b,-a);d.multiplyVector3(e);d.multiplyVector3(c.object.up);d.multiplyVector3(i);c.staticMoving?h=i:(d.setFromAxisAngle(b,a*(c.dynamicDampingFactor-1)),d.multiplyVector3(h))}};this.zoomCamera=function(){var a=1+(k.y-j.y)*c.zoomSpeed;1!==a&&0<a&&(e.multiplyScalar(a),c.staticMoving?j=k:j.y+=(k.y-j.y)*this.dynamicDampingFactor)};this.panCamera=function(){var a=m.clone().subSelf(q);if(a.lengthSq()){a.multiplyScalar(e.length()*c.panSpeed);var b=e.clone().crossSelf(c.object.up).setLength(a.x);
-b.addSelf(c.object.up.clone().setLength(a.y));c.object.position.addSelf(b);c.target.addSelf(b);c.staticMoving?q=m:q.addSelf(a.sub(m,q).multiplyScalar(c.dynamicDampingFactor))}};this.checkDistances=function(){if(!c.noZoom||!c.noPan)c.object.position.lengthSq()>c.maxDistance*c.maxDistance&&c.object.position.setLength(c.maxDistance),e.lengthSq()<c.minDistance*c.minDistance&&c.object.position.add(c.target,e.setLength(c.minDistance))};this.update=function(){e.copy(c.object.position).subSelf(c.target);
-c.noRotate||c.rotateCamera();c.noZoom||c.zoomCamera();c.noPan||c.panCamera();c.object.position.add(c.target,e);c.checkDistances();c.object.lookAt(c.target);0<d.distanceTo(c.object.position)&&(c.dispatchEvent(o),d.copy(c.object.position))};this.domElement.addEventListener("contextmenu",function(a){a.preventDefault()},!1);this.domElement.addEventListener("mousemove",function(a){c.enabled&&(f&&(h=i=c.getMouseProjectionOnBall(a.clientX,a.clientY),j=k=c.getMouseOnScreen(a.clientX,a.clientY),q=m=c.getMouseOnScreen(a.clientX,
-a.clientY),f=!1),-1!==g&&(0===g&&!c.noRotate?i=c.getMouseProjectionOnBall(a.clientX,a.clientY):1===g&&!c.noZoom?k=c.getMouseOnScreen(a.clientX,a.clientY):2===g&&!c.noPan&&(m=c.getMouseOnScreen(a.clientX,a.clientY))))},!1);this.domElement.addEventListener("mousedown",function(a){if(c.enabled&&(a.preventDefault(),a.stopPropagation(),-1===g))g=a.button,0===g&&!c.noRotate?h=i=c.getMouseProjectionOnBall(a.clientX,a.clientY):1===g&&!c.noZoom?j=k=c.getMouseOnScreen(a.clientX,a.clientY):this.noPan||(q=m=
-c.getMouseOnScreen(a.clientX,a.clientY))},!1);this.domElement.addEventListener("mouseup",function(a){c.enabled&&(a.preventDefault(),a.stopPropagation(),g=-1)},!1);window.addEventListener("keydown",function(a){c.enabled&&-1===g&&(a.keyCode===c.keys[0]&&!c.noRotate?g=0:a.keyCode===c.keys[1]&&!c.noZoom?g=1:a.keyCode===c.keys[2]&&!c.noPan&&(g=2),-1!==g&&(f=!0))},!1);window.addEventListener("keyup",function(){c.enabled&&-1!==g&&(g=-1)},!1)};
-THREE.CubeGeometry=function(a,b,c,d,f,g,e,h){function i(a,b,c,e,h,i,k,m){var n,o=d||1,q=f||1,p=h/2,r=i/2,s=j.vertices.length;if("x"===a&&"y"===b||"y"===a&&"x"===b)n="z";else if("x"===a&&"z"===b||"z"===a&&"x"===b)n="y",q=g||1;else if("z"===a&&"y"===b||"y"===a&&"z"===b)n="x",o=g||1;var l=o+1,t=q+1,w=h/o,E=i/q,S=new THREE.Vector3;S[n]=0<k?1:-1;for(h=0;h<t;h++)for(i=0;i<l;i++){var R=new THREE.Vector3;R[a]=(i*w-p)*c;R[b]=(h*E-r)*e;R[n]=k;j.vertices.push(new THREE.Vertex(R))}for(h=0;h<q;h++)for(i=0;i<o;i++)a=
-new THREE.Face4(i+l*h+s,i+l*(h+1)+s,i+1+l*(h+1)+s,i+1+l*h+s),a.normal.copy(S),a.vertexNormals.push(S.clone(),S.clone(),S.clone(),S.clone()),a.materialIndex=m,j.faces.push(a),j.faceVertexUvs[0].push([new THREE.UV(i/o,h/q),new THREE.UV(i/o,(h+1)/q),new THREE.UV((i+1)/o,(h+1)/q),new THREE.UV((i+1)/o,h/q)])}THREE.Geometry.call(this);var j=this,k=a/2,q=b/2,m=c/2,o,p,n,r,s,t;if(void 0!==e){if(e instanceof Array)this.materials=e;else{this.materials=[];for(o=0;6>o;o++)this.materials.push(e)}o=0;r=1;p=2;s=
-3;n=4;t=5}else this.materials=[];this.sides={px:!0,nx:!0,py:!0,ny:!0,pz:!0,nz:!0};if(void 0!=h)for(var w in h)void 0!==this.sides[w]&&(this.sides[w]=h[w]);this.sides.px&&i("z","y",-1,-1,c,b,k,o);this.sides.nx&&i("z","y",1,-1,c,b,-k,r);this.sides.py&&i("x","z",1,1,a,c,q,p);this.sides.ny&&i("x","z",1,-1,a,c,-q,s);this.sides.pz&&i("x","y",1,-1,a,b,m,n);this.sides.nz&&i("x","y",-1,-1,a,b,-m,t);this.computeCentroids();this.mergeVertices()};THREE.CubeGeometry.prototype=new THREE.Geometry;
-THREE.CubeGeometry.prototype.constructor=THREE.CubeGeometry;
-THREE.CylinderGeometry=function(a,b,c,d,f,g){THREE.Geometry.call(this);var a=void 0!==a?a:20,b=void 0!==b?b:20,c=void 0!==c?c:100,e=c/2,d=d||8,f=f||1,h,i,j=[],k=[];for(i=0;i<=f;i++){var q=[],m=[],o=i/f,p=o*(b-a)+a;for(h=0;h<=d;h++){var n=h/d,r=p*Math.sin(2*n*Math.PI),s=-o*c+e,t=p*Math.cos(2*n*Math.PI);this.vertices.push(new THREE.Vertex(new THREE.Vector3(r,s,t)));q.push(this.vertices.length-1);m.push(new THREE.UV(n,o))}j.push(q);k.push(m)}for(i=0;i<f;i++)for(h=0;h<d;h++){var c=j[i][h],q=j[i+1][h],
-m=j[i+1][h+1],o=j[i][h+1],p=this.vertices[c].position.clone().setY(0).normalize(),n=this.vertices[q].position.clone().setY(0).normalize(),r=this.vertices[m].position.clone().setY(0).normalize(),s=this.vertices[o].position.clone().setY(0).normalize(),t=k[i][h].clone(),w=k[i+1][h].clone(),u=k[i+1][h+1].clone(),v=k[i][h+1].clone();this.faces.push(new THREE.Face4(c,q,m,o,[p,n,r,s]));this.faceVertexUvs[0].push([t,w,u,v])}if(!g&&0<a){this.vertices.push(new THREE.Vertex(new THREE.Vector3(0,e,0)));for(h=
-0;h<d;h++)c=j[0][h],q=j[0][h+1],m=this.vertices.length-1,p=new THREE.Vector3(0,1,0),n=new THREE.Vector3(0,1,0),r=new THREE.Vector3(0,1,0),t=k[0][h].clone(),w=k[0][h+1].clone(),u=new THREE.UV(w.u,0),this.faces.push(new THREE.Face3(c,q,m,[p,n,r])),this.faceVertexUvs[0].push([t,w,u])}if(!g&&0<b){this.vertices.push(new THREE.Vertex(new THREE.Vector3(0,-e,0)));for(h=0;h<d;h++)c=j[i][h+1],q=j[i][h],m=this.vertices.length-1,p=new THREE.Vector3(0,-1,0),n=new THREE.Vector3(0,-1,0),r=new THREE.Vector3(0,-1,
-0),t=k[i][h+1].clone(),w=k[i][h].clone(),u=new THREE.UV(w.u,1),this.faces.push(new THREE.Face3(c,q,m,[p,n,r])),this.faceVertexUvs[0].push([t,w,u])}this.computeCentroids();this.computeFaceNormals()};THREE.CylinderGeometry.prototype=new THREE.Geometry;THREE.CylinderGeometry.prototype.constructor=THREE.CylinderGeometry;
-THREE.ExtrudeGeometry=function(a,b){if("undefined"!==typeof a){THREE.Geometry.call(this);var a=a instanceof Array?a:[a],c,d,f=a.length;this.shapebb=a[f-1].getBoundingBox();for(d=0;d<f;d++)c=a[d],this.addShape(c,b);this.computeCentroids();this.computeFaceNormals()}};THREE.ExtrudeGeometry.prototype=new THREE.Geometry;THREE.ExtrudeGeometry.prototype.constructor=THREE.ExtrudeGeometry;
-THREE.ExtrudeGeometry.prototype.addShape=function(a,b){function c(a,b,c){b||console.log("die");return b.clone().multiplyScalar(c).addSelf(a)}function d(a,b,c){var d=THREE.ExtrudeGeometry.__v1,f=THREE.ExtrudeGeometry.__v2,e=THREE.ExtrudeGeometry.__v3,g=THREE.ExtrudeGeometry.__v4,h=THREE.ExtrudeGeometry.__v5,i=THREE.ExtrudeGeometry.__v6;d.set(a.x-b.x,a.y-b.y);f.set(a.x-c.x,a.y-c.y);d=d.normalize();f=f.normalize();e.set(-d.y,d.x);g.set(f.y,-f.x);h.copy(a).addSelf(e);i.copy(a).addSelf(g);if(h.equals(i))return g.clone();
-h.copy(b).addSelf(e);i.copy(c).addSelf(g);e=d.dot(g);g=i.subSelf(h).dot(g);0===e&&(console.log("Either infinite or no solutions!"),0===g?console.log("Its finite solutions."):console.log("Too bad, no solutions."));g/=e;return 0>g?(b=Math.atan2(b.y-a.y,b.x-a.x),a=Math.atan2(c.y-a.y,c.x-a.x),b>a&&(a+=2*Math.PI),c=(b+a)/2,a=-Math.cos(c),c=-Math.sin(c),new THREE.Vector2(a,c)):d.multiplyScalar(g).addSelf(h).subSelf(a).clone()}function f(a){for(y=a.length;0<=--y;){$=y;C=y-1;0>C&&(C=a.length-1);for(var b=
-0,c=o+2*k,b=0;b<c;b++){var d=L*b,f=L*(b+1),e=ca+$+d,g=ca+C+d,h=ca+C+f,i=ca+$+f,e=e+D,g=g+D,h=h+D,i=i+D;B.faces.push(new THREE.Face4(e,g,h,i,null,null,u));var f=B.vertices[e].position.x,d=B.vertices[e].position.y,e=B.vertices[e].position.z,j=B.vertices[g].position.x,l=B.vertices[g].position.y,g=B.vertices[g].position.z,m=B.vertices[h].position.x,n=B.vertices[h].position.y,h=B.vertices[h].position.z,q=B.vertices[i].position.x,p=B.vertices[i].position.y,i=B.vertices[i].position.z;0.01>Math.abs(d-l)?
-B.faceVertexUvs[0].push([new THREE.UV(f,e),new THREE.UV(j,g),new THREE.UV(m,h),new THREE.UV(q,i)]):B.faceVertexUvs[0].push([new THREE.UV(d,e),new THREE.UV(l,g),new THREE.UV(n,h),new THREE.UV(p,i)])}}}function g(a,b,c){B.vertices.push(new THREE.Vertex(new THREE.Vector3(a,b,c)))}function e(a,b,c){a+=D;b+=D;c+=D;B.faces.push(new THREE.Face3(a,b,c,null,null,w));var d=B.vertices[b].position.x,b=B.vertices[b].position.y,f=B.vertices[c].position.x,c=B.vertices[c].position.y;B.faceVertexUvs[0].push([new THREE.UV(B.vertices[a].position.x,
-1-B.vertices[a].position.y),new THREE.UV(d,1-b),new THREE.UV(f,1-c)])}var h=void 0!==b.amount?b.amount:100,i=void 0!==b.bevelThickness?b.bevelThickness:6,j=void 0!==b.bevelSize?b.bevelSize:i-2,k=void 0!==b.bevelSegments?b.bevelSegments:3,q=void 0!==b.bevelEnabled?b.bevelEnabled:!0,m=void 0!==b.curveSegments?b.curveSegments:12,o=void 0!==b.steps?b.steps:1,p=b.bendPath,n=b.extrudePath,r,s=!1,t=void 0!==b.useSpacedPoints?b.useSpacedPoints:!1,w=b.material,u=b.extrudeMaterial;if(n)r=n.getPoints(m),o=r.length,
-s=!0,q=!1;q||(j=i=k=0);var v,A,F,B=this,D=this.vertices.length;p&&a.addWrapPath(p);m=t?a.extractAllSpacedPoints(m):a.extractAllPoints(m);p=m.shape;m=m.holes;if(n=!THREE.Shape.Utils.isClockWise(p)){p=p.reverse();for(A=0,F=m.length;A<F;A++)v=m[A],THREE.Shape.Utils.isClockWise(v)&&(m[A]=v.reverse());n=!1}n=THREE.Shape.Utils.triangulateShape(p,m);t=p;for(A=0,F=m.length;A<F;A++)v=m[A],p=p.concat(v);for(var H,I,Q,P,L=p.length,K=n.length,O=[],y=0,l=t.length,$=l-1,C=y+1;y<l;y++,$++,C++)$===l&&($=0),C===l&&
-(C=0),O[y]=d(t[y],t[$],t[C]);var E=[],S,R=O.concat();for(A=0,F=m.length;A<F;A++){v=m[A];S=[];for(y=0,l=v.length,$=l-1,C=y+1;y<l;y++,$++,C++)$===l&&($=0),C===l&&(C=0),S[y]=d(v[y],v[$],v[C]);E.push(S);R=R.concat(S)}for(H=0;H<k;H++){I=H/k;Q=i*(1-I);I=j*Math.sin(I*Math.PI/2);for(y=0,l=t.length;y<l;y++)P=c(t[y],O[y],I),g(P.x,P.y,-Q);for(A=0,F=m.length;A<F;A++){v=m[A];S=E[A];for(y=0,l=v.length;y<l;y++)P=c(v[y],S[y],I),g(P.x,P.y,-Q)}}I=j;for(y=0;y<L;y++)P=q?c(p[y],R[y],I):p[y],s?g(P.x,P.y+r[0].y,r[0].x):
-g(P.x,P.y,0);for(H=1;H<=o;H++)for(y=0;y<L;y++)P=q?c(p[y],R[y],I):p[y],s?g(P.x,P.y+r[H-1].y,r[H-1].x):g(P.x,P.y,h/o*H);for(H=k-1;0<=H;H--){I=H/k;Q=i*(1-I);I=j*Math.sin(I*Math.PI/2);for(y=0,l=t.length;y<l;y++)P=c(t[y],O[y],I),g(P.x,P.y,h+Q);for(A=0,F=m.length;A<F;A++){v=m[A];S=E[A];for(y=0,l=v.length;y<l;y++)P=c(v[y],S[y],I),s?g(P.x,P.y+r[o-1].y,r[o-1].x+Q):g(P.x,P.y,h+Q)}}if(q){i=0*L;for(y=0;y<K;y++)h=n[y],e(h[2]+i,h[1]+i,h[0]+i);i=L*(o+2*k);for(y=0;y<K;y++)h=n[y],e(h[0]+i,h[1]+i,h[2]+i)}else{for(y=
-0;y<K;y++)h=n[y],e(h[2],h[1],h[0]);for(y=0;y<K;y++)h=n[y],e(h[0]+L*o,h[1]+L*o,h[2]+L*o)}var ca=0;f(t);ca+=t.length;for(A=0,F=m.length;A<F;A++)v=m[A],f(v),ca+=v.length};THREE.ExtrudeGeometry.__v1=new THREE.Vector2;THREE.ExtrudeGeometry.__v2=new THREE.Vector2;THREE.ExtrudeGeometry.__v3=new THREE.Vector2;THREE.ExtrudeGeometry.__v4=new THREE.Vector2;THREE.ExtrudeGeometry.__v5=new THREE.Vector2;THREE.ExtrudeGeometry.__v6=new THREE.Vector2;
-THREE.LatheGeometry=function(a,b,c){THREE.Geometry.call(this);this.steps=b||12;this.angle=c||2*Math.PI;for(var b=this.angle/this.steps,c=[],d=[],f=[],g=[],e=(new THREE.Matrix4).setRotationZ(b),h=0;h<a.length;h++)this.vertices.push(new THREE.Vertex(a[h])),c[h]=a[h].clone(),d[h]=this.vertices.length-1;for(var i=0;i<=this.angle+0.001;i+=b){for(h=0;h<c.length;h++)i<this.angle?(c[h]=e.multiplyVector3(c[h].clone()),this.vertices.push(new THREE.Vertex(c[h])),f[h]=this.vertices.length-1):f=g;0==i&&(g=d);
-for(h=0;h<d.length-1;h++)this.faces.push(new THREE.Face4(f[h],f[h+1],d[h+1],d[h])),this.faceVertexUvs[0].push([new THREE.UV(1-i/this.angle,h/a.length),new THREE.UV(1-i/this.angle,(h+1)/a.length),new THREE.UV(1-(i-b)/this.angle,(h+1)/a.length),new THREE.UV(1-(i-b)/this.angle,h/a.length)]);d=f;f=[]}this.computeCentroids();this.computeFaceNormals();this.computeVertexNormals()};THREE.LatheGeometry.prototype=new THREE.Geometry;THREE.LatheGeometry.prototype.constructor=THREE.LatheGeometry;
-THREE.PlaneGeometry=function(a,b,c,d){THREE.Geometry.call(this);for(var f=a/2,g=b/2,c=c||1,d=d||1,e=c+1,h=d+1,i=a/c,j=b/d,k=new THREE.Vector3(0,0,1),a=0;a<h;a++)for(b=0;b<e;b++)this.vertices.push(new THREE.Vertex(new THREE.Vector3(b*i-f,-(a*j-g),0)));for(a=0;a<d;a++)for(b=0;b<c;b++)f=new THREE.Face4(b+e*a,b+e*(a+1),b+1+e*(a+1),b+1+e*a),f.normal.copy(k),f.vertexNormals.push(k.clone(),k.clone(),k.clone(),k.clone()),this.faces.push(f),this.faceVertexUvs[0].push([new THREE.UV(b/c,a/d),new THREE.UV(b/
-c,(a+1)/d),new THREE.UV((b+1)/c,(a+1)/d),new THREE.UV((b+1)/c,a/d)]);this.computeCentroids()};THREE.PlaneGeometry.prototype=new THREE.Geometry;THREE.PlaneGeometry.prototype.constructor=THREE.PlaneGeometry;
-THREE.SphereGeometry=function(a,b,c,d,f,g,e){THREE.Geometry.call(this);var a=a||50,d=void 0!==d?d:0,f=void 0!==f?f:2*Math.PI,g=void 0!==g?g:0,e=void 0!==e?e:Math.PI,b=Math.max(3,Math.floor(b)||8),c=Math.max(2,Math.floor(c)||6),h,i,j=[],k=[];for(i=0;i<=c;i++){var q=[],m=[];for(h=0;h<=b;h++){var o=h/b,p=i/c,n=-a*Math.cos(d+o*f)*Math.sin(g+p*e),r=a*Math.cos(g+p*e),s=a*Math.sin(d+o*f)*Math.sin(g+p*e);this.vertices.push(new THREE.Vertex(new THREE.Vector3(n,r,s)));q.push(this.vertices.length-1);m.push(new THREE.UV(o,
-p))}j.push(q);k.push(m)}for(i=0;i<c;i++)for(h=0;h<b;h++){var d=j[i][h+1],f=j[i][h],g=j[i+1][h],e=j[i+1][h+1],q=this.vertices[d].position.clone().normalize(),m=this.vertices[f].position.clone().normalize(),o=this.vertices[g].position.clone().normalize(),p=this.vertices[e].position.clone().normalize(),n=k[i][h+1].clone(),r=k[i][h].clone(),s=k[i+1][h].clone(),t=k[i+1][h+1].clone();Math.abs(this.vertices[d].position.y)==a?(this.faces.push(new THREE.Face3(d,g,e,[q,o,p])),this.faceVertexUvs[0].push([n,
-s,t])):Math.abs(this.vertices[g].position.y)==a?(this.faces.push(new THREE.Face3(d,f,g,[q,m,o])),this.faceVertexUvs[0].push([n,r,s])):(this.faces.push(new THREE.Face4(d,f,g,e,[q,m,o,p])),this.faceVertexUvs[0].push([n,r,s,t]))}this.computeCentroids();this.computeFaceNormals();this.boundingSphere={radius:a}};THREE.SphereGeometry.prototype=new THREE.Geometry;THREE.SphereGeometry.prototype.constructor=THREE.SphereGeometry;
-THREE.TextGeometry=function(a,b){var c=(new THREE.TextPath(a,b)).toShapes();b.amount=void 0!==b.height?b.height:50;if(void 0===b.bevelThickness)b.bevelThickness=10;if(void 0===b.bevelSize)b.bevelSize=8;if(void 0===b.bevelEnabled)b.bevelEnabled=!1;if(b.bend){var d=c[c.length-1].getBoundingBox().maxX;b.bendPath=new THREE.QuadraticBezierCurve(new THREE.Vector2(0,0),new THREE.Vector2(d/2,120),new THREE.Vector2(d,0))}THREE.ExtrudeGeometry.call(this,c,b)};THREE.TextGeometry.prototype=new THREE.ExtrudeGeometry;
-THREE.TextGeometry.prototype.constructor=THREE.TextGeometry;
-THREE.FontUtils={faces:{},face:"helvetiker",weight:"normal",style:"normal",size:150,divisions:10,getFace:function(){return this.faces[this.face][this.weight][this.style]},loadFace:function(a){var b=a.familyName.toLowerCase();this.faces[b]=this.faces[b]||{};this.faces[b][a.cssFontWeight]=this.faces[b][a.cssFontWeight]||{};this.faces[b][a.cssFontWeight][a.cssFontStyle]=a;return this.faces[b][a.cssFontWeight][a.cssFontStyle]=a},drawText:function(a){for(var b=this.getFace(),c=this.size/b.resolution,d=
-0,f=(""+a).split(""),g=f.length,e=[],a=0;a<g;a++){var h=new THREE.Path,h=this.extractGlyphPoints(f[a],b,c,d,h),d=d+h.offset;e.push(h.path)}return{paths:e,offset:d/2}},extractGlyphPoints:function(a,b,c,d,f){var g=[],e,h,i,j,k,q,m,o,p,n,r,s=b.glyphs[a]||b.glyphs["?"];if(s){if(s.o){b=s._cachedOutline||(s._cachedOutline=s.o.split(" "));j=b.length;for(a=0;a<j;)switch(i=b[a++],i){case "m":i=b[a++]*c+d;k=b[a++]*c;g.push(new THREE.Vector2(i,k));f.moveTo(i,k);break;case "l":i=b[a++]*c+d;k=b[a++]*c;g.push(new THREE.Vector2(i,
-k));f.lineTo(i,k);break;case "q":i=b[a++]*c+d;k=b[a++]*c;o=b[a++]*c+d;p=b[a++]*c;f.quadraticCurveTo(o,p,i,k);if(e=g[g.length-1]){q=e.x;m=e.y;for(e=1,h=this.divisions;e<=h;e++){var t=e/h,w=THREE.Shape.Utils.b2(t,q,o,i),t=THREE.Shape.Utils.b2(t,m,p,k);g.push(new THREE.Vector2(w,t))}}break;case "b":if(i=b[a++]*c+d,k=b[a++]*c,o=b[a++]*c+d,p=b[a++]*-c,n=b[a++]*c+d,r=b[a++]*-c,f.bezierCurveTo(i,k,o,p,n,r),e=g[g.length-1]){q=e.x;m=e.y;for(e=1,h=this.divisions;e<=h;e++)t=e/h,w=THREE.Shape.Utils.b3(t,q,o,
-n,i),t=THREE.Shape.Utils.b3(t,m,p,r,k),g.push(new THREE.Vector2(w,t))}}}return{offset:s.ha*c,points:g,path:f}}}};
-(function(a){var b=function(a){for(var b=a.length,f=0,g=b-1,e=0;e<b;g=e++)f+=a[g].x*a[e].y-a[e].x*a[g].y;return 0.5*f};a.Triangulate=function(a,d){var f=a.length;if(3>f)return null;var g=[],e=[],h=[],i,j,k;if(0<b(a))for(j=0;j<f;j++)e[j]=j;else for(j=0;j<f;j++)e[j]=f-1-j;var q=2*f;for(j=f-1;2<f;){if(0>=q--){console.log("Warning, unable to triangulate polygon!");break}i=j;f<=i&&(i=0);j=i+1;f<=j&&(j=0);k=j+1;f<=k&&(k=0);var m;a:{m=a;var o=i,p=j,n=k,r=f,s=e,t=void 0,w=void 0,u=void 0,v=void 0,A=void 0,
-F=void 0,B=void 0,D=void 0,H=void 0,w=m[s[o]].x,u=m[s[o]].y,v=m[s[p]].x,A=m[s[p]].y,F=m[s[n]].x,B=m[s[n]].y;if(1.0E-10>(v-w)*(B-u)-(A-u)*(F-w))m=!1;else{for(t=0;t<r;t++)if(!(t==o||t==p||t==n)){var D=m[s[t]].x,H=m[s[t]].y,I=void 0,Q=void 0,P=void 0,L=void 0,K=void 0,O=void 0,y=void 0,l=void 0,$=void 0,C=void 0,E=void 0,S=void 0,I=P=K=void 0,I=F-v,Q=B-A,P=w-F,L=u-B,K=v-w,O=A-u,y=D-w,l=H-u,$=D-v,C=H-A,E=D-F,S=H-B,I=I*C-Q*$,K=K*l-O*y,P=P*S-L*E;if(0<=I&&0<=P&&0<=K){m=!1;break a}}m=!0}}if(m){g.push([a[e[i]],
-a[e[j]],a[e[k]]]);h.push([e[i],e[j],e[k]]);for(i=j,k=j+1;k<f;i++,k++)e[i]=e[k];f--;q=2*f}}return d?h:g};a.Triangulate.area=b;return a})(THREE.FontUtils);self._typeface_js={faces:THREE.FontUtils.faces,loadFace:THREE.FontUtils.loadFace};
-THREE.TorusGeometry=function(a,b,c,d,f){THREE.Geometry.call(this);this.radius=a||100;this.tube=b||40;this.segmentsR=c||8;this.segmentsT=d||6;this.arc=f||2*Math.PI;f=new THREE.Vector3;a=[];b=[];for(c=0;c<=this.segmentsR;c++)for(d=0;d<=this.segmentsT;d++){var g=d/this.segmentsT*this.arc,e=2*c/this.segmentsR*Math.PI;f.x=this.radius*Math.cos(g);f.y=this.radius*Math.sin(g);var h=new THREE.Vector3;h.x=(this.radius+this.tube*Math.cos(e))*Math.cos(g);h.y=(this.radius+this.tube*Math.cos(e))*Math.sin(g);h.z=
-this.tube*Math.sin(e);this.vertices.push(new THREE.Vertex(h));a.push(new THREE.UV(d/this.segmentsT,1-c/this.segmentsR));b.push(h.clone().subSelf(f).normalize())}for(c=1;c<=this.segmentsR;c++)for(d=1;d<=this.segmentsT;d++){var f=(this.segmentsT+1)*c+d-1,g=(this.segmentsT+1)*(c-1)+d-1,e=(this.segmentsT+1)*(c-1)+d,h=(this.segmentsT+1)*c+d,i=new THREE.Face4(f,g,e,h,[b[f],b[g],b[e],b[h]]);i.normal.addSelf(b[f]);i.normal.addSelf(b[g]);i.normal.addSelf(b[e]);i.normal.addSelf(b[h]);i.normal.normalize();this.faces.push(i);
-this.faceVertexUvs[0].push([a[f].clone(),a[g].clone(),a[e].clone(),a[h].clone()])}this.computeCentroids()};THREE.TorusGeometry.prototype=new THREE.Geometry;THREE.TorusGeometry.prototype.constructor=THREE.TorusGeometry;
-THREE.TorusKnotGeometry=function(a,b,c,d,f,g,e){function h(a,b,c,d,f,e){var g=Math.cos(a);Math.cos(b);b=Math.sin(a);a*=c/d;c=Math.cos(a);g*=0.5*f*(2+c);b=0.5*f*(2+c)*b;f=0.5*e*f*Math.sin(a);return new THREE.Vector3(g,b,f)}THREE.Geometry.call(this);this.radius=a||200;this.tube=b||40;this.segmentsR=c||64;this.segmentsT=d||8;this.p=f||2;this.q=g||3;this.heightScale=e||1;this.grid=Array(this.segmentsR);c=new THREE.Vector3;d=new THREE.Vector3;f=new THREE.Vector3;for(a=0;a<this.segmentsR;++a){this.grid[a]=
-Array(this.segmentsT);for(b=0;b<this.segmentsT;++b){var i=2*(a/this.segmentsR)*this.p*Math.PI,e=2*(b/this.segmentsT)*Math.PI,g=h(i,e,this.q,this.p,this.radius,this.heightScale),i=h(i+0.01,e,this.q,this.p,this.radius,this.heightScale);c.sub(i,g);d.add(i,g);f.cross(c,d);d.cross(f,c);f.normalize();d.normalize();i=-this.tube*Math.cos(e);e=this.tube*Math.sin(e);g.x+=i*d.x+e*f.x;g.y+=i*d.y+e*f.y;g.z+=i*d.z+e*f.z;this.grid[a][b]=this.vertices.push(new THREE.Vertex(new THREE.Vector3(g.x,g.y,g.z)))-1}}for(a=
-0;a<this.segmentsR;++a)for(b=0;b<this.segmentsT;++b){var f=(a+1)%this.segmentsR,g=(b+1)%this.segmentsT,c=this.grid[a][b],d=this.grid[f][b],f=this.grid[f][g],g=this.grid[a][g],e=new THREE.UV(a/this.segmentsR,b/this.segmentsT),i=new THREE.UV((a+1)/this.segmentsR,b/this.segmentsT),j=new THREE.UV((a+1)/this.segmentsR,(b+1)/this.segmentsT),k=new THREE.UV(a/this.segmentsR,(b+1)/this.segmentsT);this.faces.push(new THREE.Face4(c,d,f,g));this.faceVertexUvs[0].push([e,i,j,k])}this.computeCentroids();this.computeFaceNormals();
-this.computeVertexNormals()};THREE.TorusKnotGeometry.prototype=new THREE.Geometry;THREE.TorusKnotGeometry.prototype.constructor=THREE.TorusKnotGeometry;
-THREE.PolyhedronGeometry=function(a,b,c,d){function f(a){var b=new THREE.Vertex(a.normalize());b.index=i.vertices.push(b)-1;var c=Math.atan2(a.z,-a.x)/2/Math.PI+0.5,a=Math.atan2(-a.y,Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+0.5;b.uv=new THREE.UV(c,a);return b}function g(a,b,c,d){1>d?(d=new THREE.Face3(a.index,b.index,c.index,[a.position.clone(),b.position.clone(),c.position.clone()]),d.centroid.addSelf(a.position).addSelf(b.position).addSelf(c.position).divideScalar(3),d.normal=d.centroid.clone().normalize(),
-i.faces.push(d),d=Math.atan2(d.centroid.z,-d.centroid.x),i.faceVertexUvs[0].push([h(a.uv,a.position,d),h(b.uv,b.position,d),h(c.uv,c.position,d)])):(d-=1,g(a,e(a,b),e(a,c),d),g(e(a,b),b,e(b,c),d),g(e(a,c),e(b,c),c,d),g(e(a,b),e(b,c),e(a,c),d))}function e(a,b){q[a.index]||(q[a.index]=[]);q[b.index]||(q[b.index]=[]);var c=q[a.index][b.index];void 0===c&&(q[a.index][b.index]=q[b.index][a.index]=c=f((new THREE.Vector3).add(a.position,b.position).divideScalar(2)));return c}function h(a,b,c){0>c&&1===a.u&&
-(a=new THREE.UV(a.u-1,a.v));0===b.x&&0===b.z&&(a=new THREE.UV(c/2/Math.PI+0.5,a.v));return a}THREE.Geometry.call(this);for(var c=c||1,d=d||0,i=this,j=0,k=a.length;j<k;j++)f(new THREE.Vector3(a[j][0],a[j][1],a[j][2]));for(var q=[],a=this.vertices,j=0,k=b.length;j<k;j++)g(a[b[j][0]],a[b[j][1]],a[b[j][2]],d);this.mergeVertices();j=0;for(k=this.vertices.length;j<k;j++)this.vertices[j].position.multiplyScalar(c);this.boundingSphere={radius:c}};THREE.PolyhedronGeometry.prototype=new THREE.Geometry;
-THREE.PolyhedronGeometry.prototype.constructor=THREE.PolyhedronGeometry;THREE.IcosahedronGeometry=function(a,b){var c=(1+Math.sqrt(5))/2;THREE.PolyhedronGeometry.call(this,[[-1,c,0],[1,c,0],[-1,-c,0],[1,-c,0],[0,-1,c],[0,1,c],[0,-1,-c],[0,1,-c],[c,0,-1],[c,0,1],[-c,0,-1],[-c,0,1]],[[0,11,5],[0,5,1],[0,1,7],[0,7,10],[0,10,11],[1,5,9],[5,11,4],[11,10,2],[10,7,6],[7,1,8],[3,9,4],[3,4,2],[3,2,6],[3,6,8],[3,8,9],[4,9,5],[2,4,11],[6,2,10],[8,6,7],[9,8,1]],a,b)};THREE.IcosahedronGeometry.prototype=new THREE.Geometry;
-THREE.IcosahedronGeometry.prototype.constructor=THREE.IcosahedronGeometry;THREE.OctahedronGeometry=function(a,b){THREE.PolyhedronGeometry.call(this,[[1,0,0],[-1,0,0],[0,1,0],[0,-1,0],[0,0,1],[0,0,-1]],[[0,2,4],[0,4,3],[0,3,5],[0,5,2],[1,2,5],[1,5,3],[1,3,4],[1,4,2]],a,b)};THREE.OctahedronGeometry.prototype=new THREE.Geometry;THREE.OctahedronGeometry.prototype.constructor=THREE.OctahedronGeometry;
-THREE.TetrahedronGeometry=function(a,b){THREE.PolyhedronGeometry.call(this,[[1,1,1],[-1,-1,1],[-1,1,-1],[1,-1,-1]],[[2,1,0],[0,3,2],[1,3,0],[2,3,1]],a,b)};THREE.TetrahedronGeometry.prototype=new THREE.Geometry;THREE.TetrahedronGeometry.prototype.constructor=THREE.TetrahedronGeometry;
-THREE.AxisHelper=function(){THREE.Object3D.call(this);var a=new THREE.Geometry;a.vertices.push(new THREE.Vertex);a.vertices.push(new THREE.Vertex(new THREE.Vector3(0,100,0)));var b=new THREE.CylinderGeometry(0,5,25,5,1),c;c=new THREE.Line(a,new THREE.LineBasicMaterial({color:16711680}));c.rotation.z=-Math.PI/2;this.add(c);c=new THREE.Mesh(b,new THREE.MeshBasicMaterial({color:16711680}));c.position.x=100;c.rotation.z=-Math.PI/2;this.add(c);c=new THREE.Line(a,new THREE.LineBasicMaterial({color:65280}));
-this.add(c);c=new THREE.Mesh(b,new THREE.MeshBasicMaterial({color:65280}));c.position.y=100;this.add(c);c=new THREE.Line(a,new THREE.LineBasicMaterial({color:255}));c.rotation.x=Math.PI/2;this.add(c);c=new THREE.Mesh(b,new THREE.MeshBasicMaterial({color:255}));c.position.z=100;c.rotation.x=Math.PI/2;this.add(c)};THREE.AxisHelper.prototype=new THREE.Object3D;THREE.AxisHelper.prototype.constructor=THREE.AxisHelper;
-THREE.CameraHelper=function(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){d.lineGeometry.vertices.push(new THREE.Vertex(new THREE.Vector3));d.lineGeometry.colors.push(new THREE.Color(b));void 0===d.pointMap[a]&&(d.pointMap[a]=[]);d.pointMap[a].push(d.lineGeometry.vertices.length-1)}THREE.Object3D.call(this);var d=this;this.lineGeometry=new THREE.Geometry;this.lineMaterial=new THREE.LineBasicMaterial({color:16777215,vertexColors:THREE.FaceColors});this.pointMap={};b("n1","n2",16755200);b("n2",
-"n4",16755200);b("n4","n3",16755200);b("n3","n1",16755200);b("f1","f2",16755200);b("f2","f4",16755200);b("f4","f3",16755200);b("f3","f1",16755200);b("n1","f1",16755200);b("n2","f2",16755200);b("n3","f3",16755200);b("n4","f4",16755200);b("p","n1",16711680);b("p","n2",16711680);b("p","n3",16711680);b("p","n4",16711680);b("u1","u2",43775);b("u2","u3",43775);b("u3","u1",43775);b("c","t",16777215);b("p","c",3355443);b("cn1","cn2",3355443);b("cn3","cn4",3355443);b("cf1","cf2",3355443);b("cf3","cf4",3355443);
-this.update(a);this.lines=new THREE.Line(this.lineGeometry,this.lineMaterial,THREE.LinePieces);this.add(this.lines)};THREE.CameraHelper.prototype=new THREE.Object3D;THREE.CameraHelper.prototype.constructor=THREE.CameraHelper;
-THREE.CameraHelper.prototype.update=function(a){function b(a,b,g,e){THREE.CameraHelper.__v.set(b,g,e);THREE.CameraHelper.__projector.unprojectVector(THREE.CameraHelper.__v,THREE.CameraHelper.__c);a=c.pointMap[a];if(void 0!==a){b=0;for(g=a.length;b<g;b++)c.lineGeometry.vertices[a[b]].position.copy(THREE.CameraHelper.__v)}}var c=this;THREE.CameraHelper.__c.projectionMatrix.copy(a.projectionMatrix);b("c",0,0,-1);b("t",0,0,1);b("n1",-1,-1,-1);b("n2",1,-1,-1);b("n3",-1,1,-1);b("n4",1,1,-1);b("f1",-1,-1,
-1);b("f2",1,-1,1);b("f3",-1,1,1);b("f4",1,1,1);b("u1",0.7,1.1,-1);b("u2",-0.7,1.1,-1);b("u3",0,2,-1);b("cf1",-1,0,1);b("cf2",1,0,1);b("cf3",0,-1,1);b("cf4",0,1,1);b("cn1",-1,0,-1);b("cn2",1,0,-1);b("cn3",0,-1,-1);b("cn4",0,1,-1);this.lineGeometry.__dirtyVertices=!0};THREE.CameraHelper.__projector=new THREE.Projector;THREE.CameraHelper.__v=new THREE.Vector3;THREE.CameraHelper.__c=new THREE.Camera;
-THREE.SubdivisionModifier=function(a){this.subdivisions=void 0===a?1:a;this.useOldVertexColors=!1;this.supportUVs=!0};THREE.SubdivisionModifier.prototype.constructor=THREE.SubdivisionModifier;THREE.SubdivisionModifier.prototype.modify=function(a){for(var b=this.subdivisions;0<b--;)this.smooth(a)};
-THREE.SubdivisionModifier.prototype.smooth=function(a){function b(a,b,c,d,h,i){var j=new THREE.Face4(a,b,c,d,null,h.color,h.material);if(e.useOldVertexColors){j.vertexColors=[];for(var k,n,o,q=0;4>q;q++){o=i[q];k=new THREE.Color;k.setRGB(0,0,0);for(var p=0;p<o.length;p++)n=h.vertexColors[o[p]-1],k.r+=n.r,k.g+=n.g,k.b+=n.b;k.r/=o.length;k.g/=o.length;k.b/=o.length;j.vertexColors[q]=k}}f.push(j);(!e.supportUVs||0!=m.length)&&g.push([m[a],m[b],m[c],m[d]])}function c(a,b){return Math.min(a,b)+"_"+Math.max(a,
-b)}var d=[],f=[],g=[],e=this,h=a.vertices,d=a.faces,i=h.concat(),j=[],k={},q={},m=[],o,p,n,r,s,t=a.faceVertexUvs[0];for(o=0,p=t.length;o<p;o++)for(n=0,r=t[o].length;n<r;n++)s=d[o]["abcd".charAt(n)],m[s]||(m[s]=t[o][n]);var w;for(o=0,p=d.length;o<p;o++)if(s=d[o],j.push(s.centroid),i.push(new THREE.Vertex(s.centroid)),e.supportUVs&&0!=m.length){w=new THREE.UV;if(s instanceof THREE.Face3)w.u=m[s.a].u+m[s.b].u+m[s.c].u,w.v=m[s.a].v+m[s.b].v+m[s.c].v,w.u/=3,w.v/=3;else if(s instanceof THREE.Face4)w.u=
-m[s.a].u+m[s.b].u+m[s.c].u+m[s.d].u,w.v=m[s.a].v+m[s.b].v+m[s.c].v+m[s.d].v,w.u/=4,w.v/=4;m.push(w)}p=function(a){function b(a,c,d){void 0===a[c]&&(a[c]=[]);a[c].push(d)}var d,f,e,g,h={};for(d=0,f=a.faces.length;d<f;d++)e=a.faces[d],e instanceof THREE.Face3?(g=c(e.a,e.b),b(h,g,d),g=c(e.b,e.c),b(h,g,d),g=c(e.c,e.a),b(h,g,d)):e instanceof THREE.Face4&&(g=c(e.a,e.b),b(h,g,d),g=c(e.b,e.c),b(h,g,d),g=c(e.c,e.d),b(h,g,d),g=c(e.d,e.a),b(h,g,d));return h}(a);var u=0,t=h.length,v,A,F={},B={},D=function(a,
-b){void 0===F[a]&&(F[a]=[]);F[a].push(b)},H=function(a,b){void 0===B[a]&&(B[a]={});B[a][b]=null};for(o in p){w=p[o];v=o.split("_");A=v[0];v=v[1];D(A,[A,v]);D(v,[A,v]);for(n=0,r=w.length;n<r;n++)s=w[n],H(A,s,o),H(v,s,o);2>w.length&&(q[o]=!0)}for(o in p)if(w=p[o],s=w[0],w=w[1],v=o.split("_"),A=v[0],v=v[1],r=new THREE.Vector3,q[o]?(r.addSelf(h[A].position),r.addSelf(h[v].position),r.multiplyScalar(0.5)):(r.addSelf(j[s]),r.addSelf(j[w]),r.addSelf(h[A].position),r.addSelf(h[v].position),r.multiplyScalar(0.25)),
-k[o]=t+d.length+u,i.push(new THREE.Vertex(r)),u++,e.supportUVs&&0!=m.length)w=new THREE.UV,w.u=m[A].u+m[v].u,w.v=m[A].v+m[v].v,w.u/=2,w.v/=2,m.push(w);var I,Q;v=["123","12","2","23"];r=["123","23","3","31"];var D=["123","31","1","12"],H=["1234","12","2","23"],P=["1234","23","3","34"],L=["1234","34","4","41"],K=["1234","41","1","12"];for(o=0,p=j.length;o<p;o++)s=d[o],w=t+o,s instanceof THREE.Face3?(u=c(s.a,s.b),A=c(s.b,s.c),I=c(s.c,s.a),b(w,k[u],s.b,k[A],s,v),b(w,k[A],s.c,k[I],s,r),b(w,k[I],s.a,k[u],
-s,D)):s instanceof THREE.Face4?(u=c(s.a,s.b),A=c(s.b,s.c),I=c(s.c,s.d),Q=c(s.d,s.a),b(w,k[u],s.b,k[A],s,H),b(w,k[A],s.c,k[I],s,P),b(w,k[I],s.d,k[Q],s,L),b(w,k[Q],s.a,k[u],s,K)):console.log("face should be a face!",s);d=i;i=new THREE.Vector3;k=new THREE.Vector3;for(o=0,p=h.length;o<p;o++)if(void 0!==F[o]){i.set(0,0,0);k.set(0,0,0);s=new THREE.Vector3(0,0,0);w=0;for(n in B[o])i.addSelf(j[n]),w++;u=0;t=F[o].length;for(n=0;n<t;n++)q[c(F[o][n][0],F[o][n][1])]&&u++;if(2!=u){i.divideScalar(w);for(n=0;n<
-t;n++)w=F[o][n],w=h[w[0]].position.clone().addSelf(h[w[1]].position).divideScalar(2),k.addSelf(w);k.divideScalar(t);s.addSelf(h[o].position);s.multiplyScalar(t-3);s.addSelf(i);s.addSelf(k.multiplyScalar(2));s.divideScalar(t);d[o].position=s}}a.vertices=d;a.faces=f;a.faceVertexUvs[0]=g;delete a.__tmpVertices;a.computeCentroids();a.computeFaceNormals();a.computeVertexNormals()};
-THREE.Loader=function(a){this.statusDomElement=(this.showStatus=a)?THREE.Loader.prototype.addStatusElement():null;this.onLoadStart=function(){};this.onLoadProgress=function(){};this.onLoadComplete=function(){}};
-THREE.Loader.prototype={constructor:THREE.Loader,crossOrigin:"anonymous",addStatusElement:function(){var a=document.createElement("div");a.style.position="absolute";a.style.right="0px";a.style.top="0px";a.style.fontSize="0.8em";a.style.textAlign="left";a.style.background="rgba(0,0,0,0.25)";a.style.color="#fff";a.style.width="120px";a.style.padding="0.5em 0.5em 0.5em 0.5em";a.style.zIndex=1E3;a.innerHTML="Loading ...";return a},updateProgress:function(a){var b="Loaded ",b=a.total?b+((100*a.loaded/
-a.total).toFixed(0)+"%"):b+((a.loaded/1E3).toFixed(2)+" KB");this.statusDomElement.innerHTML=b},extractUrlBase:function(a){a=a.split("/");a.pop();return(1>a.length?".":a.join("/"))+"/"},initMaterials:function(a,b,c){a.materials=[];for(var d=0;d<b.length;++d)a.materials[d]=THREE.Loader.prototype.createMaterial(b[d],c)},hasNormals:function(a){var b,c,d=a.materials.length;for(c=0;c<d;c++)if(b=a.materials[c],b instanceof THREE.ShaderMaterial)return!0;return!1},createMaterial:function(a,b){function c(a){a=
-Math.log(a)/Math.LN2;return Math.floor(a)==a}function d(a){a=Math.log(a)/Math.LN2;return Math.pow(2,Math.round(a))}function f(a,b){var e=new Image;e.onload=function(){if(!c(this.width)||!c(this.height)){var b=d(this.width),e=d(this.height);a.image.width=b;a.image.height=e;a.image.getContext("2d").drawImage(this,0,0,b,e)}else a.image=this;a.needsUpdate=!0};e.crossOrigin=h.crossOrigin;e.src=b}function g(a,c,d,e,g,h){var i=document.createElement("canvas");a[c]=new THREE.Texture(i);a[c].sourceFile=d;
-if(e){a[c].repeat.set(e[0],e[1]);if(1!=e[0])a[c].wrapS=THREE.RepeatWrapping;if(1!=e[1])a[c].wrapT=THREE.RepeatWrapping}g&&a[c].offset.set(g[0],g[1]);if(h){e={repeat:THREE.RepeatWrapping,mirror:THREE.MirroredRepeatWrapping};if(void 0!==e[h[0]])a[c].wrapS=e[h[0]];if(void 0!==e[h[1]])a[c].wrapT=e[h[1]]}f(a[c],b+"/"+d)}function e(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]}var h=this,i="MeshLambertMaterial",j={color:15658734,opacity:1,map:null,lightMap:null,normalMap:null,wireframe:a.wireframe};a.shading&&
-("Phong"==a.shading?i="MeshPhongMaterial":"Basic"==a.shading&&(i="MeshBasicMaterial"));if(a.blending)if("Additive"==a.blending)j.blending=THREE.AdditiveBlending;else if("Subtractive"==a.blending)j.blending=THREE.SubtractiveBlending;else if("Multiply"==a.blending)j.blending=THREE.MultiplyBlending;if(void 0!==a.transparent||1>a.opacity)j.transparent=a.transparent;if(void 0!==a.depthTest)j.depthTest=a.depthTest;if(void 0!==a.vertexColors)if("face"==a.vertexColors)j.vertexColors=THREE.FaceColors;else if(a.vertexColors)j.vertexColors=
-THREE.VertexColors;if(a.colorDiffuse)j.color=e(a.colorDiffuse);else if(a.DbgColor)j.color=a.DbgColor;if(a.colorSpecular)j.specular=e(a.colorSpecular);if(a.colorAmbient)j.ambient=e(a.colorAmbient);if(a.transparency)j.opacity=a.transparency;if(a.specularCoef)j.shininess=a.specularCoef;a.mapDiffuse&&b&&g(j,"map",a.mapDiffuse,a.mapDiffuseRepeat,a.mapDiffuseOffset,a.mapDiffuseWrap);a.mapLight&&b&&g(j,"lightMap",a.mapLight,a.mapLightRepeat,a.mapLightOffset,a.mapLightWrap);a.mapNormal&&b&&g(j,"normalMap",
-a.mapNormal,a.mapNormalRepeat,a.mapNormalOffset,a.mapNormalWrap);a.mapSpecular&&b&&g(j,"specularMap",a.mapSpecular,a.mapSpecularRepeat,a.mapSpecularOffset,a.mapSpecularWrap);if(a.mapNormal){var i=THREE.ShaderUtils.lib.normal,k=THREE.UniformsUtils.clone(i.uniforms);k.tNormal.texture=j.normalMap;if(a.mapNormalFactor)k.uNormalScale.value=a.mapNormalFactor;if(j.map)k.tDiffuse.texture=j.map,k.enableDiffuse.value=!0;if(j.specularMap)k.tSpecular.texture=j.specularMap,k.enableSpecular.value=!0;if(j.lightMap)k.tAO.texture=
-j.lightMap,k.enableAO.value=!0;k.uDiffuseColor.value.setHex(j.color);k.uSpecularColor.value.setHex(j.specular);k.uAmbientColor.value.setHex(j.ambient);k.uShininess.value=j.shininess;if(void 0!==j.opacity)k.uOpacity.value=j.opacity;j=new THREE.ShaderMaterial({fragmentShader:i.fragmentShader,vertexShader:i.vertexShader,uniforms:k,lights:!0,fog:!0})}else j=new THREE[i](j);if(void 0!==a.DbgName)j.name=a.DbgName;return j}};THREE.BinaryLoader=function(a){THREE.Loader.call(this,a)};
-THREE.BinaryLoader.prototype=new THREE.Loader;THREE.BinaryLoader.prototype.constructor=THREE.BinaryLoader;THREE.BinaryLoader.prototype.supr=THREE.Loader.prototype;THREE.BinaryLoader.prototype.load=function(a,b,c,d){var c=c?c:this.extractUrlBase(a),d=d?d:this.extractUrlBase(a),f=this.showProgress?THREE.Loader.prototype.updateProgress:null;this.onLoadStart();this.loadAjaxJSON(this,a,b,c,d,f)};
-THREE.BinaryLoader.prototype.loadAjaxJSON=function(a,b,c,d,f,g){var e=new XMLHttpRequest;e.onreadystatechange=function(){if(4==e.readyState)if(200==e.status||0==e.status){var h=JSON.parse(e.responseText);a.loadAjaxBuffers(h,c,f,d,g)}else console.error("THREE.BinaryLoader: Couldn't load ["+b+"] ["+e.status+"]")};e.open("GET",b,!0);e.overrideMimeType&&e.overrideMimeType("text/plain; charset=x-user-defined");e.setRequestHeader("Content-Type","text/plain");e.send(null)};
-THREE.BinaryLoader.prototype.loadAjaxBuffers=function(a,b,c,d,f){var g=new XMLHttpRequest,e=c+"/"+a.buffers,h=0;g.onreadystatechange=function(){4==g.readyState?200==g.status||0==g.status?THREE.BinaryLoader.prototype.createBinModel(g.response,b,d,a.materials):console.error("THREE.BinaryLoader: Couldn't load ["+e+"] ["+g.status+"]"):3==g.readyState?f&&(0==h&&(h=g.getResponseHeader("Content-Length")),f({total:h,loaded:g.responseText.length})):2==g.readyState&&(h=g.getResponseHeader("Content-Length"))};
-g.open("GET",e,!0);g.responseType="arraybuffer";g.send(null)};
-THREE.BinaryLoader.prototype.createBinModel=function(a,b,c,d){var f=function(b){var c,f,i,j,k,q,m,o,p,n,r,s,t,w,u;function v(a){return a%4?4-a%4:0}function A(a,b){return(new Uint8Array(a,b,1))[0]}function F(a,b){return(new Uint32Array(a,b,1))[0]}function B(b,c){var d,e,f,g,h,i,j,k,l=new Uint32Array(a,c,3*b);for(d=0;d<b;d++){e=l[3*d];f=l[3*d+1];g=l[3*d+2];h=y[2*e];e=y[2*e+1];i=y[2*f];j=y[2*f+1];f=y[2*g];k=y[2*g+1];g=L.faceVertexUvs[0];var m=[];m.push(new THREE.UV(h,e));m.push(new THREE.UV(i,j));m.push(new THREE.UV(f,
-k));g.push(m)}}function D(b,c){var d,e,f,g,h,i,j,k,l,m,n=new Uint32Array(a,c,4*b);for(d=0;d<b;d++){e=n[4*d];f=n[4*d+1];g=n[4*d+2];h=n[4*d+3];i=y[2*e];e=y[2*e+1];j=y[2*f];l=y[2*f+1];k=y[2*g];m=y[2*g+1];g=y[2*h];f=y[2*h+1];h=L.faceVertexUvs[0];var o=[];o.push(new THREE.UV(i,e));o.push(new THREE.UV(j,l));o.push(new THREE.UV(k,m));o.push(new THREE.UV(g,f));h.push(o)}}function H(b,c,d){for(var e,f,g,h,c=new Uint32Array(a,c,3*b),i=new Uint16Array(a,d,b),d=0;d<b;d++)e=c[3*d],f=c[3*d+1],g=c[3*d+2],h=i[d],
-L.faces.push(new THREE.Face3(e,f,g,null,null,h))}function I(b,c,d){for(var e,f,g,h,i,c=new Uint32Array(a,c,4*b),j=new Uint16Array(a,d,b),d=0;d<b;d++)e=c[4*d],f=c[4*d+1],g=c[4*d+2],h=c[4*d+3],i=j[d],L.faces.push(new THREE.Face4(e,f,g,h,null,null,i))}function Q(b,c,d,e){for(var f,g,h,i,j,k,l,c=new Uint32Array(a,c,3*b),d=new Uint32Array(a,d,3*b),m=new Uint16Array(a,e,b),e=0;e<b;e++){f=c[3*e];g=c[3*e+1];h=c[3*e+2];j=d[3*e];k=d[3*e+1];l=d[3*e+2];i=m[e];var n=O[3*k],o=O[3*k+1];k=O[3*k+2];var q=O[3*l],p=
-O[3*l+1];l=O[3*l+2];L.faces.push(new THREE.Face3(f,g,h,[new THREE.Vector3(O[3*j],O[3*j+1],O[3*j+2]),new THREE.Vector3(n,o,k),new THREE.Vector3(q,p,l)],null,i))}}function P(b,c,d,e){for(var f,g,h,i,j,k,l,m,n,c=new Uint32Array(a,c,4*b),d=new Uint32Array(a,d,4*b),o=new Uint16Array(a,e,b),e=0;e<b;e++){f=c[4*e];g=c[4*e+1];h=c[4*e+2];i=c[4*e+3];k=d[4*e];l=d[4*e+1];m=d[4*e+2];n=d[4*e+3];j=o[e];var q=O[3*l],p=O[3*l+1];l=O[3*l+2];var r=O[3*m],s=O[3*m+1];m=O[3*m+2];var t=O[3*n],u=O[3*n+1];n=O[3*n+2];L.faces.push(new THREE.Face4(f,
-g,h,i,[new THREE.Vector3(O[3*k],O[3*k+1],O[3*k+2]),new THREE.Vector3(q,p,l),new THREE.Vector3(r,s,m),new THREE.Vector3(t,u,n)],null,j))}}var L=this,K=0,O=[],y=[],l,$,C;THREE.Geometry.call(this);THREE.Loader.prototype.initMaterials(L,d,b);(function(a,b,c){for(var a=new Uint8Array(a,b,c),d="",e=0;e<c;e++)d+=String.fromCharCode(a[b+e]);return d})(a,K,12);c=A(a,K+12);A(a,K+13);A(a,K+14);A(a,K+15);f=A(a,K+16);i=A(a,K+17);j=A(a,K+18);k=A(a,K+19);q=F(a,K+20);m=F(a,K+20+4);o=F(a,K+20+8);b=F(a,K+20+12);p=
-F(a,K+20+16);n=F(a,K+20+20);r=F(a,K+20+24);s=F(a,K+20+28);t=F(a,K+20+32);w=F(a,K+20+36);u=F(a,K+20+40);K+=c;c=3*f+k;C=4*f+k;l=b*c;$=p*(c+3*i);f=n*(c+3*j);k=r*(c+3*i+3*j);c=s*C;i=t*(C+4*i);j=w*(C+4*j);K+=function(b){var b=new Float32Array(a,b,3*q),c,d,e,f;for(c=0;c<q;c++)d=b[3*c],e=b[3*c+1],f=b[3*c+2],L.vertices.push(new THREE.Vertex(new THREE.Vector3(d,e,f)));return 3*q*Float32Array.BYTES_PER_ELEMENT}(K);K+=function(b){if(m){var b=new Int8Array(a,b,3*m),c,d,e,f;for(c=0;c<m;c++)d=b[3*c],e=b[3*c+1],
-f=b[3*c+2],O.push(d/127,e/127,f/127)}return 3*m*Int8Array.BYTES_PER_ELEMENT}(K);K+=v(3*m);K+=function(b){if(o){var b=new Float32Array(a,b,2*o),c,d,e;for(c=0;c<o;c++)d=b[2*c],e=b[2*c+1],y.push(d,e)}return 2*o*Float32Array.BYTES_PER_ELEMENT}(K);l=K+l+v(2*b);$=l+$+v(2*p);f=$+f+v(2*n);k=f+k+v(2*r);c=k+c+v(2*s);i=c+i+v(2*t);j=i+j+v(2*w);(function(a){if(n){var b=a+3*n*Uint32Array.BYTES_PER_ELEMENT;H(n,a,b+3*n*Uint32Array.BYTES_PER_ELEMENT);B(n,b)}})($);(function(a){if(r){var b=a+3*r*Uint32Array.BYTES_PER_ELEMENT,
-c=b+3*r*Uint32Array.BYTES_PER_ELEMENT;Q(r,a,b,c+3*r*Uint32Array.BYTES_PER_ELEMENT);B(r,c)}})(f);(function(a){if(w){var b=a+4*w*Uint32Array.BYTES_PER_ELEMENT;I(w,a,b+4*w*Uint32Array.BYTES_PER_ELEMENT);D(w,b)}})(i);(function(a){if(u){var b=a+4*u*Uint32Array.BYTES_PER_ELEMENT,c=b+4*u*Uint32Array.BYTES_PER_ELEMENT;P(u,a,b,c+4*u*Uint32Array.BYTES_PER_ELEMENT);D(u,c)}})(j);b&&H(b,K,K+3*b*Uint32Array.BYTES_PER_ELEMENT);(function(a){if(p){var b=a+3*p*Uint32Array.BYTES_PER_ELEMENT;Q(p,a,b,b+3*p*Uint32Array.BYTES_PER_ELEMENT)}})(l);
-s&&I(s,k,k+4*s*Uint32Array.BYTES_PER_ELEMENT);(function(a){if(t){var b=a+4*t*Uint32Array.BYTES_PER_ELEMENT;P(t,a,b,b+4*t*Uint32Array.BYTES_PER_ELEMENT)}})(c);this.computeCentroids();this.computeFaceNormals();THREE.Loader.prototype.hasNormals(this)&&this.computeTangents()};f.prototype=new THREE.Geometry;f.prototype.constructor=f;b(new f(c))};
-THREE.ColladaLoader=function(){function a(a,d,f){U=a;d=d||Ta;void 0!==f&&(a=f.split("/"),a.pop(),Sa=(1>a.length?".":a.join("/"))+"/");if((a=U.evaluate("//dae:asset",U,E,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null).iterateNext())&&a.childNodes)for(f=0;f<a.childNodes.length;f++){var i=a.childNodes[f];switch(i.nodeName){case "unit":(i=i.getAttribute("meter"))&&parseFloat(i);break;case "up_axis":Fa=i.textContent.charAt(0)}}if(!Ea.convertUpAxis||Fa===Ea.upAxis)Wa=null;else switch(Fa){case "X":Wa="Y"===
-Ea.upAxis?"XtoY":"XtoZ";break;case "Y":Wa="X"===Ea.upAxis?"YtoX":"YtoZ";break;case "Z":Wa="X"===Ea.upAxis?"ZtoX":"ZtoY"}Ka=b("//dae:library_images/dae:image",e,"image");ib=b("//dae:library_materials/dae:material",B,"material");db=b("//dae:library_effects/dae:effect",P,"effect");ha=b("//dae:library_geometries/dae:geometry",r,"geometry");lb=b(".//dae:library_cameras/dae:camera",$,"camera");qa=b("//dae:library_controllers/dae:controller",h,"controller");Ga=b("//dae:library_animations/dae:animation",
-K,"animation");Za=b(".//dae:library_visual_scenes/dae:visual_scene",k,"visual_scene");La=[];sa=[];(a=U.evaluate(".//dae:scene/dae:instance_visual_scene",U,E,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null).iterateNext())?(a=a.getAttribute("url").replace(/^#/,""),ea=Za[0<a.length?a:"visual_scene0"]):ea=null;ba=new THREE.Object3D;for(a=0;a<ea.nodes.length;a++)ba.add(g(ea.nodes[a]));cb=[];c(ba);a={scene:ba,morphs:La,skins:sa,animations:cb,dae:{images:Ka,materials:ib,cameras:lb,effects:db,geometries:ha,controllers:qa,
-animations:Ga,visualScenes:Za,scene:ea}};d&&d(a);return a}function b(a,b,c){for(var a=U.evaluate(a,U,E,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null),d={},e=a.iterateNext(),f=0;e;){e=(new b).parse(e);if(!e.id||0==e.id.length)e.id=c+f++;d[e.id]=e;e=a.iterateNext()}return d}function c(a){var b=ea.getChildById(a.name,!0),d=null;if(b&&b.keys){d={fps:60,hierarchy:[{node:b,keys:b.keys,sids:b.sids}],node:a,name:"animation_"+a.name,length:0};cb.push(d);for(var e=0,f=b.keys.length;e<f;e++)d.length=Math.max(d.length,
-b.keys[e].time)}else d={hierarchy:[{keys:[],sids:[]}]};e=0;for(f=a.children.length;e<f;e++)for(var b=0,g=c(a.children[e]).hierarchy.length;b<g;b++)d.hierarchy.push({keys:[],sids:[]});return d}function d(a,b,c,e){a.world=a.world||new THREE.Matrix4;a.world.copy(a.matrix);if(a.channels&&a.channels.length){var f=a.channels[0].sampler.output[c];f instanceof THREE.Matrix4&&a.world.copy(f)}e&&a.world.multiply(e,a.world);b.push(a);for(e=0;e<a.nodes.length;e++)d(a.nodes[e],b,c,a.world)}function f(a,b,c){var e,
-f=qa[b.url];if(!f||!f.skin)console.log("ColladaLoader: Could not find skin controller.");else if(!b.skeleton||!b.skeleton.length)console.log("ColladaLoader: Could not find the skeleton for the skin. ");else{var c=1E6,g=-c,h=0;for(e in Ga)for(var i=Ga[e],j=0;j<i.sampler.length;j++){var k=i.sampler[j];k.create();c=Math.min(c,k.startTime);g=Math.max(g,k.endTime);h=Math.max(h,k.input.length)}e=h;for(var b=ea.getChildById(b.skeleton[0],!0)||ea.getChildBySid(b.skeleton[0],!0),l,m,g=new THREE.Vector3,n,
-j=0;j<a.vertices.length;j++)f.skin.bindShapeMatrix.multiplyVector3(a.vertices[j].position);for(c=0;c<e;c++){h=[];i=[];for(j=0;j<a.vertices.length;j++)i.push(new THREE.Vertex(new THREE.Vector3));d(b,h,c);j=h;k=f.skin;for(m=0;m<j.length;m++)if(l=j[m],n=-1,"JOINT"==l.type){for(var o=0;o<k.joints.length;o++)if(l.sid==k.joints[o]){n=o;break}if(0<=n){o=k.invBindMatrices[n];l.invBindMatrix=o;l.skinningMatrix=new THREE.Matrix4;l.skinningMatrix.multiply(l.world,o);l.weights=[];for(o=0;o<k.weights.length;o++)for(var q=
-0;q<k.weights[o].length;q++){var p=k.weights[o][q];p.joint==n&&l.weights.push(p)}}else throw"ColladaLoader: Could not find joint '"+l.sid+"'.";}for(j=0;j<h.length;j++)if("JOINT"==h[j].type)for(k=0;k<h[j].weights.length;k++)l=h[j].weights[k],m=l.index,l=l.weight,n=a.vertices[m],m=i[m],g.x=n.position.x,g.y=n.position.y,g.z=n.position.z,h[j].skinningMatrix.multiplyVector3(g),m.position.x+=g.x*l,m.position.y+=g.y*l,m.position.z+=g.z*l;a.morphTargets.push({name:"target_"+c,vertices:i})}}}function g(a){var b=
-new THREE.Object3D,c,d,e,h;for(e=0;e<a.controllers.length;e++){var i=qa[a.controllers[e].url];switch(i.type){case "skin":if(ha[i.skin.source]){var j=new n;j.url=i.skin.source;j.instance_material=a.controllers[e].instance_material;a.geometries.push(j);c=a.controllers[e]}else if(qa[i.skin.source]&&(d=i=qa[i.skin.source],i.morph&&ha[i.morph.source]))j=new n,j.url=i.morph.source,j.instance_material=a.controllers[e].instance_material,a.geometries.push(j);break;case "morph":if(ha[i.morph.source])j=new n,
-j.url=i.morph.source,j.instance_material=a.controllers[e].instance_material,a.geometries.push(j),d=a.controllers[e];console.log("ColladaLoader: Morph-controller partially supported.")}}for(e=0;e<a.geometries.length;e++){var i=a.geometries[e],j=i.instance_material,i=ha[i.url],k={},l=[],m=0,q;if(i&&i.mesh&&i.mesh.primitives){if(0==b.name.length)b.name=i.id;if(j)for(h=0;h<j.length;h++){q=j[h];var p=ib[q.target],r=db[p.instance_effect.url].shader;r.material.opacity=!r.material.opacity?1:r.material.opacity;
-k[q.symbol]=m;l.push(r.material);q=r.material;q.name=null==p.name||""===p.name?p.id:p.name;m++}j=q||new THREE.MeshLambertMaterial({color:14540253,shading:THREE.FlatShading});i=i.mesh.geometry3js;if(1<m){j=new THREE.MeshFaceMaterial;i.materials=l;for(h=0;h<i.faces.length;h++)l=i.faces[h],l.materialIndex=k[l.daeMaterial]}if(void 0!==c)f(i,c),j.morphTargets=!0,j=new THREE.SkinnedMesh(i,j),j.skeleton=c.skeleton,j.skinController=qa[c.url],j.skinInstanceController=c,j.name="skin_"+sa.length,sa.push(j);
-else if(void 0!==d){h=i;k=d instanceof o?qa[d.url]:d;if(!k||!k.morph)console.log("could not find morph controller!");else{k=k.morph;for(l=0;l<k.targets.length;l++)if(m=ha[k.targets[l]],m.mesh&&m.mesh.primitives&&m.mesh.primitives.length)m=m.mesh.primitives[0].geometry,m.vertices.length===h.vertices.length&&h.morphTargets.push({name:"target_1",vertices:m.vertices});h.morphTargets.push({name:"target_Z",vertices:h.vertices})}j.morphTargets=!0;j=new THREE.Mesh(i,j);j.name="morph_"+La.length;La.push(j)}else j=
-new THREE.Mesh(i,j);1<a.geometries.length?b.add(j):b=j}}for(e=0;e<a.cameras.length;e++)b=lb[a.cameras[e].url],b=new THREE.PerspectiveCamera(b.fov,b.aspect_ratio,b.znear,b.zfar);b.name=a.id||"";b.matrix=a.matrix;e=a.matrix.decompose();b.position=e[0];b.quaternion=e[1];b.useQuaternion=!0;b.scale=e[2];Ea.centerGeometry&&b.geometry&&(e=THREE.GeometryUtils.center(b.geometry),b.quaternion.multiplyVector3(e.multiplySelf(b.scale)),b.position.subSelf(e));for(e=0;e<a.nodes.length;e++)b.add(g(a.nodes[e],a));
-return b}function e(){this.init_from=this.id=""}function h(){this.type=this.name=this.id="";this.morph=this.skin=null}function i(){this.weights=this.targets=this.source=this.method=null}function j(){this.source="";this.bindShapeMatrix=null;this.invBindMatrices=[];this.joints=[];this.weights=[]}function k(){this.name=this.id="";this.nodes=[];this.scene=new THREE.Object3D}function q(){this.sid=this.name=this.id="";this.nodes=[];this.controllers=[];this.transforms=[];this.geometries=[];this.channels=
-[];this.matrix=new THREE.Matrix4}function m(){this.type=this.sid="";this.data=[];this.obj=null}function o(){this.url="";this.skeleton=[];this.instance_material=[]}function p(){this.target=this.symbol=""}function n(){this.url="";this.instance_material=[]}function r(){this.id="";this.mesh=null}function s(a){this.geometry=a.id;this.primitives=[];this.geometry3js=this.vertices=null}function t(){}function w(){this.material="";this.count=0;this.inputs=[];this.vcount=null;this.p=[];this.geometry=new THREE.Geometry}
-function u(){this.source="";this.stride=this.count=0;this.params=[]}function v(){this.input={}}function A(){this.semantic="";this.offset=0;this.source="";this.set=0}function F(a){this.id=a;this.type=null}function B(){this.name=this.id="";this.instance_effect=null}function D(){this.color=new THREE.Color(0);this.color.setRGB(Math.random(),Math.random(),Math.random());this.color.a=1;this.texOpts=this.texcoord=this.texture=null}function H(a,b){this.type=a;this.effect=b;this.material=null}function I(a){this.effect=
-a;this.format=this.init_from=null}function Q(a){this.effect=a;this.mipfilter=this.magfilter=this.minfilter=this.wrap_t=this.wrap_s=this.source=null}function P(){this.name=this.id="";this.sampler=this.surface=this.shader=null}function L(){this.url=""}function K(){this.name=this.id="";this.source={};this.sampler=[];this.channel=[]}function O(a){this.animation=a;this.target=this.source="";this.member=this.arrIndices=this.arrSyntax=this.dotSyntax=this.sid=this.fullSid=null}function y(a){this.id="";this.animation=
-a;this.inputs=[];this.endTime=this.startTime=this.interpolation=this.strideOut=this.output=this.input=null;this.duration=0}function l(a){this.targets=[];this.time=a}function $(){this.name=this.id=""}function C(){this.url=""}function E(a){return"dae"==a?"http://www.collada.org/2005/11/COLLADASchema":null}function S(a){for(var a=ca(a),b=[],c=0,d=a.length;c<d;c++)b.push(parseFloat(a[c]));return b}function R(a){for(var a=ca(a),b=[],c=0,d=a.length;c<d;c++)b.push(parseInt(a[c],10));return b}function ca(a){return 0<
-a.length?a.replace(/^\s+/,"").replace(/\s+$/,"").split(/\s+/):[]}function ka(a,b,c){return a.hasAttribute(b)?parseInt(a.getAttribute(b),10):c}function ia(a,b){if(Ea.convertUpAxis&&Fa!==Ea.upAxis)switch(Wa){case "XtoY":var c=a[0];a[0]=b*a[1];a[1]=c;break;case "XtoZ":c=a[2];a[2]=a[1];a[1]=a[0];a[0]=c;break;case "YtoX":c=a[0];a[0]=a[1];a[1]=b*c;break;case "YtoZ":c=a[1];a[1]=b*a[2];a[2]=c;break;case "ZtoX":c=a[0];a[0]=a[1];a[1]=a[2];a[2]=c;break;case "ZtoY":c=a[1],a[1]=a[2],a[2]=b*c}}function N(a,b){var c=
-[a[b],a[b+1],a[b+2]];ia(c,-1);return new THREE.Vector3(c[0],c[1],c[2])}function aa(a){if(Ea.convertUpAxis){var b=[a[0],a[4],a[8]];ia(b,-1);a[0]=b[0];a[4]=b[1];a[8]=b[2];b=[a[1],a[5],a[9]];ia(b,-1);a[1]=b[0];a[5]=b[1];a[9]=b[2];b=[a[2],a[6],a[10]];ia(b,-1);a[2]=b[0];a[6]=b[1];a[10]=b[2];b=[a[0],a[1],a[2]];ia(b,-1);a[0]=b[0];a[1]=b[1];a[2]=b[2];b=[a[4],a[5],a[6]];ia(b,-1);a[4]=b[0];a[5]=b[1];a[6]=b[2];b=[a[8],a[9],a[10]];ia(b,-1);a[8]=b[0];a[9]=b[1];a[10]=b[2];b=[a[3],a[7],a[11]];ia(b,-1);a[3]=b[0];
-a[7]=b[1];a[11]=b[2]}return new THREE.Matrix4(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15])}var U=null,ba=null,ea,Ta=null,Ja={},Ka={},Ga={},qa={},ha={},ib={},db={},lb={},cb,Za,Sa,La,sa,za=THREE.SmoothShading,Ea={centerGeometry:!1,convertUpAxis:!1,subdivideFaces:!0,upAxis:"Y"},Fa="Y",Wa=null,mb=Math.PI/180;e.prototype.parse=function(a){this.id=a.getAttribute("id");for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];if("init_from"==c.nodeName)this.init_from=
-c.textContent}return this};h.prototype.parse=function(a){this.id=a.getAttribute("id");this.name=a.getAttribute("name");this.type="none";for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];switch(c.nodeName){case "skin":this.skin=(new j).parse(c);this.type=c.nodeName;break;case "morph":this.morph=(new i).parse(c),this.type=c.nodeName}}return this};i.prototype.parse=function(a){var b={},c=[],d;this.method=a.getAttribute("method");this.source=a.getAttribute("source").replace(/^#/,"");for(d=
-0;d<a.childNodes.length;d++){var e=a.childNodes[d];if(1==e.nodeType)switch(e.nodeName){case "source":e=(new F).parse(e);b[e.id]=e;break;case "targets":c=this.parseInputs(e);break;default:console.log(e.nodeName)}}for(d=0;d<c.length;d++)switch(a=c[d],e=b[a.source],a.semantic){case "MORPH_TARGET":this.targets=e.read();break;case "MORPH_WEIGHT":this.weights=e.read()}return this};i.prototype.parseInputs=function(a){for(var b=[],c=0;c<a.childNodes.length;c++){var d=a.childNodes[c];if(1==d.nodeType)switch(d.nodeName){case "input":b.push((new A).parse(d))}}return b};
-j.prototype.parse=function(a){var b={},c,d;this.source=a.getAttribute("source").replace(/^#/,"");this.invBindMatrices=[];this.joints=[];this.weights=[];for(var e=0;e<a.childNodes.length;e++){var f=a.childNodes[e];if(1==f.nodeType)switch(f.nodeName){case "bind_shape_matrix":f=S(f.textContent);this.bindShapeMatrix=aa(f);break;case "source":f=(new F).parse(f);b[f.id]=f;break;case "joints":c=f;break;case "vertex_weights":d=f;break;default:console.log(f.nodeName)}}this.parseJoints(c,b);this.parseWeights(d,
-b);return this};j.prototype.parseJoints=function(a,b){for(var c=0;c<a.childNodes.length;c++){var d=a.childNodes[c];if(1==d.nodeType)switch(d.nodeName){case "input":var d=(new A).parse(d),e=b[d.source];if("JOINT"==d.semantic)this.joints=e.read();else if("INV_BIND_MATRIX"==d.semantic)this.invBindMatrices=e.read()}}};j.prototype.parseWeights=function(a,b){for(var c,d,e=[],f=0;f<a.childNodes.length;f++){var g=a.childNodes[f];if(1==g.nodeType)switch(g.nodeName){case "input":e.push((new A).parse(g));break;
-case "v":c=R(g.textContent);break;case "vcount":d=R(g.textContent)}}for(f=g=0;f<d.length;f++){for(var h=d[f],i=[],j=0;j<h;j++){for(var k={},l=0;l<e.length;l++){var m=e[l],n=c[g+m.offset];switch(m.semantic){case "JOINT":k.joint=n;break;case "WEIGHT":k.weight=b[m.source].data[n]}}i.push(k);g+=e.length}for(j=0;j<i.length;j++)i[j].index=f;this.weights.push(i)}};k.prototype.getChildById=function(a,b){for(var c=0;c<this.nodes.length;c++){var d=this.nodes[c].getChildById(a,b);if(d)return d}return null};
-k.prototype.getChildBySid=function(a,b){for(var c=0;c<this.nodes.length;c++){var d=this.nodes[c].getChildBySid(a,b);if(d)return d}return null};k.prototype.parse=function(a){this.id=a.getAttribute("id");this.name=a.getAttribute("name");this.nodes=[];for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];if(1==c.nodeType)switch(c.nodeName){case "node":this.nodes.push((new q).parse(c))}}return this};q.prototype.getChannelForTransform=function(a){for(var b=0;b<this.channels.length;b++){var c=this.channels[b],
-d=c.target.split("/");d.shift();var e=d.shift(),f=0<=e.indexOf("."),g=0<=e.indexOf("("),h;if(f)d=e.split("."),e=d.shift(),d.shift();else if(g){h=e.split("(");e=h.shift();for(d=0;d<h.length;d++)h[d]=parseInt(h[d].replace(/\)/,""))}if(e==a)return c.info={sid:e,dotSyntax:f,arrSyntax:g,arrIndices:h},c}return null};q.prototype.getChildById=function(a,b){if(this.id==a)return this;if(b)for(var c=0;c<this.nodes.length;c++){var d=this.nodes[c].getChildById(a,b);if(d)return d}return null};q.prototype.getChildBySid=
-function(a,b){if(this.sid==a)return this;if(b)for(var c=0;c<this.nodes.length;c++){var d=this.nodes[c].getChildBySid(a,b);if(d)return d}return null};q.prototype.getTransformBySid=function(a){for(var b=0;b<this.transforms.length;b++)if(this.transforms[b].sid==a)return this.transforms[b];return null};q.prototype.parse=function(a){var b;this.id=a.getAttribute("id");this.sid=a.getAttribute("sid");this.name=a.getAttribute("name");this.type=a.getAttribute("type");this.type="JOINT"==this.type?this.type:
-"NODE";this.nodes=[];this.transforms=[];this.geometries=[];this.cameras=[];this.controllers=[];this.matrix=new THREE.Matrix4;for(var c=0;c<a.childNodes.length;c++)if(b=a.childNodes[c],1==b.nodeType)switch(b.nodeName){case "node":this.nodes.push((new q).parse(b));break;case "instance_camera":this.cameras.push((new C).parse(b));break;case "instance_controller":this.controllers.push((new o).parse(b));break;case "instance_geometry":this.geometries.push((new n).parse(b));break;case "instance_light":break;
-case "instance_node":b=b.getAttribute("url").replace(/^#/,"");(b=U.evaluate(".//dae:library_nodes//dae:node[@id='"+b+"']",U,E,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null).iterateNext())&&this.nodes.push((new q).parse(b));break;case "rotate":case "translate":case "scale":case "matrix":case "lookat":case "skew":this.transforms.push((new m).parse(b));break;case "extra":break;default:console.log(b.nodeName)}a=[];c=1E6;b=-1E6;for(var d in Ga)for(var e=Ga[d],f=0;f<e.channel.length;f++){var g=e.channel[f],
-h=e.sampler[f];d=g.target.split("/")[0];if(d==this.id)h.create(),g.sampler=h,c=Math.min(c,h.startTime),b=Math.max(b,h.endTime),a.push(g)}if(a.length)this.startTime=c,this.endTime=b;if((this.channels=a)&&this.channels.length){d=[];a=[];c=0;for(e=this.channels.length;c<e;c++){b=this.channels[c];f=b.fullSid;g=b.member;if(Ea.convertUpAxis)switch(g){case "X":switch(Wa){case "XtoY":case "XtoZ":case "YtoX":g="Y";break;case "ZtoX":g="Z"}break;case "Y":switch(Wa){case "XtoY":case "YtoX":case "ZtoX":g="X";
-break;case "XtoZ":case "YtoZ":case "ZtoY":g="Z"}break;case "Z":switch(Wa){case "XtoZ":g="X";break;case "YtoZ":case "ZtoX":case "ZtoY":g="Y"}}var h=b.sampler,i=h.input,j=this.getTransformBySid(b.sid);if(j){-1===a.indexOf(f)&&a.push(f);b=0;for(var k=i.length;b<k;b++){var p=i[b],r=h.getData(j.type,b),s;s=null;for(var t=0,u=d.length;t<u&&null==s;t++){var v=d[t];if(v.time===p)s=v;else if(v.time>p)break}if(!s){s=new l(p);t=-1;u=0;for(v=d.length;u<v&&-1==t;u++)d[u].time>=p&&(t=u);p=t;d.splice(-1==p?d.length:
-p,0,s)}s.addTarget(f,j,g,r)}}else console.log('Could not find transform "'+b.sid+'" in node '+this.id)}for(c=0;c<a.length;c++){e=a[c];for(b=0;b<d.length;b++)if(s=d[b],!s.hasTarget(e)){h=d;f=s;j=b;g=e;i=void 0;a:{i=j?j-1:0;for(i=0<=i?i:i+h.length;0<=i;i--)if(k=h[i],k.hasTarget(g)){i=k;break a}i=null}k=void 0;a:{for(j+=1;j<h.length;j++)if(k=h[j],k.hasTarget(g))break a;k=null}if(i&&k){h=(f.time-i.time)/(k.time-i.time);i=i.getTarget(g);j=k.getTarget(g).data;k=i.data;r=void 0;if(k.length){r=[];for(p=0;p<
-k.length;++p)r[p]=k[p]+(j[p]-k[p])*h}else r=k+(j-k)*h;f.addTarget(g,i.transform,i.member,r)}}}this.keys=d;this.sids=a}this.updateMatrix();return this};q.prototype.updateMatrix=function(){this.matrix.identity();for(var a=0;a<this.transforms.length;a++)this.transforms[a].apply(this.matrix)};m.prototype.parse=function(a){this.sid=a.getAttribute("sid");this.type=a.nodeName;this.data=S(a.textContent);this.convert();return this};m.prototype.convert=function(){switch(this.type){case "matrix":this.obj=aa(this.data);
-break;case "rotate":this.angle=this.data[3]*mb;case "translate":ia(this.data,-1);this.obj=new THREE.Vector3(this.data[0],this.data[1],this.data[2]);break;case "scale":ia(this.data,1);this.obj=new THREE.Vector3(this.data[0],this.data[1],this.data[2]);break;default:console.log("Can not convert Transform of type "+this.type)}};m.prototype.apply=function(a){switch(this.type){case "matrix":a.multiplySelf(this.obj);break;case "translate":a.translate(this.obj);break;case "rotate":a.rotateByAxis(this.obj,
-this.angle);break;case "scale":a.scale(this.obj)}};m.prototype.update=function(a,b){switch(this.type){case "matrix":console.log("Currently not handling matrix transform updates");break;case "translate":case "scale":switch(b){case "X":this.obj.x=a;break;case "Y":this.obj.y=a;break;case "Z":this.obj.z=a;break;default:this.obj.x=a[0],this.obj.y=a[1],this.obj.z=a[2]}break;case "rotate":switch(b){case "X":this.obj.x=a;break;case "Y":this.obj.y=a;break;case "Z":this.obj.z=a;break;case "ANGLE":this.angle=
-a*mb;break;default:this.obj.x=a[0],this.obj.y=a[1],this.obj.z=a[2],this.angle=a[3]*mb}}};o.prototype.parse=function(a){this.url=a.getAttribute("url").replace(/^#/,"");this.skeleton=[];this.instance_material=[];for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];if(1==c.nodeType)switch(c.nodeName){case "skeleton":this.skeleton.push(c.textContent.replace(/^#/,""));break;case "bind_material":if(c=U.evaluate(".//dae:instance_material",c,E,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null))for(var d=
-c.iterateNext();d;)this.instance_material.push((new p).parse(d)),d=c.iterateNext()}}return this};p.prototype.parse=function(a){this.symbol=a.getAttribute("symbol");this.target=a.getAttribute("target").replace(/^#/,"");return this};n.prototype.parse=function(a){this.url=a.getAttribute("url").replace(/^#/,"");this.instance_material=[];for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];if(1==c.nodeType&&"bind_material"==c.nodeName){if(a=U.evaluate(".//dae:instance_material",c,E,XPathResult.ORDERED_NODE_ITERATOR_TYPE,
-null))for(b=a.iterateNext();b;)this.instance_material.push((new p).parse(b)),b=a.iterateNext();break}}return this};r.prototype.parse=function(a){this.id=a.getAttribute("id");for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];switch(c.nodeName){case "mesh":this.mesh=(new s(this)).parse(c)}}return this};s.prototype.parse=function(a){this.primitives=[];var b;for(b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];switch(c.nodeName){case "source":var d=c.getAttribute("id");void 0==Ja[d]&&(Ja[d]=
-(new F(d)).parse(c));break;case "vertices":this.vertices=(new v).parse(c);break;case "triangles":this.primitives.push((new w).parse(c));break;case "polygons":console.warn("polygon holes not yet supported!");case "polylist":this.primitives.push((new t).parse(c))}}this.geometry3js=new THREE.Geometry;a=Ja[this.vertices.input.POSITION.source].data;for(b=0;b<a.length;b+=3)this.geometry3js.vertices.push(new THREE.Vertex(N(a,b)));for(b=0;b<this.primitives.length;b++)a=this.primitives[b],a.setVertices(this.vertices),
-this.handlePrimitive(a,this.geometry3js);this.geometry3js.computeCentroids();this.geometry3js.computeFaceNormals();this.geometry3js.calcNormals&&(this.geometry3js.computeVertexNormals(),delete this.geometry3js.calcNormals);this.geometry3js.computeBoundingBox();return this};s.prototype.handlePrimitive=function(a,b){var c=0,d,e,f=a.p,g=a.inputs,h,i,j,k,l=0,m=3,n=0,o=[];for(d=0;d<g.length;d++){h=g[d];var q=h.offset+1,n=n<q?q:n;switch(h.semantic){case "TEXCOORD":o.push(h.set)}}for(;c<f.length;){var p=
-[],r=[],q={},s=[];a.vcount&&(m=a.vcount[l++]);for(d=0;d<m;d++)for(e=0;e<g.length;e++)switch(h=g[e],k=Ja[h.source],i=f[c+d*n+h.offset],j=k.accessor.params.length,j*=i,h.semantic){case "VERTEX":p.push(i);break;case "NORMAL":r.push(N(k.data,j));break;case "TEXCOORD":void 0===q[h.set]&&(q[h.set]=[]);q[h.set].push(new THREE.UV(k.data[j],1-k.data[j+1]));break;case "COLOR":s.push((new THREE.Color).setRGB(k.data[j],k.data[j+1],k.data[j+2]))}e=null;d=[];if(0==r.length)if(h=this.vertices.input.NORMAL){k=Ja[h.source];
-j=k.accessor.params.length;h=0;for(i=p.length;h<i;h++)r.push(N(k.data,p[h]*j))}else b.calcNormals=!0;if(3===m)d.push(new THREE.Face3(p[0],p[1],p[2],r,s.length?s:new THREE.Color));else if(4===m)d.push(new THREE.Face4(p[0],p[1],p[2],p[3],r,s.length?s:new THREE.Color));else if(4<m&&Ea.subdivideFaces){s=s.length?s:new THREE.Color;for(e=1;e<m-1;)d.push(new THREE.Face3(p[0],p[e],p[e+1],[r[0],r[e++],r[e]],s))}if(d.length){h=0;for(i=d.length;h<i;h++){e=d[h];e.daeMaterial=a.material;b.faces.push(e);for(e=
-0;e<o.length;e++)p=q[o[e]],p=4<m?[p[0],p[h+1],p[h+2]]:4===m?[p[0],p[1],p[2],p[3]]:[p[0],p[1],p[2]],b.faceVertexUvs[e]||(b.faceVertexUvs[e]=[]),b.faceVertexUvs[e].push(p)}}else console.log("dropped face with vcount "+m+" for geometry with id: "+b.id);c+=n*m}};t.prototype=new w;t.prototype.constructor=t;w.prototype.setVertices=function(a){for(var b=0;b<this.inputs.length;b++)if(this.inputs[b].source==a.id)this.inputs[b].source=a.input.POSITION.source};w.prototype.parse=function(a){this.inputs=[];this.material=
-a.getAttribute("material");this.count=ka(a,"count",0);for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];switch(c.nodeName){case "input":this.inputs.push((new A).parse(a.childNodes[b]));break;case "vcount":this.vcount=R(c.textContent);break;case "p":this.p=R(c.textContent)}}return this};u.prototype.parse=function(a){this.params=[];this.source=a.getAttribute("source");this.count=ka(a,"count",0);this.stride=ka(a,"stride",0);for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];if("param"==
-c.nodeName){var d={};d.name=c.getAttribute("name");d.type=c.getAttribute("type");this.params.push(d)}}return this};v.prototype.parse=function(a){this.id=a.getAttribute("id");for(var b=0;b<a.childNodes.length;b++)if("input"==a.childNodes[b].nodeName){var c=(new A).parse(a.childNodes[b]);this.input[c.semantic]=c}return this};A.prototype.parse=function(a){this.semantic=a.getAttribute("semantic");this.source=a.getAttribute("source").replace(/^#/,"");this.set=ka(a,"set",-1);this.offset=ka(a,"offset",0);
-if("TEXCOORD"==this.semantic&&0>this.set)this.set=0;return this};F.prototype.parse=function(a){this.id=a.getAttribute("id");for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];switch(c.nodeName){case "bool_array":for(var d=ca(c.textContent),e=[],f=0,g=d.length;f<g;f++)e.push("true"==d[f]||"1"==d[f]?!0:!1);this.data=e;this.type=c.nodeName;break;case "float_array":this.data=S(c.textContent);this.type=c.nodeName;break;case "int_array":this.data=R(c.textContent);this.type=c.nodeName;break;case "IDREF_array":case "Name_array":this.data=
-ca(c.textContent);this.type=c.nodeName;break;case "technique_common":for(d=0;d<c.childNodes.length;d++)if("accessor"==c.childNodes[d].nodeName){this.accessor=(new u).parse(c.childNodes[d]);break}}}return this};F.prototype.read=function(){var a=[],b=this.accessor.params[0];switch(b.type){case "IDREF":case "Name":case "name":case "float":return this.data;case "float4x4":for(b=0;b<this.data.length;b+=16){var c=this.data.slice(b,b+16),c=aa(c);a.push(c)}break;default:console.log("ColladaLoader: Source: Read dont know how to read "+
-b.type+".")}return a};B.prototype.parse=function(a){this.id=a.getAttribute("id");this.name=a.getAttribute("name");for(var b=0;b<a.childNodes.length;b++)if("instance_effect"==a.childNodes[b].nodeName){this.instance_effect=(new L).parse(a.childNodes[b]);break}return this};D.prototype.isColor=function(){return null==this.texture};D.prototype.isTexture=function(){return null!=this.texture};D.prototype.parse=function(a){for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];if(1==c.nodeType)switch(c.nodeName){case "color":c=
-S(c.textContent);this.color=new THREE.Color(0);this.color.setRGB(c[0],c[1],c[2]);this.color.a=c[3];break;case "texture":this.texture=c.getAttribute("texture"),this.texcoord=c.getAttribute("texcoord"),this.texOpts={offsetU:0,offsetV:0,repeatU:1,repeatV:1,wrapU:1,wrapV:1},this.parseTexture(c)}}return this};D.prototype.parseTexture=function(a){if(!a.childNodes)return this;a.childNodes[1]&&"extra"===a.childNodes[1].nodeName&&(a=a.childNodes[1],a.childNodes[1]&&"technique"===a.childNodes[1].nodeName&&
-(a=a.childNodes[1]));for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];switch(c.nodeName){case "offsetU":case "offsetV":case "repeatU":case "repeatV":this.texOpts[c.nodeName]=parseFloat(c.textContent);break;case "wrapU":case "wrapV":this.texOpts[c.nodeName]=parseInt(c.textContent);break;default:this.texOpts[c.nodeName]=c.textContent}}return this};H.prototype.parse=function(a){for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];if(1==c.nodeType)switch(c.nodeName){case "ambient":case "emission":case "diffuse":case "specular":case "transparent":this[c.nodeName]=
-(new D).parse(c);break;case "shininess":case "reflectivity":case "transparency":var d;d=U.evaluate(".//dae:float",c,E,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);for(var e=d.iterateNext(),f=[];e;)f.push(e),e=d.iterateNext();d=f;0<d.length&&(this[c.nodeName]=parseFloat(d[0].textContent))}}this.create();return this};H.prototype.create=function(){var a={},b=void 0!==this.transparency&&1>this.transparency,c;for(c in this)switch(c){case "ambient":case "emission":case "diffuse":case "specular":var d=this[c];
-if(d instanceof D)if(d.isTexture()){if(this.effect.sampler&&this.effect.surface&&this.effect.sampler.source==this.effect.surface.sid){var e=Ka[this.effect.surface.init_from];if(e)e=THREE.ImageUtils.loadTexture(Sa+e.init_from),e.wrapS=d.texOpts.wrapU?THREE.RepeatWrapping:THREE.ClampToEdgeWrapping,e.wrapT=d.texOpts.wrapV?THREE.RepeatWrapping:THREE.ClampToEdgeWrapping,e.offset.x=d.texOpts.offsetU,e.offset.y=d.texOpts.offsetV,e.repeat.x=d.texOpts.repeatU,e.repeat.y=d.texOpts.repeatV,a.map=e}}else"diffuse"==
-c?a.color=d.color.getHex():b||(a[c]=d.color.getHex());break;case "shininess":case "reflectivity":a[c]=this[c];break;case "transparency":if(b)a.transparent=!0,a.opacity=this[c],b=!0}a.shading=za;return this.material=new THREE.MeshLambertMaterial(a)};I.prototype.parse=function(a){for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];if(1==c.nodeType)switch(c.nodeName){case "init_from":this.init_from=c.textContent;break;case "format":this.format=c.textContent;break;default:console.log("unhandled Surface prop: "+
-c.nodeName)}}return this};Q.prototype.parse=function(a){for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];if(1==c.nodeType)switch(c.nodeName){case "source":this.source=c.textContent;break;case "minfilter":this.minfilter=c.textContent;break;case "magfilter":this.magfilter=c.textContent;break;case "mipfilter":this.mipfilter=c.textContent;break;case "wrap_s":this.wrap_s=c.textContent;break;case "wrap_t":this.wrap_t=c.textContent;break;default:console.log("unhandled Sampler2D prop: "+c.nodeName)}}return this};
-P.prototype.create=function(){if(null==this.shader)return null};P.prototype.parse=function(a){this.id=a.getAttribute("id");this.name=a.getAttribute("name");this.shader=null;for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];if(1==c.nodeType)switch(c.nodeName){case "profile_COMMON":this.parseTechnique(this.parseProfileCOMMON(c))}}return this};P.prototype.parseNewparam=function(a){for(var b=a.getAttribute("sid"),c=0;c<a.childNodes.length;c++){var d=a.childNodes[c];if(1==d.nodeType)switch(d.nodeName){case "surface":this.surface=
-(new I(this)).parse(d);this.surface.sid=b;break;case "sampler2D":this.sampler=(new Q(this)).parse(d);this.sampler.sid=b;break;case "extra":break;default:console.log(d.nodeName)}}};P.prototype.parseProfileCOMMON=function(a){for(var b,c=0;c<a.childNodes.length;c++){var d=a.childNodes[c];if(1==d.nodeType)switch(d.nodeName){case "profile_COMMON":this.parseProfileCOMMON(d);break;case "technique":b=d;break;case "newparam":this.parseNewparam(d);break;case "extra":break;default:console.log(d.nodeName)}}return b};
-P.prototype.parseTechnique=function(a){for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];if(1==c.nodeType)switch(c.nodeName){case "constant":case "lambert":case "blinn":case "phong":this.shader=(new H(c.nodeName,this)).parse(c)}}};L.prototype.parse=function(a){this.url=a.getAttribute("url").replace(/^#/,"");return this};K.prototype.parse=function(a){this.id=a.getAttribute("id");this.name=a.getAttribute("name");this.source={};for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];
-if(1==c.nodeType)switch(c.nodeName){case "source":c=(new F).parse(c);this.source[c.id]=c;break;case "sampler":this.sampler.push((new y(this)).parse(c));break;case "channel":this.channel.push((new O(this)).parse(c))}}return this};O.prototype.parse=function(a){this.source=a.getAttribute("source").replace(/^#/,"");this.target=a.getAttribute("target");var b=this.target.split("/");b.shift();var a=b.shift(),c=0<=a.indexOf("."),d=0<=a.indexOf("(");if(c)b=a.split("."),this.sid=b.shift(),this.member=b.shift();
-else if(d){b=a.split("(");this.sid=b.shift();for(var e=0;e<b.length;e++)b[e]=parseInt(b[e].replace(/\)/,""));this.arrIndices=b}else this.sid=a;this.fullSid=a;this.dotSyntax=c;this.arrSyntax=d;return this};y.prototype.parse=function(a){this.id=a.getAttribute("id");this.inputs=[];for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];if(1==c.nodeType)switch(c.nodeName){case "input":this.inputs.push((new A).parse(c))}}return this};y.prototype.create=function(){for(var a=0;a<this.inputs.length;a++){var b=
-this.inputs[a],c=this.animation.source[b.source];switch(b.semantic){case "INPUT":this.input=c.read();break;case "OUTPUT":this.output=c.read();this.strideOut=c.accessor.stride;break;case "INTERPOLATION":this.interpolation=c.read();break;case "IN_TANGENT":break;case "OUT_TANGENT":break;default:console.log(b.semantic)}}this.duration=this.endTime=this.startTime=0;if(this.input.length){this.startTime=1E8;this.endTime=-1E8;for(a=0;a<this.input.length;a++)this.startTime=Math.min(this.startTime,this.input[a]),
-this.endTime=Math.max(this.endTime,this.input[a]);this.duration=this.endTime-this.startTime}};y.prototype.getData=function(a,b){var c;if(1<this.strideOut){c=[];for(var b=b*this.strideOut,d=0;d<this.strideOut;++d)c[d]=this.output[b+d];if(3===this.strideOut)switch(a){case "rotate":case "translate":ia(c,-1);break;case "scale":ia(c,1)}}else c=this.output[b];return c};l.prototype.addTarget=function(a,b,c,d){this.targets.push({sid:a,member:c,transform:b,data:d})};l.prototype.apply=function(a){for(var b=
-0;b<this.targets.length;++b){var c=this.targets[b];(!a||c.sid===a)&&c.transform.update(c.data,c.member)}};l.prototype.getTarget=function(a){for(var b=0;b<this.targets.length;++b)if(this.targets[b].sid===a)return this.targets[b];return null};l.prototype.hasTarget=function(a){for(var b=0;b<this.targets.length;++b)if(this.targets[b].sid===a)return!0;return!1};l.prototype.interpolate=function(a,b){for(var c=0;c<this.targets.length;++c){var d=this.targets[c],e=a.getTarget(d.sid);if(e){var f=(b-this.time)/
-(a.time-this.time),g=e.data,h=d.data;if(0>f||1<f)console.log("Key.interpolate: Warning! Scale out of bounds:"+f),f=0>f?0:1;if(h.length)for(var e=[],i=0;i<h.length;++i)e[i]=h[i]+(g[i]-h[i])*f;else e=h+(g-h)*f}else e=d.data;d.transform.update(e,d.member)}};$.prototype.parse=function(a){this.id=a.getAttribute("id");this.name=a.getAttribute("name");for(var b=0;b<a.childNodes.length;b++){var c=a.childNodes[b];if(1==c.nodeType)switch(c.nodeName){case "optics":this.parseOptics(c)}}return this};$.prototype.parseOptics=
-function(a){for(var b=0;b<a.childNodes.length;b++)if("technique_common"==a.childNodes[b].nodeName)for(var c=a.childNodes[b],d=0;d<c.childNodes.length;d++)if("perspective"==c.childNodes[d].nodeName)for(var e=c.childNodes[d],f=0;f<e.childNodes.length;f++){var g=e.childNodes[f];switch(g.nodeName){case "xfov":this.fov=g.textContent;break;case "znear":this.znear=0.4;break;case "zfar":this.zfar=1E15;break;case "aspect_ratio":this.aspect_ratio=g.textContent}}return this};C.prototype.parse=function(a){this.url=
-a.getAttribute("url").replace(/^#/,"");return this};return{load:function(b,c,d){var e=0;if(document.implementation&&document.implementation.createDocument){var f=new XMLHttpRequest;f.overrideMimeType&&f.overrideMimeType("text/xml");f.onreadystatechange=function(){if(4==f.readyState){if(0==f.status||200==f.status)f.responseXML?(Ta=c,a(f.responseXML,void 0,b)):console.error("ColladaLoader: Empty or non-existing file ("+b+")")}else 3==f.readyState&&d&&(0==e&&(e=f.getResponseHeader("Content-Length")),
-d({total:e,loaded:f.responseText.length}))};f.open("GET",b,!0);f.send(null)}else alert("Don't know how to parse XML!")},parse:a,setPreferredShading:function(a){za=a},applySkin:f,geometries:ha,options:Ea}};THREE.JSONLoader=function(a){THREE.Loader.call(this,a)};THREE.JSONLoader.prototype=new THREE.Loader;THREE.JSONLoader.prototype.constructor=THREE.JSONLoader;THREE.JSONLoader.prototype.supr=THREE.Loader.prototype;
-THREE.JSONLoader.prototype.load=function(a,b,c){c=c?c:this.extractUrlBase(a);this.onLoadStart();this.loadAjaxJSON(this,a,b,c)};
-THREE.JSONLoader.prototype.loadAjaxJSON=function(a,b,c,d,f){var g=new XMLHttpRequest,e=0;g.onreadystatechange=function(){if(g.readyState===g.DONE)if(200===g.status||0===g.status){if(g.responseText){var h=JSON.parse(g.responseText);a.createModel(h,c,d)}else console.warn("THREE.JSONLoader: ["+b+"] seems to be unreachable or file there is empty");a.onLoadComplete()}else console.error("THREE.JSONLoader: Couldn't load ["+b+"] ["+g.status+"]");else g.readyState===g.LOADING?f&&(0===e&&(e=g.getResponseHeader("Content-Length")),
-f({total:e,loaded:g.responseText.length})):g.readyState===g.HEADERS_RECEIVED&&(e=g.getResponseHeader("Content-Length"))};g.open("GET",b,!0);g.overrideMimeType&&g.overrideMimeType("text/plain; charset=x-user-defined");g.setRequestHeader("Content-Type","text/plain");g.send(null)};
-THREE.JSONLoader.prototype.createModel=function(a,b,c){var d=new THREE.Geometry,f=void 0!==a.scale?1/a.scale:1;this.initMaterials(d,a.materials,c);(function(b){var c,f,i,j,k,q,m,o,p,n,r,s,t,w,u=a.faces;q=a.vertices;var v=a.normals,A=a.colors,F=0;for(c=0;c<a.uvs.length;c++)a.uvs[c].length&&F++;for(c=0;c<F;c++)d.faceUvs[c]=[],d.faceVertexUvs[c]=[];j=0;for(k=q.length;j<k;)m=new THREE.Vertex,m.position.x=q[j++]*b,m.position.y=q[j++]*b,m.position.z=q[j++]*b,d.vertices.push(m);j=0;for(k=u.length;j<k;){b=
-u[j++];q=b&1;i=b&2;c=b&4;f=b&8;o=b&16;m=b&32;n=b&64;b&=128;q?(r=new THREE.Face4,r.a=u[j++],r.b=u[j++],r.c=u[j++],r.d=u[j++],q=4):(r=new THREE.Face3,r.a=u[j++],r.b=u[j++],r.c=u[j++],q=3);if(i)i=u[j++],r.materialIndex=i;i=d.faces.length;if(c)for(c=0;c<F;c++)s=a.uvs[c],p=u[j++],w=s[2*p],p=s[2*p+1],d.faceUvs[c][i]=new THREE.UV(w,p);if(f)for(c=0;c<F;c++){s=a.uvs[c];t=[];for(f=0;f<q;f++)p=u[j++],w=s[2*p],p=s[2*p+1],t[f]=new THREE.UV(w,p);d.faceVertexUvs[c][i]=t}if(o)o=3*u[j++],f=new THREE.Vector3,f.x=v[o++],
-f.y=v[o++],f.z=v[o],r.normal=f;if(m)for(c=0;c<q;c++)o=3*u[j++],f=new THREE.Vector3,f.x=v[o++],f.y=v[o++],f.z=v[o],r.vertexNormals.push(f);if(n)m=u[j++],m=new THREE.Color(A[m]),r.color=m;if(b)for(c=0;c<q;c++)m=u[j++],m=new THREE.Color(A[m]),r.vertexColors.push(m);d.faces.push(r)}})(f);(function(){var b,c,f,i;if(a.skinWeights)for(b=0,c=a.skinWeights.length;b<c;b+=2)f=a.skinWeights[b],i=a.skinWeights[b+1],d.skinWeights.push(new THREE.Vector4(f,i,0,0));if(a.skinIndices)for(b=0,c=a.skinIndices.length;b<
-c;b+=2)f=a.skinIndices[b],i=a.skinIndices[b+1],d.skinIndices.push(new THREE.Vector4(f,i,0,0));d.bones=a.bones;d.animation=a.animation})();(function(b){if(void 0!==a.morphTargets){var c,f,i,j,k,q,m,o,p;for(c=0,f=a.morphTargets.length;c<f;c++){d.morphTargets[c]={};d.morphTargets[c].name=a.morphTargets[c].name;d.morphTargets[c].vertices=[];o=d.morphTargets[c].vertices;p=a.morphTargets[c].vertices;for(i=0,j=p.length;i<j;i+=3)k=p[i]*b,q=p[i+1]*b,m=p[i+2]*b,o.push(new THREE.Vertex(new THREE.Vector3(k,q,
-m)))}}if(void 0!==a.morphColors)for(c=0,f=a.morphColors.length;c<f;c++){d.morphColors[c]={};d.morphColors[c].name=a.morphColors[c].name;d.morphColors[c].colors=[];j=d.morphColors[c].colors;k=a.morphColors[c].colors;for(b=0,i=k.length;b<i;b+=3)q=new THREE.Color(16755200),q.setRGB(k[b],k[b+1],k[b+2]),j.push(q)}})(f);d.computeCentroids();d.computeFaceNormals();this.hasNormals(d)&&d.computeTangents();b(d)};
-THREE.SceneLoader=function(){this.onLoadStart=function(){};this.onLoadProgress=function(){};this.onLoadComplete=function(){};this.callbackSync=function(){};this.callbackProgress=function(){}};THREE.SceneLoader.prototype.constructor=THREE.SceneLoader;
-THREE.SceneLoader.prototype.load=function(a,b){var c=this,d=new XMLHttpRequest;d.onreadystatechange=function(){if(4==d.readyState)if(200==d.status||0==d.status){var f=JSON.parse(d.responseText);c.createScene(f,b,a)}else console.error("THREE.SceneLoader: Couldn't load ["+a+"] ["+d.status+"]")};d.open("GET",a,!0);d.overrideMimeType&&d.overrideMimeType("text/plain; charset=x-user-defined");d.setRequestHeader("Content-Type","text/plain");d.send(null)};
-THREE.SceneLoader.prototype.createScene=function(a,b,c){function d(a,b){return"relativeToHTML"==b?a:j+"/"+a}function f(){var a;for(m in L.objects)if(!C.objects[m])if(s=L.objects[m],void 0!==s.geometry){if(H=C.geometries[s.geometry]){a=!1;I=C.materials[s.materials[0]];(a=I instanceof THREE.ShaderMaterial)&&H.computeTangents();u=s.position;v=s.rotation;A=s.quaternion;F=s.scale;A=0;0==s.materials.length&&(I=new THREE.MeshFaceMaterial);1<s.materials.length&&(I=new THREE.MeshFaceMaterial);a=new THREE.Mesh(H,
-I);a.name=m;a.position.set(u[0],u[1],u[2]);A?(a.quaternion.set(A[0],A[1],A[2],A[3]),a.useQuaternion=!0):a.rotation.set(v[0],v[1],v[2]);a.scale.set(F[0],F[1],F[2]);a.visible=s.visible;C.scene.add(a);C.objects[m]=a;if(s.castsShadow){var b=new THREE.ShadowVolume(H);C.scene.add(b);b.position=a.position;b.rotation=a.rotation;b.scale=a.scale}s.trigger&&"none"!=s.trigger.toLowerCase()&&(b={type:s.trigger,object:s},C.triggers[a.name]=b)}}else u=s.position,v=s.rotation,A=s.quaternion,F=s.scale,A=0,a=new THREE.Object3D,
-a.name=m,a.position.set(u[0],u[1],u[2]),A?(a.quaternion.set(A[0],A[1],A[2],A[3]),a.useQuaternion=!0):a.rotation.set(v[0],v[1],v[2]),a.scale.set(F[0],F[1],F[2]),a.visible=void 0!==s.visible?s.visible:!1,C.scene.add(a),C.objects[m]=a,C.empties[m]=a,s.trigger&&"none"!=s.trigger.toLowerCase()&&(b={type:s.trigger,object:s},C.triggers[a.name]=b)}function g(a){return function(b){C.geometries[a]=b;f();O-=1;i.onLoadComplete();h()}}function e(a){return function(b){C.geometries[a]=b}}function h(){i.callbackProgress({totalModels:l,
-totalTextures:$,loadedModels:l-O,loadedTextures:$-y},C);i.onLoadProgress();0==O&&0==y&&b(C)}var i=this,j=THREE.Loader.prototype.extractUrlBase(c),k,q,m,o,p,n,r,s,t,w,u,v,A,F,B,D,H,I,Q,P,L,K,O,y,l,$,C;L=a;c=new THREE.BinaryLoader;K=new THREE.JSONLoader;y=O=0;C={scene:new THREE.Scene,geometries:{},materials:{},textures:{},objects:{},cameras:{},lights:{},fogs:{},triggers:{},empties:{}};if(L.transform)a=L.transform.position,t=L.transform.rotation,B=L.transform.scale,a&&C.scene.position.set(a[0],a[1],
-a[2]),t&&C.scene.rotation.set(t[0],t[1],t[2]),B&&C.scene.scale.set(B[0],B[1],B[2]),(a||t||B)&&C.scene.updateMatrix();a=function(){y-=1;h();i.onLoadComplete()};for(p in L.cameras)B=L.cameras[p],"perspective"==B.type?Q=new THREE.PerspectiveCamera(B.fov,B.aspect,B.near,B.far):"ortho"==B.type&&(Q=new THREE.OrthographicCamera(B.left,B.right,B.top,B.bottom,B.near,B.far)),u=B.position,t=B.target,B=B.up,Q.position.set(u[0],u[1],u[2]),Q.target=new THREE.Vector3(t[0],t[1],t[2]),B&&Q.up.set(B[0],B[1],B[2]),
-C.cameras[p]=Q;for(o in L.lights)t=L.lights[o],p=void 0!==t.color?t.color:16777215,Q=void 0!==t.intensity?t.intensity:1,"directional"==t.type?(u=t.direction,w=new THREE.DirectionalLight(p,Q),w.position.set(u[0],u[1],u[2]),w.position.normalize()):"point"==t.type?(u=t.position,w=t.distance,w=new THREE.PointLight(p,Q,w),w.position.set(u[0],u[1],u[2])):"ambient"==t.type&&(w=new THREE.AmbientLight(p)),C.scene.add(w),C.lights[o]=w;for(n in L.fogs)o=L.fogs[n],"linear"==o.type?P=new THREE.Fog(0,o.near,o.far):
-"exp2"==o.type&&(P=new THREE.FogExp2(0,o.density)),B=o.color,P.color.setRGB(B[0],B[1],B[2]),C.fogs[n]=P;if(C.cameras&&L.defaults.camera)C.currentCamera=C.cameras[L.defaults.camera];if(C.fogs&&L.defaults.fog)C.scene.fog=C.fogs[L.defaults.fog];B=L.defaults.bgcolor;C.bgColor=new THREE.Color;C.bgColor.setRGB(B[0],B[1],B[2]);C.bgColorAlpha=L.defaults.bgalpha;for(k in L.geometries)if(n=L.geometries[k],"bin_mesh"==n.type||"ascii_mesh"==n.type)O+=1,i.onLoadStart();l=O;for(k in L.geometries)if(n=L.geometries[k],
-"cube"==n.type)H=new THREE.CubeGeometry(n.width,n.height,n.depth,n.segmentsWidth,n.segmentsHeight,n.segmentsDepth,null,n.flipped,n.sides),C.geometries[k]=H;else if("plane"==n.type)H=new THREE.PlaneGeometry(n.width,n.height,n.segmentsWidth,n.segmentsHeight),C.geometries[k]=H;else if("sphere"==n.type)H=new THREE.SphereGeometry(n.radius,n.segmentsWidth,n.segmentsHeight),C.geometries[k]=H;else if("cylinder"==n.type)H=new THREE.CylinderGeometry(n.topRad,n.botRad,n.height,n.radSegs,n.heightSegs),C.geometries[k]=
-H;else if("torus"==n.type)H=new THREE.TorusGeometry(n.radius,n.tube,n.segmentsR,n.segmentsT),C.geometries[k]=H;else if("icosahedron"==n.type)H=new THREE.IcosahedronGeometry(n.radius,n.subdivisions),C.geometries[k]=H;else if("bin_mesh"==n.type)c.load(d(n.url,L.urlBaseType),g(k));else if("ascii_mesh"==n.type)K.load(d(n.url,L.urlBaseType),g(k));else if("embedded_mesh"==n.type)n=L.embeds[n.id],n.metadata=L.metadata,n&&K.createModel(n,e(k),"");for(r in L.textures)if(k=L.textures[r],k.url instanceof Array){y+=
-k.url.length;for(n=0;n<k.url.length;n++)i.onLoadStart()}else y+=1,i.onLoadStart();$=y;for(r in L.textures){k=L.textures[r];if(void 0!=k.mapping&&void 0!=THREE[k.mapping])k.mapping=new THREE[k.mapping];if(k.url instanceof Array){n=[];for(P=0;P<k.url.length;P++)n[P]=d(k.url[P],L.urlBaseType);n=THREE.ImageUtils.loadTextureCube(n,k.mapping,a)}else{n=THREE.ImageUtils.loadTexture(d(k.url,L.urlBaseType),k.mapping,a);if(void 0!=THREE[k.minFilter])n.minFilter=THREE[k.minFilter];if(void 0!=THREE[k.magFilter])n.magFilter=
-THREE[k.magFilter];if(k.repeat){n.repeat.set(k.repeat[0],k.repeat[1]);if(1!=k.repeat[0])n.wrapS=THREE.RepeatWrapping;if(1!=k.repeat[1])n.wrapT=THREE.RepeatWrapping}k.offset&&n.offset.set(k.offset[0],k.offset[1]);if(k.wrap){P={repeat:THREE.RepeatWrapping,mirror:THREE.MirroredRepeatWrapping};if(void 0!==P[k.wrap[0]])n.wrapS=P[k.wrap[0]];if(void 0!==P[k.wrap[1]])n.wrapT=P[k.wrap[1]]}}C.textures[r]=n}for(q in L.materials){r=L.materials[q];for(D in r.parameters)if("envMap"==D||"map"==D||"lightMap"==D)r.parameters[D]=
-C.textures[r.parameters[D]];else if("shading"==D)r.parameters[D]="flat"==r.parameters[D]?THREE.FlatShading:THREE.SmoothShading;else if("blending"==D)r.parameters[D]=THREE[r.parameters[D]]?THREE[r.parameters[D]]:THREE.NormalBlending;else if("combine"==D)r.parameters[D]="MixOperation"==r.parameters[D]?THREE.MixOperation:THREE.MultiplyOperation;else if("vertexColors"==D)if("face"==r.parameters[D])r.parameters[D]=THREE.FaceColors;else if(r.parameters[D])r.parameters[D]=THREE.VertexColors;if(void 0!==
-r.parameters.opacity&&1>r.parameters.opacity)r.parameters.transparent=!0;if(r.parameters.normalMap){a=THREE.ShaderUtils.lib.normal;k=THREE.UniformsUtils.clone(a.uniforms);n=r.parameters.color;P=r.parameters.specular;c=r.parameters.ambient;K=r.parameters.shininess;k.tNormal.texture=C.textures[r.parameters.normalMap];if(r.parameters.normalMapFactor)k.uNormalScale.value=r.parameters.normalMapFactor;if(r.parameters.map)k.tDiffuse.texture=r.parameters.map,k.enableDiffuse.value=!0;if(r.parameters.lightMap)k.tAO.texture=
-r.parameters.lightMap,k.enableAO.value=!0;if(r.parameters.specularMap)k.tSpecular.texture=C.textures[r.parameters.specularMap],k.enableSpecular.value=!0;k.uDiffuseColor.value.setHex(n);k.uSpecularColor.value.setHex(P);k.uAmbientColor.value.setHex(c);k.uShininess.value=K;if(r.parameters.opacity)k.uOpacity.value=r.parameters.opacity;I=new THREE.ShaderMaterial({fragmentShader:a.fragmentShader,vertexShader:a.vertexShader,uniforms:k,lights:!0,fog:!0})}else I=new THREE[r.type](r.parameters);C.materials[q]=
-I}f();i.callbackSync(C);h()};THREE.UTF8Loader=function(){};
-THREE.UTF8Loader.prototype.load=function(a,b,c){var d=new XMLHttpRequest,f=void 0!==c.scale?c.scale:1,g=void 0!==c.offsetX?c.offsetX:0,e=void 0!==c.offsetY?c.offsetY:0,h=void 0!==c.offsetZ?c.offsetZ:0;d.onreadystatechange=function(){4==d.readyState?200==d.status||0==d.status?THREE.UTF8Loader.prototype.createModel(d.responseText,b,f,g,e,h):console.error("THREE.UTF8Loader: Couldn't load ["+a+"] ["+d.status+"]"):3!=d.readyState&&2==d.readyState&&d.getResponseHeader("Content-Length")};d.open("GET",a,
-!0);d.send(null)};THREE.UTF8Loader.prototype.decompressMesh=function(a){var b=a.charCodeAt(0);57344<=b&&(b-=2048);b++;for(var c=new Float32Array(8*b),d=1,f=0;8>f;f++){for(var g=0,e=0;e<b;++e){var h=a.charCodeAt(e+d),g=g+(h>>1^-(h&1));c[8*e+f]=g}d+=b}b=a.length-d;g=new Uint16Array(b);for(f=e=0;f<b;f++)h=a.charCodeAt(f+d),g[f]=e-h,0==h&&e++;return[c,g]};
-THREE.UTF8Loader.prototype.createModel=function(a,b,c,d,f,g){var e=function(){var b=this;b.materials=[];THREE.Geometry.call(this);var e=THREE.UTF8Loader.prototype.decompressMesh(a),j=[],k=[];(function(a,e,i){for(var j,k,r,s=a.length;i<s;i+=e)j=a[i],k=a[i+1],r=a[i+2],j=j/16383*c,k=k/16383*c,r=r/16383*c,j+=d,k+=f,r+=g,b.vertices.push(new THREE.Vertex(new THREE.Vector3(j,k,r)))})(e[0],8,0);(function(a,b,c){for(var d,e,f=a.length;c<f;c+=b)d=a[c],e=a[c+1],d/=1023,e/=1023,k.push(d,1-e)})(e[0],8,3);(function(a,
-b,c){for(var d,e,f,g=a.length;c<g;c+=b)d=a[c],e=a[c+1],f=a[c+2],d=(d-512)/511,e=(e-512)/511,f=(f-512)/511,j.push(d,e,f)})(e[0],8,5);(function(a){var c,d,e,f,g,i,t,w,u,v=a.length;for(c=0;c<v;c+=3){d=a[c];e=a[c+1];f=a[c+2];g=b;w=d;u=e;i=f;var A=j[3*e],F=j[3*e+1],B=j[3*e+2],D=j[3*f],H=j[3*f+1],I=j[3*f+2];t=new THREE.Vector3(j[3*d],j[3*d+1],j[3*d+2]);A=new THREE.Vector3(A,F,B);D=new THREE.Vector3(D,H,I);g.faces.push(new THREE.Face3(w,u,i,[t,A,D],null,0));g=k[2*d];d=k[2*d+1];i=k[2*e];t=k[2*e+1];w=k[2*
-f];u=k[2*f+1];f=b.faceVertexUvs[0];e=i;i=t;t=[];t.push(new THREE.UV(g,d));t.push(new THREE.UV(e,i));t.push(new THREE.UV(w,u));f.push(t)}})(e[1]);this.computeCentroids();this.computeFaceNormals()};e.prototype=new THREE.Geometry;e.prototype.constructor=e;b(new e)};
-THREE.MarchingCubes=function(a,b){THREE.Object3D.call(this);this.material=b;this.init=function(a){this.resolution=a;this.isolation=80;this.size=a;this.size2=this.size*this.size;this.size3=this.size2*this.size;this.halfsize=this.size/2;this.delta=2/this.size;this.yd=this.size;this.zd=this.size2;this.field=new Float32Array(this.size3);this.normal_cache=new Float32Array(3*this.size3);this.vlist=new Float32Array(36);this.nlist=new Float32Array(36);this.firstDraw=!0;this.maxCount=4096;this.count=0;this.hasNormal=
-this.hasPos=!1;this.positionArray=new Float32Array(3*this.maxCount);this.normalArray=new Float32Array(3*this.maxCount)};this.lerp=function(a,b,f){return a+(b-a)*f};this.VIntX=function(a,b,f,g,e,h,i,j,k,q){e=(e-k)/(q-k);k=this.normal_cache;b[g]=h+e*this.delta;b[g+1]=i;b[g+2]=j;f[g]=this.lerp(k[a],k[a+3],e);f[g+1]=this.lerp(k[a+1],k[a+4],e);f[g+2]=this.lerp(k[a+2],k[a+5],e)};this.VIntY=function(a,b,f,g,e,h,i,j,k,q){e=(e-k)/(q-k);k=this.normal_cache;b[g]=h;b[g+1]=i+e*this.delta;b[g+2]=j;b=a+3*this.yd;
-f[g]=this.lerp(k[a],k[b],e);f[g+1]=this.lerp(k[a+1],k[b+1],e);f[g+2]=this.lerp(k[a+2],k[b+2],e)};this.VIntZ=function(a,b,f,g,e,h,i,j,k,q){e=(e-k)/(q-k);k=this.normal_cache;b[g]=h;b[g+1]=i;b[g+2]=j+e*this.delta;b=a+3*this.zd;f[g]=this.lerp(k[a],k[b],e);f[g+1]=this.lerp(k[a+1],k[b+1],e);f[g+2]=this.lerp(k[a+2],k[b+2],e)};this.compNorm=function(a){var b=3*a;0===this.normal_cache[b]&&(this.normal_cache[b]=this.field[a-1]-this.field[a+1],this.normal_cache[b+1]=this.field[a-this.yd]-this.field[a+this.yd],
-this.normal_cache[b+2]=this.field[a-this.zd]-this.field[a+this.zd])};this.polygonize=function(a,b,f,g,e,h){var i=g+1,j=g+this.yd,k=g+this.zd,q=i+this.yd,m=i+this.zd,o=g+this.yd+this.zd,p=i+this.yd+this.zd,n=0,r=this.field[g],s=this.field[i],t=this.field[j],w=this.field[q],u=this.field[k],v=this.field[m],A=this.field[o],F=this.field[p];r<e&&(n|=1);s<e&&(n|=2);t<e&&(n|=8);w<e&&(n|=4);u<e&&(n|=16);v<e&&(n|=32);A<e&&(n|=128);F<e&&(n|=64);var B=THREE.edgeTable[n];if(0===B)return 0;var D=this.delta,H=a+
-D,I=b+D,D=f+D;B&1&&(this.compNorm(g),this.compNorm(i),this.VIntX(3*g,this.vlist,this.nlist,0,e,a,b,f,r,s));B&2&&(this.compNorm(i),this.compNorm(q),this.VIntY(3*i,this.vlist,this.nlist,3,e,H,b,f,s,w));B&4&&(this.compNorm(j),this.compNorm(q),this.VIntX(3*j,this.vlist,this.nlist,6,e,a,I,f,t,w));B&8&&(this.compNorm(g),this.compNorm(j),this.VIntY(3*g,this.vlist,this.nlist,9,e,a,b,f,r,t));B&16&&(this.compNorm(k),this.compNorm(m),this.VIntX(3*k,this.vlist,this.nlist,12,e,a,b,D,u,v));B&32&&(this.compNorm(m),
-this.compNorm(p),this.VIntY(3*m,this.vlist,this.nlist,15,e,H,b,D,v,F));B&64&&(this.compNorm(o),this.compNorm(p),this.VIntX(3*o,this.vlist,this.nlist,18,e,a,I,D,A,F));B&128&&(this.compNorm(k),this.compNorm(o),this.VIntY(3*k,this.vlist,this.nlist,21,e,a,b,D,u,A));B&256&&(this.compNorm(g),this.compNorm(k),this.VIntZ(3*g,this.vlist,this.nlist,24,e,a,b,f,r,u));B&512&&(this.compNorm(i),this.compNorm(m),this.VIntZ(3*i,this.vlist,this.nlist,27,e,H,b,f,s,v));B&1024&&(this.compNorm(q),this.compNorm(p),this.VIntZ(3*
-q,this.vlist,this.nlist,30,e,H,I,f,w,F));B&2048&&(this.compNorm(j),this.compNorm(o),this.VIntZ(3*j,this.vlist,this.nlist,33,e,a,I,f,t,A));n<<=4;for(e=g=0;-1!=THREE.triTable[n+e];)a=n+e,b=a+1,f=a+2,this.posnormtriv(this.vlist,this.nlist,3*THREE.triTable[a],3*THREE.triTable[b],3*THREE.triTable[f],h),e+=3,g++;return g};this.posnormtriv=function(a,b,f,g,e,h){var i=3*this.count;this.positionArray[i]=a[f];this.positionArray[i+1]=a[f+1];this.positionArray[i+2]=a[f+2];this.positionArray[i+3]=a[g];this.positionArray[i+
-4]=a[g+1];this.positionArray[i+5]=a[g+2];this.positionArray[i+6]=a[e];this.positionArray[i+7]=a[e+1];this.positionArray[i+8]=a[e+2];this.normalArray[i]=b[f];this.normalArray[i+1]=b[f+1];this.normalArray[i+2]=b[f+2];this.normalArray[i+3]=b[g];this.normalArray[i+4]=b[g+1];this.normalArray[i+5]=b[g+2];this.normalArray[i+6]=b[e];this.normalArray[i+7]=b[e+1];this.normalArray[i+8]=b[e+2];this.hasNormal=this.hasPos=!0;this.count+=3;this.count>=this.maxCount-3&&h(this)};this.begin=function(){this.count=0;
-this.hasNormal=this.hasPos=!1};this.end=function(a){if(0!==this.count){for(var b=3*this.count;b<this.positionArray.length;b++)this.positionArray[b]=0;a(this)}};this.addBall=function(a,b,f,g,e){var h=this.size*Math.sqrt(g/e),i=f*this.size,j=b*this.size,k=a*this.size,q=Math.floor(i-h);1>q&&(q=1);i=Math.floor(i+h);i>this.size-1&&(i=this.size-1);var m=Math.floor(j-h);1>m&&(m=1);j=Math.floor(j+h);j>this.size-1&&(j=this.size-1);var o=Math.floor(k-h);1>o&&(o=1);h=Math.floor(k+h);h>this.size-1&&(h=this.size-
-1);for(var p,n,r,s,t,w,u,k=q;k<i;k++){r=this.size2*k;t=k/this.size-f;w=t*t;for(q=m;q<j;q++){n=r+this.size*q;p=q/this.size-b;u=p*p;for(p=o;p<h;p++)s=p/this.size-a,s=g/(1.0E-6+s*s+u+w)-e,0<s&&(this.field[n+p]+=s)}}};this.addPlaneX=function(a,b){var f,g,e,h,i,j=this.size,k=this.yd,q=this.zd,m=this.field,o=j*Math.sqrt(a/b);o>j&&(o=j);for(f=0;f<o;f++)if(g=f/j,g*=g,h=a/(1.0E-4+g)-b,0<h)for(g=0;g<j;g++){i=f+g*k;for(e=0;e<j;e++)m[q*e+i]+=h}};this.addPlaneY=function(a,b){var f,g,e,h,i,j,k=this.size,q=this.yd,
-m=this.zd,o=this.field,p=k*Math.sqrt(a/b);p>k&&(p=k);for(g=0;g<p;g++)if(f=g/k,f*=f,h=a/(1.0E-4+f)-b,0<h){i=g*q;for(f=0;f<k;f++){j=i+f;for(e=0;e<k;e++)o[m*e+j]+=h}}};this.addPlaneZ=function(a,b){var f,g,e,h,i,j,k=this.size,q=this.yd,m=this.zd,o=this.field,p=k*Math.sqrt(a/b);p>k&&(p=k);for(e=0;e<p;e++)if(f=e/k,f*=f,h=a/(1.0E-4+f)-b,0<h){i=m*e;for(g=0;g<k;g++){j=i+g*q;for(f=0;f<k;f++)o[j+f]+=h}}};this.reset=function(){var a;for(a=0;a<this.size3;a++)this.normal_cache[3*a]=0,this.field[a]=0};this.render=
-function(a){this.begin();var b,f,g,e,h,i,j,k,q,m=this.size-2;for(e=1;e<m;e++){q=this.size2*e;j=(e-this.halfsize)/this.halfsize;for(g=1;g<m;g++){k=q+this.size*g;i=(g-this.halfsize)/this.halfsize;for(f=1;f<m;f++)h=(f-this.halfsize)/this.halfsize,b=k+f,this.polygonize(h,i,j,b,this.isolation,a)}}this.end(a)};this.generateGeometry=function(){var a=0,b=new THREE.Geometry,f=[];this.render(function(g){var e,h,i,j,k,q,m,o;for(e=0;e<g.count;e++)m=3*e,k=m+1,o=m+2,h=g.positionArray[m],i=g.positionArray[k],j=
-g.positionArray[o],q=new THREE.Vector3(h,i,j),h=g.normalArray[m],i=g.normalArray[k],j=g.normalArray[o],m=new THREE.Vector3(h,i,j),m.normalize(),k=new THREE.Vertex(q),b.vertices.push(k),f.push(m);q=g.count/3;for(e=0;e<q;e++)m=3*(a+e),k=m+1,o=m+2,h=f[m],i=f[k],j=f[o],m=new THREE.Face3(m,k,o,[h,i,j]),b.faces.push(m);a+=q;g.count=0});return b};this.init(a)};THREE.MarchingCubes.prototype=new THREE.Object3D;THREE.MarchingCubes.prototype.constructor=THREE.MarchingCubes;
-THREE.edgeTable=new Int32Array([0,265,515,778,1030,1295,1541,1804,2060,2309,2575,2822,3082,3331,3593,3840,400,153,915,666,1430,1183,1941,1692,2460,2197,2975,2710,3482,3219,3993,3728,560,825,51,314,1590,1855,1077,1340,2620,2869,2111,2358,3642,3891,3129,3376,928,681,419,170,1958,1711,1445,1196,2988,2725,2479,2214,4010,3747,3497,3232,1120,1385,1635,1898,102,367,613,876,3180,3429,3695,3942,2154,2403,2665,2912,1520,1273,2035,1786,502,255,1013,764,3580,3317,4095,3830,2554,2291,3065,2800,1616,1881,1107,
-1370,598,863,85,348,3676,3925,3167,3414,2650,2899,2137,2384,1984,1737,1475,1226,966,719,453,204,4044,3781,3535,3270,3018,2755,2505,2240,2240,2505,2755,3018,3270,3535,3781,4044,204,453,719,966,1226,1475,1737,1984,2384,2137,2899,2650,3414,3167,3925,3676,348,85,863,598,1370,1107,1881,1616,2800,3065,2291,2554,3830,4095,3317,3580,764,1013,255,502,1786,2035,1273,1520,2912,2665,2403,2154,3942,3695,3429,3180,876,613,367,102,1898,1635,1385,1120,3232,3497,3747,4010,2214,2479,2725,2988,1196,1445,1711,1958,170,
-419,681,928,3376,3129,3891,3642,2358,2111,2869,2620,1340,1077,1855,1590,314,51,825,560,3728,3993,3219,3482,2710,2975,2197,2460,1692,1941,1183,1430,666,915,153,400,3840,3593,3331,3082,2822,2575,2309,2060,1804,1541,1295,1030,778,515,265,0]);
-THREE.triTable=new Int32Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,8,3,9,8,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,1,2,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,2,10,0,2,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,8,3,2,10,8,10,9,8,-1,-1,-1,-1,-1,-1,-1,3,11,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,11,2,8,11,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,9,0,2,3,11,-1,-1,-1,-1,-1,
--1,-1,-1,-1,-1,1,11,2,1,9,11,9,8,11,-1,-1,-1,-1,-1,-1,-1,3,10,1,11,10,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,10,1,0,8,10,8,11,10,-1,-1,-1,-1,-1,-1,-1,3,9,0,3,11,9,11,10,9,-1,-1,-1,-1,-1,-1,-1,9,8,10,10,8,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,7,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,3,0,7,3,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,8,4,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,1,9,4,7,1,7,3,1,-1,-1,-1,-1,-1,-1,-1,1,2,10,8,4,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,4,7,3,0,4,1,2,10,-1,-1,-1,-1,-1,-1,-1,9,2,10,9,0,2,8,4,7,
--1,-1,-1,-1,-1,-1,-1,2,10,9,2,9,7,2,7,3,7,9,4,-1,-1,-1,-1,8,4,7,3,11,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,4,7,11,2,4,2,0,4,-1,-1,-1,-1,-1,-1,-1,9,0,1,8,4,7,2,3,11,-1,-1,-1,-1,-1,-1,-1,4,7,11,9,4,11,9,11,2,9,2,1,-1,-1,-1,-1,3,10,1,3,11,10,7,8,4,-1,-1,-1,-1,-1,-1,-1,1,11,10,1,4,11,1,0,4,7,11,4,-1,-1,-1,-1,4,7,8,9,0,11,9,11,10,11,0,3,-1,-1,-1,-1,4,7,11,4,11,9,9,11,10,-1,-1,-1,-1,-1,-1,-1,9,5,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,5,4,0,8,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,5,4,1,5,0,-1,-1,-1,-1,-1,-1,
--1,-1,-1,-1,8,5,4,8,3,5,3,1,5,-1,-1,-1,-1,-1,-1,-1,1,2,10,9,5,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,8,1,2,10,4,9,5,-1,-1,-1,-1,-1,-1,-1,5,2,10,5,4,2,4,0,2,-1,-1,-1,-1,-1,-1,-1,2,10,5,3,2,5,3,5,4,3,4,8,-1,-1,-1,-1,9,5,4,2,3,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,11,2,0,8,11,4,9,5,-1,-1,-1,-1,-1,-1,-1,0,5,4,0,1,5,2,3,11,-1,-1,-1,-1,-1,-1,-1,2,1,5,2,5,8,2,8,11,4,8,5,-1,-1,-1,-1,10,3,11,10,1,3,9,5,4,-1,-1,-1,-1,-1,-1,-1,4,9,5,0,8,1,8,10,1,8,11,10,-1,-1,-1,-1,5,4,0,5,0,11,5,11,10,11,0,3,-1,-1,-1,-1,5,4,8,5,
-8,10,10,8,11,-1,-1,-1,-1,-1,-1,-1,9,7,8,5,7,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,3,0,9,5,3,5,7,3,-1,-1,-1,-1,-1,-1,-1,0,7,8,0,1,7,1,5,7,-1,-1,-1,-1,-1,-1,-1,1,5,3,3,5,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,7,8,9,5,7,10,1,2,-1,-1,-1,-1,-1,-1,-1,10,1,2,9,5,0,5,3,0,5,7,3,-1,-1,-1,-1,8,0,2,8,2,5,8,5,7,10,5,2,-1,-1,-1,-1,2,10,5,2,5,3,3,5,7,-1,-1,-1,-1,-1,-1,-1,7,9,5,7,8,9,3,11,2,-1,-1,-1,-1,-1,-1,-1,9,5,7,9,7,2,9,2,0,2,7,11,-1,-1,-1,-1,2,3,11,0,1,8,1,7,8,1,5,7,-1,-1,-1,-1,11,2,1,11,1,7,7,1,5,-1,-1,-1,-1,-1,-1,
--1,9,5,8,8,5,7,10,1,3,10,3,11,-1,-1,-1,-1,5,7,0,5,0,9,7,11,0,1,0,10,11,10,0,-1,11,10,0,11,0,3,10,5,0,8,0,7,5,7,0,-1,11,10,5,7,11,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,6,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,5,10,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,0,1,5,10,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,8,3,1,9,8,5,10,6,-1,-1,-1,-1,-1,-1,-1,1,6,5,2,6,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,6,5,1,2,6,3,0,8,-1,-1,-1,-1,-1,-1,-1,9,6,5,9,0,6,0,2,6,-1,-1,-1,-1,-1,-1,-1,5,9,8,5,8,2,5,2,6,3,2,8,-1,-1,-1,-1,2,3,11,10,6,
-5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,0,8,11,2,0,10,6,5,-1,-1,-1,-1,-1,-1,-1,0,1,9,2,3,11,5,10,6,-1,-1,-1,-1,-1,-1,-1,5,10,6,1,9,2,9,11,2,9,8,11,-1,-1,-1,-1,6,3,11,6,5,3,5,1,3,-1,-1,-1,-1,-1,-1,-1,0,8,11,0,11,5,0,5,1,5,11,6,-1,-1,-1,-1,3,11,6,0,3,6,0,6,5,0,5,9,-1,-1,-1,-1,6,5,9,6,9,11,11,9,8,-1,-1,-1,-1,-1,-1,-1,5,10,6,4,7,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,3,0,4,7,3,6,5,10,-1,-1,-1,-1,-1,-1,-1,1,9,0,5,10,6,8,4,7,-1,-1,-1,-1,-1,-1,-1,10,6,5,1,9,7,1,7,3,7,9,4,-1,-1,-1,-1,6,1,2,6,5,1,4,7,8,-1,-1,-1,-1,
--1,-1,-1,1,2,5,5,2,6,3,0,4,3,4,7,-1,-1,-1,-1,8,4,7,9,0,5,0,6,5,0,2,6,-1,-1,-1,-1,7,3,9,7,9,4,3,2,9,5,9,6,2,6,9,-1,3,11,2,7,8,4,10,6,5,-1,-1,-1,-1,-1,-1,-1,5,10,6,4,7,2,4,2,0,2,7,11,-1,-1,-1,-1,0,1,9,4,7,8,2,3,11,5,10,6,-1,-1,-1,-1,9,2,1,9,11,2,9,4,11,7,11,4,5,10,6,-1,8,4,7,3,11,5,3,5,1,5,11,6,-1,-1,-1,-1,5,1,11,5,11,6,1,0,11,7,11,4,0,4,11,-1,0,5,9,0,6,5,0,3,6,11,6,3,8,4,7,-1,6,5,9,6,9,11,4,7,9,7,11,9,-1,-1,-1,-1,10,4,9,6,4,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,10,6,4,9,10,0,8,3,-1,-1,-1,-1,-1,-1,-1,
-10,0,1,10,6,0,6,4,0,-1,-1,-1,-1,-1,-1,-1,8,3,1,8,1,6,8,6,4,6,1,10,-1,-1,-1,-1,1,4,9,1,2,4,2,6,4,-1,-1,-1,-1,-1,-1,-1,3,0,8,1,2,9,2,4,9,2,6,4,-1,-1,-1,-1,0,2,4,4,2,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,3,2,8,2,4,4,2,6,-1,-1,-1,-1,-1,-1,-1,10,4,9,10,6,4,11,2,3,-1,-1,-1,-1,-1,-1,-1,0,8,2,2,8,11,4,9,10,4,10,6,-1,-1,-1,-1,3,11,2,0,1,6,0,6,4,6,1,10,-1,-1,-1,-1,6,4,1,6,1,10,4,8,1,2,1,11,8,11,1,-1,9,6,4,9,3,6,9,1,3,11,6,3,-1,-1,-1,-1,8,11,1,8,1,0,11,6,1,9,1,4,6,4,1,-1,3,11,6,3,6,0,0,6,4,-1,-1,-1,-1,-1,-1,-1,
-6,4,8,11,6,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,10,6,7,8,10,8,9,10,-1,-1,-1,-1,-1,-1,-1,0,7,3,0,10,7,0,9,10,6,7,10,-1,-1,-1,-1,10,6,7,1,10,7,1,7,8,1,8,0,-1,-1,-1,-1,10,6,7,10,7,1,1,7,3,-1,-1,-1,-1,-1,-1,-1,1,2,6,1,6,8,1,8,9,8,6,7,-1,-1,-1,-1,2,6,9,2,9,1,6,7,9,0,9,3,7,3,9,-1,7,8,0,7,0,6,6,0,2,-1,-1,-1,-1,-1,-1,-1,7,3,2,6,7,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,11,10,6,8,10,8,9,8,6,7,-1,-1,-1,-1,2,0,7,2,7,11,0,9,7,6,7,10,9,10,7,-1,1,8,0,1,7,8,1,10,7,6,7,10,2,3,11,-1,11,2,1,11,1,7,10,6,1,6,7,1,-1,-1,-1,-1,
-8,9,6,8,6,7,9,1,6,11,6,3,1,3,6,-1,0,9,1,11,6,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,8,0,7,0,6,3,11,0,11,6,0,-1,-1,-1,-1,7,11,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,6,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,8,11,7,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,11,7,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,1,9,8,3,1,11,7,6,-1,-1,-1,-1,-1,-1,-1,10,1,2,6,11,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,10,3,0,8,6,11,7,-1,-1,-1,-1,-1,-1,-1,2,9,0,2,10,9,6,11,7,-1,-1,-1,-1,-1,-1,-1,6,11,7,2,10,3,10,8,3,10,9,8,-1,-1,-1,-1,7,
-2,3,6,2,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,0,8,7,6,0,6,2,0,-1,-1,-1,-1,-1,-1,-1,2,7,6,2,3,7,0,1,9,-1,-1,-1,-1,-1,-1,-1,1,6,2,1,8,6,1,9,8,8,7,6,-1,-1,-1,-1,10,7,6,10,1,7,1,3,7,-1,-1,-1,-1,-1,-1,-1,10,7,6,1,7,10,1,8,7,1,0,8,-1,-1,-1,-1,0,3,7,0,7,10,0,10,9,6,10,7,-1,-1,-1,-1,7,6,10,7,10,8,8,10,9,-1,-1,-1,-1,-1,-1,-1,6,8,4,11,8,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,6,11,3,0,6,0,4,6,-1,-1,-1,-1,-1,-1,-1,8,6,11,8,4,6,9,0,1,-1,-1,-1,-1,-1,-1,-1,9,4,6,9,6,3,9,3,1,11,3,6,-1,-1,-1,-1,6,8,4,6,11,8,2,10,1,-1,-1,-1,
--1,-1,-1,-1,1,2,10,3,0,11,0,6,11,0,4,6,-1,-1,-1,-1,4,11,8,4,6,11,0,2,9,2,10,9,-1,-1,-1,-1,10,9,3,10,3,2,9,4,3,11,3,6,4,6,3,-1,8,2,3,8,4,2,4,6,2,-1,-1,-1,-1,-1,-1,-1,0,4,2,4,6,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,9,0,2,3,4,2,4,6,4,3,8,-1,-1,-1,-1,1,9,4,1,4,2,2,4,6,-1,-1,-1,-1,-1,-1,-1,8,1,3,8,6,1,8,4,6,6,10,1,-1,-1,-1,-1,10,1,0,10,0,6,6,0,4,-1,-1,-1,-1,-1,-1,-1,4,6,3,4,3,8,6,10,3,0,3,9,10,9,3,-1,10,9,4,6,10,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,9,5,7,6,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,4,9,5,11,7,6,
--1,-1,-1,-1,-1,-1,-1,5,0,1,5,4,0,7,6,11,-1,-1,-1,-1,-1,-1,-1,11,7,6,8,3,4,3,5,4,3,1,5,-1,-1,-1,-1,9,5,4,10,1,2,7,6,11,-1,-1,-1,-1,-1,-1,-1,6,11,7,1,2,10,0,8,3,4,9,5,-1,-1,-1,-1,7,6,11,5,4,10,4,2,10,4,0,2,-1,-1,-1,-1,3,4,8,3,5,4,3,2,5,10,5,2,11,7,6,-1,7,2,3,7,6,2,5,4,9,-1,-1,-1,-1,-1,-1,-1,9,5,4,0,8,6,0,6,2,6,8,7,-1,-1,-1,-1,3,6,2,3,7,6,1,5,0,5,4,0,-1,-1,-1,-1,6,2,8,6,8,7,2,1,8,4,8,5,1,5,8,-1,9,5,4,10,1,6,1,7,6,1,3,7,-1,-1,-1,-1,1,6,10,1,7,6,1,0,7,8,7,0,9,5,4,-1,4,0,10,4,10,5,0,3,10,6,10,7,3,7,10,
--1,7,6,10,7,10,8,5,4,10,4,8,10,-1,-1,-1,-1,6,9,5,6,11,9,11,8,9,-1,-1,-1,-1,-1,-1,-1,3,6,11,0,6,3,0,5,6,0,9,5,-1,-1,-1,-1,0,11,8,0,5,11,0,1,5,5,6,11,-1,-1,-1,-1,6,11,3,6,3,5,5,3,1,-1,-1,-1,-1,-1,-1,-1,1,2,10,9,5,11,9,11,8,11,5,6,-1,-1,-1,-1,0,11,3,0,6,11,0,9,6,5,6,9,1,2,10,-1,11,8,5,11,5,6,8,0,5,10,5,2,0,2,5,-1,6,11,3,6,3,5,2,10,3,10,5,3,-1,-1,-1,-1,5,8,9,5,2,8,5,6,2,3,8,2,-1,-1,-1,-1,9,5,6,9,6,0,0,6,2,-1,-1,-1,-1,-1,-1,-1,1,5,8,1,8,0,5,6,8,3,8,2,6,2,8,-1,1,5,6,2,1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,3,6,1,6,10,3,8,6,5,6,9,8,9,6,-1,10,1,0,10,0,6,9,5,0,5,6,0,-1,-1,-1,-1,0,3,8,5,6,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,5,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,5,10,7,5,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,5,10,11,7,5,8,3,0,-1,-1,-1,-1,-1,-1,-1,5,11,7,5,10,11,1,9,0,-1,-1,-1,-1,-1,-1,-1,10,7,5,10,11,7,9,8,1,8,3,1,-1,-1,-1,-1,11,1,2,11,7,1,7,5,1,-1,-1,-1,-1,-1,-1,-1,0,8,3,1,2,7,1,7,5,7,2,11,-1,-1,-1,-1,9,7,5,9,2,7,9,0,2,2,11,7,-1,-1,-1,-1,7,5,2,7,2,11,5,9,2,3,2,8,9,8,2,-1,2,5,10,2,3,5,3,7,5,-1,-1,
--1,-1,-1,-1,-1,8,2,0,8,5,2,8,7,5,10,2,5,-1,-1,-1,-1,9,0,1,5,10,3,5,3,7,3,10,2,-1,-1,-1,-1,9,8,2,9,2,1,8,7,2,10,2,5,7,5,2,-1,1,3,5,3,7,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,7,0,7,1,1,7,5,-1,-1,-1,-1,-1,-1,-1,9,0,3,9,3,5,5,3,7,-1,-1,-1,-1,-1,-1,-1,9,8,7,5,9,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,8,4,5,10,8,10,11,8,-1,-1,-1,-1,-1,-1,-1,5,0,4,5,11,0,5,10,11,11,3,0,-1,-1,-1,-1,0,1,9,8,4,10,8,10,11,10,4,5,-1,-1,-1,-1,10,11,4,10,4,5,11,3,4,9,4,1,3,1,4,-1,2,5,1,2,8,5,2,11,8,4,5,8,-1,-1,-1,-1,0,4,11,0,11,3,4,5,11,
-2,11,1,5,1,11,-1,0,2,5,0,5,9,2,11,5,4,5,8,11,8,5,-1,9,4,5,2,11,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,5,10,3,5,2,3,4,5,3,8,4,-1,-1,-1,-1,5,10,2,5,2,4,4,2,0,-1,-1,-1,-1,-1,-1,-1,3,10,2,3,5,10,3,8,5,4,5,8,0,1,9,-1,5,10,2,5,2,4,1,9,2,9,4,2,-1,-1,-1,-1,8,4,5,8,5,3,3,5,1,-1,-1,-1,-1,-1,-1,-1,0,4,5,1,0,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,4,5,8,5,3,9,0,5,0,3,5,-1,-1,-1,-1,9,4,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,11,7,4,9,11,9,10,11,-1,-1,-1,-1,-1,-1,-1,0,8,3,4,9,7,9,11,7,9,10,11,-1,-1,-1,-1,1,10,11,1,11,
-4,1,4,0,7,4,11,-1,-1,-1,-1,3,1,4,3,4,8,1,10,4,7,4,11,10,11,4,-1,4,11,7,9,11,4,9,2,11,9,1,2,-1,-1,-1,-1,9,7,4,9,11,7,9,1,11,2,11,1,0,8,3,-1,11,7,4,11,4,2,2,4,0,-1,-1,-1,-1,-1,-1,-1,11,7,4,11,4,2,8,3,4,3,2,4,-1,-1,-1,-1,2,9,10,2,7,9,2,3,7,7,4,9,-1,-1,-1,-1,9,10,7,9,7,4,10,2,7,8,7,0,2,0,7,-1,3,7,10,3,10,2,7,4,10,1,10,0,4,0,10,-1,1,10,2,8,7,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,9,1,4,1,7,7,1,3,-1,-1,-1,-1,-1,-1,-1,4,9,1,4,1,7,0,8,1,8,7,1,-1,-1,-1,-1,4,0,3,7,4,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,8,7,-1,-1,-1,
--1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,10,8,10,11,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,9,3,9,11,11,9,10,-1,-1,-1,-1,-1,-1,-1,0,1,10,0,10,8,8,10,11,-1,-1,-1,-1,-1,-1,-1,3,1,10,11,3,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,11,1,11,9,9,11,8,-1,-1,-1,-1,-1,-1,-1,3,0,9,3,9,11,1,2,9,2,11,9,-1,-1,-1,-1,0,2,11,8,0,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,2,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,8,2,8,10,10,8,9,-1,-1,-1,-1,-1,-1,-1,9,10,2,0,9,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,8,2,8,10,0,1,8,1,10,8,-1,-1,-1,-1,1,10,
-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,3,8,9,1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,9,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,3,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]);THREE.LensFlare=function(a,b,c,d,f){THREE.Object3D.call(this);this.lensFlares=[];this.positionScreen=new THREE.Vector3;this.customUpdateCallback=void 0;void 0!==a&&this.add(a,b,c,d,f)};THREE.LensFlare.prototype=new THREE.Object3D;THREE.LensFlare.prototype.constructor=THREE.LensFlare;
-THREE.LensFlare.prototype.supr=THREE.Object3D.prototype;THREE.LensFlare.prototype.add=function(a,b,c,d,f,g){void 0===b&&(b=-1);void 0===c&&(c=0);void 0===g&&(g=1);void 0===f&&(f=new THREE.Color(16777215));if(void 0===d)d=THREE.NormalBlending;c=Math.min(c,Math.max(0,c));this.lensFlares.push({texture:a,size:b,distance:c,x:0,y:0,z:0,scale:1,rotation:1,opacity:g,color:f,blending:d})};
-THREE.LensFlare.prototype.updateLensFlares=function(){var a,b=this.lensFlares.length,c,d=2*-this.positionScreen.x,f=2*-this.positionScreen.y;for(a=0;a<b;a++)c=this.lensFlares[a],c.x=this.positionScreen.x+d*c.distance,c.y=this.positionScreen.y+f*c.distance,c.wantedRotation=0.25*c.x*Math.PI,c.rotation+=0.25*(c.wantedRotation-c.rotation)};
-THREE.LensFlarePlugin=function(){function a(a){var c=b.createProgram(),d=b.createShader(b.FRAGMENT_SHADER),e=b.createShader(b.VERTEX_SHADER);b.shaderSource(d,a.fragmentShader);b.shaderSource(e,a.vertexShader);b.compileShader(d);b.compileShader(e);b.attachShader(c,d);b.attachShader(c,e);b.linkProgram(c);return c}var b,c,d,f,g,e,h,i,j,k,q,m,o;this.init=function(p){b=p.context;c=p;d=new Float32Array(16);f=new Uint16Array(6);p=0;d[p++]=-1;d[p++]=-1;d[p++]=0;d[p++]=0;d[p++]=1;d[p++]=-1;d[p++]=1;d[p++]=
-0;d[p++]=1;d[p++]=1;d[p++]=1;d[p++]=1;d[p++]=-1;d[p++]=1;d[p++]=0;d[p++]=1;p=0;f[p++]=0;f[p++]=1;f[p++]=2;f[p++]=0;f[p++]=2;f[p++]=3;g=b.createBuffer();e=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,g);b.bufferData(b.ARRAY_BUFFER,d,b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,e);b.bufferData(b.ELEMENT_ARRAY_BUFFER,f,b.STATIC_DRAW);h=b.createTexture();i=b.createTexture();b.bindTexture(b.TEXTURE_2D,h);b.texImage2D(b.TEXTURE_2D,0,b.RGB,16,16,0,b.RGB,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,
-b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);b.bindTexture(b.TEXTURE_2D,i);b.texImage2D(b.TEXTURE_2D,0,b.RGBA,16,16,0,b.RGBA,b.UNSIGNED_BYTE,null);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.NEAREST);
-b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.NEAREST);0>=b.getParameter(b.MAX_VERTEX_TEXTURE_IMAGE_UNITS)?(j=!1,k=a(THREE.ShaderFlares.lensFlare)):(j=!0,k=a(THREE.ShaderFlares.lensFlareVertexTexture));q={};m={};q.vertex=b.getAttribLocation(k,"position");q.uv=b.getAttribLocation(k,"uv");m.renderType=b.getUniformLocation(k,"renderType");m.map=b.getUniformLocation(k,"map");m.occlusionMap=b.getUniformLocation(k,"occlusionMap");m.opacity=b.getUniformLocation(k,"opacity");m.color=b.getUniformLocation(k,
-"color");m.scale=b.getUniformLocation(k,"scale");m.rotation=b.getUniformLocation(k,"rotation");m.screenPosition=b.getUniformLocation(k,"screenPosition");o=!1};this.render=function(a,d,f,s){var a=a.__webglFlares,t=a.length;if(t){var w=new THREE.Vector3,u=s/f,v=0.5*f,A=0.5*s,F=16/s,B=new THREE.Vector2(F*u,F),D=new THREE.Vector3(1,1,0),H=new THREE.Vector2(1,1),I=m,F=q;b.useProgram(k);o||(b.enableVertexAttribArray(q.vertex),b.enableVertexAttribArray(q.uv),o=!0);b.uniform1i(I.occlusionMap,0);b.uniform1i(I.map,
-1);b.bindBuffer(b.ARRAY_BUFFER,g);b.vertexAttribPointer(F.vertex,2,b.FLOAT,!1,16,0);b.vertexAttribPointer(F.uv,2,b.FLOAT,!1,16,8);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,e);b.disable(b.CULL_FACE);b.depthMask(!1);var Q,P,L,K,O;for(Q=0;Q<t;Q++)if(F=16/s,B.set(F*u,F),K=a[Q],w.set(K.matrixWorld.n14,K.matrixWorld.n24,K.matrixWorld.n34),d.matrixWorldInverse.multiplyVector3(w),d.projectionMatrix.multiplyVector3(w),D.copy(w),H.x=D.x*v+v,H.y=D.y*A+A,j||0<H.x&&H.x<f&&0<H.y&&H.y<s){b.activeTexture(b.TEXTURE1);b.bindTexture(b.TEXTURE_2D,
-h);b.copyTexImage2D(b.TEXTURE_2D,0,b.RGB,H.x-8,H.y-8,16,16,0);b.uniform1i(I.renderType,0);b.uniform2f(I.scale,B.x,B.y);b.uniform3f(I.screenPosition,D.x,D.y,D.z);b.disable(b.BLEND);b.enable(b.DEPTH_TEST);b.drawElements(b.TRIANGLES,6,b.UNSIGNED_SHORT,0);b.activeTexture(b.TEXTURE0);b.bindTexture(b.TEXTURE_2D,i);b.copyTexImage2D(b.TEXTURE_2D,0,b.RGBA,H.x-8,H.y-8,16,16,0);b.uniform1i(I.renderType,1);b.disable(b.DEPTH_TEST);b.activeTexture(b.TEXTURE1);b.bindTexture(b.TEXTURE_2D,h);b.drawElements(b.TRIANGLES,
-6,b.UNSIGNED_SHORT,0);K.positionScreen.copy(D);K.customUpdateCallback?K.customUpdateCallback(K):K.updateLensFlares();b.uniform1i(I.renderType,2);b.enable(b.BLEND);for(P=0,L=K.lensFlares.length;P<L;P++)if(O=K.lensFlares[P],0.001<O.opacity&&0.001<O.scale)D.x=O.x,D.y=O.y,D.z=O.z,F=O.size*O.scale/s,B.x=F*u,B.y=F,b.uniform3f(I.screenPosition,D.x,D.y,D.z),b.uniform2f(I.scale,B.x,B.y),b.uniform1f(I.rotation,O.rotation),b.uniform1f(I.opacity,O.opacity),b.uniform3f(I.color,O.color.r,O.color.g,O.color.b),c.setBlending(O.blending),
-c.setTexture(O.texture,1),b.drawElements(b.TRIANGLES,6,b.UNSIGNED_SHORT,0)}b.enable(b.CULL_FACE);b.enable(b.DEPTH_TEST);b.depthMask(!0)}}};
-THREE.ShadowMapPlugin=function(){var a,b,c,d,f=new THREE.Frustum,g=new THREE.Matrix4,e=new THREE.Vector3,h=new THREE.Vector3;this.init=function(e){a=e.context;b=e;var e=THREE.ShaderLib.depthRGBA,f=THREE.UniformsUtils.clone(e.uniforms);c=new THREE.ShaderMaterial({fragmentShader:e.fragmentShader,vertexShader:e.vertexShader,uniforms:f});d=new THREE.ShaderMaterial({fragmentShader:e.fragmentShader,vertexShader:e.vertexShader,uniforms:f,morphTargets:!0});c._shadowPass=!0;d._shadowPass=!0};this.render=function(a,
-c){b.shadowMapEnabled&&b.shadowMapAutoUpdate&&this.update(a,c)};this.update=function(i,j){var k,q,m,o,p,n,r,s,t,w=[];o=0;a.clearColor(1,1,1,1);a.disable(a.BLEND);b.shadowMapCullFrontFaces&&a.cullFace(a.FRONT);b.setDepthTest(!0);for(k=0,q=i.__lights.length;k<q;k++)if(m=i.__lights[k],m.castShadow)if(m instanceof THREE.DirectionalLight&&m.shadowCascade)for(p=0;p<m.shadowCascadeCount;p++){var u;if(m.shadowCascadeArray[p])u=m.shadowCascadeArray[p];else{t=m;r=p;u=new THREE.DirectionalLight;u.isVirtual=
-!0;u.onlyShadow=!0;u.castShadow=!0;u.shadowCameraNear=t.shadowCameraNear;u.shadowCameraFar=t.shadowCameraFar;u.shadowCameraLeft=t.shadowCameraLeft;u.shadowCameraRight=t.shadowCameraRight;u.shadowCameraBottom=t.shadowCameraBottom;u.shadowCameraTop=t.shadowCameraTop;u.shadowCameraVisible=t.shadowCameraVisible;u.shadowDarkness=t.shadowDarkness;u.shadowBias=t.shadowCascadeBias[r];u.shadowMapWidth=t.shadowCascadeWidth[r];u.shadowMapHeight=t.shadowCascadeHeight[r];u.pointsWorld=[];u.pointsFrustum=[];s=
-u.pointsWorld;n=u.pointsFrustum;for(var v=0;8>v;v++)s[v]=new THREE.Vector3,n[v]=new THREE.Vector3;s=t.shadowCascadeNearZ[r];t=t.shadowCascadeFarZ[r];n[0].set(-1,-1,s);n[1].set(1,-1,s);n[2].set(-1,1,s);n[3].set(1,1,s);n[4].set(-1,-1,t);n[5].set(1,-1,t);n[6].set(-1,1,t);n[7].set(1,1,t);u.originalCamera=j;n=new THREE.Gyroscope;n.position=m.shadowCascadeOffset;n.add(u);n.add(u.target);j.add(n);m.shadowCascadeArray[p]=u;console.log("Created virtualLight",u)}r=m;s=p;t=r.shadowCascadeArray[s];t.position.copy(r.position);
-t.target.position.copy(r.target.position);t.lookAt(t.target);t.shadowCameraVisible=r.shadowCameraVisible;t.shadowDarkness=r.shadowDarkness;t.shadowBias=r.shadowCascadeBias[s];n=r.shadowCascadeNearZ[s];r=r.shadowCascadeFarZ[s];t=t.pointsFrustum;t[0].z=n;t[1].z=n;t[2].z=n;t[3].z=n;t[4].z=r;t[5].z=r;t[6].z=r;t[7].z=r;w[o]=u;o++}else w[o]=m,o++;for(k=0,q=w.length;k<q;k++){m=w[k];if(!m.shadowMap)m.shadowMap=new THREE.WebGLRenderTarget(m.shadowMapWidth,m.shadowMapHeight,{minFilter:THREE.LinearFilter,magFilter:THREE.LinearFilter,
-format:THREE.RGBAFormat}),m.shadowMapSize=new THREE.Vector2(m.shadowMapWidth,m.shadowMapHeight),m.shadowMatrix=new THREE.Matrix4;if(!m.shadowCamera){if(m instanceof THREE.SpotLight)m.shadowCamera=new THREE.PerspectiveCamera(m.shadowCameraFov,m.shadowMapWidth/m.shadowMapHeight,m.shadowCameraNear,m.shadowCameraFar);else if(m instanceof THREE.DirectionalLight)m.shadowCamera=new THREE.OrthographicCamera(m.shadowCameraLeft,m.shadowCameraRight,m.shadowCameraTop,m.shadowCameraBottom,m.shadowCameraNear,m.shadowCameraFar);
-else{console.error("Unsupported light type for shadow");continue}i.add(m.shadowCamera);b.autoUpdateScene&&i.updateMatrixWorld()}if(m.shadowCameraVisible&&!m.cameraHelper)m.cameraHelper=new THREE.CameraHelper(m.shadowCamera),m.shadowCamera.add(m.cameraHelper);if(m.isVirtual&&u.originalCamera==j){p=j;o=m.shadowCamera;n=m.pointsFrustum;t=m.pointsWorld;e.set(Infinity,Infinity,Infinity);h.set(-Infinity,-Infinity,-Infinity);for(r=0;8>r;r++){s=t[r];s.copy(n[r]);THREE.ShadowMapPlugin.__projector.unprojectVector(s,
-p);o.matrixWorldInverse.multiplyVector3(s);if(s.x<e.x)e.x=s.x;if(s.x>h.x)h.x=s.x;if(s.y<e.y)e.y=s.y;if(s.y>h.y)h.y=s.y;if(s.z<e.z)e.z=s.z;if(s.z>h.z)h.z=s.z}o.left=e.x;o.right=h.x;o.top=h.y;o.bottom=e.y;o.updateProjectionMatrix()}o=m.shadowMap;n=m.shadowMatrix;p=m.shadowCamera;p.position.copy(m.matrixWorld.getPosition());p.lookAt(m.target.matrixWorld.getPosition());p.updateMatrixWorld();p.matrixWorldInverse.getInverse(p.matrixWorld);if(m.cameraHelper)m.cameraHelper.lines.visible=m.shadowCameraVisible;
-m.shadowCameraVisible&&m.cameraHelper.update(m.shadowCamera);n.set(0.5,0,0,0.5,0,0.5,0,0.5,0,0,0.5,0.5,0,0,0,1);n.multiplySelf(p.projectionMatrix);n.multiplySelf(p.matrixWorldInverse);if(!p._viewMatrixArray)p._viewMatrixArray=new Float32Array(16);p.matrixWorldInverse.flattenToArray(p._viewMatrixArray);if(!p._projectionMatrixArray)p._projectionMatrixArray=new Float32Array(16);p.projectionMatrix.flattenToArray(p._projectionMatrixArray);g.multiply(p.projectionMatrix,p.matrixWorldInverse);f.setFromMatrix(g);
-b.setRenderTarget(o);b.clear();t=i.__webglObjects;for(m=0,o=t.length;m<o;m++)if(r=t[m],n=r.object,r.render=!1,n.visible&&n.castShadow&&(!(n instanceof THREE.Mesh)||!n.frustumCulled||f.contains(n)))n.matrixWorld.flattenToArray(n._objectMatrixArray),n._modelViewMatrix.multiplyToArray(p.matrixWorldInverse,n.matrixWorld,n._modelViewMatrixArray),r.render=!0;for(m=0,o=t.length;m<o;m++)if(r=t[m],r.render)n=r.object,r=r.buffer,b.setObjectFaces(n),s=n.customDepthMaterial?n.customDepthMaterial:n.geometry.morphTargets.length?
-d:c,r instanceof THREE.BufferGeometry?b.renderBufferDirect(p,i.__lights,null,s,r,n):b.renderBuffer(p,i.__lights,null,s,r,n);t=i.__webglObjectsImmediate;for(m=0,o=t.length;m<o;m++)r=t[m],n=r.object,n.visible&&n.castShadow&&(n.matrixAutoUpdate&&n.matrixWorld.flattenToArray(n._objectMatrixArray),n._modelViewMatrix.multiplyToArray(p.matrixWorldInverse,n.matrixWorld,n._modelViewMatrixArray),b.renderImmediateObject(p,i.__lights,null,c,n))}k=b.getClearColor();q=b.getClearAlpha();a.clearColor(k.r,k.g,k.b,
-q);a.enable(a.BLEND);b.shadowMapCullFrontFaces&&a.cullFace(a.BACK)}};THREE.ShadowMapPlugin.__projector=new THREE.Projector;
-THREE.SpritePlugin=function(){function a(a,b){return b.z-a.z}var b,c,d,f,g,e,h,i,j,k;this.init=function(a){b=a.context;c=a;d=new Float32Array(16);f=new Uint16Array(6);a=0;d[a++]=-1;d[a++]=-1;d[a++]=0;d[a++]=1;d[a++]=1;d[a++]=-1;d[a++]=1;d[a++]=1;d[a++]=1;d[a++]=1;d[a++]=1;d[a++]=0;d[a++]=-1;d[a++]=1;d[a++]=0;a=d[a++]=0;f[a++]=0;f[a++]=1;f[a++]=2;f[a++]=0;f[a++]=2;f[a++]=3;g=b.createBuffer();e=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,g);b.bufferData(b.ARRAY_BUFFER,d,b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,
-e);b.bufferData(b.ELEMENT_ARRAY_BUFFER,f,b.STATIC_DRAW);var a=THREE.ShaderSprite.sprite,m=b.createProgram(),o=b.createShader(b.FRAGMENT_SHADER),p=b.createShader(b.VERTEX_SHADER);b.shaderSource(o,a.fragmentShader);b.shaderSource(p,a.vertexShader);b.compileShader(o);b.compileShader(p);b.attachShader(m,o);b.attachShader(m,p);b.linkProgram(m);h=m;i={};j={};i.position=b.getAttribLocation(h,"position");i.uv=b.getAttribLocation(h,"uv");j.uvOffset=b.getUniformLocation(h,"uvOffset");j.uvScale=b.getUniformLocation(h,
-"uvScale");j.rotation=b.getUniformLocation(h,"rotation");j.scale=b.getUniformLocation(h,"scale");j.alignment=b.getUniformLocation(h,"alignment");j.color=b.getUniformLocation(h,"color");j.map=b.getUniformLocation(h,"map");j.opacity=b.getUniformLocation(h,"opacity");j.useScreenCoordinates=b.getUniformLocation(h,"useScreenCoordinates");j.affectedByDistance=b.getUniformLocation(h,"affectedByDistance");j.screenPosition=b.getUniformLocation(h,"screenPosition");j.modelViewMatrix=b.getUniformLocation(h,"modelViewMatrix");
-j.projectionMatrix=b.getUniformLocation(h,"projectionMatrix");k=!1};this.render=function(d,f,o,p){var d=d.__webglSprites,n=d.length;if(n){var r=i,s=j,t=p/o,o=0.5*o,w=0.5*p,u=!0;b.useProgram(h);k||(b.enableVertexAttribArray(r.position),b.enableVertexAttribArray(r.uv),k=!0);b.disable(b.CULL_FACE);b.enable(b.BLEND);b.depthMask(!0);b.bindBuffer(b.ARRAY_BUFFER,g);b.vertexAttribPointer(r.position,2,b.FLOAT,!1,16,0);b.vertexAttribPointer(r.uv,2,b.FLOAT,!1,16,8);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,e);b.uniformMatrix4fv(s.projectionMatrix,
-!1,f._projectionMatrixArray);b.activeTexture(b.TEXTURE0);b.uniform1i(s.map,0);for(var v,A=[],r=0;r<n;r++)if(v=d[r],v.visible&&0!==v.opacity)v.useScreenCoordinates?v.z=-v.position.z:(v._modelViewMatrix.multiplyToArray(f.matrixWorldInverse,v.matrixWorld,v._modelViewMatrixArray),v.z=-v._modelViewMatrix.n34);d.sort(a);for(r=0;r<n;r++)v=d[r],v.visible&&0!==v.opacity&&v.map&&v.map.image&&v.map.image.width&&(v.useScreenCoordinates?(b.uniform1i(s.useScreenCoordinates,1),b.uniform3f(s.screenPosition,(v.position.x-
-o)/o,(w-v.position.y)/w,Math.max(0,Math.min(1,v.position.z)))):(b.uniform1i(s.useScreenCoordinates,0),b.uniform1i(s.affectedByDistance,v.affectedByDistance?1:0),b.uniformMatrix4fv(s.modelViewMatrix,!1,v._modelViewMatrixArray)),f=v.map.image.width/(v.scaleByViewport?p:1),A[0]=f*t*v.scale.x,A[1]=f*v.scale.y,b.uniform2f(s.uvScale,v.uvScale.x,v.uvScale.y),b.uniform2f(s.uvOffset,v.uvOffset.x,v.uvOffset.y),b.uniform2f(s.alignment,v.alignment.x,v.alignment.y),b.uniform1f(s.opacity,v.opacity),b.uniform3f(s.color,
-v.color.r,v.color.g,v.color.b),b.uniform1f(s.rotation,v.rotation),b.uniform2fv(s.scale,A),v.mergeWith3D&&!u?(b.enable(b.DEPTH_TEST),u=!0):!v.mergeWith3D&&u&&(b.disable(b.DEPTH_TEST),u=!1),c.setBlending(v.blending),c.setTexture(v.map,0),b.drawElements(b.TRIANGLES,6,b.UNSIGNED_SHORT,0));b.enable(b.CULL_FACE);b.enable(b.DEPTH_TEST);b.depthMask(!0)}}};
-if(THREE.WebGLRenderer)THREE.AnaglyphWebGLRenderer=function(a){THREE.WebGLRenderer.call(this,a);this.autoUpdateScene=!1;var b=this,c=this.setSize,d=this.render,f=new THREE.PerspectiveCamera,g=new THREE.PerspectiveCamera,e=new THREE.Matrix4,h=new THREE.Matrix4,i,j,k,q;f.matrixAutoUpdate=g.matrixAutoUpdate=!1;var a={minFilter:THREE.LinearFilter,magFilter:THREE.NearestFilter,format:THREE.RGBAFormat},m=new THREE.WebGLRenderTarget(512,512,a),o=new THREE.WebGLRenderTarget(512,512,a),p=new THREE.PerspectiveCamera(53,
-1,1,1E4);p.position.z=2;var a=new THREE.ShaderMaterial({uniforms:{mapLeft:{type:"t",value:0,texture:m},mapRight:{type:"t",value:1,texture:o}},vertexShader:"varying vec2 vUv;\nvoid main() {\nvUv = vec2( uv.x, 1.0 - uv.y );\ngl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D mapLeft;\nuniform sampler2D mapRight;\nvarying vec2 vUv;\nvoid main() {\nvec4 colorL, colorR;\nvec2 uv = vUv;\ncolorL = texture2D( mapLeft, uv );\ncolorR = texture2D( mapRight, uv );\ngl_FragColor = vec4( colorL.g * 0.7 + colorL.b * 0.3, colorR.g, colorR.b, colorL.a + colorR.a ) * 1.1;\n}"}),
-n=new THREE.Scene;n.add(new THREE.Mesh(new THREE.PlaneGeometry(2,2),a));n.add(p);this.setSize=function(a,d){c.call(b,a,d);m.width=a;m.height=d;o.width=a;o.height=d};this.render=function(a,c){a.updateMatrixWorld();if(i!==c.aspect||j!==c.near||k!==c.far||q!==c.fov){i=c.aspect;j=c.near;k=c.far;q=c.fov;var t=c.projectionMatrix.clone(),w=0.5*(125/30),u=w*j/125,v=j*Math.tan(q*Math.PI/360),A;e.n14=w;h.n14=-w;w=-v*i+u;A=v*i+u;t.n11=2*j/(A-w);t.n13=(A+w)/(A-w);f.projectionMatrix.copy(t);w=-v*i-u;A=v*i-u;t.n11=
-2*j/(A-w);t.n13=(A+w)/(A-w);g.projectionMatrix.copy(t)}f.matrixWorld.copy(c.matrixWorld).multiplySelf(h);f.position.copy(c.position);f.near=c.near;f.far=c.far;d.call(b,a,f,m,!0);g.matrixWorld.copy(c.matrixWorld).multiplySelf(e);g.position.copy(c.position);g.near=c.near;g.far=c.far;d.call(b,a,g,o,!0);n.updateMatrixWorld();d.call(b,n,p)}};
-if(THREE.WebGLRenderer)THREE.CrosseyedWebGLRenderer=function(a){THREE.WebGLRenderer.call(this,a);this.autoClear=!1;var b=this,c=this.setSize,d=this.render,f,g,e=new THREE.PerspectiveCamera;e.target=new THREE.Vector3(0,0,0);var h=new THREE.PerspectiveCamera;h.target=new THREE.Vector3(0,0,0);b.separation=10;if(a&&void 0!==a.separation)b.separation=a.separation;this.setSize=function(a,d){c.call(b,a,d);f=a/2;g=d};this.render=function(a,c){this.clear();e.fov=c.fov;e.aspect=0.5*c.aspect;e.near=c.near;e.far=
-c.far;e.updateProjectionMatrix();e.position.copy(c.position);e.target.copy(c.target);e.translateX(b.separation);e.lookAt(e.target);h.projectionMatrix=e.projectionMatrix;h.position.copy(c.position);h.target.copy(c.target);h.translateX(-b.separation);h.lookAt(h.target);this.setViewport(0,0,f,g);d.call(b,a,e);this.setViewport(f,0,f,g);d.call(b,a,h,!1)}};
-THREE.ShaderFlares={lensFlareVertexTexture:{vertexShader:"uniform vec3 screenPosition;\nuniform vec2 scale;\nuniform float rotation;\nuniform int renderType;\nuniform sampler2D occlusionMap;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\nvUV = uv;\nvec2 pos = position;\nif( renderType == 2 ) {\nvec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) ) +\ntexture2D( occlusionMap, vec2( 0.5, 0.1 ) ) +\ntexture2D( occlusionMap, vec2( 0.9, 0.1 ) ) +\ntexture2D( occlusionMap, vec2( 0.9, 0.5 ) ) +\ntexture2D( occlusionMap, vec2( 0.9, 0.9 ) ) +\ntexture2D( occlusionMap, vec2( 0.5, 0.9 ) ) +\ntexture2D( occlusionMap, vec2( 0.1, 0.9 ) ) +\ntexture2D( occlusionMap, vec2( 0.1, 0.5 ) ) +\ntexture2D( occlusionMap, vec2( 0.5, 0.5 ) );\nvVisibility = ( visibility.r / 9.0 ) *\n( 1.0 - visibility.g / 9.0 ) *\n( visibility.b / 9.0 ) *\n( 1.0 - visibility.a / 9.0 );\npos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;\npos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;\n}\ngl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\n}",fragmentShader:"precision mediump float;\nuniform sampler2D map;\nuniform float opacity;\nuniform int renderType;\nuniform vec3 color;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\nif( renderType == 0 ) {\ngl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );\n} else if( renderType == 1 ) {\ngl_FragColor = texture2D( map, vUV );\n} else {\nvec4 texture = texture2D( map, vUV );\ntexture.a *= opacity * vVisibility;\ngl_FragColor = texture;\ngl_FragColor.rgb *= color;\n}\n}"},
-lensFlare:{vertexShader:"uniform vec3 screenPosition;\nuniform vec2 scale;\nuniform float rotation;\nuniform int renderType;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvoid main() {\nvUV = uv;\nvec2 pos = position;\nif( renderType == 2 ) {\npos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;\npos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;\n}\ngl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\n}",fragmentShader:"precision mediump float;\nuniform sampler2D map;\nuniform sampler2D occlusionMap;\nuniform float opacity;\nuniform int renderType;\nuniform vec3 color;\nvarying vec2 vUV;\nvoid main() {\nif( renderType == 0 ) {\ngl_FragColor = vec4( texture2D( map, vUV ).rgb, 0.0 );\n} else if( renderType == 1 ) {\ngl_FragColor = texture2D( map, vUV );\n} else {\nfloat visibility = texture2D( occlusionMap, vec2( 0.5, 0.1 ) ).a +\ntexture2D( occlusionMap, vec2( 0.9, 0.5 ) ).a +\ntexture2D( occlusionMap, vec2( 0.5, 0.9 ) ).a +\ntexture2D( occlusionMap, vec2( 0.1, 0.5 ) ).a;\nvisibility = ( 1.0 - visibility / 4.0 );\nvec4 texture = texture2D( map, vUV );\ntexture.a *= opacity * visibility;\ngl_FragColor = texture;\ngl_FragColor.rgb *= color;\n}\n}"}};
-THREE.ShaderSprite={sprite:{vertexShader:"uniform int useScreenCoordinates;\nuniform int affectedByDistance;\nuniform vec3 screenPosition;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform float rotation;\nuniform vec2 scale;\nuniform vec2 alignment;\nuniform vec2 uvOffset;\nuniform vec2 uvScale;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvoid main() {\nvUV = uvOffset + uv * uvScale;\nvec2 alignedPosition = position + alignment;\nvec2 rotatedPosition;\nrotatedPosition.x = ( cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y ) * scale.x;\nrotatedPosition.y = ( sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y ) * scale.y;\nvec4 finalPosition;\nif( useScreenCoordinates != 0 ) {\nfinalPosition = vec4( screenPosition.xy + rotatedPosition, screenPosition.z, 1.0 );\n} else {\nfinalPosition = projectionMatrix * modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\nfinalPosition.xy += rotatedPosition * ( affectedByDistance == 1 ? 1.0 : finalPosition.z );\n}\ngl_Position = finalPosition;\n}",
-fragmentShader:"precision mediump float;\nuniform vec3 color;\nuniform sampler2D map;\nuniform float opacity;\nvarying vec2 vUV;\nvoid main() {\nvec4 texture = texture2D( map, vUV );\ngl_FragColor = vec4( color * texture.xyz, texture.a * opacity );\n}"}};
--- /dev/null
+// threejs.org/license
+(function(k,ha){"object"===typeof exports&&"undefined"!==typeof module?ha(exports):"function"===typeof define&&define.amd?define(["exports"],ha):ha(k.THREE={})})(this,function(k){function ha(){}function y(a,b){this.x=a||0;this.y=b||0}function F(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}function ea(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._w=void 0!==d?d:1}function p(a,
+b,c){this.x=a||0;this.y=b||0;this.z=c||0}function ta(){this.elements=[1,0,0,0,1,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}function ca(a,b,c,d,e,f,g,h,l,m){Object.defineProperty(this,"id",{value:Df++});this.uuid=P.generateUUID();this.name="";this.image=void 0!==a?a:ca.DEFAULT_IMAGE;this.mipmaps=[];this.mapping=void 0!==b?b:ca.DEFAULT_MAPPING;this.wrapS=void 0!==c?c:1001;this.wrapT=void 0!==d?d:1001;this.magFilter=void 0!==
+e?e:1006;this.minFilter=void 0!==f?f:1008;this.anisotropy=void 0!==l?l:1;this.format=void 0!==g?g:1023;this.type=void 0!==h?h:1009;this.offset=new y(0,0);this.repeat=new y(1,1);this.center=new y(0,0);this.rotation=0;this.matrixAutoUpdate=!0;this.matrix=new ta;this.generateMipmaps=!0;this.premultiplyAlpha=!1;this.flipY=!0;this.unpackAlignment=4;this.encoding=void 0!==m?m:3E3;this.version=0;this.onUpdate=null}function U(a,b,c,d){this.x=a||0;this.y=b||0;this.z=c||0;this.w=void 0!==d?d:1}function kb(a,
+b,c){this.width=a;this.height=b;this.scissor=new U(0,0,a,b);this.scissorTest=!1;this.viewport=new U(0,0,a,b);c=c||{};void 0===c.minFilter&&(c.minFilter=1006);this.texture=new ca(void 0,void 0,c.wrapS,c.wrapT,c.magFilter,c.minFilter,c.format,c.type,c.anisotropy,c.encoding);this.texture.generateMipmaps=void 0!==c.generateMipmaps?c.generateMipmaps:!0;this.depthBuffer=void 0!==c.depthBuffer?c.depthBuffer:!0;this.stencilBuffer=void 0!==c.stencilBuffer?c.stencilBuffer:!0;this.depthTexture=void 0!==c.depthTexture?
+c.depthTexture:null}function Lb(a,b,c){kb.call(this,a,b,c);this.activeMipMapLevel=this.activeCubeFace=0}function lb(a,b,c,d,e,f,g,h,l,m,v,n){ca.call(this,null,f,g,h,l,m,d,e,v,n);this.image={data:a,width:b,height:c};this.magFilter=void 0!==l?l:1003;this.minFilter=void 0!==m?m:1003;this.flipY=this.generateMipmaps=!1;this.unpackAlignment=1}function Wa(a,b){this.min=void 0!==a?a:new p(Infinity,Infinity,Infinity);this.max=void 0!==b?b:new p(-Infinity,-Infinity,-Infinity)}function Ga(a,b){this.center=void 0!==
+a?a:new p;this.radius=void 0!==b?b:0}function Ha(a,b){this.normal=void 0!==a?a:new p(1,0,0);this.constant=void 0!==b?b:0}function qd(a,b,c,d,e,f){this.planes=[void 0!==a?a:new Ha,void 0!==b?b:new Ha,void 0!==c?c:new Ha,void 0!==d?d:new Ha,void 0!==e?e:new Ha,void 0!==f?f:new Ha]}function K(a,b,c){return void 0===b&&void 0===c?this.set(a):this.setRGB(a,b,c)}function Td(){function a(e,f){!1!==c&&(d(e,f),b.requestAnimationFrame(a))}var b=null,c=!1,d=null;return{start:function(){!0!==c&&null!==d&&(b.requestAnimationFrame(a),
+c=!0)},stop:function(){c=!1},setAnimationLoop:function(a){d=a},setContext:function(a){b=a}}}function Ef(a){function b(b,c){var d=b.array,e=b.dynamic?a.DYNAMIC_DRAW:a.STATIC_DRAW,h=a.createBuffer();a.bindBuffer(c,h);a.bufferData(c,d,e);b.onUploadCallback();c=a.FLOAT;d instanceof Float32Array?c=a.FLOAT:d instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):d instanceof Uint16Array?c=a.UNSIGNED_SHORT:d instanceof Int16Array?c=a.SHORT:d instanceof
+Uint32Array?c=a.UNSIGNED_INT:d instanceof Int32Array?c=a.INT:d instanceof Int8Array?c=a.BYTE:d instanceof Uint8Array&&(c=a.UNSIGNED_BYTE);return{buffer:h,type:c,bytesPerElement:d.BYTES_PER_ELEMENT,version:b.version}}var c=new WeakMap;return{get:function(a){a.isInterleavedBufferAttribute&&(a=a.data);return c.get(a)},remove:function(b){b.isInterleavedBufferAttribute&&(b=b.data);var d=c.get(b);d&&(a.deleteBuffer(d.buffer),c.delete(b))},update:function(d,e){d.isInterleavedBufferAttribute&&(d=d.data);
+var f=c.get(d);if(void 0===f)c.set(d,b(d,e));else if(f.version<d.version){var g=d,h=g.array,l=g.updateRange;a.bindBuffer(e,f.buffer);!1===g.dynamic?a.bufferData(e,h,a.STATIC_DRAW):-1===l.count?a.bufferSubData(e,0,h):0===l.count?console.error("THREE.WebGLObjects.updateBuffer: dynamic THREE.BufferAttribute marked as needsUpdate but updateRange.count is 0, ensure you are using set methods or updating manually."):(a.bufferSubData(e,l.offset*h.BYTES_PER_ELEMENT,h.subarray(l.offset,l.offset+l.count)),l.count=
+-1);f.version=d.version}}}}function mb(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._order=d||mb.DefaultOrder}function Ud(){this.mask=1}function B(){Object.defineProperty(this,"id",{value:Ff++});this.uuid=P.generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=B.DefaultUp.clone();var a=new p,b=new mb,c=new ea,d=new p(1,1,1);b.onChange(function(){c.setFromEuler(b,!1)});c.onChange(function(){b.setFromQuaternion(c,void 0,!1)});Object.defineProperties(this,
+{position:{enumerable:!0,value:a},rotation:{enumerable:!0,value:b},quaternion:{enumerable:!0,value:c},scale:{enumerable:!0,value:d},modelViewMatrix:{value:new F},normalMatrix:{value:new ta}});this.matrix=new F;this.matrixWorld=new F;this.matrixAutoUpdate=B.DefaultMatrixAutoUpdate;this.matrixWorldNeedsUpdate=!1;this.layers=new Ud;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=0;this.userData={}}function Qa(){B.call(this);this.type="Camera";this.matrixWorldInverse=
+new F;this.projectionMatrix=new F}function Mb(a,b,c,d,e,f){Qa.call(this);this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=a;this.right=b;this.top=c;this.bottom=d;this.near=void 0!==e?e:.1;this.far=void 0!==f?f:2E3;this.updateProjectionMatrix()}function Xa(a,b,c,d,e,f){this.a=a;this.b=b;this.c=c;this.normal=d&&d.isVector3?d:new p;this.vertexNormals=Array.isArray(d)?d:[];this.color=e&&e.isColor?e:new K;this.vertexColors=Array.isArray(e)?e:[];this.materialIndex=void 0!==f?f:0}function J(){Object.defineProperty(this,
+"id",{value:Gf+=2});this.uuid=P.generateUUID();this.name="";this.type="Geometry";this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=this.lineDistancesNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.uvsNeedUpdate=this.verticesNeedUpdate=this.elementsNeedUpdate=!1}function O(a,b,c){if(Array.isArray(a))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");
+this.name="";this.array=a;this.itemSize=b;this.count=void 0!==a?a.length/b:0;this.normalized=!0===c;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.version=0}function vc(a,b,c){O.call(this,new Int8Array(a),b,c)}function wc(a,b,c){O.call(this,new Uint8Array(a),b,c)}function xc(a,b,c){O.call(this,new Uint8ClampedArray(a),b,c)}function yc(a,b,c){O.call(this,new Int16Array(a),b,c)}function nb(a,b,c){O.call(this,new Uint16Array(a),b,c)}function zc(a,b,c){O.call(this,new Int32Array(a),b,c)}function ob(a,
+b,c){O.call(this,new Uint32Array(a),b,c)}function A(a,b,c){O.call(this,new Float32Array(a),b,c)}function Ac(a,b,c){O.call(this,new Float64Array(a),b,c)}function Ee(){this.vertices=[];this.normals=[];this.colors=[];this.uvs=[];this.uvs2=[];this.groups=[];this.morphTargets={};this.skinWeights=[];this.skinIndices=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=this.uvsNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.verticesNeedUpdate=!1}function Fe(a){if(0===a.length)return-Infinity;
+for(var b=a[0],c=1,d=a.length;c<d;++c)a[c]>b&&(b=a[c]);return b}function G(){Object.defineProperty(this,"id",{value:Hf+=2});this.uuid=P.generateUUID();this.name="";this.type="BufferGeometry";this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingSphere=this.boundingBox=null;this.drawRange={start:0,count:Infinity};this.userData={}}function Nb(a,b,c,d,e,f){J.call(this);this.type="BoxGeometry";this.parameters={width:a,height:b,depth:c,widthSegments:d,heightSegments:e,
+depthSegments:f};this.fromBufferGeometry(new pb(a,b,c,d,e,f));this.mergeVertices()}function pb(a,b,c,d,e,f){function g(a,b,c,d,e,f,g,k,Q,E,Bc){var t=f/Q,u=g/E,V=f/2,z=g/2,w=k/2;g=Q+1;var x=E+1,H=f=0,C,y,A=new p;for(y=0;y<x;y++){var B=y*u-z;for(C=0;C<g;C++)A[a]=(C*t-V)*d,A[b]=B*e,A[c]=w,m.push(A.x,A.y,A.z),A[a]=0,A[b]=0,A[c]=0<k?1:-1,v.push(A.x,A.y,A.z),n.push(C/Q),n.push(1-y/E),f+=1}for(y=0;y<E;y++)for(C=0;C<Q;C++)a=r+C+g*(y+1),b=r+(C+1)+g*(y+1),c=r+(C+1)+g*y,l.push(r+C+g*y,a,c),l.push(a,b,c),H+=
+6;h.addGroup(q,H,Bc);q+=H;r+=f}G.call(this);this.type="BoxBufferGeometry";this.parameters={width:a,height:b,depth:c,widthSegments:d,heightSegments:e,depthSegments:f};var h=this;a=a||1;b=b||1;c=c||1;d=Math.floor(d)||1;e=Math.floor(e)||1;f=Math.floor(f)||1;var l=[],m=[],v=[],n=[],r=0,q=0;g("z","y","x",-1,-1,c,b,a,f,e,0);g("z","y","x",1,-1,c,b,-a,f,e,1);g("x","z","y",1,1,a,c,b,d,f,2);g("x","z","y",1,-1,a,c,-b,d,f,3);g("x","y","z",1,-1,a,b,c,d,e,4);g("x","y","z",-1,-1,a,b,-c,d,e,5);this.setIndex(l);this.addAttribute("position",
+new A(m,3));this.addAttribute("normal",new A(v,3));this.addAttribute("uv",new A(n,2))}function Cc(a,b,c,d){J.call(this);this.type="PlaneGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};this.fromBufferGeometry(new rb(a,b,c,d));this.mergeVertices()}function rb(a,b,c,d){G.call(this);this.type="PlaneBufferGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};a=a||1;b=b||1;var e=a/2,f=b/2;c=Math.floor(c)||1;d=Math.floor(d)||1;var g=c+1,h=d+1,l=a/c,m=
+b/d,v=[],n=[],r=[],q=[];for(a=0;a<h;a++){var t=a*m-f;for(b=0;b<g;b++)n.push(b*l-e,-t,0),r.push(0,0,1),q.push(b/c),q.push(1-a/d)}for(a=0;a<d;a++)for(b=0;b<c;b++)e=b+g*(a+1),f=b+1+g*(a+1),h=b+1+g*a,v.push(b+g*a,e,h),v.push(e,f,h);this.setIndex(v);this.addAttribute("position",new A(n,3));this.addAttribute("normal",new A(r,3));this.addAttribute("uv",new A(q,2))}function L(){Object.defineProperty(this,"id",{value:If++});this.uuid=P.generateUUID();this.name="";this.type="Material";this.lights=this.fog=
+!0;this.blending=1;this.side=0;this.flatShading=!1;this.vertexColors=0;this.opacity=1;this.transparent=!1;this.blendSrc=204;this.blendDst=205;this.blendEquation=100;this.blendEquationAlpha=this.blendDstAlpha=this.blendSrcAlpha=null;this.depthFunc=3;this.depthWrite=this.depthTest=!0;this.clippingPlanes=null;this.clipShadows=this.clipIntersection=!1;this.shadowSide=null;this.colorWrite=!0;this.precision=null;this.polygonOffset=!1;this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.dithering=!1;
+this.alphaTest=0;this.premultipliedAlpha=!1;this.overdraw=0;this.visible=!0;this.userData={};this.needsUpdate=!0}function ka(a){L.call(this);this.type="MeshBasicMaterial";this.color=new K(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.lights=
+this.morphTargets=this.skinning=!1;this.setValues(a)}function Ea(a){L.call(this);this.type="ShaderMaterial";this.defines={};this.uniforms={};this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}";this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";this.linewidth=1;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.clipping=this.lights=this.fog=!1;this.extensions=
+{derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1};this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]};this.index0AttributeName=void 0;this.uniformsNeedUpdate=!1;void 0!==a&&(void 0!==a.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(a))}function sb(a,b){this.origin=void 0!==a?a:new p;this.direction=void 0!==b?b:new p}function Ob(a,b){this.start=void 0!==a?a:new p;this.end=void 0!==b?b:new p}
+function Aa(a,b,c){this.a=void 0!==a?a:new p;this.b=void 0!==b?b:new p;this.c=void 0!==c?c:new p}function pa(a,b){B.call(this);this.type="Mesh";this.geometry=void 0!==a?a:new G;this.material=void 0!==b?b:new ka({color:16777215*Math.random()});this.drawMode=0;this.updateMorphTargets()}function Jf(a,b,c,d){function e(a,c){b.buffers.color.setClear(a.r,a.g,a.b,c,d)}var f=new K(0),g=0,h,l,m;return{getClearColor:function(){return f},setClearColor:function(a,b){f.set(a);g=void 0!==b?b:1;e(f,g)},getClearAlpha:function(){return g},
+setClearAlpha:function(a){g=a;e(f,g)},render:function(b,d,r,q){d=d.background;null===d?e(f,g):d&&d.isColor&&(e(d,1),q=!0);(a.autoClear||q)&&a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil);d&&d.isCubeTexture?(void 0===m&&(m=new pa(new pb(1,1,1),new Ea({uniforms:tb.cube.uniforms,vertexShader:tb.cube.vertexShader,fragmentShader:tb.cube.fragmentShader,side:1,depthTest:!0,depthWrite:!1,fog:!1})),m.geometry.removeAttribute("normal"),m.geometry.removeAttribute("uv"),m.onBeforeRender=function(a,
+b,c){this.matrixWorld.copyPosition(c.matrixWorld)},c.update(m)),m.material.uniforms.tCube.value=d,b.push(m,m.geometry,m.material,0,null)):d&&d.isTexture&&(void 0===h&&(h=new Mb(-1,1,1,-1,0,1),l=new pa(new rb(2,2),new ka({depthTest:!1,depthWrite:!1,fog:!1})),c.update(l)),l.material.map=d,a.renderBufferDirect(h,null,l.geometry,l.material,l,null))}}}function Kf(a,b,c){var d;this.setMode=function(a){d=a};this.render=function(b,f){a.drawArrays(d,b,f);c.update(f,d)};this.renderInstances=function(a,f,g){var e=
+b.get("ANGLE_instanced_arrays");null===e?console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays."):(e.drawArraysInstancedANGLE(d,f,g,a.maxInstancedCount),c.update(g,d,a.maxInstancedCount))}}function Lf(a,b,c){function d(b){if("highp"===b){if(0<a.getShaderPrecisionFormat(a.VERTEX_SHADER,a.HIGH_FLOAT).precision&&0<a.getShaderPrecisionFormat(a.FRAGMENT_SHADER,a.HIGH_FLOAT).precision)return"highp";b="mediump"}return"mediump"===
+b&&0<a.getShaderPrecisionFormat(a.VERTEX_SHADER,a.MEDIUM_FLOAT).precision&&0<a.getShaderPrecisionFormat(a.FRAGMENT_SHADER,a.MEDIUM_FLOAT).precision?"mediump":"lowp"}var e,f=void 0!==c.precision?c.precision:"highp",g=d(f);g!==f&&(console.warn("THREE.WebGLRenderer:",f,"not supported, using",g,"instead."),f=g);c=!0===c.logarithmicDepthBuffer;g=a.getParameter(a.MAX_TEXTURE_IMAGE_UNITS);var h=a.getParameter(a.MAX_VERTEX_TEXTURE_IMAGE_UNITS),l=a.getParameter(a.MAX_TEXTURE_SIZE),m=a.getParameter(a.MAX_CUBE_MAP_TEXTURE_SIZE),
+v=a.getParameter(a.MAX_VERTEX_ATTRIBS),n=a.getParameter(a.MAX_VERTEX_UNIFORM_VECTORS),r=a.getParameter(a.MAX_VARYING_VECTORS),q=a.getParameter(a.MAX_FRAGMENT_UNIFORM_VECTORS),t=0<h,k=!!b.get("OES_texture_float");return{getMaxAnisotropy:function(){if(void 0!==e)return e;var c=b.get("EXT_texture_filter_anisotropic");return e=null!==c?a.getParameter(c.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:d,precision:f,logarithmicDepthBuffer:c,maxTextures:g,maxVertexTextures:h,maxTextureSize:l,maxCubemapSize:m,
+maxAttributes:v,maxVertexUniforms:n,maxVaryings:r,maxFragmentUniforms:q,vertexTextures:t,floatFragmentTextures:k,floatVertexTextures:t&&k}}function Mf(){function a(){m.value!==d&&(m.value=d,m.needsUpdate=0<e);c.numPlanes=e;c.numIntersection=0}function b(a,b,d,e){var f=null!==a?a.length:0,g=null;if(0!==f){g=m.value;if(!0!==e||null===g){e=d+4*f;b=b.matrixWorldInverse;l.getNormalMatrix(b);if(null===g||g.length<e)g=new Float32Array(e);for(e=0;e!==f;++e,d+=4)h.copy(a[e]).applyMatrix4(b,l),h.normal.toArray(g,
+d),g[d+3]=h.constant}m.value=g;m.needsUpdate=!0}c.numPlanes=f;return g}var c=this,d=null,e=0,f=!1,g=!1,h=new Ha,l=new ta,m={value:null,needsUpdate:!1};this.uniform=m;this.numIntersection=this.numPlanes=0;this.init=function(a,c,g){var h=0!==a.length||c||0!==e||f;f=c;d=b(a,g,0);e=a.length;return h};this.beginShadows=function(){g=!0;b(null)};this.endShadows=function(){g=!1;a()};this.setState=function(c,h,l,q,t,k){if(!f||null===c||0===c.length||g&&!l)g?b(null):a();else{l=g?0:e;var n=4*l,v=t.clippingState||
+null;m.value=v;v=b(c,q,n,k);for(c=0;c!==n;++c)v[c]=d[c];t.clippingState=v;this.numIntersection=h?this.numPlanes:0;this.numPlanes+=l}}}function Nf(a){var b={};return{get:function(c){if(void 0!==b[c])return b[c];switch(c){case "WEBGL_depth_texture":var d=a.getExtension("WEBGL_depth_texture")||a.getExtension("MOZ_WEBGL_depth_texture")||a.getExtension("WEBKIT_WEBGL_depth_texture");break;case "EXT_texture_filter_anisotropic":d=a.getExtension("EXT_texture_filter_anisotropic")||a.getExtension("MOZ_EXT_texture_filter_anisotropic")||
+a.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case "WEBGL_compressed_texture_s3tc":d=a.getExtension("WEBGL_compressed_texture_s3tc")||a.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case "WEBGL_compressed_texture_pvrtc":d=a.getExtension("WEBGL_compressed_texture_pvrtc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:d=a.getExtension(c)}null===d&&console.warn("THREE.WebGLRenderer: "+c+" extension not supported.");
+return b[c]=d}}}function Of(a,b,c){function d(a){a=a.target;var g=e[a.id];null!==g.index&&b.remove(g.index);for(var l in g.attributes)b.remove(g.attributes[l]);a.removeEventListener("dispose",d);delete e[a.id];if(l=f[a.id])b.remove(l),delete f[a.id];if(l=f[g.id])b.remove(l),delete f[g.id];c.memory.geometries--}var e={},f={};return{get:function(a,b){var f=e[b.id];if(f)return f;b.addEventListener("dispose",d);b.isBufferGeometry?f=b:b.isGeometry&&(void 0===b._bufferGeometry&&(b._bufferGeometry=(new G).setFromObject(a)),
+f=b._bufferGeometry);e[b.id]=f;c.memory.geometries++;return f},update:function(c){var d=c.index,e=c.attributes;null!==d&&b.update(d,a.ELEMENT_ARRAY_BUFFER);for(var f in e)b.update(e[f],a.ARRAY_BUFFER);c=c.morphAttributes;for(f in c){d=c[f];e=0;for(var g=d.length;e<g;e++)b.update(d[e],a.ARRAY_BUFFER)}},getWireframeAttribute:function(c){var d=f[c.id];if(d)return d;d=[];var e=c.index,g=c.attributes;if(null!==e){e=e.array;g=0;for(var v=e.length;g<v;g+=3){var n=e[g+0],r=e[g+1],q=e[g+2];d.push(n,r,r,q,
+q,n)}}else for(e=g.position.array,g=0,v=e.length/3-1;g<v;g+=3)n=g+0,r=g+1,q=g+2,d.push(n,r,r,q,q,n);d=new (65535<Fe(d)?ob:nb)(d,1);b.update(d,a.ELEMENT_ARRAY_BUFFER);return f[c.id]=d}}}function Pf(a,b,c){var d,e,f;this.setMode=function(a){d=a};this.setIndex=function(a){e=a.type;f=a.bytesPerElement};this.render=function(b,h){a.drawElements(d,h,e,b*f);c.update(h,d)};this.renderInstances=function(a,h,l){var g=b.get("ANGLE_instanced_arrays");null===g?console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays."):
+(g.drawElementsInstancedANGLE(d,l,e,h*f,a.maxInstancedCount),c.update(l,d,a.maxInstancedCount))}}function Qf(a){var b={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:b,programs:null,autoReset:!0,reset:function(){b.frame++;b.calls=0;b.triangles=0;b.points=0;b.lines=0},update:function(c,d,e){e=e||1;b.calls++;switch(d){case a.TRIANGLES:b.triangles+=c/3*e;break;case a.TRIANGLE_STRIP:case a.TRIANGLE_FAN:b.triangles+=e*(c-2);break;case a.LINES:b.lines+=c/2*
+e;break;case a.LINE_STRIP:b.lines+=e*(c-1);break;case a.LINE_LOOP:b.lines+=e*c;break;case a.POINTS:b.points+=e*c;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",d)}}}}function Rf(a,b){return Math.abs(b[1])-Math.abs(a[1])}function Sf(a){var b={},c=new Float32Array(8);return{update:function(d,e,f,g){var h=d.morphTargetInfluences,l=h.length;d=b[e.id];if(void 0===d){d=[];for(var m=0;m<l;m++)d[m]=[m,0];b[e.id]=d}var v=f.morphTargets&&e.morphAttributes.position;f=f.morphNormals&&e.morphAttributes.normal;
+for(m=0;m<l;m++){var n=d[m];0!==n[1]&&(v&&e.removeAttribute("morphTarget"+m),f&&e.removeAttribute("morphNormal"+m))}for(m=0;m<l;m++)n=d[m],n[0]=m,n[1]=h[m];d.sort(Rf);for(m=0;8>m;m++){if(n=d[m])if(h=n[0],l=n[1]){v&&e.addAttribute("morphTarget"+m,v[h]);f&&e.addAttribute("morphNormal"+m,f[h]);c[m]=l;continue}c[m]=0}g.getUniforms().setValue(a,"morphTargetInfluences",c)}}}function Tf(a,b){var c={};return{update:function(d){var e=b.render.frame,f=d.geometry,g=a.get(d,f);c[g.id]!==e&&(f.isGeometry&&g.updateFromObject(d),
+a.update(g),c[g.id]=e);return g},dispose:function(){c={}}}}function cb(a,b,c,d,e,f,g,h,l,m){a=void 0!==a?a:[];ca.call(this,a,void 0!==b?b:301,c,d,e,f,g,h,l,m);this.flipY=!1}function Pb(a,b,c){var d=a[0];if(0>=d||0<d)return a;var e=b*c,f=Ge[e];void 0===f&&(f=new Float32Array(e),Ge[e]=f);if(0!==b)for(d.toArray(f,0),d=1,e=0;d!==b;++d)e+=c,a[d].toArray(f,e);return f}function R(a,b){if(a.length!==b.length)return!1;for(var c=0,d=a.length;c<d;c++)if(a[c]!==b[c])return!1;return!0}function qa(a,b){for(var c=
+0,d=b.length;c<d;c++)a[c]=b[c]}function He(a,b){var c=Ie[b];void 0===c&&(c=new Int32Array(b),Ie[b]=c);for(var d=0;d!==b;++d)c[d]=a.allocTextureUnit();return c}function Uf(a,b){var c=this.cache;c[0]!==b&&(a.uniform1f(this.addr,b),c[0]=b)}function Vf(a,b){var c=this.cache;c[0]!==b&&(a.uniform1i(this.addr,b),c[0]=b)}function Wf(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y)a.uniform2f(this.addr,b.x,b.y),c[0]=b.x,c[1]=b.y}else R(c,b)||(a.uniform2fv(this.addr,b),qa(c,b))}function Xf(a,
+b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y||c[2]!==b.z)a.uniform3f(this.addr,b.x,b.y,b.z),c[0]=b.x,c[1]=b.y,c[2]=b.z}else if(void 0!==b.r){if(c[0]!==b.r||c[1]!==b.g||c[2]!==b.b)a.uniform3f(this.addr,b.r,b.g,b.b),c[0]=b.r,c[1]=b.g,c[2]=b.b}else R(c,b)||(a.uniform3fv(this.addr,b),qa(c,b))}function Yf(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y||c[2]!==b.z||c[3]!==b.w)a.uniform4f(this.addr,b.x,b.y,b.z,b.w),c[0]=b.x,c[1]=b.y,c[2]=b.z,c[3]=b.w}else R(c,b)||(a.uniform4fv(this.addr,
+b),qa(c,b))}function Zf(a,b){var c=this.cache,d=b.elements;void 0===d?R(c,b)||(a.uniformMatrix2fv(this.addr,!1,b),qa(c,b)):R(c,d)||(Je.set(d),a.uniformMatrix2fv(this.addr,!1,Je),qa(c,d))}function $f(a,b){var c=this.cache,d=b.elements;void 0===d?R(c,b)||(a.uniformMatrix3fv(this.addr,!1,b),qa(c,b)):R(c,d)||(Ke.set(d),a.uniformMatrix3fv(this.addr,!1,Ke),qa(c,d))}function ag(a,b){var c=this.cache,d=b.elements;void 0===d?R(c,b)||(a.uniformMatrix4fv(this.addr,!1,b),qa(c,b)):R(c,d)||(Le.set(d),a.uniformMatrix4fv(this.addr,
+!1,Le),qa(c,d))}function bg(a,b,c){var d=this.cache,e=c.allocTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.setTexture2D(b||Me,e)}function cg(a,b,c){var d=this.cache,e=c.allocTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.setTextureCube(b||Ne,e)}function Oe(a,b){var c=this.cache;R(c,b)||(a.uniform2iv(this.addr,b),qa(c,b))}function Pe(a,b){var c=this.cache;R(c,b)||(a.uniform3iv(this.addr,b),qa(c,b))}function Qe(a,b){var c=this.cache;R(c,b)||(a.uniform4iv(this.addr,b),qa(c,
+b))}function dg(a){switch(a){case 5126:return Uf;case 35664:return Wf;case 35665:return Xf;case 35666:return Yf;case 35674:return Zf;case 35675:return $f;case 35676:return ag;case 35678:case 36198:return bg;case 35680:return cg;case 5124:case 35670:return Vf;case 35667:case 35671:return Oe;case 35668:case 35672:return Pe;case 35669:case 35673:return Qe}}function eg(a,b){var c=this.cache;R(c,b)||(a.uniform1fv(this.addr,b),qa(c,b))}function fg(a,b){var c=this.cache;R(c,b)||(a.uniform1iv(this.addr,b),
+qa(c,b))}function gg(a,b){var c=this.cache;b=Pb(b,this.size,2);R(c,b)||(a.uniform2fv(this.addr,b),this.updateCache(b))}function hg(a,b){var c=this.cache;b=Pb(b,this.size,3);R(c,b)||(a.uniform3fv(this.addr,b),this.updateCache(b))}function ig(a,b){var c=this.cache;b=Pb(b,this.size,4);R(c,b)||(a.uniform4fv(this.addr,b),this.updateCache(b))}function jg(a,b){var c=this.cache;b=Pb(b,this.size,4);R(c,b)||(a.uniformMatrix2fv(this.addr,!1,b),this.updateCache(b))}function kg(a,b){var c=this.cache;b=Pb(b,this.size,
+9);R(c,b)||(a.uniformMatrix3fv(this.addr,!1,b),this.updateCache(b))}function lg(a,b){var c=this.cache;b=Pb(b,this.size,16);R(c,b)||(a.uniformMatrix4fv(this.addr,!1,b),this.updateCache(b))}function mg(a,b,c){var d=this.cache,e=b.length,f=He(c,e);!1===R(d,f)&&(a.uniform1iv(this.addr,f),qa(d,f));for(a=0;a!==e;++a)c.setTexture2D(b[a]||Me,f[a])}function ng(a,b,c){var d=this.cache,e=b.length,f=He(c,e);!1===R(d,f)&&(a.uniform1iv(this.addr,f),qa(d,f));for(a=0;a!==e;++a)c.setTextureCube(b[a]||Ne,f[a])}function og(a){switch(a){case 5126:return eg;
+case 35664:return gg;case 35665:return hg;case 35666:return ig;case 35674:return jg;case 35675:return kg;case 35676:return lg;case 35678:return mg;case 35680:return ng;case 5124:case 35670:return fg;case 35667:case 35671:return Oe;case 35668:case 35672:return Pe;case 35669:case 35673:return Qe}}function pg(a,b,c){this.id=a;this.addr=c;this.cache=[];this.setValue=dg(b.type)}function Re(a,b,c){this.id=a;this.addr=c;this.cache=[];this.size=b.size;this.setValue=og(b.type)}function Se(a){this.id=a;this.seq=
+[];this.map={}}function db(a,b,c){this.seq=[];this.map={};this.renderer=c;c=a.getProgramParameter(b,a.ACTIVE_UNIFORMS);for(var d=0;d<c;++d){var e=a.getActiveUniform(b,d),f=a.getUniformLocation(b,e.name),g=this,h=e.name,l=h.length;for(Wd.lastIndex=0;;){var m=Wd.exec(h),v=Wd.lastIndex,n=m[1],r=m[3];"]"===m[2]&&(n|=0);if(void 0===r||"["===r&&v+2===l){h=g;e=void 0===r?new pg(n,e,f):new Re(n,e,f);h.seq.push(e);h.map[e.id]=e;break}else r=g.map[n],void 0===r&&(r=new Se(n),n=g,g=r,n.seq.push(g),n.map[g.id]=
+g),g=r}}}function qg(a){a=a.split("\n");for(var b=0;b<a.length;b++)a[b]=b+1+": "+a[b];return a.join("\n")}function Te(a,b,c){var d=a.createShader(b);a.shaderSource(d,c);a.compileShader(d);!1===a.getShaderParameter(d,a.COMPILE_STATUS)&&console.error("THREE.WebGLShader: Shader couldn't compile.");""!==a.getShaderInfoLog(d)&&console.warn("THREE.WebGLShader: gl.getShaderInfoLog()",b===a.VERTEX_SHADER?"vertex":"fragment",a.getShaderInfoLog(d),qg(c));return d}function Ue(a){switch(a){case 3E3:return["Linear",
+"( value )"];case 3001:return["sRGB","( value )"];case 3002:return["RGBE","( value )"];case 3004:return["RGBM","( value, 7.0 )"];case 3005:return["RGBM","( value, 16.0 )"];case 3006:return["RGBD","( value, 256.0 )"];case 3007:return["Gamma","( value, float( GAMMA_FACTOR ) )"];default:throw Error("unsupported encoding: "+a);}}function Xd(a,b){b=Ue(b);return"vec4 "+a+"( vec4 value ) { return "+b[0]+"ToLinear"+b[1]+"; }"}function rg(a,b){b=Ue(b);return"vec4 "+a+"( vec4 value ) { return LinearTo"+b[0]+
+b[1]+"; }"}function sg(a,b){switch(b){case 1:b="Linear";break;case 2:b="Reinhard";break;case 3:b="Uncharted2";break;case 4:b="OptimizedCineon";break;default:throw Error("unsupported toneMapping: "+b);}return"vec3 "+a+"( vec3 color ) { return "+b+"ToneMapping( color ); }"}function tg(a,b,c){a=a||{};return[a.derivatives||b.envMapCubeUV||b.bumpMap||b.normalMap&&!b.objectSpaceNormalMap||b.flatShading?"#extension GL_OES_standard_derivatives : enable":"",(a.fragDepth||b.logarithmicDepthBuffer)&&c.get("EXT_frag_depth")?
+"#extension GL_EXT_frag_depth : enable":"",a.drawBuffers&&c.get("WEBGL_draw_buffers")?"#extension GL_EXT_draw_buffers : require":"",(a.shaderTextureLOD||b.envMap)&&c.get("EXT_shader_texture_lod")?"#extension GL_EXT_shader_texture_lod : enable":""].filter(Dc).join("\n")}function ug(a){var b=[],c;for(c in a){var d=a[c];!1!==d&&b.push("#define "+c+" "+d)}return b.join("\n")}function Dc(a){return""!==a}function Ve(a,b){return a.replace(/NUM_DIR_LIGHTS/g,b.numDirLights).replace(/NUM_SPOT_LIGHTS/g,b.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,
+b.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,b.numPointLights).replace(/NUM_HEMI_LIGHTS/g,b.numHemiLights)}function We(a,b){return a.replace(/NUM_CLIPPING_PLANES/g,b.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,b.numClippingPlanes-b.numClipIntersection)}function Yd(a){return a.replace(/^[ \t]*#include +<([\w\d.]+)>/gm,function(a,c){a=W[c];if(void 0===a)throw Error("Can not resolve #include <"+c+">");return Yd(a)})}function Xe(a){return a.replace(/#pragma unroll_loop[\s]+?for \( int i = (\d+); i < (\d+); i \+\+ \) \{([\s\S]+?)(?=\})\}/g,
+function(a,c,d,e){a="";for(c=parseInt(c);c<parseInt(d);c++)a+=e.replace(/\[ i \]/g,"[ "+c+" ]");return a})}function vg(a,b,c,d,e,f){var g=a.context,h=d.defines,l=e.vertexShader,m=e.fragmentShader,v="SHADOWMAP_TYPE_BASIC";1===f.shadowMapType?v="SHADOWMAP_TYPE_PCF":2===f.shadowMapType&&(v="SHADOWMAP_TYPE_PCF_SOFT");var n="ENVMAP_TYPE_CUBE",r="ENVMAP_MODE_REFLECTION",q="ENVMAP_BLENDING_MULTIPLY";if(f.envMap){switch(d.envMap.mapping){case 301:case 302:n="ENVMAP_TYPE_CUBE";break;case 306:case 307:n="ENVMAP_TYPE_CUBE_UV";
+break;case 303:case 304:n="ENVMAP_TYPE_EQUIREC";break;case 305:n="ENVMAP_TYPE_SPHERE"}switch(d.envMap.mapping){case 302:case 304:r="ENVMAP_MODE_REFRACTION"}switch(d.combine){case 0:q="ENVMAP_BLENDING_MULTIPLY";break;case 1:q="ENVMAP_BLENDING_MIX";break;case 2:q="ENVMAP_BLENDING_ADD"}}var t=0<a.gammaFactor?a.gammaFactor:1,k=tg(d.extensions,f,b),p=ug(h),x=g.createProgram();d.isRawShaderMaterial?(h=[p].filter(Dc).join("\n"),0<h.length&&(h+="\n"),b=[k,p].filter(Dc).join("\n"),0<b.length&&(b+="\n")):(h=
+["precision "+f.precision+" float;","precision "+f.precision+" int;","#define SHADER_NAME "+e.name,p,f.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+t,"#define MAX_BONES "+f.maxBones,f.useFog&&f.fog?"#define USE_FOG":"",f.useFog&&f.fogExp?"#define FOG_EXP2":"",f.map?"#define USE_MAP":"",f.envMap?"#define USE_ENVMAP":"",f.envMap?"#define "+r:"",f.lightMap?"#define USE_LIGHTMAP":"",f.aoMap?"#define USE_AOMAP":"",f.emissiveMap?"#define USE_EMISSIVEMAP":"",f.bumpMap?"#define USE_BUMPMAP":
+"",f.normalMap?"#define USE_NORMALMAP":"",f.normalMap&&f.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",f.displacementMap&&f.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",f.specularMap?"#define USE_SPECULARMAP":"",f.roughnessMap?"#define USE_ROUGHNESSMAP":"",f.metalnessMap?"#define USE_METALNESSMAP":"",f.alphaMap?"#define USE_ALPHAMAP":"",f.vertexColors?"#define USE_COLOR":"",f.flatShading?"#define FLAT_SHADED":"",f.skinning?"#define USE_SKINNING":"",f.useVertexTexture?"#define BONE_TEXTURE":
+"",f.morphTargets?"#define USE_MORPHTARGETS":"",f.morphNormals&&!1===f.flatShading?"#define USE_MORPHNORMALS":"",f.doubleSided?"#define DOUBLE_SIDED":"",f.flipSided?"#define FLIP_SIDED":"",f.shadowMapEnabled?"#define USE_SHADOWMAP":"",f.shadowMapEnabled?"#define "+v:"",f.sizeAttenuation?"#define USE_SIZEATTENUATION":"",f.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",f.logarithmicDepthBuffer&&b.get("EXT_frag_depth")?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;",
+"uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_COLOR","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;",
+"\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Dc).join("\n"),b=[k,"precision "+f.precision+" float;","precision "+f.precision+" int;","#define SHADER_NAME "+e.name,p,f.alphaTest?"#define ALPHATEST "+f.alphaTest+
+(f.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+t,f.useFog&&f.fog?"#define USE_FOG":"",f.useFog&&f.fogExp?"#define FOG_EXP2":"",f.map?"#define USE_MAP":"",f.envMap?"#define USE_ENVMAP":"",f.envMap?"#define "+n:"",f.envMap?"#define "+r:"",f.envMap?"#define "+q:"",f.lightMap?"#define USE_LIGHTMAP":"",f.aoMap?"#define USE_AOMAP":"",f.emissiveMap?"#define USE_EMISSIVEMAP":"",f.bumpMap?"#define USE_BUMPMAP":"",f.normalMap?"#define USE_NORMALMAP":"",f.normalMap&&f.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":
+"",f.specularMap?"#define USE_SPECULARMAP":"",f.roughnessMap?"#define USE_ROUGHNESSMAP":"",f.metalnessMap?"#define USE_METALNESSMAP":"",f.alphaMap?"#define USE_ALPHAMAP":"",f.vertexColors?"#define USE_COLOR":"",f.gradientMap?"#define USE_GRADIENTMAP":"",f.flatShading?"#define FLAT_SHADED":"",f.doubleSided?"#define DOUBLE_SIDED":"",f.flipSided?"#define FLIP_SIDED":"",f.shadowMapEnabled?"#define USE_SHADOWMAP":"",f.shadowMapEnabled?"#define "+v:"",f.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":
+"",f.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",f.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",f.logarithmicDepthBuffer&&b.get("EXT_frag_depth")?"#define USE_LOGDEPTHBUF_EXT":"",f.envMap&&b.get("EXT_shader_texture_lod")?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;",0!==f.toneMapping?"#define TONE_MAPPING":"",0!==f.toneMapping?W.tonemapping_pars_fragment:"",0!==f.toneMapping?sg("toneMapping",f.toneMapping):"",f.dithering?"#define DITHERING":
+"",f.outputEncoding||f.mapEncoding||f.envMapEncoding||f.emissiveMapEncoding?W.encodings_pars_fragment:"",f.mapEncoding?Xd("mapTexelToLinear",f.mapEncoding):"",f.envMapEncoding?Xd("envMapTexelToLinear",f.envMapEncoding):"",f.emissiveMapEncoding?Xd("emissiveMapTexelToLinear",f.emissiveMapEncoding):"",f.outputEncoding?rg("linearToOutputTexel",f.outputEncoding):"",f.depthPacking?"#define DEPTH_PACKING "+d.depthPacking:"","\n"].filter(Dc).join("\n"));l=Yd(l);l=Ve(l,f);l=We(l,f);m=Yd(m);m=Ve(m,f);m=We(m,
+f);l=Xe(l);m=Xe(m);m=b+m;l=Te(g,g.VERTEX_SHADER,h+l);m=Te(g,g.FRAGMENT_SHADER,m);g.attachShader(x,l);g.attachShader(x,m);void 0!==d.index0AttributeName?g.bindAttribLocation(x,0,d.index0AttributeName):!0===f.morphTargets&&g.bindAttribLocation(x,0,"position");g.linkProgram(x);f=g.getProgramInfoLog(x).trim();v=g.getShaderInfoLog(l).trim();n=g.getShaderInfoLog(m).trim();q=r=!0;if(!1===g.getProgramParameter(x,g.LINK_STATUS))r=!1,console.error("THREE.WebGLProgram: shader error: ",g.getError(),"gl.VALIDATE_STATUS",
+g.getProgramParameter(x,g.VALIDATE_STATUS),"gl.getProgramInfoLog",f,v,n);else if(""!==f)console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",f);else if(""===v||""===n)q=!1;q&&(this.diagnostics={runnable:r,material:d,programLog:f,vertexShader:{log:v,prefix:h},fragmentShader:{log:n,prefix:b}});g.deleteShader(l);g.deleteShader(m);var w;this.getUniforms=function(){void 0===w&&(w=new db(g,x,a));return w};var H;this.getAttributes=function(){if(void 0===H){for(var a={},b=g.getProgramParameter(x,g.ACTIVE_ATTRIBUTES),
+c=0;c<b;c++){var d=g.getActiveAttrib(x,c).name;a[d]=g.getAttribLocation(x,d)}H=a}return H};this.destroy=function(){g.deleteProgram(x);this.program=void 0};Object.defineProperties(this,{uniforms:{get:function(){console.warn("THREE.WebGLProgram: .uniforms is now .getUniforms().");return this.getUniforms()}},attributes:{get:function(){console.warn("THREE.WebGLProgram: .attributes is now .getAttributes().");return this.getAttributes()}}});this.name=e.name;this.id=wg++;this.code=c;this.usedTimes=1;this.program=
+x;this.vertexShader=l;this.fragmentShader=m;return this}function xg(a,b,c){function d(a,b){if(a)a.isTexture?c=a.encoding:a.isWebGLRenderTarget&&(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),c=a.texture.encoding);else var c=3E3;3E3===c&&b&&(c=3007);return c}var e=[],f={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",
+MeshPhongMaterial:"phong",MeshToonMaterial:"phong",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow"},g="precision supportsVertexTextures map mapEncoding envMap envMapMode envMapEncoding lightMap aoMap emissiveMap emissiveMapEncoding bumpMap normalMap objectSpaceNormalMap displacementMap specularMap roughnessMap metalnessMap gradientMap alphaMap combine vertexColors fog useFog fogExp flatShading sizeAttenuation logarithmicDepthBuffer skinning maxBones useVertexTexture morphTargets morphNormals maxMorphTargets maxMorphNormals premultipliedAlpha numDirLights numPointLights numSpotLights numHemiLights numRectAreaLights shadowMapEnabled shadowMapType toneMapping physicallyCorrectLights alphaTest doubleSided flipSided numClippingPlanes numClipIntersection depthPacking dithering".split(" ");
+this.getParameters=function(b,e,g,v,n,r,q){var h=f[b.type];if(q.isSkinnedMesh){var l=q.skeleton.bones;if(c.floatVertexTextures)l=1024;else{var m=Math.min(Math.floor((c.maxVertexUniforms-20)/4),l.length);m<l.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+l.length+" bones. This GPU supports "+m+"."),l=0):l=m}}else l=0;m=c.precision;null!==b.precision&&(m=c.getMaxPrecision(b.precision),m!==b.precision&&console.warn("THREE.WebGLProgram.getParameters:",b.precision,"not supported, using",m,"instead."));
+var k=a.getRenderTarget();return{shaderID:h,precision:m,supportsVertexTextures:c.vertexTextures,outputEncoding:d(k?k.texture:null,a.gammaOutput),map:!!b.map,mapEncoding:d(b.map,a.gammaInput),envMap:!!b.envMap,envMapMode:b.envMap&&b.envMap.mapping,envMapEncoding:d(b.envMap,a.gammaInput),envMapCubeUV:!!b.envMap&&(306===b.envMap.mapping||307===b.envMap.mapping),lightMap:!!b.lightMap,aoMap:!!b.aoMap,emissiveMap:!!b.emissiveMap,emissiveMapEncoding:d(b.emissiveMap,a.gammaInput),bumpMap:!!b.bumpMap,normalMap:!!b.normalMap,
+objectSpaceNormalMap:1===b.normalMapType,displacementMap:!!b.displacementMap,roughnessMap:!!b.roughnessMap,metalnessMap:!!b.metalnessMap,specularMap:!!b.specularMap,alphaMap:!!b.alphaMap,gradientMap:!!b.gradientMap,combine:b.combine,vertexColors:b.vertexColors,fog:!!v,useFog:b.fog,fogExp:v&&v.isFogExp2,flatShading:b.flatShading,sizeAttenuation:b.sizeAttenuation,logarithmicDepthBuffer:c.logarithmicDepthBuffer,skinning:b.skinning&&0<l,maxBones:l,useVertexTexture:c.floatVertexTextures,morphTargets:b.morphTargets,
+morphNormals:b.morphNormals,maxMorphTargets:a.maxMorphTargets,maxMorphNormals:a.maxMorphNormals,numDirLights:e.directional.length,numPointLights:e.point.length,numSpotLights:e.spot.length,numRectAreaLights:e.rectArea.length,numHemiLights:e.hemi.length,numClippingPlanes:n,numClipIntersection:r,dithering:b.dithering,shadowMapEnabled:a.shadowMap.enabled&&q.receiveShadow&&0<g.length,shadowMapType:a.shadowMap.type,toneMapping:a.toneMapping,physicallyCorrectLights:a.physicallyCorrectLights,premultipliedAlpha:b.premultipliedAlpha,
+alphaTest:b.alphaTest,doubleSided:2===b.side,flipSided:1===b.side,depthPacking:void 0!==b.depthPacking?b.depthPacking:!1}};this.getProgramCode=function(b,c){var d=[];c.shaderID?d.push(c.shaderID):(d.push(b.fragmentShader),d.push(b.vertexShader));if(void 0!==b.defines)for(var e in b.defines)d.push(e),d.push(b.defines[e]);for(e=0;e<g.length;e++)d.push(c[g[e]]);d.push(b.onBeforeCompile.toString());d.push(a.gammaOutput);return d.join()};this.acquireProgram=function(c,d,f,g){for(var h,l=0,m=e.length;l<
+m;l++){var v=e[l];if(v.code===g){h=v;++h.usedTimes;break}}void 0===h&&(h=new vg(a,b,g,c,d,f),e.push(h));return h};this.releaseProgram=function(a){if(0===--a.usedTimes){var b=e.indexOf(a);e[b]=e[e.length-1];e.pop();a.destroy()}};this.programs=e}function yg(){var a=new WeakMap;return{get:function(b){var c=a.get(b);void 0===c&&(c={},a.set(b,c));return c},remove:function(b){a.delete(b)},update:function(b,c,d){a.get(b)[c]=d},dispose:function(){a=new WeakMap}}}function zg(a,b){return a.renderOrder!==b.renderOrder?
+a.renderOrder-b.renderOrder:a.program&&b.program&&a.program!==b.program?a.program.id-b.program.id:a.material.id!==b.material.id?a.material.id-b.material.id:a.z!==b.z?a.z-b.z:a.id-b.id}function Ag(a,b){return a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.z!==b.z?b.z-a.z:a.id-b.id}function Bg(){var a=[],b=0,c=[],d=[];return{opaque:c,transparent:d,init:function(){b=0;c.length=0;d.length=0},push:function(e,f,g,h,l){var m=a[b];void 0===m?(m={id:e.id,object:e,geometry:f,material:g,program:g.program,
+renderOrder:e.renderOrder,z:h,group:l},a[b]=m):(m.id=e.id,m.object=e,m.geometry=f,m.material=g,m.program=g.program,m.renderOrder=e.renderOrder,m.z=h,m.group=l);(!0===g.transparent?d:c).push(m);b++},sort:function(){1<c.length&&c.sort(zg);1<d.length&&d.sort(Ag)}}}function Cg(){var a={};return{get:function(b,c){b=b.id+","+c.id;c=a[b];void 0===c&&(c=new Bg,a[b]=c);return c},dispose:function(){a={}}}}function Dg(){var a={};return{get:function(b){if(void 0!==a[b.id])return a[b.id];switch(b.type){case "DirectionalLight":var c=
+{direction:new p,color:new K,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new y};break;case "SpotLight":c={position:new p,direction:new p,color:new K,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new y};break;case "PointLight":c={position:new p,color:new K,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new y,shadowCameraNear:1,shadowCameraFar:1E3};break;case "HemisphereLight":c={direction:new p,skyColor:new K,groundColor:new K};
+break;case "RectAreaLight":c={color:new K,position:new p,halfWidth:new p,halfHeight:new p}}return a[b.id]=c}}}function Eg(){var a=new Dg,b={id:Fg++,hash:"",ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},c=new p,d=new F,e=new F;return{setup:function(f,g,h){var l=0,m=0,v=0,n=0,r=0,q=0,t=0,k=0;h=h.matrixWorldInverse;for(var p=0,x=f.length;p<x;p++){var w=
+f[p],H=w.color,C=w.intensity,V=w.distance,Q=w.shadow&&w.shadow.map?w.shadow.map.texture:null;if(w.isAmbientLight)l+=H.r*C,m+=H.g*C,v+=H.b*C;else if(w.isDirectionalLight){var E=a.get(w);E.color.copy(w.color).multiplyScalar(w.intensity);E.direction.setFromMatrixPosition(w.matrixWorld);c.setFromMatrixPosition(w.target.matrixWorld);E.direction.sub(c);E.direction.transformDirection(h);if(E.shadow=w.castShadow)H=w.shadow,E.shadowBias=H.bias,E.shadowRadius=H.radius,E.shadowMapSize=H.mapSize;b.directionalShadowMap[n]=
+Q;b.directionalShadowMatrix[n]=w.shadow.matrix;b.directional[n]=E;n++}else if(w.isSpotLight){E=a.get(w);E.position.setFromMatrixPosition(w.matrixWorld);E.position.applyMatrix4(h);E.color.copy(H).multiplyScalar(C);E.distance=V;E.direction.setFromMatrixPosition(w.matrixWorld);c.setFromMatrixPosition(w.target.matrixWorld);E.direction.sub(c);E.direction.transformDirection(h);E.coneCos=Math.cos(w.angle);E.penumbraCos=Math.cos(w.angle*(1-w.penumbra));E.decay=0===w.distance?0:w.decay;if(E.shadow=w.castShadow)H=
+w.shadow,E.shadowBias=H.bias,E.shadowRadius=H.radius,E.shadowMapSize=H.mapSize;b.spotShadowMap[q]=Q;b.spotShadowMatrix[q]=w.shadow.matrix;b.spot[q]=E;q++}else if(w.isRectAreaLight)E=a.get(w),E.color.copy(H).multiplyScalar(C),E.position.setFromMatrixPosition(w.matrixWorld),E.position.applyMatrix4(h),e.identity(),d.copy(w.matrixWorld),d.premultiply(h),e.extractRotation(d),E.halfWidth.set(.5*w.width,0,0),E.halfHeight.set(0,.5*w.height,0),E.halfWidth.applyMatrix4(e),E.halfHeight.applyMatrix4(e),b.rectArea[t]=
+E,t++;else if(w.isPointLight){E=a.get(w);E.position.setFromMatrixPosition(w.matrixWorld);E.position.applyMatrix4(h);E.color.copy(w.color).multiplyScalar(w.intensity);E.distance=w.distance;E.decay=0===w.distance?0:w.decay;if(E.shadow=w.castShadow)H=w.shadow,E.shadowBias=H.bias,E.shadowRadius=H.radius,E.shadowMapSize=H.mapSize,E.shadowCameraNear=H.camera.near,E.shadowCameraFar=H.camera.far;b.pointShadowMap[r]=Q;b.pointShadowMatrix[r]=w.shadow.matrix;b.point[r]=E;r++}else w.isHemisphereLight&&(E=a.get(w),
+E.direction.setFromMatrixPosition(w.matrixWorld),E.direction.transformDirection(h),E.direction.normalize(),E.skyColor.copy(w.color).multiplyScalar(C),E.groundColor.copy(w.groundColor).multiplyScalar(C),b.hemi[k]=E,k++)}b.ambient[0]=l;b.ambient[1]=m;b.ambient[2]=v;b.directional.length=n;b.spot.length=q;b.rectArea.length=t;b.point.length=r;b.hemi.length=k;b.hash=b.id+","+n+","+r+","+q+","+t+","+k+","+g.length},state:b}}function Gg(){var a=new Eg,b=[],c=[],d=[];return{init:function(){b.length=0;c.length=
+0;d.length=0},state:{lightsArray:b,shadowsArray:c,spritesArray:d,lights:a},setupLights:function(d){a.setup(b,c,d)},pushLight:function(a){b.push(a)},pushShadow:function(a){c.push(a)},pushSprite:function(a){d.push(a)}}}function Hg(){var a={};return{get:function(b,c){b=b.id+","+c.id;c=a[b];void 0===c&&(c=new Gg,a[b]=c);return c},dispose:function(){a={}}}}function eb(a){L.call(this);this.type="MeshDepthMaterial";this.depthPacking=3200;this.morphTargets=this.skinning=!1;this.displacementMap=this.alphaMap=
+this.map=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.lights=this.fog=!1;this.setValues(a)}function fb(a){L.call(this);this.type="MeshDistanceMaterial";this.referencePosition=new p;this.nearDistance=1;this.farDistance=1E3;this.morphTargets=this.skinning=!1;this.displacementMap=this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.lights=this.fog=!1;this.setValues(a)}function Ye(a,b,c){function d(b,c,d,e,f,g){var h=
+b.geometry;var l=n;var m=b.customDepthMaterial;d&&(l=r,m=b.customDistanceMaterial);m?l=m:(m=!1,c.morphTargets&&(h&&h.isBufferGeometry?m=h.morphAttributes&&h.morphAttributes.position&&0<h.morphAttributes.position.length:h&&h.isGeometry&&(m=h.morphTargets&&0<h.morphTargets.length)),b.isSkinnedMesh&&!1===c.skinning&&console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",b),b=b.isSkinnedMesh&&c.skinning,h=0,m&&(h|=1),b&&(h|=2),l=l[h]);a.localClippingEnabled&&!0===
+c.clipShadows&&0!==c.clippingPlanes.length&&(h=l.uuid,m=c.uuid,b=q[h],void 0===b&&(b={},q[h]=b),h=b[m],void 0===h&&(h=l.clone(),b[m]=h),l=h);l.visible=c.visible;l.wireframe=c.wireframe;l.side=null!=c.shadowSide?c.shadowSide:t[c.side];l.clipShadows=c.clipShadows;l.clippingPlanes=c.clippingPlanes;l.clipIntersection=c.clipIntersection;l.wireframeLinewidth=c.wireframeLinewidth;l.linewidth=c.linewidth;d&&l.isMeshDistanceMaterial&&(l.referencePosition.copy(e),l.nearDistance=f,l.farDistance=g);return l}
+function e(c,g,h,l){if(!1!==c.visible){if(c.layers.test(g.layers)&&(c.isMesh||c.isLine||c.isPoints)&&c.castShadow&&(!c.frustumCulled||f.intersectsObject(c))){c.modelViewMatrix.multiplyMatrices(h.matrixWorldInverse,c.matrixWorld);var m=b.update(c),n=c.material;if(Array.isArray(n))for(var r=m.groups,q=0,t=r.length;q<t;q++){var k=r[q],u=n[k.materialIndex];u&&u.visible&&(u=d(c,u,l,v,h.near,h.far),a.renderBufferDirect(h,null,m,u,c,k))}else n.visible&&(u=d(c,n,l,v,h.near,h.far),a.renderBufferDirect(h,null,
+m,u,c,null))}c=c.children;m=0;for(n=c.length;m<n;m++)e(c[m],g,h,l)}}var f=new qd,g=new F,h=new y,l=new y(c,c),m=new p,v=new p,n=Array(4),r=Array(4),q={},t={0:1,1:0,2:2},k=[new p(1,0,0),new p(-1,0,0),new p(0,0,1),new p(0,0,-1),new p(0,1,0),new p(0,-1,0)],z=[new p(0,1,0),new p(0,1,0),new p(0,1,0),new p(0,1,0),new p(0,0,1),new p(0,0,-1)],x=[new U,new U,new U,new U,new U,new U];for(c=0;4!==c;++c){var w=0!==(c&1),H=0!==(c&2),C=new eb({depthPacking:3201,morphTargets:w,skinning:H});n[c]=C;w=new fb({morphTargets:w,
+skinning:H});r[c]=w}var V=this;this.enabled=!1;this.autoUpdate=!0;this.needsUpdate=!1;this.type=1;this.render=function(b,c,d){if(!1!==V.enabled&&(!1!==V.autoUpdate||!1!==V.needsUpdate)&&0!==b.length){var n=a.state;n.disable(a.context.BLEND);n.buffers.color.setClear(1,1,1,1);n.buffers.depth.setTest(!0);n.setScissorTest(!1);for(var r,q=0,t=b.length;q<t;q++){var u=b[q];r=u.shadow;var p=u&&u.isPointLight;if(void 0===r)console.warn("THREE.WebGLShadowMap:",u,"has no shadow.");else{var w=r.camera;h.copy(r.mapSize);
+h.min(l);if(p){var Q=h.x,E=h.y;x[0].set(2*Q,E,Q,E);x[1].set(0,E,Q,E);x[2].set(3*Q,E,Q,E);x[3].set(Q,E,Q,E);x[4].set(3*Q,0,Q,E);x[5].set(Q,0,Q,E);h.x*=4;h.y*=2}null===r.map&&(r.map=new kb(h.x,h.y,{minFilter:1003,magFilter:1003,format:1023}),r.map.texture.name=u.name+".shadowMap",w.updateProjectionMatrix());r.isSpotLightShadow&&r.update(u);Q=r.map;E=r.matrix;v.setFromMatrixPosition(u.matrixWorld);w.position.copy(v);p?(r=6,E.makeTranslation(-v.x,-v.y,-v.z)):(r=1,m.setFromMatrixPosition(u.target.matrixWorld),
+w.lookAt(m),w.updateMatrixWorld(),E.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),E.multiply(w.projectionMatrix),E.multiply(w.matrixWorldInverse));a.setRenderTarget(Q);a.clear();for(u=0;u<r;u++)p&&(m.copy(w.position),m.add(k[u]),w.up.copy(z[u]),w.lookAt(m),w.updateMatrixWorld(),n.viewport(x[u])),g.multiplyMatrices(w.projectionMatrix,w.matrixWorldInverse),f.setFromMatrix(g),e(c,d,w,p)}}V.needsUpdate=!1}}}function Qb(a,b,c,d,e,f,g,h,l){ca.call(this,a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Ig(a,
+b,c,d,e){var f,g,h,l,m,v,n,r,q,t,k,z,x,w,H,C,V,Q;function E(a,b){return a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.z!==b.z?b.z-a.z:b.id-a.id}var Bc,qb,y,A,B=new p,G=new ea,K=new p;this.render=function(u,p,rd){if(0!==u.length){if(void 0===y){var S=new Float32Array([-.5,-.5,0,0,.5,-.5,1,0,.5,.5,1,1,-.5,.5,0,1]),Da=new Uint16Array([0,1,2,0,2,3]);Bc=b.createBuffer();qb=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,Bc);b.bufferData(b.ARRAY_BUFFER,S,b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,
+qb);b.bufferData(b.ELEMENT_ARRAY_BUFFER,Da,b.STATIC_DRAW);S=b.createProgram();Da=b.createShader(b.VERTEX_SHADER);var ia=b.createShader(b.FRAGMENT_SHADER);b.shaderSource(Da,["precision "+e.precision+" float;","#define SHADER_NAME SpriteMaterial\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform float rotation;\nuniform vec2 center;\nuniform vec2 scale;\nuniform vec2 uvOffset;\nuniform vec2 uvScale;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvarying float fogDepth;\nvoid main() {\n\tvUV = uvOffset + uv * uvScale;\n\tvec2 alignedPosition = ( position - center ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tvec4 mvPosition;\n\tmvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\tfogDepth = - mvPosition.z;\n}"].join("\n"));
+b.shaderSource(ia,["precision "+e.precision+" float;","#define SHADER_NAME SpriteMaterial\nuniform vec3 color;\nuniform sampler2D map;\nuniform float opacity;\nuniform int fogType;\nuniform vec3 fogColor;\nuniform float fogDensity;\nuniform float fogNear;\nuniform float fogFar;\nuniform float alphaTest;\nvarying vec2 vUV;\nvarying float fogDepth;\nvoid main() {\n\tvec4 texture = texture2D( map, vUV );\n\tgl_FragColor = vec4( color * texture.xyz, texture.a * opacity );\n\tif ( gl_FragColor.a < alphaTest ) discard;\n\tif ( fogType > 0 ) {\n\t\tfloat fogFactor = 0.0;\n\t\tif ( fogType == 1 ) {\n\t\t\tfogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t\t} else {\n\t\t\tconst float LOG2 = 1.442695;\n\t\t\tfogFactor = exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 );\n\t\t\tfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n\t\t}\n\t\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n\t}\n}"].join("\n"));
+b.compileShader(Da);b.compileShader(ia);b.attachShader(S,Da);b.attachShader(S,ia);b.linkProgram(S);y=S;V=b.getAttribLocation(y,"position");Q=b.getAttribLocation(y,"uv");f=b.getUniformLocation(y,"uvOffset");g=b.getUniformLocation(y,"uvScale");h=b.getUniformLocation(y,"rotation");l=b.getUniformLocation(y,"center");m=b.getUniformLocation(y,"scale");v=b.getUniformLocation(y,"color");n=b.getUniformLocation(y,"map");r=b.getUniformLocation(y,"opacity");q=b.getUniformLocation(y,"modelViewMatrix");t=b.getUniformLocation(y,
+"projectionMatrix");k=b.getUniformLocation(y,"fogType");z=b.getUniformLocation(y,"fogDensity");x=b.getUniformLocation(y,"fogNear");w=b.getUniformLocation(y,"fogFar");H=b.getUniformLocation(y,"fogColor");b.getUniformLocation(y,"fogDepth");C=b.getUniformLocation(y,"alphaTest");S=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");S.width=8;S.height=8;Da=S.getContext("2d");Da.fillStyle="white";Da.fillRect(0,0,8,8);A=new Qb(S)}c.useProgram(y);c.initAttributes();c.enableAttribute(V);c.enableAttribute(Q);
+c.disableUnusedAttributes();c.disable(b.CULL_FACE);c.enable(b.BLEND);b.bindBuffer(b.ARRAY_BUFFER,Bc);b.vertexAttribPointer(V,2,b.FLOAT,!1,16,0);b.vertexAttribPointer(Q,2,b.FLOAT,!1,16,8);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,qb);b.uniformMatrix4fv(t,!1,rd.projectionMatrix.elements);c.activeTexture(b.TEXTURE0);b.uniform1i(n,0);Da=S=0;(ia=p.fog)?(b.uniform3f(H,ia.color.r,ia.color.g,ia.color.b),ia.isFog?(b.uniform1f(x,ia.near),b.uniform1f(w,ia.far),b.uniform1i(k,1),Da=S=1):ia.isFogExp2&&(b.uniform1f(z,
+ia.density),b.uniform1i(k,2),Da=S=2)):(b.uniform1i(k,0),Da=S=0);ia=0;for(var M=u.length;ia<M;ia++){var I=u[ia];I.modelViewMatrix.multiplyMatrices(rd.matrixWorldInverse,I.matrixWorld);I.z=-I.modelViewMatrix.elements[14]}u.sort(E);var Vd=[],J=[];ia=0;for(M=u.length;ia<M;ia++){I=u[ia];var F=I.material;if(!1!==F.visible){I.onBeforeRender(a,p,rd,void 0,F,void 0);b.uniform1f(C,F.alphaTest);b.uniformMatrix4fv(q,!1,I.modelViewMatrix.elements);I.matrixWorld.decompose(B,G,K);Vd[0]=K.x;Vd[1]=K.y;J[0]=I.center.x-
+.5;J[1]=I.center.y-.5;var N=0;p.fog&&F.fog&&(N=Da);S!==N&&(b.uniform1i(k,N),S=N);null!==F.map?(b.uniform2f(f,F.map.offset.x,F.map.offset.y),b.uniform2f(g,F.map.repeat.x,F.map.repeat.y)):(b.uniform2f(f,0,0),b.uniform2f(g,1,1));b.uniform1f(r,F.opacity);b.uniform3f(v,F.color.r,F.color.g,F.color.b);b.uniform1f(h,F.rotation);b.uniform2fv(l,J);b.uniform2fv(m,Vd);c.setBlending(F.blending,F.blendEquation,F.blendSrc,F.blendDst,F.blendEquationAlpha,F.blendSrcAlpha,F.blendDstAlpha,F.premultipliedAlpha);c.buffers.depth.setTest(F.depthTest);
+c.buffers.depth.setMask(F.depthWrite);c.buffers.color.setMask(F.colorWrite);d.setTexture2D(F.map||A,0);b.drawElements(b.TRIANGLES,6,b.UNSIGNED_SHORT,0);I.onAfterRender(a,p,rd,void 0,F,void 0)}}c.enable(b.CULL_FACE);c.reset()}}}function Jg(a,b,c){function d(b,c,d){var e=new Uint8Array(4),f=a.createTexture();a.bindTexture(b,f);a.texParameteri(b,a.TEXTURE_MIN_FILTER,a.NEAREST);a.texParameteri(b,a.TEXTURE_MAG_FILTER,a.NEAREST);for(b=0;b<d;b++)a.texImage2D(c+b,0,a.RGBA,1,1,0,a.RGBA,a.UNSIGNED_BYTE,e);
+return f}function e(c,d){p[c]=1;0===x[c]&&(a.enableVertexAttribArray(c),x[c]=1);w[c]!==d&&(b.get("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(c,d),w[c]=d)}function f(b){!0!==H[b]&&(a.enable(b),H[b]=!0)}function g(b){!1!==H[b]&&(a.disable(b),H[b]=!1)}function h(b,d,e,h,l,m,n,v){0!==b?f(a.BLEND):g(a.BLEND);if(5!==b){if(b!==Q||v!==B)switch(b){case 2:v?(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.ONE,a.ONE,a.ONE,a.ONE)):(a.blendEquation(a.FUNC_ADD),a.blendFunc(a.SRC_ALPHA,
+a.ONE));break;case 3:v?(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.ZERO,a.ZERO,a.ONE_MINUS_SRC_COLOR,a.ONE_MINUS_SRC_ALPHA)):(a.blendEquation(a.FUNC_ADD),a.blendFunc(a.ZERO,a.ONE_MINUS_SRC_COLOR));break;case 4:v?(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.ZERO,a.SRC_COLOR,a.ZERO,a.SRC_ALPHA)):(a.blendEquation(a.FUNC_ADD),a.blendFunc(a.ZERO,a.SRC_COLOR));break;default:v?(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.ONE,a.ONE_MINUS_SRC_ALPHA,
+a.ONE,a.ONE_MINUS_SRC_ALPHA)):(a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA))}F=ia=A=qb=y=E=null}else{l=l||d;m=m||e;n=n||h;if(d!==E||l!==A)a.blendEquationSeparate(c.convert(d),c.convert(l)),E=d,A=l;if(e!==y||h!==qb||m!==ia||n!==F)a.blendFuncSeparate(c.convert(e),c.convert(h),c.convert(m),c.convert(n)),y=e,qb=h,ia=m,F=n}Q=b;B=v}function l(b){I!==b&&(b?a.frontFace(a.CW):a.frontFace(a.CCW),I=b)}function m(b){0!==b?(f(a.CULL_FACE),
+b!==G&&(1===b?a.cullFace(a.BACK):2===b?a.cullFace(a.FRONT):a.cullFace(a.FRONT_AND_BACK))):g(a.CULL_FACE);G=b}function v(b,c,d){if(b){if(f(a.POLYGON_OFFSET_FILL),M!==c||S!==d)a.polygonOffset(c,d),M=c,S=d}else g(a.POLYGON_OFFSET_FILL)}function n(b){void 0===b&&(b=a.TEXTURE0+J-1);O!==b&&(a.activeTexture(b),O=b)}var r=new function(){var b=!1,c=new U,d=null,e=new U(0,0,0,0);return{setMask:function(c){d===c||b||(a.colorMask(c,c,c,c),d=c)},setLocked:function(a){b=a},setClear:function(b,d,f,g,h){!0===h&&
+(b*=g,d*=g,f*=g);c.set(b,d,f,g);!1===e.equals(c)&&(a.clearColor(b,d,f,g),e.copy(c))},reset:function(){b=!1;d=null;e.set(-1,0,0,0)}}},q=new function(){var b=!1,c=null,d=null,e=null;return{setTest:function(b){b?f(a.DEPTH_TEST):g(a.DEPTH_TEST)},setMask:function(d){c===d||b||(a.depthMask(d),c=d)},setFunc:function(b){if(d!==b){if(b)switch(b){case 0:a.depthFunc(a.NEVER);break;case 1:a.depthFunc(a.ALWAYS);break;case 2:a.depthFunc(a.LESS);break;case 3:a.depthFunc(a.LEQUAL);break;case 4:a.depthFunc(a.EQUAL);
+break;case 5:a.depthFunc(a.GEQUAL);break;case 6:a.depthFunc(a.GREATER);break;case 7:a.depthFunc(a.NOTEQUAL);break;default:a.depthFunc(a.LEQUAL)}else a.depthFunc(a.LEQUAL);d=b}},setLocked:function(a){b=a},setClear:function(b){e!==b&&(a.clearDepth(b),e=b)},reset:function(){b=!1;e=d=c=null}}},k=new function(){var b=!1,c=null,d=null,e=null,h=null,l=null,m=null,n=null,v=null;return{setTest:function(b){b?f(a.STENCIL_TEST):g(a.STENCIL_TEST)},setMask:function(d){c===d||b||(a.stencilMask(d),c=d)},setFunc:function(b,
+c,f){if(d!==b||e!==c||h!==f)a.stencilFunc(b,c,f),d=b,e=c,h=f},setOp:function(b,c,d){if(l!==b||m!==c||n!==d)a.stencilOp(b,c,d),l=b,m=c,n=d},setLocked:function(a){b=a},setClear:function(b){v!==b&&(a.clearStencil(b),v=b)},reset:function(){b=!1;v=n=m=l=h=e=d=c=null}}},u=a.getParameter(a.MAX_VERTEX_ATTRIBS),p=new Uint8Array(u),x=new Uint8Array(u),w=new Uint8Array(u),H={},C=null,V=null,Q=null,E=null,y=null,qb=null,A=null,ia=null,F=null,B=!1,I=null,G=null,K=null,M=null,S=null,J=a.getParameter(a.MAX_COMBINED_TEXTURE_IMAGE_UNITS),
+L=!1;u=0;u=a.getParameter(a.VERSION);-1!==u.indexOf("WebGL")?(u=parseFloat(/^WebGL ([0-9])/.exec(u)[1]),L=1<=u):-1!==u.indexOf("OpenGL ES")&&(u=parseFloat(/^OpenGL ES ([0-9])/.exec(u)[1]),L=2<=u);var O=null,P={},W=new U,Y=new U,T={};T[a.TEXTURE_2D]=d(a.TEXTURE_2D,a.TEXTURE_2D,1);T[a.TEXTURE_CUBE_MAP]=d(a.TEXTURE_CUBE_MAP,a.TEXTURE_CUBE_MAP_POSITIVE_X,6);r.setClear(0,0,0,1);q.setClear(1);k.setClear(0);f(a.DEPTH_TEST);q.setFunc(3);l(!1);m(1);f(a.CULL_FACE);f(a.BLEND);h(1);return{buffers:{color:r,depth:q,
+stencil:k},initAttributes:function(){for(var a=0,b=p.length;a<b;a++)p[a]=0},enableAttribute:function(a){e(a,0)},enableAttributeAndDivisor:e,disableUnusedAttributes:function(){for(var b=0,c=x.length;b!==c;++b)x[b]!==p[b]&&(a.disableVertexAttribArray(b),x[b]=0)},enable:f,disable:g,getCompressedTextureFormats:function(){if(null===C&&(C=[],b.get("WEBGL_compressed_texture_pvrtc")||b.get("WEBGL_compressed_texture_s3tc")||b.get("WEBGL_compressed_texture_etc1")||b.get("WEBGL_compressed_texture_astc")))for(var c=
+a.getParameter(a.COMPRESSED_TEXTURE_FORMATS),d=0;d<c.length;d++)C.push(c[d]);return C},useProgram:function(b){return V!==b?(a.useProgram(b),V=b,!0):!1},setBlending:h,setMaterial:function(b,c){2===b.side?g(a.CULL_FACE):f(a.CULL_FACE);var d=1===b.side;c&&(d=!d);l(d);1===b.blending&&!1===b.transparent?h(0):h(b.blending,b.blendEquation,b.blendSrc,b.blendDst,b.blendEquationAlpha,b.blendSrcAlpha,b.blendDstAlpha,b.premultipliedAlpha);q.setFunc(b.depthFunc);q.setTest(b.depthTest);q.setMask(b.depthWrite);
+r.setMask(b.colorWrite);v(b.polygonOffset,b.polygonOffsetFactor,b.polygonOffsetUnits)},setFlipSided:l,setCullFace:m,setLineWidth:function(b){b!==K&&(L&&a.lineWidth(b),K=b)},setPolygonOffset:v,setScissorTest:function(b){b?f(a.SCISSOR_TEST):g(a.SCISSOR_TEST)},activeTexture:n,bindTexture:function(b,c){null===O&&n();var d=P[O];void 0===d&&(d={type:void 0,texture:void 0},P[O]=d);if(d.type!==b||d.texture!==c)a.bindTexture(b,c||T[b]),d.type=b,d.texture=c},compressedTexImage2D:function(){try{a.compressedTexImage2D.apply(a,
+arguments)}catch(N){console.error("THREE.WebGLState:",N)}},texImage2D:function(){try{a.texImage2D.apply(a,arguments)}catch(N){console.error("THREE.WebGLState:",N)}},scissor:function(b){!1===W.equals(b)&&(a.scissor(b.x,b.y,b.z,b.w),W.copy(b))},viewport:function(b){!1===Y.equals(b)&&(a.viewport(b.x,b.y,b.z,b.w),Y.copy(b))},reset:function(){for(var b=0;b<x.length;b++)1===x[b]&&(a.disableVertexAttribArray(b),x[b]=0);H={};O=C=null;P={};G=I=Q=V=null;r.reset();q.reset();k.reset()}}}function Kg(a,b,c,d,e,
+f,g){function h(a,b){if(a.width>b||a.height>b){if("data"in a){console.warn("THREE.WebGLRenderer: image in DataTexture is too big ("+a.width+"x"+a.height+").");return}b/=Math.max(a.width,a.height);var c=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");c.width=Math.floor(a.width*b);c.height=Math.floor(a.height*b);c.getContext("2d").drawImage(a,0,0,a.width,a.height,0,0,c.width,c.height);console.warn("THREE.WebGLRenderer: image is too big ("+a.width+"x"+a.height+"). Resized to "+c.width+
+"x"+c.height,a);return c}return a}function l(a){return P.isPowerOfTwo(a.width)&&P.isPowerOfTwo(a.height)}function m(a,b){return a.generateMipmaps&&b&&1003!==a.minFilter&&1006!==a.minFilter}function v(b,c,e,f){a.generateMipmap(b);d.get(c).__maxMipLevel=Math.log(Math.max(e,f))*Math.LOG2E}function n(b){return 1003===b||1004===b||1005===b?a.NEAREST:a.LINEAR}function r(b){b=b.target;b.removeEventListener("dispose",r);a:{var c=d.get(b);if(b.image&&c.__image__webglTextureCube)a.deleteTexture(c.__image__webglTextureCube);
+else{if(void 0===c.__webglInit)break a;a.deleteTexture(c.__webglTexture)}d.remove(b)}b.isVideoTexture&&delete H[b.id];g.memory.textures--}function q(b){b=b.target;b.removeEventListener("dispose",q);var c=d.get(b),e=d.get(b.texture);if(b){void 0!==e.__webglTexture&&a.deleteTexture(e.__webglTexture);b.depthTexture&&b.depthTexture.dispose();if(b.isWebGLRenderTargetCube)for(e=0;6>e;e++)a.deleteFramebuffer(c.__webglFramebuffer[e]),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer[e]);else a.deleteFramebuffer(c.__webglFramebuffer),
+c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer);d.remove(b.texture);d.remove(b)}g.memory.textures--}function k(b,n){var q=d.get(b);if(b.isVideoTexture){var k=b.id,t=g.render.frame;H[k]!==t&&(H[k]=t,b.update())}if(0<b.version&&q.__version!==b.version)if(k=b.image,void 0===k)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined",b);else if(!1===k.complete)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete",b);else{void 0===
+q.__webglInit&&(q.__webglInit=!0,b.addEventListener("dispose",r),q.__webglTexture=a.createTexture(),g.memory.textures++);c.activeTexture(a.TEXTURE0+n);c.bindTexture(a.TEXTURE_2D,q.__webglTexture);a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,b.flipY);a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,b.premultiplyAlpha);a.pixelStorei(a.UNPACK_ALIGNMENT,b.unpackAlignment);n=h(b.image,e.maxTextureSize);(1001!==b.wrapS||1001!==b.wrapT||1003!==b.minFilter&&1006!==b.minFilter)&&!1===l(n)&&(n instanceof HTMLImageElement||
+n instanceof HTMLCanvasElement||n instanceof ImageBitmap)&&(void 0===C&&(C=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),C.width=P.floorPowerOfTwo(n.width),C.height=P.floorPowerOfTwo(n.height),C.getContext("2d").drawImage(n,0,0,C.width,C.height),console.warn("THREE.WebGLRenderer: image is not power of two ("+n.width+"x"+n.height+"). Resized to "+C.width+"x"+C.height,n),n=C);k=l(n);t=f.convert(b.format);var p=f.convert(b.type);u(a.TEXTURE_2D,b,k);var z=b.mipmaps;if(b.isDepthTexture){var V=
+a.DEPTH_COMPONENT;if(1015===b.type){if(!w)throw Error("Float Depth Texture only supported in WebGL2.0");V=a.DEPTH_COMPONENT32F}else w&&(V=a.DEPTH_COMPONENT16);1026===b.format&&V===a.DEPTH_COMPONENT&&1012!==b.type&&1014!==b.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),b.type=1012,p=f.convert(b.type));1027===b.format&&(V=a.DEPTH_STENCIL,1020!==b.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),
+b.type=1020,p=f.convert(b.type)));c.texImage2D(a.TEXTURE_2D,0,V,n.width,n.height,0,t,p,null)}else if(b.isDataTexture)if(0<z.length&&k){for(var x=0,Q=z.length;x<Q;x++)V=z[x],c.texImage2D(a.TEXTURE_2D,x,t,V.width,V.height,0,t,p,V.data);b.generateMipmaps=!1;q.__maxMipLevel=z.length-1}else c.texImage2D(a.TEXTURE_2D,0,t,n.width,n.height,0,t,p,n.data),q.__maxMipLevel=0;else if(b.isCompressedTexture){x=0;for(Q=z.length;x<Q;x++)V=z[x],1023!==b.format&&1022!==b.format?-1<c.getCompressedTextureFormats().indexOf(t)?
+c.compressedTexImage2D(a.TEXTURE_2D,x,t,V.width,V.height,0,V.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):c.texImage2D(a.TEXTURE_2D,x,t,V.width,V.height,0,t,p,V.data);q.__maxMipLevel=z.length-1}else if(0<z.length&&k){x=0;for(Q=z.length;x<Q;x++)V=z[x],c.texImage2D(a.TEXTURE_2D,x,t,t,p,V);b.generateMipmaps=!1;q.__maxMipLevel=z.length-1}else c.texImage2D(a.TEXTURE_2D,0,t,t,p,n),q.__maxMipLevel=0;m(b,k)&&v(a.TEXTURE_2D,b,n.width,
+n.height);q.__version=b.version;if(b.onUpdate)b.onUpdate(b);return}c.activeTexture(a.TEXTURE0+n);c.bindTexture(a.TEXTURE_2D,q.__webglTexture)}function u(c,g,h){h?(a.texParameteri(c,a.TEXTURE_WRAP_S,f.convert(g.wrapS)),a.texParameteri(c,a.TEXTURE_WRAP_T,f.convert(g.wrapT)),a.texParameteri(c,a.TEXTURE_MAG_FILTER,f.convert(g.magFilter)),a.texParameteri(c,a.TEXTURE_MIN_FILTER,f.convert(g.minFilter))):(a.texParameteri(c,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(c,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),
+1001===g.wrapS&&1001===g.wrapT||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.",g),a.texParameteri(c,a.TEXTURE_MAG_FILTER,n(g.magFilter)),a.texParameteri(c,a.TEXTURE_MIN_FILTER,n(g.minFilter)),1003!==g.minFilter&&1006!==g.minFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.",g));!(h=b.get("EXT_texture_filter_anisotropic"))||
+1015===g.type&&null===b.get("OES_texture_float_linear")||1016===g.type&&null===b.get("OES_texture_half_float_linear")||!(1<g.anisotropy||d.get(g).__currentAnisotropy)||(a.texParameterf(c,h.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(g.anisotropy,e.getMaxAnisotropy())),d.get(g).__currentAnisotropy=g.anisotropy)}function p(b,e,g,h){var l=f.convert(e.texture.format),m=f.convert(e.texture.type);c.texImage2D(h,0,l,e.width,e.height,0,l,m,null);a.bindFramebuffer(a.FRAMEBUFFER,b);a.framebufferTexture2D(a.FRAMEBUFFER,
+g,h,d.get(e.texture).__webglTexture,0);a.bindFramebuffer(a.FRAMEBUFFER,null)}function x(b,c){a.bindRenderbuffer(a.RENDERBUFFER,b);c.depthBuffer&&!c.stencilBuffer?(a.renderbufferStorage(a.RENDERBUFFER,a.DEPTH_COMPONENT16,c.width,c.height),a.framebufferRenderbuffer(a.FRAMEBUFFER,a.DEPTH_ATTACHMENT,a.RENDERBUFFER,b)):c.depthBuffer&&c.stencilBuffer?(a.renderbufferStorage(a.RENDERBUFFER,a.DEPTH_STENCIL,c.width,c.height),a.framebufferRenderbuffer(a.FRAMEBUFFER,a.DEPTH_STENCIL_ATTACHMENT,a.RENDERBUFFER,
+b)):a.renderbufferStorage(a.RENDERBUFFER,a.RGBA4,c.width,c.height);a.bindRenderbuffer(a.RENDERBUFFER,null)}var w="undefined"!==typeof WebGL2RenderingContext&&a instanceof WebGL2RenderingContext,H={},C;this.setTexture2D=k;this.setTextureCube=function(b,n){var q=d.get(b);if(6===b.image.length)if(0<b.version&&q.__version!==b.version){q.__image__webglTextureCube||(b.addEventListener("dispose",r),q.__image__webglTextureCube=a.createTexture(),g.memory.textures++);c.activeTexture(a.TEXTURE0+n);c.bindTexture(a.TEXTURE_CUBE_MAP,
+q.__image__webglTextureCube);a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,b.flipY);n=b&&b.isCompressedTexture;for(var k=b.image[0]&&b.image[0].isDataTexture,t=[],p=0;6>p;p++)t[p]=n||k?k?b.image[p].image:b.image[p]:h(b.image[p],e.maxCubemapSize);var w=t[0],z=l(w),x=f.convert(b.format),V=f.convert(b.type);u(a.TEXTURE_CUBE_MAP,b,z);for(p=0;6>p;p++)if(n)for(var C,H=t[p].mipmaps,Q=0,y=H.length;Q<y;Q++)C=H[Q],1023!==b.format&&1022!==b.format?-1<c.getCompressedTextureFormats().indexOf(x)?c.compressedTexImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+
+p,Q,x,C.width,C.height,0,C.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):c.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+p,Q,x,C.width,C.height,0,x,V,C.data);else k?c.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+p,0,x,t[p].width,t[p].height,0,x,V,t[p].data):c.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+p,0,x,x,V,t[p]);q.__maxMipLevel=n?H.length-1:0;m(b,z)&&v(a.TEXTURE_CUBE_MAP,b,w.width,w.height);q.__version=b.version;if(b.onUpdate)b.onUpdate(b)}else c.activeTexture(a.TEXTURE0+
+n),c.bindTexture(a.TEXTURE_CUBE_MAP,q.__image__webglTextureCube)};this.setTextureCubeDynamic=function(b,e){c.activeTexture(a.TEXTURE0+e);c.bindTexture(a.TEXTURE_CUBE_MAP,d.get(b).__webglTexture)};this.setupRenderTarget=function(b){var e=d.get(b),f=d.get(b.texture);b.addEventListener("dispose",q);f.__webglTexture=a.createTexture();g.memory.textures++;var h=!0===b.isWebGLRenderTargetCube,n=l(b);if(h){e.__webglFramebuffer=[];for(var r=0;6>r;r++)e.__webglFramebuffer[r]=a.createFramebuffer()}else e.__webglFramebuffer=
+a.createFramebuffer();if(h){c.bindTexture(a.TEXTURE_CUBE_MAP,f.__webglTexture);u(a.TEXTURE_CUBE_MAP,b.texture,n);for(r=0;6>r;r++)p(e.__webglFramebuffer[r],b,a.COLOR_ATTACHMENT0,a.TEXTURE_CUBE_MAP_POSITIVE_X+r);m(b.texture,n)&&v(a.TEXTURE_CUBE_MAP,b.texture,b.width,b.height);c.bindTexture(a.TEXTURE_CUBE_MAP,null)}else c.bindTexture(a.TEXTURE_2D,f.__webglTexture),u(a.TEXTURE_2D,b.texture,n),p(e.__webglFramebuffer,b,a.COLOR_ATTACHMENT0,a.TEXTURE_2D),m(b.texture,n)&&v(a.TEXTURE_2D,b.texture,b.width,b.height),
+c.bindTexture(a.TEXTURE_2D,null);if(b.depthBuffer){e=d.get(b);f=!0===b.isWebGLRenderTargetCube;if(b.depthTexture){if(f)throw Error("target.depthTexture not supported in Cube render targets");if(b&&b.isWebGLRenderTargetCube)throw Error("Depth Texture with cube render targets is not supported");a.bindFramebuffer(a.FRAMEBUFFER,e.__webglFramebuffer);if(!b.depthTexture||!b.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");d.get(b.depthTexture).__webglTexture&&
+b.depthTexture.image.width===b.width&&b.depthTexture.image.height===b.height||(b.depthTexture.image.width=b.width,b.depthTexture.image.height=b.height,b.depthTexture.needsUpdate=!0);k(b.depthTexture,0);e=d.get(b.depthTexture).__webglTexture;if(1026===b.depthTexture.format)a.framebufferTexture2D(a.FRAMEBUFFER,a.DEPTH_ATTACHMENT,a.TEXTURE_2D,e,0);else if(1027===b.depthTexture.format)a.framebufferTexture2D(a.FRAMEBUFFER,a.DEPTH_STENCIL_ATTACHMENT,a.TEXTURE_2D,e,0);else throw Error("Unknown depthTexture format");
+}else if(f)for(e.__webglDepthbuffer=[],f=0;6>f;f++)a.bindFramebuffer(a.FRAMEBUFFER,e.__webglFramebuffer[f]),e.__webglDepthbuffer[f]=a.createRenderbuffer(),x(e.__webglDepthbuffer[f],b);else a.bindFramebuffer(a.FRAMEBUFFER,e.__webglFramebuffer),e.__webglDepthbuffer=a.createRenderbuffer(),x(e.__webglDepthbuffer,b);a.bindFramebuffer(a.FRAMEBUFFER,null)}};this.updateRenderTargetMipmap=function(b){var e=b.texture,f=l(b);if(m(e,f)){f=b.isWebGLRenderTargetCube?a.TEXTURE_CUBE_MAP:a.TEXTURE_2D;var g=d.get(e).__webglTexture;
+c.bindTexture(f,g);v(f,e,b.width,b.height);c.bindTexture(f,null)}}}function Ze(a,b){return{convert:function(c){if(1E3===c)return a.REPEAT;if(1001===c)return a.CLAMP_TO_EDGE;if(1002===c)return a.MIRRORED_REPEAT;if(1003===c)return a.NEAREST;if(1004===c)return a.NEAREST_MIPMAP_NEAREST;if(1005===c)return a.NEAREST_MIPMAP_LINEAR;if(1006===c)return a.LINEAR;if(1007===c)return a.LINEAR_MIPMAP_NEAREST;if(1008===c)return a.LINEAR_MIPMAP_LINEAR;if(1009===c)return a.UNSIGNED_BYTE;if(1017===c)return a.UNSIGNED_SHORT_4_4_4_4;
+if(1018===c)return a.UNSIGNED_SHORT_5_5_5_1;if(1019===c)return a.UNSIGNED_SHORT_5_6_5;if(1010===c)return a.BYTE;if(1011===c)return a.SHORT;if(1012===c)return a.UNSIGNED_SHORT;if(1013===c)return a.INT;if(1014===c)return a.UNSIGNED_INT;if(1015===c)return a.FLOAT;if(1016===c){var d=b.get("OES_texture_half_float");if(null!==d)return d.HALF_FLOAT_OES}if(1021===c)return a.ALPHA;if(1022===c)return a.RGB;if(1023===c)return a.RGBA;if(1024===c)return a.LUMINANCE;if(1025===c)return a.LUMINANCE_ALPHA;if(1026===
+c)return a.DEPTH_COMPONENT;if(1027===c)return a.DEPTH_STENCIL;if(100===c)return a.FUNC_ADD;if(101===c)return a.FUNC_SUBTRACT;if(102===c)return a.FUNC_REVERSE_SUBTRACT;if(200===c)return a.ZERO;if(201===c)return a.ONE;if(202===c)return a.SRC_COLOR;if(203===c)return a.ONE_MINUS_SRC_COLOR;if(204===c)return a.SRC_ALPHA;if(205===c)return a.ONE_MINUS_SRC_ALPHA;if(206===c)return a.DST_ALPHA;if(207===c)return a.ONE_MINUS_DST_ALPHA;if(208===c)return a.DST_COLOR;if(209===c)return a.ONE_MINUS_DST_COLOR;if(210===
+c)return a.SRC_ALPHA_SATURATE;if(33776===c||33777===c||33778===c||33779===c)if(d=b.get("WEBGL_compressed_texture_s3tc"),null!==d){if(33776===c)return d.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===c)return d.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===c)return d.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===c)return d.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(35840===c||35841===c||35842===c||35843===c)if(d=b.get("WEBGL_compressed_texture_pvrtc"),null!==d){if(35840===c)return d.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===
+c)return d.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===c)return d.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===c)return d.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===c&&(d=b.get("WEBGL_compressed_texture_etc1"),null!==d))return d.COMPRESSED_RGB_ETC1_WEBGL;if(37808===c||37809===c||37810===c||37811===c||37812===c||37813===c||37814===c||37815===c||37816===c||37817===c||37818===c||37819===c||37820===c||37821===c)if(d=b.get("WEBGL_compressed_texture_astc"),null!==d)return c;if(103===c||104===c)if(d=b.get("EXT_blend_minmax"),
+null!==d){if(103===c)return d.MIN_EXT;if(104===c)return d.MAX_EXT}return 1020===c&&(d=b.get("WEBGL_depth_texture"),null!==d)?d.UNSIGNED_INT_24_8_WEBGL:0}}}function X(a,b,c,d){Qa.call(this);this.type="PerspectiveCamera";this.fov=void 0!==a?a:50;this.zoom=1;this.near=void 0!==c?c:.1;this.far=void 0!==d?d:2E3;this.focus=10;this.aspect=void 0!==b?b:1;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}function Ec(a){X.call(this);this.cameras=a||[]}function $e(a){function b(){return null!==
+e&&!0===e.isPresenting}function c(){if(b()){var c=e.getEyeParameters("left"),f=c.renderWidth;c=c.renderHeight;z=a.getPixelRatio();u=a.getSize();a.setDrawingBufferSize(2*f,c,1);x.start()}else d.enabled&&(a.setDrawingBufferSize(u.width,u.height,z),x.stop())}var d=this,e=null,f=null,g=null,h=new F,l=new F;"undefined"!==typeof window&&"VRFrameData"in window&&(f=new window.VRFrameData,window.addEventListener("vrdisplaypresentchange",c,!1));var m=new F,v=new ea,n=new p,r=new X;r.bounds=new U(0,0,.5,1);
+r.layers.enable(1);var q=new X;q.bounds=new U(.5,0,.5,1);q.layers.enable(2);var k=new Ec([r,q]);k.layers.enable(1);k.layers.enable(2);var u,z;this.enabled=!1;this.userHeight=1.6;this.getDevice=function(){return e};this.setDevice=function(a){void 0!==a&&(e=a);x.setContext(a)};this.setPoseTarget=function(a){void 0!==a&&(g=a)};this.getCamera=function(a){if(null===e)return a;e.depthNear=a.near;e.depthFar=a.far;e.getFrameData(f);var b=e.stageParameters;b?h.fromArray(b.sittingToStandingTransform):h.makeTranslation(0,
+d.userHeight,0);b=f.pose;var c=null!==g?g:a;c.matrix.copy(h);c.matrix.decompose(c.position,c.quaternion,c.scale);null!==b.orientation&&(v.fromArray(b.orientation),c.quaternion.multiply(v));null!==b.position&&(v.setFromRotationMatrix(h),n.fromArray(b.position),n.applyQuaternion(v),c.position.add(n));c.updateMatrixWorld();if(!1===e.isPresenting)return a;r.near=a.near;q.near=a.near;r.far=a.far;q.far=a.far;k.matrixWorld.copy(a.matrixWorld);k.matrixWorldInverse.copy(a.matrixWorldInverse);r.matrixWorldInverse.fromArray(f.leftViewMatrix);
+q.matrixWorldInverse.fromArray(f.rightViewMatrix);l.getInverse(h);r.matrixWorldInverse.multiply(l);q.matrixWorldInverse.multiply(l);a=c.parent;null!==a&&(m.getInverse(a.matrixWorld),r.matrixWorldInverse.multiply(m),q.matrixWorldInverse.multiply(m));r.matrixWorld.getInverse(r.matrixWorldInverse);q.matrixWorld.getInverse(q.matrixWorldInverse);r.projectionMatrix.fromArray(f.leftProjectionMatrix);q.projectionMatrix.fromArray(f.rightProjectionMatrix);k.projectionMatrix.copy(r.projectionMatrix);a=e.getLayers();
+a.length&&(a=a[0],null!==a.leftBounds&&4===a.leftBounds.length&&r.bounds.fromArray(a.leftBounds),null!==a.rightBounds&&4===a.rightBounds.length&&q.bounds.fromArray(a.rightBounds));return k};this.getStandingMatrix=function(){return h};this.isPresenting=b;var x=new Td;this.setAnimationLoop=function(a){x.setAnimationLoop(a)};this.submitFrame=function(){b()&&e.submitFrame()};this.dispose=function(){"undefined"!==typeof window&&window.removeEventListener("vrdisplaypresentchange",c)}}function Lg(a){function b(){return null!==
+f&&null!==g}function c(a,b){null===b?a.matrixWorld.copy(a.matrix):a.matrixWorld.multiplyMatrices(b.matrixWorld,a.matrix);a.matrixWorldInverse.getInverse(a.matrixWorld)}var d=a.context,e=null,f=null,g=null,h=null,l=new X;l.layers.enable(1);l.viewport=new U;var m=new X;m.layers.enable(2);m.viewport=new U;var v=new Ec([l,m]);v.layers.enable(1);v.layers.enable(2);this.enabled=!1;this.getDevice=function(){return e};this.setDevice=function(a){void 0!==a&&(e=a);d.setCompatibleXRDevice(a)};this.setSession=
+function(b,c){f=b;null!==f&&(f.addEventListener("end",function(){a.setFramebuffer(null);r.stop()}),f.baseLayer=new XRWebGLLayer(f,d),f.requestFrameOfReference(c.frameOfReferenceType).then(function(b){g=b;a.setFramebuffer(f.baseLayer.framebuffer);r.setContext(f);r.start()}))};this.getCamera=function(a){if(b()){var d=a.parent,e=v.cameras;c(v,d);for(var f=0;f<e.length;f++)c(e[f],d);a.matrixWorld.copy(v.matrixWorld);a=a.children;f=0;for(d=a.length;f<d;f++)a[f].updateMatrixWorld(!0);return v}return a};
+this.isPresenting=b;var n=null,r=new Td;r.setAnimationLoop(function(a,b){h=b.getDevicePose(g);var c=f.baseLayer;b=b.views;for(var d=0;d<b.length;d++){var e=b[d],l=c.getViewport(e),m=h.getViewMatrix(e),r=v.cameras[d];r.matrix.fromArray(m).getInverse(r.matrix);r.projectionMatrix.fromArray(e.projectionMatrix);r.viewport.set(l.x,l.y,l.width,l.height);0===d&&(v.matrix.copy(r.matrix),v.projectionMatrix.copy(r.projectionMatrix))}n&&n(a)});this.setAnimationLoop=function(a){n=a};this.dispose=function(){};
+this.getStandingMatrix=function(){console.warn("THREE.WebXRManager: getStandingMatrix() is no longer needed.");return new THREE.Matrix4};this.submitFrame=function(){}}function Zd(a){function b(){la=new Nf(D);la.get("WEBGL_depth_texture");la.get("OES_texture_float");la.get("OES_texture_float_linear");la.get("OES_texture_half_float");la.get("OES_texture_half_float_linear");la.get("OES_standard_derivatives");la.get("OES_element_index_uint");la.get("ANGLE_instanced_arrays");ha=new Ze(D,la);Ra=new Lf(D,
+la,a);Z=new Jg(D,la,ha);Z.scissor(T.copy(N).multiplyScalar(Y));Z.viewport(S.copy(ba).multiplyScalar(Y));gb=new Qf(D);Ba=new yg;hb=new Kg(D,la,Z,Ba,Ra,ha,gb);ra=new Ef(D);sa=new Of(D,ra,gb);oa=new Tf(sa,gb);va=new Sf(D);na=new xg(A,la,Ra);ta=new Cg;pa=new Hg;ma=new Jf(A,Z,oa,C);wa=new Kf(D,la,gb);ya=new Pf(D,la,gb);za=new Ig(A,D,Z,hb,Ra);gb.programs=na.programs;A.context=D;A.capabilities=Ra;A.extensions=la;A.properties=Ba;A.renderLists=ta;A.state=Z;A.info=gb}function c(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");
+B=!0}function d(){console.log("THREE.WebGLRenderer: Context Restored.");B=!1;b()}function e(a){a=a.target;a.removeEventListener("dispose",e);f(a);Ba.remove(a)}function f(a){var b=Ba.get(a).program;a.program=void 0;void 0!==b&&na.releaseProgram(b)}function g(a,b,c){a.render(function(a){A.renderBufferImmediate(a,b,c)})}function h(a,b,c){if(!1!==a.visible){if(a.layers.test(b.layers))if(a.isLight)y.pushLight(a),a.castShadow&&y.pushShadow(a);else if(a.isSprite)a.frustumCulled&&!ea.intersectsSprite(a)||
+y.pushSprite(a);else if(a.isImmediateRenderObject)c&&Rb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(fa),E.push(a,null,a.material,Rb.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.update(),!a.frustumCulled||ea.intersectsObject(a)){c&&Rb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(fa);var d=oa.update(a),e=a.material;if(Array.isArray(e))for(var f=d.groups,g=0,l=f.length;g<l;g++){var m=f[g],n=e[m.materialIndex];n&&n.visible&&E.push(a,d,n,Rb.z,m)}else e.visible&&
+E.push(a,d,e,Rb.z,null)}a=a.children;g=0;for(l=a.length;g<l;g++)h(a[g],b,c)}}function l(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var g=a[e],h=g.object,l=g.geometry,n=void 0===d?g.material:d;g=g.group;if(c.isArrayCamera){W=c;for(var v=c.cameras,r=0,k=v.length;r<k;r++){var q=v[r];if(h.layers.test(q.layers)){if("viewport"in q)Z.viewport(S.copy(q.viewport));else{var t=q.bounds;Z.viewport(S.set(t.x*Ya,t.y*R,t.z*Ya,t.w*R).multiplyScalar(Y))}m(h,b,q,l,n,g)}}}else W=null,m(h,b,c,l,n,g)}}function m(a,b,c,
+d,e,f){a.onBeforeRender(A,b,c,d,e,f);y=pa.get(b,W||c);a.modelViewMatrix.multiplyMatrices(c.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){var h=a.isMesh&&0>a.matrixWorld.determinant();Z.setMaterial(e,h);h=n(c,b.fog,e,a);O="";g(a,h,e)}else A.renderBufferDirect(c,b.fog,d,e,a,f);a.onAfterRender(A,b,c,d,e,f);y=pa.get(b,W||c)}function v(a,b,c){var d=Ba.get(a),g=y.state.lights;c=na.getParameters(a,g.state,y.state.shadowsArray,b,X.numPlanes,
+X.numIntersection,c);var h=na.getProgramCode(a,c),l=d.program,m=!0;if(void 0===l)a.addEventListener("dispose",e);else if(l.code!==h)f(a);else{if(d.lightsHash!==g.state.hash)Ba.update(a,"lightsHash",g.state.hash);else if(void 0!==c.shaderID)return;m=!1}m&&(c.shaderID?(l=tb[c.shaderID],d.shader={name:a.type,uniforms:Ca.clone(l.uniforms),vertexShader:l.vertexShader,fragmentShader:l.fragmentShader}):d.shader={name:a.type,uniforms:a.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader},
+a.onBeforeCompile(d.shader,A),l=na.acquireProgram(a,d.shader,c,h),d.program=l,a.program=l);c=l.getAttributes();if(a.morphTargets)for(h=a.numSupportedMorphTargets=0;h<A.maxMorphTargets;h++)0<=c["morphTarget"+h]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(h=a.numSupportedMorphNormals=0;h<A.maxMorphNormals;h++)0<=c["morphNormal"+h]&&a.numSupportedMorphNormals++;c=d.shader.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===a.clipping)d.numClippingPlanes=X.numPlanes,d.numIntersection=
+X.numIntersection,c.clippingPlanes=X.uniform;d.fog=b;d.lightsHash=g.state.hash;a.lights&&(c.ambientLightColor.value=g.state.ambient,c.directionalLights.value=g.state.directional,c.spotLights.value=g.state.spot,c.rectAreaLights.value=g.state.rectArea,c.pointLights.value=g.state.point,c.hemisphereLights.value=g.state.hemi,c.directionalShadowMap.value=g.state.directionalShadowMap,c.directionalShadowMatrix.value=g.state.directionalShadowMatrix,c.spotShadowMap.value=g.state.spotShadowMap,c.spotShadowMatrix.value=
+g.state.spotShadowMatrix,c.pointShadowMap.value=g.state.pointShadowMap,c.pointShadowMatrix.value=g.state.pointShadowMatrix);a=d.program.getUniforms();a=db.seqWithValue(a.seq,c);d.uniformsList=a}function n(a,b,c,d){ca=0;var e=Ba.get(c),f=y.state.lights;ja&&(qa||a!==L)&&X.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,e,a===L&&c.id===J);!1===c.needsUpdate&&(void 0===e.program?c.needsUpdate=!0:c.fog&&e.fog!==b?c.needsUpdate=!0:c.lights&&e.lightsHash!==f.state.hash?c.needsUpdate=!0:void 0===
+e.numClippingPlanes||e.numClippingPlanes===X.numPlanes&&e.numIntersection===X.numIntersection||(c.needsUpdate=!0));c.needsUpdate&&(v(c,b,d),c.needsUpdate=!1);var g=!1,h=!1,l=!1;f=e.program;var m=f.getUniforms(),n=e.shader.uniforms;Z.useProgram(f.program)&&(l=h=g=!0);c.id!==J&&(J=c.id,h=!0);if(g||a!==L){m.setValue(D,"projectionMatrix",a.projectionMatrix);Ra.logarithmicDepthBuffer&&m.setValue(D,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));L!==(W||a)&&(L=W||a,l=h=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||
+c.isMeshStandardMaterial||c.envMap)g=m.map.cameraPosition,void 0!==g&&g.setValue(D,Rb.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.skinning)&&m.setValue(D,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(m.setOptional(D,d,"bindMatrix"),m.setOptional(D,d,"bindMatrixInverse"),a=d.skeleton))if(g=a.bones,Ra.floatVertexTextures){if(void 0===a.boneTexture){g=Math.sqrt(4*g.length);g=P.ceilPowerOfTwo(g);
+g=Math.max(g,4);var k=new Float32Array(g*g*4);k.set(a.boneMatrices);var t=new lb(k,g,g,1023,1015);t.needsUpdate=!0;a.boneMatrices=k;a.boneTexture=t;a.boneTextureSize=g}m.setValue(D,"boneTexture",a.boneTexture);m.setValue(D,"boneTextureSize",a.boneTextureSize)}else m.setOptional(D,a,"boneMatrices");h&&(m.setValue(D,"toneMappingExposure",A.toneMappingExposure),m.setValue(D,"toneMappingWhitePoint",A.toneMappingWhitePoint),c.lights&&(h=l,n.ambientLightColor.needsUpdate=h,n.directionalLights.needsUpdate=
+h,n.pointLights.needsUpdate=h,n.spotLights.needsUpdate=h,n.rectAreaLights.needsUpdate=h,n.hemisphereLights.needsUpdate=h),b&&c.fog&&(n.fogColor.value=b.color,b.isFog?(n.fogNear.value=b.near,n.fogFar.value=b.far):b.isFogExp2&&(n.fogDensity.value=b.density)),c.isMeshBasicMaterial?r(n,c):c.isMeshLambertMaterial?(r(n,c),c.emissiveMap&&(n.emissiveMap.value=c.emissiveMap)):c.isMeshPhongMaterial?(r(n,c),c.isMeshToonMaterial?(q(n,c),c.gradientMap&&(n.gradientMap.value=c.gradientMap)):q(n,c)):c.isMeshStandardMaterial?
+(r(n,c),c.isMeshPhysicalMaterial&&(n.clearCoat.value=c.clearCoat,n.clearCoatRoughness.value=c.clearCoatRoughness),n.roughness.value=c.roughness,n.metalness.value=c.metalness,c.roughnessMap&&(n.roughnessMap.value=c.roughnessMap),c.metalnessMap&&(n.metalnessMap.value=c.metalnessMap),c.emissiveMap&&(n.emissiveMap.value=c.emissiveMap),c.bumpMap&&(n.bumpMap.value=c.bumpMap,n.bumpScale.value=c.bumpScale,1===c.side&&(n.bumpScale.value*=-1)),c.normalMap&&(n.normalMap.value=c.normalMap,n.normalScale.value.copy(c.normalScale),
+1===c.side&&n.normalScale.value.negate()),c.displacementMap&&(n.displacementMap.value=c.displacementMap,n.displacementScale.value=c.displacementScale,n.displacementBias.value=c.displacementBias),c.envMap&&(n.envMapIntensity.value=c.envMapIntensity)):c.isMeshDepthMaterial?(r(n,c),c.displacementMap&&(n.displacementMap.value=c.displacementMap,n.displacementScale.value=c.displacementScale,n.displacementBias.value=c.displacementBias)):c.isMeshDistanceMaterial?(r(n,c),c.displacementMap&&(n.displacementMap.value=
+c.displacementMap,n.displacementScale.value=c.displacementScale,n.displacementBias.value=c.displacementBias),n.referencePosition.value.copy(c.referencePosition),n.nearDistance.value=c.nearDistance,n.farDistance.value=c.farDistance):c.isMeshNormalMaterial?(r(n,c),c.bumpMap&&(n.bumpMap.value=c.bumpMap,n.bumpScale.value=c.bumpScale,1===c.side&&(n.bumpScale.value*=-1)),c.normalMap&&(n.normalMap.value=c.normalMap,n.normalScale.value.copy(c.normalScale),1===c.side&&n.normalScale.value.negate()),c.displacementMap&&
+(n.displacementMap.value=c.displacementMap,n.displacementScale.value=c.displacementScale,n.displacementBias.value=c.displacementBias)):c.isLineBasicMaterial?(n.diffuse.value=c.color,n.opacity.value=c.opacity,c.isLineDashedMaterial&&(n.dashSize.value=c.dashSize,n.totalSize.value=c.dashSize+c.gapSize,n.scale.value=c.scale)):c.isPointsMaterial?(n.diffuse.value=c.color,n.opacity.value=c.opacity,n.size.value=c.size*Y,n.scale.value=.5*R,n.map.value=c.map,null!==c.map&&(!0===c.map.matrixAutoUpdate&&c.map.updateMatrix(),
+n.uvTransform.value.copy(c.map.matrix))):c.isShadowMaterial&&(n.color.value=c.color,n.opacity.value=c.opacity),void 0!==n.ltc_1&&(n.ltc_1.value=M.LTC_1),void 0!==n.ltc_2&&(n.ltc_2.value=M.LTC_2),db.upload(D,e.uniformsList,n,A));c.isShaderMaterial&&!0===c.uniformsNeedUpdate&&(db.upload(D,e.uniformsList,n,A),c.uniformsNeedUpdate=!1);m.setValue(D,"modelViewMatrix",d.modelViewMatrix);m.setValue(D,"normalMatrix",d.normalMatrix);m.setValue(D,"modelMatrix",d.matrixWorld);return f}function r(a,b){a.opacity.value=
+b.opacity;b.color&&(a.diffuse.value=b.color);b.emissive&&a.emissive.value.copy(b.emissive).multiplyScalar(b.emissiveIntensity);b.map&&(a.map.value=b.map);b.alphaMap&&(a.alphaMap.value=b.alphaMap);b.specularMap&&(a.specularMap.value=b.specularMap);b.envMap&&(a.envMap.value=b.envMap,a.flipEnvMap.value=b.envMap&&b.envMap.isCubeTexture?-1:1,a.reflectivity.value=b.reflectivity,a.refractionRatio.value=b.refractionRatio,a.maxMipLevel.value=Ba.get(b.envMap).__maxMipLevel);b.lightMap&&(a.lightMap.value=b.lightMap,
+a.lightMapIntensity.value=b.lightMapIntensity);b.aoMap&&(a.aoMap.value=b.aoMap,a.aoMapIntensity.value=b.aoMapIntensity);if(b.map)var c=b.map;else b.specularMap?c=b.specularMap:b.displacementMap?c=b.displacementMap:b.normalMap?c=b.normalMap:b.bumpMap?c=b.bumpMap:b.roughnessMap?c=b.roughnessMap:b.metalnessMap?c=b.metalnessMap:b.alphaMap?c=b.alphaMap:b.emissiveMap&&(c=b.emissiveMap);void 0!==c&&(c.isWebGLRenderTarget&&(c=c.texture),!0===c.matrixAutoUpdate&&c.updateMatrix(),a.uvTransform.value.copy(c.matrix))}
+function q(a,b){a.specular.value=b.specular;a.shininess.value=Math.max(b.shininess,1E-4);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale,1===b.side&&(a.bumpScale.value*=-1));b.normalMap&&(a.normalMap.value=b.normalMap,a.normalScale.value.copy(b.normalScale),1===b.side&&a.normalScale.value.negate());b.displacementMap&&(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=
+b.displacementBias)}console.log("THREE.WebGLRenderer","94dev");a=a||{};var k=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),u=void 0!==a.context?a.context:null,z=void 0!==a.alpha?a.alpha:!1,x=void 0!==a.depth?a.depth:!0,w=void 0!==a.stencil?a.stencil:!0,H=void 0!==a.antialias?a.antialias:!1,C=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,V=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,Q=void 0!==a.powerPreference?a.powerPreference:
+"default",E=null,y=null;this.domElement=k;this.context=null;this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.clippingPlanes=[];this.localClippingEnabled=!1;this.gammaFactor=2;this.physicallyCorrectLights=this.gammaOutput=this.gammaInput=!1;this.toneMappingWhitePoint=this.toneMappingExposure=this.toneMapping=1;this.maxMorphTargets=8;this.maxMorphNormals=4;var A=this,B=!1,I=null,G=null,K=null,J=-1,O="",L=null,W=null,S=new U,T=new U,aa=null,ca=0,Ya=
+k.width,R=k.height,Y=1,ba=new U(0,0,Ya,R),N=new U(0,0,Ya,R),da=!1,ea=new qd,X=new Mf,ja=!1,qa=!1,fa=new F,Rb=new p;try{z={alpha:z,depth:x,stencil:w,antialias:H,premultipliedAlpha:C,preserveDrawingBuffer:V,powerPreference:Q};k.addEventListener("webglcontextlost",c,!1);k.addEventListener("webglcontextrestored",d,!1);var D=u||k.getContext("webgl",z)||k.getContext("experimental-webgl",z);if(null===D){if(null!==k.getContext("webgl"))throw Error("Error creating WebGL context with your selected attributes.");
+throw Error("Error creating WebGL context.");}void 0===D.getShaderPrecisionFormat&&(D.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(Mg){console.error("THREE.WebGLRenderer: "+Mg.message)}var la,Ra,Z,gb,Ba,hb,ra,sa,oa,na,ta,pa,ma,va,wa,ya,za,ha;b();var ka="xr"in navigator?new Lg(A):new $e(A);this.vr=ka;var Aa=new Ye(A,oa,Ra.maxTextureSize);this.shadowMap=Aa;this.getContext=function(){return D};this.getContextAttributes=function(){return D.getContextAttributes()};
+this.forceContextLoss=function(){var a=la.get("WEBGL_lose_context");a&&a.loseContext()};this.forceContextRestore=function(){var a=la.get("WEBGL_lose_context");a&&a.restoreContext()};this.getPixelRatio=function(){return Y};this.setPixelRatio=function(a){void 0!==a&&(Y=a,this.setSize(Ya,R,!1))};this.getSize=function(){return{width:Ya,height:R}};this.setSize=function(a,b,c){ka.isPresenting()?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(Ya=a,R=b,k.width=a*Y,k.height=
+b*Y,!1!==c&&(k.style.width=a+"px",k.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(){return{width:Ya*Y,height:R*Y}};this.setDrawingBufferSize=function(a,b,c){Ya=a;R=b;Y=c;k.width=a*c;k.height=b*c;this.setViewport(0,0,a,b)};this.getCurrentViewport=function(){return S};this.setViewport=function(a,b,c,d){ba.set(a,R-b-d,c,d);Z.viewport(S.copy(ba).multiplyScalar(Y))};this.setScissor=function(a,b,c,d){N.set(a,R-b-d,c,d);Z.scissor(T.copy(N).multiplyScalar(Y))};this.setScissorTest=
+function(a){Z.setScissorTest(da=a)};this.getClearColor=function(){return ma.getClearColor()};this.setClearColor=function(){ma.setClearColor.apply(ma,arguments)};this.getClearAlpha=function(){return ma.getClearAlpha()};this.setClearAlpha=function(){ma.setClearAlpha.apply(ma,arguments)};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=D.COLOR_BUFFER_BIT;if(void 0===b||b)d|=D.DEPTH_BUFFER_BIT;if(void 0===c||c)d|=D.STENCIL_BUFFER_BIT;D.clear(d)};this.clearColor=function(){this.clear(!0,!1,!1)};
+this.clearDepth=function(){this.clear(!1,!0,!1)};this.clearStencil=function(){this.clear(!1,!1,!0)};this.clearTarget=function(a,b,c,d){this.setRenderTarget(a);this.clear(b,c,d)};this.dispose=function(){k.removeEventListener("webglcontextlost",c,!1);k.removeEventListener("webglcontextrestored",d,!1);ta.dispose();pa.dispose();Ba.dispose();oa.dispose();ka.dispose();ua.stop()};this.renderBufferImmediate=function(a,b,c){Z.initAttributes();var d=Ba.get(a);a.hasPositions&&!d.position&&(d.position=D.createBuffer());
+a.hasNormals&&!d.normal&&(d.normal=D.createBuffer());a.hasUvs&&!d.uv&&(d.uv=D.createBuffer());a.hasColors&&!d.color&&(d.color=D.createBuffer());b=b.getAttributes();a.hasPositions&&(D.bindBuffer(D.ARRAY_BUFFER,d.position),D.bufferData(D.ARRAY_BUFFER,a.positionArray,D.DYNAMIC_DRAW),Z.enableAttribute(b.position),D.vertexAttribPointer(b.position,3,D.FLOAT,!1,0,0));if(a.hasNormals){D.bindBuffer(D.ARRAY_BUFFER,d.normal);if(!c.isMeshPhongMaterial&&!c.isMeshStandardMaterial&&!c.isMeshNormalMaterial&&!0===
+c.flatShading)for(var e=0,f=3*a.count;e<f;e+=9){var g=a.normalArray,h=(g[e+0]+g[e+3]+g[e+6])/3,l=(g[e+1]+g[e+4]+g[e+7])/3,m=(g[e+2]+g[e+5]+g[e+8])/3;g[e+0]=h;g[e+1]=l;g[e+2]=m;g[e+3]=h;g[e+4]=l;g[e+5]=m;g[e+6]=h;g[e+7]=l;g[e+8]=m}D.bufferData(D.ARRAY_BUFFER,a.normalArray,D.DYNAMIC_DRAW);Z.enableAttribute(b.normal);D.vertexAttribPointer(b.normal,3,D.FLOAT,!1,0,0)}a.hasUvs&&c.map&&(D.bindBuffer(D.ARRAY_BUFFER,d.uv),D.bufferData(D.ARRAY_BUFFER,a.uvArray,D.DYNAMIC_DRAW),Z.enableAttribute(b.uv),D.vertexAttribPointer(b.uv,
+2,D.FLOAT,!1,0,0));a.hasColors&&0!==c.vertexColors&&(D.bindBuffer(D.ARRAY_BUFFER,d.color),D.bufferData(D.ARRAY_BUFFER,a.colorArray,D.DYNAMIC_DRAW),Z.enableAttribute(b.color),D.vertexAttribPointer(b.color,3,D.FLOAT,!1,0,0));Z.disableUnusedAttributes();D.drawArrays(D.TRIANGLES,0,a.count);a.count=0};this.renderBufferDirect=function(a,b,c,d,e,f){var g=e.isMesh&&0>e.matrixWorld.determinant();Z.setMaterial(d,g);var h=n(a,b,d,e);a=c.id+"_"+h.id+"_"+(!0===d.wireframe);var l=!1;a!==O&&(O=a,l=!0);e.morphTargetInfluences&&
+(va.update(e,c,d,h),l=!0);g=c.index;var m=c.attributes.position;b=1;!0===d.wireframe&&(g=sa.getWireframeAttribute(c),b=2);a=wa;if(null!==g){var v=ra.get(g);a=ya;a.setIndex(v)}if(l){if(c&&c.isInstancedBufferGeometry&&null===la.get("ANGLE_instanced_arrays"))console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{Z.initAttributes();l=c.attributes;h=h.getAttributes();var r=d.defaultAttributeValues;
+for(H in h){var k=h[H];if(0<=k){var q=l[H];if(void 0!==q){var t=q.normalized,u=q.itemSize,p=ra.get(q);if(void 0!==p){var z=p.buffer,w=p.type;p=p.bytesPerElement;if(q.isInterleavedBufferAttribute){var x=q.data,C=x.stride;q=q.offset;x&&x.isInstancedInterleavedBuffer?(Z.enableAttributeAndDivisor(k,x.meshPerAttribute),void 0===c.maxInstancedCount&&(c.maxInstancedCount=x.meshPerAttribute*x.count)):Z.enableAttribute(k);D.bindBuffer(D.ARRAY_BUFFER,z);D.vertexAttribPointer(k,u,w,t,C*p,q*p)}else q.isInstancedBufferAttribute?
+(Z.enableAttributeAndDivisor(k,q.meshPerAttribute),void 0===c.maxInstancedCount&&(c.maxInstancedCount=q.meshPerAttribute*q.count)):Z.enableAttribute(k),D.bindBuffer(D.ARRAY_BUFFER,z),D.vertexAttribPointer(k,u,w,t,0,0)}}else if(void 0!==r&&(t=r[H],void 0!==t))switch(t.length){case 2:D.vertexAttrib2fv(k,t);break;case 3:D.vertexAttrib3fv(k,t);break;case 4:D.vertexAttrib4fv(k,t);break;default:D.vertexAttrib1fv(k,t)}}}Z.disableUnusedAttributes()}null!==g&&D.bindBuffer(D.ELEMENT_ARRAY_BUFFER,v.buffer)}v=
+Infinity;null!==g?v=g.count:void 0!==m&&(v=m.count);g=c.drawRange.start*b;m=null!==f?f.start*b:0;var H=Math.max(g,m);f=Math.max(0,Math.min(v,g+c.drawRange.count*b,m+(null!==f?f.count*b:Infinity))-1-H+1);if(0!==f){if(e.isMesh)if(!0===d.wireframe)Z.setLineWidth(d.wireframeLinewidth*(null===G?Y:1)),a.setMode(D.LINES);else switch(e.drawMode){case 0:a.setMode(D.TRIANGLES);break;case 1:a.setMode(D.TRIANGLE_STRIP);break;case 2:a.setMode(D.TRIANGLE_FAN)}else e.isLine?(d=d.linewidth,void 0===d&&(d=1),Z.setLineWidth(d*
+(null===G?Y:1)),e.isLineSegments?a.setMode(D.LINES):e.isLineLoop?a.setMode(D.LINE_LOOP):a.setMode(D.LINE_STRIP)):e.isPoints&&a.setMode(D.POINTS);c&&c.isInstancedBufferGeometry?0<c.maxInstancedCount&&a.renderInstances(c,H,f):a.render(H,f)}};this.compile=function(a,b){y=pa.get(a,b);y.init();a.traverse(function(a){a.isLight&&(y.pushLight(a),a.castShadow&&y.pushShadow(a))});y.setupLights(b);a.traverse(function(b){if(b.material)if(Array.isArray(b.material))for(var c=0;c<b.material.length;c++)v(b.material[c],
+a.fog,b);else v(b.material,a.fog,b)})};var xa=null,ua=new Td;ua.setAnimationLoop(function(a){ka.isPresenting()||xa&&xa(a)});"undefined"!==typeof window&&ua.setContext(window);this.setAnimationLoop=function(a){xa=a;ka.setAnimationLoop(a);ua.start()};this.render=function(a,b,c,d){if(!b||!b.isCamera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else if(!B){O="";J=-1;L=null;!0===a.autoUpdate&&a.updateMatrixWorld();null===b.parent&&b.updateMatrixWorld();ka.enabled&&
+(b=ka.getCamera(b));y=pa.get(a,b);y.init();a.onBeforeRender(A,a,b,c);fa.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);ea.setFromMatrix(fa);qa=this.localClippingEnabled;ja=X.init(this.clippingPlanes,qa,b);E=ta.get(a,b);E.init();h(a,b,A.sortObjects);!0===A.sortObjects&&E.sort();ja&&X.beginShadows();Aa.render(y.state.shadowsArray,a,b);y.setupLights(b);ja&&X.endShadows();this.info.autoReset&&this.info.reset();void 0===c&&(c=null);this.setRenderTarget(c);ma.render(E,a,b,d);d=E.opaque;var e=
+E.transparent;if(a.overrideMaterial){var f=a.overrideMaterial;d.length&&l(d,a,b,f);e.length&&l(e,a,b,f)}else d.length&&l(d,a,b),e.length&&l(e,a,b);za.render(y.state.spritesArray,a,b);c&&hb.updateRenderTargetMipmap(c);Z.buffers.depth.setTest(!0);Z.buffers.depth.setMask(!0);Z.buffers.color.setMask(!0);Z.setPolygonOffset(!1);a.onAfterRender(A,a,b);ka.enabled&&ka.submitFrame();y=E=null}};this.allocTextureUnit=function(){var a=ca;a>=Ra.maxTextures&&console.warn("THREE.WebGLRenderer: Trying to use "+a+
+" texture units while this GPU supports only "+Ra.maxTextures);ca+=1;return a};this.setTexture2D=function(){var a=!1;return function(b,c){b&&b.isWebGLRenderTarget&&(a||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),a=!0),b=b.texture);hb.setTexture2D(b,c)}}();this.setTexture=function(){var a=!1;return function(b,c){a||(console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."),a=!0);hb.setTexture2D(b,
+c)}}();this.setTextureCube=function(){var a=!1;return function(b,c){b&&b.isWebGLRenderTargetCube&&(a||(console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),a=!0),b=b.texture);b&&b.isCubeTexture||Array.isArray(b.image)&&6===b.image.length?hb.setTextureCube(b,c):hb.setTextureCubeDynamic(b,c)}}();this.setFramebuffer=function(a){I=a};this.getRenderTarget=function(){return G};this.setRenderTarget=function(a){(G=a)&&void 0===
+Ba.get(a).__webglFramebuffer&&hb.setupRenderTarget(a);var b=I,c=!1;a?(b=Ba.get(a).__webglFramebuffer,a.isWebGLRenderTargetCube&&(b=b[a.activeCubeFace],c=!0),S.copy(a.viewport),T.copy(a.scissor),aa=a.scissorTest):(S.copy(ba).multiplyScalar(Y),T.copy(N).multiplyScalar(Y),aa=da);K!==b&&(D.bindFramebuffer(D.FRAMEBUFFER,b),K=b);Z.viewport(S);Z.scissor(T);Z.setScissorTest(aa);c&&(c=Ba.get(a.texture),D.framebufferTexture2D(D.FRAMEBUFFER,D.COLOR_ATTACHMENT0,D.TEXTURE_CUBE_MAP_POSITIVE_X+a.activeCubeFace,
+c.__webglTexture,a.activeMipMapLevel))};this.readRenderTargetPixels=function(a,b,c,d,e,f){if(a&&a.isWebGLRenderTarget){var g=Ba.get(a).__webglFramebuffer;if(g){var h=!1;g!==K&&(D.bindFramebuffer(D.FRAMEBUFFER,g),h=!0);try{var l=a.texture,m=l.format,n=l.type;1023!==m&&ha.convert(m)!==D.getParameter(D.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===n||ha.convert(n)===D.getParameter(D.IMPLEMENTATION_COLOR_READ_TYPE)||
+1015===n&&(la.get("OES_texture_float")||la.get("WEBGL_color_buffer_float"))||1016===n&&la.get("EXT_color_buffer_half_float")?D.checkFramebufferStatus(D.FRAMEBUFFER)===D.FRAMEBUFFER_COMPLETE?0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&D.readPixels(b,c,d,e,ha.convert(m),ha.convert(n),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{h&&
+D.bindFramebuffer(D.FRAMEBUFFER,K)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")};this.copyFramebufferToTexture=function(a,b,c){var d=b.image.width,e=b.image.height,f=ha.convert(b.format);this.setTexture2D(b,0);D.copyTexImage2D(D.TEXTURE_2D,c||0,f,a.x,a.y,d,e,0)};this.copyTextureToTexture=function(a,b,c,d){var e=b.image.width,f=b.image.height,g=ha.convert(c.format),h=ha.convert(c.type);this.setTexture2D(c,0);b.isDataTexture?D.texSubImage2D(D.TEXTURE_2D,
+d||0,a.x,a.y,e,f,g,h,b.image.data):D.texSubImage2D(D.TEXTURE_2D,d||0,a.x,a.y,g,h,b.image)}}function Sb(a,b){this.name="";this.color=new K(a);this.density=void 0!==b?b:2.5E-4}function Tb(a,b,c){this.name="";this.color=new K(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function sd(){B.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.background=null;this.autoUpdate=!0}function ib(a){L.call(this);this.type="SpriteMaterial";this.color=new K(16777215);this.map=null;this.rotation=
+0;this.lights=this.fog=!1;this.setValues(a)}function Fc(a){B.call(this);this.type="Sprite";this.material=void 0!==a?a:new ib;this.center=new y(.5,.5)}function Gc(){B.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function Hc(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===b)this.calculateInverses();else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),
+this.boneInverses=[],a=0,b=this.bones.length;a<b;a++)this.boneInverses.push(new F)}function td(){B.call(this);this.type="Bone"}function ud(a,b){pa.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new F;this.bindMatrixInverse=new F;a=this.initBones();a=new Hc(a);this.bind(a,this.matrixWorld);this.normalizeSkinWeights()}function T(a){L.call(this);this.type="LineBasicMaterial";this.color=new K(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.lights=!1;
+this.setValues(a)}function ma(a,b,c){if(1===c)return console.warn("THREE.Line: parameter THREE.LinePieces no longer supported. Created THREE.LineSegments instead."),new aa(a,b);B.call(this);this.type="Line";this.geometry=void 0!==a?a:new G;this.material=void 0!==b?b:new T({color:16777215*Math.random()})}function aa(a,b){ma.call(this,a,b);this.type="LineSegments"}function vd(a,b){ma.call(this,a,b);this.type="LineLoop"}function Ia(a){L.call(this);this.type="PointsMaterial";this.color=new K(16777215);
+this.map=null;this.size=1;this.sizeAttenuation=!0;this.lights=this.morphTargets=!1;this.setValues(a)}function Ub(a,b){B.call(this);this.type="Points";this.geometry=void 0!==a?a:new G;this.material=void 0!==b?b:new Ia({color:16777215*Math.random()})}function wd(){B.call(this);this.type="Group"}function $d(a,b,c,d,e,f,g,h,l){ca.call(this,a,b,c,d,e,f,g,h,l);this.generateMipmaps=!1}function Vb(a,b,c,d,e,f,g,h,l,m,v,n){ca.call(this,null,f,g,h,l,m,d,e,v,n);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=
+this.flipY=!1}function Ic(a,b,c,d,e,f,g,h,l,m){m=void 0!==m?m:1026;if(1026!==m&&1027!==m)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===m&&(c=1012);void 0===c&&1027===m&&(c=1020);ca.call(this,null,d,e,f,g,h,m,c,l);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!==h?h:1003;this.generateMipmaps=this.flipY=!1}function Wb(a){G.call(this);this.type="WireframeGeometry";var b=[],c,d,e,f=[0,0],g={},h=
+["a","b","c"];if(a&&a.isGeometry){var l=a.faces;var m=0;for(d=l.length;m<d;m++){var v=l[m];for(c=0;3>c;c++){var n=v[h[c]];var r=v[h[(c+1)%3]];f[0]=Math.min(n,r);f[1]=Math.max(n,r);n=f[0]+","+f[1];void 0===g[n]&&(g[n]={index1:f[0],index2:f[1]})}}for(n in g)m=g[n],h=a.vertices[m.index1],b.push(h.x,h.y,h.z),h=a.vertices[m.index2],b.push(h.x,h.y,h.z)}else if(a&&a.isBufferGeometry)if(h=new p,null!==a.index){l=a.attributes.position;v=a.index;var k=a.groups;0===k.length&&(k=[{start:0,count:v.count,materialIndex:0}]);
+a=0;for(e=k.length;a<e;++a)for(m=k[a],c=m.start,d=m.count,m=c,d=c+d;m<d;m+=3)for(c=0;3>c;c++)n=v.getX(m+c),r=v.getX(m+(c+1)%3),f[0]=Math.min(n,r),f[1]=Math.max(n,r),n=f[0]+","+f[1],void 0===g[n]&&(g[n]={index1:f[0],index2:f[1]});for(n in g)m=g[n],h.fromBufferAttribute(l,m.index1),b.push(h.x,h.y,h.z),h.fromBufferAttribute(l,m.index2),b.push(h.x,h.y,h.z)}else for(l=a.attributes.position,m=0,d=l.count/3;m<d;m++)for(c=0;3>c;c++)g=3*m+c,h.fromBufferAttribute(l,g),b.push(h.x,h.y,h.z),g=3*m+(c+1)%3,h.fromBufferAttribute(l,
+g),b.push(h.x,h.y,h.z);this.addAttribute("position",new A(b,3))}function Jc(a,b,c){J.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,stacks:c};this.fromBufferGeometry(new Xb(a,b,c));this.mergeVertices()}function Xb(a,b,c){G.call(this);this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h=new p,l=new p,m=new p,v=new p,n=new p,r,k;3>a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");
+var t=b+1;for(r=0;r<=c;r++){var u=r/c;for(k=0;k<=b;k++){var z=k/b;a(z,u,l);e.push(l.x,l.y,l.z);0<=z-1E-5?(a(z-1E-5,u,m),v.subVectors(l,m)):(a(z+1E-5,u,m),v.subVectors(m,l));0<=u-1E-5?(a(z,u-1E-5,m),n.subVectors(l,m)):(a(z,u+1E-5,m),n.subVectors(m,l));h.crossVectors(v,n).normalize();f.push(h.x,h.y,h.z);g.push(z,u)}}for(r=0;r<c;r++)for(k=0;k<b;k++)a=r*t+k+1,h=(r+1)*t+k+1,l=(r+1)*t+k,d.push(r*t+k,a,l),d.push(a,h,l);this.setIndex(d);this.addAttribute("position",new A(e,3));this.addAttribute("normal",
+new A(f,3));this.addAttribute("uv",new A(g,2))}function Kc(a,b,c,d){J.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};this.fromBufferGeometry(new va(a,b,c,d));this.mergeVertices()}function va(a,b,c,d){function e(a){h.push(a.x,a.y,a.z)}function f(b,c){b*=3;c.x=a[b+0];c.y=a[b+1];c.z=a[b+2]}function g(a,b,c,d){0>d&&1===a.x&&(l[b]=a.x-1);0===c.x&&0===c.z&&(l[b]=d/2/Math.PI+.5)}G.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a,
+indices:b,radius:c,detail:d};c=c||1;d=d||0;var h=[],l=[];(function(a){for(var c=new p,d=new p,g=new p,h=0;h<b.length;h+=3){f(b[h+0],c);f(b[h+1],d);f(b[h+2],g);var l,m,k=c,x=d,w=g,H=Math.pow(2,a),C=[];for(m=0;m<=H;m++){C[m]=[];var y=k.clone().lerp(w,m/H),Q=x.clone().lerp(w,m/H),E=H-m;for(l=0;l<=E;l++)C[m][l]=0===l&&m===H?y:y.clone().lerp(Q,l/E)}for(m=0;m<H;m++)for(l=0;l<2*(H-m)-1;l++)k=Math.floor(l/2),0===l%2?(e(C[m][k+1]),e(C[m+1][k]),e(C[m][k])):(e(C[m][k+1]),e(C[m+1][k+1]),e(C[m+1][k]))}})(d);(function(a){for(var b=
+new p,c=0;c<h.length;c+=3)b.x=h[c+0],b.y=h[c+1],b.z=h[c+2],b.normalize().multiplyScalar(a),h[c+0]=b.x,h[c+1]=b.y,h[c+2]=b.z})(c);(function(){for(var a=new p,b=0;b<h.length;b+=3)a.x=h[b+0],a.y=h[b+1],a.z=h[b+2],l.push(Math.atan2(a.z,-a.x)/2/Math.PI+.5,1-(Math.atan2(-a.y,Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+.5));a=new p;b=new p;for(var c=new p,d=new p,e=new y,f=new y,k=new y,z=0,x=0;z<h.length;z+=9,x+=6){a.set(h[z+0],h[z+1],h[z+2]);b.set(h[z+3],h[z+4],h[z+5]);c.set(h[z+6],h[z+7],h[z+8]);e.set(l[x+0],
+l[x+1]);f.set(l[x+2],l[x+3]);k.set(l[x+4],l[x+5]);d.copy(a).add(b).add(c).divideScalar(3);var w=Math.atan2(d.z,-d.x);g(e,x+0,a,w);g(f,x+2,b,w);g(k,x+4,c,w)}for(a=0;a<l.length;a+=6)b=l[a+0],c=l[a+2],d=l[a+4],e=Math.min(b,c,d),.9<Math.max(b,c,d)&&.1>e&&(.2>b&&(l[a+0]+=1),.2>c&&(l[a+2]+=1),.2>d&&(l[a+4]+=1))})();this.addAttribute("position",new A(h,3));this.addAttribute("normal",new A(h.slice(),3));this.addAttribute("uv",new A(l,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Lc(a,
+b){J.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Yb(a,b));this.mergeVertices()}function Yb(a,b){va.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);this.type="TetrahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Mc(a,b){J.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new ub(a,b));this.mergeVertices()}function ub(a,b){va.call(this,[1,0,0,
+-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Nc(a,b){J.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Zb(a,b));this.mergeVertices()}function Zb(a,b){var c=(1+Math.sqrt(5))/2;va.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,
+11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],a,b);this.type="IcosahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Oc(a,b){J.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new $b(a,b));this.mergeVertices()}function $b(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;va.call(this,[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-d,-c,0,-d,c,0,d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,
+0,-c,0,-d,c,0,-d,-c,0,d,c,0,d],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],a,b);this.type="DodecahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Pc(a,b,c,d,e,f){J.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,
+closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new ac(a,b,c,d,e);this.tangents=a.tangents;this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function ac(a,b,c,d,e){function f(e){v=a.getPointAt(e/b,v);var f=g.normals[e];e=g.binormals[e];for(k=0;k<=d;k++){var m=k/d*Math.PI*2,n=Math.sin(m);m=-Math.cos(m);l.x=m*f.x+n*e.x;l.y=m*f.y+n*e.y;l.z=m*f.z+n*e.z;l.normalize();t.push(l.x,l.y,l.z);h.x=v.x+c*l.x;h.y=v.y+c*l.y;h.z=
+v.z+c*l.z;q.push(h.x,h.y,h.z)}}G.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;this.normals=g.normals;this.binormals=g.binormals;var h=new p,l=new p,m=new y,v=new p,n,k,q=[],t=[],u=[],z=[];for(n=0;n<b;n++)f(n);f(!1===e?b:0);for(n=0;n<=b;n++)for(k=0;k<=d;k++)m.x=n/b,m.y=k/d,u.push(m.x,m.y);(function(){for(k=1;k<=b;k++)for(n=1;n<=d;n++){var a=
+(d+1)*k+(n-1),c=(d+1)*k+n,e=(d+1)*(k-1)+n;z.push((d+1)*(k-1)+(n-1),a,e);z.push(a,c,e)}})();this.setIndex(z);this.addAttribute("position",new A(q,3));this.addAttribute("normal",new A(t,3));this.addAttribute("uv",new A(u,2))}function Qc(a,b,c,d,e,f,g){J.call(this);this.type="TorusKnotGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");this.fromBufferGeometry(new bc(a,
+b,c,d,e,f));this.mergeVertices()}function bc(a,b,c,d,e,f){function g(a,b,c,d,e){var f=Math.sin(a);b=c/b*a;c=Math.cos(b);e.x=d*(2+c)*.5*Math.cos(a);e.y=d*(2+c)*f*.5;e.z=d*Math.sin(b)*.5}G.call(this);this.type="TorusKnotBufferGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};a=a||1;b=b||.4;c=Math.floor(c)||64;d=Math.floor(d)||8;e=e||2;f=f||3;var h=[],l=[],m=[],v=[],n,k=new p,q=new p,t=new p,u=new p,z=new p,x=new p,w=new p;for(n=0;n<=c;++n){var H=n/c*e*Math.PI*2;
+g(H,e,f,a,t);g(H+.01,e,f,a,u);x.subVectors(u,t);w.addVectors(u,t);z.crossVectors(x,w);w.crossVectors(z,x);z.normalize();w.normalize();for(H=0;H<=d;++H){var C=H/d*Math.PI*2,y=-b*Math.cos(C);C=b*Math.sin(C);k.x=t.x+(y*w.x+C*z.x);k.y=t.y+(y*w.y+C*z.y);k.z=t.z+(y*w.z+C*z.z);l.push(k.x,k.y,k.z);q.subVectors(k,t).normalize();m.push(q.x,q.y,q.z);v.push(n/c);v.push(H/d)}}for(H=1;H<=c;H++)for(n=1;n<=d;n++)a=(d+1)*H+(n-1),b=(d+1)*H+n,e=(d+1)*(H-1)+n,h.push((d+1)*(H-1)+(n-1),a,e),h.push(a,b,e);this.setIndex(h);
+this.addAttribute("position",new A(l,3));this.addAttribute("normal",new A(m,3));this.addAttribute("uv",new A(v,2))}function Rc(a,b,c,d,e){J.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new cc(a,b,c,d,e));this.mergeVertices()}function cc(a,b,c,d,e){G.call(this);this.type="TorusBufferGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};a=a||1;b=b||.4;c=Math.floor(c)||8;d=Math.floor(d)||
+6;e=e||2*Math.PI;var f=[],g=[],h=[],l=[],m=new p,v=new p,n=new p,k,q;for(k=0;k<=c;k++)for(q=0;q<=d;q++){var t=q/d*e,u=k/c*Math.PI*2;v.x=(a+b*Math.cos(u))*Math.cos(t);v.y=(a+b*Math.cos(u))*Math.sin(t);v.z=b*Math.sin(u);g.push(v.x,v.y,v.z);m.x=a*Math.cos(t);m.y=a*Math.sin(t);n.subVectors(v,m).normalize();h.push(n.x,n.y,n.z);l.push(q/d);l.push(k/c)}for(k=1;k<=c;k++)for(q=1;q<=d;q++)a=(d+1)*(k-1)+q-1,b=(d+1)*(k-1)+q,e=(d+1)*k+q,f.push((d+1)*k+q-1,a,e),f.push(a,b,e);this.setIndex(f);this.addAttribute("position",
+new A(g,3));this.addAttribute("normal",new A(h,3));this.addAttribute("uv",new A(l,2))}function af(a,b,c,d,e){for(var f,g=0,h=b,l=c-d;h<c;h+=d)g+=(a[l]-a[h])*(a[h+1]+a[l+1]),l=h;if(e===0<g)for(e=b;e<c;e+=d)f=bf(e,a[e],a[e+1],f);else for(e=c-d;e>=b;e-=d)f=bf(e,a[e],a[e+1],f);f&&vb(f,f.next)&&(Sc(f),f=f.next);return f}function Tc(a,b){if(!a)return a;b||(b=a);do{var c=!1;if(a.steiner||!vb(a,a.next)&&0!==na(a.prev,a,a.next))a=a.next;else{Sc(a);a=b=a.prev;if(a===a.next)break;c=!0}}while(c||a!==b);return b}
+function Uc(a,b,c,d,e,f,g){if(a){if(!g&&f){var h=a,l=h;do null===l.z&&(l.z=ae(l.x,l.y,d,e,f)),l.prevZ=l.prev,l=l.nextZ=l.next;while(l!==h);l.prevZ.nextZ=null;l.prevZ=null;h=l;var m,v,n,k,q=1;do{l=h;var t=h=null;for(v=0;l;){v++;var p=l;for(m=n=0;m<q&&(n++,p=p.nextZ,p);m++);for(k=q;0<n||0<k&&p;)0!==n&&(0===k||!p||l.z<=p.z)?(m=l,l=l.nextZ,n--):(m=p,p=p.nextZ,k--),t?t.nextZ=m:h=m,m.prevZ=t,t=m;l=p}t.nextZ=null;q*=2}while(1<v)}for(h=a;a.prev!==a.next;){l=a.prev;p=a.next;if(f)a:{t=a;k=d;var z=e,x=f;v=t.prev;
+n=t;q=t.next;if(0<=na(v,n,q))t=!1;else{var w=v.x>n.x?v.x>q.x?v.x:q.x:n.x>q.x?n.x:q.x,H=v.y>n.y?v.y>q.y?v.y:q.y:n.y>q.y?n.y:q.y;m=ae(v.x<n.x?v.x<q.x?v.x:q.x:n.x<q.x?n.x:q.x,v.y<n.y?v.y<q.y?v.y:q.y:n.y<q.y?n.y:q.y,k,z,x);k=ae(w,H,k,z,x);for(z=t.nextZ;z&&z.z<=k;){if(z!==t.prev&&z!==t.next&&xd(v.x,v.y,n.x,n.y,q.x,q.y,z.x,z.y)&&0<=na(z.prev,z,z.next)){t=!1;break a}z=z.nextZ}for(z=t.prevZ;z&&z.z>=m;){if(z!==t.prev&&z!==t.next&&xd(v.x,v.y,n.x,n.y,q.x,q.y,z.x,z.y)&&0<=na(z.prev,z,z.next)){t=!1;break a}z=
+z.prevZ}t=!0}}else a:if(t=a,v=t.prev,n=t,q=t.next,0<=na(v,n,q))t=!1;else{for(m=t.next.next;m!==t.prev;){if(xd(v.x,v.y,n.x,n.y,q.x,q.y,m.x,m.y)&&0<=na(m.prev,m,m.next)){t=!1;break a}m=m.next}t=!0}if(t)b.push(l.i/c),b.push(a.i/c),b.push(p.i/c),Sc(a),h=a=p.next;else if(a=p,a===h){if(!g)Uc(Tc(a),b,c,d,e,f,1);else if(1===g){g=b;h=c;l=a;do p=l.prev,t=l.next.next,!vb(p,t)&&cf(p,l,l.next,t)&&Vc(p,t)&&Vc(t,p)&&(g.push(p.i/h),g.push(l.i/h),g.push(t.i/h),Sc(l),Sc(l.next),l=a=t),l=l.next;while(l!==a);a=l;Uc(a,
+b,c,d,e,f,2)}else if(2===g)a:{g=a;do{for(h=g.next.next;h!==g.prev;){if(l=g.i!==h.i){l=g;p=h;if(t=l.next.i!==p.i&&l.prev.i!==p.i){b:{t=l;do{if(t.i!==l.i&&t.next.i!==l.i&&t.i!==p.i&&t.next.i!==p.i&&cf(t,t.next,l,p)){t=!0;break b}t=t.next}while(t!==l);t=!1}t=!t}if(t=t&&Vc(l,p)&&Vc(p,l)){t=l;v=!1;n=(l.x+p.x)/2;p=(l.y+p.y)/2;do t.y>p!==t.next.y>p&&t.next.y!==t.y&&n<(t.next.x-t.x)*(p-t.y)/(t.next.y-t.y)+t.x&&(v=!v),t=t.next;while(t!==l);t=v}l=t}if(l){a=df(g,h);g=Tc(g,g.next);a=Tc(a,a.next);Uc(g,b,c,d,e,
+f);Uc(a,b,c,d,e,f);break a}h=h.next}g=g.next}while(g!==a)}break}}}}function Ng(a,b){return a.x-b.x}function Og(a,b){var c=b,d=a.x,e=a.y,f=-Infinity;do{if(e<=c.y&&e>=c.next.y&&c.next.y!==c.y){var g=c.x+(e-c.y)*(c.next.x-c.x)/(c.next.y-c.y);if(g<=d&&g>f){f=g;if(g===d){if(e===c.y)return c;if(e===c.next.y)return c.next}var h=c.x<c.next.x?c:c.next}}c=c.next}while(c!==b);if(!h)return null;if(d===f)return h.prev;b=h;g=h.x;var l=h.y,m=Infinity;for(c=h.next;c!==b;){if(d>=c.x&&c.x>=g&&d!==c.x&&xd(e<l?d:f,e,
+g,l,e<l?f:d,e,c.x,c.y)){var v=Math.abs(e-c.y)/(d-c.x);(v<m||v===m&&c.x>h.x)&&Vc(c,a)&&(h=c,m=v)}c=c.next}return h}function ae(a,b,c,d,e){a=32767*(a-c)*e;b=32767*(b-d)*e;a=(a|a<<8)&16711935;a=(a|a<<4)&252645135;a=(a|a<<2)&858993459;b=(b|b<<8)&16711935;b=(b|b<<4)&252645135;b=(b|b<<2)&858993459;return(a|a<<1)&1431655765|((b|b<<1)&1431655765)<<1}function Pg(a){var b=a,c=a;do b.x<c.x&&(c=b),b=b.next;while(b!==a);return c}function xd(a,b,c,d,e,f,g,h){return 0<=(e-g)*(b-h)-(a-g)*(f-h)&&0<=(a-g)*(d-h)-(c-
+g)*(b-h)&&0<=(c-g)*(f-h)-(e-g)*(d-h)}function na(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)}function vb(a,b){return a.x===b.x&&a.y===b.y}function cf(a,b,c,d){return vb(a,b)&&vb(c,d)||vb(a,d)&&vb(c,b)?!0:0<na(a,b,c)!==0<na(a,b,d)&&0<na(c,d,a)!==0<na(c,d,b)}function Vc(a,b){return 0>na(a.prev,a,a.next)?0<=na(a,b,a.next)&&0<=na(a,a.prev,b):0>na(a,b,a.prev)||0>na(a,a.next,b)}function df(a,b){var c=new be(a.i,a.x,a.y),d=new be(b.i,b.x,b.y),e=a.next,f=b.prev;a.next=b;b.prev=a;c.next=e;e.prev=
+c;d.next=c;c.prev=d;f.next=d;d.prev=f;return d}function bf(a,b,c,d){a=new be(a,b,c);d?(a.next=d.next,a.prev=d,d.next.prev=a,d.next=a):(a.prev=a,a.next=a);return a}function Sc(a){a.next.prev=a.prev;a.prev.next=a.next;a.prevZ&&(a.prevZ.nextZ=a.nextZ);a.nextZ&&(a.nextZ.prevZ=a.prevZ)}function be(a,b,c){this.i=a;this.x=b;this.y=c;this.nextZ=this.prevZ=this.z=this.next=this.prev=null;this.steiner=!1}function ef(a){var b=a.length;2<b&&a[b-1].equals(a[0])&&a.pop()}function ff(a,b){for(var c=0;c<b.length;c++)a.push(b[c].x),
+a.push(b[c].y)}function wb(a,b){J.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:a,options:b};this.fromBufferGeometry(new Sa(a,b));this.mergeVertices()}function Sa(a,b){function c(a){function c(a,b,c){b||console.error("THREE.ExtrudeGeometry: vec does not exist");return b.clone().multiplyScalar(c).add(a)}function g(a,b,c){var d=a.x-b.x;var e=a.y-b.y;var f=c.x-a.x;var g=c.y-a.y,h=d*d+e*e;if(Math.abs(d*g-e*f)>Number.EPSILON){var l=Math.sqrt(h),m=Math.sqrt(f*f+g*g);h=b.x-e/l;b=b.y+d/l;
+g=((c.x-g/m-h)*g-(c.y+f/m-b)*f)/(d*g-e*f);f=h+d*g-a.x;d=b+e*g-a.y;e=f*f+d*d;if(2>=e)return new y(f,d);e=Math.sqrt(e/2)}else a=!1,d>Number.EPSILON?f>Number.EPSILON&&(a=!0):d<-Number.EPSILON?f<-Number.EPSILON&&(a=!0):Math.sign(e)===Math.sign(g)&&(a=!0),a?(f=-e,e=Math.sqrt(h)):(f=d,d=e,e=Math.sqrt(h/2));return new y(f/e,d/e)}function h(a,b){for(N=a.length;0<=--N;){var c=N;var f=N-1;0>f&&(f=a.length-1);var g,h=w+2*E;for(g=0;g<h;g++){var l=X*g,m=X*(g+1),n=b+f+l,k=b+f+m;m=b+c+m;t(b+c+l);t(n);t(m);t(n);
+t(k);t(m);l=e.length/3;l=B.generateSideWallUV(d,e,l-6,l-3,l-2,l-1);u(l[0]);u(l[1]);u(l[3]);u(l[1]);u(l[2]);u(l[3])}}}function l(a,b,c){z.push(a);z.push(b);z.push(c)}function k(a,b,c){t(a);t(b);t(c);a=e.length/3;a=B.generateTopUV(d,e,a-3,a-2,a-1);u(a[0]);u(a[1]);u(a[2])}function t(a){e.push(z[3*a]);e.push(z[3*a+1]);e.push(z[3*a+2])}function u(a){f.push(a.x);f.push(a.y)}var z=[],x=void 0!==b.curveSegments?b.curveSegments:12,w=void 0!==b.steps?b.steps:1,H=void 0!==b.depth?b.depth:100,C=void 0!==b.bevelEnabled?
+b.bevelEnabled:!0,V=void 0!==b.bevelThickness?b.bevelThickness:6,Q=void 0!==b.bevelSize?b.bevelSize:V-2,E=void 0!==b.bevelSegments?b.bevelSegments:3,A=b.extrudePath,B=void 0!==b.UVGenerator?b.UVGenerator:Qg;void 0!==b.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),H=b.amount);var F=!1;if(A){var G=A.getSpacedPoints(w);F=!0;C=!1;var I=A.computeFrenetFrames(w,!1);var K=new p;var M=new p;var J=new p}C||(Q=V=E=0);var O;x=a.extractPoints(x);a=x.shape;var L=x.holes;
+if(!Za.isClockWise(a)){a=a.reverse();var S=0;for(O=L.length;S<O;S++){var P=L[S];Za.isClockWise(P)&&(L[S]=P.reverse())}}var W=Za.triangulateShape(a,L),T=a;S=0;for(O=L.length;S<O;S++)P=L[S],a=a.concat(P);var R,X=a.length,Y,aa=W.length;x=[];var N=0;var da=T.length;var U=da-1;for(R=N+1;N<da;N++,U++,R++)U===da&&(U=0),R===da&&(R=0),x[N]=g(T[N],T[U],T[R]);A=[];var ca=x.concat();S=0;for(O=L.length;S<O;S++){P=L[S];var ba=[];N=0;da=P.length;U=da-1;for(R=N+1;N<da;N++,U++,R++)U===da&&(U=0),R===da&&(R=0),ba[N]=
+g(P[N],P[U],P[R]);A.push(ba);ca=ca.concat(ba)}for(U=0;U<E;U++){da=U/E;var ea=V*Math.cos(da*Math.PI/2);R=Q*Math.sin(da*Math.PI/2);N=0;for(da=T.length;N<da;N++){var fa=c(T[N],x[N],R);l(fa.x,fa.y,-ea)}S=0;for(O=L.length;S<O;S++)for(P=L[S],ba=A[S],N=0,da=P.length;N<da;N++)fa=c(P[N],ba[N],R),l(fa.x,fa.y,-ea)}R=Q;for(N=0;N<X;N++)fa=C?c(a[N],ca[N],R):a[N],F?(M.copy(I.normals[0]).multiplyScalar(fa.x),K.copy(I.binormals[0]).multiplyScalar(fa.y),J.copy(G[0]).add(M).add(K),l(J.x,J.y,J.z)):l(fa.x,fa.y,0);for(da=
+1;da<=w;da++)for(N=0;N<X;N++)fa=C?c(a[N],ca[N],R):a[N],F?(M.copy(I.normals[da]).multiplyScalar(fa.x),K.copy(I.binormals[da]).multiplyScalar(fa.y),J.copy(G[da]).add(M).add(K),l(J.x,J.y,J.z)):l(fa.x,fa.y,H/w*da);for(U=E-1;0<=U;U--){da=U/E;ea=V*Math.cos(da*Math.PI/2);R=Q*Math.sin(da*Math.PI/2);N=0;for(da=T.length;N<da;N++)fa=c(T[N],x[N],R),l(fa.x,fa.y,H+ea);S=0;for(O=L.length;S<O;S++)for(P=L[S],ba=A[S],N=0,da=P.length;N<da;N++)fa=c(P[N],ba[N],R),F?l(fa.x,fa.y+G[w-1].y,G[w-1].x+ea):l(fa.x,fa.y,H+ea)}(function(){var a=
+e.length/3;if(C){var b=0*X;for(N=0;N<aa;N++)Y=W[N],k(Y[2]+b,Y[1]+b,Y[0]+b);b=X*(w+2*E);for(N=0;N<aa;N++)Y=W[N],k(Y[0]+b,Y[1]+b,Y[2]+b)}else{for(N=0;N<aa;N++)Y=W[N],k(Y[2],Y[1],Y[0]);for(N=0;N<aa;N++)Y=W[N],k(Y[0]+X*w,Y[1]+X*w,Y[2]+X*w)}d.addGroup(a,e.length/3-a,0)})();(function(){var a=e.length/3,b=0;h(T,b);b+=T.length;S=0;for(O=L.length;S<O;S++)P=L[S],h(P,b),b+=P.length;d.addGroup(a,e.length/3-a,1)})()}G.call(this);this.type="ExtrudeBufferGeometry";this.parameters={shapes:a,options:b};a=Array.isArray(a)?
+a:[a];for(var d=this,e=[],f=[],g=0,h=a.length;g<h;g++)c(a[g]);this.addAttribute("position",new A(e,3));this.addAttribute("uv",new A(f,2));this.computeVertexNormals()}function gf(a,b,c){c.shapes=[];if(Array.isArray(a))for(var d=0,e=a.length;d<e;d++)c.shapes.push(a[d].uuid);else c.shapes.push(a.uuid);void 0!==b.extrudePath&&(c.options.extrudePath=b.extrudePath.toJSON());return c}function Wc(a,b){J.call(this);this.type="TextGeometry";this.parameters={text:a,parameters:b};this.fromBufferGeometry(new dc(a,
+b));this.mergeVertices()}function dc(a,b){b=b||{};var c=b.font;if(!c||!c.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new J;a=c.generateShapes(a,b.size);b.depth=void 0!==b.height?b.height:50;void 0===b.bevelThickness&&(b.bevelThickness=10);void 0===b.bevelSize&&(b.bevelSize=8);void 0===b.bevelEnabled&&(b.bevelEnabled=!1);Sa.call(this,a,b);this.type="TextBufferGeometry"}function Xc(a,b,c,d,e,f,g){J.call(this);this.type="SphereGeometry";this.parameters=
+{radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new xb(a,b,c,d,e,f,g));this.mergeVertices()}function xb(a,b,c,d,e,f,g){G.call(this);this.type="SphereBufferGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};a=a||1;b=Math.max(3,Math.floor(b)||8);c=Math.max(2,Math.floor(c)||6);d=void 0!==d?d:0;e=void 0!==e?e:2*Math.PI;f=void 0!==f?f:0;g=void 0!==g?g:Math.PI;var h=
+f+g,l,m,k=0,n=[],r=new p,q=new p,t=[],u=[],z=[],x=[];for(m=0;m<=c;m++){var w=[],H=m/c;for(l=0;l<=b;l++){var C=l/b;r.x=-a*Math.cos(d+C*e)*Math.sin(f+H*g);r.y=a*Math.cos(f+H*g);r.z=a*Math.sin(d+C*e)*Math.sin(f+H*g);u.push(r.x,r.y,r.z);q.set(r.x,r.y,r.z).normalize();z.push(q.x,q.y,q.z);x.push(C,1-H);w.push(k++)}n.push(w)}for(m=0;m<c;m++)for(l=0;l<b;l++)a=n[m][l+1],d=n[m][l],e=n[m+1][l],g=n[m+1][l+1],(0!==m||0<f)&&t.push(a,d,g),(m!==c-1||h<Math.PI)&&t.push(d,e,g);this.setIndex(t);this.addAttribute("position",
+new A(u,3));this.addAttribute("normal",new A(z,3));this.addAttribute("uv",new A(x,2))}function Yc(a,b,c,d,e,f){J.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};this.fromBufferGeometry(new ec(a,b,c,d,e,f));this.mergeVertices()}function ec(a,b,c,d,e,f){G.call(this);this.type="RingBufferGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};a=a||.5;b=b||
+1;e=void 0!==e?e:0;f=void 0!==f?f:2*Math.PI;c=void 0!==c?Math.max(3,c):8;d=void 0!==d?Math.max(1,d):1;var g=[],h=[],l=[],m=[],k=a,n=(b-a)/d,r=new p,q=new y,t,u;for(t=0;t<=d;t++){for(u=0;u<=c;u++)a=e+u/c*f,r.x=k*Math.cos(a),r.y=k*Math.sin(a),h.push(r.x,r.y,r.z),l.push(0,0,1),q.x=(r.x/b+1)/2,q.y=(r.y/b+1)/2,m.push(q.x,q.y);k+=n}for(t=0;t<d;t++)for(b=t*(c+1),u=0;u<c;u++)a=u+b,e=a+c+1,f=a+c+2,k=a+1,g.push(a,e,k),g.push(e,f,k);this.setIndex(g);this.addAttribute("position",new A(h,3));this.addAttribute("normal",
+new A(l,3));this.addAttribute("uv",new A(m,2))}function Zc(a,b,c,d){J.call(this);this.type="LatheGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new fc(a,b,c,d));this.mergeVertices()}function fc(a,b,c,d){G.call(this);this.type="LatheBufferGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};b=Math.floor(b)||12;c=c||0;d=d||2*Math.PI;d=P.clamp(d,0,2*Math.PI);var e=[],f=[],g=[],h=1/b,l=new p,m=new y,k;for(k=0;k<=b;k++){var n=c+k*h*d;var r=
+Math.sin(n),q=Math.cos(n);for(n=0;n<=a.length-1;n++)l.x=a[n].x*r,l.y=a[n].y,l.z=a[n].x*q,f.push(l.x,l.y,l.z),m.x=k/b,m.y=n/(a.length-1),g.push(m.x,m.y)}for(k=0;k<b;k++)for(n=0;n<a.length-1;n++)c=n+k*a.length,h=c+a.length,l=c+a.length+1,m=c+1,e.push(c,h,m),e.push(h,l,m);this.setIndex(e);this.addAttribute("position",new A(f,3));this.addAttribute("uv",new A(g,2));this.computeVertexNormals();if(d===2*Math.PI)for(d=this.attributes.normal.array,e=new p,f=new p,g=new p,c=b*a.length*3,n=k=0;k<a.length;k++,
+n+=3)e.x=d[n+0],e.y=d[n+1],e.z=d[n+2],f.x=d[c+n+0],f.y=d[c+n+1],f.z=d[c+n+2],g.addVectors(e,f).normalize(),d[n+0]=d[c+n+0]=g.x,d[n+1]=d[c+n+1]=g.y,d[n+2]=d[c+n+2]=g.z}function yb(a,b){J.call(this);this.type="ShapeGeometry";"object"===typeof b&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),b=b.curveSegments);this.parameters={shapes:a,curveSegments:b};this.fromBufferGeometry(new zb(a,b));this.mergeVertices()}function zb(a,b){function c(a){var c,h=e.length/3;a=a.extractPoints(b);
+var m=a.shape,k=a.holes;if(!1===Za.isClockWise(m))for(m=m.reverse(),a=0,c=k.length;a<c;a++){var v=k[a];!0===Za.isClockWise(v)&&(k[a]=v.reverse())}var p=Za.triangulateShape(m,k);a=0;for(c=k.length;a<c;a++)v=k[a],m=m.concat(v);a=0;for(c=m.length;a<c;a++)v=m[a],e.push(v.x,v.y,0),f.push(0,0,1),g.push(v.x,v.y);a=0;for(c=p.length;a<c;a++)m=p[a],d.push(m[0]+h,m[1]+h,m[2]+h),l+=3}G.call(this);this.type="ShapeBufferGeometry";this.parameters={shapes:a,curveSegments:b};b=b||12;var d=[],e=[],f=[],g=[],h=0,l=
+0;if(!1===Array.isArray(a))c(a);else for(var m=0;m<a.length;m++)c(a[m]),this.addGroup(h,l,m),h+=l,l=0;this.setIndex(d);this.addAttribute("position",new A(e,3));this.addAttribute("normal",new A(f,3));this.addAttribute("uv",new A(g,2))}function hf(a,b){b.shapes=[];if(Array.isArray(a))for(var c=0,d=a.length;c<d;c++)b.shapes.push(a[c].uuid);else b.shapes.push(a.uuid);return b}function gc(a,b){G.call(this);this.type="EdgesGeometry";this.parameters={thresholdAngle:b};var c=[];b=Math.cos(P.DEG2RAD*(void 0!==
+b?b:1));var d=[0,0],e={},f=["a","b","c"];if(a.isBufferGeometry){var g=new J;g.fromBufferGeometry(a)}else g=a.clone();g.mergeVertices();g.computeFaceNormals();a=g.vertices;g=g.faces;for(var h=0,l=g.length;h<l;h++)for(var m=g[h],k=0;3>k;k++){var n=m[f[k]];var r=m[f[(k+1)%3]];d[0]=Math.min(n,r);d[1]=Math.max(n,r);n=d[0]+","+d[1];void 0===e[n]?e[n]={index1:d[0],index2:d[1],face1:h,face2:void 0}:e[n].face2=h}for(n in e)if(d=e[n],void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],
+c.push(f.x,f.y,f.z),f=a[d.index2],c.push(f.x,f.y,f.z);this.addAttribute("position",new A(c,3))}function Ab(a,b,c,d,e,f,g,h){J.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new $a(a,b,c,d,e,f,g,h));this.mergeVertices()}function $a(a,b,c,d,e,f,g,h){function l(c){var e,f=new y,l=new p,v=0,u=!0===c?a:b,w=!0===c?1:-1;var A=t;for(e=1;e<=d;e++)n.push(0,z*w,0),r.push(0,
+w,0),q.push(.5,.5),t++;var B=t;for(e=0;e<=d;e++){var F=e/d*h+g,G=Math.cos(F);F=Math.sin(F);l.x=u*F;l.y=z*w;l.z=u*G;n.push(l.x,l.y,l.z);r.push(0,w,0);f.x=.5*G+.5;f.y=.5*F*w+.5;q.push(f.x,f.y);t++}for(e=0;e<d;e++)f=A+e,l=B+e,!0===c?k.push(l,l+1,f):k.push(l+1,l,f),v+=3;m.addGroup(x,v,!0===c?1:2);x+=v}G.call(this);this.type="CylinderBufferGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};var m=this;a=void 0!==a?a:1;
+b=void 0!==b?b:1;c=c||1;d=Math.floor(d)||8;e=Math.floor(e)||1;f=void 0!==f?f:!1;g=void 0!==g?g:0;h=void 0!==h?h:2*Math.PI;var k=[],n=[],r=[],q=[],t=0,u=[],z=c/2,x=0;(function(){var f,l,v=new p,y=new p,A=0,E=(b-a)/c;for(l=0;l<=e;l++){var F=[],B=l/e,G=B*(b-a)+a;for(f=0;f<=d;f++){var I=f/d,K=I*h+g,J=Math.sin(K);K=Math.cos(K);y.x=G*J;y.y=-B*c+z;y.z=G*K;n.push(y.x,y.y,y.z);v.set(J,E,K).normalize();r.push(v.x,v.y,v.z);q.push(I,1-B);F.push(t++)}u.push(F)}for(f=0;f<d;f++)for(l=0;l<e;l++)v=u[l+1][f],y=u[l+
+1][f+1],E=u[l][f+1],k.push(u[l][f],v,E),k.push(v,y,E),A+=6;m.addGroup(x,A,0);x+=A})();!1===f&&(0<a&&l(!0),0<b&&l(!1));this.setIndex(k);this.addAttribute("position",new A(n,3));this.addAttribute("normal",new A(r,3));this.addAttribute("uv",new A(q,2))}function $c(a,b,c,d,e,f,g){Ab.call(this,0,a,b,c,d,e,f,g);this.type="ConeGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function ad(a,b,c,d,e,f,g){$a.call(this,0,a,b,c,d,e,f,g);this.type=
+"ConeBufferGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function bd(a,b,c,d){J.call(this);this.type="CircleGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};this.fromBufferGeometry(new hc(a,b,c,d));this.mergeVertices()}function hc(a,b,c,d){G.call(this);this.type="CircleBufferGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};a=a||1;b=void 0!==b?Math.max(3,b):8;c=void 0!==c?c:
+0;d=void 0!==d?d:2*Math.PI;var e=[],f=[],g=[],h=[],l,m=new p,k=new y;f.push(0,0,0);g.push(0,0,1);h.push(.5,.5);var n=0;for(l=3;n<=b;n++,l+=3){var r=c+n/b*d;m.x=a*Math.cos(r);m.y=a*Math.sin(r);f.push(m.x,m.y,m.z);g.push(0,0,1);k.x=(f[l]/a+1)/2;k.y=(f[l+1]/a+1)/2;h.push(k.x,k.y)}for(l=1;l<=b;l++)e.push(l,l+1,0);this.setIndex(e);this.addAttribute("position",new A(f,3));this.addAttribute("normal",new A(g,3));this.addAttribute("uv",new A(h,2))}function Bb(a){L.call(this);this.type="ShadowMaterial";this.color=
+new K(0);this.transparent=!0;this.setValues(a)}function ic(a){Ea.call(this,a);this.type="RawShaderMaterial"}function Ta(a){L.call(this);this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new K(16777215);this.metalness=this.roughness=.5;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new K(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=
+new y(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=null;this.envMapIntensity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function Cb(a){Ta.call(this);this.defines={PHYSICAL:""};this.type="MeshPhysicalMaterial";this.reflectivity=.5;this.clearCoatRoughness=
+this.clearCoat=0;this.setValues(a)}function Ja(a){L.call(this);this.type="MeshPhongMaterial";this.color=new K(16777215);this.specular=new K(1118481);this.shininess=30;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new K(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new y(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;
+this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function Db(a){Ja.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.gradientMap=null;this.setValues(a)}function Eb(a){L.call(this);this.type="MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=
+null;this.normalMapType=0;this.normalScale=new y(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.lights=this.fog=!1;this.setValues(a)}function Fb(a){L.call(this);this.type="MeshLambertMaterial";this.color=new K(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new K(0);this.emissiveIntensity=1;this.envMap=
+this.alphaMap=this.specularMap=this.emissiveMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function Gb(a){T.call(this);this.type="LineDashedMaterial";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(a)}function ce(a,b,c){var d=this,e=!1,f=0,g=0,h=void 0;this.onStart=void 0;this.onLoad=a;this.onProgress=
+b;this.onError=c;this.itemStart=function(a){g++;if(!1===e&&void 0!==d.onStart)d.onStart(a,f,g);e=!0};this.itemEnd=function(a){f++;if(void 0!==d.onProgress)d.onProgress(a,f,g);if(f===g&&(e=!1,void 0!==d.onLoad))d.onLoad()};this.itemError=function(a){if(void 0!==d.onError)d.onError(a)};this.resolveURL=function(a){return h?h(a):a};this.setURLModifier=function(a){h=a;return this}}function Ka(a){this.manager=void 0!==a?a:wa}function jf(a){this.manager=void 0!==a?a:wa;this._parser=null}function de(a){this.manager=
+void 0!==a?a:wa;this._parser=null}function cd(a){this.manager=void 0!==a?a:wa}function ee(a){this.manager=void 0!==a?a:wa}function yd(a){this.manager=void 0!==a?a:wa}function I(){this.type="Curve";this.arcLengthDivisions=200}function xa(a,b,c,d,e,f,g,h){I.call(this);this.type="EllipseCurve";this.aX=a||0;this.aY=b||0;this.xRadius=c||1;this.yRadius=d||1;this.aStartAngle=e||0;this.aEndAngle=f||2*Math.PI;this.aClockwise=g||!1;this.aRotation=h||0}function jc(a,b,c,d,e,f){xa.call(this,a,b,c,c,d,e,f);this.type=
+"ArcCurve"}function fe(){var a=0,b=0,c=0,d=0;return{initCatmullRom:function(e,f,g,h,l){e=l*(g-e);h=l*(h-f);a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},initNonuniformCatmullRom:function(e,f,g,h,l,m,k){e=((f-e)/l-(g-e)/(l+m)+(g-f)/m)*m;h=((g-f)/m-(h-f)/(m+k)+(h-g)/k)*m;a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},calc:function(e){var f=e*e;return a+b*e+c*f+d*f*e}}}function ra(a,b,c,d){I.call(this);this.type="CatmullRomCurve3";this.points=a||[];this.closed=b||!1;this.curveType=c||"centripetal";this.tension=d||
+.5}function kf(a,b,c,d,e){b=.5*(d-b);e=.5*(e-c);var f=a*a;return(2*c-2*d+b+e)*a*f+(-3*c+3*d-2*b-e)*f+b*a+c}function dd(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function ed(a,b,c,d,e){var f=1-a,g=1-a;return f*f*f*b+3*g*g*a*c+3*(1-a)*a*a*d+a*a*a*e}function La(a,b,c,d){I.call(this);this.type="CubicBezierCurve";this.v0=a||new y;this.v1=b||new y;this.v2=c||new y;this.v3=d||new y}function Ua(a,b,c,d){I.call(this);this.type="CubicBezierCurve3";this.v0=a||new p;this.v1=b||new p;this.v2=c||new p;
+this.v3=d||new p}function ya(a,b){I.call(this);this.type="LineCurve";this.v1=a||new y;this.v2=b||new y}function Ma(a,b){I.call(this);this.type="LineCurve3";this.v1=a||new p;this.v2=b||new p}function Na(a,b,c){I.call(this);this.type="QuadraticBezierCurve";this.v0=a||new y;this.v1=b||new y;this.v2=c||new y}function Va(a,b,c){I.call(this);this.type="QuadraticBezierCurve3";this.v0=a||new p;this.v1=b||new p;this.v2=c||new p}function Oa(a){I.call(this);this.type="SplineCurve";this.points=a||[]}function ab(){I.call(this);
+this.type="CurvePath";this.curves=[];this.autoClose=!1}function Pa(a){ab.call(this);this.type="Path";this.currentPoint=new y;a&&this.setFromPoints(a)}function jb(a){Pa.call(this,a);this.uuid=P.generateUUID();this.type="Shape";this.holes=[]}function ba(a,b){B.call(this);this.type="Light";this.color=new K(a);this.intensity=void 0!==b?b:1;this.receiveShadow=void 0}function zd(a,b,c){ba.call(this,a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(B.DefaultUp);this.updateMatrix();
+this.groundColor=new K(b)}function Hb(a){this.camera=a;this.bias=0;this.radius=1;this.mapSize=new y(512,512);this.map=null;this.matrix=new F}function Ad(){Hb.call(this,new X(50,1,.5,500))}function Bd(a,b,c,d,e,f){ba.call(this,a,b);this.type="SpotLight";this.position.copy(B.DefaultUp);this.updateMatrix();this.target=new B;Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(a){this.intensity=a/Math.PI}});this.distance=void 0!==c?c:0;this.angle=void 0!==d?d:
+Math.PI/3;this.penumbra=void 0!==e?e:0;this.decay=void 0!==f?f:1;this.shadow=new Ad}function Cd(a,b,c,d){ba.call(this,a,b);this.type="PointLight";Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(a){this.intensity=a/(4*Math.PI)}});this.distance=void 0!==c?c:0;this.decay=void 0!==d?d:1;this.shadow=new Hb(new X(90,1,.5,500))}function Dd(){Hb.call(this,new Mb(-5,5,5,-5,.5,500))}function Ed(a,b){ba.call(this,a,b);this.type="DirectionalLight";this.position.copy(B.DefaultUp);
+this.updateMatrix();this.target=new B;this.shadow=new Dd}function Fd(a,b){ba.call(this,a,b);this.type="AmbientLight";this.castShadow=void 0}function Gd(a,b,c,d){ba.call(this,a,b);this.type="RectAreaLight";this.width=void 0!==c?c:10;this.height=void 0!==d?d:10}function Hd(a,b,c,d){ja.call(this,a,b,c,d)}function Id(a,b,c){ja.call(this,a,b,c)}function ua(a,b,c,d){this.parameterPositions=a;this._cachedIndex=0;this.resultBuffer=void 0!==d?d:new b.constructor(c);this.sampleValues=b;this.valueSize=c}function Jd(a,
+b,c,d){ua.call(this,a,b,c,d)}function fd(a,b,c,d){ja.call(this,a,b,c,d)}function Kd(a,b,c,d){ja.call(this,a,b,c,d)}function kc(a,b,c,d){ja.call(this,a,b,c,d)}function Ld(a,b,c,d){ua.call(this,a,b,c,d);this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function gd(a,b,c,d){ua.call(this,a,b,c,d)}function Md(a,b,c,d){ua.call(this,a,b,c,d)}function ja(a,b,c,d){if(void 0===a)throw Error("THREE.KeyframeTrack: track name is undefined");if(void 0===b||0===b.length)throw Error("THREE.KeyframeTrack: no keyframes in track named "+
+a);this.name=a;this.times=sa.convertArray(b,this.TimeBufferType);this.values=sa.convertArray(c,this.ValueBufferType);this.setInterpolation(d||this.DefaultInterpolation);this.validate();this.optimize()}function lc(a,b,c,d){ja.call(this,a,b,c,d)}function Fa(a,b,c){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.uuid=P.generateUUID();0>this.duration&&this.resetDuration();this.optimize()}function Nd(a){this.manager=void 0!==a?a:wa;this.textures={}}function ge(a){this.manager=void 0!==a?a:
+wa}function mc(){}function he(a){"boolean"===typeof a&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),a=void 0);this.manager=void 0!==a?a:wa;this.withCredentials=!1}function lf(a){this.manager=void 0!==a?a:wa;this.texturePath=""}function ie(a){"undefined"===typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported.");"undefined"===typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported.");this.manager=
+void 0!==a?a:wa;this.options=void 0}function je(){this.type="ShapePath";this.color=new K;this.subPaths=[];this.currentPath=null}function ke(a){this.type="Font";this.data=a}function mf(a){this.manager=void 0!==a?a:wa}function le(a){this.manager=void 0!==a?a:wa}function nf(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new X;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new X;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1}function hd(a,
+b,c){B.call(this);this.type="CubeCamera";var d=new X(90,1,a,b);d.up.set(0,-1,0);d.lookAt(new p(1,0,0));this.add(d);var e=new X(90,1,a,b);e.up.set(0,-1,0);e.lookAt(new p(-1,0,0));this.add(e);var f=new X(90,1,a,b);f.up.set(0,0,1);f.lookAt(new p(0,1,0));this.add(f);var g=new X(90,1,a,b);g.up.set(0,0,-1);g.lookAt(new p(0,-1,0));this.add(g);var h=new X(90,1,a,b);h.up.set(0,-1,0);h.lookAt(new p(0,0,1));this.add(h);var l=new X(90,1,a,b);l.up.set(0,-1,0);l.lookAt(new p(0,0,-1));this.add(l);this.renderTarget=
+new Lb(c,c,{format:1022,magFilter:1006,minFilter:1006});this.renderTarget.texture.name="CubeCamera";this.update=function(a,b){null===this.parent&&this.updateMatrixWorld();var c=this.renderTarget,m=c.texture.generateMipmaps;c.texture.generateMipmaps=!1;c.activeCubeFace=0;a.render(b,d,c);c.activeCubeFace=1;a.render(b,e,c);c.activeCubeFace=2;a.render(b,f,c);c.activeCubeFace=3;a.render(b,g,c);c.activeCubeFace=4;a.render(b,h,c);c.texture.generateMipmaps=m;c.activeCubeFace=5;a.render(b,l,c);a.setRenderTarget(null)};
+this.clear=function(a,b,c,d){for(var e=this.renderTarget,f=0;6>f;f++)e.activeCubeFace=f,a.setRenderTarget(e),a.clear(b,c,d);a.setRenderTarget(null)}}function me(){B.call(this);this.type="AudioListener";this.context=ne.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null}function nc(a){B.call(this);this.type="Audio";this.context=a.context;this.gain=this.context.createGain();this.gain.connect(a.getInput());this.autoplay=!1;this.buffer=null;this.loop=
+!1;this.offset=this.startTime=0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty";this.filters=[]}function oe(a){nc.call(this,a);this.panner=this.context.createPanner();this.panner.connect(this.gain)}function pe(a,b){this.analyser=a.context.createAnalyser();this.analyser.fftSize=void 0!==b?b:2048;this.data=new Uint8Array(this.analyser.frequencyBinCount);a.getOutput().connect(this.analyser)}function qe(a,b,c){this.binding=a;this.valueSize=c;a=Float64Array;switch(b){case "quaternion":b=
+this._slerp;break;case "string":case "bool":a=Array;b=this._select;break;default:b=this._lerp}this.buffer=new a(4*c);this._mixBufferRegion=b;this.referenceCount=this.useCount=this.cumulativeWeight=0}function of(a,b,c){c=c||oa.parseTrackName(b);this._targetGroup=a;this._bindings=a.subscribe_(b,c)}function oa(a,b,c){this.path=b;this.parsedPath=c||oa.parseTrackName(b);this.node=oa.findNode(a,this.parsedPath.nodeName)||a;this.rootNode=a}function pf(){this.uuid=P.generateUUID();this._objects=Array.prototype.slice.call(arguments);
+this.nCachedObjects_=0;var a={};this._indicesByUUID=a;for(var b=0,c=arguments.length;b!==c;++b)a[arguments[b].uuid]=b;this._paths=[];this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath={};var d=this;this.stats={objects:{get total(){return d._objects.length},get inUse(){return this.total-d.nCachedObjects_}},get bindingsPerObject(){return d._bindings.length}}}function qf(a,b,c){this._mixer=a;this._clip=b;this._localRoot=c||null;a=b.tracks;b=a.length;c=Array(b);for(var d={endingStart:2400,
+endingEnd:2400},e=0;e!==b;++e){var f=a[e].createInterpolant(null);c[e]=f;f.settings=d}this._interpolantSettings=d;this._interpolants=c;this._propertyBindings=Array(b);this._weightInterpolant=this._timeScaleInterpolant=this._byClipCacheIndex=this._cacheIndex=null;this.loop=2201;this._loopCount=-1;this._startTime=null;this.time=0;this._effectiveWeight=this.weight=this._effectiveTimeScale=this.timeScale=1;this.repetitions=Infinity;this.paused=!1;this.enabled=!0;this.clampWhenFinished=!1;this.zeroSlopeAtEnd=
+this.zeroSlopeAtStart=!0}function re(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function Od(a,b){"string"===typeof a&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),a=b);this.value=a}function se(){G.call(this);this.type="InstancedBufferGeometry";this.maxInstancedCount=void 0}function te(a,b,c,d){this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function oc(a,b){this.array=a;this.stride=b;this.count=void 0!==a?a.length/
+b:0;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.version=0}function ue(a,b,c){oc.call(this,a,b);this.meshPerAttribute=c||1}function ve(a,b,c){O.call(this,a,b);this.meshPerAttribute=c||1}function rf(a,b,c,d){this.ray=new sb(a,b);this.near=c||0;this.far=d||Infinity;this.params={Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,{PointCloud:{get:function(){console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points.");return this.Points}}})}
+function sf(a,b){return a.distance-b.distance}function we(a,b,c,d){if(!1!==a.visible&&(a.raycast(b,c),!0===d)){a=a.children;d=0;for(var e=a.length;d<e;d++)we(a[d],b,c,!0)}}function tf(a){this.autoStart=void 0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function uf(a,b,c){this.radius=void 0!==a?a:1;this.phi=void 0!==b?b:0;this.theta=void 0!==c?c:0;return this}function vf(a,b,c){this.radius=void 0!==a?a:1;this.theta=void 0!==b?b:0;this.y=void 0!==c?c:0;return this}function xe(a,
+b){this.min=void 0!==a?a:new y(Infinity,Infinity);this.max=void 0!==b?b:new y(-Infinity,-Infinity)}function id(a){B.call(this);this.material=a;this.render=function(){}}function jd(a,b,c,d){this.object=a;this.size=void 0!==b?b:1;a=void 0!==c?c:16711680;d=void 0!==d?d:1;b=0;(c=this.object.geometry)&&c.isGeometry?b=3*c.faces.length:c&&c.isBufferGeometry&&(b=c.attributes.normal.count);c=new G;b=new A(6*b,3);c.addAttribute("position",b);aa.call(this,c,new T({color:a,linewidth:d}));this.matrixAutoUpdate=
+!1;this.update()}function pc(a,b){B.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new G;b=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(var c=0,d=1;32>c;c++,d++){var e=c/32*Math.PI*2,f=d/32*Math.PI*2;b.push(Math.cos(e),Math.sin(e),1,Math.cos(f),Math.sin(f),1)}a.addAttribute("position",new A(b,3));b=new T({fog:!1});this.cone=new aa(a,b);this.add(this.cone);this.update()}function wf(a){var b=[];a&&a.isBone&&
+b.push(a);for(var c=0;c<a.children.length;c++)b.push.apply(b,wf(a.children[c]));return b}function qc(a){for(var b=wf(a),c=new G,d=[],e=[],f=new K(0,0,1),g=new K(0,1,0),h=0;h<b.length;h++){var l=b[h];l.parent&&l.parent.isBone&&(d.push(0,0,0),d.push(0,0,0),e.push(f.r,f.g,f.b),e.push(g.r,g.g,g.b))}c.addAttribute("position",new A(d,3));c.addAttribute("color",new A(e,3));d=new T({vertexColors:2,depthTest:!1,depthWrite:!1,transparent:!0});aa.call(this,c,d);this.root=a;this.bones=b;this.matrix=a.matrixWorld;
+this.matrixAutoUpdate=!1}function rc(a,b,c){this.light=a;this.light.updateMatrixWorld();this.color=c;a=new xb(b,4,2);b=new ka({wireframe:!0,fog:!1});pa.call(this,a,b);this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1;this.update()}function sc(a,b){B.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new T({fog:!1});b=new G;b.addAttribute("position",new O(new Float32Array(15),3));this.line=new ma(b,a);this.add(this.line);
+this.update()}function tc(a,b,c){B.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;a=new ub(b);a.rotateY(.5*Math.PI);this.material=new ka({wireframe:!0,fog:!1});void 0===this.color&&(this.material.vertexColors=2);b=a.getAttribute("position");b=new Float32Array(3*b.count);a.addAttribute("color",new O(b,3));this.add(new pa(a,this.material));this.update()}function kd(a,b,c,d){a=a||10;b=b||10;c=new K(void 0!==c?c:4473924);d=new K(void 0!==
+d?d:8947848);var e=b/2,f=a/b,g=a/2;a=[];for(var h=[],l=0,m=0,k=-g;l<=b;l++,k+=f){a.push(-g,0,k,g,0,k);a.push(k,0,-g,k,0,g);var n=l===e?c:d;n.toArray(h,m);m+=3;n.toArray(h,m);m+=3;n.toArray(h,m);m+=3;n.toArray(h,m);m+=3}b=new G;b.addAttribute("position",new A(a,3));b.addAttribute("color",new A(h,3));c=new T({vertexColors:2});aa.call(this,b,c)}function Pd(a,b,c,d,e,f){a=a||10;b=b||16;c=c||8;d=d||64;e=new K(void 0!==e?e:4473924);f=new K(void 0!==f?f:8947848);var g=[],h=[],l;for(l=0;l<=b;l++){var m=l/
+b*2*Math.PI;var k=Math.sin(m)*a;m=Math.cos(m)*a;g.push(0,0,0);g.push(k,0,m);var n=l&1?e:f;h.push(n.r,n.g,n.b);h.push(n.r,n.g,n.b)}for(l=0;l<=c;l++){n=l&1?e:f;var r=a-a/c*l;for(b=0;b<d;b++)m=b/d*2*Math.PI,k=Math.sin(m)*r,m=Math.cos(m)*r,g.push(k,0,m),h.push(n.r,n.g,n.b),m=(b+1)/d*2*Math.PI,k=Math.sin(m)*r,m=Math.cos(m)*r,g.push(k,0,m),h.push(n.r,n.g,n.b)}a=new G;a.addAttribute("position",new A(g,3));a.addAttribute("color",new A(h,3));g=new T({vertexColors:2});aa.call(this,a,g)}function ld(a,b,c,d){this.object=
+a;this.size=void 0!==b?b:1;a=void 0!==c?c:16776960;d=void 0!==d?d:1;b=0;(c=this.object.geometry)&&c.isGeometry?b=c.faces.length:console.warn("THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead.");c=new G;b=new A(6*b,3);c.addAttribute("position",b);aa.call(this,c,new T({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function uc(a,b,c){B.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=
+!1;this.color=c;void 0===b&&(b=1);a=new G;a.addAttribute("position",new A([-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0],3));b=new T({fog:!1});this.lightPlane=new ma(a,b);this.add(this.lightPlane);a=new G;a.addAttribute("position",new A([0,0,0,0,0,1],3));this.targetLine=new ma(a,b);this.add(this.targetLine);this.update()}function md(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){f.push(0,0,0);g.push(b.r,b.g,b.b);void 0===h[a]&&(h[a]=[]);h[a].push(f.length/3-1)}var d=new G,e=new T({color:16777215,vertexColors:1}),
+f=[],g=[],h={},l=new K(16755200),m=new K(16711680),k=new K(43775),n=new K(16777215),r=new K(3355443);b("n1","n2",l);b("n2","n4",l);b("n4","n3",l);b("n3","n1",l);b("f1","f2",l);b("f2","f4",l);b("f4","f3",l);b("f3","f1",l);b("n1","f1",l);b("n2","f2",l);b("n3","f3",l);b("n4","f4",l);b("p","n1",m);b("p","n2",m);b("p","n3",m);b("p","n4",m);b("u1","u2",k);b("u2","u3",k);b("u3","u1",k);b("c","t",n);b("p","c",r);b("cn1","cn2",r);b("cn3","cn4",r);b("cf1","cf2",r);b("cf3","cf4",r);d.addAttribute("position",
+new A(f,3));d.addAttribute("color",new A(g,3));aa.call(this,d,e);this.camera=a;this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=h;this.update()}function Ib(a,b){this.object=a;void 0===b&&(b=16776960);a=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var c=new Float32Array(24),d=new G;d.setIndex(new O(a,1));d.addAttribute("position",new O(c,3));aa.call(this,d,new T({color:b}));this.matrixAutoUpdate=
+!1;this.update()}function nd(a,b){this.type="Box3Helper";this.box=a;a=void 0!==b?b:16776960;b=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);var c=new G;c.setIndex(new O(b,1));c.addAttribute("position",new A([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3));aa.call(this,c,new T({color:a}));this.geometry.computeBoundingSphere()}function od(a,b,c){this.type="PlaneHelper";this.plane=a;this.size=void 0===b?1:b;a=void 0!==c?c:16776960;b=new G;b.addAttribute("position",
+new A([1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0],3));b.computeBoundingSphere();ma.call(this,b,new T({color:a}));b=new G;b.addAttribute("position",new A([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3));b.computeBoundingSphere();this.add(new pa(b,new ka({color:a,opacity:.2,transparent:!0,depthWrite:!1})))}function Jb(a,b,c,d,e,f){B.call(this);void 0===d&&(d=16776960);void 0===c&&(c=1);void 0===e&&(e=.2*c);void 0===f&&(f=.2*e);void 0===Qd&&(Qd=new G,Qd.addAttribute("position",
+new A([0,0,0,0,1,0],3)),ye=new $a(0,.5,1,5,1),ye.translate(0,-.5,0));this.position.copy(b);this.line=new ma(Qd,new T({color:d}));this.line.matrixAutoUpdate=!1;this.add(this.line);this.cone=new pa(ye,new ka({color:d}));this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function pd(a){a=a||1;var b=[0,0,0,a,0,0,0,0,0,0,a,0,0,0,0,0,0,a];a=new G;a.addAttribute("position",new A(b,3));a.addAttribute("color",new A([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));b=new T({vertexColors:2});
+aa.call(this,a,b)}function xf(a){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");ra.call(this,a);this.type="catmullrom";this.closed=!0}function yf(a){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");ra.call(this,a);this.type="catmullrom"}function ze(a){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead.");ra.call(this,a);this.type="catmullrom"}void 0===Number.EPSILON&&(Number.EPSILON=
+Math.pow(2,-52));void 0===Number.isInteger&&(Number.isInteger=function(a){return"number"===typeof a&&isFinite(a)&&Math.floor(a)===a});void 0===Math.sign&&(Math.sign=function(a){return 0>a?-1:0<a?1:+a});!1==="name"in Function.prototype&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}});void 0===Object.assign&&function(){Object.assign=function(a){if(void 0===a||null===a)throw new TypeError("Cannot convert undefined or null to object");
+for(var b=Object(a),c=1;c<arguments.length;c++){var d=arguments[c];if(void 0!==d&&null!==d)for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(b[e]=d[e])}return b}}();Object.assign(ha.prototype,{addEventListener:function(a,b){void 0===this._listeners&&(this._listeners={});var c=this._listeners;void 0===c[a]&&(c[a]=[]);-1===c[a].indexOf(b)&&c[a].push(b)},hasEventListener:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;return void 0!==c[a]&&-1!==c[a].indexOf(b)},removeEventListener:function(a,
+b){void 0!==this._listeners&&(a=this._listeners[a],void 0!==a&&(b=a.indexOf(b),-1!==b&&a.splice(b,1)))},dispatchEvent:function(a){if(void 0!==this._listeners){var b=this._listeners[a.type];if(void 0!==b){a.target=this;b=b.slice(0);for(var c=0,d=b.length;c<d;c++)b[c].call(this,a)}}}});var P={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){for(var a=[],b=0;256>b;b++)a[b]=(16>b?"0":"")+b.toString(16);return function(){var b=4294967295*Math.random()|0,d=4294967295*Math.random()|0,e=4294967295*
+Math.random()|0,f=4294967295*Math.random()|0;return(a[b&255]+a[b>>8&255]+a[b>>16&255]+a[b>>24&255]+"-"+a[d&255]+a[d>>8&255]+"-"+a[d>>16&15|64]+a[d>>24&255]+"-"+a[e&63|128]+a[e>>8&255]+"-"+a[e>>16&255]+a[e>>24&255]+a[f&255]+a[f>>8&255]+a[f>>16&255]+a[f>>24&255]).toUpperCase()}}(),clamp:function(a,b,c){return Math.max(b,Math.min(c,a))},euclideanModulo:function(a,b){return(a%b+b)%b},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},lerp:function(a,b,c){return(1-c)*a+c*b},smoothstep:function(a,
+b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*(3-2*a)},smootherstep:function(a,b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*a*(a*(6*a-15)+10)},randInt:function(a,b){return a+Math.floor(Math.random()*(b-a+1))},randFloat:function(a,b){return a+Math.random()*(b-a)},randFloatSpread:function(a){return a*(.5-Math.random())},degToRad:function(a){return a*P.DEG2RAD},radToDeg:function(a){return a*P.RAD2DEG},isPowerOfTwo:function(a){return 0===(a&a-1)&&0!==a},ceilPowerOfTwo:function(a){return Math.pow(2,
+Math.ceil(Math.log(a)/Math.LN2))},floorPowerOfTwo:function(a){return Math.pow(2,Math.floor(Math.log(a)/Math.LN2))}};Object.defineProperties(y.prototype,{width:{get:function(){return this.x},set:function(a){this.x=a}},height:{get:function(){return this.y},set:function(a){this.y=a}}});Object.assign(y.prototype,{isVector2:!0,set:function(a,b){this.x=a;this.y=b;return this},setScalar:function(a){this.y=this.x=a;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},
+setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;default:throw Error("index is out of range: "+a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(a){this.x=a.x;this.y=a.y;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),
+this.addVectors(a,b);this.x+=a.x;this.y+=a.y;return this},addScalar:function(a){this.x+=a;this.y+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;return this},subScalar:function(a){this.x-=a;this.y-=a;return this},
+subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;return this},multiply:function(a){this.x*=a.x;this.y*=a.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},divide:function(a){this.x/=a.x;this.y/=a.y;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},applyMatrix3:function(a){var b=this.x,c=this.y;a=a.elements;this.x=a[0]*b+a[3]*c+a[6];this.y=a[1]*b+a[4]*c+a[7];return this},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);return this},
+max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));return this},clampScalar:function(){var a=new y,b=new y;return function(c,d){a.set(c,c);b.set(d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);
+return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);return this},negate:function(){this.x=-this.x;this.y=-this.y;return this},dot:function(a){return this.x*a.x+this.y*a.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*
+this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){var a=Math.atan2(this.y,this.x);0>a&&(a+=2*Math.PI);return a},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x;a=this.y-a.y;return b*b+a*a},manhattanDistanceTo:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)},setLength:function(a){return this.normalize().multiplyScalar(a)},
+lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;return this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},equals:function(a){return a.x===this.x&&a.y===this.y},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute().");
+this.x=a.getX(b);this.y=a.getY(b);return this},rotateAround:function(a,b){var c=Math.cos(b);b=Math.sin(b);var d=this.x-a.x,e=this.y-a.y;this.x=d*c-e*b+a.x;this.y=d*b+e*c+a.y;return this}});Object.assign(F.prototype,{isMatrix4:!0,set:function(a,b,c,d,e,f,g,h,l,m,k,n,r,q,t,p){var v=this.elements;v[0]=a;v[4]=b;v[8]=c;v[12]=d;v[1]=e;v[5]=f;v[9]=g;v[13]=h;v[2]=l;v[6]=m;v[10]=k;v[14]=n;v[3]=r;v[7]=q;v[11]=t;v[15]=p;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},
+clone:function(){return(new F).fromArray(this.elements)},copy:function(a){var b=this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return this},copyPosition:function(a){var b=this.elements;a=a.elements;b[12]=a[12];b[13]=a[13];b[14]=a[14];return this},extractBasis:function(a,b,c){a.setFromMatrixColumn(this,0);b.setFromMatrixColumn(this,1);c.setFromMatrixColumn(this,
+2);return this},makeBasis:function(a,b,c){this.set(a.x,b.x,c.x,0,a.y,b.y,c.y,0,a.z,b.z,c.z,0,0,0,0,1);return this},extractRotation:function(){var a=new p;return function(b){var c=this.elements,d=b.elements,e=1/a.setFromMatrixColumn(b,0).length(),f=1/a.setFromMatrixColumn(b,1).length();b=1/a.setFromMatrixColumn(b,2).length();c[0]=d[0]*e;c[1]=d[1]*e;c[2]=d[2]*e;c[3]=0;c[4]=d[4]*f;c[5]=d[5]*f;c[6]=d[6]*f;c[7]=0;c[8]=d[8]*b;c[9]=d[9]*b;c[10]=d[10]*b;c[11]=0;c[12]=0;c[13]=0;c[14]=0;c[15]=1;return this}}(),
+makeRotationFromEuler:function(a){a&&a.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");var b=this.elements,c=a.x,d=a.y,e=a.z,f=Math.cos(c);c=Math.sin(c);var g=Math.cos(d);d=Math.sin(d);var h=Math.cos(e);e=Math.sin(e);if("XYZ"===a.order){a=f*h;var l=f*e,m=c*h,k=c*e;b[0]=g*h;b[4]=-g*e;b[8]=d;b[1]=l+m*d;b[5]=a-k*d;b[9]=-c*g;b[2]=k-a*d;b[6]=m+l*d;b[10]=f*g}else"YXZ"===a.order?(a=g*h,l=g*e,m=d*h,k=d*e,b[0]=a+k*c,b[4]=m*c-l,
+b[8]=f*d,b[1]=f*e,b[5]=f*h,b[9]=-c,b[2]=l*c-m,b[6]=k+a*c,b[10]=f*g):"ZXY"===a.order?(a=g*h,l=g*e,m=d*h,k=d*e,b[0]=a-k*c,b[4]=-f*e,b[8]=m+l*c,b[1]=l+m*c,b[5]=f*h,b[9]=k-a*c,b[2]=-f*d,b[6]=c,b[10]=f*g):"ZYX"===a.order?(a=f*h,l=f*e,m=c*h,k=c*e,b[0]=g*h,b[4]=m*d-l,b[8]=a*d+k,b[1]=g*e,b[5]=k*d+a,b[9]=l*d-m,b[2]=-d,b[6]=c*g,b[10]=f*g):"YZX"===a.order?(a=f*g,l=f*d,m=c*g,k=c*d,b[0]=g*h,b[4]=k-a*e,b[8]=m*e+l,b[1]=e,b[5]=f*h,b[9]=-c*h,b[2]=-d*h,b[6]=l*e+m,b[10]=a-k*e):"XZY"===a.order&&(a=f*g,l=f*d,m=c*g,k=
+c*d,b[0]=g*h,b[4]=-e,b[8]=d*h,b[1]=a*e+k,b[5]=f*h,b[9]=l*e-m,b[2]=m*e-l,b[6]=c*h,b[10]=k*e+a);b[3]=0;b[7]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},makeRotationFromQuaternion:function(){var a=new p(0,0,0),b=new p(1,1,1);return function(c){return this.compose(a,c,b)}}(),lookAt:function(){var a=new p,b=new p,c=new p;return function(d,e,f){var g=this.elements;c.subVectors(d,e);0===c.lengthSq()&&(c.z=1);c.normalize();a.crossVectors(f,c);0===a.lengthSq()&&(1===Math.abs(f.z)?c.x+=1E-4:c.z+=
+1E-4,c.normalize(),a.crossVectors(f,c));a.normalize();b.crossVectors(c,a);g[0]=a.x;g[4]=b.x;g[8]=c.x;g[1]=a.y;g[5]=b.y;g[9]=c.y;g[2]=a.z;g[6]=b.z;g[10]=c.z;return this}}(),multiply:function(a,b){return void 0!==b?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(a,b)):this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements;
+b=this.elements;a=c[0];var e=c[4],f=c[8],g=c[12],h=c[1],l=c[5],m=c[9],k=c[13],n=c[2],r=c[6],q=c[10],t=c[14],p=c[3],z=c[7],x=c[11];c=c[15];var w=d[0],y=d[4],C=d[8],A=d[12],Q=d[1],E=d[5],F=d[9],B=d[13],G=d[2],I=d[6],K=d[10],J=d[14],L=d[3],M=d[7],O=d[11];d=d[15];b[0]=a*w+e*Q+f*G+g*L;b[4]=a*y+e*E+f*I+g*M;b[8]=a*C+e*F+f*K+g*O;b[12]=a*A+e*B+f*J+g*d;b[1]=h*w+l*Q+m*G+k*L;b[5]=h*y+l*E+m*I+k*M;b[9]=h*C+l*F+m*K+k*O;b[13]=h*A+l*B+m*J+k*d;b[2]=n*w+r*Q+q*G+t*L;b[6]=n*y+r*E+q*I+t*M;b[10]=n*C+r*F+q*K+t*O;b[14]=n*
+A+r*B+q*J+t*d;b[3]=p*w+z*Q+x*G+c*L;b[7]=p*y+z*E+x*I+c*M;b[11]=p*C+z*F+x*K+c*O;b[15]=p*A+z*B+x*J+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[4]*=a;b[8]*=a;b[12]*=a;b[1]*=a;b[5]*=a;b[9]*=a;b[13]*=a;b[2]*=a;b[6]*=a;b[10]*=a;b[14]*=a;b[3]*=a;b[7]*=a;b[11]*=a;b[15]*=a;return this},applyToBufferAttribute:function(){var a=new p;return function(b){for(var c=0,d=b.count;c<d;c++)a.x=b.getX(c),a.y=b.getY(c),a.z=b.getZ(c),a.applyMatrix4(this),b.setXYZ(c,a.x,a.y,a.z);return b}}(),
+determinant:function(){var a=this.elements,b=a[0],c=a[4],d=a[8],e=a[12],f=a[1],g=a[5],h=a[9],l=a[13],m=a[2],k=a[6],n=a[10],r=a[14];return a[3]*(+e*h*k-d*l*k-e*g*n+c*l*n+d*g*r-c*h*r)+a[7]*(+b*h*r-b*l*n+e*f*n-d*f*r+d*l*m-e*h*m)+a[11]*(+b*l*k-b*g*r-e*f*k+c*f*r+e*g*m-c*l*m)+a[15]*(-d*g*m-b*h*k+b*g*n+d*f*k-c*f*n+c*h*m)},transpose:function(){var a=this.elements;var b=a[1];a[1]=a[4];a[4]=b;b=a[2];a[2]=a[8];a[8]=b;b=a[6];a[6]=a[9];a[9]=b;b=a[3];a[3]=a[12];a[12]=b;b=a[7];a[7]=a[13];a[13]=b;b=a[11];a[11]=a[14];
+a[14]=b;return this},setPosition:function(a){var b=this.elements;b[12]=a.x;b[13]=a.y;b[14]=a.z;return this},getInverse:function(a,b){var c=this.elements,d=a.elements;a=d[0];var e=d[1],f=d[2],g=d[3],h=d[4],l=d[5],m=d[6],k=d[7],n=d[8],r=d[9],q=d[10],t=d[11],p=d[12],z=d[13],x=d[14];d=d[15];var w=r*x*k-z*q*k+z*m*t-l*x*t-r*m*d+l*q*d,y=p*q*k-n*x*k-p*m*t+h*x*t+n*m*d-h*q*d,C=n*z*k-p*r*k+p*l*t-h*z*t-n*l*d+h*r*d,A=p*r*m-n*z*m-p*l*q+h*z*q+n*l*x-h*r*x,Q=a*w+e*y+f*C+g*A;if(0===Q){if(!0===b)throw Error("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0");
+console.warn("THREE.Matrix4: .getInverse() can't invert matrix, determinant is 0");return this.identity()}b=1/Q;c[0]=w*b;c[1]=(z*q*g-r*x*g-z*f*t+e*x*t+r*f*d-e*q*d)*b;c[2]=(l*x*g-z*m*g+z*f*k-e*x*k-l*f*d+e*m*d)*b;c[3]=(r*m*g-l*q*g-r*f*k+e*q*k+l*f*t-e*m*t)*b;c[4]=y*b;c[5]=(n*x*g-p*q*g+p*f*t-a*x*t-n*f*d+a*q*d)*b;c[6]=(p*m*g-h*x*g-p*f*k+a*x*k+h*f*d-a*m*d)*b;c[7]=(h*q*g-n*m*g+n*f*k-a*q*k-h*f*t+a*m*t)*b;c[8]=C*b;c[9]=(p*r*g-n*z*g-p*e*t+a*z*t+n*e*d-a*r*d)*b;c[10]=(h*z*g-p*l*g+p*e*k-a*z*k-h*e*d+a*l*d)*b;c[11]=
+(n*l*g-h*r*g-n*e*k+a*r*k+h*e*t-a*l*t)*b;c[12]=A*b;c[13]=(n*z*f-p*r*f+p*e*q-a*z*q-n*e*x+a*r*x)*b;c[14]=(p*l*f-h*z*f-p*e*m+a*z*m+h*e*x-a*l*x)*b;c[15]=(h*r*f-n*l*f+n*e*m-a*r*m-h*e*q+a*l*q)*b;return this},scale:function(a){var b=this.elements,c=a.x,d=a.y;a=a.z;b[0]*=c;b[4]*=d;b[8]*=a;b[1]*=c;b[5]*=d;b[9]*=a;b[2]*=c;b[6]*=d;b[10]*=a;b[3]*=c;b[7]*=d;b[11]*=a;return this},getMaxScaleOnAxis:function(){var a=this.elements;return Math.sqrt(Math.max(a[0]*a[0]+a[1]*a[1]+a[2]*a[2],a[4]*a[4]+a[5]*a[5]+a[6]*a[6],
+a[8]*a[8]+a[9]*a[9]+a[10]*a[10]))},makeTranslation:function(a,b,c){this.set(1,0,0,a,0,1,0,b,0,0,1,c,0,0,0,1);return this},makeRotationX:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1);return this},makeRotationY:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1);return this},makeRotationZ:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1);return this},makeRotationAxis:function(a,b){var c=
+Math.cos(b);b=Math.sin(b);var d=1-c,e=a.x,f=a.y;a=a.z;var g=d*e,h=d*f;this.set(g*e+c,g*f-b*a,g*a+b*f,0,g*f+b*a,h*f+c,h*a-b*e,0,g*a-b*f,h*a+b*e,d*a*a+c,0,0,0,0,1);return this},makeScale:function(a,b,c){this.set(a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,1);return this},makeShear:function(a,b,c){this.set(1,b,c,0,a,1,c,0,a,b,1,0,0,0,0,1);return this},compose:function(a,b,c){var d=this.elements,e=b._x,f=b._y,g=b._z,h=b._w,l=e+e,m=f+f,k=g+g;b=e*l;var n=e*m;e*=k;var r=f*m;f*=k;g*=k;l*=h;m*=h;h*=k;k=c.x;var q=c.y;c=
+c.z;d[0]=(1-(r+g))*k;d[1]=(n+h)*k;d[2]=(e-m)*k;d[3]=0;d[4]=(n-h)*q;d[5]=(1-(b+g))*q;d[6]=(f+l)*q;d[7]=0;d[8]=(e+m)*c;d[9]=(f-l)*c;d[10]=(1-(b+r))*c;d[11]=0;d[12]=a.x;d[13]=a.y;d[14]=a.z;d[15]=1;return this},decompose:function(){var a=new p,b=new F;return function(c,d,e){var f=this.elements,g=a.set(f[0],f[1],f[2]).length(),h=a.set(f[4],f[5],f[6]).length(),l=a.set(f[8],f[9],f[10]).length();0>this.determinant()&&(g=-g);c.x=f[12];c.y=f[13];c.z=f[14];b.copy(this);c=1/g;f=1/h;var m=1/l;b.elements[0]*=c;
+b.elements[1]*=c;b.elements[2]*=c;b.elements[4]*=f;b.elements[5]*=f;b.elements[6]*=f;b.elements[8]*=m;b.elements[9]*=m;b.elements[10]*=m;d.setFromRotationMatrix(b);e.x=g;e.y=h;e.z=l;return this}}(),makePerspective:function(a,b,c,d,e,f){void 0===f&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var g=this.elements;g[0]=2*e/(b-a);g[4]=0;g[8]=(b+a)/(b-a);g[12]=0;g[1]=0;g[5]=2*e/(c-d);g[9]=(c+d)/(c-d);g[13]=0;g[2]=0;g[6]=0;g[10]=-(f+
+e)/(f-e);g[14]=-2*f*e/(f-e);g[3]=0;g[7]=0;g[11]=-1;g[15]=0;return this},makeOrthographic:function(a,b,c,d,e,f){var g=this.elements,h=1/(b-a),l=1/(c-d),m=1/(f-e);g[0]=2*h;g[4]=0;g[8]=0;g[12]=-((b+a)*h);g[1]=0;g[5]=2*l;g[9]=0;g[13]=-((c+d)*l);g[2]=0;g[6]=0;g[10]=-2*m;g[14]=-((f+e)*m);g[3]=0;g[7]=0;g[11]=0;g[15]=1;return this},equals:function(a){var b=this.elements;a=a.elements;for(var c=0;16>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;16>c;c++)this.elements[c]=
+a[c+b];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];a[b+9]=c[9];a[b+10]=c[10];a[b+11]=c[11];a[b+12]=c[12];a[b+13]=c[13];a[b+14]=c[14];a[b+15]=c[15];return a}});Object.assign(ea,{slerp:function(a,b,c,d){return c.copy(a).slerp(b,d)},slerpFlat:function(a,b,c,d,e,f,g){var h=c[d+0],l=c[d+1],m=c[d+2];c=c[d+3];d=e[f+0];var k=e[f+1],n=e[f+2];e=e[f+3];if(c!==
+e||h!==d||l!==k||m!==n){f=1-g;var r=h*d+l*k+m*n+c*e,q=0<=r?1:-1,p=1-r*r;p>Number.EPSILON&&(p=Math.sqrt(p),r=Math.atan2(p,r*q),f=Math.sin(f*r)/p,g=Math.sin(g*r)/p);q*=g;h=h*f+d*q;l=l*f+k*q;m=m*f+n*q;c=c*f+e*q;f===1-g&&(g=1/Math.sqrt(h*h+l*l+m*m+c*c),h*=g,l*=g,m*=g,c*=g)}a[b]=h;a[b+1]=l;a[b+2]=m;a[b+3]=c}});Object.defineProperties(ea.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this.onChangeCallback()}},y:{get:function(){return this._y},set:function(a){this._y=a;this.onChangeCallback()}},
+z:{get:function(){return this._z},set:function(a){this._z=a;this.onChangeCallback()}},w:{get:function(){return this._w},set:function(a){this._w=a;this.onChangeCallback()}}});Object.assign(ea.prototype,{set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._w=d;this.onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(a){this._x=a.x;this._y=a.y;this._z=a.z;this._w=a.w;this.onChangeCallback();return this},setFromEuler:function(a,
+b){if(!a||!a.isEuler)throw Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var c=a._x,d=a._y,e=a._z;a=a.order;var f=Math.cos,g=Math.sin,h=f(c/2),l=f(d/2);f=f(e/2);c=g(c/2);d=g(d/2);e=g(e/2);"XYZ"===a?(this._x=c*l*f+h*d*e,this._y=h*d*f-c*l*e,this._z=h*l*e+c*d*f,this._w=h*l*f-c*d*e):"YXZ"===a?(this._x=c*l*f+h*d*e,this._y=h*d*f-c*l*e,this._z=h*l*e-c*d*f,this._w=h*l*f+c*d*e):"ZXY"===a?(this._x=c*l*f-h*d*e,this._y=h*d*f+c*l*e,this._z=h*l*e+c*d*
+f,this._w=h*l*f-c*d*e):"ZYX"===a?(this._x=c*l*f-h*d*e,this._y=h*d*f+c*l*e,this._z=h*l*e-c*d*f,this._w=h*l*f+c*d*e):"YZX"===a?(this._x=c*l*f+h*d*e,this._y=h*d*f+c*l*e,this._z=h*l*e-c*d*f,this._w=h*l*f-c*d*e):"XZY"===a&&(this._x=c*l*f-h*d*e,this._y=h*d*f-c*l*e,this._z=h*l*e+c*d*f,this._w=h*l*f+c*d*e);if(!1!==b)this.onChangeCallback();return this},setFromAxisAngle:function(a,b){b/=2;var c=Math.sin(b);this._x=a.x*c;this._y=a.y*c;this._z=a.z*c;this._w=Math.cos(b);this.onChangeCallback();return this},setFromRotationMatrix:function(a){var b=
+a.elements,c=b[0];a=b[4];var d=b[8],e=b[1],f=b[5],g=b[9],h=b[2],l=b[6];b=b[10];var m=c+f+b;0<m?(c=.5/Math.sqrt(m+1),this._w=.25/c,this._x=(l-g)*c,this._y=(d-h)*c,this._z=(e-a)*c):c>f&&c>b?(c=2*Math.sqrt(1+c-f-b),this._w=(l-g)/c,this._x=.25*c,this._y=(a+e)/c,this._z=(d+h)/c):f>b?(c=2*Math.sqrt(1+f-c-b),this._w=(d-h)/c,this._x=(a+e)/c,this._y=.25*c,this._z=(g+l)/c):(c=2*Math.sqrt(1+b-c-f),this._w=(e-a)/c,this._x=(d+h)/c,this._y=(g+l)/c,this._z=.25*c);this.onChangeCallback();return this},setFromUnitVectors:function(){var a=
+new p,b;return function(c,d){void 0===a&&(a=new p);b=c.dot(d)+1;1E-6>b?(b=0,Math.abs(c.x)>Math.abs(c.z)?a.set(-c.y,c.x,0):a.set(0,-c.z,c.y)):a.crossVectors(c,d);this._x=a.x;this._y=a.y;this._z=a.z;this._w=b;return this.normalize()}}(),inverse:function(){return this.conjugate()},conjugate:function(){this._x*=-1;this._y*=-1;this._z*=-1;this.onChangeCallback();return this},dot:function(a){return this._x*a._x+this._y*a._y+this._z*a._z+this._w*a._w},lengthSq:function(){return this._x*this._x+this._y*this._y+
+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var a=this.length();0===a?(this._z=this._y=this._x=0,this._w=1):(a=1/a,this._x*=a,this._y*=a,this._z*=a,this._w*=a);this.onChangeCallback();return this},multiply:function(a,b){return void 0!==b?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(a,b)):this.multiplyQuaternions(this,
+a)},premultiply:function(a){return this.multiplyQuaternions(a,this)},multiplyQuaternions:function(a,b){var c=a._x,d=a._y,e=a._z;a=a._w;var f=b._x,g=b._y,h=b._z;b=b._w;this._x=c*b+a*f+d*h-e*g;this._y=d*b+a*g+e*f-c*h;this._z=e*b+a*h+c*g-d*f;this._w=a*b-c*f-d*g-e*h;this.onChangeCallback();return this},slerp:function(a,b){if(0===b)return this;if(1===b)return this.copy(a);var c=this._x,d=this._y,e=this._z,f=this._w,g=f*a._w+c*a._x+d*a._y+e*a._z;0>g?(this._w=-a._w,this._x=-a._x,this._y=-a._y,this._z=-a._z,
+g=-g):this.copy(a);if(1<=g)return this._w=f,this._x=c,this._y=d,this._z=e,this;a=Math.sqrt(1-g*g);if(.001>Math.abs(a))return this._w=.5*(f+this._w),this._x=.5*(c+this._x),this._y=.5*(d+this._y),this._z=.5*(e+this._z),this;var h=Math.atan2(a,g);g=Math.sin((1-b)*h)/a;b=Math.sin(b*h)/a;this._w=f*g+this._w*b;this._x=c*g+this._x*b;this._y=d*g+this._y*b;this._z=e*g+this._z*b;this.onChangeCallback();return this},equals:function(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._w===this._w},fromArray:function(a,
+b){void 0===b&&(b=0);this._x=a[b];this._y=a[b+1];this._z=a[b+2];this._w=a[b+3];this.onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this._x;a[b+1]=this._y;a[b+2]=this._z;a[b+3]=this._w;return a},onChange:function(a){this.onChangeCallback=a;return this},onChangeCallback:function(){}});Object.assign(p.prototype,{isVector3:!0,set:function(a,b,c){this.x=a;this.y=b;this.z=c;return this},setScalar:function(a){this.z=this.y=this.x=a;return this},setX:function(a){this.x=
+a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;default:throw Error("index is out of range: "+a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(a){this.x=
+a.x;this.y=a.y;this.z=a.z;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;this.z+=a.z*b;return this},sub:function(a,b){if(void 0!==
+b)return console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;return this},subScalar:function(a){this.x-=a;this.y-=a;this.z-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;return this},multiply:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(a,
+b);this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;return this},multiplyVectors:function(a,b){this.x=a.x*b.x;this.y=a.y*b.y;this.z=a.z*b.z;return this},applyEuler:function(){var a=new ea;return function(b){b&&b.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.");return this.applyQuaternion(a.setFromEuler(b))}}(),applyAxisAngle:function(){var a=new ea;return function(b,c){return this.applyQuaternion(a.setFromAxisAngle(b,
+c))}}(),applyMatrix3:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[3]*c+a[6]*d;this.y=a[1]*b+a[4]*c+a[7]*d;this.z=a[2]*b+a[5]*c+a[8]*d;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;var e=1/(a[3]*b+a[7]*c+a[11]*d+a[15]);this.x=(a[0]*b+a[4]*c+a[8]*d+a[12])*e;this.y=(a[1]*b+a[5]*c+a[9]*d+a[13])*e;this.z=(a[2]*b+a[6]*c+a[10]*d+a[14])*e;return this},applyQuaternion:function(a){var b=this.x,c=this.y,d=this.z,e=a.x,f=a.y,g=a.z;a=a.w;var h=a*b+
+f*d-g*c,l=a*c+g*b-e*d,m=a*d+e*c-f*b;b=-e*b-f*c-g*d;this.x=h*a+b*-e+l*-g-m*-f;this.y=l*a+b*-f+m*-e-h*-g;this.z=m*a+b*-g+h*-f-l*-e;return this},project:function(){var a=new F;return function(b){a.multiplyMatrices(b.projectionMatrix,a.getInverse(b.matrixWorld));return this.applyMatrix4(a)}}(),unproject:function(){var a=new F;return function(b){a.multiplyMatrices(b.matrixWorld,a.getInverse(b.projectionMatrix));return this.applyMatrix4(a)}}(),transformDirection:function(a){var b=this.x,c=this.y,d=this.z;
+a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d;this.y=a[1]*b+a[5]*c+a[9]*d;this.z=a[2]*b+a[6]*c+a[10]*d;return this.normalize()},divide:function(a){this.x/=a.x;this.y/=a.y;this.z/=a.z;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);this.z=Math.min(this.z,a.z);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.z=Math.max(this.z,a.z);return this},clamp:function(a,b){this.x=
+Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));this.z=Math.max(a.z,Math.min(b.z,this.z));return this},clampScalar:function(){var a=new p,b=new p;return function(c,d){a.set(c,c,c);b.set(d,d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);return this},ceil:function(){this.x=Math.ceil(this.x);
+this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},lengthSq:function(){return this.x*
+this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;return this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},
+cross:function(a,b){return void 0!==b?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(a,b)):this.crossVectors(this,a)},crossVectors:function(a,b){var c=a.x,d=a.y;a=a.z;var e=b.x,f=b.y;b=b.z;this.x=d*b-a*f;this.y=a*e-c*b;this.z=c*f-d*e;return this},projectOnVector:function(a){var b=a.dot(this)/a.lengthSq();return this.copy(a).multiplyScalar(b)},projectOnPlane:function(){var a=new p;return function(b){a.copy(this).projectOnVector(b);
+return this.sub(a)}}(),reflect:function(){var a=new p;return function(b){return this.sub(a.copy(b).multiplyScalar(2*this.dot(b)))}}(),angleTo:function(a){a=this.dot(a)/Math.sqrt(this.lengthSq()*a.lengthSq());return Math.acos(P.clamp(a,-1,1))},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x,c=this.y-a.y;a=this.z-a.z;return b*b+c*c+a*a},manhattanDistanceTo:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)+Math.abs(this.z-
+a.z)},setFromSpherical:function(a){var b=Math.sin(a.phi)*a.radius;this.x=b*Math.sin(a.theta);this.y=Math.cos(a.phi)*a.radius;this.z=b*Math.cos(a.theta);return this},setFromCylindrical:function(a){this.x=a.radius*Math.sin(a.theta);this.y=a.y;this.z=a.radius*Math.cos(a.theta);return this},setFromMatrixPosition:function(a){a=a.elements;this.x=a[12];this.y=a[13];this.z=a[14];return this},setFromMatrixScale:function(a){var b=this.setFromMatrixColumn(a,0).length(),c=this.setFromMatrixColumn(a,1).length();
+a=this.setFromMatrixColumn(a,2).length();this.x=b;this.y=c;this.z=a;return this},setFromMatrixColumn:function(a,b){return this.fromArray(a.elements,4*b)},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute().");
+this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);return this}});Object.assign(ta.prototype,{isMatrix3:!0,set:function(a,b,c,d,e,f,g,h,l){var m=this.elements;m[0]=a;m[1]=d;m[2]=g;m[3]=b;m[4]=e;m[5]=h;m[6]=c;m[7]=f;m[8]=l;return this},identity:function(){this.set(1,0,0,0,1,0,0,0,1);return this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(a){var b=this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=
+a[8];return this},setFromMatrix4:function(a){a=a.elements;this.set(a[0],a[4],a[8],a[1],a[5],a[9],a[2],a[6],a[10]);return this},applyToBufferAttribute:function(){var a=new p;return function(b){for(var c=0,d=b.count;c<d;c++)a.x=b.getX(c),a.y=b.getY(c),a.z=b.getZ(c),a.applyMatrix3(this),b.setXYZ(c,a.x,a.y,a.z);return b}}(),multiply:function(a){return this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements;
+b=this.elements;a=c[0];var e=c[3],f=c[6],g=c[1],h=c[4],l=c[7],m=c[2],k=c[5];c=c[8];var n=d[0],r=d[3],q=d[6],p=d[1],u=d[4],z=d[7],x=d[2],w=d[5];d=d[8];b[0]=a*n+e*p+f*x;b[3]=a*r+e*u+f*w;b[6]=a*q+e*z+f*d;b[1]=g*n+h*p+l*x;b[4]=g*r+h*u+l*w;b[7]=g*q+h*z+l*d;b[2]=m*n+k*p+c*x;b[5]=m*r+k*u+c*w;b[8]=m*q+k*z+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[3]*=a;b[6]*=a;b[1]*=a;b[4]*=a;b[7]*=a;b[2]*=a;b[5]*=a;b[8]*=a;return this},determinant:function(){var a=this.elements,b=a[0],c=a[1],
+d=a[2],e=a[3],f=a[4],g=a[5],h=a[6],l=a[7];a=a[8];return b*f*a-b*g*l-c*e*a+c*g*h+d*e*l-d*f*h},getInverse:function(a,b){a&&a.isMatrix4&&console.error("THREE.Matrix3: .getInverse() no longer takes a Matrix4 argument.");var c=a.elements;a=this.elements;var d=c[0],e=c[1],f=c[2],g=c[3],h=c[4],l=c[5],m=c[6],k=c[7];c=c[8];var n=c*h-l*k,r=l*m-c*g,q=k*g-h*m,p=d*n+e*r+f*q;if(0===p){if(!0===b)throw Error("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0");console.warn("THREE.Matrix3: .getInverse() can't invert matrix, determinant is 0");
+return this.identity()}b=1/p;a[0]=n*b;a[1]=(f*k-c*e)*b;a[2]=(l*e-f*h)*b;a[3]=r*b;a[4]=(c*d-f*m)*b;a[5]=(f*g-l*d)*b;a[6]=q*b;a[7]=(e*m-k*d)*b;a[8]=(h*d-e*g)*b;return this},transpose:function(){var a=this.elements;var b=a[1];a[1]=a[3];a[3]=b;b=a[2];a[2]=a[6];a[6]=b;b=a[5];a[5]=a[7];a[7]=b;return this},getNormalMatrix:function(a){return this.setFromMatrix4(a).getInverse(this).transpose()},transposeIntoArray:function(a){var b=this.elements;a[0]=b[0];a[1]=b[3];a[2]=b[6];a[3]=b[1];a[4]=b[4];a[5]=b[7];a[6]=
+b[2];a[7]=b[5];a[8]=b[8];return this},setUvTransform:function(a,b,c,d,e,f,g){var h=Math.cos(e);e=Math.sin(e);this.set(c*h,c*e,-c*(h*f+e*g)+f+a,-d*e,d*h,-d*(-e*f+h*g)+g+b,0,0,1)},scale:function(a,b){var c=this.elements;c[0]*=a;c[3]*=a;c[6]*=a;c[1]*=b;c[4]*=b;c[7]*=b;return this},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);var c=this.elements,d=c[0],e=c[3],f=c[6],g=c[1],h=c[4],l=c[7];c[0]=b*d+a*g;c[3]=b*e+a*h;c[6]=b*f+a*l;c[1]=-a*d+b*g;c[4]=-a*e+b*h;c[7]=-a*f+b*l;return this},translate:function(a,
+b){var c=this.elements;c[0]+=a*c[2];c[3]+=a*c[5];c[6]+=a*c[8];c[1]+=b*c[2];c[4]+=b*c[5];c[7]+=b*c[8];return this},equals:function(a){var b=this.elements;a=a.elements;for(var c=0;9>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;9>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];
+return a}});var Df=0;ca.DEFAULT_IMAGE=void 0;ca.DEFAULT_MAPPING=300;ca.prototype=Object.assign(Object.create(ha.prototype),{constructor:ca,isTexture:!0,updateMatrix:function(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.name=a.name;this.image=a.image;this.mipmaps=a.mipmaps.slice(0);this.mapping=a.mapping;this.wrapS=a.wrapS;this.wrapT=a.wrapT;
+this.magFilter=a.magFilter;this.minFilter=a.minFilter;this.anisotropy=a.anisotropy;this.format=a.format;this.type=a.type;this.offset.copy(a.offset);this.repeat.copy(a.repeat);this.center.copy(a.center);this.rotation=a.rotation;this.matrixAutoUpdate=a.matrixAutoUpdate;this.matrix.copy(a.matrix);this.generateMipmaps=a.generateMipmaps;this.premultiplyAlpha=a.premultiplyAlpha;this.flipY=a.flipY;this.unpackAlignment=a.unpackAlignment;this.encoding=a.encoding;return this},toJSON:function(a){var b=void 0===
+a||"string"===typeof a;if(!b&&void 0!==a.textures[this.uuid])return a.textures[this.uuid];var c={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY};if(void 0!==
+this.image){var d=this.image;void 0===d.uuid&&(d.uuid=P.generateUUID());if(!b&&void 0===a.images[d.uuid]){var e=a.images,f=d.uuid,g=d.uuid;if(d instanceof HTMLCanvasElement)var h=d;else{h=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");h.width=d.width;h.height=d.height;var l=h.getContext("2d");d instanceof ImageData?l.putImageData(d,0,0):l.drawImage(d,0,0,d.width,d.height)}h=2048<h.width||2048<h.height?h.toDataURL("image/jpeg",.6):h.toDataURL("image/png");e[f]={uuid:g,url:h}}c.image=
+d.uuid}b||(a.textures[this.uuid]=c);return c},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(a){if(300===this.mapping){a.applyMatrix3(this.matrix);if(0>a.x||1<a.x)switch(this.wrapS){case 1E3:a.x-=Math.floor(a.x);break;case 1001:a.x=0>a.x?0:1;break;case 1002:a.x=1===Math.abs(Math.floor(a.x)%2)?Math.ceil(a.x)-a.x:a.x-Math.floor(a.x)}if(0>a.y||1<a.y)switch(this.wrapT){case 1E3:a.y-=Math.floor(a.y);break;case 1001:a.y=0>a.y?0:1;break;case 1002:a.y=1===Math.abs(Math.floor(a.y)%
+2)?Math.ceil(a.y)-a.y:a.y-Math.floor(a.y)}this.flipY&&(a.y=1-a.y)}}});Object.defineProperty(ca.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(U.prototype,{isVector4:!0,set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;this.w=d;return this},setScalar:function(a){this.w=this.z=this.y=this.x=a;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setW:function(a){this.w=a;return this},setComponent:function(a,
+b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;case 3:this.w=b;break;default:throw Error("index is out of range: "+a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=void 0!==a.w?a.w:1;return this},add:function(a,
+b){if(void 0!==b)return console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;this.w+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;this.z+=a.z*b;this.w+=a.w*b;return this},sub:function(a,b){if(void 0!==
+b)return console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w;return this},subScalar:function(a){this.x-=a;this.y-=a;this.z-=a;this.w-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=a;this.w*=a;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z,
+e=this.w;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d+a[12]*e;this.y=a[1]*b+a[5]*c+a[9]*d+a[13]*e;this.z=a[2]*b+a[6]*c+a[10]*d+a[14]*e;this.w=a[3]*b+a[7]*c+a[11]*d+a[15]*e;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},setAxisAngleFromQuaternion:function(a){this.w=2*Math.acos(a.w);var b=Math.sqrt(1-a.w*a.w);1E-4>b?(this.x=1,this.z=this.y=0):(this.x=a.x/b,this.y=a.y/b,this.z=a.z/b);return this},setAxisAngleFromRotationMatrix:function(a){a=a.elements;var b=a[0];var c=a[4];var d=
+a[8],e=a[1],f=a[5],g=a[9];var h=a[2];var l=a[6];var m=a[10];if(.01>Math.abs(c-e)&&.01>Math.abs(d-h)&&.01>Math.abs(g-l)){if(.1>Math.abs(c+e)&&.1>Math.abs(d+h)&&.1>Math.abs(g+l)&&.1>Math.abs(b+f+m-3))return this.set(1,0,0,0),this;a=Math.PI;b=(b+1)/2;f=(f+1)/2;m=(m+1)/2;c=(c+e)/4;d=(d+h)/4;g=(g+l)/4;b>f&&b>m?.01>b?(l=0,c=h=.707106781):(l=Math.sqrt(b),h=c/l,c=d/l):f>m?.01>f?(l=.707106781,h=0,c=.707106781):(h=Math.sqrt(f),l=c/h,c=g/h):.01>m?(h=l=.707106781,c=0):(c=Math.sqrt(m),l=d/c,h=g/c);this.set(l,
+h,c,a);return this}a=Math.sqrt((l-g)*(l-g)+(d-h)*(d-h)+(e-c)*(e-c));.001>Math.abs(a)&&(a=1);this.x=(l-g)/a;this.y=(d-h)/a;this.z=(e-c)/a;this.w=Math.acos((b+f+m-1)/2);return this},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);this.z=Math.min(this.z,a.z);this.w=Math.min(this.w,a.w);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.z=Math.max(this.z,a.z);this.w=Math.max(this.w,a.w);return this},clamp:function(a,b){this.x=Math.max(a.x,
+Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));this.z=Math.max(a.z,Math.min(b.z,this.z));this.w=Math.max(a.w,Math.min(b.w,this.w));return this},clampScalar:function(){var a,b;return function(c,d){void 0===a&&(a=new U,b=new U);a.set(c,c,c,c);b.set(d,d,d,d);return this.clamp(a,b)}}(),clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);
+this.w=Math.floor(this.w);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);this.w=Math.ceil(this.w);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);this.w=Math.round(this.w);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);this.w=0>this.w?Math.ceil(this.w):
+Math.floor(this.w);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;this.w=-this.w;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z+this.w*a.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||
+1)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;this.w+=(a.w-this.w)*b;return this},lerpVectors:function(a,b,c){return this.subVectors(b,a).multiplyScalar(c).add(a)},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z&&a.w===this.w},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];this.w=a[b+3];return this},toArray:function(a,b){void 0===a&&(a=
+[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;a[b+3]=this.w;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);this.w=a.getW(b);return this}});kb.prototype=Object.assign(Object.create(ha.prototype),{constructor:kb,isWebGLRenderTarget:!0,setSize:function(a,b){if(this.width!==a||this.height!==b)this.width=a,this.height=b,this.dispose();this.viewport.set(0,
+0,a,b);this.scissor.set(0,0,a,b)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.width=a.width;this.height=a.height;this.viewport.copy(a.viewport);this.texture=a.texture.clone();this.depthBuffer=a.depthBuffer;this.stencilBuffer=a.stencilBuffer;this.depthTexture=a.depthTexture;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});Lb.prototype=Object.create(kb.prototype);Lb.prototype.constructor=Lb;Lb.prototype.isWebGLRenderTargetCube=!0;lb.prototype=
+Object.create(ca.prototype);lb.prototype.constructor=lb;lb.prototype.isDataTexture=!0;Object.assign(Wa.prototype,{isBox3:!0,set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromArray:function(a){for(var b=Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,h=0,l=a.length;h<l;h+=3){var m=a[h],k=a[h+1],n=a[h+2];m<b&&(b=m);k<c&&(c=k);n<d&&(d=n);m>e&&(e=m);k>f&&(f=k);n>g&&(g=n)}this.min.set(b,c,d);this.max.set(e,f,g);return this},setFromBufferAttribute:function(a){for(var b=
+Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,h=0,l=a.count;h<l;h++){var m=a.getX(h),k=a.getY(h),n=a.getZ(h);m<b&&(b=m);k<c&&(c=k);n<d&&(d=n);m>e&&(e=m);k>f&&(f=k);n>g&&(g=n)}this.min.set(b,c,d);this.max.set(e,f,g);return this},setFromPoints:function(a){this.makeEmpty();for(var b=0,c=a.length;b<c;b++)this.expandByPoint(a[b]);return this},setFromCenterAndSize:function(){var a=new p;return function(b,c){c=a.copy(c).multiplyScalar(.5);this.min.copy(b).sub(c);this.max.copy(b).add(c);
+return this}}(),setFromObject:function(a){this.makeEmpty();return this.expandByObject(a)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.min.copy(a.min);this.max.copy(a.max);return this},makeEmpty:function(){this.min.x=this.min.y=this.min.z=Infinity;this.max.x=this.max.y=this.max.z=-Infinity;return this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},getCenter:function(a){void 0===a&&(console.warn("THREE.Box3: .getCenter() target is now required"),
+a=new p);return this.isEmpty()?a.set(0,0,0):a.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(a){void 0===a&&(console.warn("THREE.Box3: .getSize() target is now required"),a=new p);return this.isEmpty()?a.set(0,0,0):a.subVectors(this.max,this.min)},expandByPoint:function(a){this.min.min(a);this.max.max(a);return this},expandByVector:function(a){this.min.sub(a);this.max.add(a);return this},expandByScalar:function(a){this.min.addScalar(-a);this.max.addScalar(a);return this},expandByObject:function(){function a(a){var f=
+a.geometry;if(void 0!==f)if(f.isGeometry)for(f=f.vertices,c=0,d=f.length;c<d;c++)e.copy(f[c]),e.applyMatrix4(a.matrixWorld),b.expandByPoint(e);else if(f.isBufferGeometry&&(f=f.attributes.position,void 0!==f))for(c=0,d=f.count;c<d;c++)e.fromBufferAttribute(f,c).applyMatrix4(a.matrixWorld),b.expandByPoint(e)}var b,c,d,e=new p;return function(c){b=this;c.updateMatrixWorld(!0);c.traverse(a);return this}}(),containsPoint:function(a){return a.x<this.min.x||a.x>this.max.x||a.y<this.min.y||a.y>this.max.y||
+a.z<this.min.z||a.z>this.max.z?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y&&this.min.z<=a.min.z&&a.max.z<=this.max.z},getParameter:function(a,b){void 0===b&&(console.warn("THREE.Box3: .getParameter() target is now required"),b=new p);return b.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y),(a.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(a){return a.max.x<this.min.x||
+a.min.x>this.max.x||a.max.y<this.min.y||a.min.y>this.max.y||a.max.z<this.min.z||a.min.z>this.max.z?!1:!0},intersectsSphere:function(){var a=new p;return function(b){this.clampPoint(b.center,a);return a.distanceToSquared(b.center)<=b.radius*b.radius}}(),intersectsPlane:function(a){if(0<a.normal.x){var b=a.normal.x*this.min.x;var c=a.normal.x*this.max.x}else b=a.normal.x*this.max.x,c=a.normal.x*this.min.x;0<a.normal.y?(b+=a.normal.y*this.min.y,c+=a.normal.y*this.max.y):(b+=a.normal.y*this.max.y,c+=
+a.normal.y*this.min.y);0<a.normal.z?(b+=a.normal.z*this.min.z,c+=a.normal.z*this.max.z):(b+=a.normal.z*this.max.z,c+=a.normal.z*this.min.z);return b<=a.constant&&c>=a.constant},intersectsTriangle:function(){function a(a){var e;var f=0;for(e=a.length-3;f<=e;f+=3){h.fromArray(a,f);var g=m.x*Math.abs(h.x)+m.y*Math.abs(h.y)+m.z*Math.abs(h.z),l=b.dot(h),k=c.dot(h),n=d.dot(h);if(Math.max(-Math.max(l,k,n),Math.min(l,k,n))>g)return!1}return!0}var b=new p,c=new p,d=new p,e=new p,f=new p,g=new p,h=new p,l=
+new p,m=new p,k=new p;return function(h){if(this.isEmpty())return!1;this.getCenter(l);m.subVectors(this.max,l);b.subVectors(h.a,l);c.subVectors(h.b,l);d.subVectors(h.c,l);e.subVectors(c,b);f.subVectors(d,c);g.subVectors(b,d);h=[0,-e.z,e.y,0,-f.z,f.y,0,-g.z,g.y,e.z,0,-e.x,f.z,0,-f.x,g.z,0,-g.x,-e.y,e.x,0,-f.y,f.x,0,-g.y,g.x,0];if(!a(h))return!1;h=[1,0,0,0,1,0,0,0,1];if(!a(h))return!1;k.crossVectors(e,f);h=[k.x,k.y,k.z];return a(h)}}(),clampPoint:function(a,b){void 0===b&&(console.warn("THREE.Box3: .clampPoint() target is now required"),
+b=new p);return b.copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var a=new p;return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),getBoundingSphere:function(){var a=new p;return function(b){void 0===b&&(console.warn("THREE.Box3: .getBoundingSphere() target is now required"),b=new Ga);this.getCenter(b.center);b.radius=.5*this.getSize(a).length();return b}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);this.isEmpty()&&this.makeEmpty();return this},
+union:function(a){this.min.min(a.min);this.max.max(a.max);return this},applyMatrix4:function(a){if(this.isEmpty())return this;a=a.elements;var b=a[0]*this.min.x,c=a[1]*this.min.x,d=a[2]*this.min.x,e=a[0]*this.max.x,f=a[1]*this.max.x,g=a[2]*this.max.x,h=a[4]*this.min.y,l=a[5]*this.min.y,m=a[6]*this.min.y,k=a[4]*this.max.y,n=a[5]*this.max.y,r=a[6]*this.max.y,q=a[8]*this.min.z,p=a[9]*this.min.z,u=a[10]*this.min.z,z=a[8]*this.max.z,x=a[9]*this.max.z,w=a[10]*this.max.z;this.min.x=Math.min(b,e)+Math.min(h,
+k)+Math.min(q,z)+a[12];this.min.y=Math.min(c,f)+Math.min(l,n)+Math.min(p,x)+a[13];this.min.z=Math.min(d,g)+Math.min(m,r)+Math.min(u,w)+a[14];this.max.x=Math.max(b,e)+Math.max(h,k)+Math.max(q,z)+a[12];this.max.y=Math.max(c,f)+Math.max(l,n)+Math.max(p,x)+a[13];this.max.z=Math.max(d,g)+Math.max(m,r)+Math.max(u,w)+a[14];return this},translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});Object.assign(Ga.prototype,
+{set:function(a,b){this.center.copy(a);this.radius=b;return this},setFromPoints:function(){var a=new Wa;return function(b,c){var d=this.center;void 0!==c?d.copy(c):a.setFromPoints(b).getCenter(d);for(var e=c=0,f=b.length;e<f;e++)c=Math.max(c,d.distanceToSquared(b[e]));this.radius=Math.sqrt(c);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.center.copy(a.center);this.radius=a.radius;return this},empty:function(){return 0>=this.radius},containsPoint:function(a){return a.distanceToSquared(this.center)<=
+this.radius*this.radius},distanceToPoint:function(a){return a.distanceTo(this.center)-this.radius},intersectsSphere:function(a){var b=this.radius+a.radius;return a.center.distanceToSquared(this.center)<=b*b},intersectsBox:function(a){return a.intersectsSphere(this)},intersectsPlane:function(a){return Math.abs(a.distanceToPoint(this.center))<=this.radius},clampPoint:function(a,b){var c=this.center.distanceToSquared(a);void 0===b&&(console.warn("THREE.Sphere: .clampPoint() target is now required"),
+b=new p);b.copy(a);c>this.radius*this.radius&&(b.sub(this.center).normalize(),b.multiplyScalar(this.radius).add(this.center));return b},getBoundingBox:function(a){void 0===a&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),a=new Wa);a.set(this.center,this.center);a.expandByScalar(this.radius);return a},applyMatrix4:function(a){this.center.applyMatrix4(a);this.radius*=a.getMaxScaleOnAxis();return this},translate:function(a){this.center.add(a);return this},equals:function(a){return a.center.equals(this.center)&&
+a.radius===this.radius}});Object.assign(Ha.prototype,{set:function(a,b){this.normal.copy(a);this.constant=b;return this},setComponents:function(a,b,c,d){this.normal.set(a,b,c);this.constant=d;return this},setFromNormalAndCoplanarPoint:function(a,b){this.normal.copy(a);this.constant=-b.dot(this.normal);return this},setFromCoplanarPoints:function(){var a=new p,b=new p;return function(c,d,e){d=a.subVectors(e,d).cross(b.subVectors(c,d)).normalize();this.setFromNormalAndCoplanarPoint(d,c);return this}}(),
+clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.normal.copy(a.normal);this.constant=a.constant;return this},normalize:function(){var a=1/this.normal.length();this.normal.multiplyScalar(a);this.constant*=a;return this},negate:function(){this.constant*=-1;this.normal.negate();return this},distanceToPoint:function(a){return this.normal.dot(a)+this.constant},distanceToSphere:function(a){return this.distanceToPoint(a.center)-a.radius},projectPoint:function(a,b){void 0===
+b&&(console.warn("THREE.Plane: .projectPoint() target is now required"),b=new p);return b.copy(this.normal).multiplyScalar(-this.distanceToPoint(a)).add(a)},intersectLine:function(){var a=new p;return function(b,c){void 0===c&&(console.warn("THREE.Plane: .intersectLine() target is now required"),c=new p);var d=b.delta(a),e=this.normal.dot(d);if(0===e){if(0===this.distanceToPoint(b.start))return c.copy(b.start)}else if(e=-(b.start.dot(this.normal)+this.constant)/e,!(0>e||1<e))return c.copy(d).multiplyScalar(e).add(b.start)}}(),
+intersectsLine:function(a){var b=this.distanceToPoint(a.start);a=this.distanceToPoint(a.end);return 0>b&&0<a||0>a&&0<b},intersectsBox:function(a){return a.intersectsPlane(this)},intersectsSphere:function(a){return a.intersectsPlane(this)},coplanarPoint:function(a){void 0===a&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),a=new p);return a.copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var a=new p,b=new ta;return function(c,d){d=d||b.getNormalMatrix(c);
+c=this.coplanarPoint(a).applyMatrix4(c);d=this.normal.applyMatrix3(d).normalize();this.constant=-c.dot(d);return this}}(),translate:function(a){this.constant-=a.dot(this.normal);return this},equals:function(a){return a.normal.equals(this.normal)&&a.constant===this.constant}});Object.assign(qd.prototype,{set:function(a,b,c,d,e,f){var g=this.planes;g[0].copy(a);g[1].copy(b);g[2].copy(c);g[3].copy(d);g[4].copy(e);g[5].copy(f);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){for(var b=
+this.planes,c=0;6>c;c++)b[c].copy(a.planes[c]);return this},setFromMatrix:function(a){var b=this.planes,c=a.elements;a=c[0];var d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],l=c[6],m=c[7],k=c[8],n=c[9],r=c[10],q=c[11],p=c[12],u=c[13],z=c[14];c=c[15];b[0].setComponents(f-a,m-g,q-k,c-p).normalize();b[1].setComponents(f+a,m+g,q+k,c+p).normalize();b[2].setComponents(f+d,m+h,q+n,c+u).normalize();b[3].setComponents(f-d,m-h,q-n,c-u).normalize();b[4].setComponents(f-e,m-l,q-r,c-z).normalize();b[5].setComponents(f+e,
+m+l,q+r,c+z).normalize();return this},intersectsObject:function(){var a=new Ga;return function(b){var c=b.geometry;null===c.boundingSphere&&c.computeBoundingSphere();a.copy(c.boundingSphere).applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSprite:function(){var a=new Ga;return function(b){a.center.set(0,0,0);a.radius=.7071067811865476;a.applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSphere:function(a){var b=this.planes,c=a.center;a=-a.radius;for(var d=
+0;6>d;d++)if(b[d].distanceToPoint(c)<a)return!1;return!0},intersectsBox:function(){var a=new p,b=new p;return function(c){for(var d=this.planes,e=0;6>e;e++){var f=d[e];a.x=0<f.normal.x?c.min.x:c.max.x;b.x=0<f.normal.x?c.max.x:c.min.x;a.y=0<f.normal.y?c.min.y:c.max.y;b.y=0<f.normal.y?c.max.y:c.min.y;a.z=0<f.normal.z?c.min.z:c.max.z;b.z=0<f.normal.z?c.max.z:c.min.z;var g=f.distanceToPoint(a);f=f.distanceToPoint(b);if(0>g&&0>f)return!1}return!0}}(),containsPoint:function(a){for(var b=this.planes,c=0;6>
+c;c++)if(0>b[c].distanceToPoint(a))return!1;return!0}});var W={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif\n",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif\n",alphatest_fragment:"#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif\n",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif\n",
+aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"\nvec3 transformed = vec3( position );\n",beginnormal_vertex:"\nvec3 objectNormal = vec3( normal );\n",bsdfs:"float punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\tif( decayExponent > 0.0 ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tfloat maxDistanceCutoffFactor = pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\treturn distanceFalloff * maxDistanceCutoffFactor;\n#else\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n#endif\n\t}\n\treturn 1.0;\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNL = saturate( dot( geometry.normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 AB = vec2( -1.04, 1.04 ) * a004 + r.zw;\n\treturn specularColor * AB.x + AB.y;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n",
+bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif\n",
+clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\tif ( clipped ) discard;\n\t#endif\n#endif\n",
+clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\t#if ! defined( PHYSICAL ) && ! defined( PHONG )\n\t\tvarying vec3 vViewPosition;\n\t#endif\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif\n",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\n\tvarying vec3 vViewPosition;\n#endif\n",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n",
+color_fragment:"#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif\n",color_pars_vertex:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_vertex:"#ifdef USE_COLOR\n\tvColor.xyz = color.xyz;\n#endif",common:"#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI_HALF 1.5707963267949\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#define whiteCompliment(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\n",
+cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_textureSize (1024.0)\nint getFaceFromDirection(vec3 direction) {\n\tvec3 absDirection = abs(direction);\n\tint face = -1;\n\tif( absDirection.x > absDirection.z ) {\n\t\tif(absDirection.x > absDirection.y )\n\t\t\tface = direction.x > 0.0 ? 0 : 3;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\telse {\n\t\tif(absDirection.z > absDirection.y )\n\t\t\tface = direction.z > 0.0 ? 2 : 5;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\treturn face;\n}\n#define cubeUV_maxLods1 (log2(cubeUV_textureSize*0.25) - 1.0)\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\n\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\n\tfloat dxRoughness = dFdx(roughness);\n\tfloat dyRoughness = dFdy(roughness);\n\tvec3 dx = dFdx( vec * scale * dxRoughness );\n\tvec3 dy = dFdy( vec * scale * dyRoughness );\n\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\n\td = clamp(d, 1.0, cubeUV_rangeClamp);\n\tfloat mipLevel = 0.5 * log2(d);\n\treturn vec2(floor(mipLevel), fract(mipLevel));\n}\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\n\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\n\tfloat a = 16.0 * cubeUV_rcpTextureSize;\n\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\n\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\n\tfloat powScale = exp2_packed.x * exp2_packed.y;\n\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\n\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\n\tbool bRes = mipLevel == 0.0;\n\tscale = bRes && (scale < a) ? a : scale;\n\tvec3 r;\n\tvec2 offset;\n\tint face = getFaceFromDirection(direction);\n\tfloat rcpPowScale = 1.0 / powScale;\n\tif( face == 0) {\n\t\tr = vec3(direction.x, -direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 1) {\n\t\tr = vec3(direction.y, direction.x, direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 2) {\n\t\tr = vec3(direction.z, direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 3) {\n\t\tr = vec3(direction.x, direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse if( face == 4) {\n\t\tr = vec3(direction.y, direction.x, -direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse {\n\t\tr = vec3(direction.z, -direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\tr = normalize(r);\n\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\n\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\n\tvec2 base = offset + vec2( texelOffset );\n\treturn base + s * ( scale - 2.0 * texelOffset );\n}\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\nvec4 textureCubeUV(vec3 reflectedDirection, float roughness ) {\n\tfloat roughnessVal = roughness* cubeUV_maxLods3;\n\tfloat r1 = floor(roughnessVal);\n\tfloat r2 = r1 + 1.0;\n\tfloat t = fract(roughnessVal);\n\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\n\tfloat s = mipInfo.y;\n\tfloat level0 = mipInfo.x;\n\tfloat level1 = level0 + 1.0;\n\tlevel1 = level1 > 5.0 ? 5.0 : level1;\n\tlevel0 += min( floor( s + 0.5 ), 5.0 );\n\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\n\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\n\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\n\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\n\tvec4 result = mix(color10, color20, t);\n\treturn vec4(result.rgb, 1.0);\n}\n#endif\n",
+defaultnormal_vertex:"vec3 transformedNormal = normalMatrix * objectNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif\n",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\n#endif\n",
+emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif\n",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif\n",encodings_fragment:" gl_FragColor = linearToOutputTexel( gl_FragColor );\n",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.xyz * value.w * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = min( floor( D ) / 255.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = value.rgb * cLogLuvM;\n\tXp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract(Le);\n\tvResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = Xp_Y_XYZp.rgb * cLogLuvInverseM;\n\treturn vec4( max(vRGB, 0.0), 1.0 );\n}\n",
+envmap_fragment:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\treflectVec = normalize( reflectVec );\n\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\treflectVec = normalize( reflectVec );\n\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\n\t\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\tenvColor = envMapTexelToLinear( envColor );\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif\n",
+envmap_pars_fragment:"#if defined( USE_ENVMAP ) || defined( PHYSICAL )\n\tuniform float reflectivity;\n\tuniform float envMapIntensity;\n#endif\n#ifdef USE_ENVMAP\n\t#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )\n\t\tvarying vec3 vWorldPosition;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif\n",
+envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif\n",envmap_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif\n",
+fog_vertex:"\n#ifdef USE_FOG\nfogDepth = -mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n varying float fogDepth;\n#endif\n",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 ) );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif\n",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif\n",
+gradientmap_pars_fragment:"#ifdef TOON\n\tuniform sampler2D gradientMap;\n\tvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\t\tfloat dotNL = dot( normal, lightDirection );\n\t\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t\t#ifdef USE_GRADIENTMAP\n\t\t\treturn texture2D( gradientMap, coord ).rgb;\n\t\t#else\n\t\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t\t#endif\n\t}\n#endif\n",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n#endif\n",
+lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n#endif\n",
+lights_pars_begin:"uniform vec3 ambientLightColor;\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t\tfloat shadowCameraNear;\n\t\tfloat shadowCameraFar;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t\tint shadow;\n\t\tfloat shadowBias;\n\t\tfloat shadowRadius;\n\t\tvec2 shadowMapSize;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif\n",
+lights_pars_maps:"#if defined( USE_ENVMAP ) && defined( PHYSICAL )\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\tvec4 envMapColor = textureCubeUV( queryVec, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + 0.79248 - 0.5 * log2( pow2( blinnShininessExponent ) + 1.0 );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in GeometricContext geometry, const in float blinnShininessExponent, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -geometry.viewDir, geometry.normal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -geometry.viewDir, geometry.normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\tvec4 envMapColor = textureCubeUV(queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent));\n\t\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\t\tvec2 sampleUV;\n\t\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif\n",
+lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;\n",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifdef TOON\n\t\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#else\n\t\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\t\tvec3 irradiance = dotNL * directLight.color;\n\t#endif\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)\n",
+lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\n#ifdef STANDARD\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.clearCoat = saturate( clearCoat );\tmaterial.clearCoatRoughness = clamp( clearCoatRoughness, 0.04, 1.0 );\n#endif\n",
+lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3\tdiffuseColor;\n\tfloat\tspecularRoughness;\n\tvec3\tspecularColor;\n\t#ifndef STANDARD\n\t\tfloat clearCoat;\n\t\tfloat clearCoatRoughness;\n\t#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearCoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos - halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos + halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos + halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos - halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifndef STANDARD\n\t\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR = 0.0;\n\t#endif\n\treflectedLight.directSpecular += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\n\treflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\t#ifndef STANDARD\n\t\treflectedLight.directSpecular += irradiance * material.clearCoat * BRDF_Specular_GGX( directLight, geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 clearCoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t#ifndef STANDARD\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\tfloat dotNL = dotNV;\n\t\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\n\t#else\n\t\tfloat clearCoatDHR = 0.0;\n\t#endif\n\treflectedLight.indirectSpecular += ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\n\t#ifndef STANDARD\n\t\treflectedLight.indirectSpecular += clearCoatRadiance * material.clearCoat * BRDF_Specular_GGX_Environment( geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\n\t#endif\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\n#define Material_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.specularRoughness )\n#define Material_ClearCoat_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.clearCoatRoughness )\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}\n",
+lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize( vViewPosition );\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearCoatRadiance = vec3( 0.0 );\n#endif\n",
+lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tirradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), maxMipLevel );\n\t#ifndef STANDARD\n\t\tclearCoatRadiance += getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), maxMipLevel );\n\t#endif\n#endif\n",
+lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );\n#endif\n",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#ifdef USE_LOGDEPTHBUF\n\tuniform float logDepthBufFC;\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n#endif\n",
+logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n\tuniform float logDepthBufFC;\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t#else\n\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\tgl_Position.z *= gl_Position.w;\n\t#endif\n#endif\n",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif\n",
+map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n",map_particle_fragment:"#ifdef USE_MAP\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n",map_particle_pars_fragment:"#ifdef USE_MAP\n\tuniform mat3 uvTransform;\n\tuniform sampler2D map;\n#endif\n",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif\n",
+metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n\tobjectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n#endif\n",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",
+morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\t#endif\n#endif\n",
+normal_fragment_begin:"#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n#endif\n",normal_fragment_maps:"#ifdef USE_NORMALMAP\n\t#ifdef OBJECTSPACE_NORMALMAP\n\t\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\t#ifdef FLIP_SIDED\n\t\t\tnormal = - normal;\n\t\t#endif\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t\tnormal = normalize( normalMatrix * normal );\n\t#else\n\t\tnormal = perturbNormal2Arb( -vViewPosition, normal );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif\n",
+normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n\t#ifdef OBJECTSPACE_NORMALMAP\n\t\tuniform mat3 normalMatrix;\n\t#else\n\t\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\t\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\t\tvec2 st0 = dFdx( vUv.st );\n\t\t\tvec2 st1 = dFdy( vUv.st );\n\t\t\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\n\t\t\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\n\t\t\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\n\t\t\tvec3 N = normalize( surf_norm );\n\t\t\tmat3 tsn = mat3( S, T, N );\n\t\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\t\tmapN.xy *= normalScale;\n\t\t\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\treturn normalize( tsn * mapN );\n\t\t}\n\t#endif\n#endif\n",
+packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}\n",
+premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif\n",project_vertex:"vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\ngl_Position = projectionMatrix * mvPosition;\n",dithering_fragment:"#if defined( DITHERING )\n gl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif\n",dithering_pars_fragment:"#if defined( DITHERING )\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif\n",
+roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif\n",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\n\t\tconst vec2 offset = vec2( 0.0, 1.0 );\n\t\tvec2 texelSize = vec2( 1.0 ) / size;\n\t\tvec2 centroidUV = floor( uv * size + 0.5 ) / size;\n\t\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\n\t\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\n\t\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\n\t\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\n\t\tvec2 f = fract( uv * size + 0.5 );\n\t\tfloat a = mix( lb, lt, f.y );\n\t\tfloat b = mix( rb, rt, f.y );\n\t\tfloat c = mix( a, b, f.x );\n\t\treturn c;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tshadow = (\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif\n",
+shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHTS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHTS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHTS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\n\t#endif\n#endif\n",
+shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\n\t}\n\t#endif\n#endif\n",
+shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHTS > 0\n\tDirectionalLight directionalLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tshadow *= bool( directionalLight.shadow ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_SPOT_LIGHTS > 0\n\tSpotLight spotLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tshadow *= bool( spotLight.shadow ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#endif\n\t#if NUM_POINT_LIGHTS > 0\n\tPointLight pointLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tshadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#endif\n\t#endif\n\treturn shadow;\n}\n",
+skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif\n",
+skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif\n",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n#endif\n",
+specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif\n",tonemapping_pars_fragment:"#ifndef saturate\n\t#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\nvec3 Uncharted2ToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\n",
+uv_pars_fragment:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\n",
+uv_vertex:"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n#endif",
+uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = uv2;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n#endif\n",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldPosition;\nvoid main() {\n\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\n\tgl_FragColor.a *= opacity;\n}\n",
+cube_vert:"varying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}\n",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <logdepthbuf_fragment>\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - gl_FragCoord.z ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\n\t#endif\n}\n",
+depth_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n}\n",
+distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}\n",
+distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}\n",
+equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldPosition );\n\tvec2 sampleUV;\n\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n}\n",equirect_vert:"varying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}\n",
+linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}\n",
+linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\tvLineDistance = scale * lineDistance;\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}\n",
+meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\treflectedLight.indirectDiffuse += texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}\n",
+meshbasic_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_ENVMAP\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}\n",
+meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <emissivemap_fragment>\n\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\n\t#include <lightmap_fragment>\n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n",
+meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <lights_lambert_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",
+meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n",
+meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",
+meshphysical_frag:"#define PHYSICAL\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifndef STANDARD\n\tuniform float clearCoat;\n\tuniform float clearCoatRoughness;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <lights_pars_begin>\n#include <lights_pars_maps>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n",
+meshphysical_vert:"#define PHYSICAL\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",
+normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) && ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\nvoid main() {\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}\n",
+normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) && ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || ( defined( USE_NORMALMAP ) && ! defined( OBJECTSPACE_NORMALMAP ) )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}\n",
+points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <premultiplied_alpha_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}\n",
+points_vert:"uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#ifdef USE_SIZEATTENUATION\n\t\tgl_PointSize = size * ( scale / - mvPosition.z );\n\t#else\n\t\tgl_PointSize = size;\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}\n",
+shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <fog_fragment>\n}\n",shadow_vert:"#include <fog_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n"},
+Ca={merge:function(a){for(var b={},c=0;c<a.length;c++){var d=this.clone(a[c]),e;for(e in d)b[e]=d[e]}return b},clone:function(a){var b={},c;for(c in a){b[c]={};for(var d in a[c]){var e=a[c][d];e&&(e.isColor||e.isMatrix3||e.isMatrix4||e.isVector2||e.isVector3||e.isVector4||e.isTexture)?b[c][d]=e.clone():Array.isArray(e)?b[c][d]=e.slice():b[c][d]=e}}return b}},Rg={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,
+blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,
+darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,
+lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,
+mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,
+rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Object.assign(K.prototype,
+{isColor:!0,r:1,g:1,b:1,set:function(a){a&&a.isColor?this.copy(a):"number"===typeof a?this.setHex(a):"string"===typeof a&&this.setStyle(a);return this},setScalar:function(a){this.b=this.g=this.r=a;return this},setHex:function(a){a=Math.floor(a);this.r=(a>>16&255)/255;this.g=(a>>8&255)/255;this.b=(a&255)/255;return this},setRGB:function(a,b,c){this.r=a;this.g=b;this.b=c;return this},setHSL:function(){function a(a,c,d){0>d&&(d+=1);1<d&&--d;return d<1/6?a+6*(c-a)*d:.5>d?c:d<2/3?a+6*(c-a)*(2/3-d):a}return function(b,
+c,d){b=P.euclideanModulo(b,1);c=P.clamp(c,0,1);d=P.clamp(d,0,1);0===c?this.r=this.g=this.b=d:(c=.5>=d?d*(1+c):d+c-d*c,d=2*d-c,this.r=a(d,c,b+1/3),this.g=a(d,c,b),this.b=a(d,c,b-1/3));return this}}(),setStyle:function(a){function b(b){void 0!==b&&1>parseFloat(b)&&console.warn("THREE.Color: Alpha component of "+a+" will be ignored.")}var c;if(c=/^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(a)){var d=c[2];switch(c[1]){case "rgb":case "rgba":if(c=/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(d))return this.r=
+Math.min(255,parseInt(c[1],10))/255,this.g=Math.min(255,parseInt(c[2],10))/255,this.b=Math.min(255,parseInt(c[3],10))/255,b(c[5]),this;if(c=/^(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(d))return this.r=Math.min(100,parseInt(c[1],10))/100,this.g=Math.min(100,parseInt(c[2],10))/100,this.b=Math.min(100,parseInt(c[3],10))/100,b(c[5]),this;break;case "hsl":case "hsla":if(c=/^([0-9]*\.?[0-9]+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(d)){d=parseFloat(c[1])/
+360;var e=parseInt(c[2],10)/100,f=parseInt(c[3],10)/100;b(c[5]);return this.setHSL(d,e,f)}}}else if(c=/^#([A-Fa-f0-9]+)$/.exec(a)){c=c[1];d=c.length;if(3===d)return this.r=parseInt(c.charAt(0)+c.charAt(0),16)/255,this.g=parseInt(c.charAt(1)+c.charAt(1),16)/255,this.b=parseInt(c.charAt(2)+c.charAt(2),16)/255,this;if(6===d)return this.r=parseInt(c.charAt(0)+c.charAt(1),16)/255,this.g=parseInt(c.charAt(2)+c.charAt(3),16)/255,this.b=parseInt(c.charAt(4)+c.charAt(5),16)/255,this}a&&0<a.length&&(c=Rg[a],
+void 0!==c?this.setHex(c):console.warn("THREE.Color: Unknown color "+a));return this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(a){this.r=a.r;this.g=a.g;this.b=a.b;return this},copyGammaToLinear:function(a,b){void 0===b&&(b=2);this.r=Math.pow(a.r,b);this.g=Math.pow(a.g,b);this.b=Math.pow(a.b,b);return this},copyLinearToGamma:function(a,b){void 0===b&&(b=2);b=0<b?1/b:1;this.r=Math.pow(a.r,b);this.g=Math.pow(a.g,b);this.b=Math.pow(a.b,b);return this},convertGammaToLinear:function(a){this.copyGammaToLinear(this,
+a);return this},convertLinearToGamma:function(a){this.copyLinearToGamma(this,a);return this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return("000000"+this.getHex().toString(16)).slice(-6)},getHSL:function(a){void 0===a&&(console.warn("THREE.Color: .getHSL() target is now required"),a={h:0,s:0,l:0});var b=this.r,c=this.g,d=this.b,e=Math.max(b,c,d),f=Math.min(b,c,d),g,h=(f+e)/2;if(f===e)f=g=0;else{var l=e-f;f=.5>=h?l/(e+f):l/(2-e-f);switch(e){case b:g=
+(c-d)/l+(c<d?6:0);break;case c:g=(d-b)/l+2;break;case d:g=(b-c)/l+4}g/=6}a.h=g;a.s=f;a.l=h;return a},getStyle:function(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"},offsetHSL:function(){var a={};return function(b,c,d){this.getHSL(a);a.h+=b;a.s+=c;a.l+=d;this.setHSL(a.h,a.s,a.l);return this}}(),add:function(a){this.r+=a.r;this.g+=a.g;this.b+=a.b;return this},addColors:function(a,b){this.r=a.r+b.r;this.g=a.g+b.g;this.b=a.b+b.b;return this},addScalar:function(a){this.r+=a;
+this.g+=a;this.b+=a;return this},sub:function(a){this.r=Math.max(0,this.r-a.r);this.g=Math.max(0,this.g-a.g);this.b=Math.max(0,this.b-a.b);return this},multiply:function(a){this.r*=a.r;this.g*=a.g;this.b*=a.b;return this},multiplyScalar:function(a){this.r*=a;this.g*=a;this.b*=a;return this},lerp:function(a,b){this.r+=(a.r-this.r)*b;this.g+=(a.g-this.g)*b;this.b+=(a.b-this.b)*b;return this},equals:function(a){return a.r===this.r&&a.g===this.g&&a.b===this.b},fromArray:function(a,b){void 0===b&&(b=0);
+this.r=a[b];this.g=a[b+1];this.b=a[b+2];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.r;a[b+1]=this.g;a[b+2]=this.b;return a},toJSON:function(){return this.getHex()}});var M={common:{diffuse:{value:new K(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new ta},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},
+aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new y(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:2.5E-4},fogNear:{value:1},
+fogFar:{value:2E3},fogColor:{value:new K(16777215)}},lights:{ambientLightColor:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},
+pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}}},points:{diffuse:{value:new K(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},uvTransform:{value:new ta}}},
+tb={basic:{uniforms:Ca.merge([M.common,M.specularmap,M.envmap,M.aomap,M.lightmap,M.fog]),vertexShader:W.meshbasic_vert,fragmentShader:W.meshbasic_frag},lambert:{uniforms:Ca.merge([M.common,M.specularmap,M.envmap,M.aomap,M.lightmap,M.emissivemap,M.fog,M.lights,{emissive:{value:new K(0)}}]),vertexShader:W.meshlambert_vert,fragmentShader:W.meshlambert_frag},phong:{uniforms:Ca.merge([M.common,M.specularmap,M.envmap,M.aomap,M.lightmap,M.emissivemap,M.bumpmap,M.normalmap,M.displacementmap,M.gradientmap,
+M.fog,M.lights,{emissive:{value:new K(0)},specular:{value:new K(1118481)},shininess:{value:30}}]),vertexShader:W.meshphong_vert,fragmentShader:W.meshphong_frag},standard:{uniforms:Ca.merge([M.common,M.envmap,M.aomap,M.lightmap,M.emissivemap,M.bumpmap,M.normalmap,M.displacementmap,M.roughnessmap,M.metalnessmap,M.fog,M.lights,{emissive:{value:new K(0)},roughness:{value:.5},metalness:{value:.5},envMapIntensity:{value:1}}]),vertexShader:W.meshphysical_vert,fragmentShader:W.meshphysical_frag},points:{uniforms:Ca.merge([M.points,
+M.fog]),vertexShader:W.points_vert,fragmentShader:W.points_frag},dashed:{uniforms:Ca.merge([M.common,M.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:W.linedashed_vert,fragmentShader:W.linedashed_frag},depth:{uniforms:Ca.merge([M.common,M.displacementmap]),vertexShader:W.depth_vert,fragmentShader:W.depth_frag},normal:{uniforms:Ca.merge([M.common,M.bumpmap,M.normalmap,M.displacementmap,{opacity:{value:1}}]),vertexShader:W.normal_vert,fragmentShader:W.normal_frag},cube:{uniforms:{tCube:{value:null},
+tFlip:{value:-1},opacity:{value:1}},vertexShader:W.cube_vert,fragmentShader:W.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:W.equirect_vert,fragmentShader:W.equirect_frag},distanceRGBA:{uniforms:Ca.merge([M.common,M.displacementmap,{referencePosition:{value:new p},nearDistance:{value:1},farDistance:{value:1E3}}]),vertexShader:W.distanceRGBA_vert,fragmentShader:W.distanceRGBA_frag},shadow:{uniforms:Ca.merge([M.lights,M.fog,{color:{value:new K(0)},opacity:{value:1}}]),vertexShader:W.shadow_vert,
+fragmentShader:W.shadow_frag}};tb.physical={uniforms:Ca.merge([tb.standard.uniforms,{clearCoat:{value:0},clearCoatRoughness:{value:0}}]),vertexShader:W.meshphysical_vert,fragmentShader:W.meshphysical_frag};mb.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" ");mb.DefaultOrder="XYZ";Object.defineProperties(mb.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this.onChangeCallback()}},y:{get:function(){return this._y},set:function(a){this._y=a;this.onChangeCallback()}},z:{get:function(){return this._z},
+set:function(a){this._z=a;this.onChangeCallback()}},order:{get:function(){return this._order},set:function(a){this._order=a;this.onChangeCallback()}}});Object.assign(mb.prototype,{isEuler:!0,set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._order=d||this._order;this.onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(a){this._x=a._x;this._y=a._y;this._z=a._z;this._order=a._order;this.onChangeCallback();return this},
+setFromRotationMatrix:function(a,b,c){var d=P.clamp,e=a.elements;a=e[0];var f=e[4],g=e[8],h=e[1],l=e[5],m=e[9],k=e[2],n=e[6];e=e[10];b=b||this._order;"XYZ"===b?(this._y=Math.asin(d(g,-1,1)),.99999>Math.abs(g)?(this._x=Math.atan2(-m,e),this._z=Math.atan2(-f,a)):(this._x=Math.atan2(n,l),this._z=0)):"YXZ"===b?(this._x=Math.asin(-d(m,-1,1)),.99999>Math.abs(m)?(this._y=Math.atan2(g,e),this._z=Math.atan2(h,l)):(this._y=Math.atan2(-k,a),this._z=0)):"ZXY"===b?(this._x=Math.asin(d(n,-1,1)),.99999>Math.abs(n)?
+(this._y=Math.atan2(-k,e),this._z=Math.atan2(-f,l)):(this._y=0,this._z=Math.atan2(h,a))):"ZYX"===b?(this._y=Math.asin(-d(k,-1,1)),.99999>Math.abs(k)?(this._x=Math.atan2(n,e),this._z=Math.atan2(h,a)):(this._x=0,this._z=Math.atan2(-f,l))):"YZX"===b?(this._z=Math.asin(d(h,-1,1)),.99999>Math.abs(h)?(this._x=Math.atan2(-m,l),this._y=Math.atan2(-k,a)):(this._x=0,this._y=Math.atan2(g,e))):"XZY"===b?(this._z=Math.asin(-d(f,-1,1)),.99999>Math.abs(f)?(this._x=Math.atan2(n,l),this._y=Math.atan2(g,a)):(this._x=
+Math.atan2(-m,e),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+b);this._order=b;if(!1!==c)this.onChangeCallback();return this},setFromQuaternion:function(){var a=new F;return function(b,c,d){a.makeRotationFromQuaternion(b);return this.setFromRotationMatrix(a,c,d)}}(),setFromVector3:function(a,b){return this.set(a.x,a.y,a.z,b||this._order)},reorder:function(){var a=new ea;return function(b){a.setFromEuler(this);return this.setFromQuaternion(a,b)}}(),equals:function(a){return a._x===
+this._x&&a._y===this._y&&a._z===this._z&&a._order===this._order},fromArray:function(a){this._x=a[0];this._y=a[1];this._z=a[2];void 0!==a[3]&&(this._order=a[3]);this.onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this._x;a[b+1]=this._y;a[b+2]=this._z;a[b+3]=this._order;return a},toVector3:function(a){return a?a.set(this._x,this._y,this._z):new p(this._x,this._y,this._z)},onChange:function(a){this.onChangeCallback=a;return this},onChangeCallback:function(){}});
+Object.assign(Ud.prototype,{set:function(a){this.mask=1<<a|0},enable:function(a){this.mask=this.mask|1<<a|0},toggle:function(a){this.mask^=1<<a|0},disable:function(a){this.mask&=~(1<<a|0)},test:function(a){return 0!==(this.mask&a.mask)}});var Ff=0;B.DefaultUp=new p(0,1,0);B.DefaultMatrixAutoUpdate=!0;B.prototype=Object.assign(Object.create(ha.prototype),{constructor:B,isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix:function(a){this.matrix.multiplyMatrices(a,this.matrix);
+this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(a){this.quaternion.premultiply(a);return this},setRotationFromAxisAngle:function(a,b){this.quaternion.setFromAxisAngle(a,b)},setRotationFromEuler:function(a){this.quaternion.setFromEuler(a,!0)},setRotationFromMatrix:function(a){this.quaternion.setFromRotationMatrix(a)},setRotationFromQuaternion:function(a){this.quaternion.copy(a)},rotateOnAxis:function(){var a=new ea;return function(b,c){a.setFromAxisAngle(b,
+c);this.quaternion.multiply(a);return this}}(),rotateOnWorldAxis:function(){var a=new ea;return function(b,c){a.setFromAxisAngle(b,c);this.quaternion.premultiply(a);return this}}(),rotateX:function(){var a=new p(1,0,0);return function(b){return this.rotateOnAxis(a,b)}}(),rotateY:function(){var a=new p(0,1,0);return function(b){return this.rotateOnAxis(a,b)}}(),rotateZ:function(){var a=new p(0,0,1);return function(b){return this.rotateOnAxis(a,b)}}(),translateOnAxis:function(){var a=new p;return function(b,
+c){a.copy(b).applyQuaternion(this.quaternion);this.position.add(a.multiplyScalar(c));return this}}(),translateX:function(){var a=new p(1,0,0);return function(b){return this.translateOnAxis(a,b)}}(),translateY:function(){var a=new p(0,1,0);return function(b){return this.translateOnAxis(a,b)}}(),translateZ:function(){var a=new p(0,0,1);return function(b){return this.translateOnAxis(a,b)}}(),localToWorld:function(a){return a.applyMatrix4(this.matrixWorld)},worldToLocal:function(){var a=new F;return function(b){return b.applyMatrix4(a.getInverse(this.matrixWorld))}}(),
+lookAt:function(){var a=new F,b=new p;return function(c,d,e){c.isVector3?b.copy(c):b.set(c,d,e);this.isCamera?a.lookAt(this.position,b,this.up):a.lookAt(b,this.position,this.up);this.quaternion.setFromRotationMatrix(a)}}(),add:function(a){if(1<arguments.length){for(var b=0;b<arguments.length;b++)this.add(arguments[b]);return this}if(a===this)return console.error("THREE.Object3D.add: object can't be added as a child of itself.",a),this;a&&a.isObject3D?(null!==a.parent&&a.parent.remove(a),a.parent=
+this,a.dispatchEvent({type:"added"}),this.children.push(a)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",a);return this},remove:function(a){if(1<arguments.length){for(var b=0;b<arguments.length;b++)this.remove(arguments[b]);return this}b=this.children.indexOf(a);-1!==b&&(a.parent=null,a.dispatchEvent({type:"removed"}),this.children.splice(b,1));return this},getObjectById:function(a){return this.getObjectByProperty("id",a)},getObjectByName:function(a){return this.getObjectByProperty("name",
+a)},getObjectByProperty:function(a,b){if(this[a]===b)return this;for(var c=0,d=this.children.length;c<d;c++){var e=this.children[c].getObjectByProperty(a,b);if(void 0!==e)return e}},getWorldPosition:function(a){void 0===a&&(console.warn("THREE.Object3D: .getWorldPosition() target is now required"),a=new p);this.updateMatrixWorld(!0);return a.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(){var a=new p,b=new p;return function(c){void 0===c&&(console.warn("THREE.Object3D: .getWorldQuaternion() target is now required"),
+c=new ea);this.updateMatrixWorld(!0);this.matrixWorld.decompose(a,c,b);return c}}(),getWorldScale:function(){var a=new p,b=new ea;return function(c){void 0===c&&(console.warn("THREE.Object3D: .getWorldScale() target is now required"),c=new p);this.updateMatrixWorld(!0);this.matrixWorld.decompose(a,b,c);return c}}(),getWorldDirection:function(){var a=new ea;return function(b){void 0===b&&(console.warn("THREE.Object3D: .getWorldDirection() target is now required"),b=new p);this.getWorldQuaternion(a);
+return b.set(0,0,1).applyQuaternion(a)}}(),raycast:function(){},traverse:function(a){a(this);for(var b=this.children,c=0,d=b.length;c<d;c++)b[c].traverse(a)},traverseVisible:function(a){if(!1!==this.visible){a(this);for(var b=this.children,c=0,d=b.length;c<d;c++)b[c].traverseVisible(a)}},traverseAncestors:function(a){var b=this.parent;null!==b&&(a(b),b.traverseAncestors(a))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale);this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(a){this.matrixAutoUpdate&&
+this.updateMatrix();if(this.matrixWorldNeedsUpdate||a)null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,a=!0;for(var b=this.children,c=0,d=b.length;c<d;c++)b[c].updateMatrixWorld(a)},toJSON:function(a){function b(b,c){void 0===b[c.uuid]&&(b[c.uuid]=c.toJSON(a));return c.uuid}function c(a){var b=[],c;for(c in a){var d=a[c];delete d.metadata;b.push(d)}return b}var d=void 0===a||"string"===typeof a,
+e={};d&&(a={geometries:{},materials:{},textures:{},images:{},shapes:{}},e.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});var f={};f.uuid=this.uuid;f.type=this.type;""!==this.name&&(f.name=this.name);!0===this.castShadow&&(f.castShadow=!0);!0===this.receiveShadow&&(f.receiveShadow=!0);!1===this.visible&&(f.visible=!1);!1===this.frustumCulled&&(f.frustumCulled=!1);0!==this.renderOrder&&(f.renderOrder=this.renderOrder);"{}"!==JSON.stringify(this.userData)&&(f.userData=this.userData);
+f.layers=this.layers.mask;f.matrix=this.matrix.toArray();!1===this.matrixAutoUpdate&&(f.matrixAutoUpdate=!1);if(void 0!==this.geometry){f.geometry=b(a.geometries,this.geometry);var g=this.geometry.parameters;if(void 0!==g&&void 0!==g.shapes)if(g=g.shapes,Array.isArray(g))for(var h=0,l=g.length;h<l;h++)b(a.shapes,g[h]);else b(a.shapes,g)}if(void 0!==this.material)if(Array.isArray(this.material)){g=[];h=0;for(l=this.material.length;h<l;h++)g.push(b(a.materials,this.material[h]));f.material=g}else f.material=
+b(a.materials,this.material);if(0<this.children.length)for(f.children=[],h=0;h<this.children.length;h++)f.children.push(this.children[h].toJSON(a).object);if(d){d=c(a.geometries);h=c(a.materials);l=c(a.textures);var m=c(a.images);g=c(a.shapes);0<d.length&&(e.geometries=d);0<h.length&&(e.materials=h);0<l.length&&(e.textures=l);0<m.length&&(e.images=m);0<g.length&&(e.shapes=g)}e.object=f;return e},clone:function(a){return(new this.constructor).copy(this,a)},copy:function(a,b){void 0===b&&(b=!0);this.name=
+a.name;this.up.copy(a.up);this.position.copy(a.position);this.quaternion.copy(a.quaternion);this.scale.copy(a.scale);this.matrix.copy(a.matrix);this.matrixWorld.copy(a.matrixWorld);this.matrixAutoUpdate=a.matrixAutoUpdate;this.matrixWorldNeedsUpdate=a.matrixWorldNeedsUpdate;this.layers.mask=a.layers.mask;this.visible=a.visible;this.castShadow=a.castShadow;this.receiveShadow=a.receiveShadow;this.frustumCulled=a.frustumCulled;this.renderOrder=a.renderOrder;this.userData=JSON.parse(JSON.stringify(a.userData));
+if(!0===b)for(b=0;b<a.children.length;b++)this.add(a.children[b].clone());return this}});Qa.prototype=Object.assign(Object.create(B.prototype),{constructor:Qa,isCamera:!0,copy:function(a,b){B.prototype.copy.call(this,a,b);this.matrixWorldInverse.copy(a.matrixWorldInverse);this.projectionMatrix.copy(a.projectionMatrix);return this},getWorldDirection:function(){var a=new ea;return function(b){void 0===b&&(console.warn("THREE.Camera: .getWorldDirection() target is now required"),b=new p);this.getWorldQuaternion(a);
+return b.set(0,0,-1).applyQuaternion(a)}}(),updateMatrixWorld:function(a){B.prototype.updateMatrixWorld.call(this,a);this.matrixWorldInverse.getInverse(this.matrixWorld)},clone:function(){return(new this.constructor).copy(this)}});Mb.prototype=Object.assign(Object.create(Qa.prototype),{constructor:Mb,isOrthographicCamera:!0,copy:function(a,b){Qa.prototype.copy.call(this,a,b);this.left=a.left;this.right=a.right;this.top=a.top;this.bottom=a.bottom;this.near=a.near;this.far=a.far;this.zoom=a.zoom;this.view=
+null===a.view?null:Object.assign({},a.view);return this},setViewOffset:function(a,b,c,d,e,f){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=!0;this.view.fullWidth=a;this.view.fullHeight=b;this.view.offsetX=c;this.view.offsetY=d;this.view.width=e;this.view.height=f;this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1);this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=
+(this.right-this.left)/(2*this.zoom),b=(this.top-this.bottom)/(2*this.zoom),c=(this.right+this.left)/2,d=(this.top+this.bottom)/2,e=c-a;c+=a;a=d+b;b=d-b;if(null!==this.view&&this.view.enabled){c=this.zoom/(this.view.width/this.view.fullWidth);b=this.zoom/(this.view.height/this.view.fullHeight);var f=(this.right-this.left)/this.view.width;d=(this.top-this.bottom)/this.view.height;e+=this.view.offsetX/c*f;c=e+this.view.width/c*f;a-=this.view.offsetY/b*d;b=a-this.view.height/b*d}this.projectionMatrix.makeOrthographic(e,
+c,a,b,this.near,this.far)},toJSON:function(a){a=B.prototype.toJSON.call(this,a);a.object.zoom=this.zoom;a.object.left=this.left;a.object.right=this.right;a.object.top=this.top;a.object.bottom=this.bottom;a.object.near=this.near;a.object.far=this.far;null!==this.view&&(a.object.view=Object.assign({},this.view));return a}});Object.assign(Xa.prototype,{clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a=a.a;this.b=a.b;this.c=a.c;this.normal.copy(a.normal);this.color.copy(a.color);
+this.materialIndex=a.materialIndex;for(var b=0,c=a.vertexNormals.length;b<c;b++)this.vertexNormals[b]=a.vertexNormals[b].clone();b=0;for(c=a.vertexColors.length;b<c;b++)this.vertexColors[b]=a.vertexColors[b].clone();return this}});var Gf=0;J.prototype=Object.assign(Object.create(ha.prototype),{constructor:J,isGeometry:!0,applyMatrix:function(a){for(var b=(new ta).getNormalMatrix(a),c=0,d=this.vertices.length;c<d;c++)this.vertices[c].applyMatrix4(a);c=0;for(d=this.faces.length;c<d;c++){a=this.faces[c];
+a.normal.applyMatrix3(b).normalize();for(var e=0,f=a.vertexNormals.length;e<f;e++)a.vertexNormals[e].applyMatrix3(b).normalize()}null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();this.normalsNeedUpdate=this.verticesNeedUpdate=!0;return this},rotateX:function(){var a=new F;return function(b){a.makeRotationX(b);this.applyMatrix(a);return this}}(),rotateY:function(){var a=new F;return function(b){a.makeRotationY(b);this.applyMatrix(a);return this}}(),
+rotateZ:function(){var a=new F;return function(b){a.makeRotationZ(b);this.applyMatrix(a);return this}}(),translate:function(){var a=new F;return function(b,c,d){a.makeTranslation(b,c,d);this.applyMatrix(a);return this}}(),scale:function(){var a=new F;return function(b,c,d){a.makeScale(b,c,d);this.applyMatrix(a);return this}}(),lookAt:function(){var a=new B;return function(b){a.lookAt(b);a.updateMatrix();this.applyMatrix(a.matrix)}}(),fromBufferGeometry:function(a){function b(a,b,d,e){var f=void 0!==
+g?[k[a].clone(),k[b].clone(),k[d].clone()]:[],q=void 0!==h?[c.colors[a].clone(),c.colors[b].clone(),c.colors[d].clone()]:[];e=new Xa(a,b,d,f,q,e);c.faces.push(e);void 0!==l&&c.faceVertexUvs[0].push([n[a].clone(),n[b].clone(),n[d].clone()]);void 0!==m&&c.faceVertexUvs[1].push([r[a].clone(),r[b].clone(),r[d].clone()])}var c=this,d=null!==a.index?a.index.array:void 0,e=a.attributes,f=e.position.array,g=void 0!==e.normal?e.normal.array:void 0,h=void 0!==e.color?e.color.array:void 0,l=void 0!==e.uv?e.uv.array:
+void 0,m=void 0!==e.uv2?e.uv2.array:void 0;void 0!==m&&(this.faceVertexUvs[1]=[]);for(var k=[],n=[],r=[],q=e=0;e<f.length;e+=3,q+=2)c.vertices.push(new p(f[e],f[e+1],f[e+2])),void 0!==g&&k.push(new p(g[e],g[e+1],g[e+2])),void 0!==h&&c.colors.push(new K(h[e],h[e+1],h[e+2])),void 0!==l&&n.push(new y(l[q],l[q+1])),void 0!==m&&r.push(new y(m[q],m[q+1]));var t=a.groups;if(0<t.length)for(e=0;e<t.length;e++){f=t[e];var u=f.start,z=f.count;q=u;for(u+=z;q<u;q+=3)void 0!==d?b(d[q],d[q+1],d[q+2],f.materialIndex):
+b(q,q+1,q+2,f.materialIndex)}else if(void 0!==d)for(e=0;e<d.length;e+=3)b(d[e],d[e+1],d[e+2]);else for(e=0;e<f.length/3;e+=3)b(e,e+1,e+2);this.computeFaceNormals();null!==a.boundingBox&&(this.boundingBox=a.boundingBox.clone());null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());return this},center:function(){var a=new p;return function(){this.computeBoundingBox();this.boundingBox.getCenter(a).negate();this.translate(a.x,a.y,a.z);return this}}(),normalize:function(){this.computeBoundingSphere();
+var a=this.boundingSphere.center,b=this.boundingSphere.radius;b=0===b?1:1/b;var c=new F;c.set(b,0,0,-b*a.x,0,b,0,-b*a.y,0,0,b,-b*a.z,0,0,0,1);this.applyMatrix(c);return this},computeFaceNormals:function(){for(var a=new p,b=new p,c=0,d=this.faces.length;c<d;c++){var e=this.faces[c],f=this.vertices[e.a],g=this.vertices[e.b];a.subVectors(this.vertices[e.c],g);b.subVectors(f,g);a.cross(b);a.normalize();e.normal.copy(a)}},computeVertexNormals:function(a){void 0===a&&(a=!0);var b;var c=Array(this.vertices.length);
+var d=0;for(b=this.vertices.length;d<b;d++)c[d]=new p;if(a){var e=new p,f=new p;a=0;for(d=this.faces.length;a<d;a++){b=this.faces[a];var g=this.vertices[b.a];var h=this.vertices[b.b];var l=this.vertices[b.c];e.subVectors(l,h);f.subVectors(g,h);e.cross(f);c[b.a].add(e);c[b.b].add(e);c[b.c].add(e)}}else for(this.computeFaceNormals(),a=0,d=this.faces.length;a<d;a++)b=this.faces[a],c[b.a].add(b.normal),c[b.b].add(b.normal),c[b.c].add(b.normal);d=0;for(b=this.vertices.length;d<b;d++)c[d].normalize();a=
+0;for(d=this.faces.length;a<d;a++)b=this.faces[a],g=b.vertexNormals,3===g.length?(g[0].copy(c[b.a]),g[1].copy(c[b.b]),g[2].copy(c[b.c])):(g[0]=c[b.a].clone(),g[1]=c[b.b].clone(),g[2]=c[b.c].clone());0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeFlatVertexNormals:function(){var a;this.computeFaceNormals();var b=0;for(a=this.faces.length;b<a;b++){var c=this.faces[b];var d=c.vertexNormals;3===d.length?(d[0].copy(c.normal),d[1].copy(c.normal),d[2].copy(c.normal)):(d[0]=c.normal.clone(),d[1]=
+c.normal.clone(),d[2]=c.normal.clone())}0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){var a,b;var c=0;for(b=this.faces.length;c<b;c++){var d=this.faces[c];d.__originalFaceNormal?d.__originalFaceNormal.copy(d.normal):d.__originalFaceNormal=d.normal.clone();d.__originalVertexNormals||(d.__originalVertexNormals=[]);var e=0;for(a=d.vertexNormals.length;e<a;e++)d.__originalVertexNormals[e]?d.__originalVertexNormals[e].copy(d.vertexNormals[e]):d.__originalVertexNormals[e]=
+d.vertexNormals[e].clone()}var f=new J;f.faces=this.faces;e=0;for(a=this.morphTargets.length;e<a;e++){if(!this.morphNormals[e]){this.morphNormals[e]={};this.morphNormals[e].faceNormals=[];this.morphNormals[e].vertexNormals=[];d=this.morphNormals[e].faceNormals;var g=this.morphNormals[e].vertexNormals;c=0;for(b=this.faces.length;c<b;c++){var h=new p;var l={a:new p,b:new p,c:new p};d.push(h);g.push(l)}}g=this.morphNormals[e];f.vertices=this.morphTargets[e].vertices;f.computeFaceNormals();f.computeVertexNormals();
+c=0;for(b=this.faces.length;c<b;c++)d=this.faces[c],h=g.faceNormals[c],l=g.vertexNormals[c],h.copy(d.normal),l.a.copy(d.vertexNormals[0]),l.b.copy(d.vertexNormals[1]),l.c.copy(d.vertexNormals[2])}c=0;for(b=this.faces.length;c<b;c++)d=this.faces[c],d.normal=d.__originalFaceNormal,d.vertexNormals=d.__originalVertexNormals},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Wa);this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&
+(this.boundingSphere=new Ga);this.boundingSphere.setFromPoints(this.vertices)},merge:function(a,b,c){if(a&&a.isGeometry){var d,e=this.vertices.length,f=this.vertices,g=a.vertices,h=this.faces,l=a.faces,m=this.faceVertexUvs[0],k=a.faceVertexUvs[0],n=this.colors,r=a.colors;void 0===c&&(c=0);void 0!==b&&(d=(new ta).getNormalMatrix(b));a=0;for(var q=g.length;a<q;a++){var p=g[a].clone();void 0!==b&&p.applyMatrix4(b);f.push(p)}a=0;for(q=r.length;a<q;a++)n.push(r[a].clone());a=0;for(q=l.length;a<q;a++){g=
+l[a];var u=g.vertexNormals;r=g.vertexColors;n=new Xa(g.a+e,g.b+e,g.c+e);n.normal.copy(g.normal);void 0!==d&&n.normal.applyMatrix3(d).normalize();b=0;for(f=u.length;b<f;b++)p=u[b].clone(),void 0!==d&&p.applyMatrix3(d).normalize(),n.vertexNormals.push(p);n.color.copy(g.color);b=0;for(f=r.length;b<f;b++)p=r[b],n.vertexColors.push(p.clone());n.materialIndex=g.materialIndex+c;h.push(n)}a=0;for(q=k.length;a<q;a++)if(c=k[a],d=[],void 0!==c){b=0;for(f=c.length;b<f;b++)d.push(c[b].clone());m.push(d)}}else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",
+a)},mergeMesh:function(a){a&&a.isMesh?(a.matrixAutoUpdate&&a.updateMatrix(),this.merge(a.geometry,a.matrix)):console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",a)},mergeVertices:function(){var a={},b=[],c=[],d=Math.pow(10,4),e;var f=0;for(e=this.vertices.length;f<e;f++){var g=this.vertices[f];g=Math.round(g.x*d)+"_"+Math.round(g.y*d)+"_"+Math.round(g.z*d);void 0===a[g]?(a[g]=f,b.push(this.vertices[f]),c[f]=b.length-1):c[f]=c[a[g]]}a=[];f=0;for(e=this.faces.length;f<e;f++)for(d=
+this.faces[f],d.a=c[d.a],d.b=c[d.b],d.c=c[d.c],d=[d.a,d.b,d.c],g=0;3>g;g++)if(d[g]===d[(g+1)%3]){a.push(f);break}for(f=a.length-1;0<=f;f--)for(d=a[f],this.faces.splice(d,1),c=0,e=this.faceVertexUvs.length;c<e;c++)this.faceVertexUvs[c].splice(d,1);f=this.vertices.length-b.length;this.vertices=b;return f},setFromPoints:function(a){this.vertices=[];for(var b=0,c=a.length;b<c;b++){var d=a[b];this.vertices.push(new p(d.x,d.y,d.z||0))}return this},sortFacesByMaterialIndex:function(){for(var a=this.faces,
+b=a.length,c=0;c<b;c++)a[c]._id=c;a.sort(function(a,b){return a.materialIndex-b.materialIndex});var d=this.faceVertexUvs[0],e=this.faceVertexUvs[1],f,g;d&&d.length===b&&(f=[]);e&&e.length===b&&(g=[]);for(c=0;c<b;c++){var h=a[c]._id;f&&f.push(d[h]);g&&g.push(e[h])}f&&(this.faceVertexUvs[0]=f);g&&(this.faceVertexUvs[1]=g)},toJSON:function(){function a(a,b,c){return c?a|1<<b:a&~(1<<b)}function b(a){var b=a.x.toString()+a.y.toString()+a.z.toString();if(void 0!==m[b])return m[b];m[b]=l.length/3;l.push(a.x,
+a.y,a.z);return m[b]}function c(a){var b=a.r.toString()+a.g.toString()+a.b.toString();if(void 0!==n[b])return n[b];n[b]=k.length;k.push(a.getHex());return n[b]}function d(a){var b=a.x.toString()+a.y.toString();if(void 0!==p[b])return p[b];p[b]=r.length/2;r.push(a.x,a.y);return p[b]}var e={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};e.uuid=this.uuid;e.type=this.type;""!==this.name&&(e.name=this.name);if(void 0!==this.parameters){var f=this.parameters,g;for(g in f)void 0!==f[g]&&
+(e[g]=f[g]);return e}f=[];for(g=0;g<this.vertices.length;g++){var h=this.vertices[g];f.push(h.x,h.y,h.z)}h=[];var l=[],m={},k=[],n={},r=[],p={};for(g=0;g<this.faces.length;g++){var t=this.faces[g],u=void 0!==this.faceVertexUvs[0][g],z=0<t.normal.length(),x=0<t.vertexNormals.length,w=1!==t.color.r||1!==t.color.g||1!==t.color.b,y=0<t.vertexColors.length,C=0;C=a(C,0,0);C=a(C,1,!0);C=a(C,2,!1);C=a(C,3,u);C=a(C,4,z);C=a(C,5,x);C=a(C,6,w);C=a(C,7,y);h.push(C);h.push(t.a,t.b,t.c);h.push(t.materialIndex);
+u&&(u=this.faceVertexUvs[0][g],h.push(d(u[0]),d(u[1]),d(u[2])));z&&h.push(b(t.normal));x&&(z=t.vertexNormals,h.push(b(z[0]),b(z[1]),b(z[2])));w&&h.push(c(t.color));y&&(t=t.vertexColors,h.push(c(t[0]),c(t[1]),c(t[2])))}e.data={};e.data.vertices=f;e.data.normals=l;0<k.length&&(e.data.colors=k);0<r.length&&(e.data.uvs=[r]);e.data.faces=h;return e},clone:function(){return(new J).copy(this)},copy:function(a){var b,c,d;this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=
+[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=[];this.boundingSphere=this.boundingBox=null;this.name=a.name;var e=a.vertices;var f=0;for(b=e.length;f<b;f++)this.vertices.push(e[f].clone());e=a.colors;f=0;for(b=e.length;f<b;f++)this.colors.push(e[f].clone());e=a.faces;f=0;for(b=e.length;f<b;f++)this.faces.push(e[f].clone());f=0;for(b=a.faceVertexUvs.length;f<b;f++){var g=a.faceVertexUvs[f];void 0===this.faceVertexUvs[f]&&(this.faceVertexUvs[f]=[]);e=0;for(c=g.length;e<
+c;e++){var h=g[e],l=[];var m=0;for(d=h.length;m<d;m++)l.push(h[m].clone());this.faceVertexUvs[f].push(l)}}m=a.morphTargets;f=0;for(b=m.length;f<b;f++){d={};d.name=m[f].name;if(void 0!==m[f].vertices)for(d.vertices=[],e=0,c=m[f].vertices.length;e<c;e++)d.vertices.push(m[f].vertices[e].clone());if(void 0!==m[f].normals)for(d.normals=[],e=0,c=m[f].normals.length;e<c;e++)d.normals.push(m[f].normals[e].clone());this.morphTargets.push(d)}m=a.morphNormals;f=0;for(b=m.length;f<b;f++){d={};if(void 0!==m[f].vertexNormals)for(d.vertexNormals=
+[],e=0,c=m[f].vertexNormals.length;e<c;e++)g=m[f].vertexNormals[e],h={},h.a=g.a.clone(),h.b=g.b.clone(),h.c=g.c.clone(),d.vertexNormals.push(h);if(void 0!==m[f].faceNormals)for(d.faceNormals=[],e=0,c=m[f].faceNormals.length;e<c;e++)d.faceNormals.push(m[f].faceNormals[e].clone());this.morphNormals.push(d)}e=a.skinWeights;f=0;for(b=e.length;f<b;f++)this.skinWeights.push(e[f].clone());e=a.skinIndices;f=0;for(b=e.length;f<b;f++)this.skinIndices.push(e[f].clone());e=a.lineDistances;f=0;for(b=e.length;f<
+b;f++)this.lineDistances.push(e[f]);f=a.boundingBox;null!==f&&(this.boundingBox=f.clone());f=a.boundingSphere;null!==f&&(this.boundingSphere=f.clone());this.elementsNeedUpdate=a.elementsNeedUpdate;this.verticesNeedUpdate=a.verticesNeedUpdate;this.uvsNeedUpdate=a.uvsNeedUpdate;this.normalsNeedUpdate=a.normalsNeedUpdate;this.colorsNeedUpdate=a.colorsNeedUpdate;this.lineDistancesNeedUpdate=a.lineDistancesNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});
+Object.defineProperty(O.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(O.prototype,{isBufferAttribute:!0,onUploadCallback:function(){},setArray:function(a){if(Array.isArray(a))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.count=void 0!==a?a.length/this.itemSize:0;this.array=a;return this},setDynamic:function(a){this.dynamic=a;return this},copy:function(a){this.name=a.name;this.array=new a.array.constructor(a.array);this.itemSize=
+a.itemSize;this.count=a.count;this.normalized=a.normalized;this.dynamic=a.dynamic;return this},copyAt:function(a,b,c){a*=this.itemSize;c*=b.itemSize;for(var d=0,e=this.itemSize;d<e;d++)this.array[a+d]=b.array[c+d];return this},copyArray:function(a){this.array.set(a);return this},copyColorsArray:function(a){for(var b=this.array,c=0,d=0,e=a.length;d<e;d++){var f=a[d];void 0===f&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",d),f=new K);b[c++]=f.r;b[c++]=f.g;b[c++]=f.b}return this},
+copyVector2sArray:function(a){for(var b=this.array,c=0,d=0,e=a.length;d<e;d++){var f=a[d];void 0===f&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",d),f=new y);b[c++]=f.x;b[c++]=f.y}return this},copyVector3sArray:function(a){for(var b=this.array,c=0,d=0,e=a.length;d<e;d++){var f=a[d];void 0===f&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",d),f=new p);b[c++]=f.x;b[c++]=f.y;b[c++]=f.z}return this},copyVector4sArray:function(a){for(var b=
+this.array,c=0,d=0,e=a.length;d<e;d++){var f=a[d];void 0===f&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",d),f=new U);b[c++]=f.x;b[c++]=f.y;b[c++]=f.z;b[c++]=f.w}return this},set:function(a,b){void 0===b&&(b=0);this.array.set(a,b);return this},getX:function(a){return this.array[a*this.itemSize]},setX:function(a,b){this.array[a*this.itemSize]=b;return this},getY:function(a){return this.array[a*this.itemSize+1]},setY:function(a,b){this.array[a*this.itemSize+1]=b;return this},
+getZ:function(a){return this.array[a*this.itemSize+2]},setZ:function(a,b){this.array[a*this.itemSize+2]=b;return this},getW:function(a){return this.array[a*this.itemSize+3]},setW:function(a,b){this.array[a*this.itemSize+3]=b;return this},setXY:function(a,b,c){a*=this.itemSize;this.array[a+0]=b;this.array[a+1]=c;return this},setXYZ:function(a,b,c,d){a*=this.itemSize;this.array[a+0]=b;this.array[a+1]=c;this.array[a+2]=d;return this},setXYZW:function(a,b,c,d,e){a*=this.itemSize;this.array[a+0]=b;this.array[a+
+1]=c;this.array[a+2]=d;this.array[a+3]=e;return this},onUpload:function(a){this.onUploadCallback=a;return this},clone:function(){return(new this.constructor(this.array,this.itemSize)).copy(this)}});vc.prototype=Object.create(O.prototype);vc.prototype.constructor=vc;wc.prototype=Object.create(O.prototype);wc.prototype.constructor=wc;xc.prototype=Object.create(O.prototype);xc.prototype.constructor=xc;yc.prototype=Object.create(O.prototype);yc.prototype.constructor=yc;nb.prototype=Object.create(O.prototype);
+nb.prototype.constructor=nb;zc.prototype=Object.create(O.prototype);zc.prototype.constructor=zc;ob.prototype=Object.create(O.prototype);ob.prototype.constructor=ob;A.prototype=Object.create(O.prototype);A.prototype.constructor=A;Ac.prototype=Object.create(O.prototype);Ac.prototype.constructor=Ac;Object.assign(Ee.prototype,{computeGroups:function(a){var b=[],c=void 0;a=a.faces;for(var d=0;d<a.length;d++){var e=a[d];if(e.materialIndex!==c){c=e.materialIndex;void 0!==f&&(f.count=3*d-f.start,b.push(f));
+var f={start:3*d,materialIndex:c}}}void 0!==f&&(f.count=3*d-f.start,b.push(f));this.groups=b},fromGeometry:function(a){var b=a.faces,c=a.vertices,d=a.faceVertexUvs,e=d[0]&&0<d[0].length,f=d[1]&&0<d[1].length,g=a.morphTargets,h=g.length;if(0<h){var l=[];for(var m=0;m<h;m++)l[m]=[];this.morphTargets.position=l}var k=a.morphNormals,n=k.length;if(0<n){var r=[];for(m=0;m<n;m++)r[m]=[];this.morphTargets.normal=r}var p=a.skinIndices,t=a.skinWeights,u=p.length===c.length,z=t.length===c.length;0<c.length&&
+0===b.length&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(m=0;m<b.length;m++){var x=b[m];this.vertices.push(c[x.a],c[x.b],c[x.c]);var w=x.vertexNormals;3===w.length?this.normals.push(w[0],w[1],w[2]):(w=x.normal,this.normals.push(w,w,w));w=x.vertexColors;3===w.length?this.colors.push(w[0],w[1],w[2]):(w=x.color,this.colors.push(w,w,w));!0===e&&(w=d[0][m],void 0!==w?this.uvs.push(w[0],w[1],w[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",
+m),this.uvs.push(new y,new y,new y)));!0===f&&(w=d[1][m],void 0!==w?this.uvs2.push(w[0],w[1],w[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",m),this.uvs2.push(new y,new y,new y)));for(w=0;w<h;w++){var A=g[w].vertices;l[w].push(A[x.a],A[x.b],A[x.c])}for(w=0;w<n;w++)A=k[w].vertexNormals[m],r[w].push(A.a,A.b,A.c);u&&this.skinIndices.push(p[x.a],p[x.b],p[x.c]);z&&this.skinWeights.push(t[x.a],t[x.b],t[x.c])}this.computeGroups(a);this.verticesNeedUpdate=a.verticesNeedUpdate;
+this.normalsNeedUpdate=a.normalsNeedUpdate;this.colorsNeedUpdate=a.colorsNeedUpdate;this.uvsNeedUpdate=a.uvsNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;return this}});var Hf=1;G.prototype=Object.assign(Object.create(ha.prototype),{constructor:G,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(a){Array.isArray(a)?this.index=new (65535<Fe(a)?ob:nb)(a,1):this.index=a},addAttribute:function(a,b,c){if(!(b&&b.isBufferAttribute||b&&b.isInterleavedBufferAttribute))return console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),
+this.addAttribute(a,new O(b,c));if("index"===a)return console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(b),this;this.attributes[a]=b;return this},getAttribute:function(a){return this.attributes[a]},removeAttribute:function(a){delete this.attributes[a];return this},addGroup:function(a,b,c){this.groups.push({start:a,count:b,materialIndex:void 0!==c?c:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(a,b){this.drawRange.start=a;this.drawRange.count=
+b},applyMatrix:function(a){var b=this.attributes.position;void 0!==b&&(a.applyToBufferAttribute(b),b.needsUpdate=!0);b=this.attributes.normal;void 0!==b&&((new ta).getNormalMatrix(a).applyToBufferAttribute(b),b.needsUpdate=!0);null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();return this},rotateX:function(){var a=new F;return function(b){a.makeRotationX(b);this.applyMatrix(a);return this}}(),rotateY:function(){var a=new F;return function(b){a.makeRotationY(b);
+this.applyMatrix(a);return this}}(),rotateZ:function(){var a=new F;return function(b){a.makeRotationZ(b);this.applyMatrix(a);return this}}(),translate:function(){var a=new F;return function(b,c,d){a.makeTranslation(b,c,d);this.applyMatrix(a);return this}}(),scale:function(){var a=new F;return function(b,c,d){a.makeScale(b,c,d);this.applyMatrix(a);return this}}(),lookAt:function(){var a=new B;return function(b){a.lookAt(b);a.updateMatrix();this.applyMatrix(a.matrix)}}(),center:function(){var a=new p;
+return function(){this.computeBoundingBox();this.boundingBox.getCenter(a).negate();this.translate(a.x,a.y,a.z);return this}}(),setFromObject:function(a){var b=a.geometry;if(a.isPoints||a.isLine){a=new A(3*b.vertices.length,3);var c=new A(3*b.colors.length,3);this.addAttribute("position",a.copyVector3sArray(b.vertices));this.addAttribute("color",c.copyColorsArray(b.colors));b.lineDistances&&b.lineDistances.length===b.vertices.length&&(a=new A(b.lineDistances.length,1),this.addAttribute("lineDistance",
+a.copyArray(b.lineDistances)));null!==b.boundingSphere&&(this.boundingSphere=b.boundingSphere.clone());null!==b.boundingBox&&(this.boundingBox=b.boundingBox.clone())}else a.isMesh&&b&&b.isGeometry&&this.fromGeometry(b);return this},setFromPoints:function(a){for(var b=[],c=0,d=a.length;c<d;c++){var e=a[c];b.push(e.x,e.y,e.z||0)}this.addAttribute("position",new A(b,3));return this},updateFromObject:function(a){var b=a.geometry;if(a.isMesh){var c=b.__directGeometry;!0===b.elementsNeedUpdate&&(c=void 0,
+b.elementsNeedUpdate=!1);if(void 0===c)return this.fromGeometry(b);c.verticesNeedUpdate=b.verticesNeedUpdate;c.normalsNeedUpdate=b.normalsNeedUpdate;c.colorsNeedUpdate=b.colorsNeedUpdate;c.uvsNeedUpdate=b.uvsNeedUpdate;c.groupsNeedUpdate=b.groupsNeedUpdate;b.verticesNeedUpdate=!1;b.normalsNeedUpdate=!1;b.colorsNeedUpdate=!1;b.uvsNeedUpdate=!1;b.groupsNeedUpdate=!1;b=c}!0===b.verticesNeedUpdate&&(c=this.attributes.position,void 0!==c&&(c.copyVector3sArray(b.vertices),c.needsUpdate=!0),b.verticesNeedUpdate=
+!1);!0===b.normalsNeedUpdate&&(c=this.attributes.normal,void 0!==c&&(c.copyVector3sArray(b.normals),c.needsUpdate=!0),b.normalsNeedUpdate=!1);!0===b.colorsNeedUpdate&&(c=this.attributes.color,void 0!==c&&(c.copyColorsArray(b.colors),c.needsUpdate=!0),b.colorsNeedUpdate=!1);b.uvsNeedUpdate&&(c=this.attributes.uv,void 0!==c&&(c.copyVector2sArray(b.uvs),c.needsUpdate=!0),b.uvsNeedUpdate=!1);b.lineDistancesNeedUpdate&&(c=this.attributes.lineDistance,void 0!==c&&(c.copyArray(b.lineDistances),c.needsUpdate=
+!0),b.lineDistancesNeedUpdate=!1);b.groupsNeedUpdate&&(b.computeGroups(a.geometry),this.groups=b.groups,b.groupsNeedUpdate=!1);return this},fromGeometry:function(a){a.__directGeometry=(new Ee).fromGeometry(a);return this.fromDirectGeometry(a.__directGeometry)},fromDirectGeometry:function(a){var b=new Float32Array(3*a.vertices.length);this.addAttribute("position",(new O(b,3)).copyVector3sArray(a.vertices));0<a.normals.length&&(b=new Float32Array(3*a.normals.length),this.addAttribute("normal",(new O(b,
+3)).copyVector3sArray(a.normals)));0<a.colors.length&&(b=new Float32Array(3*a.colors.length),this.addAttribute("color",(new O(b,3)).copyColorsArray(a.colors)));0<a.uvs.length&&(b=new Float32Array(2*a.uvs.length),this.addAttribute("uv",(new O(b,2)).copyVector2sArray(a.uvs)));0<a.uvs2.length&&(b=new Float32Array(2*a.uvs2.length),this.addAttribute("uv2",(new O(b,2)).copyVector2sArray(a.uvs2)));this.groups=a.groups;for(var c in a.morphTargets){b=[];for(var d=a.morphTargets[c],e=0,f=d.length;e<f;e++){var g=
+d[e],h=new A(3*g.length,3);b.push(h.copyVector3sArray(g))}this.morphAttributes[c]=b}0<a.skinIndices.length&&(c=new A(4*a.skinIndices.length,4),this.addAttribute("skinIndex",c.copyVector4sArray(a.skinIndices)));0<a.skinWeights.length&&(c=new A(4*a.skinWeights.length,4),this.addAttribute("skinWeight",c.copyVector4sArray(a.skinWeights)));null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());null!==a.boundingBox&&(this.boundingBox=a.boundingBox.clone());return this},computeBoundingBox:function(){null===
+this.boundingBox&&(this.boundingBox=new Wa);var a=this.attributes.position;void 0!==a?this.boundingBox.setFromBufferAttribute(a):this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){var a=new Wa,b=new p;return function(){null===this.boundingSphere&&
+(this.boundingSphere=new Ga);var c=this.attributes.position;if(c){var d=this.boundingSphere.center;a.setFromBufferAttribute(c);a.getCenter(d);for(var e=0,f=0,g=c.count;f<g;f++)b.x=c.getX(f),b.y=c.getY(f),b.z=c.getZ(f),e=Math.max(e,d.distanceToSquared(b));this.boundingSphere.radius=Math.sqrt(e);isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}}(),computeFaceNormals:function(){},
+computeVertexNormals:function(){var a=this.index,b=this.attributes,c=this.groups;if(b.position){var d=b.position.array;if(void 0===b.normal)this.addAttribute("normal",new O(new Float32Array(d.length),3));else for(var e=b.normal.array,f=0,g=e.length;f<g;f++)e[f]=0;e=b.normal.array;var h=new p,l=new p,m=new p,k=new p,n=new p;if(a){a=a.array;0===c.length&&this.addGroup(0,a.length);for(var r=0,q=c.length;r<q;++r){f=c[r];g=f.start;var t=f.count;f=g;for(g+=t;f<g;f+=3){t=3*a[f+0];var u=3*a[f+1];var z=3*
+a[f+2];h.fromArray(d,t);l.fromArray(d,u);m.fromArray(d,z);k.subVectors(m,l);n.subVectors(h,l);k.cross(n);e[t]+=k.x;e[t+1]+=k.y;e[t+2]+=k.z;e[u]+=k.x;e[u+1]+=k.y;e[u+2]+=k.z;e[z]+=k.x;e[z+1]+=k.y;e[z+2]+=k.z}}}else for(f=0,g=d.length;f<g;f+=9)h.fromArray(d,f),l.fromArray(d,f+3),m.fromArray(d,f+6),k.subVectors(m,l),n.subVectors(h,l),k.cross(n),e[f]=k.x,e[f+1]=k.y,e[f+2]=k.z,e[f+3]=k.x,e[f+4]=k.y,e[f+5]=k.z,e[f+6]=k.x,e[f+7]=k.y,e[f+8]=k.z;this.normalizeNormals();b.normal.needsUpdate=!0}},merge:function(a,
+b){if(a&&a.isBufferGeometry){void 0===b&&(b=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));var c=this.attributes,d;for(d in c)if(void 0!==a.attributes[d]){var e=c[d].array,f=a.attributes[d],g=f.array,h=0;for(f=f.itemSize*b;h<g.length;h++,f++)e[f]=g[h]}return this}console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",a)},normalizeNormals:function(){var a=
+new p;return function(){for(var b=this.attributes.normal,c=0,d=b.count;c<d;c++)a.x=b.getX(c),a.y=b.getY(c),a.z=b.getZ(c),a.normalize(),b.setXYZ(c,a.x,a.y,a.z)}}(),toNonIndexed:function(){if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed."),this;var a=new G,b=this.index.array,c=this.attributes,d;for(d in c){var e=c[d],f=e.array,g=e.itemSize,h=new f.constructor(b.length*g),l=0;e=0;for(var m=b.length;e<m;e++){var k=b[e]*g;for(var n=0;n<g;n++)h[l++]=
+f[k++]}a.addAttribute(d,new O(h,g))}b=this.groups;e=0;for(m=b.length;e<m;e++)c=b[e],a.addGroup(c.start,c.count,c.materialIndex);return a},toJSON:function(){var a={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};a.uuid=this.uuid;a.type=this.type;""!==this.name&&(a.name=this.name);0<Object.keys(this.userData).length&&(a.userData=this.userData);if(void 0!==this.parameters){var b=this.parameters;for(e in b)void 0!==b[e]&&(a[e]=b[e]);return a}a.data={attributes:{}};var c=
+this.index;null!==c&&(b=Array.prototype.slice.call(c.array),a.data.index={type:c.array.constructor.name,array:b});c=this.attributes;for(e in c){var d=c[e];b=Array.prototype.slice.call(d.array);a.data.attributes[e]={itemSize:d.itemSize,type:d.array.constructor.name,array:b,normalized:d.normalized}}var e=this.groups;0<e.length&&(a.data.groups=JSON.parse(JSON.stringify(e)));e=this.boundingSphere;null!==e&&(a.data.boundingSphere={center:e.center.toArray(),radius:e.radius});return a},clone:function(){return(new G).copy(this)},
+copy:function(a){var b;this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingSphere=this.boundingBox=null;this.name=a.name;var c=a.index;null!==c&&this.setIndex(c.clone());c=a.attributes;for(g in c)this.addAttribute(g,c[g].clone());var d=a.morphAttributes;for(g in d){var e=[],f=d[g];c=0;for(b=f.length;c<b;c++)e.push(f[c].clone());this.morphAttributes[g]=e}var g=a.groups;c=0;for(b=g.length;c<b;c++)d=g[c],this.addGroup(d.start,d.count,d.materialIndex);g=a.boundingBox;
+null!==g&&(this.boundingBox=g.clone());g=a.boundingSphere;null!==g&&(this.boundingSphere=g.clone());this.drawRange.start=a.drawRange.start;this.drawRange.count=a.drawRange.count;this.userData=a.userData;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});Nb.prototype=Object.create(J.prototype);Nb.prototype.constructor=Nb;pb.prototype=Object.create(G.prototype);pb.prototype.constructor=pb;Cc.prototype=Object.create(J.prototype);Cc.prototype.constructor=Cc;rb.prototype=Object.create(G.prototype);
+rb.prototype.constructor=rb;var If=0;L.prototype=Object.assign(Object.create(ha.prototype),{constructor:L,isMaterial:!0,onBeforeCompile:function(){},setValues:function(a){if(void 0!==a)for(var b in a){var c=a[b];if(void 0===c)console.warn("THREE.Material: '"+b+"' parameter is undefined.");else if("shading"===b)console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===c?!0:!1;else{var d=this[b];void 0===d?console.warn("THREE."+this.type+
+": '"+b+"' is not a property of this material."):d&&d.isColor?d.set(c):d&&d.isVector3&&c&&c.isVector3?d.copy(c):this[b]="overdraw"===b?Number(c):c}}},toJSON:function(a){function b(a){var b=[],c;for(c in a){var d=a[c];delete d.metadata;b.push(d)}return b}var c=void 0===a||"string"===typeof a;c&&(a={textures:{},images:{}});var d={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};d.uuid=this.uuid;d.type=this.type;""!==this.name&&(d.name=this.name);this.color&&this.color.isColor&&(d.color=
+this.color.getHex());void 0!==this.roughness&&(d.roughness=this.roughness);void 0!==this.metalness&&(d.metalness=this.metalness);this.emissive&&this.emissive.isColor&&(d.emissive=this.emissive.getHex());1!==this.emissiveIntensity&&(d.emissiveIntensity=this.emissiveIntensity);this.specular&&this.specular.isColor&&(d.specular=this.specular.getHex());void 0!==this.shininess&&(d.shininess=this.shininess);void 0!==this.clearCoat&&(d.clearCoat=this.clearCoat);void 0!==this.clearCoatRoughness&&(d.clearCoatRoughness=
+this.clearCoatRoughness);this.map&&this.map.isTexture&&(d.map=this.map.toJSON(a).uuid);this.alphaMap&&this.alphaMap.isTexture&&(d.alphaMap=this.alphaMap.toJSON(a).uuid);this.lightMap&&this.lightMap.isTexture&&(d.lightMap=this.lightMap.toJSON(a).uuid);this.aoMap&&this.aoMap.isTexture&&(d.aoMap=this.aoMap.toJSON(a).uuid,d.aoMapIntensity=this.aoMapIntensity);this.bumpMap&&this.bumpMap.isTexture&&(d.bumpMap=this.bumpMap.toJSON(a).uuid,d.bumpScale=this.bumpScale);this.normalMap&&this.normalMap.isTexture&&
+(d.normalMap=this.normalMap.toJSON(a).uuid,d.normalMapType=this.normalMapType,d.normalScale=this.normalScale.toArray());this.displacementMap&&this.displacementMap.isTexture&&(d.displacementMap=this.displacementMap.toJSON(a).uuid,d.displacementScale=this.displacementScale,d.displacementBias=this.displacementBias);this.roughnessMap&&this.roughnessMap.isTexture&&(d.roughnessMap=this.roughnessMap.toJSON(a).uuid);this.metalnessMap&&this.metalnessMap.isTexture&&(d.metalnessMap=this.metalnessMap.toJSON(a).uuid);
+this.emissiveMap&&this.emissiveMap.isTexture&&(d.emissiveMap=this.emissiveMap.toJSON(a).uuid);this.specularMap&&this.specularMap.isTexture&&(d.specularMap=this.specularMap.toJSON(a).uuid);this.envMap&&this.envMap.isTexture&&(d.envMap=this.envMap.toJSON(a).uuid,d.reflectivity=this.reflectivity);this.gradientMap&&this.gradientMap.isTexture&&(d.gradientMap=this.gradientMap.toJSON(a).uuid);void 0!==this.size&&(d.size=this.size);void 0!==this.sizeAttenuation&&(d.sizeAttenuation=this.sizeAttenuation);1!==
+this.blending&&(d.blending=this.blending);!0===this.flatShading&&(d.flatShading=this.flatShading);0!==this.side&&(d.side=this.side);0!==this.vertexColors&&(d.vertexColors=this.vertexColors);1>this.opacity&&(d.opacity=this.opacity);!0===this.transparent&&(d.transparent=this.transparent);d.depthFunc=this.depthFunc;d.depthTest=this.depthTest;d.depthWrite=this.depthWrite;0!==this.rotation&&(d.rotation=this.rotation);1!==this.linewidth&&(d.linewidth=this.linewidth);void 0!==this.dashSize&&(d.dashSize=
+this.dashSize);void 0!==this.gapSize&&(d.gapSize=this.gapSize);void 0!==this.scale&&(d.scale=this.scale);!0===this.dithering&&(d.dithering=!0);0<this.alphaTest&&(d.alphaTest=this.alphaTest);!0===this.premultipliedAlpha&&(d.premultipliedAlpha=this.premultipliedAlpha);!0===this.wireframe&&(d.wireframe=this.wireframe);1<this.wireframeLinewidth&&(d.wireframeLinewidth=this.wireframeLinewidth);"round"!==this.wireframeLinecap&&(d.wireframeLinecap=this.wireframeLinecap);"round"!==this.wireframeLinejoin&&
+(d.wireframeLinejoin=this.wireframeLinejoin);!0===this.morphTargets&&(d.morphTargets=!0);!0===this.skinning&&(d.skinning=!0);!1===this.visible&&(d.visible=!1);"{}"!==JSON.stringify(this.userData)&&(d.userData=this.userData);c&&(c=b(a.textures),a=b(a.images),0<c.length&&(d.textures=c),0<a.length&&(d.images=a));return d},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.name=a.name;this.fog=a.fog;this.lights=a.lights;this.blending=a.blending;this.side=a.side;this.flatShading=
+a.flatShading;this.vertexColors=a.vertexColors;this.opacity=a.opacity;this.transparent=a.transparent;this.blendSrc=a.blendSrc;this.blendDst=a.blendDst;this.blendEquation=a.blendEquation;this.blendSrcAlpha=a.blendSrcAlpha;this.blendDstAlpha=a.blendDstAlpha;this.blendEquationAlpha=a.blendEquationAlpha;this.depthFunc=a.depthFunc;this.depthTest=a.depthTest;this.depthWrite=a.depthWrite;this.colorWrite=a.colorWrite;this.precision=a.precision;this.polygonOffset=a.polygonOffset;this.polygonOffsetFactor=a.polygonOffsetFactor;
+this.polygonOffsetUnits=a.polygonOffsetUnits;this.dithering=a.dithering;this.alphaTest=a.alphaTest;this.premultipliedAlpha=a.premultipliedAlpha;this.overdraw=a.overdraw;this.visible=a.visible;this.userData=JSON.parse(JSON.stringify(a.userData));this.clipShadows=a.clipShadows;this.clipIntersection=a.clipIntersection;var b=a.clippingPlanes,c=null;if(null!==b){var d=b.length;c=Array(d);for(var e=0;e!==d;++e)c[e]=b[e].clone()}this.clippingPlanes=c;this.shadowSide=a.shadowSide;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});
+ka.prototype=Object.create(L.prototype);ka.prototype.constructor=ka;ka.prototype.isMeshBasicMaterial=!0;ka.prototype.copy=function(a){L.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=
+a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;return this};Ea.prototype=Object.create(L.prototype);Ea.prototype.constructor=Ea;Ea.prototype.isShaderMaterial=!0;Ea.prototype.copy=function(a){L.prototype.copy.call(this,a);this.fragmentShader=a.fragmentShader;this.vertexShader=a.vertexShader;this.uniforms=Ca.clone(a.uniforms);this.defines=Object.assign({},
+a.defines);this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.lights=a.lights;this.clipping=a.clipping;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;this.extensions=a.extensions;return this};Ea.prototype.toJSON=function(a){a=L.prototype.toJSON.call(this,a);a.uniforms=this.uniforms;a.vertexShader=this.vertexShader;a.fragmentShader=this.fragmentShader;return a};Object.assign(sb.prototype,{set:function(a,b){this.origin.copy(a);this.direction.copy(b);
+return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.origin.copy(a.origin);this.direction.copy(a.direction);return this},at:function(a,b){void 0===b&&(console.warn("THREE.Ray: .at() target is now required"),b=new p);return b.copy(this.direction).multiplyScalar(a).add(this.origin)},lookAt:function(a){this.direction.copy(a).sub(this.origin).normalize();return this},recast:function(){var a=new p;return function(b){this.origin.copy(this.at(b,a));return this}}(),
+closestPointToPoint:function(a,b){void 0===b&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),b=new p);b.subVectors(a,this.origin);a=b.dot(this.direction);return 0>a?b.copy(this.origin):b.copy(this.direction).multiplyScalar(a).add(this.origin)},distanceToPoint:function(a){return Math.sqrt(this.distanceSqToPoint(a))},distanceSqToPoint:function(){var a=new p;return function(b){var c=a.subVectors(b,this.origin).dot(this.direction);if(0>c)return this.origin.distanceToSquared(b);
+a.copy(this.direction).multiplyScalar(c).add(this.origin);return a.distanceToSquared(b)}}(),distanceSqToSegment:function(){var a=new p,b=new p,c=new p;return function(d,e,f,g){a.copy(d).add(e).multiplyScalar(.5);b.copy(e).sub(d).normalize();c.copy(this.origin).sub(a);var h=.5*d.distanceTo(e),l=-this.direction.dot(b),m=c.dot(this.direction),k=-c.dot(b),n=c.lengthSq(),p=Math.abs(1-l*l);if(0<p){d=l*k-m;e=l*m-k;var q=h*p;0<=d?e>=-q?e<=q?(h=1/p,d*=h,e*=h,l=d*(d+l*e+2*m)+e*(l*d+e+2*k)+n):(e=h,d=Math.max(0,
+-(l*e+m)),l=-d*d+e*(e+2*k)+n):(e=-h,d=Math.max(0,-(l*e+m)),l=-d*d+e*(e+2*k)+n):e<=-q?(d=Math.max(0,-(-l*h+m)),e=0<d?-h:Math.min(Math.max(-h,-k),h),l=-d*d+e*(e+2*k)+n):e<=q?(d=0,e=Math.min(Math.max(-h,-k),h),l=e*(e+2*k)+n):(d=Math.max(0,-(l*h+m)),e=0<d?h:Math.min(Math.max(-h,-k),h),l=-d*d+e*(e+2*k)+n)}else e=0<l?-h:h,d=Math.max(0,-(l*e+m)),l=-d*d+e*(e+2*k)+n;f&&f.copy(this.direction).multiplyScalar(d).add(this.origin);g&&g.copy(b).multiplyScalar(e).add(a);return l}}(),intersectSphere:function(){var a=
+new p;return function(b,c){a.subVectors(b.center,this.origin);var d=a.dot(this.direction),e=a.dot(a)-d*d;b=b.radius*b.radius;if(e>b)return null;b=Math.sqrt(b-e);e=d-b;d+=b;return 0>e&&0>d?null:0>e?this.at(d,c):this.at(e,c)}}(),intersectsSphere:function(a){return this.distanceToPoint(a.center)<=a.radius},distanceToPlane:function(a){var b=a.normal.dot(this.direction);if(0===b)return 0===a.distanceToPoint(this.origin)?0:null;a=-(this.origin.dot(a.normal)+a.constant)/b;return 0<=a?a:null},intersectPlane:function(a,
+b){a=this.distanceToPlane(a);return null===a?null:this.at(a,b)},intersectsPlane:function(a){var b=a.distanceToPoint(this.origin);return 0===b||0>a.normal.dot(this.direction)*b?!0:!1},intersectBox:function(a,b){var c=1/this.direction.x;var d=1/this.direction.y;var e=1/this.direction.z,f=this.origin;if(0<=c){var g=(a.min.x-f.x)*c;c*=a.max.x-f.x}else g=(a.max.x-f.x)*c,c*=a.min.x-f.x;if(0<=d){var h=(a.min.y-f.y)*d;d*=a.max.y-f.y}else h=(a.max.y-f.y)*d,d*=a.min.y-f.y;if(g>d||h>c)return null;if(h>g||g!==
+g)g=h;if(d<c||c!==c)c=d;0<=e?(h=(a.min.z-f.z)*e,a=(a.max.z-f.z)*e):(h=(a.max.z-f.z)*e,a=(a.min.z-f.z)*e);if(g>a||h>c)return null;if(h>g||g!==g)g=h;if(a<c||c!==c)c=a;return 0>c?null:this.at(0<=g?g:c,b)},intersectsBox:function(){var a=new p;return function(b){return null!==this.intersectBox(b,a)}}(),intersectTriangle:function(){var a=new p,b=new p,c=new p,d=new p;return function(e,f,g,h,l){b.subVectors(f,e);c.subVectors(g,e);d.crossVectors(b,c);f=this.direction.dot(d);if(0<f){if(h)return null;h=1}else if(0>
+f)h=-1,f=-f;else return null;a.subVectors(this.origin,e);e=h*this.direction.dot(c.crossVectors(a,c));if(0>e)return null;g=h*this.direction.dot(b.cross(a));if(0>g||e+g>f)return null;e=-h*a.dot(d);return 0>e?null:this.at(e/f,l)}}(),applyMatrix4:function(a){this.origin.applyMatrix4(a);this.direction.transformDirection(a);return this},equals:function(a){return a.origin.equals(this.origin)&&a.direction.equals(this.direction)}});Object.assign(Ob.prototype,{set:function(a,b){this.start.copy(a);this.end.copy(b);
+return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.start.copy(a.start);this.end.copy(a.end);return this},getCenter:function(a){void 0===a&&(console.warn("THREE.Line3: .getCenter() target is now required"),a=new p);return a.addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(a){void 0===a&&(console.warn("THREE.Line3: .delta() target is now required"),a=new p);return a.subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},
+distance:function(){return this.start.distanceTo(this.end)},at:function(a,b){void 0===b&&(console.warn("THREE.Line3: .at() target is now required"),b=new p);return this.delta(b).multiplyScalar(a).add(this.start)},closestPointToPointParameter:function(){var a=new p,b=new p;return function(c,d){a.subVectors(c,this.start);b.subVectors(this.end,this.start);c=b.dot(b);c=b.dot(a)/c;d&&(c=P.clamp(c,0,1));return c}}(),closestPointToPoint:function(a,b,c){a=this.closestPointToPointParameter(a,b);void 0===c&&
+(console.warn("THREE.Line3: .closestPointToPoint() target is now required"),c=new p);return this.delta(c).multiplyScalar(a).add(this.start)},applyMatrix4:function(a){this.start.applyMatrix4(a);this.end.applyMatrix4(a);return this},equals:function(a){return a.start.equals(this.start)&&a.end.equals(this.end)}});Object.assign(Aa,{getNormal:function(){var a=new p;return function(b,c,d,e){void 0===e&&(console.warn("THREE.Triangle: .getNormal() target is now required"),e=new p);e.subVectors(d,c);a.subVectors(b,
+c);e.cross(a);b=e.lengthSq();return 0<b?e.multiplyScalar(1/Math.sqrt(b)):e.set(0,0,0)}}(),getBarycoord:function(){var a=new p,b=new p,c=new p;return function(d,e,f,g,h){a.subVectors(g,e);b.subVectors(f,e);c.subVectors(d,e);d=a.dot(a);e=a.dot(b);f=a.dot(c);var l=b.dot(b);g=b.dot(c);var m=d*l-e*e;void 0===h&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),h=new p);if(0===m)return h.set(-2,-1,-1);m=1/m;l=(l*f-e*g)*m;d=(d*g-e*f)*m;return h.set(1-l-d,d,l)}}(),containsPoint:function(){var a=
+new p;return function(b,c,d,e){Aa.getBarycoord(b,c,d,e,a);return 0<=a.x&&0<=a.y&&1>=a.x+a.y}}()});Object.assign(Aa.prototype,{set:function(a,b,c){this.a.copy(a);this.b.copy(b);this.c.copy(c);return this},setFromPointsAndIndices:function(a,b,c,d){this.a.copy(a[b]);this.b.copy(a[c]);this.c.copy(a[d]);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a.copy(a.a);this.b.copy(a.b);this.c.copy(a.c);return this},getArea:function(){var a=new p,b=new p;return function(){a.subVectors(this.c,
+this.b);b.subVectors(this.a,this.b);return.5*a.cross(b).length()}}(),getMidpoint:function(a){void 0===a&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),a=new p);return a.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},getNormal:function(a){return Aa.getNormal(this.a,this.b,this.c,a)},getPlane:function(a){void 0===a&&(console.warn("THREE.Triangle: .getPlane() target is now required"),a=new p);return a.setFromCoplanarPoints(this.a,this.b,this.c)},getBarycoord:function(a,
+b){return Aa.getBarycoord(a,this.a,this.b,this.c,b)},containsPoint:function(a){return Aa.containsPoint(a,this.a,this.b,this.c)},intersectsBox:function(a){return a.intersectsTriangle(this)},closestPointToPoint:function(){var a=new Ha,b=[new Ob,new Ob,new Ob],c=new p,d=new p;return function(e,f){void 0===f&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),f=new p);var g=Infinity;a.setFromCoplanarPoints(this.a,this.b,this.c);a.projectPoint(e,c);if(!0===this.containsPoint(c))f.copy(c);
+else for(b[0].set(this.a,this.b),b[1].set(this.b,this.c),b[2].set(this.c,this.a),e=0;e<b.length;e++){b[e].closestPointToPoint(c,!0,d);var h=c.distanceToSquared(d);h<g&&(g=h,f.copy(d))}return f}}(),equals:function(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)}});pa.prototype=Object.assign(Object.create(B.prototype),{constructor:pa,isMesh:!0,setDrawMode:function(a){this.drawMode=a},copy:function(a){B.prototype.copy.call(this,a);this.drawMode=a.drawMode;void 0!==a.morphTargetInfluences&&
+(this.morphTargetInfluences=a.morphTargetInfluences.slice());void 0!==a.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},a.morphTargetDictionary));return this},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length){var c=a[b[0]];if(void 0!==c)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},a=0,b=c.length;a<b;a++){var d=c[a].name||String(a);this.morphTargetInfluences.push(0);this.morphTargetDictionary[d]=
+a}}}else if(c=a.morphTargets,void 0!==c&&0<c.length)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},a=0,b=c.length;a<b;a++)d=c[a].name||String(a),this.morphTargetInfluences.push(0),this.morphTargetDictionary[d]=a},raycast:function(){function a(a,b,c,d,e,f,g){Aa.getBarycoord(a,b,c,d,u);e.multiplyScalar(u.x);f.multiplyScalar(u.y);g.multiplyScalar(u.z);e.add(f).add(g);return e.clone()}function b(a,b,c,d,e,f,g,h){if(null===(1===b.side?d.intersectTriangle(g,f,e,!0,h):d.intersectTriangle(e,
+f,g,2!==b.side,h)))return null;x.copy(h);x.applyMatrix4(a.matrixWorld);b=c.ray.origin.distanceTo(x);return b<c.near||b>c.far?null:{distance:b,point:x.clone(),object:a}}function c(c,d,e,f,m,k,n,p){g.fromBufferAttribute(f,k);h.fromBufferAttribute(f,n);l.fromBufferAttribute(f,p);if(c=b(c,c.material,d,e,g,h,l,z))m&&(r.fromBufferAttribute(m,k),q.fromBufferAttribute(m,n),t.fromBufferAttribute(m,p),c.uv=a(z,g,h,l,r,q,t)),m=new Xa(k,n,p),Aa.getNormal(g,h,l,m.normal),c.face=m;return c}var d=new F,e=new sb,
+f=new Ga,g=new p,h=new p,l=new p,m=new p,k=new p,n=new p,r=new y,q=new y,t=new y,u=new p,z=new p,x=new p;return function(p,v){var u=this.geometry,w=this.material,x=this.matrixWorld;if(void 0!==w&&(null===u.boundingSphere&&u.computeBoundingSphere(),f.copy(u.boundingSphere),f.applyMatrix4(x),!1!==p.ray.intersectsSphere(f)&&(d.getInverse(x),e.copy(p.ray).applyMatrix4(d),null===u.boundingBox||!1!==e.intersectsBox(u.boundingBox)))){var y;if(u.isBufferGeometry){w=u.index;var A=u.attributes.position;u=u.attributes.uv;
+var H;if(null!==w)for(x=0,H=w.count;x<H;x+=3){var F=w.getX(x);var B=w.getX(x+1);var G=w.getX(x+2);if(y=c(this,p,e,A,u,F,B,G))y.faceIndex=Math.floor(x/3),v.push(y)}else if(void 0!==A)for(x=0,H=A.count;x<H;x+=3)if(F=x,B=x+1,G=x+2,y=c(this,p,e,A,u,F,B,G))y.faceIndex=Math.floor(x/3),v.push(y)}else if(u.isGeometry){x=Array.isArray(w);H=u.vertices;F=u.faces;B=u.faceVertexUvs[0];0<B.length&&(A=B);for(var I=0,K=F.length;I<K;I++){var J=F[I];y=x?w[J.materialIndex]:w;if(void 0!==y){B=H[J.a];G=H[J.b];var L=H[J.c];
+if(!0===y.morphTargets){var M=u.morphTargets,O=this.morphTargetInfluences;g.set(0,0,0);h.set(0,0,0);l.set(0,0,0);for(var P=0,R=M.length;P<R;P++){var T=O[P];if(0!==T){var U=M[P].vertices;g.addScaledVector(m.subVectors(U[J.a],B),T);h.addScaledVector(k.subVectors(U[J.b],G),T);l.addScaledVector(n.subVectors(U[J.c],L),T)}}g.add(B);h.add(G);l.add(L);B=g;G=h;L=l}if(y=b(this,y,p,e,B,G,L,z))A&&A[I]&&(M=A[I],r.copy(M[0]),q.copy(M[1]),t.copy(M[2]),y.uv=a(z,B,G,L,r,q,t)),y.face=J,y.faceIndex=I,v.push(y)}}}}}}(),
+clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});cb.prototype=Object.create(ca.prototype);cb.prototype.constructor=cb;cb.prototype.isCubeTexture=!0;Object.defineProperty(cb.prototype,"images",{get:function(){return this.image},set:function(a){this.image=a}});var Me=new ca,Ne=new cb,Ge=[],Ie=[],Le=new Float32Array(16),Ke=new Float32Array(9),Je=new Float32Array(4);Re.prototype.updateCache=function(a){var b=this.cache;a instanceof Float32Array&&b.length!==a.length&&
+(this.cache=new Float32Array(a.length));qa(b,a)};Se.prototype.setValue=function(a,b){for(var c=this.seq,d=0,e=c.length;d!==e;++d){var f=c[d];f.setValue(a,b[f.id])}};var Wd=/([\w\d_]+)(\])?(\[|\.)?/g;db.prototype.setValue=function(a,b,c){b=this.map[b];void 0!==b&&b.setValue(a,c,this.renderer)};db.prototype.setOptional=function(a,b,c){b=b[c];void 0!==b&&this.setValue(a,c,b)};db.upload=function(a,b,c,d){for(var e=0,f=b.length;e!==f;++e){var g=b[e],h=c[g.id];!1!==h.needsUpdate&&g.setValue(a,h.value,d)}};
+db.seqWithValue=function(a,b){for(var c=[],d=0,e=a.length;d!==e;++d){var f=a[d];f.id in b&&c.push(f)}return c};var wg=0,Fg=0;eb.prototype=Object.create(L.prototype);eb.prototype.constructor=eb;eb.prototype.isMeshDepthMaterial=!0;eb.prototype.copy=function(a){L.prototype.copy.call(this,a);this.depthPacking=a.depthPacking;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.map=a.map;this.alphaMap=a.alphaMap;this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;
+this.displacementBias=a.displacementBias;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;return this};fb.prototype=Object.create(L.prototype);fb.prototype.constructor=fb;fb.prototype.isMeshDistanceMaterial=!0;fb.prototype.copy=function(a){L.prototype.copy.call(this,a);this.referencePosition.copy(a.referencePosition);this.nearDistance=a.nearDistance;this.farDistance=a.farDistance;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.map=a.map;this.alphaMap=a.alphaMap;
+this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;return this};Qb.prototype=Object.create(ca.prototype);Qb.prototype.constructor=Qb;Qb.prototype.isCanvasTexture=!0;X.prototype=Object.assign(Object.create(Qa.prototype),{constructor:X,isPerspectiveCamera:!0,copy:function(a,b){Qa.prototype.copy.call(this,a,b);this.fov=a.fov;this.zoom=a.zoom;this.near=a.near;this.far=a.far;this.focus=a.focus;this.aspect=a.aspect;this.view=null===
+a.view?null:Object.assign({},a.view);this.filmGauge=a.filmGauge;this.filmOffset=a.filmOffset;return this},setFocalLength:function(a){a=.5*this.getFilmHeight()/a;this.fov=2*P.RAD2DEG*Math.atan(a);this.updateProjectionMatrix()},getFocalLength:function(){var a=Math.tan(.5*P.DEG2RAD*this.fov);return.5*this.getFilmHeight()/a},getEffectiveFOV:function(){return 2*P.RAD2DEG*Math.atan(Math.tan(.5*P.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/
+Math.max(this.aspect,1)},setViewOffset:function(a,b,c,d,e,f){this.aspect=a/b;null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=!0;this.view.fullWidth=a;this.view.fullHeight=b;this.view.offsetX=c;this.view.offsetY=d;this.view.width=e;this.view.height=f;this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1);this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=this.near,
+b=a*Math.tan(.5*P.DEG2RAD*this.fov)/this.zoom,c=2*b,d=this.aspect*c,e=-.5*d,f=this.view;if(null!==this.view&&this.view.enabled){var g=f.fullWidth,h=f.fullHeight;e+=f.offsetX*d/g;b-=f.offsetY*c/h;d*=f.width/g;c*=f.height/h}f=this.filmOffset;0!==f&&(e+=a*f/this.getFilmWidth());this.projectionMatrix.makePerspective(e,e+d,b,b-c,a,this.far)},toJSON:function(a){a=B.prototype.toJSON.call(this,a);a.object.fov=this.fov;a.object.zoom=this.zoom;a.object.near=this.near;a.object.far=this.far;a.object.focus=this.focus;
+a.object.aspect=this.aspect;null!==this.view&&(a.object.view=Object.assign({},this.view));a.object.filmGauge=this.filmGauge;a.object.filmOffset=this.filmOffset;return a}});Ec.prototype=Object.assign(Object.create(X.prototype),{constructor:Ec,isArrayCamera:!0});Sb.prototype.isFogExp2=!0;Sb.prototype.clone=function(){return new Sb(this.color,this.density)};Sb.prototype.toJSON=function(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}};Tb.prototype.isFog=!0;Tb.prototype.clone=function(){return new Tb(this.color,
+this.near,this.far)};Tb.prototype.toJSON=function(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}};sd.prototype=Object.assign(Object.create(B.prototype),{constructor:sd,copy:function(a,b){B.prototype.copy.call(this,a,b);null!==a.background&&(this.background=a.background.clone());null!==a.fog&&(this.fog=a.fog.clone());null!==a.overrideMaterial&&(this.overrideMaterial=a.overrideMaterial.clone());this.autoUpdate=a.autoUpdate;this.matrixAutoUpdate=a.matrixAutoUpdate;return this},
+toJSON:function(a){var b=B.prototype.toJSON.call(this,a);null!==this.background&&(b.object.background=this.background.toJSON(a));null!==this.fog&&(b.object.fog=this.fog.toJSON());return b}});ib.prototype=Object.create(L.prototype);ib.prototype.constructor=ib;ib.prototype.isSpriteMaterial=!0;ib.prototype.copy=function(a){L.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.rotation=a.rotation;return this};Fc.prototype=Object.assign(Object.create(B.prototype),{constructor:Fc,isSprite:!0,
+raycast:function(){var a=new p,b=new p,c=new p;return function(d,e){b.setFromMatrixPosition(this.matrixWorld);d.ray.closestPointToPoint(b,a);c.setFromMatrixScale(this.matrixWorld);var f=c.x*c.y/4;b.distanceToSquared(a)>f||(f=d.ray.origin.distanceTo(a),f<d.near||f>d.far||e.push({distance:f,point:a.clone(),face:null,object:this}))}}(),clone:function(){return(new this.constructor(this.material)).copy(this)},copy:function(a){B.prototype.copy.call(this,a);void 0!==a.center&&this.center.copy(a.center);
+return this}});Gc.prototype=Object.assign(Object.create(B.prototype),{constructor:Gc,copy:function(a){B.prototype.copy.call(this,a,!1);a=a.levels;for(var b=0,c=a.length;b<c;b++){var d=a[b];this.addLevel(d.object.clone(),d.distance)}return this},addLevel:function(a,b){void 0===b&&(b=0);b=Math.abs(b);for(var c=this.levels,d=0;d<c.length&&!(b<c[d].distance);d++);c.splice(d,0,{distance:b,object:a});this.add(a)},getObjectForDistance:function(a){for(var b=this.levels,c=1,d=b.length;c<d&&!(a<b[c].distance);c++);
+return b[c-1].object},raycast:function(){var a=new p;return function(b,c){a.setFromMatrixPosition(this.matrixWorld);var d=b.ray.origin.distanceTo(a);this.getObjectForDistance(d).raycast(b,c)}}(),update:function(){var a=new p,b=new p;return function(c){var d=this.levels;if(1<d.length){a.setFromMatrixPosition(c.matrixWorld);b.setFromMatrixPosition(this.matrixWorld);c=a.distanceTo(b);d[0].object.visible=!0;for(var e=1,f=d.length;e<f;e++)if(c>=d[e].distance)d[e-1].object.visible=!1,d[e].object.visible=
+!0;else break;for(;e<f;e++)d[e].object.visible=!1}}}(),toJSON:function(a){a=B.prototype.toJSON.call(this,a);a.object.levels=[];for(var b=this.levels,c=0,d=b.length;c<d;c++){var e=b[c];a.object.levels.push({object:e.object.uuid,distance:e.distance})}return a}});Object.assign(Hc.prototype,{calculateInverses:function(){this.boneInverses=[];for(var a=0,b=this.bones.length;a<b;a++){var c=new F;this.bones[a]&&c.getInverse(this.bones[a].matrixWorld);this.boneInverses.push(c)}},pose:function(){var a,b;var c=
+0;for(b=this.bones.length;c<b;c++)(a=this.bones[c])&&a.matrixWorld.getInverse(this.boneInverses[c]);c=0;for(b=this.bones.length;c<b;c++)if(a=this.bones[c])a.parent&&a.parent.isBone?(a.matrix.getInverse(a.parent.matrixWorld),a.matrix.multiply(a.matrixWorld)):a.matrix.copy(a.matrixWorld),a.matrix.decompose(a.position,a.quaternion,a.scale)},update:function(){var a=new F,b=new F;return function(){for(var c=this.bones,d=this.boneInverses,e=this.boneMatrices,f=this.boneTexture,g=0,h=c.length;g<h;g++)a.multiplyMatrices(c[g]?
+c[g].matrixWorld:b,d[g]),a.toArray(e,16*g);void 0!==f&&(f.needsUpdate=!0)}}(),clone:function(){return new Hc(this.bones,this.boneInverses)},getBoneByName:function(a){for(var b=0,c=this.bones.length;b<c;b++){var d=this.bones[b];if(d.name===a)return d}}});td.prototype=Object.assign(Object.create(B.prototype),{constructor:td,isBone:!0});ud.prototype=Object.assign(Object.create(pa.prototype),{constructor:ud,isSkinnedMesh:!0,initBones:function(){var a=[],b;if(this.geometry&&void 0!==this.geometry.bones){var c=
+0;for(b=this.geometry.bones.length;c<b;c++){var d=this.geometry.bones[c];var e=new td;a.push(e);e.name=d.name;e.position.fromArray(d.pos);e.quaternion.fromArray(d.rotq);void 0!==d.scl&&e.scale.fromArray(d.scl)}c=0;for(b=this.geometry.bones.length;c<b;c++)d=this.geometry.bones[c],-1!==d.parent&&null!==d.parent&&void 0!==a[d.parent]?a[d.parent].add(a[c]):this.add(a[c])}this.updateMatrixWorld(!0);return a},bind:function(a,b){this.skeleton=a;void 0===b&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),
+b=this.matrixWorld);this.bindMatrix.copy(b);this.bindMatrixInverse.getInverse(b)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){var a;if(this.geometry&&this.geometry.isGeometry)for(a=0;a<this.geometry.skinWeights.length;a++){var b=this.geometry.skinWeights[a];var c=1/b.manhattanLength();Infinity!==c?b.multiplyScalar(c):b.set(1,0,0,0)}else if(this.geometry&&this.geometry.isBufferGeometry){b=new U;var d=this.geometry.attributes.skinWeight;for(a=0;a<d.count;a++)b.x=d.getX(a),
+b.y=d.getY(a),b.z=d.getZ(a),b.w=d.getW(a),c=1/b.manhattanLength(),Infinity!==c?b.multiplyScalar(c):b.set(1,0,0,0),d.setXYZW(a,b.x,b.y,b.z,b.w)}},updateMatrixWorld:function(a){pa.prototype.updateMatrixWorld.call(this,a);"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)},clone:function(){return(new this.constructor(this.geometry,
+this.material)).copy(this)}});T.prototype=Object.create(L.prototype);T.prototype.constructor=T;T.prototype.isLineBasicMaterial=!0;T.prototype.copy=function(a){L.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidth=a.linewidth;this.linecap=a.linecap;this.linejoin=a.linejoin;return this};ma.prototype=Object.assign(Object.create(B.prototype),{constructor:ma,isLine:!0,computeLineDistances:function(){var a=new p,b=new p;return function(){var c=this.geometry;if(c.isBufferGeometry)if(null===
+c.index){for(var d=c.attributes.position,e=[0],f=1,g=d.count;f<g;f++)a.fromBufferAttribute(d,f-1),b.fromBufferAttribute(d,f),e[f]=e[f-1],e[f]+=a.distanceTo(b);c.addAttribute("lineDistance",new A(e,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(c.isGeometry)for(d=c.vertices,e=c.lineDistances,e[0]=0,f=1,g=d.length;f<g;f++)e[f]=e[f-1],e[f]+=d[f-1].distanceTo(d[f]);return this}}(),raycast:function(){var a=new F,b=new sb,c=
+new Ga;return function(d,e){var f=d.linePrecision;f*=f;var g=this.geometry,h=this.matrixWorld;null===g.boundingSphere&&g.computeBoundingSphere();c.copy(g.boundingSphere);c.applyMatrix4(h);if(!1!==d.ray.intersectsSphere(c)){a.getInverse(h);b.copy(d.ray).applyMatrix4(a);var l=new p,m=new p;h=new p;var k=new p,n=this&&this.isLineSegments?2:1;if(g.isBufferGeometry){var r=g.index,q=g.attributes.position.array;if(null!==r){r=r.array;g=0;for(var t=r.length-1;g<t;g+=n){var u=r[g+1];l.fromArray(q,3*r[g]);
+m.fromArray(q,3*u);u=b.distanceSqToSegment(l,m,k,h);u>f||(k.applyMatrix4(this.matrixWorld),u=d.ray.origin.distanceTo(k),u<d.near||u>d.far||e.push({distance:u,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}}else for(g=0,t=q.length/3-1;g<t;g+=n)l.fromArray(q,3*g),m.fromArray(q,3*g+3),u=b.distanceSqToSegment(l,m,k,h),u>f||(k.applyMatrix4(this.matrixWorld),u=d.ray.origin.distanceTo(k),u<d.near||u>d.far||e.push({distance:u,point:h.clone().applyMatrix4(this.matrixWorld),
+index:g,face:null,faceIndex:null,object:this}))}else if(g.isGeometry)for(l=g.vertices,m=l.length,g=0;g<m-1;g+=n)u=b.distanceSqToSegment(l[g],l[g+1],k,h),u>f||(k.applyMatrix4(this.matrixWorld),u=d.ray.origin.distanceTo(k),u<d.near||u>d.far||e.push({distance:u,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});aa.prototype=Object.assign(Object.create(ma.prototype),
+{constructor:aa,isLineSegments:!0,computeLineDistances:function(){var a=new p,b=new p;return function(){var c=this.geometry;if(c.isBufferGeometry)if(null===c.index){for(var d=c.attributes.position,e=[],f=0,g=d.count;f<g;f+=2)a.fromBufferAttribute(d,f),b.fromBufferAttribute(d,f+1),e[f]=0===f?0:e[f-1],e[f+1]=e[f]+a.distanceTo(b);c.addAttribute("lineDistance",new A(e,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(c.isGeometry)for(d=
+c.vertices,e=c.lineDistances,f=0,g=d.length;f<g;f+=2)a.copy(d[f]),b.copy(d[f+1]),e[f]=0===f?0:e[f-1],e[f+1]=e[f]+a.distanceTo(b);return this}}()});vd.prototype=Object.assign(Object.create(ma.prototype),{constructor:vd,isLineLoop:!0});Ia.prototype=Object.create(L.prototype);Ia.prototype.constructor=Ia;Ia.prototype.isPointsMaterial=!0;Ia.prototype.copy=function(a){L.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.size=a.size;this.sizeAttenuation=a.sizeAttenuation;this.morphTargets=
+a.morphTargets;return this};Ub.prototype=Object.assign(Object.create(B.prototype),{constructor:Ub,isPoints:!0,raycast:function(){var a=new F,b=new sb,c=new Ga;return function(d,e){function f(a,c){var f=b.distanceSqToPoint(a);f<k&&(b.closestPointToPoint(a,n),n.applyMatrix4(l),a=d.ray.origin.distanceTo(n),a<d.near||a>d.far||e.push({distance:a,distanceToRay:Math.sqrt(f),point:n.clone(),index:c,face:null,object:g}))}var g=this,h=this.geometry,l=this.matrixWorld,m=d.params.Points.threshold;null===h.boundingSphere&&
+h.computeBoundingSphere();c.copy(h.boundingSphere);c.applyMatrix4(l);c.radius+=m;if(!1!==d.ray.intersectsSphere(c)){a.getInverse(l);b.copy(d.ray).applyMatrix4(a);m/=(this.scale.x+this.scale.y+this.scale.z)/3;var k=m*m;m=new p;var n=new p;if(h.isBufferGeometry){var r=h.index;h=h.attributes.position.array;if(null!==r){var q=r.array;r=0;for(var t=q.length;r<t;r++){var u=q[r];m.fromArray(h,3*u);f(m,u)}}else for(r=0,q=h.length/3;r<q;r++)m.fromArray(h,3*r),f(m,r)}else for(m=h.vertices,r=0,q=m.length;r<
+q;r++)f(m[r],r)}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});wd.prototype=Object.assign(Object.create(B.prototype),{constructor:wd,isGroup:!0});$d.prototype=Object.assign(Object.create(ca.prototype),{constructor:$d,isVideoTexture:!0,update:function(){var a=this.image;a.readyState>=a.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}});Vb.prototype=Object.create(ca.prototype);Vb.prototype.constructor=Vb;Vb.prototype.isCompressedTexture=!0;Ic.prototype=Object.create(ca.prototype);
+Ic.prototype.constructor=Ic;Ic.prototype.isDepthTexture=!0;Wb.prototype=Object.create(G.prototype);Wb.prototype.constructor=Wb;Jc.prototype=Object.create(J.prototype);Jc.prototype.constructor=Jc;Xb.prototype=Object.create(G.prototype);Xb.prototype.constructor=Xb;Kc.prototype=Object.create(J.prototype);Kc.prototype.constructor=Kc;va.prototype=Object.create(G.prototype);va.prototype.constructor=va;Lc.prototype=Object.create(J.prototype);Lc.prototype.constructor=Lc;Yb.prototype=Object.create(va.prototype);
+Yb.prototype.constructor=Yb;Mc.prototype=Object.create(J.prototype);Mc.prototype.constructor=Mc;ub.prototype=Object.create(va.prototype);ub.prototype.constructor=ub;Nc.prototype=Object.create(J.prototype);Nc.prototype.constructor=Nc;Zb.prototype=Object.create(va.prototype);Zb.prototype.constructor=Zb;Oc.prototype=Object.create(J.prototype);Oc.prototype.constructor=Oc;$b.prototype=Object.create(va.prototype);$b.prototype.constructor=$b;Pc.prototype=Object.create(J.prototype);Pc.prototype.constructor=
+Pc;ac.prototype=Object.create(G.prototype);ac.prototype.constructor=ac;Qc.prototype=Object.create(J.prototype);Qc.prototype.constructor=Qc;bc.prototype=Object.create(G.prototype);bc.prototype.constructor=bc;Rc.prototype=Object.create(J.prototype);Rc.prototype.constructor=Rc;cc.prototype=Object.create(G.prototype);cc.prototype.constructor=cc;var Sg={triangulate:function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=af(a,0,e,c,!0),g=[];if(!f)return g;var h;if(d){var l=c;d=[];var m;var k=0;for(m=
+b.length;k<m;k++){var n=b[k]*l;var p=k<m-1?b[k+1]*l:a.length;n=af(a,n,p,l,!1);n===n.next&&(n.steiner=!0);d.push(Pg(n))}d.sort(Ng);for(k=0;k<d.length;k++){b=d[k];l=f;if(l=Og(b,l))b=df(l,b),Tc(b,b.next);f=Tc(f,f.next)}}if(a.length>80*c){var q=h=a[0];var t=d=a[1];for(l=c;l<e;l+=c)k=a[l],b=a[l+1],k<q&&(q=k),b<t&&(t=b),k>h&&(h=k),b>d&&(d=b);h=Math.max(h-q,d-t);h=0!==h?1/h:0}Uc(f,g,c,q,t,h);return g}},Za={area:function(a){for(var b=a.length,c=0,d=b-1,e=0;e<b;d=e++)c+=a[d].x*a[e].y-a[e].x*a[d].y;return.5*
+c},isClockWise:function(a){return 0>Za.area(a)},triangulateShape:function(a,b){var c=[],d=[],e=[];ef(a);ff(c,a);var f=a.length;b.forEach(ef);for(a=0;a<b.length;a++)d.push(f),f+=b[a].length,ff(c,b[a]);b=Sg.triangulate(c,d);for(a=0;a<b.length;a+=3)e.push(b.slice(a,a+3));return e}};wb.prototype=Object.create(J.prototype);wb.prototype.constructor=wb;wb.prototype.toJSON=function(){var a=J.prototype.toJSON.call(this);return gf(this.parameters.shapes,this.parameters.options,a)};Sa.prototype=Object.create(G.prototype);
+Sa.prototype.constructor=Sa;Sa.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);return gf(this.parameters.shapes,this.parameters.options,a)};var Qg={generateTopUV:function(a,b,c,d,e){a=b[3*d];d=b[3*d+1];var f=b[3*e];e=b[3*e+1];return[new y(b[3*c],b[3*c+1]),new y(a,d),new y(f,e)]},generateSideWallUV:function(a,b,c,d,e,f){a=b[3*c];var g=b[3*c+1];c=b[3*c+2];var h=b[3*d],l=b[3*d+1];d=b[3*d+2];var m=b[3*e],k=b[3*e+1];e=b[3*e+2];var n=b[3*f],p=b[3*f+1];b=b[3*f+2];return.01>Math.abs(g-l)?
+[new y(a,1-c),new y(h,1-d),new y(m,1-e),new y(n,1-b)]:[new y(g,1-c),new y(l,1-d),new y(k,1-e),new y(p,1-b)]}};Wc.prototype=Object.create(J.prototype);Wc.prototype.constructor=Wc;dc.prototype=Object.create(Sa.prototype);dc.prototype.constructor=dc;Xc.prototype=Object.create(J.prototype);Xc.prototype.constructor=Xc;xb.prototype=Object.create(G.prototype);xb.prototype.constructor=xb;Yc.prototype=Object.create(J.prototype);Yc.prototype.constructor=Yc;ec.prototype=Object.create(G.prototype);ec.prototype.constructor=
+ec;Zc.prototype=Object.create(J.prototype);Zc.prototype.constructor=Zc;fc.prototype=Object.create(G.prototype);fc.prototype.constructor=fc;yb.prototype=Object.create(J.prototype);yb.prototype.constructor=yb;yb.prototype.toJSON=function(){var a=J.prototype.toJSON.call(this);return hf(this.parameters.shapes,a)};zb.prototype=Object.create(G.prototype);zb.prototype.constructor=zb;zb.prototype.toJSON=function(){var a=G.prototype.toJSON.call(this);return hf(this.parameters.shapes,a)};gc.prototype=Object.create(G.prototype);
+gc.prototype.constructor=gc;Ab.prototype=Object.create(J.prototype);Ab.prototype.constructor=Ab;$a.prototype=Object.create(G.prototype);$a.prototype.constructor=$a;$c.prototype=Object.create(Ab.prototype);$c.prototype.constructor=$c;ad.prototype=Object.create($a.prototype);ad.prototype.constructor=ad;bd.prototype=Object.create(J.prototype);bd.prototype.constructor=bd;hc.prototype=Object.create(G.prototype);hc.prototype.constructor=hc;var za=Object.freeze({WireframeGeometry:Wb,ParametricGeometry:Jc,
+ParametricBufferGeometry:Xb,TetrahedronGeometry:Lc,TetrahedronBufferGeometry:Yb,OctahedronGeometry:Mc,OctahedronBufferGeometry:ub,IcosahedronGeometry:Nc,IcosahedronBufferGeometry:Zb,DodecahedronGeometry:Oc,DodecahedronBufferGeometry:$b,PolyhedronGeometry:Kc,PolyhedronBufferGeometry:va,TubeGeometry:Pc,TubeBufferGeometry:ac,TorusKnotGeometry:Qc,TorusKnotBufferGeometry:bc,TorusGeometry:Rc,TorusBufferGeometry:cc,TextGeometry:Wc,TextBufferGeometry:dc,SphereGeometry:Xc,SphereBufferGeometry:xb,RingGeometry:Yc,
+RingBufferGeometry:ec,PlaneGeometry:Cc,PlaneBufferGeometry:rb,LatheGeometry:Zc,LatheBufferGeometry:fc,ShapeGeometry:yb,ShapeBufferGeometry:zb,ExtrudeGeometry:wb,ExtrudeBufferGeometry:Sa,EdgesGeometry:gc,ConeGeometry:$c,ConeBufferGeometry:ad,CylinderGeometry:Ab,CylinderBufferGeometry:$a,CircleGeometry:bd,CircleBufferGeometry:hc,BoxGeometry:Nb,BoxBufferGeometry:pb});Bb.prototype=Object.create(L.prototype);Bb.prototype.constructor=Bb;Bb.prototype.isShadowMaterial=!0;Bb.prototype.copy=function(a){L.prototype.copy.call(this,
+a);this.color.copy(a.color);return this};ic.prototype=Object.create(Ea.prototype);ic.prototype.constructor=ic;ic.prototype.isRawShaderMaterial=!0;Ta.prototype=Object.create(L.prototype);Ta.prototype.constructor=Ta;Ta.prototype.isMeshStandardMaterial=!0;Ta.prototype.copy=function(a){L.prototype.copy.call(this,a);this.defines={STANDARD:""};this.color.copy(a.color);this.roughness=a.roughness;this.metalness=a.metalness;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;
+this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.roughnessMap=a.roughnessMap;this.metalnessMap=a.metalnessMap;this.alphaMap=
+a.alphaMap;this.envMap=a.envMap;this.envMapIntensity=a.envMapIntensity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};Cb.prototype=Object.create(Ta.prototype);Cb.prototype.constructor=Cb;Cb.prototype.isMeshPhysicalMaterial=!0;Cb.prototype.copy=function(a){Ta.prototype.copy.call(this,
+a);this.defines={PHYSICAL:""};this.reflectivity=a.reflectivity;this.clearCoat=a.clearCoat;this.clearCoatRoughness=a.clearCoatRoughness;return this};Ja.prototype=Object.create(L.prototype);Ja.prototype.constructor=Ja;Ja.prototype.isMeshPhongMaterial=!0;Ja.prototype.copy=function(a){L.prototype.copy.call(this,a);this.color.copy(a.color);this.specular.copy(a.specular);this.shininess=a.shininess;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=
+a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=
+a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};Db.prototype=Object.create(Ja.prototype);Db.prototype.constructor=Db;Db.prototype.isMeshToonMaterial=!0;Db.prototype.copy=function(a){Ja.prototype.copy.call(this,a);this.gradientMap=a.gradientMap;
+return this};Eb.prototype=Object.create(L.prototype);Eb.prototype.constructor=Eb;Eb.prototype.isMeshNormalMaterial=!0;Eb.prototype.copy=function(a){L.prototype.copy.call(this,a);this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.wireframe=a.wireframe;this.wireframeLinewidth=
+a.wireframeLinewidth;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};Fb.prototype=Object.create(L.prototype);Fb.prototype.constructor=Fb;Fb.prototype.isMeshLambertMaterial=!0;Fb.prototype.copy=function(a){L.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=
+a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};Gb.prototype=
+Object.create(T.prototype);Gb.prototype.constructor=Gb;Gb.prototype.isLineDashedMaterial=!0;Gb.prototype.copy=function(a){T.prototype.copy.call(this,a);this.scale=a.scale;this.dashSize=a.dashSize;this.gapSize=a.gapSize;return this};var Tg=Object.freeze({ShadowMaterial:Bb,SpriteMaterial:ib,RawShaderMaterial:ic,ShaderMaterial:Ea,PointsMaterial:Ia,MeshPhysicalMaterial:Cb,MeshStandardMaterial:Ta,MeshPhongMaterial:Ja,MeshToonMaterial:Db,MeshNormalMaterial:Eb,MeshLambertMaterial:Fb,MeshDepthMaterial:eb,
+MeshDistanceMaterial:fb,MeshBasicMaterial:ka,LineDashedMaterial:Gb,LineBasicMaterial:T,Material:L}),Kb={enabled:!1,files:{},add:function(a,b){!1!==this.enabled&&(this.files[a]=b)},get:function(a){if(!1!==this.enabled)return this.files[a]},remove:function(a){delete this.files[a]},clear:function(){this.files={}}},wa=new ce,bb={};Object.assign(Ka.prototype,{load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var e=this,f=Kb.get(a);if(void 0!==f)return e.manager.itemStart(a),
+setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;if(void 0!==bb[a])bb[a].push({onLoad:b,onProgress:c,onError:d});else{var g=a.match(/^data:(.*?)(;base64)?,(.*)$/);if(g){c=g[1];var h=!!g[2];g=g[3];g=window.decodeURIComponent(g);h&&(g=window.atob(g));try{var l=(this.responseType||"").toLowerCase();switch(l){case "arraybuffer":case "blob":var m=new Uint8Array(g.length);for(h=0;h<g.length;h++)m[h]=g.charCodeAt(h);var k="blob"===l?new Blob([m.buffer],{type:c}):m.buffer;break;case "document":k=
+(new DOMParser).parseFromString(g,c);break;case "json":k=JSON.parse(g);break;default:k=g}window.setTimeout(function(){b&&b(k);e.manager.itemEnd(a)},0)}catch(r){window.setTimeout(function(){d&&d(r);e.manager.itemEnd(a);e.manager.itemError(a)},0)}}else{bb[a]=[];bb[a].push({onLoad:b,onProgress:c,onError:d});var n=new XMLHttpRequest;n.open("GET",a,!0);n.addEventListener("load",function(b){var c=this.response;Kb.add(a,c);var d=bb[a];delete bb[a];if(200===this.status||0===this.status){0===this.status&&
+console.warn("THREE.FileLoader: HTTP Status 0 received.");for(var f=0,g=d.length;f<g;f++){var h=d[f];if(h.onLoad)h.onLoad(c)}e.manager.itemEnd(a)}else{f=0;for(g=d.length;f<g;f++)if(h=d[f],h.onError)h.onError(b);e.manager.itemEnd(a);e.manager.itemError(a)}},!1);n.addEventListener("progress",function(b){for(var c=bb[a],d=0,e=c.length;d<e;d++){var f=c[d];if(f.onProgress)f.onProgress(b)}},!1);n.addEventListener("error",function(b){var c=bb[a];delete bb[a];for(var d=0,f=c.length;d<f;d++){var g=c[d];if(g.onError)g.onError(b)}e.manager.itemEnd(a);
+e.manager.itemError(a)},!1);void 0!==this.responseType&&(n.responseType=this.responseType);void 0!==this.withCredentials&&(n.withCredentials=this.withCredentials);n.overrideMimeType&&n.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(h in this.requestHeader)n.setRequestHeader(h,this.requestHeader[h]);n.send(null)}e.manager.itemStart(a);return n}},setPath:function(a){this.path=a;return this},setResponseType:function(a){this.responseType=a;return this},setWithCredentials:function(a){this.withCredentials=
+a;return this},setMimeType:function(a){this.mimeType=a;return this},setRequestHeader:function(a){this.requestHeader=a;return this}});Object.assign(jf.prototype,{load:function(a,b,c,d){function e(e){l.load(a[e],function(a){a=f._parser(a,!0);g[e]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};m+=1;6===m&&(1===a.mipmapCount&&(h.minFilter=1006),h.format=a.format,h.needsUpdate=!0,b&&b(h))},c,d)}var f=this,g=[],h=new Vb;h.image=g;var l=new Ka(this.manager);l.setPath(this.path);l.setResponseType("arraybuffer");
+if(Array.isArray(a))for(var m=0,k=0,n=a.length;k<n;++k)e(k);else l.load(a,function(a){a=f._parser(a,!0);if(a.isCubemap)for(var c=a.mipmaps.length/a.mipmapCount,d=0;d<c;d++){g[d]={mipmaps:[]};for(var e=0;e<a.mipmapCount;e++)g[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+e]),g[d].format=a.format,g[d].width=a.width,g[d].height=a.height}else h.image.width=a.width,h.image.height=a.height,h.mipmaps=a.mipmaps;1===a.mipmapCount&&(h.minFilter=1006);h.format=a.format;h.needsUpdate=!0;b&&b(h)},c,d);return h},setPath:function(a){this.path=
+a;return this}});Object.assign(de.prototype,{load:function(a,b,c,d){var e=this,f=new lb,g=new Ka(this.manager);g.setResponseType("arraybuffer");g.load(a,function(a){if(a=e._parser(a))void 0!==a.image?f.image=a.image:void 0!==a.data&&(f.image.width=a.width,f.image.height=a.height,f.image.data=a.data),f.wrapS=void 0!==a.wrapS?a.wrapS:1001,f.wrapT=void 0!==a.wrapT?a.wrapT:1001,f.magFilter=void 0!==a.magFilter?a.magFilter:1006,f.minFilter=void 0!==a.minFilter?a.minFilter:1008,f.anisotropy=void 0!==a.anisotropy?
+a.anisotropy:1,void 0!==a.format&&(f.format=a.format),void 0!==a.type&&(f.type=a.type),void 0!==a.mipmaps&&(f.mipmaps=a.mipmaps),1===a.mipmapCount&&(f.minFilter=1006),f.needsUpdate=!0,b&&b(f,a)},c,d);return f}});Object.assign(cd.prototype,{crossOrigin:"Anonymous",load:function(a,b,c,d){function e(){l.removeEventListener("load",e,!1);l.removeEventListener("error",f,!1);Kb.add(a,this);b&&b(this);g.manager.itemEnd(a)}function f(b){l.removeEventListener("load",e,!1);l.removeEventListener("error",f,!1);
+d&&d(b);g.manager.itemEnd(a);g.manager.itemError(a)}void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var g=this,h=Kb.get(a);if(void 0!==h)return g.manager.itemStart(a),setTimeout(function(){b&&b(h);g.manager.itemEnd(a)},0),h;var l=document.createElementNS("http://www.w3.org/1999/xhtml","img");l.addEventListener("load",e,!1);l.addEventListener("error",f,!1);"data:"!==a.substr(0,5)&&void 0!==this.crossOrigin&&(l.crossOrigin=this.crossOrigin);g.manager.itemStart(a);
+l.src=a;return l},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this}});Object.assign(ee.prototype,{crossOrigin:"Anonymous",load:function(a,b,c,d){function e(c){g.load(a[c],function(a){f.images[c]=a;h++;6===h&&(f.needsUpdate=!0,b&&b(f))},void 0,d)}var f=new cb,g=new cd(this.manager);g.setCrossOrigin(this.crossOrigin);g.setPath(this.path);var h=0;for(c=0;c<a.length;++c)e(c);return f},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=
+a;return this}});Object.assign(yd.prototype,{crossOrigin:"Anonymous",load:function(a,b,c,d){var e=new ca,f=new cd(this.manager);f.setCrossOrigin(this.crossOrigin);f.setPath(this.path);f.load(a,function(c){e.image=c;c=0<a.search(/\.(jpg|jpeg)$/)||0===a.search(/^data:image\/jpeg/);e.format=c?1022:1023;e.needsUpdate=!0;void 0!==b&&b(e)},c,d);return e},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this}});Object.assign(I.prototype,{getPoint:function(){console.warn("THREE.Curve: .getPoint() not implemented.");
+return null},getPointAt:function(a,b){a=this.getUtoTmapping(a);return this.getPoint(a,b)},getPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/a));return b},getSpacedPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPointAt(c/a));return b},getLength:function(){var a=this.getLengths();return a[a.length-1]},getLengths:function(a){void 0===a&&(a=this.arcLengthDivisions);if(this.cacheArcLengths&&this.cacheArcLengths.length===a+1&&!this.needsUpdate)return this.cacheArcLengths;
+this.needsUpdate=!1;var b=[],c=this.getPoint(0),d,e=0;b.push(0);for(d=1;d<=a;d++){var f=this.getPoint(d/a);e+=f.distanceTo(c);b.push(e);c=f}return this.cacheArcLengths=b},updateArcLengths:function(){this.needsUpdate=!0;this.getLengths()},getUtoTmapping:function(a,b){var c=this.getLengths(),d=c.length;b=b?b:a*c[d-1];for(var e=0,f=d-1,g;e<=f;)if(a=Math.floor(e+(f-e)/2),g=c[a]-b,0>g)e=a+1;else if(0<g)f=a-1;else{f=a;break}a=f;if(c[a]===b)return a/(d-1);e=c[a];return(a+(b-e)/(c[a+1]-e))/(d-1)},getTangent:function(a){var b=
+a-1E-4;a+=1E-4;0>b&&(b=0);1<a&&(a=1);b=this.getPoint(b);return this.getPoint(a).clone().sub(b).normalize()},getTangentAt:function(a){a=this.getUtoTmapping(a);return this.getTangent(a)},computeFrenetFrames:function(a,b){var c=new p,d=[],e=[],f=[],g=new p,h=new F,l;for(l=0;l<=a;l++){var m=l/a;d[l]=this.getTangentAt(m);d[l].normalize()}e[0]=new p;f[0]=new p;l=Number.MAX_VALUE;m=Math.abs(d[0].x);var k=Math.abs(d[0].y),n=Math.abs(d[0].z);m<=l&&(l=m,c.set(1,0,0));k<=l&&(l=k,c.set(0,1,0));n<=l&&c.set(0,
+0,1);g.crossVectors(d[0],c).normalize();e[0].crossVectors(d[0],g);f[0].crossVectors(d[0],e[0]);for(l=1;l<=a;l++)e[l]=e[l-1].clone(),f[l]=f[l-1].clone(),g.crossVectors(d[l-1],d[l]),g.length()>Number.EPSILON&&(g.normalize(),c=Math.acos(P.clamp(d[l-1].dot(d[l]),-1,1)),e[l].applyMatrix4(h.makeRotationAxis(g,c))),f[l].crossVectors(d[l],e[l]);if(!0===b)for(c=Math.acos(P.clamp(e[0].dot(e[a]),-1,1)),c/=a,0<d[0].dot(g.crossVectors(e[0],e[a]))&&(c=-c),l=1;l<=a;l++)e[l].applyMatrix4(h.makeRotationAxis(d[l],
+c*l)),f[l].crossVectors(d[l],e[l]);return{tangents:d,normals:e,binormals:f}},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this},toJSON:function(){var a={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};a.arcLengthDivisions=this.arcLengthDivisions;a.type=this.type;return a},fromJSON:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this}});xa.prototype=Object.create(I.prototype);xa.prototype.constructor=
+xa;xa.prototype.isEllipseCurve=!0;xa.prototype.getPoint=function(a,b){b=b||new y;for(var c=2*Math.PI,d=this.aEndAngle-this.aStartAngle,e=Math.abs(d)<Number.EPSILON;0>d;)d+=c;for(;d>c;)d-=c;d<Number.EPSILON&&(d=e?0:c);!0!==this.aClockwise||e||(d=d===c?-c:d-c);c=this.aStartAngle+a*d;a=this.aX+this.xRadius*Math.cos(c);var f=this.aY+this.yRadius*Math.sin(c);0!==this.aRotation&&(c=Math.cos(this.aRotation),d=Math.sin(this.aRotation),e=a-this.aX,f-=this.aY,a=e*c-f*d+this.aX,f=e*d+f*c+this.aY);return b.set(a,
+f)};xa.prototype.copy=function(a){I.prototype.copy.call(this,a);this.aX=a.aX;this.aY=a.aY;this.xRadius=a.xRadius;this.yRadius=a.yRadius;this.aStartAngle=a.aStartAngle;this.aEndAngle=a.aEndAngle;this.aClockwise=a.aClockwise;this.aRotation=a.aRotation;return this};xa.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.aX=this.aX;a.aY=this.aY;a.xRadius=this.xRadius;a.yRadius=this.yRadius;a.aStartAngle=this.aStartAngle;a.aEndAngle=this.aEndAngle;a.aClockwise=this.aClockwise;a.aRotation=
+this.aRotation;return a};xa.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.aX=a.aX;this.aY=a.aY;this.xRadius=a.xRadius;this.yRadius=a.yRadius;this.aStartAngle=a.aStartAngle;this.aEndAngle=a.aEndAngle;this.aClockwise=a.aClockwise;this.aRotation=a.aRotation;return this};jc.prototype=Object.create(xa.prototype);jc.prototype.constructor=jc;jc.prototype.isArcCurve=!0;var Rd=new p,Ae=new fe,Be=new fe,Ce=new fe;ra.prototype=Object.create(I.prototype);ra.prototype.constructor=ra;ra.prototype.isCatmullRomCurve3=
+!0;ra.prototype.getPoint=function(a,b){b=b||new p;var c=this.points,d=c.length;a*=d-(this.closed?0:1);var e=Math.floor(a);a-=e;this.closed?e+=0<e?0:(Math.floor(Math.abs(e)/d)+1)*d:0===a&&e===d-1&&(e=d-2,a=1);if(this.closed||0<e)var f=c[(e-1)%d];else Rd.subVectors(c[0],c[1]).add(c[0]),f=Rd;var g=c[e%d];var h=c[(e+1)%d];this.closed||e+2<d?c=c[(e+2)%d]:(Rd.subVectors(c[d-1],c[d-2]).add(c[d-1]),c=Rd);if("centripetal"===this.curveType||"chordal"===this.curveType){var l="chordal"===this.curveType?.5:.25;
+d=Math.pow(f.distanceToSquared(g),l);e=Math.pow(g.distanceToSquared(h),l);l=Math.pow(h.distanceToSquared(c),l);1E-4>e&&(e=1);1E-4>d&&(d=e);1E-4>l&&(l=e);Ae.initNonuniformCatmullRom(f.x,g.x,h.x,c.x,d,e,l);Be.initNonuniformCatmullRom(f.y,g.y,h.y,c.y,d,e,l);Ce.initNonuniformCatmullRom(f.z,g.z,h.z,c.z,d,e,l)}else"catmullrom"===this.curveType&&(Ae.initCatmullRom(f.x,g.x,h.x,c.x,this.tension),Be.initCatmullRom(f.y,g.y,h.y,c.y,this.tension),Ce.initCatmullRom(f.z,g.z,h.z,c.z,this.tension));b.set(Ae.calc(a),
+Be.calc(a),Ce.calc(a));return b};ra.prototype.copy=function(a){I.prototype.copy.call(this,a);this.points=[];for(var b=0,c=a.points.length;b<c;b++)this.points.push(a.points[b].clone());this.closed=a.closed;this.curveType=a.curveType;this.tension=a.tension;return this};ra.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.points=[];for(var b=0,c=this.points.length;b<c;b++)a.points.push(this.points[b].toArray());a.closed=this.closed;a.curveType=this.curveType;a.tension=this.tension;return a};
+ra.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.points=[];for(var b=0,c=a.points.length;b<c;b++){var d=a.points[b];this.points.push((new p).fromArray(d))}this.closed=a.closed;this.curveType=a.curveType;this.tension=a.tension;return this};La.prototype=Object.create(I.prototype);La.prototype.constructor=La;La.prototype.isCubicBezierCurve=!0;La.prototype.getPoint=function(a,b){b=b||new y;var c=this.v0,d=this.v1,e=this.v2,f=this.v3;b.set(ed(a,c.x,d.x,e.x,f.x),ed(a,c.y,d.y,e.y,
+f.y));return b};La.prototype.copy=function(a){I.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);this.v3.copy(a.v3);return this};La.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();a.v3=this.v3.toArray();return a};La.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);this.v3.fromArray(a.v3);return this};
+Ua.prototype=Object.create(I.prototype);Ua.prototype.constructor=Ua;Ua.prototype.isCubicBezierCurve3=!0;Ua.prototype.getPoint=function(a,b){b=b||new p;var c=this.v0,d=this.v1,e=this.v2,f=this.v3;b.set(ed(a,c.x,d.x,e.x,f.x),ed(a,c.y,d.y,e.y,f.y),ed(a,c.z,d.z,e.z,f.z));return b};Ua.prototype.copy=function(a){I.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);this.v3.copy(a.v3);return this};Ua.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.v0=this.v0.toArray();
+a.v1=this.v1.toArray();a.v2=this.v2.toArray();a.v3=this.v3.toArray();return a};Ua.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);this.v3.fromArray(a.v3);return this};ya.prototype=Object.create(I.prototype);ya.prototype.constructor=ya;ya.prototype.isLineCurve=!0;ya.prototype.getPoint=function(a,b){b=b||new y;1===a?b.copy(this.v2):(b.copy(this.v2).sub(this.v1),b.multiplyScalar(a).add(this.v1));return b};ya.prototype.getPointAt=
+function(a,b){return this.getPoint(a,b)};ya.prototype.getTangent=function(){return this.v2.clone().sub(this.v1).normalize()};ya.prototype.copy=function(a){I.prototype.copy.call(this,a);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};ya.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};ya.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Ma.prototype=
+Object.create(I.prototype);Ma.prototype.constructor=Ma;Ma.prototype.isLineCurve3=!0;Ma.prototype.getPoint=function(a,b){b=b||new p;1===a?b.copy(this.v2):(b.copy(this.v2).sub(this.v1),b.multiplyScalar(a).add(this.v1));return b};Ma.prototype.getPointAt=function(a,b){return this.getPoint(a,b)};Ma.prototype.copy=function(a){I.prototype.copy.call(this,a);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Ma.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.v1=this.v1.toArray();a.v2=this.v2.toArray();
+return a};Ma.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Na.prototype=Object.create(I.prototype);Na.prototype.constructor=Na;Na.prototype.isQuadraticBezierCurve=!0;Na.prototype.getPoint=function(a,b){b=b||new y;var c=this.v0,d=this.v1,e=this.v2;b.set(dd(a,c.x,d.x,e.x),dd(a,c.y,d.y,e.y));return b};Na.prototype.copy=function(a){I.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};
+Na.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};Na.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Va.prototype=Object.create(I.prototype);Va.prototype.constructor=Va;Va.prototype.isQuadraticBezierCurve3=!0;Va.prototype.getPoint=function(a,b){b=b||new p;var c=this.v0,d=this.v1,e=this.v2;b.set(dd(a,c.x,
+d.x,e.x),dd(a,c.y,d.y,e.y),dd(a,c.z,d.z,e.z));return b};Va.prototype.copy=function(a){I.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Va.prototype.toJSON=function(){var a=I.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};Va.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Oa.prototype=Object.create(I.prototype);
+Oa.prototype.constructor=Oa;Oa.prototype.isSplineCurve=!0;Oa.prototype.getPoint=function(a,b){b=b||new y;var c=this.points,d=(c.length-1)*a;a=Math.floor(d);d-=a;var e=c[0===a?a:a-1],f=c[a],g=c[a>c.length-2?c.length-1:a+1];c=c[a>c.length-3?c.length-1:a+2];b.set(kf(d,e.x,f.x,g.x,c.x),kf(d,e.y,f.y,g.y,c.y));return b};Oa.prototype.copy=function(a){I.prototype.copy.call(this,a);this.points=[];for(var b=0,c=a.points.length;b<c;b++)this.points.push(a.points[b].clone());return this};Oa.prototype.toJSON=function(){var a=
+I.prototype.toJSON.call(this);a.points=[];for(var b=0,c=this.points.length;b<c;b++)a.points.push(this.points[b].toArray());return a};Oa.prototype.fromJSON=function(a){I.prototype.fromJSON.call(this,a);this.points=[];for(var b=0,c=a.points.length;b<c;b++){var d=a.points[b];this.points.push((new y).fromArray(d))}return this};var zf=Object.freeze({ArcCurve:jc,CatmullRomCurve3:ra,CubicBezierCurve:La,CubicBezierCurve3:Ua,EllipseCurve:xa,LineCurve:ya,LineCurve3:Ma,QuadraticBezierCurve:Na,QuadraticBezierCurve3:Va,
+SplineCurve:Oa});ab.prototype=Object.assign(Object.create(I.prototype),{constructor:ab,add:function(a){this.curves.push(a)},closePath:function(){var a=this.curves[0].getPoint(0),b=this.curves[this.curves.length-1].getPoint(1);a.equals(b)||this.curves.push(new ya(b,a))},getPoint:function(a){var b=a*this.getLength(),c=this.getCurveLengths();for(a=0;a<c.length;){if(c[a]>=b)return b=c[a]-b,a=this.curves[a],c=a.getLength(),a.getPointAt(0===c?0:1-b/c);a++}return null},getLength:function(){var a=this.getCurveLengths();
+return a[a.length-1]},updateArcLengths:function(){this.needsUpdate=!0;this.cacheLengths=null;this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var a=[],b=0,c=0,d=this.curves.length;c<d;c++)b+=this.curves[c].getLength(),a.push(b);return this.cacheLengths=a},getSpacedPoints:function(a){void 0===a&&(a=40);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/a));this.autoClose&&b.push(b[0]);return b},getPoints:function(a){a=
+a||12;for(var b=[],c,d=0,e=this.curves;d<e.length;d++){var f=e[d];f=f.getPoints(f&&f.isEllipseCurve?2*a:f&&(f.isLineCurve||f.isLineCurve3)?1:f&&f.isSplineCurve?a*f.points.length:a);for(var g=0;g<f.length;g++){var h=f[g];c&&c.equals(h)||(b.push(h),c=h)}}this.autoClose&&1<b.length&&!b[b.length-1].equals(b[0])&&b.push(b[0]);return b},copy:function(a){I.prototype.copy.call(this,a);this.curves=[];for(var b=0,c=a.curves.length;b<c;b++)this.curves.push(a.curves[b].clone());this.autoClose=a.autoClose;return this},
+toJSON:function(){var a=I.prototype.toJSON.call(this);a.autoClose=this.autoClose;a.curves=[];for(var b=0,c=this.curves.length;b<c;b++)a.curves.push(this.curves[b].toJSON());return a},fromJSON:function(a){I.prototype.fromJSON.call(this,a);this.autoClose=a.autoClose;this.curves=[];for(var b=0,c=a.curves.length;b<c;b++){var d=a.curves[b];this.curves.push((new zf[d.type]).fromJSON(d))}return this}});Pa.prototype=Object.assign(Object.create(ab.prototype),{constructor:Pa,setFromPoints:function(a){this.moveTo(a[0].x,
+a[0].y);for(var b=1,c=a.length;b<c;b++)this.lineTo(a[b].x,a[b].y)},moveTo:function(a,b){this.currentPoint.set(a,b)},lineTo:function(a,b){var c=new ya(this.currentPoint.clone(),new y(a,b));this.curves.push(c);this.currentPoint.set(a,b)},quadraticCurveTo:function(a,b,c,d){a=new Na(this.currentPoint.clone(),new y(a,b),new y(c,d));this.curves.push(a);this.currentPoint.set(c,d)},bezierCurveTo:function(a,b,c,d,e,f){a=new La(this.currentPoint.clone(),new y(a,b),new y(c,d),new y(e,f));this.curves.push(a);
+this.currentPoint.set(e,f)},splineThru:function(a){var b=[this.currentPoint.clone()].concat(a);b=new Oa(b);this.curves.push(b);this.currentPoint.copy(a[a.length-1])},arc:function(a,b,c,d,e,f){this.absarc(a+this.currentPoint.x,b+this.currentPoint.y,c,d,e,f)},absarc:function(a,b,c,d,e,f){this.absellipse(a,b,c,c,d,e,f)},ellipse:function(a,b,c,d,e,f,g,h){this.absellipse(a+this.currentPoint.x,b+this.currentPoint.y,c,d,e,f,g,h)},absellipse:function(a,b,c,d,e,f,g,h){a=new xa(a,b,c,d,e,f,g,h);0<this.curves.length&&
+(b=a.getPoint(0),b.equals(this.currentPoint)||this.lineTo(b.x,b.y));this.curves.push(a);a=a.getPoint(1);this.currentPoint.copy(a)},copy:function(a){ab.prototype.copy.call(this,a);this.currentPoint.copy(a.currentPoint);return this},toJSON:function(){var a=ab.prototype.toJSON.call(this);a.currentPoint=this.currentPoint.toArray();return a},fromJSON:function(a){ab.prototype.fromJSON.call(this,a);this.currentPoint.fromArray(a.currentPoint);return this}});jb.prototype=Object.assign(Object.create(Pa.prototype),
+{constructor:jb,getPointsHoles:function(a){for(var b=[],c=0,d=this.holes.length;c<d;c++)b[c]=this.holes[c].getPoints(a);return b},extractPoints:function(a){return{shape:this.getPoints(a),holes:this.getPointsHoles(a)}},copy:function(a){Pa.prototype.copy.call(this,a);this.holes=[];for(var b=0,c=a.holes.length;b<c;b++)this.holes.push(a.holes[b].clone());return this},toJSON:function(){var a=Pa.prototype.toJSON.call(this);a.uuid=this.uuid;a.holes=[];for(var b=0,c=this.holes.length;b<c;b++)a.holes.push(this.holes[b].toJSON());
+return a},fromJSON:function(a){Pa.prototype.fromJSON.call(this,a);this.uuid=a.uuid;this.holes=[];for(var b=0,c=a.holes.length;b<c;b++){var d=a.holes[b];this.holes.push((new Pa).fromJSON(d))}return this}});ba.prototype=Object.assign(Object.create(B.prototype),{constructor:ba,isLight:!0,copy:function(a){B.prototype.copy.call(this,a);this.color.copy(a.color);this.intensity=a.intensity;return this},toJSON:function(a){a=B.prototype.toJSON.call(this,a);a.object.color=this.color.getHex();a.object.intensity=
+this.intensity;void 0!==this.groundColor&&(a.object.groundColor=this.groundColor.getHex());void 0!==this.distance&&(a.object.distance=this.distance);void 0!==this.angle&&(a.object.angle=this.angle);void 0!==this.decay&&(a.object.decay=this.decay);void 0!==this.penumbra&&(a.object.penumbra=this.penumbra);void 0!==this.shadow&&(a.object.shadow=this.shadow.toJSON());return a}});zd.prototype=Object.assign(Object.create(ba.prototype),{constructor:zd,isHemisphereLight:!0,copy:function(a){ba.prototype.copy.call(this,
+a);this.groundColor.copy(a.groundColor);return this}});Object.assign(Hb.prototype,{copy:function(a){this.camera=a.camera.clone();this.bias=a.bias;this.radius=a.radius;this.mapSize.copy(a.mapSize);return this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var a={};0!==this.bias&&(a.bias=this.bias);1!==this.radius&&(a.radius=this.radius);if(512!==this.mapSize.x||512!==this.mapSize.y)a.mapSize=this.mapSize.toArray();a.camera=this.camera.toJSON(!1).object;delete a.camera.matrix;
+return a}});Ad.prototype=Object.assign(Object.create(Hb.prototype),{constructor:Ad,isSpotLightShadow:!0,update:function(a){var b=this.camera,c=2*P.RAD2DEG*a.angle,d=this.mapSize.width/this.mapSize.height;a=a.distance||b.far;if(c!==b.fov||d!==b.aspect||a!==b.far)b.fov=c,b.aspect=d,b.far=a,b.updateProjectionMatrix()}});Bd.prototype=Object.assign(Object.create(ba.prototype),{constructor:Bd,isSpotLight:!0,copy:function(a){ba.prototype.copy.call(this,a);this.distance=a.distance;this.angle=a.angle;this.penumbra=
+a.penumbra;this.decay=a.decay;this.target=a.target.clone();this.shadow=a.shadow.clone();return this}});Cd.prototype=Object.assign(Object.create(ba.prototype),{constructor:Cd,isPointLight:!0,copy:function(a){ba.prototype.copy.call(this,a);this.distance=a.distance;this.decay=a.decay;this.shadow=a.shadow.clone();return this}});Dd.prototype=Object.assign(Object.create(Hb.prototype),{constructor:Dd});Ed.prototype=Object.assign(Object.create(ba.prototype),{constructor:Ed,isDirectionalLight:!0,copy:function(a){ba.prototype.copy.call(this,
+a);this.target=a.target.clone();this.shadow=a.shadow.clone();return this}});Fd.prototype=Object.assign(Object.create(ba.prototype),{constructor:Fd,isAmbientLight:!0});Gd.prototype=Object.assign(Object.create(ba.prototype),{constructor:Gd,isRectAreaLight:!0,copy:function(a){ba.prototype.copy.call(this,a);this.width=a.width;this.height=a.height;return this},toJSON:function(a){a=ba.prototype.toJSON.call(this,a);a.object.width=this.width;a.object.height=this.height;return a}});Hd.prototype=Object.assign(Object.create(ja.prototype),
+{constructor:Hd,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});Id.prototype=Object.assign(Object.create(ja.prototype),{constructor:Id,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});Object.assign(ua.prototype,{evaluate:function(a){var b=this.parameterPositions,c=this._cachedIndex,d=b[c],e=b[c-1];a:{b:{c:{d:if(!(a<
+d)){for(var f=c+2;;){if(void 0===d){if(a<e)break d;this._cachedIndex=c=b.length;return this.afterEnd_(c-1,a,e)}if(c===f)break;e=d;d=b[++c];if(a<d)break b}d=b.length;break c}if(a>=e)break a;else{f=b[1];a<f&&(c=2,e=f);for(f=c-2;;){if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(c===f)break;d=e;e=b[--c-1];if(a>=e)break b}d=c;c=0}}for(;c<d;)e=c+d>>>1,a<b[e]?d=e:c=e+1;d=b[c];e=b[c-1];if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(void 0===d)return this._cachedIndex=
+c=b.length,this.afterEnd_(c-1,e,a)}this._cachedIndex=c;this.intervalChanged_(c,e,d)}return this.interpolate_(c,e,a,d)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(a){var b=this.resultBuffer,c=this.sampleValues,d=this.valueSize;a*=d;for(var e=0;e!==d;++e)b[e]=c[a+e];return b},interpolate_:function(){throw Error("call to abstract method");},intervalChanged_:function(){}});Object.assign(ua.prototype,{beforeStart_:ua.prototype.copySampleValue_,
+afterEnd_:ua.prototype.copySampleValue_});Jd.prototype=Object.assign(Object.create(ua.prototype),{constructor:Jd,interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;b=(c-b)/(d-b);for(c=a+g;a!==c;a+=4)ea.slerpFlat(e,0,f,a-g,f,a,b);return e}});fd.prototype=Object.assign(Object.create(ja.prototype),{constructor:fd,ValueTypeName:"quaternion",DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(a){return new Jd(this.times,this.values,this.getValueSize(),
+a)},InterpolantFactoryMethodSmooth:void 0});Kd.prototype=Object.assign(Object.create(ja.prototype),{constructor:Kd,ValueTypeName:"color"});kc.prototype=Object.assign(Object.create(ja.prototype),{constructor:kc,ValueTypeName:"number"});Ld.prototype=Object.assign(Object.create(ua.prototype),{constructor:Ld,DefaultSettings_:{endingStart:2400,endingEnd:2400},intervalChanged_:function(a,b,c){var d=this.parameterPositions,e=a-2,f=a+1,g=d[e],h=d[f];if(void 0===g)switch(this.getSettings_().endingStart){case 2401:e=
+a;g=2*b-c;break;case 2402:e=d.length-2;g=b+d[e]-d[e+1];break;default:e=a,g=c}if(void 0===h)switch(this.getSettings_().endingEnd){case 2401:f=a;h=2*c-b;break;case 2402:f=1;h=c+d[1]-d[0];break;default:f=a-1,h=b}a=.5*(c-b);d=this.valueSize;this._weightPrev=a/(b-g);this._weightNext=a/(h-c);this._offsetPrev=e*d;this._offsetNext=f*d},interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g,l=this._offsetPrev,m=this._offsetNext,k=this._weightPrev,n=this._weightNext,
+p=(c-b)/(d-b);c=p*p;d=c*p;b=-k*d+2*k*c-k*p;k=(1+k)*d+(-1.5-2*k)*c+(-.5+k)*p+1;p=(-1-n)*d+(1.5+n)*c+.5*p;n=n*d-n*c;for(c=0;c!==g;++c)e[c]=b*f[l+c]+k*f[h+c]+p*f[a+c]+n*f[m+c];return e}});gd.prototype=Object.assign(Object.create(ua.prototype),{constructor:gd,interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g;b=(c-b)/(d-b);c=1-b;for(d=0;d!==g;++d)e[d]=f[h+d]*c+f[a+d]*b;return e}});Md.prototype=Object.assign(Object.create(ua.prototype),{constructor:Md,
+interpolate_:function(a){return this.copySampleValue_(a-1)}});var sa={arraySlice:function(a,b,c){return sa.isTypedArray(a)?new a.constructor(a.subarray(b,void 0!==c?c:a.length)):a.slice(b,c)},convertArray:function(a,b,c){return!a||!c&&a.constructor===b?a:"number"===typeof b.BYTES_PER_ELEMENT?new b(a):Array.prototype.slice.call(a)},isTypedArray:function(a){return ArrayBuffer.isView(a)&&!(a instanceof DataView)},getKeyframeOrder:function(a){for(var b=a.length,c=Array(b),d=0;d!==b;++d)c[d]=d;c.sort(function(b,
+c){return a[b]-a[c]});return c},sortedArray:function(a,b,c){for(var d=a.length,e=new a.constructor(d),f=0,g=0;g!==d;++f)for(var h=c[f]*b,l=0;l!==b;++l)e[g++]=a[h+l];return e},flattenJSON:function(a,b,c,d){for(var e=1,f=a[0];void 0!==f&&void 0===f[d];)f=a[e++];if(void 0!==f){var g=f[d];if(void 0!==g)if(Array.isArray(g)){do g=f[d],void 0!==g&&(b.push(f.time),c.push.apply(c,g)),f=a[e++];while(void 0!==f)}else if(void 0!==g.toArray){do g=f[d],void 0!==g&&(b.push(f.time),g.toArray(c,c.length)),f=a[e++];
+while(void 0!==f)}else{do g=f[d],void 0!==g&&(b.push(f.time),c.push(g)),f=a[e++];while(void 0!==f)}}}};Object.assign(ja,{parse:function(a){if(void 0===a.type)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");var b=ja._getTrackTypeForValueTypeName(a.type);if(void 0===a.times){var c=[],d=[];sa.flattenJSON(a.keys,c,d,"value");a.times=c;a.values=d}return void 0!==b.parse?b.parse(a):new b(a.name,a.times,a.values,a.interpolation)},toJSON:function(a){var b=a.constructor;if(void 0!==
+b.toJSON)b=b.toJSON(a);else{b={name:a.name,times:sa.convertArray(a.times,Array),values:sa.convertArray(a.values,Array)};var c=a.getInterpolation();c!==a.DefaultInterpolation&&(b.interpolation=c)}b.type=a.ValueTypeName;return b},_getTrackTypeForValueTypeName:function(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return kc;case "vector":case "vector2":case "vector3":case "vector4":return lc;case "color":return Kd;case "quaternion":return fd;case "bool":case "boolean":return Id;
+case "string":return Hd}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+a);}});Object.assign(ja.prototype,{constructor:ja,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(a){return new Md(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodLinear:function(a){return new gd(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:function(a){return new Ld(this.times,this.values,
+this.getValueSize(),a)},setInterpolation:function(a){switch(a){case 2300:var b=this.InterpolantFactoryMethodDiscrete;break;case 2301:b=this.InterpolantFactoryMethodLinear;break;case 2302:b=this.InterpolantFactoryMethodSmooth}if(void 0===b){b="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant)if(a!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw Error(b);console.warn("THREE.KeyframeTrack:",
+b)}else this.createInterpolant=b},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}},getValueSize:function(){return this.values.length/this.times.length},shift:function(a){if(0!==a)for(var b=this.times,c=0,d=b.length;c!==d;++c)b[c]+=a;return this},scale:function(a){if(1!==a)for(var b=this.times,c=0,d=b.length;c!==d;++c)b[c]*=a;return this},
+trim:function(a,b){for(var c=this.times,d=c.length,e=0,f=d-1;e!==d&&c[e]<a;)++e;for(;-1!==f&&c[f]>b;)--f;++f;if(0!==e||f!==d)e>=f&&(f=Math.max(f,1),e=f-1),a=this.getValueSize(),this.times=sa.arraySlice(c,e,f),this.values=sa.arraySlice(this.values,e*a,f*a);return this},validate:function(){var a=!0,b=this.getValueSize();0!==b-Math.floor(b)&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),a=!1);var c=this.times;b=this.values;var d=c.length;0===d&&(console.error("THREE.KeyframeTrack: Track is empty.",
+this),a=!1);for(var e=null,f=0;f!==d;f++){var g=c[f];if("number"===typeof g&&isNaN(g)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,f,g);a=!1;break}if(null!==e&&e>g){console.error("THREE.KeyframeTrack: Out of order keys.",this,f,g,e);a=!1;break}e=g}if(void 0!==b&&sa.isTypedArray(b))for(f=0,c=b.length;f!==c;++f)if(d=b[f],isNaN(d)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,f,d);a=!1;break}return a},optimize:function(){for(var a=this.times,b=this.values,
+c=this.getValueSize(),d=2302===this.getInterpolation(),e=1,f=a.length-1,g=1;g<f;++g){var h=!1,l=a[g];if(l!==a[g+1]&&(1!==g||l!==l[0]))if(d)h=!0;else{var m=g*c,k=m-c,n=m+c;for(l=0;l!==c;++l){var p=b[m+l];if(p!==b[k+l]||p!==b[n+l]){h=!0;break}}}if(h){if(g!==e)for(a[e]=a[g],h=g*c,m=e*c,l=0;l!==c;++l)b[m+l]=b[h+l];++e}}if(0<f){a[e]=a[f];h=f*c;m=e*c;for(l=0;l!==c;++l)b[m+l]=b[h+l];++e}e!==a.length&&(this.times=sa.arraySlice(a,0,e),this.values=sa.arraySlice(b,0,e*c));return this}});lc.prototype=Object.assign(Object.create(ja.prototype),
+{constructor:lc,ValueTypeName:"vector"});Object.assign(Fa,{parse:function(a){for(var b=[],c=a.tracks,d=1/(a.fps||1),e=0,f=c.length;e!==f;++e)b.push(ja.parse(c[e]).scale(d));return new Fa(a.name,a.duration,b)},toJSON:function(a){var b=[],c=a.tracks;a={name:a.name,duration:a.duration,tracks:b,uuid:a.uuid};for(var d=0,e=c.length;d!==e;++d)b.push(ja.toJSON(c[d]));return a},CreateFromMorphTargetSequence:function(a,b,c,d){for(var e=b.length,f=[],g=0;g<e;g++){var h=[],l=[];h.push((g+e-1)%e,g,(g+1)%e);l.push(0,
+1,0);var k=sa.getKeyframeOrder(h);h=sa.sortedArray(h,1,k);l=sa.sortedArray(l,1,k);d||0!==h[0]||(h.push(e),l.push(l[0]));f.push((new kc(".morphTargetInfluences["+b[g].name+"]",h,l)).scale(1/c))}return new Fa(a,-1,f)},findByName:function(a,b){var c=a;Array.isArray(a)||(c=a.geometry&&a.geometry.animations||a.animations);for(a=0;a<c.length;a++)if(c[a].name===b)return c[a];return null},CreateClipsFromMorphTargetSequences:function(a,b,c){for(var d={},e=/^([\w-]*?)([\d]+)$/,f=0,g=a.length;f<g;f++){var h=
+a[f],l=h.name.match(e);if(l&&1<l.length){var k=l[1];(l=d[k])||(d[k]=l=[]);l.push(h)}}a=[];for(k in d)a.push(Fa.CreateFromMorphTargetSequence(k,d[k],b,c));return a},parseAnimation:function(a,b){if(!a)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;var c=function(a,b,c,d,e){if(0!==c.length){var f=[],g=[];sa.flattenJSON(c,f,g,d);0!==f.length&&e.push(new a(b,f,g))}},d=[],e=a.name||"default",f=a.length||-1,g=a.fps||30;a=a.hierarchy||[];for(var h=0;h<a.length;h++){var l=
+a[h].keys;if(l&&0!==l.length)if(l[0].morphTargets){f={};for(var k=0;k<l.length;k++)if(l[k].morphTargets)for(var p=0;p<l[k].morphTargets.length;p++)f[l[k].morphTargets[p]]=-1;for(var n in f){var r=[],q=[];for(p=0;p!==l[k].morphTargets.length;++p){var t=l[k];r.push(t.time);q.push(t.morphTarget===n?1:0)}d.push(new kc(".morphTargetInfluence["+n+"]",r,q))}f=f.length*(g||1)}else k=".bones["+b[h].name+"]",c(lc,k+".position",l,"pos",d),c(fd,k+".quaternion",l,"rot",d),c(lc,k+".scale",l,"scl",d)}return 0===
+d.length?null:new Fa(e,f,d)}});Object.assign(Fa.prototype,{resetDuration:function(){for(var a=0,b=0,c=this.tracks.length;b!==c;++b){var d=this.tracks[b];a=Math.max(a,d.times[d.times.length-1])}this.duration=a},trim:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].trim(0,this.duration);return this},optimize:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].optimize();return this}});Object.assign(Nd.prototype,{load:function(a,b,c,d){var e=this;(new Ka(e.manager)).load(a,function(a){b(e.parse(JSON.parse(a)))},
+c,d)},setTextures:function(a){this.textures=a},parse:function(a){function b(a){void 0===c[a]&&console.warn("THREE.MaterialLoader: Undefined texture",a);return c[a]}var c=this.textures,d=new Tg[a.type];void 0!==a.uuid&&(d.uuid=a.uuid);void 0!==a.name&&(d.name=a.name);void 0!==a.color&&d.color.setHex(a.color);void 0!==a.roughness&&(d.roughness=a.roughness);void 0!==a.metalness&&(d.metalness=a.metalness);void 0!==a.emissive&&d.emissive.setHex(a.emissive);void 0!==a.specular&&d.specular.setHex(a.specular);
+void 0!==a.shininess&&(d.shininess=a.shininess);void 0!==a.clearCoat&&(d.clearCoat=a.clearCoat);void 0!==a.clearCoatRoughness&&(d.clearCoatRoughness=a.clearCoatRoughness);void 0!==a.uniforms&&(d.uniforms=a.uniforms);void 0!==a.vertexShader&&(d.vertexShader=a.vertexShader);void 0!==a.fragmentShader&&(d.fragmentShader=a.fragmentShader);void 0!==a.vertexColors&&(d.vertexColors=a.vertexColors);void 0!==a.fog&&(d.fog=a.fog);void 0!==a.flatShading&&(d.flatShading=a.flatShading);void 0!==a.blending&&(d.blending=
+a.blending);void 0!==a.side&&(d.side=a.side);void 0!==a.opacity&&(d.opacity=a.opacity);void 0!==a.transparent&&(d.transparent=a.transparent);void 0!==a.alphaTest&&(d.alphaTest=a.alphaTest);void 0!==a.depthTest&&(d.depthTest=a.depthTest);void 0!==a.depthWrite&&(d.depthWrite=a.depthWrite);void 0!==a.colorWrite&&(d.colorWrite=a.colorWrite);void 0!==a.wireframe&&(d.wireframe=a.wireframe);void 0!==a.wireframeLinewidth&&(d.wireframeLinewidth=a.wireframeLinewidth);void 0!==a.wireframeLinecap&&(d.wireframeLinecap=
+a.wireframeLinecap);void 0!==a.wireframeLinejoin&&(d.wireframeLinejoin=a.wireframeLinejoin);void 0!==a.rotation&&(d.rotation=a.rotation);1!==a.linewidth&&(d.linewidth=a.linewidth);void 0!==a.dashSize&&(d.dashSize=a.dashSize);void 0!==a.gapSize&&(d.gapSize=a.gapSize);void 0!==a.scale&&(d.scale=a.scale);void 0!==a.polygonOffset&&(d.polygonOffset=a.polygonOffset);void 0!==a.polygonOffsetFactor&&(d.polygonOffsetFactor=a.polygonOffsetFactor);void 0!==a.polygonOffsetUnits&&(d.polygonOffsetUnits=a.polygonOffsetUnits);
+void 0!==a.skinning&&(d.skinning=a.skinning);void 0!==a.morphTargets&&(d.morphTargets=a.morphTargets);void 0!==a.dithering&&(d.dithering=a.dithering);void 0!==a.visible&&(d.visible=a.visible);void 0!==a.userData&&(d.userData=a.userData);void 0!==a.shading&&(d.flatShading=1===a.shading);void 0!==a.size&&(d.size=a.size);void 0!==a.sizeAttenuation&&(d.sizeAttenuation=a.sizeAttenuation);void 0!==a.map&&(d.map=b(a.map));void 0!==a.alphaMap&&(d.alphaMap=b(a.alphaMap),d.transparent=!0);void 0!==a.bumpMap&&
+(d.bumpMap=b(a.bumpMap));void 0!==a.bumpScale&&(d.bumpScale=a.bumpScale);void 0!==a.normalMap&&(d.normalMap=b(a.normalMap));void 0!==a.normalMapType&&(d.normalMapType=a.normalMapType);if(void 0!==a.normalScale){var e=a.normalScale;!1===Array.isArray(e)&&(e=[e,e]);d.normalScale=(new y).fromArray(e)}void 0!==a.displacementMap&&(d.displacementMap=b(a.displacementMap));void 0!==a.displacementScale&&(d.displacementScale=a.displacementScale);void 0!==a.displacementBias&&(d.displacementBias=a.displacementBias);
+void 0!==a.roughnessMap&&(d.roughnessMap=b(a.roughnessMap));void 0!==a.metalnessMap&&(d.metalnessMap=b(a.metalnessMap));void 0!==a.emissiveMap&&(d.emissiveMap=b(a.emissiveMap));void 0!==a.emissiveIntensity&&(d.emissiveIntensity=a.emissiveIntensity);void 0!==a.specularMap&&(d.specularMap=b(a.specularMap));void 0!==a.envMap&&(d.envMap=b(a.envMap));void 0!==a.reflectivity&&(d.reflectivity=a.reflectivity);void 0!==a.lightMap&&(d.lightMap=b(a.lightMap));void 0!==a.lightMapIntensity&&(d.lightMapIntensity=
+a.lightMapIntensity);void 0!==a.aoMap&&(d.aoMap=b(a.aoMap));void 0!==a.aoMapIntensity&&(d.aoMapIntensity=a.aoMapIntensity);void 0!==a.gradientMap&&(d.gradientMap=b(a.gradientMap));return d}});Object.assign(ge.prototype,{load:function(a,b,c,d){var e=this;(new Ka(e.manager)).load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},parse:function(a){var b=new G,c=a.data.index;void 0!==c&&(c=new Af[c.type](c.array),b.setIndex(new O(c,1)));var d=a.data.attributes;for(f in d){var e=d[f];c=new Af[e.type](e.array);
+b.addAttribute(f,new O(c,e.itemSize,e.normalized))}var f=a.data.groups||a.data.drawcalls||a.data.offsets;if(void 0!==f)for(c=0,d=f.length;c!==d;++c)e=f[c],b.addGroup(e.start,e.count,e.materialIndex);a=a.data.boundingSphere;void 0!==a&&(f=new p,void 0!==a.center&&f.fromArray(a.center),b.boundingSphere=new Ga(f,a.radius));return b}});var Af={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:"undefined"!==typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,
+Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};mc.Handlers={handlers:[],add:function(a,b){this.handlers.push(a,b)},get:function(a){for(var b=this.handlers,c=0,d=b.length;c<d;c+=2){var e=b[c+1];if(b[c].test(a))return e}return null}};Object.assign(mc.prototype,{crossOrigin:void 0,onLoadStart:function(){},onLoadProgress:function(){},onLoadComplete:function(){},initMaterials:function(a,b,c){for(var d=[],e=0;e<a.length;++e)d[e]=this.createMaterial(a[e],
+b,c);return d},createMaterial:function(){var a={NoBlending:0,NormalBlending:1,AdditiveBlending:2,SubtractiveBlending:3,MultiplyBlending:4,CustomBlending:5},b=new K,c=new yd,d=new Nd;return function(e,f,g){function h(a,b,d,e,h){a=f+a;var k=mc.Handlers.get(a);null!==k?a=k.load(a):(c.setCrossOrigin(g),a=c.load(a));void 0!==b&&(a.repeat.fromArray(b),1!==b[0]&&(a.wrapS=1E3),1!==b[1]&&(a.wrapT=1E3));void 0!==d&&a.offset.fromArray(d);void 0!==e&&("repeat"===e[0]&&(a.wrapS=1E3),"mirror"===e[0]&&(a.wrapS=
+1002),"repeat"===e[1]&&(a.wrapT=1E3),"mirror"===e[1]&&(a.wrapT=1002));void 0!==h&&(a.anisotropy=h);b=P.generateUUID();l[b]=a;return b}var l={},k={uuid:P.generateUUID(),type:"MeshLambertMaterial"},p;for(p in e){var n=e[p];switch(p){case "DbgColor":case "DbgIndex":case "opticalDensity":case "illumination":break;case "DbgName":k.name=n;break;case "blending":k.blending=a[n];break;case "colorAmbient":case "mapAmbient":console.warn("THREE.Loader.createMaterial:",p,"is no longer supported.");break;case "colorDiffuse":k.color=
+b.fromArray(n).getHex();break;case "colorSpecular":k.specular=b.fromArray(n).getHex();break;case "colorEmissive":k.emissive=b.fromArray(n).getHex();break;case "specularCoef":k.shininess=n;break;case "shading":"basic"===n.toLowerCase()&&(k.type="MeshBasicMaterial");"phong"===n.toLowerCase()&&(k.type="MeshPhongMaterial");"standard"===n.toLowerCase()&&(k.type="MeshStandardMaterial");break;case "mapDiffuse":k.map=h(n,e.mapDiffuseRepeat,e.mapDiffuseOffset,e.mapDiffuseWrap,e.mapDiffuseAnisotropy);break;
+case "mapDiffuseRepeat":case "mapDiffuseOffset":case "mapDiffuseWrap":case "mapDiffuseAnisotropy":break;case "mapEmissive":k.emissiveMap=h(n,e.mapEmissiveRepeat,e.mapEmissiveOffset,e.mapEmissiveWrap,e.mapEmissiveAnisotropy);break;case "mapEmissiveRepeat":case "mapEmissiveOffset":case "mapEmissiveWrap":case "mapEmissiveAnisotropy":break;case "mapLight":k.lightMap=h(n,e.mapLightRepeat,e.mapLightOffset,e.mapLightWrap,e.mapLightAnisotropy);break;case "mapLightRepeat":case "mapLightOffset":case "mapLightWrap":case "mapLightAnisotropy":break;
+case "mapAO":k.aoMap=h(n,e.mapAORepeat,e.mapAOOffset,e.mapAOWrap,e.mapAOAnisotropy);break;case "mapAORepeat":case "mapAOOffset":case "mapAOWrap":case "mapAOAnisotropy":break;case "mapBump":k.bumpMap=h(n,e.mapBumpRepeat,e.mapBumpOffset,e.mapBumpWrap,e.mapBumpAnisotropy);break;case "mapBumpScale":k.bumpScale=n;break;case "mapBumpRepeat":case "mapBumpOffset":case "mapBumpWrap":case "mapBumpAnisotropy":break;case "mapNormal":k.normalMap=h(n,e.mapNormalRepeat,e.mapNormalOffset,e.mapNormalWrap,e.mapNormalAnisotropy);
+break;case "mapNormalFactor":k.normalScale=n;break;case "mapNormalRepeat":case "mapNormalOffset":case "mapNormalWrap":case "mapNormalAnisotropy":break;case "mapSpecular":k.specularMap=h(n,e.mapSpecularRepeat,e.mapSpecularOffset,e.mapSpecularWrap,e.mapSpecularAnisotropy);break;case "mapSpecularRepeat":case "mapSpecularOffset":case "mapSpecularWrap":case "mapSpecularAnisotropy":break;case "mapMetalness":k.metalnessMap=h(n,e.mapMetalnessRepeat,e.mapMetalnessOffset,e.mapMetalnessWrap,e.mapMetalnessAnisotropy);
+break;case "mapMetalnessRepeat":case "mapMetalnessOffset":case "mapMetalnessWrap":case "mapMetalnessAnisotropy":break;case "mapRoughness":k.roughnessMap=h(n,e.mapRoughnessRepeat,e.mapRoughnessOffset,e.mapRoughnessWrap,e.mapRoughnessAnisotropy);break;case "mapRoughnessRepeat":case "mapRoughnessOffset":case "mapRoughnessWrap":case "mapRoughnessAnisotropy":break;case "mapAlpha":k.alphaMap=h(n,e.mapAlphaRepeat,e.mapAlphaOffset,e.mapAlphaWrap,e.mapAlphaAnisotropy);break;case "mapAlphaRepeat":case "mapAlphaOffset":case "mapAlphaWrap":case "mapAlphaAnisotropy":break;
+case "flipSided":k.side=1;break;case "doubleSided":k.side=2;break;case "transparency":console.warn("THREE.Loader.createMaterial: transparency has been renamed to opacity");k.opacity=n;break;case "depthTest":case "depthWrite":case "colorWrite":case "opacity":case "reflectivity":case "transparent":case "visible":case "wireframe":k[p]=n;break;case "vertexColors":!0===n&&(k.vertexColors=2);"face"===n&&(k.vertexColors=1);break;default:console.error("THREE.Loader.createMaterial: Unsupported",p,n)}}"MeshBasicMaterial"===
+k.type&&delete k.emissive;"MeshPhongMaterial"!==k.type&&delete k.specular;1>k.opacity&&(k.transparent=!0);d.setTextures(l);return d.parse(k)}}()});var De={decodeText:function(a){if("undefined"!==typeof TextDecoder)return(new TextDecoder).decode(a);for(var b="",c=0,d=a.length;c<d;c++)b+=String.fromCharCode(a[c]);return decodeURIComponent(escape(b))},extractUrlBase:function(a){var b=a.lastIndexOf("/");return-1===b?"./":a.substr(0,b+1)}};Object.assign(he.prototype,{load:function(a,b,c,d){var e=this,
+f=this.texturePath&&"string"===typeof this.texturePath?this.texturePath:De.extractUrlBase(a),g=new Ka(this.manager);g.setWithCredentials(this.withCredentials);g.load(a,function(c){c=JSON.parse(c);var d=c.metadata;if(void 0!==d&&(d=d.type,void 0!==d&&"object"===d.toLowerCase())){console.error("THREE.JSONLoader: "+a+" should be loaded with THREE.ObjectLoader instead.");return}c=e.parse(c,f);b(c.geometry,c.materials)},c,d)},setTexturePath:function(a){this.texturePath=a},parse:function(){return function(a,
+b){void 0!==a.data&&(a=a.data);a.scale=void 0!==a.scale?1/a.scale:1;var c=new J,d=a,e,f,g,h=d.faces;var l=d.vertices;var k=d.normals,v=d.colors;var n=d.scale;var r=0;if(void 0!==d.uvs){for(e=0;e<d.uvs.length;e++)d.uvs[e].length&&r++;for(e=0;e<r;e++)c.faceVertexUvs[e]=[]}var q=0;for(g=l.length;q<g;)e=new p,e.x=l[q++]*n,e.y=l[q++]*n,e.z=l[q++]*n,c.vertices.push(e);q=0;for(g=h.length;q<g;){l=h[q++];var t=l&1;var u=l&2;e=l&8;var z=l&16;var x=l&32;n=l&64;l&=128;if(t){t=new Xa;t.a=h[q];t.b=h[q+1];t.c=h[q+
+3];var w=new Xa;w.a=h[q+1];w.b=h[q+2];w.c=h[q+3];q+=4;u&&(u=h[q++],t.materialIndex=u,w.materialIndex=u);u=c.faces.length;if(e)for(e=0;e<r;e++){var A=d.uvs[e];c.faceVertexUvs[e][u]=[];c.faceVertexUvs[e][u+1]=[];for(f=0;4>f;f++){var C=h[q++];var B=A[2*C];C=A[2*C+1];B=new y(B,C);2!==f&&c.faceVertexUvs[e][u].push(B);0!==f&&c.faceVertexUvs[e][u+1].push(B)}}z&&(z=3*h[q++],t.normal.set(k[z++],k[z++],k[z]),w.normal.copy(t.normal));if(x)for(e=0;4>e;e++)z=3*h[q++],x=new p(k[z++],k[z++],k[z]),2!==e&&t.vertexNormals.push(x),
+0!==e&&w.vertexNormals.push(x);n&&(n=h[q++],n=v[n],t.color.setHex(n),w.color.setHex(n));if(l)for(e=0;4>e;e++)n=h[q++],n=v[n],2!==e&&t.vertexColors.push(new K(n)),0!==e&&w.vertexColors.push(new K(n));c.faces.push(t);c.faces.push(w)}else{t=new Xa;t.a=h[q++];t.b=h[q++];t.c=h[q++];u&&(u=h[q++],t.materialIndex=u);u=c.faces.length;if(e)for(e=0;e<r;e++)for(A=d.uvs[e],c.faceVertexUvs[e][u]=[],f=0;3>f;f++)C=h[q++],B=A[2*C],C=A[2*C+1],B=new y(B,C),c.faceVertexUvs[e][u].push(B);z&&(z=3*h[q++],t.normal.set(k[z++],
+k[z++],k[z]));if(x)for(e=0;3>e;e++)z=3*h[q++],x=new p(k[z++],k[z++],k[z]),t.vertexNormals.push(x);n&&(n=h[q++],t.color.setHex(v[n]));if(l)for(e=0;3>e;e++)n=h[q++],t.vertexColors.push(new K(v[n]));c.faces.push(t)}}d=a;q=void 0!==d.influencesPerVertex?d.influencesPerVertex:2;if(d.skinWeights)for(g=0,h=d.skinWeights.length;g<h;g+=q)c.skinWeights.push(new U(d.skinWeights[g],1<q?d.skinWeights[g+1]:0,2<q?d.skinWeights[g+2]:0,3<q?d.skinWeights[g+3]:0));if(d.skinIndices)for(g=0,h=d.skinIndices.length;g<h;g+=
+q)c.skinIndices.push(new U(d.skinIndices[g],1<q?d.skinIndices[g+1]:0,2<q?d.skinIndices[g+2]:0,3<q?d.skinIndices[g+3]:0));c.bones=d.bones;c.bones&&0<c.bones.length&&(c.skinWeights.length!==c.skinIndices.length||c.skinIndices.length!==c.vertices.length)&&console.warn("When skinning, number of vertices ("+c.vertices.length+"), skinIndices ("+c.skinIndices.length+"), and skinWeights ("+c.skinWeights.length+") should match.");g=a;h=g.scale;if(void 0!==g.morphTargets)for(d=0,q=g.morphTargets.length;d<q;d++)for(c.morphTargets[d]=
+{},c.morphTargets[d].name=g.morphTargets[d].name,c.morphTargets[d].vertices=[],k=c.morphTargets[d].vertices,v=g.morphTargets[d].vertices,r=0,l=v.length;r<l;r+=3)n=new p,n.x=v[r]*h,n.y=v[r+1]*h,n.z=v[r+2]*h,k.push(n);if(void 0!==g.morphColors&&0<g.morphColors.length)for(console.warn('THREE.JSONLoader: "morphColors" no longer supported. Using them as face colors.'),h=c.faces,g=g.morphColors[0].colors,d=0,q=h.length;d<q;d++)h[d].color.fromArray(g,3*d);g=a;d=[];q=[];void 0!==g.animation&&q.push(g.animation);
+void 0!==g.animations&&(g.animations.length?q=q.concat(g.animations):q.push(g.animations));for(g=0;g<q.length;g++)(h=Fa.parseAnimation(q[g],c.bones))&&d.push(h);c.morphTargets&&(q=Fa.CreateClipsFromMorphTargetSequences(c.morphTargets,10),d=d.concat(q));0<d.length&&(c.animations=d);c.computeFaceNormals();c.computeBoundingSphere();if(void 0===a.materials||0===a.materials.length)return{geometry:c};a=mc.prototype.initMaterials(a.materials,b,this.crossOrigin);return{geometry:c,materials:a}}}()});Object.assign(lf.prototype,
+{load:function(a,b,c,d){""===this.texturePath&&(this.texturePath=a.substring(0,a.lastIndexOf("/")+1));var e=this;(new Ka(e.manager)).load(a,function(c){var f=null;try{f=JSON.parse(c)}catch(h){void 0!==d&&d(h);console.error("THREE:ObjectLoader: Can't parse "+a+".",h.message);return}c=f.metadata;void 0===c||void 0===c.type||"geometry"===c.type.toLowerCase()?console.error("THREE.ObjectLoader: Can't load "+a+". Use THREE.JSONLoader instead."):e.parse(f,b)},c,d)},setTexturePath:function(a){this.texturePath=
+a;return this},setCrossOrigin:function(a){this.crossOrigin=a;return this},parse:function(a,b){var c=this.parseShape(a.shapes);c=this.parseGeometries(a.geometries,c);var d=this.parseImages(a.images,function(){void 0!==b&&b(e)});d=this.parseTextures(a.textures,d);d=this.parseMaterials(a.materials,d);var e=this.parseObject(a.object,c,d);a.animations&&(e.animations=this.parseAnimations(a.animations));void 0!==a.images&&0!==a.images.length||void 0===b||b(e);return e},parseShape:function(a){var b={};if(void 0!==
+a)for(var c=0,d=a.length;c<d;c++){var e=(new jb).fromJSON(a[c]);b[e.uuid]=e}return b},parseGeometries:function(a,b){var c={};if(void 0!==a)for(var d=new he,e=new ge,f=0,g=a.length;f<g;f++){var h=a[f];switch(h.type){case "PlaneGeometry":case "PlaneBufferGeometry":var l=new za[h.type](h.width,h.height,h.widthSegments,h.heightSegments);break;case "BoxGeometry":case "BoxBufferGeometry":case "CubeGeometry":l=new za[h.type](h.width,h.height,h.depth,h.widthSegments,h.heightSegments,h.depthSegments);break;
+case "CircleGeometry":case "CircleBufferGeometry":l=new za[h.type](h.radius,h.segments,h.thetaStart,h.thetaLength);break;case "CylinderGeometry":case "CylinderBufferGeometry":l=new za[h.type](h.radiusTop,h.radiusBottom,h.height,h.radialSegments,h.heightSegments,h.openEnded,h.thetaStart,h.thetaLength);break;case "ConeGeometry":case "ConeBufferGeometry":l=new za[h.type](h.radius,h.height,h.radialSegments,h.heightSegments,h.openEnded,h.thetaStart,h.thetaLength);break;case "SphereGeometry":case "SphereBufferGeometry":l=
+new za[h.type](h.radius,h.widthSegments,h.heightSegments,h.phiStart,h.phiLength,h.thetaStart,h.thetaLength);break;case "DodecahedronGeometry":case "DodecahedronBufferGeometry":case "IcosahedronGeometry":case "IcosahedronBufferGeometry":case "OctahedronGeometry":case "OctahedronBufferGeometry":case "TetrahedronGeometry":case "TetrahedronBufferGeometry":l=new za[h.type](h.radius,h.detail);break;case "RingGeometry":case "RingBufferGeometry":l=new za[h.type](h.innerRadius,h.outerRadius,h.thetaSegments,
+h.phiSegments,h.thetaStart,h.thetaLength);break;case "TorusGeometry":case "TorusBufferGeometry":l=new za[h.type](h.radius,h.tube,h.radialSegments,h.tubularSegments,h.arc);break;case "TorusKnotGeometry":case "TorusKnotBufferGeometry":l=new za[h.type](h.radius,h.tube,h.tubularSegments,h.radialSegments,h.p,h.q);break;case "LatheGeometry":case "LatheBufferGeometry":l=new za[h.type](h.points,h.segments,h.phiStart,h.phiLength);break;case "PolyhedronGeometry":case "PolyhedronBufferGeometry":l=new za[h.type](h.vertices,
+h.indices,h.radius,h.details);break;case "ShapeGeometry":case "ShapeBufferGeometry":l=[];for(var k=0,p=h.shapes.length;k<p;k++){var n=b[h.shapes[k]];l.push(n)}l=new za[h.type](l,h.curveSegments);break;case "ExtrudeGeometry":case "ExtrudeBufferGeometry":l=[];k=0;for(p=h.shapes.length;k<p;k++)n=b[h.shapes[k]],l.push(n);k=h.options.extrudePath;void 0!==k&&(h.options.extrudePath=(new zf[k.type]).fromJSON(k));l=new za[h.type](l,h.options);break;case "BufferGeometry":l=e.parse(h);break;case "Geometry":l=
+d.parse(h,this.texturePath).geometry;break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+h.type+'"');continue}l.uuid=h.uuid;void 0!==h.name&&(l.name=h.name);!0===l.isBufferGeometry&&void 0!==h.userData&&(l.userData=h.userData);c[h.uuid]=l}return c},parseMaterials:function(a,b){var c={};if(void 0!==a){var d=new Nd;d.setTextures(b);b=0;for(var e=a.length;b<e;b++){var f=a[b];if("MultiMaterial"===f.type){for(var g=[],h=0;h<f.materials.length;h++)g.push(d.parse(f.materials[h]));
+c[f.uuid]=g}else c[f.uuid]=d.parse(f)}}return c},parseAnimations:function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=Fa.parse(d);void 0!==d.uuid&&(e.uuid=d.uuid);b.push(e)}return b},parseImages:function(a,b){function c(a){d.manager.itemStart(a);return f.load(a,function(){d.manager.itemEnd(a)},void 0,function(){d.manager.itemEnd(a);d.manager.itemError(a)})}var d=this,e={};if(void 0!==a&&0<a.length){b=new ce(b);var f=new cd(b);f.setCrossOrigin(this.crossOrigin);b=0;for(var g=a.length;b<g;b++){var h=
+a[b],l=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(h.url)?h.url:d.texturePath+h.url;e[h.uuid]=c(l)}}return e},parseTextures:function(a,b){function c(a,b){if("number"===typeof a)return a;console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",a);return b[a]}var d={};if(void 0!==a)for(var e=0,f=a.length;e<f;e++){var g=a[e];void 0===g.image&&console.warn('THREE.ObjectLoader: No "image" specified for',g.uuid);void 0===b[g.image]&&console.warn("THREE.ObjectLoader: Undefined image",g.image);
+var h=new ca(b[g.image]);h.needsUpdate=!0;h.uuid=g.uuid;void 0!==g.name&&(h.name=g.name);void 0!==g.mapping&&(h.mapping=c(g.mapping,Ug));void 0!==g.offset&&h.offset.fromArray(g.offset);void 0!==g.repeat&&h.repeat.fromArray(g.repeat);void 0!==g.center&&h.center.fromArray(g.center);void 0!==g.rotation&&(h.rotation=g.rotation);void 0!==g.wrap&&(h.wrapS=c(g.wrap[0],Bf),h.wrapT=c(g.wrap[1],Bf));void 0!==g.format&&(h.format=g.format);void 0!==g.minFilter&&(h.minFilter=c(g.minFilter,Cf));void 0!==g.magFilter&&
+(h.magFilter=c(g.magFilter,Cf));void 0!==g.anisotropy&&(h.anisotropy=g.anisotropy);void 0!==g.flipY&&(h.flipY=g.flipY);d[g.uuid]=h}return d},parseObject:function(a,b,c){function d(a){void 0===b[a]&&console.warn("THREE.ObjectLoader: Undefined geometry",a);return b[a]}function e(a){if(void 0!==a){if(Array.isArray(a)){for(var b=[],d=0,e=a.length;d<e;d++){var f=a[d];void 0===c[f]&&console.warn("THREE.ObjectLoader: Undefined material",f);b.push(c[f])}return b}void 0===c[a]&&console.warn("THREE.ObjectLoader: Undefined material",
+a);return c[a]}}switch(a.type){case "Scene":var f=new sd;void 0!==a.background&&Number.isInteger(a.background)&&(f.background=new K(a.background));void 0!==a.fog&&("Fog"===a.fog.type?f.fog=new Tb(a.fog.color,a.fog.near,a.fog.far):"FogExp2"===a.fog.type&&(f.fog=new Sb(a.fog.color,a.fog.density)));break;case "PerspectiveCamera":f=new X(a.fov,a.aspect,a.near,a.far);void 0!==a.focus&&(f.focus=a.focus);void 0!==a.zoom&&(f.zoom=a.zoom);void 0!==a.filmGauge&&(f.filmGauge=a.filmGauge);void 0!==a.filmOffset&&
+(f.filmOffset=a.filmOffset);void 0!==a.view&&(f.view=Object.assign({},a.view));break;case "OrthographicCamera":f=new Mb(a.left,a.right,a.top,a.bottom,a.near,a.far);void 0!==a.zoom&&(f.zoom=a.zoom);void 0!==a.view&&(f.view=Object.assign({},a.view));break;case "AmbientLight":f=new Fd(a.color,a.intensity);break;case "DirectionalLight":f=new Ed(a.color,a.intensity);break;case "PointLight":f=new Cd(a.color,a.intensity,a.distance,a.decay);break;case "RectAreaLight":f=new Gd(a.color,a.intensity,a.width,
+a.height);break;case "SpotLight":f=new Bd(a.color,a.intensity,a.distance,a.angle,a.penumbra,a.decay);break;case "HemisphereLight":f=new zd(a.color,a.groundColor,a.intensity);break;case "SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");case "Mesh":f=d(a.geometry);var g=e(a.material);f=f.bones&&0<f.bones.length?new ud(f,g):new pa(f,g);break;case "LOD":f=new Gc;break;case "Line":f=new ma(d(a.geometry),e(a.material),a.mode);break;case "LineLoop":f=new vd(d(a.geometry),
+e(a.material));break;case "LineSegments":f=new aa(d(a.geometry),e(a.material));break;case "PointCloud":case "Points":f=new Ub(d(a.geometry),e(a.material));break;case "Sprite":f=new Fc(e(a.material));break;case "Group":f=new wd;break;default:f=new B}f.uuid=a.uuid;void 0!==a.name&&(f.name=a.name);void 0!==a.matrix?(f.matrix.fromArray(a.matrix),void 0!==a.matrixAutoUpdate&&(f.matrixAutoUpdate=a.matrixAutoUpdate),f.matrixAutoUpdate&&f.matrix.decompose(f.position,f.quaternion,f.scale)):(void 0!==a.position&&
+f.position.fromArray(a.position),void 0!==a.rotation&&f.rotation.fromArray(a.rotation),void 0!==a.quaternion&&f.quaternion.fromArray(a.quaternion),void 0!==a.scale&&f.scale.fromArray(a.scale));void 0!==a.castShadow&&(f.castShadow=a.castShadow);void 0!==a.receiveShadow&&(f.receiveShadow=a.receiveShadow);a.shadow&&(void 0!==a.shadow.bias&&(f.shadow.bias=a.shadow.bias),void 0!==a.shadow.radius&&(f.shadow.radius=a.shadow.radius),void 0!==a.shadow.mapSize&&f.shadow.mapSize.fromArray(a.shadow.mapSize),
+void 0!==a.shadow.camera&&(f.shadow.camera=this.parseObject(a.shadow.camera)));void 0!==a.visible&&(f.visible=a.visible);void 0!==a.frustumCulled&&(f.frustumCulled=a.frustumCulled);void 0!==a.renderOrder&&(f.renderOrder=a.renderOrder);void 0!==a.userData&&(f.userData=a.userData);void 0!==a.layers&&(f.layers.mask=a.layers);if(void 0!==a.children){g=a.children;for(var h=0;h<g.length;h++)f.add(this.parseObject(g[h],b,c))}if("LOD"===a.type)for(a=a.levels,g=0;g<a.length;g++){h=a[g];var l=f.getObjectByProperty("uuid",
+h.object);void 0!==l&&f.addLevel(l,h.distance)}return f}});var Ug={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},Bf={RepeatWrapping:1E3,ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},Cf={NearestFilter:1003,NearestMipMapNearestFilter:1004,NearestMipMapLinearFilter:1005,LinearFilter:1006,LinearMipMapNearestFilter:1007,
+LinearMipMapLinearFilter:1008};ie.prototype={constructor:ie,setOptions:function(a){this.options=a;return this},load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var e=this,f=Kb.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;fetch(a).then(function(a){return a.blob()}).then(function(a){return createImageBitmap(a,e.options)}).then(function(c){Kb.add(a,c);b&&b(c);e.manager.itemEnd(a)}).catch(function(b){d&&
+d(b);e.manager.itemEnd(a);e.manager.itemError(a)})},setCrossOrigin:function(){return this},setPath:function(a){this.path=a;return this}};Object.assign(je.prototype,{moveTo:function(a,b){this.currentPath=new Pa;this.subPaths.push(this.currentPath);this.currentPath.moveTo(a,b)},lineTo:function(a,b){this.currentPath.lineTo(a,b)},quadraticCurveTo:function(a,b,c,d){this.currentPath.quadraticCurveTo(a,b,c,d)},bezierCurveTo:function(a,b,c,d,e,f){this.currentPath.bezierCurveTo(a,b,c,d,e,f)},splineThru:function(a){this.currentPath.splineThru(a)},
+toShapes:function(a,b){function c(a){for(var b=[],c=0,d=a.length;c<d;c++){var e=a[c],f=new jb;f.curves=e.curves;b.push(f)}return b}function d(a,b){for(var c=b.length,d=!1,e=c-1,f=0;f<c;e=f++){var g=b[e],h=b[f],l=h.x-g.x,k=h.y-g.y;if(Math.abs(k)>Number.EPSILON){if(0>k&&(g=b[f],l=-l,h=b[e],k=-k),!(a.y<g.y||a.y>h.y))if(a.y===g.y){if(a.x===g.x)return!0}else{e=k*(a.x-g.x)-l*(a.y-g.y);if(0===e)return!0;0>e||(d=!d)}}else if(a.y===g.y&&(h.x<=a.x&&a.x<=g.x||g.x<=a.x&&a.x<=h.x))return!0}return d}var e=Za.isClockWise,
+f=this.subPaths;if(0===f.length)return[];if(!0===b)return c(f);b=[];if(1===f.length){var g=f[0];var h=new jb;h.curves=g.curves;b.push(h);return b}var l=!e(f[0].getPoints());l=a?!l:l;h=[];var k=[],p=[],n=0;k[n]=void 0;p[n]=[];for(var r=0,q=f.length;r<q;r++){g=f[r];var t=g.getPoints();var u=e(t);(u=a?!u:u)?(!l&&k[n]&&n++,k[n]={s:new jb,p:t},k[n].s.curves=g.curves,l&&n++,p[n]=[]):p[n].push({h:g,p:t[0]})}if(!k[0])return c(f);if(1<k.length){r=!1;a=[];e=0;for(f=k.length;e<f;e++)h[e]=[];e=0;for(f=k.length;e<
+f;e++)for(g=p[e],u=0;u<g.length;u++){l=g[u];n=!0;for(t=0;t<k.length;t++)d(l.p,k[t].p)&&(e!==t&&a.push({froms:e,tos:t,hole:u}),n?(n=!1,h[t].push(l)):r=!0);n&&h[e].push(l)}0<a.length&&(r||(p=h))}r=0;for(e=k.length;r<e;r++)for(h=k[r].s,b.push(h),a=p[r],f=0,g=a.length;f<g;f++)h.holes.push(a[f].h);return b}});Object.assign(ke.prototype,{isFont:!0,generateShapes:function(a,b){void 0===b&&(b=100);var c=[],d=b;b=this.data;var e=Array.from?Array.from(a):String(a).split("");d/=b.resolution;var f=(b.boundingBox.yMax-
+b.boundingBox.yMin+b.underlineThickness)*d;a=[];for(var g=0,h=0,l=0;l<e.length;l++){var k=e[l];if("\n"===k)g=0,h-=f;else{var p=d;var n=g,r=h;if(k=b.glyphs[k]||b.glyphs["?"]){var q=new je;if(k.o)for(var t=k._cachedOutline||(k._cachedOutline=k.o.split(" ")),u=0,y=t.length;u<y;)switch(t[u++]){case "m":var x=t[u++]*p+n;var w=t[u++]*p+r;q.moveTo(x,w);break;case "l":x=t[u++]*p+n;w=t[u++]*p+r;q.lineTo(x,w);break;case "q":var A=t[u++]*p+n;var C=t[u++]*p+r;var B=t[u++]*p+n;var F=t[u++]*p+r;q.quadraticCurveTo(B,
+F,A,C);break;case "b":A=t[u++]*p+n,C=t[u++]*p+r,B=t[u++]*p+n,F=t[u++]*p+r,x=t[u++]*p+n,w=t[u++]*p+r,q.bezierCurveTo(B,F,x,w,A,C)}p={offsetX:k.ha*p,path:q}}else p=void 0;g+=p.offsetX;a.push(p.path)}}b=0;for(e=a.length;b<e;b++)Array.prototype.push.apply(c,a[b].toShapes());return c}});Object.assign(mf.prototype,{load:function(a,b,c,d){var e=this,f=new Ka(this.manager);f.setPath(this.path);f.load(a,function(a){try{var c=JSON.parse(a)}catch(l){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),
+c=JSON.parse(a.substring(65,a.length-2))}a=e.parse(c);b&&b(a)},c,d)},parse:function(a){return new ke(a)},setPath:function(a){this.path=a;return this}});var Sd,ne={getContext:function(){void 0===Sd&&(Sd=new (window.AudioContext||window.webkitAudioContext));return Sd},setContext:function(a){Sd=a}};Object.assign(le.prototype,{load:function(a,b,c,d){var e=new Ka(this.manager);e.setResponseType("arraybuffer");e.load(a,function(a){a=a.slice(0);ne.getContext().decodeAudioData(a,function(a){b(a)})},c,d)}});
+Object.assign(nf.prototype,{update:function(){var a,b,c,d,e,f,g,h,l=new F,k=new F;return function(m){if(a!==this||b!==m.focus||c!==m.fov||d!==m.aspect*this.aspect||e!==m.near||f!==m.far||g!==m.zoom||h!==this.eyeSep){a=this;b=m.focus;c=m.fov;d=m.aspect*this.aspect;e=m.near;f=m.far;g=m.zoom;var n=m.projectionMatrix.clone();h=this.eyeSep/2;var p=h*e/b,q=e*Math.tan(P.DEG2RAD*c*.5)/g;k.elements[12]=-h;l.elements[12]=h;var t=-q*d+p;var v=q*d+p;n.elements[0]=2*e/(v-t);n.elements[8]=(v+t)/(v-t);this.cameraL.projectionMatrix.copy(n);
+t=-q*d-p;v=q*d-p;n.elements[0]=2*e/(v-t);n.elements[8]=(v+t)/(v-t);this.cameraR.projectionMatrix.copy(n)}this.cameraL.matrixWorld.copy(m.matrixWorld).multiply(k);this.cameraR.matrixWorld.copy(m.matrixWorld).multiply(l)}}()});hd.prototype=Object.create(B.prototype);hd.prototype.constructor=hd;me.prototype=Object.assign(Object.create(B.prototype),{constructor:me,getInput:function(){return this.gain},removeFilter:function(){null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),
+this.gain.connect(this.context.destination),this.filter=null)},getFilter:function(){return this.filter},setFilter:function(a){null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination);this.filter=a;this.gain.connect(this.filter);this.filter.connect(this.context.destination)},getMasterVolume:function(){return this.gain.gain.value},setMasterVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,
+.01)},updateMatrixWorld:function(){var a=new p,b=new ea,c=new p,d=new p;return function(e){B.prototype.updateMatrixWorld.call(this,e);e=this.context.listener;var f=this.up;this.matrixWorld.decompose(a,b,c);d.set(0,0,-1).applyQuaternion(b);e.positionX?(e.positionX.setValueAtTime(a.x,this.context.currentTime),e.positionY.setValueAtTime(a.y,this.context.currentTime),e.positionZ.setValueAtTime(a.z,this.context.currentTime),e.forwardX.setValueAtTime(d.x,this.context.currentTime),e.forwardY.setValueAtTime(d.y,
+this.context.currentTime),e.forwardZ.setValueAtTime(d.z,this.context.currentTime),e.upX.setValueAtTime(f.x,this.context.currentTime),e.upY.setValueAtTime(f.y,this.context.currentTime),e.upZ.setValueAtTime(f.z,this.context.currentTime)):(e.setPosition(a.x,a.y,a.z),e.setOrientation(d.x,d.y,d.z,f.x,f.y,f.z))}}()});nc.prototype=Object.assign(Object.create(B.prototype),{constructor:nc,getOutput:function(){return this.gain},setNodeSource:function(a){this.hasPlaybackControl=!1;this.sourceType="audioNode";
+this.source=a;this.connect();return this},setMediaElementSource:function(a){this.hasPlaybackControl=!1;this.sourceType="mediaNode";this.source=this.context.createMediaElementSource(a);this.connect();return this},setBuffer:function(a){this.buffer=a;this.sourceType="buffer";this.autoplay&&this.play();return this},play:function(){if(!0===this.isPlaying)console.warn("THREE.Audio: Audio is already playing.");else if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");
+else{var a=this.context.createBufferSource();a.buffer=this.buffer;a.loop=this.loop;a.onended=this.onEnded.bind(this);a.playbackRate.setValueAtTime(this.playbackRate,this.startTime);this.startTime=this.context.currentTime;a.start(this.startTime,this.offset);this.isPlaying=!0;this.source=a;return this.connect()}},pause:function(){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return!0===this.isPlaying&&(this.source.stop(),this.offset+=(this.context.currentTime-
+this.startTime)*this.playbackRate,this.isPlaying=!1),this},stop:function(){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this.source.stop(),this.offset=0,this.isPlaying=!1,this},connect:function(){if(0<this.filters.length){this.source.connect(this.filters[0]);for(var a=1,b=this.filters.length;a<b;a++)this.filters[a-1].connect(this.filters[a]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());
+return this},disconnect:function(){if(0<this.filters.length){this.source.disconnect(this.filters[0]);for(var a=1,b=this.filters.length;a<b;a++)this.filters[a-1].disconnect(this.filters[a]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this},getFilters:function(){return this.filters},setFilters:function(a){a||(a=[]);!0===this.isPlaying?(this.disconnect(),this.filters=a,this.connect()):this.filters=a;return this},getFilter:function(){return this.getFilters()[0]},
+setFilter:function(a){return this.setFilters(a?[a]:[])},setPlaybackRate:function(a){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this.playbackRate=a,!0===this.isPlaying&&this.source.playbackRate.setValueAtTime(this.playbackRate,this.context.currentTime),this},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying=!1},getLoop:function(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),
+!1):this.loop},setLoop:function(a){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this.loop=a,!0===this.isPlaying&&(this.source.loop=this.loop),this},getVolume:function(){return this.gain.gain.value},setVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01);return this}});oe.prototype=Object.assign(Object.create(nc.prototype),{constructor:oe,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},
+setRefDistance:function(a){this.panner.refDistance=a},getRolloffFactor:function(){return this.panner.rolloffFactor},setRolloffFactor:function(a){this.panner.rolloffFactor=a},getDistanceModel:function(){return this.panner.distanceModel},setDistanceModel:function(a){this.panner.distanceModel=a},getMaxDistance:function(){return this.panner.maxDistance},setMaxDistance:function(a){this.panner.maxDistance=a},updateMatrixWorld:function(){var a=new p,b=new ea,c=new p,d=new p;return function(e){B.prototype.updateMatrixWorld.call(this,
+e);e=this.panner;this.matrixWorld.decompose(a,b,c);d.set(0,0,1).applyQuaternion(b);e.setPosition(a.x,a.y,a.z);e.setOrientation(d.x,d.y,d.z)}}()});Object.assign(pe.prototype,{getFrequencyData:function(){this.analyser.getByteFrequencyData(this.data);return this.data},getAverageFrequency:function(){for(var a=0,b=this.getFrequencyData(),c=0;c<b.length;c++)a+=b[c];return a/b.length}});Object.assign(qe.prototype,{accumulate:function(a,b){var c=this.buffer,d=this.valueSize;a=a*d+d;var e=this.cumulativeWeight;
+if(0===e){for(e=0;e!==d;++e)c[a+e]=c[e];e=b}else e+=b,this._mixBufferRegion(c,a,0,b/e,d);this.cumulativeWeight=e},apply:function(a){var b=this.valueSize,c=this.buffer;a=a*b+b;var d=this.cumulativeWeight,e=this.binding;this.cumulativeWeight=0;1>d&&this._mixBufferRegion(c,a,3*b,1-d,b);d=b;for(var f=b+b;d!==f;++d)if(c[d]!==c[d+b]){e.setValue(c,a);break}},saveOriginalState:function(){var a=this.buffer,b=this.valueSize,c=3*b;this.binding.getValue(a,c);for(var d=b;d!==c;++d)a[d]=a[c+d%b];this.cumulativeWeight=
+0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},_select:function(a,b,c,d,e){if(.5<=d)for(d=0;d!==e;++d)a[b+d]=a[c+d]},_slerp:function(a,b,c,d){ea.slerpFlat(a,b,a,b,a,c,d)},_lerp:function(a,b,c,d,e){for(var f=1-d,g=0;g!==e;++g){var h=b+g;a[h]=a[h]*f+a[c+g]*d}}});Object.assign(of.prototype,{getValue:function(a,b){this.bind();var c=this._bindings[this._targetGroup.nCachedObjects_];void 0!==c&&c.getValue(a,b)},setValue:function(a,b){for(var c=this._bindings,d=this._targetGroup.nCachedObjects_,
+e=c.length;d!==e;++d)c[d].setValue(a,b)},bind:function(){for(var a=this._bindings,b=this._targetGroup.nCachedObjects_,c=a.length;b!==c;++b)a[b].bind()},unbind:function(){for(var a=this._bindings,b=this._targetGroup.nCachedObjects_,c=a.length;b!==c;++b)a[b].unbind()}});Object.assign(oa,{Composite:of,create:function(a,b,c){return a&&a.isAnimationObjectGroup?new oa.Composite(a,b,c):new oa(a,b,c)},sanitizeNodeName:function(){var a=/[\[\]\.:\/]/g;return function(b){return b.replace(/\s/g,"_").replace(a,
+"")}}(),parseTrackName:function(){var a="[^"+"\\[\\]\\.:\\/".replace("\\.","")+"]",b=/((?:WC+[\/:])*)/.source.replace("WC","[^\\[\\]\\.:\\/]");a=/(WCOD+)?/.source.replace("WCOD",a);var c=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC","[^\\[\\]\\.:\\/]"),d=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC","[^\\[\\]\\.:\\/]"),e=new RegExp("^"+b+a+c+d+"$"),f=["material","materials","bones"];return function(a){var b=e.exec(a);if(!b)throw Error("PropertyBinding: Cannot parse trackName: "+a);b={nodeName:b[2],
+objectName:b[3],objectIndex:b[4],propertyName:b[5],propertyIndex:b[6]};var c=b.nodeName&&b.nodeName.lastIndexOf(".");if(void 0!==c&&-1!==c){var d=b.nodeName.substring(c+1);-1!==f.indexOf(d)&&(b.nodeName=b.nodeName.substring(0,c),b.objectName=d)}if(null===b.propertyName||0===b.propertyName.length)throw Error("PropertyBinding: can not parse propertyName from trackName: "+a);return b}}(),findNode:function(a,b){if(!b||""===b||"root"===b||"."===b||-1===b||b===a.name||b===a.uuid)return a;if(a.skeleton){var c=
+a.skeleton.getBoneByName(b);if(void 0!==c)return c}if(a.children){var d=function(a){for(var c=0;c<a.length;c++){var e=a[c];if(e.name===b||e.uuid===b||(e=d(e.children)))return e}return null};if(a=d(a.children))return a}return null}});Object.assign(oa.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:[function(a,b){a[b]=this.node[this.propertyName]},
+function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)a[b++]=c[d]},function(a,b){a[b]=this.resolvedProperty[this.propertyIndex]},function(a,b){this.resolvedProperty.toArray(a,b)}],SetterByBindingTypeAndVersioning:[[function(a,b){this.targetObject[this.propertyName]=a[b]},function(a,b){this.targetObject[this.propertyName]=a[b];this.targetObject.needsUpdate=!0},function(a,b){this.targetObject[this.propertyName]=a[b];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(a,b){for(var c=
+this.resolvedProperty,d=0,e=c.length;d!==e;++d)c[d]=a[b++]},function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)c[d]=a[b++];this.targetObject.needsUpdate=!0},function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)c[d]=a[b++];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(a,b){this.resolvedProperty[this.propertyIndex]=a[b]},function(a,b){this.resolvedProperty[this.propertyIndex]=a[b];this.targetObject.needsUpdate=!0},function(a,b){this.resolvedProperty[this.propertyIndex]=
+a[b];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(a,b){this.resolvedProperty.fromArray(a,b)},function(a,b){this.resolvedProperty.fromArray(a,b);this.targetObject.needsUpdate=!0},function(a,b){this.resolvedProperty.fromArray(a,b);this.targetObject.matrixWorldNeedsUpdate=!0}]],getValue:function(a,b){this.bind();this.getValue(a,b)},setValue:function(a,b){this.bind();this.setValue(a,b)},bind:function(){var a=this.node,b=this.parsedPath,c=b.objectName,d=b.propertyName,e=b.propertyIndex;a||(this.node=
+a=oa.findNode(this.rootNode,b.nodeName)||this.rootNode);this.getValue=this._getValue_unavailable;this.setValue=this._setValue_unavailable;if(a){if(c){var f=b.objectIndex;switch(c){case "materials":if(!a.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!a.material.materials){console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);return}a=a.material.materials;
+break;case "bones":if(!a.skeleton){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}a=a.skeleton.bones;for(c=0;c<a.length;c++)if(a[c].name===f){f=c;break}break;default:if(void 0===a[c]){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}a=a[c]}if(void 0!==f){if(void 0===a[f]){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,a);return}a=
+a[f]}}f=a[d];if(void 0===f)console.error("THREE.PropertyBinding: Trying to update property for track: "+b.nodeName+"."+d+" but it wasn't found.",a);else{b=this.Versioning.None;void 0!==a.needsUpdate?(b=this.Versioning.NeedsUpdate,this.targetObject=a):void 0!==a.matrixWorldNeedsUpdate&&(b=this.Versioning.MatrixWorldNeedsUpdate,this.targetObject=a);c=this.BindingType.Direct;if(void 0!==e){if("morphTargetInfluences"===d){if(!a.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",
+this);return}if(a.geometry.isBufferGeometry){if(!a.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}for(c=0;c<this.node.geometry.morphAttributes.position.length;c++)if(a.geometry.morphAttributes.position[c].name===e){e=c;break}}else{if(!a.geometry.morphTargets){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphTargets.",
+this);return}for(c=0;c<this.node.geometry.morphTargets.length;c++)if(a.geometry.morphTargets[c].name===e){e=c;break}}}c=this.BindingType.ArrayElement;this.resolvedProperty=f;this.propertyIndex=e}else void 0!==f.fromArray&&void 0!==f.toArray?(c=this.BindingType.HasFromToArray,this.resolvedProperty=f):Array.isArray(f)?(c=this.BindingType.EntireArray,this.resolvedProperty=f):this.propertyName=d;this.getValue=this.GetterByBindingType[c];this.setValue=this.SetterByBindingTypeAndVersioning[c][b]}}else console.error("THREE.PropertyBinding: Trying to update node for track: "+
+this.path+" but it wasn't found.")},unbind:function(){this.node=null;this.getValue=this._getValue_unbound;this.setValue=this._setValue_unbound}});Object.assign(oa.prototype,{_getValue_unbound:oa.prototype.getValue,_setValue_unbound:oa.prototype.setValue});Object.assign(pf.prototype,{isAnimationObjectGroup:!0,add:function(){for(var a=this._objects,b=a.length,c=this.nCachedObjects_,d=this._indicesByUUID,e=this._paths,f=this._parsedPaths,g=this._bindings,h=g.length,l=void 0,k=0,p=arguments.length;k!==
+p;++k){var n=arguments[k],r=n.uuid,q=d[r];if(void 0===q){q=b++;d[r]=q;a.push(n);r=0;for(var t=h;r!==t;++r)g[r].push(new oa(n,e[r],f[r]))}else if(q<c){l=a[q];var u=--c;t=a[u];d[t.uuid]=q;a[q]=t;d[r]=u;a[u]=n;r=0;for(t=h;r!==t;++r){var y=g[r],x=y[q];y[q]=y[u];void 0===x&&(x=new oa(n,e[r],f[r]));y[u]=x}}else a[q]!==l&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=
+c},remove:function(){for(var a=this._objects,b=this.nCachedObjects_,c=this._indicesByUUID,d=this._bindings,e=d.length,f=0,g=arguments.length;f!==g;++f){var h=arguments[f],l=h.uuid,k=c[l];if(void 0!==k&&k>=b){var p=b++,n=a[p];c[n.uuid]=k;a[k]=n;c[l]=p;a[p]=h;h=0;for(l=e;h!==l;++h){n=d[h];var r=n[k];n[k]=n[p];n[p]=r}}}this.nCachedObjects_=b},uncache:function(){for(var a=this._objects,b=a.length,c=this.nCachedObjects_,d=this._indicesByUUID,e=this._bindings,f=e.length,g=0,h=arguments.length;g!==h;++g){var l=
+arguments[g].uuid,k=d[l];if(void 0!==k)if(delete d[l],k<c){l=--c;var p=a[l],n=--b,r=a[n];d[p.uuid]=k;a[k]=p;d[r.uuid]=l;a[l]=r;a.pop();p=0;for(r=f;p!==r;++p){var q=e[p],t=q[n];q[k]=q[l];q[l]=t;q.pop()}}else for(n=--b,r=a[n],d[r.uuid]=k,a[k]=r,a.pop(),p=0,r=f;p!==r;++p)q=e[p],q[k]=q[n],q.pop()}this.nCachedObjects_=c},subscribe_:function(a,b){var c=this._bindingsIndicesByPath,d=c[a],e=this._bindings;if(void 0!==d)return e[d];var f=this._paths,g=this._parsedPaths,h=this._objects,k=this.nCachedObjects_,
+m=Array(h.length);d=e.length;c[a]=d;f.push(a);g.push(b);e.push(m);c=k;for(d=h.length;c!==d;++c)m[c]=new oa(h[c],a,b);return m},unsubscribe_:function(a){var b=this._bindingsIndicesByPath,c=b[a];if(void 0!==c){var d=this._paths,e=this._parsedPaths,f=this._bindings,g=f.length-1,h=f[g];b[a[g]]=c;f[c]=h;f.pop();e[c]=e[g];e.pop();d[c]=d[g];d.pop()}}});Object.assign(qf.prototype,{play:function(){this._mixer._activateAction(this);return this},stop:function(){this._mixer._deactivateAction(this);return this.reset()},
+reset:function(){this.paused=!1;this.enabled=!0;this.time=0;this._loopCount=-1;this._startTime=null;return this.stopFading().stopWarping()},isRunning:function(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)},isScheduled:function(){return this._mixer._isActiveAction(this)},startAt:function(a){this._startTime=a;return this},setLoop:function(a,b){this.loop=a;this.repetitions=b;return this},setEffectiveWeight:function(a){this.weight=a;
+this._effectiveWeight=this.enabled?a:0;return this.stopFading()},getEffectiveWeight:function(){return this._effectiveWeight},fadeIn:function(a){return this._scheduleFading(a,0,1)},fadeOut:function(a){return this._scheduleFading(a,1,0)},crossFadeFrom:function(a,b,c){a.fadeOut(b);this.fadeIn(b);if(c){c=this._clip.duration;var d=a._clip.duration,e=c/d;a.warp(1,d/c,b);this.warp(e,1,b)}return this},crossFadeTo:function(a,b,c){return a.crossFadeFrom(this,b,c)},stopFading:function(){var a=this._weightInterpolant;
+null!==a&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(a));return this},setEffectiveTimeScale:function(a){this.timeScale=a;this._effectiveTimeScale=this.paused?0:a;return this.stopWarping()},getEffectiveTimeScale:function(){return this._effectiveTimeScale},setDuration:function(a){this.timeScale=this._clip.duration/a;return this.stopWarping()},syncWith:function(a){this.time=a.time;this.timeScale=a.timeScale;return this.stopWarping()},halt:function(a){return this.warp(this._effectiveTimeScale,
+0,a)},warp:function(a,b,c){var d=this._mixer,e=d.time,f=this._timeScaleInterpolant,g=this.timeScale;null===f&&(this._timeScaleInterpolant=f=d._lendControlInterpolant());d=f.parameterPositions;f=f.sampleValues;d[0]=e;d[1]=e+c;f[0]=a/g;f[1]=b/g;return this},stopWarping:function(){var a=this._timeScaleInterpolant;null!==a&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(a));return this},getMixer:function(){return this._mixer},getClip:function(){return this._clip},getRoot:function(){return this._localRoot||
+this._mixer._root},_update:function(a,b,c,d){if(this.enabled){var e=this._startTime;if(null!==e){b=(a-e)*c;if(0>b||0===c)return;this._startTime=null;b*=c}b*=this._updateTimeScale(a);c=this._updateTime(b);a=this._updateWeight(a);if(0<a){b=this._interpolants;e=this._propertyBindings;for(var f=0,g=b.length;f!==g;++f)b[f].evaluate(c),e[f].accumulate(d,a)}}else this._updateWeight(a)},_updateWeight:function(a){var b=0;if(this.enabled){b=this.weight;var c=this._weightInterpolant;if(null!==c){var d=c.evaluate(a)[0];
+b*=d;a>c.parameterPositions[1]&&(this.stopFading(),0===d&&(this.enabled=!1))}}return this._effectiveWeight=b},_updateTimeScale:function(a){var b=0;if(!this.paused){b=this.timeScale;var c=this._timeScaleInterpolant;if(null!==c){var d=c.evaluate(a)[0];b*=d;a>c.parameterPositions[1]&&(this.stopWarping(),0===b?this.paused=!0:this.timeScale=b)}}return this._effectiveTimeScale=b},_updateTime:function(a){var b=this.time+a;if(0===a)return b;var c=this._clip.duration,d=this.loop,e=this._loopCount;if(2200===
+d)a:{if(-1===e&&(this._loopCount=0,this._setEndings(!0,!0,!1)),b>=c)b=c;else if(0>b)b=0;else break a;this.clampWhenFinished?this.paused=!0:this.enabled=!1;this._mixer.dispatchEvent({type:"finished",action:this,direction:0>a?-1:1})}else{d=2202===d;-1===e&&(0<=a?(e=0,this._setEndings(!0,0===this.repetitions,d)):this._setEndings(0===this.repetitions,!0,d));if(b>=c||0>b){var f=Math.floor(b/c);b-=c*f;e+=Math.abs(f);var g=this.repetitions-e;0>=g?(this.clampWhenFinished?this.paused=!0:this.enabled=!1,b=
+0<a?c:0,this._mixer.dispatchEvent({type:"finished",action:this,direction:0<a?1:-1})):(1===g?(a=0>a,this._setEndings(a,!a,d)):this._setEndings(!1,!1,d),this._loopCount=e,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:f}))}if(d&&1===(e&1))return this.time=b,c-b}return this.time=b},_setEndings:function(a,b,c){var d=this._interpolantSettings;c?(d.endingStart=2401,d.endingEnd=2401):(d.endingStart=a?this.zeroSlopeAtStart?2401:2400:2402,d.endingEnd=b?this.zeroSlopeAtEnd?2401:2400:2402)},_scheduleFading:function(a,
+b,c){var d=this._mixer,e=d.time,f=this._weightInterpolant;null===f&&(this._weightInterpolant=f=d._lendControlInterpolant());d=f.parameterPositions;f=f.sampleValues;d[0]=e;f[0]=b;d[1]=e+a;f[1]=c;return this}});re.prototype=Object.assign(Object.create(ha.prototype),{constructor:re,_bindAction:function(a,b){var c=a._localRoot||this._root,d=a._clip.tracks,e=d.length,f=a._propertyBindings;a=a._interpolants;var g=c.uuid,h=this._bindingsByRootAndName,k=h[g];void 0===k&&(k={},h[g]=k);for(h=0;h!==e;++h){var m=
+d[h],p=m.name,n=k[p];if(void 0===n){n=f[h];if(void 0!==n){null===n._cacheIndex&&(++n.referenceCount,this._addInactiveBinding(n,g,p));continue}n=new qe(oa.create(c,p,b&&b._propertyBindings[h].binding.parsedPath),m.ValueTypeName,m.getValueSize());++n.referenceCount;this._addInactiveBinding(n,g,p)}f[h]=n;a[h].resultBuffer=n.buffer}},_activateAction:function(a){if(!this._isActiveAction(a)){if(null===a._cacheIndex){var b=(a._localRoot||this._root).uuid,c=a._clip.uuid,d=this._actionsByClip[c];this._bindAction(a,
+d&&d.knownActions[0]);this._addInactiveAction(a,c,b)}b=a._propertyBindings;c=0;for(d=b.length;c!==d;++c){var e=b[c];0===e.useCount++&&(this._lendBinding(e),e.saveOriginalState())}this._lendAction(a)}},_deactivateAction:function(a){if(this._isActiveAction(a)){for(var b=a._propertyBindings,c=0,d=b.length;c!==d;++c){var e=b[c];0===--e.useCount&&(e.restoreOriginalState(),this._takeBackBinding(e))}this._takeBackAction(a)}},_initMemoryManager:function(){this._actions=[];this._nActiveActions=0;this._actionsByClip=
+{};this._bindings=[];this._nActiveBindings=0;this._bindingsByRootAndName={};this._controlInterpolants=[];this._nActiveControlInterpolants=0;var a=this;this.stats={actions:{get total(){return a._actions.length},get inUse(){return a._nActiveActions}},bindings:{get total(){return a._bindings.length},get inUse(){return a._nActiveBindings}},controlInterpolants:{get total(){return a._controlInterpolants.length},get inUse(){return a._nActiveControlInterpolants}}}},_isActiveAction:function(a){a=a._cacheIndex;
+return null!==a&&a<this._nActiveActions},_addInactiveAction:function(a,b,c){var d=this._actions,e=this._actionsByClip,f=e[b];void 0===f?(f={knownActions:[a],actionByRoot:{}},a._byClipCacheIndex=0,e[b]=f):(b=f.knownActions,a._byClipCacheIndex=b.length,b.push(a));a._cacheIndex=d.length;d.push(a);f.actionByRoot[c]=a},_removeInactiveAction:function(a){var b=this._actions,c=b[b.length-1],d=a._cacheIndex;c._cacheIndex=d;b[d]=c;b.pop();a._cacheIndex=null;b=a._clip.uuid;c=this._actionsByClip;d=c[b];var e=
+d.knownActions,f=e[e.length-1],g=a._byClipCacheIndex;f._byClipCacheIndex=g;e[g]=f;e.pop();a._byClipCacheIndex=null;delete d.actionByRoot[(a._localRoot||this._root).uuid];0===e.length&&delete c[b];this._removeInactiveBindingsForAction(a)},_removeInactiveBindingsForAction:function(a){a=a._propertyBindings;for(var b=0,c=a.length;b!==c;++b){var d=a[b];0===--d.referenceCount&&this._removeInactiveBinding(d)}},_lendAction:function(a){var b=this._actions,c=a._cacheIndex,d=this._nActiveActions++,e=b[d];a._cacheIndex=
+d;b[d]=a;e._cacheIndex=c;b[c]=e},_takeBackAction:function(a){var b=this._actions,c=a._cacheIndex,d=--this._nActiveActions,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_addInactiveBinding:function(a,b,c){var d=this._bindingsByRootAndName,e=d[b],f=this._bindings;void 0===e&&(e={},d[b]=e);e[c]=a;a._cacheIndex=f.length;f.push(a)},_removeInactiveBinding:function(a){var b=this._bindings,c=a.binding,d=c.rootNode.uuid;c=c.path;var e=this._bindingsByRootAndName,f=e[d],g=b[b.length-1];a=a._cacheIndex;
+g._cacheIndex=a;b[a]=g;b.pop();delete f[c];a:{for(var h in f)break a;delete e[d]}},_lendBinding:function(a){var b=this._bindings,c=a._cacheIndex,d=this._nActiveBindings++,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_takeBackBinding:function(a){var b=this._bindings,c=a._cacheIndex,d=--this._nActiveBindings,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_lendControlInterpolant:function(){var a=this._controlInterpolants,b=this._nActiveControlInterpolants++,c=a[b];void 0===c&&(c=new gd(new Float32Array(2),
+new Float32Array(2),1,this._controlInterpolantsResultBuffer),c.__cacheIndex=b,a[b]=c);return c},_takeBackControlInterpolant:function(a){var b=this._controlInterpolants,c=a.__cacheIndex,d=--this._nActiveControlInterpolants,e=b[d];a.__cacheIndex=d;b[d]=a;e.__cacheIndex=c;b[c]=e},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(a,b){var c=b||this._root,d=c.uuid;c="string"===typeof a?Fa.findByName(c,a):a;a=null!==c?c.uuid:a;var e=this._actionsByClip[a],f=null;if(void 0!==e){f=
+e.actionByRoot[d];if(void 0!==f)return f;f=e.knownActions[0];null===c&&(c=f._clip)}if(null===c)return null;b=new qf(this,c,b);this._bindAction(b,f);this._addInactiveAction(b,a,d);return b},existingAction:function(a,b){var c=b||this._root;b=c.uuid;c="string"===typeof a?Fa.findByName(c,a):a;a=this._actionsByClip[c?c.uuid:a];return void 0!==a?a.actionByRoot[b]||null:null},stopAllAction:function(){for(var a=this._actions,b=this._nActiveActions,c=this._bindings,d=this._nActiveBindings,e=this._nActiveBindings=
+this._nActiveActions=0;e!==b;++e)a[e].reset();for(e=0;e!==d;++e)c[e].useCount=0;return this},update:function(a){a*=this.timeScale;for(var b=this._actions,c=this._nActiveActions,d=this.time+=a,e=Math.sign(a),f=this._accuIndex^=1,g=0;g!==c;++g)b[g]._update(d,a,e,f);a=this._bindings;b=this._nActiveBindings;for(g=0;g!==b;++g)a[g].apply(f);return this},getRoot:function(){return this._root},uncacheClip:function(a){var b=this._actions;a=a.uuid;var c=this._actionsByClip,d=c[a];if(void 0!==d){d=d.knownActions;
+for(var e=0,f=d.length;e!==f;++e){var g=d[e];this._deactivateAction(g);var h=g._cacheIndex,k=b[b.length-1];g._cacheIndex=null;g._byClipCacheIndex=null;k._cacheIndex=h;b[h]=k;b.pop();this._removeInactiveBindingsForAction(g)}delete c[a]}},uncacheRoot:function(a){a=a.uuid;var b=this._actionsByClip;for(d in b){var c=b[d].actionByRoot[a];void 0!==c&&(this._deactivateAction(c),this._removeInactiveAction(c))}var d=this._bindingsByRootAndName[a];if(void 0!==d)for(var e in d)a=d[e],a.restoreOriginalState(),
+this._removeInactiveBinding(a)},uncacheAction:function(a,b){a=this.existingAction(a,b);null!==a&&(this._deactivateAction(a),this._removeInactiveAction(a))}});Od.prototype.clone=function(){return new Od(void 0===this.value.clone?this.value:this.value.clone())};se.prototype=Object.assign(Object.create(G.prototype),{constructor:se,isInstancedBufferGeometry:!0,copy:function(a){G.prototype.copy.call(this,a);this.maxInstancedCount=a.maxInstancedCount;return this},clone:function(){return(new this.constructor).copy(this)}});
+Object.defineProperties(te.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}}});Object.assign(te.prototype,{isInterleavedBufferAttribute:!0,setX:function(a,b){this.data.array[a*this.data.stride+this.offset]=b;return this},setY:function(a,b){this.data.array[a*this.data.stride+this.offset+1]=b;return this},setZ:function(a,b){this.data.array[a*this.data.stride+this.offset+2]=b;return this},setW:function(a,b){this.data.array[a*this.data.stride+this.offset+
+3]=b;return this},getX:function(a){return this.data.array[a*this.data.stride+this.offset]},getY:function(a){return this.data.array[a*this.data.stride+this.offset+1]},getZ:function(a){return this.data.array[a*this.data.stride+this.offset+2]},getW:function(a){return this.data.array[a*this.data.stride+this.offset+3]},setXY:function(a,b,c){a=a*this.data.stride+this.offset;this.data.array[a+0]=b;this.data.array[a+1]=c;return this},setXYZ:function(a,b,c,d){a=a*this.data.stride+this.offset;this.data.array[a+
+0]=b;this.data.array[a+1]=c;this.data.array[a+2]=d;return this},setXYZW:function(a,b,c,d,e){a=a*this.data.stride+this.offset;this.data.array[a+0]=b;this.data.array[a+1]=c;this.data.array[a+2]=d;this.data.array[a+3]=e;return this}});Object.defineProperty(oc.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(oc.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setArray:function(a){if(Array.isArray(a))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");
+this.count=void 0!==a?a.length/this.stride:0;this.array=a;return this},setDynamic:function(a){this.dynamic=a;return this},copy:function(a){this.array=new a.array.constructor(a.array);this.count=a.count;this.stride=a.stride;this.dynamic=a.dynamic;return this},copyAt:function(a,b,c){a*=this.stride;c*=b.stride;for(var d=0,e=this.stride;d<e;d++)this.array[a+d]=b.array[c+d];return this},set:function(a,b){void 0===b&&(b=0);this.array.set(a,b);return this},clone:function(){return(new this.constructor).copy(this)},
+onUpload:function(a){this.onUploadCallback=a;return this}});ue.prototype=Object.assign(Object.create(oc.prototype),{constructor:ue,isInstancedInterleavedBuffer:!0,copy:function(a){oc.prototype.copy.call(this,a);this.meshPerAttribute=a.meshPerAttribute;return this}});ve.prototype=Object.assign(Object.create(O.prototype),{constructor:ve,isInstancedBufferAttribute:!0,copy:function(a){O.prototype.copy.call(this,a);this.meshPerAttribute=a.meshPerAttribute;return this}});Object.assign(rf.prototype,{linePrecision:1,
+set:function(a,b){this.ray.set(a,b)},setFromCamera:function(a,b){b&&b.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(b.matrixWorld),this.ray.direction.set(a.x,a.y,.5).unproject(b).sub(this.ray.origin).normalize()):b&&b.isOrthographicCamera?(this.ray.origin.set(a.x,a.y,(b.near+b.far)/(b.near-b.far)).unproject(b),this.ray.direction.set(0,0,-1).transformDirection(b.matrixWorld)):console.error("THREE.Raycaster: Unsupported camera type.")},intersectObject:function(a,b,c){c=c||[];we(a,this,
+c,b);c.sort(sf);return c},intersectObjects:function(a,b,c){c=c||[];if(!1===Array.isArray(a))return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."),c;for(var d=0,e=a.length;d<e;d++)we(a[d],this,c,b);c.sort(sf);return c}});Object.assign(tf.prototype,{start:function(){this.oldTime=this.startTime=("undefined"===typeof performance?Date:performance).now();this.elapsedTime=0;this.running=!0},stop:function(){this.getElapsedTime();this.autoStart=this.running=!1},getElapsedTime:function(){this.getDelta();
+return this.elapsedTime},getDelta:function(){var a=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var b=("undefined"===typeof performance?Date:performance).now();a=(b-this.oldTime)/1E3;this.oldTime=b;this.elapsedTime+=a}return a}});Object.assign(uf.prototype,{set:function(a,b,c){this.radius=a;this.phi=b;this.theta=c;return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.radius=a.radius;this.phi=a.phi;this.theta=a.theta;return this},
+makeSafe:function(){this.phi=Math.max(1E-6,Math.min(Math.PI-1E-6,this.phi));return this},setFromVector3:function(a){this.radius=a.length();0===this.radius?this.phi=this.theta=0:(this.theta=Math.atan2(a.x,a.z),this.phi=Math.acos(P.clamp(a.y/this.radius,-1,1)));return this}});Object.assign(vf.prototype,{set:function(a,b,c){this.radius=a;this.theta=b;this.y=c;return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.radius=a.radius;this.theta=a.theta;this.y=a.y;return this},
+setFromVector3:function(a){this.radius=Math.sqrt(a.x*a.x+a.z*a.z);this.theta=Math.atan2(a.x,a.z);this.y=a.y;return this}});Object.assign(xe.prototype,{set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromPoints:function(a){this.makeEmpty();for(var b=0,c=a.length;b<c;b++)this.expandByPoint(a[b]);return this},setFromCenterAndSize:function(){var a=new y;return function(b,c){c=a.copy(c).multiplyScalar(.5);this.min.copy(b).sub(c);this.max.copy(b).add(c);return this}}(),clone:function(){return(new this.constructor).copy(this)},
+copy:function(a){this.min.copy(a.min);this.max.copy(a.max);return this},makeEmpty:function(){this.min.x=this.min.y=Infinity;this.max.x=this.max.y=-Infinity;return this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y},getCenter:function(a){void 0===a&&(console.warn("THREE.Box2: .getCenter() target is now required"),a=new y);return this.isEmpty()?a.set(0,0):a.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(a){void 0===a&&(console.warn("THREE.Box2: .getSize() target is now required"),
+a=new y);return this.isEmpty()?a.set(0,0):a.subVectors(this.max,this.min)},expandByPoint:function(a){this.min.min(a);this.max.max(a);return this},expandByVector:function(a){this.min.sub(a);this.max.add(a);return this},expandByScalar:function(a){this.min.addScalar(-a);this.max.addScalar(a);return this},containsPoint:function(a){return a.x<this.min.x||a.x>this.max.x||a.y<this.min.y||a.y>this.max.y?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=
+this.max.y},getParameter:function(a,b){void 0===b&&(console.warn("THREE.Box2: .getParameter() target is now required"),b=new y);return b.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(a){return a.max.x<this.min.x||a.min.x>this.max.x||a.max.y<this.min.y||a.min.y>this.max.y?!1:!0},clampPoint:function(a,b){void 0===b&&(console.warn("THREE.Box2: .clampPoint() target is now required"),b=new y);return b.copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var a=
+new y;return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});id.prototype=Object.create(B.prototype);id.prototype.constructor=id;id.prototype.isImmediateRenderObject=!0;jd.prototype=Object.create(aa.prototype);
+jd.prototype.constructor=jd;jd.prototype.update=function(){var a=new p,b=new p,c=new ta;return function(){var d=["a","b","c"];this.object.updateMatrixWorld(!0);c.getNormalMatrix(this.object.matrixWorld);var e=this.object.matrixWorld,f=this.geometry.attributes.position,g=this.object.geometry;if(g&&g.isGeometry)for(var h=g.vertices,k=g.faces,m=g=0,p=k.length;m<p;m++)for(var n=k[m],r=0,q=n.vertexNormals.length;r<q;r++){var t=n.vertexNormals[r];a.copy(h[n[d[r]]]).applyMatrix4(e);b.copy(t).applyMatrix3(c).normalize().multiplyScalar(this.size).add(a);
+f.setXYZ(g,a.x,a.y,a.z);g+=1;f.setXYZ(g,b.x,b.y,b.z);g+=1}else if(g&&g.isBufferGeometry)for(d=g.attributes.position,h=g.attributes.normal,r=g=0,q=d.count;r<q;r++)a.set(d.getX(r),d.getY(r),d.getZ(r)).applyMatrix4(e),b.set(h.getX(r),h.getY(r),h.getZ(r)),b.applyMatrix3(c).normalize().multiplyScalar(this.size).add(a),f.setXYZ(g,a.x,a.y,a.z),g+=1,f.setXYZ(g,b.x,b.y,b.z),g+=1;f.needsUpdate=!0}}();pc.prototype=Object.create(B.prototype);pc.prototype.constructor=pc;pc.prototype.dispose=function(){this.cone.geometry.dispose();
+this.cone.material.dispose()};pc.prototype.update=function(){var a=new p,b=new p;return function(){this.light.updateMatrixWorld();var c=this.light.distance?this.light.distance:1E3,d=c*Math.tan(this.light.angle);this.cone.scale.set(d,d,c);a.setFromMatrixPosition(this.light.matrixWorld);b.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(b.sub(a));void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}();qc.prototype=Object.create(aa.prototype);
+qc.prototype.constructor=qc;qc.prototype.updateMatrixWorld=function(){var a=new p,b=new F,c=new F;return function(d){var e=this.bones,f=this.geometry,g=f.getAttribute("position");c.getInverse(this.root.matrixWorld);for(var h=0,k=0;h<e.length;h++){var m=e[h];m.parent&&m.parent.isBone&&(b.multiplyMatrices(c,m.matrixWorld),a.setFromMatrixPosition(b),g.setXYZ(k,a.x,a.y,a.z),b.multiplyMatrices(c,m.parent.matrixWorld),a.setFromMatrixPosition(b),g.setXYZ(k+1,a.x,a.y,a.z),k+=2)}f.getAttribute("position").needsUpdate=
+!0;B.prototype.updateMatrixWorld.call(this,d)}}();rc.prototype=Object.create(pa.prototype);rc.prototype.constructor=rc;rc.prototype.dispose=function(){this.geometry.dispose();this.material.dispose()};rc.prototype.update=function(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)};sc.prototype=Object.create(B.prototype);sc.prototype.constructor=sc;sc.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};
+sc.prototype.update=function(){var a=.5*this.light.width,b=.5*this.light.height,c=this.line.geometry.attributes.position,d=c.array;d[0]=a;d[1]=-b;d[2]=0;d[3]=a;d[4]=b;d[5]=0;d[6]=-a;d[7]=b;d[8]=0;d[9]=-a;d[10]=-b;d[11]=0;d[12]=a;d[13]=-b;d[14]=0;c.needsUpdate=!0;void 0!==this.color?this.line.material.color.set(this.color):this.line.material.color.copy(this.light.color)};tc.prototype=Object.create(B.prototype);tc.prototype.constructor=tc;tc.prototype.dispose=function(){this.children[0].geometry.dispose();
+this.children[0].material.dispose()};tc.prototype.update=function(){var a=new p,b=new K,c=new K;return function(){var d=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{var e=d.geometry.getAttribute("color");b.copy(this.light.color);c.copy(this.light.groundColor);for(var f=0,g=e.count;f<g;f++){var h=f<g/2?b:c;e.setXYZ(f,h.r,h.g,h.b)}e.needsUpdate=!0}d.lookAt(a.setFromMatrixPosition(this.light.matrixWorld).negate())}}();kd.prototype=Object.create(aa.prototype);kd.prototype.constructor=
+kd;Pd.prototype=Object.create(aa.prototype);Pd.prototype.constructor=Pd;ld.prototype=Object.create(aa.prototype);ld.prototype.constructor=ld;ld.prototype.update=function(){var a=new p,b=new p,c=new ta;return function(){this.object.updateMatrixWorld(!0);c.getNormalMatrix(this.object.matrixWorld);var d=this.object.matrixWorld,e=this.geometry.attributes.position,f=this.object.geometry,g=f.vertices;f=f.faces;for(var h=0,k=0,m=f.length;k<m;k++){var p=f[k],n=p.normal;a.copy(g[p.a]).add(g[p.b]).add(g[p.c]).divideScalar(3).applyMatrix4(d);
+b.copy(n).applyMatrix3(c).normalize().multiplyScalar(this.size).add(a);e.setXYZ(h,a.x,a.y,a.z);h+=1;e.setXYZ(h,b.x,b.y,b.z);h+=1}e.needsUpdate=!0}}();uc.prototype=Object.create(B.prototype);uc.prototype.constructor=uc;uc.prototype.dispose=function(){this.lightPlane.geometry.dispose();this.lightPlane.material.dispose();this.targetLine.geometry.dispose();this.targetLine.material.dispose()};uc.prototype.update=function(){var a=new p,b=new p,c=new p;return function(){a.setFromMatrixPosition(this.light.matrixWorld);
+b.setFromMatrixPosition(this.light.target.matrixWorld);c.subVectors(b,a);this.lightPlane.lookAt(c);void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color));this.targetLine.lookAt(c);this.targetLine.scale.z=c.length()}}();md.prototype=Object.create(aa.prototype);md.prototype.constructor=md;md.prototype.update=function(){function a(a,
+g,h,k){d.set(g,h,k).unproject(e);a=c[a];if(void 0!==a)for(g=b.getAttribute("position"),h=0,k=a.length;h<k;h++)g.setXYZ(a[h],d.x,d.y,d.z)}var b,c,d=new p,e=new Qa;return function(){b=this.geometry;c=this.pointMap;e.projectionMatrix.copy(this.camera.projectionMatrix);a("c",0,0,-1);a("t",0,0,1);a("n1",-1,-1,-1);a("n2",1,-1,-1);a("n3",-1,1,-1);a("n4",1,1,-1);a("f1",-1,-1,1);a("f2",1,-1,1);a("f3",-1,1,1);a("f4",1,1,1);a("u1",.7,1.1,-1);a("u2",-.7,1.1,-1);a("u3",0,2,-1);a("cf1",-1,0,1);a("cf2",1,0,1);a("cf3",
+0,-1,1);a("cf4",0,1,1);a("cn1",-1,0,-1);a("cn2",1,0,-1);a("cn3",0,-1,-1);a("cn4",0,1,-1);b.getAttribute("position").needsUpdate=!0}}();Ib.prototype=Object.create(aa.prototype);Ib.prototype.constructor=Ib;Ib.prototype.update=function(){var a=new Wa;return function(b){void 0!==b&&console.warn("THREE.BoxHelper: .update() has no longer arguments.");void 0!==this.object&&a.setFromObject(this.object);if(!a.isEmpty()){b=a.min;var c=a.max,d=this.geometry.attributes.position,e=d.array;e[0]=c.x;e[1]=c.y;e[2]=
+c.z;e[3]=b.x;e[4]=c.y;e[5]=c.z;e[6]=b.x;e[7]=b.y;e[8]=c.z;e[9]=c.x;e[10]=b.y;e[11]=c.z;e[12]=c.x;e[13]=c.y;e[14]=b.z;e[15]=b.x;e[16]=c.y;e[17]=b.z;e[18]=b.x;e[19]=b.y;e[20]=b.z;e[21]=c.x;e[22]=b.y;e[23]=b.z;d.needsUpdate=!0;this.geometry.computeBoundingSphere()}}}();Ib.prototype.setFromObject=function(a){this.object=a;this.update();return this};nd.prototype=Object.create(aa.prototype);nd.prototype.constructor=nd;nd.prototype.updateMatrixWorld=function(a){var b=this.box;b.isEmpty()||(b.getCenter(this.position),
+b.getSize(this.scale),this.scale.multiplyScalar(.5),B.prototype.updateMatrixWorld.call(this,a))};od.prototype=Object.create(ma.prototype);od.prototype.constructor=od;od.prototype.updateMatrixWorld=function(a){var b=-this.plane.constant;1E-8>Math.abs(b)&&(b=1E-8);this.scale.set(.5*this.size,.5*this.size,b);this.children[0].material.side=0>b?1:0;this.lookAt(this.plane.normal);B.prototype.updateMatrixWorld.call(this,a)};var Qd,ye;Jb.prototype=Object.create(B.prototype);Jb.prototype.constructor=Jb;Jb.prototype.setDirection=
+function(){var a=new p,b;return function(c){.99999<c.y?this.quaternion.set(0,0,0,1):-.99999>c.y?this.quaternion.set(1,0,0,0):(a.set(c.z,0,-c.x).normalize(),b=Math.acos(c.y),this.quaternion.setFromAxisAngle(a,b))}}();Jb.prototype.setLength=function(a,b,c){void 0===b&&(b=.2*a);void 0===c&&(c=.2*b);this.line.scale.set(1,Math.max(0,a-b),1);this.line.updateMatrix();this.cone.scale.set(c,b,c);this.cone.position.y=a;this.cone.updateMatrix()};Jb.prototype.setColor=function(a){this.line.material.color.copy(a);
+this.cone.material.color.copy(a)};pd.prototype=Object.create(aa.prototype);pd.prototype.constructor=pd;I.create=function(a,b){console.log("THREE.Curve.create() has been deprecated");a.prototype=Object.create(I.prototype);a.prototype.constructor=a;a.prototype.getPoint=b;return a};Object.assign(ab.prototype,{createPointsGeometry:function(a){console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");a=this.getPoints(a);return this.createGeometry(a)},
+createSpacedPointsGeometry:function(a){console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");a=this.getSpacedPoints(a);return this.createGeometry(a)},createGeometry:function(a){console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");for(var b=new J,c=0,d=a.length;c<d;c++){var e=a[c];b.vertices.push(new p(e.x,e.y,e.z||0))}return b}});Object.assign(Pa.prototype,
+{fromPoints:function(a){console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints().");this.setFromPoints(a)}});xf.prototype=Object.create(ra.prototype);yf.prototype=Object.create(ra.prototype);ze.prototype=Object.create(ra.prototype);Object.assign(ze.prototype,{initFromArray:function(){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},reparametrizeByArcLength:function(){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}});
+kd.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")};qc.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")};Object.assign(mc.prototype,{extractUrlBase:function(a){console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.");return De.extractUrlBase(a)}});Object.assign(xe.prototype,{center:function(a){console.warn("THREE.Box2: .center() has been renamed to .getCenter().");
+return this.getCenter(a)},empty:function(){console.warn("THREE.Box2: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},size:function(a){console.warn("THREE.Box2: .size() has been renamed to .getSize().");return this.getSize(a)}});Object.assign(Wa.prototype,{center:function(a){console.warn("THREE.Box3: .center() has been renamed to .getCenter().");
+return this.getCenter(a)},empty:function(){console.warn("THREE.Box3: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},isIntersectionSphere:function(a){console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().");return this.intersectsSphere(a)},size:function(a){console.warn("THREE.Box3: .size() has been renamed to .getSize().");
+return this.getSize(a)}});Ob.prototype.center=function(a){console.warn("THREE.Line3: .center() has been renamed to .getCenter().");return this.getCenter(a)};Object.assign(P,{random16:function(){console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead.");return Math.random()},nearestPowerOfTwo:function(a){console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo().");return P.floorPowerOfTwo(a)},nextPowerOfTwo:function(a){console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo().");
+return P.ceilPowerOfTwo(a)}});Object.assign(ta.prototype,{flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},multiplyVector3:function(a){console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.");return a.applyMatrix3(this)},multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBuffer:function(a){console.warn("THREE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.");
+return this.applyToBufferAttribute(a)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}});Object.assign(F.prototype,{extractPosition:function(a){console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().");return this.copyPosition(a)},flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},getPosition:function(){var a;
+return function(){void 0===a&&(a=new p);console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.");return a.setFromMatrixColumn(this,3)}}(),setRotationFromQuaternion:function(a){console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().");return this.makeRotationFromQuaternion(a)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(a){console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.");
+return a.applyMatrix4(this)},multiplyVector4:function(a){console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},rotateAxis:function(a){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.");a.transformDirection(this)},crossVector:function(a){console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.");
+return a.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBuffer:function(a){console.warn("THREE.Matrix4: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.");
+return this.applyToBufferAttribute(a)},applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(a,b,c,d,e,f){console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.");return this.makePerspective(a,b,d,c,e,f)}});Ha.prototype.isIntersectionLine=function(a){console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().");return this.intersectsLine(a)};
+ea.prototype.multiplyVector3=function(a){console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.");return a.applyQuaternion(this)};Object.assign(sb.prototype,{isIntersectionBox:function(a){console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},isIntersectionPlane:function(a){console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().");return this.intersectsPlane(a)},
+isIntersectionSphere:function(a){console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().");return this.intersectsSphere(a)}});Object.assign(Aa.prototype,{area:function(){console.warn("THREE.Triangle: .area() has been renamed to .getArea().");return this.getArea()},barycoordFromPoint:function(a,b){console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().");return this.getBarycoord(a,b)},midpoint:function(a){console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint().");
+return this.getMidpoint(a)},normal:function(a){console.warn("THREE.Triangle: .normal() has been renamed to .getNormal().");return this.getNormal(a)},plane:function(a){console.warn("THREE.Triangle: .plane() has been renamed to .getPlane().");return this.getPlane(a)}});Object.assign(Aa,{barycoordFromPoint:function(a,b,c,d,e){console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().");return Aa.getBarycoord(a,b,c,d,e)},normal:function(a,b,c,d){console.warn("THREE.Triangle: .normal() has been renamed to .getNormal().");
+return Aa.getNormal(a,b,c,d)}});Object.assign(jb.prototype,{extractAllPoints:function(a){console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.");return this.extractPoints(a)},extrude:function(a){console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.");return new wb(this,a)},makeGeometry:function(a){console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.");return new yb(this,a)}});Object.assign(y.prototype,
+{fromAttribute:function(a,b,c){console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(a,b,c)},distanceToManhattan:function(a){console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().");return this.manhattanDistanceTo(a)},lengthManhattan:function(){console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().");return this.manhattanLength()}});Object.assign(p.prototype,
+{setEulerFromRotationMatrix:function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},getPositionFromMatrix:function(a){console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().");return this.setFromMatrixPosition(a)},getScaleFromMatrix:function(a){console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().");
+return this.setFromMatrixScale(a)},getColumnFromMatrix:function(a,b){console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().");return this.setFromMatrixColumn(b,a)},applyProjection:function(a){console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.");return this.applyMatrix4(a)},fromAttribute:function(a,b,c){console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(a,
+b,c)},distanceToManhattan:function(a){console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().");return this.manhattanDistanceTo(a)},lengthManhattan:function(){console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().");return this.manhattanLength()}});Object.assign(U.prototype,{fromAttribute:function(a,b,c){console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(a,
+b,c)},lengthManhattan:function(){console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().");return this.manhattanLength()}});Object.assign(J.prototype,{computeTangents:function(){console.error("THREE.Geometry: .computeTangents() has been removed.")},computeLineDistances:function(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}});Object.assign(B.prototype,{getChildByName:function(a){console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().");
+return this.getObjectByName(a)},renderDepth:function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},translate:function(a,b){console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.");return this.translateOnAxis(b,a)},getWorldRotation:function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")}});Object.defineProperties(B.prototype,
+{eulerOrder:{get:function(){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order.");return this.rotation.order},set:function(a){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order.");this.rotation.order=a}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}});
+Object.defineProperties(Gc.prototype,{objects:{get:function(){console.warn("THREE.LOD: .objects has been renamed to .levels.");return this.levels}}});Object.defineProperty(Hc.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}});Object.defineProperty(I.prototype,"__arcLengthDivisions",{get:function(){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.");
+return this.arcLengthDivisions},set:function(a){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.");this.arcLengthDivisions=a}});X.prototype.setLens=function(a,b){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup.");void 0!==b&&(this.filmGauge=b);this.setFocalLength(a)};Object.defineProperties(ba.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(a){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov.");
+this.shadow.camera.fov=a}},shadowCameraLeft:{set:function(a){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left.");this.shadow.camera.left=a}},shadowCameraRight:{set:function(a){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right.");this.shadow.camera.right=a}},shadowCameraTop:{set:function(a){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top.");this.shadow.camera.top=a}},shadowCameraBottom:{set:function(a){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.");
+this.shadow.camera.bottom=a}},shadowCameraNear:{set:function(a){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near.");this.shadow.camera.near=a}},shadowCameraFar:{set:function(a){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far.");this.shadow.camera.far=a}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(a){console.warn("THREE.Light: .shadowBias is now .shadow.bias.");
+this.shadow.bias=a}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(a){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.");this.shadow.mapSize.width=a}},shadowMapHeight:{set:function(a){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.");this.shadow.mapSize.height=a}}});Object.defineProperties(O.prototype,{length:{get:function(){console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead.");
+return this.array.length}},copyIndicesArray:function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")}});Object.assign(G.prototype,{addIndex:function(a){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().");this.setIndex(a)},addDrawCall:function(a,b,c){void 0!==c&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.");console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup().");this.addGroup(a,b)},
+clearDrawCalls:function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().");this.clearGroups()},computeTangents:function(){console.warn("THREE.BufferGeometry: .computeTangents() has been removed.")},computeOffsets:function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")}});Object.defineProperties(G.prototype,{drawcalls:{get:function(){console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups.");return this.groups}},offsets:{get:function(){console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups.");
+return this.groups}}});Object.assign(Sa.prototype,{getArrays:function(){console.error("THREE.ExtrudeBufferGeometry: .getArrays() has been removed.")},addShapeList:function(){console.error("THREE.ExtrudeBufferGeometry: .addShapeList() has been removed.")},addShape:function(){console.error("THREE.ExtrudeBufferGeometry: .addShape() has been removed.")}});Object.defineProperties(Od.prototype,{dynamic:{set:function(){console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},
+onUpdate:{value:function(){console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.");return this}}});Object.defineProperties(L.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")},set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},wrapRGB:{get:function(){console.warn("THREE.Material: .wrapRGB has been removed.");return new K}},shading:{get:function(){console.error("THREE."+this.type+
+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(a){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.");this.flatShading=1===a}}});Object.defineProperties(Ja.prototype,{metal:{get:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead.");return!1},set:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead")}}});
+Object.defineProperties(Ea.prototype,{derivatives:{get:function(){console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.");return this.extensions.derivatives},set:function(a){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.");this.extensions.derivatives=a}}});Object.assign(Zd.prototype,{animate:function(a){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop().");this.setAnimationLoop(a)},getCurrentRenderTarget:function(){console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().");
+return this.getRenderTarget()},getMaxAnisotropy:function(){console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().");return this.capabilities.getMaxAnisotropy()},getPrecision:function(){console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.");return this.capabilities.precision},resetGLState:function(){console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset().");return this.state.reset()},supportsFloatTextures:function(){console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' ).");
+return this.extensions.get("OES_texture_float")},supportsHalfFloatTextures:function(){console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' ).");return this.extensions.get("OES_texture_half_float")},supportsStandardDerivatives:function(){console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' ).");return this.extensions.get("OES_standard_derivatives")},supportsCompressedTextureS3TC:function(){console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' ).");
+return this.extensions.get("WEBGL_compressed_texture_s3tc")},supportsCompressedTexturePVRTC:function(){console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' ).");return this.extensions.get("WEBGL_compressed_texture_pvrtc")},supportsBlendMinMax:function(){console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' ).");return this.extensions.get("EXT_blend_minmax")},supportsVertexTextures:function(){console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.");
+return this.capabilities.vertexTextures},supportsInstancedArrays:function(){console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' ).");return this.extensions.get("ANGLE_instanced_arrays")},enableScissorTest:function(a){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().");this.setScissorTest(a)},initMaterial:function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},addPrePlugin:function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},
+addPostPlugin:function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},updateShadowMap:function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},setFaceCulling:function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")}});Object.defineProperties(Zd.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(a){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.");
+this.shadowMap.enabled=a}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(a){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.");this.shadowMap.type=a}},shadowMapCullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")}}});Object.defineProperties(Ye.prototype,
+{cullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")}},renderReverseSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")}},
+renderSingleSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}});Object.defineProperties(kb.prototype,{wrapS:{get:function(){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.");return this.texture.wrapS},set:function(a){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.");
+this.texture.wrapS=a}},wrapT:{get:function(){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.");return this.texture.wrapT},set:function(a){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.");this.texture.wrapT=a}},magFilter:{get:function(){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.");return this.texture.magFilter},set:function(a){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.");this.texture.magFilter=
+a}},minFilter:{get:function(){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.");return this.texture.minFilter},set:function(a){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.");this.texture.minFilter=a}},anisotropy:{get:function(){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.");return this.texture.anisotropy},set:function(a){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.");this.texture.anisotropy=
+a}},offset:{get:function(){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");return this.texture.offset},set:function(a){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");this.texture.offset=a}},repeat:{get:function(){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");return this.texture.repeat},set:function(a){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");this.texture.repeat=a}},format:{get:function(){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");
+return this.texture.format},set:function(a){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");this.texture.format=a}},type:{get:function(){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");return this.texture.type},set:function(a){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");this.texture.type=a}},generateMipmaps:{get:function(){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");return this.texture.generateMipmaps},
+set:function(a){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");this.texture.generateMipmaps=a}}});Object.defineProperties($e.prototype,{standing:{set:function(){console.warn("THREE.WebVRManager: .standing has been removed.")}}});nc.prototype.load=function(a){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var b=this;(new le).load(a,function(a){b.setBuffer(a)});return this};pe.prototype.getData=function(){console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData().");
+return this.getFrequencyData()};hd.prototype.updateCubeMap=function(a,b){console.warn("THREE.CubeCamera: .updateCubeMap() is now .update().");return this.update(a,b)};k.WebGLRenderTargetCube=Lb;k.WebGLRenderTarget=kb;k.WebGLRenderer=Zd;k.ShaderLib=tb;k.UniformsLib=M;k.UniformsUtils=Ca;k.ShaderChunk=W;k.FogExp2=Sb;k.Fog=Tb;k.Scene=sd;k.Sprite=Fc;k.LOD=Gc;k.SkinnedMesh=ud;k.Skeleton=Hc;k.Bone=td;k.Mesh=pa;k.LineSegments=aa;k.LineLoop=vd;k.Line=ma;k.Points=Ub;k.Group=wd;k.VideoTexture=$d;k.DataTexture=
+lb;k.CompressedTexture=Vb;k.CubeTexture=cb;k.CanvasTexture=Qb;k.DepthTexture=Ic;k.Texture=ca;k.CompressedTextureLoader=jf;k.DataTextureLoader=de;k.CubeTextureLoader=ee;k.TextureLoader=yd;k.ObjectLoader=lf;k.MaterialLoader=Nd;k.BufferGeometryLoader=ge;k.DefaultLoadingManager=wa;k.LoadingManager=ce;k.JSONLoader=he;k.ImageLoader=cd;k.ImageBitmapLoader=ie;k.FontLoader=mf;k.FileLoader=Ka;k.Loader=mc;k.LoaderUtils=De;k.Cache=Kb;k.AudioLoader=le;k.SpotLightShadow=Ad;k.SpotLight=Bd;k.PointLight=Cd;k.RectAreaLight=
+Gd;k.HemisphereLight=zd;k.DirectionalLightShadow=Dd;k.DirectionalLight=Ed;k.AmbientLight=Fd;k.LightShadow=Hb;k.Light=ba;k.StereoCamera=nf;k.PerspectiveCamera=X;k.OrthographicCamera=Mb;k.CubeCamera=hd;k.ArrayCamera=Ec;k.Camera=Qa;k.AudioListener=me;k.PositionalAudio=oe;k.AudioContext=ne;k.AudioAnalyser=pe;k.Audio=nc;k.VectorKeyframeTrack=lc;k.StringKeyframeTrack=Hd;k.QuaternionKeyframeTrack=fd;k.NumberKeyframeTrack=kc;k.ColorKeyframeTrack=Kd;k.BooleanKeyframeTrack=Id;k.PropertyMixer=qe;k.PropertyBinding=
+oa;k.KeyframeTrack=ja;k.AnimationUtils=sa;k.AnimationObjectGroup=pf;k.AnimationMixer=re;k.AnimationClip=Fa;k.Uniform=Od;k.InstancedBufferGeometry=se;k.BufferGeometry=G;k.Geometry=J;k.InterleavedBufferAttribute=te;k.InstancedInterleavedBuffer=ue;k.InterleavedBuffer=oc;k.InstancedBufferAttribute=ve;k.Face3=Xa;k.Object3D=B;k.Raycaster=rf;k.Layers=Ud;k.EventDispatcher=ha;k.Clock=tf;k.QuaternionLinearInterpolant=Jd;k.LinearInterpolant=gd;k.DiscreteInterpolant=Md;k.CubicInterpolant=Ld;k.Interpolant=ua;
+k.Triangle=Aa;k.Math=P;k.Spherical=uf;k.Cylindrical=vf;k.Plane=Ha;k.Frustum=qd;k.Sphere=Ga;k.Ray=sb;k.Matrix4=F;k.Matrix3=ta;k.Box3=Wa;k.Box2=xe;k.Line3=Ob;k.Euler=mb;k.Vector4=U;k.Vector3=p;k.Vector2=y;k.Quaternion=ea;k.Color=K;k.ImmediateRenderObject=id;k.VertexNormalsHelper=jd;k.SpotLightHelper=pc;k.SkeletonHelper=qc;k.PointLightHelper=rc;k.RectAreaLightHelper=sc;k.HemisphereLightHelper=tc;k.GridHelper=kd;k.PolarGridHelper=Pd;k.FaceNormalsHelper=ld;k.DirectionalLightHelper=uc;k.CameraHelper=md;
+k.BoxHelper=Ib;k.Box3Helper=nd;k.PlaneHelper=od;k.ArrowHelper=Jb;k.AxesHelper=pd;k.Shape=jb;k.Path=Pa;k.ShapePath=je;k.Font=ke;k.CurvePath=ab;k.Curve=I;k.ShapeUtils=Za;k.WebGLUtils=Ze;k.WireframeGeometry=Wb;k.ParametricGeometry=Jc;k.ParametricBufferGeometry=Xb;k.TetrahedronGeometry=Lc;k.TetrahedronBufferGeometry=Yb;k.OctahedronGeometry=Mc;k.OctahedronBufferGeometry=ub;k.IcosahedronGeometry=Nc;k.IcosahedronBufferGeometry=Zb;k.DodecahedronGeometry=Oc;k.DodecahedronBufferGeometry=$b;k.PolyhedronGeometry=
+Kc;k.PolyhedronBufferGeometry=va;k.TubeGeometry=Pc;k.TubeBufferGeometry=ac;k.TorusKnotGeometry=Qc;k.TorusKnotBufferGeometry=bc;k.TorusGeometry=Rc;k.TorusBufferGeometry=cc;k.TextGeometry=Wc;k.TextBufferGeometry=dc;k.SphereGeometry=Xc;k.SphereBufferGeometry=xb;k.RingGeometry=Yc;k.RingBufferGeometry=ec;k.PlaneGeometry=Cc;k.PlaneBufferGeometry=rb;k.LatheGeometry=Zc;k.LatheBufferGeometry=fc;k.ShapeGeometry=yb;k.ShapeBufferGeometry=zb;k.ExtrudeGeometry=wb;k.ExtrudeBufferGeometry=Sa;k.EdgesGeometry=gc;k.ConeGeometry=
+$c;k.ConeBufferGeometry=ad;k.CylinderGeometry=Ab;k.CylinderBufferGeometry=$a;k.CircleGeometry=bd;k.CircleBufferGeometry=hc;k.BoxGeometry=Nb;k.BoxBufferGeometry=pb;k.ShadowMaterial=Bb;k.SpriteMaterial=ib;k.RawShaderMaterial=ic;k.ShaderMaterial=Ea;k.PointsMaterial=Ia;k.MeshPhysicalMaterial=Cb;k.MeshStandardMaterial=Ta;k.MeshPhongMaterial=Ja;k.MeshToonMaterial=Db;k.MeshNormalMaterial=Eb;k.MeshLambertMaterial=Fb;k.MeshDepthMaterial=eb;k.MeshDistanceMaterial=fb;k.MeshBasicMaterial=ka;k.LineDashedMaterial=
+Gb;k.LineBasicMaterial=T;k.Material=L;k.Float64BufferAttribute=Ac;k.Float32BufferAttribute=A;k.Uint32BufferAttribute=ob;k.Int32BufferAttribute=zc;k.Uint16BufferAttribute=nb;k.Int16BufferAttribute=yc;k.Uint8ClampedBufferAttribute=xc;k.Uint8BufferAttribute=wc;k.Int8BufferAttribute=vc;k.BufferAttribute=O;k.ArcCurve=jc;k.CatmullRomCurve3=ra;k.CubicBezierCurve=La;k.CubicBezierCurve3=Ua;k.EllipseCurve=xa;k.LineCurve=ya;k.LineCurve3=Ma;k.QuadraticBezierCurve=Na;k.QuadraticBezierCurve3=Va;k.SplineCurve=Oa;
+k.REVISION="94dev";k.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2};k.CullFaceNone=0;k.CullFaceBack=1;k.CullFaceFront=2;k.CullFaceFrontBack=3;k.FrontFaceDirectionCW=0;k.FrontFaceDirectionCCW=1;k.BasicShadowMap=0;k.PCFShadowMap=1;k.PCFSoftShadowMap=2;k.FrontSide=0;k.BackSide=1;k.DoubleSide=2;k.FlatShading=1;k.SmoothShading=2;k.NoColors=0;k.FaceColors=1;k.VertexColors=2;k.NoBlending=0;k.NormalBlending=1;k.AdditiveBlending=2;k.SubtractiveBlending=3;k.MultiplyBlending=4;k.CustomBlending=5;k.AddEquation=100;k.SubtractEquation=
+101;k.ReverseSubtractEquation=102;k.MinEquation=103;k.MaxEquation=104;k.ZeroFactor=200;k.OneFactor=201;k.SrcColorFactor=202;k.OneMinusSrcColorFactor=203;k.SrcAlphaFactor=204;k.OneMinusSrcAlphaFactor=205;k.DstAlphaFactor=206;k.OneMinusDstAlphaFactor=207;k.DstColorFactor=208;k.OneMinusDstColorFactor=209;k.SrcAlphaSaturateFactor=210;k.NeverDepth=0;k.AlwaysDepth=1;k.LessDepth=2;k.LessEqualDepth=3;k.EqualDepth=4;k.GreaterEqualDepth=5;k.GreaterDepth=6;k.NotEqualDepth=7;k.MultiplyOperation=0;k.MixOperation=
+1;k.AddOperation=2;k.NoToneMapping=0;k.LinearToneMapping=1;k.ReinhardToneMapping=2;k.Uncharted2ToneMapping=3;k.CineonToneMapping=4;k.UVMapping=300;k.CubeReflectionMapping=301;k.CubeRefractionMapping=302;k.EquirectangularReflectionMapping=303;k.EquirectangularRefractionMapping=304;k.SphericalReflectionMapping=305;k.CubeUVReflectionMapping=306;k.CubeUVRefractionMapping=307;k.RepeatWrapping=1E3;k.ClampToEdgeWrapping=1001;k.MirroredRepeatWrapping=1002;k.NearestFilter=1003;k.NearestMipMapNearestFilter=
+1004;k.NearestMipMapLinearFilter=1005;k.LinearFilter=1006;k.LinearMipMapNearestFilter=1007;k.LinearMipMapLinearFilter=1008;k.UnsignedByteType=1009;k.ByteType=1010;k.ShortType=1011;k.UnsignedShortType=1012;k.IntType=1013;k.UnsignedIntType=1014;k.FloatType=1015;k.HalfFloatType=1016;k.UnsignedShort4444Type=1017;k.UnsignedShort5551Type=1018;k.UnsignedShort565Type=1019;k.UnsignedInt248Type=1020;k.AlphaFormat=1021;k.RGBFormat=1022;k.RGBAFormat=1023;k.LuminanceFormat=1024;k.LuminanceAlphaFormat=1025;k.RGBEFormat=
+1023;k.DepthFormat=1026;k.DepthStencilFormat=1027;k.RGB_S3TC_DXT1_Format=33776;k.RGBA_S3TC_DXT1_Format=33777;k.RGBA_S3TC_DXT3_Format=33778;k.RGBA_S3TC_DXT5_Format=33779;k.RGB_PVRTC_4BPPV1_Format=35840;k.RGB_PVRTC_2BPPV1_Format=35841;k.RGBA_PVRTC_4BPPV1_Format=35842;k.RGBA_PVRTC_2BPPV1_Format=35843;k.RGB_ETC1_Format=36196;k.RGBA_ASTC_4x4_Format=37808;k.RGBA_ASTC_5x4_Format=37809;k.RGBA_ASTC_5x5_Format=37810;k.RGBA_ASTC_6x5_Format=37811;k.RGBA_ASTC_6x6_Format=37812;k.RGBA_ASTC_8x5_Format=37813;k.RGBA_ASTC_8x6_Format=
+37814;k.RGBA_ASTC_8x8_Format=37815;k.RGBA_ASTC_10x5_Format=37816;k.RGBA_ASTC_10x6_Format=37817;k.RGBA_ASTC_10x8_Format=37818;k.RGBA_ASTC_10x10_Format=37819;k.RGBA_ASTC_12x10_Format=37820;k.RGBA_ASTC_12x12_Format=37821;k.LoopOnce=2200;k.LoopRepeat=2201;k.LoopPingPong=2202;k.InterpolateDiscrete=2300;k.InterpolateLinear=2301;k.InterpolateSmooth=2302;k.ZeroCurvatureEnding=2400;k.ZeroSlopeEnding=2401;k.WrapAroundEnding=2402;k.TrianglesDrawMode=0;k.TriangleStripDrawMode=1;k.TriangleFanDrawMode=2;k.LinearEncoding=
+3E3;k.sRGBEncoding=3001;k.GammaEncoding=3007;k.RGBEEncoding=3002;k.LogLuvEncoding=3003;k.RGBM7Encoding=3004;k.RGBM16Encoding=3005;k.RGBDEncoding=3006;k.BasicDepthPacking=3200;k.RGBADepthPacking=3201;k.TangentSpaceNormalMap=0;k.ObjectSpaceNormalMap=1;k.CubeGeometry=Nb;k.Face4=function(a,b,c,d,e,f,g){console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead.");return new Xa(a,b,c,e,f,g)};k.LineStrip=0;k.LinePieces=1;k.MeshFaceMaterial=function(a){console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead.");
+return a};k.MultiMaterial=function(a){void 0===a&&(a=[]);console.warn("THREE.MultiMaterial has been removed. Use an Array instead.");a.isMultiMaterial=!0;a.materials=a;a.clone=function(){return a.slice()};return a};k.PointCloud=function(a,b){console.warn("THREE.PointCloud has been renamed to THREE.Points.");return new Ub(a,b)};k.Particle=function(a){console.warn("THREE.Particle has been renamed to THREE.Sprite.");return new Fc(a)};k.ParticleSystem=function(a,b){console.warn("THREE.ParticleSystem has been renamed to THREE.Points.");
+return new Ub(a,b)};k.PointCloudMaterial=function(a){console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.");return new Ia(a)};k.ParticleBasicMaterial=function(a){console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.");return new Ia(a)};k.ParticleSystemMaterial=function(a){console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.");return new Ia(a)};k.Vertex=function(a,b,c){console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead.");
+return new p(a,b,c)};k.DynamicBufferAttribute=function(a,b){console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setDynamic( true ) instead.");return(new O(a,b)).setDynamic(!0)};k.Int8Attribute=function(a,b){console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.");return new vc(a,b)};k.Uint8Attribute=function(a,b){console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.");return new wc(a,
+b)};k.Uint8ClampedAttribute=function(a,b){console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.");return new xc(a,b)};k.Int16Attribute=function(a,b){console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.");return new yc(a,b)};k.Uint16Attribute=function(a,b){console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.");return new nb(a,b)};k.Int32Attribute=
+function(a,b){console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.");return new zc(a,b)};k.Uint32Attribute=function(a,b){console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.");return new ob(a,b)};k.Float32Attribute=function(a,b){console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.");return new A(a,b)};k.Float64Attribute=function(a,b){console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.");
+return new Ac(a,b)};k.ClosedSplineCurve3=xf;k.SplineCurve3=yf;k.Spline=ze;k.AxisHelper=function(a){console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper.");return new pd(a)};k.BoundingBoxHelper=function(a,b){console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.");return new Ib(a,b)};k.EdgesHelper=function(a,b){console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.");return new aa(new gc(a.geometry),new T({color:void 0!==
+b?b:16777215}))};k.WireframeHelper=function(a,b){console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.");return new aa(new Wb(a.geometry),new T({color:void 0!==b?b:16777215}))};k.XHRLoader=function(a){console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader.");return new Ka(a)};k.BinaryTextureLoader=function(a){console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.");return new de(a)};k.GeometryUtils={merge:function(a,b,
+c){console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.");if(b.isMesh){b.matrixAutoUpdate&&b.updateMatrix();var d=b.matrix;b=b.geometry}a.merge(b,d,c)},center:function(a){console.warn("THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.");return a.center()}};k.ImageUtils={crossOrigin:void 0,loadTexture:function(a,b,c,d){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");
+var e=new yd;e.setCrossOrigin(this.crossOrigin);a=e.load(a,c,void 0,d);b&&(a.mapping=b);return a},loadTextureCube:function(a,b,c,d){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");var e=new ee;e.setCrossOrigin(this.crossOrigin);a=e.load(a,c,void 0,d);b&&(a.mapping=b);return a},loadCompressedTexture:function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},loadCompressedTextureCube:function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")}};
+k.Projector=function(){console.error("THREE.Projector has been moved to /examples/js/renderers/Projector.js.");this.projectVector=function(a,b){console.warn("THREE.Projector: .projectVector() is now vector.project().");a.project(b)};this.unprojectVector=function(a,b){console.warn("THREE.Projector: .unprojectVector() is now vector.unproject().");a.unproject(b)};this.pickingRay=function(){console.error("THREE.Projector: .pickingRay() is now raycaster.setFromCamera().")}};k.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been moved to /examples/js/renderers/CanvasRenderer.js");
+this.domElement=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");this.clear=function(){};this.render=function(){};this.setClearColor=function(){};this.setSize=function(){}};k.SceneUtils={createMultiMaterialObject:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")},detach:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")},attach:function(){console.error("THREE.SceneUtils has been moved to /examples/js/utils/SceneUtils.js")}};
+k.LensFlare=function(){console.error("THREE.LensFlare has been moved to /examples/js/objects/Lensflare.js")};Object.defineProperty(k,"__esModule",{value:!0})});
\ No newline at end of file